summaryrefslogtreecommitdiff
path: root/sys/src/cmd/rc/rc.h
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2022-02-16 18:07:21 +0000
committercinap_lenrek <cinap_lenrek@felloff.net>2022-02-16 18:07:21 +0000
commit755880b19f365c3f98eac5c7de1d8b25f773ace3 (patch)
tree28f1615267a197c780c3a48921f879c3b2b5529d /sys/src/cmd/rc/rc.h
parentc5c79d61e67f2c74a8d57eb1aeea87a23eeadd87 (diff)
rc: fix globbing with lists (thanks qwx)
Pattern matching with lists no longer works: ; ls /tmp/*.c /tmp/npage.c /tmp/pagedebug.c /tmp/pageold.c /tmp/scheduler.c /tmp/writeimagetest.c ; ls /tmp/^(*.c) ls: /tmp/*.c: '/tmp/*.c' directory entry not found ; 9fs dump ; bind /n/dump/2021/1002/amd64/bin/rc /bin/rc ; rc ; ls /tmp/^(*.c) /tmp/npage.c /tmp/pagedebug.c /tmp/pageold.c /tmp/scheduler.c /tmp/writeimagetest.c the fix: we have to propagate the glob attribute thru lists as well. before it was only handled for single words and propagated thru concatenations... the Xglob instruction now works on list, and we propagate the glob attribute thru PAREN and WORDS and ARGLIST nodes. also, avoid using negative numbers for the Tree.glob field as char might be unsigned on some targets.
Diffstat (limited to 'sys/src/cmd/rc/rc.h')
-rw-r--r--sys/src/cmd/rc/rc.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/src/cmd/rc/rc.h b/sys/src/cmd/rc/rc.h
index 2967a44b4..a688663d8 100644
--- a/sys/src/cmd/rc/rc.h
+++ b/sys/src/cmd/rc/rc.h
@@ -43,7 +43,7 @@ struct tree{
int type;
int rtype, fd0, fd1; /* details of REDIR PIPE DUP tokens */
int line;
- char glob; /* 0=string, 1=glob, -1=pattern see globprop() and noglobs() */
+ char glob; /* 0=string, 1=glob, 2=pattern see globprop() and noglobs() */
char quoted;
char iskw;
char *str;