diff --git a/src/tokenizer.rs b/src/tokenizer.rs index 2558d6a45..0fc7caf7c 100644 --- a/src/tokenizer.rs +++ b/src/tokenizer.rs @@ -678,9 +678,9 @@ impl<'c> Tokenizer<'c> { return self.call_error( TokenizerError::closing_unopened_brace, self.token_cursor, - self.start.len(), - None, - 0, + self.token_cursor, + Some(1), + 1, ); } if brace_offsets.is_empty() { diff --git a/tests/checks/read.fish b/tests/checks/read.fish index 93f5a54a9..b1324b5b5 100644 --- a/tests/checks/read.fish +++ b/tests/checks/read.fish @@ -400,3 +400,31 @@ echo foo | read -n -1 # CHECKERR: echo foo | read -n -1 # CHECKERR: ^ # CHECKERR: (Type 'help read' for related documentation) + +echo '1 ( (' | read -lat var +set -S var +# CHECK: $var: set in local scope, unexported, with 2 elements +# CHECK: $var[1]: |1| +# CHECK: $var[2]: |( (| + +echo '1 ) )' | read -lat var +set -S var +# CHECK: $var: set in local scope, unexported, with 2 elements +# CHECK: $var[1]: |1| +# CHECK: $var[2]: |)| + +echo '1 { {' | read -lat var +set -S var +# CHECK: $var: set in local scope, unexported, with 2 elements +# CHECK: $var[1]: |1| +# CHECK: $var[2]: |{ {| + +echo '1 } }' | read -lat var +set -S var +# CHECK: $var: set in local scope, unexported, with 2 elements +# CHECK: $var[1]: |1| +# CHECK: $var[2]: |}| + +echo '1 {} "{}"' | read -lat var +echo $var +# CHECK: 1 {} {}