mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +00:00
Make 'stop' and 'suspend' regular built-ins
The 'stop' and 'suspend' default aliases are now converted into
regular built-in commands so that 'unalias -a' does not remove
them, 'suspend' can do some sanity checks, and something like
cmd=stop; $cmd $!
will now work.
src/cmd/ksh93/bltins/trap.c:
- b_kill(): Incorporate 'stop' functionality, which is simply
setting the same flag and variable as '-s STOP' would have done.
- b_suspend(): Add simple builtin function that sends SIGSTOP to
the main shell. Check for no operands, and refuse to suspend a
login shell (which would leave the user stuck with no way out).
Also check that 'kill' succeeds; if we're in an asynchronous
subshell, it is possible the main shell no longer exists.
src/cmd/ksh93/data/aliases.c:
- Remove "stop" and "suspend" default aliases. (Why were these
conditional upon SIGTSTP when they actually issued SIGSTOP?)
src/cmd/ksh93/include/builtins.h,
src/cmd/ksh93/data/builtins.c,
src/cmd/ksh93/data/msg.c:
- Add declarations of "stop" and "suspend" regular built-ins.
- Add option strings (AST manual/--man pages) for them.
- Add e_toomanyops ("too many operands") reusable error message for
b_suspend(). Other new commands may want this at some point.
src/cmd/ksh93/sh.1:
- Remove "stop" and "suspend" default aliases.
- Document "stop" and "suspend" regular built-in commands.
This commit is contained in:
parent
add82e1984
commit
3ba4900e9c
8 changed files with 108 additions and 11 deletions
|
|
@ -803,10 +803,6 @@ but can be unset or redefined:
|
|||
.B "nameref=\(fmtypeset \-n\(fm"
|
||||
.TP
|
||||
.B "r=\(fmhist \-s\(fm"
|
||||
.TP
|
||||
.B "stop=\(fmkill \-s \s-1STOP\s+1\(fm"
|
||||
.TP
|
||||
.B "suspend=\(fmkill \-s \s-1STOP\s+1 $$\(fm"
|
||||
.PD
|
||||
.RE
|
||||
.SS Tilde Substitution.
|
||||
|
|
@ -7133,6 +7129,28 @@ Same as
|
|||
.BR \|.\^ ,
|
||||
except it is not treated as a special built-in command.
|
||||
.TP
|
||||
\f3stop\fP \f2job\^\fP .\|.\|.
|
||||
Sends a
|
||||
.B SIGSTOP
|
||||
signal to one or more processes specified by
|
||||
.IR job ,
|
||||
suspending them until they receive
|
||||
.BR SIGCONT .
|
||||
The same as
|
||||
.BR kill\ -s\ STOP .
|
||||
.TP
|
||||
\f3suspend\fP
|
||||
Sends a
|
||||
.B SIGSTOP
|
||||
signal to the main shell process, suspending the script
|
||||
or child shell session until it receives
|
||||
.B SIGCONT
|
||||
(for instance, when typing
|
||||
.B fg
|
||||
in the parent shell). Equivalent to
|
||||
.BR kill\ -s\ STOP\ "$$" ,
|
||||
except that it accepts no operands and refuses to suspend a login shell.
|
||||
.TP
|
||||
\f3times\fP
|
||||
Displays the accumulated user and system CPU times, one line with the times
|
||||
used by the shell and another with those used by all of the shell's child
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue