mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-06-05 00:01:15 -03:00
Explicit type for "$()" hack in parse_util_locate_cmdsub
This commit is contained in:
@@ -220,6 +220,10 @@ fn parse_util_locate_cmdsub(
|
|||||||
let mut last_dollar = None;
|
let mut last_dollar = None;
|
||||||
let mut paran_begin = None;
|
let mut paran_begin = None;
|
||||||
let mut paran_end = None;
|
let mut paran_end = None;
|
||||||
|
enum Quote {
|
||||||
|
Real(char),
|
||||||
|
VirtualDouble,
|
||||||
|
}
|
||||||
fn process_opening_quote(
|
fn process_opening_quote(
|
||||||
input: &[char],
|
input: &[char],
|
||||||
inout_is_quoted: &mut Option<&mut bool>,
|
inout_is_quoted: &mut Option<&mut bool>,
|
||||||
@@ -227,8 +231,12 @@ fn process_opening_quote(
|
|||||||
quoted_cmdsubs: &mut Vec<i32>,
|
quoted_cmdsubs: &mut Vec<i32>,
|
||||||
pos: usize,
|
pos: usize,
|
||||||
last_dollar: &mut Option<usize>,
|
last_dollar: &mut Option<usize>,
|
||||||
quote: char,
|
quote: Quote,
|
||||||
) -> Option<usize> {
|
) -> Option<usize> {
|
||||||
|
let quote = match quote {
|
||||||
|
Quote::Real(q) => q,
|
||||||
|
Quote::VirtualDouble => '"',
|
||||||
|
};
|
||||||
let q_end = quote_end(input.into(), pos, quote)?;
|
let q_end = quote_end(input.into(), pos, quote)?;
|
||||||
// Found a valid closing quote.
|
// Found a valid closing quote.
|
||||||
if input[q_end] == '$' {
|
if input[q_end] == '$' {
|
||||||
@@ -258,7 +266,7 @@ fn process_opening_quote(
|
|||||||
&mut quoted_cmdsubs,
|
&mut quoted_cmdsubs,
|
||||||
pos,
|
pos,
|
||||||
&mut last_dollar,
|
&mut last_dollar,
|
||||||
'"',
|
Quote::VirtualDouble,
|
||||||
)
|
)
|
||||||
.unwrap_or(input.len());
|
.unwrap_or(input.len());
|
||||||
}
|
}
|
||||||
@@ -274,7 +282,7 @@ fn process_opening_quote(
|
|||||||
&mut quoted_cmdsubs,
|
&mut quoted_cmdsubs,
|
||||||
pos,
|
pos,
|
||||||
&mut last_dollar,
|
&mut last_dollar,
|
||||||
c,
|
Quote::Real(c),
|
||||||
) {
|
) {
|
||||||
Some(q_end) => pos = q_end,
|
Some(q_end) => pos = q_end,
|
||||||
None => break,
|
None => break,
|
||||||
@@ -320,7 +328,7 @@ fn process_opening_quote(
|
|||||||
&mut quoted_cmdsubs,
|
&mut quoted_cmdsubs,
|
||||||
pos,
|
pos,
|
||||||
&mut last_dollar,
|
&mut last_dollar,
|
||||||
'"',
|
Quote::VirtualDouble,
|
||||||
) {
|
) {
|
||||||
Some(q_end) => pos = q_end,
|
Some(q_end) => pos = q_end,
|
||||||
None => break,
|
None => break,
|
||||||
|
|||||||
Reference in New Issue
Block a user