projects
/
gnulib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
NEWS.stable: log cherry-pick [e446f25]->[c092018] relocatable-shell: Update suggested...
[gnulib.git]
/
lib
/
posixtm.c
diff --git
a/lib/posixtm.c
b/lib/posixtm.c
index
b94c341
..
2fe81ab
100644
(file)
--- a/
lib/posixtm.c
+++ b/
lib/posixtm.c
@@
-1,7
+1,6
@@
/* Parse dates for touch and date.
/* Parse dates for touch and date.
- Copyright (C) 1989, 1990, 1991, 1998, 2000, 2001, 2002, 2003, 2004,
- 2005, 2006, 2007, 2009 Free Software Foundation Inc.
+ Copyright (C) 1989-1991, 1998, 2000-2014 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
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
@@
-38,7
+37,7
@@
- It's typically faster.
POSIX says that only '0' through '9' are digits. Prefer ISDIGIT to
isdigit unless it's important to use the locale's definition
- It's typically faster.
POSIX says that only '0' through '9' are digits. Prefer ISDIGIT to
isdigit unless it's important to use the locale's definition
- of
`digit'
even when the host does not conform to POSIX. */
+ of
"digit"
even when the host does not conform to POSIX. */
#define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9)
/*
#define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9)
/*
@@
-66,33
+65,33
@@
year (struct tm *tm, const int *digit_pair, size_t n, unsigned int syntax_bits)
case 1:
tm->tm_year = *digit_pair;
/* Deduce the century based on the year.
case 1:
tm->tm_year = *digit_pair;
/* Deduce the century based on the year.
- POSIX requires that 00-68 be interpreted as 2000-2068,
- and that 69-99 be interpreted as 1969-1999. */
+
POSIX requires that 00-68 be interpreted as 2000-2068,
+
and that 69-99 be interpreted as 1969-1999. */
if (digit_pair[0] <= 68)
if (digit_pair[0] <= 68)
- {
- if (syntax_bits & PDS_PRE_2000)
- return 1;
- tm->tm_year += 100;
- }
+
{
+
if (syntax_bits & PDS_PRE_2000)
+
return 1;
+
tm->tm_year += 100;
+
}
break;
case 2:
if (! (syntax_bits & PDS_CENTURY))
break;
case 2:
if (! (syntax_bits & PDS_CENTURY))
- return 1;
+
return 1;
tm->tm_year = digit_pair[0] * 100 + digit_pair[1] - 1900;
break;
case 0:
{
tm->tm_year = digit_pair[0] * 100 + digit_pair[1] - 1900;
break;
case 0:
{
- time_t now;
- struct tm *tmp;
-
- /* Use current year. */
- time (&now);
- tmp = localtime (&now);
- if (! tmp)
- return 1;
- tm->tm_year = tmp->tm_year;
+
time_t now;
+
struct tm *tmp;
+
+
/* Use current year. */
+
time (&now);
+
tmp = localtime (&now);
+
if (! tmp)
+
return 1;
+
tm->tm_year = tmp->tm_year;
}
break;
}
break;
@@
-113,8
+112,8
@@
posix_time_parse (struct tm *tm, const char *s, unsigned int syntax_bits)
size_t s_len = strlen (s);
size_t len = (((syntax_bits & PDS_SECONDS) && (dot = strchr (s, '.')))
size_t s_len = strlen (s);
size_t len = (((syntax_bits & PDS_SECONDS) && (dot = strchr (s, '.')))
- ? (size_t) (dot - s)
- : s_len);
+
? (size_t) (dot - s)
+
: s_len);
if (len != 8 && len != 10 && len != 12)
return 1;
if (len != 8 && len != 10 && len != 12)
return 1;
@@
-122,10
+121,10
@@
posix_time_parse (struct tm *tm, const char *s, unsigned int syntax_bits)
if (dot)
{
if (!(syntax_bits & PDS_SECONDS))
if (dot)
{
if (!(syntax_bits & PDS_SECONDS))
- return 1;
+
return 1;
if (s_len - len != 3)
if (s_len - len != 3)
- return 1;
+
return 1;
}
for (i = 0; i < len; i++)
}
for (i = 0; i < len; i++)
@@
-140,12
+139,12
@@
posix_time_parse (struct tm *tm, const char *s, unsigned int syntax_bits)
if (syntax_bits & PDS_LEADING_YEAR)
{
if (year (tm, p, len - 4, syntax_bits))
if (syntax_bits & PDS_LEADING_YEAR)
{
if (year (tm, p, len - 4, syntax_bits))
- return 1;
+
return 1;
p += len - 4;
len = 4;
}
p += len - 4;
len = 4;
}
- /* Handle 8 digits worth of
`
MMDDhhmm'. */
+ /* Handle 8 digits worth of
'
MMDDhhmm'. */
tm->tm_mon = *p++ - 1;
tm->tm_mday = *p++;
tm->tm_hour = *p++;
tm->tm_mon = *p++ - 1;
tm->tm_mday = *p++;
tm->tm_hour = *p++;
@@
-156,7
+155,7
@@
posix_time_parse (struct tm *tm, const char *s, unsigned int syntax_bits)
if (syntax_bits & PDS_TRAILING_YEAR)
{
if (year (tm, p, len, syntax_bits))
if (syntax_bits & PDS_TRAILING_YEAR)
{
if (year (tm, p, len, syntax_bits))
- return 1;
+
return 1;
}
/* Handle seconds. */
}
/* Handle seconds. */
@@
-170,7
+169,7
@@
posix_time_parse (struct tm *tm, const char *s, unsigned int syntax_bits)
++dot;
if (!ISDIGIT (dot[0]) || !ISDIGIT (dot[1]))
++dot;
if (!ISDIGIT (dot[0]) || !ISDIGIT (dot[1]))
- return 1;
+
return 1;
seconds = 10 * (dot[0] - '0') + dot[1] - '0';
tm->tm_sec = seconds;
seconds = 10 * (dot[0] - '0') + dot[1] - '0';
tm->tm_sec = seconds;
@@
-201,10
+200,10
@@
posixtime (time_t *p, const char *s, unsigned int syntax_bits)
else
{
/* mktime returns -1 for errors, but -1 is also a valid time_t
else
{
/* mktime returns -1 for errors, but -1 is also a valid time_t
- value. Check whether an error really occurred. */
+
value. Check whether an error really occurred. */
tm = localtime (&t);
if (! tm)
tm = localtime (&t);
if (! tm)
- return false;
+
return false;
}
/* Reject dates like "September 31" and times like "25:61".
}
/* Reject dates like "September 31" and times like "25:61".