X S E R I E S / P E E K E R B I T S ------------------------------------- XTrash 1.01 ©/Programm 1992 SP/PeekerBits Autor: Stefan Plöchinger Kleiststraße 27 DW- 8012 Ottobrunn programmiert in KICKPascal (MAXON GmbH) benötigt AMIGA OS2.0 mindeste Stack-Größe: 10000 ··········· XTrash 1.01 ist FreeWare. Alle Rechte liegen beim Autor. Das Programm darf nur zu unkommerziellen Zwecken frei vertrieben werden. ··········· 1 . S I N N U N D Z W E C K V O N X T R A S H Der Macintosh und der NEXT gelten beide als Vorbilder des AMIGA. Und wer hätte nicht schon längst den "Mülleimer" des Macintosh oder des NEXT's "Recycler" bewundert - Datei drüber und fertig "geshreddert"! Auf dem AMIGA gibt es dieses Konzept auch. Aller- dings ist hier der Mülleimer nicht generell für alle Daten- träger, und außerdem stellt er nur eine "Bewegen"-Funktion in den Mülleimer dar. Ein Ausleeren dessen ist allerdings schon möglich. Dennoch: Es wäre praktisch, die Dateien sofort und unverzüglich löschen zu können, oder das Dateien-Bewegen lediglich in der Hinterhand zu haben. Außerdem: Warum formatiert ein solches Programm einen Datenträger nicht, sofern man ihn darüber- zieht? Aus dieser Notlage - tata! - entstand XTrash. 2 . K O N Z E P T Nach dem Start von XTrash erscheint auf dem Bildschirm ein kleines Piktogramm, das wie ein Workbench-Piktogramm aussieht (vom Typ her) und den Namen "XTrash" trägt. (Oder einen anderen, das kommt auf Ihre Einstellungen an, anderen Namen. Standard ist allerdings "XTrash", nach der Installation sollte eigentlich auch dieser Name erscheinen.) Sie können nun auf dieses Piktogramm doppelklicken. Es öffnet sich dann ein Fenster, in dem Sie Informationen über das Programm mit- geteilt bekommen. Gleichzeitig können Sie in das "Einstellungen"- Fenster wechseln ("Einstellungen"-Feld drücken), das Programm be- enden ("Ende"-Feld drücken) oder das Fenster wieder schließen ("Zurück"-Feld drücken). Auch enthält dieses Fenster ein Menü, in dem Sie alternativ zu der Methode mit den Elementen das Programm beenden oder in das Einstllungsfenster wechseln können. Alternativ zum Doppelklick könnten Sie auch ein oder mehrere Workbench-Piktogramme über das XTrash-Piktogramm ziehen. Darauf öffnet sich das Statusfenster (s. unten). Hier können Sie nun das Löschen der Piktogramme, Dateien, Verzeichnisse und Datenträger einleiten, die Sie über das XTrash-Piktogramm gezogen haben. Je nach Einstellung öffnet sich während des Löschens auch ein Fenster, das Kontrollfenster. Hier können Sie das Löschen inter- aktiv steuern (s. auch unten). Übrigens: Sollten Sie einen "alten" AMIGA-Mülleimer über das XTrash-Piktogramm ziehen, so wird dieser entweder gelöscht oder geleert! Daraus ergeben sich einige schöne Kombinationsmöglich- keiten (s. ebenfalls wieder unten). 3 . Ü B E R G A B E P A R A M E T E R Die Argumente werden folgendermassen ausgelesen: Beim CLI-Start werden als erstes die Programmparameter überprüft, dann die "Tool Types" bzw. "Merkmale" des XTrash-Programmpiktogramms. Beim Workbench-Start ist nur letzteres der Fall. 3.1 CLI-ÜBERGABEPARAMETER Schema: "CONFIG" Der CONFIG-Parameter gibt an, in welcher Datei die XTrash-Ein- stellungen zu finden sein sollen (bei der Eingabe von "STD" sucht XTrash in "ENVARC:XTrash.Config", der Standarddatei). 3.2 WORKBENCH-ÜBERGABEPARAMETER Die Parameter werden in der normalen Workbench-Art in dem "Informa- tion"-Fenster aus dem "Icon"- bzw. bei der neuen Workbench 2.1 dem "Piktogramm"-Menü eingestellt. Hierfür dient dort das Feld "Tool types" bzw. "Merkmale". Dort können Sie folgendes eingeben: "CONFIG=": Die folgende Zeichenkette entspricht dem Pfad zu der Datei, in der die XSearch-Einstellungen abgespeichert werden sollen (auch hier kann "STD" eingegeben werden). 4 . D A S S T A T U S F E N S T E R +---+--------------------------------+---+---+ | · | XTrash 1.01 | · | · | +---+--------------------------------+---+---+ | | | +--------------------------------------+ | | | Warnung: Gelöschte Dateien, Daten- | | | | träger und Verzeichnisse sind | | | | unwiederbringlich verloren! | | | | | | | | X Datei(en) | | | | X Verzeichnis(se) | | | | X Mülleimer | | | | X Datenträger | | | | ist/sind zum Löschen ausgewählt. | | | | | | | +--------------------------------------+ | | | | . | | : | | | | +----------+ +------------+ +--------+ | | | Trash... | | Std.-Werte | | Zurück | | | +----------+ +------------+ +--------+ | | | +--------------------------------------------+ Im "eingedrückten" Feld sehen Sie eine übersicht dessen, was über das Piktogramm gezogen wurde. Diese Sachen können Sie nun durch das Drücken des "Trash..."Feldes löschen, durch "Zurück" teilen Sie dem Programm nun mit, daß Sie es sich doch noch anders überlegt haben. Mit "Std.-Werte" übernehmen Sie in die in der Fensterskizze durch die drei Punkte dargestellten Felder (genauere Erklärung gleich hier unten) die derzeit in den Einstellungen vor- eingestellten Werte für das jeweilige Feld. Sie können auch nun noch jederzeit Piktogramme entweder über das XTrash-Piktogramm oder das Statusfenster ziehen. Diese Piktogramme werden dann in die Liste der zu löschenden Sachen aufgenommen. Das Statusfenster verfügt über das gleiche Menü wie das Fenster, in dem die Informationen zum Programm angezeigt werden. An der Stelle, in der in der obigen Skizze die drei Punkte abkürzend stehen, können sich folgende Felder finden: : : | | | (·) Dateien löschen | | | | ( ) Dateien in Mülleimer bewegen | | | : : Diese Druckknopfsymbole erscheinen nur, wenn mindestens eine Datei oder mindestens ein Verzeichnis über das XTrash-Piktogramm gezogen wurde. Ist die oberste Alternative gewählt, so werden alle Da- teien, auf die XTrash während des Löschens trifft, gelöscht, sollte die andere Alternative angewählt sein, wird die Datei in einen Mülleimer bewegt. Diesen Mülleimer (es kann auch ein normales Verzeichnis sein) können Sie in den Einstellungen eingeben. : : | | | (·) Mülleimer leeren | | | | ( ) Mülleimer löschen | | | : : Diese Druckknopfsymbole erscheinen nur, wenn mindestens ein Stan- dard-AMIGA-Mülleimer über das XTrash-Piktogramm gezogen wurde. Falls die obere Alternative gewählt sein sollte, so wird alles, was sich innerhalb des Mülleimers befindet, gelöscht, andern- falls der Mülleimer wie ein Verzeichnis angesehen und "mit Haut und Haar" verschlungen :-). : : | | | +-------------------------+ | | Fmt. Name | | | | +-------------------------+ | | Optionen | | | | +-------------------------+ | | | : : Diese Texteingabefelder erscheinen nur, wenn mindestens ein Datenträger-Piktogramm über das XTrash-Piktogramm gezogen wurde. In "Fmt. Name" (Format Name) geben Sie den Namen des Datenträgers ein, den er nach dem Löschen, also dem Formatieren tragen soll. In Optionen können Sie Optionen für die Formatierung angeben (s. unten). Übrigens: Es kann sein, daß, obwohl Sie ein Daten- trägerpiktogramm über das XTrash-Piktogramm gezogen haben, und dieser Datenträger auch in der Liste der zu löschenden Sachen auf- taucht, eines oder vielleicht auch beide Texteingabefelder nicht erscheinen. Dies hat dann höchstwahrscheinlich mit den Einstellungen zu tun. Lesen Sie dazu unten mehr. 5 . D A S K O N T R O L L F E N S T E R +---+-------------------------------+---+---+ | · | XTrash 1.01 | · | · | +---+-------------------------------+---+---+ | | | +-------------------------------------+ | | | Statuszeile | | | +----------------------------------+--+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pfadliste | | | | | | | | | | | | | | | | | | | | +--+ | | | |/\| | | | +--+ | | | |\/| | | +----------------------------------+--+ | | | | +---+ +------+ | | | | Pause | Stop | | | +---+ +------+ | | | +-------------------------------------------+ Dieses Fenster öffnet sich, je nach Einstellung (s. unten) nach dem Betätigen von "Trash..." im Statusfenster. Sollte es sich nicht öffnen, kann man es jederzeit durch einen Doppelklick auf das "XTrash"-Piktogramm auf den Bildschirm bringen. Durch das Betätigen des Schließgadgets kann man es wieder verschwinden lassen. In der Statuszeile wird angeziegt, welchem Löschprozeß XTrash derzeit nachgeht (Dateien löschen/bewegen, Verzeichnisse löschen, Mülleimer leeren/löschen, Datenträger formatieren). In der Pfad- liste wird der Pfad ganz à la "XSearch" dargestellt, den XTrash gerade löscht (bzw. den Datenträger, den es formatiert). Soll das Verzeichnis "DH0:System" gelöscht werden, so steht hier: DH0: System Enthält "DH0:System" ein Unterverzeichnis namens "Icons", so muß dieses ja auch gelöscht werden. Wird dies gerade gelöscht, so findet man in der Pfadliste folgenden Eintrag: DH0: System Icons Mit "Pause" kann der Löschprozeß bis zum nächsten Betätigen von "Pause" angehalten werden. "Stop" bricht das Löschen ab. 6 . E I N S T E L L U N G E N Das Einstellungsfenster erreicht man über das Menü im Status- und "Über"-Fenster bzw. über das "Einstellungen"-Feld im "Über"- Fenster. Das Fenster hat ein Menü, in dem zwischen der Standardeinstellung, der zuletzt gesicherten Einstellung und der Einstellung, die vor dem Wechseln in das Einstellungsfenster eingestellt war, wechseln kann :-). Die ersten vier oberen Druckknopfsymbole und die zwei Texteingabe- felder im Einstellungsfenster stellen die Standardwerte für die analogen Symbole im Statusfenster dar. Deren aktuelle Werte kann man mittels des "aktuelle Werte"-Feldes rechts oben ünernehmen. Folgende Felder existieren weiterhin: "Programm"/"Stack": Nun ja. Schnallen Sie sich an. Jetzt wird es hart. Wir lüften eines der bestgehüteten Geheimnisse von XTrash... tata! DAS FORMATIERGEHEIMNIS! Man sollte wissen: XTrash ruft ein externes Formatierprogramm auf, um Datenträger jeweder Art zu formatieren. Hier, in diesen beiden Texteingabefeldern, stellen Sie ein, wie wo warum was ob wen etc. In "Programm" können Sie das zu verwendende Formatierprogramm eingeben. Wollen Sie jenes verwenden, welches die Workbench auch verwendet, so geben Sie hier "SYS:System/Format" ein. Mit "Get..." bringen Sie übrigens ein Standard-Dateiaus- wahlfenster auf den Bildschirm, in dem Sie das Formatierpro- gramm bequem suchen können. Nun stellt man sich aber die Frage: Welchen Namen soll der Datenträger nach dem Formatieren haben? Welches Gerät soll denn überhaupt formatiert werden? Wie gebe ich Optionen beim Formatieren an? Auch dafür existieren Lösungen. Am besten geht man das ganze am Standard-Commodore-Formatierprogramm durch. Dieses hat die CLI-Eingabeschablone: Schablone: DRIVE/K/A,NAME/K/A,FFS/S,NOICONS/S,QUICK/S Gibt man im CLI also "SYS:System/Format DRIVE DF0: NAME Empty NOICONS QUICK" \______ _______/ \___ ___/ \___ ___/ \____ _____/ \/ \/ \/ \/ Programm Argument¹ Argument² Optionen ein, so wird die Diskette in DF0:, also dem ersten Laufwerk, formatiert, die Diskette erhält danach den Namen "Empty", und das ganze erfolgt im Schnell-Modus ("QUICK"), zusätzlich ohne daß das Mülleimer-Piktogramm erzeugt wird ("NOICONS"). Zuerst wird also das eigentliche Programm angegeben, dann die Parameter. Diese kann man untergliedern: Die ersten zwei sind Argumente, die anderen beiden lediglich "unwichtige" Optionen. Das erste Argument kann man erneut aufteilen: DRIVE DF0: Der Argumentname ist in diesem Fall |___/ \__| unwichtig. Die Argumentübergabe an | | sich muß aber von XTrash bei jedem Argumentname | Aufruf des Formatierprogramms neu Argumentübergabe definiert, da ja zumindest in den meisten Fällen ein unter- schiedliches Gerät formatiert wer- den soll. Im Klartext heißt das: Anstelle der Argumentübergabe muß hier ein Platzhalter stehen, an dessen Stelle XTrash beim Aufruf des Formatierprogramms den Namen des zu formatierenden Gerätes einsetzt. Dieser Platzhalter ist "\d". Ein Beispiel: "SYS:System/Format DRIVE \d" Zieht man bei dieser Eingabe im "Programm"-Feld ein Piktogramm einer Diskette im Gerät "DF0:" über das XTrash-Piktogramm, so übergibt XTrash folgenden Programmaufruf an das Formatierpro- gramm: "SYS:System/Format DRIVE DF0:" Das zweite Argument kann ähnlich zerstückelt werden: NAME Empty XTrash muß nun wieder bei jedem |__/ \___| Aufruf des Formatierprogramms, so | | gewünscht, einen Namen für den Argumentname | Datenträger übergeben. Als Name wird Argumentübergabe der gerade im Texteingabefeld "Fmt. Name"(im Statusfenster!) eingegebene Text übernommen. Der Platzhalter heißt hier "\n". Es kann allerdings auch ein fixer Name ein- gegeben werden. Zwei Beispiele: "SYS:System/Format DRIVE \d NAME \n" übergibt beim Gerät DF0: und dem Text "Hallo" im Texteingabe- feld "Fmt. Name" folgende Zeichenkette: "SYS:System/Format DRIVE DF0: NAME Hallo" Hingegen die Zeichenkette im Programm-Feld "SYS:System/Format DRIVE \d NAME Empty" veranlasst, daß an das Formatierprogramm immer der Name "Empty" übergeben wird. In diesem Fall erscheint übrigens im Status- fenster kein "Fmt. Name"-Texteingabefeld. Das, was in der obigen Untergliederung als Optionen angegeben ist, kann durch den Platzhalter "\o" ausgedrückt werden. Als Optionen wird dann der Text im Texteingabefeld "Optionen" übergeben. Sollte "\o" nicht angegeben werden, erscheint auch das "Optionen"-Texteingabefeld im Statusfenster nicht. Was aber nun, wenn Sie das Programm "SYS:System/\dFormat" starten wollen (das Formatierprogramm heißt "\dFormat")? In diesem Fall würde XTrash ja den Namen des Datenträgers für das \d einsetzen. Dieses ist hier allerdings ein Teil des Programmnamens - was tun? XTrash geht folgenden Weg: Für jedes benötigte "\" muß man zwei "\", also "\\" schreiben. Will man also das Programm für XTrash verständlich angeben, so muß man im obigen Beispiel "SYS:System/\\dFormat" schreiben. Das "\\d" ist für XTrash kein Platzhalter! Es muß übrigens für jedes (!) "\" "\\" geschrieben werde. D. h., für zwei benötigte "\" müssen vier "\" geschrieben werden. Alles kapiert? Wenn nicht, dann umdrehen und nochmal lesen! Falls schon, dann zum zweiten Texteingabefeld bzgl. des Forma- tierprogramms. Es ist ungleich leichter erklärt. Im Eingabe- feld "Stack" wird die Stackgröße des Formatierprogramms ange- geben. Die Stackgröße ist nichts anderes als der benötigte Speicher eines Programms. Falls das Formatierprogramm also eine Meldung wie "stack overflow" bringt, so muß man einfach nur den Wert hier hochsetzen. "Bewegen-Mülleimer": Nachdem XTrash ja die Möglichkeit bietet, Dateien vor dem Löschen in ein Verzeichnis bewegen zu lassen (sprich: sie zu bewegen), müssen sie ja auch ein Verzeichnis haben, wo sie hinbewegt werden können. Dies kann man hier an- geben. "Get..." hat dieselbe Funktion wie bei "Programm". "Piktogr." steht für Piktogramm und gibt das Piktogramm an, das als XTrash-Piktogramm auf der Workbench-Oberfläche "liegen" soll. Anstelle des "XTrash"-Signets kann man hier zum Beispiel also einen Mülleimer darstellen lassen. Auch hier hat "Get..." dieselbe Funktion wie oben. "Name": Ein individuell einstellbarer Name für das XTrash-Pikto- gramm. "X"/"Y": Die X/Y-Position des XTrash-Piktogramms beim Programmstart. "Textgadget farbig": Gibt an, ob die Texteingabefelder von XTrash farbig hinterlegt werden sollen. "Kontrollfeld": Gibt an, ob das Kontrollfenster beim Löschen ge- öffnet werden soll. "Sichern": Sichert die Einstellungen und schliesst das Einstellungs- fenster. "Benutzen": Übernimmt die aktuellen Einstellungen und schließt das Einstellungsfenster. "Zurück": Setzt die Einstellungen, die vor dem Wechseln in das Ein- stellungsfenster gültig waren und schließt dieses. 7 . F E H L E R ¡! Bezüglich XTrash sind mir lediglich zwei Fehler in der Arbeitsweise bekannt. Für viele Anwender dürfte der erste nicht relevant sein, ist aber dennoch erwähnenswert: Erstellt man einen Link auf ein Ver- zeichnis (ein neues Feature von OS2.0), und zieht diesen Link nun auf das Piktogramm von XTrash, so löscht XTrash das Verzeichnis, das "gelinkt" wurde! Abhilfe schafft da das Löschen des "gelinkten" Verzeichnisses via "Delete..." bzw. "Löschen..." aus dem "Icons"- bzw. "Piktogramm"-Menü der Workbench. Die Frage nach dem warum ist schnell erklärt: Werden Piktogramme von Verzeichnislinks auf das Piktogramm von XTrash gezogen, so wird kein Verweis auf den Link übergeben, sondern auf dessen Ursprung. Dadurch muß (!) XTrash annehmen, daß das Piktogramm vom "gelinkten" Verzeichnis kommt. Der Fehler liegt insofern im Betriebssystem. Warum das ganze beim Löschen durch den Menüpunkt "Delete..." bzw. "Löschen..." nicht passiert, ist insofern auch erklärbar: Die Work- bench muß sich selbst keine Piktogramminformationen übergeben, sie muß nur in ihrem eigenem Variablenspeicher kramen. Insofern kommt keine falsche Information an die Workbench, weil ja gar kein Infor- mationsaustausch stattfindet. Übrigens: XTrash ist, falls der Infor- mationsaustausch denn mal richtig funktionieren sollte, schon auf das korrekte Behandeln von Verzeichnislinks ausgerichtet (zumindest hoffe ich das, zum Testen hatte ich ja logischerweise keine Möglich- keit). Bei "gelinkten" Dateien funktioniert XTrash übrigens problemlos. Es kann allerdings sein, daß dieses Funktionieren (und vielleicht auch das Nichtfunktionieren?) mit dem Programm "WBLink" von Dave Schreiber zusammenhängt, das zur Erstellung der Links benutzt wurde. Möglicherweise können Links also bei Ihnen andere Fehlverhaltens- weisen (oder sogar ein korrektes Arbeiten?) hervorrufen. Also am besten mit den Links aufgepasst. ¡! Des weiteren hat XTrash noch einen zweiten "Fehler". Dieser hängt erneut mit dem Betriebssystem des AMIGA zusammen. Da das Betriebs- system das Löschen von Dateien nicht registriert, um daraufhin der Workbench dies mitzuteilen, werden Programme oder Verzeichnis- se, die von XTrash gelöscht wurden, auf der Workbench nicht als ge- löscht präsentiert und bleiben nach wie vor dort als existente Da- teien bzw Verzeichnisse dargestellt. Dies ist allerdings nur bei piktogrammlosen Programmen oder Verzeichnissen der Fall. Das Löschen von Piktogrammen registriert das AMIGA-Betriebssystem nämlich para- doxerweise schon. ··········· Und hier nun (obligatorisch wie immer) die Danksagungen: an keinen Betatester diesmal, natürlich an Commodore und AMIGA Corp. für na-was-wohl und den Redaktionen der "KICKStart" und der "AMIGA" für die Pro- grammierkurse, ohne die solch ein tooles Spitzenprogramm wie XTrash wohl nie zustande gekommen wäre :-). Übrigens: Es ist nach wie vor noch Geld für eine Turbokarte unter obiger Adresse willkommen (wahrscheinlich allerdings nicht nur unter obiger Adresse...). ··········· X T R A S H P R O G R A M M G E S C H I C H T E : V1.0 Erstes "Final Release", ich habe es immer geliebt :-) V1.01 Exakt ein Bug entfernt: Sobald XTrash aktiv war, konnte man den Bildschirm der Workbench nicht mehr ändern