Ekke / tab2space


"Problem-Stellung"
Problem-Lösung
Ausgabe-Texte
Fehler und Mangel des originalen tab2space
Quell-Code


"Problem-Stellung"

Bei Servern die offensichtlich ein UNIX-Server sind, werden bei einem Upload alle CRLF-Zeilenumbrüche automatisch in LF-Zeilenumbrüche umgewandelt. Die Zeilenumbrüche werden auch "Zeilen-Ende-Marken" genannt. Bei dieser Umwandlung werden (wenn man von einem PC-DOS/Windows -System kommt) die Dateien etwas kleiner und haben das Upload-Datum. Ein einfacher Vergleich (nach Dateigröße und Dateidatum) mit den lokalen Dateien ist dann nicht mehr so ohne weiteres möglich. Man muß also vor dem Upload die CRLF-"Zeilen-Ende-Marken" in LF-"Zeilen-Ende-Marken" umwandeln. Diese Umwandlung ist mit dem tab2space aus den HTML Tidy Quellen möglich.

Bedauerlicher Weise hat dieses originale tab2space einige Fehler und auch einen Mangel. Deswegen wurden die Fehler bereinigt und die Option -date ergänzt. Bei der Gelegenheit wurden auch gleich die wenigen Ausgabe-Texte ins Deutsche "übersetzt".

Problem-Lösung

Wenn Sie dann ausreichend "Vertrauen" zu diesem Verfahren haben, brauchen Sie es nicht mehr über die Kopie erledigen. Die Kopie gibt Ihnen aber gewisse Sicherheit vor DatenZerstörung, denn ich übernehme keinerlei Garanien!

Ausgabe-Texte

Dienstprogramm zur Ersetzung der Tabulatoren durch Leerzeichen und
zum Setzen von gleichen ZeilenEnde Marken

Aufruf:
   tab2space [Opt] [Ein Aus ...] [Ein/Aus] [Opt [Ein Aus ...] [Ein/Aus]] ...

   Opt     = Optionen (werden gar keine angegeben, gilt Standard: -t4 -crlf )
   Ein Aus = EingabeDatei und darauf folgend (leerzeichengetrennt) AusgabeDatei
   Ein/Aus = die angegebene EingabeDatei wird UEBERSCHRIEBEN
   [...]   = kann, muss nicht angegeben werden
    ...    = Vorheriges kann so mehrfach angegeben werden
   Wenn Angaben erfolgen, muss deren REIHENFOLGE eingehalten werden!

Optionen für tab2space Version: 09.02.2003 E.Zürn
  -t8             Tabulatoren mit 8 Leerzeichen ersetzen (Standard sind 4)
 -tabs           Tabulatoren beibehalten, z.B. für 'Makefile'
  -crlf           ZeilenEnde mit CRLF (Standard bei PC-DOS/Windows)
  -lf oder -unix  ZeilenEnde mit   LF (für Unix/Linux)
  -cr             ZeilenEnde mit CR   (für klassisches Mac)
 -date           AusgabeDatei erhaelt das Datum der EingabeDatei
  -help oder h    zeigt diesen Hilfetext

Dieses Dienstprogramm ersetzt NICHT Leerzeichen durch Tabulatoren!

tab2space ersetzt nicht einfach Tabulatoren-Zeichen durch die Anzahl der angegebenen Leerzeichen, sondern so als wären es echte Tabulatoren. Diese echten kann man sich als senkrechte Linien denken. Folgendes soll dies verdeutlichen: Für das allereste Tab in der -t2 Zeile stehen am Anfang 2 Leerzeichen, dann folgt immer nur 1, weil die "2" schon mitzählt.

1234567890123456789012345
 2 2 2 2 2 2 2 2 2 2 2 2    -t2
    4   4   4   4   4   4    -t4
        8       8       8    -t8
1234567890123456789012345

Fehler und Mangel des originalen tab2space

Die Option -tabs wird gänzlich ignoriert. Statt dessen werden evtl. enthaltene Tabulatoren so ersetzt als hätte man -t4 eingegeben, was aber nicht immer gewünscht ist.

Verwendet man die -t??-Option und ist das allererste Zeichen in einer Datei ein Tabulator, so wird für nur diesen ein Leerzeichen zu viel eingesetzt.

Da die Ausgabe-Datei gegenüber der Eingabe-Datei tatsächlich geändert wird, erhält die Ausgabe-Datei das aktuelle System-Datum als Datei-Datum. In Vorbereitung für Upload-Vergleiche ist dies störend. Aus dem Grunde wurde die Option -date ergänzt.

Quell-Code

 .\include\platform.h 

Original
aus HTML Tidy Quellen 11.995Bytes 07.01.2003 08:57:02 nur mit LF
bzw. identisches
aus cvs.tidy.sourceforge.net 12.521Bytes 06.01.2003 09:52:14 mit CRLF

 .\console\tab2space.c (3kB 09.02.03) 

Verändert gegenüber dem Original
aus HTML Tidy Quellen 7.454Bytes 12.08.2002 04:33:56 nur mit LF
bzw. identisches
aus cvs.tidy.sourceforge.net 7.832Bytes 12.08.2002 04:33:56 mit CRLF

In testtabs.tgz (1kB 09.02.03) sind *.bat und *.txt enthalten, die tab2space.exe auf dessen korrekten Umgang mit den Optionen -t2 -t4 -t8 -crlf -lf -cr und der Optionen-Reihenfolge prüft. Eine FC.EXE muß in Ihrem Windows-System dazu aufrufbar sein. Beim Durchlauf sollte immer

Verglichen werden test_tabs.txt und result.txt.
FC: Keine Unterschiede festgestellt

erscheinen, ansonsten ist etwas fehlerhaft.


Der Autor distanziert sich ausdrücklich vom Inhalt aller externen Links und Verweise.
Er übernimmt keine Gewähr oder Haftung für
Vollständigkeit, Richtigkeit, Aktualität oder etwaige Schäden.