This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Remove PL_(lex_)encoding and all dependent code
authorFather Chrysostomos <sprout@cpan.org>
Sun, 22 May 2016 21:35:31 +0000 (14:35 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Wed, 13 Jul 2016 08:12:47 +0000 (01:12 -0700)
embedvar.h
intrpvar.h
mg.c

index c2831d6..ec0b7b1 100644 (file)
 #define PL_e_script            (vTHX->Ie_script)
 #define PL_efloatbuf           (vTHX->Iefloatbuf)
 #define PL_efloatsize          (vTHX->Iefloatsize)
-#define PL_encoding            (vTHX->Iencoding)
 #define PL_endav               (vTHX->Iendav)
 #define PL_envgv               (vTHX->Ienvgv)
 #define PL_errgv               (vTHX->Ierrgv)
 #define PL_lastgotoprobe       (vTHX->Ilastgotoprobe)
 #define PL_laststatval         (vTHX->Ilaststatval)
 #define PL_laststype           (vTHX->Ilaststype)
-#define PL_lex_encoding                (vTHX->Ilex_encoding)
 #define PL_localizing          (vTHX->Ilocalizing)
 #define PL_localpatches                (vTHX->Ilocalpatches)
 #define PL_lockhook            (vTHX->Ilockhook)
index ca1bb71..756b1dc 100644 (file)
@@ -695,9 +695,6 @@ PERLVARI(I, known_layers, PerlIO_list_t *, NULL)
 PERLVARI(I, def_layerlist, PerlIO_list_t *, NULL)
 #endif
 
-PERLVARI(I, encoding,  SV *,   NULL)   /* $^ENCODING */
-PERLVARI(I, lex_encoding, SV *,        NULL)   /* encoding pragma */
-
 PERLVAR(I, utf8_idstart, SV *)
 PERLVAR(I, utf8_idcont,        SV *)
 PERLVAR(I, utf8_xidstart, SV *)
diff --git a/mg.c b/mg.c
index a89916d..2537f74 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -769,40 +769,6 @@ S_fixup_errno_string(pTHX_ SV* sv)
 SV*
 Perl__get_encoding(pTHX)
 {
-    /* For core Perl use only: Returns the $^ENCODING or 'use encoding' in
-     * effect; NULL if none.
-     *
-     * $^ENCODING maps to PL_encoding, and is the old way to do things, and is
-     * retained for backwards compatibility.  Now, there is a shadow variable
-     * ${^E_NCODING} set only by the encoding pragma, used to give this pragma
-     * lexical scope, unlike the global scope it (shudder) used to have.  This
-     * variable maps to PL_lex_encoding.  Again for backwards compatibility,
-     * PL_encoding has precedence over PL_lex_encoding.  The hints hash is used
-     * to determine if PL_lex_encoding is in scope, and hence valid.  The hints
-     * hash only accepts simple values, so we can't put an Encode object into
-     * it, so we put the object into the global, and put a simple boolean into
-     * the hints hash giving whether the global is valid or not */
-
-    dVAR;
-    SV *is_encoding;
-
-    if (PL_encoding) {
-        return PL_encoding;
-    }
-
-    if (! PL_lex_encoding) {
-        return NULL;
-    }
-
-    is_encoding = cop_hints_fetch_pvs(PL_curcop, "encoding", 0);
-    if (   is_encoding
-        && is_encoding != &PL_sv_placeholder
-        && SvIOK(is_encoding)
-        && SvIV(is_encoding))  /* non-zero mean valid */
-    {
-        return PL_lex_encoding;
-    }
-
     return NULL;
 }