Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2007-01-01 05:18:23 +0300
committerJunio C Hamano <junkio@cox.net>2007-01-01 05:55:28 +0300
commite90068a9046ccaf0bed82fd180b4748edbd5659a (patch)
treed1395f34dc5e00533e00caf27b10fd8c7569ab77 /commit.c
parentfbc9012307d3b2e1bcee84e4455b11e97f580e07 (diff)
i18n: do not leak 'encoding' header even when we cheat the conversion.
We special case the case where encoding recorded in the commit and the output encoding are the same and do not call iconv(). But we should drop 'encoding' header for this case as well for consistency. Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'commit.c')
-rw-r--r--commit.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/commit.c b/commit.c
index afdf27eece..544e42629e 100644
--- a/commit.c
+++ b/commit.c
@@ -679,11 +679,13 @@ static char *logmsg_reencode(const struct commit *commit)
else if (!*output_encoding)
return NULL;
encoding = get_header(commit, "encoding");
- if (!encoding || !strcmp(encoding, output_encoding)) {
- free(encoding);
+ if (!encoding)
return NULL;
- }
- out = reencode_string(commit->buffer, output_encoding, encoding);
+ if (!strcmp(encoding, output_encoding))
+ out = strdup(commit->buffer);
+ else
+ out = reencode_string(commit->buffer,
+ output_encoding, encoding);
if (out)
out = replace_encoding_header(out, output_encoding);