standards/74751: swab() should be declared in <unistd.h>, not <string.h>

Craig Rodrigues rodrigc at crodrigues.org
Sun Dec 5 20:50:31 PST 2004


The following reply was made to PR standards/74751; it has been noted by GNATS.

From: Craig Rodrigues <rodrigc at crodrigues.org>
To: freebsd-gnats-submit at freebsd.org
Cc:  
Subject: Re: standards/74751: swab() should be declared in <unistd.h>, not <string.h>
Date: Sun, 5 Dec 2004 23:44:20 -0500

 Hi,
 
 This is a more correct patch, to match
 the prototype in SUS.
 At some point this prototype should be removed
 from string.h, but I left it in there, in case
 we want to preserve some backwards compatibility.
 -- 
 Craig Rodrigues        
 rodrigc at crodrigues.org
 
 
 
 --- ./include/string.h.orig	Sun Dec  5 20:24:50 2004
 +++ ./include/string.h	Sun Dec  5 23:25:56 2004
 @@ -108,8 +108,19 @@
  #endif
  size_t	 strxfrm(char * __restrict, const char * __restrict, size_t);
  #if __BSD_VISIBLE
 -void	 swab(const void *, void *, size_t);
 -#endif
 +
 +#ifndef _SWAB_DECLARED
 +#define _SWAB_DECLARED
 +
 +#ifndef _SSIZE_T_DECLARED
 +typedef	__ssize_t	ssize_t;
 +#define	_SSIZE_T_DECLARED
 +#endif /* _SIZE_T_DECLARED */
 +
 +void	 swab(const void * __restrict, void * __restrict, ssize_t);
 +#endif /* _SWAB_DECLARED */
 +
 +#endif /* __BSD_VISIBLE */
  __END_DECLS
  
  #endif /* _STRING_H_ */
 --- ./include/unistd.h.orig	Sun Dec  5 20:29:04 2004
 +++ ./include/unistd.h	Sun Dec  5 20:32:11 2004
 @@ -436,7 +436,12 @@
  int	 setpgrp(pid_t _pid, pid_t _pgrp); /* obsoleted by setpgid() */
  int	 setregid(gid_t, gid_t);
  int	 setreuid(uid_t, uid_t);
 -/* void	 swab(const void * __restrict, void * __restrict, ssize_t); */
 +
 +#ifndef _SWAB_DECLARED
 +#define _SWAB_DECLARED
 +void	 swab(const void * __restrict, void * __restrict, ssize_t);
 +#endif /* _SWAB_DECLARED */
 +
  void	 sync(void);
  useconds_t	 ualarm(useconds_t, useconds_t);
  int	 usleep(useconds_t);
 --- ./lib/libc/string/swab.c.orig	Sun Dec  5 20:21:03 2004
 +++ ./lib/libc/string/swab.c	Sun Dec  5 23:11:39 2004
 @@ -40,10 +40,10 @@
  #include <sys/cdefs.h>
  __FBSDID("$FreeBSD: src/lib/libc/string/swab.c,v 1.5 2002/08/30 20:33:05 robert Exp $");
  
 -#include <string.h>
 +#include <unistd.h>
  
  void
 -swab(const void * __restrict from, void * __restrict to, size_t len)
 +swab(const void * __restrict from, void * __restrict to, ssize_t len)
  {
  	unsigned long temp;
  	int n;
 --- ./lib/libc/string/swab.3.orig	Sun Dec  5 20:22:22 2004
 +++ ./lib/libc/string/swab.3	Sun Dec  5 23:22:00 2004
 @@ -41,9 +41,9 @@
  .Sh LIBRARY
  .Lb libc
  .Sh SYNOPSIS
 -.In string.h
 +.In unistd.h
  .Ft void
 -.Fn swab "const void * restrict src" "void * restrict dst" "size_t len"
 +.Fn swab "const void * restrict src" "void * restrict dst" "ssize_t len"
  .Sh DESCRIPTION
  The function
  .Fn swab


More information about the freebsd-standards mailing list