diff options
| author | joerg <joerg@NetBSD.org> | 2013-04-19 23:28:47 +0000 |
|---|---|---|
| committer | joerg <joerg@NetBSD.org> | 2013-04-19 23:28:47 +0000 |
| commit | bd02ea9984d47ffcd53008b81e69b5f39dde4809 (patch) | |
| tree | cfc608bc07bdd0d76e030932aaf1121e94732cd2 /lib/libc | |
| parent | 1dac79f3bd80a6f3f4e6813f54748c7c2037b235 (diff) | |
Add dummy strcoll_l and strxfrm_l.
Diffstat (limited to 'lib/libc')
| -rw-r--r-- | lib/libc/include/namespace.h | 4 | ||||
| -rw-r--r-- | lib/libc/string/strcoll.c | 20 | ||||
| -rw-r--r-- | lib/libc/string/strxfrm.c | 23 |
3 files changed, 41 insertions, 6 deletions
diff --git a/lib/libc/include/namespace.h b/lib/libc/include/namespace.h index 3025d779162..396938cc3b4 100644 --- a/lib/libc/include/namespace.h +++ b/lib/libc/include/namespace.h @@ -1,4 +1,4 @@ -/* $NetBSD: namespace.h,v 1.162 2013/04/19 15:22:24 joerg Exp $ */ +/* $NetBSD: namespace.h,v 1.163 2013/04/19 23:28:47 joerg Exp $ */ /*- * Copyright (c) 1997-2004 The NetBSD Foundation, Inc. @@ -606,6 +606,7 @@ #define srandom _srandom #define statvfs(a, b) _statvfs(a, b) #define strcasecmp _strcasecmp +#define strcoll_l _strcoll_l #define strdup _strdup #define stresep _stresep #define strftime_z _strftime_z @@ -619,6 +620,7 @@ #define strtok_r _strtok_r #define strnunvisx _strnunvisx #define strvisx _strvisx +#define strxfrm_l _strxfrm_l #define svc_auth_reg _svc_auth_reg #define svc_create _svc_create #define svc_dg_create _svc_dg_create diff --git a/lib/libc/string/strcoll.c b/lib/libc/string/strcoll.c index 77a09425042..d5da4c8750f 100644 --- a/lib/libc/string/strcoll.c +++ b/lib/libc/string/strcoll.c @@ -1,4 +1,4 @@ -/* $NetBSD: strcoll.c,v 1.10 2012/06/25 22:32:46 abs Exp $ */ +/* $NetBSD: strcoll.c,v 1.11 2013/04/19 23:28:47 joerg Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -37,12 +37,18 @@ #if 0 static char sccsid[] = "@(#)strcoll.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: strcoll.c,v 1.10 2012/06/25 22:32:46 abs Exp $"); +__RCSID("$NetBSD: strcoll.c,v 1.11 2013/04/19 23:28:47 joerg Exp $"); #endif #endif /* LIBC_SCCS and not lint */ +#include "namespace.h" + #include <assert.h> +#include <locale.h> #include <string.h> +#include "setlocale_local.h" + +__weak_alias(strcoll_l, _strcoll_l) /* * Compare strings according to LC_COLLATE category of current locale. @@ -51,9 +57,19 @@ int strcoll(const char *s1, const char *s2) { + return strcoll_l(s1, s2, *_current_locale()); +} + +int +strcoll_l(const char *s1, const char *s2, locale_t loc) +{ _DIAGASSERT(s1 != NULL); _DIAGASSERT(s2 != NULL); + if (loc == NULL) + loc = _C_locale; + /* LC_COLLATE is unimplemented, hence always "C" */ + /* LINTED */ (void)loc; return (strcmp(s1, s2)); } diff --git a/lib/libc/string/strxfrm.c b/lib/libc/string/strxfrm.c index 42c2a244b90..841c9fceda9 100644 --- a/lib/libc/string/strxfrm.c +++ b/lib/libc/string/strxfrm.c @@ -1,4 +1,4 @@ -/* $NetBSD: strxfrm.c,v 1.12 2012/06/25 22:32:46 abs Exp $ */ +/* $NetBSD: strxfrm.c,v 1.13 2013/04/19 23:28:47 joerg Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -37,12 +37,18 @@ #if 0 static char sccsid[] = "@(#)strxfrm.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: strxfrm.c,v 1.12 2012/06/25 22:32:46 abs Exp $"); +__RCSID("$NetBSD: strxfrm.c,v 1.13 2013/04/19 23:28:47 joerg Exp $"); #endif #endif /* LIBC_SCCS and not lint */ +#include "namespace.h" + #include <assert.h> +#include <locale.h> #include <string.h> +#include "setlocale_local.h" + +__weak_alias(strxfrm_l, _strxfrm_l) /* * Transform src, storing the result in dst, such that @@ -50,12 +56,17 @@ __RCSID("$NetBSD: strxfrm.c,v 1.12 2012/06/25 22:32:46 abs Exp $"); * on the original untransformed strings would return. */ size_t -strxfrm(char *dst, const char *src, size_t n) +strxfrm_l(char *dst, const char *src, size_t n, locale_t loc) { size_t srclen, copysize; _DIAGASSERT(src != NULL); + if (loc == NULL) + loc = _C_locale; + /* XXX: LC_COLLATE should be implemented. */ + /* LINTED */(void)loc; + /* * Since locales are unimplemented, this is just a copy. */ @@ -68,3 +79,9 @@ strxfrm(char *dst, const char *src, size_t n) } return (srclen); } + +size_t +strxfrm(char *dst, const char *src, size_t n) +{ + return strxfrm_l(dst, src, n, *_current_locale()); +} |
