The manual size computations here are correct, but using strip_suffix makes that obvious, and hopefully communicates the intent of the code more clearly. Signed-off-by: Jeff King <peff@xxxxxxxx> --- builtin/name-rev.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/builtin/name-rev.c b/builtin/name-rev.c index 8a3a0cd..0377fc1 100644 --- a/builtin/name-rev.c +++ b/builtin/name-rev.c @@ -55,16 +55,15 @@ copy_data: parents; parents = parents->next, parent_number++) { if (parent_number > 1) { - int len = strlen(tip_name); + size_t len; char *new_name; - if (len > 2 && !strcmp(tip_name + len - 2, "^0")) - len -= 2; + strip_suffix(tip_name, "^0", &len); if (generation > 0) - new_name = xstrfmt("%.*s~%d^%d", len, tip_name, + new_name = xstrfmt("%.*s~%d^%d", (int)len, tip_name, generation, parent_number); else - new_name = xstrfmt("%.*s^%d", len, tip_name, + new_name = xstrfmt("%.*s^%d", (int)len, tip_name, parent_number); name_rev(parents->item, new_name, 0, -- 2.6.0.rc2.408.ga2926b9 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html