Here is the patch to 
fix the MAXIMUM_FILENAME_LENGTH glitch
Implement .RexxInfo~getMaxFileNameLength

[enrico@enrico-imac tests]$rexx -e "say .rexxinfo~maxfilenamelength"
255
[enrico@enrico-imac tests]$rexx -e "say .rexxinfo~maxpathlength"
1024
[enrico@enrico-imac tests]$


Index: interpreter/classes/RexxInfoClass.cpp
===================================================================
--- interpreter/classes/RexxInfoClass.cpp       (revision 11825)
+++ interpreter/classes/RexxInfoClass.cpp       (working copy)
@@ -457,7 +457,18 @@
     return new_integer(Numerics::MIN_EXPONENT);
 }

+/**
+ * Return the maximum FileName length allowed by the file system
+ *
+ * @return (Windows) MAX_PATH - 1 or (Unix) NAME_MAX, as an Integer object.
+ */
+RexxObject *RexxInfo::getMaxFileNameLength()
+{
+    // usable length is one less, as one char is reserved for the terminating 
NUL
+    return new_integer(SysFileSystem::MaximumFileNameLength - 1);
+}

+
 /**
  * Return the maximum path length allowed by the file system
  *
Index: interpreter/classes/RexxInfoClass.hpp
===================================================================
--- interpreter/classes/RexxInfoClass.hpp       (revision 11825)
+++ interpreter/classes/RexxInfoClass.hpp       (working copy)
@@ -91,6 +91,7 @@
     RexxObject *getInternalMinNumber();
     RexxObject *getMaxExponent();
     RexxObject *getMinExponent();
+    RexxObject *getMaxFileNameLength();
     RexxObject *getMaxPathLength();
     RexxObject *getMaxArraySize();

Index: interpreter/execution/CPPCode.cpp
===================================================================
--- interpreter/execution/CPPCode.cpp   (revision 11825)
+++ interpreter/execution/CPPCode.cpp   (working copy)
@@ -1213,6 +1213,7 @@
 CPPM(RexxInfo::getInternalMinNumber),
 CPPM(RexxInfo::getMaxExponent),
 CPPM(RexxInfo::getMinExponent),
+CPPM(RexxInfo::getMaxFileNameLength),
 CPPM(RexxInfo::getMaxPathLength),
 CPPM(RexxInfo::getMaxArraySize),

Index: interpreter/memory/Setup.cpp
===================================================================
--- interpreter/memory/Setup.cpp        (revision 11825)
+++ interpreter/memory/Setup.cpp        (working copy)
@@ -1240,6 +1240,7 @@
         AddMethod("internalMinNumber", RexxInfo::getInternalMinNumber, 0);
         AddMethod("maxExponent", RexxInfo::getMaxExponent, 0);
         AddMethod("minExponent", RexxInfo::getMinExponent, 0);
+        AddMethod("maxFileNameLength", RexxInfo::getMaxFileNameLength, 0);
         AddMethod("maxPathLength", RexxInfo::getMaxPathLength, 0);
         AddMethod("maxArraySize", RexxInfo::getMaxArraySize, 0);

Index: interpreter/platform/unix/SysFileSystem.hpp
===================================================================
--- interpreter/platform/unix/SysFileSystem.hpp (revision 11825)
+++ interpreter/platform/unix/SysFileSystem.hpp (working copy)
@@ -56,13 +56,11 @@
 #elif defined(_POSIX_PATH_MAX)
 #define MAXIMUM_PATH_LENGTH _POSIX_PATH_MAX + 1
 #else
-#define MAXIMUM_PATH_LENGTH
+#define MAXIMUM_PATH_LENGTH 1025
 #endif

-#if defined(FILENAME_MAX)
-#define MAXIMUM_FILENAME_LENGTH FILENAME_MAX + 1
-#elif defined(_MAX_FNAME)
-#define MAXIMUM_FILENAME_LENGTH _MAX_FNAME + 1
+#if defined(NAME_MAX)
+#define MAXIMUM_FILENAME_LENGTH NAME_MAX + 1
 #elif defined(_POSIX_NAME_MAX)
 #define MAXIMUM_FILENAME_LENGTH _POSIX_NAME_MAX + 1
 #else

_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to