input.cpp (fish-3.5.0.tar.xz) | : | input.cpp (fish-3.5.1.tar.xz) | ||
---|---|---|---|---|
skipping to change at line 758 | skipping to change at line 758 | |||
char_event_t res = read_characters_no_readline(); | char_event_t res = read_characters_no_readline(); | |||
// Hackish: mark the input style. | // Hackish: mark the input style. | |||
res.input_style = evt.get_readline() == readline_cmd_t::self _insert_notfirst | res.input_style = evt.get_readline() == readline_cmd_t::self _insert_notfirst | |||
? char_input_style_t::notfirst | ? char_input_style_t::notfirst | |||
: char_input_style_t::normal; | : char_input_style_t::normal; | |||
return res; | return res; | |||
} | } | |||
case readline_cmd_t::func_and: | case readline_cmd_t::func_and: | |||
case readline_cmd_t::func_or: { | case readline_cmd_t::func_or: { | |||
// If previous function has right status, we keep reading to kens | // If previous function has correct status, we keep reading tokens | |||
if (evt.get_readline() == readline_cmd_t::func_and) { | if (evt.get_readline() == readline_cmd_t::func_and) { | |||
if (function_status_) return readch(); | // Don't return immediately, we might need to handle it | |||
here - like self-insert. | ||||
if (function_status_) continue; | ||||
} else { | } else { | |||
assert(evt.get_readline() == readline_cmd_t::func_or); | if (!function_status_) continue; | |||
if (!function_status_) return readch(); | ||||
} | } | |||
// Else we flush remaining tokens | // Else we flush remaining tokens | |||
do { | do { | |||
evt = this->readch(); | evt = this->readch(); | |||
} while (evt.is_readline()); | } while (evt.is_readline()); | |||
this->push_front(evt); | this->push_front(evt); | |||
return readch(); | return readch(); | |||
} | } | |||
default: { | default: { | |||
return evt; | return evt; | |||
End of changes. 3 change blocks. | ||||
4 lines changed or deleted | 5 lines changed or added |