natFilePosix.cc (init_native): Define to 0.
authorAlfred M. Szmidt <ams@gnu.org>
Sat, 4 Aug 2007 21:50:01 +0000 (21:50 +0000)
committerMatthias Klose <doko@gcc.gnu.org>
Sat, 4 Aug 2007 21:50:01 +0000 (21:50 +0000)
2007-08-04  Alfred M. Szmidt  <ams@gnu.org>

        * java/io/natFilePosix.cc (init_native) [!MAXPATHLEN]: Define to 0.
        * java/io/File.java (createTempFile): Don't truncate if the system
        doesn't have a limit on the length of a file name.
        * classpath/lib/java/io/File.class: Regenerate.

From-SVN: r127216

libjava/ChangeLog
libjava/classpath/lib/java/io/File.class
libjava/java/io/File.java
libjava/java/io/natFilePosix.cc

index e28062d..e9dbb5f 100644 (file)
@@ -1,3 +1,10 @@
+2007-08-04  Alfred M. Szmidt  <ams@gnu.org>
+
+       * java/io/natFilePosix.cc (init_native) [!MAXPATHLEN]: Define to 0.
+       * java/io/File.java (createTempFile): Don't truncate if the system
+       doesn't have a limit on the length of a file name.
+       * classpath/lib/java/io/File.class: Regenerate.
+
 2007-08-04  Matthias Klose  <doko@ubuntu.com>
 
        Import GNU Classpath (libgcj-import-20070727).
index 746da88..8bcfe79 100644 (file)
Binary files a/libjava/classpath/lib/java/io/File.class and b/libjava/classpath/lib/java/io/File.class differ
index 67d1b96..0c4fb69 100644 (file)
@@ -117,6 +117,7 @@ public class File implements Serializable, Comparable<File>
   public static final char pathSeparatorChar = pathSeparator.charAt(0);
 
   static final String tmpdir = System.getProperty("java.io.tmpdir");
+  /* If 0, then the system doesn't have a file name length limit.  */
   static int maxPathLen;
   static boolean caseSensitive;
   
@@ -1130,7 +1131,9 @@ public class File implements Serializable, Comparable<File>
 
     // Truncation rules.
     // `6' is the number of characters we generate.
-    if (prefix.length() + 6 + suffix.length() > maxPathLen)
+    // If maxPathLen equals zero, then the system doesn't have a limit
+    // on the file name, so there is nothing to truncate.
+    if (maxPathLen > 0 && prefix.length() + 6 + suffix.length() > maxPathLen)
       {
        int suf_len = 0;
        if (suffix.charAt(0) == '.')
index d63625f..ead2855 100644 (file)
@@ -504,6 +504,12 @@ java::io::File::performDelete (void)
 void
 java::io::File::init_native ()
 {
+#ifdef MAXPATHLEN
   maxPathLen = MAXPATHLEN;
+#else
+  /* Some systems do not have a limit on the length of a file name,
+     the GNU system is one such example.  */
+  maxPathLen = 0;
+#endif
   caseSensitive = true;
 }