Dear Rony,

Program seems to work (surprise :-) ) I have made a "dry run“ and can see that 
some files have a changed content (CRLF removed), I will build and compare the 
output and report back.

What Gil writes makes it meaningful to apply the fix as early as possible, this 
will be interesting to compare (since I can run with or without Erichs filter 
now).


Hälsningar/Regards/Grüsse,
P.O. Jonsson
oor...@jonases.se



> Am 21.02.2020 um 16:48 schrieb Gil Barmwater <gbarmwa...@alum.rpi.edu>:
> 
> Rony,
> 
> Sorry for not replying about your program earlier :-[. My initial reaction 
> was that it seemed to be somewhat of a duplicate of Erich's program except 
> that it is run against the source BEFORE the transform as opposed to against 
> the .fo file after the transform. I was also concerned that there might be 
> some exceptional cases that would not be caught by your code and would still 
> leave blank lines. So I have not tried it yet having had other "fish to fry". 
> There is one big advantage to removing the blanks from the source and that is 
> that the page numbers in the index would then be correct which they are not 
> (in many cases) using Erich's program. This is because in removing the blank 
> lines the document gets shorter and sections may move to earlier page numbers 
> but the index is generated during the transform step while the blanks are 
> still present thus creating errors in the final PDF. I hope to try your 
> program soon and I will let you know my results.
> 
> Gil B.
> On 2/21/2020 6:44 AM, Rony G. Flatscher wrote:
>> On 20.02.2020 23:20, P.O. Jonsson wrote:
>>> This is just to inform that I have managed to inject Erich Rexx script in 
>>> my build chain so that my built documents should now be 100% the same as 
>>> yours and the ones built by Erich or Rick. I could only test it on 
>>> rexxref.pdf but that is a beast and if it works there the rest should be ok.
>>> 
>>> Removing the additional spaces shrunk rexxref.pdf with 10 pages and 
>>> ooDialog with 182 pages ! ooDialog.pdf is now ???only??? 1898 pages :-)
>> The following program needs to be run from "oorexx/doc/trunk" and will 
>> replace leading and trailing empty lines in the content of "programlisting" 
>> elements which are probably the cause for the blank lines.
>> 
>> If you then run the documentation generation, then those blank lines should 
>> not show up anymore.
>> Program "stripBlankLinesFromProgramlistingElements.rex" that removes leading 
>> and trailing CR-LF from programlistings. Run it in the doc-branch you want 
>> to work with, e.g. from "oorexx/doc/trunk":
>> 
>> ---rgf, 2020-02-02: strip CR-LF from ooRexx xml program listings
>> start=.dateTime~new
>> call sysfiletree "*.xml", "files.", "FOS"
>> end =.dateTime~new
>> say "SysFileTree duration:" end-start", about to process" files.0 "files"
>> 
>> len=files.0~length
>> do i=1 to files.0
>>    say i~right(len)":" files.i
>>    call stripBlankLines files.i
>> end
>> end =.dateTime~new
>> say "processed" .count~counter "<programlisting> elements, duration:" 
>> end-start
>> 
>> ::routine stripBlankLines
>>    parse arg fileName
>> 
>>    inStr=.stream~new(fileName)~~open("read")
>>    chars=inStr~chars
>>    allChars=inStr~charin(1,chars)
>>    inStr~close
>> 
>>    startNeedle="<programlisting>"
>>    endNeedle  ="</programlisting>"
>>    crlf       ="0d0a"x
>>    mbOut=.mutableBuffer~new(,chars)
>> 
>>    do while allChars<>""
>>       parse var allChars before (startNeedle) program (endNeedle) allChars
>>       if program="" then
>>       do
>>          if allChars="" then  -- arrived at end of file
>>             mbOut~append(before)
>>          else  -- maybe a placeholder of whitespace
>>             mbOut~append(before, startNeedle, program, endNeedle)
>>       end
>>       else     -- strip leading and trailing CR-LF characters
>>       do
>>          mbOut~append(before, startNeedle, program~strip("both",crlf), 
>> endNeedle)
>>          .count~increase
>>       end
>>    end
>> 
>>       -- write new file
>>    .stream~new(fileName)~~open("write replace")~~charout(mbOut~string)~close
>> 
>> 
>> ::class count
>> ::attribute counter class
>> 
>> ::method    init   class
>>   expose counter
>>   counter=0
>> 
>> ::method    increase class
>>   expose counter
>>   counter+=1
>> If something would go wrong, then you could always re-instate the original 
>> version of the documentation by issuing an "svn revert" command, so testing 
>> the above program should be safe from that respect as well. 
>> Could you try that out and report whether it solved the empty line problem? 
>> (The program can be run repeatedly, in the case that new programlisting-code 
>> gets added to the documentation and there is a need to remove leading and 
>> trailing empty lines again.)
>> 
>> ---rony
>> 
>> 
>> ??
>> 
>> 
>> 
>> _______________________________________________
>> Oorexx-devel mailing list
>> Oorexx-devel@lists.sourceforge.net 
>> <mailto:Oorexx-devel@lists.sourceforge.net>
>> https://lists.sourceforge.net/lists/listinfo/oorexx-devel 
>> <https://lists.sourceforge.net/lists/listinfo/oorexx-devel>
> -- 
> Gil Barmwater
> _______________________________________________
> Oorexx-devel mailing list
> Oorexx-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/oorexx-devel

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

Reply via email to