Date: Fri, 8 Jan 2010 03:01:32 +1100 (EST) From: Bruce Evans <brde@optusnet.com.au> To: Garrett Wollman <wollman@csail.mit.edu> Cc: freebsd-standards@freebsd.org Subject: Re: standards/142255: scandir prototype in dirent.h isn't compliant with POSIX 2008 Message-ID: <20100108025519.U56232@delplex.bde.org> In-Reply-To: <19269.8963.733084.213387@khavrinen.csail.mit.edu> References: <201001031500.o03F0BO3042964@freefall.freebsd.org> <19269.8963.733084.213387@khavrinen.csail.mit.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 6 Jan 2010, Garrett Wollman wrote: > <<On Sun, 3 Jan 2010 15:00:11 GMT, Kostik Belousov <kostikbel@gmail.com> said: > I believe someone at least complained about the Standard's broken > prototypes, subsequent to the approval of the current standard, > although I don't recall what the outcome was. There's no trace of it in the opengroup man page for alphasort+scandir most easily found by google (not clear how recent or authoritative this is), and I couldn't find the complaint either. >> @@ -95,7 +95,7 @@ typedef void * DIR; >> __BEGIN_DECLS >> #if __BSD_VISIBLE >> DIR *__opendir2(const char *, int); >> -int alphasort(const void *, const void *); >> +int alphasort(const struct dirent **, const struct dirent **); >> int getdents(int, char *, int); >> int getdirentries(int, char *, int, long *); >> #endif > > If we're going to break the historical 4.4BSD prototype to match the > broken one in SUSv4, the declaration should be moved to an appropriate > section of the header file. (I haven't checked -- is this interface > in the base standard or the XSI option? If the latter we should just > ignore it -- we should not be trying to implement XSI's mistakes.) This is done. What do you think about the single `const' in the broken prototypes? For fts, you preserved the struct pointer part of the brokenness but added a second `const'. I suppose the Standard intentionally left out the second `const' for the same reasons as for execve() and strtol(). Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100108025519.U56232>