Graydon Hoare
47e7a05a28
Add some utf16 routines for OS API interop.
2012-03-02 15:47:40 -08:00
Patrick Walton
362f23641a
libcore: Remove vec::to_ptr in favor of vec::unsafe::to_ptr. Closes #1829 .
2012-02-28 20:43:39 -08:00
Marijn Haverbeke
780f8277f4
Finish cleanup of core::str
...
Closes #1849
2012-02-23 17:00:19 +01:00
Marijn Haverbeke
1d2b4b97ed
Optimize str::replace
2012-02-23 17:00:19 +01:00
Marijn Haverbeke
d802c1fbd2
Various cleanups and optimizations in core::str
2012-02-23 17:00:19 +01:00
Marijn Haverbeke
35e9192762
Make str::pop_char and str::unsafe::pop_byte efficient
...
O(1) rather than O(string len)
2012-02-23 17:00:19 +01:00
Kevin Cantu
c2984b46b4
(core::str) comments
2012-02-23 17:00:19 +01:00
Kevin Cantu
961b6446b6
(core::str) rename ++
2012-02-23 17:00:19 +01:00
Kevin Cantu
c3318f29fe
(core::str) rename substr_len_bytes to substr_len, and delete unused byte_index[_from]
2012-02-23 17:00:19 +01:00
Kevin Cantu
7782f5d692
(core::str) remove len_bytes alias
2012-02-23 17:00:19 +01:00
Kevin Cantu
1b957c0942
(core::str) replace uses of unsafe::slice_bytes; replace find[_from]_bytes with find[_from]
2012-02-23 17:00:19 +01:00
Kevin Cantu
cec053487c
(core::str) stop using index_chars
2012-02-23 17:00:19 +01:00
Kevin Cantu
6ea3d7935e
(core::str) replace byte_index[_from] with index[_from]
2012-02-23 17:00:19 +01:00
Kevin Cantu
280633a728
(core::str) do some replacements
2012-02-23 17:00:19 +01:00
Kevin Cantu
2756a61e34
(core::str) add index, index_from, rindex which return byte positions of chars; rename find to find_chars; add fixmes to delete byte_index, byte_index_from
2012-02-23 17:00:19 +01:00
Kevin Cantu
e1d04e0062
(core::str) add a safe byte slice and maybe_slice ++
2012-02-23 17:00:19 +01:00
Kevin Cantu
7c78b7dfed
(core::str) add a safe byte slice and maybe_slice
2012-02-23 17:00:19 +01:00
Kevin Cantu
454b53a7c2
(core::char) rename slice -> slice_chars
2012-02-23 17:00:19 +01:00
Kevin Cantu
1cd5a0945a
(core::str) rename rindex -> rindex_chars
2012-02-23 17:00:19 +01:00
Kevin Cantu
969fdf419c
(core::str) rename index -> index_chars
2012-02-23 17:00:19 +01:00
Kevin Cantu
8ea96169ff
(core::str) make len an alias for len_bytes ++
2012-02-23 17:00:19 +01:00
Kevin Cantu
669ff690fd
(core::str) make len an alias for len_bytes
2012-02-23 17:00:19 +01:00
Kevin Cantu
98447f5236
(core::str) mostly rename len -> len_chars
2012-02-23 17:00:19 +01:00
Marijn Haverbeke
ad03761a97
Remove preconditions from libraries
...
Closes #1805
2012-02-22 11:47:47 +01:00
Brian Anderson
9691ce18a2
core: Resolve a FIXME in str module
2012-02-21 01:03:13 -08:00
Brian Anderson
4370188055
Merge pull request #1860 from erickt/master
...
add str::find_from_bytes and str::index_from_bytes
2012-02-18 13:17:12 -08:00
Graydon Hoare
2796ab6de9
Add a win32-ignore attribute to a should-fail test.
2012-02-17 11:28:18 -08:00
Erick Tryzelaar
23703c0661
core: add str::find_from.
2012-02-16 19:16:08 -08:00
Erick Tryzelaar
042a5222d1
core: rewrite str::byte_index to use vec functions
2012-02-16 18:35:45 -08:00
Erick Tryzelaar
d1c9b160ad
core: slim down str.rs by importing some and none.
2012-02-16 17:30:56 -08:00
Marijn Haverbeke
67cc89f38d
Rewrite exhaustiveness checker
...
Issue #352
Closes #1720
The old checker would happily accept things like 'alt x { @some(a) { a } }'.
It now properly descends into patterns, checks exhaustiveness of booleans,
and complains when number/string patterns aren't exhaustive.
2012-02-15 15:47:42 +01:00
Marijn Haverbeke
9ff5ba085d
Fix bad line printing for parse errors
...
The code that extracted lines from partially-parsed files
was broken.
Closes #1848
2012-02-15 11:53:32 +01:00
Brian Anderson
acabd821d2
Merge pull request #1831 from killerswan/str_fixes
...
(core::str) changes to find / find_bytes
2012-02-14 11:22:31 -08:00
Kevin Cantu
69834646d2
(core::str) more test cases
2012-02-13 03:07:29 -08:00
Kevin Cantu
2600db4778
(core::str) added FIXME comment
2012-02-13 02:17:19 -08:00
Kevin Cantu
07ef368c60
(core::str) rename find_chars -> find
2012-02-13 01:57:05 -08:00
Kevin Cantu
c81867474a
(core::str) add find_bytes and export it...
2012-02-13 01:56:58 -08:00
Kevin Cantu
748b63f63f
(core::str) add find_chars and b2c_pos functions
2012-02-13 01:56:10 -08:00
Kevin Cantu
0e61fe2eea
(core::str) use slice_bytes in starts_with for a little bit less string traversal
2012-02-13 01:56:10 -08:00
Tomoki Aonuma
4d788be80d
from_cstr and from_cstr_len are not unsafe, I think
2012-02-13 12:44:14 +09:00
Tomoki Aonuma
8d29e87056
core::str::from_cstr uses from_cstr_len
2012-02-13 12:44:14 +09:00
Tomoki Aonuma
e5cc9193f8
Avoid extra memory allocations in core::str::from_cstr_len
2012-02-13 12:44:14 +09:00
Kevin Cantu
f5e1108fc3
(core::str) comments and cleanup
2012-02-12 15:30:21 -08:00
Kevin Cantu
faa513b1f6
(core::str) fixed replace, fixed starts_with, and added more find/contains/replace test cases
2012-02-12 15:30:21 -08:00
Kevin Cantu
2ba44e24d5
(core::str) rename byte_len_range -> substr_len_bytes and
...
rename char_len_range -> substr_len_chars
2012-02-12 15:30:20 -08:00
Kevin Cantu
2b4f5136a5
(core::str) rename byte_len -> len_bytes and rename char_len -> len
2012-02-12 15:30:20 -08:00
Kevin Cantu
944f5a6598
(core::str) move push_byte, push_bytes, pop_byte, and shift_byte into str::unsafe
2012-02-12 15:30:20 -08:00
Tomoki Aonuma
70b04a14d1
Add a test for core::str::from_cstr_len
2012-02-12 13:28:54 +09:00
Tomoki Aonuma
6408d54c13
Implement core::str::from_cstr_len, close #1666
2012-02-12 13:25:15 +09:00
Kevin Cantu
207bb3d2df
(core::str) removed [r]index_byte
2012-02-11 17:04:08 -08:00
Kevin Cantu
50360873f8
(core::str) added rindex and rewrote pop_char with char_range_at_reverse
2012-02-11 16:39:39 -08:00
Kevin Cantu
27161f4415
using str::index...
2012-02-11 16:39:39 -08:00
Kevin Cantu
14baf88f89
core::str: added index (char)
2012-02-11 16:39:39 -08:00
Kevin Cantu
a131b430a0
core::str rename [r]index -> [r]index_bytes
2012-02-11 16:39:39 -08:00
Marijn Haverbeke
50fb4c30ed
Increase precedence of as operator
...
Closes #1717
2012-02-09 11:58:08 +01:00
Erick Tryzelaar
3a413aabd4
core: add str::as_bytes function
...
This pattern is used in a couple places, so it'd be nice
to abstract it away.
2012-02-08 10:18:36 -08:00
Graydon Hoare
93450abb4b
Make process-spawning take environments and working directories, remove procsrv task from compiletest.
2012-02-07 19:57:03 -08:00
Kevin Cantu
1aa23947a6
core: add str::splitn_char and fix str::splitn_char_iter
2012-02-07 16:25:35 -08:00
Kevin Cantu
2b0396c34a
core: make str::substr use char positions (and replace other uses)
2012-02-07 16:25:35 -08:00
Kevin Cantu
a3f5626ad1
String split renaming:
...
* Renamed str::split -> str::split_byte
* Renamed str::splitn -> str::splitn_byte
* Renamed str::split_func -> str::split
* Renamed str::split_char -> str::split_char
* Renamed str::split_chars_iter -> str::split_char_iter
* Added u8::is_ascii
* Fixed the behavior of str::split_str, so that it matches split_chars
and split (i.e. ["", "XXX", "YYY", ""] == split_str(".XXX.YYY.", "."))
* Fixed str::split_byte and str::splitn_byte so that they handle
splitting UTF-8 strings on a given UTF-8/ASCII byte and also handle ""
as the others do
2012-02-07 16:25:35 -08:00
Erick Tryzelaar
be35893834
core: Implement str::escape with str::chars_iter.
2012-02-05 19:42:56 -08:00
Brian Anderson
c04b897cb2
core: Resolve some FIXMEs
2012-02-05 17:30:47 -08:00
Kevin Cantu
6be25c8a0c
Adding str::reserve
2012-02-05 14:56:16 -08:00
Kevin Atkinson
e127bf680f
Fix byte_len in char_len_range to be what it is advertised.
2012-02-03 17:48:16 -08:00
Tom Lee
31b0d1b4bd
core: rename str::lteq to str::le
2012-02-03 14:09:44 +01:00
Kevin Cantu
ae0d49aa06
Rename str::char_slice -> str::slice
2012-02-01 21:56:53 -08:00
Kevin Cantu
fc9169f09c
Make the tests work, too
2012-02-01 21:56:53 -08:00
Kevin Cantu
8f367ebfeb
Rename (again) str::unsafe::slice -> str::unsafe::slice_bytes and
...
str::unsafe::safe_slice -> str::unsafe::slice_bytes_safe_range
2012-02-01 21:56:53 -08:00
Kevin Cantu
01c01f68af
Stop exporting str::slice and str::safe_slice (use unsafe instead)
2012-02-01 21:56:53 -08:00
Kevin Cantu
4e406d7fdd
Make it work 1
2012-02-01 21:56:53 -08:00
Kevin Cantu
cccf9e5389
Copy str::slice -> str::unsafe::slice (and unsafe_slice)
2012-02-01 21:56:53 -08:00
Kevin Cantu
5a19bafeea
Actually export the str::unsafe module for now
2012-02-01 21:56:53 -08:00
Brian Anderson
d24eb58a09
core: Ignore should_fail tests on win32
2012-02-01 15:35:59 -08:00
Kevin Cantu
1f795ff3b0
Re-implementing str::to_upper and str::to_lower using str::map
2012-01-31 14:29:11 -08:00
Kevin Cantu
a8b657397a
Add str::split_chars_iter and str::splitn_chars_iter
2012-01-31 14:29:11 -08:00
Kevin Cantu
ebf14cb3a9
Rename str::iter_chars -> str::chars_iter
2012-01-31 14:29:11 -08:00
Kevin Cantu
c7454f5595
Rename str::to_chars -> str::chars
2012-01-31 14:29:11 -08:00
Kevin Cantu
685a434e0a
Rename str::loop_chars to str::all,
...
rename str::loop_chars_sub to str::substr_all, and
propagate this change to std::rope and rustdoc's calls to these
2012-01-31 14:29:11 -08:00
Kevin Cantu
be9129f556
Comment fixes in str
2012-01-31 14:29:11 -08:00
Kevin Cantu
03b8c8df01
Rename str::from_byte(s) to str::unsafe::from_byte(s),
...
mark them as unsafe,
make comp/driver/driver.rs use str::from_bytes...
2012-01-31 14:29:10 -08:00
Kevin Cantu
3afc16f7a4
Change FIXME comments in str
2012-01-25 23:20:10 -08:00
Kevin Cantu
fec36de94e
Making str::from_cstr UTF-8 safe
2012-01-25 02:25:57 -08:00
Kevin Cantu
9750e83a17
Replace uses of str::unsafe_from_byte
2012-01-24 23:47:32 -08:00
Kevin Cantu
2496dccae4
Changed type of str::from_bytes and added str::from_byte
2012-01-24 23:44:19 -08:00
Kevin Cantu
4c4a5f734d
Reorganizing str.rs to group and document strings better (no functional changes, though FIXMEs added)
2012-01-24 14:08:48 -08:00
Kevin Cantu
69ffb4e3ae
s/fn&/fn/
2012-01-23 22:28:25 -08:00
Kevin Cantu
8f4d1f3d27
Added str::from_bytes (which is UTF-8 safe)
2012-01-23 22:28:25 -08:00
Kevin Cantu
7608a06b33
improved test case for str::any
2012-01-23 22:28:25 -08:00
Kevin Cantu
536dd2f5a7
Added str::lines_iter
2012-01-23 22:28:25 -08:00
Kevin Cantu
1c54744e3f
fixing indentation
2012-01-23 22:28:25 -08:00
Kevin Cantu
ff95029171
Added str::words_iter
2012-01-23 22:28:25 -08:00
Kevin Cantu
d4b287e852
Added str::any, str::bytes_iter, str::windowed, and vec::windowed functions
2012-01-23 22:28:25 -08:00
Kevin Cantu
0493a7c87d
Added str::map and str::all functions
2012-01-23 22:28:25 -08:00
Niko Matsakis
5e13d19cc0
s/block()/fn()/g
2012-01-23 19:06:33 -08:00
Brian Anderson
17bf4b0e1b
libcore: Move core tests into libcore
2012-01-17 19:41:05 -08:00
Josh Matthews
1223bbc4de
Make str::replace smarter.
2012-01-16 13:35:35 -05:00
Kevin Cantu
d8b0a1910a
Added string functions: split_func, split_char, lines, lines_any, words,
...
and more tests
2012-01-15 20:20:06 -08:00
Lenny222
d1ffe5034b
"str": rename "str_from_cstr" to "from_cstr" (analogous to the other "from_*")
2012-01-04 09:33:07 +01:00
Lenny222
dd284eb396
"char": use shorter names "to_lower"/"to_upper", analogous to the same names in "str"
2012-01-04 09:33:04 +01:00
Lenny222
e12b169247
implement str::is_whitespace using char::is_whitespace
2012-01-04 09:32:59 +01:00
Lenny222
f8d7a1c258
"str": extract to_upper/lower_case() into "char"
2012-01-01 13:15:30 -08:00
Graydon Hoare
f0dfbe7b1b
Register new snapshots, purge log_err and log_full in favour of log(...).
2011-12-22 17:53:53 -08:00
Graydon Hoare
8b580954fe
Register snapshots and switch logging over to use of log_full or #error / #debug.
2011-12-22 14:42:52 -08:00
Erick Tryzelaar
02d84d89e0
libcore: add splitn to split a string N times.
2011-12-19 10:22:07 -08:00
Stefan Plantikow
bfbaadc694
core: marked fns as pure where possible
2011-12-16 17:41:07 +01:00
Patrick Walton
fd1dd76977
stdlib: Add a str::split_str() to split on a delimiter string of any length
2011-12-15 17:39:53 -08:00
Graydon Hoare
fa9ad984fb
Copy first batch of material from libstd to libcore.
2011-12-13 16:34:50 -08:00