From: Matthias Clasen Date: Fri, 27 Feb 2004 00:42:39 +0000 (+0000) Subject: Translate from locale era to AD in g_date_set_parse(). (#133400, Theppitak X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=6b42452b3b91e5e6538abb556840d9a7ebd77293;p=dana%2Fcg-glib.git Translate from locale era to AD in g_date_set_parse(). (#133400, Theppitak Fri Feb 27 01:44:41 2004 Matthias Clasen * glib/gdate.c: Translate from locale era to AD in g_date_set_parse(). (#133400, Theppitak Karoonboonyanan) --- diff --git a/ChangeLog b/ChangeLog index 7191a351..98a774b9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Fri Feb 27 01:44:41 2004 Matthias Clasen + + * glib/gdate.c: Translate from locale era to AD in + g_date_set_parse(). (#133400, Theppitak Karoonboonyanan) + Fri Feb 27 00:46:29 2004 Matthias Clasen * glib/gstrfuncs.c (g_strerror): Don't modify errno. (#116617, diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 7191a351..98a774b9 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +Fri Feb 27 01:44:41 2004 Matthias Clasen + + * glib/gdate.c: Translate from locale era to AD in + g_date_set_parse(). (#133400, Theppitak Karoonboonyanan) + Fri Feb 27 00:46:29 2004 Matthias Clasen * glib/gstrfuncs.c (g_strerror): Don't modify errno. (#116617, diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index 7191a351..98a774b9 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,8 @@ +Fri Feb 27 01:44:41 2004 Matthias Clasen + + * glib/gdate.c: Translate from locale era to AD in + g_date_set_parse(). (#133400, Theppitak Karoonboonyanan) + Fri Feb 27 00:46:29 2004 Matthias Clasen * glib/gstrfuncs.c (g_strerror): Don't modify errno. (#116617, diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 7191a351..98a774b9 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,8 @@ +Fri Feb 27 01:44:41 2004 Matthias Clasen + + * glib/gdate.c: Translate from locale era to AD in + g_date_set_parse(). (#133400, Theppitak Karoonboonyanan) + Fri Feb 27 00:46:29 2004 Matthias Clasen * glib/gstrfuncs.c (g_strerror): Don't modify errno. (#116617, diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 7191a351..98a774b9 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,8 @@ +Fri Feb 27 01:44:41 2004 Matthias Clasen + + * glib/gdate.c: Translate from locale era to AD in + g_date_set_parse(). (#133400, Theppitak Karoonboonyanan) + Fri Feb 27 00:46:29 2004 Matthias Clasen * glib/gstrfuncs.c (g_strerror): Don't modify errno. (#116617, diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 7191a351..98a774b9 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,8 @@ +Fri Feb 27 01:44:41 2004 Matthias Clasen + + * glib/gdate.c: Translate from locale era to AD in + g_date_set_parse(). (#133400, Theppitak Karoonboonyanan) + Fri Feb 27 00:46:29 2004 Matthias Clasen * glib/gstrfuncs.c (g_strerror): Don't modify errno. (#116617, diff --git a/glib/gdate.c b/glib/gdate.c index 9153a0ac..62f84d57 100644 --- a/glib/gdate.c +++ b/glib/gdate.c @@ -454,6 +454,10 @@ static GDateYear twodigit_start_year = 1930; */ static gboolean using_twodigit_years = FALSE; +/* Adjustment of locale era to AD, non-zero means using locale era + */ +static gint locale_era_adjust = 0; + struct _GDateParseTokens { gint num_ints; gint n[3]; @@ -626,7 +630,9 @@ g_date_prepare_to_parse (const gchar *str, GDateParseTokens *pt) dmy_order[i] = G_DATE_YEAR; break; default: - /* leave it unchanged */ + /* assume locale era */ + locale_era_adjust = 1976 - testpt.n[i]; + dmy_order[i] = G_DATE_YEAR; break; } ++i; @@ -737,7 +743,11 @@ g_date_set_parse (GDate *d, { y = pt.n[i]; - if (using_twodigit_years && y < 100) + if (locale_era_adjust != 0) + { + y += locale_era_adjust; + } + else if (using_twodigit_years && y < 100) { guint two = twodigit_start_year % 100; guint century = (twodigit_start_year / 100) * 100;