Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 31 Mar 2002 15:21:57 +1000 (EST)
From:      "Tim J. Robbins" <tim@robbins.dropbear.id.au>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   standards/36559: XSI <strings.h> is incorrect
Message-ID:  <200203310521.g2V5LvFr003712@treetop.robbins.dropbear.id.au>

next in thread | raw e-mail | index | archive | help

>Number:         36559
>Category:       standards
>Synopsis:       XSI <strings.h> is incorrect
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-standards
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Mar 30 21:20:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Tim J. Robbins
>Release:        FreeBSD 4.5-STABLE i386
>Organization:
>Environment:
System: FreeBSD treetop.robbins.dropbear.id.au 4.5-STABLE FreeBSD 4.5-STABLE #2: Sat Mar 30 20:10:51 EST 2002 tim@treetop.robbins.dropbear.id.au:/usr/obj/usr/src/sys/GENERIC i386


	
>Description:
<strings.h> is effectively an alias for <string.h>, which is not what the
P1003.1-2001 standard asks for (strings.h is an XSI extension).
>How-To-Repeat:

strings.h shouldn't define NULL, for example:

#include <strings.h>

int
main(void)
{
	int NULL;
	NULL = 0;
	return (0);
}

>Fix:

Here is a proper <strings.h> header:

/*
 * This file is in the public domain.
 *
 * $FreeBSD$
 */

#ifndef _STRINGS_H_
#define _STRINGS_H_

#include <sys/cdefs.h>
#include <machine/ansi.h>

#ifdef	_BSD_SIZE_T_
typedef	_BSD_SIZE_T_	size_t;
#undef	_BSD_SIZE_T_
#endif

__BEGIN_DECLS
int	 bcmp(const void *, const void *, size_t);
void	 bcopy(const void *, void *, size_t);
void	 bzero(void *, size_t);
int	 ffs(int);
char	*index(const char *, int);
char	*rindex(const char *, int);
int	 strcasecmp(const char *, const char *);
int	 strncasecmp(const char *, const char *, size_t);
__END_DECLS

/*
 * Previous versions of <strings.h> included <string.h>.
 */
#if !defined(_XOPEN_SOURCE) || _XOPEN_SOURCE < 420L
#include <string.h>
#endif

#endif /* _STRINGS_H_ */
>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-standards" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200203310521.g2V5LvFr003712>