1
0
mirror of https://https.git.savannah.gnu.org/git/gnulib.git synced 2026-09-01 02:34:55 +00:00

Allow multiple gnulib generated replacements to coexist.

* lib/getopt.in.h (struct option): Avoid identical redefinition.
* lib/inttypes.in.h (imaxdiv_t): Likewise.
* lib/langinfo.in.h (nl_item): Likewise.
* lib/math.in.h (_NaN, NAN): Likewise.
* lib/netdb.in.h (struct addrinfo): Likewise.
* lib/poll.in.h (struct pollfd, nfds_t): Likewise.
* lib/pthread.in.h (pthread_t, pthread_attr_t, pthread_barrier_t,
pthread_barrierattr_t, pthread_cond_t, pthread_condattr_t,
pthread_key_t, pthread_mutex_t, pthread_mutexattr_t, pthread_once_t,
pthread_rwlock_t, pthread_rwlockattr_t, pthread_cond_destroy,
pthread_cond_init, pthread_cond_signal, pthread_cond_wait,
pthread_create, pthread_exit, pthread_join, pthread_mutexattr_destroy,
pthread_mutexattr_init, pthread_mutexattr_settype,
pthread_mutex_destroy, pthread_mutex_init, pthread_mutex_lock,
pthread_mutex_trylock, pthread_mutex_unlock, pthread_spinlock_t,
pthread_spin_init, pthread_spin_destroy, pthread_spin_lock,
pthread_spin_trylock, pthread_spin_unlock): Likewise.
* lib/sched.in.h (struct sched_param): Likewise.
* lib/se-selinux.in.h (security_class_t, security_context_t,
is_selinux_enabled, getcon, freecon, getfscreatecon, setfscreatecon,
matchpathcon, getfilecon, lgetfilecon, fgetfilecon, setfilecon,
lsetfilecon, fsetfilecon, security_check_context,
security_check_context_raw, setexeccon, matchpathcon_init_prefix):
Likewise.
* lib/search.in.h (VISIT, _gl_search_compar_fn, _gl_search_action_fn):
Likewise.
* lib/signal.in.h (sig_atomic_t, sigset_t, verify_NSIG_constraint,
_gl_function_taking_int_returning_void_t, union sigval,
struct siginfo_t, siginfo_t, struct sigaction): Likewise.
* lib/spawn.in.h (posix_spawnattr_t, posix_spawn_file_actions_t,
verify_POSIX_SPAWN_USEVFORK_no_overlap): Likewise.
* lib/stdint.in.h (gl_int8_t, gl_uint8_t, gl_int16_t, gl_uint16_t,
gl_int32_t, gl_uint32_t, gl_int64_t, gl_uint64_t, int_least8_t,
uint_least8_t, int_least16_t, uint_least16_t, int_least32_t,
uint_least32_t, int_least64_t, uint_least64_t, gl_int_fast8_t,
gl_uint_fast8_t, gl_int_fast16_t, gl_uint_fast16_t, gl_int_fast32_t,
gl_uint_fast32_t, int_fast64_t, uint_fast64_t, gl_intptr_t,
gl_uintptr_t, intmax_t, uintmax_t, _verify_intmax_size): Likewise.
* lib/stdio.in.h (rpl_fseek, rpl_ftell): Likewise.
* lib/sys_socket.in.h (sa_family_t, struct sockaddr_storage,
socklen_t, rpl_fd_isset): Likewise.
* lib/sys_stat.in.h (rpl_mkdir): Likewise.
* lib/sys_time.in.h (struct timeval): Likewise.
* lib/sys_times.in.h (struct tms): Likewise.
* lib/sys_utsname.in.h (struct utsname):
* lib/time.in.h (struct timespec, __time_t_must_be_integral): Likewise.
* lib/unistd.in.h (getpagesize): Likewise.
* lib/wchar.in.h (mbstate_t): Likewise.
* lib/wctype.in.h (iswalnum, iswalpha, iswblank, iswcntrl, iswdigit,
iswgraph, iswlower, iswprint, iswpunct, iswspace, iswupper, iswxdigit,
towlower, towupper): Likewise.
Reported by Sam Steingold <sds@gnu.org>.
This commit is contained in:
Bruno Haible
2010-11-14 17:48:50 +01:00
parent 4013d14c4b
commit 438ac9a296
24 changed files with 313 additions and 119 deletions
+56
View File
@@ -1,3 +1,59 @@
2010-11-14 Bruno Haible <bruno@clisp.org>
Allow multiple gnulib generated replacements to coexist.
* lib/getopt.in.h (struct option): Avoid identical redefinition.
* lib/inttypes.in.h (imaxdiv_t): Likewise.
* lib/langinfo.in.h (nl_item): Likewise.
* lib/math.in.h (_NaN, NAN): Likewise.
* lib/netdb.in.h (struct addrinfo): Likewise.
* lib/poll.in.h (struct pollfd, nfds_t): Likewise.
* lib/pthread.in.h (pthread_t, pthread_attr_t, pthread_barrier_t,
pthread_barrierattr_t, pthread_cond_t, pthread_condattr_t,
pthread_key_t, pthread_mutex_t, pthread_mutexattr_t, pthread_once_t,
pthread_rwlock_t, pthread_rwlockattr_t, pthread_cond_destroy,
pthread_cond_init, pthread_cond_signal, pthread_cond_wait,
pthread_create, pthread_exit, pthread_join, pthread_mutexattr_destroy,
pthread_mutexattr_init, pthread_mutexattr_settype,
pthread_mutex_destroy, pthread_mutex_init, pthread_mutex_lock,
pthread_mutex_trylock, pthread_mutex_unlock, pthread_spinlock_t,
pthread_spin_init, pthread_spin_destroy, pthread_spin_lock,
pthread_spin_trylock, pthread_spin_unlock): Likewise.
* lib/sched.in.h (struct sched_param): Likewise.
* lib/se-selinux.in.h (security_class_t, security_context_t,
is_selinux_enabled, getcon, freecon, getfscreatecon, setfscreatecon,
matchpathcon, getfilecon, lgetfilecon, fgetfilecon, setfilecon,
lsetfilecon, fsetfilecon, security_check_context,
security_check_context_raw, setexeccon, matchpathcon_init_prefix):
Likewise.
* lib/search.in.h (VISIT, _gl_search_compar_fn, _gl_search_action_fn):
Likewise.
* lib/signal.in.h (sig_atomic_t, sigset_t, verify_NSIG_constraint,
_gl_function_taking_int_returning_void_t, union sigval,
struct siginfo_t, siginfo_t, struct sigaction): Likewise.
* lib/spawn.in.h (posix_spawnattr_t, posix_spawn_file_actions_t,
verify_POSIX_SPAWN_USEVFORK_no_overlap): Likewise.
* lib/stdint.in.h (gl_int8_t, gl_uint8_t, gl_int16_t, gl_uint16_t,
gl_int32_t, gl_uint32_t, gl_int64_t, gl_uint64_t, int_least8_t,
uint_least8_t, int_least16_t, uint_least16_t, int_least32_t,
uint_least32_t, int_least64_t, uint_least64_t, gl_int_fast8_t,
gl_uint_fast8_t, gl_int_fast16_t, gl_uint_fast16_t, gl_int_fast32_t,
gl_uint_fast32_t, int_fast64_t, uint_fast64_t, gl_intptr_t,
gl_uintptr_t, intmax_t, uintmax_t, _verify_intmax_size): Likewise.
* lib/stdio.in.h (rpl_fseek, rpl_ftell): Likewise.
* lib/sys_socket.in.h (sa_family_t, struct sockaddr_storage,
socklen_t, rpl_fd_isset): Likewise.
* lib/sys_stat.in.h (rpl_mkdir): Likewise.
* lib/sys_time.in.h (struct timeval): Likewise.
* lib/sys_times.in.h (struct tms): Likewise.
* lib/sys_utsname.in.h (struct utsname):
* lib/time.in.h (struct timespec, __time_t_must_be_integral): Likewise.
* lib/unistd.in.h (getpagesize): Likewise.
* lib/wchar.in.h (mbstate_t): Likewise.
* lib/wctype.in.h (iswalnum, iswalpha, iswblank, iswcntrl, iswdigit,
iswgraph, iswlower, iswprint, iswpunct, iswspace, iswupper, iswxdigit,
towlower, towupper): Likewise.
Reported by Sam Steingold <sds@gnu.org>.
2011-02-05 Eric Blake <eblake@redhat.com>
unsetenv: work around Haiku issues
+3
View File
@@ -181,6 +181,7 @@ extern int optopt;
one). For long options that have a zero `flag' field, `getopt'
returns the contents of the `val' field. */
# if !GNULIB_defined_struct_option
struct option
{
const char *name;
@@ -190,6 +191,8 @@ struct option
int *flag;
int val;
};
# define GNULIB_defined_struct_option 1
# endif
/* Names for the values of the `has_arg' field of `struct option'. */
+3
View File
@@ -1060,7 +1060,10 @@ _GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - "
#if @GNULIB_IMAXDIV@
# if !@HAVE_DECL_IMAXDIV@
# if !GNULIB_defined_imaxdiv_t
typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t;
# define GNULIB_defined_imaxdiv_t 1
# endif
extern imaxdiv_t imaxdiv (intmax_t, intmax_t);
# endif
#elif defined GNULIB_POSIXCHECK
+3
View File
@@ -41,7 +41,10 @@
/* A platform that lacks <langinfo.h>. */
/* Assume that it also lacks <nl_types.h> and the nl_item type. */
# if !GNULIB_defined_nl_item
typedef int nl_item;
# define GNULIB_defined_nl_item 1
# endif
/* nl_langinfo items of the LC_CTYPE category */
# define CODESET 10000
+8 -5
View File
@@ -73,18 +73,21 @@ _GL_WARN_ON_USE (rpl_ ## func ## l, #func " is unportable - " \
it on platforms like Solaris 10, where NAN is present but defined
as a function pointer rather than a floating point constant. */
#if !defined NAN || @REPLACE_NAN@
# undef NAN
# if !GNULIB_defined_NAN
# undef NAN
/* The Compaq (ex-DEC) C 6.4 compiler chokes on the expression 0.0 / 0.0. */
# ifdef __DECC
# ifdef __DECC
static float
_NaN ()
{
static float zero = 0.0f;
return zero / zero;
}
# define NAN (_NaN())
# else
# define NAN (0.0f / 0.0f)
# define NAN (_NaN())
# else
# define NAN (0.0f / 0.0f)
# endif
# define GNULIB_defined_NAN 1
# endif
#endif
+3
View File
@@ -51,6 +51,7 @@
# if !@HAVE_STRUCT_ADDRINFO@
# if !GNULIB_defined_struct_addrinfo
/* Structure to contain information about address of a service provider. */
struct addrinfo
{
@@ -63,6 +64,8 @@ struct addrinfo
char *ai_canonname; /* Canonical name for service location. */
struct addrinfo *ai_next; /* Pointer to next in list. */
};
# define GNULIB_defined_struct_addrinfo 1
# endif
# endif
/* Possible values for `ai_flags' field in `addrinfo' structure. */
+5
View File
@@ -54,6 +54,8 @@
# define POLLWRNORM 0x0100
# define POLLWRBAND 0x0200
# if !GNULIB_defined_poll_types
struct pollfd
{
int fd; /* which file descriptor to poll */
@@ -63,6 +65,9 @@ struct pollfd
typedef unsigned long nfds_t;
# define GNULIB_defined_poll_types 1
# endif
/* Define INFTIM only if doing so conforms to POSIX. */
# if !defined (_POSIX_C_SOURCE) && !defined (_XOPEN_SOURCE)
# define INFTIM (-1)
+14
View File
@@ -40,6 +40,7 @@
#include <time.h>
#if ! @HAVE_PTHREAD_T@
# if !GNULIB_defined_pthread_types
typedef int pthread_t;
typedef int pthread_attr_t;
typedef int pthread_barrier_t;
@@ -52,6 +53,8 @@
typedef int pthread_once_t;
typedef int pthread_rwlock_t;
typedef int pthread_rwlockattr_t;
# define GNULIB_defined_pthread_types 1
# endif
#endif
#ifndef PTHREAD_COND_INITIALIZER
@@ -97,6 +100,8 @@
#if ! @HAVE_PTHREAD_T@
# if !GNULIB_defined_pthread_functions
/* Provide substitutes for the thread functions that should work
adequately on a single-threaded implementation, where
pthread_create always fails. The goal is to let programs compile
@@ -217,10 +222,15 @@ pthread_mutex_unlock (pthread_mutex_t *mutex)
return 0;
}
# define GNULIB_defined_pthread_functions 1
# endif
#endif
#if ! @HAVE_PTHREAD_SPINLOCK_T@
# if !GNULIB_defined_pthread_spinlock_t
/* Approximate spinlocks with mutexes. */
typedef pthread_mutex_t pthread_spinlock_t;
@@ -254,6 +264,10 @@ pthread_spin_unlock (pthread_spinlock_t *lock)
{
return pthread_mutex_unlock (lock);
}
# define GNULIB_defined_pthread_spinlock_t 1
# endif
#endif
#endif /* _GL_PTHREAD_H_ */
+3
View File
@@ -31,10 +31,13 @@
#if !@HAVE_STRUCT_SCHED_PARAM@
# if !GNULIB_defined_struct_sched_param
struct sched_param
{
int sched_priority;
};
# define GNULIB_defined_struct_sched_param 1
# endif
#endif
+7 -2
View File
@@ -33,9 +33,11 @@
/* The definition of _GL_UNUSED_PARAMETER is copied here. */
# if !GNULIB_defined_security_types
typedef unsigned short security_class_t;
# define security_context_t char*
# define is_selinux_enabled() 0
# define security_context_t char*
# define is_selinux_enabled() 0
static inline int getcon (security_context_t *con _GL_UNUSED_PARAMETER)
{ errno = ENOTSUP; return -1; }
@@ -88,5 +90,8 @@ static inline int matchpathcon_init_prefix
char const *prefix _GL_UNUSED_PARAMETER)
{ errno = ENOTSUP; return -1; }
# define GNULIB_defined_security_types 1
# endif
# endif
#endif /* _GL_SELINUX_SELINUX_H */
+6
View File
@@ -53,6 +53,7 @@
for details. */
# if !@HAVE_TSEARCH@
# if !GNULIB_defined_search_types
typedef enum
{
preorder,
@@ -61,13 +62,18 @@ typedef enum
leaf
}
VISIT;
# define GNULIB_defined_search_types 1
# endif
# endif
# ifdef __cplusplus
extern "C" {
# endif
# if !GNULIB_defined_search_fn_types
typedef int (*_gl_search_compar_fn) (const void *, const void *);
typedef void (*_gl_search_action_fn) (const void *, VISIT, int);
# define GNULIB_defined_search_fn_types 1
# endif
# ifdef __cplusplus
}
# endif
+31 -7
View File
@@ -50,14 +50,20 @@
'volatile sig_atomic_t' ignore the extra modifier, but C89 did not.
Hence, redefine this to a non-volatile type as needed. */
#if ! @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
# if !GNULIB_defined_sig_atomic_t
typedef int rpl_sig_atomic_t;
# undef sig_atomic_t
# define sig_atomic_t rpl_sig_atomic_t
# undef sig_atomic_t
# define sig_atomic_t rpl_sig_atomic_t
# define GNULIB_defined_sig_atomic_t 1
# endif
#endif
/* A set or mask of signals. */
#if !@HAVE_SIGSET_T@
# if !GNULIB_defined_sigset_t
typedef unsigned int sigset_t;
# define GNULIB_defined_sigset_t 1
# endif
#endif
@@ -89,7 +95,10 @@ typedef unsigned int sigset_t;
# endif
/* This code supports only 32 signals. */
# if !GNULIB_defined_verify_NSIG_constraint
typedef int verify_NSIG_constraint[NSIG <= 32 ? 1 : -1];
# define GNULIB_defined_verify_NSIG_constraint 1
# endif
# endif
@@ -184,7 +193,10 @@ _GL_CXXALIASWARN (sigprocmask);
# ifdef __cplusplus
extern "C" {
# endif
# if !GNULIB_defined_function_taking_int_returning_void_t
typedef void (*_gl_function_taking_int_returning_void_t) (int);
# define GNULIB_defined_function_taking_int_returning_void_t 1
# endif
# ifdef __cplusplus
}
# endif
@@ -258,6 +270,9 @@ _GL_WARN_ON_USE (sigprocmask, "sigprocmask is unportable - "
# if !@HAVE_SIGACTION@
# if !@HAVE_SIGINFO_T@
# if !GNULIB_defined_siginfo_types
/* Present to allow compilation, but unsupported by gnulib. */
union sigval
{
@@ -279,11 +294,17 @@ struct siginfo_t
union sigval si_value;
};
typedef struct siginfo_t siginfo_t;
# define GNULIB_defined_siginfo_types 1
# endif
# endif /* !@HAVE_SIGINFO_T@ */
/* We assume that platforms which lack the sigaction() function also lack
the 'struct sigaction' type, and vice versa. */
# if !GNULIB_defined_struct_sigaction
struct sigaction
{
union
@@ -299,12 +320,15 @@ struct sigaction
/* Not all POSIX flags are supported. */
int sa_flags;
};
# define sa_handler _sa_func._sa_handler
# define sa_sigaction _sa_func._sa_sigaction
# define sa_handler _sa_func._sa_handler
# define sa_sigaction _sa_func._sa_sigaction
/* Unsupported flags are not present. */
# define SA_RESETHAND 1
# define SA_NODEFER 2
# define SA_RESTART 4
# define SA_RESETHAND 1
# define SA_NODEFER 2
# define SA_RESTART 4
# define GNULIB_defined_struct_sigaction 1
# endif
_GL_FUNCDECL_SYS (sigaction, int, (int, const struct sigaction *restrict,
struct sigaction *restrict));
+9
View File
@@ -83,6 +83,7 @@
# define posix_spawnattr_t rpl_posix_spawnattr_t
#endif
#if @REPLACE_POSIX_SPAWN@ || !@HAVE_POSIX_SPAWNATTR_T@
# if !GNULIB_defined_posix_spawnattr_t
typedef struct
{
short int _flags;
@@ -93,6 +94,8 @@ typedef struct
int _policy;
int __pad[16];
} posix_spawnattr_t;
# define GNULIB_defined_posix_spawnattr_t 1
# endif
#endif
@@ -102,6 +105,7 @@ typedef struct
# define posix_spawn_file_actions_t rpl_posix_spawn_file_actions_t
#endif
#if @REPLACE_POSIX_SPAWN@ || !@HAVE_POSIX_SPAWN_FILE_ACTIONS_T@
# if !GNULIB_defined_posix_spawn_file_actions_t
typedef struct
{
int _allocated;
@@ -109,6 +113,8 @@ typedef struct
struct __spawn_action *_actions;
int __pad[16];
} posix_spawn_file_actions_t;
# define GNULIB_defined_posix_spawn_file_actions_t 1
# endif
#endif
@@ -146,6 +152,7 @@ typedef struct
| POSIX_SPAWN_SETSCHEDULER \
| (POSIX_SPAWN_SETSCHEDULER > 0 ? POSIX_SPAWN_SETSCHEDULER - 1 : 0)) \
+ 1)
#if !GNULIB_defined_verify_POSIX_SPAWN_USEVFORK_no_overlap
typedef int verify_POSIX_SPAWN_USEVFORK_no_overlap
[(((POSIX_SPAWN_RESETIDS | POSIX_SPAWN_SETPGROUP
| POSIX_SPAWN_SETSIGDEF | POSIX_SPAWN_SETSIGMASK
@@ -153,6 +160,8 @@ typedef int verify_POSIX_SPAWN_USEVFORK_no_overlap
& POSIX_SPAWN_USEVFORK)
== 0)
? 1 : -1];
# define GNULIB_defined_verify_POSIX_SPAWN_USEVFORK_no_overlap 1
#endif
#if @GNULIB_POSIX_SPAWN@
+5
View File
@@ -108,6 +108,8 @@
warnings in the signed case. */ \
((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1)
#if !GNULIB_defined_stdint_types
/* 7.18.1.1. Exact-width integer types */
/* Here we assume a standard architecture where the hardware integer
@@ -296,6 +298,9 @@ typedef unsigned long int gl_uintmax_t;
typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t)
? 1 : -1];
#define GNULIB_defined_stdint_types 1
#endif /* !GNULIB_defined_stdint_types */
/* 7.18.2. Limits of specified-width integer types */
#if ! defined __cplusplus || defined __STDC_LIMIT_MACROS
+16 -10
View File
@@ -367,17 +367,20 @@ _GL_CXXALIASWARN (fseeko);
/* Provide an fseek function that is consistent with fseeko. */
/* In order to avoid that fseek gets defined as a macro here, the
developer can request the 'fseek' module. */
# undef fseek
# define fseek rpl_fseek
# if !GNULIB_defined_fseek_function
# undef fseek
# define fseek rpl_fseek
static inline int _GL_ARG_NONNULL ((1))
rpl_fseek (FILE *fp, long offset, int whence)
{
# if @REPLACE_FSEEKO@
# if @REPLACE_FSEEKO@
return rpl_fseeko (fp, offset, whence);
# else
# else
return fseeko (fp, offset, whence);
# endif
# endif
}
# define GNULIB_defined_fseek_function 1
# endif
# endif
#elif defined GNULIB_POSIXCHECK
# define _GL_FSEEK_WARN /* Category 1, above. */
@@ -442,17 +445,20 @@ _GL_CXXALIASWARN (ftello);
/* Provide an ftell function that is consistent with ftello. */
/* In order to avoid that ftell gets defined as a macro here, the
developer can request the 'ftell' module. */
# undef ftell
# define ftell rpl_ftell
# if !GNULIB_defined_ftell_function
# undef ftell
# define ftell rpl_ftell
static inline long _GL_ARG_NONNULL ((1))
rpl_ftell (FILE *f)
{
# if @REPLACE_FTELLO@
# if @REPLACE_FTELLO@
return rpl_ftello (f);
# else
# else
return ftello (f);
# endif
# endif
}
# define GNULIB_defined_ftell_function 1
# endif
# endif
#elif defined GNULIB_POSIXCHECK
# define _GL_FTELL_WARN /* Category 1, above. */
+15
View File
@@ -67,7 +67,10 @@
/* The definition of _GL_WARN_ON_USE is copied here. */
#if !@HAVE_SA_FAMILY_T@
# if !GNULIB_defined_sa_family_t
typedef unsigned short sa_family_t;
# define GNULIB_defined_sa_family_t 1
# endif
#endif
#if @HAVE_STRUCT_SOCKADDR_STORAGE@
@@ -89,12 +92,16 @@ typedef unsigned short sa_family_t;
: alignof (__ss_aligntype)) \
+ sizeof (__ss_aligntype)))
# if !GNULIB_defined_struct_sockaddr_storage
struct sockaddr_storage
{
sa_family_t ss_family; /* Address family, etc. */
__ss_aligntype __ss_align; /* Force desired alignment. */
char __ss_padding[_SS_PADSIZE];
};
# define GNULIB_defined_struct_sockaddr_storage 1
# endif
#endif
#if @HAVE_SYS_SOCKET_H@
@@ -159,7 +166,10 @@ struct sockaddr_storage
# include <sys/types.h>
# include <io.h>
# if !GNULIB_defined_socklen_t
typedef int socklen_t;
# define GNULIB_defined_socklen_t 1
# endif
# endif
@@ -167,6 +177,8 @@ typedef int socklen_t;
#if @HAVE_WINSOCK2_H@
# if !GNULIB_defined_rpl_fd_isset
/* Re-define FD_ISSET to avoid a WSA call while we are not using
network sockets. */
static inline int
@@ -183,6 +195,9 @@ rpl_fd_isset (SOCKET fd, fd_set * set)
return 0;
}
# define GNULIB_defined_rpl_fd_isset 1
# endif
# undef FD_ISSET
# define FD_ISSET(fd, set) rpl_fd_isset(fd, set)
+3
View File
@@ -461,11 +461,14 @@ _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode));
which are included above. */
# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
# if !GNULIB_defined_rpl_mkdir
static inline int
rpl_mkdir (char const *name, mode_t mode)
{
return _mkdir (name);
}
# define GNULIB_defined_rpl_mkdir 1
# endif
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# define mkdir rpl_mkdir
+5
View File
@@ -51,11 +51,16 @@ extern "C" {
# endif
# if ! @HAVE_STRUCT_TIMEVAL@
# if !GNULIB_defined_struct_timeval
struct timeval
{
time_t tv_sec;
long int tv_usec;
};
# define GNULIB_defined_struct_timeval 1
# endif
# endif
# ifdef __cplusplus
+3
View File
@@ -48,6 +48,7 @@ extern "C" {
# endif
# if !@HAVE_STRUCT_TMS@
# if !GNULIB_defined_struct_tms
/* Structure describing CPU time used by a process and its children. */
struct tms
{
@@ -57,6 +58,8 @@ extern "C" {
clock_t tms_cutime; /* User CPU time of dead children. */
clock_t tms_cstime; /* System CPU time of dead children. */
};
# define GNULIB_defined_struct_tms 1
# endif
# endif
# if @GNULIB_TIMES@
+4
View File
@@ -57,6 +57,7 @@ extern "C" {
# define _UTSNAME_MACHINE_LENGTH _UTSNAME_LENGTH
# endif
# if !GNULIB_defined_struct_utsname
/* Structure describing the system and machine. */
struct utsname
{
@@ -73,6 +74,9 @@ struct utsname
/* Name of the hardware type the system is running on. */
char machine[_UTSNAME_MACHINE_LENGTH];
};
# define GNULIB_defined_struct_utsname 1
# endif
#endif /* !@HAVE_STRUCT_UTSNAME@ */
+8 -2
View File
@@ -69,13 +69,16 @@
extern "C" {
# endif
# undef timespec
# define timespec rpl_timespec
# if !GNULIB_defined_struct_timespec
# undef timespec
# define timespec rpl_timespec
struct timespec
{
time_t tv_sec;
long int tv_nsec;
};
# define GNULIB_defined_struct_timespec 1
# endif
# ifdef __cplusplus
}
@@ -84,6 +87,7 @@ struct timespec
# endif
# endif
# if !GNULIB_defined_struct_time_t_must_be_integral
/* Per http://austingroupbugs.net/view.php?id=327, POSIX requires
time_t to be an integer type, even though C99 permits floating
point. We don't know of any implementation that uses floating
@@ -92,6 +96,8 @@ struct timespec
struct __time_t_must_be_integral {
unsigned int __floating_time_t_unsupported : (time_t) 1;
};
# define GNULIB_defined_struct_time_t_must_be_integral 1
# endif
/* Sleep for at least RQTP seconds unless interrupted, If interrupted,
return -1 and store the remaining time into RMTP. See
+3
View File
@@ -796,11 +796,14 @@ _GL_CXXALIAS_RPL (getpagesize, int, (void));
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# define getpagesize() _gl_getpagesize ()
# else
# if !GNULIB_defined_getpagesize_function
static inline int
getpagesize ()
{
return _gl_getpagesize ();
}
# define GNULIB_defined_getpagesize_function 1
# endif
# endif
# endif
# endif
+5 -3
View File
@@ -104,10 +104,12 @@
On IRIX 6.5, sizeof (mbstate_t) == 1, which is not sufficient for
implementing mbrtowc for encodings like UTF-8. */
#if !(@HAVE_MBSINIT@ && @HAVE_MBRTOWC@) || @REPLACE_MBSTATE_T@
# if !GNULIB_defined_mbstate_t
typedef int rpl_mbstate_t;
# undef mbstate_t
# define mbstate_t rpl_mbstate_t
# define GNULIB_defined_mbstate_t 1
# undef mbstate_t
# define mbstate_t rpl_mbstate_t
# define GNULIB_defined_mbstate_t 1
# endif
#endif
+95 -90
View File
@@ -72,58 +72,60 @@
#endif
#if !GNULIB_defined_wctype_functions
/* FreeBSD 4.4 to 4.11 has <wctype.h> but lacks the functions.
Linux libc5 has <wctype.h> and the functions but they are broken.
Assume all 11 functions (all isw* except iswblank) are implemented the
same way, or not at all. */
#if ! @HAVE_ISWCNTRL@ || @REPLACE_ISWCNTRL@
# if ! @HAVE_ISWCNTRL@ || @REPLACE_ISWCNTRL@
/* IRIX 5.3 has macros but no functions, its isw* macros refer to an
undefined variable _ctmp_ and to <ctype.h> macros like _P, and they
refer to system functions like _iswctype that are not in the
standard C library. Rather than try to get ancient buggy
implementations like this to work, just disable them. */
# undef iswalnum
# undef iswalpha
# undef iswblank
# undef iswcntrl
# undef iswdigit
# undef iswgraph
# undef iswlower
# undef iswprint
# undef iswpunct
# undef iswspace
# undef iswupper
# undef iswxdigit
# undef towlower
# undef towupper
# undef iswalnum
# undef iswalpha
# undef iswblank
# undef iswcntrl
# undef iswdigit
# undef iswgraph
# undef iswlower
# undef iswprint
# undef iswpunct
# undef iswspace
# undef iswupper
# undef iswxdigit
# undef towlower
# undef towupper
/* Linux libc5 has <wctype.h> and the functions but they are broken. */
# if @REPLACE_ISWCNTRL@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# define iswalnum rpl_iswalnum
# define iswalpha rpl_iswalpha
# define iswblank rpl_iswblank
# define iswcntrl rpl_iswcntrl
# define iswdigit rpl_iswdigit
# define iswgraph rpl_iswgraph
# define iswlower rpl_iswlower
# define iswprint rpl_iswprint
# define iswpunct rpl_iswpunct
# define iswspace rpl_iswspace
# define iswupper rpl_iswupper
# define iswxdigit rpl_iswxdigit
# define towlower rpl_towlower
# define towupper rpl_towupper
# if @REPLACE_ISWCNTRL@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# define iswalnum rpl_iswalnum
# define iswalpha rpl_iswalpha
# define iswblank rpl_iswblank
# define iswcntrl rpl_iswcntrl
# define iswdigit rpl_iswdigit
# define iswgraph rpl_iswgraph
# define iswlower rpl_iswlower
# define iswprint rpl_iswprint
# define iswpunct rpl_iswpunct
# define iswspace rpl_iswspace
# define iswupper rpl_iswupper
# define iswxdigit rpl_iswxdigit
# define towlower rpl_towlower
# define towupper rpl_towupper
# endif
# endif
# endif
static inline int
# if @REPLACE_ISWCNTRL@
# if @REPLACE_ISWCNTRL@
rpl_iswalnum
# else
# else
iswalnum
# endif
# endif
(wint_t wc)
{
return ((wc >= '0' && wc <= '9')
@@ -131,88 +133,88 @@ iswalnum
}
static inline int
# if @REPLACE_ISWCNTRL@
# if @REPLACE_ISWCNTRL@
rpl_iswalpha
# else
# else
iswalpha
# endif
# endif
(wint_t wc)
{
return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z';
}
static inline int
# if @REPLACE_ISWCNTRL@
# if @REPLACE_ISWCNTRL@
rpl_iswblank
# else
# else
iswblank
# endif
# endif
(wint_t wc)
{
return wc == ' ' || wc == '\t';
}
static inline int
# if @REPLACE_ISWCNTRL@
# if @REPLACE_ISWCNTRL@
rpl_iswcntrl
# else
# else
iswcntrl
# endif
# endif
(wint_t wc)
{
return (wc & ~0x1f) == 0 || wc == 0x7f;
}
static inline int
# if @REPLACE_ISWCNTRL@
# if @REPLACE_ISWCNTRL@
rpl_iswdigit
# else
# else
iswdigit
# endif
# endif
(wint_t wc)
{
return wc >= '0' && wc <= '9';
}
static inline int
# if @REPLACE_ISWCNTRL@
# if @REPLACE_ISWCNTRL@
rpl_iswgraph
# else
# else
iswgraph
# endif
# endif
(wint_t wc)
{
return wc >= '!' && wc <= '~';
}
static inline int
# if @REPLACE_ISWCNTRL@
# if @REPLACE_ISWCNTRL@
rpl_iswlower
# else
# else
iswlower
# endif
# endif
(wint_t wc)
{
return wc >= 'a' && wc <= 'z';
}
static inline int
# if @REPLACE_ISWCNTRL@
# if @REPLACE_ISWCNTRL@
rpl_iswprint
# else
# else
iswprint
# endif
# endif
(wint_t wc)
{
return wc >= ' ' && wc <= '~';
}
static inline int
# if @REPLACE_ISWCNTRL@
# if @REPLACE_ISWCNTRL@
rpl_iswpunct
# else
# else
iswpunct
# endif
# endif
(wint_t wc)
{
return (wc >= '!' && wc <= '~'
@@ -221,11 +223,11 @@ iswpunct
}
static inline int
# if @REPLACE_ISWCNTRL@
# if @REPLACE_ISWCNTRL@
rpl_iswspace
# else
# else
iswspace
# endif
# endif
(wint_t wc)
{
return (wc == ' ' || wc == '\t'
@@ -233,22 +235,22 @@ iswspace
}
static inline int
# if @REPLACE_ISWCNTRL@
# if @REPLACE_ISWCNTRL@
rpl_iswupper
# else
# else
iswupper
# endif
# endif
(wint_t wc)
{
return wc >= 'A' && wc <= 'Z';
}
static inline int
# if @REPLACE_ISWCNTRL@
# if @REPLACE_ISWCNTRL@
rpl_iswxdigit
# else
# else
iswxdigit
# endif
# endif
(wint_t wc)
{
return ((wc >= '0' && wc <= '9')
@@ -256,42 +258,42 @@ iswxdigit
}
static inline wint_t
# if @REPLACE_ISWCNTRL@
# if @REPLACE_ISWCNTRL@
rpl_towlower
# else
# else
towlower
# endif
# endif
(wint_t wc)
{
return (wc >= 'A' && wc <= 'Z' ? wc - 'A' + 'a' : wc);
}
static inline wint_t
# if @REPLACE_ISWCNTRL@
# if @REPLACE_ISWCNTRL@
rpl_towupper
# else
# else
towupper
# endif
# endif
(wint_t wc)
{
return (wc >= 'a' && wc <= 'z' ? wc - 'a' + 'A' : wc);
}
#elif ! @HAVE_ISWBLANK@ || @REPLACE_ISWBLANK@
# elif ! @HAVE_ISWBLANK@ || @REPLACE_ISWBLANK@
/* Only the iswblank function is missing. */
# if @REPLACE_ISWBLANK@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# define iswblank rpl_iswblank
# endif
# if @REPLACE_ISWBLANK@
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# define iswblank rpl_iswblank
# endif
_GL_FUNCDECL_RPL (iswblank, int, (wint_t wc));
# else
# else
_GL_FUNCDECL_SYS (iswblank, int, (wint_t wc));
# endif
# endif
#endif
#if defined __MINGW32__
# if defined __MINGW32__
/* On native Windows, wchar_t is uint16_t, and wint_t is uint32_t.
The functions towlower and towupper are implemented in the MSVCRT library
@@ -311,20 +313,23 @@ rpl_towlower (wint_t wc)
{
return (wint_t) (wchar_t) towlower (wc);
}
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# define towlower rpl_towlower
# endif
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# define towlower rpl_towlower
# endif
static inline wint_t
rpl_towupper (wint_t wc)
{
return (wint_t) (wchar_t) towupper (wc);
}
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# define towupper rpl_towupper
# endif
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
# define towupper rpl_towupper
# endif
#endif /* __MINGW32__ */
# endif /* __MINGW32__ */
# define GNULIB_defined_wctype_functions 1
#endif
#if @REPLACE_ISWCNTRL@
_GL_CXXALIAS_RPL (iswalnum, int, (wint_t wc));