]> code.citadel.org Git - citadel.git/blobdiff - webcit/fmt_date.c
Date picker is now localized to the currently selected
[citadel.git] / webcit / fmt_date.c
index 6bfebd4d54a6a4d0697fa3454f4349a41c91be41..c541b7b17ec9f029d93514d00e56d6b65df03355 100644 (file)
@@ -21,7 +21,9 @@ typedef unsigned char byte;
  */
 size_t wc_strftime(char *s, size_t max, const char *format, const struct tm *tm)
 {
+
 #ifdef ENABLE_NLS
+#ifdef HAVE_USELOCALE
        if (wc_locales[WC->selected_language] == NULL) {
                return strftime(s, max, format, tm);
        }
@@ -31,9 +33,13 @@ size_t wc_strftime(char *s, size_t max, const char *format, const struct tm *tm)
 #else
        return strftime(s, max, format, tm);
 #endif
+#else
+       return strftime(s, max, format, tm);
+#endif
 }
 
 
+
 /*
  * Format a date/time stamp for output 
  */
@@ -87,13 +93,13 @@ void webcit_fmt_date(char *buf, time_t thetime, int brief)
  */
 int get_time_format_cached (void)
 {
-       char calhourformat[16];
+       long calhourformat;
        int *time_format_cache;
        time_format_cache = &(WC->time_format_cache);
        if (*time_format_cache == WC_TIMEFORMAT_NONE)
        {
-               get_preference("calhourformat", calhourformat, sizeof calhourformat);
-               if (!strcasecmp(calhourformat, "24")
+               get_pref_long("calhourformat", &calhourformat, 24);
+               if (calhourformat == 24
                        *time_format_cache = WC_TIMEFORMAT_24;
                else
                        *time_format_cache = WC_TIMEFORMAT_AMPM;
@@ -142,16 +148,18 @@ void fmt_time(char *buf, time_t thetime)
  * FIXME won't read asctime
  * Doesn't understand timezone, but we only should be using GMT/UTC anyway
  */
-time_t httpdate_to_timestamp(char *buf)
+time_t httpdate_to_timestamp(StrBuf *buf)
 {
        time_t t = 0;
        struct tm tt;
-       char *c;
+       const char *c;
 
        /** Skip day of week, to number */
-       for (c = buf; *c != ' '; c++)
+       for (c = ChrPtr(buf); *c != ' '; c++)
                ;
        c++;
+       
+       memset(&tt, 0, sizeof(tt));
 
        /* Get day of month */
        tt.tm_mday = atoi(c);
@@ -220,7 +228,7 @@ time_t httpdate_to_timestamp(char *buf)
         * some systems.
         */
        tzset();
-       tt.tm_sec -= timezone;
+       tt.tm_sec = tt.tm_sec - (int)timezone;
        t = mktime(&tt);
        return t;
 }