Mercurial > hg > octave-lyh > gnulib-hg
changeset 3334:d13cd36d8756
*** empty log message ***
author | Jim Meyering <jim@meyering.net> |
---|---|
date | Sun, 12 Aug 2001 08:31:50 +0000 |
parents | 9d246221b832 |
children | 6d0b3caa4168 |
files | lib/ChangeLog lib/gettimeofday.c lib/gtod.h m4/ChangeLog |
diffstat | 4 files changed, 107 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,9 @@ +2001-08-12 Jim Meyering <meyering@lucent.com> + + * gettimeofday.c: New file. + * gtod.h: New file. + * Makefile.am (libfetish_a_SOURCES): Add gtod.h. + 2001-08-04 Jim Meyering <meyering@lucent.com> * error.h (__attribute__): Remove `|| __STRICT_ANSI__' from #if stmt,
new file mode 100644 --- /dev/null +++ b/lib/gettimeofday.c @@ -0,0 +1,71 @@ +/* Work around the bug in some systems whereby gettimeofday clobbers the + static buffer that localtime uses for it's return value. The gettimeofday + function from Mac OS X 10.0.4, i.e. Darwin 1.3.7 has this problem. + Copyright (C) 2001 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +/* written by Jim Meyering */ + +#include <config.h> + +/* Disable the definition of gettimeofday (from config.h) so we can use + the library version. */ +#undef gettimeofday + +#include <sys/types.h> + +#if TIME_WITH_SYS_TIME +# include <sys/time.h> +# include <time.h> +#else +# if HAVE_SYS_TIME_H +# include <sys/time.h> +# else +# include <time.h> +# endif +#endif + +#include <stdlib.h> +#include "gtod.h" + +static struct tm *localtime_buffer_addr; + +void +GTOD_init (void) +{ + time_t t = 0; + localtime_buffer_addr = localtime (&t); +} + +/* This is a wrapper for gettimeofday. It is used only on systems for which + gettimeofday clobbers the static buffer used for localtime's result. + + Save and restore the contents of the buffer used for localtime's result + around the call to gettimeofday. */ + +int +rpl_gettimeofday (struct timeval *tv, struct timezone *tz) +{ + struct tm save; + if (! localtime_buffer_addr) + abort (); + + save = *localtime_buffer_addr; + result = gettimeofday (tv, tz); + *localtime_buffer_addr = save; + + return result; +}
new file mode 100644 --- /dev/null +++ b/lib/gtod.h @@ -0,0 +1,21 @@ +#ifndef GTOD_H +# define GTOD_H 1 + +# ifndef PARAMS +# if defined PROTOTYPES || (defined __STDC__ && __STDC__) +# define PARAMS(Args) Args +# else +# define PARAMS(Args) () +# endif +# endif + +void GTOD_init PARAMS ((void)); + +/* This is a no-op on compliant systems. */ +# if GETTIMEOFDAY_CLOBBERS_LOCALTIME_BUFFER +# define GETTIMEOFDAY_INIT() GTOD_init () +# else +# define GETTIMEOFDAY_INIT() /* empty */ +# endif + +#endif
--- a/m4/ChangeLog +++ b/m4/ChangeLog @@ -34,13 +34,16 @@ * getline.m4 (AM_FUNC_GETLINE): Don't bother checking for string.h any more. - * progtest.m4 (AM_PATH_PROG_WITH_TEST): - Output "no" only if $1 isn't $4. + * progtest.m4 (AM_PATH_PROG_WITH_TEST): If not found, print "no", + not the default value. - * mbswidth.m4 (jm_PREREQ_MBSWIDTH): - No longer requires AM_C_PROTOTYPES. - Check for iswcntrl, mbsinit. Use AC_TRY_COMPILE, not AC_CHECK_DECLS, - for portability to Autoconf 2.13. + 2001-06-25 Bruno Haible <haible@clisp.cons.org> + * mbswidth.m4 (jm_PREREQ_MBSWIDTH): Don't require AM_C_PROTOTYPES. + Also check for mbsinit. Needed for SCO 3.2v5.0.2. + Also include <string.h>; this is where AIX 3.2.5 declares wcwidth. + Also check for iswcntrl, used for wcwidth fallback. + Use AC_TRY_COMPILE to emulate AC_CHECK_DECLS, for portability + to Autoconf 2.13. 2001-08-03 Jim Meyering <meyering@lucent.com> @@ -57,8 +60,6 @@ * Makefile.am.in (Makefile.am): Remove most of the unlocked-io.h stuff. Now it's in ../Makefile.cfg. - * gettimeofday.m4: New file. - 2001-07-04 Jim Meyering <meyering@lucent.com> * Makefile.am.in (glibc-io.struct): New target. Rework the code