****************************************************************************
*                                                                          *
* Chelp V1.36 by Robert Wahlström, Mathias Widman         92-Oct-20        *
*                                                                          *
* Copyright (C) 1992 by R Wahlström, M Widman. All rights reserved.        *
*                                                                          *
* Search for functions in autodocs and structs & defines in c-includefiles *
*                                                                          *
* Written in Lattice C 5.10b with CygnusED Pro and CHELP on Amiga 3000.    *
*                                                                          *
*  Robert Wahlström                                                        *
*  Enehagsg 197                                                            *
*  S-441 57  ALINGSÅS   SWEDEN                                             *
*                                                                          *
*  Usenet:  d0robert@dtek.chalmers.se                                      *
*  Fidonet: Robert Wahlstrom@2:203/316                                     *
*                                                                          *
*                                                                          *
*  Mathias Widman                                                          *
*  Tegelbruksg 77                                                          *
*  S-441 56 ALINGSÅS    SWEDEN                                             *
*                                                                          *
*  Usenet:  d0omega@dtek.chalmers.se                                       *
*  Fidonet: Mathias Widman@2:203/316                                       *
*                                                                          *
*  Support BBS:  UTILITYBASE  +46-322-17877  (14.4k HST)  2:203/316        *
*                                                                          *
****************************************************************************
$VER: Chelp.doc  V1.31 (92-Oct-20)   by R Wahlström, Mathias Widman 1992


Chelp is Shareware, and may be distributed in a non-commercial way (you may
copy, spread, and use it but don't make money out of it).
The programmers take no responsibility for eventual errors that the program
may create in any way. You run it on your own risk. We have done everything
we can to assure that it functions correctly. Many hours of testing and
debugging have been done. (If you still find any bugs, please report).


*** REGISTRATION ***********************************************************

If you find Chelp useful, please register by sending US$20 to either of the
above addresses. (In Sweden you can use POSTGIRO: 641 57 17-5, 100 SEK).
Please state your full name and address, machinetype, BBS (if you run one)
so that we can send you the registered version.

****************************************************************************


1 What is Chelp?
  ==============
 
Chelp is a program that will make life easier for programmers. Everybody
knows how timeconsuming and boring it is to lookup things in the RKRM
Includes & autodocs.

With Chelp you can now do all this on the computer right at your fingertips. 

ex. What does the Gadget struct look like?
    Type Chelp gadget   - and it will show up on your screen.

    RemoveAppIcon, I need to know all about it!
    Type Chelp removeappicon    - and it will give you what you need to know
        about RemoveAppIcon (That exists in the Autodocs + Includes)

    In what includefile is SELECTED defined?
    Type Chelp SELECTED  


2 What is needed?
  ===============

a)  If you want to lookup things in autodocs, you will need them (the program
    works well without them, but you will miss a great part of the advantages
    of Chelp).
    If you don't have these files you can order them from CATS (Commodore
    Applications and Technical Support) for some money probably.

b)  You will also need the C-Includes that came with your compiler software.

c)  System requirements: Chelp works on all Amigas with a harddisk that runs
    Kickstart 2.04 (release v37). For those of you that haven't upgraded yet
    there is a mini version included.

Address to CATS:    CATS-Information
                    1200 Wilson Drive
                    West Chester, PA 19380-4231


3 Installation
  ============


Start Chelp from Workbench by doubleclicking the Chelp-Icon, or type Chelp -i
from th CLI.
You will then see a requester telling you that s:chelp.cfg doesn't exist.
There you will choose 'default'.

If you don't want the config file in s:, you can create an environment variable
named CHELP and there put your path.

ex: setenv CHELP Work:config
    
Enter the path to where your autodocs are in the field 'Path to .doc'.
There is a checkbox to the right that enables Chelp to process the autodocs.
If you don't wish to use the autodocs (or if you don't have them), disable.

ex. work:lc/autodocs

Enter the path to where your includes are in the field 'Path to .h'.
There is a checkbox to the right that enables Chelp to process the includes.
If you don't wish to use the autodocs (or if you don't have them), disable.

