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