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