[#27003] [Bug #2422] splat operator fails on array of 1 element — Raul Parolari <redmine@...>

Bug #2422: splat operator fails on array of 1 element

12 messages 2009/12/02

[#27025] [Backport #2431] StringIO#{gets,readlines} with "" (paragraph mode) trims last "\n" — Hiroshi NAKAMURA <redmine@...>

Backport #2431: StringIO#{gets,readlines} with "" (paragraph mode) trims last "\n"

8 messages 2009/12/04

[#27086] [Feature #2454] OpenSSL has no maintainer — Yui NARUSE <redmine@...>

Feature #2454: OpenSSL has no maintainer

16 messages 2009/12/07

[#27120] #to_enum ignores block? — Roger Pack <rogerdpack@...>

Is #to_enum ignoring its block expected?

11 messages 2009/12/09

[#27135] better GC? — Roger Pack <rogerdpack@...>

Could I put in a small plea for a better GC?

56 messages 2009/12/10
[#27136] Re: better GC? — Yukihiro Matsumoto <matz@...> 2009/12/11

Hi,

[#27476] Re: better GC? — Paul Brannan <pbrannan@...> 2010/01/07

On Fri, Dec 11, 2009 at 09:07:16AM +0900, Yukihiro Matsumoto wrote:

[#27477] Re: better GC? — Eero Saynatkari <ruby-ml@...> 2010/01/07

Excerpts from Paul Brannan's message of Thu Jan 07 21:53:34 +0200 2010:

[#27563] Re: better GC? — Brent Roman <brent@...> 2010/01/12

[#27199] [Backport #2488] thread usage can result in bad HANDLE — Roger Pack <redmine@...>

Backport #2488: thread usage can result in bad HANDLE

12 messages 2009/12/16

[#27286] [Bug #2515] Array#select! — Roger Pack <redmine@...>

Bug #2515: Array#select!

17 messages 2009/12/22

[#27327] [Bug #2531] Ruby 1.8.7-p248 fails to cross-compile same version — Luis Lavena <redmine@...>

Bug #2531: Ruby 1.8.7-p248 fails to cross-compile same version

9 messages 2009/12/25

[#27360] [Feature #2542] URI lib should be updated to RFC 39886 — Marc-Andre Lafortune <redmine@...>

Feature #2542: URI lib should be updated to RFC 39886

15 messages 2009/12/31

[ruby-core:27204] Re: [PATCH] fix CGI::escape to work with blocks, avoid dollar variables

From: "NARUSE, Yui" <naruse@...>
Date: 2009-12-17 02:20:32 UTC
List: ruby-core #27204
On Thu, Dec 17, 2009 at 12:28 AM, Gaston Ramos <ramos.gaston@gmail.com>wrote:

> Hi Ruby-Core, I attach a path that solve this problem:
>
> class String
>  alias :old_gsub :gsub
>    def gsub(*args, &block)
>       old_gsub(*args, &block)
>    end
> end
>
> require 'cgi'
> CGI.escape("An Interview with Criteri&#8230;")
>
> NoMethodError: undefined method `size' for nil:NilClass
>  from /usr/lib/ruby/1.8/cgi.rb:343:in `escape'
>  from (irb):4:in `old_gsub'
>  from (irb):4:in `gsub'
>  from /usr/lib/ruby/1.8/cgi.rb:342:in `escape'
> from (irb):9
>
> As you can see CGI.escape won't work well when we use gsub and blocks, this
> issue was discussed in this thread:
>
>
> http://www.justskins.com/forums/bug-when-rerouting-string-gsub-with-a-block-using-1-a-52852.html


Even if you patch cgi.rb, you can use only matched string ($&) which is
passed as block parameter.
There are $~ (Regexp.last_match), $` (pre_match), $' (post_match) and $1,
$2, $3 and so on.
So your patch is fortunately adopted to cgi.rb, but not universal.

So I'm against such a sectional patch.


> where Matz say "Then don't use ugly dollar variables"


When Matz say so?
That statement doesn't face up to real situation, described above.
dollar variables may be ugly but required.


> so, dollar variables are
> problematic in this case, I changed the dollar variables by a block
> argument
> variable and the problem was solved, I added 2 tests for CGI.escape and
> CGI.unescape that reproduce this "problem", If you agree with this patch I
> could
> do other new patch in order to avoid all dollar variables inside CGI lib.
>
> And there is a bug in ActiveSupport realted with this issue:
>
> https://rails.lighthouseapp.com/projects/8994/tickets/3475-activesupportmultibytecharsgsub-fails-while-stringgsub-works
>

So current answer is "Don't change String#gsub when you controll all
things".

See also this ticket (but this is in Japanese...)
http://redmine.ruby-lang.org/issues/show/546

-- 
NARUSE, Yui
naruse@airemix.jp

In This Thread