[PATCH v3 2/2] git-jump: invoke emacs/emacsclient
From: Yoichi Nakayama <yoichi.nakayama@gmail.com>
It works with GIT_EDITOR="emacs", "emacsclient" or "emacsclient -t"
Signed-off-by: Yoichi Nakayama <yoichi.nakayama@gmail.com>
---
contrib/git-jump/git-jump | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/contrib/git-jump/git-jump b/contrib/git-jump/git-jump
index 091d1add0ec..43ca8bb1ee7 100755
--- a/contrib/git-jump/git-jump
+++ b/contrib/git-jump/git-jump
@@ -26,6 +26,11 @@ open_editor() {
eval "$editor -q \$1"
}
+open_emacs() {
+ editor=`git var GIT_EDITOR`
+ eval "$editor --eval \"(prog1 (switch-to-buffer-other-frame (compilation-start \\\"git jump --stdout $@\\\" 'grep-mode)) (delete-other-windows) (select-frame-set-input-focus (selected-frame)))\""
+}
+
mode_diff() {
git diff --no-prefix --relative "$@" |
perl -ne '
@@ -79,6 +84,13 @@ if test "$mode" = "--stdout"; then
exit 0
fi
+# For emacs/emacsclient, call "git jump --stdout" from inside of them.
+if git var GIT_EDITOR | grep emacs >/dev/null; then
+ type "mode_$mode" >/dev/null 2>&1 || { usage >&2; exit 1; }
+ open_emacs "$mode" "$@"
+ exit 0
+fi
+
trap 'rm -f "$tmp"' 0 1 2 3 15
tmp=`mktemp -t git-jump.XXXXXX` || exit 1
type "mode_$mode" >/dev/null 2>&1 || { usage >&2; exit 1; }
--
gitgitgadget