mirror of
https://github.com/fish-shell/fish-shell
synced 2025-01-14 14:03:58 +00:00
Don't replace tilde for error messages if we have no $HOME
This was an issue with "--no-execute", which has no variables and
therefore no $HOME:
```fish
fish --no-execute /path/to/file
```
would say the error is in `~/path/to/file`.
Instead, since this is just for a message, we simply return the
filename without doing the replacement.
Fixes #10171
Port of e318585021
This commit is contained in:
parent
7008e0eec2
commit
2fe8b5d313
2 changed files with 12 additions and 0 deletions
|
@ -881,6 +881,9 @@ wcstring replace_home_directory_with_tilde(const wcstring &str, const environmen
|
|||
if (string_prefixes_string(L"/", result)) {
|
||||
wcstring home_directory = L"~";
|
||||
expand_tilde(home_directory, vars);
|
||||
// If we can't get a home directory, don't replace anything.
|
||||
// This is the case e.g. with --no-execute.
|
||||
if (home_directory.empty()) return result;
|
||||
if (!string_suffixes_string(L"/", home_directory)) {
|
||||
home_directory.push_back(L'/');
|
||||
}
|
||||
|
|
|
@ -23,5 +23,14 @@ echo "begin; echo oops" | $fish -n
|
|||
echo $status
|
||||
#CHECK: 127
|
||||
|
||||
echo "begin" > broken
|
||||
$fish -n $PWD/broken
|
||||
#CHECKERR: /{{.*}}broken (line 1): Missing end to balance this begin
|
||||
#CHECKERR: begin
|
||||
#CHECKERR: ^~~~^
|
||||
#CHECKERR: warning: Error while reading file /{{.*}}broken
|
||||
|
||||
rm broken
|
||||
|
||||
# Littlecheck assumes a status of 127 means the shebang was invalid.
|
||||
exit 0
|
||||
|
|
Loading…
Reference in a new issue