home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / msdos / sysutl / history.arc / HISTORY.DOC < prev    next >
Text File  |  1988-03-20  |  10KB  |  231 lines

  1.         HISTORY.DOC      Version 1.3  30 April 87           Page 1
  2.  
  3.  
  4.         Copyright 1985-7  Michael M Rubenstein
  5.     Portions Copyright 1988, Russell Nelson
  6.  
  7.         This software and the accompanying documentation may be
  8.         distributed freely for noncommercial use.
  9.  
  10.  
  11.     Changes in Version 1.4R
  12.  
  13.           -    Cleaned up memory usage.  Went from 27K to 7.7K.
  14.  
  15.     Changes in Version 1.3R
  16.  
  17.           -    Ported to Turbo C.
  18.           -    Added filename completion.  See the LF command below.
  19.           -    Split into two files, one for editing and one for
  20.                history, to hide the history data structure.
  21.           -    Fixed some hokiness regarding the second history buffer.
  22.  
  23.  
  24.         Changes in Version 1.3
  25.  
  26.                   -    Added second history buffer for use of programs
  27.                        other than COMMAND.COM.
  28.  
  29.         Changes in Version 1.2
  30.  
  31.                   -    Corrected handling of long lines when screen
  32.                        scrolls.
  33.  
  34.         Changes in Version 1.1.
  35.  
  36.                   -    Function keys 1-5 have been implemented in a
  37.                        manner much more consistent with the standard
  38.                        MSDOS function keys.
  39.  
  40.                   -    If supplied by the calling program, the buffer
  41.                        line may be used.  This allows use of the function
  42.                        keys in the few programs (such as EDLIN) which are
  43.                        designed for use of the keys.
  44.  
  45.  
  46.  
  47.         Description.
  48.  
  49.         HISTORY is a history processing terminate and stay resident
  50.         program.  It provides the ability to recall and edit previous
  51.         commands and allows much more sophisticated editing than is found
  52.         in the normal MSDOS system.
  53.  
  54.         HISTORY includes a search mechanism to handle relatively large
  55.         histories.
  56.  
  57.  
  58.  
  59.         Requirements.
  60.  
  61.         HISTORY requires about 5500 bytes of memory plus whatever is
  62.         required for the history storage.
  63.  
  64.  
  65.  
  66.         Running HISTORY.
  67.  
  68.         HISTORY takes two optional argument son the command line -- the
  69.         number of bytes (256 - 32767) to use for history storage for
  70.         COMMAND.COM and the number of bytes (256 - 32767) to use for
  71.         other programs.  If only one argument is given, it is taken as
  72.         HISTORY.DOC      Version 1.3  30 April 87           Page 2
  73.  
  74.  
  75.         the number of bytes for COMMAND.COM.  If an argument is missing,
  76.         the minimum, 256, is used.  If a number less than 256 is given,
  77.         it is silently treated as 256.  If a number larger than 32767 is
  78.         given, it is silently treated as 32767.  The history buffer is
  79.         circular; i.e, when space is exhausted the oldest commands are
  80.         deleted.  The sum of the two arguments should not be greater than
  81.         about 55,000 (usually a much smaller sum is appropriate).
  82.  
  83.         A value of 1000-2000 is generally appropriate for the first
  84.         argument.  A much smaller value is usually adequate for the
  85.         second argument;  the default of 256 bytes is generally adequate.
  86.  
  87.         Entering commands with HISTORY is similar to doing so in the standard
  88.         command processor, but there are numerous additional editing
  89.         options.
  90.  
  91.              Left arrow        -  Back one character.
  92.  
  93.              Right arrow       -  Forward one character.
  94.  
  95.              Ctrl left arrow   -  Back one word.
  96.  
  97.              Ctrl right arrow  -  Forward one word.
  98.  
  99.              Home              -  Go to start of line.
  100.  
  101.              End               -  Go to end of line.
  102.  
  103.              Del               -  Delete current character.
  104.  
  105.              Backspace         -  Delete previous character.
  106.  
  107.          Line Feed           -  Complete the filename to the left of the
  108.                   cursor.  If the filename contains wildcards,
  109.                   copy all the matching filenames in.
  110.  
  111.              Ctrl Q            -  Remove any special meaning from the
  112.                                   next character.  For example, Ctrl Q
  113.                                   Ctrl H inserts a Ctrl H (backspace)
  114.                                   into the line.
  115.  
  116.              Ctrl T            -  Delete to beginning of next word.
  117.              F10
  118.  
  119.              Ctrl W
  120.              F9                -  Delete back to beginning of word.
  121.  
  122.              Ctrl U            -  Delete entire line.
  123.              Ctrl X
  124.              Esc
  125.  
  126.              Ctrl Y            -  Delete to end of line
  127.              F8
  128.  
  129.              Ins               -  Toggle insert mode.
  130.  
  131.              F1                -  If the current line is empty, copy the
  132.                                   template from the buffer. Otherwise
  133.                                   advance one character.
  134.         HISTORY.DOC      Version 1.3  30 April 87           Page 3
  135.  
  136.  
  137.  
  138.              F2                -  If the current line is empty, copy the
  139.                                   template from the buffer.  In any case,
  140.                                   waits for another character and
  141.                                   advances to the next occurrence of that
  142.                                   character.
  143.  
  144.              F3                -  If the current line is empty, copy the
  145.                                   template from the buffer.  In any case,
  146.                                   advance to the end of the line.
  147.  
  148.              F4                -  If the current line is empty, copy the
  149.                                   template from the buffer.  In any case,
  150.                                   waits for another character and deletes
  151.                                   to the next occurrence of that
  152.                                   character.
  153.  
  154.              F5                -  Make the current line the template.
  155.         The command will be processed when RETURN or ENTER is pressed.
  156.         The cursor need not be at the end of the line.
  157.  
  158.         The real power of HISTORY, however, is in the ability to recall
  159.         and edit previous command lines.  This is controlled by several
  160.         additional command keys:
  161.  
  162.              Up arrow          -  Recall previous command line.  Repeated
  163.                                   application gets successively earlier
  164.                                   command lines.  If there is no previous
  165.                                   command line (or it has not been kept
  166.                                   in the history), the bell will sound.
  167.                                   The Ctrl U, Ctrl X, and ESC editing
  168.                                   commands reset the internal pointer to
  169.                                   the end so the next up arrow gets the last
  170.                                   command line executed again.
  171.  
  172.              Ctrl L            -  Searches for a previous command line
  173.              F7                   which matches the current line to the
  174.                                   left of the cursor.  Case is
  175.                                   immaterial.  If none is found, the bell
  176.                                   will sound.  For example, if the
  177.                                   previous command lines were
  178.  
  179.                                   dir
  180.                                   ws test.doc
  181.                                   type whatever.c
  182.                                   whatever
  183.                                   ws what.out
  184.                                   dir
  185.  
  186.                                   then typing
  187.  
  188.                                       w Ctrl L
  189.  
  190.                                   would recall the command "ws what.out".
  191.                                   The cursor is left after the "w", so
  192.         HISTORY.DOC      Version 1.3  30 April 87           Page 4
  193.  
  194.  
  195.                                   typing Ctrl L again would recall
  196.                                   "whatever".  If ws Ctrl L were typed
  197.                                   initially, the "whatever" command would
  198.                                   be skipped and the two "ws" commands
  199.                                   would be recalled.
  200.  
  201.              Down arrow        -  Recalls the next command (assuming a
  202.                                   previous command has been recalled with
  203.                                   up arrow and is being edited).  If
  204.                                   there is no next command, the bell
  205.                                   sounds.
  206.  
  207.         While the editing commands may seem a bit complex at first, a
  208.         little playing at the terminal will make them very natural and
  209.         easy to use.  The Ctrl L command, in particular, is quite
  210.         different from the commands found in most editors.  With a very
  211.         little practice, command line editing with HISTORY becomes almost
  212.         automatic and one soon wonders how one lived without it.
  213.  
  214.         The history commands are available in any program (e.g., DEBUG)
  215.         which uses BDOS function 10 for input.  Two history buffers are
  216.         used -- one for COMMAND.COM and one for all other programs.
  217.  
  218.  
  219.         For the Hacker.
  220.  
  221.         HISTORY was written in C and compiled with the Aztec C.  Source
  222.         code is included.  A small assembly language interface is used to
  223.         make the program memory resident and communicate with the get
  224.         console buffer interrupt.
  225.  
  226.         The C code is fairly standard and should be reasonably easy to
  227.         convert to other versions.  The assembly language interface will
  228.         require more work if another C compiler is used.
  229.  
  230.         <End of Document>
  231.