Browse Source

Improve standards conformance: ecvt(), fcvt(), gcvt(), mktemp(), ttyslot(),

and valloc() are not in the current version, while posix_memalign() mkstemp(),
and mkdtemp() are, and setstate()'s argument has lost a bogus 'const'.
ok millert@ jmc@ espie@ kettenis@; ports build testing by naddy@
OPENBSD_5_2
guenther 12 years ago
parent
commit
085560da45
4 changed files with 48 additions and 22 deletions
  1. +37
    -14
      src/include/stdlib.h
  2. +6
    -3
      src/lib/libc/stdlib/ecvt.3
  3. +3
    -3
      src/lib/libc/stdlib/random.3
  4. +2
    -2
      src/lib/libc/stdlib/random.c

+ 37
- 14
src/include/stdlib.h View File

@ -1,4 +1,4 @@
/* $OpenBSD: stdlib.h,v 1.49 2011/07/03 18:51:01 jsg Exp $ */
/* $OpenBSD: stdlib.h,v 1.50 2012/06/01 01:01:57 guenther Exp $ */
/* $NetBSD: stdlib.h,v 1.25 1995/12/27 21:19:08 jtc Exp $ */ /* $NetBSD: stdlib.h,v 1.25 1995/12/27 21:19:08 jtc Exp $ */
/*- /*-
@ -117,17 +117,13 @@ void *bsearch(const void *, const void *, size_t, size_t,
int (*)(const void *, const void *)); int (*)(const void *, const void *));
void *calloc(size_t, size_t); void *calloc(size_t, size_t);
div_t div(int, int); div_t div(int, int);
char *ecvt(double, int, int *, int *);
__dead void exit(int); __dead void exit(int);
__dead void _Exit(int); __dead void _Exit(int);
char *fcvt(double, int, int *, int *);
void free(void *); void free(void *);
char *gcvt(double, int, char *);
char *getenv(const char *); char *getenv(const char *);
long labs(long); long labs(long);
ldiv_t ldiv(long, long); ldiv_t ldiv(long, long);
void *malloc(size_t); void *malloc(size_t);
int posix_memalign(void **, size_t, size_t);
void qsort(void *, size_t, size_t, int (*)(const void *, const void *)); void qsort(void *, size_t, size_t, int (*)(const void *, const void *));
int rand(void); int rand(void);
void *realloc(void *, size_t); void *realloc(void *, size_t);
@ -151,8 +147,7 @@ size_t wcstombs(char *, const wchar_t *, size_t);
/* /*
* IEEE Std 1003.1c-95, also adopted by X/Open CAE Spec Issue 5 Version 2 * IEEE Std 1003.1c-95, also adopted by X/Open CAE Spec Issue 5 Version 2
*/ */
#if __BSD_VISIBLE || __POSIX_VISIBLE >= 199506 || __XPG_VISIBLE >= 500 || \
defined(_REENTRANT)
#if __BSD_VISIBLE || __POSIX_VISIBLE >= 199506 || defined(_REENTRANT)
int rand_r(unsigned int *); int rand_r(unsigned int *);
#endif #endif
@ -170,6 +165,19 @@ void srand48(long);
int putenv(char *); int putenv(char *);
#endif #endif
/*
* XSI functions marked LEGACY in IEEE Std 1003.1-2001 (POSIX) and
* removed in IEEE Std 1003.1-2008
*/
#if __BSD_VISIBLE || __XPG_VISIBLE < 700
char *ecvt(double, int, int *, int *);
char *fcvt(double, int, int *, int *);
char *gcvt(double, int, char *);
#if __BSD_VISIBLE || __XPG_VISIBLE >= 420
char *mktemp(char *);
#endif
#endif /* __BSD_VISIBLE || __XPG_VISIBLE < 700 */
#if __BSD_VISIBLE || __XPG_VISIBLE >= 420 #if __BSD_VISIBLE || __XPG_VISIBLE >= 420
long a64l(const char *); long a64l(const char *);
char *l64a(long); char *l64a(long);
@ -177,21 +185,29 @@ char *l64a(long);
char *initstate(unsigned int, char *, size_t) char *initstate(unsigned int, char *, size_t)
__attribute__((__bounded__ (__string__,2,3))); __attribute__((__bounded__ (__string__,2,3)));
long random(void); long random(void);
char *setstate(const char *);
char *setstate(char *);
void srandom(unsigned int); void srandom(unsigned int);
int mkstemp(char *);
char *mktemp(char *);
char *realpath(const char *, char *); char *realpath(const char *, char *);
int setkey(const char *); int setkey(const char *);
/*
* XSI functions marked LEGACY in XPG5 and removed in IEEE Std 1003.1-2001
*/
#if __BSD_VISIBLE || __XPG_VISIBLE < 600
int ttyslot(void); int ttyslot(void);
void *valloc(size_t); /* obsoleted by malloc() */ void *valloc(size_t); /* obsoleted by malloc() */
#endif
#endif /* __BSD_VISIBLE || __XPG_VISIBLE >= 420 */ #endif /* __BSD_VISIBLE || __XPG_VISIBLE >= 420 */
/*
* 4.4BSD, then XSI in XPG4.2, then added to POSIX base in IEEE Std 1003.1-2008
*/
#if __BSD_VISIBLE || __XPG_VISIBLE >= 420 || __POSIX_VISIBLE >= 200809
int mkstemp(char *);
#endif
/* /*
* ISO C99 * ISO C99
*/ */
@ -211,11 +227,19 @@ unsigned long long
/* /*
* The Open Group Base Specifications, Issue 6; IEEE Std 1003.1-2001 (POSIX) * The Open Group Base Specifications, Issue 6; IEEE Std 1003.1-2001 (POSIX)
*/ */
#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XPG_VISIBLE >= 600
#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112
int posix_memalign(void **, size_t, size_t);
int setenv(const char *, const char *, int); int setenv(const char *, const char *, int);
int unsetenv(const char *); int unsetenv(const char *);
#endif #endif
/*
* The Open Group Base Specifications, Issue 7; IEEE Std 1003.1-2008 (POSIX)
*/
#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809
char *mkdtemp(char *);
#endif
#if __BSD_VISIBLE #if __BSD_VISIBLE
void *alloca(size_t); void *alloca(size_t);
@ -247,7 +271,6 @@ int getsubopt(char **, char * const *, char **);
extern char *suboptarg; /* getsubopt(3) external variable */ extern char *suboptarg; /* getsubopt(3) external variable */
#endif /* _GETOPT_DEFINED_ */ #endif /* _GETOPT_DEFINED_ */
char *mkdtemp(char *);
int mkstemps(char *, int); int mkstemps(char *, int);
int heapsort(void *, size_t, size_t, int (*)(const void *, const void *)); int heapsort(void *, size_t, size_t, int (*)(const void *, const void *));


