Short:        ARexx: get 1st selected file in dest or source-lister
Author:       okir@gmx.de (Olaf Kirstein)
Uploader:     okir gmx de (Olaf Kirstein)
Type:         util/dopus
Architecture: generic

English and german version (deutscher Text in der unteren Hälfte)

These two small ARexx-scripts (FirstSelDest.dopus5 und FirstSelSource.dopus5)
have the full path of the first selected file in dest- or source-lister as the
result. Is no lister present or no file selected, a small errorrequester will
pop up.

I wrote these scripts, because with them it is very easy to take action on an
selected file in an other lister, while using the filepopupmenu of a defined
datatype. In the functioneditor, defining:

AmigaDos set firstsel `rx DOpus5:ARexx/FirstSelDest.dopus5`

you kann refer to this local variable with $firstsel. This method is more
flexible than the DOpus-intern {v}-variant, because before DOpus executes
the function, it checks if the refered var exists. Since it is a local one,
and not present when DOpus checks it, the var would be ignored generating
the batchfile in T:-directory.

I defined a datatype for spatch from SAS:

Function : AmigaDOS   set spatchold `rx DOpus5:ARexx/FirstSelSource.dopus5 {Qp}`
           AmigaDOS   set spatchout "$spatchold".new
           AmigaDOS   spatch -o$spatchout -p{f} $spatchold
           AmigaDOS   unset spatchold
           AmigaDOS   unset spatchout

I select the original file in source-lister, press right mouse over the patchfile
and select the above patch-function in the menu. This generates a new file in
the source-lister. (Spatch is used for updates of shareware or commercial soft-
ware).


Installation:
-------------

Just copy the scripts to DOpus5:ARexx.


Usage:
------

In the functioneditor of DOpus5 you should give the ARexx-port {Qp} as argument.
Leaving it out, results in trying to use DOPUS.1 as port.
Since the scriptss write the result to StdOut, you can use this output as an
argument for setting local (set) or global (setenv) vars. You also can redirect
the output to a file using ">".

AmigaDos set varname `rx scriptname {Qp}` oder
AmigaDos setenv varname `rx scriptname {Qp}`

here you should delete the vars after using them with unset or unsetenv.

ARexx <scriptname> {Qp} >output

redirects the output to a file.



Any suggestions or bugreports please to my email:

Olaf Kirstein okir@gmx.de


===============================================================================

Diese beiden kleinen Arexx-Scripte (FirstSelDest.dopus5 und FirstSelSource.dopus5)
liefern den kompletten Pfad des jeweils ersten angewählten Files im Quell- oder
Ziellister. Ist kein entsprechender Lister vorhanden, oder kein File angewählt,
gibt es einen kleinen Fehlerrequester.

Ich habe die Scripte geschrieben, da es hiermit sehr leicht ist, in den
File-Popup-Menüs Aktionen mit angewählten Files aus anderen Listern vorzunehmen.
Definiert man beispielsweise im Funktionseditor folgendes:

AmigaDos set firstsel `rx DOpus5:ARexx/FirstSelDest.dopus5`

kann man in der Funktion mit $firstsel auf diese lokale Variable zurückgreifen.
Diese Art ist um einiges flexibler, da die DOpus-interne {v}-Variante vor
Ausführung der Funktion prüft, ob eine Variable existiert. Das ist bei lokalen
Variablen natürlich nicht der Fall, und so würde DOpus bei der Generierung des
Batchfiles im T:-Verzeichnis {v} einfach ignorieren.

Ich habe hiermit einen Dateityp für spatch von SAS definiert:

Funktion : AmigaDOS   set spatchold `rx DOpus5:ARexx/FirstSelSource.dopus5 {Qp}`
           AmigaDOS   set spatchout "$spatchold".new
           AmigaDOS   spatch -o$spatchout -p{f} $spatchold
           AmigaDOS   unset spatchold
           AmigaDOS   unset spatchout

Dann wähle ich im Quelllister einfach das Originalfile an, drücke über dem
entsprechendem Patchfile die rechte Maustaste und wähle in dem Menü die obige
Patchfunktion. Es wird dann ein neues File im Quelllister erzeugt. (Spatch
wird bei vielen Updates von Shareware oder kommerzieller Software verwendet).


Installation:
-------------

Einfach die Scripte nach DOpus5:ARexx kopieren.


Benutzung:
----------

Im Funktionseditor von DOpus5 sollte man als Argument den ARexx-Port {Qp}
angeben. Wird dasArgument weggelassen, wird versucht DOPUS.1 als Port zu
verwenden.
Da die Scripte das Ergebnis nach StdOut liefern, kann man diese direkt als
Argument für das Setzen von lokalen (set) oder globalen (setenv) Variablen
verwenden. Man kann das Ergebnis auch mittels ">" in eine Datei umleiten:

AmigaDos set varname `rx scriptname {Qp}` oder
AmigaDos setenv varname `rx scriptname {Qp}`

hier sollte man möglichst mit unset bzw. unsetenv die Variablen nach Verwendung
wieder löschen.

ARexx <scriptname> {Qp} >ausgabe

leitet die Ausgabe in eine Datei um.



Verbesserungsvorschläge und Fehlermeldungen bitte per EMail an:

Olaf Kirstein okir@gmx.de