Merge remote branch 'origin/stable-2.0'
[bpt/guile.git] / m4 / string_h.m4
CommitLineData
24d56127
LC
1# Configure a GNU-like replacement for <string.h>.
2
49114fd4 3# Copyright (C) 2007-2011 Free Software Foundation, Inc.
24d56127
LC
4# This file is free software; the Free Software Foundation
5# gives unlimited permission to copy and/or distribute it,
6# with or without modifications, as long as this notice is preserved.
7
49114fd4 8# serial 19
24d56127
LC
9
10# Written by Paul Eggert.
11
12AC_DEFUN([gl_HEADER_STRING_H],
13[
14 dnl Use AC_REQUIRE here, so that the default behavior below is expanded
15 dnl once only, before all statements that occur in other macros.
16 AC_REQUIRE([gl_HEADER_STRING_H_BODY])
17])
18
19AC_DEFUN([gl_HEADER_STRING_H_BODY],
20[
21 AC_REQUIRE([AC_C_RESTRICT])
22 AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
49114fd4 23 gl_NEXT_HEADERS([string.h])
61cd9dc9
LC
24
25 dnl Check for declarations of anything we want to poison if the
26 dnl corresponding gnulib module is not in use, and which is not
27 dnl guaranteed by C89.
28 gl_WARN_ON_USE_PREPARE([[#include <string.h>
a927b6c1
LC
29 ]],
30 [memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup
0f00f2c3
LC
31 strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r
32 strsignal strverscmp])
24d56127
LC
33])
34
35AC_DEFUN([gl_STRING_MODULE_INDICATOR],
36[
37 dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
38 AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
a927b6c1 39 gl_MODULE_INDICATOR_SET_VARIABLE([$1])
f4c79b3c 40 dnl Define it also as a C macro, for the benefit of the unit tests.
a927b6c1 41 gl_MODULE_INDICATOR_FOR_TESTS([$1])
24d56127
LC
42])
43
44AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
45[
ffca4c22 46 GNULIB_MEMCHR=0; AC_SUBST([GNULIB_MEMCHR])
24d56127
LC
47 GNULIB_MEMMEM=0; AC_SUBST([GNULIB_MEMMEM])
48 GNULIB_MEMPCPY=0; AC_SUBST([GNULIB_MEMPCPY])
49 GNULIB_MEMRCHR=0; AC_SUBST([GNULIB_MEMRCHR])
50 GNULIB_RAWMEMCHR=0; AC_SUBST([GNULIB_RAWMEMCHR])
51 GNULIB_STPCPY=0; AC_SUBST([GNULIB_STPCPY])
52 GNULIB_STPNCPY=0; AC_SUBST([GNULIB_STPNCPY])
53 GNULIB_STRCHRNUL=0; AC_SUBST([GNULIB_STRCHRNUL])
54 GNULIB_STRDUP=0; AC_SUBST([GNULIB_STRDUP])
a927b6c1 55 GNULIB_STRNCAT=0; AC_SUBST([GNULIB_STRNCAT])
24d56127
LC
56 GNULIB_STRNDUP=0; AC_SUBST([GNULIB_STRNDUP])
57 GNULIB_STRNLEN=0; AC_SUBST([GNULIB_STRNLEN])
58 GNULIB_STRPBRK=0; AC_SUBST([GNULIB_STRPBRK])
59 GNULIB_STRSEP=0; AC_SUBST([GNULIB_STRSEP])
60 GNULIB_STRSTR=0; AC_SUBST([GNULIB_STRSTR])
61 GNULIB_STRCASESTR=0; AC_SUBST([GNULIB_STRCASESTR])
62 GNULIB_STRTOK_R=0; AC_SUBST([GNULIB_STRTOK_R])
63 GNULIB_MBSLEN=0; AC_SUBST([GNULIB_MBSLEN])
64 GNULIB_MBSNLEN=0; AC_SUBST([GNULIB_MBSNLEN])
65 GNULIB_MBSCHR=0; AC_SUBST([GNULIB_MBSCHR])
66 GNULIB_MBSRCHR=0; AC_SUBST([GNULIB_MBSRCHR])
67 GNULIB_MBSSTR=0; AC_SUBST([GNULIB_MBSSTR])
68 GNULIB_MBSCASECMP=0; AC_SUBST([GNULIB_MBSCASECMP])
69 GNULIB_MBSNCASECMP=0; AC_SUBST([GNULIB_MBSNCASECMP])
70 GNULIB_MBSPCASECMP=0; AC_SUBST([GNULIB_MBSPCASECMP])
71 GNULIB_MBSCASESTR=0; AC_SUBST([GNULIB_MBSCASESTR])
72 GNULIB_MBSCSPN=0; AC_SUBST([GNULIB_MBSCSPN])
73 GNULIB_MBSPBRK=0; AC_SUBST([GNULIB_MBSPBRK])
74 GNULIB_MBSSPN=0; AC_SUBST([GNULIB_MBSSPN])
75 GNULIB_MBSSEP=0; AC_SUBST([GNULIB_MBSSEP])
76 GNULIB_MBSTOK_R=0; AC_SUBST([GNULIB_MBSTOK_R])
77 GNULIB_STRERROR=0; AC_SUBST([GNULIB_STRERROR])
0f00f2c3 78 GNULIB_STRERROR_R=0; AC_SUBST([GNULIB_STRERROR_R])
24d56127 79 GNULIB_STRSIGNAL=0; AC_SUBST([GNULIB_STRSIGNAL])
61cd9dc9
LC
80 GNULIB_STRVERSCMP=0; AC_SUBST([GNULIB_STRVERSCMP])
81 HAVE_MBSLEN=0; AC_SUBST([HAVE_MBSLEN])
24d56127 82 dnl Assume proper GNU behavior unless another module says otherwise.
a927b6c1 83 HAVE_MEMCHR=1; AC_SUBST([HAVE_MEMCHR])
1cd4fffc
LC
84 HAVE_DECL_MEMMEM=1; AC_SUBST([HAVE_DECL_MEMMEM])
85 HAVE_MEMPCPY=1; AC_SUBST([HAVE_MEMPCPY])
86 HAVE_DECL_MEMRCHR=1; AC_SUBST([HAVE_DECL_MEMRCHR])
87 HAVE_RAWMEMCHR=1; AC_SUBST([HAVE_RAWMEMCHR])
88 HAVE_STPCPY=1; AC_SUBST([HAVE_STPCPY])
89 HAVE_STPNCPY=1; AC_SUBST([HAVE_STPNCPY])
90 HAVE_STRCHRNUL=1; AC_SUBST([HAVE_STRCHRNUL])
91 HAVE_DECL_STRDUP=1; AC_SUBST([HAVE_DECL_STRDUP])
92 HAVE_DECL_STRNDUP=1; AC_SUBST([HAVE_DECL_STRNDUP])
93 HAVE_DECL_STRNLEN=1; AC_SUBST([HAVE_DECL_STRNLEN])
94 HAVE_STRPBRK=1; AC_SUBST([HAVE_STRPBRK])
95 HAVE_STRSEP=1; AC_SUBST([HAVE_STRSEP])
96 HAVE_STRCASESTR=1; AC_SUBST([HAVE_STRCASESTR])
97 HAVE_DECL_STRTOK_R=1; AC_SUBST([HAVE_DECL_STRTOK_R])
0f00f2c3 98 HAVE_DECL_STRERROR_R=1; AC_SUBST([HAVE_DECL_STRERROR_R])
1cd4fffc
LC
99 HAVE_DECL_STRSIGNAL=1; AC_SUBST([HAVE_DECL_STRSIGNAL])
100 HAVE_STRVERSCMP=1; AC_SUBST([HAVE_STRVERSCMP])
101 REPLACE_MEMCHR=0; AC_SUBST([REPLACE_MEMCHR])
102 REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM])
a927b6c1 103 REPLACE_STPNCPY=0; AC_SUBST([REPLACE_STPNCPY])
1cd4fffc
LC
104 REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP])
105 REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR])
106 REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR])
107 REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR])
0f00f2c3 108 REPLACE_STRERROR_R=0; AC_SUBST([REPLACE_STRERROR_R])
a927b6c1 109 REPLACE_STRNCAT=0; AC_SUBST([REPLACE_STRNCAT])
1cd4fffc 110 REPLACE_STRNDUP=0; AC_SUBST([REPLACE_STRNDUP])
a927b6c1 111 REPLACE_STRNLEN=0; AC_SUBST([REPLACE_STRNLEN])
1cd4fffc
LC
112 REPLACE_STRSIGNAL=0; AC_SUBST([REPLACE_STRSIGNAL])
113 REPLACE_STRTOK_R=0; AC_SUBST([REPLACE_STRTOK_R])
114 UNDEFINE_STRTOK_R=0; AC_SUBST([UNDEFINE_STRTOK_R])
24d56127 115])