mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-23 06:28:58 +08:00
'Misfeature' fix for eval function - make it force job control when in interactive mode, in order to make commands that expect to control the terminal happy
darcs-hash:20071006102326-75c98-b168d709d54edb21c478ec2d69420468a2c08da1.gz
This commit is contained in:
parent
188f0454b7
commit
9299515f3e
|
@ -1,4 +1,26 @@
|
|||
|
||||
function eval -S -d "Evaluate parameters as a command"
|
||||
|
||||
# If we are in an interactive shell, eval should enable full
|
||||
# job control since it should behave like the real code was
|
||||
# executed. If we don't do this, commands that expect to be
|
||||
# used interactively, like less, wont work using eval.
|
||||
|
||||
set -l mode
|
||||
if status --is-interactive-job-control
|
||||
set mode interactive
|
||||
else
|
||||
if status --is-full-job-control
|
||||
set mode full
|
||||
else
|
||||
set mode none
|
||||
end
|
||||
end
|
||||
if status --is-interactive
|
||||
status --job-control full
|
||||
end
|
||||
|
||||
echo begin\; $argv \;end eval2_inner \<\&3 3\<\&- | . 3<&0
|
||||
|
||||
status --job-control $mode
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue
Block a user