diff options
Diffstat (limited to 'strings')
-rw-r--r-- | strings/longlong2str.c | 7 | ||||
-rw-r--r-- | strings/my_vsnprintf.c | 14 |
2 files changed, 11 insertions, 10 deletions
diff --git a/strings/longlong2str.c b/strings/longlong2str.c index d7de5bb0f7c..61b45b731c4 100644 --- a/strings/longlong2str.c +++ b/strings/longlong2str.c @@ -46,11 +46,12 @@ This assumes that longlong multiplication is faster than longlong division. */ -char *longlong2str(longlong val,char *dst,int radix) +char *longlong2str(longlong val,char *dst,int radix, int upcase) { char buffer[65]; register char *p; long long_val; + const char *dig_vec= upcase ? _dig_vec_upper : _dig_vec_lower; ulonglong uval= (ulonglong) val; if (radix < 0) @@ -80,14 +81,14 @@ char *longlong2str(longlong val,char *dst,int radix) { ulonglong quo= uval/(uint) radix; uint rem= (uint) (uval- quo* (uint) radix); - *--p = _dig_vec_upper[rem]; + *--p = _dig_vec[rem]; uval= quo; } long_val= (long) uval; while (long_val != 0) { long quo= long_val/radix; - *--p = _dig_vec_upper[(uchar) (long_val - quo*radix)]; + *--p = _dig_vec[(uchar) (long_val - quo*radix)]; long_val= quo; } while ((*dst++ = *p++) != 0) ; diff --git a/strings/my_vsnprintf.c b/strings/my_vsnprintf.c index 79267461c47..fbe4c1bdf6f 100644 --- a/strings/my_vsnprintf.c +++ b/strings/my_vsnprintf.c @@ -235,19 +235,19 @@ static char *process_int_arg(char *to, char *end, size_t length, store_start= buff; if (arg_type == 'd') - store_end= int10_to_str(par, store_start, -10); + store_end= longlong10_to_str(par, store_start, -10); else if (arg_type == 'u') - store_end= int10_to_str(par, store_start, 10); + store_end= longlong10_to_str(par, store_start, 10); else if (arg_type == 'p') { store_start[0]= '0'; store_start[1]= 'x'; - store_end= int2str(par, store_start + 2, 16, 0); + store_end= longlong2str(par, store_start + 2, 16, 0); } else { DBUG_ASSERT(arg_type == 'X' || arg_type =='x'); - store_end= int2str(par, store_start, 16, (arg_type == 'X')); + store_end= longlong2str(par, store_start, 16, (arg_type == 'X')); } if ((res_length= (size_t) (store_end - store_start)) > to_length) @@ -430,9 +430,9 @@ start: { /* Integer parameter */ longlong larg; - length= ((print_arr[i].flags & LENGTH_ARG) ? - args_arr[print_arr[i].length].longlong_arg : - (longlong) print_arr[i].length); + length= (int) ((print_arr[i].flags & LENGTH_ARG) ? + args_arr[print_arr[i].length].longlong_arg : + (longlong) print_arr[i].length); if (args_arr[print_arr[i].arg_idx].have_longlong) larg = args_arr[print_arr[i].arg_idx].longlong_arg; |