ANSI2KNR(1)

NAME
ansi2knr - konvertiert ANSI C zu Kernighan & Ritchie C

SYNTAX
ansi2knr [--filename Dateiname] [Eingabedatei [Ausgabedatei]]

BESCHREIBUNG
--filename setzt den Dateinamen für die #line-Anweisung in der Ausgabe anstatt die Eingabedatei (falls angegeben) zu benutzen.

Falls keine Eingabedatei angegeben wird, wird die Eingabe von der Standardeingabe (stdin) gelesen.

Falls keine Ausgabedatei angegeben wird, wird die Ausgabe zur Standardausgabe (stdout) geschrieben.

Es gibt keine Fehlermeldungen.

ansi2knr erkennt Funktionsdefinitionen indem nach nicht Schlüsselwortbezeichnern am linken Rand gesucht wird, denen eine linke Klammer folgt und dessen Zeile mit einer rechten Klammer endet; und mit einen linken geschweiften Klammer as erstes Element in der folgenden Zeile. (Dabei werden etwaige dazwischenliegende Kommentare ignoriert.) Es erkennt mehrzeilige Header falls keine Zeilen dazwischen mit einer geschweiften Klammer oder einem Semikolon enden. Dieser Algorithmus ignoriert Leerzeichen und Kommentare mit Außnahme, daß der Funktionsname als erstes in der Zeile stehen muß.

ansi2knr erkennt auch aufeinanderfolgende Zeichkettenkonstanten und verschmelzt diese.

Folgende Konstrukte verwirren das Programm:
     - Alle anderen Konstrukte die am linken Rand beginnen und den oben genannten Syntax besitzten (wie Makros oder Funktionsaufrufe).
     - Einige Makros, die mit der Syntax von Funtionsheadern herumdoktoren.
     - Zeichenkettenliterale, dessen Verknüpfung verlangt, daß der Inhalt geändert werden muß; beispielsweise wird "ab " "07c" zu "ab 07c" verknüpft, was falsch ist.

Der --varargs Schalter ist obsolet und wird nur noch aus Kompatibilitätgründen erkannt. Die aktuelle Version von ansi2knr wird immer versuchen, ein ... Argument zu va_alist und va_dcl zu konvertieren.

AUTOR
L. Peter Deutsch <ghost@aladdin.com> schrieb die urspüngliche Version von ansi2knr und pflegt diese noch immer; der größte Teil des Programmes wurde von ihm geschrieben. ansi2knr enthält also Ergänzungen von Francois Pinard <pinard@iro.umontreal.ca>, Jim Avera <jima@netcom.com> und Paul Eggert <eggert@twinsun.com>.