summaryrefslogtreecommitdiffstats
path: root/src/libieee1284-1-ssize_t.patch
diff options
context:
space:
mode:
Diffstat (limited to 'src/libieee1284-1-ssize_t.patch')
-rw-r--r--src/libieee1284-1-ssize_t.patch80
1 files changed, 80 insertions, 0 deletions
diff --git a/src/libieee1284-1-ssize_t.patch b/src/libieee1284-1-ssize_t.patch
new file mode 100644
index 0000000..ce23384
--- /dev/null
+++ b/src/libieee1284-1-ssize_t.patch
@@ -0,0 +1,80 @@
+From 55a02d19ec885b2cc1d9c39813aa706bf68c122b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Daniel=20Gl=C3=B6ckner?= <daniel-gl@gmx.net>
+Date: Sun, 3 Jan 2016 05:48:59 +0100
+Subject: [PATCH] make configure determine if basetsd.h is needed for ssize_t
+
+The result is hardcoded in ieee1284.h.
+Duplicate logic in detect.h is replaced by including that file.
+---
+ configure.in | 12 +++++++++++-
+ include/{ieee1284.h => ieee1284.h.in} | 2 +-
+ src/detect.h | 13 +------------
+ 3 files changed, 13 insertions(+), 14 deletions(-)
+ rename include/{ieee1284.h => ieee1284.h.in} (99%)
+
+diff --git a/configure.in b/configure.in
+index a22fe97..7cd9561 100644
+--- a/configure.in
++++ b/configure.in
+@@ -72,7 +72,17 @@ if test $ac_cv_use_python = yes; then
+ AM_PATH_PYTHON
+ fi
+
++AC_CHECK_TYPE([ssize_t],,,[#include <sys/types.h>])
++if test $ac_cv_type_ssize_t != yes; then
++ AC_CHECK_TYPE([SSIZE_T],
++ AC_SUBST([SSIZE_T_IN_BASETSD_H], 1),
++ AC_MSG_ERROR([No definition of ssize_t found.]),
++ [#include <basetsd.h>])
++else
++ AC_SUBST([SSIZE_T_IN_BASETSD_H], 0)
++fi
++
+ dnl Checks for library functions.
+
+-AC_CONFIG_FILES(Makefile libieee1284.spec)
++AC_CONFIG_FILES([Makefile libieee1284.spec include/ieee1284.h])
+ AC_OUTPUT
+diff --git a/include/ieee1284.h b/include/ieee1284.h.in
+similarity index 99%
+rename from include/ieee1284.h
+rename to include/ieee1284.h.in
+index 03614cb..be02850 100644
+--- a/include/ieee1284.h
++++ b/include/ieee1284.h.in
+@@ -27,7 +27,7 @@
+ #include <winsock2.h> /* for struct timeval */
+ #endif
+
+-#if (defined __MINGW32__ || defined _MSC_VER) && !defined OWN_SSIZE_T
++#if @SSIZE_T_IN_BASETSD_H@ && !defined OWN_SSIZE_T
+ #include <basetsd.h> /* for SSIZE_T */
+ #define OWN_SSIZE_T
+ typedef SSIZE_T ssize_t;
+diff --git a/src/detect.h b/src/detect.h
+index 71e7d60..ab35f82 100644
+--- a/src/detect.h
++++ b/src/detect.h
+@@ -24,18 +24,7 @@
+ #ifndef _DETECT_H_
+ #define _DETECT_H_
+
+-#include <stdlib.h>
+-#ifndef _MSC_VER
+-#include <sys/time.h>
+-#else
+-#include <winsock2.h>
+-#endif
+-
+-#if (defined __MINGW32__ || defined _MSC_VER) && !defined OWN_SSIZE_T
+-#include <basetsd.h> /* for SSIZE_T */
+-#define OWN_SSIZE_T
+-typedef SSIZE_T ssize_t;
+-#endif
++#include "ieee1284.h"
+
+ struct parport;
+ struct parport_internal;
+--
+2.1.4
+