aboutsummaryrefslogtreecommitdiff
path: root/archive-tar.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2007-09-27 00:52:47 -0700
committerJunio C Hamano <gitster@pobox.com>2007-09-27 00:52:47 -0700
commita17ba31b0b75365e1245e494d46abae4afc57480 (patch)
tree41c1d800c92e60d97a8b984dce086bcb3473dcc2 /archive-tar.c
parent0f729f21348c43a1c80f48faed2e753b1c923e85 (diff)
parent6d69b6f6ac27ab6f71a10da34b813ca25fd2a358 (diff)
downloadgit-a17ba31b0b75365e1245e494d46abae4afc57480.tar.gz
git-a17ba31b0b75365e1245e494d46abae4afc57480.tar.xz
Merge branch 'ph/strbuf' into kh/commit
* ph/strbuf: Clean up stripspace a bit, use strbuf even more. Add strbuf_read_file(). rerere: Fix use of an empty strbuf.buf Small cache_tree_write refactor. Make builtin-rerere use of strbuf nicer and more efficient. Add strbuf_cmp. strbuf_setlen(): do not barf on setting length of an empty buffer to 0 sq_quote_argv and add_to_string rework with strbuf's. Full rework of quote_c_style and write_name_quoted. Rework unquote_c_style to work on a strbuf. strbuf API additions and enhancements. nfv?asprintf are broken without va_copy, workaround them. Fix the expansion pattern of the pseudo-static path buffer.
Diffstat (limited to 'archive-tar.c')
-rw-r--r--archive-tar.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/archive-tar.c b/archive-tar.c
index a87bc4b83..e1bced560 100644
--- a/archive-tar.c
+++ b/archive-tar.c
@@ -238,15 +238,14 @@ static int write_tar_entry(const unsigned char *sha1,
const char *filename, unsigned mode, int stage)
{
static struct strbuf path = STRBUF_INIT;
- int filenamelen = strlen(filename);
void *buffer;
enum object_type type;
unsigned long size;
- strbuf_grow(&path, MAX(PATH_MAX, baselen + filenamelen + 1));
strbuf_reset(&path);
+ strbuf_grow(&path, PATH_MAX);
strbuf_add(&path, base, baselen);
- strbuf_add(&path, filename, filenamelen);
+ strbuf_addstr(&path, filename);
if (S_ISDIR(mode) || S_ISGITLINK(mode)) {
strbuf_addch(&path, '/');
buffer = NULL;