g_date_time_format: support %c
authorJavier Jardón <jjardon@gnome.org>
Fri, 2 Sep 2011 15:32:21 +0000 (16:32 +0100)
committerRyan Lortie <desrt@desrt.ca>
Fri, 2 Sep 2011 22:07:19 +0000 (18:07 -0400)
%c represents the preferred  date  and  time  representation  for the
current locale.

https://bugzilla.gnome.org/show_bug.cgi?id=658061

glib/gdatetime.c

index 024070d..75f8338 100644 (file)
@@ -172,6 +172,7 @@ static const guint16 days_in_year[2][13] =
                      nl_langinfo (AM_STR) : \
                      nl_langinfo (PM_STR))
 
+#define PREFERRED_DATE_TIME_FMT nl_langinfo (D_T_FMT)
 #define PREFERRED_DATE_FMT nl_langinfo (D_FMT)
 #define PREFERRED_TIME_FMT nl_langinfo (T_FMT)
 
@@ -200,6 +201,9 @@ static const gint month_item[2][12] =
                                   /* Translators: 'after midday' indicator */ \
                                 : C_("GDateTime", "pm"))
 
+/* Translators: this is the preferred format for expressing the date and the time */
+#define PREFERRED_DATE_TIME_FMT C_("GDateTime", "%a %b %e %H:%M:%S %Y")
+
 /* Translators: this is the preferred format for expressing the date */
 #define PREFERRED_DATE_FMT C_("GDateTime", "%m/%d/%y")
 
@@ -2148,6 +2152,11 @@ get_numeric_format (gchar    *fmt,
  *    the full month name according to the current locale
  *  </simpara></listitem></varlistentry>
  *  <varlistentry><term>
+ *    <literal>%%c</literal>:
+ *   </term><listitem><simpara>
+ *    the  preferred  date  and  time  representation  for the current locale
+ *  </simpara></listitem></varlistentry>
+ *  <varlistentry><term>
  *    <literal>%%d</literal>:
  *   </term><listitem><simpara>
  *    the day of the month as a decimal number (range 01 to 31)
@@ -2406,6 +2415,13 @@ g_date_time_format (GDateTime   *datetime,
                 case 'B':
                   g_string_append (outstr, MONTH_FULL (datetime));
                   break;
+                case 'c':
+                  {
+                    tmp = g_date_time_format (datetime, PREFERRED_DATE_TIME_FMT);
+                    g_string_append (outstr, tmp);
+                    g_free (tmp);
+                  }
+                  break;
                 case 'd':
                   get_numeric_format (fmt, sizeof(fmt), alt_digits, pad_set ? pad : '0', 2);
                   g_string_append_printf (outstr, fmt, g_date_time_get_day_of_month (datetime));