Annotation of elwix/tools/oldlzma/SRC/Common/StringToInt.cpp, revision 1.1
1.1 ! misho 1: // Common/StringToInt.cpp
! 2:
! 3: #include "StdAfx.h"
! 4:
! 5: #include "StringToInt.h"
! 6:
! 7: UInt64 ConvertStringToUInt64(const char *s, const char **end)
! 8: {
! 9: UInt64 result = 0;
! 10: while(true)
! 11: {
! 12: char c = *s;
! 13: if (c < '0' || c > '9')
! 14: {
! 15: if (end != NULL)
! 16: *end = s;
! 17: return result;
! 18: }
! 19: result *= 10;
! 20: result += (c - '0');
! 21: s++;
! 22: }
! 23: }
! 24:
! 25: UInt64 ConvertStringToUInt64(const wchar_t *s, const wchar_t **end)
! 26: {
! 27: UInt64 result = 0;
! 28: while(true)
! 29: {
! 30: wchar_t c = *s;
! 31: if (c < '0' || c > '9')
! 32: {
! 33: if (end != NULL)
! 34: *end = s;
! 35: return result;
! 36: }
! 37: result *= 10;
! 38: result += (c - '0');
! 39: s++;
! 40: }
! 41: }
! 42:
! 43:
! 44: Int64 ConvertStringToInt64(const char *s, const char **end)
! 45: {
! 46: if (*s == '-')
! 47: return -(Int64)ConvertStringToUInt64(s + 1, end);
! 48: return ConvertStringToUInt64(s, end);
! 49: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>