mirror of
https://github.com/sheumann/hush.git
synced 2025-01-03 00:31:16 +00:00
awk: fix long field separators case. By Ian Wienand (ianw AT vmware.com)
This commit is contained in:
parent
32a385f5b0
commit
67b5eeb933
@ -1574,7 +1574,10 @@ static int awk_split(const char *s, node *spl, char **slist)
|
|||||||
if (s[l]) pmatch[0].rm_eo++;
|
if (s[l]) pmatch[0].rm_eo++;
|
||||||
}
|
}
|
||||||
memcpy(s1, s, l);
|
memcpy(s1, s, l);
|
||||||
s1[l] = '\0';
|
/* make sure we remove *all* of the separator chars */
|
||||||
|
while (l < pmatch[0].rm_eo) {
|
||||||
|
s1[l++] = '\0';
|
||||||
|
}
|
||||||
nextword(&s1);
|
nextword(&s1);
|
||||||
s += pmatch[0].rm_eo;
|
s += pmatch[0].rm_eo;
|
||||||
} while (*s);
|
} while (*s);
|
||||||
|
@ -22,6 +22,12 @@ testing "awk hex const 1" "awk '{ print or(0xffffffff,1) }'" "4.29497e+09\n" ""
|
|||||||
testing "awk hex const 2" "awk '{ print or(0x80000000,1) }'" "2.14748e+09\n" "" "\n"
|
testing "awk hex const 2" "awk '{ print or(0x80000000,1) }'" "2.14748e+09\n" "" "\n"
|
||||||
testing "awk oct const" "awk '{ print or(01234,1) }'" "669\n" "" "\n"
|
testing "awk oct const" "awk '{ print or(01234,1) }'" "669\n" "" "\n"
|
||||||
|
|
||||||
|
# long field seps requiring regex
|
||||||
|
testing "awk long field sep" "awk -F-- '{ print NF, length(\$NF), \$NF }'" \
|
||||||
|
"2 0 \n3 0 \n4 0 \n5 0 \n" \
|
||||||
|
"" \
|
||||||
|
"a--\na--b--\na--b--c--\na--b--c--d--"
|
||||||
|
|
||||||
# '@(samp|code|file)\{' is an invalid extended regex (unmatched '{'),
|
# '@(samp|code|file)\{' is an invalid extended regex (unmatched '{'),
|
||||||
# but gawk 3.1.5 does not bail out on it.
|
# but gawk 3.1.5 does not bail out on it.
|
||||||
testing "awk gsub falls back to non-extended-regex" \
|
testing "awk gsub falls back to non-extended-regex" \
|
||||||
|
Loading…
Reference in New Issue
Block a user