From mboxrd@z Thu Jan 1 00:00:00 1970
Path: news.gmane.org!.POSTED!not-for-mail
From: Philipp Stephani
Newsgroups: gmane.emacs.devel
Subject: [PATCH 1/2] Use Jansson's error code support if available
Date: Tue, 19 Dec 2017 00:17:29 +0100
Message-ID: <20171218231730.38840-1-phst@google.com>
NNTP-Posting-Host: blaine.gmane.org
X-Trace: blaine.gmane.org 1513639030 14850 195.159.176.226 (18 Dec 2017 23:17:10 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Mon, 18 Dec 2017 23:17:10 +0000 (UTC)
Cc: Philipp Stephani
To: emacs-devel@gnu.org
Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Dec 19 00:17:06 2017
Return-path:
Envelope-to: ged-emacs-devel@m.gmane.org
Original-Received: from lists.gnu.org ([208.118.235.17])
by blaine.gmane.org with esmtp (Exim 4.84_2)
(envelope-from )
id 1eR4eb-00037j-3I
for ged-emacs-devel@m.gmane.org; Tue, 19 Dec 2017 00:17:01 +0100
Original-Received: from localhost ([::1]:52740 helo=lists.gnu.org)
by lists.gnu.org with esmtp (Exim 4.71)
(envelope-from )
id 1eR4gW-0003vK-4y
for ged-emacs-devel@m.gmane.org; Mon, 18 Dec 2017 18:19:00 -0500
Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38011)
by lists.gnu.org with esmtp (Exim 4.71)
(envelope-from ) id 1eR4fN-0003ua-Jf
for emacs-devel@gnu.org; Mon, 18 Dec 2017 18:17:50 -0500
Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
(envelope-from ) id 1eR4fK-0006xL-Bk
for emacs-devel@gnu.org; Mon, 18 Dec 2017 18:17:49 -0500
Original-Received: from mail-wm0-x242.google.com ([2a00:1450:400c:c09::242]:45401)
by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
(Exim 4.71) (envelope-from )
id 1eR4fK-0006wx-5c
for emacs-devel@gnu.org; Mon, 18 Dec 2017 18:17:46 -0500
Original-Received: by mail-wm0-x242.google.com with SMTP id 9so702486wme.4
for ; Mon, 18 Dec 2017 15:17:46 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
h=from:to:cc:subject:date:message-id;
bh=82vFfhDPZnXI55ssIYM6CxUiG/rrowUSbWz3X2wz8Uw=;
b=XGPy74O1DhT9NqZe9Km8/tXDe/Mam3sf48m8OqajZ0C0oIeXG2P2sYwt5DZl50awER
KCfWIg1OfOMqxEXW2SQzWCVNUnG/3EOgZdqlexQE0A3v7jnGtHdjLz2WSd7d4ApNaBsW
OasTf0edlrxoBWFjj6JL3i3LYxFgkIi8LRlJ21qoDdX3fLTAtVM/ge56CRXBLmHxF7J/
IjECU5GJ+rQcKWFKpjvXhfomxXoDfDIGxTjU+CGAvYU0EeQmnQ2ZTvp5Q5WF4oJg4MLU
mfFtLmaJ81dHchmMeIriRNL2NuMjZNnYAgKUPVTg1BHxiIIv/nf4FtZ2cK9q6sJtQgzR
Chcw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20161025;
h=x-gm-message-state:from:to:cc:subject:date:message-id;
bh=82vFfhDPZnXI55ssIYM6CxUiG/rrowUSbWz3X2wz8Uw=;
b=t91Eh53xu1yPMIxcOtgeviaTREsvLuP4cmqghZsiiwz0eYbojtQT3I+tgjtaLRxfxK
bvnLNAfS0kw2O57Gi54f7mMsdmesUew95kj/3hRvt21vcVvzmDEg+uqiK5H6TWDqEXOJ
toyXRhzJT2H+WFj7dOWUyvYbqat5vSrow3MZxICFLPZV+poI7wgHwAmYWnVRnrL2TgSp
kM2GSHz/9P9axtmSDH/PorVcHOrjDlTYDuxs+cYkoT4LrspromomEiWRB0LPb0j0gJhE
O6adSHwQIdA2S9nxkHuTBSu0l4EnP5+85lctqgjiQCOg6yyyrKxm35QajYKCfNAj14kq
qvaQ==
X-Gm-Message-State: AKGB3mJToaJOolFaq+3u3DYVhNTVnLwwQJWNKTrH3PbB4A5QUIes4ogM
Y0H0KZIDlpdyF9XWykn7p/Hf2sRz
X-Google-Smtp-Source: ACJfBot7TjTaqutmIGgHvo0ly0gJTRGYzxA/x4GC69LXCfa8xhWk+xTJXAGE9KjLtcuTfdHYUaMUtw==
X-Received: by 10.28.15.201 with SMTP id 192mr890433wmp.97.1513639064859;
Mon, 18 Dec 2017 15:17:44 -0800 (PST)
Original-Received: from p.fritz.box (p5B13F7C7.dip0.t-ipconnect.de. [91.19.247.199])
by smtp.gmail.com with ESMTPSA id
l142sm400763wmb.43.2017.12.18.15.17.43
(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
Mon, 18 Dec 2017 15:17:44 -0800 (PST)
X-Google-Original-From: Philipp Stephani
X-Mailer: git-send-email 2.15.1
X-detected-operating-system: by eggs.gnu.org: Genre and OS details not
recognized.
X-Received-From: 2a00:1450:400c:c09::242
X-BeenThere: emacs-devel@gnu.org
X-Mailman-Version: 2.1.21
Precedence: list
List-Id: "Emacs development discussions."
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org
Original-Sender: "Emacs-devel"
Xref: news.gmane.org gmane.emacs.devel:221236
Archived-At:
* src/json.c (json_parse_error): Use Jansson's error code support if
available.
---
src/json.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/src/json.c b/src/json.c
index 29e4400fc9..b996cad5a6 100644
--- a/src/json.c
+++ b/src/json.c
@@ -249,15 +249,24 @@ static _Noreturn void
json_parse_error (const json_error_t *error)
{
Lisp_Object symbol;
- /* FIXME: Upstream Jansson should have a way to return error codes
- without parsing the error messages. See
- https://github.com/akheron/jansson/issues/352. */
+#if JANSSON_VERSION_HEX >= 0x020B00
+ switch (json_error_code (error))
+ {
+ case json_error_premature_end_of_input:
+ symbol = Qjson_end_of_file;
+ case json_error_end_of_input_expected:
+ symbol = Qjson_trailing_content;
+ default:
+ symbol = Qjson_parse_error;
+ }
+#else
if (json_has_suffix (error->text, "expected near end of file"))
symbol = Qjson_end_of_file;
else if (json_has_prefix (error->text, "end of file expected"))
symbol = Qjson_trailing_content;
else
symbol = Qjson_parse_error;
+#endif
xsignal (symbol,
list5 (json_build_string (error->text),
json_build_string (error->source), make_natnum (error->line),
--
2.15.1