summaryrefslogtreecommitdiff
path: root/Build/source/texk/xdvik/m4/xdvi-func-working-vsnprintf.m4
blob: 73cca6973f44deb38b6eb03e631744b10aa51c4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Autoconf macros for xdvik.
# Copyright (C) 2002 Paul Vojta <xdvi-core@lists.sourceforge.net>
# Copyright (C) 2002 - 2009 Stefan Ulrich <xdvi-core@lists.sourceforge.net>
#
# This file is free software; the copyright holder
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.

# XDVI_FUNC_WORKING_VSNPRINTF
# ---------------------------
# Check for a working implementation of (v)snprintf()
# which should either return a negative result or the size actually needed
# (latter is C99 standard).
AC_DEFUN([XDVI_FUNC_WORKING_VSNPRINTF],
[AC_CACHE_CHECK([for a working implementation of (v)snprintf()],
                [xdvi_cv_func_good_vsnprintf],
                [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
#ifdef IRIX
#define _XOPEN_SOURCE 500
#endif
#include <stdio.h>]],
                                                [[char s[2];
  int retval = snprintf(s, 2, "test");
  if (retval > -1 && retval != 4) /* neither negative nor desired size, not OK */
    return 1;]])],
                               [xdvi_cv_func_good_vsnprintf=yes],
                               [xdvi_cv_func_good_vsnprintf=no],
                               [xdvi_cv_func_good_vsnprintf=no # safe value for cross-compiling])])
if test "x$xdvi_cv_func_good_vsnprintf" = xyes; then
  AC_DEFINE([HAVE_GOOD_VSNPRINTF], 1, [Define if the vsnprintf function works.])
fi
]) # XDVI_FUNC_WORKING_VSNPRINTF