summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorJoão Távora <joaotavora@gmail.com>2019-11-05 23:37:30 +0000
committerJoão Távora <joaotavora@gmail.com>2019-11-05 23:37:53 +0000
commita8dbb7cc865f227a39708df3fe8d24e6f52b6e28 (patch)
tree959d62eb6ea6e11d2660a31b1f4f666b46e62015 /lisp
parentfbcfee3ae492922abc34e62381354c7d8b989fea (diff)
downloademacs-a8dbb7cc865f227a39708df3fe8d24e6f52b6e28.tar.gz
emacs-a8dbb7cc865f227a39708df3fe8d24e6f52b6e28.tar.bz2
emacs-a8dbb7cc865f227a39708df3fe8d24e6f52b6e28.zip
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
Diffstat (limited to 'lisp')
-rw-r--r--lisp/jsonrpc.el10
1 files changed, 7 insertions, 3 deletions
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 <joaotavora@gmail.com>
;; 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."