annotate doc/posix-functions/strstr.texi @ 11628:59047bad770e

strstr, strcasestr: replace on platforms with broken memchr * modules/strstr: Split into... * modules/strstr-simple: ...new module that does not care about performance, but does care about glibc bug. * m4/strstr.m4 (gl_FUNC_STRSTR): Split... (gl_FUNC_STRSTR_SIMPLE): ...into new macro, which replaces strstr if platform memchr is broken, per Debian bug 521737. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): React to broken memchr. * m4/memchr.m4 (gl_FUNC_MEMCHR): Only expand once. * doc/posix-functions/strstr.texi (strstr): Document the fix. * doc/glibc-functions/strcasestr.texi (strcasestr): Likewise. * modules/mountlist (Depends-on): Add strstr-simple. * modules/gen-uni-tables (Depends-on): Likewise. * modules/argz (Depends-on): Add strstr. Signed-off-by: Eric Blake <ebb9@byu.net>
author Eric Blake <ebb9@byu.net>
date Tue, 16 Jun 2009 06:14:05 -0600
parents c83dc7e8df57
children bb0ceefd22dc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9638
070329237839 Rename two directories: headers -> posix-headers, functions -> posix-functions.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1 @node strstr
070329237839 Rename two directories: headers -> posix-headers, functions -> posix-functions.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2 @section @code{strstr}
070329237839 Rename two directories: headers -> posix-headers, functions -> posix-functions.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
3 @findex strstr
070329237839 Rename two directories: headers -> posix-headers, functions -> posix-functions.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
4
10876
c83dc7e8df57 Refer to new POSIX:2008 standard.
Bruno Haible <bruno@clisp.org>
parents: 10076
diff changeset
5 POSIX specification: @url{http://www.opengroup.org/onlinepubs/9699919799/functions/strstr.html}
9638
070329237839 Rename two directories: headers -> posix-headers, functions -> posix-functions.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6
11628
59047bad770e strstr, strcasestr: replace on platforms with broken memchr
Eric Blake <ebb9@byu.net>
parents: 10876
diff changeset
7 Gnulib module: strstr or strstr-simple
9638
070329237839 Rename two directories: headers -> posix-headers, functions -> posix-functions.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
8
11628
59047bad770e strstr, strcasestr: replace on platforms with broken memchr
Eric Blake <ebb9@byu.net>
parents: 10876
diff changeset
9 Portability problems fixed by either Gnulib module @code{strstr-simple}
59047bad770e strstr, strcasestr: replace on platforms with broken memchr
Eric Blake <ebb9@byu.net>
parents: 10876
diff changeset
10 or @code{strstr}:
59047bad770e strstr, strcasestr: replace on platforms with broken memchr
Eric Blake <ebb9@byu.net>
parents: 10876
diff changeset
11 @itemize
59047bad770e strstr, strcasestr: replace on platforms with broken memchr
Eric Blake <ebb9@byu.net>
parents: 10876
diff changeset
12 @item
59047bad770e strstr, strcasestr: replace on platforms with broken memchr
Eric Blake <ebb9@byu.net>
parents: 10876
diff changeset
13 This function can trigger memchr bugs on some platforms:
59047bad770e strstr, strcasestr: replace on platforms with broken memchr
Eric Blake <ebb9@byu.net>
parents: 10876
diff changeset
14 glibc 2.10.
59047bad770e strstr, strcasestr: replace on platforms with broken memchr
Eric Blake <ebb9@byu.net>
parents: 10876
diff changeset
15 @end itemize
59047bad770e strstr, strcasestr: replace on platforms with broken memchr
Eric Blake <ebb9@byu.net>
parents: 10876
diff changeset
16
59047bad770e strstr, strcasestr: replace on platforms with broken memchr
Eric Blake <ebb9@byu.net>
parents: 10876
diff changeset
17 Portability problems fixed by Gnulib @code{strstr}:
9638
070329237839 Rename two directories: headers -> posix-headers, functions -> posix-functions.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
18 @itemize
070329237839 Rename two directories: headers -> posix-headers, functions -> posix-functions.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
19 @item
070329237839 Rename two directories: headers -> posix-headers, functions -> posix-functions.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
20 This function has quadratic instead of linear worst-case complexity on some
070329237839 Rename two directories: headers -> posix-headers, functions -> posix-functions.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
21 platforms:
11628
59047bad770e strstr, strcasestr: replace on platforms with broken memchr
Eric Blake <ebb9@byu.net>
parents: 10876
diff changeset
22 glibc 2.8, MacOS X 10.3, FreeBSD 6.2, NetBSD 3.0, OpenBSD 4.0, AIX
59047bad770e strstr, strcasestr: replace on platforms with broken memchr
Eric Blake <ebb9@byu.net>
parents: 10876
diff changeset
23 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw.
9638
070329237839 Rename two directories: headers -> posix-headers, functions -> posix-functions.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
24 @end itemize
070329237839 Rename two directories: headers -> posix-headers, functions -> posix-functions.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
25
070329237839 Rename two directories: headers -> posix-headers, functions -> posix-functions.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
26 Portability problems not fixed by Gnulib:
070329237839 Rename two directories: headers -> posix-headers, functions -> posix-functions.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
27 @itemize
070329237839 Rename two directories: headers -> posix-headers, functions -> posix-functions.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
28 @item
070329237839 Rename two directories: headers -> posix-headers, functions -> posix-functions.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
29 This function cannot work correctly on character strings in most multibyte
070329237839 Rename two directories: headers -> posix-headers, functions -> posix-functions.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
30 locales. Gnulib provides an alternative function @code{mbsstr} that works
070329237839 Rename two directories: headers -> posix-headers, functions -> posix-functions.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
31 on character strings in all locales.
070329237839 Rename two directories: headers -> posix-headers, functions -> posix-functions.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
32 @end itemize