diff options
Diffstat (limited to 'libjava/java/lang/natSystem.cc')
-rw-r--r-- | libjava/java/lang/natSystem.cc | 41 |
1 files changed, 33 insertions, 8 deletions
diff --git a/libjava/java/lang/natSystem.cc b/libjava/java/lang/natSystem.cc index 2d82c89..81f7860 100644 --- a/libjava/java/lang/natSystem.cc +++ b/libjava/java/lang/natSystem.cc @@ -32,6 +32,7 @@ details. */ #include <java/lang/ArrayStoreException.h> #include <java/lang/ArrayIndexOutOfBoundsException.h> #include <java/lang/NullPointerException.h> +#include <java/lang/StringBuffer.h> #include <java/util/Properties.h> #include <java/io/PrintStream.h> #include <java/io/InputStream.h> @@ -216,7 +217,7 @@ java::lang::System::init_properties (void) // (introduced in 1.2), and earlier versioning properties. SET ("java.version", VERSION); SET ("java.vendor", "Free Software Foundation"); - SET ("java.vendor.url", "http://sourceware.cygnus.com/java/"); + SET ("java.vendor.url", "http://sources.redhat.com/java/"); SET ("java.class.version", GCJVERSION); SET ("java.vm.specification.version", "1.1"); SET ("java.vm.specification.name", "Java(tm) Virtual Machine Specification"); @@ -263,13 +264,6 @@ java::lang::System::init_properties (void) } #endif /* HAVE_UNAME */ - char *classpath = ::getenv("CLASSPATH"); - // FIXME: find libgcj.zip and append its path? - if (classpath != NULL) - SET ("java.class.path", classpath); - else - SET ("java.class.path", "."); - #ifndef NO_GETUID #ifdef HAVE_PWD_H uid_t user_id = getuid (); @@ -353,4 +347,35 @@ java::lang::System::init_properties (void) i++; } } + + // FIXME: find libgcj.zip and append its path? + char *classpath = ::getenv("CLASSPATH"); + jstring cp = properties->getProperty (JvNewStringLatin1("java.class.path")); + java::lang::StringBuffer *sb = new java::lang::StringBuffer (); + + if (_Jv_Jar_Class_Path) + { + sb->append (JvNewStringLatin1 (_Jv_Jar_Class_Path)); +#ifdef WIN32 + sb->append ((jchar) ';'); +#else + sb->append ((jchar) ':'); +#endif; + } + if (classpath) + { + sb->append (JvNewStringLatin1 (classpath)); +#ifdef WIN32 + sb->append ((jchar) ';'); +#else + sb->append ((jchar) ':'); +#endif; + } + if (cp != NULL) + sb->append (cp); + else + sb->append ((jchar) '.'); + + properties->put(JvNewStringLatin1 ("java.class.path"), + sb->toString ()); } |