Print this page
2964 need POSIX 2008 locale object support
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Approved by: TBD
*** 18,27 ****
--- 18,28 ----
*
* CDDL HEADER END
*/
/*
+ * Copyright 2014 Garrett D'Amore <garrett@damore.org>
* Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
*/
/* Copyright (c) 1988 AT&T */
/* All Rights Reserved */
*** 84,107 ****
defined(__XOPEN_OR_POSIX)
extern void *memccpy(void *_RESTRICT_KYWD, const void *_RESTRICT_KYWD,
int, size_t);
#endif
! #if defined(__EXTENSIONS__) || \
! (!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX))
! /* || defined(_XPG7) */
! extern int strcasecmp(const char *, const char *);
! extern int strncasecmp(const char *, const char *, size_t);
extern char *stpcpy(char *_RESTRICT_KYWD, const char *_RESTRICT_KYWD);
extern char *stpncpy(char *_RESTRICT_KYWD, const char *_RESTRICT_KYWD, size_t);
extern char *strndup(const char *, size_t);
extern size_t strnlen(const char *, size_t);
extern char *strsignal(int);
#endif
! #if defined(__EXTENSIONS__) || \
! (!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX))
extern int uucopy(const void *_RESTRICT_KYWD, void *_RESTRICT_KYWD, size_t);
extern int uucopystr(const void *_RESTRICT_KYWD, void *_RESTRICT_KYWD, size_t);
extern int ffs(int);
extern int ffsl(long);
extern int ffsll(long long);
--- 85,118 ----
defined(__XOPEN_OR_POSIX)
extern void *memccpy(void *_RESTRICT_KYWD, const void *_RESTRICT_KYWD,
int, size_t);
#endif
! #if !defined(_STRICT_SYMBOLS) || defined(_XPG7)
!
extern char *stpcpy(char *_RESTRICT_KYWD, const char *_RESTRICT_KYWD);
extern char *stpncpy(char *_RESTRICT_KYWD, const char *_RESTRICT_KYWD, size_t);
extern char *strndup(const char *, size_t);
extern size_t strnlen(const char *, size_t);
extern char *strsignal(int);
+
+ #ifndef _LOCALE_T
+ #define _LOCALE_T
+ typedef struct locale *locale_t;
#endif
! extern int strcoll_l(const char *, const char *, locale_t);
! extern size_t strxfrm_l(char *_RESTRICT_KYWD, const char *_RESTRICT_KYWD,
! size_t, locale_t);
! extern int strcasecmp_l(const char *, const char *, locale_t);
! extern int strncasecmp_l(const char *, const char *, size_t, locale_t);
!
! #endif /* defined(_STRICT_SYMBOLS) || defined(_XPG7) */
!
! #if !defined(_STRICT_SYMBOLS)
!
! /* Note that some of these are also declared in strings.h for XPG4_2+ */
extern int uucopy(const void *_RESTRICT_KYWD, void *_RESTRICT_KYWD, size_t);
extern int uucopystr(const void *_RESTRICT_KYWD, void *_RESTRICT_KYWD, size_t);
extern int ffs(int);
extern int ffsl(long);
extern int ffsll(long long);
*** 113,122 ****
--- 124,136 ----
extern char *strnstr(const char *, const char *, size_t);
extern size_t strlcpy(char *, const char *, size_t);
extern size_t strlcat(char *, const char *, size_t);
extern char *strsep(char **stringp, const char *delim);
extern char *strchrnul(const char *, int);
+ extern char *strcasestr_l(const char *, const char *, locale_t);
+ extern int strcasecmp(const char *, const char *);
+ extern int strncasecmp(const char *, const char *, size_t);
#endif /* defined(__EXTENSIONS__)... */
#if defined(__EXTENSIONS__) || \
(!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX)) || \
defined(_XPG4_2)
*** 192,235 ****
#if defined(__EXTENSIONS__) || !defined(_STRICT_STDC) || \
defined(__XOPEN_OR_POSIX)
extern void *memccpy();
#endif
! #if defined(__EXTENSIONS__) || \
! (!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX))
! /* || defined(_XPG7) */
extern int strcasecmp();
extern int strncasecmp();
extern char *stpcpy();
extern char *stpncpy();
extern char *strndup();
extern size_t strnlen();
extern char *strsignal();
#endif
! #if defined(__EXTENSIONS__) || \
! (!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX))
extern int uucopy();
extern int uucopystr();
extern int ffs();
extern int ffsl();
extern int ffsll();
extern int fls();
extern int flsl();
extern int flsll();
extern char *strcasestr();
extern char *strnstr();
extern size_t strlcpy();
extern size_t strlcat();
extern char *strsep();
extern char *strchrnul();
! #endif /* defined(__EXTENSIONS__) ... */
#if defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX) || defined(_XPG4_2)
extern char *strdup();
#endif
#endif /* __STDC__ */
#ifdef __cplusplus
}
#endif
--- 206,254 ----
#if defined(__EXTENSIONS__) || !defined(_STRICT_STDC) || \
defined(__XOPEN_OR_POSIX)
extern void *memccpy();
#endif
! #if defined(_XPG7) || !defined(_STRICT_SYMBOLS)
extern int strcasecmp();
extern int strncasecmp();
+ extern int strcasecmp_l();
+ extern int strncasecmp_l();
extern char *stpcpy();
extern char *stpncpy();
extern char *strndup();
extern size_t strnlen();
extern char *strsignal();
#endif
! #if !defined(_STRICT_SYMBOLS)
extern int uucopy();
extern int uucopystr();
extern int ffs();
extern int ffsl();
extern int ffsll();
extern int fls();
extern int flsl();
extern int flsll();
extern char *strcasestr();
+ extern char *strcasestr_l();
extern char *strnstr();
extern size_t strlcpy();
extern size_t strlcat();
extern char *strsep();
extern char *strchrnul();
! #endif /* _STRICT_SYMBOLS */
#if defined(__EXTENSIONS__) || !defined(__XOPEN_OR_POSIX) || defined(_XPG4_2)
extern char *strdup();
#endif
+ #if defined(_XPG7) || !defined(_STRICT_SYMBOLS)
+ extern size_t strcoll_l();
+ extern size_t strxfrm_l();
+ #endif
+
#endif /* __STDC__ */
#ifdef __cplusplus
}
#endif