Index: freexp/docform.pas =================================================================== RCS file: /server/cvs/freexp/docform.pas,v retrieving revision 1.18 retrieving revision 1.20 diff -u -r1.18 -r1.20 --- a/freexp/docform.pas 20 Jan 2004 10:20:22 -0000 1.18 +++ b/freexp/docform.pas 27 May 2004 03:10:44 -0000 1.20 @@ -12,20 +12,22 @@ { --------------------------------------------------------------- } { Originalautor : Peter Mandrella } { Datum : Nov. 1991 } -{ $Id: docform.pas,v 1.18 2004/01/20 10:20:22 jm Exp $ } +{ $Id: docform.pas,v 1.20 2004/05/27 03:10:44 jm Exp $ } {$R-} {$M 32768,0,655360} uses dos,typeform,fileio,xpglobal; const - l_ver = '2.0'; - + l_ver = '2.0a'; + ParamTab : array[92..92] of byte = +{92} ( 32 ); { Ersatzzeichen für Leerzeichen in Schalter-Namensangaben } var infile,outfile,logfile : pathstr; dlog : text; rand,breite : integer; NoMark : boolean; { keine "|"-Markierungen } + swidata : string; TriggerVar : string; DocTitle : string; content : string; @@ -49,32 +51,51 @@ tablog, tab0log, tab1log, utablog, tab2log : integer; twoplus, twomin, escsq, rmlog, rm1log, qverwlog, qverw1log: integer; +procedure Ersatzzeichen; Assembler; +asm + cld + mov bx,offset ParamTab - 92 + mov si,offset swidata + lodsb + mov cl,al + mov ch,0 + jcxz @@3 +@@1: lodsb + cmp al,92 + jne @@2 + xlat + mov [si-1],al +@@2: loop @@1 +@@3: +end; + procedure usage; const crlf = #13#10; begin writeln( - ' Usage: DocForm ? | <infile><outfile><Breite><Rand> [N] -[_optkixv-]' ,+crlf+ - ' * Breite und Rand ohne Angaben haben die Default-Werte: 71 3.' ,+crlf+ - ' -_[] -> Logfile fehlerhaftem Zeilenumbruchs (Default: DOCFORM.LOG).' ,+crlf+ - ' -o[o] -> schaltet den Pseudoblocksatz bei Aufruf AUS (-oo immer AUS)' ,+crlf+ - ' N -> als 5. Argument gesetzt deaktiviert die Randmarkierung "|".' ,+crlf+ - ' ? -> als 1. Argument statt der Eingabedatei zeigt den Hilfstext.' ,+crlf+ - ' Beispiele: DocForm xpoint.dq xpoint.doc 68 5 (wer es klassisch mag)' ,+crlf+ - ' * Alle weiteren Schalter sind NUR mit Schalter -p[] einsetzbar' ,+crlf+ - ' DocForm xpoint.dq xpoint.txt 73 1 -p (Printformat mit -p)' ,+crlf+ - ' DocForm in out 71 3 -p -v -- (mit Report, temp. Files)' ,+crlf+ - ' DocForm x y 71 3 -p66 -tAnfang -k^Doku^1^ (neue Bezeichner)' ,+crlf+ + ' Usage: DocForm ? | <infile><outfile><Breite><Rand> [N] [-[_optkixv-]]' ,+crlf+ + ' * 4 obligat. Argumente + Schalter in beliebiger Reihenfolge *' ,+crlf+ + ' N -> als 5. Argument gesetzt deaktiviert die Randmarkierung "|"' ,+crlf+ + ' ? -> als 1. Argument statt der Eingabedatei zeigt den Hilfstext' ,+crlf+ + ' -_[] -> Logfile fehlerhaften Zeilenumbruchs (Default: DOCFORM.LOG)' ,+crlf+ + ' -o[o] -> schaltet den Pseudoblocksatz zum Start AUS (-oo immer AUS)' ,+crlf+ + ' * Breite und Rand ohne Angaben haben den Default-Wert: 71 3 *' ,+crlf+ + ' Beisp.: DocForm xpoint.dq xpoint.txt 68 5 (wer es klassisch mag)' ,+crlf+ + ' DocForm xpoint.dq xpoint.txt 73 1 -p (Printformat mit -p)' ,+crlf+ + ' * Alle weiteren Schalter sind NUR mit Schalter -p[] nutzbar *' ,+crlf+ + ' DocForm in out 71 3 -p -v -- (mit Report, temp. Files)' ,+crlf+ + ' DocForm x y 71 3 -p66 -tAnfang -k\Doku\1\ (neue Bezeichner)' ,+crlf+ ' -p>9 -> Printformat mit Kopf, Seitenzahlen, neuer Numerierung sowie' ,+crlf+ ' einem formatierten Inhaltsverzeichnis/Tabellenverzeichnis.' ,+crlf+ - ' -p -> ohne Parameter bzw. < 10 mit Default-Wert: 60 Zeilen/Seite.' ,+crlf+ + ' -p -> ohne Parameter oder -p<10 => Default-Wert: 60 Zeilen/Seite.' ,+crlf+ ' -p- -> schaltet die Seitenformatierung AUS! m. Kapitelnumerierung,' ,+crlf+ ' erweitertem Inhaltsverzeichnis, ohne Kopf u. Seitenzahlen.' ,+crlf+ - ' -t^foo -> Beginn/Ende beim Inhaltsverzeichnis (Default: I Einführung)' ,+crlf+ - ' -k^baa -> neuen Namen im Seitenkopf eintragen statt (Default: FreeXP)' ,+crlf+ - ' -i^xyz -> neue Namensbezeichnung Inhaltsverzeichnis (Default: Inhalt)' ,+crlf+ - ' * Format: "^" Ersatz des Leerzeichens bei Namensbezeichnungen' ,+crlf+ ' -x -> schaltet die Auswertung der Querverweise AN, Bsp.: (->S.20)' ,+crlf+ - ' -v -> Report, Umleitung mit ">"; -- -> temp. Files erhalten' + ' * "\" Ersatzzeichen statt Leerzeichen bei der Namensvergabe *' ,+crlf+ + ' -tf\oo -> Beginn/Ende beim Inhaltsverzeichnis (Default: I Einführung)' ,+crlf+ + ' -k\bar\ -> neuen Namen im Seitenkopf eintragen (statt Default: FreeXP)' ,+crlf+ + ' -ixyz -> neue Namensbezeichnung Inhaltsverzeichnis (Default: Inhalt)' ,+crlf+ + ' -v -> Report, Umleitung mit ">" -- -> temp. Files erhalten' ); halt(0) end; @@ -1785,10 +1806,11 @@ { the string for use. } {------------------------------------------------------------------------------} -{ Anmerkung: Meiner Beobachtung nach werden bei Parameter(2) das letzte } +{ JM Anmerkung: Meiner Beobachtung nach werden bei Parameter(2) das letzte } { Quotezeichen ebenfalls angezeigt. Eine sinnvolle Kombination von SwitchNum(x) } -{ und Parameter(x) ist nicht generell möglich, weswegen auf ein Ersatzzeichen "^" } -{ für das Leerzeichen in Strings zurückgegriffen wurde. JM } +{ und Parameter(x) ist nicht generell möglich, weswegen nunmehr auf ein } +{ Ersatzzeichen "\" für das Leerzeichen in Strings zurückgegriffen wurde, (da } +{ Windows XP das in der DocForm 2.0 gewählte "^" anscheinend nicht akzeptiert). } { Kommandozeile aus dem Speicher lesen } Function CmdLine : string; @@ -1896,24 +1918,27 @@ { Default-Wert der Startvariablen } if SwitchThere('t') then begin if switchdata('t')<>'' then begin - TriggerVar:=switchdata('t'); - while pos(#94,TriggerVar) >0 do TriggerVar[pos(#94,TriggerVar)] :=' '; {^ zu Leerzeichen} + swidata:=switchdata('t'); + Ersatzzeichen; + TriggerVar:=swidata; end else TriggerVar:='I Einführung'; end; { Default-Wert des Namens in der Kopfzeile } if SwitchThere('k') then begin if switchdata('k')<>'' then begin - DocTitle:=switchdata('k'); - while pos(#94,DocTitle) >0 do DocTitle[pos(#94,DocTitle)] :=' '; {^ zu Leerzeichen} + swidata:=switchdata('k'); + Ersatzzeichen; + DocTitle:=swidata; end else DocTitle:='FreeXP'; end; { Default-Wert des Inhaltsnamens vor dem Inhaltsverzeichnis } if SwitchThere('i') then begin if switchdata('i')<>'' then begin - content:=switchdata('i'); - while pos(#94,content) >0 do content[pos(#94,content)] :=' '; {^ zu Leerzeichen} + swidata:=switchdata('i'); + Ersatzzeichen; + content:=swidata; end else content:='Inhalt'; end; @@ -1989,7 +2014,7 @@ writeln(' DocForm lief im einfachen Modus. Die erweiterte Formatierung'); writeln(' wird mit dem Optionsschalter -p[-|n>9] aufgerufen.'); end; - if not verbose and docmode then writeln(' (weitere Infos mit Schalter-v)'); + if not verbose and docmode then writeln(' (weitere Infos mit Schalter -v)'); if docmode then begin d2format; if verbose then begin @@ -2059,6 +2084,17 @@ end. { $Log: docform.pas,v $ + Revision 1.20 2004/05/27 03:10:44 jm + JM: Hilfstext nochmals korrigiert + + Revision 1.19 2004/05/27 01:07:21 jm + JM: Minor-Update auf v2.0a + - Ersatzzeichen der Leerzeichen bei den Schalter-Parametern + auf #92 = "\" und deren Konvertierung mit neuer "procedure + Ersatzzeichen" geaendert, da WindowsXP mit der alten Routine + nicht klarkam + - sowie Anpassung und etwas Kosmetik am Hilfstext vorgenommen + Revision 1.18 2004/01/20 10:20:22 jm JM: - Korrekturen am Hilfstext
------------------------------------------------------------------------ FreeXP CVS-Mailingliste [EMAIL PROTECTED] http://www.freexp.de/cgi-bin/mailman/listinfo/cvs-list