nderungen an den LHarc-Sourcen seit Version 3.10          25.10.1997

Dies sind - in umgekehrter chronologischer Reihenfolge - meine
persnlichen Aufzeichnungen zu den nderungen an den LHarc-Sourcen
(z.T. etwas fr die ffentlichkeit aufbereitet ;-)
                                                            Dirk Haun
----------------------------------------------------------------------

3.13 -> 3.13a [released 25.10.1997]

[3.13.01 / 19.10.1997]

- Man konnte (abhngig von den Einstellungen des verwendeten Desktops)
  keine Ordner mehr zum Einpacken auf LHARC.TTP ziehen (JM@HH).
  Was ich mir bei der Zeile "p = strcpy (p, get_fname (arcname));"
  gedacht habe, wrde mich ja auch mal interessieren ...

----------------------------------------------------------------------

3.12 -> 3.13 [released 03.10.1997]

[3.12.05 / 23.11.1996]

- Wenn ein ganzes Laufwerk gepackt wird (Laufwerksicon auf LHarc
  ziehen), dann heit das resultierende Archiv jetzt <Laufwerk>.LZH
  (entsprechender Laufwerksbuchstabe) statt ".LZH" (GH@FR).

- Wenn das zu bearbeitende Archiv nur ein Link auf das eigentliche
  Archiv ist, dann folgt LHarc nun diesem Link, statt ihn durch das
  neue Archiv zu berschreiben (HW@OL).
  Bei allen Ausgaben bezieht sich LHarc in diesem Fall nun auf das
  Original, nicht auf den Link. Das mag u.U. etwas verwirrend sein,
  war aber die einzig praktikable Mglichkeit.

[3.12.04 / 03.10.1996]

- Fsfirst() wird nur noch mit 0xBF als Maske aufgerufen, damit keine
  MagiC-Aliase unter SingleTOS mehr gefunden werden (WB@OF).

- Wenn beim Update eines Archivs keine Files hinzugefgt oder ent-
  fernt werden, bleibt jetzt das Original-Archiv erhalten (WB@OF).
  Bisher wurde stattdessen eine identische Kopie angelegt, die aber
  das aktuelle Datum und die aktuelle Uhrzeit hatte. 'cnt' darf nicht
  erhht werden, wenn nur copyold() aufgerufen wird.

- Flag -S (Gro-/Kleinschreibung erhalten) wird jetzt auch beim Aus-
  packen beachtet. Bisher wurden beispielsweise beim Auspacken auf
  ein VFAT-FS grogeschriebene Dateinamen grundstzlich in Kleinbuch-
  staben gewandelt (MD@B).

[3.12.03 / 29.09.1996]

- Problem mit case-sensitiven Filesystemen (z.B. RAMDISK.XFS) behoben:
  Wenn ein Pfad nicht gefunden wurde, weil der Ordner erst noch ange-
  legt werden mute, wurden die Namen von zu entpackenden Files in
  Grobuchstaben gewandelt (HW@OL).

[3.12.02 / 17.09.1996]

- Bei Verwendung des Schalters -y gab's einen Absturz (MD@B).
  Peinlich, wenn man nicht bis 37 zhlen kann ...

[3.12.01 / 01.08.1996]

- Option -n2 funktionierte nicht mehr (CW@WI2). Grund: Variable
  flg_n war doppelt vorhanden (jeweils lokal in lharc.c und util.s).

----------------------------------------------------------------------

3.11 -> 3.12 [released 25.07.1996]

[3.11.04 / 25.06.1996]

- Bei Option -d bzw. Kommando 'm' wird jetzt auch der oberste Ordner
  gelscht, sofern er leer ist. Die zu lschenden Ordner werden in
  travel() mit in den Filebuffer aufgenommen, allerdings mit gesetztem
  Flag FA_DONE, so da sie beim Einpacken nicht beachtet werden.

[3.11.03 / 12.06.1996]

- Bei Option -d (und damit auch beim Kommando 'm') werden jetzt auch
  Ordner gelscht, sofern sie leer sind. Der oberste Ordner bleibt
  aber vorerst noch stehen. (HW@OL)

- Die deutsche Version gibt jetzt auch ein 'J' (statt 'Y') aus, wenn
  man auf eine Nachfrage [J/N] mit 'J' reagiert.

[3.11.02 / 03.06.1996]

- Die Namen der Schalter (usage) alphabetisch sortiert.

