Yukihiro "Matz" Matsumoto
9145aed85e
bytes2chars() conversion to fail if target byte offset is not on the character boundary; ref #3067
...
that means String#index matches first byte of a multi-byte character. this behavior is different
from CRuby, but a compromise for mruby which does not have encoding stuffs.
2016-01-05 18:05:25 +09:00
ksss
6c1b6ef7a5
Use memchr for performance
...
```ruby
s = "b"
str = ("a" * 100 + s)
t = Time.now
str.index(s)
puts Time.now - t
```
before => 0.000788
after => 0.000508
---
```ruby
s = "b"
str = ("a" * 100 * 1024 * 1024 + s)
t = Time.now
str.index(s)
puts Time.now - t
```
before => 0.225474
after => 0.008658
2015-12-31 17:52:22 +09:00
Yasuhiro Matsumoto
7cc33af2dc
fix build on VS2012
2015-12-22 17:46:20 +09:00
Yukihiro "Matz" Matsumoto
f54a98ff15
mrb_str_len_to_inum(): fixed a bug with MRB_INT_MIN conversion; fix #3048
2015-12-16 14:49:43 +09:00
Yukihiro "Matz" Matsumoto
d18c55fca7
mrb_str_len_to_inum(): fixed a bug with underscores in digits; fix #3049
2015-12-16 14:49:08 +09:00
Yukihiro "Matz" Matsumoto
2a234a93d7
mrb_str_len_to_inum(): string may not be NUL terminated; ref #3043
2015-12-14 10:59:56 +09:00
Yukihiro "Matz" Matsumoto
19c744e14d
mrb_str_len_to_inum(): fixed a bug with separating _ in the digits; ref #3043
2015-12-14 10:59:56 +09:00
Yukihiro "Matz" Matsumoto
26a25e1666
mrb_str_len_to_inum: should not raise "string contains null byte" error on "0x"; fix #3043
2015-12-12 16:33:48 +09:00
Yukihiro "Matz" Matsumoto
ad333cd191
mrb_str_len_to_inum: converting may not be terminated by NUL; fix #3044
2015-12-12 16:33:48 +09:00
Yukihiro "Matz" Matsumoto
9a21aa2d3c
preserve original string for error message
2015-12-01 21:42:07 +09:00
Yukihiro "Matz" Matsumoto
ca417dac26
mrb_str_len_to_inum(): inspect string in error message
2015-12-01 21:41:53 +09:00
Yukihiro "Matz" Matsumoto
36fabe104b
new API function mrb_string_value_len()
2015-12-01 16:18:01 +09:00
Yukihiro "Matz" Matsumoto
0701236dac
mrb_str_to_inum(): should treat null byte in strings properly; fix #3040
2015-12-01 16:11:47 +09:00
Yukihiro "Matz" Matsumoto
d3a56a6949
mrb_cstr_to_inum(): should ignore trailing white spaces even when badcheck set
2015-12-01 11:14:22 +09:00
Yukihiro "Matz" Matsumoto
dbb8cf637e
mrb_str_to_inum(): should raise error when string contains null byte
2015-12-01 11:13:32 +09:00
Yukihiro "Matz" Matsumoto
9f2fca6ebe
mrb_str_to_inum(): no need to call mrb_string_value_cstr() here; ref 05411ee
2015-12-01 10:54:00 +09:00
Yukihiro "Matz" Matsumoto
05411ee15e
mrb_string_value_cstr() should not raise error for frozen strings
...
cf. http://qiita.com/tsahara@github/items/b2a442af95ac893e10a1 (Japanese).
2015-12-01 10:45:43 +09:00
Yukihiro "Matz" Matsumoto
5c405dea3d
include changed from by quotes ("") to by brackets (<>); close #3032
2015-11-27 17:48:23 +09:00
Seba Gamboa
e871b77f41
Increasing docs coverage
2015-10-20 12:16:46 -03:00
Yasuhiro Matsumoto
d5f145076c
chop with utf-8. fix #2967
2015-09-29 21:22:45 +09:00
takahashim
074c6e2678
fix String#inspect with MRB_UTF8_STRING
...
cf. #2963
2015-09-27 13:43:45 +09:00
Yukihiro "Matz" Matsumoto
524a038876
inspect prints valid UTF-8 character without escaping
2015-09-25 23:09:46 +09:00
Yukihiro "Matz" Matsumoto
c069e5ff40
add boundary check to utf8len() to avoid oob memory access
2015-09-25 23:08:37 +09:00
Yukihiro "Matz" Matsumoto
798ec3aff4
UTF-8 string support in core
...
define MRB_UTF8_STRING (in mrbconf.h) to enable UTF-8 support.
2015-09-24 02:37:33 +09:00
Yukihiro "Matz" Matsumoto
6a06a3e48d
String#rindex should no longer take integer argument
2015-09-23 01:06:26 +09:00
Yukihiro "Matz" Matsumoto
2cb6c27781
String#index should no longer take integer argument
2015-09-22 19:10:48 +09:00
Jun Hiroe
ce6297aa04
Fix indents
2015-09-19 06:38:28 +09:00
Yasuhiro Matsumoto
8277e950ee
Support windows locale
...
Add mrb_utf8_from_locale, mrb_utf8_free, mrb_locale_from_utf8, mrb_locale_free. Just works for windows.
2015-09-11 11:12:03 +09:00
Yukihiro "Matz" Matsumoto
e35c3aff83
unsigned long may be smaller than mrb_int; use uint64_t instead; fix #2935
2015-09-03 00:14:37 +09:00
Yukihiro "Matz" Matsumoto
14f0e4a4e4
update string.h.md; ref #2931
2015-09-02 15:09:50 +09:00
Yukihiro "Matz" Matsumoto
1a45447b8b
add String#freeze to the core
2015-08-27 17:54:30 +09:00
Yukihiro "Matz" Matsumoto
5cfc0d0dc0
Merge pull request #2877 from cremno/fix-dangling-ptr
...
Coverity: fix dangling pointer
2015-07-07 07:40:38 +09:00
Anton Davydov
03ae38df4e
Fix typo in comment in String#mrb_cstr_to_inum [skip ci]
2015-07-05 13:53:14 +03:00
cremno
7206a8c4f9
fix dangling pointer
...
CID 75872 (#3-2 of 3): Pointer to local outside scope (RETURN_LOCAL)
38. use_invalid: Using p, which points to an out-of-scope variable buf.
2015-07-03 02:48:22 +02:00
Franck Verrot
2588507285
Remove unnecessary backticks.
...
Dr Markus Kuhn published in 1999 an article [1] explaining in details
why we shouldn't use the ASCII grave accent (0x60) as a left quotation.
Backticks have been used most notably to produce nice-looking LaTeX
documents but it doesn't seem to be an issue on modern platforms and
for the oldest ones, there are workarounds as mentioned by Dr Kuhn.
[1]: https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
2015-06-24 13:07:07 +02:00
Jared Breeden
9ad632559e
*Correctly* removing extra mrb_str_to_str call
2015-06-22 20:49:09 -07:00
Jared Breeden
cfcca2a727
Reverting overzealous changes
2015-06-22 19:49:12 -07:00
Jared Breeden
9553e20d34
Removing redundant mrb_str_to_str call
2015-06-22 19:07:25 -07:00
Jared Breeden
338ca305ae
Calling mrb_str_to_str in mrb_string_value_cstr. Fixes #2847
2015-06-22 18:37:14 -07:00
Yukihiro "Matz" Matsumoto
a219e8b717
Merge pull request #2839 from yui-knk/fix/string_split_sample
...
[ci skip] Remove some Srting#split samples
2015-06-19 23:53:49 +09:00
yui-knk
d1e6d647bd
[ci skip] Remove some Srting#split samples
...
mruby not support regexp, so remove these samples.
2015-06-19 20:34:32 +09:00
cremno
2ee84eb3df
remove unnecessary including of <ctype.h>
...
Not needed anymore since 85075bef75
2015-05-28 10:44:20 +02:00
Tomoyuki Sahara
4308f3c686
remove an always-true conditional.
2015-05-21 11:50:02 +09:00
Tomoyuki Sahara
64ab781266
RSTRING_PTR may be changed in while loop.
2015-05-20 10:15:19 +09:00
Tatsuhiko Kubo
093560e7d1
Use suitable type.
2014-12-27 10:18:18 +09:00
Yukihiro "Matz" Matsumoto
2732879f3e
String#[]: float handling merged to #2677
2014-12-17 20:19:52 +09:00
Yukihiro "Matz" Matsumoto
4319eaaa45
try to convert not only nil but every objects to fixnums; ref #2677
2014-12-17 20:08:26 +09:00
h2so5
05b00a14c5
String#[] should reject nil index
2014-12-17 14:01:39 +09:00
Yukihiro "Matz" Matsumoto
a19a6edb7c
mrb_str_new(mrb, "", len) creates an unmodifiable string object; ref #2674
2014-12-17 08:06:44 +09:00
Yukihiro "Matz" Matsumoto
e1a7fa925e
add "fall through" comment
2014-11-26 01:03:57 +09:00