This patches NSTimeZone to use a more standard (Posix?) method of
finding the time zone info that's already set on the computer. I think
many people could avoid having to set the "Local Time Zone" default.
2003-09-01 Adam Fedor <[EMAIL PROTECTED]>
* configure.ac: Check for tzset
* Source/NSTimeZone.m (+systemTimeZone): Use it to find time zone
(as a last resort).
Index: configure.ac
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/base/configure.ac,v
retrieving revision 1.26
diff -u -p -r1.26 configure.ac
--- configure.ac 24 Aug 2003 02:46:30 -0000 1.26
+++ configure.ac 2 Sep 2003 02:47:57 -0000
@@ -529,7 +529,7 @@ LIBS="$saved_LIBS"
dnl AC_REPLACE_FUNCS(getrusage gettimeofday)
AC_CHECK_HEADERS(time.h sys/time.h sys/rusage.h ucbinclude/sys/resource.h)
-AC_CHECK_FUNCS(time ctime)
+AC_CHECK_FUNCS(time ctime tzset)
#--------------------------------------------------------------------
# These headers/functions needed by GSTcpPort.m
Index: Headers/Additions/GNUstepBase/config.h.in
===================================================================
RCS file:
/cvsroot/gnustep/gnustep/core/base/Headers/Additions/GNUstepBase/config.h.in,v
retrieving revision 1.1
diff -u -p -r1.1 config.h.in
--- Headers/Additions/GNUstepBase/config.h.in 31 Jul 2003 23:49:29 -0000 1.1
+++ Headers/Additions/GNUstepBase/config.h.in 2 Sep 2003 02:47:58 -0000
@@ -6,7 +6,7 @@
/* Define if SO_REUSEADDR is broken on this system */
#undef BROKEN_SO_REUSEADDR
-/* Define if your system terminates the final argument in /proc/28891/cmdline */
+/* Define if your system terminates the final argument in /proc/$$/cmdline */
#undef CMDLINE_TERMINATED
/* Define if constructors are automatically loaded */
@@ -121,6 +121,9 @@
/* Define to 1 if you have the `mmap' function. */
#undef HAVE_MMAP
+/* Define to 1 if you have the `nanosleep' function. */
+#undef HAVE_NANOSLEEP
+
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
#undef HAVE_NDIR_H
@@ -282,6 +285,9 @@
/* Define to 1 if you have the <time.h> header file. */
#undef HAVE_TIME_H
+/* Define to 1 if you have the `tzset' function. */
+#undef HAVE_TZSET
+
/* Define to 1 if you have the <ucbinclude/sys/resource.h> header file. */
#undef HAVE_UCBINCLUDE_SYS_RESOURCE_H
@@ -290,9 +296,6 @@
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
-
-/* Define to 1 if you have the `nanosleep' function. */
-#undef HAVE_NANOSLEEP
/* Define to 1 if you have the `usleep' function. */
#undef HAVE_USLEEP
Index: Source/NSTimeZone.m
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/base/Source/NSTimeZone.m,v
retrieving revision 1.56
diff -u -p -r1.56 NSTimeZone.m
--- Source/NSTimeZone.m 31 Jul 2003 23:49:31 -0000 1.56
+++ Source/NSTimeZone.m 2 Sep 2003 02:47:59 -0000
@@ -54,6 +54,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <time.h>
#include "Foundation/NSArray.h"
#include "Foundation/NSCoder.h"
#include "Foundation/NSData.h"
@@ -1123,6 +1124,18 @@ static NSMapTable *absolutes = 0;
localZoneString = [localZoneString stringByTrimmingSpaces];
}
}
+#if HAVE_TZSET
+ if (localZoneString == nil)
+ {
+ /*
+ * Try to get timezone from tzset and tzname
+ */
+ extern char *tzname[2];
+ tzset();
+ if (tzname[0] != NULL && *tzname[0] != '\0')
+ localZoneString = [NSString stringWithCString: tzname[0]];
+ }
+#else
if (localZoneString == nil)
{
/*
@@ -1131,6 +1144,7 @@ static NSMapTable *absolutes = 0;
localZoneString = [[[NSProcessInfo processInfo]
environment] objectForKey: @"TZ"];
}
+#endif
if (localZoneString != nil)
{
zone = [defaultPlaceholderTimeZone initWithName: localZoneString];
_______________________________________________
Bug-gnustep mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-gnustep