projects
/
platform
/
upstream
/
toybox.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
9588d28
)
Bugfix from Ashwini Sharma: Z timezone required by posix for touch but not for libc...
author
Rob Landley
<rob@landley.net>
Thu, 2 Oct 2014 00:57:34 +0000
(19:57 -0500)
committer
Rob Landley
<rob@landley.net>
Thu, 2 Oct 2014 00:57:34 +0000
(19:57 -0500)
toys/posix/touch.c
patch
|
blob
|
history
diff --git
a/toys/posix/touch.c
b/toys/posix/touch.c
index
0e0677e
..
71ddc43
100644
(file)
--- a/
toys/posix/touch.c
+++ b/
toys/posix/touch.c
@@
-36,7
+36,7
@@
int fetch(char *file, struct timeval *tv, unsigned flags)
{
struct stat st;
- if (stat(
TT.
file, &st)) return 1;
+ if (stat(file, &st)) return 1;
if (flags & FLAG_a) {
tv[0].tv_sec = st.st_atime;
@@
-73,6
+73,12
@@
void touch_main(void)
date = TT.date;
i = strlen(date);
if (i) {
+ // Trailing Z means UTC timezone, don't expect libc to know this.
+ if (toupper(date[i-1])=='Z') {
+ date[i-1] = 0;
+ setenv("TZ", "UTC0", 1);
+ localtime_r(&(tv->tv_sec), &tm);
+ }
s = strptime(date, "%Y-%m-%dT%T", &tm);
if (s && *s=='.') {
sscanf(s, ".%d%n", &i, &len);