# HG changeset patch # User markus schnalke # Date 1431357240 -7200 # Node ID 04a8a33fc48a712957ed9fbc9657c211147a2ecb # Parent 7e1214b556b98c5192489f3d831814f748e3c897 Zwischenstand diff -r 7e1214b556b9 -r 04a8a33fc48a cut.txt --- a/cut.txt Mon May 11 07:09:00 2015 +0200 +++ b/cut.txt Mon May 11 17:14:00 2015 +0200 @@ -345,6 +345,38 @@ eigenen Einschaetzung des Lesers ueberlassen bleiben. +Die interne Struktur des C-Codes ist meist aehnlich. Neben der +obligatorischen main-Funktion, die die Kommandozeilenargumente +verarbeitet, gibt es im Normalfall eine Funktion, die die +Feldauswahl in eine interne Datenstruktur ueberfuehrt, desweiteren +haben fast alle Implementierungen separate Funktionen fuer die +zwei bzw. drei Modi. Bei den POSIX-konformen Implementierungen +wird die `-b -n'-Kombination als weiterer Modus behandelt, und +damit in einer eigenen Funktion umgesetzt. Nur bei der fruehen +System III-Implementierung (und seiner 4.3BSD-UWisc-Variante) +wird nichts aus der main-Funktion ausgelagert, ausser den +Fehlerausgaben. + +Bei System III ist die Anzahl der moeglichen Felder und damit auch +die Zeilenlaenge auf 512 begrenzt. + +Bei 4.3BSD-Reno liegt die Grenze bei _BSD_LINE_MAX + +NetBSD 1993 _POSIX2_LINE_MAX + +NetBSD 2012 dyn alloc + + +4.3BSD-Reno + * set a byte in the positions array to indicate if a field or + * column is to be selected; use +1, it's 1-based, not 0-based. + * This parser is less restrictive than the Draft 9 POSIX spec. + * POSIX doesn't allow lists that aren't in increasing order or + * overlapping lists. We also handle "-3-5" although there's no + * real reason too. + + + Schaut man sich die SCCS-IDs (die vom damaligen Versionskontrollsystem eingefuegt wurden) in den BSD-Quellen an, dann findet man dort Versionsnummern, die die Entwicklung