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