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