diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2022-06-29 18:21:58 +0200 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2022-07-08 19:17:35 +0200 |
commit | e6a19ba1a05f77f051187a6b1a828ee6d39ce052 (patch) | |
tree | c8a1566b10883edbe4a8bc9a724461f4003aaa10 /lib/tar/number.c | |
parent | 359d71e90050a8b83f7bc7d2ecd4ff29c477cc22 (diff) |
Cleanup: split libtar header, move to sub directory
Some of the on-disk format internals are moved to a separate header
and some of the stuff from internal.h is moved to that format header.
C++ guards are added in addtion.
Everything PAX related is moved to pax_header.c, some internal
functions are marked as static.
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'lib/tar/number.c')
-rw-r--r-- | lib/tar/number.c | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/lib/tar/number.c b/lib/tar/number.c index 50cb658..2f179df 100644 --- a/lib/tar/number.c +++ b/lib/tar/number.c @@ -6,7 +6,10 @@ */ #include "config.h" -#include "internal.h" +#include "tar/format.h" + +#include <ctype.h> +#include <stdio.h> int read_octal(const char *str, int digits, sqfs_u64 *out) { @@ -31,7 +34,7 @@ int read_octal(const char *str, int digits, sqfs_u64 *out) return 0; } -int read_binary(const char *str, int digits, sqfs_u64 *out) +static int read_binary(const char *str, int digits, sqfs_u64 *out) { sqfs_u64 x, ov, result = 0; bool first = true; @@ -74,20 +77,3 @@ int read_number(const char *str, int digits, sqfs_u64 *out) return read_octal(str, digits, out); } - -int pax_read_decimal(const char *str, sqfs_u64 *out) -{ - sqfs_u64 result = 0; - - while (*str >= '0' && *str <= '9') { - if (result > 0xFFFFFFFFFFFFFFFFUL / 10) { - fputs("numeric overflow parsing pax header\n", stderr); - return -1; - } - - result = (result * 10) + (*(str++) - '0'); - } - - *out = result; - return 0; -} |