[win32] Initial reverse integration of winansi branch.
Gurusamy Sarathy [Sun, 23 Nov 1997 08:26:00 +0000 (08:26 +0000)]
p4raw-id: //depot/win32/perl@285

1  2 
op.c

diff --combined op.c
--- 1/op.c
--- 2/op.c
+++ b/op.c
@@@ -531,10 -531,9 +531,9 @@@ find_threadsv(char *name
        case '\'':
            sawampersand = TRUE;
            SvREADONLY_on(sv);
-           sv_magic(sv, 0, 0, name, 1); 
-           break;
++          /* FALL THROUGH */
        default:
            sv_magic(sv, 0, 0, name, 1); 
 -          break;
        }
        DEBUG_L(PerlIO_printf(PerlIO_stderr(),
                              "find_threadsv: new SV %p for $%s%c\n",
@@@ -3438,9 -3437,9 +3437,9 @@@ newSUB(I32 floor, OP *o, OP *proto, OP 
            CV *cv;
            HV *hv;
  
-           sv_setpvf(sv, "%_:%ld-%ld",
-                   GvSV(curcop->cop_filegv),
-                   (long)subline, (long)curcop->cop_line);
+           sv_setpvf(sv, "%_:%ld-%ld", GvSV(curcop->cop_filegv),
+                   (long)(subline < 0 ? -subline : subline),
+                   (long)curcop->cop_line);
            gv_efullname3(tmpstr, gv, Nullch);
            hv_store(GvHV(DBsub), SvPVX(tmpstr), SvCUR(tmpstr), sv, 0);
            if (!db_postponed) {
@@@ -4412,7 -4411,7 +4411,7 @@@ ck_shift(OP *o
        
        op_free(o);
  #ifdef USE_THREADS
 -      if (subline > 0) {
 +      if (!CvUNIQUE(compcv)) {
            argop = newOP(OP_PADAV, OPf_REF);
            argop->op_targ = 0;         /* curpad[0] is @_ */
        }
        }
  #else
        argop = newUNOP(OP_RV2AV, 0,
 -          scalar(newGVOP(OP_GV, 0, subline > 0 ?
 +          scalar(newGVOP(OP_GV, 0, !CvUNIQUE(compcv) ?
                           defgv : gv_fetchpv("ARGV", TRUE, SVt_PVAV))));
  #endif /* USE_THREADS */
        return newUNOP(type, 0, scalar(argop));