Subject: | [PATCH] Make Curses compile under 5.005 again |
The attached patch against Curses 1.17 makes the module again compile and
pass tests under 5.005_05.
The changes:
* Changed require(File::Copy) to require File::Copy in the Makefile.PL.
It seems that the former syntax is invalid in 5.005.
* Changed three-arg open to two-arg open in test.syms
* Make Curses.c use ppport.h for new perl API stuff
I did not included ppport.h into the patch. You should grab the newest
one from the Devel::PPPort distribution and include in into the
distribution (the MANIFEST entry is already there).
Unfortunately I had to make an additional #define before including
ppport.h. I am not sure why this is necessary (never read the
Devel::PPPort documentation completely), or maybe it's a bug in
ppport.h?
With the changes Curses compiles and passes tests with 5.00505, 5.6.1,
5.8.8 and 5.10.0 on my system.
Regards,
Slaven
Subject: | Curses-1.17-5.5.5.patch |
#
#
# To apply this patch:
# STEP 1: Chdir to the source directory.
# STEP 2: Run the 'applypatch' program with this patch file as input.
#
# If you do not have 'applypatch', it is part of the 'makepatch' package
# that you can fetch from the Comprehensive Perl Archive Network:
# http://www.perl.com/CPAN/authors/Johan_Vromans/makepatch-x.y.tar.gz
# In the above URL, 'x' should be 2 or higher.
#
# To apply this patch without the use of 'applypatch':
# STEP 1: Chdir to the source directory.
# STEP 2: Run the 'patch' program with this file as input.
#
#### End of Preamble ####
#### Patch data follows ####
diff -up 'build/Curses-1.17-X9knek/Curses.c' 'new.build/Curses-1.17/Curses.c'
Index: ./Curses.c
--- ./Curses.c Sun Oct 14 18:11:08 2007
+++ ./Curses.c Sun Oct 14 21:42:09 2007
@@ -31,6 +31,9 @@
#include <EXTERN.h>
#include <perl.h>
#include <XSUB.h>
+/* why??? XXX */
+# define NEED_sv_2pv_flags
+#include "ppport.h"
#ifndef C_PANELSUPPORT
# define PANEL int
diff -up 'build/Curses-1.17-X9knek/MANIFEST' 'new.build/Curses-1.17/MANIFEST'
Index: ./MANIFEST
--- ./MANIFEST Wed Jul 25 20:28:29 2001
+++ ./MANIFEST Sun Oct 14 21:30:39 2007
@@ -63,6 +63,7 @@ hints/c-sunos.sysv.h
hints/c-svr4.h
hints/c-vms.h
list.syms
+ppport.h
test.syms
testint.c
testsym.c
diff -up 'build/Curses-1.17-X9knek/Makefile.PL' 'new.build/Curses-1.17/Makefile.PL'
Index: ./Makefile.PL
--- ./Makefile.PL Sun Oct 14 18:07:16 2007
+++ ./Makefile.PL Sun Oct 14 21:27:18 2007
@@ -372,7 +372,7 @@ EOW
print("Choosing hints file '$hintsfile'\n");
- eval "require(File::Copy);";
+ eval "require File::Copy;";
if (! $@) {
&File::Copy::copy($hintsfile, "c-config.h");
} else {
diff -up 'build/Curses-1.17-X9knek/test.syms' 'new.build/Curses-1.17/test.syms'
Index: ./test.syms
--- ./test.syms Sat Oct 7 22:37:36 2006
+++ ./test.syms Sun Oct 14 21:27:55 2007
@@ -38,7 +38,7 @@ sub makeCompileCommand($) {
my ($cc, $inc, $ccflags, $ldloadlibs, $lddlflags);
- open MAKEFILE, '<', $makefile or
+ open MAKEFILE, "< $makefile" or
die "Can't open make file '$makefile' errno=$ERRNO";
while (<MAKEFILE>) {
#### End of Patch data ####
#### ApplyPatch data follows ####
# Data version : 1.0
# Date generated : Sun Oct 14 21:42:57 2007
# Generated by : makepatch 2.03
# Recurse directories : Yes
# Excluded files : (\A|/).*\~\Z
# (\A|/).*\.a\Z
# (\A|/).*\.bak\Z
# (\A|/).*\.BAK\Z
# (\A|/).*\.elc\Z
# (\A|/).*\.exe\Z
# (\A|/).*\.gz\Z
# (\A|/).*\.ln\Z
# (\A|/).*\.o\Z
# (\A|/).*\.obj\Z
# (\A|/).*\.olb\Z
# (\A|/).*\.old\Z
# (\A|/).*\.orig\Z
# (\A|/).*\.rej\Z
# (\A|/).*\.so\Z
# (\A|/).*\.Z\Z
# (\A|/)\.del\-.*\Z
# (\A|/)\.make\.state\Z
# (\A|/)\.nse_depinfo\Z
# (\A|/)core\Z
# (\A|/)tags\Z
# (\A|/)TAGS\Z
# (\A|/)ppport\.h\Z
# p 'Curses.c' 7416 1192390929 0100640
# p 'MANIFEST' 1037 1192390239 0100640
# p 'Makefile.PL' 20800 1192390038 0100750
# p 'test.syms' 8612 1192390075 0100750
#### End of ApplyPatch data ####
#### End of Patch kit [created: Sun Oct 14 21:42:57 2007] ####
#### Patch checksum: 90 2953 59753 ####
#### Checksum: 108 3577 45758 ####