Last Monday I moved to a new PC running Microsoft Windows 7 Home Premium (6.1.7601 Service
Pack 1 Build 7601) and I've upgraded to REXX-Regina_3.9.0(MT) 5.00 16 Oct 2014.
I have a Rexx program that uses SysFileTree a number of times to check various parts the support material for the website that I maintain looking for work that needs to be done. This program worked without any problems on my old PC that ran Windows XP. Unfortunately this is no longer true, on the 3rd or 4th repetition of SysFileTree the Rexx Launcher crashes and burns...
I've also tested this with both the 32 and 64 bit versions of earlier Reginas with the same results.
The attached Rexx file is a sub-set of the one that failed and it also fails in the same way.
F:\FANAC>tester 18 *-* do an = 1 to words(Areas) >L> "1" >V> "WORLDCON\ FAN_FOTO\ OTHER\ ARTIFACT\ FANZINES\" >F> "5" >V> "1" 19 *-* r = SysFileTree(word(Areas, an) || '*.SRC', 'Result.', 'SFL', '+****') >V> "WORLDCON\ FAN_FOTO\ OTHER\ ARTIFACT\ FANZINES\" >V> "1" >F> "WORLDCON\" >L> "*.SRC" >O> "WORLDCON\*.SRC" >L> "Result." >L> "SFL" >L> "+****" >F> "0" 20 *-* if Result.0 > 0 then do >V> "0" >L> "0" >O> "0" 27 *-* end 18 *-* do an = 1 to words(Areas) >V> "1" >V> "2" 19 *-* r = SysFileTree(word(Areas, an) || '*.SRC', 'Result.', 'SFL', '+****') >V> "WORLDCON\ FAN_FOTO\ OTHER\ ARTIFACT\ FANZINES\" >V> "2" >F> "FAN_FOTO\" >L> "*.SRC" >O> "FAN_FOTO\*.SRC" >L> "Result." >L> "SFL" >L> "+****" >F> "0" 20 *-* if Result.0 > 0 then do >V> "0" >L> "0" >O> "0" 27 *-* end 18 *-* do an = 1 to words(Areas) >V> "2" >V> "3" 19 *-* r = SysFileTree(word(Areas, an) || '*.SRC', 'Result.', 'SFL', '+****') >V> "WORLDCON\ FAN_FOTO\ OTHER\ ARTIFACT\ FANZINES\" >V> "3" >F> "OTHER\" >L> "*.SRC" >O> "OTHER\*.SRC" >L> "Result." >L> "SFL" >L> "+****"
As I don't have the same directory structure as you, then I have no problem running the test script. I assume that you have *.SRC files in the OTHER directory, and it something about these files that is causing the crash. Please send me a directory listing of these files so I can replicate your environment for testing.
--Original Message Text---
From: Mark Hessling
Date: Mon, 09 Feb 2015 21:07:31 +0000
assigned_to: Mark Hessling
Comment:
As I don't have the same directory structure as you, then I have no problem running the test
script. I assume that you have *.SRC files in the OTHER directory, and it something about these
files that is causing the crash. Please send me a directory listing of these files so I can
replicate your environment for testing.
[bugs:#447] Regina Rexx Launcher (x64) has stopped working
It a pretty good sized chunk of material. Just the four directories total 1.92 GB. The whole
thing is 76,261 files, 704 dirs, 4.94 GB. I could zip either the four directories or the whole
thing and burn a data DVD and send it to you via snail mail or whatever... Your choice...
ARTIFACT 47 files, 1 dirs, 657.85 KB
FAN_FOTO 3,561 files, 1 dirs, 39.73 MB
OTHER 10,847 files, 101 dirs, 159.34 MB
WORLDCON 19,593 files, 62 dirs, 1.62 GB
1.92 GB
There are source (.SRC) files in all four of the directories, they are just ASCII text files
that hold the captions, credits, and other stuff for the photos in the on-line photo albums.
None of the have their Archive flag set at the moment, that's what I'm checking for.
Jack Weaver, Webmaster
The Fanac Fan History Project http://fanac.org
Related
Bugs: #447
Probably I can give a hint:
SysFileTree() in Windows always stops the Rexx launcher without any error message or return code if a file is to be listed where path plus filename have a length greater 255.
Perhaps there is a buffer length problem.
I have to correct me regarding the maximum possible
length lmax of path+filename with SysFileTree:
1) Without options l, t and o, lmax is 382 and the
function causes a Regina break if files exceed it.
2) With options l or t but without o, lmax is a bit
less than 382. Break otherwise.
3) With option o, lmax is 419 and Sysfiletree silently
ignores any non-compatible files. No breaks.
4) The limits occur only if argument filespec has a
full path. Since otherwise output is without file
path (in contrast to the description?) and seems
not to have these limits.
I apologize for a further remark: Since I have obtained the
above numbers by testing with a fixed filename length of 165,
I found one could better conclude my results in the form:
SysFileTree fails if it has to list files where the
sum of path length and file data columns exceeds 254.
File data columns are: 0/36/37/39 with option o/t/-/l.
Failing causes files being skipped with option o,
a program stop by the OS otherwise.
Btw, my conclusion does not say anything on filename lengths.
I like to say at this occasion that Patrick McPhee's Rexxutils are an invaluable piece of work for the REXX users and that SysFileTree is one of the highlights of them for me since more than a decade.