ruby-dev (Japanese) list archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-dev:48085] [ruby-trunk - Bug #9693] [Open] \x{} in regexp
       [not found] <redmine.issue-9693.20140402004908@ruby-lang.org>
@ 2014-04-02  0:49 ` zn
  2014-04-07  6:10 ` [ruby-dev:48097] [ruby-trunk - Bug #9693] " naruse
  2019-12-18 14:06 ` [ruby-dev:50897] [Ruby master Bug#9693] " mame
  2 siblings, 0 replies; 3+ messages in thread
From: zn @ 2014-04-02  0:49 UTC (permalink / raw)
  To: ruby-dev

Issue #9693 has been reported by Kazuhiro NISHIYAMA.

----------------------------------------
Bug #9693: \x{} in regexp
https://bugs.ruby-lang.org/issues/9693

* Author: Kazuhiro NISHIYAMA
* Status: Open
* Priority: Normal
* Assignee: 
* Category: regexp
* Target version: 
* ruby -v: ruby 2.2.0dev (2014-02-23 trunk 45151) [x86_64-linux]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
https://github.com/rurema/doctree/issues/80 の話です。

`regparse.c` の `OnigSyntaxRuby` では `ONIG_SYN_OP_ESC_X_BRACE_HEX8` が有効になっていて、使えることを意図しているように見えるのですが、正規表現リテラルだと parser が通してくれなくて `syntax error, unexpected '{', expecting end-of-input` になるようです。

`Regexp.new` に直接渡しても `re.c` の中で `invalid hex escape` になるので使えないようです。



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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [ruby-dev:48097] [ruby-trunk - Bug #9693] \x{} in regexp
       [not found] <redmine.issue-9693.20140402004908@ruby-lang.org>
  2014-04-02  0:49 ` [ruby-dev:48085] [ruby-trunk - Bug #9693] [Open] \x{} in regexp zn
@ 2014-04-07  6:10 ` naruse
  2019-12-18 14:06 ` [ruby-dev:50897] [Ruby master Bug#9693] " mame
  2 siblings, 0 replies; 3+ messages in thread
From: naruse @ 2014-04-07  6:10 UTC (permalink / raw)
  To: ruby-dev

Issue #9693 has been updated by Yui NARUSE.

Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN to 2.0.0: DONTNEED, 2.1: DONTNEED

なぜ OnigSyntaxRuby に ONIG_SYN_OP_ESC_X_BRACE_HEX8 が含まれているのか謎ですが、
挙動・仕様としてはそのままでいいんじゃないでしょうか。
"\x{a}" も許されてないし。

また、これを外したからといって最適化で消えるようになる気もあんまりしないので、気分の問題ですかねぇ。
消してもいいとは思うのでコミットしたい場合はしてくださいですが、した場合はupstreamへの反映をよろしくお願いします。
https://github.com/k-takata/Onigmo/tree/tmp/ruby-2.0.x


----------------------------------------
Bug #9693: \x{} in regexp
https://bugs.ruby-lang.org/issues/9693#change-46098

* Author: Kazuhiro NISHIYAMA
* Status: Open
* Priority: Normal
* Assignee: 
* Category: regexp
* Target version: 
* ruby -v: ruby 2.2.0dev (2014-02-23 trunk 45151) [x86_64-linux]
* Backport: 2.0.0: DONTNEED, 2.1: DONTNEED
----------------------------------------
https://github.com/rurema/doctree/issues/80 の話です。

`regparse.c` の `OnigSyntaxRuby` では `ONIG_SYN_OP_ESC_X_BRACE_HEX8` が有効になっていて、使えることを意図しているように見えるのですが、正規表現リテラルだと parser が通してくれなくて `syntax error, unexpected '{', expecting end-of-input` になるようです。

`Regexp.new` に直接渡しても `re.c` の中で `invalid hex escape` になるので使えないようです。



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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [ruby-dev:50897] [Ruby master Bug#9693] \x{} in regexp
       [not found] <redmine.issue-9693.20140402004908@ruby-lang.org>
  2014-04-02  0:49 ` [ruby-dev:48085] [ruby-trunk - Bug #9693] [Open] \x{} in regexp zn
  2014-04-07  6:10 ` [ruby-dev:48097] [ruby-trunk - Bug #9693] " naruse
@ 2019-12-18 14:06 ` mame
  2 siblings, 0 replies; 3+ messages in thread
From: mame @ 2019-12-18 14:06 UTC (permalink / raw)
  To: ruby-dev

Issue #9693 has been updated by mame (Yusuke Endoh).

Status changed from Open to Rejected

`"\x{00000020}"` も書けないわけなので、とりあえず現行の挙動は意図的であると考えます。逆に、`/\x{00000020}/` を許すなら `"\x{00000020}"` も許さねば、ってことになるのではないでしょうか。そういう仕様変更に意見はないですが、Bug ではなかろうということで閉じます。

`ONIG_SYN_OP_ESC_X_BRACE_HEX8` は実装詳細なんで、直したかったら成瀬さんの言うとおりにするか、もしくはupstreamを直してもらってからバックポートするのが良さそうな気がします。

----------------------------------------
Bug #9693: \x{} in regexp
https://bugs.ruby-lang.org/issues/9693#change-83217

* Author: znz (Kazuhiro NISHIYAMA)
* Status: Rejected
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.2.0dev (2014-02-23 trunk 45151) [x86_64-linux]
* Backport: 2.0.0: DONTNEED, 2.1: DONTNEED
----------------------------------------
https://github.com/rurema/doctree/issues/80 の話です。

`regparse.c` の `OnigSyntaxRuby` では `ONIG_SYN_OP_ESC_X_BRACE_HEX8` が有効になっていて、使えることを意図しているように見えるのですが、正規表現リテラルだと parser が通してくれなくて `syntax error, unexpected '{', expecting end-of-input` になるようです。

`Regexp.new` に直接渡しても `re.c` の中で `invalid hex escape` になるので使えないようです。



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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-12-18 14:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <redmine.issue-9693.20140402004908@ruby-lang.org>
2014-04-02  0:49 ` [ruby-dev:48085] [ruby-trunk - Bug #9693] [Open] \x{} in regexp zn
2014-04-07  6:10 ` [ruby-dev:48097] [ruby-trunk - Bug #9693] " naruse
2019-12-18 14:06 ` [ruby-dev:50897] [Ruby master Bug#9693] " mame

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).