summaryrefslogtreecommitdiff
path: root/sys/src/cmd/rc/code.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2016-06-30 19:09:27 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2016-06-30 19:09:27 +0200
commit3ec84c5d7364c8ed4602561743bf35e3b399e53d (patch)
tree7a61b62553d8f938b223ca35d91b30fdab048fbb /sys/src/cmd/rc/code.c
parentcabbe0a84c7aae53316347185a5bdf8095bac9c8 (diff)
rc: implement 9atoms ` split {command} syntax extension
Diffstat (limited to 'sys/src/cmd/rc/code.c')
-rw-r--r--sys/src/cmd/rc/code.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/src/cmd/rc/code.c b/sys/src/cmd/rc/code.c
index 9ec637988..927273275 100644
--- a/sys/src/cmd/rc/code.c
+++ b/sys/src/cmd/rc/code.c
@@ -125,9 +125,19 @@ outcode(tree *t, int eflag)
emitf(Xconc);
break;
case '`':
+ emitf(Xmark);
+ if(c0){
+ outcode(c0, 0);
+ emitf(Xglob);
+ } else {
+ emitf(Xmark);
+ emitf(Xword);
+ emits(estrdup("ifs"));
+ emitf(Xdol);
+ }
emitf(Xbackq);
p = emiti(0);
- outcode(c0, 0);
+ outcode(c1, 0);
emitf(Xexit);
stuffdot(p);
break;