Move Scheme introduction (Guile-independent) to its own chapter
[bpt/guile.git] / m4 / string_h.m4
CommitLineData
24d56127
LC
1# Configure a GNU-like replacement for <string.h>.
2
61cd9dc9 3# Copyright (C) 2007-2010 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
f4c79b3c 8# serial 12
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])
23 gl_CHECK_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>
29 ]], [memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup
30 strndup strnlen strpbrk strsep strcasestr strtok_r strsignal strverscmp])
24d56127
LC
31])
32
33AC_DEFUN([gl_STRING_MODULE_INDICATOR],
34[
35 dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
36 AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
37 GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
f4c79b3c
LC
38 dnl Define it also as a C macro, for the benefit of the unit tests.
39 gl_MODULE_INDICATOR([$1])
24d56127
LC
40])
41
42AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
43[
ffca4c22 44 GNULIB_MEMCHR=0; AC_SUBST([GNULIB_MEMCHR])
24d56127
LC
45 GNULIB_MEMMEM=0; AC_SUBST([GNULIB_MEMMEM])
46 GNULIB_MEMPCPY=0; AC_SUBST([GNULIB_MEMPCPY])
47 GNULIB_MEMRCHR=0; AC_SUBST([GNULIB_MEMRCHR])
48 GNULIB_RAWMEMCHR=0; AC_SUBST([GNULIB_RAWMEMCHR])
49 GNULIB_STPCPY=0; AC_SUBST([GNULIB_STPCPY])
50 GNULIB_STPNCPY=0; AC_SUBST([GNULIB_STPNCPY])
51 GNULIB_STRCHRNUL=0; AC_SUBST([GNULIB_STRCHRNUL])
52 GNULIB_STRDUP=0; AC_SUBST([GNULIB_STRDUP])
53 GNULIB_STRNDUP=0; AC_SUBST([GNULIB_STRNDUP])
54 GNULIB_STRNLEN=0; AC_SUBST([GNULIB_STRNLEN])
55 GNULIB_STRPBRK=0; AC_SUBST([GNULIB_STRPBRK])
56 GNULIB_STRSEP=0; AC_SUBST([GNULIB_STRSEP])
57 GNULIB_STRSTR=0; AC_SUBST([GNULIB_STRSTR])
58 GNULIB_STRCASESTR=0; AC_SUBST([GNULIB_STRCASESTR])
59 GNULIB_STRTOK_R=0; AC_SUBST([GNULIB_STRTOK_R])
60 GNULIB_MBSLEN=0; AC_SUBST([GNULIB_MBSLEN])
61 GNULIB_MBSNLEN=0; AC_SUBST([GNULIB_MBSNLEN])
62 GNULIB_MBSCHR=0; AC_SUBST([GNULIB_MBSCHR])
63 GNULIB_MBSRCHR=0; AC_SUBST([GNULIB_MBSRCHR])
64 GNULIB_MBSSTR=0; AC_SUBST([GNULIB_MBSSTR])
65 GNULIB_MBSCASECMP=0; AC_SUBST([GNULIB_MBSCASECMP])
66 GNULIB_MBSNCASECMP=0; AC_SUBST([GNULIB_MBSNCASECMP])
67 GNULIB_MBSPCASECMP=0; AC_SUBST([GNULIB_MBSPCASECMP])
68 GNULIB_MBSCASESTR=0; AC_SUBST([GNULIB_MBSCASESTR])
69 GNULIB_MBSCSPN=0; AC_SUBST([GNULIB_MBSCSPN])
70 GNULIB_MBSPBRK=0; AC_SUBST([GNULIB_MBSPBRK])
71 GNULIB_MBSSPN=0; AC_SUBST([GNULIB_MBSSPN])
72 GNULIB_MBSSEP=0; AC_SUBST([GNULIB_MBSSEP])
73 GNULIB_MBSTOK_R=0; AC_SUBST([GNULIB_MBSTOK_R])
74 GNULIB_STRERROR=0; AC_SUBST([GNULIB_STRERROR])
75 GNULIB_STRSIGNAL=0; AC_SUBST([GNULIB_STRSIGNAL])
61cd9dc9
LC
76 GNULIB_STRVERSCMP=0; AC_SUBST([GNULIB_STRVERSCMP])
77 HAVE_MBSLEN=0; AC_SUBST([HAVE_MBSLEN])
24d56127 78 dnl Assume proper GNU behavior unless another module says otherwise.
1cd4fffc
LC
79 HAVE_DECL_MEMMEM=1; AC_SUBST([HAVE_DECL_MEMMEM])
80 HAVE_MEMPCPY=1; AC_SUBST([HAVE_MEMPCPY])
81 HAVE_DECL_MEMRCHR=1; AC_SUBST([HAVE_DECL_MEMRCHR])
82 HAVE_RAWMEMCHR=1; AC_SUBST([HAVE_RAWMEMCHR])
83 HAVE_STPCPY=1; AC_SUBST([HAVE_STPCPY])
84 HAVE_STPNCPY=1; AC_SUBST([HAVE_STPNCPY])
85 HAVE_STRCHRNUL=1; AC_SUBST([HAVE_STRCHRNUL])
86 HAVE_DECL_STRDUP=1; AC_SUBST([HAVE_DECL_STRDUP])
87 HAVE_DECL_STRNDUP=1; AC_SUBST([HAVE_DECL_STRNDUP])
88 HAVE_DECL_STRNLEN=1; AC_SUBST([HAVE_DECL_STRNLEN])
89 HAVE_STRPBRK=1; AC_SUBST([HAVE_STRPBRK])
90 HAVE_STRSEP=1; AC_SUBST([HAVE_STRSEP])
91 HAVE_STRCASESTR=1; AC_SUBST([HAVE_STRCASESTR])
92 HAVE_DECL_STRTOK_R=1; AC_SUBST([HAVE_DECL_STRTOK_R])
93 HAVE_DECL_STRERROR=1; AC_SUBST([HAVE_DECL_STRERROR])
94 HAVE_DECL_STRSIGNAL=1; AC_SUBST([HAVE_DECL_STRSIGNAL])
95 HAVE_STRVERSCMP=1; AC_SUBST([HAVE_STRVERSCMP])
96 REPLACE_MEMCHR=0; AC_SUBST([REPLACE_MEMCHR])
97 REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM])
98 REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP])
99 REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR])
100 REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR])
101 REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR])
102 REPLACE_STRNDUP=0; AC_SUBST([REPLACE_STRNDUP])
103 REPLACE_STRSIGNAL=0; AC_SUBST([REPLACE_STRSIGNAL])
104 REPLACE_STRTOK_R=0; AC_SUBST([REPLACE_STRTOK_R])
105 UNDEFINE_STRTOK_R=0; AC_SUBST([UNDEFINE_STRTOK_R])
24d56127 106])