$OpenBSD: patch-jpilot_c,v 1.2 2006/10/20 11:49:42 ajacoutot Exp $ --- jpilot.c.orig Fri Jun 9 22:42:57 2006 +++ jpilot.c Wed Sep 27 09:30:26 2006 @@ -1,4 +1,4 @@ -/* $Id: patch-jpilot_c,v 1.2 2006/10/20 11:49:42 ajacoutot Exp $ */ +/* $Id: patch-jpilot_c,v 1.2 2006/10/20 11:49:42 ajacoutot Exp $ */ /******************************************************************************* * jpilot.c @@ -1953,11 +1953,21 @@ int main(int argc, char *argv[]) GtkWidget *menubar; #ifdef ENABLE_GTK2 GtkWidget *scrolled_window; - char *week_start; - int pref_fdow = 0; #else GtkWidget *vscrollbar; #endif +/* Extract first day of week preference from locale in GTK2 */ +#ifdef ENABLE_GTK2 + int pref_fdow = 0; +# ifdef HAVE__NL_TIME_FIRST_WEEKDAY + char *langinfo; + int week_1stday = 0; + int first_weekday = 1; + unsigned int week_origin; +# else + char *week_start; +# endif +#endif unsigned char skip_past_alarms; unsigned char skip_all_alarms; int filedesc[2]; @@ -2179,18 +2189,31 @@ char * xpm_backup[] = { pref_read_rc_file(); /* Extract first day of week preference from locale in GTK2 */ + # ifdef ENABLE_GTK2 -# ifdef HAVE_LANGINFO_H +# ifdef HAVE__NL_TIME_FIRST_WEEKDAY /* GTK 2.8 libraries */ - week_start = nl_langinfo (_NL_TIME_FIRST_WEEKDAY); - pref_fdow = *((unsigned char *) week_start) - 1; + langinfo = nl_langinfo(_NL_TIME_FIRST_WEEKDAY); + first_weekday = langinfo[0]; + langinfo = nl_langinfo(_NL_TIME_WEEK_1STDAY); + week_origin = GPOINTER_TO_INT(langinfo); + if (week_origin == 19971130) /* Sunday */ + week_1stday = 0; + else if (week_origin == 19971201) /* Monday */ + week_1stday = 1; + else + g_warning ("Unknown value of _NL_TIME_WEEK_1STDAY.\n"); + + pref_fdow = (week_1stday + first_weekday - 1) % 7; # else /* GTK 2.6 libraries */ # if defined(ENABLE_NLS) week_start = dgettext("gtk20", "calendar:week_start:0"); if (strncmp("calendar:week_start:", week_start, 20) == 0) { pref_fdow = *(week_start + 20) - '0'; - } + } else { + pref_fdow = -1; + } # endif # endif if (pref_fdow > 1)