summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-04-22 04:45:28 (GMT)
committer Denys Vlasenko <vda.linux@googlemail.com>2010-04-22 04:45:28 (GMT)
commit5f94346f7387cb5e33cf202dd3306f062bb22052 (patch)
tree5983e762c1be88c498115c64920eec2606f4cf39
parent238c83bd8237e482911b8272e7f420060f5e7714 (diff)
downloadbusybox-5f94346f7387cb5e33cf202dd3306f062bb22052.tar.gz
busybox-5f94346f7387cb5e33cf202dd3306f062bb22052.tar.bz2
date: support -d @SECONDS_SINCE_1970
function old new delta parse_datestr 647 721 +74 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--libbb/time.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/libbb/time.c b/libbb/time.c
index 5cd0426..8d176e5 100644
--- a/libbb/time.c
+++ b/libbb/time.c
@@ -68,6 +68,16 @@ void FAST_FUNC parse_datestr(const char *date_str, struct tm *ptm)
end = '\0';
/* else end != NUL and we error out */
}
+ } else if (date_str[0] == '@') {
+ time_t t = bb_strtol(date_str + 1, NULL, 10);
+ if (!errno) {
+ struct tm *lt = localtime(&t);
+ if (lt) {
+ *ptm = *lt;
+ return;
+ }
+ }
+ end = '1';
} else {
/* Googled the following on an old date manpage:
*