home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / cmdpk164.zip / cmdpak.inf (.txt) next >
OS/2 Help File  |  1998-01-09  |  85KB  |  1,851 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. CommandPak's Default Profile ΓòÉΓòÉΓòÉ
  3.  
  4. Being an extension to MLRXSHL, the CommandPak hooks itself into CmdShl via the 
  5. default profile, which is installed by the provided installation script and 
  6. makes the new functions transparent to the user. 
  7.  
  8. This default profile ("PROFILE.SHL") is installed automatically by the 
  9. installation script and provides the following features (via aliases): 
  10.  
  11.      The following aliases are defined to replace OS/2's standard commands: 
  12.  
  13.         -  "dir" and "ls" will call xdir.cmd. 
  14.  
  15.         -  "copy" and "cp" will call xcp.cmd. 
  16.  
  17.         -  "ren" and "mv" will call xren.cmd. 
  18.  
  19.       For these commands, a number of environment variables are set to 
  20.       configure coloring and such. 
  21.  
  22.       Remember that aliases are case-sensitive; so if, for any reason, you 
  23.       still need one of OS/2's original commands, you can capitalize your input 
  24.       (e.g. "COPY" instead of "copy"), and the alias will not be executed. 
  25.  
  26.      The "help" command is an alias to xhelp.cmd. An environment variable 
  27.       "HELP.REF" is defined, containing the three provided INF books, allowing 
  28.       you to type "help ref" to access the joint online documentation of 
  29.       MLRXSHL and CommandPak. The environment variable "HELP.COUNTRY" is set 
  30.       according to the language you selected during installation. 
  31.  
  32.      The "open" command is defined in an alias; it can open WPS folders. 
  33.  
  34.      The "recurse" command is defined in an alias; it can recursively execute 
  35.       commands through subdirectories. 
  36.  
  37.      A command history is implemented which will retain the entered commands 
  38.       after the session closes. The command history is read from/stored in the 
  39.       file whose name is contained in the 'history' variable (by default 
  40.       %tmp%\history.shl). F2 is used to store the current command history list 
  41.       to this file. F5 is used to replace the current history list by the one 
  42.       defined in the file. F7 is used to interactively give a new name for the 
  43.       file (to be used by subsequent F2 or F5 actions). The default history 
  44.       file is loaded at startup (the 'LOADHIST' invocation); it is stored upon 
  45.       exiting. 
  46.  
  47.      The "exit" command is redefined by an alias which will store the command 
  48.       history (as described above) and only then exit. 
  49.  
  50.      You can close any CmdShl session with Alt+F4 also; this will simulate 
  51.       "exit". 
  52.  
  53.      The profile redefines the '(' key so that it adds the closing ')'. 
  54.  
  55.      It defines the F8 key so that it inserts the current date at the cursor 
  56.       position. 
  57.  
  58.      It defines the Shift+F7 key so that it displays all possible completions 
  59.       for the element preceding the cursor. 
  60.  
  61.      A screen management system is added: 
  62.  
  63.         -  You can save the current "screen" by pressing Ctrl+Down arrow. 
  64.  
  65.         -  You can restore a previously saved "screen" by pressing Ctrl+Up 
  66.            arrow. 
  67.  
  68.         -  You can toggle between the current "screen" and the last previously 
  69.            saved one by pressing Ctrl+Numpad +.  It allows you to easily switch 
  70.            between two different "screens". When more than one "screen" are 
  71.            saved, they are stored in a stack (that is, the last stored "screen" 
  72.            is the first restored one.) 
  73.  
  74.       The "screen" above means the current state (screen layout, currently 
  75.       edited command, current directory and such). This feature has been added 
  76.       to circumvent the 16 OS/2 sessions limit and also because it's much 
  77.       simpler to press Ctrl+Up/Down arrow than to start or switch to another 
  78.       session.  On the down side, it does not work from other VIO applications 
  79.       ; 
  80.  
  81.  A commented version of the profile is also installed under the name 
  82.  "PROFILEC.SHL". If you wish to change the profile, I recommend browsing 
  83.  through the commented version, make the neccessary changes, and when you 
  84.  consider your version worth using permanently, remove all comments and empty 
  85.  lines in order to speed up processing. 
  86.  
  87.  Other external functions of CommandPak, which need not be defined in the 
  88.  default profile, are: 
  89.  
  90.  ln - create "links" via WPS shadows 
  91.  
  92.  watchdrv - watch out for removeable media 
  93.  
  94.  
  95. ΓòÉΓòÉΓòÉ 2. xdir ΓòÉΓòÉΓòÉ
  96.  
  97.      What's that? 
  98.      Installation 
  99.      Starting xdir / command line options 
  100.      Environment variables 
  101.      Known limitations 
  102.      History 
  103.  
  104.  
  105. ΓòÉΓòÉΓòÉ 2.1. What's That? ΓòÉΓòÉΓòÉ
  106.  
  107. xdir is another alternative to OS/2's original DIR command. It has derived from 
  108. MLRXSHL's SDir. It is supposed to be 100% compatible both with SDir and OS/2's 
  109. original. 
  110.  
  111. Compared to OS/2 "DIR", xdir provides some new functionality: 
  112.  
  113.      It can color output according to user-defined rules; the coloration is 
  114.       completely directed by environment variables. 
  115.  
  116.      It fixes minor bugs to the original DIR when the /W option is used. 
  117.  
  118.      It can display abstract WPS objects (shadows and program objects). 
  119.  
  120.      xdir has a far better options handling; while it understands all of OS/2 
  121.       "DIR"'s options, it also incorporates LOTS of new options, most of them 
  122.       stolen from the UNIX "ls" command. Options can be introduced both with 
  123.       "/" and "-". 
  124.  
  125.      xdir has the "UNIX output format"; while the OS/2 "wide" format (/W 
  126.       option) sorts things from left to right, the new "-C" option sorts 
  127.       everything from top to bottom, which I consider more lucid and readable: 
  128.  
  129.  
  130.  
  131.  You can see the difference between "/W" and "-C" output. Your preferred format 
  132.  can also be set in an environment variable. In the screenshot, files that have 
  133.  been modified during the last three days are put on a blue background; 
  134.  executables are red, directories green. xdir automatically displays messages 
  135.  in the installed language (German in the above screenshot). 
  136.  
  137.  If you're familiar with UNIX or an experienced OS/2 user, I recommend using 
  138.  xdir. In the default profile, "dir" and "ls" are registered as aliases to 
  139.  xdir. 
  140.  
  141.  This documentation covers all of xdir's functions; it is not necessary to get 
  142.  to know MLRXSHL's SDir first. 
  143.  
  144.  
  145. ΓòÉΓòÉΓòÉ 2.1.1. What Are WPS Abstract Objects? ΓòÉΓòÉΓòÉ
  146.  
  147. As you might know, everything in the WPS is called an "object": be it actual 
  148. files in the filesystem (such as "netscape.exe" or your text files), 
  149. directories, program objects, shadows, and more. 
  150.  
  151. The WPS knows a number of objects that are not represented directly in the 
  152. filesystem though; these are called "abstract objects" (derived from the WPS 
  153. class "WPAbstract"). The most important two of these are shadows and program 
  154. objects. 
  155.  
  156. OS/2 does not put these into the actual file system, but rather puts them in 
  157. the INI files altogether ("OS2.INI" and "OS2SYS.INI" in the /OS2 directory; 
  158. these two are normally hidden). This is why you lose all your program objects 
  159. and shadows when the WPS gets corrupted and you have to re-install OS/2. 
  160.  
  161. Due to this implementation, unfortunately, you cannot normally see abstract 
  162. objects on the command line, but only in WPS folders. xdir changes this with 
  163. the "-W" option: when turned on, abstract objects are also collected and marked 
  164. with a trailing "@" to distinguish them from "real" files. If you like this, 
  165. you can put the "-W" option in DIRCMD also. 
  166.  
  167. The above screenshots show the contents of a directory full of INF books, which 
  168. are normally shown to the WPS with the use of program objects starting VIEW.EXE 
  169. with the respective book as an argument. On the left you can see the output of 
  170. "xdir -W", on the right the respective WPS folder. 
  171.  
  172. Be aware though that collecting abstract objects is a bit slow; I have found no 
  173. way to speed it up at this point. 
  174.  
  175.  
  176. ΓòÉΓòÉΓòÉ 2.2. Installation ΓòÉΓòÉΓòÉ
  177.  
  178. xdir's files are installed automatically by the installation script provided 
  179. with this package. In the default profile, it is registered as an alias for 
  180. "dir" and "ls"; this way, when you enter these commands within CmdShl, xdir.cmd 
  181. will be executed instead of OS/2's original. 
  182.  
  183. Installing xdir manually is also very simple: just copy XDIR.CMD somewhere 
  184. along your PATH and REXXVIO.DLL somewhere along your LIBPATH. For display of 
  185. abstract WPS objects, WPTOOLS.DLL is also needed along your LIBPATH. 
  186.  
  187. If REXXVIO.DLL is currently in use, close ALL your OS/2 windowed or fullscreen 
  188. sessions, and open a bare OS/2 windowed session (that is, one not starting 
  189. CmdShl or Fl).  You can then replace REXXVIO.DLL from this session. 
  190.  
  191. If you were using a previous version of MLRXSHL, execute the following code 
  192. from an OS/2 command prompt, to allow the new functions defined in REXXVIO to 
  193. be registered: 
  194.  
  195.    rexxtry call VioDropFuncs
  196.  
  197. If you want to automatically use xdir instead of DIR, you can add an alias, if 
  198. your command shell processor recognizes them.  For example, with CmdShl, use: 
  199.  
  200.    ALIAS dir=xdir %*
  201.  
  202. You can also add your preferred settings for environment variables in your 
  203. profile. 
  204.  
  205.  
  206. ΓòÉΓòÉΓòÉ 2.3. Starting xdir / Command Line Options ΓòÉΓòÉΓòÉ
  207.  
  208. xdir is intended to be a mixture between OS/2 "DIR" and UNIX "ls". The options 
  209. of both of these commands are understood; you can either introduce them with 
  210. "/" or with "-". When using "/" to introduce options, the following letters are 
  211. translated internally to lower case to maintain compatibily with OS/2 "DIR"; 
  212. however, this means that you can only access the upper case options (see below) 
  213. by introducing them with "-". 
  214.  
  215. You can group single-letter options together (e.g. use "-lsa" instead of "/l /s 
  216. /a"); this does, of course, not work with options which expect several letters 
  217. (such as "-o:d"). 
  218.  
  219. Type "xdir -h" to see a short list of the available options. Here are the 
  220. provided options sorted by the functions they provide: 
  221.  
  222. Display format 
  223.  
  224.    -l     long format (like OS/2 "DIR" default and UNIX "ls -l"). This is
  225.           the only option which is incompatible to OS/2 "DIR": there, "/L"
  226.           will display file names in lower case. Use "-L" instead.
  227.    -w     wide format: display file names only, group them in coloums sorted
  228.           from left to  right (like OS/2 "DIR /w")
  229.    -C     UNIX format: the same, but group them from top to bottom
  230.           (like UNIX "ls" default).
  231.    -x[:{a|d|t|s|e|l}...
  232.           eXtended format: like long format, but you can specify what
  233.           information will be displayed. The letters mean the following:
  234.           a     file attributes
  235.           d     file creation date
  236.           t     file creation time
  237.           s     file size
  238.           e     extended attribute size
  239.           l     .LONGNAME extended attribute (in brackets)
  240.           When no letters are given ("-x" only), "-x:asel" is assumed.
  241.    -b|1   show filenames only (like OS/2 "DIR /B" and UNIX "ls -1").
  242.    -f     show full path for each file (like OS/2 "DIR /F").
  243.    -L|U   display all file names in lower / upper case.
  244.    -p     pause output after each page (like OS/2 "DIR /P").
  245.  
  246. You can most easily define your preferred display format in your CmdShl profile 
  247. by setting the DIRCMD environment variable: 
  248.  
  249.     SET DIRCMD=-C
  250.  
  251. File filtering 
  252.  
  253.    -a[:{[-]d|h|r|s|a|w}...]
  254.           include files with specified attributes; exclude files when used
  255.           with "-" with every letter.
  256.           The letters mean the following:
  257.           d     directories
  258.           h     hidden files
  259.           r     read-only files
  260.           s     system files
  261.           a     files with the "archive" flag
  262.           w     abstract WPS objects (see "-W" option below)
  263.    -W     also display abstract WPS objects (meaning shadows and program
  264.           objects). This uses WPTOOLS.DLL and can be fairly slow when many
  265.           objects are in the directory. Abstract objects are colored
  266.           according to the DIRCLR.WPABSTRACT environment variable and a "@"
  267.           is added to the object name. "-W" is really just a shortcut to the
  268.           "-a:w" option (see above).
  269.           Please see the "What are abstract WPS objects" page for details
  270.           and screenshots.
  271.    -d     display directories only (shortcut to "-a:d")
  272.    -s|R   display files in all subdirectories also (like OS/2 "DIR /S" and
  273.           UNIX "ls -R").
  274.  
  275. Sort output 
  276.  
  277.    -o[:{n|e|d|s|g}]
  278.           Sort files in a certain order. The letters mean the following:
  279.           n     by name
  280.           e     by file extension (e.g. ".EXE")
  281.           d     by creation date (shortcut: "-t" option)
  282.           s     by file size (shortcut: "-S" option)
  283.           g     show directories first
  284.           When "-o" is not followed by ":", "-o:n" is assumed.
  285.     -t|S  sort by date | size (shortcut to "-o:s|d").
  286.  
  287. Miscellaneous options 
  288.  
  289.    -h -? /H /?    display help
  290.  
  291.  
  292. ΓòÉΓòÉΓòÉ 2.4. Environment variables ΓòÉΓòÉΓòÉ
  293.  
  294. xdir recognizes the following environment variables: 
  295.  
  296.     DIRCMD / XDIR.DIRCMD
  297.     DIRCLR.ATTRIB
  298.     DIRCLR.DATE
  299.     DIRCLR.EASIZE
  300.     DIRCLR.EXT
  301.     DIRCLR.NAME
  302.     DIRCLR.SIZE
  303.     DIRCLR.USEREXIT
  304.     DIRCLR.WPABSTRACT
  305.  
  306. If one or more of those environment variables are not defined, the missing ones 
  307. are silently ignored. 
  308.  
  309. You can either set the desired environment variables in CONFIG.SYS or in your 
  310. profile. The latter is recommended, since no reboot is required for profile 
  311. changes to take effect. Since almost none of these variables are recognized by 
  312. CMD.EXE anyway, profiles are just fine. 
  313.  
  314. Here is an example (see the default profile for more): 
  315.  
  316.     REM xdir preferred options: display files like UNIX "ls" does
  317.     SET XDIR.DIRCMD=-C
  318.     REM xdir coloring
  319.     SET DIRCLR.ATTRIB=D:GREEN;H,S:ON RED;R:BLINK
  320.     SET DIRCLR.DATE=-30:BRIGHT
  321.     SET DIRCLR.EXT=BAT,EXE,COM,CMD:CYAN;ZIP:YELLOW;INI:MAGENTA
  322.     SET DIRCLR.NAME=PROFILE:MAGENTA
  323.     SET DIRCLR.WPABSTRACT=BRIGHT GREEN
  324.  
  325. The order in which coloration is applied is the following: 
  326.  
  327.    1. User exit; 
  328.    2. Directory attribute; 
  329.    3. Other attributes : Archive, Read only, System, Hidden; 
  330.    4. File extension (if any); 
  331.    5. File name; 
  332.    6. File date; 
  333.    7. File size; 
  334.    8. Extended attributes size. 
  335.  
  336.  An element of higher priority takes precedence over an element of lower 
  337.  priority.  For example, if you specify a green  background for directories and 
  338.  red background for recent entries, a directory will always have a green 
  339.  background,  regardless of its last modification date. 
  340.  
  341.  The color specification is of the form: 
  342.  
  343.       [BRIGHT] [BLINK] [<color>] [ON <color>]
  344.  
  345.  with <color> being one of BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN or 
  346.  WHITE. 
  347.  
  348.  The case is not significant. Depending on your display type (full screen or 
  349.  VIO window), specifying BLINK may result in either a blinking character or a 
  350.  high intensity background color. 
  351.  
  352.  
  353. ΓòÉΓòÉΓòÉ 2.4.1. DIRCMD / XDIR.DIRCMD ΓòÉΓòÉΓòÉ
  354.  
  355. These two environment variables set the default options used for xdir. First, 
  356. XDIR.DIRCMD is checked; only if not defined, DIRCMD is checked next. This way, 
  357. you can set xdir-specific options in XDIR.DIRCMD only in order to prevent SDir 
  358. and OS/2's standard DIR from malfunction. 
  359.  
  360. Usage: 
  361.  
  362.    SET XDIR.DIRCMD=<optionlist>
  363.    SET DIRCMD=<optionlist>
  364.  
  365. <optionlist> is a list of options as you would normally type them on the 
  366. command line. This way, you can configure xdir to a certain default behavior. 
  367.  
  368. The options specified herein will be processed immediately after xdir has been 
  369. started and before the arguments given on the command line are evaluated. This 
  370. way, you can override the default options on the command line. 
  371.  
  372. It is recommended to set XDIR.DIRCMD in a CmdShl profile; you can set it also 
  373. in CONFIG.SYS, although this will require a reboot for each changement made. 
  374.  
  375. Example: 
  376.  
  377.    SET XDIR.DIRCMD=-C -o:n
  378.  
  379. xdir will now per default use the UNIX format and sort everything by name. 
  380. These options are better not defined in DIRCMD, but in XDIR.DIRCMD instead, 
  381. since SDir and OS/2's standard DIR do not know them. 
  382.  
  383. Still, if you now type "xdir -l", the "-C" option will be overridden. 
  384.  
  385.  
  386. ΓòÉΓòÉΓòÉ 2.4.2. DIRCLR.ATTRIB ΓòÉΓòÉΓòÉ
  387.  
  388. This environment variable specifies the coloration to be used if an entry 
  389. attribute has been set. 
  390.  
  391.    SET DIRCLR.ATTRIB=<attrib>[,...]:<color>[;...]
  392.  
  393. <attrib> can be one of D, A, R, S or H (case is not significant). 
  394.  
  395. If an attribute is defined more than once, the last definition is used. 
  396.  
  397. Example: 
  398.  
  399.    SET DIRCLR.ATTRIB=D:green;H,S:ON RED;R:BLINK
  400.  
  401. Directories will be displayed in green, hidden or system entries will be 
  402. displayed on a red background, and read-only ones will be blinking (or, in a 
  403. VIO Window, the background will be intensified). 
  404.  
  405.  
  406. ΓòÉΓòÉΓòÉ 2.4.3. DIRCLR.DATE ΓòÉΓòÉΓòÉ
  407.  
  408. This environment variable specifies the coloration to be used depending of the 
  409. entry's last modification date. 
  410.  
  411.    SET DIRCLR.DATE=[-+=]<date>:<color>[;...]
  412.  
  413. If <date> is a number, it specifies a number of day. Otherwise, it's a date in 
  414. ISO format (yyyy/mm/dd). 
  415.  
  416.      If you have specified a number of day, a leading '-' selects files 
  417.       modified in the last <date> days. A leading '+' selects files that have 
  418.       not been modified in the last <date> days. A leading '=' only selects 
  419.       files modified exactly <date> days ago (it's not that useful :-) ). 
  420.  
  421.      If you have specified a date, a leading '-' selects files that have not 
  422.       been modified since date. A leading '+' selects files that have been 
  423.       modified since date. A leading '=' only selects files modified on date. 
  424.  
  425.  The first matching value is used.  The evaluation order is from left to right. 
  426.  
  427.  Example: 
  428.  
  429.      SET DIRCLR.DATE=-30:bright
  430.  
  431.  A bright color will be used for files modified in the last 30 days. 
  432.  
  433.  
  434. ΓòÉΓòÉΓòÉ 2.4.4. DIRCLR.EASIZE ΓòÉΓòÉΓòÉ
  435.  
  436. Not implemented yet. 
  437.  
  438.  
  439. ΓòÉΓòÉΓòÉ 2.4.5. DIRCLR.EXT ΓòÉΓòÉΓòÉ
  440.  
  441. This environment variable specifies the color to be used depending on the entry 
  442. extension. 
  443.  
  444.    SET DIRCLR.EXT=<ext>[,...]:<color>[;...]
  445.  
  446. <ext> is the extension (without the leading dot) to be colored. It is case 
  447. insensitive. Joker symbols ('*' and '?') are NOT allowed. 
  448.  
  449. If an extension is specified more than once, the last specification is used. 
  450.  
  451. Example: 
  452.  
  453.    SET DIRCLR.EXT=BAT,EXE,COM,CMD:CYAN;ZIP:YELLOW
  454.  
  455. Files ending with either .BAT, .EXE, .COM or .CMD will be displayed in cyan, 
  456. while archive files (ending with .ZIP) will be in yellow. 
  457.  
  458.  
  459. ΓòÉΓòÉΓòÉ 2.4.6. DIRCLR.NAME ΓòÉΓòÉΓòÉ
  460.  
  461. This environment variable specifies the color to be used depending on the entry 
  462. name. 
  463.  
  464.    SET DIRCLR.NAME=<name>[,...]:<color>[;...]
  465.  
  466. <name> is the name to be colored. It is case insensitive. Joker symbols ('*' 
  467. and '?') are NOT allowed; neither are null ("") names. 
  468.  
  469. If a name is specified more than once, the last specification is used. 
  470.  
  471. The name of an entry is the part preceding the extension.  For example: 
  472.  
  473.    foo              --> foo
  474.    bar.baz          --> bar
  475.    foo.bar.baz      --> foo.bar
  476.  
  477. Example: 
  478.  
  479.    SET DIRCLR.NAME=PROFILE:magenta
  480.  
  481. Files whose name is PROFILE will be in magenta. 
  482.  
  483.  
  484. ΓòÉΓòÉΓòÉ 2.4.7. DIRCLR.SIZE ΓòÉΓòÉΓòÉ
  485.  
  486. Not implemented yet. 
  487.  
  488.  
  489. ΓòÉΓòÉΓòÉ 2.4.8. DIRCLR.USEREXIT ΓòÉΓòÉΓòÉ
  490.  
  491. Not implemented yet. 
  492.  
  493.  
  494. ΓòÉΓòÉΓòÉ 2.4.9. DIRCLR.WPABSTRACT ΓòÉΓòÉΓòÉ
  495.  
  496. This environment variable specifies the coloration to be used for abstract WPS 
  497. objects. Compared to the previously listed options, its syntax is rather dull: 
  498.  
  499.    SET DIRCLR.WPABSTRACT=<color>
  500.  
  501.  
  502. ΓòÉΓòÉΓòÉ 2.5. Known Limitations ΓòÉΓòÉΓòÉ
  503.  
  504.      The EA size is incorrectly reported if it exceeds 32767 bytes. (In fact, 
  505.       4OS2 as well as the Workplace Shell also     exhibit this behavior.) 
  506.  
  507.      The sort is currently handled by a REXX procedure, so it's quite slow if 
  508.       you don't have a fast computer.  (If you     don't use the /o option, 
  509.       speed will be OK.) 
  510.  
  511.      Display of abstract WPS objects is quite slow also. 
  512.  
  513.      After creating shadows, they are not immediately visible to "xdir -W". It 
  514.       will take a few seconds (and maybe a few executions of "xdir -W") to make 
  515.       them appear. This seems to be limitation either of the WPS implementation 
  516.       or in the WPTOOLS.DLL that is used for collecting abstract WPS objects; I 
  517.       have no influence on these functions. 
  518.  
  519.      xdir does not tell shadows and program objects apart. All abstract 
  520.       objects are displayed with the "-W" option and marked with a trailing 
  521.       "@". 
  522.  
  523.      Some environment variables are not yet recognized: DIRCLR.SIZE, 
  524.       DIRCLR.EASIZE and DIRCLR.USEREXIT. 
  525.  
  526.      In DIRCLR.DATE, each month contains 31 days (and hence a year contains 
  527.       372 days). 
  528.  
  529.  
  530. ΓòÉΓòÉΓòÉ 2.6. History ΓòÉΓòÉΓòÉ
  531.  
  532. 1.63   Dec 20, 1997 
  533.  
  534. --- New features: 
  535.  
  536.      Support for XDIR.DIRCMD added. 
  537.  
  538.  
  539.  1.62   Dec 14, 1997 
  540.  
  541.  --- Bug fix: 
  542.  
  543.      Fixed: Display of error messages still crashed when invalid drives were 
  544.       given. 
  545.  
  546.  
  547.  1.61   Dec 6, 1997 
  548.  
  549.  --- Re-implemented new features over SDir 0.96: 
  550.  
  551.      Options handling replaced: "-" and "/" can be used alternatively; options 
  552.       can be grouped at will; translating "/" options to lower case. 
  553.      -C option added: UNIX format (top to bottom) 
  554.      -W option added: abstract WPS objects. 
  555.      -x option added: specify what information is to be displayed. Can handle 
  556.       .LONGNAMEs. 
  557.      -l reworked: just a shortcut to "-x:dtse" 
  558.      -h will run "xhelp xdir" 
  559.      -F added (classify files) 
  560.      -L|U added (lower / upper case) 
  561.      plus a few more options for UNIX "ls" compatibility ("-1", "-R", "-S", 
  562.       "-t", "-d") 
  563.  
  564.  --- Bug fix: 
  565.  
  566.      sdir crashed in error message when wrong options were given. 
  567.  
  568.  
  569.  1.5  Septemper 1997 
  570.  
  571.  --- First public release based on SDir 0.91 (version numbering now according 
  572.  to CommandPak) 
  573.  
  574.  
  575. ΓòÉΓòÉΓòÉ 3. xcp ΓòÉΓòÉΓòÉ
  576.  
  577.      What's that? 
  578.      Installation 
  579.      Starting xcp / command line options 
  580.      Known limitations 
  581.      History 
  582.  
  583.  
  584. ΓòÉΓòÉΓòÉ 3.1. What's That? ΓòÉΓòÉΓòÉ
  585.  
  586. xcp is CommandPak's alternative to OS/2's original COPY command. It is supposed 
  587. to be 100% compatible with it (and since it frequently uses the original 
  588. internally, it should be). It also introduces a few new options from the UNIX 
  589. "cp" command. 
  590.  
  591.      xren can remove those annoying .LONGNAME extended attributes while 
  592.       copying. 
  593.  
  594.      When copying files, xren provides a useful backup options for files that 
  595.       already exist in the destination directory. Per default, you will be 
  596.       prompted for whether you want the original file to be overwritten, backed 
  597.       up, or skipped. 
  598.  
  599.  In the default profile, "copy" and "cp" are defined as aliases to "xren", thus 
  600.  replacing OS/2's original "COPY". 
  601.  
  602.  The name "xcp" was chosen in order not to conflict with OS/2's "XCOPY" 
  603.  command, which provides additional functionality over xcp. 
  604.  
  605.  xcp is only intended to improve "simple" copying. It cannot, for example, 
  606.  recurse subdirectories (like XCOPY); furthermore, not all of OS/2's standard 
  607.  "COPY"'s functions are implemented at this point. Please see "Known 
  608.  limitations" for more. 
  609.  
  610.  xcp uses the OS/2 "COPY" command internally, so that extended attributes are 
  611.  properly copied. 
  612.  
  613.  
  614. ΓòÉΓòÉΓòÉ 3.1.1. What Are .LONGNAME Extended Attributes? ΓòÉΓòÉΓòÉ
  615.  
  616. While "standard" file attributes contain only flags (to mark a file as being a 
  617. directory, hidden etc.) and were already known to DOS, Extended attributes 
  618. (EAs) are an OS/2 specific addition to any file residing in a file system. They 
  619. can contain any data up to a total size of 64 KB per file. 
  620.  
  621.      On FAT drives, EAs are stored for all files altogether in two hidden 
  622.       files in the root directory (named "wp root. sf" and "ea data. sf" -- 
  623.       yes, including spaces!). 
  624.  
  625.      On HPFS drives, EAs are stored (invisibly) within the file system 
  626.       structure for each file separately, which is, of course, much faster. 
  627.  
  628.  OS/2 makes heavy use of EAs: the WPS stores class information, abstract object 
  629.  references, icons, long filenames, and much more in them and when REXX 
  630.  programs are "compiled" ("tokenized") to make them process faster, the result 
  631.  is also stored in EAs. By the way -- since EAs are limited to 64 KB per file, 
  632.  large REXX files take a long time to start, since they have to be re-tokenized 
  633.  at every start. 
  634.  
  635.  While the EAs for long filenames (named ".LONGNAME") are useful on FAT drives 
  636.  and for storing certain characters which are not allowed for "real" filenames 
  637.  (such as "/", "\", ">" etc.), the WPS annoyingly adds these every time when it 
  638.  works on files (e.g. moving, copying, renaming files), whether neccessary or 
  639.  not. When you rename a file on the command line which has a .LONGNAME EA 
  640.  attached to it, the WPS will keep displaying the old name, since the .LONGNAME 
  641.  EA hasn't changed. With xcp and xren you can now delete .LONGNAMEs. 
  642.  
  643.  
  644. ΓòÉΓòÉΓòÉ 3.2. Installation ΓòÉΓòÉΓòÉ
  645.  
  646. xcp is installed automatically by the installation script provided with this 
  647. package. In the default profile, "copy" and "cp" are registered as aliases for 
  648. xcp; this way, when you enter one of these within CmdShl, xcp.cmd will be 
  649. executed. 
  650.  
  651. xcp requires xhelp.cmd to be present on the PATH in order to display its 
  652. messages. 
  653.  
  654. Installing xcp manually is also very simple: just copy XCP.CMD somewhere along 
  655. your PATH. 
  656.  
  657. If you want to automatically use xcp instead of DIR, you can add an alias, if 
  658. your command shell processor recognizes them. For example, with CmdShl, use: 
  659.  
  660.    ALIAS copy=xcp %*
  661.  
  662.  
  663. ΓòÉΓòÉΓòÉ 3.3. Starting xcp / Command Line Options ΓòÉΓòÉΓòÉ
  664.  
  665. Basically, xcp operates just like OS/2's "COPY". The main difference is that 
  666. for each file to be copied, the destination is checked for whether a file of 
  667. the respective name already exists. If so, you will be prompted whether to skip 
  668. the current file, backup or overwrite the original. OS/2's "COPY" command will 
  669. simply overwrite existing files. 
  670.  
  671. When backing up files, the WPS's renaming behavior is imitated (e.g. "xren.cmd" 
  672. becomes "xren!1.cmd"). 
  673.  
  674. Certain (new) options are also allowed here: 
  675.  
  676.   -b     Always backup existing files, don't prompt.
  677.   -f     "Force" mode: overwrite existing files, don't prompt.
  678.   -i     Interactive mode: confirm copying for each file.
  679.   -t     Test mode: do nothing, display actions only.
  680.   -v     Be verbose: echo each modification made.
  681.   -q     Be quiet: say nothing, not even error messages.
  682.   -d     Delete .LONGNAME before renaming.
  683.   -8     Make filenames FAT-compliant (8+3 characters)
  684.  
  685. .LONGNAME EAs are automatically checked for "important" characters which are 
  686. not allowed in real filenames, such as "/", "\", ">" etc. If one of these is 
  687. detected when using "-r", these characters are replaced by "!" (just like the 
  688. WPS does). When using "-d", the .LONGNAME is not deleted, but retained, unless 
  689. you enable the "-f" option, which will enforce deletion. 
  690.  
  691. FAT compliance ("-8" option) is achieved by simply truncating the filename and 
  692. extension to 8 and 3 characters, respectively; for example, the file 
  693. "aprettylongfilename.html" would be changed to "aprettyl.htm". 
  694.  
  695. Example: 
  696.  
  697.   xcp -i a* b*
  698.  
  699. will copy all files starting with "a", changing the first character to "b". You 
  700. will be prompted for every file. 
  701.  
  702.  
  703. ΓòÉΓòÉΓòÉ 3.4. Known Limitations ΓòÉΓòÉΓòÉ
  704.  
  705.      Although xcp's code is based on xren and should thus be fairly reliable, 
  706.       please be aware of the fact that this is an initial release and might 
  707.       still contain a bug or two. 
  708.  
  709.      xcp presently has no language support; its messages will always be in 
  710.       English. Sorry. 
  711.  
  712.      Since the filesystem type is not checked when copying files, the backup 
  713.       functions may not work on FAT drives when the file to be backed up is 
  714.       tried to be renamed to a name that does not obey FAT 8+3 naming 
  715.       conventions. Specify the "-8" option before backing up files on FAT 
  716.       drives, or the originals will be lost. 
  717.  
  718.      xcp does not yet support all features of OS/2's "COPY" command. The 
  719.       following functions do not work: 
  720.  
  721.         -  joining files with the "+" sign; 
  722.  
  723.         -  treating ASCII and binary files differently ("/A" and "/B" options); 
  724.  
  725.         -  changing the target file date/time ("+ ,," option); 
  726.  
  727.         -  EOF and verify options ("/A", "/B", "/V", "/F"); 
  728.  
  729.         -  copying to devices (such as "prt:" etc.); xcp is for copying files 
  730.            into files only. 
  731.  
  732.       See the OS/2 Command Reference for details. 
  733.  
  734.       If you need one of the above features and xcp was installed as a 
  735.       replacement for OS/2's "copy", simply type "COPY" in capital letters; 
  736.       since aliases are case-sensitive, OS/2's "copy" will be called instead of 
  737.       xcp.cmd. 
  738.  
  739.  
  740. ΓòÉΓòÉΓòÉ 3.5. History ΓòÉΓòÉΓòÉ
  741.  
  742. 1.64   Jan 1, 1998 
  743.  
  744. --- Initial release. 
  745.  
  746.  
  747. ΓòÉΓòÉΓòÉ 4. xren ΓòÉΓòÉΓòÉ
  748.  
  749.      What's that? 
  750.      Installation 
  751.      Starting xren / command line options 
  752.      Known limitations 
  753.      History 
  754.  
  755.  
  756. ΓòÉΓòÉΓòÉ 4.1. What's That? ΓòÉΓòÉΓòÉ
  757.  
  758. xren is CommandPak's alternative to OS/2's original REN command. It is supposed 
  759. to be 100% compatible with it (and since it frequently uses the original 
  760. internally, it should be). In addition though, there are a number of nifty new 
  761. things: 
  762.  
  763.      xren also supports "MOVE" functionality. I added this to the "rename 
  764.       context" since under UNIX the "mv" command also does the two tasks 
  765.       together. Moving is enabled as soon as the second specification includes 
  766.       a different path. 
  767.  
  768.      When moving files, xren provides a useful backup options for files that 
  769.       already exist in the destination directory. 
  770.  
  771.      xren can rename files to upper and lower case (HPFS only). 
  772.  
  773.      xren can work on those annoying .LONGNAME extended attributes; try "xren 
  774.       -d". 
  775.  
  776.      You can even change the real name to the contents of the .LONGNAME EA. 
  777.       This can be useful when having moved files from an HPFS drive to FAT and 
  778.       back; sometimes the real file names will have been truncated to FAT 8+3 
  779.       format, while the .LONGNAMES still contain the former long filenames 
  780.       (which the WPS will display, although all other software will only see 
  781.       the crippled filenames). Try "xren -r" in this situation. 
  782.  
  783.  In the default profile, "ren" is defined as an alias to "xren", thus replacing 
  784.  OS/2's original; a second alias, "mv" is also defined. 
  785.  
  786.  Depending on whether files are renamed or moved, xren uses OS/2's "REN" and 
  787.  "COPY"/"DEL" commands internally. As a result, extended attributes are copied 
  788.  properly. 
  789.  
  790.  
  791. ΓòÉΓòÉΓòÉ 4.1.1. Why Are Upper and Lower Case Important? ΓòÉΓòÉΓòÉ
  792.  
  793. With different operating systems, upper and lower case can become a problem. 
  794.  
  795.      OS/2 is capable of remembering upper and lower case in file systems, 
  796.       provided that the file system you are using remembers case, which HPFS 
  797.       does, for example. As a result, it makes a difference whether you name a 
  798.       file "TEXT.TXT" or "text.txt". This behaviour is sometimes described as 
  799.       OS/2 being "case-retensive". On FAT drives however, case will not be 
  800.       remembered (except for in .LONGNAME EAs). 
  801.      UNIX systems however do not only preserve case, but are "case-sensitive" 
  802.       also: in the same directory, "TEXT.TXT", "TEXT.txt" and "text.txt" will 
  803.       be three completely different files. Now, if you try to open a fourth 
  804.       combination, e.g. "text.TXT", you will get an error, since this name is 
  805.       not found by the system. 
  806.      DOS however is completely ignorant about case in file names: "FILE" and 
  807.       "file" are not considered to be any different, and whatever you specify 
  808.       is always converted into upper case. 
  809.      With Windows 95, I don't really know: It seems that case is remembered 
  810.       somewhere in the wicked VFAT file system, but the system doesn't care 
  811.       much, and annoyingly keeps converting file names on its own. 
  812.  
  813.  While you maybe don't care much about UNIX, you'll probably find out more 
  814.  about case-sensitivity when uploading a number of HTML files to a UNIX web 
  815.  server. If you have not paid attention to lower and upper case, your links in 
  816.  the HTML pages will provoke errors, since the serving UNIX system will 
  817.  consider files to be non-existent. With xren, just try typing "xren -L *", and 
  818.  a whole directory will be in lower case -- before uploading, of course. ;-) 
  819.  
  820.  
  821. ΓòÉΓòÉΓòÉ 4.2. Installation ΓòÉΓòÉΓòÉ
  822.  
  823. xren is installed automatically by the installation script provided with this 
  824. package. In the default profile, "ren" and "mv" are registered as aliases for 
  825. xren; this way, when you enter this within CmdShl, xren.cmd will be executed. 
  826.  
  827. xren requires xhelp.cmd to be present on the PATH in order to display its 
  828. messages. 
  829.  
  830. Installing xren manually is also very simple: just copy XREN.CMD somewhere 
  831. along your PATH. 
  832.  
  833. If you want to automatically use xren instead of DIR, you can add an alias, if 
  834. your command shell processor recognizes them. For example, with CmdShl, use: 
  835.  
  836.    ALIAS ren=xren %*
  837.  
  838.  
  839. ΓòÉΓòÉΓòÉ 4.3. Starting xren / Command Line Options ΓòÉΓòÉΓòÉ
  840.  
  841. Basically, xren operates in three different modes: 
  842.  
  843.    1. Rename mode: this is the standard OS/2 "REN" functionality. This mode is 
  844.       entered when two file specifications are given on the command line, the 
  845.       second of which does not contain a path specification. 
  846.  
  847.       Certain (new) options are also allowed here: 
  848.  
  849.               -i     Interactive mode: confirm renaming for each file.
  850.               -t     Test mode: do nothing, display actions only.
  851.               -v     Be verbose: echo each modification made.
  852.               -q     Be quiet: say nothing, not even error messages.
  853.               -d     Delete .LONGNAME before renaming (see notes below).
  854.               -8     Make filenames FAT-compliant (8+3 characters)
  855.                      (see notes below).
  856.  
  857.       Example: 
  858.  
  859.               xren -i a* b*
  860.  
  861.       will change the first character of all files starting with "a" to "b" and 
  862.       have you confirm each file. 
  863.  
  864.  
  865.    2. Move mode: this incorporates OS/2 "MOVE" functionality into xren. This 
  866.       mode is entered when two file specifications are given, the second of 
  867.       which contains a path specification though. Moving is performed in two 
  868.       steps: first the file is copied (to a new name, when specified), then the 
  869.       original is deleted. 
  870.  
  871.       If a file already exists in the destination directory, you will be 
  872.       prompted whether the original file should be overwritten, skipped or 
  873.       backed up. With the latter, the WPS renaming behaviour is imitated (e.g. 
  874.       "xren.cmd" becomes "xren!1.cmd"). 
  875.  
  876.       When moving, allowed options are: 
  877.  
  878.               -i     Interactive mode: confirm moving for each file.
  879.               -t     Test mode: do nothing, display actions only.
  880.               -b     Always backup existing files, don't prompt.
  881.               -f     "Force" mode: overwrite existing files, don't prompt.
  882.               -v     Be verbose: echo each modification made.
  883.               -q     Be quiet: say nothing, not even error messages.
  884.               -d     Delete .LONGNAME before renaming (see notes below).
  885.               -8     Make filenames FAT-compliant (8+3 characters)
  886.                      (see notes below).
  887.  
  888.       Examples: 
  889.  
  890.               xren -b a* \documents
  891.  
  892.       will move files starting with "a*" to the "\documents" directory and make 
  893.       backups of already existing files. 
  894.  
  895.               xren -f a* \documents\b*
  896.  
  897.       will move files starting with "a*" to the "\documents" directory, 
  898.       changing the first character to "b". Existing files will be overwritten 
  899.       without warning. 
  900.  
  901.  
  902.    3. Extended mode: this is all new and previously not available on OS/2. This 
  903.       mode is entered by specifying a respective option and ONLY ONE file 
  904.       specification; you cannot use the extended options in conjunction with 
  905.       two file specifications (as in rename/move mode) in order to avoid 
  906.       conflicts, except for the "-d" option (see above). The extended options 
  907.       are: 
  908.  
  909.               -d     Delete .LONGNAME extended attributes
  910.                      (see notes below).
  911.               -8     Make filenames FAT-compliant (8+3 characters).
  912.               -r     Change real names to respective .LONGNAMEs.
  913.               -L|U   Rename files to upper/lower case; this will change the real
  914.                      names only. This works on HPFS only, since FAT is not case-
  915.                      retensive.
  916.  
  917.       Examples: 
  918.  
  919.               xren -r a.txt          (a.txt has "b.txt" as a .LONGNAME)
  920.  
  921.       will rename "a.txt" to "b.txt". 
  922.  
  923.               xren -d *.txt
  924.  
  925.       will remove .LONGNAMEs for all ".txt" files. 
  926.  
  927.  Notes: 
  928.  
  929.      .LONGNAME EAs are automatically checked for "important" characters which 
  930.       are not allowed in real filenames, such as "/", "\", ">" etc. 
  931.  
  932.       If one of these is detected when using "-r", these characters are 
  933.       replaced by "!" (just like the WPS does). 
  934.  
  935.       When using "-d" with "important" .LONGNAMEs, the .LONGNAME is not deleted 
  936.       but retained, unless you have also enabled the "-f" option, which will 
  937.       enforce deletion. 
  938.  
  939.      FAT compliance ("-8" option) is achieved by simply truncating the 
  940.       filename and extension to 8 and 3 characters, respectively; for example, 
  941.       the file "aprettylongfilename.html" would be changed to "aprettyl.htm". 
  942.  
  943.  Type "xren -h" to see a short syntax description and valid options 
  944.  combinations. 
  945.  
  946.  
  947. ΓòÉΓòÉΓòÉ 4.4. Known Limitations ΓòÉΓòÉΓòÉ
  948.  
  949.      xren presently has no language support; its messages will always be in 
  950.       English. Sorry. 
  951.  
  952.      There are still some limitations when working on groups of files with 
  953.       wildcards (e.g. with "ren a* b*"). Presently, only leading or trailing 
  954.       wildcards are allowed (e.g. not "ren a*.cmd b*.cmd"). 
  955.  
  956.      Since the filesystem type is not checked when moving files, the backup 
  957.       functions may not work on FAT drives when the file to be backed up is 
  958.       tried to be renamed to a name that does not obey FAT 8+3 naming 
  959.       conventions. Specify the "-8" option before backing up files on FAT 
  960.       drives, or the originals will be lost. 
  961.  
  962.      Although upper and lower case only make a difference on HPFS drives, the 
  963.       file system type is not checked by xdir in order not to conflict with any 
  964.       unusual user-installed file systems. Performing upper/lower case renaming 
  965.       on FAT drives will have no effect. 
  966.  
  967.      When renaming files to upper/lower case (be it with the "-L"/"-U" options 
  968.       or e.g by using "xren *.INF *.inf"), the WPS does sometimes not recognize 
  969.       that something has changed, especially when you perform this on a 
  970.       directory whose WPS folder is currently open. It seems that the WPS is 
  971.       not only non-case-sensitive, but even completely case-ignorant. Since in 
  972.       this particular case the new names are only recognized after a reboot, I 
  973.       suspect the problem lies somewhere in the WPS file caches which are not 
  974.       properly updated. 
  975.  
  976.       Even worse, when dragging/dropping one of these "incorrect" files with 
  977.       the WPS, the former name is passed to the receiver. This means when you 
  978.       drop these files into another folder or when you drop files to another 
  979.       application, the former case is restored. I have had problems with this 
  980.       dragging these files to an FTP application, which then uploaded the files 
  981.       in upper case to my UNIX web server (which, again, is case-sensitive). 
  982.       :-( 
  983.  
  984.       Although this behavior is rather annoying, I presently know no perfect 
  985.       solution to overcome this. There's one workaround in renaming the files 
  986.       twice: first to something more different than just the case, then close 
  987.       and re-open the respective WPS folder, then rename the files again to 
  988.       what you really want. Example (for renaming "*.INF" to "*.inf"): 
  989.  
  990.                 xren *.INF *.xyz
  991.                 (close and re-open WPS folder)
  992.                 xren *.xyz *.inf
  993.  
  994.  
  995. ΓòÉΓòÉΓòÉ 4.5. History ΓòÉΓòÉΓòÉ
  996.  
  997. 1.64   January 2, 1998 
  998.  
  999. --- New features: 
  1000.  
  1001.      "-8" option added (FAT naming) 
  1002.      Deleting .LONGNAMEs can be enforced with "-f" even when they contain 
  1003.       important characters. 
  1004.  
  1005.  
  1006.  1.63   December 20, 1997 
  1007.  
  1008.  --- New features: 
  1009.  
  1010.      All functions work on directories also. 
  1011.      Better backup functions. 
  1012.      "-d" (delete .LONGNAMEs) works now in move/rename mode also. 
  1013.      "-i" (interactive) works now in all modes. 
  1014.  
  1015.  --- Bug fixes: 
  1016.  
  1017.      Rebuilt xren almost completely since options didn't work together right. 
  1018.      Moving/renaming should now work properly. 
  1019.      Problems with case sensitivity fixed. 
  1020.  
  1021.  
  1022.  1.61   December 6, 1997 
  1023.  
  1024.  --- New features: 
  1025.  
  1026.      Added "move" functionality when different path is given. 
  1027.  
  1028.  
  1029.  1.00   somewhere in september 1997 
  1030.  
  1031.  --- Initial release with .LONGNAME support. 
  1032.  
  1033.  
  1034. ΓòÉΓòÉΓòÉ 5. xhelp ΓòÉΓòÉΓòÉ
  1035.  
  1036.      What's that? 
  1037.      Installation 
  1038.      Starting xhelp / command line options 
  1039.      Recognized environment variables 
  1040.      Help file format 
  1041.      Supported HTML tags 
  1042.      Supported escape sequences 
  1043.      Known limitations 
  1044.      History 
  1045.  
  1046.  
  1047. ΓòÉΓòÉΓòÉ 5.1. What's That? ΓòÉΓòÉΓòÉ
  1048.  
  1049. xhelp is intended to be the universal help interface on the command line; it 
  1050. provides access to the help messages for MLRXSHL and CommandPak, which are 
  1051. formatted according to the Hypertext Markup Language (HTML). Support for 
  1052. different languages is provided via environment variables. 
  1053.  
  1054. In the default profile, a "help" alias is registered to access xhelp. 
  1055.  
  1056. xhelp operates in several modes (see the following page for details): 
  1057.  
  1058.      You can bring up help messages for the most important functions of 
  1059.       MLRXSHL and CommandPak. Example: 
  1060.  
  1061.               help dir
  1062.  
  1063.  
  1064.      You can open online documentation (INF files, for the OS/2 Information 
  1065.       Presentation Facitily). Example: 
  1066.  
  1067.               help cmdref
  1068.  
  1069.       This will open the OS/2 Online Reference ("CMDREF.INF"). 
  1070.  
  1071.      You can search a certain known INF book for content. Example: 
  1072.  
  1073.               help cmdref format
  1074.  
  1075.       This will find the description of the FORMAT command in the OS/2 Online 
  1076.       Reference ("CMDREF.INF"). 
  1077.  
  1078.      You can search ALL available INF books for content. Example (information 
  1079.       on a certain CONFIG.SYS driver): 
  1080.  
  1081.               help ibm1s506
  1082.  
  1083.  
  1084.      You can get further help on those strange OS/2 SYS messages. Example: 
  1085.  
  1086.               help 2166
  1087.  
  1088.  
  1089.      You can display any existing HTML file on your harddisk. Example: 
  1090.  
  1091.               help C:\HTML\blah.html
  1092.  
  1093.  
  1094.      You can issue a HTML (sort of) text directly. Example: 
  1095.  
  1096.               help "<HTML>blah</HTML>"
  1097.  
  1098.  
  1099.       See Supported HTML tags for details. 
  1100.  
  1101.  Moreover, "help list" will give you a list of what's currently accessible with 
  1102.  xhelp. 
  1103.  
  1104.  
  1105. ΓòÉΓòÉΓòÉ 5.2. Installation ΓòÉΓòÉΓòÉ
  1106.  
  1107. xhelp is installed automatically by the installation script provided with this 
  1108. package. In the default profile, "help" and "?" are registered as aliases for 
  1109. xhelp; this way, when you enter one of these within CmdShl, xhelp.cmd will be 
  1110. executed. 
  1111.  
  1112. It is NOT recommended to remove xhelp from your PATH, since most of 
  1113. CommandPak's rely on it for displaying their messages in order to be 
  1114. language-independent. 
  1115.  
  1116. Installing xcp manually is also very simple: just copy XHELP.CMD somewhere 
  1117. along your PATH. 
  1118.  
  1119. If you want to automatically use xhelp instead of HELP, you can add an alias, 
  1120. if your command shell processor recognizes them. For example, with CmdShl, use: 
  1121.  
  1122.    ALIAS help=xhelp %*
  1123.  
  1124.  
  1125. ΓòÉΓòÉΓòÉ 5.3. Starting xhelp / Command Line Options ΓòÉΓòÉΓòÉ
  1126.  
  1127. Generally, xhelp has several modes of operation: it can either display a 
  1128. built-in message, open an .INF book completely, search in .INF books for a 
  1129. certain topic, or display any external file (both simple text and HTML format). 
  1130.  
  1131. All of xhelp's internal messages have been put into a single file named 
  1132. 'XHELPxxx.MSG' with "xxx" being a language code. By setting the environment 
  1133. variable "HELP.COUNTRY", you can switch to another language, provided that the 
  1134. respective message file exists along the PATH. If the variable is not defined, 
  1135. the default "001" for English is assumed. See Help File Format for details. 
  1136.  
  1137. The syntax at the command line is as follows (the "help" alias is assumed in 
  1138. this description): 
  1139.  
  1140.    help             If you're new to CommandPak, just type "help" to
  1141.                     receive a raw introduction to the new functions.
  1142.  
  1143.    help <internal>  xhelp knows a number of commands already that are
  1144.                     capable of displaying help. If <internal> is one of these,
  1145.                     xhelp will explain something. For most parts
  1146.                     of MLRXSHL and CommandPak, this support has been
  1147.                     added in the message file. -- Example:
  1148.                       help ls        # show help for ls (xdir)
  1149.  
  1150.    help list        display the internal list of commands known that xhelp
  1151.                     provides help for; moreover, this will collect and display
  1152.                     all INF files on the BOOKSHELF (that can thus be displayed
  1153.                     with "xhelp <book>").
  1154.  
  1155.    help <topic>     If <topic> is NOT on this list, xhelp next checks if
  1156.                     an environment variable HELP.<topic> exists. If so, its
  1157.                     contents are assumed to be a combination of INF files.
  1158.                     Two of these ("HELP.REF" and "HELP.CMDSHL") are defined
  1159.                     in the default profile;
  1160.                       help ref
  1161.                     will thus access the complete provided online help,
  1162.                     containing "MLRXSHL0+MLRXSHL+COMMANDPAK".
  1163.  
  1164.                     If no such environment variable exists, the bookshelf is
  1165.                     searched for an .INF file named <topic>. Example:
  1166.                       help cmdref    # display OS/2 online reference
  1167.  
  1168.                     If no such .INF file is found, xhelp checks next if <topic>
  1169.                     is an existing file; if found, its contents are displayed.
  1170.                     Since xhelp can display HTML files (sort of), you can
  1171.                     even have formatted HTML output on your screen. Examples:
  1172.                       help index.html
  1173.                       help G:\blah\text.html
  1174.  
  1175.                     If this does not exist either, <topic> is assumed
  1176.                     to be content to search for; all books on the whole
  1177.                     bookshelf will be searched for <topic>. This is
  1178.                     started as a background process and might take a while,
  1179.                     depending on the number of books found. -- Example:
  1180.                       help ibm1s506
  1181.                     will find "ibm1s506" entry in OS/2's CMDREF.INF.
  1182.  
  1183.    help [sys|rex]<number>
  1184.                     If <number> is numeric, help will display an
  1185.                     explanation for an OS/2 SYS<number> error. Examples:
  1186.                       help 2166       # will display help on printer error
  1187.                       help sys2166    # the same
  1188.                       help rex16      # help on REXX error message
  1189.  
  1190.    help "<text>"    Whatever is enclosed in double quotes will be displayed
  1191.                     directly, either formatted (if a "<HTML>" is found) or not.
  1192.                     See Format of the help files for details.
  1193.  
  1194.    help ver         display current CommandPak version.
  1195.  
  1196.    help -c          for info on CmdShl itself.
  1197.  
  1198.    help -x          for some examples of how to use help.
  1199.  
  1200.    help -f <key>    access a certain <key> in the message file directly.
  1201.  
  1202.    help -w          show a welcome message (used in the default profile).
  1203.  
  1204. Type "help -x" to see a number of examples. 
  1205.  
  1206.  
  1207. ΓòÉΓòÉΓòÉ 5.4. Environment variables ΓòÉΓòÉΓòÉ
  1208.  
  1209. xhelp recognizes the following environment variables: 
  1210.  
  1211.      Setting xhelp's language: 
  1212.  
  1213.             HELP.COUNTRY=<xxx>
  1214.  
  1215.       This defines the message file that xhelp uses. Whenever internal messages 
  1216.       (especially help messages) are displayed, xhelp searches for a file named 
  1217.       "XHELPxxx.MSG" on the PATH, with <xxx> being a three-digit country code 
  1218.       as defined by HELP.COUNTRY; if this has not been set, "001" (for English) 
  1219.       is assumed. Setting HELP.COUNTRY to a three-digit number will thus change 
  1220.       the message file that xhelp searches for. See Help File Format for 
  1221.       details; see the OS/2 Online Reference for a list of country codes. 
  1222.       Example: 
  1223.  
  1224.               SET HELP.COUNTRY=049
  1225.  
  1226.       will switch to German messages. Please note that this file must contain 
  1227.       ALL of xhelp's messages, otherwise you will only get tons of error 
  1228.       messages. 
  1229.  
  1230.      Configuring output colors: 
  1231.  
  1232.             HELP.COLOR=<color>
  1233.  
  1234.       This will set the standard color when displaying HTML. The <color> syntax 
  1235.       follows the xdir rules. If not set, no coloring is used. 
  1236.  
  1237.             HELP.ANCHOR=<color>
  1238.             HELP.BOLD=<color>
  1239.             HELP.ITALICS=<color>
  1240.  
  1241.       This will set the colors for anchors (links), bold text and italics (<A>, 
  1242.       <B>, and <I> tags) when displaying HTML. The <color> syntax follows the 
  1243.       xdir rules. If not set, no coloring is used (the respective tags are 
  1244.       simply ignored). Certain colors are preset in the default profile. 
  1245.  
  1246.      Defining shortcuts: 
  1247.  
  1248.             HELP.<topic>=<books>
  1249.             <topic>=<books>
  1250.  
  1251.       You can define any <topic> as a "help alias" to another INF file or 
  1252.       several of them, joined by the "+" sign. Now, if <topic> is given as a 
  1253.       command line argument to xhelp and an environment variable HELP.<topic> 
  1254.       has been defined, xhelp will open up the INF file(s) described by the 
  1255.       variable. This is used in the default profile: 
  1256.  
  1257.               SET HELP.REF=MLRXSHL0+MLRXSHL+CMDPAK
  1258.  
  1259.       So typing "help ref" will open up all three INF books of 
  1260.       MLRXSHL/CommandPak. 
  1261.  
  1262.       The simple <topic>=<books> is the standard syntax of OS/2's VIEW.EXE 
  1263.       (undocumented, I believe), which is retained for compatibily. For 
  1264.       example, the OS/2 Toolkit defines a number of these variables in 
  1265.       CONFIG.SYS. As a result, in the preceding example, 
  1266.  
  1267.               SET REF=MLRXSHL0+MLRXSHL+CMDPAK
  1268.  
  1269.       would also work. However, the HELP.<topic>=<books> syntax is recommended 
  1270.       for use with xhelp, since it reduces the probability of help environment 
  1271.       variables interfering with those for other functions. 
  1272.  
  1273.  
  1274. ΓòÉΓòÉΓòÉ 5.5. Help File Format ΓòÉΓòÉΓòÉ
  1275.  
  1276. xhelp can process a subset of the Hypertext Markup Language (HTML). When a 
  1277. "<HTML>" tag is found in the text to be displayed, HTML processing is enabled 
  1278. (see next page for details). This is checked for in the following three 
  1279. situations: 
  1280.  
  1281.      xhelp processes its own message file; 
  1282.      xhelp is given a file location (help <file>); 
  1283.      xhelp is given a text directly (help "<text>"). 
  1284.  
  1285.  In all three cases, if no "<HTML>" tag is found, the given text is displayed 
  1286.  "as is". 
  1287.  
  1288.  A xhelp message file ("XHELPxxx.MSG", with xxx being a three-digit country 
  1289.  code) is considered to be a joint collection of independent messages in one 
  1290.  file. Each message therein can either be HTML or simple text and must be 
  1291.  enclosed by 
  1292.  
  1293.     <TOPIC NAME="msgid">This is the message text</TOPIC>
  1294.  
  1295.  tags. 
  1296.  
  1297.  Everything enclosed within these two tags will be extracted and treated as if 
  1298.  it were a separate file. Thus, if a "<HTML>" tag is found in the extracted 
  1299.  message, it will be formatted as HTML, otherwise displayed as normal text. The 
  1300.  "NAME" attribute identifies the message name; this is case-sensitive and must 
  1301.  be surrounded by double quotes. Browse through the provided example to see 
  1302.  more. 
  1303.  
  1304.  For example, if you enter "help alias" at the command line, then xhelp 
  1305.  searches for the <TOPIC NAME="aliasHelp"> tag in XHELP001.MSG; next, the text 
  1306.  preceding the next occurence of </TOPIC> is extracted. Since this alias help 
  1307.  message contains a <HTML> tag, it is formatted as HTML and displayed. 
  1308.  
  1309.  Now, if you want to translate CommandPak into another language, all you have 
  1310.  to do is finding out your country code (as described in the OS/2 Online 
  1311.  Reference); then copy XHELP001.MSG to XHELPxxx.MSG (with xxx being your 
  1312.  country code) and, translating, work your way through the message file. If you 
  1313.  consider your help file worth publishing, please contact me and I will include 
  1314.  it in CommandPak's next release. 
  1315.  
  1316.  If you want, you can also change all the HTML messages to simple text to speed 
  1317.  up display. 
  1318.  
  1319.  
  1320. ΓòÉΓòÉΓòÉ 5.5.1. Message File Example ΓòÉΓòÉΓòÉ
  1321.  
  1322. The following is an excerpt from XHELP001.MSG, defining the displayed message 
  1323. when you enter "help" without any arguments. In this case, xhelp searches for a 
  1324. message with the message ID "helpHelpFirst", as defined in the first line. 
  1325.  
  1326. Note the "<HTML>" tag right after the the "<TOPIC>" tag; this is neccessary to 
  1327. enable HTML processing, since each message within "<TOPIC>" and "</TOPIC>" is 
  1328. treated as if it were a separate file. 
  1329.  
  1330. Also note the escape sequences "<" and ">" to display the "<" and ">" 
  1331. chars. 
  1332.  
  1333. Remember, all line breaks and repetitive spaces are ignored in HTML; the use of 
  1334. tags is neccessary for this. 
  1335.  
  1336. <TOPIC NAME="helpHelpFirst"><HTML><B>This is an overview of MLRXSHL/CommandPak
  1337. (type <A HREF="">help <command></A> for more):</B>
  1338. <UL FIRST=2 NEXT=16><LI> <B>cd</B> <TAB>can now change drives also and remembers the last directory.
  1339. <LI><B>dir / ls</B>  <TAB>is a new and all-improved DIR command with coloring and more.
  1340. <LI><B>ren / mv</B>  <TAB>extended rename and move; extra features
  1341. <LI><B>alias</B>     <TAB>lets you define your own commands.
  1342. <LI><B>def</B>       <TAB>can redefine keys, even with whole command lines.
  1343. <LI><B>rule</B>      <TAB>lets you define rules for command-line editing.
  1344. <LI><B>rx</B>        <TAB>allows you to process REXX commands at the command line.
  1345. <LI><B>recurse</B>   <TAB>will execute a command line recursively in subdirectories.
  1346. <LI><B>open</B>      <TAB>will open a directory as a WPS folder.
  1347. <LI><B>ln</B>        <TAB>will create "links" via WPS shadows.
  1348. <LI><B>pushd / popd</B>  <TAB>will save/recall directories.
  1349. <LI><B>less</B>      <TAB>is a far better "more" than "more".
  1350. <LI><B>query</B>     <TAB>is a command for querying different system information.
  1351. <LI><B>fl</B>        <TAB>is a more-or-less graphical directory browser.
  1352. </UL>Type <A HREF="">help <command></A> to find out more about a certain <command>.
  1353. <BR>Type <A HREF="">help keys</A> to read a summary of the new command-line editing functions.
  1354. <BR>Type <A HREF="">help ref</A> to view the online reference with an in-depth introduction and
  1355. reference on CmdShl and the other functions.
  1356. <BR>Type <A HREF="">help help</A> to learn about usage of the "help" command.
  1357. <BR>Type <A HREF="">exit</A> to close this session.
  1358. </TOPIC>
  1359.  
  1360.  
  1361. ΓòÉΓòÉΓòÉ 5.6. Supported HTML Tags ΓòÉΓòÉΓòÉ
  1362.  
  1363. When formatting HTML, just like any HTML browser, xhelp will ignore any 
  1364. carriage returns / line feeds (ASCII code $0d, $0a) and repetitive spaces in 
  1365. the text, but rather recalculate the format of the output at every call. In 
  1366. order to format the text, the use of so-called "tags" is neccessary. These are 
  1367. put into angle brackets ("<tag>"); xhelp is not case-sensitive in respect to 
  1368. these tags. 
  1369.  
  1370. Tags that are not recognized by xhelp are ignored completely. As a consequence, 
  1371. all text following an open angle bracket ("<") is ignored until a closing angle 
  1372. bracket (">") is encountered. If you need angle brackets as characters in the 
  1373. text, you have to replace them with certain escape sequences (see next page). 
  1374.  
  1375. It is neccessary to enclose the text to be displayed in "<HTML>" tags; this 
  1376. also applies for a "subtext" as defined by <TOPIC>. Otherwise, the text will 
  1377. not be reformatted, but simply displayed on the screen as it is (via "say 
  1378. <msg>"). Use of the "<TITLE>" and "<BODY>" tags is not required and ignored. 
  1379.  
  1380. Presently, only the following HTML tags are supported: 
  1381.  
  1382.    <TOPIC NAME="msgid">
  1383.    </TOPIC>     This tag is only checked for when xhelp searches its
  1384.                 own message file; otherwise, it will be ignored.
  1385.  
  1386.    <HTML>       This must surround the text to enable HTML formatting.
  1387.    </HTML>
  1388.  
  1389.    <HEAD>       Everything in here will be completely ignored.
  1390.    </HEAD>
  1391.  
  1392.    <BR>         Start a new line.
  1393.  
  1394.    <P>          Start a new paragraph; xhelp will issue two line breaks.
  1395.                 Presently, no arguments are supported.
  1396.  
  1397.    <TR>         In "real" HTML, this starts a new row within a table; here,
  1398.                 a line break (like <BR>) is enforced. All other table tags
  1399.                 are ignored.
  1400.  
  1401.    <HR>         Horizontal rule.
  1402.  
  1403.    <UL>         Unordered list; each list element is introduced with
  1404.        <LI>     <LI>. No bullets are printed to introduce list
  1405.    </UL>        elements. Lists may be nested.
  1406.  
  1407.                 <UL> knows two arguments not used in HTML:
  1408.                    <UL FIRST=xxx NEXT=xxx>
  1409.                 FIRST specifies indentation for the first line of each
  1410.                 list element, NEXT for the following lines. "xxx" must
  1411.                 be specified in text-mode spaces. See the default help files
  1412.                 for examples.
  1413.  
  1414.    <TAB>        can be used within a list (as described above) to
  1415.                 jump to a predefined position. As for now, the only
  1416.                 "tab" defined is the NEXT position as described above.
  1417.                 xhelp uses this all the time for displaying a command
  1418.                 on the left, and the description of it on the right.
  1419.  
  1420.    <B>          Bold text; xhelp will display the enclosed text in
  1421.        text     the color specified in the environment variable
  1422.    </B>         "HELP.BOLD".
  1423.  
  1424.    <B>          Text in italics; xhelp will display the enclosed text in
  1425.        text     the color specified in the environment variable
  1426.    </B>         "HELP.ITALICS".
  1427.  
  1428.    <A HREF= >   Anchor; in "real" HTML, this defines a hyperlink.
  1429.        text     xhelp just highlights these with the color specified in
  1430.    </A>         "HELP.ANCHOR"; no further function is provided.
  1431.                 Highlighting only occurs when "HREF" is given.
  1432.  
  1433.    <!--         Comments; will be ignored. This is helpful when
  1434.    -->          parsing "real" HTML files containing JavaScript.
  1435.  
  1436.    <IMG>        Images of any kind will be replaced with a
  1437.                 symbol in the color specified for text in italics.
  1438.  
  1439.  
  1440. ΓòÉΓòÉΓòÉ 5.7. Special Characters in HTML files ΓòÉΓòÉΓòÉ
  1441.  
  1442. Certain special characters sometimes need, sometimes can be described with the 
  1443. use of special escape sequences: in HTML, all of these start with an ampersand 
  1444. ("&") and end with a semicolon (";"). 
  1445.  
  1446. The following list contains all HTML escape sequences that are supported by 
  1447. xhelp (plus a few xhelp-specific ones). 
  1448.  
  1449. As opposed to the rest of HTML, escape sequences are case-sensitive. Sequences 
  1450. that are not recognizes by xhelp will be skipped without producing any output. 
  1451.  
  1452. Please note the following in respect to codepages: 
  1453.  
  1454.      Not all characters can be displayed on your screen, depending on the 
  1455.       codepage you use. In the list below, mind the remarks made to certain 
  1456.       characters. See the OS/2 online reference for details on codepages. 
  1457.  
  1458.      xhelp supports both codepage 437 and 850; with OS/2 Warp 4 (or Warp 3 
  1459.       with ObjectREXX installed), it can detect the codepage on its own; 
  1460.       otherwise it will assume use of 437, since this seems to be more safe. 
  1461.  
  1462.      Characters that cannot be displayed with your current codepage will be 
  1463.       replaced by a character that comes close (e.g. a simple "Y" instead of 
  1464.       the Yen sign). 
  1465.  
  1466.      You might run into trouble when using "strange" codepages (other than 437 
  1467.       or 850, one of which should be supported on every computer), which I have 
  1468.       not tested. Adding "chcp 437" to your profile might help; see the OS/2 
  1469.       online reference for details. 
  1470.  
  1471.  I have omitted certain sequences that are supported by HTML, which I 
  1472.  considered not too important though or which are not supported by the standard 
  1473.  codepages. If you feel that something crucial to your language is missing, 
  1474.  please contact me. 
  1475.  
  1476.  REQUIRED escape sequences (for characters that have a special meaning in 
  1477.  HTML): 
  1478.  
  1479.      <         open angle bracket ("<")
  1480.      >         closing angle bracket (">")
  1481.      &        ampersand ("&")
  1482.  
  1483.              non-breaking space
  1484.  
  1485.  The following characters are provided for compatibility when displaying "real" 
  1486.  HTML files; as opposed to with HTML browsers, their use is NOT required, since 
  1487.  the characters can be put into the text directly as well. 
  1488.  
  1489.      §       
  1490.      £      ╨¼
  1491.      ¥        ╨¡        %
  1492.      ¢       ╨½        %
  1493.      ¶       
  1494.      µ      ╤å
  1495.      «      ╨╛
  1496.      »      ╨┐
  1497.      ½     ╨╗
  1498.      ¼     ╨╝
  1499.      ²       ┬ñ
  1500.      ±     ╤æ
  1501.      ¤     
  1502.  
  1503.  Notices: Characters marked with "%" are supported on codepage 437 only. 
  1504.  
  1505.  The following language-dependent special characters are both supported 
  1506.  directly as well as by the below escape sequences. 
  1507.  
  1508.      ä       ╨ö        *
  1509.      ë       ╨Ö        * #
  1510.      ï       ╨¢        * #
  1511.      ö       ╨ñ        *
  1512.      ü       ╨æ        *
  1513.  
  1514.      ß      ╤ü
  1515.      æ      ╨í        *
  1516.  
  1517.      á     ╨░        * #
  1518.      é     ╨Æ        *
  1519.      í     ╨▒        * #
  1520.      ó     ╨▓        * #
  1521.      ú     ╨│        * #
  1522.  
  1523.      à     ╨ò        * #
  1524.      è     ╨Ü        * #
  1525.      ì     ╨¥        * #
  1526.      ò     ╨Ñ        * #
  1527.      ù     ╨º        * #
  1528.  
  1529.      â      ╨ô        * #
  1530.      ê      ╨ÿ        * #
  1531.      î      ╨£        * #
  1532.      ô      ╨ú        * #
  1533.      û      ╨ª        * #
  1534.  
  1535.      ç     ╨ù        *
  1536.  
  1537.      å      ╨û        *
  1538.  
  1539.      ñ     ╨┤        *
  1540.      ¡      ╨╜
  1541.  
  1542.  Notices: Characters marked with "*" can also be capitalized (e.g. "Ü" 
  1543.  instead of "ü"); characters marked with "#" are, when capitalized, only 
  1544.  supported when using codepage 850. 
  1545.  
  1546.  The following are supported by xhelp only and are not part of HTML: 
  1547.  
  1548.      &larrw;      
  1549.      ↝      
  1550.      &uarrw;      
  1551.      &darrw;      
  1552.  
  1553.  
  1554. ΓòÉΓòÉΓòÉ 5.8. Known Limitations ΓòÉΓòÉΓòÉ
  1555.  
  1556.      xhelp processes HTML messages on a mixed per-character/per-word basis. On 
  1557.       my Pentium-133 with Warp 3 installed, output speed is acceptable; I 
  1558.       presently have no access to slower computers. If you experience 
  1559.       terminally slow output, you can rewrite the help message files 
  1560.       (XHELPxxx.MSG) so that they do not use HTML output, which is WAY faster. 
  1561.  
  1562.  
  1563. ΓòÉΓòÉΓòÉ 5.9. History ΓòÉΓòÉΓòÉ
  1564.  
  1565. 1.64   Jan 1, 1998 
  1566.  
  1567. --- New features: 
  1568.  
  1569.      Help files updated for xcp and watchdrv. 
  1570.  
  1571.  
  1572.  1.63   Dec 20, 1997 
  1573.  
  1574.  --- New features: 
  1575.  
  1576.      Support for different codepages added. Many more escape sequences. 
  1577.      Support for different languages via HELP.COUNTRY added. 
  1578.      Second, German help file CMD049.MSG provided. 
  1579.      Moved all help messages into CMD001.MSG. 
  1580.      Change for environment variables describing INF books: "help <var>" will 
  1581.       now look for environment variable HELP.<var> (instead of only <var>). 
  1582.      Environment variables HELP.COLOR, HELP.ANCHOR, HELP.BOLD, HELP.ITALICS 
  1583.       are now evaluated; default is now no coloring at all. 
  1584.      Help for OS/2 SYS/REX messages improved. 
  1585.      Adjusted for use with MLRXSHL's HELP.COMMAND variable. 
  1586.  
  1587.  --- Bugfixes: 
  1588.  
  1589.      Can now also handle non-OS/2 files that do not end their lines with 
  1590.       "0d0a"x (e.g. from UNIX). 
  1591.  
  1592.  
  1593.  1.62   Dec 14, 1997 
  1594.  
  1595.  --- New features: 
  1596.  
  1597.      "help list" will work without ObjectREXX too. Now displays both known 
  1598.       commands AND (new) all INF files on BOOKSHELF. 
  1599.      The message format has completely been reworked. xhelp now uses a subset 
  1600.       of the HTML syntax to display files and formats the output on-the-fly 
  1601.       according to the current screen size. 
  1602.      Added processing of external HTML and text files. 
  1603.      Added processing of text directly from the command line. 
  1604.  
  1605.  
  1606.  1.61   Dec 6, 1997 
  1607.  
  1608.  --- Initial release. 
  1609.  
  1610.  
  1611. ΓòÉΓòÉΓòÉ 6. ln ΓòÉΓòÉΓòÉ
  1612.  
  1613.      What's that? 
  1614.      Installation 
  1615.      Starting watchdrv / command line options 
  1616.      Known limitations 
  1617.  
  1618.  
  1619. ΓòÉΓòÉΓòÉ 6.1. What's That? ΓòÉΓòÉΓòÉ
  1620.  
  1621. In the UNIX world, "ln" is a standard command for creating "links". Since most 
  1622. UNIX filesystems do support links, this command really operates on the 
  1623. filesystem, creating a directory entry as if a new file was created, which does 
  1624. not point to a new file though, but to an existing file. This means you can 
  1625. have several directory entries actually pointing to the same file. 
  1626.  
  1627. Links are really helpful when organizing your directories. In OS/2, 
  1628. unfortunately, they do not exist, at least not on the filesystem level (with 
  1629. the exception of the "Toronto Virtual File System", TVFS, an IBM employee 
  1630. written software, which does provide links). OS/2 does provide a similar 
  1631. mechanism on the WPS level though: the well-known shadows. See the "What are 
  1632. abstract WPS objects?" section for details on this. 
  1633.  
  1634. "ln" now uses shadows to create links. In conjunction with "xdir", you can now 
  1635. create and view shadows on the command line. 
  1636.  
  1637.  
  1638. ΓòÉΓòÉΓòÉ 6.2. Installation ΓòÉΓòÉΓòÉ
  1639.  
  1640. ln is installed automatically by the installation script provided with this 
  1641. package. It does not require anything special, although you should put it on 
  1642. your PATH. 
  1643.  
  1644.  
  1645. ΓòÉΓòÉΓòÉ 6.3. Starting ln / Command Line Options ΓòÉΓòÉΓòÉ
  1646.  
  1647. ln follows the syntax of the UNIX "ln" utility, although not all functions can 
  1648. be implemented in OS/2 (e.g. there is no difference made between "soft" and 
  1649. "hard" links). 
  1650.  
  1651. Syntax: 
  1652.  
  1653.   ln [-<options>] <filespec> [<dir>]
  1654.  
  1655. with: 
  1656.  
  1657.   <filespec>   the file to be linked; this can be a full path specification.
  1658.                Wildcards ("*") are allowed.
  1659.   <dir>        This is the location where the link(s) shall be created
  1660.                in. When not specified, the current directory is used.
  1661.  
  1662. Options: 
  1663.  
  1664.   -f           "force" mode: replace existing links.
  1665.   -v           be verbose: show each file while linking.
  1666.  
  1667. Example: 
  1668.  
  1669.   ln G:\OS2\DLL\*.dll
  1670.  
  1671. will create shadows for all DLLs in the \OS2\DLL directory. The shadows will be 
  1672. placed in the current directory. Use "xdir -W" to see them or open a WPS folder 
  1673. (e.g. with the "open" command). 
  1674.  
  1675.  
  1676. ΓòÉΓòÉΓòÉ 6.4. Known Limitations ΓòÉΓòÉΓòÉ
  1677.  
  1678.      Not all UNIX options have been implemented yet; most of them don't make 
  1679.       sense with OS/2 anyway. 
  1680.      ln cannot handle filenames including spaces yet. 
  1681.  
  1682.  
  1683. ΓòÉΓòÉΓòÉ 7. open ΓòÉΓòÉΓòÉ
  1684.  
  1685. open is a command for opening a directory as a WPS folder. Its syntax is 
  1686. simple: 
  1687.  
  1688.    open [<dir>]
  1689.  
  1690. with <dir> being the directory to open. If <dir> is omitted, the current 
  1691. directory is opened. 
  1692.  
  1693. open is now (CommandPak V1.63) implemented as a CmdShl alias in the default 
  1694. profile. It uses CmdShl's "CD" command to switch to the specified directory; as 
  1695. a result, <dir> can be anything that "CD" understands, even a directory 
  1696. specified with the CDPATH environment variable. 
  1697.  
  1698. Example: 
  1699.  
  1700.    open \OS2
  1701.  
  1702. will open the OS2 directory on the current drive. 
  1703.  
  1704.  
  1705. ΓòÉΓòÉΓòÉ 8. recurse ΓòÉΓòÉΓòÉ
  1706.  
  1707. recurse is a command for executing a given command line in every subdirectory 
  1708. of the current directory. Its syntax is simple: 
  1709.  
  1710.    recurse [<cmdline>]
  1711.  
  1712. with <cmdline> being the command line to be executed in each subdirectory. If 
  1713. <cmdline> is omitted, a help message is issued. 
  1714.  
  1715. recurse is now (CommandPak V1.63) implemented as a CmdShl alias in the default 
  1716. profile, following a suggestion by Martin Lafaix. This way, recurse can now 
  1717. even use aliases and CmdShl built-in commands. 
  1718.  
  1719. Example: 
  1720.  
  1721.    recurse ren -d *
  1722.  
  1723. will remove .LONGNAME extended attributes from all files in all current 
  1724. subdirectories, provided that "ren" has been defined as an alias to xren. 
  1725.  
  1726. Trouble is, with recurse being a CmdShl alias, pressing Ctrl+C during execution 
  1727. will probably terminate the session due to a CMD.EXE bug. 
  1728.  
  1729.  
  1730. ΓòÉΓòÉΓòÉ 9. watchdrv ΓòÉΓòÉΓòÉ
  1731.  
  1732.      What's that? 
  1733.      Installation 
  1734.      Starting watchdrv / command line options 
  1735.      Known limitations 
  1736.      History 
  1737.  
  1738.  
  1739. ΓòÉΓòÉΓòÉ 9.1. What's That? ΓòÉΓòÉΓòÉ
  1740.  
  1741. watchdrv (for "watch drive", obviously) is helpful when you insert and remove 
  1742. CD-ROMs frequently. 
  1743.  
  1744. watchdrv will monitor your CD-ROM drive and open the respective drive folder as 
  1745. soon as you insert new media. You can even specify sounds that will be played 
  1746. upon inserting and removing media. 
  1747.  
  1748. watchdrv is not really a command-line utility since it best runs in a separate 
  1749. session, but I thought it was useful in CommandPak's context anyway. 
  1750.  
  1751.  
  1752. ΓòÉΓòÉΓòÉ 9.2. Installation ΓòÉΓòÉΓòÉ
  1753.  
  1754. watchdrv is installed automatically by the installation script provided with 
  1755. this package. A program object is created. 
  1756.  
  1757. watchdrv requires nothing special; you can put it anywhere. A location on the 
  1758. PATH is recommended. For sound support, MMPM/2 is required though, since 
  1759. watchdrv uses "play.cmd" in the /MMOS2 directory to play sounds. 
  1760.  
  1761. watchdrv will happily run in the background when minimized. 
  1762.  
  1763. You can put the watchdrv object into your startup folder to have watchdrv 
  1764. started automatically when you boot OS/2. 
  1765.  
  1766. watchdrv now (CommandPak 1.64) uses xhelp.cmd to display its messages, thus 
  1767. using the language that was set in the HELP.COUNTRY environment variable. If 
  1768. you have only set this variable in your profile, you might want to add a SET 
  1769. HELP.COUNTRY=xxx to CONFIG.SYS; otherwise, watchdrv will only recognize your 
  1770. language setting when started from within CmdShl. 
  1771.  
  1772.  
  1773. ΓòÉΓòÉΓòÉ 9.3. Starting watchdrv / Command Line Options ΓòÉΓòÉΓòÉ
  1774.  
  1775. watchdrv recognizes a few command line options when started; most importantly, 
  1776. the drive letter of your CD-ROM drive. 
  1777.  
  1778. Syntax: 
  1779.  
  1780.   watchdrv [<drive>] [-t:<val>] [-si:<file>] [-so:<file>] [-i] [--play]
  1781.  
  1782. with: 
  1783.  
  1784.   <drive>      being your CD-ROM drive (e.g. "L:"). This is not checked;
  1785.                if you specify a harddisk here, watchdrv will wait forever,
  1786.                since there will never be new media in there. Theoretically,
  1787.                it is also possible to monitor floppy disks ("watchdrv a:");
  1788.                trouble is that this makes the computer really slow, since
  1789.                there is continuous mechanical activity on the disk drive.
  1790.                If the drive is omitted, watchdrv will monitor the last
  1791.                available drive (which, at least on non-network computers,
  1792.                should be the CD-ROM drive).
  1793.  
  1794. Options: 
  1795.  
  1796.   -t:<val>     This defines the frequency of drive checking in seconds.
  1797.                The default is 2.
  1798.   -si:<file>   This defines the sound file to be played when media
  1799.                is inserted. You must specify the full path to the sound file.
  1800.   -so:<file>   The same for when media is removed.
  1801.   -i           ignore media at startup; if not specified, watchdrv will
  1802.                already open a folder at startup when media is inserted.
  1803.   --play       play audio CD-ROMs automatically (not implemented yet).
  1804.  
  1805. Example: 
  1806.  
  1807.   watchdrv L: -t:5 -si:G:\MMOS2\sounds\crash.wav
  1808.  
  1809. will check drive L: every five seconds and play a sound when media is inserted. 
  1810.  
  1811.  
  1812. ΓòÉΓòÉΓòÉ 9.4. Known Limitations ΓòÉΓòÉΓòÉ
  1813.  
  1814.      If the specified drive does not exist or is not removeable (e.g. when a 
  1815.       hard disk is specified), watchdrv will watch that drive forever. 
  1816.  
  1817.      The "--play" function (for playing audio CD-ROMs) is not working yet and 
  1818.       maybe never will. I've tried to implement it with the REXX multimedia 
  1819.       functions, but when calling these repeatedly, the machine becomes 
  1820.       terminally slow. If anyone has a better idea how to realize this, please 
  1821.       contact me. 
  1822.  
  1823.      watchdrv cannot auto-close folders when media is removed. Instead, OS/2 
  1824.       will annoyingly give error messages when you remove a CD-ROM from your 
  1825.       CD-ROM drive while its WPS folder is still open. The only thing watchdrv 
  1826.       can do is play a sound upon removing media ;-) so close your WPS folder 
  1827.       manually first before opening your CD-ROM drive. 
  1828.  
  1829.  
  1830. ΓòÉΓòÉΓòÉ 9.5. History ΓòÉΓòÉΓòÉ
  1831.  
  1832. 1.64   January 1, 1998 
  1833.  
  1834. --- New features: 
  1835.  
  1836.      Language support added to watchdrv.cmd and XHELPxxx.MSG. 
  1837.  
  1838.  
  1839.  1.62   December 14, 1997 
  1840.  
  1841.  --- New features: 
  1842.  
  1843.      If drive is omitted, watchdrv will take the last available drive 
  1844.       automatically. 
  1845.  
  1846.  
  1847.  1.00   somewhere in september 1997 
  1848.  
  1849.  --- Initial release. 
  1850.  
  1851.