diff --git a/packages/fish/5dc78dd858c28dcfd564ee50e56ccd33fc0b39dc.patch b/packages/fish/5dc78dd858c28dcfd564ee50e56ccd33fc0b39dc.patch new file mode 100644 index 000000000..330669c9a --- /dev/null +++ b/packages/fish/5dc78dd858c28dcfd564ee50e56ccd33fc0b39dc.patch @@ -0,0 +1,65 @@ +https://github.com/fish-shell/fish-shell/commit/5dc78dd858c28dcfd564ee50e56ccd33fc0b39dc + +fix regression involving `read` from scripts + +diff --git a/src/input.cpp b/src/input.cpp +index 1cdb151b3..d4dc16698 100644 +--- a/src/input.cpp ++++ b/src/input.cpp +@@ -189,7 +189,7 @@ static std::vector terminfo_mappings; + /// List of all terminfo mappings. + static std::vector mappings; + +-/// Set to true when the input subsytem has been initialized. ++/// Set to true when the input subsystem has been initialized. + bool input_initialized = false; + + /// Initialize terminfo. +@@ -307,7 +307,6 @@ void init_input() { + } + + input_initialized = true; +- return; + } + + void input_destroy() { +diff --git a/src/reader.cpp b/src/reader.cpp +index bd278ad6a..1e0e05698 100644 +--- a/src/reader.cpp ++++ b/src/reader.cpp +@@ -1563,10 +1563,10 @@ static bool check_for_orphaned_process(unsigned long loop_count, pid_t shell_pgi + + /// Initialize data for interactive use. + static void reader_interactive_init() { +- assert(input_initialized); + // See if we are running interactively. + pid_t shell_pgid; + ++ if (!input_initialized) init_input(); + kill_init(); + shell_pgid = getpgrp(); + +diff --git a/tests/read.in b/tests/read.in +index febc2968f..0fe31ec01 100644 +--- a/tests/read.in ++++ b/tests/read.in +@@ -191,3 +191,6 @@ end + if test (string length "$x") -ne $FISH_READ_BYTE_LIMIT + echo reading the max amount of data with --nchars failed the length test + end ++ ++echo '# Confirm reading non-interactively works (#4206 regression)' ++echo abc\ndef | ../test/root/bin/fish -i -c 'read a; read b; show $a; show $b' +diff --git a/tests/read.out b/tests/read.out +index d35a9146a..88b445a40 100644 +--- a/tests/read.out ++++ b/tests/read.out +@@ -58,3 +58,8 @@ newline + + # chunked read tests + Chunked reads test pass ++# Confirm reading non-interactively works (#4206 regression) ++count=1 ++|abc| ++count=1 ++|def|