busybox: change the date -k patch to be more portable
Not all libcs have support for tm_gmtoff which is only available for BSD compatibility, and guarded with __USE_BSD defines, use __tm_gmtoff otherwise. Signed-off-by: Florian Fainelli <florian@openwrt.org> SVN-Revision: 34307
This commit is contained in:
parent
49cfa54509
commit
bc8fe9b40f
1 changed files with 11 additions and 6 deletions
|
@ -1,5 +1,6 @@
|
||||||
--- a/coreutils/date.c
|
diff -urN busybox-1.19.4/coreutils/date.c busybox-1.19.4.new/coreutils/date.c
|
||||||
+++ b/coreutils/date.c
|
--- busybox-1.19.4/coreutils/date.c 2012-02-04 20:24:55.000000000 +0100
|
||||||
|
+++ busybox-1.19.4.new/coreutils/date.c 2012-11-23 16:48:21.945200539 +0100
|
||||||
@@ -123,6 +123,7 @@
|
@@ -123,6 +123,7 @@
|
||||||
//usage: IF_FEATURE_DATE_ISOFMT(
|
//usage: IF_FEATURE_DATE_ISOFMT(
|
||||||
//usage: "\n -D FMT Use FMT for -d TIME conversion"
|
//usage: "\n -D FMT Use FMT for -d TIME conversion"
|
||||||
|
@ -16,7 +17,7 @@
|
||||||
#if ENABLE_FEATURE_DATE_NANO
|
#if ENABLE_FEATURE_DATE_NANO
|
||||||
# include <sys/syscall.h>
|
# include <sys/syscall.h>
|
||||||
#endif
|
#endif
|
||||||
@@ -145,8 +147,9 @@ enum {
|
@@ -145,8 +147,9 @@
|
||||||
OPT_UTC = (1 << 2), /* u */
|
OPT_UTC = (1 << 2), /* u */
|
||||||
OPT_DATE = (1 << 3), /* d */
|
OPT_DATE = (1 << 3), /* d */
|
||||||
OPT_REFERENCE = (1 << 4), /* r */
|
OPT_REFERENCE = (1 << 4), /* r */
|
||||||
|
@ -28,7 +29,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
static void maybe_set_utc(int opt)
|
static void maybe_set_utc(int opt)
|
||||||
@@ -164,12 +167,15 @@ static const char date_longopts[] ALIGN1
|
@@ -164,12 +167,15 @@
|
||||||
/* "universal\0" No_argument "u" */
|
/* "universal\0" No_argument "u" */
|
||||||
"date\0" Required_argument "d"
|
"date\0" Required_argument "d"
|
||||||
"reference\0" Required_argument "r"
|
"reference\0" Required_argument "r"
|
||||||
|
@ -44,7 +45,7 @@
|
||||||
struct timespec ts;
|
struct timespec ts;
|
||||||
struct tm tm_time;
|
struct tm tm_time;
|
||||||
char buf_fmt_dt2str[64];
|
char buf_fmt_dt2str[64];
|
||||||
@@ -184,7 +190,7 @@ int date_main(int argc UNUSED_PARAM, cha
|
@@ -184,7 +190,7 @@
|
||||||
opt_complementary = "d--s:s--d"
|
opt_complementary = "d--s:s--d"
|
||||||
IF_FEATURE_DATE_ISOFMT(":R--I:I--R");
|
IF_FEATURE_DATE_ISOFMT(":R--I:I--R");
|
||||||
IF_LONG_OPTS(applet_long_options = date_longopts;)
|
IF_LONG_OPTS(applet_long_options = date_longopts;)
|
||||||
|
@ -53,7 +54,7 @@
|
||||||
IF_FEATURE_DATE_ISOFMT("I::D:"),
|
IF_FEATURE_DATE_ISOFMT("I::D:"),
|
||||||
&date_str, &date_str, &filename
|
&date_str, &date_str, &filename
|
||||||
IF_FEATURE_DATE_ISOFMT(, &isofmt_arg, &fmt_str2dt));
|
IF_FEATURE_DATE_ISOFMT(, &isofmt_arg, &fmt_str2dt));
|
||||||
@@ -241,6 +247,27 @@ int date_main(int argc UNUSED_PARAM, cha
|
@@ -241,6 +247,31 @@
|
||||||
if (*argv)
|
if (*argv)
|
||||||
bb_show_usage();
|
bb_show_usage();
|
||||||
|
|
||||||
|
@ -67,7 +68,11 @@
|
||||||
+ settimeofday(NULL, &tz);
|
+ settimeofday(NULL, &tz);
|
||||||
+
|
+
|
||||||
+ memset(&tz, 0, sizeof(tz));
|
+ memset(&tz, 0, sizeof(tz));
|
||||||
|
+#ifdef __USE_BSD
|
||||||
+ tz.tz_minuteswest = -(tm_time.tm_gmtoff / 60);
|
+ tz.tz_minuteswest = -(tm_time.tm_gmtoff / 60);
|
||||||
|
+#else
|
||||||
|
+ tz.tz_minuteswest = -(tm_time.__tm_gmtoff / 60);
|
||||||
|
+#endif
|
||||||
+
|
+
|
||||||
+ if (settimeofday(NULL, &tz))
|
+ if (settimeofday(NULL, &tz))
|
||||||
+ {
|
+ {
|
||||||
|
|
Loading…
Reference in a new issue