Skip to content

Commit 0da5820

Browse files
Vanessa McHalekbknapp
authored andcommitted
fixes bug with unicode widths
1 parent f592629 commit 0da5820

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

src/app/help.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ impl<'a> Help<'a> {
187187
arg.is_set(ArgSettings::NextLineHelp)
188188
}) {
189189
if arg.longest_filter() {
190-
self.longest = cmp::max(self.longest, arg.to_string().len());
190+
self.longest = cmp::max(self.longest, str_width(arg.to_string().as_str()));
191191
}
192192
arg_v.push(arg)
193193
}
@@ -220,7 +220,7 @@ impl<'a> Help<'a> {
220220
}) {
221221
if arg.longest_filter() {
222222
debugln!("Help::write_args: Current Longest...{}", self.longest);
223-
self.longest = cmp::max(self.longest, arg.to_string().len());
223+
;self.longest = cmp::max(self.longest, str_width(arg.to_string().as_str()));
224224
debugln!("Help::write_args: New Longest...{}", self.longest);
225225
}
226226
let btm = ord_m.entry(arg.disp_ord()).or_insert(BTreeMap::new());
@@ -352,7 +352,7 @@ impl<'a> Help<'a> {
352352
debug!("Help::val: next_line...");
353353
if !(nlh || self.force_next_line) {
354354
sdebugln!("No");
355-
let self_len = arg.to_string().len();
355+
let self_len = str_width(arg.to_string().as_str());
356356
// subtract ourself
357357
let mut spcs = self.longest - self_len;
358358
// Since we're writing spaces from the tab point we first need to know if we
@@ -371,7 +371,7 @@ impl<'a> Help<'a> {
371371
}
372372
} else if !(nlh || self.force_next_line) {
373373
sdebugln!("No, and not next_line");
374-
write_nspaces!(self.writer, self.longest + 4 - (arg.to_string().len()));
374+
write_nspaces!(self.writer, self.longest + 4 - (str_width(arg.to_string().as_str())));
375375
} else {
376376
sdebugln!("No");
377377
}
@@ -582,7 +582,8 @@ impl<'a> Help<'a> {
582582
let btm = ord_m
583583
.entry(sc.p.meta.disp_ord)
584584
.or_insert(BTreeMap::new());
585-
self.longest = cmp::max(self.longest, sc.p.meta.name.len());
585+
self.longest = cmp::max(self.longest, str_width(sc.p.meta.name.as_str()));
586+
//self.longest = cmp::max(self.longest, sc.p.meta.name.len());
586587
btm.insert(sc.p.meta.name.clone(), sc.clone());
587588
}
588589

0 commit comments

Comments
 (0)