strparse: switch to curl_off_t as base data type

- add hex and octal parsers to the Curl_str_* family
- make curlx_strtoofft use these parsers
- remove all use of strtol() and strtoul() in library code
- generally use Curl_str_* more than strtoofft, for stricter parsing
- supports 64-bit universally, instead of 'long' which differs in size
  between platforms

Extended the unit test 1664 to verify hex and octal parsing.

Closes #16336
This commit is contained in:
Daniel Stenberg 2025-02-14 11:29:08 +01:00
parent 876db1070b
commit b4538ec522
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
46 changed files with 538 additions and 497 deletions

View file

@ -42,6 +42,8 @@ CURLX_CFILES = \
../lib/dynbuf.c \
../lib/nonblock.c \
../lib/strtoofft.c \
../lib/strparse.c \
../lib/strcase.c \
../lib/timediff.c \
../lib/version_win32.c \
../lib/warnless.c
@ -53,6 +55,8 @@ CURLX_HFILES = \
../lib/dynbuf.h \
../lib/nonblock.h \
../lib/strtoofft.h \
../lib/strparse.h \
../lib/strcase.h \
../lib/timediff.h \
../lib/version_win32.h \
../lib/warnless.h