From 21d56f2c68bf54e52611db486f900e93d1d2a349 Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Thu, 7 Jun 2012 11:35:58 -0700 Subject: [PATCH] Fixed a bug in extfmt where it couldn't parse unicode in format strings. --- src/libcore/extfmt.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/libcore/extfmt.rs b/src/libcore/extfmt.rs index 30a3bc1ef693..c24a02911770 100644 --- a/src/libcore/extfmt.rs +++ b/src/libcore/extfmt.rs @@ -94,7 +94,8 @@ mod ct { } let mut i = 0u; while i < lim { - let curr = str::slice(s, i, i+1u); + let size = str::utf8_char_width(s[i]); + let curr = str::slice(s, i, i+size); if str::eq(curr, "%") { i += 1u; if i >= lim { @@ -110,7 +111,7 @@ mod ct { pieces += [rs.piece]; i = rs.next; } - } else { buf += curr; i += 1u; } + } else { buf += curr; i += size; } } flush_buf(buf, pieces); ret pieces;