Support for a "pending item" in history.

Before running a command, we add the command to history, so
that if the command causes us to exit it's still captured in
history. But that command should not be considered part of
history when expanding the history within the command itself.
For example, `echo $history[1]` should be the previously
run command, not `echo $history[1]` itself.

Fixes #2028
This commit is contained in:
ridiculousfish
2015-04-20 02:04:17 -07:00
parent 722fedc8fd
commit c3ef23b10f
4 changed files with 80 additions and 21 deletions

View File

@@ -11,3 +11,25 @@ send_line "echo "
expect_prompt "" {} unmatched {
puts stderr "Couldn't type apple key ()"
}
# check that history is returned in the right order (#2028)
# this hist_command nonsense is the cleanest way to send the $ char
set hist_command "echo \$history\[1\]"
# first send 'echo stuff'
send_line "echo stuff"
expect_prompt "stuff" {} unmatched {
puts stderr "Couldn't find expected output 'stuff'"
}
# last history item should be 'echo stuff'
send_line $hist_command
expect_prompt "echo stuff" {} unmatched {
puts stderr "Couldn't find expected output 'echo stuff'"
}
# last history command should be the one that printed the history
send_line $hist_command
expect_prompt -re {echo .history.*} {} unmatched {
puts stderr "Couldn't find expected output $hist_command"
}