Dear Rony,

Will do but later, I am in the middle of something.

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



> Am 21.02.2020 um 12:44 schrieb Rony G. Flatscher <rony.flatsc...@wu.ac.at>:
> 
> 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
> 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