allow escaped path-separator slashes in glob
authorRich Felker <dalias@aerifal.cx>
Sat, 13 Oct 2018 04:55:48 +0000 (00:55 -0400)
committerRich Felker <dalias@aerifal.cx>
Sat, 13 Oct 2018 05:28:07 +0000 (01:28 -0400)
commit481006fd8887b80c4f794085179047e28102b01a
tree88d0d14996530069c6c4116cb73a9d40b0465ac0
parentd44b07fc904f6a0d31ba025f3e9f423c1e47547e
allow escaped path-separator slashes in glob

previously (before and after rewrite), spurious escaping of path
separators as \/ was not treated the same as /, but rather got split
as an unpaired \ at the end of the fnmatch pattern and an unescaped /,
resulting in a mismatch/error.

for the case of \/ as part of the maximal literal prefix, remove the
explicit rejection of it and move the handling of / below escape
processing.

for the case of \/ after a proper glob pattern, it's hard to parse the
pattern, so don't. instead cheat and count repetitions of \ prior to
the already-found / character. if there are an odd number, the last is
escaping the /, so back up the split position by one. now the
char clobbered by null termination is variable, so save it and restore
as needed.
src/regex/glob.c