diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2013-03-29 12:30:33 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2013-03-29 12:30:33 +0100 |
commit | 8f2cb7ab26b9c720c24cdeffb624bfe0c2352353 (patch) | |
tree | 8d76825f24632d338118919b0553f542fdd3a8aa /libbb/time.c | |
parent | 6c852bfcadd78f53ec7a5f35882636a2a4a66eb0 (diff) | |
download | busybox-w32-8f2cb7ab26b9c720c24cdeffb624bfe0c2352353.tar.gz busybox-w32-8f2cb7ab26b9c720c24cdeffb624bfe0c2352353.tar.bz2 busybox-w32-8f2cb7ab26b9c720c24cdeffb624bfe0c2352353.zip |
libbb: introduce and use strftime_[YYYYMMDD]HHMMSS()
function old new delta
strftime_fmt - 53 +53
strftime_YYYYMMDDHHMMSS - 12 +12
strftime_HHMMSS - 12 +12
human_time 44 43 -1
fmtstr_t 9 - -9
step_time 361 345 -16
watch_main 261 232 -29
------------------------------------------------------------------------------
(add/remove: 3/1 grow/shrink: 0/3 up/down: 77/-55) Total: 22 bytes
text data bss dec hex filename
919203 932 17692 937827 e4f63 busybox_old
919209 932 17692 937833 e4f69 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'libbb/time.c')
-rw-r--r-- | libbb/time.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/libbb/time.c b/libbb/time.c index e2b938471..57e14b66c 100644 --- a/libbb/time.c +++ b/libbb/time.c | |||
@@ -187,6 +187,27 @@ time_t FAST_FUNC validate_tm_time(const char *date_str, struct tm *ptm) | |||
187 | return t; | 187 | return t; |
188 | } | 188 | } |
189 | 189 | ||
190 | static char* strftime_fmt(char *buf, unsigned len, time_t *tp, const char *fmt) | ||
191 | { | ||
192 | time_t t; | ||
193 | if (!tp) { | ||
194 | tp = &t; | ||
195 | time(tp); | ||
196 | } | ||
197 | /* Returns pointer to NUL */ | ||
198 | return buf + strftime(buf, len, fmt, localtime(tp)); | ||
199 | } | ||
200 | |||
201 | char* FAST_FUNC strftime_HHMMSS(char *buf, unsigned len, time_t *tp) | ||
202 | { | ||
203 | return strftime_fmt(buf, len, tp, "%H:%M:%S"); | ||
204 | } | ||
205 | |||
206 | char* FAST_FUNC strftime_YYYYMMDDHHMMSS(char *buf, unsigned len, time_t *tp) | ||
207 | { | ||
208 | return strftime_fmt(buf, len, tp, "%Y-%m-%d %H:%M:%S"); | ||
209 | } | ||
210 | |||
190 | #if ENABLE_MONOTONIC_SYSCALL | 211 | #if ENABLE_MONOTONIC_SYSCALL |
191 | 212 | ||
192 | #include <sys/syscall.h> | 213 | #include <sys/syscall.h> |