Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
Make collapse_slashes() allocate memory for its result
author
Michael Haggerty
<mhagger@alum.mit.edu>
Thu, 15 Sep 2011 21:10:28 +0000
(23:10 +0200)
committer
Junio C Hamano
<gitster@pobox.com>
Wed, 5 Oct 2011 20:45:30 +0000
(13:45 -0700)
This will make upcoming changes a tiny bit easier.
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/check-ref-format.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
7e9d2fe
)
diff --git
a/builtin/check-ref-format.c
b/builtin/check-ref-format.c
index 8f416967afd8cae2bfc40ba23f50c5e8c91d483e..989ee5cc023d55ee42aa2d1a316032f494a836bf 100644
(file)
--- a/
builtin/check-ref-format.c
+++ b/
builtin/check-ref-format.c
@@
-12,25
+12,28
@@
static const char builtin_check_ref_format_usage[] =
" or: git check-ref-format --branch <branchname-shorthand>";
/*
" or: git check-ref-format --branch <branchname-shorthand>";
/*
- * Re
move leading slashes and replace each run of adjacent slashes in
- *
src with a single slash, and write the result to dst
.
+ * Re
turn a copy of refname but with leading slashes removed and runs
+ *
of adjacent slashes replaced with single slashes
.
*
* This function is similar to normalize_path_copy(), but stripped down
* to meet check_ref_format's simpler needs.
*/
*
* This function is similar to normalize_path_copy(), but stripped down
* to meet check_ref_format's simpler needs.
*/
-static
void collapse_slashes(char *dst, const char *src
)
+static
char *collapse_slashes(const char *refname
)
{
{
+ char *ret = xmalloc(strlen(refname) + 1);
char ch;
char prev = '/';
char ch;
char prev = '/';
+ char *cp = ret;
- while ((ch = *
src
++) != '\0') {
+ while ((ch = *
refname
++) != '\0') {
if (prev == '/' && ch == prev)
continue;
if (prev == '/' && ch == prev)
continue;
- *
dst
++ = ch;
+ *
cp
++ = ch;
prev = ch;
}
prev = ch;
}
- *dst = '\0';
+ *cp = '\0';
+ return ret;
}
static int check_ref_format_branch(const char *arg)
}
static int check_ref_format_branch(const char *arg)
@@
-47,9
+50,7
@@
static int check_ref_format_branch(const char *arg)
static void refname_format_print(const char *arg)
{
static void refname_format_print(const char *arg)
{
- char *refname = xmalloc(strlen(arg) + 1);
-
- collapse_slashes(refname, arg);
+ char *refname = collapse_slashes(arg);
printf("%s\n", refname);
}
printf("%s\n", refname);
}