mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-23 20:15:05 +02:00
Output chars correctly via write
This commit is contained in:
parent
46035cdea5
commit
7728e25b8f
2 changed files with 19 additions and 1 deletions
|
@ -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
|
||||
|
||||
|
|
17
runtime.c
17
runtime.c
|
@ -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)) {
|
||||
|
|
Loading…
Add table
Reference in a new issue