Commit 6e32abbf by Tom Tromey Committed by Tom Tromey

re PR libgcj/6652 (new java.io.File("").getCanonicalFile() throws exception)

	* java/io/natFilePosix.cc (getCanonicalPath): Treat "" like ".".
	Fixes PR libgcj/6652.

From-SVN: r54558
parent d65cb654
2002-06-12 Tom Tromey <tromey@redhat.com>
* java/io/natFilePosix.cc (getCanonicalPath): Treat "" like ".".
Fixes PR libgcj/6652.
2002-06-10 Tom Tromey <tromey@redhat.com> 2002-06-10 Tom Tromey <tromey@redhat.com>
* java/lang/Class.h (Class::desiredAssertionStatus): Declare. * java/lang/Class.h (Class::desiredAssertionStatus): Declare.
......
...@@ -104,9 +104,16 @@ java::io::File::attr (jint query) ...@@ -104,9 +104,16 @@ java::io::File::attr (jint query)
jstring jstring
java::io::File::getCanonicalPath (void) java::io::File::getCanonicalPath (void)
{ {
char *buf = (char *) __builtin_alloca (JvGetStringUTFLength (path) + 1); // We use `+2' here because we might need to use `.' for our special
// case.
char *buf = (char *) __builtin_alloca (JvGetStringUTFLength (path) + 2);
char buf2[MAXPATHLEN]; char buf2[MAXPATHLEN];
jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf); jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf);
// Special case: treat "" the same as ".".
if (total == 0)
buf[total++] = '.';
buf[total] = '\0'; buf[total] = '\0';
#ifdef HAVE_REALPATH #ifdef HAVE_REALPATH
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment