aboutsummaryrefslogtreecommitdiffstats
path: root/field.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2017-05-23 22:12:00 +0300
committerArnold D. Robbins <arnold@skeeve.com>2017-05-23 22:12:00 +0300
commitef2615fa88cb2795bc229a04909132388500f929 (patch)
tree3d16281135cfff2a986b000e532fff4084f79a39 /field.c
parent8a10b9568c33917cc28930b439e96ee4ed7a46cd (diff)
parent21f45911879abbaf5933c65df1beac8399b30038 (diff)
downloadegawk-ef2615fa88cb2795bc229a04909132388500f929.tar.gz
egawk-ef2615fa88cb2795bc229a04909132388500f929.tar.bz2
egawk-ef2615fa88cb2795bc229a04909132388500f929.zip
Merge branch 'master' into feature/api-mpfr
Diffstat (limited to 'field.c')
-rw-r--r--field.c36
1 files changed, 18 insertions, 18 deletions
diff --git a/field.c b/field.c
index de1bae5f..54055adc 100644
--- a/field.c
+++ b/field.c
@@ -1175,39 +1175,39 @@ set_FIELDWIDTHS()
/*
* Detect an invalid base-10 integer, a valid value that
* is followed by something other than a blank or '\0',
- * or a value that is not in the range [1..INT_MAX].
+ * or a value that is not in the range [1..UINT_MAX].
*/
errno = 0;
tmp = strtoul(scan, &end, 10);
if (errno == 0 && *end == ':' && (0 < tmp && tmp <= UINT_MAX)) {
FIELDWIDTHS->fields[i].skip = tmp;
scan = end + 1;
- if (*scan == '*')
- goto got_star;
+ if (*scan == '-') {
+ fatal_error = true;
+ break;
+ }
// try scanning for field width
tmp = strtoul(scan, &end, 10);
}
else
FIELDWIDTHS->fields[i].skip = 0;
- if (*scan == '*') {
- got_star:
- for (scan++; is_blank(*scan); scan++)
- continue;
-
- if (*scan != '\0')
- fatal(_("`*' must be the last designator in FIELDWIDTHS"));
-
- FIELDWIDTHS->fields[i].len = UINT_MAX;
- FIELDWIDTHS->nf = i+1;
- break;
- }
-
if (errno != 0
|| (*end != '\0' && ! is_blank(*end))
- || !(0 < tmp && tmp <= INT_MAX)
+ || !(0 < tmp && tmp <= UINT_MAX)
) {
- fatal_error = true;
+ if (*scan == '*') {
+ for (scan++; is_blank(*scan); scan++)
+ continue;
+
+ if (*scan != '\0')
+ fatal(_("`*' must be the last designator in FIELDWIDTHS"));
+
+ FIELDWIDTHS->fields[i].len = UINT_MAX;
+ FIELDWIDTHS->nf = i+1;
+ }
+ else
+ fatal_error = true;
break;
}
FIELDWIDTHS->fields[i].len = tmp;