diff options
author | Yoichi Nakayama <yoichi.nakayama@gmail.com> | 2022-11-27 04:18:53 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-11-27 04:49:51 +0300 |
commit | 9508dfd9f553019c2e3b2869926a0dcaed7a498f (patch) | |
tree | 58b456ef45ff2af2cabb07993ce8f35d9ab613cb /contrib | |
parent | 64685cb85566c1b0fb288690a300978d3c035431 (diff) |
git-jump: invoke emacs/emacsclient
It works with GIT_EDITOR="emacs", "emacsclient" or "emacsclient -t"
Signed-off-by: Yoichi Nakayama <yoichi.nakayama@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib')
-rwxr-xr-x | contrib/git-jump/git-jump | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/contrib/git-jump/git-jump b/contrib/git-jump/git-jump index a5a8a77e20..40c4b0d111 100755 --- a/contrib/git-jump/git-jump +++ b/contrib/git-jump/git-jump @@ -23,7 +23,22 @@ EOF open_editor() { editor=`git var GIT_EDITOR` - eval "$editor -q \$1" + case "$editor" in + *emacs*) + # Supported editor values are: + # - emacs + # - emacsclient + # - emacsclient -t + # + # Wait for completion of the asynchronously executed process + # to avoid race conditions in case of "emacsclient". + eval "$editor --eval \"(let ((buf (grep \\\"cat \$1\\\"))) (pop-to-buffer buf) (select-frame-set-input-focus (selected-frame)) (while (get-buffer-process buf) (sleep-for 0.1)))\"" + ;; + *) + # assume anything else is vi-compatible + eval "$editor -q \$1" + ;; + esac } mode_diff() { |