@matheusbsbs / matheus-bagliano / commits / 0ce142c944
Fork 0

send-email: lazily assign editor variable

b4479f0 (add -i, send-email, svn, p4, etc: use "git var GIT_EDITOR", 2009-10-30) introduced the use of "git var GIT_EDITOR" to obtain the preferred editor program, instead of reading environment variables themselves. However, "git var GIT_EDITOR" run without a tty (think "cron job") would give a fatal error "Terminal is dumb, but EDITOR unset". This is not a problem for add-i, svn, p4 and callers of git_editor() defined in git-sh-setup, as all of these call it just before launching the editor. At that point, we know the caller wants to edit. But send-email ran this near the beginning of the program, even if it is not going to use any editor (e.g. run without --compose). Fix this by calling the command only when we edit a file. Reported-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Michael J Gruber committed Mar 22, 2010 at 17:12 UTC 0ce142c944181236f99ea3f7fc72712f3e43d2e2
1 file changed +4 -1
git-send-email.perl
+4 -1
@@ -162,9 +162,12 @@ my $compose_filename;
162
163 # Handle interactive edition of files.
164 my $multiedit;
165 -my $editor = Git::command_oneline('var', 'GIT_EDITOR');
165 +my $editor;
166
167 sub do_edit {
168 + if (!defined($editor)) {
169 + $editor = Git::command_oneline('var', 'GIT_EDITOR');
170 + }
171 if (defined($multiedit) && !$multiedit) {
172 map {
173 system('sh', '-c', $editor.' "$@"', $editor, $_);