Extended Search version 2.0 for C++Builder.

To Install Extended Search, ensure all files are in the same
directory:

  XSearchc.dll
  XScRead.txt
  XScInst.exe
  XScUnins.exe

Then run XScInst. Extended Search will appear under C++Builder's search
menu the next time C++Builder is started. To uninstall, run XScUnins.exe.

WHAT DOES IT DO?

  Ever get tired of the DOS-shell -> GREP -> Task switch -> File|Open ->
Search|Find cycle? What a waste of time. Ever forget which unit TIndexDef is
declared in? Well, I always did.
  Extended Search is an Add-In expert which brings GREP-Like functionality to
C++Builder's Search menu, allowing you to search through multiple files for a
specific character pattern, display each occurence in its particular context,
and open the desired file in the C++Builder editor with the cursor positioned at
the line of interest, saving a LOT of keystrokes. It supports all the
basic GREP options: Expression searches, Case-sensitivity, whole word, and sub-directory
searches, line numbers and filenames only.

HOW DO I USE IT?

Extended Search's fundamentals are pretty much like GREP. You specify a search
string, a file or group of files, and some options and it returns a list of the
occurences of the search string in those files. The two distinguishing features
of this version of Extended Search are File Aliases and the Search Results list.

File Aliases:
The File Specification edit box takes either an explicit file set specification
(i.e., c:\bcb\examples\*.cpp) or a File Alias. Aliases are defined in the
properties page (reached via the local menu). To enter a new alias, right-click
and choose 'Add Item' or press the INSERT key.

Search Results:
The search results are displayed in the Search Results Tree-View. Use the space
bar, mouse double-click, or right arrow to expand each node and view the context
of each occurrence of your search string in a particular file. Press the spacebar
or double-click on an occurrence and the file is opened in the C++Builder editor and
the cursor is positioned on that line. Spacebar, double-click or left arrow again
contracts and expanded node.

New Features for 2.0:

-Searching is done in an interruptible background thread.

-Supports GREP-style regular expressions, where the following characters
have special meanings:

     ^ (start of line)

        Example: ^C++Builder
        Matches the line
          "C++Builder Component Library"
        but not
          "{ C++Builder Component Library }"

     $ (end of line)

        Example: Integer;$
        Matches the line
          "function Foo: Integer;"
        but not
          "function Foo: Integer; virtual;

     ? (any single character)

        Example: co?y
        Matches
          "copy" and "cozy"
        but not
          "cop" or "coy"

     \ (treat next character as literal)

        Example: co?y\?
        Matches
          "copy?" and "cozy?"

     * (match zero or more occurences of next character)

        Example: jo*ly
        Matches
          "jolly" and "joy"

        Combine with "?" for a wildcard:
        Example: jo*?y
        Matches any character between "o" and "y":
          "jolly", "joy", "john murphy", "joe smythe", etc.

     + (match one or more occurences of next character)

        Example: jo+ly
        Matches
          "jolly"
        but not
          "joy"

        Combine with "?" for a wildcard which requires
        one character in between:

        Example: jo+?y
        Matches at least one character between "o" and "y":
          "jolly", "john murphy", "joe smythe", etc.
        but not
          "joy"

     Sets of characters may also be specified as:
       [aeiou0-9]   match a, e, i, o, u, and 0 thru 9
       [~aeiou0-9]  match anything but a, e, i, o, u, and 0 thru 9

       Example: [cr-t]ough
       Matches
         "cough", "rough" and "tough"
       but not
         "dough"

       Example: [~rt]ough
       Matches
         "cough" and "dough"
       but not
         "rough" or "tough"

-Searches open editor files if they match the current filespec.

-Optionally searches all files in the current project ("current project"
is defined by the C++Builder/Delphi IDE API as those modules appearing in the project
manager.

-Multiple filespecs are allowed, semi-colon delimited. In addition,
on the properties page you may specify a list of default extensions
(also semi-colon delimited) which will be used when any filespec omits
the filename. For example, the filespec

        d:\C++Builder\examples; c:\batch\*.bat

with default extensions as

        cpp;h

which will search all files with .cpp and .h extension in d:\C++Builder\examples
and only files with .bat extension in c:\batch.

-The form is now resizable.

-There is a customizable menu hotkey.

-Can optionally grab current token from editor window when form is activated.

-Drop-down list for file specs.

REGISTRATION:

Registration is $15 ($30 will include the complete source code, including the
regular expression search engine), and, upon request, includes Extended Search
v 2.0 for Delphi 2.0 and Delphi 3.

You can register via Compuserve by GO SWREG, #15691, or send a check to

Mark Duncan
P.O. Box 671
Ben Lomond, CA 95005-0671

If you find any problems or have any additional suggestions, please contact
me at 104370,1043@Compuserve.com or duncan@got.net

Thanks,
Mark Duncan
