diff options
author | Junio C Hamano <gitster@pobox.com> | 2009-06-03 00:50:05 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-06-03 00:50:05 -0700 |
commit | b11cf09043f18b368ec0d988f064ea21247c843d (patch) | |
tree | 864a5086870ab9f5e48b3f6e2d5fa1264e9f074a /diff.c | |
parent | ceff8e7adeed51024491deb4933f23db760e5641 (diff) | |
parent | 003b33a8ad686ee4a0d0b36635bfd6aba940b24a (diff) | |
download | git-b11cf09043f18b368ec0d988f064ea21247c843d.tar.gz |
Merge branch 'da/pretty-tempname'
* da/pretty-tempname:
diff: generate pretty filenames in prep_temp_blob()
compat: add a basename() compatibility function
compat: add a mkstemps() compatibility function
Conflicts:
Makefile
Diffstat (limited to 'diff.c')
-rw-r--r-- | diff.c | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -1964,8 +1964,16 @@ static void prep_temp_blob(const char *path, struct diff_tempfile *temp, { int fd; struct strbuf buf = STRBUF_INIT; + struct strbuf template = STRBUF_INIT; + char *path_dup = xstrdup(path); + const char *base = basename(path_dup); - fd = git_mkstemp(temp->tmp_path, PATH_MAX, ".diff_XXXXXX"); + /* Generate "XXXXXX_basename.ext" */ + strbuf_addstr(&template, "XXXXXX_"); + strbuf_addstr(&template, base); + + fd = git_mkstemps(temp->tmp_path, PATH_MAX, template.buf, + strlen(base) + 1); if (fd < 0) die("unable to create temp-file: %s", strerror(errno)); if (convert_to_working_tree(path, @@ -1981,6 +1989,8 @@ static void prep_temp_blob(const char *path, struct diff_tempfile *temp, temp->hex[40] = 0; sprintf(temp->mode, "%06o", mode); strbuf_release(&buf); + strbuf_release(&template); + free(path_dup); } static struct diff_tempfile *prepare_temp_file(const char *name, |