Issue #17467 has been updated by nagachika (Tomoyuki Chikanaga).

Backport changed from 2.6: UNKNOWN, 2.7: REQUIRED, 3.0: REQUIRED to 2.6: UNKNOWN, 2.7: REQUIRED, 3.0: DONE

ruby_3_0 5af5ea7f860ed64062796e54e73274e7a56c7280 merged revision(s) cfd162d535c7a4f8b1f95255cc6be696a8b75557.

----------------------------------------
Bug #17467: What makes strip() and lstrip() not stripping \u0000 from beginning of the string?
https://bugs.ruby-lang.org/issues/17467#change-92134

* Author: SouravGoswami (Sourav Goswami)
* Status: Closed
* Priority: Normal
* ruby -v: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]
* Backport: 2.6: UNKNOWN, 2.7: REQUIRED, 3.0: DONE
----------------------------------------
Both strip(), and rstrip() will delete \u0000 from the end of a string. But I have a string that has "\u0000hello\u0000".

Output from strip, lstrip and rstrip:

"\u0000hello\u0000".strip # => "\u0000hello"
"\u0000hello\u0000".lstrip # => "\u0000hello\u0000"
"\u0000hello\u0000".rstrip # => "\u0000hello"

Same goes for \x00 as well.

While it's quite ridiculous to have NULL at the beginning of the string, but what makes it not strip? Is that slow or is that because it's never used?



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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>