mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-06-14 08:21:18 -03:00
fix incorrectly aligned carat in command expansion errors and more
- fix the carat position expanding e.g. `command $,` - improve the error reporting for not-allowed command subtitutions by figuring out where the expansion failed instead of using SOURCE_LOCATION_UNKNOWN - allow nullptr for parse_util_licate_brackets_range() out_string argument if we don't need it to do any work. Fixes #5812
This commit is contained in:
@@ -185,7 +185,7 @@ static int parse_util_locate_brackets_range(const wcstring &str, size_t *inout_c
|
||||
size_t *out_end, bool accept_incomplete,
|
||||
wchar_t open_type, wchar_t close_type) {
|
||||
// Clear the return values.
|
||||
out_contents->clear();
|
||||
if (out_contents != nullptr) out_contents->clear();
|
||||
*out_start = 0;
|
||||
*out_end = str.size();
|
||||
|
||||
@@ -213,7 +213,9 @@ static int parse_util_locate_brackets_range(const wcstring &str, size_t *inout_c
|
||||
|
||||
// Assign the substring to the out_contents.
|
||||
const wchar_t *interior_begin = bracket_range_begin + 1;
|
||||
out_contents->assign(interior_begin, bracket_range_end - interior_begin);
|
||||
if (out_contents != nullptr) {
|
||||
out_contents->assign(interior_begin, bracket_range_end - interior_begin);
|
||||
}
|
||||
|
||||
// Return the start and end.
|
||||
*out_start = bracket_range_begin - buff;
|
||||
@@ -1134,6 +1136,7 @@ static bool detect_errors_in_plain_statement(const wcstring &buff_src,
|
||||
if (expand_to_command_and_args(*unexp_command, null_environment_t{}, &command, nullptr,
|
||||
parse_errors) == EXPAND_ERROR) {
|
||||
errored = true;
|
||||
parse_error_offset_source_start(parse_errors, source_start);
|
||||
}
|
||||
|
||||
// Check that pipes are sound.
|
||||
|
||||
Reference in New Issue
Block a user