From c890edeea4ede4a50e89a690c983245134ce0a14 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sat, 2 Mar 2019 05:38:06 -0700 Subject: [PATCH] json: fix checking of word boundary after `true`, `false`, and `null` Thanks to Greg Hendershott for pointing out the problem. --- pkgs/racket-test/tests/json/json.rkt | 1 + racket/collects/json/main.rkt | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/racket-test/tests/json/json.rkt b/pkgs/racket-test/tests/json/json.rkt index 612323ae50..bc566cb778 100644 --- a/pkgs/racket-test/tests/json/json.rkt +++ b/pkgs/racket-test/tests/json/json.rkt @@ -174,6 +174,7 @@ (string->jsexpr " [\"x\",1, \"y\",2} ") =error> "string->jsexpr:" (string->jsexpr @T{ truelove }) =error> "string->jsexpr:" (string->jsexpr @T{ truebred }) =error> "string->jsexpr:" + (string->jsexpr @T{ truea }) =error> "string->jsexpr:" (string->jsexpr @T{ falsehood }) =error> "string->jsexpr:" (string->jsexpr @T{ falsetto }) =error> "string->jsexpr:" (string->jsexpr @T{ nullity }) =error> "string->jsexpr:" diff --git a/racket/collects/json/main.rkt b/racket/collects/json/main.rkt index 2eef74fe7a..93e4d85609 100644 --- a/racket/collects/json/main.rkt +++ b/racket/collects/json/main.rkt @@ -310,9 +310,9 @@ ;; Check for delimiter, defined for our purposes as matching #rx"\\b": (define b (peek-byte i)) (unless (eof-object? b) - (when (or (< (char->integer #\a) b (char->integer #\z)) - (< (char->integer #\A) b (char->integer #\Z)) - (< (char->integer #\0) b (char->integer #\9)) + (when (or (<= (char->integer #\a) b (char->integer #\z)) + (<= (char->integer #\A) b (char->integer #\Z)) + (<= (char->integer #\0) b (char->integer #\9)) (eqv? b (char->integer #\_))) (bad-input bstr)))) ;;