Use single is_octal_digit function

* src/list.c (ISOCTAL): Remove.
(is_octal_digit): New static function.
All uses of ISOCTAL and ISODIGIT replaced with is_octal_digit.
This commit is contained in:
Paul Eggert
2023-09-12 00:33:15 -05:00
parent e35fe3a77c
commit 05fcfaafb6

View File

@@ -606,7 +606,11 @@ read_header (union block **return_block, struct tar_stat_info *info,
return status; return status;
} }
#define ISOCTAL(c) ((c)>='0'&&(c)<='7') static bool
is_octal_digit (char c)
{
return '0' <= c && c <= '7';
}
/* Decode things from a file HEADER block into STAT_INFO, also setting /* Decode things from a file HEADER block into STAT_INFO, also setting
*FORMAT_POINTER depending on the header block format. If *FORMAT_POINTER depending on the header block format. If
@@ -632,9 +636,9 @@ decode_header (union block *header, struct tar_stat_info *stat_info,
if (strcmp (header->header.magic, TMAGIC) == 0) if (strcmp (header->header.magic, TMAGIC) == 0)
{ {
if (header->star_header.prefix[130] == 0 if (header->star_header.prefix[130] == 0
&& ISOCTAL (header->star_header.atime[0]) && is_octal_digit (header->star_header.atime[0])
&& header->star_header.atime[11] == ' ' && header->star_header.atime[11] == ' '
&& ISOCTAL (header->star_header.ctime[0]) && is_octal_digit (header->star_header.ctime[0])
&& header->star_header.ctime[11] == ' ') && header->star_header.ctime[11] == ' ')
format = STAR_FORMAT; format = STAR_FORMAT;
else if (stat_info->xhdr.size) else if (stat_info->xhdr.size)
@@ -782,7 +786,7 @@ from_header (char const *where0, size_t digs, char const *type,
} }
value = 0; value = 0;
if (ISODIGIT (*where)) if (is_octal_digit (*where))
{ {
char const *where1 = where; char const *where1 = where;
bool overflow = false; bool overflow = false;
@@ -790,7 +794,7 @@ from_header (char const *where0, size_t digs, char const *type,
for (;;) for (;;)
{ {
value += *where++ - '0'; value += *where++ - '0';
if (where == lim || ! ISODIGIT (*where)) if (where == lim || ! is_octal_digit (*where))
break; break;
overflow |= value != (value << LG_8 >> LG_8); overflow |= value != (value << LG_8 >> LG_8);
value <<= LG_8; value <<= LG_8;
@@ -813,7 +817,7 @@ from_header (char const *where0, size_t digs, char const *type,
{ {
value += 7 - digit; value += 7 - digit;
where++; where++;
if (where == lim || ! ISODIGIT (*where)) if (where == lim || ! is_octal_digit (*where))
break; break;
digit = *where - '0'; digit = *where - '0';
overflow |= value != (value << LG_8 >> LG_8); overflow |= value != (value << LG_8 >> LG_8);