Просмотр исходного кода

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 <[email protected]>

SVN-Revision: 34307
Florian Fainelli 13 лет назад
Родитель
Сommit
bc8fe9b40f
1 измененных файлов с 11 добавлено и 6 удалено
  1. 11 6
      package/busybox/patches/911-date-k-flag.patch

+ 11 - 6
package/busybox/patches/911-date-k-flag.patch

@@ -1,5 +1,6 @@
---- a/coreutils/date.c
-+++ b/coreutils/date.c
+diff -urN busybox-1.19.4/coreutils/date.c busybox-1.19.4.new/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 @@
  //usage:	IF_FEATURE_DATE_ISOFMT(
  //usage:     "\n	-D FMT		Use FMT for -d TIME conversion"
@@ -16,7 +17,7 @@
  #if ENABLE_FEATURE_DATE_NANO
  # include <sys/syscall.h>
  #endif
-@@ -145,8 +147,9 @@ enum {
+@@ -145,8 +147,9 @@
  	OPT_UTC       = (1 << 2), /* u */
  	OPT_DATE      = (1 << 3), /* d */
  	OPT_REFERENCE = (1 << 4), /* r */
@@ -28,7 +29,7 @@
  };
  
  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" */
  		"date\0"      Required_argument "d"
  		"reference\0" Required_argument "r"
@@ -44,7 +45,7 @@
  	struct timespec ts;
  	struct tm tm_time;
  	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"
  		IF_FEATURE_DATE_ISOFMT(":R--I:I--R");
  	IF_LONG_OPTS(applet_long_options = date_longopts;)
@@ -53,7 +54,7 @@
  			IF_FEATURE_DATE_ISOFMT("I::D:"),
  			&date_str, &date_str, &filename
  			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)
  		bb_show_usage();
  
@@ -67,7 +68,11 @@
 +		settimeofday(NULL, &tz);
 +
 +		memset(&tz, 0, sizeof(tz));
++#ifdef __USE_BSD
 +		tz.tz_minuteswest = -(tm_time.tm_gmtoff / 60);
++#else
++		tz.tz_minuteswest = -(tm_time.__tm_gmtoff / 60);
++#endif
 +
 +		if (settimeofday(NULL, &tz))
 +		{