annotate src/portable.h @ 279:49b452b667a6 noffle

[svn] * src/util.c: localTimeDiff() cached its value and recalculated it every hour of clock time, regardless of the time the calculated was based on. This is potentially dangerous at daylight saving changes. So instead use the cached last result only when the new request is to be based on a time in the same hour as the cached result. * src/util.c: Replace the alternate Utl_mktimeGMT() implementation used when timegm() is not available. The previous version, as suggested by the glibc timegm() man page, used setenv() and unsetenv() for changing the environment. These aren't POSIX function, and the POSIX putenv() (a) is tricky to manage if the same var is being constantly update and memory isn't to leak, and (b) provides no way to remove an environment entry. So change to an implementation Wget uses. This should compile on not glibc systems - the previous version failed to build on Solaris.
author bears
date Sun, 17 Nov 2002 15:18:19 +0000
parents c7df2cc65cc1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
55
uh1763
parents:
diff changeset
1 /*
uh1763
parents:
diff changeset
2 portable.h
uh1763
parents:
diff changeset
3
uh1763
parents:
diff changeset
4 Compatibility checks and fallback-functions.
uh1763
parents:
diff changeset
5
74
c7df2cc65cc1 [svn] Introduce UNUSED(x) macro
bears
parents: 55
diff changeset
6 $Id: portable.h 80 2000-05-13 15:36:35Z bears $
55
uh1763
parents:
diff changeset
7 */
uh1763
parents:
diff changeset
8
uh1763
parents:
diff changeset
9 #ifndef PORTABLE_H
uh1763
parents:
diff changeset
10 #define PORTABLE_H /* To stop multiple inclusions. */
uh1763
parents:
diff changeset
11
uh1763
parents:
diff changeset
12
uh1763
parents:
diff changeset
13 #if HAVE_CONFIG_H
uh1763
parents:
diff changeset
14 #include <config.h>
uh1763
parents:
diff changeset
15 #endif
uh1763
parents:
diff changeset
16
uh1763
parents:
diff changeset
17 #if !defined(HAVE_VSNPRINTF) && defined(HAVE___VSNPRINTF)
uh1763
parents:
diff changeset
18 #undef vsnprintf
uh1763
parents:
diff changeset
19 #define vsnprintf __vsnprintf
uh1763
parents:
diff changeset
20 #define HAVE_VSNPRINTF
uh1763
parents:
diff changeset
21 #endif
uh1763
parents:
diff changeset
22
uh1763
parents:
diff changeset
23 /* This is *not* good, because vsprintf() doesn't do any bounds-checking */
uh1763
parents:
diff changeset
24 #if !defined(HAVE_VSNPRINTF) && !defined(HAVE___VSNPRINTF)
uh1763
parents:
diff changeset
25 #define vsnprintf(c, len, fmt, args) vsprintf(c, fmt, args)
uh1763
parents:
diff changeset
26 #define HAVE_VSNPRINTF
uh1763
parents:
diff changeset
27 #endif
uh1763
parents:
diff changeset
28
uh1763
parents:
diff changeset
29 #if !defined(HAVE_SNPRINTF) && defined(HAVE___SNPRINTF)
uh1763
parents:
diff changeset
30 #undef snprintf
uh1763
parents:
diff changeset
31 #define snprintf __snprintf
uh1763
parents:
diff changeset
32 #define HAVE_SNPRINTF
uh1763
parents:
diff changeset
33 #endif
uh1763
parents:
diff changeset
34
74
c7df2cc65cc1 [svn] Introduce UNUSED(x) macro
bears
parents: 55
diff changeset
35 /* Indicate deliberately unused argument. Possibly compiler specific. */
c7df2cc65cc1 [svn] Introduce UNUSED(x) macro
bears
parents: 55
diff changeset
36 #define UNUSED(x) { ( void ) x; }
55
uh1763
parents:
diff changeset
37
uh1763
parents:
diff changeset
38 #endif
uh1763
parents:
diff changeset
39