branch: externals/vc-hgcmd
commit 5416977d9cfd1257f721e554330e54c1142bc949
Author: muffinmad <[email protected]>
Commit: muffinmad <[email protected]>
command callback must be called in output buffer
---
vc-hgcmd.el | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/vc-hgcmd.el b/vc-hgcmd.el
index e7f05ef..7518fc6 100644
--- a/vc-hgcmd.el
+++ b/vc-hgcmd.el
@@ -5,7 +5,7 @@
;; Author: Andrii Kolomoiets <[email protected]>
;; Keywords: vc
;; URL: https://github.com/muffinmad/emacs-vc-hgcmd
-;; Package-Version: 1.3.5
+;; Package-Version: 1.3.6
;; Package-Requires: ((emacs "25.1"))
;; This file is NOT part of GNU Emacs.
@@ -224,10 +224,12 @@ Insert output to process buffer and check if amount of
data is enought to parse
((eq channel ?r)
(setf (vc-hgcmd--command-result-code
current-command) (bindat-get-field (bindat-unpack `((f u32)) data) 'f))
(setq vc-hgcmd--current-command nil)
- (let ((callback (vc-hgcmd--command-callback
current-command))
+ (let ((output-buffer
(vc-hgcmd--command-output-buffer current-command))
+ (callback (vc-hgcmd--command-callback
current-command))
(args (vc-hgcmd--command-callback-args
current-command)))
- (when callback
- (if args (funcall callback args) (funcall
callback)))))
+ (when (and callback (or (stringp output-buffer)
(buffer-live-p output-buffer)))
+ (with-current-buffer output-buffer
+ (if args (funcall callback args) (funcall
callback))))))
;; TODO: cmdserver clients must handle I and L
channels
(t (error (format "unknown channel %c" channel)))))
t))))))))