+ 6
- 3
src/lib/libc/stdlib/ecvt.3 View File

@ -1,4 +1,4 @@
.\" $OpenBSD: ecvt.3,v 1.9 2010/04/01 17:06:55 jmc Exp $
.\" $OpenBSD: ecvt.3,v 1.10 2012/06/01 01:01:57 guenther Exp $
.\" .\"
.\" Copyright (c) 2002 Todd C. Miller <Todd.Miller@courtesan.com> .\" Copyright (c) 2002 Todd C. Miller <Todd.Miller@courtesan.com>
.\" .\"
@ -18,7 +18,7 @@
.\" Agency (DARPA) and Air Force Research Laboratory, Air Force .\" Agency (DARPA) and Air Force Research Laboratory, Air Force
.\" Materiel Command, USAF, under agreement number F39502-99-1-0512. .\" Materiel Command, USAF, under agreement number F39502-99-1-0512.
.\" .\"
.Dd $Mdocdate: April 1 2010 $
.Dd $Mdocdate: June 1 2012 $
.Dt ECVT 3 .Dt ECVT 3
.Os .Os
.Sh NAME .Sh NAME
@ -148,7 +148,10 @@ The
and and
.Fn gcvt .Fn gcvt
functions conform to functions conform to
.St -p1003.1-2001 .
.St -p1003.1-2001 ;
as of
.St -p1003.1-2008
they are no longer a part of the standard.
.Sh CAVEATS .Sh CAVEATS
The The
.Fn ecvt .Fn ecvt


+ 3
- 3
src/lib/libc/stdlib/random.3 View File

@ -25,9 +25,9 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE. .\" SUCH DAMAGE.
.\" .\"
.\" $OpenBSD: random.3,v 1.19 2007/05/31 19:19:31 jmc Exp $
.\" $OpenBSD: random.3,v 1.20 2012/06/01 01:01:57 guenther Exp $
.\" .\"
.Dd $Mdocdate: May 31 2007 $
.Dd $Mdocdate: June 1 2012 $
.Dt RANDOM 3 .Dt RANDOM 3
.Os .Os
.Sh NAME .Sh NAME
@ -48,7 +48,7 @@
.Ft char * .Ft char *
.Fn initstate "unsigned int seed" "char *state" "size_t n" .Fn initstate "unsigned int seed" "char *state" "size_t n"
.Ft char * .Ft char *
.Fn setstate "const char *state"
.Fn setstate "char *state"
.Sh DESCRIPTION .Sh DESCRIPTION
The The
.Fn random .Fn random


+ 2
- 2
src/lib/libc/stdlib/random.c View File

@ -1,4 +1,4 @@
/* $OpenBSD: random.c,v 1.16 2012/03/21 12:36:49 millert Exp $ */
/* $OpenBSD: random.c,v 1.17 2012/06/01 01:01:57 guenther Exp $ */
/* /*
* Copyright (c) 1983 Regents of the University of California. * Copyright (c) 1983 Regents of the University of California.
* All rights reserved. * All rights reserved.
@ -326,7 +326,7 @@ initstate(u_int seed, char *arg_state, size_t n)
* Returns a pointer to the old state information. * Returns a pointer to the old state information.
*/ */
char * char *
setstate(const char *arg_state)
setstate(char *arg_state)
{ {
int32_t *new_state = (int32_t *)arg_state; int32_t *new_state = (int32_t *)arg_state;
int32_t type = new_state[0] % MAX_TYPES; int32_t type = new_state[0] % MAX_TYPES;


Loading…
Cancel
Save