[#10853] Why limit class def to a constant or colon node? — Charles Oliver Nutter <charles.nutter@...>

Is there a historical reason why I can't do something like these:

12 messages 2007/04/03

[#10933] Cannot build with extra library path if previous version already installed — <noreply@...>

Bugs item #10140, was opened at 2007-04-16 17:32

10 messages 2007/04/16
[#10934] Re: [ ruby-Bugs-10140 ] Cannot build with extra library path if previous version already installed — nobu@... 2007/04/16

Hi,

[#10960] Re: [ ruby-Bugs-10140 ] Cannot build with extra library path if previous version already installed — "Michal Suchanek" <hramrach@...> 2007/04/18

On 4/16/07, nobu@ruby-lang.org <nobu@ruby-lang.org> wrote:

[#10967] Re: [ ruby-Bugs-10140 ] Cannot build with extra library path if previous version already installed — Nobuyoshi Nakada <nobu@...> 2007/04/19

Hi,

[#10970] Re: [ ruby-Bugs-10140 ] Cannot build with extra library path if previous version already installed — "Michal Suchanek" <hramrach@...> 2007/04/19

On 4/19/07, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:> Hi,>> At Wed, 18 Apr 2007 20:21:44 +0900,> Michal Suchanek wrote in [ruby-core:10960]:> > Yes. And this should also apply to extensions. The mkmf tests are now> > fine but the extension is linked with -L/sw/lib before -L../..>> Indeed.>>> Index: configure.in> ===================================================================> --- configure.in (revision 12191)> +++ configure.in (working copy)> @@ -1385,5 +1385,4 @@ if test "$enable_rpath" = yes; then> fi>> -LDFLAGS="-L. $LDFLAGS"> AC_SUBST(ARCHFILE)>This would break the previous fix so I did not even try to apply this ^

[#11003] miniruby loads extensions from already installed ruby — <noreply@...>

Bugs item #10303, was opened at 2007-04-23 10:44

10 messages 2007/04/23

[#11025] gsub with backslash characters in replacement string — "Adam Bozanich" <adam.boz@...>

Hello, spotted this one the other day:

10 messages 2007/04/26

Re: [patch] gsub with backslash characters in replacement string

From: "Marte Raphael Y. Soliza" <myrtactle@...>
Date: 2007-04-26 16:52:27 UTC
List: ruby-core #11037
On 4/26/07, Adam Bozanich <adam.boz@gmail.com> wrote:
>
> On 4/26/07, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
> >
> > Hi,
> >
> > In message "Re: [patch] gsub with backslash characters in replacement
> > string"
> >     on Thu, 26 Apr 2007 17:09:42 +0900, "Adam Bozanich" <adam.boz@gmail.com >
> > writes:
> >
> > |Hello, spotted this one the other day:
> > |
> > |irb(main):001:0> '\\'.gsub('\\','\\\\')
> > |=> "\\"
> > |irb(main):002:0> '\\'.gsub('\\','\\\\\\')
> > |=> "\\\\"
> > |
> > |The following patch seems to fix things on my system
> >
> > It was intentional to escape backslashes in replacement string.
> > If it were a bug, how do we escape backslashes?  Any idea?
> >
> >                                                         matz.
> >
> >
> Not sure that I'm understanding you here.
>
> let's try again.
>
> test.rb:
>
> 1.upto(6) do |x|
>     print "a".gsub("a","\\"*x).size , " "
> end
>
> print "a".gsub("a","\n")
>
> before patch output is:
> 1 1 2 2 3 3
>
> after patch output is:
> 1 2 3 4 5 6
>
> Note that the newline works in both cases.
>
> -Adam
>

It has something to do with replacing groups in regular expressions. For
example, you can do:
>> "abc".gsub(/(.)/, "\\1,")
=> "a,b,c,"

So, to escape literal backslashes in replacements, we need four backslashes:
\\\\ # actual code
\\ # actual string
\ # actual replacement
Now if we have an odd number of actual backslash characters, then the last
one will be treated as a literal:
\\\\\\ # actual code
\\\ # actual string
\\ # actual replacement

What we can do is to not double-escape the backslashes if the first argument
is non-regex. Though that maybe a little confusing especially if you expect
your first argument to be both string and regex.


-- 
"Life is unfair... but beautiful."
Scarlette Krimson

In This Thread