mirror of
https://git.savannah.gnu.org/git/gnulib.git
synced 2025-08-08 17:22:05 +03:00
strings-h: Don't declare strcasecmp, strncasecmp without the module.
* lib/strings.in.h (strcasecmp): Don't declare if module 'strcasecmp' is not present. (strncasecmp): Don't declare if module 'strncasecmp' is not present. * m4/strings_h.m4 (gl_STRINGS_H_REQUIRE_DEFAULTS): Initialize GNULIB_STRCASECMP, GNULIB_STRNCASECMP. * modules/strings-h (Makefile.am): Substitute GNULIB_STRCASECMP, GNULIB_STRNCASECMP.
This commit is contained in:
11
ChangeLog
11
ChangeLog
@@ -1,3 +1,14 @@
|
||||
2025-02-16 Bruno Haible <bruno@clisp.org>
|
||||
|
||||
strings-h: Don't declare strcasecmp, strncasecmp without the module.
|
||||
* lib/strings.in.h (strcasecmp): Don't declare if module 'strcasecmp' is
|
||||
not present.
|
||||
(strncasecmp): Don't declare if module 'strncasecmp' is not present.
|
||||
* m4/strings_h.m4 (gl_STRINGS_H_REQUIRE_DEFAULTS): Initialize
|
||||
GNULIB_STRCASECMP, GNULIB_STRNCASECMP.
|
||||
* modules/strings-h (Makefile.am): Substitute GNULIB_STRCASECMP,
|
||||
GNULIB_STRNCASECMP.
|
||||
|
||||
2025-02-16 Bruno Haible <bruno@clisp.org>
|
||||
|
||||
strcasecmp, strncasecmp: New modules.
|
||||
|
@@ -58,8 +58,8 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/* Find the index of the least-significant set bit. */
|
||||
#if @GNULIB_FFS@
|
||||
/* Find the index of the least-significant set bit. */
|
||||
# if !@HAVE_FFS@
|
||||
_GL_FUNCDECL_SYS (ffs, int, (int i), );
|
||||
# endif
|
||||
@@ -72,6 +72,7 @@ _GL_WARN_ON_USE (ffs, "ffs is not portable - use the ffs module");
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if @GNULIB_STRCASECMP@
|
||||
/* Compare strings S1 and S2, ignoring case, returning less than, equal to or
|
||||
greater than zero if S1 is lexicographically less than, equal to or greater
|
||||
than S2.
|
||||
@@ -80,7 +81,7 @@ _GL_WARN_ON_USE (ffs, "ffs is not portable - use the ffs module");
|
||||
extern int strcasecmp (char const *s1, char const *s2)
|
||||
_GL_ARG_NONNULL ((1, 2));
|
||||
# endif
|
||||
#if defined GNULIB_POSIXCHECK
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
/* strcasecmp() does not work with multibyte strings:
|
||||
POSIX says that it operates on "strings", and "string" in POSIX is defined
|
||||
as a sequence of bytes, not of characters. */
|
||||
@@ -95,6 +96,7 @@ _GL_WARN_ON_USE (strcasecmp, "strcasecmp cannot work correctly on character "
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if @GNULIB_STRNCASECMP@
|
||||
/* Compare no more than N bytes of strings S1 and S2, ignoring case,
|
||||
returning less than, equal to or greater than zero if S1 is
|
||||
lexicographically less than, equal to or greater than S2.
|
||||
@@ -103,7 +105,7 @@ _GL_WARN_ON_USE (strcasecmp, "strcasecmp cannot work correctly on character "
|
||||
extern int strncasecmp (char const *s1, char const *s2, size_t n)
|
||||
_GL_ARG_NONNULL ((1, 2));
|
||||
# endif
|
||||
#if defined GNULIB_POSIXCHECK
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
/* strncasecmp() does not work with multibyte strings:
|
||||
POSIX says that it operates on "strings", and "string" in POSIX is defined
|
||||
as a sequence of bytes, not of characters. */
|
||||
|
@@ -1,5 +1,5 @@
|
||||
# strings_h.m4
|
||||
# serial 9
|
||||
# serial 10
|
||||
dnl Copyright (C) 2007, 2009-2025 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
@@ -50,6 +50,8 @@ AC_DEFUN([gl_STRINGS_H_REQUIRE_DEFAULTS],
|
||||
[
|
||||
m4_defun(GL_MODULE_INDICATOR_PREFIX[_STRINGS_H_MODULE_INDICATOR_DEFAULTS], [
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFS])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRCASECMP])
|
||||
gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNCASECMP])
|
||||
])
|
||||
m4_require(GL_MODULE_INDICATOR_PREFIX[_STRINGS_H_MODULE_INDICATOR_DEFAULTS])
|
||||
AC_REQUIRE([gl_STRINGS_H_DEFAULTS])
|
||||
|
@@ -33,6 +33,8 @@ strings.h: strings.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE
|
||||
-e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
|
||||
-e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \
|
||||
-e 's/@''GNULIB_FFS''@/$(GNULIB_FFS)/g' \
|
||||
-e 's/@''GNULIB_STRCASECMP''@/$(GNULIB_STRCASECMP)/g' \
|
||||
-e 's/@''GNULIB_STRNCASECMP''@/$(GNULIB_STRNCASECMP)/g' \
|
||||
-e 's|@''HAVE_FFS''@|$(HAVE_FFS)|g' \
|
||||
-e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \
|
||||
-e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \
|
||||
|
Reference in New Issue
Block a user