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