This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
parts/inc/mess: Some things don't work before 5.4.0
authorKarl Williamson <khw@cpan.org>
Wed, 10 Jul 2019 04:05:51 +0000 (22:05 -0600)
committerNicolas R <atoomic@cpan.org>
Fri, 27 Sep 2019 22:51:28 +0000 (16:51 -0600)
(cherry picked from commit d2544abef917c023c211f4e084ff464c0e07b822)
Signed-off-by: Nicolas R <atoomic@cpan.org>
dist/Devel-PPPort/parts/inc/mess
dist/Devel-PPPort/t/mess.t

index bc28383..0aba9ec 100644 (file)
@@ -96,22 +96,23 @@ die_sv(pTHX_ SV *sv)
 #endif
 #endif
 
-#ifndef vmess
-#if { NEED vmess }
+#if ! defined vmess && { VERSION >= 5.4.0 }
+#  if { NEED vmess }
+
 SV*
 vmess(pTHX_ const char* pat, va_list* args)
 {
     mess(pat, args);
     return PL_mess_sv;
 }
-#endif
+#  endif
 #endif
 
-#if { VERSION < 5.6.0 }
+#if { VERSION < 5.6.0 } && { VERSION >= 5.4.0 }
 #undef mess
 #endif
 
-#if !defined(mess_nocontext) && !defined(Perl_mess_nocontext)
+#if !defined(mess_nocontext) && !defined(Perl_mess_nocontext) && { VERSION >= 5.4.0 }
 #if { NEED mess_nocontext }
 SV*
 mess_nocontext(const char* pat, ...)
@@ -147,7 +148,7 @@ mess(pTHX_ const char* pat, ...)
 #endif
 #endif
 
-#ifndef mess_sv
+#if ! defined mess_sv && { VERSION >= 5.4.0 }
 #if { NEED mess_sv }
 SV *
 mess_sv(pTHX_ SV *basemsg, bool consume)
@@ -282,6 +283,8 @@ warn_sv(sv)
 CODE:
     warn_sv(sv);
 
+#if { VERSION >= 5.4.0 }
+
 SV *
 mess_sv(sv, consume)
     SV *sv
@@ -291,6 +294,8 @@ CODE:
 OUTPUT:
     RETVAL
 
+#endif
+
 void
 croak_no_modify()
 CODE:
@@ -521,17 +526,24 @@ if (ord('A') != 65) {
     Devel::PPPort::warn_sv("\xC3\xA1");
     ok $warn =~ eval 'qr/^\N{U+C3}\N{U+A1} at $0 line /';
 
-    ok Devel::PPPort::mess_sv(eval('"\N{U+E1}\n"'), 0), eval '"\N{U+E1}\n"';
-    ok Devel::PPPort::mess_sv(do {my $tmp = eval '"\N{U+E1}\n"'}, 1), eval '"\N{U+E1}\n"';
+    if ("$]" < '5.004') {
+        for (1..8) {
+            skip 'skip: no support for mess_sv', 0;
+        }
+    }
+    else {
+      ok Devel::PPPort::mess_sv(eval('"\N{U+E1}\n"'), 0), eval '"\N{U+E1}\n"';
+      ok Devel::PPPort::mess_sv(do {my $tmp = eval '"\N{U+E1}\n"'}, 1), eval '"\N{U+E1}\n"';
 
-    ok Devel::PPPort::mess_sv(eval('"\N{U+E1}"'), 0) =~ eval 'qr/^\N{U+E1} at $0 line /';
-    ok Devel::PPPort::mess_sv(do {my $tmp = eval '"\N{U+E1}"'}, 1) =~ eval 'qr/^\N{U+E1} at $0 line /';
+      ok Devel::PPPort::mess_sv(eval('"\N{U+E1}"'), 0) =~ eval 'qr/^\N{U+E1} at $0 line /';
+      ok Devel::PPPort::mess_sv(do {my $tmp = eval '"\N{U+E1}"'}, 1) =~ eval 'qr/^\N{U+E1} at $0 line /';
 
-    ok Devel::PPPort::mess_sv("\xC3\xA1\n", 0), eval '"\N{U+C3}\N{U+A1}\n"';
-    ok Devel::PPPort::mess_sv(do {my $tmp = "\xC3\xA1\n"}, 1), eval '"\N{U+C3}\N{U+A1}\n"';
+      ok Devel::PPPort::mess_sv("\xC3\xA1\n", 0), eval '"\N{U+C3}\N{U+A1}\n"';
+      ok Devel::PPPort::mess_sv(do {my $tmp = "\xC3\xA1\n"}, 1), eval '"\N{U+C3}\N{U+A1}\n"';
 
-    ok Devel::PPPort::mess_sv("\xC3\xA1", 0) =~ eval 'qr/^\N{U+C3}\N{U+A1} at $0 line /';
-    ok Devel::PPPort::mess_sv(do {my $tmp = "\xC3\xA1"}, 1) =~ eval 'qr/^\N{U+C3}\N{U+A1} at $0 line /';
+      ok Devel::PPPort::mess_sv("\xC3\xA1", 0) =~ eval 'qr/^\N{U+C3}\N{U+A1} at $0 line /';
+      ok Devel::PPPort::mess_sv(do {my $tmp = "\xC3\xA1"}, 1) =~ eval 'qr/^\N{U+C3}\N{U+A1} at $0 line /';
+    }
 } else {
     skip 'skip: no support for \N{U+..} syntax', 0 for 1..24;
 }
