/* WinCopy for Directory Opus 5.
 By Leo 'Nudel' Davidson for Gods'Gift Utilities
 email: leo.davidson@keble.oxford.ac.uk  www: http://info.ox.ac.uk/~kebl0364/

$VER: WinCopy.dopus5 1.4 (26.12.95)

   NOTE: This script _requires_ DOpus v5.11 or above.
   NOTE: DOpusFuncs is an assembler version of this (and other) scripts.
   NOTE: This script does *NOT* do the same thing as Gary Gagnon's
         "CloneSRCE.dopus5" or "same.dopus5", read on...

   This script will copy the source lister to the destination lister,
   like the old copywin command in DOpus4.

   If you wish to open a _new_ lister which is a copy of the source
   one (as apposed to turning an existing lister into a copy of the
   source), you should use Gary Gagnon's "CloneSRCR.dopus5" script,
   which was included in the official DOpus v5.11 update as
   "DOpus5:ARexx/same.dopus5". Gary's script is also able to clone
   multiple source listers at once.

Call as:
------------------------------------------------------------------------------
ARexx	DOpus5:ARexx/WinCopy.dopus5 {Qp}
------------------------------------------------------------------------------
Turn off all switches.

   v1.01 -> v1.02 - Made "PathOnly" the default behaviour and removed the
                    option to copy the window dimensions (Did anyone want it?).
                    Some minor tidying up.
                    Now checks to make sure the DOPUS.x port exists.
    v1.02 -> v1.3 - Now uses Show() instead of ShowList(). (Thanks Stoebi)
                    Style Guide compliant version numbering and $VER string.
     v1.3 -> v1.4 - Works properly with paths containing spaces, finally.
*/

options results
options failat 99
signal on syntax;signal on ioerr		/* Error trapping */
parse arg DOpusPort
DOpusPort = Strip(DOpusPort,"B",'" ')

If DOpusPort="" THEN Do
	Say "Not correctly called from Directory Opus 5!"
	Say "Load this ARexx script into an editor for more info."
	EXIT
	END
If ~Show("P",DOpusPort) Then Do
	Say DOpusPort "is not a valid port."
	EXIT
	End
Address value DOpusPort

lister query source stem source_handle.

IF source_handle.count = 0 | source_handle.count = "SOURCE_HANDLE.COUNT" Then Do
	dopus request '"You must have a SOURCE lister!" OK'
	EXIT
	End


lister query dest stem dest_handle.

IF dest_handle.count = 0 | dest_handle.count = "DEST_HANDLE.COUNT" Then Do
	dopus request '"You must have a DESTINATION lister!" OK'
	EXIT
	End


lister query source_handle.0 path
source_path = RESULT
lister read dest_handle.0 '"'||source_path||'"'

syntax:;ioerr:				/* In case of error, jump here */
EXIT