ex. work:lc/compiler_headers

IMPORTANT!! You must specify the path to the non-compacted include files,
not to the compacted ones that you normally have in INCLUDE:

Enter the path to where you want the referencefiles to be built in the field
'Path to ref'. Ex RAM: or s:. If you use RAM: you must rebuild each time you
have rebooted. 

Now press SAVE.

To create the referencefiles that Chelp needs, press the BUILD button (or if
in CLI mode type chelp -b). This will take a few minutes depending on the
speed of your hardware.


4 Start from CLI
  ==============

Syntax: Chelp [Flag] [Keyword] [Subheader]

Chelp -B            - Builds the referencefiles. You must do this if you
                    change the path to includes/autodocs, or you install
                    new includes/autodocs. We recommend that you run
                    Chelp -b every time you get a new version of Chelp.

Chelp -l <keyword>  - Lists all functions/structs/defines that matches
                    the pattern [keyword].


Chelp [keyword] [subheader]

                    - Looks up all functions/structs/defines that matches
                    the pattern [keyword].

              ex:   Chelp addappicon - gives you info about AddAppIcon

              ex:   Chelp window - gives you info about the struct window


              ex:   chelp exec - gives you includefile exec.h 


              ex:   Chelp GA_* - gives you info about all GadgetAttributes

                    If [keyword] ends with * or + you will get all functions
                    /structs that begins with 'keyword', see wildcards for
                    more info.

                    If 'subheader' exists, you will only get that part of the
                    autodoc that matches the subheader.

              ex:   Chelp addappicon name - gives you the text that is in the
                    paragraph name.

                    NAME

                    NAME                                                                       
                        AddAppIcon - add an icon to workbench's list of appicons.

              ex:   Chelp Create* synopsis - gives you info about everything in
                    the paragraph synopsis of every fuction that matches Create*.

Chelp -C [keyword]  Samw as for CHelp [keyword] except that the keyword is case
                    dependent.

              ex:   Chelp -c Open - find Open but not open
        
              ex:   Chelp -c open* - finds all that starts with open, but not
                    those with Open 

Chelp -d [keyword] [subheader]

                    Search only in autodocs.

Chelp -h [keyword]  Search only in includes.

Chelp -i            See Intuition interface.

Chelp -s            Starts Chelp in the background (sleep mode). It will wait
                    for either a hotkey to wake up or some Arexx messages.


5 Start from Workbench
  ====================

  You can start Chelp from Workbench by doubleclicking on the Chelp-Icon.
  If HIDE in tooltypes isn't YES, a window will open.
  If HIDE in tooltypes is YES, no window will open, but Chelp will start in
  sleep mode. 

  TOOLTYPES:

    HIDE:
  
        If HIDE=YES no window will open. (Sleep mode)
        
        If HIDE=NO or doesn't exist a window will open.

    HOTKEY:

        This tooltype describes the standard hotkey for Chelp to wake up from
        sleep mode.
        NOTICE! This hotkey will be used before the one in the configfile. 

        If hotkey doesn't exist, the one from the configfile will be used.

    DONOTWAIT:

        Include this if you put Chelp in your WBstartup drawer.


6 INTUITION INTERFACE
  ===================

If you start chelp with the option -i, ie. 'chelp -i' or from workbench,
a window will be opened with some gadgets: BUILD, HIDE, QUIT.

6.1 Build

    This gadget starts the building procedure that examines your autodocs
    and includes. This is to be done every time you have changed the path
    to your includes/autodocs or if you have installed or altered some
    includes/autodocs files. The building procedure can be aborted by
    clicking on the build gadget again.
    
6.2 Hide

    The hide gadget closes Chelps window while chelp is active in the
    background, ready to receive command via arexx. The window can be
    opened again thru hotkeys (default: shift+ctrl+c). Clicking on the
    windows close gadget has the same effect as hide.
    
6.3 Quit

    Quits chelp.


