git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Adam Roben <aroben@apple.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
	Johannes Shindelin <Johannes.Schindelin@gmx.de>,
	Adam Roben <aroben@apple.com>
Subject: [PATCH] Add git-sh-setup::set_editor()
Date: Thu, 19 Jul 2007 11:24:08 -0700	[thread overview]
Message-ID: <11848694482569-git-send-email-aroben@apple.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0707191053230.14781@racer.site>

This function can be used to set the GIT_EDITOR variable to the user's
preferred editor.

Signed-off-by: Adam Roben <aroben@apple.com>
---
On Jul 19, 2007, at 2:54 AM, Johannes Schindelin wrote:
> Now with so many commands in the lot, how about putting the code into 
> git-sh-setup, into a function "get_editor()"?

Here you go. I didn't add anything similar for git-send-email.perl since that
is the only case we have in perl of invoking the editor right now, and I wasn't
sure of a good place to add such a function.

 git-am.sh                  |    3 ++-
 git-commit.sh              |    6 +++---
 git-rebase--interactive.sh |    3 ++-
 git-sh-setup.sh            |    5 +++++
 git-tag.sh                 |    3 ++-
 5 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/git-am.sh b/git-am.sh
index 3a651ae..a5de0a1 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -7,6 +7,7 @@ USAGE='[--signoff] [--dotest=<dir>] [--utf8 | --no-utf8] [--binary] [--3way]
   or, when resuming [--skip | --resolved]'
 . git-sh-setup
 set_reflog_action am
+set_editor
 require_work_tree
 
 git var GIT_COMMITTER_IDENT >/dev/null || exit
@@ -364,7 +365,7 @@ do
 		[yY]*) action=yes ;;
 		[aA]*) action=yes interactive= ;;
 		[nN]*) action=skip ;;
-		[eE]*) "$(git config core.editor || echo ${VISUAL:-${EDITOR:-vi}})" "$dotest/final-commit"
+		[eE]*) "$GIT_EDITOR" "$dotest/final-commit"
 		       action=again ;;
 		[vV]*) action=again
 		       LESS=-S ${PAGER:-less} "$dotest/patch" ;;
diff --git a/git-commit.sh b/git-commit.sh
index 72e4cf0..9adb03c 100755
--- a/git-commit.sh
+++ b/git-commit.sh
@@ -6,6 +6,7 @@
 USAGE='[-a | --interactive] [-s] [-v] [--no-verify] [-m <message> | -F <logfile> | (-C|-c) <commit> | --amend] [-u] [-e] [--author <author>] [[-i | -o] <path>...]'
 SUBDIRECTORY_OK=Yes
 . git-sh-setup
+set_editor
 require_work_tree
 
 git rev-parse --verify HEAD >/dev/null 2>&1 || initial_commit=t
@@ -544,8 +545,7 @@ fi
 
 case "$no_edit" in
 '')
-	commit_editor=$(git config core.editor || echo ${VISUAL:-$EDITOR})
-	case "$commit_editor,$TERM" in
+	case "$GIT_EDITOR,$TERM" in
 	,dumb)
 		echo >&2 "Terminal is dumb but core.editor, VISUAL, and EDITOR"
 		echo >&2 "are undefined. Please supply the commit log message"
@@ -556,7 +556,7 @@ case "$no_edit" in
 	esac
 	git-var GIT_AUTHOR_IDENT > /dev/null  || die
 	git-var GIT_COMMITTER_IDENT > /dev/null  || die
-	${commit_editor:-vi} "$GIT_DIR/COMMIT_EDITMSG"
+	$GIT_EDITOR "$GIT_DIR/COMMIT_EDITMSG"
 	;;
 esac
 
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index 2e15abb..32d1f53 100755
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -15,6 +15,7 @@ USAGE='(--continue | --abort | --skip | [--preserve-merges] [--verbose]
 
 . git-sh-setup
 require_work_tree
+set_editor
 
 DOTEST="$GIT_DIR/.dotest-merge"
 TODO="$DOTEST"/todo
@@ -414,7 +415,7 @@ EOF
 			die_abort "Nothing to do"
 
 		cp "$TODO" "$TODO".backup
-		$(git config core.editor || echo ${VISUAL:-${EDITOR:-vi}}) "$TODO" ||
+		$GIT_EDITOR "$TODO" ||
 			die "Could not execute editor"
 
 		test -z "$(grep -ve '^$' -e '^#' < $TODO)" &&
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index 4ed07e9..f43ab33 100755
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -28,6 +28,11 @@ set_reflog_action() {
 	fi
 }
 
+set_editor() {
+    GIT_EDITOR=$(git config core.editor || echo ${VISUAL:-${EDITOR:-vi}})
+    export GIT_EDITOR
+}
+
 is_bare_repository () {
 	git rev-parse --is-bare-repository
 }
diff --git a/git-tag.sh b/git-tag.sh
index 9aa30b4..0a6f2e7 100755
--- a/git-tag.sh
+++ b/git-tag.sh
@@ -4,6 +4,7 @@
 USAGE='[-n [<num>]] -l [<pattern>] | [-a | -s | -u <key-id>] [-f | -d | -v] [-m <msg>] <tagname> [<head>]'
 SUBDIRECTORY_OK='Yes'
 . git-sh-setup
+set_editor
 
 message_given=
 annotate=
@@ -177,7 +178,7 @@ if [ "$annotate" ]; then
         ( echo "#"
           echo "# Write a tag message"
           echo "#" ) > "$GIT_DIR"/TAG_EDITMSG
-        $(git config core.editor || echo ${VISUAL:-${EDITOR:-vi}}) "$GIT_DIR"/TAG_EDITMSG || exit
+        $GIT_EDITOR "$GIT_DIR"/TAG_EDITMSG || exit
     else
         printf '%s\n' "$message" >"$GIT_DIR"/TAG_EDITMSG
     fi
-- 
1.5.3.rc2.20.g8e32-dirty

  reply	other threads:[~2007-07-19 18:24 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-19  5:39 [PATCH] Add commit.editor configuration variable Adam Roben
2007-07-19  6:08 ` Junio C Hamano
2007-07-19  6:17   ` Adam Roben
2007-07-19  6:23     ` Shawn O. Pearce
2007-07-19  6:53       ` Junio C Hamano
2007-07-19  9:54         ` Johannes Schindelin
2007-07-19 18:24           ` Adam Roben [this message]
2007-07-19 18:46             ` [PATCH] Add git-sh-setup::set_editor() Johannes Schindelin
2007-07-19 19:26               ` David Kastrup
2007-07-19 21:10               ` [PATCH] Print an error when falling back to vi on a dumb terminal Adam Roben
2007-07-19 21:19                 ` Johannes Schindelin
2007-07-20  0:15                 ` Junio C Hamano
2007-07-20  0:28                   ` [PATCH] Add core.editor configuration variable Adam Roben
2007-07-20  5:09                     ` [PATCH] Add GIT_EDITOR environment variable and " Adam Roben

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=11848694482569-git-send-email-aroben@apple.com \
    --to=aroben@apple.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).