Feature #2093

String#stripの対象は\sか[:space:]か

Added by naruse (Yui NARUSE) over 2 years ago. Updated about 1 year ago.

[ruby-dev:39322]
Status:Closed Start date:09/13/2009
Priority:Normal Due date:
Assignee:matz (Yukihiro Matsumoto) % Done:

100%

Category:M17N
Target version:1.9.2

Description

現在、String#strip は rb_enc_isspace を使っています。
つまり、[:space:] にマッチするものを落とすため、
例えばいわゆる全角空白等も切り落とす対象になっています。

しかし、他の Ruby core API は ASCII を意識した動きをすることが多く、
strip はちょっと予想を裏切る動作になっています。

なんとなくただの修正漏れのように感じるのですがどうでしょう?

Related issues

related to Archive91 - Backport #2477: String#split should be ASCII sensitive Assigned 12/14/2009

Associated revisions

Revision 24926
Added by matz (Yukihiro Matsumoto) over 2 years ago

* string.c (rb_str_lstrip_bang): use ascii_isspace(). [ruby-dev:39322] * string.c (rb_str_rstrip_bang): ditto. * string.c (rb_str_split_m): ditto.

History

Updated by matz (Yukihiro Matsumoto) over 2 years ago

まつもと ゆきひろです

In message "Re: [ruby-dev:39322] [Feature #2093] String#stripの対象は\sか[:space:]か"
    on Sun, 13 Sep 2009 02:25:08 +0900, Yui NARUSE <redmine@ruby-lang.org> writes:

|現在、String#strip は rb_enc_isspace を使っています。
|つまり、[:space:] にマッチするものを落とすため、
|例えばいわゆる全角空白等も切り落とす対象になっています。
|
|しかし、他の Ruby core API は ASCII を意識した動きをすることが多く、
|strip はちょっと予想を裏切る動作になっています。
|
|なんとなくただの修正漏れのように感じるのですがどうでしょう?

そうですね。単なるisspaceを使うべきでしょう。

Updated by matz (Yukihiro Matsumoto) over 2 years ago

まつもと ゆきひろです

In message "Re: [ruby-dev:39336] Re: [Feature #2093] String#stripの対象は\sか[:space:]か"
    on Tue, 15 Sep 2009 02:56:04 +0900, Yukihiro Matsumoto <matz@ruby-lang.org> writes:

||現在、String#strip は rb_enc_isspace を使っています。
||つまり、[:space:] にマッチするものを落とすため、
||例えばいわゆる全角空白等も切り落とす対象になっています。
||
||しかし、他の Ruby core API は ASCII を意識した動きをすることが多く、
||strip はちょっと予想を裏切る動作になっています。

|そうですね。単なるisspaceを使うべきでしょう。

いざ修正してみるとsplitも[:space:]を使ってました。これも揃え
て直します。

Updated by matz (Yukihiro Matsumoto) over 2 years ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100
Applied in changeset r24926.

Also available in: Atom PDF