1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-27 11:07:44 +00:00

Merge pull request #7693 from sargas/escape_empty_string

uucore/quoting_style: Add support for quoting/escaping empty strings
This commit is contained in:
Dorian Péron 2025-04-13 23:05:28 +02:00 committed by GitHub
commit c35d26dc51
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 25 additions and 1 deletions

View file

@ -428,7 +428,7 @@ fn escape_name_inner(name: &[u8], style: &QuotingStyle, dirname: bool) -> Vec<u8
(Quotes::Single, true)
} else if name.contains(&b'\'') {
(Quotes::Double, true)
} else if *always_quote {
} else if *always_quote || name.is_empty() {
(Quotes::Single, true)
} else {
(Quotes::Single, false)
@ -609,6 +609,25 @@ mod tests {
);
}
#[test]
fn test_empty_string() {
check_names(
"",
&[
("", "literal"),
("", "literal-show"),
("", "escape"),
("\"\"", "c"),
("''", "shell"),
("''", "shell-show"),
("''", "shell-always"),
("''", "shell-always-show"),
("''", "shell-escape"),
("''", "shell-escape-always"),
],
);
}
#[test]
fn test_spaces() {
check_names(

View file

@ -242,6 +242,11 @@ fn sub_q_string_special_non_printable() {
.stdout_only("non-printable: test~");
}
#[test]
fn sub_q_string_empty() {
new_ucmd!().args(&["%q", ""]).succeeds().stdout_only("''");
}
#[test]
fn sub_char() {
new_ucmd!()