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