POINT ONE The logic to determine the MAXIMUM_FILENAME_LENGTH is broken
the relevant code form the rexx sources #include <limits.h> #include <stdio.h> #if defined(PATH_MAX) # define MAXIMUM_PATH_LENGTH PATH_MAX + 1 #elif defined(_POSIX_PATH_MAX) # define MAXIMUM_PATH_LENGTH _POSIX_PATH_MAX + 1 #else # define MAXIMUM_PATH_LENGTH #endif #if defined(FILENAME_MAX) # define MAXIMUM_FILENAME_LENGTH FILENAME_MAX + 1 #elif defined(_MAX_FNAME) # define MAXIMUM_FILENAME_LENGTH _MAX_FNAME + 1 #elif defined(_POSIX_NAME_MAX) # define MAXIMUM_FILENAME_LENGTH _POSIX_NAME_MAX + 1 #else # define MAXIMUM_FILENAME_LENGTH 256 #endif int main() { printf("MAXIMUM_PATH_LENGTH %d\n", MAXIMUM_PATH_LENGTH); printf("MAXIMUM_FILENAME_LENGTH %d\n", MAXIMUM_FILENAME_LENGTH); return (0); } Gives APPLE / FreeBSD / OpenBSD MAXIMUM_PATH_LENGTH 1025 MAXIMUM_FILENAME_LENGTH 1025 Fedora29/Debian9 MAXIMUM_PATH_LENGTH 4097 MAXIMUM_FILENAME_LENGTH 4097 The right coding #include <limits.h> #include <stdio.h> #if defined(PATH_MAX) # define MAXIMUM_PATH_LENGTH PATH_MAX + 1 #elif defined(_POSIX_PATH_MAX) # define MAXIMUM_PATH_LENGTH _POSIX_PATH_MAX + 1 #else # define MAXIMUM_PATH_LENGTH 1025 #endif #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 # define MAXIMUM_FILENAME_LENGTH 256 #endif int main() { printf("MAXIMUM_PATH_LENGTH %d\n", MAXIMUM_PATH_LENGTH); printf("MAXIMUM_FILENAME_LENGTH %d\n", MAXIMUM_FILENAME_LENGTH); return (0); } Returns Darwin/FreeBSD/OpenBSD MAXIMUM_PATH_LENGTH 1025 MAXIMUM_FILENAME_LENGTH 256 Debian9/Fedora29 MAXIMUM_PATH_LENGTH 4097 MAXIMUM_FILENAME_LENGTH 256 Also the maximum path length should be defined to something Or the build should be aborted # define MAXIMUM_PATH_LENGTH 1025 Should be a reasonable value The current # define MAXIMUM_PATH_LENGTH Results in /Users/enrico/ooRexx.svn.src/interpreter/platform/unix/SysFileSystem.hpp:85:49: error: expected expression MaximumPathLength = MAXIMUM_PATH_LENGTH, POINT TWO The utilisation of MaximumPathLength MaximumFileNameLength MAXIMUM_PATH_LENGTH MAXIMUM_FILENAME_LENGTH .rexxinfo~maxpathlength Is consistently inconsistent , Sometime they are used as the length of the items Sometime they are used as the length of the buffer to be allocated POINT THREE It might be useful To have also a .rexxinfo~maxfilenamelength POINT FOUR. Test: TEST_REXXINFO_DATE Given the current coding is likely to fail randomly The dates are filled using the compiler builtin __DATE__ The two terms to be compared are build by different sources In an incremental build ( as per make/ninja logic ) the two sources might not be built at the same time resulting in the mismatch Just happened a few minutes ago POINT FIVE please run - on a unix like system d = copies("D",5000) call sysmkdir(d) f = copies("F",5000) call lineout f , "a truckload of equine nitrogen waste” o=.stream~new(f) o~open("replace" ) o~lineout( "a truckload of equine nitrogen waste" ) o~close This just very small oversight has been there at least since ooRexx-4.1.2 ( could not test one previous versions ) To give You a hint … Nothing is told, nothing happens The script runs happily without any error Regina rexx nicely complains DOES NOT DEPEND ON POINTS ONE/TWO E
_______________________________________________ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel