summaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
Diffstat (limited to 'shell')
-rw-r--r--shell/hush.c26
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"