Upload Information Template for Hobbes
======================================

Archive Name: yaos18.zip
Program Description: Yet Another OS/2 Shell
Operating System/Version: Only tested on Warp 3.0
Program Source: cplee@iti.gov.sg
Replaces: yaos18.zip

Your name: LEE Cjin Pheow
Your email address: cplee@iti.gov.sg

Proposed directory for placement: /os2/textutil/

Requires: emx.dll

-------------------------------------------------------------------------------
         YAOS (Yet Another OS/2 Shell) version 1.8.1, Copyright 1997
         ===========================================================
                                (FREEWARE)

This is a shell that runs on top of cmd.exe. The following is a list of its
features:

      * Unix-like file name completion using the <tab> key. A name is
        completed with a space appended to the name if it is not a directory
        entry.

      * A vcd-like quick directory changer. The command "ycd <directory>"
        performs a quick change to the directory specified anywhere on the
        same drive. When the command is first issued on any drive, a directory
        scan is carried out and the results stored in a file named "YCD_DAT"
        in the root directory of that drive. Subsequently, YCD_DAT will be
        used whenever a ycd is called. If you make changes to the directory
        structure, you can cause yaos to rescan by either deleting the YCD_DAT 
        file or giving the drive letter as a parameter to ycd followed by a 
        colon, like, "ycd c:". Currently, ycd do not support cross directory 
        searches.

        If you do not have write permissions on a drive, a YCD_DAT file will
        be created in the root directory of drive C, having the name YCD_DATX
        where X is the drive alphabet.

      * A history of previously used commands with ability to access them using 
        commands like: !!, !4, !v test.c (those familiar with unix would know 
        what I this is about). For those who are unfamiliar, !! means execute
        the previous command. !4 means execute the 4th command in the command
        history. !v means execute the most recent command that begins with 'v'
        and append 'test.c' to the command.

        Of course, the up & down cursor keys will scroll through
        previous commands too. Also, by typing the initial characters of
        recently used commands and using F1 or Up/Down arrow keys, a search
        will be performed.

      * Ability to change directory to any [drive:\directory]
        in a single command using the normal 'cd' command.

      * Full support for prompt setting in OS/2.

      * Full implementation of command line editing.

      * Ability to detect PM programs and launch them on separated sessions. 

      * A popup window that displays the possible file names for
        completion. You can scroll through the entries in this
        popup window using the up and down arrow-keys, Home, End,
        PageUp and PageDown keys. You can also search for a particular
        file name by typing its name directly onto the popup window.
        ['-w' option when starting YAOS]

      * Alt-H keystroke will bring up a popup window containing
        commands that are stored in history. Again, you can scroll
        through this list using the cursor keys, Home, End, PageUp &
        PageDown keys. (The window will only appear if there are two or
        more commands in history).

      * [-o] argument: Defaulting to overwrite mode on startup.

      * Directory name that is completed using <tab> will have the back slash
        appended to the end of the name.

      * Implementation of aliases. You can define aliases in YAOS, save them
        into a file and later retrieve them. You can also specify an alias
        file when starting YAOS with the option [-s <filename>]. You have
        to specify the full path name for the <filename> unless it is
        located in the current directory. A total of up to 9 argument
        replacements (from %1 to %9) is allowed in aliases. Chaining aliases is
        no longer allowed. This is to prevent endless alias recursion. To read
        or write an alias file inside YAOS, refer to online help on alias:
        (Type:  '? alias' without the quotes at prompt.)
        You can also unset an alias by using the unalias <keyword> command.

      * Implementation of default application launching for different file
        extensions. Using the "ext" command, you can specify what application
        to be run when a filename of a particular extension is executed. For
        example, if you set "ext txt=tedit", whenever you type a filename with
        an extension txt at the command line, the program tedit will be called
        up automatically to edit that file.

      * In the file name completion popup window, the maximum string that
        is common to all possible names is matched. (Previously, matching
        is done only up to what the user keys in before bringing up the popup
        window.

      * Emacs like editing keys are implemented.
                Ctl-v   : PageDown
                Alt-v   : PageUp
                Ctl-p   : Previous Line
                Ctl-n   : Next Line
                Ctl-a   : Beginning of line
                Ctl-e   : End of Line
                Ctl-f   : Forward a character
                Ctl-b   : Back a character
                Alt-f   : Forward a word
                Alt-b   : Back a word
                Ctl-d   : Delete current character
                Ctl-k   : Delete till end of line

     * Instead of keying in the startup options from the command line, you
       can define an environment setting in the config.sys file to hold
       the options. For example, you can do the following:

             set YAOS=-wqs c:\yaos\alias.fil

       Moreover, you can overwrite the 'set' options from the command line.

     * In the filename completion popup window, after typing in one or more
       characters, hitting the <Tab> key will cause YAOS to match again as
       much as possible the likely completing file name.

     * Thanks to a sugguestion by David Begley from Australia, I have managed
       to reduce the size of the file YAOS.EXE considerably.  Compare it
       with the YAOS.EXE file prior to v0.9. Also, note that YAOS now uses
       EMX.DLL. This will benefit those who run many applications compiled
       using emx/gcc.

     * Recognizes different keyboard layouts.

     * Built-in "which <executable>" command to locate pathed executable files.

     * Changing to a directory is as simple as typing its name. If a pathed
       executable of the same name exist, it will be executed instead.

     * Ability to execute any program upon YAOS startup with the "-x" option.

     * Ability to read in a file containing environment settings and aliases
       with the "-s <filename>" option during startup or the "source <filename>"
       command while in YAOS.

     * Hitting the <Esc> key clears the command line.

     * Use of the '&' character to detach a process like in Unix.

     * Built-in "kill <pid>" command to kill a process with id <pid>. <pid> can
       be specified in hexadecimal (e.g., 0x261) or decimal (e.g., 609). Make
       use of the OS/2 program "pstat /c" to find out the pids of active
       processes.

     * The command "cd-" brings you back to the previous directory you were in.

     * Automatic invocation of the ycd when a normal cd fails. 
       Use the "-y" option.

     * Ability to set window title name.

Read the file "new.txt" for what's new in this release

Obselete:
---------
The following commandline options are no longer supported:
   -m, -f, -i, -a, -r

Wish list:
----------
     * Use of ';' separator for multiple commands   [User suggestion]
     * Changing the window title when a command is executed. Currently,
       I have no idea how to do this. Maybe someone can enlighten me.
     * Any reasonable feature requests from YOU!

This release is by no means a bug free version. However, I hope you will
use and like YAOS. Suggestions and comments (including bug reports) are
greatly welcomed.

Installation:
-------------
1) Copy YAOS.EXE to a PATHed directory (e.g., C:\OS2)

2) Copy EMX.DLL to a LIBRARY directory (e.g., C:\OS2\DLL)
(Note: The EMX.DLL file included with YAOS should be used.
       You may not use any earlier versions of the DLL files. If earlier
       versions of the DLL files exist, you have to delete them. If not,
       YAOS will not function properly.)

3) Now you can safely run YAOS.

NOTE: Failure to perform the above steps will result in improper execution
      of YAOS.

PS:   You can also use the yaosinst.cmd REXX script to create an object on
      your desktop. However, I would still recommend that you copy the DLL
      file into a LIBRARY directory.

Credits:
--------
This release of YAOS would not have been possible without the patience and
helpful comments from users like you. Special thank goes to Marko Teittinen
for his invaluable sugguestions during the early stages of YAOS.

Author:
-------
        LEE, Cjin Pheow
        May 12, 1997

+----------------------------------------------------------------------+
| LEE Cjin Pheow                   Associate Member of Technical Staff |
| Information Technology Institute, National Computer Board, SINGAPORE |
| 11 Science Park Road S(117685)   Voice:(65)770-5595 Fax:(65)779-1827 |
| Email: cplee@iti.gov.sg      WWW: http://www.iti.gov.sg/staff/cplee/ |
+----------------------------------------------------------------------+
