xref: /aosp_15_r20/external/lzma/CPP/Common/StringToInt.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1 // Common/StringToInt.h
2 
3 #ifndef ZIP7_INC_COMMON_STRING_TO_INT_H
4 #define ZIP7_INC_COMMON_STRING_TO_INT_H
5 
6 #include "MyTypes.h"
7 
8 UInt32 ConvertStringToUInt32(const char *s, const char **end) throw();
9 UInt64 ConvertStringToUInt64(const char *s, const char **end) throw();
10 UInt32 ConvertStringToUInt32(const wchar_t *s, const wchar_t **end) throw();
11 UInt64 ConvertStringToUInt64(const wchar_t *s, const wchar_t **end) throw();
12 
13 // Int32 ConvertStringToInt32(const char *s, const char **end) throw();
14 Int32 ConvertStringToInt32(const wchar_t *s, const wchar_t **end) throw();
15 
16 UInt32 ConvertOctStringToUInt32(const char *s, const char **end) throw();
17 UInt64 ConvertOctStringToUInt64(const char *s, const char **end) throw();
18 
19 UInt32 ConvertHexStringToUInt32(const char *s, const char **end) throw();
20 UInt64 ConvertHexStringToUInt64(const char *s, const char **end) throw();
21 
22 #define Z7_PARSE_HEX_DIGIT(c, err_op) \
23 { c -= '0'; \
24   if (c > 9) { \
25     c -= 'A' - '0'; \
26     c &= ~0x20u; \
27     if (c > 5) { err_op } \
28     c += 10; \
29   } \
30 }
31 
32 const char *FindNonHexChar(const char *s) throw();
33 
34 // in: (dest != NULL)
35 // returns: pointer in dest array after last written byte
36 Byte *ParseHexString(const char *s, Byte *dest) throw();
37 
38 #endif
39