diff options
author | Garrett D'Amore <garrett@damore.org> | 2014-05-18 20:08:38 -0700 |
---|---|---|
committer | Garrett D'Amore <garrett@damore.org> | 2014-07-11 20:35:28 -0700 |
commit | 2d08521bd15501c8370ba2153b9cca4f094979d0 (patch) | |
tree | cd843bc37fe795bc7bbdd04b5b13b0310a2d6be1 /usr/src/head/string.h | |
parent | 961519c5bffd5ec670890fc3596d6c4ff1cefea0 (diff) | |
download | illumos-joyent-2d08521bd15501c8370ba2153b9cca4f094979d0.tar.gz |
2964 need POSIX 2008 locale object support
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Approved by: Dan McDonald <danmcd@omniti.com>
Diffstat (limited to 'usr/src/head/string.h')
-rw-r--r-- | usr/src/head/string.h | 45 |
1 files changed, 32 insertions, 13 deletions
diff --git a/usr/src/head/string.h b/usr/src/head/string.h index f786eb72d8..99c941c5bd 100644 --- a/usr/src/head/string.h +++ b/usr/src/head/string.h @@ -20,6 +20,7 @@ */ /* + * Copyright 2014 Garrett D'Amore <garrett@damore.org> * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. */ @@ -86,20 +87,30 @@ 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); +#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 -#if defined(__EXTENSIONS__) || \ - (!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX)) +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); @@ -115,6 +126,9 @@ 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__) || \ @@ -194,11 +208,11 @@ extern char *strtok_r(); extern void *memccpy(); #endif -#if defined(__EXTENSIONS__) || \ - (!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX)) - /* || defined(_XPG7) */ +#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(); @@ -206,8 +220,7 @@ extern size_t strnlen(); extern char *strsignal(); #endif -#if defined(__EXTENSIONS__) || \ - (!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX)) +#if !defined(_STRICT_SYMBOLS) extern int uucopy(); extern int uucopystr(); extern int ffs(); @@ -217,17 +230,23 @@ 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 /* defined(__EXTENSIONS__) ... */ +#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 |