diff options
Diffstat (limited to 'shell')
-rw-r--r-- | shell/hush.c | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/shell/hush.c b/shell/hush.c index c713ce8..1937d24 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -37,9 +37,14 @@ * handle the recursion implicit in the various substitutions, especially * across continuation lines. * - * POSIX syntax not implemented: + * TODOs: + * grep for "TODO" and fix (some of them are easy) + * special variables (done: PWD, PPID, RANDOM) + * tilde expansion * aliases - * Tilde Expansion + * follow IFS rules more precisely, including update semantics + * builtins mandated by standards we don't support: + * [un]alias, command, fc, getopts, newgrp, readonly, times * * Bash compat TODO: * redirection of stdout+stderr: &> and >& @@ -49,20 +54,13 @@ * process substitution: <(list) and >(list) * =~: regex operator * let EXPR [EXPR...] - * Each EXPR is an arithmetic expression (ARITHMETIC EVALUATION) - * If the last arg evaluates to 0, let returns 1; 0 otherwise. - * NB: let `echo 'a=a + 1'` - error (IOW: multi-word expansion is used) + * Each EXPR is an arithmetic expression (ARITHMETIC EVALUATION) + * If the last arg evaluates to 0, let returns 1; 0 otherwise. + * NB: let `echo 'a=a + 1'` - error (IOW: multi-word expansion is used) * ((EXPR)) - * The EXPR is evaluated according to ARITHMETIC EVALUATION. - * This is exactly equivalent to let "EXPR". + * The EXPR is evaluated according to ARITHMETIC EVALUATION. + * This is exactly equivalent to let "EXPR". * $[EXPR]: synonym for $((EXPR)) - * - * TODOs: - * grep for "TODO" and fix (some of them are easy) - * special variables (done: PWD, PPID, RANDOM) - * follow IFS rules more precisely, including update semantics - * builtins mandated by standards we don't support: - * [un]alias, command, fc, getopts, newgrp, readonly, times * export builtin should be special, its arguments are assignments * and therefore expansion of them should be "one-word" expansion: * $ export i=`echo 'a b'` # export has one arg: "i=a b" |