aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--locale/programs/ld-ctype.c5
-rw-r--r--time/strptime.c12
3 files changed, 17 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 57fd977fa3..b7b9d56913 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
1999-11-18 Ulrich Drepper <drepper@cygnus.com>
+ * locale/programs/ld-ctype.c: Punt if character class definitions
+ to not consists of tok_bsymbol (for now).
+
* time/strptime.c (day_of_the_week): Make sure result is never
negative.
(strptime_internal): Allow %C without %y.
diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
index 90a4492118..c545ba4164 100644
--- a/locale/programs/ld-ctype.c
+++ b/locale/programs/ld-ctype.c
@@ -1835,6 +1835,11 @@ unknown character class `%s' in category `LC_CTYPE'"),
uint32_t wch;
struct charseq *seq;
+ if (now->tok != tok_bsymbol)
+ /* XXX Cannot be handled yet. We will have support
+ for tok_ucs4 soon. */
+ goto err_label;
+
if (ellipsis_token == tok_none)
{
if (get_character (now, charmap, repertoire, &seq, &wch))
diff --git a/time/strptime.c b/time/strptime.c
index 5f8271e250..9499e0f684 100644
--- a/time/strptime.c
+++ b/time/strptime.c
@@ -235,7 +235,7 @@ day_of_the_week (struct tm *tm)
+ (((corr_year / 4) / 25) / 4)
+ __mon_yday[0][tm->tm_mon]
+ tm->tm_mday - 1);
- tm->tm_wday = wday % 7;
+ tm->tm_wday = ((wday % 7) + 7) % 7;
}
/* Compute the day of the year. */
@@ -830,8 +830,14 @@ strptime_internal (buf, format, tm, decided)
if (have_I && is_pm)
tm->tm_hour += 12;
- if (want_century && century != -1)
- tm->tm_year = tm->tm_year % 100 + (century - 19) * 100;
+ if (century != -1)
+ {
+ if (want_century)
+ tm->tm_year = tm->tm_year % 100 + (century - 19) * 100;
+ else
+ /* Only the century, but not the year. Strange, but so be it. */
+ tm->tm_year = (century - 19) * 100;
+ }
if (want_xday && !have_wday) {
if ( !(have_mon && have_mday) && have_yday) {