diff options
author | Nicholas Noll <nbnoll@eml.cc> | 2021-10-19 14:16:54 -0700 |
---|---|---|
committer | Nicholas Noll <nbnoll@eml.cc> | 2021-10-19 14:16:54 -0700 |
commit | 6d50d5b97d49a74a8faf587ec2bbf234626adf0c (patch) | |
tree | ff09e03ad96fc873b10027120f38a2ae382ae916 /sys/cmd/rc/code.c | |
parent | 2b53bca326decd50012883f0cff3b5316a3e100d (diff) |
Feat(rc): added subshell commands and cd builtin
Slowly chipping away at a decent feature list.
Subshell commands are executed by @{ ... }.
Diffstat (limited to 'sys/cmd/rc/code.c')
-rw-r--r-- | sys/cmd/rc/code.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sys/cmd/rc/code.c b/sys/cmd/rc/code.c index 719e63b..38cc06a 100644 --- a/sys/cmd/rc/code.c +++ b/sys/cmd/rc/code.c @@ -110,6 +110,18 @@ walk(Tree *node) storepc(addr); break; + case Tsubshell: + emitf(Xsubshell); + addr = emiti(0); + walk(node->child[0]); + emitf(Xexit); + storepc(addr); + break; + + case Tbang: + walk(node->child[0]); + emitf(Xbang); + case Tword: emitf(Xword); emits(strdup(node->str)); |