From: tromey Date: Wed, 12 Jun 2002 17:01:02 +0000 (+0000) Subject: * java/io/natFilePosix.cc (getCanonicalPath): Treat "" like ".". X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2aa04a098f776c20287cee6e7201ff4f754b49a6;p=thirdparty%2Fgcc.git * java/io/natFilePosix.cc (getCanonicalPath): Treat "" like ".". Fixes PR libgcj/6652. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54558 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 072c7b56945a..26bd707ec6c8 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2002-06-12 Tom Tromey + + * java/io/natFilePosix.cc (getCanonicalPath): Treat "" like ".". + Fixes PR libgcj/6652. + 2002-06-10 Tom Tromey * java/lang/Class.h (Class::desiredAssertionStatus): Declare. diff --git a/libjava/java/io/natFilePosix.cc b/libjava/java/io/natFilePosix.cc index cd04571b04e4..f9fe78ef203c 100644 --- a/libjava/java/io/natFilePosix.cc +++ b/libjava/java/io/natFilePosix.cc @@ -104,9 +104,16 @@ java::io::File::attr (jint query) jstring 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]; jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf); + + // Special case: treat "" the same as ".". + if (total == 0) + buf[total++] = '.'; + buf[total] = '\0'; #ifdef HAVE_REALPATH