mostly support D escapes
Merge commit '1675dae232e96b661369ffa811c6af057d18b72c'