Alejandro Colomar
63297e836d
lib/atoi/strtoi/, tests/: strto[iu]_(): 1 is an invalid base
...
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-11 22:42:58 -05:00
Alejandro Colomar
745281f295
lib/atoi/, *: Split files
2024-07-11 22:42:58 -05:00
Alejandro Colomar
7f86f893ab
lib/, po/, src/: get_uid(): Move function to "atoi/getnum.h"
...
Implement it as an inline function, and add restrict and ATTR_STRING()
and ATTR_ACCESS() as appropriate.
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-06-29 20:00:18 +02:00
Alejandro Colomar
a80715448b
lib/atoi/getnum.[ch]: get_fd(): Add function for parsing a file descriptor from a string
...
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-06-29 20:00:18 +02:00
Alejandro Colomar
1557fac0a5
lib/: get_pid(): Move function to "atoi/getnum.h"
...
Implement it as an inline function, and add restrict and ATTR_STRING()
and ATTR_ACCESS() as appropriate.
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-06-29 20:00:18 +02:00
Alejandro Colomar
f85a07f140
lib/, libsubid/, po/, src/: get_gid(): Move function to "atoi/getnum.h"
...
Implement it as an inline function, and add restrict and ATTR_STRING()
and ATTR_ACCESS() as appropriate.
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-06-29 20:00:18 +02:00
Alejandro Colomar
71e28359d1
lib/atoi/strtou_noneg.[ch], tests/: strtoul_noneg(): Remove unused function
...
All call sites have been replaced by functions from "atoi/a2i.h" and
"atoi/str2i.h" recently.
Reviewed-by: Iker Pedrosa <ipedrosa@redhat.com >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-05-27 16:32:09 +02:00
Alejandro Colomar
fb49de61b7
lib/atoi/strtou_noneg.[ch], tests/: strtoull_noneg(): Remove unused function
...
All call sites were replaced by a2i() recently.
Reviewed-by: Iker Pedrosa <ipedrosa@redhat.com >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-05-27 16:32:09 +02:00
Alejandro Colomar
b0498564b2
lib/atoi/a2i.[ch]: Add const-generic macros
...
These overloaded macros allow passing either a const or a non-const
endp, and will call the appropriate function. This kind of const
overloading has prior art in C23's string functions, such as memchr(3).
Martin suggested using an artificial function pointer in _Generic(3); it
allows switching on various types at the same time.
Also add a comment referring to liba2i's PDF manual for documentation.
Link: <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf#subsubsection.7.26.5.2 >
Link: <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114731 >
Link: <http://www.alejandro-colomar.es/share/dist/liba2i/git/HEAD/liba2i-HEAD.pdf >
Co-developed-by: Martin Uecker <muecker@gwdg.de >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-05-17 15:40:03 +02:00
Alejandro Colomar
f7fe4c5978
lib/atoi/: a2*(), str2*(): Add variants for other types
...
And type-generic macros that wrap them: a2i(), str2i()
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-03-29 14:29:13 -05:00
Alejandro Colomar
f39ac101ff
lib/, src/: str2*(): Rename functions and reorder parameters
...
This makes them compatible with liba2i's functions.
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-03-29 14:29:13 -05:00
Alejandro Colomar
b085c3f612
lib/atoi/: Add a2[su]l() and reimplement get[u]long() in terms of them
...
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-03-29 14:29:13 -05:00
Alejandro Colomar
27e236ca79
lib/, src/, po/: get[u]long(): Move functions to lib/atoi/str2i.h
...
And make them inline.
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-03-29 14:29:13 -05:00
Alejandro Colomar
f2b240595b
lib/atoi/strtou_noneg.[ch]: Add strtou_noneg()
...
It's like strtou_(), but rejects negative input, instead of silently
converting it to unsigned.
Link: <https://softwareengineering.stackexchange.com/a/449060/332848 >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-01-31 22:26:19 -06:00
Alejandro Colomar
34ff8edb63
lib/atoi/strtoi.[ch]: strtoi_(), strtou_(): Add functions
...
These functions are identical to strtoi(3bsd) and strtou(3bsd), except
for one important thing: if both ERANGE and ENOTSUP conditions happen,
the BSD functions report ENOTSUP, which is bogus; our strtoi_() and
strtou_() report ERANGE.
Link: <https://lists.sr.ht/~hallyn/shadow/%3CZZoQDms6Sv6e5SPE%40debian%3E >
Link: <https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=57828 >
Cc: Thorsten Glaser <tg@mirbsd.de >
Cc: christos <christos@netbsd.org >
Cc: roy <roy@netbsd.org >
Cc: Guillem Jover <guillem@hadrons.org >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-01-31 22:26:19 -06:00
Alejandro Colomar
4a2646f676
lib/atoi/strtou_noneg.[ch]: Add strtou[l]l_noneg()
...
These functions reject negative numbers, instead of silently converting
them into unsigned, which strtou[l]l(3) do.
Reviewed-by: Iker Pedrosa <ipedrosa@redhat.com >
Cc: "Serge E. Hallyn" <serge@hallyn.com >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-01-22 17:17:15 -06:00