[#35631] [Ruby 1.9 - Bug #4558][Open] TestSocket#test_closed_read fails after r31230 — Tomoyuki Chikanaga <redmine@...>

23 messages 2011/04/06

[#35632] [Ruby 1.9 - Bug #4559][Open] Proc#== does not match the documented behaviour — Adam Prescott <redmine@...>

13 messages 2011/04/06

[#35637] [Ruby 1.9 - Bug #4561][Open] 1.9.2 requires parentheses around argument of method call in an array, where 1.8.7 did not — Dave Schweisguth <redmine@...>

9 messages 2011/04/07

[#35734] [Ruby 1.9 - Feature #4574][Open] Numeric#within — redmine@...

16 messages 2011/04/13

[#35753] [Ruby 1.9 - Bug #4576][Open] Range#step miss the last value, if end-exclusive and has float number — redmine@...

61 messages 2011/04/14
[#39566] [Ruby 1.9 - Bug #4576] Range#step miss the last value, if end-exclusive and has float number — Marc-Andre Lafortune <ruby-core@...> 2011/09/15

[#39590] [Ruby 1.9 - Bug #4576] Range#step miss the last value, if end-exclusive and has float number — Marc-Andre Lafortune <ruby-core@...> 2011/09/16

[#39593] Re: [Ruby 1.9 - Bug #4576] Range#step miss the last value, if end-exclusive and has float number — Tanaka Akira <akr@...> 2011/09/16

2011/9/17 Marc-Andre Lafortune <[email protected]>:

[#39608] Re: [Ruby 1.9 - Bug #4576] Range#step miss the last value, if end-exclusive and has float number — Masahiro TANAKA <masa16.tanaka@...> 2011/09/17

I have not been watching ruby-core, but let me give a comment for this issu=

[#35765] [Ruby 1.9 - Bug #4579][Open] SecureRandom + OpenSSL may repeat with fork — redmine@...

27 messages 2011/04/15

[#35866] [Ruby 1.9 - Bug #4603][Open] lib/csv.rb: when the :encoding parameter is not provided, the encoding of CSV data is treated as ASCII-8BIT — yu nobuoka <nobuoka@...>

13 messages 2011/04/24

[#35879] [Ruby 1.9 - Bug #4610][Open] Proc#curry behavior is inconsistent with lambdas containing default argument values — Joshua Ballanco <jballanc@...>

11 messages 2011/04/25

[#35883] [Ruby 1.9 - Bug #4611][Open] [BUG] Segementation fault reported — Deryl Doucette <me@...>

15 messages 2011/04/25

[#35895] [Ruby 1.9 - Feature #4614][Open] [RFC/PATCH] thread_pthread.c: lower RUBY_STACK_MIN_LIMIT to 64K — Eric Wong <normalperson@...>

10 messages 2011/04/25

[ruby-core:35927] [Ruby 1.9 - Bug #4609] String#rpartition(regexp) has bug, when regexp contains quantifier

From: Joey Zhou <yimutang@...>
Date: 2011-04-27 08:23:57 UTC
List: ruby-core #35927
Issue #4609 has been updated by Joey Zhou.


Well, String#rindex act the same way:

 str = "abc123def456ghi"
 puts str.rindex(/\d+/) # 11, not 9
----------------------------------------
Bug #4609: String#rpartition(regexp) has bug, when regexp contains quantifier
http://redmine.ruby-lang.org/issues/4609

Author: Joey Zhou
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 1.9.2p180 (2011-02-18) [i386-mingw32]


For example:

  str = "abc123def456ghi"
  ary1 = str.partition(/\d+/)
  ary2 = str.rpartition(/\d+/)
  p ary1 #=> ["abc", "123", "def456ghi"]
  p ary2 #=> ["abc123def45", "6", "ghi"]

What I expected is: ary2 is ["abc123def", "456", "ghi"].
["abc123def45", "6", "ghi"] may be the result of str.rpartition(/\d/)

I have no knowledge about C language, so I can't read the source code.
But I guess the matching procedure may be such:

Go from the right side of str, attempting to match the regexp:

matched_substr?

1  take "i"  false       go to next char

2  take "h"  false       go to next char

3  take "g"  false       go to next char

4  take "6"  true("6")   go to next char

5  add  "5"  true("56")  go to next char

6  add  "4"  true("456") go to next char

7  add  "f"  false       exit, return last matched string "456"

It seems that the actual procedure exit at step 4, whenever true, and return "6".

Maybe it should be a filp-flop condition, when matching become true, go ahead, exit when it becomes false again.


-- 
http://redmine.ruby-lang.org

In This Thread