From 0a7c4e26136a5669b2c7b74dbe2f4c7c5ed20e80 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sun, 1 Nov 2020 05:53:00 -0700 Subject: [PATCH] bc: fix printing of #:|.| and #:|#|. Closes #3477 Thanks, Xsmith! --- pkgs/racket-test-core/tests/racket/print.rktl | 5 +++++ racket/src/bc/src/symbol.c | 20 +++++++++---------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/pkgs/racket-test-core/tests/racket/print.rktl b/pkgs/racket-test-core/tests/racket/print.rktl index 22c178b269..73d9e55adb 100644 --- a/pkgs/racket-test-core/tests/racket/print.rktl +++ b/pkgs/racket-test-core/tests/racket/print.rktl @@ -69,6 +69,11 @@ (ptest "'|`|" '|`|) (ptest "'#:apple" '#:apple) (ptest "'#:|apple pie|" '#:|apple pie|) + (ptest "'#:|.|" '#:|.|) + (ptest "'#:|#|" '#:|#|) + (ptest "'#:|#q|" '#:|#q|) + (ptest "'#:#%" '#:#%) + (ptest "'#:101" '#:101) (ptest "'#%apple" '#%apple) (ptest "\"apple\"" "apple") (ptest "#\"apple\"" #"apple") diff --git a/racket/src/bc/src/symbol.c b/racket/src/bc/src/symbol.c index eb1899428e..a9dda1978f 100644 --- a/racket/src/bc/src/symbol.c +++ b/racket/src/bc/src/symbol.c @@ -613,17 +613,15 @@ const char *scheme_symbol_name_and_size(Scheme_Object *sym, uintptr_t *length, i && (flags & SCHEME_SNF_FOR_TS))) if (len) { - if (flags & SCHEME_SNF_KEYWORD) { - digit_start = 0; - } else { - int ch = ((unsigned char *)s)[0]; - digit_start = (((ch < 128) && isdigit(ch)) || (ch == '.') - || (ch == '+') || (ch == '-')); - if (ch == '#' && (len == 1 || s[1] != '%')) - has_special = 1; - if (ch == '.' && len == 1) - has_special = 1; - } + int ch = ((unsigned char *)s)[0]; + digit_start = ((flags & SCHEME_SNF_KEYWORD) + ? 0 + : (((ch < 128) && isdigit(ch)) || (ch == '.') + || (ch == '+') || (ch == '-'))); + if (ch == '#' && (len == 1 || s[1] != '%')) + has_special = 1; + if (ch == '.' && len == 1) + has_special = 1; } else { digit_start = 0; if (!(flags & SCHEME_SNF_KEYWORD))