Added note that there is still more to do on 5516.

Also added regression test for the byte vs codepoint issues that the
previous commit fixes.
This commit is contained in:
Felix S. Klock II 2013-08-24 12:09:18 +02:00
parent ae63a3e400
commit cc477dfa74

View File

@ -690,7 +690,7 @@ pub mod groups {
}
}
// FIXME: #5516
// FIXME: #5516 should be graphemes not codepoints
// here we just need to indent the start of the description
let rowlen = str::count_chars(row, 0, row.len());
if rowlen < 24 {
@ -708,14 +708,14 @@ pub mod groups {
desc_normalized_whitespace.push_char(' ');
}
// FIXME: #5516
// FIXME: #5516 should be graphemes not codepoints
let mut desc_rows = ~[];
do each_split_within(desc_normalized_whitespace, 54) |substr| {
desc_rows.push(substr.to_owned());
true
};
// FIXME: #5516
// FIXME: #5516 should be graphemes not codepoints
// wrapped description
row.push_str(desc_rows.connect(desc_sep));
@ -1581,4 +1581,31 @@ Options:
debug!("generated: <<%s>>", usage);
assert!(usage == expected)
}
#[test]
fn test_groups_usage_description_multibyte_handling() {
let optgroups = ~[
groups::optflag("k", "k\u2013w\u2013",
"The word kiwi is normally spelled with two i's"),
groups::optflag("a", "apple",
"This \u201Cdescription\u201D has some characters that could \
confuse the line wrapping; an apple costs 0.51 in some parts of Europe."),
];
let expected =
~"Usage: fruits
Options:
-k --kw The word kiwi is normally spelled with two i's
-a --apple This description has some characters that could
confuse the line wrapping; an apple costs 0.51 in
some parts of Europe.
";
let usage = groups::usage("Usage: fruits", optgroups);
debug!("expected: <<%s>>", expected);
debug!("generated: <<%s>>", usage);
assert!(usage == expected)
}
}