Mercurial > cpython-lru_cache-weakref
view Python/pytime.c @ 81257:c256764e2b3f 3.2
Issue #16455: On FreeBSD and Solaris, if the locale is C, the
ASCII/surrogateescape codec is now used, instead of the locale encoding, to
decode the command line arguments. This change fixes inconsistencies with
os.fsencode() and os.fsdecode() because these operating systems announces an
ASCII locale encoding, whereas the ISO-8859-1 encoding is used in practice.
| author | Victor Stinner <victor.stinner@gmail.com> |
|---|---|
| date | Thu, 03 Jan 2013 01:08:58 +0100 |
| parents | c16803bbd790 |
| children | bee7943d38c6 |
line wrap: on
line source
#include "Python.h" #ifdef __APPLE__ #if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_FTIME) /* * _PyTime_gettimeofday falls back to ftime when getttimeofday fails because the latter * might fail on some platforms. This fallback is unwanted on MacOSX because * that makes it impossible to use a binary build on OSX 10.4 on earlier * releases of the OS. Therefore claim we don't support ftime. */ # undef HAVE_FTIME #endif #endif #ifdef HAVE_FTIME #include <sys/timeb.h> #if !defined(MS_WINDOWS) && !defined(PYOS_OS2) extern int ftime(struct timeb *); #endif /* MS_WINDOWS */ #endif /* HAVE_FTIME */ void _PyTime_gettimeofday(_PyTime_timeval *tp) { /* There are three ways to get the time: (1) gettimeofday() -- resolution in microseconds (2) ftime() -- resolution in milliseconds (3) time() -- resolution in seconds In all cases the return value in a timeval struct. Since on some systems (e.g. SCO ODT 3.0) gettimeofday() may fail, so we fall back on ftime() or time(). Note: clock resolution does not imply clock accuracy! */ #ifdef HAVE_GETTIMEOFDAY #ifdef GETTIMEOFDAY_NO_TZ if (gettimeofday(tp) == 0) return; #else /* !GETTIMEOFDAY_NO_TZ */ if (gettimeofday(tp, (struct timezone *)NULL) == 0) return; #endif /* !GETTIMEOFDAY_NO_TZ */ #endif /* !HAVE_GETTIMEOFDAY */ #if defined(HAVE_FTIME) { struct timeb t; ftime(&t); tp->tv_sec = t.time; tp->tv_usec = t.millitm * 1000; } #else /* !HAVE_FTIME */ tp->tv_sec = time(NULL); tp->tv_usec = 0; #endif /* !HAVE_FTIME */ return; } void _PyTime_Init() { /* Do nothing. Needed to force linking. */ }
