summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dunstan2006-01-08 22:27:52 +0000
committerAndrew Dunstan2006-01-08 22:27:52 +0000
commit9bb76d0b3f3e0049e2f5903544a5178f5886f4e0 (patch)
tree0927d21b4189c77905a9c9eeb4aa3f12c13de528
parent2645cb54cb2661bc44e57e93614012274af44937 (diff)
Rationalise perl header inclusions via a common include file, which also
declares routines in plperl.c and spi_internal.c used in other files. Along the way, also stop perl from hijacking stdio and other stuff on Windows.
-rw-r--r--src/pl/plperl/SPI.xs7
-rw-r--r--src/pl/plperl/plperl.c15
-rw-r--r--src/pl/plperl/plperl.h49
-rw-r--r--src/pl/plperl/spi_internal.c4
-rw-r--r--src/pl/plperl/spi_internal.h22
5 files changed, 54 insertions, 43 deletions
diff --git a/src/pl/plperl/SPI.xs b/src/pl/plperl/SPI.xs
index 8d14f093b7..9d3dc39c75 100644
--- a/src/pl/plperl/SPI.xs
+++ b/src/pl/plperl/SPI.xs
@@ -4,12 +4,7 @@
#undef _
/* perl stuff */
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-#include "ppport.h"
-
-#include "spi_internal.h"
+#include "plperl.h"
/*
diff --git a/src/pl/plperl/plperl.c b/src/pl/plperl/plperl.c
index d0a7988837..4375eb0674 100644
--- a/src/pl/plperl/plperl.c
+++ b/src/pl/plperl/plperl.c
@@ -33,7 +33,7 @@
* ENHANCEMENTS, OR MODIFICATIONS.
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.98 2005/12/29 14:28:31 adunstan Exp $
+ * $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.99 2006/01/08 22:27:52 adunstan Exp $
*
**********************************************************************/
@@ -60,18 +60,7 @@
extern DLLIMPORT bool check_function_bodies;
/* perl stuff */
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-#include "ppport.h"
-#include "spi_internal.h"
-
-/* just in case these symbols aren't provided */
-#ifndef pTHX_
-#define pTHX_
-#define pTHX void
-#endif
-
+#include "plperl.h"
/**********************************************************************
* The information we cache about loaded procedures
diff --git a/src/pl/plperl/plperl.h b/src/pl/plperl/plperl.h
new file mode 100644
index 0000000000..c88186588c
--- /dev/null
+++ b/src/pl/plperl/plperl.h
@@ -0,0 +1,49 @@
+/*-------------------------------------------------------------------------
+ *
+ * plperl.h
+ * Common include file for PL/Perl files
+ *
+ * This should be included _AFTER_ postgres.h and system include files
+ *
+ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1995, Regents of the University of California
+ *
+ * $PostgreSQL: pgsql/src/pl/plperl/plperl.h,v 1.1 2006/01/08 22:27:52 adunstan Exp $
+ */
+
+#ifndef PL_PERL_H
+#define PL_PERL_H
+
+/* stop perl headers from hijacking stdio and other stuff on Windows */
+#ifdef WIN32
+#define WIN32IO_IS_STDIO
+#endif
+
+/* required for perl API */
+#include "EXTERN.h"
+#include "perl.h"
+#include "XSUB.h"
+#include "ppport.h"
+
+/* just in case these symbols aren't provided */
+#ifndef pTHX_
+#define pTHX_
+#define pTHX void
+#endif
+
+/* routines from spi_internal.c */
+int spi_DEBUG(void);
+int spi_LOG(void);
+int spi_INFO(void);
+int spi_NOTICE(void);
+int spi_WARNING(void);
+int spi_ERROR(void);
+
+/* routines from plperl.c */
+HV *plperl_spi_exec(char *, int);
+void plperl_return_next(SV *);
+SV *plperl_spi_query(char *);
+SV *plperl_spi_fetchrow(char *);
+
+
+#endif /* PL_PERL_H */
diff --git a/src/pl/plperl/spi_internal.c b/src/pl/plperl/spi_internal.c
index c022d7d9e5..7ca771da83 100644
--- a/src/pl/plperl/spi_internal.c
+++ b/src/pl/plperl/spi_internal.c
@@ -8,8 +8,8 @@
/* Defined by Perl */
#undef _
-#include "spi_internal.h"
-
+/* perl stuff */
+#include "plperl.h"
int
spi_DEBUG(void)
diff --git a/src/pl/plperl/spi_internal.h b/src/pl/plperl/spi_internal.h
deleted file mode 100644
index 4d2c407ee1..0000000000
--- a/src/pl/plperl/spi_internal.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#include "EXTERN.h"
-#include "perl.h"
-#include "XSUB.h"
-#include "ppport.h"
-
-int spi_DEBUG(void);
-
-int spi_LOG(void);
-
-int spi_INFO(void);
-
-int spi_NOTICE(void);
-
-int spi_WARNING(void);
-
-int spi_ERROR(void);
-
-/* this is actually in plperl.c */
-HV *plperl_spi_exec(char *, int);
-void plperl_return_next(SV *);
-SV *plperl_spi_query(char *);
-SV *plperl_spi_fetchrow(char *);