Change 33953 by [EMAIL PROTECTED] on 2008/05/30 23:12:33

        Integrate:
        [ 33789]
        Subject: [PATCH] Documentation typo fix for mro.
        From: Florian Ragwitz <[EMAIL PROTECTED]>
        Date: Sun, 4 May 2008 17:40:05 +0200
        Message-Id: <[EMAIL PROTECTED]>
        
        [ 33791]
        Subject: [PATCH] extra tests for t/op/range.t (was Re: [perl #53554] 
Range
        From: Bram <[EMAIL PROTECTED]>
        Date: Mon, 05 May 2008 20:03:32 +0200
        Message-ID: <[EMAIL PROTECTED]>
        
        [ 33792]
        Subject: [PATCH] -Uusedl on cygwin
        From: Reini Urban <[EMAIL PROTECTED]>
        Date: Mon, 05 May 2008 20:34:13 +0200
        Message-ID: <[EMAIL PROTECTED]>
        
        [ 33815]
        Subject: [PATCH] Call SvMAGICAL_off in mg_free
        From: Bram <[EMAIL PROTECTED]>
        Date: Mon, 05 May 2008 16:18:56 +0200
        Message-ID: <[EMAIL PROTECTED]>
        
        [ 33822]
        Subject: [PATCH] Handle PL_minus_E before PL_minus_{n,p}.
        From: Florian Ragwitz <[EMAIL PROTECTED]>
        Date: Sun, 11 May 2008 07:51:18 +0200
        Message-Id: <[EMAIL PROTECTED]>

Affected files ...

... //depot/maint-5.10/perl/ext/Win32CORE/Makefile.PL#2 integrate
... //depot/maint-5.10/perl/ext/Win32CORE/Win32CORE.c#2 integrate
... //depot/maint-5.10/perl/lib/mro.pm#2 integrate
... //depot/maint-5.10/perl/mg.c#12 integrate
... //depot/maint-5.10/perl/sv.c#18 integrate
... //depot/maint-5.10/perl/t/op/range.t#3 integrate
... //depot/maint-5.10/perl/t/run/switches.t#3 integrate
... //depot/maint-5.10/perl/toke.c#7 integrate

Differences ...

==== //depot/maint-5.10/perl/ext/Win32CORE/Makefile.PL#2 (text) ====
Index: perl/ext/Win32CORE/Makefile.PL
--- perl/ext/Win32CORE/Makefile.PL#1~32694~     2007-12-22 01:23:09.000000000 
-0800
+++ perl/ext/Win32CORE/Makefile.PL      2008-05-30 16:12:33.000000000 -0700
@@ -4,3 +4,15 @@
     'NAME'             => 'Win32CORE',
     'VERSION_FROM'     => 'Win32CORE.pm',
 );
+
+# undef USEIMPORTLIB for static compilation
+sub MY::cflags {
+  package MY;         # so that "SUPER" works right
+  my ($self, $libperl)[EMAIL PROTECTED];
+  return '' unless $self->needs_linking();
+  my $base = $self->SUPER::cflags($libperl);
+  if ($self->{LINKTYPE} eq 'static') {
+    $base =~ s/CCFLAGS =(.*)$/CCFLAGS =\1 -UUSEIMPORTLIB /m;
+  }
+  return $base;
+}

==== //depot/maint-5.10/perl/ext/Win32CORE/Win32CORE.c#2 (text) ====
Index: perl/ext/Win32CORE/Win32CORE.c
--- perl/ext/Win32CORE/Win32CORE.c#1~32694~     2007-12-22 01:23:09.000000000 
-0800
+++ perl/ext/Win32CORE/Win32CORE.c      2008-05-30 16:12:33.000000000 -0700
@@ -10,7 +10,13 @@
 #define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 
+#if defined(__CYGWIN__) && !defined(USEIMPORTLIB)
+  #undef WIN32
+#endif
 #include "EXTERN.h"
+#if defined(__CYGWIN__) && !defined(USEIMPORTLIB)
+  #define EXTCONST extern const
+#endif
 #include "perl.h"
 #include "XSUB.h"
 
@@ -62,7 +68,7 @@
      * should never be called though, as Win32CORE.pm doesn't use DynaLoader.
      */
 }
-#ifdef __CYGWIN__
+#if defined(__CYGWIN__) && defined(USEIMPORTLIB)
 __declspec(dllexport)
 #endif
 void

==== //depot/maint-5.10/perl/lib/mro.pm#2 (text) ====
Index: perl/lib/mro.pm
--- perl/lib/mro.pm#1~32694~    2007-12-22 01:23:09.000000000 -0800
+++ perl/lib/mro.pm     2008-05-30 16:12:33.000000000 -0700
@@ -310,7 +310,7 @@
 
 In simple cases, it is equivalent to:
 
-   $self->next::method(@_) if $self->next_can;
+   $self->next::method(@_) if $self->next::can;
 
 But there are some cases where only this solution
 works (like C<goto &maybe::next::method>);

==== //depot/maint-5.10/perl/mg.c#12 (text) ====
Index: perl/mg.c
--- perl/mg.c#11~33950~ 2008-05-30 08:37:39.000000000 -0700
+++ perl/mg.c   2008-05-30 16:12:33.000000000 -0700
@@ -508,6 +508,7 @@
        SvMAGIC_set(sv, moremagic);
     }
     SvMAGIC_set(sv, NULL);
