Browse Source

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
maint
Junio C Hamano 10 years ago
parent
commit
3bef3c12d6
  1. 2
      cache.h
  2. 8
      pager.c

2
cache.h

@ -1498,7 +1498,7 @@ extern const char *pager_program;
extern int pager_in_use(void); extern int pager_in_use(void);
extern int pager_use_color; extern int pager_use_color;
extern int term_columns(void); 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 int check_pager_config(const char *cmd);


extern const char *editor_program; extern const char *editor_program;

8
pager.c

@ -133,12 +133,12 @@ int term_columns(void)
/* /*
* How many columns do we need to show this number in decimal? * 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++) for (width = 1; number >= 10; width++)
i *= 10; number /= 10;
return width; return width;
} }



Loading…
Cancel
Save