]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix definition of whitespace in JSON
authorPhilipp Stephani <phst@google.com>
Sat, 20 May 2017 15:49:06 +0000 (17:49 +0200)
committerPhilipp Stephani <phst@google.com>
Sun, 21 May 2017 21:03:01 +0000 (23:03 +0200)
See
https://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00115.html.

* lisp/json.el (json-skip-whitespace): Fix definition.
* test/lisp/json-tests.el (test-json-skip-whitespace): Adapt unit
test.

lisp/json.el
test/lisp/json-tests.el

index 5f403a411b7ce19b06b099780aba25c598430a7f..3def94ce0426b01cf76d38400396319a52364bd9 100644 (file)
@@ -206,7 +206,11 @@ Unlike `reverse', this keeps the property-value pairs intact."
 
 (defun json-skip-whitespace ()
   "Skip past the whitespace at point."
-  (skip-chars-forward "\t\r\n\f\b "))
+  ;; See
+  ;; https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf
+  ;; or https://tools.ietf.org/html/rfc7159#section-2 for the
+  ;; definition of whitespace in JSON.
+  (skip-chars-forward "\t\r\n "))
 
 \f
 
index 38672de0664d361ca65ffb711a0c0545873ad662..c6bd295d667ecf1a65fcfcda55b036f8ac55c804 100644 (file)
@@ -89,7 +89,10 @@ Point is moved to beginning of the buffer."
 (ert-deftest test-json-skip-whitespace ()
   (json-tests--with-temp-buffer "\t\r\n\f\b { \"a\": 1 }"
     (json-skip-whitespace)
-    (should (equal (char-after (point)) ?{))))
+    (should (equal (char-after) ?\f)))
+  (json-tests--with-temp-buffer "\t\r\n\t { \"a\": 1 }"
+    (json-skip-whitespace)
+    (should (equal (char-after) ?{))))
 
 ;;; Paths