mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-17 10:27:41 +00:00
Minor changes in json.el
* lisp/json.el (json-advance): Simpler docstring. (json-read-escaped-char): Use xdigit subform in rx expression. (json-read-string): Just use = for char comparison.
This commit is contained in:
parent
1b4442bee9
commit
236648fe26
1 changed files with 7 additions and 7 deletions
14
lisp/json.el
14
lisp/json.el
|
|
@ -188,7 +188,7 @@ Unlike `reverse', this keeps the property-value pairs intact."
|
|||
;; Reader utilities
|
||||
|
||||
(defsubst json-advance (&optional n)
|
||||
"Skip past the following N characters."
|
||||
"Advance N characters forward."
|
||||
(forward-char n))
|
||||
|
||||
(defsubst json-peek ()
|
||||
|
|
@ -381,13 +381,13 @@ representation will be parsed correctly."
|
|||
;; this clause overlaps with the next one and therefore has to
|
||||
;; come first.
|
||||
((looking-at
|
||||
(rx (group (any "Dd") (any "89ABab") (= 2 (any "0-9A-Fa-f")))
|
||||
"\\u" (group (any "Dd") (any "C-Fc-f") (= 2 (any "0-9A-Fa-f")))))
|
||||
(rx (group (any "Dd") (any "89ABab") (= 2 (any xdigit)))
|
||||
"\\u" (group (any "Dd") (any "C-Fc-f") (= 2 (any xdigit)))))
|
||||
(json-advance 10)
|
||||
(json--decode-utf-16-surrogates
|
||||
(string-to-number (match-string 1) 16)
|
||||
(string-to-number (match-string 2) 16)))
|
||||
((looking-at "[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]")
|
||||
((looking-at (rx (= 4 xdigit)))
|
||||
(let ((hex (match-string 0)))
|
||||
(json-advance 4)
|
||||
(string-to-number hex 16)))
|
||||
|
|
@ -396,14 +396,14 @@ representation will be parsed correctly."
|
|||
|
||||
(defun json-read-string ()
|
||||
"Read the JSON string at point."
|
||||
(unless (char-equal (json-peek) ?\")
|
||||
(unless (= (json-peek) ?\")
|
||||
(signal 'json-string-format (list "doesn't start with `\"'!")))
|
||||
;; Skip over the '"'
|
||||
(json-advance)
|
||||
(let ((characters '())
|
||||
(char (json-peek)))
|
||||
(while (not (char-equal char ?\"))
|
||||
(push (if (char-equal char ?\\)
|
||||
(while (not (= char ?\"))
|
||||
(push (if (= char ?\\)
|
||||
(json-read-escaped-char)
|
||||
(json-pop))
|
||||
characters)
|
||||
|
|
|
|||
Loading…
Reference in a new issue