Originally committed as revision 2204 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.5
| @@ -574,6 +574,16 @@ if $cc -o $TMPE $TMPC 2> /dev/null ; then | |||||
| strptime=yes | strptime=yes | ||||
| fi | fi | ||||
| cat > $TMPC << EOF | |||||
| #include <time.h> | |||||
| int main( void ) { localtime_r(NULL, NULL); } | |||||
| EOF | |||||
| localtime_r=no | |||||
| if $cc -o $TMPE $TMPC 2> /dev/null ; then | |||||
| localtime_r=yes | |||||
| fi | |||||
| if test "$zlib" = "yes"; then | if test "$zlib" = "yes"; then | ||||
| # check for zlib - mmu_man | # check for zlib - mmu_man | ||||
| cat > $TMPC << EOF | cat > $TMPC << EOF | ||||
| @@ -920,6 +930,11 @@ if test "$strptime" = "yes" ; then | |||||
| else | else | ||||
| echo "BUILD_STRPTIME=yes" >> config.mak | echo "BUILD_STRPTIME=yes" >> config.mak | ||||
| fi | fi | ||||
| if test "$localtime_r" = "yes" ; then | |||||
| echo "#define HAVE_LOCALTIME_R 1" >> $TMPH | |||||
| else | |||||
| echo "BUILD_LOCALTIME_R=yes" >> config.mak | |||||
| fi | |||||
| if test "$imlib2" = "yes" ; then | if test "$imlib2" = "yes" ; then | ||||
| echo "HAVE_IMLIB2=yes" >> config.mak | echo "HAVE_IMLIB2=yes" >> config.mak | ||||
| fi | fi | ||||
| @@ -34,6 +34,10 @@ ifeq ($(BUILD_STRPTIME),yes) | |||||
| OBJS+= strptime.o | OBJS+= strptime.o | ||||
| endif | endif | ||||
| ifeq ($(BUILD_LOCALTIME_R),yes) | |||||
| OBJS+= localtime_r.o | |||||
| endif | |||||
| ifeq ($(CONFIG_VIDEO4LINUX),yes) | ifeq ($(CONFIG_VIDEO4LINUX),yes) | ||||
| OBJS+= grab.o | OBJS+= grab.o | ||||
| endif | endif | ||||
| @@ -21,6 +21,7 @@ | |||||
| */ | */ | ||||
| #include "avformat.h" | #include "avformat.h" | ||||
| #include "dvcore.h" | #include "dvcore.h" | ||||
| #include "localtime_r.h" | |||||
| /* | /* | ||||
| * The reason why the following three big ugly looking tables are | * The reason why the following three big ugly looking tables are | ||||
| @@ -0,0 +1,43 @@ | |||||
| /* Convert a string representation of time to a time value. | |||||
| Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. | |||||
| This file is part of the GNU C Library. | |||||
| Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. | |||||
| The GNU C Library is free software; you can redistribute it and/or | |||||
| modify it under the terms of the GNU Library General Public License as | |||||
| published by the Free Software Foundation; either version 2 of the | |||||
| License, or (at your option) any later version. | |||||
| The GNU C Library 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 | |||||
| Library General Public License for more details. | |||||
| You should have received a copy of the GNU Library General Public | |||||
| License along with the GNU C Library; see the file COPYING.LIB. If not, | |||||
| write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |||||
| Boston, MA 02111-1307, USA. */ | |||||
| #ifdef HAVE_CONFIG_H | |||||
| # include "config.h" | |||||
| #endif | |||||
| #include "localtime_r.h" | |||||
| #if !defined(HAVE_LOCALTIME_R) | |||||
| /* Approximate localtime_r as best we can in its absence. */ | |||||
| #include <time.h> | |||||
| struct tm * | |||||
| localtime_r (t, tp) | |||||
| const time_t *t; | |||||
| struct tm *tp; | |||||
| { | |||||
| struct tm *l = localtime (t); | |||||
| if (! l) | |||||
| return 0; | |||||
| *tp = *l; | |||||
| return tp; | |||||
| } | |||||
| #endif /* !defined(HAVE_LOCALTIME_R) */ | |||||
| @@ -0,0 +1,42 @@ | |||||
| /* strptime.h | |||||
| * | |||||
| * $Id$ | |||||
| * | |||||
| * Ethereal - Network traffic analyzer | |||||
| * By Gerald Combs <gerald@ethereal.com> | |||||
| * Copyright 1998 Gerald Combs | |||||
| * | |||||
| * 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 | |||||
| * of the License, 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. | |||||
| */ | |||||
| #ifndef __LOCALTIME_R_H__ | |||||
| #define __LOCALTIME_R_H__ | |||||
| /* | |||||
| * Version of "localtime_r()", for the benefit of OSes that don't have it. | |||||
| */ | |||||
| #ifdef HAVE_CONFIG_H | |||||
| # include "config.h" | |||||
| #endif | |||||
| #if !defined(HAVE_LOCALTIME_R) | |||||
| #include <time.h> | |||||
| /* Approximate localtime_r as best we can in its absence. */ | |||||
| # define localtime_r my_localtime_r | |||||
| extern struct tm *localtime_r(const time_t *, struct tm *); | |||||
| #endif | |||||
| #endif | |||||
| @@ -37,6 +37,7 @@ | |||||
| #endif | #endif | ||||
| #include "strptime.h" | #include "strptime.h" | ||||
| #include "localtime_r.h" | |||||
| #ifndef __P | #ifndef __P | ||||
| # if defined (__GNUC__) || (defined (__STDC__) && __STDC__) | # if defined (__GNUC__) || (defined (__STDC__) && __STDC__) | ||||
| @@ -46,28 +47,6 @@ | |||||
| # endif /* GCC. */ | # endif /* GCC. */ | ||||
| #endif /* Not __P. */ | #endif /* Not __P. */ | ||||
| #if ! HAVE_LOCALTIME_R && ! defined localtime_r | |||||
| # ifdef _LIBC | |||||
| # define localtime_r __localtime_r | |||||
| # else | |||||
| /* Approximate localtime_r as best we can in its absence. */ | |||||
| # define localtime_r my_localtime_r | |||||
| static struct tm *localtime_r __P ((const time_t *, struct tm *)); | |||||
| static struct tm * | |||||
| localtime_r (t, tp) | |||||
| const time_t *t; | |||||
| struct tm *tp; | |||||
| { | |||||
| struct tm *l = localtime (t); | |||||
| if (! l) | |||||
| return 0; | |||||
| *tp = *l; | |||||
| return tp; | |||||
| } | |||||
| # endif /* ! _LIBC */ | |||||
| #endif /* ! HAVE_LOCALTIME_R && ! defined (localtime_r) */ | |||||
| #define match_char(ch1, ch2) if (ch1 != ch2) return NULL | #define match_char(ch1, ch2) if (ch1 != ch2) return NULL | ||||
| #if defined __GNUC__ && __GNUC__ >= 2 | #if defined __GNUC__ && __GNUC__ >= 2 | ||||
| # define match_string(cs1, s2) \ | # define match_string(cs1, s2) \ | ||||