(This is the program documentation in plain text. If you have any Web
browser, you may prefer to use it to read GREPHIST.HTM, which has all
the same text but is much better formatted.)



                           GREP Revision History

         program and documentation by Stan Brown, Oak Road Systems
                         revised February 20, 1999
        Copyright  1986-1999 by Oak Road Systems, +1 216 371-0043

GREP is a filter that searches input files, or the standard input, for
lines that contain matches for one or more patterns called regular
expressions and displays those matching lines.

This document is the complete revision history. To use GREP, please see the
user guide.

Revision history

v4.2, 1999-02-20:

   * Allow 8-bit characters in regular expressions.
   * Allow multiple regular expressions to be typed in directly, with the
     /F- option.
   * Fix a bug: with /I, character classes entered in lower case were
     expanded incorrectly.

v4.1, 1999-01-22:

   * Add the /U option (UNIX-style output) and the /Q option (quiet).
     Distinguish between option errors in the environment variable and on
     the command line.
   * Make all output options toggles (except /P); diagnose conflicts only
     after the last option has been scanned.
   * Take an optional output file name with /D (debug), which is no longer
     a toggle.
   * Default /P (show context lines) to 2,2 if user specifies /P without
     numbers.
   * Honor the special escape sequences only on the command line, since
     they're not needed when entering regular expressions in a file.
   * Rewrite and greatly expand the user guide. Use HTML instead of MS Word
     for Windows.

v4.0, 1998-11-19:

   * Package the existing version 4.0 for shareware release: revise
     documents without changing the software.

v4.0, 1998-05:

   * Add the /F option (multiple regular expressions in a file).
   * Build a 32-bit version (to accept long filenames) along with the
     16-bit version, using a single set of source files.

v3.4, 1998-03:

   * With the /P option, remove the < > widgets around the line numbers of
     the context lines, so that the lines that actually match are more
     easily seen.

v3.3, 1998-02:

   * Add the /L option.
   * Accept options from an environment variable.
   * In the output, show the file path as specified on the command line,
     not just the filename.
   * Prefix program messages with "grep:" or "grep/debug:".
   * Add warning messages for incompatible or redundant sets of options.
   * Diagnose a regular expression containing empty brackets [] as a user
     error, not an internal error.
   * Remove the /S option (search subdirectories), because GREP's code now
     uses the C run-time library to interpret file specs on the command
     line.
   * Fix a bug: inside [...] in regular expressions, the backslash was
     swallowing an extra character.

v3.2, 1997-06:

   * Add the /0 and /1 options to control exit status.
   * /D now shows the number of matches in each file, total matches, and
     exit status.

v3.1, 1997-01:

   * Allow numeric escapes like \0x9A, \045, and \211 in the regular
     expression.

v3.0, 1996-12:

   * Add the /P option (show context lines around the actual matches).
   * Display the values of all options when /D is on the command line.

v2.4, 1990-04:

   * Add + in regular expressions (match one or more occurrences).
   * Allow options both before and after the regular expression.
   * Add the /S option (search subdirectories).

v2.3, 1990-03:

   * Reverse the meaning of the /B option: now the default is to show only
     the names of matching files.
   * Suppress "matched 0 lines" when /C (count matches) is specified and /B
     is not.
   * Fix a bug: [...] character classes containing the range character -
     weren't always expanded correctly.

v2.2, 1990-01:

   * Add the /B option (show only the names of files that contain matches).

v2.1, 1989-12:

   * Make the /D option show the input pattern as well as the decoded
     version.
   * Fix a bug: character classes [...] weren't working with the /I option.

v2.0, 1989-07:

   * Complete rewrite.
   * Add the /I option (ignore case).
   * In the regular expression, add \e (escape) and \q (equal sign).

v1.0, 1986-04:

   * initial version: Though all code was developed independently, I got
     some ideas from PC Tech Journal, May 1996, pages 191-199.
