summaryrefslogtreecommitdiff
path: root/intl/l10nflist.c
diff options
context:
space:
mode:
Diffstat (limited to 'intl/l10nflist.c')
-rw-r--r--intl/l10nflist.c45
1 files changed, 33 insertions, 12 deletions
diff --git a/intl/l10nflist.c b/intl/l10nflist.c
index 8add175601..cfead52561 100644
--- a/intl/l10nflist.c
+++ b/intl/l10nflist.c
@@ -23,7 +23,7 @@ Cambridge, MA 02139, USA. */
# include <config.h>
#endif
-#if defined _LIBC && (defined __ARGZ_COUNT || defined __ARGZ_STRINGIFY)
+#if defined _LIBC || defined HAVE_ARGZ_H
# include <argz.h>
#endif
#include <ctype.h>
@@ -33,6 +33,9 @@ Cambridge, MA 02139, USA. */
#endif
#if defined HAVE_STRING_H || defined _LIBC
+# ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+# endif
# include <string.h>
#else
# include <strings.h>
@@ -45,6 +48,15 @@ Cambridge, MA 02139, USA. */
#include "loadinfo.h"
+/* On some strange systems still no definition of NULL is found. Sigh! */
+#ifndef NULL
+# if defined __STDC__ && __STDC__
+# define NULL ((void *) 0)
+# else
+# define NULL 0
+# endif
+#endif
+
/* @@ end of prolog @@ */
#ifdef _LIBC
@@ -60,12 +72,12 @@ static char *stpcpy PARAMS ((char *dest, const char *src));
/* Define function which are usually not available. */
-#if !defined _LIBC && !defined __ARGZ_COUNT
+#if !defined _LIBC && !defined HAVE___ARGZ_COUNT
/* Returns the number of strings in ARGZ. */
-static size_t __argz_count PARAMS ((const char *argz, size_t len));
+static size_t argz_count__ PARAMS ((const char *argz, size_t len));
static size_t
-__argz_count (argz, len)
+argz_count__ (argz, len)
const char *argz;
size_t len;
{
@@ -79,15 +91,17 @@ __argz_count (argz, len)
}
return count;
}
-#endif /* !_LIBC && !__ARGZ_COUNT */
+# undef __argz_count
+# define __argz_count(argz, len) argz_count__ (argz, len)
+#endif /* !_LIBC && !HAVE___ARGZ_COUNT */
-#if !defined _LIBC && !defined __ARGZ_STRINGIFY
+#if !defined _LIBC && !defined HAVE___ARGZ_STRINGIFY
/* Make '\0' separated arg vector ARGZ printable by converting all the '\0's
except the last into the character SEP. */
-static void __argz_stringify PARAMS ((char *argz, size_t len, int sep));
+static void argz_stringify__ PARAMS ((char *argz, size_t len, int sep));
static void
-__argz_stringify (argz, len, sep)
+argz_stringify__ (argz, len, sep)
char *argz;
size_t len;
int sep;
@@ -101,11 +115,16 @@ __argz_stringify (argz, len, sep)
*argz++ = sep;
}
}
-#endif /* !_LIBC && !__ARGZ_COUNT */
+# undef __argz_stringify
+# define __argz_stringify(argz, len, sep) argz_stringify__ (argz, len, sep)
+#endif /* !_LIBC && !HAVE___ARGZ_STRINGIFY */
+
+#if !defined _LIBC && !defined HAVE___ARGZ_NEXT
+static char *argz_next__ PARAMS ((char *argz, size_t argz_len,
+ const char *entry));
-#if !defined _LIBC && !defined __ARGZ_NEXT
static char *
-__argz_next (argz, argz_len, entry)
+argz_next__ (argz, argz_len, entry)
char *argz;
size_t argz_len;
const char *entry;
@@ -123,7 +142,9 @@ __argz_next (argz, argz_len, entry)
else
return 0;
}
-#endif
+# undef __argz_next
+# define __argz_next(argz, len, entry) argz_next__ (argz, len, entry)
+#endif /* !_LIBC && !HAVE___ARGZ_NEXT */
/* Return number of bits set in X. */