Author: juha
Date: 2008-09-29 18:09:18 +0000 (Mon, 29 Sep 2008)
New Revision: 27985

Modified:
   xfcalendar/trunk/configure.in.in
   xfcalendar/trunk/src/parameters.c
Log:
Orage 4.5.14.6
Find default timezone from operating system.


Modified: xfcalendar/trunk/configure.in.in
===================================================================
--- xfcalendar/trunk/configure.in.in    2008-09-29 12:42:21 UTC (rev 27984)
+++ xfcalendar/trunk/configure.in.in    2008-09-29 18:09:18 UTC (rev 27985)
@@ -9,7 +9,7 @@
 dnl
 
 dnl Version information
-m4_define([orage_version], [4.5.14.5-svn])
+m4_define([orage_version], [4.5.14.6-svn])
 
 m4_define([gtk_minimum_version], [2.6.0])
 m4_define([xfce_minimum_version], [4.4.0])

Modified: xfcalendar/trunk/src/parameters.c
===================================================================
--- xfcalendar/trunk/src/parameters.c   2008-09-29 12:42:21 UTC (rev 27984)
+++ xfcalendar/trunk/src/parameters.c   2008-09-29 18:09:18 UTC (rev 27985)
@@ -36,6 +36,7 @@
 #endif
 
 #include <glib.h>
+#include <glib/gstdio.h>
 #include <glib/gprintf.h>
 #include <gtk/gtk.h>
 #include <gdk/gdk.h>
@@ -410,7 +411,7 @@
 {
     Itf *itf = (Itf *)user_data;
 
-    if (g_par.local_timezone == NULL || strlen(g_par.local_timezone) == 0) {
+    if (!ORAGE_STR_EXISTS(g_par.local_timezone)) {
         g_warning("timezone pressed: local timezone missing");
         g_par.local_timezone = g_strdup("floating");
     }
@@ -959,6 +960,25 @@
     orage_rc_file_close(orc);
 }
 
+void init_default_timezone()
+{
+    gsize len;
+
+    g_free(g_par.local_timezone);
+    if (g_file_get_contents("/etc/timezone", &g_par.local_timezone
+                , &len, NULL)) {
+        /* success! let's check it */
+        if (len > 2) /* get rid of the \n at the end */
+            g_par.local_timezone[len-1] = 0;
+        if (!xfical_set_local_timezone()) { /* test that ical knows it */
+            g_free(g_par.local_timezone);
+            g_par.local_timezone = NULL;
+        }
+    }
+    if (!ORAGE_STR_EXISTS(g_par.local_timezone))
+        g_par.local_timezone = g_strdup("floating");
+}
+
 void read_parameters(void)
 {
     gchar *fpath;
@@ -968,7 +988,10 @@
 
     orc = orage_parameters_file_open(TRUE);
 
-    g_par.local_timezone = orage_rc_get_str(orc, "Timezone", "floating");
+    g_par.local_timezone = orage_rc_get_str(orc, "Timezone", "not found");
+    if (!strcmp(g_par.local_timezone, "not found")) { 
+        init_default_timezone();
+    }
 #ifdef HAVE_ARCHIVE
     g_par.archive_limit = orage_rc_get_int(orc, "Archive limit", 0);
     fpath = orage_data_file_location(ORAGE_ARC_FILE);

_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to