6.4 Preferences

    The lower part of Chelps window is the preference part.
    Here is a description of the diffrent options.

    [Path to doc.]: Here you should enter the path to where your autodocs
    are. If you don't have or want to use them deselect this option with
    the checkbox to the right.

    ex work:lc/autodocs_2.04/

    [Path to .h]: Here you should enter the path to your include files. It
    is very important that this is the path to your NON-COMPACTED includes !
    Chelp can only parse and examine the pure text ones. If you don't have
    or want to use includes with chelp, deselect with the checkbox to the
    right.
    
    ex work:lc/compiler_headers/

    [Path to .ref]: This path is to the place where chelp will build its
    reference files. A good place to have them in is in the S: directory.
    You can speed up the build procedure by setting this path to ram:
    and then build. After build is finished, move the reference files:
    Chelp.href, Chelp.dref to S: and change the path to S:

    [Arexx outpath]: This is the path to where chelp will send its output
    to when commanded through arexx. The outfile is named 'chelp.lup' 

    ex ram:

    [Hotkey]: The hotkey definition (standard OS 2.04 def.) that chelp will
    use. default: shift ctrl c
    
    ex   'shift ctrl c'  
	
    [Build Define]: If you select this option chelp will also create references
    to all defined values in the includefiles. Deselecting this option will
    make a lot smaller referencefiles (but no lookup on defines).
	
    [Typedef]: This gadget selected, will also give you the form of output as
    shown below when looking up functions that are typedef'd.

    ex: chelp printf    (with Typedef selected)

       Function: printf   Includefile: stdio.h

       (int) printf(char*,...)
 
    
    Save   - Save the configuration.

    Undo   - Load the last saved configuration.

    If chelp.cfg exists in the local directory it will be used instead of
    s:chelp.cfg.



7 WILDCARDS
  =========

Keywords can be given with wildcards. These are the following valid wildcards:

?  = One character
#? = Anything (matching several characters)
|  = 'Or' in combination with parenthesis.
(  = Start of wildcard comparelist.
)  = End of wildcard comparelist.
*  = Same as #?
+  = Same as #?

Ex: #?gadget#? give you all words that contains gadget. 
    ActivateGadget, AddGadget, CreateGadget, GT_SetGadgetAttrs etc.


8 AREXX
  =====


If Chelp is started with the options -i or -s or from the workbench, then an
Arexx port will be opened with the name CHELP1 for the first, CHELP2 for the
second and so on. 

Arexx commands:

OPENWINDOW  - Opens the intuinion interface (window)

CLOSEWINDOW - Closes the intuition interface (window)

BUILD       - Will open the window (if closed) and start the building
               procedure.

LOOK xxxxx  - Performs a lookup on the keyword 'xxxxx'.
               Outfile is path:chelp.lup
               Where path is the path you have entered in the Arexx outpath
               gadget.

             ex: Look printf

             ex: LOOK window*  
                                      
CLOOK       - Case sensitive lookup.

    ex:  CLOOK Open    will give you Open, not open.


VERSION     - returns version in result ex 'Chelp v1.21'

GETVAR x    - returns for x=

            1 - Path to autodocs
            2 - Path to include files
            3 - Path to references files
            4 - Path to arexx output
            5 - Hotkey combination
            6 - Hotkey combination for lookup in CED
            7 - Number of keywords in autodocs
            8 - Number of keywords in includefiles
            9 - Search/build Autodocs (ON = 1 / OFF = 0)
           10 - Search/build Includes (ON = 1 / OFF = 0)
           11 - 'Typedef' (ON = 1 / OFF = 0)
           12 - Build #define (ON = 1 / OFF = 0)


DEBUG ON    - Arexx debugging mode. Debugging info in windowtitle.

DEBUG OFF   - guess!


QUIT        - Quits chelp.



9 Future versions
  ===============

Intuition interface for lookup.
Support for 'one key lookup' in editors: Turbotext, Lse...
Support for C++, classes...
Your wishes and ideas.



THANKS!
-------


Thanks for you help with this project:

    Kjell Cederfeldt
    Mikael Berglund
    Kjell Harnesk



/Robert Wahlström and Mathias Widman
