prettyprint: print unprintables by hex escaping.
parent
e00aaf4185
commit
f1e232c981
|
@ -96,7 +96,7 @@ M: f pprint* drop \ f pprint-word ;
|
|||
[ effect>string ] [ effect-style ] bi styled-text ;
|
||||
|
||||
! Strings
|
||||
: ch>ascii-escape ( ch -- str )
|
||||
: ch>ascii-escape ( ch -- ch' ? )
|
||||
H{
|
||||
{ CHAR: \a CHAR: a }
|
||||
{ CHAR: \e CHAR: e }
|
||||
|
@ -106,10 +106,12 @@ M: f pprint* drop \ f pprint-word ;
|
|||
{ CHAR: \0 CHAR: 0 }
|
||||
{ CHAR: \\ CHAR: \\ }
|
||||
{ CHAR: \" CHAR: \" }
|
||||
} at ;
|
||||
} ?at ; inline
|
||||
|
||||
: unparse-ch ( ch -- )
|
||||
dup ch>ascii-escape [ "\\" % ] [ ] ?if , ;
|
||||
ch>ascii-escape [ "\\" % , ] [
|
||||
dup 32 < [ dup 16 < "\\x0" "\\x" ? % >hex % ] [ , ] if
|
||||
] if ;
|
||||
|
||||
: do-string-limit ( str -- trimmed )
|
||||
string-limit? get [
|
||||
|
|
|
@ -40,6 +40,10 @@ unit-test
|
|||
[ "\e" unparse ]
|
||||
unit-test
|
||||
|
||||
[ "\"\\x01\"" ]
|
||||
[ 1 1string unparse ]
|
||||
unit-test
|
||||
|
||||
[ "f" ] [ f unparse ] unit-test
|
||||
[ "t" ] [ t unparse ] unit-test
|
||||
|
||||
|
|
Loading…
Reference in New Issue