[ruby-dev:45281] [ruby-trunk - Bug #6069][Open] シングルクォート内のマルチバイト直前のバックスラッシュが消える

From: Tomoyuki Chikanaga <nagachika00@...>
Date: 2012-02-24 17:33:43 UTC
List: ruby-dev #45281
Issue #6069 has been updated by Tomoyuki Chikanaga.

Category set to core
Status changed from Closed to Open
Assignee set to Nobuyoshi Nakada

r34776 での対応はダブルクオートも含めて文字列リテラル内の non-ascii 文字の前のバックスラッシュは残すようになっていると思うのですが、このチケットの意図としては ascii 文字の時と同じくダブルクオートの時は消す、シングルクオートの時は残す、という挙動をして欲しいということではないでしょうか?

 "\z" # => "z"
 
 '\z' # => "\\z"

ということで reopen します。
----------------------------------------
Bug #6069: シングルクォート内のマルチバイト直前のバックスラッシュが消える
https://bugs.ruby-lang.org/issues/6069

Author: _ wanabe
Status: Open
Priority: Normal
Assignee: Nobuyoshi Nakada
Category: core
Target version: 
ruby -v: ruby 2.0.0dev (2012-02-21 trunk 34711) [i686-linux]


http://toro.2ch.net/test/read.cgi/tech/1324826777/710 で指摘があったのですが
| シングルクォート文字列リテラルで
| マルチバイト文字直前のバックスラッシュが一つだけだと
| バックスラッシュが消え去ってました 
とのことです。具体的には以下の例のようになります。

# coding: UTF-8
p 'foo\ほげ' # => "fooほげ"

git bisect で追ってみると、r33161 からのようでした。
http://d.hatena.ne.jp/nagachika/20110902/ruby_trunk_changes_33158_33164

たとえば ruby -e "p '\b'" などは "\\b" となりますので、
バックスラッシュは無視するのでなくそのまま残す方が嬉しいように思うのですがいかがでしょうか。


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

In This Thread

Prev Next