diff options
| author | MySQL Team <mysql@php.net> | 2000-08-22 09:02:46 +0000 | 
|---|---|---|
| committer | MySQL Team <mysql@php.net> | 2000-08-22 09:02:46 +0000 | 
| commit | 4b1380e31c0f6e76c629611c7ba8c4e2e961a2fd (patch) | |
| tree | 853d1881366287956bbfa7edf2f4edc0ae62637e /ext/mysql/libmysql/longlong2str.c | |
| parent | bac08af4cb97ea7e9db18a4267fb070264792f2f (diff) | |
| download | php-git-4b1380e31c0f6e76c629611c7ba8c4e2e961a2fd.tar.gz | |
New files for MySQL 3.23.23 client library. New files are for qouting
using different character sets.
Diffstat (limited to 'ext/mysql/libmysql/longlong2str.c')
| -rw-r--r-- | ext/mysql/libmysql/longlong2str.c | 68 | 
1 files changed, 65 insertions, 3 deletions
diff --git a/ext/mysql/libmysql/longlong2str.c b/ext/mysql/libmysql/longlong2str.c index 9759208266..5c4eaf98c8 100644 --- a/ext/mysql/libmysql/longlong2str.c +++ b/ext/mysql/libmysql/longlong2str.c @@ -1,3 +1,20 @@ +/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB +    +   This library is free software; you can redistribute it and/or +   modify it under the terms of the GNU Library General Public +   License as published by the Free Software Foundation; either +   version 2 of the License, or (at your option) any later version. +    +   This library is distributed in the hope that it will be useful, +   but WITHOUT ANY WARRANTY; without even the implied warranty of +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU +   Library General Public License for more details. +    +   You should have received a copy of the GNU Library General Public +   License along with this library; if not, write to the Free +   Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +   MA 02111-1307, USA */ +  /*    Defines: longlong2str(); @@ -66,16 +83,61 @@ char *longlong2str(longlong val,char *dst,int radix)      ulonglong quo=(ulonglong) val/(uint) radix;      uint rem= (uint) (val- quo* (uint) radix);      *--p = _dig_vec[rem]; -      val= quo; +    val= quo;    }    long_val= (long) val;    while (long_val != 0)    { -    *--p = _dig_vec[long_val%radix]; -    long_val /= radix; +    long quo= long_val/radix; +    *--p = _dig_vec[(uchar) (long_val - quo*radix)]; +    long_val= quo;    }    while ((*dst++ = *p++) != 0) ;    return dst-1;  }  #endif + +#ifndef longlong10_to_str +char *longlong10_to_str(longlong val,char *dst,int radix) +{ +  char buffer[65]; +  register char *p; +  long long_val; + +  if (radix < 0) +  { +    if (val < 0) +    { +      *dst++ = '-'; +      val = -val; +    } +  } + +  if (val == 0) +  { +    *dst++='0'; +    *dst='\0'; +    return dst; +  } +  p = &buffer[sizeof(buffer)-1]; +  *p = '\0'; + +  while ((ulonglong) val > (ulonglong) LONG_MAX) +  { +    ulonglong quo=(ulonglong) val/(uint) 10; +    uint rem= (uint) (val- quo* (uint) 10); +    *--p = _dig_vec[rem]; +    val= quo; +  } +  long_val= (long) val; +  while (long_val != 0) +  { +    long quo= long_val/10; +    *--p = _dig_vec[(uchar) (long_val - quo*10)]; +    long_val= quo; +  } +  while ((*dst++ = *p++) != 0) ; +  return dst-1; +} +#endif  | 
