mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +00:00
Make the 'history' and 'r' commands builtins (#76)
With this change no more preset aliases exist, so the preset alias tables can be safely removed. All ksh commands can now be used without 'unalias -a' removing them, even in interactive shells. Additionally, the history and r commands are no longer limited to being used in interactive shells. src/cmd/ksh93/bltins/hist.c: - Implement the history and r commands as builtins. Also guarantee lflag is set to one by avoiding 'lflag++'. src/cmd/ksh93/Makefile, src/cmd/ksh93/Mamfile, src/cmd/ksh93/sh/main.c, src/cmd/ksh93/sh/init.c, src/cmd/ksh93/data/aliases.c: - Remove the table of predefined aliases because the last few have been removed. During init the alias tree is now initialized the same way as the function tree. src/cmd/ksh93/bltins/typeset.c: - Remove the bugfix for unsetting predefined aliases because it is now a no-op. Aliases are no longer able to have the NV_NOFREE attribute. src/cmd/ksh93/tests/alias.sh: - Remove the regression test for unsetting predefined aliases since those no longer exist. src/cmd/ksh93/data/builtins.c: - Update sh_opthist[] for 'hist --man', etc. src/cmd/ksh93/sh.1: - Remove the list of preset aliases since those no longer exist. - Document history and r as builtins instead of preset aliases. Co-authored-by: Martijn Dekker <martijn@inlv.org>
This commit is contained in:
parent
17f81ebedb
commit
03224ae3af
13 changed files with 47 additions and 100 deletions
|
@ -94,6 +94,8 @@ const struct shtable3 shtab_builtins[] =
|
|||
"exit", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(return),
|
||||
"fc", NV_BLTIN|BLT_ENV|BLT_EXIT, bltin(hist),
|
||||
"hist", NV_BLTIN|BLT_ENV|BLT_EXIT, bltin(hist),
|
||||
"history", NV_BLTIN|BLT_ENV|BLT_EXIT, bltin(hist),
|
||||
"r", NV_BLTIN|BLT_ENV|BLT_EXIT, bltin(hist),
|
||||
"readonly", NV_BLTIN|BLT_ENV|BLT_SPC|BLT_DCL,bltin(readonly),
|
||||
"shift", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(shift),
|
||||
"trap", NV_BLTIN|BLT_ENV|BLT_SPC, bltin(trap),
|
||||
|
@ -953,11 +955,15 @@ const char sh_opthash[] =
|
|||
;
|
||||
|
||||
const char sh_opthist[] =
|
||||
"[-1cn?@(#)$Id: hist (AT&T Research) 2000-04-02 $\n]"
|
||||
"[-1cn?@(#)$Id: hist (AT&T Research/ksh93) 2020-07-16 $\n]"
|
||||
USAGE_LICENSE
|
||||
"[+NAME?\f?\f - process command history list]"
|
||||
"[+DESCRIPTION?\b\f?\f\b lists, edits, or re-executes, commands "
|
||||
"[+NAME?fc, hist, history, r - process command history list]"
|
||||
"[+DESCRIPTION?\bhist\b lists, edits, or re-executes commands "
|
||||
"previously entered into the current shell environment.]"
|
||||
"[+?The following command equivalents exist: "
|
||||
"\bfc\b is \bhist\b; "
|
||||
"\bhistory\b is \bhist -l\b (list history); "
|
||||
"and \br\b is \bhist -s\b (reexecute command).]"
|
||||
"[+?The command history list references commands by number. The first number "
|
||||
"in the list is selected arbitrarily. The relationship of a number "
|
||||
"to its command does not change during a login session. When the "
|
||||
|
@ -965,11 +971,11 @@ USAGE_LICENSE
|
|||
"maintains the ordering.]"
|
||||
"[+?When commands are edited (when the \b-l\b option is not specified), the "
|
||||
"resulting lines will be entered at the end of the history list and "
|
||||
"then reexecuted by the current shell. The \b\f?\f\b command that "
|
||||
"then reexecuted by the current shell. The \bhist\b command that "
|
||||
"caused the editing will not be entered into the history list. If the "
|
||||
"editor returns a non-zero exit status, this will suppress the "
|
||||
"entry into the history list and the command reexecution. Command "
|
||||
"line variable assignments and redirections affect both the \f?\f "
|
||||
"line variable assignments and redirections affect both the \bhist\b "
|
||||
"command and the commands that are reexecuted.]"
|
||||
"[+?\afirst\a and \alast\a define the range of commands. \afirst\a and "
|
||||
"\alast\a can be one of the following:]{"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue