PrintC V1.1
-----------

PrintC dient -wie der Name schon sagt- dazu, C-Programme auszudrucken.
Es läßt sich sowohl vom CLI als auch von der WB aufrufen.
Nur der Aufruf von der WB stellt eine grafische Bedienungsoberfläche
zur Verfügung.

Ich habe großen Wert auf die Funktionssicherheit gelegt; es wird z.B.
geprüft auf:
   - Datei vorhanden
   - Datei richtig gelesen
   - ausreichend Speicher vorhanden
   - Drucker angeschlossen, Online

Der richtige Druckertreiber auf der WB muß voreingestellt sein.

AUFRUF VOM CLI:
---------------

Das Prg. wird wie folgt aufgerufen:
   PrintC FileToPrint <Optionen>

Es toleriert aber auch sowas:
   PrintC <Optionen> FileToPrint <Optionen>

oder sowas:
   PrintC <Optionen> FileToPrint

Der Aufruf:
   PrintC
gibt die Optionen aus.

Ein - (Minus-Zeichen) vor der Option schaltet sie AUS, d.h. sie ist
auf ON voreingestellt.
Ein + (Plus-Zeichen) vor der Option schaltet sie EIN, d.h. sie ist
auf OFF voreingestellt.

Die Optionen sind:

   -ln   schaltet die Zeilennummerierung aus
   -pd   (printer defaults), es werden die Printereinstellungen
         von der Workbench benutzt, ansonsten 1/8'' line spacing
         und condensed fine um möglichst viel auf einer Seite
         unterzubringen
   -b    Funktionsanfänge werden nicht dick gedruckt. Ansonsten
         versucht das Programm sie zu finden und - damit sie sich
         im Listing abheben - dick zu drucken.
         Damit das klappt, sollte in der Zeile nichts mehr stehen
         ( keine { oder sowas )
   -i    (indent, Einrücken). Es wird so gedruckt, wie es auf dem
         Bildschirm aussieht. Ansonsten werden verschachtelte An-
         weisungen um 3 Stellen eingerückt.
         Beispiel. Aus

         main()
         register UBYTE i;
         {
         puts("Hello");
         for (i=0;i<=333;++i)
         {
         puts("Echt geil");
         puts("Oh Mann,ey");
         }
         }

         auf dem Bildschirm wird

         main()
         register UBYTE i;
         {
            puts("Hello");
            for (i=0;i<=333;++i)
            {
               puts("Echt geil");
               puts("Oh Mann,ey");
            }
         }

         auf dem Papier.
         Damit es schön klappt, sollten die {} alleine in der
         Zeile stehen, das Programm nimmt es aber nicht so übel,
         wenn dem nicht so ist.

   +a    wenn eine Funktionszeile erkannt wurde, wird gefragt, ob
         sie auf ein neues Blatt (single sheet !!!) gedruckt werden
         soll. Bei y ja. Dies verhindert, daß die Funktion sooo
         unschön zerhackt wird:

            ausgabe()
            {
         --------------------------  neues Blatt
               printf("%d\n",wert);
            }

         Mein Seikosha spinnt da manchmal.

   Ein möglicher Aufruf könnte so aussehen:

         PrintC MyFile.c -pd +a

   für Druckereinstellungen der WB und Fragen nach FormFeed bei
   Funktionen.

Die Tastenkombination CTRL-C unterbricht die Ausführung des Programms.


AUFRUF VON DER WORKBENCH:
-------------------------

Durch einen Doppelklick.
Mit Hilfe von Gadgets können die Optionen eingestellt werden.
Der Name des zu druckenden Programms wird im Feld  'File to print'
eingegeben. Mögliche Fehlermeldungen (z.B. File nicht gefunden,
Drucker nicht betriebsbereit, Drucker konnte nicht geöffnet werden
[-> kein Treiber auf der Boot-Disk]) erscheinen im Ausgabefeld im
unteren Teil des Fensters.
Der Ausdruck kann mit dem Gadget 'Break' unterbrochen werden.
Es erscheint die Meldung 'DONE ... More ?'. Dann kann ein anderes File
durch die Angabe seines Namens ausgedruckt werden.
Ist die Option 'Ask for formfeed' eingeschaltet, erscheint bei jeder
(erkannten) neuen Funktion die Frage nach dem Formfeed. Eingabe von
'y' oder 'Y' bewirkt ihn, jede andere nicht.
Beendet wird das Programm mit dem Schließ-Gadget.


ÄNDERUNGEN SEIT V1.0
--------------------
   - Aufruf von der WB
   - grafische Bedienungsoberfläche
   - verbessertes Einrücken
   - bessere Funktionssicherheit
   - es wird der interne topaz8-Font benutzt (ausser beim Text-Gadget,
     was meines Wissens nach bei Kickstart 1.x nicht funktioniert.
     Da wird der aktuelle Zeichensatz benutzt, unter Kick 2.x ein
     beliebiger).

Das Program lauft mit der Kickstart 1.2/1.3. Mit 2.x sollte es auch,
das habe ich jedoch nicht getestet.

So, ich hoffe, daß PrintC jemandem nützt und gefällt.

Ciao.

E N D E
-------

