summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-string-ext
AgeCommit message (Collapse)Author
2018-09-19fixup! Remove implicit conversion using `to_str` method.Yukihiro "Matz" Matsumoto
2018-09-19Removed `String#try_convert` method from `mruby-string-ext` gem.Yukihiro "Matz" Matsumoto
Because `try_convert` method rarely used in production. For mruby users, we have `__to_str` utility method to check string type.
2018-09-19Remove implicit conversion using `to_str` method.Yukihiro "Matz" Matsumoto
We have added internal convenience method `__to_str` which does string type check.
2018-09-19Remove implicit conversion using `to_int` method.Yukihiro "Matz" Matsumoto
The ISO standard does not include implicit type conversion using `to_int`. This implicit conversion often causes vulnerability. There will be no more attacks like #4120. In addition, we have added internal convenience method `__to_int` which does type check and conversion (from floats).
2018-07-30New bytecode implementation of mruby VM.Yukihiro "Matz" Matsumoto
2018-04-21Implement `String#upto` in Ruby.Yukihiro "Matz" Matsumoto
Avoid using `mrb_yield` in C code. The function is not recommended. Because it doesn't work well with fibers.
2018-04-19CRuby2.6 stops deprecating `String#lines` with a block.Yukihiro "Matz" Matsumoto
`String#lines` (with a block) is now implemented in Ruby.
2018-04-19`String#lines` with a block is deprecated style.Yukihiro "Matz" Matsumoto
2017-12-12Modifying frozen objects will raise `FrozenError`.Yukihiro "Matz" Matsumoto
`FrozenError` is a subclass of `RuntimeError` which used to be raised. [Ruby2.5]
2017-12-08Uninitialized value returned.Yukihiro "Matz" Matsumoto
2017-11-04Merge branch 'master' of github.com:mruby/mrubyYAMAMOTO Masaya
2017-10-17Use a new function: `mrb_get_argc()`; ref #3826Yukihiro "Matz" Matsumoto
2017-10-17Add `{String,Symbol}#casecmp?`; CRuby2.4Yukihiro "Matz" Matsumoto
2017-10-17Add `String#delete_{prefix,suffix}`; CRuby2.5Yukihiro "Matz" Matsumoto
2017-10-16Support MRB_WIHTOUT_FLOAT to mruby-string-extYAMAMOTO Masaya
2017-09-27fix: mrbgems\mruby-string-ext\src\string.c(49): warning C4244: '=': ↵Tomasz Dąbrowski
conversion from 'mrb_int' to 'int', possible loss of data
2017-09-27fix: mrbgems\mruby-string-ext\src\string.c(30): warning C4244: '=': ↵Tomasz Dąbrowski
conversion from 'mrb_int' to 'long', possible loss of data
2017-09-27fix: mrbgems\mruby-string-ext\src\string.c(38): warning C4244: '=': ↵Tomasz Dąbrowski
conversion from 'mrb_int' to 'char', possible loss of data
2017-08-18Rename `mrb_str_concat2` to `mrb_str_concat_m`.Yukihiro "Matz" Matsumoto
According to the naming convention a function that implements a method should be suffixed by `_m`.
2017-06-20Avoid using `snprintf(3)` in case `MRB_DISABLE_STDIO`; fix #3714Yukihiro "Matz" Matsumoto
2017-06-19Save gc_arena after buffer got allocatedAsmod4n
Latest fix was freeing the buffer while it was still in use. Fixes #3712
2017-06-16Use `MRB_PRId` instead of `d` for mrb_int decimal specifier; ref #3701Yukihiro "Matz" Matsumoto
2017-06-16Use `mrb_str_new()` instead of `malloc()`; ref #3701Yukihiro "Matz" Matsumoto
Otherwise the function may terminate and cause memory leaks.
2017-06-16Should not use `sizeof(buf)` when `buf` is `char*`; #3701Yukihiro "Matz" Matsumoto
2017-06-14Use malloc instead of dynamic allocationksss
2017-06-14Fix arena overflow errorksss
2017-06-14Reimplement String#uptoksss
2017-05-21String#concat: Try to convert when not stringksss
2017-04-25Silence warnings caused by implicit type casting.Yukihiro "Matz" Matsumoto
2017-04-03Unify `else` clause styleYukihiro "Matz" Matsumoto
2017-03-10Terminate loop if generated string longer than the last; ref #3489Yukihiro "Matz" Matsumoto
2017-03-05Check modifiable for String `bang' methodsksss
2017-02-11Remove historical comment; ref #3450 #3448Yukihiro "Matz" Matsumoto
2017-02-11remove skip that shouldn't be necessary anymore.robert
the test should pass after https://github.com/mruby/mruby/commit/8f4a929e1a01c8d6176fb53a9ef5dff6de632959.
2017-02-10String#ljust and String#rjust reimplemented with optimized RubyTomasz Dabrowski
2017-02-10Tests for UTF-8 String#ljust and String#rjustTomasz Dabrowski
2017-02-10String#ljust and String#rjust reimplementation (fix #3445)Tomasz Dabrowski
- String#ljust and String#rjust are now C functions to improve performance - infinite loop because of an empty padding argument is now prevented (ArgumentError is raised) - extra tests for ljust/rjust added
2017-01-23Changed the behavior of mrb_range_beg_len(); close #3411Yukihiro "Matz" Matsumoto
The new API is: int mrb_range_beg_len(mrb, range, &beg, &len, len, trunc) The new argument `trunc` is a boolean value that specifies whether the function truncates the range. The new return value is an integer instead of a boolean, that is: 0: not a range 1: range with proper edges 2: out of range To get the old behavior, you have to rewrite: mrb_range_beg_len(mrb, range, &beg, &len, len) to: mrn_range_beg_len(mrb, range, &beg, &len, len, TRUE) == 1 [Breaking Change]
2017-01-04Rewrite String#prepend with Rubyksss
Fix #3357
2016-12-28save/restore arena index around yield; ref #3359Yukihiro "Matz" Matsumoto
2016-11-24Read length after args in String#setbyteCraig Lehmann
Prevents RCE Reported by https://hackerone.com/raydot
2016-11-17String#{strip,lstrip,rstrip} may cause OOB accessYukihiro "Matz" Matsumoto
2016-11-16Fixed memory disclosure in String#linesYukihiro "Matz" Matsumoto
Reported from from Alex Snaps via Mathieu Leduc-Hamel, both from shopify.com. Thank you!
2016-09-28Removed trailing spacesNobuyoshi Nakada
2016-08-17Fix String#ord failure which return a negative valueHiroshi Mimaki
2016-07-27Reduce needless Array generation in some String methodsKouhei Sutou
Here are some benchmarks: each_char: # /tmp/each_char.rb a = "a" * 1000000 a.each_char do |x| end Without this change: % time bin/mruby /tmp/each_char.rb bin/mruby /tmp/each_char.rb 1.07s user 0.02s system 99% cpu 1.088 total With this change: % time bin/mruby /tmp/each_char.rb bin/mruby /tmp/each_char.rb 0.52s user 0.01s system 99% cpu 0.530 total 2 times faster with this change. codepoints: # /tmp/codepoints.rb a = "a" * 1000000 a.codepoints do |x| end Without this change: % time bin/mruby /tmp/codepoints.rb bin/mruby /tmp/codepoints.rb 1.16s user 0.05s system 99% cpu 1.216 total With this change: % time bin/mruby /tmp/codepoints.rb bin/mruby /tmp/codepoints.rb 0.56s user 0.02s system 99% cpu 0.589 total
2016-07-26Support to call without block to String#each_charksss
2016-07-14String#insert should be destructiveksss
2016-01-30Add String#rjust test to mruby-string-extAkira Moroo
2016-01-30Add String#rjust to mruby-string-extAkira Moroo