From f40475404235a392b16bb7db048fc18c56af3604 Mon Sep 17 00:00:00 2001 From: Bryce McKinlay Date: Sun, 1 Apr 2001 11:16:40 +0000 Subject: 1.3-Compliant Implementation of java.io.File. * java/lang/natSystem.cc (init_properties): Get "file.separator", "path.separator", and "java.io.tmpdir" from the File class, instead of setting them explicitly. * java/io/File.java: Do not canonicalize paths for security manager checks. Call init_native() from static initializer. Do not pass path argument to native methods. New native method declarations. Some security manager checks moved to checkWrite(). (equals): Check file system case sensitivity and act appropriatly. (hashCode): Likewise. (isHidden): New method implemented. (performList): Changed prototype. Now takes a class argument specifying the class of the returned array: Strings or File objects. Also added FileFilter argument. (listFiles): New variants with "File" return type implemented. (createTempFile): Use createNewFile(). Use maxPathLen. (setReadOnly): New method implemented. (listRoots): Likewise. (compareTo): Likewise. (setLastModified): Likewise. (checkWrite): New method. (setPath): Removed. * java/io/natFile.cc: Various functions no longer take canonical path argument. (stat): Handle ISHIDDEN query. (isAbsolute): Remove WIN32 cruft. (performList): New arguments. Handle returning either File[] or String[] arrays. Check with FileFilter or FilenameFilter arguments as appropriate. Use an ArrayList, not a Vector, for the temporary list. (performSetReadOnly): New method implemented. (performListRoots): Likewise. (performSetLastModified): Likewise. (performCreate): Likewise. (init_native): New initialization function. * java/io/natFileWin32.cc: Various functions no longer take canonical path argument. (stat): Add FIXME about ISHIDDEN query. (performList): New arguments. Handle returning either File[] or String[] arrays. Check with FileFilter or FilenameFilter arguments as appropriate. Use an ArrayList, not a Vector, for the temporary list. (performSetReadOnly): New. Stubbed. (performListRoots): Likewise. (performSetLastModified): Likewise. (performCreate): Likewise. (init_native) New initialization function. * configure.in: Check for utime() and chmod(). * configure: Rebuilt. * include/config.h.in: Rebuilt. Resolves PR libgcj/1759. From-SVN: r40985 --- libjava/java/lang/natSystem.cc | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'libjava/java/lang') diff --git a/libjava/java/lang/natSystem.cc b/libjava/java/lang/natSystem.cc index abf62ca..ee1d998 100644 --- a/libjava/java/lang/natSystem.cc +++ b/libjava/java/lang/natSystem.cc @@ -55,6 +55,7 @@ details. */ #include #include #include +#include #include #include @@ -323,20 +324,19 @@ java::lang::System::init_properties (void) SET ("file.encoding", default_file_encoding); + JvInitClass (&java::io::File::class$); + newprops->put (JvNewStringLatin1 ("file.separator"), + java::io::File::separator); + newprops->put (JvNewStringLatin1 ("path.separator"), + java::io::File::pathSeparator); + newprops->put (JvNewStringLatin1 ("java.io.tmpdir"), + java::io::File::tmpdir); + #ifdef WIN32 - SET ("file.separator", "\\"); - SET ("path.separator", ";"); SET ("line.separator", "\r\n"); - SET ("java.io.tmpdir", "C:\\temp"); #else // Unix. - SET ("file.separator", "/"); - SET ("path.separator", ":"); SET ("line.separator", "\n"); - char *tmpdir = ::getenv("TMPDIR"); - if (! tmpdir) - tmpdir = "/tmp"; - SET ("java.io.tmpdir", tmpdir); #endif #ifdef HAVE_UNAME -- cgit v1.1