This function will be used in calculating diff --stat graph width. The name is changed because the function works for any number. The function is moved from builtins/blame.c to pager.c because it will be used not only in builtins/blame.c. --- builtin/blame.c | 18 +++--------------- cache.h | 1 + pager.c | 12 ++++++++++++ 3 files changed, 16 insertions(+), 15 deletions(-) This is another function to be exported. I hope it can be exported together with term_columns(). I'll use it the next version of the diff --stat patch. diff --git a/builtin/blame.c b/builtin/blame.c index 5a67c20..f028e8a 100644 --- a/builtin/blame.c +++ b/builtin/blame.c @@ -1829,18 +1829,6 @@ static int read_ancestry(const char *graft_file) } /* - * How many columns do we need to show line numbers in decimal? - */ -static int lineno_width(int lines) -{ - int i, width; - - for (width = 1, i = 10; i <= lines; width++) - i *= 10; - return width; -} - -/* * How many columns do we need to show line numbers, authors, * and filenames? */ @@ -1880,9 +1868,9 @@ static void find_alignment(struct scoreboard *sb, int *option) if (largest_score < ent_score(sb, e)) largest_score = ent_score(sb, e); } - max_orig_digits = lineno_width(longest_src_lines); - max_digits = lineno_width(longest_dst_lines); - max_score_digits = lineno_width(largest_score); + max_orig_digits = decimal_width(longest_src_lines); + max_digits = decimal_width(longest_dst_lines); + max_score_digits = decimal_width(largest_score); } /* diff --git a/cache.h b/cache.h index 2f30b3a..3857dfd 100644 --- a/cache.h +++ b/cache.h @@ -1176,6 +1176,7 @@ extern const char *pager_program; extern int pager_in_use(void); extern int pager_use_color; extern int term_columns(void); +extern int decimal_width(int number); extern const char *editor_program; extern const char *askpass_program; diff --git a/pager.c b/pager.c index b8049a4..b6d44ef 100644 --- a/pager.c +++ b/pager.c @@ -155,3 +155,15 @@ int term_columns(void) term_columns_cache = 80; return term_columns_cache; } + +/* + * How many columns do we need to show numbers in decimal? + */ +int decimal_width(int number) +{ + int i, width; + + for (width = 1, i = 10; i <= number; width++) + i *= 10; + return width; +} -- 1.7.9.3.g2429d.dirty -- 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