From 6e32abbfc25930c079b643a85750472d50baac00 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 12 Jun 2002 17:01:02 +0000 Subject: 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 --- libjava/java/io/natFilePosix.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'libjava/java') diff --git a/libjava/java/io/natFilePosix.cc b/libjava/java/io/natFilePosix.cc index cd04571..f9fe78e 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 -- cgit v1.1