aboutsummaryrefslogtreecommitdiff
path: root/commit.c
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2007-03-06 20:44:17 -0500
committerJunio C Hamano <junkio@cox.net>2007-03-07 10:47:10 -0800
commit3a55602eeca4ac8670e8698a7187e18b95683344 (patch)
tree625a8af9c4655ace00b275c3e272c2764db3bcb8 /commit.c
parentff1f99453f1fe2fd9470f6ea268aed5a1839bd09 (diff)
downloadgit-3a55602eeca4ac8670e8698a7187e18b95683344.tar.gz
git-3a55602eeca4ac8670e8698a7187e18b95683344.tar.xz
General const correctness fixes
We shouldn't attempt to assign constant strings into char*, as the string is not writable at runtime. Likewise we should always be treating unsigned values as unsigned values, not as signed values. Most of these are very straightforward. The only exception is the (unnecessary) xstrdup/free in builtin-branch.c for the detached head case. Since this is a user-level interactive type program and that particular code path is executed no more than once, I feel that the extra xstrdup call is well worth the easy elimination of this warning. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'commit.c')
-rw-r--r--commit.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/commit.c b/commit.c
index 555252734..5b9234e12 100644
--- a/commit.c
+++ b/commit.c
@@ -651,7 +651,7 @@ static char *get_header(const struct commit *commit, const char *key)
}
}
-static char *replace_encoding_header(char *buf, char *encoding)
+static char *replace_encoding_header(char *buf, const char *encoding)
{
char *encoding_header = strstr(buf, "\nencoding ");
char *end_of_encoding_header;
@@ -694,29 +694,26 @@ static char *replace_encoding_header(char *buf, char *encoding)
}
static char *logmsg_reencode(const struct commit *commit,
- char *output_encoding)
+ const char *output_encoding)
{
+ static const char *utf8 = "utf-8";
+ const char *use_encoding;
char *encoding;
char *out;
- char *utf8 = "utf-8";
if (!*output_encoding)
return NULL;
encoding = get_header(commit, "encoding");
- if (!encoding)
- encoding = utf8;
- if (!strcmp(encoding, output_encoding))
+ use_encoding = encoding ? encoding : utf8;
+ if (!strcmp(use_encoding, output_encoding))
out = strdup(commit->buffer);
else
out = reencode_string(commit->buffer,
- output_encoding, encoding);
+ output_encoding, use_encoding);
if (out)
out = replace_encoding_header(out, output_encoding);
- if (encoding != utf8)
- free(encoding);
- if (!out)
- return NULL;
+ free(encoding);
return out;
}
@@ -917,7 +914,7 @@ unsigned long pretty_print_commit(enum cmit_fmt fmt,
const char *msg = commit->buffer;
int plain_non_ascii = 0;
char *reencoded;
- char *encoding;
+ const char *encoding;
if (fmt == CMIT_FMT_USERFORMAT)
return format_commit_message(commit, msg, buf, space);