Mercurial > urweb
diff src/prim.sml @ 1054:b06a2a65e670
UTF-8 in dynamic escaping
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Thu, 03 Dec 2009 11:50:51 -0500 |
parents | 4eb1c4a1b057 |
children | d7d5b167f267 |
line wrap: on
line diff
--- a/src/prim.sml Thu Dec 03 11:20:13 2009 -0500 +++ b/src/prim.sml Thu Dec 03 11:50:51 2009 -0500 @@ -74,10 +74,20 @@ else str ch ^ pad (n-1, ch, s) -val gccify = String.translate (fn ch => if Char.isPrint ch then - str ch - else - "\\" ^ pad (3, #"0", Int.fmt StringCvt.OCT (ord ch))) +val gccify = String.translate (fn ch => + case ch of + #"\"" => "\\\"" + | #"\\" => "\\\\" + | #"'" => "\\'" + | #"\n" => "\\n" + | #"\r" => "\\r" + | #"\t" => "\\t" + | #" " => " " + | _ => + if Char.isPrint ch then + str ch + else + "\\" ^ pad (3, #"0", Int.fmt StringCvt.OCT (ord ch))) fun p_t_GCC t = case t of