diff --git a/src/cargo/cargo.rs b/src/cargo/cargo.rs index 4d67877afd8acd07a20fbc995df38a23dae2fd0f..8e8996551fa5128c837a1b9fa5e7170b4fe0d1e1 100644 --- a/src/cargo/cargo.rs +++ b/src/cargo/cargo.rs @@ -174,10 +174,10 @@ fn print(s: str) { } fn rest(s: str, start: uint) -> str { - if (start >= str::len(s)) { + if (start >= str::len_chars(s)) { "" } else { - str::slice(s, start, str::len(s)) + str::slice(s, start, str::len_chars(s)) } } @@ -689,7 +689,7 @@ fn cmd_install(c: cargo) unsafe { alt str::index(uuid, '/') { option::some(idx) { let source = str::slice(uuid, 0u, idx); - uuid = str::slice(uuid, idx + 1u, str::len(uuid)); + uuid = str::slice(uuid, idx + 1u, str::len_chars(uuid)); install_uuid_specific(c, wd, source, uuid); } option::none { @@ -701,7 +701,7 @@ fn cmd_install(c: cargo) unsafe { alt str::index(name, '/') { option::some(idx) { let source = str::slice(name, 0u, idx); - name = str::slice(name, idx + 1u, str::len(name)); + name = str::slice(name, idx + 1u, str::len_chars(name)); install_named_specific(c, wd, source, name); } option::none { diff --git a/src/comp/driver/diagnostic.rs b/src/comp/driver/diagnostic.rs index 8f0570a434959fc600de840fc6f151014efe36b9..f0c97588f59676178a383cb3bb11731eb47c56b1 100644 --- a/src/comp/driver/diagnostic.rs +++ b/src/comp/driver/diagnostic.rs @@ -210,7 +210,7 @@ fn highlight_lines(cm: codemap::codemap, sp: span, if elided { let last_line = display_lines[vec::len(display_lines) - 1u]; let s = #fmt["%s:%u ", fm.name, last_line + 1u]; - let indent = str::len(s); + let indent = str::len_bytes(s); let out = ""; while indent > 0u { out += " "; indent -= 1u; } out += "...\n"; @@ -228,7 +228,7 @@ fn highlight_lines(cm: codemap::codemap, sp: span, while num > 0u { num /= 10u; digits += 1u; } // indent past |name:## | and the 0-offset column location - let left = str::len(fm.name) + digits + lo.col + 3u; + let left = str::len_bytes(fm.name) + digits + lo.col + 3u; let s = ""; while left > 0u { str::push_char(s, ' '); left -= 1u; } diff --git a/src/comp/syntax/codemap.rs b/src/comp/syntax/codemap.rs index 744ea97441d0fdf491bc4f44e42fd72c1b3bd090..6c0182c3411497f0c4d0050543ad1bb68adad39a 100644 --- a/src/comp/syntax/codemap.rs +++ b/src/comp/syntax/codemap.rs @@ -158,9 +158,9 @@ fn span_to_lines(sp: span, cm: codemap::codemap) -> @file_lines { fn get_line(fm: filemap, line: int) -> str unsafe { let begin: uint = fm.lines[line].byte - fm.start_pos.byte; let end = alt str::byte_index_from(*fm.src, '\n' as u8, begin, - str::len(*fm.src)) { + str::len_bytes(*fm.src)) { some(e) { e } - none { str::len(*fm.src) } + none { str::len_bytes(*fm.src) } }; str::unsafe::slice_bytes(*fm.src, begin, end) } diff --git a/src/comp/syntax/ext/qquote.rs b/src/comp/syntax/ext/qquote.rs index 3476584aecece6fb168f3fce81db0012ca967a30..e53307b474abf389bab7e9804543cd92662ba02e 100644 --- a/src/comp/syntax/ext/qquote.rs +++ b/src/comp/syntax/ext/qquote.rs @@ -214,7 +214,7 @@ fn finish if (j < g_len && i == cx.gather[j].lo) { assert ch == '$'; let repl = #fmt("$%u ", j); - state = skip(str::len(repl)); + state = skip(str::len_chars(repl)); str2 += repl; } alt state { diff --git a/src/comp/syntax/print/pp.rs b/src/comp/syntax/print/pp.rs index 3ee31314299291cf31542cb6c0261ca033e91d5a..9114caea2d4e2ba904dd03d7720d06e91d85d323 100644 --- a/src/comp/syntax/print/pp.rs +++ b/src/comp/syntax/print/pp.rs @@ -491,7 +491,7 @@ fn break_offset(p: printer, n: uint, off: int) { fn eof(p: printer) { p.pretty_print(EOF); } fn word(p: printer, wrd: str) { - p.pretty_print(STRING(wrd, str::len(wrd) as int)); + p.pretty_print(STRING(wrd, str::len_bytes(wrd) as int)); } fn huge_word(p: printer, wrd: str) { diff --git a/src/comp/syntax/print/pprust.rs b/src/comp/syntax/print/pprust.rs index 2b29bf57eaa10cef5a98f77ce1e0db41c21ee257..288d8a38dda7d16e661067281e7bc64462dbc21c 100644 --- a/src/comp/syntax/print/pprust.rs +++ b/src/comp/syntax/print/pprust.rs @@ -204,7 +204,7 @@ fn head(s: ps, w: str) { // outer-box is consistent cbox(s, indent_unit); // head-box is inconsistent - ibox(s, str::len(w) + 1u); + ibox(s, str::len_bytes(w) + 1u); // keyword that starts the head word_nbsp(s, w); } diff --git a/src/fuzzer/fuzzer.rs b/src/fuzzer/fuzzer.rs index b0a47e4051b3dac3dd3f69ccd4841531e2614a7e..152df70e7a4f444279c18652698ef1c49971daf1 100644 --- a/src/fuzzer/fuzzer.rs +++ b/src/fuzzer/fuzzer.rs @@ -287,7 +287,7 @@ fn check_variants_T( fn last_part(filename: str) -> str { let ix = option::get(str::rindex(filename, '/')); - str::slice(filename, ix + 1u, str::len(filename) - 3u) + str::slice(filename, ix + 1u, str::len_chars(filename) - 3u) } enum happiness { passed, cleanly_rejected(str), known_bug(str), failed(str), } diff --git a/src/libcore/extfmt.rs b/src/libcore/extfmt.rs index 30676e34de831b0409af02a9d052f21ecca596fc..5fca4d69f3af1587f89a789572d9aba0fec670ee 100644 --- a/src/libcore/extfmt.rs +++ b/src/libcore/extfmt.rs @@ -325,7 +325,7 @@ fn conv_str(cv: conv, s: str) -> str unsafe { alt cv.precision { count_implied { s } count_is(max) { - if max as uint < str::len(s) { + if max as uint < str::len_chars(s) { str::substr(s, 0u, max as uint) } else { s } } @@ -368,7 +368,7 @@ fn uint_to_str_prec(num: uint, radix: uint, prec: uint) -> str { "" } else { let s = uint::to_str(num, radix); - let len = str::len(s); + let len = str::len_chars(s); if len < prec { let diff = prec - len; let pad = str_init_elt(diff, '0'); @@ -400,7 +400,7 @@ fn pad(cv: conv, s: str, mode: pad_mode) -> str unsafe { uwidth = width as uint; } } - let strlen = str::len(s); + let strlen = str::len_chars(s); if uwidth <= strlen { ret s; } let padchar = ' '; let diff = uwidth - strlen; diff --git a/src/libcore/str.rs b/src/libcore/str.rs index d81f2d45d4080512d437680152c7995474819a4d..de8ba2f28b6ba95019b6c4ad663b3cbc41a1b548 100644 --- a/src/libcore/str.rs +++ b/src/libcore/str.rs @@ -86,7 +86,7 @@ is_not_empty, is_whitespace, len_bytes, - len_chars, len, + len_chars, //len, // Misc // FIXME: perhaps some more of this section shouldn't be exported? @@ -529,7 +529,7 @@ fn split(ss: str, sepfn: fn(cc: char)->bool) -> [str] { } }); - if len(accum) >= 0u || ends_with_sep { + if len_chars(accum) >= 0u || ends_with_sep { vv += [accum]; } @@ -601,7 +601,7 @@ fn lines_any(ss: str) -> [str] { */ fn words(ss: str) -> [str] { ret vec::filter( split(ss, {|cc| char::is_whitespace(cc)}), - {|w| 0u < str::len(w)}); + {|w| 0u < str::len_chars(w)}); } /* @@ -611,7 +611,7 @@ fn words(ss: str) -> [str] { */ fn windowed(nn: uint, ss: str) -> [str] { let ww = []; - let len = str::len(ss); + let len = str::len_chars(ss); assert 1u <= nn; @@ -883,7 +883,7 @@ fn byte_index_from(s: str, b: u8, start: uint, end: uint) -> option { // (as option some/none) fn rindex(ss: str, cc: char) -> option { let bii = len_bytes(ss); - let cii = len(ss); + let cii = len_chars(ss); while bii > 0u { let {ch, prev} = char_range_at_reverse(ss, bii); cii -= 1u; @@ -1008,8 +1008,8 @@ fn starts_with(haystack: str, needle: str) -> bool unsafe { needle - The string to look for */ fn ends_with(haystack: str, needle: str) -> bool { - let haystack_len: uint = len(haystack); - let needle_len: uint = len(needle); + let haystack_len: uint = len_chars(haystack); + let needle_len: uint = len_chars(needle); ret if needle_len == 0u { true } else if needle_len > haystack_len { @@ -1079,7 +1079,9 @@ fn len(s: str) -> uint { substr_len_chars(s, 0u, len_bytes(s)) } -fn len_chars(s: str) -> uint { len(s) } +fn len_chars(s: str) -> uint { + substr_len_chars(s, 0u, len_bytes(s)) +} /* Section: Misc @@ -1529,14 +1531,14 @@ fn test_len() { assert (len_bytes("\u2620") == 3u); assert (len_bytes("\U0001d11e") == 4u); - assert (len("") == 0u); - assert (len("hello world") == 11u); - assert (len("\x63") == 1u); - assert (len("\xa2") == 1u); - assert (len("\u03c0") == 1u); - assert (len("\u2620") == 1u); - assert (len("\U0001d11e") == 1u); - assert (len("ประเทศไทย中华Việt Nam") == 19u); + assert (len_chars("") == 0u); + assert (len_chars("hello world") == 11u); + assert (len_chars("\x63") == 1u); + assert (len_chars("\xa2") == 1u); + assert (len_chars("\u03c0") == 1u); + assert (len_chars("\u2620") == 1u); + assert (len_chars("\U0001d11e") == 1u); + assert (len_chars("ประเทศไทย中华Việt Nam") == 19u); } #[test] diff --git a/src/libstd/fs.rs b/src/libstd/fs.rs index 30abbb1e70aa91d9c0abeb100605be69d243a04f..ff2188461504d6acd5c45bbf4f8917729352a992 100644 --- a/src/libstd/fs.rs +++ b/src/libstd/fs.rs @@ -45,7 +45,7 @@ fn splitDirnameBasename (pp: path) -> {dirname: str, basename: str} { } ret {dirname: str::slice(pp, 0u, ii), - basename: str::slice(pp, ii + 1u, str::len(pp))}; + basename: str::slice(pp, ii + 1u, str::len_chars(pp))}; } /* diff --git a/src/libstd/getopts.rs b/src/libstd/getopts.rs index dba406c889ecddf3597b32c36db891c6c609e0f4..e925cd16e335d1f57151ff48e20767413c290201 100644 --- a/src/libstd/getopts.rs +++ b/src/libstd/getopts.rs @@ -79,7 +79,7 @@ enum occur { req, optional, multi, } type opt = {name: name, hasarg: hasarg, occur: occur}; fn mkname(nm: str) -> name { - ret if str::len(nm) == 1u { + ret if str::len_bytes(nm) == 1u { short(str::char_at(nm, 0u)) } else { long(nm) }; } diff --git a/src/libstd/json.rs b/src/libstd/json.rs index 127cd93952e78563e4d411d3ae5b3b952a004fb7..23d70a78bf61abc1464a6f681205bba4aa004a81 100644 --- a/src/libstd/json.rs +++ b/src/libstd/json.rs @@ -70,8 +70,8 @@ fn to_str(j: json) -> str { } fn rest(s: str) -> str { - assert(str::len(s) >= 1u); - str::slice(s, 1u, str::len(s)) + assert(str::len_chars(s) >= 1u); + str::slice(s, 1u, str::len_chars(s)) } fn from_str_str(s: str) -> (option, str) { @@ -99,7 +99,7 @@ fn from_str_str(s: str) -> (option, str) { cont; } else if (c == '"') { ret (some(string(res)), - str::slice(s, pos, str::len(s))); + str::slice(s, pos, str::len_chars(s))); } res = res + str::from_char(c); } @@ -200,12 +200,12 @@ fn from_str_float(s: str) -> (option, str) { } '.' { break; } _ { ret (some(num(neg * res)), - str::slice(s, opos, str::len(s))); } + str::slice(s, opos, str::len_chars(s))); } } } if pos == len { - ret (some(num(neg * res)), str::slice(s, pos, str::len(s))); + ret (some(num(neg * res)), str::slice(s, pos, str::len_chars(s))); } let dec = 1f; @@ -220,17 +220,17 @@ fn from_str_float(s: str) -> (option, str) { res += (((c as int) - ('0' as int)) as float) * dec; } _ { ret (some(num(neg * res)), - str::slice(s, opos, str::len(s))); } + str::slice(s, opos, str::len_chars(s))); } } } - ret (some(num(neg * res)), str::slice(s, pos, str::len(s))); + ret (some(num(neg * res)), str::slice(s, pos, str::len_chars(s))); } fn from_str_bool(s: str) -> (option, str) { if (str::starts_with(s, "true")) { - (some(boolean(true)), str::slice(s, 4u, str::len(s))) + (some(boolean(true)), str::slice(s, 4u, str::len_chars(s))) } else if (str::starts_with(s, "false")) { - (some(boolean(false)), str::slice(s, 5u, str::len(s))) + (some(boolean(false)), str::slice(s, 5u, str::len_chars(s))) } else { (none, s) } @@ -238,7 +238,7 @@ fn from_str_bool(s: str) -> (option, str) { fn from_str_null(s: str) -> (option, str) { if (str::starts_with(s, "null")) { - (some(null), str::slice(s, 4u, str::len(s))) + (some(null), str::slice(s, 4u, str::len_chars(s))) } else { (none, s) } diff --git a/src/libstd/rand.rs b/src/libstd/rand.rs index 35525b70710ac4f6a6cb0514758e041a1c3064f2..33fac40fcccc39bfbe8dc1f6b63608d13d222a98 100644 --- a/src/libstd/rand.rs +++ b/src/libstd/rand.rs @@ -77,7 +77,7 @@ fn gen_str(len: uint) -> str { let i = 0u; while (i < len) { let n = rustrt::rand_next(**self) as uint % - str::len(charset); + str::len_bytes(charset); s = s + str::from_char(str::char_at(charset, n)); i += 1u; } @@ -130,8 +130,8 @@ fn genstr() { log(debug, r.gen_str(10u)); log(debug, r.gen_str(10u)); log(debug, r.gen_str(10u)); - assert(str::len(r.gen_str(10u)) == 10u); - assert(str::len(r.gen_str(16u)) == 16u); + assert(str::len_bytes(r.gen_str(10u)) == 10u); + assert(str::len_bytes(r.gen_str(16u)) == 16u); } } diff --git a/src/libstd/rope.rs b/src/libstd/rope.rs index 07ee837a9b9188ac750e4f3ac9df898f8e42e226..3f330c3586d463e81c216c8880bfee8029494391 100644 --- a/src/libstd/rope.rs +++ b/src/libstd/rope.rs @@ -1373,7 +1373,7 @@ fn of_string1() { let sample = @"0123456789ABCDE"; let r = of_str(sample); - assert char_len(r) == str::len(*sample); + assert char_len(r) == str::len_chars(*sample); assert rope_to_string(r) == *sample; } @@ -1384,7 +1384,7 @@ fn of_string2() { while i < 10 { *buf = *buf + *buf; i+=1;} let sample = @*buf; let r = of_str(sample); - assert char_len(r) == str::len(*sample); + assert char_len(r) == str::len_chars(*sample); assert rope_to_string(r) == *sample; let string_iter = 0u; @@ -1427,7 +1427,7 @@ fn iter1() { } } - assert len == str::len(*sample); + assert len == str::len_chars(*sample); } #[test] diff --git a/src/rustdoc/desc_to_brief_pass.rs b/src/rustdoc/desc_to_brief_pass.rs index b506f502933750ec2e9f41ee4a1bfd23e7bd687e..82ae2ff8fed7b7b61de0029e7c892431d3305b2c 100644 --- a/src/rustdoc/desc_to_brief_pass.rs +++ b/src/rustdoc/desc_to_brief_pass.rs @@ -175,7 +175,7 @@ fn parse_desc(desc: str) -> (option, option) { if check vec::is_not_empty(paras) { let maybe_brief = vec::head(paras); - if str::len(maybe_brief) <= max_brief_len { + if str::len_bytes(maybe_brief) <= max_brief_len { let desc_paras = vec::tail(paras); let desc = if vec::is_not_empty(desc_paras) { some(str::connect(desc_paras, "\n\n")) diff --git a/src/rustdoc/unindent_pass.rs b/src/rustdoc/unindent_pass.rs index b52316ccb15b9c05eb8d98873d61a2dacf170856..d8f56e20479446999391853884ab0b682049b94d 100644 --- a/src/rustdoc/unindent_pass.rs +++ b/src/rustdoc/unindent_pass.rs @@ -68,7 +68,7 @@ fn unindent(s: str) -> str { line } else { assert str::len_bytes(line) >= min_indent; - str::slice(line, min_indent, str::len(line)) + str::slice(line, min_indent, str::len_chars(line)) } }; str::connect(unindented, "\n") diff --git a/src/test/run-pass/utf8_chars.rs b/src/test/run-pass/utf8_chars.rs index cd591866c248856710b3bca99eddf6ee0d92052d..fbb66b5a1ca48b44ce5170a0c0020626f1ea4464 100644 --- a/src/test/run-pass/utf8_chars.rs +++ b/src/test/run-pass/utf8_chars.rs @@ -8,7 +8,7 @@ fn main() { let s: str = str::from_chars(chs); assert (str::len_bytes(s) == 10u); - assert (str::len(s) == 4u); + assert (str::len_chars(s) == 4u); assert (vec::len::(str::chars(s)) == 4u); assert (str::eq(str::from_chars(str::chars(s)), s)); assert (str::char_at(s, 0u) == 'e');