Module Name: src Committed By: kre Date: Mon Dec 3 06:40:26 UTC 2018
Modified Files: src/bin/sh: alias.c alias.h eval.c input.c parser.c parser.h syntax.c syntax.h Log Message: Revamp aliases - as dumb an idea as they are, if we're going to have them, they should work as documented, not cause core dumps, reference after free, incorrect replacements, failing to implement alias after alias, ... The big comment that ended: This is a good idea ------- ***NOT*** and the hack it was describing are gone. Note that most of this was from original CVS version 1.1 code (ie: came from the original import, even before 4.4-Lite was merged. That is, May 1994. And no-one in 24.5 years noticed (or at least complained about) all the bugs (or at least, most of them)). With these changes, aliases ought to work (if you can call it that) as they are expected to by POSIX. Now if only we could get POSIX to delete them (or make them optional)... Changes partly inspired by similar changes made by FreeBSD, (as was the previous change to alias.c, forgot ack in commit log for that one, apologies) but done a little differently, and perhaps with a slightly better outcome. To generate a diff of this commit: cvs rdiff -u -r1.19 -r1.20 src/bin/sh/alias.c cvs rdiff -u -r1.8 -r1.9 src/bin/sh/alias.h cvs rdiff -u -r1.165 -r1.166 src/bin/sh/eval.c cvs rdiff -u -r1.63 -r1.64 src/bin/sh/input.c cvs rdiff -u -r1.155 -r1.156 src/bin/sh/parser.c cvs rdiff -u -r1.25 -r1.26 src/bin/sh/parser.h cvs rdiff -u -r1.6 -r1.7 src/bin/sh/syntax.c cvs rdiff -u -r1.10 -r1.11 src/bin/sh/syntax.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.