mirror of
https://github.com/nushell/nushell
synced 2024-12-29 06:23:11 +00:00
Fix for inconsistency when quoted strings are used with with_env shorthand (#1900)
This commit is contained in:
parent
a915471b38
commit
9567c1f564
2 changed files with 39 additions and 2 deletions
|
@ -29,3 +29,38 @@ fn shorthand_doesnt_reorder_arguments() {
|
||||||
|
|
||||||
assert_eq!(actual.out, "firstsecond");
|
assert_eq!(actual.out, "firstsecond");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn with_env_shorthand_trims_quotes() {
|
||||||
|
let actual = nu!(
|
||||||
|
cwd: "tests/fixtures/formats",
|
||||||
|
"FOO='BARRRR' echo $nu.env | get FOO"
|
||||||
|
);
|
||||||
|
|
||||||
|
assert_eq!(actual.out, "BARRRR");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn with_env_and_shorthand_same_result() {
|
||||||
|
let actual_shorthand = nu!(
|
||||||
|
cwd: "tests/fixtures/formats",
|
||||||
|
"FOO='BARRRR' echo $nu.env | get FOO"
|
||||||
|
);
|
||||||
|
|
||||||
|
let actual_normal = nu!(
|
||||||
|
cwd: "tests/fixtures/formats",
|
||||||
|
"with-env [FOO BARRRR] {echo $nu.env} | get FOO"
|
||||||
|
);
|
||||||
|
|
||||||
|
assert_eq!(actual_shorthand.out, actual_normal.out);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn with_env_shorthand_nested_quotes() {
|
||||||
|
let actual = nu!(
|
||||||
|
cwd: "tests/fixtures/formats",
|
||||||
|
"FOO='-arg \"hello world\"' echo $nu.env | get FOO"
|
||||||
|
);
|
||||||
|
|
||||||
|
assert_eq!(actual.out, "-arg \"hello world\"");
|
||||||
|
}
|
||||||
|
|
|
@ -1362,7 +1362,9 @@ fn expand_shorthand_forms(
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
let original_span = lite_pipeline.commands[0].name.span;
|
let original_span = lite_pipeline.commands[0].name.span;
|
||||||
let (variable_name, value) = (assignment[0], assignment[1]);
|
let env_value = trim_quotes(assignment[1]);
|
||||||
|
|
||||||
|
let (variable_name, value) = (assignment[0], env_value);
|
||||||
let mut lite_pipeline = lite_pipeline.clone();
|
let mut lite_pipeline = lite_pipeline.clone();
|
||||||
|
|
||||||
if !lite_pipeline.commands[0].args.is_empty() {
|
if !lite_pipeline.commands[0].args.is_empty() {
|
||||||
|
@ -1377,7 +1379,7 @@ fn expand_shorthand_forms(
|
||||||
lite_pipeline,
|
lite_pipeline,
|
||||||
Some((
|
Some((
|
||||||
variable_name.to_string().spanned(original_span),
|
variable_name.to_string().spanned(original_span),
|
||||||
value.to_string().spanned(original_span),
|
value.spanned(original_span),
|
||||||
)),
|
)),
|
||||||
None,
|
None,
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue