From: Stephen Boyd Date: Tue, 26 May 2009 06:01:28 GMT Subject: Re: [PATCH v3] diff: generate prettier filenames when using GIT_EXTERNAL_DIFF Message-ID: <4A1B85B8.1050907@gmail.com> In-Reply-To: <1243316165-99065-1-git-send-email-davvid@gmail.com> David Aguilar wrote: > - fd = git_mkstemp(temp->tmp_path, PATH_MAX, ".diff_XXXXXX"); > + if (pretty_filename) { > + struct strbuf pretty_name = STRBUF_INIT; > + char *pathdup = xstrdup(path); > + char *base = basename(pathdup); > + char *dot = strchr(base, '.'); > + int suffix_len = 0; > + > + if (dot) { > + /* path has an extension, e.g. "foo.txt"; > + * generate "foo.XXXX.txt". > + */ > + *dot = '\0'; > + strbuf_addstr(&pretty_name, base); > + *dot = '.'; > + strbuf_addstr(&pretty_name, ".XXXXXX"); > + suffix_len = strlen(dot); > + strbuf_addstr(&pretty_name, dot); This *dot business annoys me. Would it be better to use strbuf_add() with some pointer math thrown in? Also, what happens with files such as "foo.bar.txt"? Do we want "foo.XXXXX.bar.txt"?