diff --git a/src/builtin_read.cpp b/src/builtin_read.cpp index 67ac9afe8..3600953a2 100644 --- a/src/builtin_read.cpp +++ b/src/builtin_read.cpp @@ -607,14 +607,6 @@ int builtin_read(parser_t &parser, io_streams_t &streams, wchar_t **argv) { wcstring substr; loc = wcstring_tok(buff, (vars_left() > 1) ? opts.delimiter : wcstring(), loc); if (loc.first != wcstring::npos) { - if (vars_left() == 1) { // Discard trailing delimiters, see #6406 - loc.first = - std::find_if(buff.begin() + loc.first, buff.end(), - [&opts](wchar_t c) { - return opts.delimiter.find(c) == wcstring::npos; - }) - - buff.begin(); - } substr = wcstring(buff, loc.first, loc.second); } vars.set_one(*var_ptr++, opts.place, substr); diff --git a/tests/checks/read.fish b/tests/checks/read.fish index 205824430..fee0bb3c6 100644 --- a/tests/checks/read.fish +++ b/tests/checks/read.fish @@ -12,13 +12,3 @@ set -l # CHECK: a 'afoo barb' # CHECK: b # CHECK: c - -echo "a b b" | read a b -string escape $a $b -# CHECK: a -# CHECK: 'b b' - -echo 'a<><>b<>b' | read -d '<>' a b -printf %s\n $a $b -# CHECK: a -# CHECK: <>b<>b