diff options
author | tjr <tjr@FreeBSD.org> | 2002-06-04 12:59:12 +0000 |
---|---|---|
committer | tjr <tjr@FreeBSD.org> | 2002-06-04 12:59:12 +0000 |
commit | 33d27dd210c9b2a95f1ab802306f257894298a4f (patch) | |
tree | 20257442bc2cc5cae672c11d72306aa5eae7e200 /bin/sh/alias.c | |
parent | f5f8d2529997c1813e19eef4f358b49317c1698b (diff) | |
download | FreeBSD-src-33d27dd210c9b2a95f1ab802306f257894298a4f.zip FreeBSD-src-33d27dd210c9b2a95f1ab802306f257894298a4f.tar.gz |
Quote alias values in the output of the alias(1) builtin so they are
suitable for re-input to the shell (SUSv3)
Diffstat (limited to 'bin/sh/alias.c')
-rw-r--r-- | bin/sh/alias.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/bin/sh/alias.c b/bin/sh/alias.c index b899edb..f6b462b 100644 --- a/bin/sh/alias.c +++ b/bin/sh/alias.c @@ -207,8 +207,11 @@ aliascmd(int argc, char **argv) for (i = 0; i < ATABSIZE; i++) for (ap = atab[i]; ap; ap = ap->next) { - if (*ap->name != '\0') - out1fmt("alias %s=%s\n", ap->name, ap->val); + if (*ap->name != '\0') { + out1fmt("alias %s=", ap->name); + out1qstr(ap->val); + out1c('\n'); + } } return (0); } @@ -217,8 +220,11 @@ aliascmd(int argc, char **argv) if ((ap = lookupalias(n, 0)) == NULL) { outfmt(out2, "alias: %s not found\n", n); ret = 1; - } else - out1fmt("alias %s=%s\n", n, ap->val); + } else { + out1fmt("alias %s=", n); + out1qstr(ap->val); + out1c('\n'); + } else { *v++ = '\0'; setalias(n, v); |