patch2 darwin & libgcj

Andreas Tobler toa@pop.agri.ch
Wed Jan 2 14:33:00 GMT 2002


Thanks!
Last try! ;-) (for today)
P.S, don't forget autoconf & autoheader. 
2002年01月02日 Andreas Tobler <a.tobler@schweiz.ch>
 <tromey@redhat.com>
 <rth@redhat.com>
 * libjava/configure.in
 add a timezone check
 * libjava/java/lang/natSystem.cc
 handle the above timezone check
 
 --- gccclean/gcc/libjava/configure.in Mon Dec 17 09:01:00 2001
 +++ gccsrc/gcc/libjava/configure.in Sat Dec 29 11:30:31 2001
 @@ -794,6 +794,8 @@
 
 AC_FUNC_ALLOCA
 
 +AC_STRUCT_TIMEZONE
 +
 AC_CHECK_PROGS(PERL, perl, false)
 
 SYSDEP_SOURCES=
 
 --- gccclean/gcc/libjava/java/lang/natSystem.cc Sat Dec 1 11:59:02 2001
 +++ gccsrc/gcc/libjava/java/lang/natSystem.cc Wed Jan 2 12:42:11 2002
 @@ -242,7 +242,8 @@
 {
 struct tm *tim;
 time_t current_time;
 - char **tzinfo, *tzid;
 + const char *tz1;
 + char *tzid, *tz2;
 long tzoffset;
 
 current_time = time(0);
 @@ -263,26 +264,38 @@
 // issue exists in java/util/natGregorianCalendar.cc.
 tzoffset = 0L;
 #endif
 - tzinfo = tzname;
 + // check if a system has tzname or not. Not sure how to handle else
 + // darwin does not have the tzname so I tried
 + // a.tobler@schweiz.ch 02012002
 +#ifdef HAVE_TM_ZONE
 + tz1 = tim->tm_zone;
 + tz2 = ""; 	/* initialize the string with an empty value, not a NULL */
			/* otherwise strcmp will bomb */
 +#elif defined (HAVE_TZNAME)
 + tz1 = tzname[0];
 + tz2 = strcmp (tzname[0], tzname[1]) ? tzname[1] : ""; /* compare
vs. an empty string not a NULL one */
 +#else
 + //what to do else ?
 +#error neither tzname nor tm_zone defined
 +#endif
 
 if ((tzoffset % 3600) == 0)
 tzoffset = tzoffset / 3600;
 
 - if (!strcmp(tzinfo[0], tzinfo[1]))
 + if (!strcmp(tz1, tz2))
 {
 - tzid = (char*) _Jv_Malloc (strlen(tzinfo[0]) + 6);
 + tzid = (char*) _Jv_Malloc (strlen(tz1) + 6);
 if (!tzid)
 return NULL;
 
 - sprintf(tzid, "%s%ld", tzinfo[0], tzoffset);
 + sprintf(tzid, "%s%ld", tz1, tzoffset);
 }
 else
 {
 - tzid = (char*) _Jv_Malloc (strlen(tzinfo[0]) +
strlen(tzinfo[1]) + 6);
 + tzid = (char*) _Jv_Malloc (strlen(tz1) + strlen(tz2) + 6);
 if (!tzid)
 return NULL;
 
 - sprintf(tzid, "%s%ld%s", tzinfo[0], tzoffset, tzinfo[1]);
 + sprintf(tzid, "%s%ld%s", tz1, tzoffset, tz2);
 }
 
 jstring retval = JvNewStringUTF (tzid);


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /