(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; | |||||
} |