diff --git a/sexp.c b/sexp.c index e86d8ebe..7f2bb666 100644 --- a/sexp.c +++ b/sexp.c @@ -1208,7 +1208,7 @@ sexp sexp_intern(sexp ctx, const char *str, sexp_sint_t len) { goto normal_intern; for ( ; i 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; he = huff_table[(unsigned char)c]; newbits = he.len; @@ -1940,7 +1940,7 @@ sexp sexp_write_one (sexp ctx, sexp obj, sexp out) { sexp_tolower(str[3]) == 'n'))))) ? '|' : EOF; 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 = '|'; if (c!=EOF) sexp_write_char(ctx, c, out); for (i=sexp_lsymbol_length(obj); i>0; str++, i--) {