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

Reply via email to