RDX Version 2.00 ================ RDX is a command-line directory changer written in REXX for OS/2 V2.x. It will locate directories based on partial names, optionally containing wildcards, search multiple drives and includes a lookup table option so that frequently-used (at the user's discretion) directories can be located conveniently and quickly without a disk search. This program requires that the OS/2 REXX interpreter and REXX utility functions (REXXUTIL.DLL) have been properly installed. These can be added if necessary by using Selective Install and checking the "REXX" box. Anyone is free (encouraged) to use, distribute or modify this program to suit their own needs. If you distribute a modified version, please document the changes and give it another name. James Brombergs bro561@geel.dwt.csiro.au COMMAND LINE OPTIONS ====================== (Options are not case-sensitive). RDX [/H] [/?] Show instructions and command line options. RDX /L Edit lookup table Interactively add and delete items, or view the table. The lookup table can be used to store abbreviations for the paths of frequently-used directories. DO NOT MAKE RDX.CMD READ-ONLY IF YOU INTEND TO USE THIS RDX [/+] [/B] [/T] [[-]drivelist:]dirname Search for a directory /+ Include drives A and B when searching multiple drives. /B Stop at first matching directory without prompting. /T Search lookup table only - do not search drives. drivelist List of drive letters followed by a colon eg. CDG: * = Searches all drives (excludes A: and B: unless /+ switch is given). ddd = Searches drives in list. -ddd = Searches all drives except those in the list (also excludes A: and B: unless /+ switch is given). dirname A partial directory name to search for. may contain wildcards ? and *. By default, is assumed to end with a * wildcard. Other wildcards do not work with lookup table keys. Notes ----- and are not case-sensitive. eg a directory called "Rexx" can be found by searching for "REXX" or "rexx". Don't enclose in quotes or use embedded spaces. If you want to search for a directory name that contains spaces, either use the partial name before the first space or replace the spaces with ? wildcards. If there is only one possible directory matching , RDX will change to that directory without prompting even if the /B switch has not been used. If multiple drives are being searched, this only applies to the last drive. If the /+ switch is used without a , the switch is ignored and only the current drive is searched. If it is used with other than *, the takes precedence. The command syntax is (deliberately) similar to that of CDX, a DOS directory changer written by Michael Holmes and Bob Flanders. Examples -------- Assume that drives A: B: C: D: E: are available. RDX WIN Searches the lookup table for any keys starting with "WIN". Searches the current drive, and finds all directory names starting with "WIN" eg. \OS2\MDOS\WINOS2, etc. RDX ?IN Searches the lookup table for keys starting with "?IN". Note that the question mark is _not_ treated as a wildcard. Searches the current drive only and finds directory names starting with any character followed by "IN" eg. \OS2\MDOS\WINOS2, \BORLANDC\BIN, etc. RDX /+ *:*.* Searches the lookup table for keys starting with "*.*". Searches all drives including A: and B: and finds any _directory_ names that contain a dot. RDX /+ -AD:BIT Searches the lookup table for keys starting with "BIT" Searches drives B:, C: and E: for directory names starting with "BIT". SEARCHING FOR DIRECTORIES =========================== When RDX finds a directory matching the given specifications, either in the lookup table or on a disk drive, it will display the full path followed by a question mark, unless the /B switch was used. If the /B switch was used, it will change to the directory without prompting. When a directory is offered, press to search for the next match, to cancel the search and revert to the original directory, or any other key to change to change to the directory that was found. If at some stage of the search there is only one possible directory that matches the specifications, RDX will change to that directory without prompting. Notes ----- RDX constructs a complete directory list for a drive before looking for matches, so it can take a while to search a large hard disk partition, and even longer to search a CD-ROM. LOOKUP TABLE ============= The lookup table stores a list of keys and corresponding directories, so that frequently-used directories can be located very quickly. If there are any entries in the lookup table, the table is automatically searched first, and any matching keys are offered before any disk drives are searched. If you find that you use the same directory often when you open an OS/2 command-line, you can create an identifier (key) for it and add it to the lookup table to quickly change to the directory you want. For instance, if your REXX code is in a directory called E:\os2\Programming\Rexx, create a key "RX" and set the corresponding path to "E:\OS2\PROGRAMMING\REXX". Then you can change to this directory at any time by typing "RDX RX". Keys may contain any characters except spaces. Duplicate keys are allowed in the table, if they match the search criteria, they will be offered in the order that they are found. The search is not case-sensitive. Keys need not bear any resemblance to the directories they correspond to. Since * and ? are legal characters in lookup table keys, searches based on wildcards will be treated literally when searching the lookup table. The wildcards will still be expanded when drives are searched. Editing the Lookup Table ------------------------ When RDX is started with the /L switch, it will show a menu offering the choices : (A)dd Entry Add a new key and directory path to the table. New entries are added at the end. Keep this in mind if you use duplicate keys. You will be prompted for the key, and then for the corresponding path. Enter a fully qualified path name (including drive, path and terminating directory name). RDX will check the path for illegal characters, then attempt to change to the directory. If it cannot, the following message will be displayed : Cannot locate the directory. Is that OK (Y/N)? Enter 'N' if you made a mistake, or 'Y' if you intend to create the directory later, or if it is on a drive that is not currently available (eg. network, floppy, CD-ROM, etc.) (D)elete Entry Shows a list of all entries in the table, stopping after each screen. Type the number next to the entry you want to delete. (V)iew Table Shows a list of all entries in the table, stopping after each screen. (C)ancel and Exit Exit without saving changes to the lookup table. (S)ave and Exit Exit and save changes to the lookup table. If you see the message Cannot replace original file this means that the original file (RDX.CMD or whatever you have called it) could not be deleted for some reason. The program will terminate at this point, leaving a file called "RDX#####.CMD" (where # is a random digit) in the current directory. Delete the original file and rename this file. Notes ----- The lookup table is stored as a stem variable within the RDX.CMD file, for performance considerations. When the table is changed, the entire command file must be rewritten, so RDX.CMD should not be made read-only. You can rename RDX.CMD and still use these features. The name will be determined at run-time. The table can be edited directly. Load RDX.CMD into your favourite text editor and find the comment /*LOOKUP*/, indicating the beginning of the table. Do not change this comment or the /*ENDLOOKUP*/ comment which indicates the end of the table. This is also the easiest way to change the order of table entries. The format of the table is : lookUp.0 = integer the number of entries in the table. lookUp.n.key = "string" string contains key n lookUp.n.dir = "string" string contains path n If you don't want to use the lookup table at all, and want to get rid of the code, find the comment that says LOOKUP TABLE EDITING ROUTINES. Delete everything from here to the end of the file.