perl 5.003_05: unixish.h
[p5sagit/p5-mst-13.2.git] / pp_hot.c
index bb7b6a6..bf33ab8 100644 (file)
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -252,7 +252,7 @@ PP(pp_preinc)
 {
     dSP;
     if (SvIOK(TOPs)) {
-       if (SvIVX(TOPs) == PERL_LONG_MAX) {
+       if (SvIVX(TOPs) == IV_MAX) {
            sv_setnv(TOPs, (double)(SvIVX(TOPs)) + 1.0 );
        }
        else {
@@ -344,7 +344,7 @@ PP(pp_print)
     if (!(io = GvIO(gv))) {
        if (dowarn) {
            SV* sv = sv_newmortal();
-            gv_fullname(sv,gv);
+            gv_fullname(sv, gv, Nullch);
             warn("Filehandle %s never opened", SvPV(sv,na));
         }
 
@@ -354,7 +354,7 @@ PP(pp_print)
     else if (!(fp = IoOFP(io))) {
        if (dowarn)  {
            SV* sv = sv_newmortal();
-            gv_fullname(sv,gv);
+            gv_fullname(sv, gv, Nullch);
            if (IoIFP(io))
                warn("Filehandle %s opened only for input", SvPV(sv,na));
            else
@@ -967,7 +967,19 @@ do_readline()
     PerlIO *fp;
     register IO *io = GvIO(last_in_gv);
     register I32 type = op->op_type;
+    MAGIC *mg;
 
+    if (SvMAGICAL(last_in_gv) && (mg = mg_find((SV*)last_in_gv, 'q'))) {
+       PUSHMARK(SP);
+       XPUSHs(mg->mg_obj);
+       PUTBACK;
+       ENTER;
+       perl_call_method("READLINE", GIMME);
+       LEAVE;
+       SPAGAIN;
+       if (GIMME == G_SCALAR) sv_setsv(TARG, TOPs);
+       RETURN;
+    }
     fp = Nullfp;
     if (io) {
        fp = IoIFP(io);
@@ -1225,7 +1237,6 @@ PP(pp_enter)
 PP(pp_helem)
 {
     dSP;
-    SV** svp;
     HE* he;
     SV *keysv = POPs;
     HV *hv = (HV*)POPs;
@@ -1735,7 +1746,7 @@ PP(pp_entersub)
                goto retry;
            }
            tmpstr = sv_newmortal();
-           gv_efullname(tmpstr, gv);
+           gv_efullname(tmpstr, gv, Nullch);
            ngv = gv_fetchmethod(GvESTASH(gv), "AUTOLOAD");
            if (ngv && ngv != gv && (cv = GvCV(ngv))) { /* One more chance... */
                gv = ngv;
@@ -1761,7 +1772,7 @@ PP(pp_entersub)
            sv_setsv(sv, newRV((SV*)cv));
        }
        else {
-           gv_efullname(sv,gv);
+           gv_efullname(sv, gv, Nullch);
        }
        cv = GvCV(DBsub);
        if (CvXSUB(cv)) curcopdb = curcop;