Browse Source

add -i, send-email, svn, p4, etc: use "git var GIT_EDITOR"

Use the new "git var GIT_EDITOR" feature to decide what editor to
use, instead of duplicating its logic elsewhere.  This should make
the behavior of commands in edge cases (e.g., editor names with
spaces) a little more consistent.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Jonathan Nieder 15 years ago committed by Junio C Hamano
parent
commit
b4479f0747
  1. 4
      Documentation/config.txt
  2. 2
      Documentation/git-commit.txt
  3. 4
      Documentation/git-send-email.txt
  4. 5
      contrib/fast-import/git-p4
  5. 3
      git-add--interactive.perl
  6. 3
      git-send-email.perl
  7. 19
      git-sh-setup.sh
  8. 5
      git-svn.perl

4
Documentation/config.txt

@ -387,9 +387,7 @@ core.editor:: @@ -387,9 +387,7 @@ core.editor::
Commands such as `commit` and `tag` that lets you edit
messages by launching an editor uses the value of this
variable when it is set, and the environment variable
`GIT_EDITOR` is not set. The order of preference is
`GIT_EDITOR` environment, `core.editor`, `VISUAL` and
`EDITOR` environment variables and then finally `vi`.
`GIT_EDITOR` is not set. See linkgit:git-var[1].

core.pager::
The command that git will use to paginate output. Can

2
Documentation/git-commit.txt

@ -323,7 +323,7 @@ ENVIRONMENT AND CONFIGURATION VARIABLES @@ -323,7 +323,7 @@ ENVIRONMENT AND CONFIGURATION VARIABLES
The editor used to edit the commit log message will be chosen from the
GIT_EDITOR environment variable, the core.editor configuration variable, the
VISUAL environment variable, or the EDITOR environment variable (in that
order).
order). See linkgit:git-var[1] for details.

HOOKS
-----

4
Documentation/git-send-email.txt

@ -60,8 +60,8 @@ The --bcc option must be repeated for each user you want on the bcc list. @@ -60,8 +60,8 @@ The --bcc option must be repeated for each user you want on the bcc list.
The --cc option must be repeated for each user you want on the cc list.

--compose::
Use $GIT_EDITOR, core.editor, $VISUAL, or $EDITOR to edit an
introductory message for the patch series.
Invoke a text editor (see GIT_EDITOR in linkgit:git-var[1])
to edit an introductory message for the patch series.
+
When '--compose' is used, git send-email will use the From, Subject, and
In-Reply-To headers specified in the message. If the body of the message

5
contrib/fast-import/git-p4

@ -729,13 +729,10 @@ class P4Submit(Command): @@ -729,13 +729,10 @@ class P4Submit(Command):
tmpFile.write(submitTemplate + separatorLine + diff + newdiff)
tmpFile.close()
mtime = os.stat(fileName).st_mtime
defaultEditor = "vi"
if platform.system() == "Windows":
defaultEditor = "notepad"
if os.environ.has_key("P4EDITOR"):
editor = os.environ.get("P4EDITOR")
else:
editor = os.environ.get("EDITOR", defaultEditor);
editor = read_pipe("git var GIT_EDITOR")
system(editor + " " + fileName)

response = "y"

3
git-add--interactive.perl

@ -987,8 +987,7 @@ sub edit_hunk_manually { @@ -987,8 +987,7 @@ sub edit_hunk_manually {
EOF
close $fh;

my $editor = $ENV{GIT_EDITOR} || $repo->config("core.editor")
|| $ENV{VISUAL} || $ENV{EDITOR} || "vi";
chomp(my $editor = run_cmd_pipe(qw(git var GIT_EDITOR)));
system('sh', '-c', $editor.' "$@"', $editor, $hunkfile);

if ($? != 0) {

3
git-send-email.perl

@ -162,7 +162,8 @@ my $compose_filename; @@ -162,7 +162,8 @@ my $compose_filename;

# Handle interactive edition of files.
my $multiedit;
my $editor = $ENV{GIT_EDITOR} || Git::config(@repo, "core.editor") || $ENV{VISUAL} || $ENV{EDITOR} || "vi";
my $editor = Git::command_oneline('var', 'GIT_EDITOR');

sub do_edit {
if (defined($multiedit) && !$multiedit) {
map {

19
git-sh-setup.sh

@ -99,19 +99,12 @@ set_reflog_action() { @@ -99,19 +99,12 @@ set_reflog_action() {
}

git_editor() {
: "${GIT_EDITOR:=$(git config core.editor)}"
: "${GIT_EDITOR:=${VISUAL:-${EDITOR}}}"
case "$GIT_EDITOR,$TERM" in
,dumb)
echo >&2 "No editor specified in GIT_EDITOR, core.editor, VISUAL,"
echo >&2 "or EDITOR. Tried to fall back to vi but terminal is dumb."
echo >&2 "Please set one of these variables to an appropriate"
echo >&2 "editor or run $0 with options that will not cause an"
echo >&2 "editor to be invoked (e.g., -m or -F for git-commit)."
exit 1
;;
esac
eval "${GIT_EDITOR:=vi}" '"$@"'
if test -z "${GIT_EDITOR:+set}"
then
GIT_EDITOR="$(git var GIT_EDITOR)" || return $?
fi

eval "$GIT_EDITOR" '"$@"'
}

is_bare_repository () {

5
git-svn.perl

@ -1321,9 +1321,8 @@ sub get_commit_entry { @@ -1321,9 +1321,8 @@ sub get_commit_entry {
close $log_fh or croak $!;

if ($_edit || ($type eq 'tree')) {
my $editor = $ENV{VISUAL} || $ENV{EDITOR} || 'vi';
# TODO: strip out spaces, comments, like git-commit.sh
system($editor, $commit_editmsg);
chomp(my $editor = command_oneline(qw(var GIT_EDITOR)));
system('sh', '-c', $editor.' "$@"', $editor, $commit_editmsg);
}
rename $commit_editmsg, $commit_msg or croak $!;
{

Loading…
Cancel
Save