diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-03-05 13:12:59 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-03-05 13:12:59 -0800 |
commit | 3bef3c12d6c0f5be0e95eb143fdd32583bae7a74 (patch) | |
tree | b0e85bc4ca5747690f50e3aa1a62a07b3fc7e7c1 | |
parent | Merge branch 'jc/push-cert' into maint (diff) | |
parent | decimal_width: avoid integer overflow (diff) | |
download | tgif-3bef3c12d6c0f5be0e95eb143fdd32583bae7a74.tar.xz |
Merge branch 'jk/decimal-width-for-uintmax' into maint
We didn't format an integer that wouldn't fit in "int" but in
"uintmax_t" correctly.
* jk/decimal-width-for-uintmax:
decimal_width: avoid integer overflow
-rw-r--r-- | cache.h | 2 | ||||
-rw-r--r-- | pager.c | 8 |
2 files changed, 5 insertions, 5 deletions
@@ -1498,7 +1498,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); +extern int decimal_width(uintmax_t); extern int check_pager_config(const char *cmd); extern const char *editor_program; @@ -133,12 +133,12 @@ int term_columns(void) /* * How many columns do we need to show this number in decimal? */ -int decimal_width(int number) +int decimal_width(uintmax_t number) { - int i, width; + int width; - for (width = 1, i = 10; i <= number; width++) - i *= 10; + for (width = 1; number >= 10; width++) + number /= 10; return width; } |