+    SvMAGICAL_off(sv);
     return 0;
 }
 

==== //depot/maint-5.10/perl/sv.c#18 (text) ====
Index: perl/sv.c
--- perl/sv.c#17~33946~ 2008-05-28 16:09:01.000000000 -0700
+++ perl/sv.c   2008-05-30 16:12:33.000000000 -0700
@@ -3413,7 +3413,6 @@
     {
        /* need to nuke the magic */
        mg_free(dstr);
-       SvRMAGICAL_off(dstr);
     }
 
     /* There's a lot of redundancy below but we're going for speed here */

==== //depot/maint-5.10/perl/t/op/range.t#3 (xtext) ====
Index: perl/t/op/range.t
--- perl/t/op/range.t#2~33856~  2008-05-18 09:11:18.000000000 -0700
+++ perl/t/op/range.t   2008-05-30 16:12:33.000000000 -0700
@@ -9,7 +9,7 @@
 
 use Config;
 
-plan (115);
+plan (135);
 
 is(join(':',1..5), '1:2:3:4:5');
 
@@ -341,4 +341,66 @@
     ok($@, 'Lower bound rejected: ' . -$ii);
 }
 
+# double/tripple magic tests
+sub TIESCALAR { bless { value => $_[1], orig => $_[1] } }
+sub STORE { $_[0]{store}++; $_[0]{value} = $_[1] }
+sub FETCH { $_[0]{fetch}++; $_[0]{value} }
+sub stores { tied($_[0])->{value} = tied($_[0])->{orig};
+             delete(tied($_[0])->{store}) || 0 }
+sub fetches { delete(tied($_[0])->{fetch}) || 0 }
+    
+tie $x, "main", 6;
+
+my @foo;
[EMAIL PROTECTED] = 4 .. $x;
+is(scalar @foo, 3);
+is("@foo", "4 5 6");
+{
+  local $TODO = "test for double magic with range operator";
+  is(fetches($x), 1);
+}
+is(stores($x), 0);
+
[EMAIL PROTECTED] = $x .. 8;
+is(scalar @foo, 3);
+is("@foo", "6 7 8");
+{
+  local $TODO = "test for double magic with range operator";
+  is(fetches($x), 1);
+}
+is(stores($x), 0);
+
[EMAIL PROTECTED] = $x .. $x + 1;
+is(scalar @foo, 2);
+is("@foo", "6 7");
+{
+  local $TODO = "test for double magic with range operator";
+  is(fetches($x), 2);
+}
+is(stores($x), 0);
+
[EMAIL PROTECTED] = ();
+for (4 .. $x) {
+  push @foo, $_;
+}
+is(scalar @foo, 3);
+is("@foo", "4 5 6");
+{
+  local $TODO = "test for double magic with range operator";
+  is(fetches($x), 1);
+}
+is(stores($x), 0);
+
[EMAIL PROTECTED] = ();
+for (reverse 4 .. $x) {
+  push @foo, $_;
+}
+is(scalar @foo, 3);
+is("@foo", "6 5 4");
+{
+  local $TODO = "test for double magic with range operator";
+  is(fetches($x), 1);
+}
+is(stores($x), 0);
+
 # EOF

==== //depot/maint-5.10/perl/t/run/switches.t#3 (text) ====
Index: perl/t/run/switches.t
--- perl/t/run/switches.t#2~33614~      2008-03-31 09:59:07.000000000 -0700
+++ perl/t/run/switches.t       2008-05-30 16:12:33.000000000 -0700
@@ -11,7 +11,7 @@
 
 BEGIN { require "./test.pl"; }
 
-plan(tests => 67);
+plan(tests => 68);
 
 use Config;
 
@@ -346,3 +346,9 @@
     switches   => [ '-E', '"given(undef) {when(undef) { say q(Hello, 
world!)"}}']
 );
 is( $r, "Hello, world!\n", "-E given" );
+
+$r = runperl(
+    switches    => [ '-nE', q('} END { say q/affe/') ],
+    stdin       => 'zomtek',
+);
+is( $r, "affe\n", '-E works outside of the block created by -n' );

==== //depot/maint-5.10/perl/toke.c#7 (text) ====
Index: perl/toke.c
--- perl/toke.c#6~33941~        2008-05-27 15:58:13.000000000 -0700
+++ perl/toke.c 2008-05-30 16:12:33.000000000 -0700
@@ -3619,6 +3619,9 @@
                sv_free((SV*)PL_preambleav);
                PL_preambleav = NULL;
            }
+           if (PL_minus_E)
+               sv_catpvs(PL_linestr,
+                         "use feature ':5." STRINGIFY(PERL_VERSION) "';");
            if (PL_minus_n || PL_minus_p) {
                sv_catpvs(PL_linestr, "LINE: while (<>) {");
                if (PL_minus_l)
@@ -3650,9 +3653,6 @@
                        sv_catpvs(PL_linestr,"our @F=split(' ');");
                }
            }
-           if (PL_minus_E)
-               sv_catpvs(PL_linestr,
-                         "use feature ':5." STRINGIFY(PERL_VERSION) "';");
            sv_catpvs(PL_linestr, "\n");
            PL_oldoldbufptr = PL_oldbufptr = s = PL_linestart = 
SvPVX(PL_linestr);
            PL_bufend = SvPVX(PL_linestr) + SvCUR(PL_linestr);
End of Patch.

Reply via email to