You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/app-text/a2ps/files/a2ps-4.13c-stdarg.patch

75 lines
1.5 KiB

--- a2ps-4.13-orig/configure.in 2005-08-14 14:13:42.000000000 +0200
+++ a2ps-4.13/configure.in 2005-08-14 14:18:20.000000000 +0200
@@ -157,6 +157,22 @@
[Define to rpl_fnmatch if the replacement function should be used.])
fi
+# Check for C99 va_copy
+AC_CACHE_CHECK([
+ AC_TRY_LINK([#include <stdarg.h>],
+ [
+ va_list va1, va2;
+
+ va_copy(va2, va1);
+ va_end(va2);
+ ],
+ [ac_cv_va_copy="yes"],[ac_cv_va_copy="no"]
+ )
+])
+if test "x$ac_cv_va_copy"="xyes"; then
+ AC_DEFINE(HAVE_VA_COPY,1,[Define to 1 if C99 va_copy function should be used])
+fi
+
# Needed checks for tinyterm.[ch]
ad_TINYTERM_CHECKS
--- a2ps-4.13-orig/lib/printlen.c 2002-03-04 19:46:25.000000000 +0100
+++ a2ps-4.13/lib/printlen.c 2005-08-14 14:29:08.000000000 +0200
@@ -27,15 +27,24 @@
unsigned long strtoul ();
+#if !defined(HAVE_VA_COPY)
static int
int_printflen (const char *format, va_list *args)
+#else
+static int
+int_printflen (const char *format, va_list args)
+#endif
{
const char *cp;
int total_width = 0;
int width = 0;
va_list ap;
+#ifndef HAVE_VA_COPY
memcpy (&ap, args, sizeof (va_list));
+#else
+ va_copy(ap, args);
+#endif
for (cp = format ; *cp ; cp++)
{
@@ -93,13 +102,21 @@
}
}
}
+
+#ifdef HAVE_VA_COPY
+ va_end(ap);
+#endif
return total_width;
}
int
vprintflen (const char *format, va_list args)
{
+#if !defined(HAVE_VA_COPY)
return int_printflen (format, &args);
+#else
+ return int_printflen (format, args);
+#endif
}
int