Skip to content
Snippets Groups Projects
Commit feaa5f70 authored by stratact's avatar stratact Committed by Michael Aaron Murphy
Browse files

Fix #755 (#757)

* Fix #755

* Add integration test for #755

* Add unit test
parent eb623de5
No related branches found
No related tags found
No related merge requests found
echo $(let echo_array=[@(echo me myself I)]; echo @echo_array[0] @echo_array[1] @echo_array[2])
echo $(let echo_array=[@(echo me myself I)]; echo @echo_array[0] @echo_array[2] @echo_array[1])
echo $(let echo_array=[@(echo me myself I)]; echo @echo_array[1] @echo_array[2] @echo_array[0])
echo $(let echo_array=[@(echo me myself I)]; echo @echo_array[1] @echo_array[0] @echo_array[2])
echo $(let echo_array=[@(echo me myself I)]; echo @echo_array[2] @echo_array[1] @echo_array[0])
echo $(let echo_array=[@(echo me myself I)]; echo @echo_array[2] @echo_array[0] @echo_array[1])
me myself I
me I myself
myself I me
myself me I
I myself me
I me myself
......@@ -254,6 +254,17 @@ impl<'a, E: Expander + 'a> WordIterator<'a, E> {
b'"' if !self.flags.contains(Flags::SQUOTE) => self.flags ^= Flags::DQUOTE,
b'$' if !self.flags.contains(Flags::SQUOTE) => {
if self.data.as_bytes()[self.read + 1] == b'(' {
// Pop out the '(' char
iterator.next();
self.read += 1;
level += 1;
}
}
b'@' if !self.flags.contains(Flags::SQUOTE) => {
if self.data.as_bytes()[self.read + 1] == b'(' {
// Pop out the '(' char
iterator.next();
self.read += 1;
level += 1;
}
}
......
......@@ -94,6 +94,22 @@ fn array_processes() {
compare(input, expected);
}
#[test]
fn array_process_within_string_process() {
compare(
"echo $(let free=[@(free -h)]; echo @free[6]@free[8]/@free[7])",
vec![
WordToken::Normal("echo", false, false),
WordToken::Whitespace(" "),
WordToken::Process(
"let free=[@(free -h)]; echo @free[6]@free[8]/@free[7]",
false,
Select::All
)
]
)
}
#[test]
fn indexes() {
let input = "@array[0..3] @array[0...3] @array[abc] @array[..3] @array[3..]";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment