(Nothing activated yet, of course) okay deraadt@OPENBSD_3_8
@ -0,0 +1,56 @@ | |||
/* $OpenBSD: wcscat.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wcscat.c,v 1.2 2001/01/03 14:29:36 lukem Exp $ */ | |||
/*- | |||
* Copyright (c)1999 Citrus Project, | |||
* All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* | |||
* citrus Id: wcscat.c,v 1.1 1999/12/29 21:47:45 tshiozak Exp | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wcscat.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <wchar.h> | |||
wchar_t * | |||
wcscat(s1, s2) | |||
wchar_t *s1; | |||
const wchar_t *s2; | |||
{ | |||
wchar_t *p; | |||
wchar_t *q; | |||
const wchar_t *r; | |||
p = s1; | |||
while (*p) | |||
p++; | |||
q = p; | |||
r = s2; | |||
while (*r) | |||
*q++ = *r++; | |||
*q = '\0'; | |||
return s1; | |||
} |
@ -0,0 +1,54 @@ | |||
/* $OpenBSD: wcschr.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wcschr.c,v 1.2 2001/01/03 14:29:36 lukem Exp $ */ | |||
/*- | |||
* Copyright (c)1999 Citrus Project, | |||
* All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* | |||
* citrus Id: wcschr.c,v 1.2 2000/12/21 05:07:25 itojun Exp | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wcschr.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <wchar.h> | |||
wchar_t * | |||
wcschr(s, c) | |||
const wchar_t *s; | |||
wchar_t c; | |||
{ | |||
const wchar_t *p; | |||
p = s; | |||
while (*p) { | |||
if (*p == c) { | |||
/* LINTED interface specification */ | |||
return (wchar_t *)p; | |||
} | |||
p++; | |||
} | |||
return NULL; | |||
} |
@ -0,0 +1,56 @@ | |||
/* $OpenBSD: wcscmp.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wcscmp.c,v 1.5 2003/08/07 16:43:54 agc Exp $ */ | |||
/*- | |||
* Copyright (c) 1990, 1993 | |||
* The Regents of the University of California. All rights reserved. | |||
* | |||
* This code is derived from software contributed to Berkeley by | |||
* Chris Torek. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* 3. Neither the name of the University nor the names of its contributors | |||
* may be used to endorse or promote products derived from this software | |||
* without specific prior written permission. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wcscmp.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <wchar.h> | |||
#include "locale/runetype.h" | |||
/* | |||
* Compare strings. | |||
*/ | |||
int | |||
wcscmp(s1, s2) | |||
const wchar_t *s1, *s2; | |||
{ | |||
while (*s1 == *s2++) | |||
if (*s1++ == 0) | |||
return (0); | |||
/* XXX assumes wchar_t = int */ | |||
return (*(const __nbrune_t *)s1 - *(const __nbrune_t *)--s2); | |||
} |
@ -0,0 +1,54 @@ | |||
/* $OpenBSD: wcscpy.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wcscpy.c,v 1.2 2001/01/03 14:29:36 lukem Exp $ */ | |||
/*- | |||
* Copyright (c)1999 Citrus Project, | |||
* All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* | |||
* citrus Id: wcscpy.c,v 1.2 2000/12/21 04:51:09 itojun Exp | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wcscpy.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <wchar.h> | |||
wchar_t * | |||
wcscpy(s1, s2) | |||
wchar_t *s1; | |||
const wchar_t *s2; | |||
{ | |||
wchar_t *p; | |||
const wchar_t *q; | |||
*s1 = '\0'; | |||
p = s1; | |||
q = s2; | |||
while (*q) | |||
*p++ = *q++; | |||
*p = '\0'; | |||
return s1; | |||
} |
@ -0,0 +1,59 @@ | |||
/* $OpenBSD: wcscspn.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wcscspn.c,v 1.2 2001/01/03 14:29:36 lukem Exp $ */ | |||
/*- | |||
* Copyright (c)1999 Citrus Project, | |||
* All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* | |||
* citrus Id: wcscspn.c,v 1.1 1999/12/29 21:47:45 tshiozak Exp | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wcscspn.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <wchar.h> | |||
size_t | |||
wcscspn(s, set) | |||
const wchar_t *s; | |||
const wchar_t *set; | |||
{ | |||
const wchar_t *p; | |||
const wchar_t *q; | |||
p = s; | |||
while (*p) { | |||
q = set; | |||
while (*q) { | |||
if (*p == *q) | |||
goto done; | |||
q++; | |||
} | |||
p++; | |||
} | |||
done: | |||
return (p - s); | |||
} |
@ -0,0 +1,75 @@ | |||
/* $OpenBSD: wcslcat.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wcslcat.c,v 1.2 2001/01/03 14:33:02 lukem Exp $ */ | |||
/* from OpenBSD: strlcat.c,v 1.3 2000/11/24 11:10:02 itojun Exp */ | |||
/* | |||
* Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> | |||
* All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* 3. The name of the author may not be used to endorse or promote products | |||
* derived from this software without specific prior written permission. | |||
* | |||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, | |||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY | |||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL | |||
* THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; | |||
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | |||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR | |||
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF | |||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wcslcat.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <sys/types.h> | |||
#include <wchar.h> | |||
/* | |||
* Appends src to string dst of size siz (unlike wcsncat, siz is the | |||
* full size of dst, not space left). At most siz-1 characters | |||
* will be copied. Always NUL terminates (unless siz == 0). | |||
* Returns wcslen(initial dst) + wcslen(src); if retval >= siz, | |||
* truncation occurred. | |||
*/ | |||
size_t | |||
wcslcat(dst, src, siz) | |||
wchar_t *dst; | |||
const wchar_t *src; | |||
size_t siz; | |||
{ | |||
wchar_t *d = dst; | |||
const wchar_t *s = src; | |||
size_t n = siz; | |||
size_t dlen; | |||
/* Find the end of dst and adjust bytes left but don't go past end */ | |||
while (*d != '\0' && n-- != 0) | |||
d++; | |||
dlen = d - dst; | |||
n = siz - dlen; | |||
if (n == 0) | |||
return(dlen + wcslen(s)); | |||
while (*s != '\0') { | |||
if (n != 1) { | |||
*d++ = *s; | |||
n--; | |||
} | |||
s++; | |||
} | |||
*d = '\0'; | |||
return(dlen + (s - src)); /* count does not include NUL */ | |||
} |
@ -0,0 +1,71 @@ | |||
/* $OpenBSD: wcslcpy.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wcslcpy.c,v 1.2 2001/01/03 14:33:02 lukem Exp $ */ | |||
/* from OpenBSD: strlcpy.c,v 1.4 1999/05/01 18:56:41 millert Exp */ | |||
/* | |||
* Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> | |||
* All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* 3. The name of the author may not be used to endorse or promote products | |||
* derived from this software without specific prior written permission. | |||
* | |||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, | |||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY | |||
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL | |||
* THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; | |||
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | |||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR | |||
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF | |||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wcslcpy.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <sys/types.h> | |||
#include <wchar.h> | |||
/* | |||
* Copy src to string dst of size siz. At most siz-1 characters | |||
* will be copied. Always NUL terminates (unless siz == 0). | |||
* Returns wcslen(src); if retval >= siz, truncation occurred. | |||
*/ | |||
size_t | |||
wcslcpy(dst, src, siz) | |||
wchar_t *dst; | |||
const wchar_t *src; | |||
size_t siz; | |||
{ | |||
wchar_t *d = dst; | |||
const wchar_t *s = src; | |||
size_t n = siz; | |||
/* Copy as many bytes as will fit */ | |||
if (n != 0 && --n != 0) { | |||
do { | |||
if ((*d++ = *s++) == 0) | |||
break; | |||
} while (--n != 0); | |||
} | |||
/* Not enough room in dst, add NUL and traverse rest of src */ | |||
if (n == 0) { | |||
if (siz != 0) | |||
*d = '\0'; /* NUL-terminate dst */ | |||
while (*s++) | |||
; | |||
} | |||
return(s - src - 1); /* count does not include NUL */ | |||
} |
@ -0,0 +1,49 @@ | |||
/* $OpenBSD: wcslen.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wcslen.c,v 1.2 2001/01/03 14:29:36 lukem Exp $ */ | |||
/*- | |||
* Copyright (c)1999 Citrus Project, | |||
* All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* | |||
* citrus Id: wcslen.c,v 1.1 1999/12/29 21:47:45 tshiozak Exp | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wcslen.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <wchar.h> | |||
size_t | |||
wcslen(s) | |||
const wchar_t *s; | |||
{ | |||
const wchar_t *p; | |||
p = s; | |||
while (*p) | |||
p++; | |||
return p - s; | |||
} |
@ -0,0 +1,59 @@ | |||
/* $OpenBSD: wcsncat.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wcsncat.c,v 1.2 2001/01/03 14:29:36 lukem Exp $ */ | |||
/*- | |||
* Copyright (c)1999 Citrus Project, | |||
* All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* | |||
* citrus Id: wcsncat.c,v 1.1 1999/12/29 21:47:45 tshiozak Exp | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wcsncat.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <wchar.h> | |||
wchar_t * | |||
wcsncat(s1, s2, n) | |||
wchar_t *s1; | |||
const wchar_t *s2; | |||
size_t n; | |||
{ | |||
wchar_t *p; | |||
wchar_t *q; | |||
const wchar_t *r; | |||
p = s1; | |||
while (*p) | |||
p++; | |||
q = p; | |||
r = s2; | |||
while (*r && n) { | |||
*q++ = *r++; | |||
n--; | |||
} | |||
*q = '\0'; | |||
return s1; | |||
} |
@ -0,0 +1,58 @@ | |||
/* $OpenBSD: wcsncmp.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wcsncmp.c,v 1.5 2003/08/07 16:43:54 agc Exp $ */ | |||
/* | |||
* Copyright (c) 1989, 1993 | |||
* The Regents of the University of California. All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* 3. Neither the name of the University nor the names of its contributors | |||
* may be used to endorse or promote products derived from this software | |||
* without specific prior written permission. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wcsncmp.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <wchar.h> | |||
#include "locale/runetype.h" | |||
int | |||
wcsncmp(s1, s2, n) | |||
const wchar_t *s1, *s2; | |||
size_t n; | |||
{ | |||
if (n == 0) | |||
return (0); | |||
do { | |||
if (*s1 != *s2++) { | |||
/* XXX assumes wchar_t = int */ | |||
return (*(const __nbrune_t *)s1 - | |||
*(const __nbrune_t *)--s2); | |||
} | |||
if (*s1++ == 0) | |||
break; | |||
} while (--n != 0); | |||
return (0); | |||
} |
@ -0,0 +1,57 @@ | |||
/* $OpenBSD: wcsncpy.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wcsncpy.c,v 1.2 2001/01/03 14:29:37 lukem Exp $ */ | |||
/*- | |||
* Copyright (c)1999 Citrus Project, | |||
* All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* | |||
* citrus Id: wcsncpy.c,v 1.1 1999/12/29 21:47:45 tshiozak Exp | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wcsncpy.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <wchar.h> | |||
wchar_t * | |||
wcsncpy(s1, s2, n) | |||
wchar_t *s1; | |||
const wchar_t *s2; | |||
size_t n; | |||
{ | |||
wchar_t *p; | |||
const wchar_t *q; | |||
*s1 = '\0'; | |||
p = s1; | |||
q = s2; | |||
while (n && *q) { | |||
*p++ = *q++; | |||
n--; | |||
} | |||
*p = '\0'; | |||
return s1; | |||
} |
@ -0,0 +1,59 @@ | |||
/* $OpenBSD: wcspbrk.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wcspbrk.c,v 1.2 2001/01/03 14:29:37 lukem Exp $ */ | |||
/*- | |||
* Copyright (c)1999 Citrus Project, | |||
* All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* | |||
* citrus Id: wcspbrk.c,v 1.2 2000/12/21 05:07:25 itojun Exp | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wcspbrk.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <wchar.h> | |||
wchar_t * | |||
wcspbrk(s, set) | |||
const wchar_t *s; | |||
const wchar_t *set; | |||
{ | |||
const wchar_t *p; | |||
const wchar_t *q; | |||
p = s; | |||
while (*p) { | |||
q = set; | |||
while (*q) { | |||
if (*p == *q) { | |||
/* LINTED interface specification */ | |||
return (wchar_t *)p; | |||
} | |||
q++; | |||
} | |||
p++; | |||
} | |||
return NULL; | |||
} |
@ -0,0 +1,56 @@ | |||
/* $OpenBSD: wcsrchr.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wcsrchr.c,v 1.2 2001/01/03 14:29:37 lukem Exp $ */ | |||
/*- | |||
* Copyright (c)1999 Citrus Project, | |||
* All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* | |||
* citrus Id: wcsrchr.c,v 1.2 2000/12/21 05:07:25 itojun Exp | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wcsrchr.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <wchar.h> | |||
wchar_t * | |||
wcsrchr(s, c) | |||
const wchar_t *s; | |||
wchar_t c; | |||
{ | |||
const wchar_t *p; | |||
p = s; | |||
while (*p) | |||
p++; | |||
while (s <= p) { | |||
if (*p == c) { | |||
/* LINTED interface specification */ | |||
return (wchar_t *)p; | |||
} | |||
p--; | |||
} | |||
return NULL; | |||
} |
@ -0,0 +1,61 @@ | |||
/* $OpenBSD: wcsspn.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wcsspn.c,v 1.3 2001/09/21 16:09:15 yamt Exp $ */ | |||
/*- | |||
* Copyright (c)1999,2001 Citrus Project, | |||
* All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* | |||
* $Citrus: xpg4dl/FreeBSD/lib/libc/string/wcsspn.c,v 1.3 2001/09/21 16:06:43 yamt Exp $ | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wcsspn.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <wchar.h> | |||
size_t | |||
wcsspn(s, set) | |||
const wchar_t *s; | |||
const wchar_t *set; | |||
{ | |||
const wchar_t *p; | |||
const wchar_t *q; | |||
p = s; | |||
while (*p) { | |||
q = set; | |||
while (*q) { | |||
if (*p == *q) | |||
break; | |||
q++; | |||
} | |||
if (!*q) | |||
goto done; | |||
p++; | |||
} | |||
done: | |||
return (p - s); | |||
} |
@ -0,0 +1,76 @@ | |||
/* $OpenBSD: wcsstr.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wcsstr.c,v 1.3 2003/03/05 20:18:17 tshiozak Exp $ */ | |||
/*- | |||
* Copyright (c)1999 Citrus Project, | |||
* All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* | |||
* citrus Id: wcsstr.c,v 1.2 2000/12/21 05:07:25 itojun Exp | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wcsstr.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <wchar.h> | |||
wchar_t * | |||
#ifdef WCSWCS | |||
wcswcs(big, little) | |||
#else | |||
wcsstr(big, little) | |||
#endif | |||
const wchar_t *big; | |||
const wchar_t *little; | |||
{ | |||
const wchar_t *p; | |||
const wchar_t *q; | |||
const wchar_t *r; | |||
if (!*little) { | |||
/* LINTED interface specification */ | |||
return (wchar_t *)big; | |||
} | |||
if (wcslen(big) < wcslen(little)) | |||
return NULL; | |||
p = big; | |||
q = little; | |||
while (*p) { | |||
q = little; | |||
r = p; | |||
while (*q) { | |||
if (*r != *q) | |||
break; | |||
q++; | |||
r++; | |||
} | |||
if (!*q) { | |||
/* LINTED interface specification */ | |||
return (wchar_t *)p; | |||
} | |||
p++; | |||
} | |||
return NULL; | |||
} |
@ -0,0 +1,136 @@ | |||
.\" $NetBSD: wcstok.3,v 1.3 2003/09/08 17:54:33 wiz Exp $ | |||
.\" | |||
.\" Copyright (c) 1998 Softweyr LLC. All rights reserved. | |||
.\" | |||
.\" strtok_r, from Berkeley strtok | |||
.\" Oct 13, 1998 by Wes Peters <wes@softweyr.com> | |||
.\" | |||
.\" Copyright (c) 1988, 1991, 1993 | |||
.\" The Regents of the University of California. All rights reserved. | |||
.\" | |||
.\" This code is derived from software contributed to Berkeley by | |||
.\" the American National Standards Committee X3, on Information | |||
.\" Processing Systems. | |||
.\" | |||
.\" Redistribution and use in source and binary forms, with or without | |||
.\" modification, are permitted provided that the following conditions | |||
.\" are met: | |||
.\" | |||
.\" 1. Redistributions of source code must retain the above copyright | |||
.\" notices, this list of conditions and the following disclaimer. | |||
.\" | |||
.\" 2. Redistributions in binary form must reproduce the above | |||
.\" copyright notices, this list of conditions and the following | |||
.\" disclaimer in the documentation and/or other materials provided | |||
.\" with the distribution. | |||
.\" | |||
.\" 3. All advertising materials mentioning features or use of this | |||
.\" software must display the following acknowledgement: | |||
.\" | |||
.\" This product includes software developed by Softweyr LLC, the | |||
.\" University of California, Berkeley, and its contributors. | |||
.\" | |||
.\" 4. Neither the name of Softweyr LLC, the University nor the names | |||
.\" of its contributors may be used to endorse or promote products | |||
.\" derived from this software without specific prior written | |||
.\" permission. | |||
.\" | |||
.\" THIS SOFTWARE IS PROVIDED BY SOFTWEYR LLC, THE REGENTS AND | |||
.\" CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, | |||
.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | |||
.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||
.\" DISCLAIMED. IN NO EVENT SHALL SOFTWEYR LLC, THE REGENTS, OR | |||
.\" CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||
.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||
.\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||
.\" USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||
.\" ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||
.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||
.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
.\" SUCH DAMAGE. | |||
.\" | |||
.\" Original version ID: | |||
.\" FreeBSD: src/lib/libc/string/wcstok.3,v 1.4 2002/10/15 09:49:54 tjr Exp | |||
.\" | |||
.Dd October 3, 2002 | |||
.Dt WCSTOK 3 | |||
.Os | |||
.Sh NAME | |||
.Nm wcstok | |||
.Nd split wide-character string into tokens | |||
.Sh LIBRARY | |||
.Lb libc | |||
.Sh SYNOPSIS | |||
.In wchar.h | |||
.Ft wchar_t * | |||
.Fn wcstok "wchar_t * restrict str" "const wchar_t * restrict sep" "wchar_t ** restrict last" | |||
.Sh DESCRIPTION | |||
The | |||
.Fn wcstok | |||
function | |||
is used to isolate sequential tokens in a null-terminated wide character | |||
string, | |||
.Fa str . | |||
These tokens are separated in the string by at least one of the | |||
characters in | |||
.Fa sep . | |||
The first time that | |||
.Fn wcstok | |||
is called, | |||
.Fa str | |||
should be specified; subsequent calls, wishing to obtain further tokens | |||
from the same string, should pass a null pointer instead. | |||
The separator string, | |||
.Fa sep , | |||
must be supplied each time, and may change between calls. | |||
The context pointer | |||
.Fa last | |||
must be provided on each call. | |||
.Pp | |||
The | |||
.Fn wcstok | |||
function is the wide character counterpart of the | |||
.Fn strtok_r | |||
function. | |||
.Sh RETURN VALUES | |||
The | |||
.Fn wcstok | |||
function | |||
returns a pointer to the beginning of each subsequent token in the string, | |||
after replacing the token itself with a null wide character (L'\e0'). | |||
When no more tokens remain, a null pointer is returned. | |||
.Sh EXAMPLES | |||
The following code fragment splits a wide character string on | |||
.Tn ASCII | |||
space, tab and newline characters and writes the tokens to | |||
standard output: | |||
.Bd -literal -offset indent | |||
const wchar_t *seps = L" \et\en"; | |||
wchar_t *last, *tok, text[] = L" \enone\ettwo\et\etthree \en"; | |||
for (tok = wcstok(text, seps, &last); tok != NULL; | |||
tok = wcstok(NULL, seps, &last)) | |||
wprintf(L"%ls\en", tok); | |||
.Ed | |||
.Sh COMPATIBILITY | |||
Some early implementations of | |||
.Fn wcstok | |||
omit the | |||
context pointer argument, | |||
.Fa last , | |||
and maintain state across calls in a static variable like | |||
.Fn strtok | |||
does. | |||
.Sh SEE ALSO | |||
.Xr strtok 3 , | |||
.Xr wcschr 3 , | |||
.Xr wcscspn 3 , | |||
.Xr wcspbrk 3 , | |||
.Xr wcsrchr 3 , | |||
.Xr wcsspn 3 | |||
.Sh STANDARDS | |||
The | |||
.Fn wcstok | |||
function | |||
conforms to | |||
.St -isoC-99 . |
@ -0,0 +1,99 @@ | |||
/* $OpenBSD: wcstok.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wcstok.c,v 1.3 2003/07/10 08:50:48 tshiozak Exp $ */ | |||
/*- | |||
* Copyright (c) 1998 Softweyr LLC. All rights reserved. | |||
* | |||
* strtok_r, from Berkeley strtok | |||
* Oct 13, 1998 by Wes Peters <wes@softweyr.com> | |||
* | |||
* Copyright (c) 1988, 1993 | |||
* The Regents of the University of California. All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notices, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notices, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* 3. All advertising materials mentioning features or use of this software | |||
* must display the following acknowledgement: | |||
* This product includes software developed by Softweyr LLC, the | |||
* University of California, Berkeley, and its contributors. | |||
* 4. Neither the name of the University nor the names of its contributors | |||
* may be used to endorse or promote products derived from this software | |||
* without specific prior written permission. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY SOFTWEYR LLC, THE REGENTS AND CONTRIBUTORS | |||
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A | |||
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SOFTWEYR LLC, THE | |||
* REGENTS, OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED | |||
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | |||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | |||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | |||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
* | |||
* Original version ID: | |||
* FreeBSD: src/lib/libc/string/wcstok.c,v 1.1 2002/09/07 08:16:57 tjr Exp | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wcstok.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <wchar.h> | |||
wchar_t * | |||
wcstok(s, delim, last) | |||
wchar_t * __restrict s; | |||
const wchar_t * __restrict delim; | |||
wchar_t ** __restrict last; | |||
{ | |||
const wchar_t *spanp; | |||
wchar_t c, sc; | |||
wchar_t *tok; | |||
if (s == NULL && (s = *last) == NULL) | |||
return (NULL); | |||
/* | |||
* Skip (span) leading delimiters (s += wcsspn(s, delim), sort of). | |||
*/ | |||
cont: | |||
c = *s++; | |||
for (spanp = delim; (sc = *spanp++) != L'\0';) { | |||
if (c == sc) | |||
goto cont; | |||
} | |||
if (c == L'\0') { /* no non-delimiter characters */ | |||
*last = NULL; | |||
return (NULL); | |||
} | |||
tok = s - 1; | |||
/* | |||
* Scan token (scan for delimiters: s += wcscspn(s, delim), sort of). | |||
* Note that delim must have one NUL; we stop if we see that, too. | |||
*/ | |||
for (;;) { | |||
c = *s++; | |||
spanp = delim; | |||
do { | |||
if ((sc = *spanp++) == c) { | |||
if (c == L'\0') | |||
s = NULL; | |||
else | |||
s[-1] = L'\0'; | |||
*last = s; | |||
return (tok); | |||
} | |||
} while (sc != L'\0'); | |||
} | |||
/* NOTREACHED */ | |||
} |
@ -0,0 +1,5 @@ | |||
/* $OpenBSD: wcswcs.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wcswcs.c,v 1.1 2003/03/05 20:18:17 tshiozak Exp $ */ | |||
#define WCSWCS | |||
#include "wcsstr.c" |
@ -0,0 +1,53 @@ | |||
/* $OpenBSD: wcswidth.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wcswidth.c,v 1.2 2001/01/03 14:29:37 lukem Exp $ */ | |||
/*- | |||
* Copyright (c)1999 Citrus Project, | |||
* All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* | |||
* citrus Id: wcswidth.c,v 1.1 1999/12/29 21:47:45 tshiozak Exp | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wcswidth.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <wchar.h> | |||
int | |||
wcswidth(s, n) | |||
const wchar_t *s; | |||
size_t n; | |||
{ | |||
int w; | |||
w = 0; | |||
while (n && *s) { | |||
w += wcwidth(*s); | |||
s++; | |||
n--; | |||
} | |||
return w; | |||
} |
@ -0,0 +1,141 @@ | |||
.\" $NetBSD: wmemchr.3,v 1.9 2003/09/08 17:54:33 wiz Exp $ | |||
.\" | |||
.\" Copyright (c) 1990, 1991, 1993 | |||
.\" The Regents of the University of California. All rights reserved. | |||
.\" | |||
.\" This code is derived from software contributed to Berkeley by | |||
.\" Chris Torek and the American National Standards Committee X3, | |||
.\" on Information Processing Systems. | |||
.\" | |||
.\" Redistribution and use in source and binary forms, with or without | |||
.\" modification, are permitted provided that the following conditions | |||
.\" are met: | |||
.\" 1. Redistributions of source code must retain the above copyright | |||
.\" notice, this list of conditions and the following disclaimer. | |||
.\" 2. Redistributions in binary form must reproduce the above copyright | |||
.\" notice, this list of conditions and the following disclaimer in the | |||
.\" documentation and/or other materials provided with the distribution. | |||
.\" 3. Neither the name of the University nor the names of its contributors | |||
.\" may be used to endorse or promote products derived from this software | |||
.\" without specific prior written permission. | |||
.\" | |||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | |||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
.\" SUCH DAMAGE. | |||
.\" | |||
.\" from: @(#)strcpy.3 8.1 (Berkeley) 6/4/93 | |||
.\" | |||
.Dd December 22, 2000 | |||
.Dt WMEMCHR 3 | |||
.Os | |||
.Sh NAME | |||
.Nm wmemchr , | |||
.Nm wmemcmp , | |||
.Nm wmemcpy , | |||
.Nm wmemmove , | |||
.Nm wmemset , | |||
.Nm wcscat , | |||
.Nm wcschr , | |||
.Nm wcscmp , | |||
.Nm wcscpy , | |||
.Nm wcscspn , | |||
.Nm wcslcat , | |||
.Nm wcslcpy , | |||
.Nm wcslen , | |||
.Nm wcsncat , | |||
.Nm wcsncmp , | |||
.Nm wcsncpy , | |||
.Nm wcspbrk , | |||
.Nm wcsrchr , | |||
.Nm wcsspn , | |||
.Nm wcsstr | |||
.Nd wide character string manipulation operations | |||
.Sh LIBRARY | |||
.Lb libc | |||
.Sh SYNOPSIS | |||
.In wchar.h | |||
.Ft wchar_t * | |||
.Fn wmemchr "const wchar_t *s" "wchar_t c" "size_t n" | |||
.Ft int | |||
.Fn wmemcmp "const wchar_t *s1" "const wchar_t *s2" "size_t n" | |||
.Ft wchar_t * | |||
.Fn wmemcpy "wchar_t * restrict s1" "const wchar_t * restrict s2" "size_t n" | |||
.Ft wchar_t * | |||
.Fn wmemmove "wchar_t *s1" "const wchar_t *s2" "size_t n" | |||
.Ft wchar_t * | |||
.Fn wmemset "wchar_t *s" "wchar_t c" "size_t n" | |||
.Ft wchar_t * | |||
.Fn wcscat "wchar_t * restrict s1" "const wchar_t * restrict s2" | |||
.Ft wchar_t * | |||
.Fn wcschr "const wchar_t *s" "wchar_t c" | |||
.Ft int | |||
.Fn wcscmp "const wchar_t *s1" "const wchar_t *s2" | |||
.Ft wchar_t * | |||
.Fn wcscpy "wchar_t * restrict s1" "const wchar_t * restrict s2" | |||
.Ft size_t | |||
.Fn wcscspn "const wchar_t *s1" "const wchar_t *s2" | |||
.Ft size_t | |||
.Fn wcslcat "wchar_t *s1" "const wchar_t *s2" "size_t n" | |||
.Ft size_t | |||
.Fn wcslcpy "wchar_t *s1" "const wchar_t *s2" "size_t n" | |||
.Ft size_t | |||
.Fn wcslen "const wchar_t *s" | |||
.Ft wchar_t * | |||
.Fn wcsncat "wchar_t * restrict s1" "const wchar_t * restrict s2" "size_t n" | |||
.Ft int | |||
.Fn wcsncmp "const wchar_t *s1" "const wchar_t * s2" "size_t n" | |||
.Ft wchar_t * | |||
.Fn wcsncpy "wchar_t * restrict s1" "const wchar_t * restrict s2" "size_t n" | |||
.Ft wchar_t * | |||
.Fn wcspbrk "const wchar_t *s1" "const wchar_t *s2" | |||
.Ft wchar_t * | |||
.Fn wcsrchr "const wchar_t *s" "wchar_t c" | |||
.Ft size_t | |||
.Fn wcsspn "const wchar_t *s1" "const wchar_t *s2" | |||
.Ft wchar_t * | |||
.Fn wcsstr "const wchar_t *s1" "const wchar_t *s2" | |||
.Sh DESCRIPTION | |||
The functions implement string manipulation operations over wide character | |||
strings. | |||
For a detailed description, refer to documents for the respective single-byte | |||
counterpart, such as | |||
.Xr memchr 3 . | |||
.Sh SEE ALSO | |||
.Xr memchr 3 , | |||
.Xr memcmp 3 , | |||
.Xr memcpy 3 , | |||
.Xr memmove 3 , | |||
.Xr memset 3 , | |||
.Xr strcat 3 , | |||
.Xr strchr 3 , | |||
.Xr strcmp 3 , | |||
.Xr strcpy 3 , | |||
.Xr strcspn 3 , | |||
.Xr strlcat 3 , | |||
.Xr strlcpy 3 , | |||
.Xr strlen 3 , | |||
.Xr strncat 3 , | |||
.Xr strncmp 3 , | |||
.Xr strncpy 3 , | |||
.Xr strpbrk 3 , | |||
.Xr strrchr 3 , | |||
.Xr strspn 3 , | |||
.Xr strstr 3 | |||
.Sh STANDARDS | |||
These functions conform to | |||
.St -isoC-99 | |||
and were first introduced in | |||
.St -isoC-amd1 , | |||
with the exception of | |||
.Fn wcslcat | |||
and | |||
.Fn wcslcpy , | |||
which are extensions. |
@ -0,0 +1,54 @@ | |||
/* $OpenBSD: wmemchr.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wmemchr.c,v 1.2 2001/01/03 14:29:37 lukem Exp $ */ | |||
/*- | |||
* Copyright (c)1999 Citrus Project, | |||
* All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* | |||
* citrus Id: wmemchr.c,v 1.2 2000/12/20 14:08:31 itojun Exp | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wmemchr.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <wchar.h> | |||
wchar_t * | |||
wmemchr(s, c, n) | |||
const wchar_t *s; | |||
wchar_t c; | |||
size_t n; | |||
{ | |||
size_t i; | |||
for (i = 0; i < n; i++) { | |||
if (*s == c) { | |||
/* LINTED const castaway */ | |||
return (wchar_t *)s; | |||
} | |||
s++; | |||
} | |||
return NULL; | |||
} |
@ -0,0 +1,57 @@ | |||
/* $OpenBSD: wmemcmp.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wmemcmp.c,v 1.3 2003/04/06 18:33:23 tshiozak Exp $ */ | |||
/*- | |||
* Copyright (c)1999 Citrus Project, | |||
* All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* | |||
* citrus Id: wmemcmp.c,v 1.2 2000/12/20 14:08:31 itojun Exp | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wmemcmp.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <wchar.h> | |||
#include "locale/runetype.h" | |||
int | |||
wmemcmp(s1, s2, n) | |||
const wchar_t *s1; | |||
const wchar_t *s2; | |||
size_t n; | |||
{ | |||
size_t i; | |||
for (i = 0; i < n; i++) { | |||
if (*s1 != *s2) { | |||
/* wchar might be unsigned */ | |||
return *(const __nbrune_t *)s1 > | |||
*(const __nbrune_t *)s2 ? 1 : -1; | |||
} | |||
s1++; | |||
s2++; | |||
} | |||
return 0; | |||
} |
@ -0,0 +1,47 @@ | |||
/* $OpenBSD: wmemcpy.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wmemcpy.c,v 1.2 2001/01/03 14:29:37 lukem Exp $ */ | |||
/*- | |||
* Copyright (c)1999 Citrus Project, | |||
* All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* | |||
* citrus Id: wmemcpy.c,v 1.2 2000/12/20 14:08:31 itojun Exp | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wmemcpy.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <string.h> | |||
#include <wchar.h> | |||
wchar_t * | |||
wmemcpy(d, s, n) | |||
wchar_t *d; | |||
const wchar_t *s; | |||
size_t n; | |||
{ | |||
return (wchar_t *)memcpy(d, s, n * sizeof(wchar_t)); | |||
} |
@ -0,0 +1,47 @@ | |||
/* $OpenBSD: wmemmove.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wmemmove.c,v 1.2 2001/01/03 14:29:37 lukem Exp $ */ | |||
/*- | |||
* Copyright (c)1999 Citrus Project, | |||
* All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* | |||
* citrus Id: wmemmove.c,v 1.2 2000/12/20 14:08:31 itojun Exp | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wmemmove.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <string.h> | |||
#include <wchar.h> | |||
wchar_t * | |||
wmemmove(d, s, n) | |||
wchar_t *d; | |||
const wchar_t *s; | |||
size_t n; | |||
{ | |||
return (wchar_t *)memmove(d, s, n * sizeof(wchar_t)); | |||
} |
@ -0,0 +1,53 @@ | |||
/* $OpenBSD: wmemset.c,v 1.1 2005/04/13 16:35:58 espie Exp $ */ | |||
/* $NetBSD: wmemset.c,v 1.2 2001/01/03 14:29:37 lukem Exp $ */ | |||
/*- | |||
* Copyright (c)1999 Citrus Project, | |||
* All rights reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in the | |||
* documentation and/or other materials provided with the distribution. | |||
* | |||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* | |||
* citrus Id: wmemset.c,v 1.2 2000/12/20 14:08:31 itojun Exp | |||
*/ | |||
#if defined(LIBC_SCCS) && !defined(lint) | |||
static char *rcsid = "$OpenBSD: wmemset.c,v 1.1 2005/04/13 16:35:58 espie Exp $"; | |||
#endif /* LIBC_SCCS and not lint */ | |||
#include <wchar.h> | |||
wchar_t * | |||
wmemset(s, c, n) | |||
wchar_t *s; | |||
wchar_t c; | |||
size_t n; | |||
{ | |||
size_t i; | |||
wchar_t *p; | |||
p = (wchar_t *)s; | |||
for (i = 0; i < n; i++) { | |||
*p = c; | |||
p++; | |||
} | |||
return s; | |||
} |