summaryrefslogtreecommitdiffstats
path: root/libjava/java
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2002-06-12 17:01:02 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2002-06-12 17:01:02 +0000
commit2aa04a098f776c20287cee6e7201ff4f754b49a6 (patch)
treec84cab82af76c730cffbb3b575a903dc2a03634d /libjava/java
parent3be85ef375701313ae01001503550852a3a7c76a (diff)
downloadppe42-gcc-2aa04a098f776c20287cee6e7201ff4f754b49a6.tar.gz
ppe42-gcc-2aa04a098f776c20287cee6e7201ff4f754b49a6.zip
* 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
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/io/natFilePosix.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/libjava/java/io/natFilePosix.cc b/libjava/java/io/natFilePosix.cc
index cd04571b04e..f9fe78ef203 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
OpenPOWER on IntegriCloud