mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-03 22:28:46 +00:00
strings.write_quoted_string
This commit is contained in:
+1
-20
@@ -601,26 +601,7 @@ fmt_string :: proc(fi: ^Info, s: string, verb: rune) {
|
||||
strings.write_string(fi.buf, s);
|
||||
|
||||
case 'q': // quoted string
|
||||
quote: byte = '"';
|
||||
strings.write_byte(fi.buf, quote);
|
||||
for width := 0; len(s) > 0; s = s[width:] {
|
||||
r := rune(s[0]);
|
||||
width = 1;
|
||||
if r >= utf8.RUNE_SELF {
|
||||
r, width = utf8.decode_rune_in_string(s);
|
||||
}
|
||||
if width == 1 && r == utf8.RUNE_ERROR {
|
||||
strings.write_byte(fi.buf, '\\');
|
||||
strings.write_byte(fi.buf, 'x');
|
||||
strings.write_byte(fi.buf, __DIGITS_LOWER[s[0]>>4]);
|
||||
strings.write_byte(fi.buf, __DIGITS_LOWER[s[0]&0xf]);
|
||||
continue;
|
||||
}
|
||||
|
||||
strings.write_escaped_rune(fi.buf, r, quote);
|
||||
|
||||
}
|
||||
strings.write_byte(fi.buf, quote);
|
||||
strings.write_quoted_string(fi.buf, s, '"');
|
||||
|
||||
case 'x', 'X':
|
||||
space := fi.space;
|
||||
|
||||
Reference in New Issue
Block a user