- Neuer Schalter -O: Normalerweise wird ein Ordner, der als erster
  Name in der Kommandozeile (nach dem Archivnamen) bergeben wird,
  angelegt und das Archiv dorthin ausgepackt. Mit -O wird dies abge-
  schaltet, der Ordner wird stattdessen im Archiv erwartet. (HW@OL)

- Wenn die Ausgabe umgelenkt wurde, wird am Programmende und bei der
  Ausgabe der Kommandos und Schalter (Aufruf ohne Parameter) nicht
  mehr auf eine Taste gewartet (auch nicht, wenn -h angegeben wurde).

- Bei der Anzeige der Kommandos und Schalter (Aufruf ohne Parameter)
  wird jetzt $LINES ausgewertet. Auerdem kann die Anzeige mit 'q'
  abgebrochen werden.

[3.11.01 / 27.05.1996]

- Der Schalter -D (Files aus dem Archiv lschen, die im Quellpfad
  nicht mehr vorhanden sind) funktionierte nicht. Die lokale(!)
  Variable found (es gibt auch noch eine globale) in execappend() mu
  eben auch verwendet werden, wenn __SHELL__ nicht definiert ist.
  Auerdem wurde cnt nicht erhht, wenn Archiveintrge bersprungen
  oder gelscht wurden.

  ltere LHarc-Versionen (z.B. 2.99, aber nicht 3.10) haben offenbar
  -D immer zusammen mit Kommando 'u' gesetzt. Dies ist aber nicht
  kompatibel zum Verhalten von LHarc-Versionen auf anderen Rechner-
  welten (DOS, Linux) und auch nicht zu den Quester-LHarc-Versionen,
  die alle bei 'u' keine Dateien lschen.

- Wenn in einem Archiv lhd-Eintrge vorhanden waren, wollte LHarc die
  Verzeichnisse auch bei Kommando 'e' immer anlegen. (HW@OL)

- Aufrumarbeiten im Source:
  * Versuch, unter den Unmengen von globalen Variablen aufzurumen
    (heftiger Einsatz von "static").
  * Neuer Quelltext codec.c fr einige C-Routinen, die Teil der
    Pack-/Entpackalgorithmen sind und in lharc.c ansonsten nicht be-
    ntigt werden
  * Neue Includefiles lhatypes.h fr Typdeklarationen und lhaconst.h
    fr Konstantendefinitionen.

- Mit dem neuen Schalter -F kann fr den den _gemdos-Fall in
  Trunc1File() die 5+3-Regel aktiviert werden.

  Erklrung: Trunc1File() liefert gekrzte Formen von langen Datei-
  namen fr Filesysteme, die solche Dateinamen nicht beherrschen. Fr
  Gemdos-Filesysteme werden nun die ersten 5 und die letzten 3 Zeichen
  des langen Namens plus die ersten 3 Zeichen der Extension verwendet.
  Zeichen, die auf Gemdos-FS nicht erlaubt sind, werden gegen den Un-
  terstrich ersetzt. Die 5+3-Regel liefert erfahrungsgem eher ein-
  deutige Dateinamen als die alte Methode (erste 8 Zeichen des Namens
  + erste 3 der Extension).

----------------------------------------------------------------------

3.10 -> 3.11 [released 16.05.1996]

- Wenn MM_KLUDGE definiert ist, wird der Rckgabewert von Fclose()
  nach einem Fdatime() nicht mehr getestet.

  Grund: Fdatime() unter MagiCMac bis einschlielich 1.2.7. "ver-
  schludert" das Filehandle und man erhlt bei Fclose() einen Fehler
  -33 (tritt nur auf Volumes mit Mac-Filesystem und auch nicht auf dem
  Volume auf, auf dem MagiCMac selbst liegt).

- Abfragen auf MiNT (Variable __mint) entfernt und gegen Testaufrufe
  der neuen Gemdos-Funktionen ersetzt (Rckgabe = -32 -> Funktion
  nicht vorhanden), damit die neuen Funktionen auch unter MagiC
  (soweit dort vorhanden ...) benutzt werden.

  Ausnahmen: In unified_drv() wird mit __mint abgefragt, ob ein MiNT-
  kompatibles Laufwerk U: vorhanden ist. Dort einen Test auf MagiC
  >=3.00 ergnzt (hat auch U:). In init_lharc() wird die Gemdos-
  Version und __mint abgefragt um festzustellen, wie das Gemdos das
  Archiv-Flag behandelt (Variable oldtos).

  Weitere MiNT-Abfragen stecken in der MiNT-Lib (auch in PL 46 noch
  ziemlich viele). Exemplarisch habe ich mal die Abfragen in den
  Quelltexten getcwd.c und sysconf.c entfernt.
