Output chars correctly via write

This commit is contained in:
Justin Ethier 2016-12-20 22:35:08 -05:00
parent 46035cdea5
commit 7728e25b8f
2 changed files with 19 additions and 1 deletions

View file

@ -1,5 +1,8 @@
# Next Release - TBD
Bug Fixes
- Display characters such as `#\space` correctly when output via `write`.
# 0.3.3 - December 19, 2016

View file

@ -899,7 +899,22 @@ static object _Cyc_write(object x, FILE * port)
return quote_void;
}
if (obj_is_char(x)) {
fprintf(port, "#\\%c", obj_obj2char(x));
char c = obj_obj2char(x);
switch (c) {
case 0: fprintf(port, "#\\null"); break;
case 7: fprintf(port, "#\\alarm"); break;
case 8: fprintf(port, "#\\backspace"); break;
case 9: fprintf(port, "#\\tab"); break;
case 10: fprintf(port, "#\\newline"); break;
case 13: fprintf(port, "#\\return"); break;
case 27: fprintf(port, "#\\escape"); break;
case 32: fprintf(port, "#\\space"); break;
case 127: fprintf(port, "#\\delete"); break;
default:
fprintf(port, "#\\%c", obj_obj2char(x));
break;
}
//fprintf(port, "#\\%c", obj_obj2char(x));
return quote_void;
}
if (obj_is_int(x)) {