Fix for [perl #37999] lc() + Latin-1 chars is failing erratically
Rafael Garcia-Suarez [Wed, 21 Dec 2005 11:12:32 +0000 (11:12 +0000)]
based on copying part of change #22196 from do_chomp() to do_chop().
p4raw-link: @22196 on //depot/perl: a6aa349da2cd706a05b205fa788c278b74c24bdc

p4raw-id: //depot/perl@26431

doop.c

diff --git a/doop.c b/doop.c
index c23093c..09cb6f5 100644 (file)
--- a/doop.c
+++ b/doop.c
@@ -967,6 +967,13 @@ Perl_do_chop(pTHX_ register SV *astr, register SV *sv)
         if (SvREADONLY(sv))
             Perl_croak(aTHX_ PL_no_modify);
     }
+
+    if (PL_encoding && !SvUTF8(sv)) {
+       /* like in do_chomp(), utf8-ize the sv as a side-effect
+        * if we're using encoding. */
+       sv_recode_to_utf8(sv, PL_encoding);
+    }
+
     s = SvPV(sv, len);
     if (len && !SvPOK(sv))
        s = SvPV_force(sv, len);