aboutsummaryrefslogtreecommitdiff
path: root/builtin-tag.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2008-03-11 21:40:47 -0700
committerJunio C Hamano <gitster@pobox.com>2008-03-11 21:40:47 -0700
commitb81a7b58875e07d7e82aafced1de9834ba1ef94a (patch)
tree47a7e33fdbd718fce1948183e1905a174c43fa40 /builtin-tag.c
parent5d921e2931e5041884d8f86fdccc9004a7b071cc (diff)
parentea14e6c55427f50f78fe47187cd4edb9845943a1 (diff)
downloadgit-b81a7b58875e07d7e82aafced1de9834ba1ef94a.tar.gz
git-b81a7b58875e07d7e82aafced1de9834ba1ef94a.tar.xz
Merge branch 'maint'
* maint: git-svn: fix find-rev error message when missing arg t0021: tr portability fix for Solaris launch_editor(): allow spaces in the filename git rebase --abort: always restore the right commit
Diffstat (limited to 'builtin-tag.c')
-rw-r--r--builtin-tag.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/builtin-tag.c b/builtin-tag.c
index 28c36fdcd..8dd959fe1 100644
--- a/builtin-tag.c
+++ b/builtin-tag.c
@@ -50,12 +50,15 @@ void launch_editor(const char *path, struct strbuf *buffer, const char *const *e
size_t len = strlen(editor);
int i = 0;
const char *args[6];
+ struct strbuf arg0;
+ strbuf_init(&arg0, 0);
if (strcspn(editor, "$ \t'") != len) {
/* there are specials */
+ strbuf_addf(&arg0, "%s \"$@\"", editor);
args[i++] = "sh";
args[i++] = "-c";
- args[i++] = "$0 \"$@\"";
+ args[i++] = arg0.buf;
}
args[i++] = editor;
args[i++] = path;
@@ -63,6 +66,7 @@ void launch_editor(const char *path, struct strbuf *buffer, const char *const *e
if (run_command_v_opt_cd_env(args, 0, NULL, env))
die("There was a problem with the editor %s.", editor);
+ strbuf_release(&arg0);
}
if (!buffer)