Fredrik Fornwall
7 years ago
3 changed files with 14 additions and 68 deletions
@ -1,65 +0,0 @@ |
|||||
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_mapping_t> terminfo_mappings;
|
|
||||
/// List of all terminfo mappings. |
|
||||
static std::vector<terminfo_mapping_t> 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|
|
|
@ -0,0 +1,12 @@ |
|||||
|
diff -u -r ../fish-2.7.0/src/builtin_argparse.cpp ./src/builtin_argparse.cpp
|
||||
|
--- ../fish-2.7.0/src/builtin_argparse.cpp 2017-11-23 06:45:49.000000000 +0100
|
||||
|
+++ ./src/builtin_argparse.cpp 2017-11-30 00:33:41.800475273 +0100
|
||||
|
@@ -444,7 +444,7 @@
|
||||
|
|
||||
|
if (!opt_spec->long_flag.empty()) { |
||||
|
long_options.get()[i++] = {opt_spec->long_flag.c_str(), arg_type, NULL, |
||||
|
- opt_spec->short_flag};
|
||||
|
+ (int) opt_spec->short_flag};
|
||||
|
} |
||||
|
} |
||||
|
long_options.get()[i] = {NULL, 0, NULL, 0}; |
Loading…
Reference in new issue