mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-05 22:20:24 -08:00
Update from Gnulib
Make the following changes by hand, and run 'admin/merge-gnulib'. * .gitignore: Add lib/malloc/*.gl.h. * admin/merge-gnulib: Copy lib/af_alg.h and lib/save-cwd.h directly from Gnulib, without worrying about Gnulib modules, as these files are special cases. (AVOIDED_MODULES): Remove malloc-posix. * lib/malloc.c, lib/realloc.c, m4/malloc.m4, m4/realloc.m4: * m4/year2038.m4: New files, copied from Gnulib. * lib/malloca.c, lib/malloca.h: * m4/close-stream.m4, m4/glibc21.m4, m4/malloca.m4: Remove. These are either no longer present in Gnulib, or are no longer needed by modules that Emacs uses. * oldXMenu/AddPane.c, oldXmenu/Addsel.c: Include XmenuInt.h first; needed for new Gnulib. * src/xmenu.c: Call emacs_abort, not abort.
This commit is contained in:
parent
63cb65dcce
commit
68a256c892
236 changed files with 5795 additions and 4157 deletions
335
lib/stdlib.in.h
335
lib/stdlib.in.h
|
|
@ -2,17 +2,17 @@
|
|||
|
||||
Copyright (C) 1995, 2001-2004, 2006-2021 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
This file is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as
|
||||
published by the Free Software Foundation; either version 2.1 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
This file is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
|
||||
#if __GNUC__ >= 3
|
||||
|
|
@ -99,6 +99,35 @@ struct random_data
|
|||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers
|
||||
that can be freed by passing them as the Ith argument to the
|
||||
function F. */
|
||||
#ifndef _GL_ATTRIBUTE_DEALLOC
|
||||
# if __GNUC__ >= 11
|
||||
# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_DEALLOC(f, i)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that
|
||||
can be freed via 'free'; it can be used only after declaring 'free'. */
|
||||
/* Applies to: functions. Cannot be used on inline functions. */
|
||||
#ifndef _GL_ATTRIBUTE_DEALLOC_FREE
|
||||
# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1)
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly
|
||||
allocated memory. */
|
||||
/* Applies to: functions. */
|
||||
#ifndef _GL_ATTRIBUTE_MALLOC
|
||||
# if __GNUC__ >= 3 || defined __clang__
|
||||
# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_MALLOC
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* The __attribute__ feature is available in gcc versions 2.5 and later.
|
||||
The attribute __pure__ was added in gcc 2.96. */
|
||||
#ifndef _GL_ATTRIBUTE_PURE
|
||||
|
|
@ -149,6 +178,28 @@ _GL_WARN_ON_USE (_Exit, "_Exit is unportable - "
|
|||
#endif
|
||||
|
||||
|
||||
#if @GNULIB_FREE_POSIX@
|
||||
# if @REPLACE_FREE@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# undef free
|
||||
# define free rpl_free
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (free, void, (void *ptr));
|
||||
_GL_CXXALIAS_RPL (free, void, (void *ptr));
|
||||
# else
|
||||
_GL_CXXALIAS_SYS (free, void, (void *ptr));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (free);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef free
|
||||
/* Assume free is always declared. */
|
||||
_GL_WARN_ON_USE (free, "free is not future POSIX compliant everywhere - "
|
||||
"use gnulib module free for portability");
|
||||
#endif
|
||||
|
||||
|
||||
/* Allocate memory with indefinite extent and specified alignment. */
|
||||
#if @GNULIB_ALIGNED_ALLOC@
|
||||
# if @REPLACE_ALIGNED_ALLOC@
|
||||
|
|
@ -156,21 +207,37 @@ _GL_WARN_ON_USE (_Exit, "_Exit is unportable - "
|
|||
# undef aligned_alloc
|
||||
# define aligned_alloc rpl_aligned_alloc
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (aligned_alloc, void *, (size_t alignment, size_t size));
|
||||
_GL_FUNCDECL_RPL (aligned_alloc, void *,
|
||||
(size_t alignment, size_t size)
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
_GL_CXXALIAS_RPL (aligned_alloc, void *, (size_t alignment, size_t size));
|
||||
# else
|
||||
# if @HAVE_ALIGNED_ALLOC@
|
||||
# if __GNUC__ >= 11
|
||||
/* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free. */
|
||||
_GL_FUNCDECL_SYS (aligned_alloc, void *,
|
||||
(size_t alignment, size_t size)
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (aligned_alloc, void *, (size_t alignment, size_t size));
|
||||
# endif
|
||||
# endif
|
||||
# if @HAVE_ALIGNED_ALLOC@
|
||||
_GL_CXXALIASWARN (aligned_alloc);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef aligned_alloc
|
||||
# if HAVE_RAW_DECL_ALIGNED_ALLOC
|
||||
#else
|
||||
# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined aligned_alloc
|
||||
/* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free. */
|
||||
_GL_FUNCDECL_SYS (aligned_alloc, void *,
|
||||
(size_t alignment, size_t size)
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
# endif
|
||||
# if defined GNULIB_POSIXCHECK
|
||||
# undef aligned_alloc
|
||||
# if HAVE_RAW_DECL_ALIGNED_ALLOC
|
||||
_GL_WARN_ON_USE (aligned_alloc, "aligned_alloc is not portable - "
|
||||
"use gnulib module aligned_alloc for portability");
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
|
@ -198,19 +265,35 @@ _GL_WARN_ON_USE (atoll, "atoll is unportable - "
|
|||
# undef calloc
|
||||
# define calloc rpl_calloc
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (calloc, void *, (size_t nmemb, size_t size));
|
||||
_GL_FUNCDECL_RPL (calloc, void *,
|
||||
(size_t nmemb, size_t size)
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
_GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size));
|
||||
# else
|
||||
# if __GNUC__ >= 11
|
||||
/* For -Wmismatched-dealloc: Associate calloc with free or rpl_free. */
|
||||
_GL_FUNCDECL_SYS (calloc, void *,
|
||||
(size_t nmemb, size_t size)
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (calloc);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef calloc
|
||||
#else
|
||||
# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined calloc
|
||||
/* For -Wmismatched-dealloc: Associate calloc with free or rpl_free. */
|
||||
_GL_FUNCDECL_SYS (calloc, void *,
|
||||
(size_t nmemb, size_t size)
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
# endif
|
||||
# if defined GNULIB_POSIXCHECK
|
||||
# undef calloc
|
||||
/* Assume calloc is always declared. */
|
||||
_GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - "
|
||||
"use gnulib module calloc-posix for portability");
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if @GNULIB_CANONICALIZE_FILE_NAME@
|
||||
|
|
@ -218,13 +301,17 @@ _GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - "
|
|||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# define canonicalize_file_name rpl_canonicalize_file_name
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (canonicalize_file_name, char *, (const char *name)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
_GL_FUNCDECL_RPL (canonicalize_file_name, char *,
|
||||
(const char *name)
|
||||
_GL_ARG_NONNULL ((1))
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
_GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name));
|
||||
# else
|
||||
# if !@HAVE_CANONICALIZE_FILE_NAME@
|
||||
_GL_FUNCDECL_SYS (canonicalize_file_name, char *, (const char *name)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
# if !@HAVE_CANONICALIZE_FILE_NAME@ || __GNUC__ >= 11
|
||||
_GL_FUNCDECL_SYS (canonicalize_file_name, char *,
|
||||
(const char *name)
|
||||
_GL_ARG_NONNULL ((1))
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name));
|
||||
# endif
|
||||
|
|
@ -233,12 +320,22 @@ _GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name));
|
|||
(!@HAVE_CANONICALIZE_FILE_NAME@ || @REPLACE_CANONICALIZE_FILE_NAME@)
|
||||
# endif
|
||||
_GL_CXXALIASWARN (canonicalize_file_name);
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef canonicalize_file_name
|
||||
# if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME
|
||||
#else
|
||||
# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined canonicalize_file_name
|
||||
/* For -Wmismatched-dealloc: Associate canonicalize_file_name with free or
|
||||
rpl_free. */
|
||||
_GL_FUNCDECL_SYS (canonicalize_file_name, char *,
|
||||
(const char *name)
|
||||
_GL_ARG_NONNULL ((1))
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
# endif
|
||||
# if defined GNULIB_POSIXCHECK
|
||||
# undef canonicalize_file_name
|
||||
# if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME
|
||||
_GL_WARN_ON_USE (canonicalize_file_name,
|
||||
"canonicalize_file_name is unportable - "
|
||||
"use gnulib module canonicalize-lgpl for portability");
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
|
@ -288,27 +385,6 @@ _GL_CXXALIASWARN (fcvt);
|
|||
# endif
|
||||
#endif
|
||||
|
||||
#if @GNULIB_FREE_POSIX@
|
||||
# if @REPLACE_FREE@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# undef free
|
||||
# define free rpl_free
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (free, void, (void *ptr));
|
||||
_GL_CXXALIAS_RPL (free, void, (void *ptr));
|
||||
# else
|
||||
_GL_CXXALIAS_SYS (free, void, (void *ptr));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (free);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef free
|
||||
/* Assume free is always declared. */
|
||||
_GL_WARN_ON_USE (free, "free is not future POSIX compliant everywhere - "
|
||||
"use gnulib module free for portability");
|
||||
#endif
|
||||
|
||||
#if @GNULIB_MDA_GCVT@
|
||||
/* On native Windows, map 'gcvt' to '_gcvt', so that -loldnames is not
|
||||
required. In C++ with GNULIB_NAMESPACE, avoid differences between
|
||||
|
|
@ -404,19 +480,35 @@ _GL_WARN_ON_USE (grantpt, "grantpt is not portable - "
|
|||
# undef malloc
|
||||
# define malloc rpl_malloc
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (malloc, void *, (size_t size));
|
||||
_GL_FUNCDECL_RPL (malloc, void *,
|
||||
(size_t size)
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
_GL_CXXALIAS_RPL (malloc, void *, (size_t size));
|
||||
# else
|
||||
# if __GNUC__ >= 11
|
||||
/* For -Wmismatched-dealloc: Associate malloc with free or rpl_free. */
|
||||
_GL_FUNCDECL_SYS (malloc, void *,
|
||||
(size_t size)
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (malloc, void *, (size_t size));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (malloc);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
|
||||
# undef malloc
|
||||
#else
|
||||
# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined malloc
|
||||
/* For -Wmismatched-dealloc: Associate malloc with free or rpl_free. */
|
||||
_GL_FUNCDECL_SYS (malloc, void *,
|
||||
(size_t size)
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
# endif
|
||||
# if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
|
||||
# undef malloc
|
||||
/* Assume malloc is always declared. */
|
||||
_GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - "
|
||||
"use gnulib module malloc-posix for portability");
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Convert a multibyte character to a wide character. */
|
||||
|
|
@ -1015,29 +1107,53 @@ _GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - "
|
|||
# undef realloc
|
||||
# define realloc rpl_realloc
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size));
|
||||
_GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size)
|
||||
_GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
_GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size));
|
||||
# else
|
||||
# if __GNUC__ >= 11
|
||||
/* For -Wmismatched-dealloc: Associate realloc with free or rpl_free. */
|
||||
_GL_FUNCDECL_SYS (realloc, void *, (void *ptr, size_t size)
|
||||
_GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (realloc);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
|
||||
# undef realloc
|
||||
#else
|
||||
# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined realloc
|
||||
/* For -Wmismatched-dealloc: Associate realloc with free or rpl_free. */
|
||||
_GL_FUNCDECL_SYS (realloc, void *, (void *ptr, size_t size)
|
||||
_GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
# endif
|
||||
# if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
|
||||
# undef realloc
|
||||
/* Assume realloc is always declared. */
|
||||
_GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - "
|
||||
"use gnulib module realloc-posix for portability");
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
#if @GNULIB_REALLOCARRAY@
|
||||
# if ! @HAVE_REALLOCARRAY@
|
||||
# if @REPLACE_REALLOCARRAY@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# undef reallocarray
|
||||
# define reallocarray rpl_reallocarray
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (reallocarray, void *,
|
||||
(void *ptr, size_t nmemb, size_t size));
|
||||
_GL_CXXALIAS_RPL (reallocarray, void *,
|
||||
(void *ptr, size_t nmemb, size_t size));
|
||||
# else
|
||||
# if ! @HAVE_REALLOCARRAY@
|
||||
_GL_FUNCDECL_SYS (reallocarray, void *,
|
||||
(void *ptr, size_t nmemb, size_t size));
|
||||
# endif
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (reallocarray, void *,
|
||||
(void *ptr, size_t nmemb, size_t size));
|
||||
# endif
|
||||
_GL_CXXALIASWARN (reallocarray);
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef reallocarray
|
||||
|
|
@ -1202,6 +1318,47 @@ _GL_WARN_ON_USE (strtold, "strtold is unportable - "
|
|||
# endif
|
||||
#endif
|
||||
|
||||
#if @GNULIB_STRTOL@
|
||||
/* Parse a signed integer whose textual representation starts at STRING.
|
||||
The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
|
||||
it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
|
||||
"0x").
|
||||
If ENDPTR is not NULL, the address of the first byte after the integer is
|
||||
stored in *ENDPTR.
|
||||
Upon overflow, the return value is LONG_MAX or LONG_MIN, and errno is set
|
||||
to ERANGE. */
|
||||
# if @REPLACE_STRTOL@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# define strtol rpl_strtol
|
||||
# endif
|
||||
# define GNULIB_defined_strtol_function 1
|
||||
_GL_FUNCDECL_RPL (strtol, long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
_GL_CXXALIAS_RPL (strtol, long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base));
|
||||
# else
|
||||
# if !@HAVE_STRTOL@
|
||||
_GL_FUNCDECL_SYS (strtol, long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (strtol, long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base));
|
||||
# endif
|
||||
_GL_CXXALIASWARN (strtol);
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef strtol
|
||||
# if HAVE_RAW_DECL_STRTOL
|
||||
_GL_WARN_ON_USE (strtol, "strtol is unportable - "
|
||||
"use gnulib module strtol for portability");
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if @GNULIB_STRTOLL@
|
||||
/* Parse a signed integer whose textual representation starts at STRING.
|
||||
The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
|
||||
|
|
@ -1211,15 +1368,29 @@ _GL_WARN_ON_USE (strtold, "strtold is unportable - "
|
|||
stored in *ENDPTR.
|
||||
Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set
|
||||
to ERANGE. */
|
||||
# if !@HAVE_STRTOLL@
|
||||
# if @REPLACE_STRTOLL@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# define strtoll rpl_strtoll
|
||||
# endif
|
||||
# define GNULIB_defined_strtoll_function 1
|
||||
_GL_FUNCDECL_RPL (strtoll, long long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
_GL_CXXALIAS_RPL (strtoll, long long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base));
|
||||
# else
|
||||
# if !@HAVE_STRTOLL@
|
||||
_GL_FUNCDECL_SYS (strtoll, long long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
# endif
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (strtoll, long long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base));
|
||||
# endif
|
||||
_GL_CXXALIASWARN (strtoll);
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef strtoll
|
||||
|
|
@ -1229,6 +1400,46 @@ _GL_WARN_ON_USE (strtoll, "strtoll is unportable - "
|
|||
# endif
|
||||
#endif
|
||||
|
||||
#if @GNULIB_STRTOUL@
|
||||
/* Parse an unsigned integer whose textual representation starts at STRING.
|
||||
The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
|
||||
it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
|
||||
"0x").
|
||||
If ENDPTR is not NULL, the address of the first byte after the integer is
|
||||
stored in *ENDPTR.
|
||||
Upon overflow, the return value is ULONG_MAX, and errno is set to ERANGE. */
|
||||
# if @REPLACE_STRTOUL@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# define strtoul rpl_strtoul
|
||||
# endif
|
||||
# define GNULIB_defined_strtoul_function 1
|
||||
_GL_FUNCDECL_RPL (strtoul, unsigned long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
_GL_CXXALIAS_RPL (strtoul, unsigned long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base));
|
||||
# else
|
||||
# if !@HAVE_STRTOUL@
|
||||
_GL_FUNCDECL_SYS (strtoul, unsigned long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (strtoul, unsigned long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base));
|
||||
# endif
|
||||
_GL_CXXALIASWARN (strtoul);
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef strtoul
|
||||
# if HAVE_RAW_DECL_STRTOUL
|
||||
_GL_WARN_ON_USE (strtoul, "strtoul is unportable - "
|
||||
"use gnulib module strtoul for portability");
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if @GNULIB_STRTOULL@
|
||||
/* Parse an unsigned integer whose textual representation starts at STRING.
|
||||
The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
|
||||
|
|
@ -1238,15 +1449,29 @@ _GL_WARN_ON_USE (strtoll, "strtoll is unportable - "
|
|||
stored in *ENDPTR.
|
||||
Upon overflow, the return value is ULLONG_MAX, and errno is set to
|
||||
ERANGE. */
|
||||
# if !@HAVE_STRTOULL@
|
||||
# if @REPLACE_STRTOULL@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# define strtoull rpl_strtoull
|
||||
# endif
|
||||
# define GNULIB_defined_strtoull_function 1
|
||||
_GL_FUNCDECL_RPL (strtoull, unsigned long long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
_GL_CXXALIAS_RPL (strtoull, unsigned long long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base));
|
||||
# else
|
||||
# if !@HAVE_STRTOULL@
|
||||
_GL_FUNCDECL_SYS (strtoull, unsigned long long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
# endif
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (strtoull, unsigned long long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base));
|
||||
# endif
|
||||
_GL_CXXALIASWARN (strtoull);
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef strtoull
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue