summary refs log tree commit diff
path: root/src/parser.c
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2018-05-19 02:39:50 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2018-05-28 17:12:23 +0800
commita068bf7aa310e8d36ae11c2aec47af1446a18827 (patch)
treec5d39fa79dec6741fc1774c6ef09faffd002bef7 /src/parser.c
parentbuiltin: Mark more regular built-ins (diff)
downloaddash-a068bf7aa310e8d36ae11c2aec47af1446a18827.tar.gz
dash-a068bf7aa310e8d36ae11c2aec47af1446a18827.zip
exec: Stricter pathopt parsing
This patch changes the parsing of pathopt.  First of all only
%builtin and %func (with arbitrary suffixes) will be recognised.
Any other pathopt will be treated as a normal directory.

Furthermore, pathopt can now be specified before the directory,
rather than after it.  In fact, a future version may remove support
for pathopt suffixes.

Wherever the pathopt is placed, an optional % may be placed after
it to terminate the pathopt.

This is so that it is less likely that a genuine directory containing
a % sign is parsed as a pathopt.

Users of padvance outside of exec.c have also been modified:

1) cd(1) will always treat % characters as part of the path.
2) chkmail will continue to accept arbitrary pathopt.
3) find_dot_file will ignore the %builtin pathopt instead of trying
to do a stat in the accompanying directory (which is usually the
current directory).

The patch also removes the clearcmdentry optimisation where we
attempt to only partially flush the table where possible.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'src/parser.c')
0 files changed, 0 insertions, 0 deletions