mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 13:49:17 +02:00
Hashes in symbol names need to be escaped with |...|.
Fixes issue #348.
This commit is contained in:
parent
fdab1188c1
commit
d975aac7ed
1 changed files with 2 additions and 2 deletions
4
sexp.c
4
sexp.c
|
@ -1208,7 +1208,7 @@ sexp sexp_intern(sexp ctx, const char *str, sexp_sint_t len) {
|
||||||
goto normal_intern;
|
goto normal_intern;
|
||||||
for ( ; i<len; i++, p++) {
|
for ( ; i<len; i++, p++) {
|
||||||
c = *p;
|
c = *p;
|
||||||
if ((unsigned char)c <= 32 || (unsigned char)c > 127 || c == '\\' || c == '.' || sexp_is_separator(c))
|
if ((unsigned char)c <= 32 || (unsigned char)c > 127 || c == '\\' || c == '.' || c =='#' || sexp_is_separator(c))
|
||||||
goto normal_intern;
|
goto normal_intern;
|
||||||
he = huff_table[(unsigned char)c];
|
he = huff_table[(unsigned char)c];
|
||||||
newbits = he.len;
|
newbits = he.len;
|
||||||
|
@ -1940,7 +1940,7 @@ sexp sexp_write_one (sexp ctx, sexp obj, sexp out) {
|
||||||
sexp_tolower(str[3]) == 'n')))))
|
sexp_tolower(str[3]) == 'n')))))
|
||||||
? '|' : EOF;
|
? '|' : EOF;
|
||||||
for (i=sexp_lsymbol_length(obj)-1; i>=0; i--)
|
for (i=sexp_lsymbol_length(obj)-1; i>=0; i--)
|
||||||
if (str[i] <= ' ' || str[i] == '\\' || sexp_is_separator(str[i]))
|
if (str[i] <= ' ' || str[i] == '\\' || str[i] == '#' || sexp_is_separator(str[i]))
|
||||||
c = '|';
|
c = '|';
|
||||||
if (c!=EOF) sexp_write_char(ctx, c, out);
|
if (c!=EOF) sexp_write_char(ctx, c, out);
|
||||||
for (i=sexp_lsymbol_length(obj); i>0; str++, i--) {
|
for (i=sexp_lsymbol_length(obj); i>0; str++, i--) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue