From 38df54982f148e40ca9cd2cb779df0fe0acf4b81 Mon Sep 17 00:00:00 2001 From: Martijn Dekker Date: Wed, 13 May 2020 15:16:24 +0100 Subject: [PATCH] TODO: add items about broken default aliases (cherry picked from commit a607aca927b8ffc3ef9210e7f0028cd2eae75c20) --- TODO | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/TODO b/TODO index 4de97417c..ae9327cb3 100644 --- a/TODO +++ b/TODO @@ -1,5 +1,27 @@ TODO for AT&T ksh93, 93u+m bugfix branch +______ +Fix or remove broken default aliases: + +- Remove alias times='{ { time;} 2>&1;}' which does not produce POSIX- + compliant output; reimplement as a proper POSIX-compliant builtin. + In any case, implementing a standard utility as an alias is unacceptable + as 'unalias -a' (remove all aliases) should not remove standard utilities! + Backport the builtin from the abandoned Vashisht/Rader branch: + https://github.com/att/ast/pull/1332 + +- Remove alias command='command '. Continuing alias substitution after + 'command' (due to the final space in the alias) is inherently broken, as + aliases may contain arbitrary shell grammar. For instance, when combining + this default alias with the default 'times' alias ('command times'), which + is perfectly valid per POSIX, you get a syntax error! + +- Remove alias nohup='nohup '. Same reason as for 'command ' above. + +- Remove pointless default aliases 'fc' and 'type'; these are already + implemented as normal shell builtins. Add man page entries for these. + +______ Fix currently known bugs affecting shell scripting. These are identified by their modernish IDs. For exact details, see code/comments in: https://github.com/modernish/modernish/tree/0.16/lib/modernish/cap/