CU Tom.
(Thomas M.Ott)
From: ThMO <address@hidden>
Date: November 14, 2004 02:48:09 PST
To: address@hidden
Subject: [Fwd: grep v2.5.1]
Hi folks,
the attached mailwasn't delivered to the maintainer of grep v2.5.1, as
stated
within the source code package's AUTHOR file.
Please do forward it to this person. THX
CU Tom.
From: ThMO <address@hidden>
Date: November 14, 2004 02:08:58 PST
To: address@hidden
Subject: grep v2.5.1
Hallo Bernhard,
ich nutze die Gelegenheit, Dir in Deutsch zu schreiben.
Ich hatte meinen grep von v2.0 auf v2.5.1 upgedatet und dabei Probleme:
· ./configure --disable-nls:
1. Versuch: Linker bricht mit einem Fehler ab, da in libgreputils.a
die Funktion gettext() aufgerufen wird - nach Inspektion der
config.h
wird dort vermerkt, daß die Datei libintl.h präsent ist
=> nur weil ich die Dateien libintl.[ha] installiert habe, hat die
Option
--disable-nls Vorrang und die libintl.h darf nicht included werden
-> habe temporär die libintl.h aus dem include-path entfernt
2. Versuch: nach erneutem configure Lauf: Linker bricht mit dem
Fehler ab,
daß er die Funktion wcscoll() nicht einbinden kann
=> diese Funktion kennt meine libc-5.4.46 nicht - auch wird diese in
der
wchar.h nicht aufgelistet
-> grundsätzlich wäre es, auch für andere GNU tools, durchaus
anzudenken,
ob nicht analog zu --disable-nls etwa eine Option
--disable-wide-char,
oder so ähnlich, eingeführt würde, denn schließlich müssen nicht
alle
so breite Zeichen verarbeiten, wobei es noch immer die
Möglichkeit gäbe,
sich der libiconv zu bedienen - so als Anmerkung
-> habe temporär die Dateien wchar.h und wctype.h aus dem
include-path ent=
fernt
3. Versuch: nach einem erneuten configure Lauf war alles O.K.
FYI mein System: Linux 2.0.35, gcc 2.7.2.1, libc 5.4.46,
binutils 2.9.1.0.4 und 2.14 (gas + objdump für MMX)
und bitte - frage mich nicht, ob ich mein System "upgraden"
möchte... THX
· grep.1:
vor der Option `-P' fehlt eine Zeile mit der Anweisung `.TP', damit
diese
Option korrekt aufgelistet wird - desweiteren, da die Optionen
sortiert sind,
müßte sie nach unten verschoben werden
ja, ich weiß, daß die GNU Leute ihre info Dateien bevorzugen - ich
persönlich
präferiere die man-pages und sehe mir die info's dann an, wenn ich
einen etwas
tiefergehenden Einblick wünsche, wobei info Dateien auch einen
Nachteil haben:
-> apropos und whatis
· grep.[c1]:
weder die man-page noch die Option --help listen die Option `-X
<matcher>',
in diesem Kontext hauptsächlich ``-X awk'', auf
(auch die info Datei benennt diese Option nicht)
· grep.c:
es wird grundsätzlich die Funktion `set_matcher()' verwendet, bis
auf ein ein=
ziges Mal - und zwar nach dem Verarbeiten der Optionen, was wohl
inkonsequent
ist...
· grep.c:
folgender Aufruf: egrep -P <expr> <file>
Fehlermeldung: conflicting matchers specified
-> nach Inspektion dieser Datei stellt sich mir die Frage, was diese
Fehler=
meldung soll ?
es wird *nichts* matcher-spezifisches aufgesetzt, sodaß die
Sinnhaftigkeit
dieser Fehlermeldung in Frage gestellt werden darf...
-> man könnte gleich die gesamte Funktion set_matcher() eliminieren
· grep.c:
* start of extract out of main() *
1 program_name = argv[0];
2 if (program_name && strrchr (program_name, '/'))
3 program_name = strrchr (program_name, '/') + 1;
* end of extract *
Zeile 1+2: unter Unix Systemen kann `program_name' gar nicht NULL
sein - dies
passiert höchstens unter Windoof Systemen, (zu diesem Punkt werde
ich einige
Zeilen weiter unten noch meine Senf dazugeben) sodaß dieser sinnlose
Vergleich
per #ifdef auskommentiert werden kann
Zeile 2+3: die Funktion strrchr() wird 2× aufgerufen - auch wenn
sich das auf
heutigen Kisten im GHz Bereich nicht sonderlich auswirkt, (wiewohl
nicht jeder
eine so schnelle Kiste hat) ist das eine Verschwendung von Resourcen
Ich habe so in letzter Zeit den Eindruck, daß GNU Software schon
lange nimmer
das ist, was sie mal war - obiges hätte ich vor Jahren wohl niemals
sehen dürfen.
Auch scheint es so auszusehen - und bitte, das ist keine Kritik an
Dir persönlich,
sondern schon etwas allgemeiner - als ob für die GNU Jungs die
Unterstützung von
Maso$oft oberste Priorität hätte - ich erinnere mich an einen
Vortrag von RMS,
als er gegen M$ wetterte, muß heute jedoch erkennen dürfen, daß
meine ältere
Linux-Kiste als obsolet abgestempelt wird, während M$, in großen
Teilen jeg=
liche Standards verletzend, unterstützt wird. Das ist sehr
verwunderlich...
BTW, ich begrüße es, daß diese Version wieder - im Gegensatz zur
v2.4.2 - den
Namen des Kommandos inspiziert, um dessen Funktion zu bestimmen, auch
wenn POSIX
das mal wieder anders sieht - wobei manche POSIX Regelungen durchaus
in Frage zu
stellen sind, was wohl auch daran liegen dürfte, daß M$ dort gewichtig
vertreten
ist...
Die Option `--color' ist eine nette Spielerei - erspart mir in manchen
Situationen
die Sequenz `egrep ... | less', wobei ich im `less' nochmals
dieselbige RE an=
setze, damit die betreffenden Stellen hervorgehoben werden.
Das soll's gewesen sein - wünsche Dir noch'n schönen Tag.
Salút Tom.
(Thomas M.Ott)