re PR libgcj/1411 (natTimeZone.cc should be removed)

Fix for PR libgcj/1411:
	* Makefile.am: Removed java/util/natTimeZone.cc.
	* Makefile.in: Rebuilt.
	* gnu/gcj/text/LocaleData_en_US.java (zoneStringsDefault): Added
	missing localized timezone names.
	* java/lang/System.java (getDefaultTimeZoneId): New private method.
	* java/lang/natSystem.cc (getSystemTimeZone): New private method.
	(init_properties): Set user.timezone property.
	* java/text/DateFormatSymbols.java (zoneStringsDefault): Added
	default timezone names; removed non-standard ones.  Use standard
	ID names per JCL.
	* java/util/Date.java (toGMTString): Removed zoneGMT variable.
	(UTC): Ditto.
	* java/util/TimeZone.java: Add standard ID names per JCL; removed
	non-standard ones.
	(getDefaultTimeZoneId): Removed.
	(zoneGMT): Removed.
	(getDefaultTimeZoneId): Removed.
	* java/util/natTimeZone.cc: Removed.

From-SVN: r38816
This commit is contained in:
Warren Levy 2001-01-09 07:07:51 +00:00 committed by Warren Levy
parent 61db460830
commit 3824a48600
10 changed files with 242 additions and 146 deletions

View file

@ -1,6 +1,6 @@
// natSystem.cc - Native code implementing System class.
/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation
This file is part of libgcj.
@ -10,6 +10,7 @@ details. */
#include <config.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
@ -28,6 +29,17 @@ details. */
#include <langinfo.h>
#endif
#if TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
#include <gcj/cni.h>
#include <jvm.h>
#include <java-props.h>
@ -38,6 +50,7 @@ details. */
#include <java/lang/NullPointerException.h>
#include <java/lang/StringBuffer.h>
#include <java/util/Properties.h>
#include <java/util/TimeZone.h>
#include <java/io/PrintStream.h>
#include <java/io/InputStream.h>
@ -214,6 +227,50 @@ getpwuid_adaptor(T_passwd * (*getpwuid_r)(T_uid user_id, T_passwd *pwd_r,
}
#endif
/*
* This method returns a time zone string that is used by init_properties
* to set the default timezone property 'user.timezone'. That value is
* used by default as a key into the timezone table used by the
* java::util::TimeZone class.
*/
jstring
java::lang::System::getSystemTimeZone (void)
{
time_t current_time;
char **tzinfo, *tzid;
long tzoffset;
current_time = time(0);
mktime(localtime(&current_time));
tzinfo = tzname;
tzoffset = timezone;
if ((tzoffset % 3600) == 0)
tzoffset = tzoffset / 3600;
if (!strcmp(tzinfo[0], tzinfo[1]))
{
tzid = (char*) _Jv_Malloc (strlen(tzinfo[0]) + 6);
if (!tzid)
return NULL;
sprintf(tzid, "%s%ld", tzinfo[0], tzoffset);
}
else
{
tzid = (char*) _Jv_Malloc (strlen(tzinfo[0]) + strlen(tzinfo[1]) + 6);
if (!tzid)
return NULL;
sprintf(tzid, "%s%ld%s", tzinfo[0], tzoffset, tzinfo[1]);
}
jstring retval = JvNewStringUTF (tzid);
_Jv_Free (tzid);
return retval;
}
void
java::lang::System::init_properties (void)
{
@ -364,6 +421,11 @@ java::lang::System::init_properties (void)
SET ("user.language", "en");
}
// Set the "user.timezone" property.
jstring timezone = getDefaultTimeZoneId ();
if (timezone != NULL)
newprops->put (JvNewStringLatin1 ("user.timezone"), timezone);
// Set some properties according to whatever was compiled in with
// `-D'.
for (int i = 0; _Jv_Compiler_Properties[i]; ++i)