From: João Távora Date: Tue, 5 Nov 2019 23:37:30 +0000 (+0000) Subject: Follow JSONRPC spec by not sending :result field on errors X-Git-Tag: emacs-27.0.90~728 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a8dbb7cc865f227a39708df3fe8d24e6f52b6e28;p=emacs.git Follow JSONRPC spec by not sending :result field on errors Also don't send :error field on non-errors. * lisp/jsonrpc.el (jsonrpc--reply): Don't send :result and :error if none supplied. (Version): Bump to 1.0.8 --- diff --git a/lisp/jsonrpc.el b/lisp/jsonrpc.el index 41cd84627be..abab445fe5c 100644 --- a/lisp/jsonrpc.el +++ b/lisp/jsonrpc.el @@ -5,7 +5,7 @@ ;; Author: João Távora ;; Keywords: processes, languages, extensions ;; Package-Requires: ((emacs "25.2")) -;; Version: 1.0.7 +;; Version: 1.0.8 ;; This is an Elpa :core package. Don't use functionality that is not ;; compatible with Emacs 25.2. @@ -460,9 +460,13 @@ With optional CLEANUP, kill any associated buffers." (json-null nil)) (json-encode object))))) -(cl-defun jsonrpc--reply (connection id &key (result nil result-supplied-p) error) +(cl-defun jsonrpc--reply + (connection id &key (result nil result-supplied-p) (error nil error-supplied-p)) "Reply to CONNECTION's request ID with RESULT or ERROR." - (jsonrpc-connection-send connection :id id :result result :error error)) + (apply #'jsonrpc-connection-send connection + `(:id ,id + ,@(and result-supplied-p `(:result ,result)) + ,@(and error-supplied-p `(:error ,error))))) (defun jsonrpc--call-deferred (connection) "Call CONNECTION's deferred actions, who may again defer themselves."