Date: Fri, 30 May 2014 01:09:07 +0000 (UTC) From: "Pedro F. Giffuni" <pfg@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r266865 - in head: include include/xlocale lib/libc/string Message-ID: <201405300109.s4U197Ox028750@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: pfg Date: Fri May 30 01:09:07 2014 New Revision: 266865 URL: http://svnweb.freebsd.org/changeset/base/266865 Log: Fix strcasecmp_l() and strncasecmp_l() POSIX 2008 compliance. POSIX.1-2008 specifies that those two functions should be declared by including <strings.h>, not <string.h> (the latter only has strcoll_l() and strxfrm_l()): http://pubs.opengroup.org/onlinepubs/9699919799/functions/strcasecmp.html Obtained from: DragonFlyBSD Reviewed by: theraven MFC after: 2 weeks Added: head/include/xlocale/_strings.h - copied, changed from r266827, head/include/xlocale/_string.h Modified: head/include/strings.h head/include/xlocale/Makefile head/include/xlocale/_string.h head/lib/libc/string/strcasecmp.3 Modified: head/include/strings.h ============================================================================== --- head/include/strings.h Fri May 30 00:12:25 2014 (r266864) +++ head/include/strings.h Fri May 30 01:09:07 2014 (r266865) @@ -59,6 +59,10 @@ char *rindex(const char *, int) __pure; #endif int strcasecmp(const char *, const char *) __pure; int strncasecmp(const char *, const char *, size_t) __pure; + +#if __POSIX_VISIBLE >= 200809 || defined(_XLOCALE_H_) +#include <xlocale/_strings.h> +#endif __END_DECLS #endif /* _STRINGS_H_ */ Modified: head/include/xlocale/Makefile ============================================================================== --- head/include/xlocale/Makefile Fri May 30 00:12:25 2014 (r266864) +++ head/include/xlocale/Makefile Fri May 30 01:09:07 2014 (r266865) @@ -2,7 +2,7 @@ NO_OBJ= INCS= _ctype.h _inttypes.h _langinfo.h _locale.h _monetary.h _stdio.h\ - _stdlib.h _string.h _time.h _uchar.h _wchar.h + _stdlib.h _string.h _strings.h _time.h _uchar.h _wchar.h INCSDIR=${INCLUDEDIR}/xlocale .include <bsd.prog.mk> Modified: head/include/xlocale/_string.h ============================================================================== --- head/include/xlocale/_string.h Fri May 30 00:12:25 2014 (r266864) +++ head/include/xlocale/_string.h Fri May 30 01:09:07 2014 (r266865) @@ -53,9 +53,7 @@ size_t strxfrm_l(char *, const char *, #ifdef _XLOCALE_H_ #ifndef _XLOCALE_STRING2_H #define _XLOCALE_STRING2_H -int strcasecmp_l(const char *, const char *, locale_t); char *strcasestr_l(const char *, const char *, locale_t); -int strncasecmp_l(const char *, const char *, size_t, locale_t); #endif /* _XLOCALE_STRING2_H */ #endif /* _XLOCALE_H_ */ Copied and modified: head/include/xlocale/_strings.h (from r266827, head/include/xlocale/_string.h) ============================================================================== --- head/include/xlocale/_string.h Thu May 29 01:42:22 2014 (r266827, copy source) +++ head/include/xlocale/_strings.h Fri May 30 01:09:07 2014 (r266865) @@ -32,30 +32,17 @@ typedef struct _xlocale *locale_t; #endif /* - * This file is included from both string.h and xlocale.h. We need to expose + * This file is included from both strings.h and xlocale.h. We need to expose * the declarations unconditionally if we are included from xlocale.h, but only * if we are in POSIX2008 mode if included from string.h. */ -#ifndef _XLOCALE_STRING1_H -#define _XLOCALE_STRING1_H +#ifndef _XLOCALE_STRINGS1_H +#define _XLOCALE_STRINGS1_H /* * POSIX2008 functions */ -int strcoll_l(const char *, const char *, locale_t); -size_t strxfrm_l(char *, const char *, size_t, locale_t); -#endif /* _XLOCALE_STRING1_H */ - -/* - * xlocale extensions - */ -#ifdef _XLOCALE_H_ -#ifndef _XLOCALE_STRING2_H -#define _XLOCALE_STRING2_H int strcasecmp_l(const char *, const char *, locale_t); -char *strcasestr_l(const char *, const char *, locale_t); int strncasecmp_l(const char *, const char *, size_t, locale_t); - -#endif /* _XLOCALE_STRING2_H */ -#endif /* _XLOCALE_H_ */ +#endif /* _XLOCALE_STRINGS1_H */ Modified: head/lib/libc/string/strcasecmp.3 ============================================================================== --- head/lib/libc/string/strcasecmp.3 Fri May 30 00:12:25 2014 (r266864) +++ head/lib/libc/string/strcasecmp.3 Fri May 30 01:09:07 2014 (r266865) @@ -30,7 +30,7 @@ .\" @(#)strcasecmp.3 8.1 (Berkeley) 6/9/93 .\" $FreeBSD$ .\" -.Dd June 9, 1993 +.Dd May 29, 2014 .Dt STRCASECMP 3 .Os .Sh NAME @@ -45,7 +45,7 @@ .Fn strcasecmp "const char *s1" "const char *s2" .Ft int .Fn strncasecmp "const char *s1" "const char *s2" "size_t len" -.In string.h +.In strings.h .In xlocale.h .Ft int .Fn strcasecmp_l "const char *s1" "const char *s2" "locale_t loc"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201405300109.s4U197Ox028750>