diff --git a/ChangeLog b/ChangeLog index 699e75f31..8db7d3111 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Thu Dec 17 9:30:00 1998 Richard Frith-Macdonald + + NSCalendarDate.m: Try to cope gracefully when locale info is not + available and we want to display a date. Use numeric month and + week designations and hard-code am/pm + NSUser.m: include NSProcessInfo.h + Wed Dec 16 20:30:00 1998 Richard Frith-Macdonald Various modifications suggested by and diff --git a/Source/NSCalendarDate.m b/Source/NSCalendarDate.m index ea6917215..d6596ee39 100644 --- a/Source/NSCalendarDate.m +++ b/Source/NSCalendarDate.m @@ -819,8 +819,11 @@ else months = [locale objectForKey: NSMonthNameArray]; name = [months objectAtIndex: md-1]; - k = VSPRINTF_LENGTH(sprintf(&(buf[j]), "%s", + if (name) + k = VSPRINTF_LENGTH(sprintf(&(buf[j]), "%s", [name cString])); + else + k = VSPRINTF_LENGTH(sprintf(&(buf[j]), "%02d", md)); } else k = VSPRINTF_LENGTH(sprintf(&(buf[j]), "%02d", md)); @@ -875,8 +878,11 @@ else days = [locale objectForKey: NSWeekDayNameArray]; name = [days objectAtIndex: dow]; - k = VSPRINTF_LENGTH(sprintf(&(buf[j]), "%s", + if (name) + k = VSPRINTF_LENGTH(sprintf(&(buf[j]), "%s", [name cString])); + else + k = VSPRINTF_LENGTH(sprintf(&(buf[j]), "%02d", dow)); } else k = VSPRINTF_LENGTH(sprintf(&(buf[j]), "%02d", dow)); @@ -917,9 +923,15 @@ ++i; if (hd >= 12) - ampm = [a objectAtIndex: 1]; + if ([a count] > 1) + ampm = [a objectAtIndex: 1]; + else + ampm = @"pm"; else - ampm = [a objectAtIndex: 0]; + if ([a count] > 0) + ampm = [a objectAtIndex: 0]; + else + ampm = @"am"; k = VSPRINTF_LENGTH(sprintf(&(buf[j]), [ampm cString])); j += k; } diff --git a/Source/NSUser.m b/Source/NSUser.m index 99dc3625c..f935b392c 100644 --- a/Source/NSUser.m +++ b/Source/NSUser.m @@ -29,6 +29,7 @@ #include #include #include +#include #include #include // for getenv()