From 2621f9034aba19d4b9622ba5380cfcf2c8ecf2b3 Mon Sep 17 00:00:00 2001
From: TAMUKI Shoichi <tamuki@linet.gr.jp>
Date: Mon, 9 Jun 2014 09:02:17 +0900
Subject: [PATCH] Fix ssize_t type test and conditional compilation

Fix ssize_t type test because older versions of autoconf do not
support AC_TYPE_SSIZE_T macro.  Also, fix conditional compilation for
older versions of MinGW.

Signed-off-by: TAMUKI Shoichi <tamuki@linet.gr.jp>
---
 configure.in        | 17 ++++++++++++++++-
 timidity/timidity.c |  4 ++++
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/configure.in b/configure.in
index 6ff5cc4e..1ef0bd5d 100644
--- a/configure.in
+++ b/configure.in
@@ -521,7 +521,22 @@ if test "x$POCC" != xyes ; then
 AC_TYPE_OFF_T
 AC_TYPE_PID_T
 fi
-AC_TYPE_SSIZE_T
+
+# Older versions of MinGW do not define ssize_t in sys/types
+AC_MSG_CHECKING([for ssize_t])
+AC_CACHE_VAL(ac_cv_type_$1,
+[AC_EGREP_CPP([ssize_t@<:@^a-zA-Z_0-9@:>@],
+[#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif], [ac_cv_type_ssize_t=yes], [ac_cv_type_ssize_t=no])])
+
+AC_MSG_RESULT([$ac_cv_type_ssize_t])
+if test $ac_cv_type_ssize_t = yes; then
+  AC_DEFINE(HAVE_SSIZE_T, 1,
+    [Define to 1 if the system has the type `ssize_t'.])
+fi
 
 dnl keyword "volatile" check
 AC_CACHE_CHECK(volatile declaration,timidity_cv_type_volatile,
diff --git a/timidity/timidity.c b/timidity/timidity.c
index 66bd151f..f4cc65b9 100644
--- a/timidity/timidity.c
+++ b/timidity/timidity.c
@@ -5122,7 +5122,11 @@ static void interesting_message(void)
 static RETSIGTYPE sigterm_exit(int sig)
 {
     char s[4];
+#if defined(__MINGW32__) && !defined(HAVE_SSIZE_T)
+    int dummy;
+#else
     ssize_t dummy;
+#endif
 
     /* NOTE: Here, fprintf is dangerous because it is not re-enterance
      * function.  It is possible coredump if the signal is called in printf's.
-- 
GitLab