Forum: Ruby problems with irb? str = 'a\b\c' seems impossible

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Krekna M. (Guest)
on 2006-05-19 19:19
(Received via mailing list)
Can someone help me out with this, I can't put the string 'a\b\c' in
the variable str, which is strange, because I am working with the
PickAxe book, and this what should work (page 71, 2nd ed.)

the two before seem to work, but the example in the book, 'a\b\c' seems
not.
This a bug? How come irb does not seem to understand the last quote?

irb(main):021:0> str = 'a\b\c '
=> "a\\b\\c "
irb(main):022:0> str = 'a\bc'
=> "a\\bc"
irb(main):023:0> str = 'a\b\c'
irb(main):024:0'
irb(main):025:0' '
SyntaxError: compile error
(irb):25: unterminated string meets end of file
        from (irb):25
        from :0


I'm very curious,  :-)
Krekna
unknown (Guest)
on 2006-05-19 19:47
(Received via mailing list)
On Sat, May 20, 2006 at 12:19:10AM +0900, Krekna M. wrote:
> => "a\\bc"
> irb(main):023:0> str = 'a\b\c'
> irb(main):024:0'
> irb(main):025:0' '
> SyntaxError: compile error
> (irb):25: unterminated string meets end of file
>        from (irb):25
>        from :0
>

str="a\\b\\c"
unknown (Guest)
on 2006-05-19 19:54
(Received via mailing list)
Hi --

On Sat, 20 May 2006, Krekna M. wrote:

> => "a\\bc"
> irb(main):023:0> str = 'a\b\c'
> irb(main):024:0'
> irb(main):025:0' '
> SyntaxError: compile error
> (irb):25: unterminated string meets end of file
>       from (irb):25
>       from :0

I've noticed that too.  For some reason, '\c' seems to produce
something other than a literal backslash-c sequence.  I stumbled on
that a month or so ago but I don't know why it happens.

(Helpful answer, isn't it? :-)


David
Mike S. (Guest)
on 2006-05-19 20:00
(Received via mailing list)
On 19-May-06, at 11:53 AM, removed_email_address@domain.invalid wrote:

>> This a bug? How come irb does not seem to understand the last quote?
>>       from (irb):25
>>       from :0
>
> I've noticed that too.  For some reason, '\c' seems to produce
> something other than a literal backslash-c sequence.  I stumbled on
> that a month or so ago but I don't know why it happens.
>
> (Helpful answer, isn't it? :-)

Idle speculation here.  It looks like something is getting confused,
in double quoted strings \c is the beginning of a control sequence

irb(main):004:0> "\cX"
=> "\030"

and that may be mis-handled by irb?

Mike

--

Mike S. <removed_email_address@domain.invalid>
http://www.stok.ca/~mike/

The "`Stok' disclaimers" apply.
Robert K. (Guest)
on 2006-05-19 20:14
(Received via mailing list)
2006/5/19, Krekna M. <removed_email_address@domain.invalid>:
> => "a\\bc"
> irb(main):023:0> str = 'a\b\c'
> irb(main):024:0'
> irb(main):025:0' '
> SyntaxError: compile error
> (irb):25: unterminated string meets end of file
>         from (irb):25
>         from :0

>> str = 'a\\b\\c'
=> "a\\b\\c"
>> puts str
a\b\c
=> nil

Note that irb uses inspect - this is sometimes confusing as it will
print a double backslash for a single backslash in the string.

Kind regards

robert
Krekna M. (Guest)
on 2006-05-19 20:26
(Received via mailing list)
yes, \c seems to mean something itself, some more examples of strange
behaviour below too.
The last two examples seems to work, escaping 'c' two times.

irb(main):015:0> str = "a\b\c""
=> "a\010\002"
irb(main):001:0> str = 'a\b\c '
=> "a\\b\\c "
irb(main):002:0> str = "a\b\c"
irb(main):003:0"
irb(main):004:0" "
=> "a\010\002\n\n"
irb(main):005:0> str = "a\b\d"
=> "a\010d"
irb(main):006:0> str = 'a\b\d'
=> "a\\b\\d"
irb(main):007:0> str = "a\b\\c"
=> "a\010\\c"
irb(main):008:0> str = 'a\b\\c'
=> "a\\b\\c"


Krekna

2006/5/19, Mike S. <removed_email_address@domain.invalid>:
This topic is locked and can not be replied to.