1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-01 10:06:57 +03:00

handle password file locking.

This commit is contained in:
Ulrich Drepper
1996-08-26 10:28:45 +00:00
parent 4884d0f03c
commit dcf0671d90
19 changed files with 321 additions and 72 deletions

View File

@ -470,27 +470,37 @@ strftime (s, maxsize, format, tp)
case 'z':
{
struct tm tml = *tp;
time_t t = mktime (&tml);
struct tm tmg;
time_t t;
time_t offset = 0;
int diff;
tml = *localtime (&t); /* Canonicalize the local time. */
tmg = *gmtime (&t);
t = __mktime_internal (&tml, __localtime_r, &offset);
/* Compute the difference. */
diff = tml.tm_min - tmg.tm_min;
diff += 60 * (tml.tm_hour - tmg.tm_hour);
if (tml.tm_mon != tmg.tm_mon)
/* Canonicalize the local time. */
if (t == (time_t) -1 || __localtime_r (&t, &tml) == NULL)
/* We didn't managed to get the local time. Assume it
GMT as a reasonable default value. */
diff = 0;
else
{
/* We assume no timezone differs from UTC by more than
+- 23 hours. This should be safe. */
if (tmg.tm_mday == 1)
tml.tm_mday = 0;
else /* tml.tm_mday == 1 */
tmg.tm_mday = 0;
__gmtime_r (&t, &tmg);
/* Compute the difference. */
diff = tml.tm_min - tmg.tm_min;
diff += 60 * (tml.tm_hour - tmg.tm_hour);
if (tml.tm_mon != tmg.tm_mon)
{
/* We assume no timezone differs from UTC by more
than +- 23 hours. This should be safe. */
if (tmg.tm_mday == 1)
tml.tm_mday = 0;
else /* tml.tm_mday == 1 */
tmg.tm_mday = 0;
}
diff += 1440 * (tml.tm_mday - tmg.tm_mday);
}
diff += 1440 * (tml.tm_mday - tmg.tm_mday);
if (diff < 0)
{