index acc152e..5cfc279 100644 (file)
@@ -260,17 +260,24 @@ if (ord('A') != 65) {
     Devel::PPPort::warn_sv("\xC3\xA1");
     ok $warn =~ eval 'qr/^\N{U+C3}\N{U+A1} at $0 line /';
 
-    ok Devel::PPPort::mess_sv(eval('"\N{U+E1}\n"'), 0), eval '"\N{U+E1}\n"';
-    ok Devel::PPPort::mess_sv(do {my $tmp = eval '"\N{U+E1}\n"'}, 1), eval '"\N{U+E1}\n"';
+    if ("$]" < '5.004') {
+        for (1..8) {
+            skip 'skip: no support for mess_sv', 0;
+        }
+    }
+    else {
+      ok Devel::PPPort::mess_sv(eval('"\N{U+E1}\n"'), 0), eval '"\N{U+E1}\n"';
+      ok Devel::PPPort::mess_sv(do {my $tmp = eval '"\N{U+E1}\n"'}, 1), eval '"\N{U+E1}\n"';
 
-    ok Devel::PPPort::mess_sv(eval('"\N{U+E1}"'), 0) =~ eval 'qr/^\N{U+E1} at $0 line /';
-    ok Devel::PPPort::mess_sv(do {my $tmp = eval '"\N{U+E1}"'}, 1) =~ eval 'qr/^\N{U+E1} at $0 line /';
+      ok Devel::PPPort::mess_sv(eval('"\N{U+E1}"'), 0) =~ eval 'qr/^\N{U+E1} at $0 line /';
+      ok Devel::PPPort::mess_sv(do {my $tmp = eval '"\N{U+E1}"'}, 1) =~ eval 'qr/^\N{U+E1} at $0 line /';
 
-    ok Devel::PPPort::mess_sv("\xC3\xA1\n", 0), eval '"\N{U+C3}\N{U+A1}\n"';
-    ok Devel::PPPort::mess_sv(do {my $tmp = "\xC3\xA1\n"}, 1), eval '"\N{U+C3}\N{U+A1}\n"';
+      ok Devel::PPPort::mess_sv("\xC3\xA1\n", 0), eval '"\N{U+C3}\N{U+A1}\n"';
+      ok Devel::PPPort::mess_sv(do {my $tmp = "\xC3\xA1\n"}, 1), eval '"\N{U+C3}\N{U+A1}\n"';
 
-    ok Devel::PPPort::mess_sv("\xC3\xA1", 0) =~ eval 'qr/^\N{U+C3}\N{U+A1} at $0 line /';
-    ok Devel::PPPort::mess_sv(do {my $tmp = "\xC3\xA1"}, 1) =~ eval 'qr/^\N{U+C3}\N{U+A1} at $0 line /';
+      ok Devel::PPPort::mess_sv("\xC3\xA1", 0) =~ eval 'qr/^\N{U+C3}\N{U+A1} at $0 line /';
+      ok Devel::PPPort::mess_sv(do {my $tmp = "\xC3\xA1"}, 1) =~ eval 'qr/^\N{U+C3}\N{U+A1} at $0 line /';
+    }
 } else {
     skip 'skip: no support for \N{U+..} syntax', 0 for 1..24;
 }