summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Schubert <2@0x2c.org>2013-11-25 00:49:37 +0200
committerDmitry Gutov <dgutov@yandex.ru>2013-11-25 00:49:37 +0200
commit7c1bf12e5c285dc2b3955e0a911766370ac0af1e (patch)
tree01f2366a87192e32902a741e62035f830a793ed0
parent64e415297c09d9c92a6b1460c19f97fb4446844d (diff)
downloademacs-7c1bf12e5c285dc2b3955e0a911766370ac0af1e.tar.gz
* lisp/json.el (json-alist-p): Only return non-nil if the alist has
simple keys. Fixes: debbugs:13518
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/json.el5
2 files changed, 8 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 7365e8c274e..acc3435ce08 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2013-11-24 Simon Schubert <2@0x2c.org>
+
+ * json.el (json-alist-p): Only return non-nil if the alist has
+ simple keys (Bug#13518).
+
2013-11-22 Mihir Rege <mihirrege@gmail.com> (tiny change)
* progmodes/js.el (js--ctrl-statement-indentation): Fix indent
diff --git a/lisp/json.el b/lisp/json.el
index aaa7bb0c499..21523c1aa8b 100644
--- a/lisp/json.el
+++ b/lisp/json.el
@@ -126,9 +126,10 @@ without indentation.")
(mapconcat 'identity strings separator))
(defun json-alist-p (list)
- "Non-null if and only if LIST is an alist."
+ "Non-null if and only if LIST is an alist with simple keys."
(while (consp list)
- (setq list (if (consp (car list))
+ (setq list (if (and (consp (car list))
+ (atom (caar list)))
(cdr list)
'not-alist)))
(null list))