START-INFO-DIR-ENTRY
* RHIDE: (rhide).           Documentation about RHIDE, an IDE for DJGPP.
END-INFO-DIR-ENTRY

This is the documenation for the Integrated Development Environment RHIDE for
DJGPP.

Copyright (C) 1996 Robert Hhne

This documenation may be freely distributed with the RHIDE package or any
part thereof, provided this copyright notice is left intact on all copies.

RHIDE
*****

   Table of Contents
   *****************
1. Introduction
  1.1 Requirements
  1.2 Getting started
  1.2.1 Supported languages
  1.2.2 Debugging RHIDE
2. General information about the work of RHIDE
  2.1 Known suffixes
  2.2 Syntax of arguments
  2.3 Running under Windows 95
  2.4 Running under OS/2
3. Description of the pull-down menus
  3.1 System menu
  3.1.1 About
  3.1.2 FSDB
  3.1.3 GREP
  3.1.4 GDB
  3.1.5 Refresh Desktop
  3.1.6 Help
  3.2 File
  3.2.1 Open
  3.2.2 New
  3.2.3 Save
  3.2.4 Save as
  3.2.5 Save all
  3.2.6 DOS Shell
  3.2.7 Exit
  3.3 Edit
  3.3.1 Undo
  3.3.2 Cut
  3.3.3 Copy
  3.3.4 Paste
  3.3.5 Show Clipboard
  3.3.6 Clear
  3.4 Search
  3.4.1 Find
  3.4.2 Replace
  3.4.3 Search again
  3.4.4 Goto line
  3.4.5 Next message
  3.4.6 Previous message
  3.5 Run
  3.5.1 Run
  3.5.2 Arguments
  3.6 Compile menu
  3.6.1 Compile
  3.6.2 Make
  3.6.3 Build all
  3.6.4 Link
  3.7 Project
  3.7.1 Open project
  3.7.2 Close project
  3.7.3 Add item
  3.7.4 Delete item
  3.7.5 Local options
  3.7.6 Includes
  3.7.7 Main targetname
  3.7.8 Clear dependencies
  3.7.9 Delete rebuildable files
  3.8 Options
  3.8.1 Directories
  3.8.1.1 Include directories
  3.8.1.2 Library directories
  3.8.1.3 Object directories
  3.8.1.4 Sources directories
  3.8.2 C/C++-Compile
  3.8.2.1 Warnings
  3.8.2.2 Optimizations
  3.8.2.3 Debugging
  3.8.2.4 C options
  3.8.2.5 CXX options
  3.8.2.6 How to toggle these flags
  3.8.3 Libraries
  3.8.4 Linker options
  3.8.5 Compiler options
  3.8.6 Environment
  3.8.6.1 Colors
  3.8.6.2 Preferences
  3.8.6.3 Reserved words
  3.8.6.4 C-Flags
  3.8.6.5 CXX-Flags
  3.8.6.6 Warning-Flags
  3.8.6.7 Debugging-Flags
  3.8.6.8 Optimization-Flags
  3.8.6.9 User words
  3.8.6.10 How to change the list of flags
  3.8.7 Write makefile
  3.9 Windows
  3.9.1 Size/move
  3.9.2 Zoom
  3.9.3 Tile
  3.9.4 Cascade
  3.9.5 Next
  3.9.6 Previous
  3.9.7 Close
  3.9.8 List
  3.9.9 Project
  3.9.10 UserScreen
  3.9.11 Selecting a window
  3.10 How the editor works
  3.10.1 Erasing commands
  3.10.2 Cursor moving commands
  3.10.3 Text selecting and searching commands
  3.10.4 Other commands
  3.11 Some hints and problems
  3.11.1 Problems with automatic dependencies
4. Detailed description of some parts of RHIDE
  4.1 Project window
  4.2 Messages window
  4.3 Syntax highlighting
  4.4 Checking the dependencies
  4.5 What is Turbo Vision
  4.6 How the dialogs work
5. Some FAQs
6. Index
7. Index of key commands

1. Introduction
***************

The program RHIDE is freeware, but the souce-code of this IDE is copyright by
Robert Hoehne. You can modify and use it freely, but if you want to distibute
it, you have to distribute the complete unmodified package with my copyright
notice. There are two archives
   - `rhideb.zip' This contains the executable and the documentation

   - `rhides.zip' This contains the sources for the IDE.

These archives you can find at The RHIDE home page, at this URL:

     http://www.tu-chemnitz.de/~rho/rhide.html

To install these archives, you have to unzip them in the DJGPP-root
directory, like any other DJGPP package.

If you want to recompile the IDE, you need my port of the Turbo Vision
library from Borland. (Version 1.0, which comes with Turbo C++ 3.1) Because
this source files are copyright by Borland, I can't publish the complete
modified sources. You need the binary version of the library, at this URL:

     http://www.tu-chemnitz.de/~rho/tvision/tvisionb.zip

, which contains the compiled library and a patch-program to build the header
files from the originals from Borland.

These archives you can find at Turbo Vision home page, at this URL:

     http://www.tu-chemnitz.de/~rho/tvision.html

If you can't access them, mail me, and I will see, what I can do for you.

What is RHIDE? RHIDE is an Integrated Development Environment for for
compiling C- or C++-files (GNU-Assembler source files also supported) in an
environment, which has an integrated editor where you can edit your source
files and a project management, where you can define, which files are needed
to build a program or a library.

RHIDE works like the IDE from Borland, which comes with Turbo C++ 3.1 and is
written with the Turbo Vision library, which I have ported to use with DJGPP.
Features of this IDE are:
   - No need for saving the source files before compiling, because the
     interrupt 0x21 will be redirected. (sometimes unstable)

   - Syntaxhighlighting is now supported and you can costumize all  colors on
     your desktop.

   - You can redirect the stdout and stderr from your program to  a window in
     the IDE.

   - You can generate a makefile for your project, so you can build  the
     program also without the IDE.

   - Most of the commandline-options of gcc can be costumized.

   - You can also build a library instead of an executable.

   - When saving a file to disk, the modification time of this file  will be
     set to the time of the last modification in the editor.

   - You can interrupt external programs (the compilers or your  program) by
     pressing Ctrl+C  or  Ctrl+Break ,  which are ignored by the IDE. That
     means also, that you cannot interrupt the  IDE by pressing this keys. If
     you want to enable this, compile  the IDE without the `-DNO_BREAK'-flag.

1.1 Requirements
================

RHIDE works under and is compiled with DJGPP V2.0. I think it doesn't work
under DJGPP V1.xx, but I never tried it. To compile your programs you need a
working GCC-configuration, that means, gcc must be found in your path.
Because DJGPP V2.0 works only under DPMI you need a DPMI-Server.  If you run
it under Windows 3.1(1)/95, you have DPMI. Under MS-DOS you need either a
memory-manager, which give you DPMI-services (I think QEMM is it, EMM386 has
no DPMI-support), or you use CWSDPMI, the free DPMI-server from Charles
Sandman, which you can find on SimTel-ftp-sites. I use it and it works fine
for me.

The builtin editor uses a simple heuristic to check, if a file is in UNIX or
DOS text format. It checks the first 1024 Bytes, and if there is a lf without
a cr, all lf will be translated to cr/lf's. This is done at first only in
memory. But if you save your file to disk, it will be saved in DOS text
format.

At this time the program is only tested with a SVGA-video card (et4000), I
don't know if it works with other cards, but I think so.

1.2 Getting started
===================

To run RHIDE type
     rhide [options] ['file-name']
or
     rhide [options] 'project-name' [options]
Here stands 'file-name', for file, which you want to open at startup.  If it
has no suffix it is assumed to be a 'project-name'.

'project-name' stands for a name of your project. If you don't type it, RHIDE
searches the current directory for a project file. If there exists only one,
it will be open. If there exists more than one or none, RHIDE will not open a
project, you have to do it manually (See Section 3.2.1 project)

Possible options are for selecting the language (See Section 1.2.1) and for
debugging RHIDE itself (See Section 1.2.2).  If no project was open, you will
see an empty desktop.  At the top-line of the screen you can see the menu.
This is activated by pressing F10  or by clicking with the mouse at this
line. Alternativ you can press Alt plus the highlighted character of a
pull-down menu. e.g. to activate the *File* menu, press Alt+F. At the
bottom-line you can see the statusline with some hotkeys and it functions.

At the upper right corner of the screen you can see the free virtual/physical
memory (where M stands for Megabytes, K for Kilobytes and B for Bytes), when
enabled (See Section 3.8.6.2).

If you try to open a project, which does not exist, RHIDE will create a new
one.  The way for creating a new project is done by RHIDE as the following.
If there exist in the directory of RHIDE (usually in %DJDIR%/bin) a project
file with the same name of the executable and the suffix `.gpr', this file is
copied as your new project file with all costumizations, which you have done
in it. If this standard project file doesn't exist, a new project file is
created with the hardcoded defaults.

To create such a standard project file, change to the directory, where the
executable is and call the exe-file with the argument of its name without the
suffix `.exe'. After leaving the program, the standard project file is
created.

1.2.1 Supported languages
-------------------------

There is also support for multiple languages.  The language specific menus,
statuslines and hints are in the file `rhide.dlg' This file is searched in
the directory, where `rhide.exe' is. If you want an other language, call
RHIDE with a commandline argument like
rhide -L ger
, if you want to use the german translation. There is no need, to do this,
every time, when you run RHIDE, because the latest selected language is stored
as the default language, which is used, when you run RHIDE without the -L
switch.

Currently there are the following languages (with there shortcut) available:
   - ENG English maintened by

     Robert Hhne <Robert.Hoehne@Mathematik.TU-Chemnitz.DE>

   - GER German maintened by

     Robert Hhne <Robert.Hoehne@Mathematik.TU-Chemnitz.DE>

   - SPA Spanish maintened by  Salvador Eduardo Tropea (SET) <ice@inti.edu.ar>

   - FRE French maintened by  Eric Nicolas <nicolas@dsys.ceng.cea.fr>

   - ITA Italian maintened by  Normando Marcolongo
     <i094968@spv.ing.uniroma1.it>

   - DUT Dutch maintened by  Martijn Laan <mlaan@cs.vu.nl>

Default, as distributed, the english version is choosen.

1.2.2 Debugging RHIDE
---------------------

I have added some commandline options, to debug the IDE itself. These options
are the follwing:
   - -DT Do not remove the temporary files, which the IDE creates. The  names
     of these file will be printed to stderr.

   - -DC Print to stderr the commands, which the IDE executes.

   - -DD Print to stderr, how the IDE checks the dependencies.

   - -DA Turns on all of the above You can also combine these options like
-DCT, which is the same as -DC -DT.

To examine these debugging information, it is the best to use the redir
command, to redirect the stderr to a file like
redir -e err rhide -da project
which will redirect stderr to the file `err'.

2. General information about the work of RHIDE
**********************************************

In this section I will give you some comments about concept of RHIDE.  RHIDE
works with the GNU compilers. As a result of this, most of the options are
fixed and they are mostly are also specific only for these compiler. If I
speak about compilers, I mean GCC, which calls the right compilers for you
(`cpp' for preprocessing your input files, `cc1' for compiling C programs,
`cc1plus' for compiling C++ programs and `as' for compiling assembler files)

Selecting the right compiler for a concret file is done by RHIDE in the same
way, like GCC it does. They look for the extension of the file and determine
the language of this file.

2.1 Known suffixes
==================

The list of the known suffixes is taken from gcc. Remember the fact, that gcc
and RHIDE check the suffixes in a case sensetive way espacially when running
under Windows 95 (See Section 2.3).

   * Valid suffixes for C source files are
        - `.c' Normal C source file

        - `.i' C source file, which don't need the preprocessor

   * Valid suffixes for C++ source files are
        - `.cc' Normal C++ source file

        - `.cpp' Normal C++ source file

        - `.cxx' Normal C++ source file

        - `.C' Normal C++ source file

        - `.ii' C++ source file, which don't need the preprocessor

   * Valid suffixes for Objective C source files
        - `.m' Normal Objective C source file

   * Valid suffixes for object files
        - `.o' Normal object file

        - any other suffix, which has no predefined meaning

   * Valid suffixes for libraries
        - `.a' Normal library file

   * Valid suffixes for executable files
        - `.exe' Normal executable file for MS-DOS

        - No suffix means the raw COFF image of executable file. These
          can be handled only by programm, which know about his format.
             (DJGPP knows this)

   * Valid suffixes for include files
        - `.h' Normal include files

        - Theoretical there is no restriction for such a suffix, but
          RHIDE searches and find only files with the suffix `.h'         in
          the specified directories (See Section 3.8.1.4)

   * Valid suffixes for Assembler source files
        - `.s' Normal Assembler source file

        - `.S' Assembler source file, which must be preprocessed         by
          `cpp'. If you have such files, ther is a problem, when         long
          filenames are not enabled (default in MS-DOS), because
          RHIDE converts all filename in this case to lower case. But you
             can add to the local options for this item (See Section 3.7.5)
                the commandline argument -X ASSEMBLER-WITH-CPP, to tell
            `gcc' to preprocess this file first before assemble it.

2.2 Syntax of arguments
=======================

In RHIDE you can specify some arguments to other programs. These arguments
must be a space sperated list of strings. If you want to have one or more
spaces as part of an argument, you have to enclose the whole argument in
single quotes.

2.3 Running under Windows 95
============================

You can run the IDE also in a DOS-Box under Windows 95. It works with LFN
disabled and with LFN enabled. If you have LFN disabled, all filenames are
converted to lowercase (even when they are show in uppercase in the
filedialog). But when you have LFN enabled, all filenames are taken, as they
are, that means, filenames are case sensetive. Remember this fact, when you
include a file like "MyInclude.h" and you created this file under DOS as
"MYINCLUD.H", so CPP will not find this file.

Also the file extensions are case sensetive for GCC and for RHIDE.  A file
like `FOO.CC' will not recognized as a C++ source file.  See Section 2.1

You can also run more than one instance of RHIDE at once, in several
DOS-boxes, because RHIDE creates and uses every times, it starts, its own
temp directory to disable conflicts, when running multiple compilers at the
same time. This is done by creating a directory in the directory, pointed by
the environment variables %TMPDIR%, %TEMP% or %TMP% in that order, until one
of them exists. If there exists none of them, the current directory is
assumed. Then RHIDE puts in the environment the variable %TMPDIR% with the
value of this directory.  After leaving RHIDE this directory will be removed,
if it is empty.

2.4 Running under OS/2
======================

Because I have no acces to OS/2, I cannot say something about it. But some
people said, that they run RHIDE under OS/2 successful, but there must be the
exclusive mouse access to the DOS window disabled.

3. Description of the pull-down menus
*************************************

In this chapter are the pull-down menus and all there submenus described.
The main menu bar, the topmost line of the screen, is selected with the
hotkey F10  or by clicking with the mouse at this line. You can walk trough
the menu with the cursor keys and the a menu entry is selected with ENTER  or
by clicking with the mouse on it.

3.1 System menu
===============

This menu has its name only that one can speak about it. The symbol for this
menu is the leftmost symbol in the menu bar and can be selected by Alt+SPACE .

3.1.1 About
-----------

This brings up a window with information about the author and the version of
RHIDE.

3.1.2 FSDB
----------

With this menu item you can call the FSDB debugger, which comes with DJGPP.
But remember, this runs the debugger as an external program and is not
integrated in RHIDE.

W A R N I N G: If your source files in more than one directory (See Section
3.8.1.4) and you have not applied my patch to FSDB, the debugger will be
crash. If you want to know more about my patch search at first the DJGPP
mailing list for it (I posted it in comp.os.msdos.djgpp) or ask me.

3.1.3 GREP
----------

This is a very usefull function. You can type the arguments for grep in the
input line, which will be shown, and after this the program grep is called.
The messages from grep are redirected to the messages window (See Section
4.2).

3.1.4 GDB
---------

This is analog to the call of FSDB (See Section 3.1.2), except that there is
no such a bug with the source directories.

3.1.5 Refresh Desktop
---------------------

This function is sometimes usefull, if you had run your program and it wrotes
some things to the screen (for redirecting `stdout' and `stderr' from your
program to a window in RHIDE See Section 3.8.6.2).

3.1.6 Help
----------

This opens the INFO viewer. Many thanks at this point to Salvadore Eduardo
Tropea (SET). He wrote the very good INFO viewer for use with RHIDE. This was
also the most important reason for me, to write the documentation in Texinfo,
becaus you have now with the produced INFO file `rhide.inf' an online help
available.

The help system can be invoked from every where by pressing F1 . For help on
using the INFO viewer, press F1  within the help window.  But the above
things works only, if you have installed the INFO files, which come with
RHIDE correct.

If you are in an editor window, and you press Ctrl+F1 , you get help about
the function under the cursor.  But at this time only, if for this function
is a documentation in `libc.inf' available.

To get within RHIDE the index of the documentation of RHIDE press Shift+F1 .

3.2 File
========

In this menu you can find functions, which deal with files like open, close,
save and so on.

3.2.1 Open
----------

Brings up the file-open dialog, where you can select a file, which you want
to open (hotkey F3 ). This dialog contains an inputline for the filename, a
list of filenames, an information window and the buttons for opening and
canceling.

In the filename inputline you can type direct the file, which you want to
open or you can type any mask to list only some files. The default mask is
`*.cc', but you can change this to anything and your last typed mask is
stored as the default mask for the next use. There is also a history of your
previous typed inputs available. This is selected when you hit the down key
or click at the small symbol at the end of the inputline with your mouse.

The list of filenames shows you all the files, which correspond to the mask.
If this list is selected you can choose a file with the cursor keys, or you
can type the first letters of the filename, which you want, and the bar is
located to the first file, which has these letters as the first characters.
To open the file simply press ENTER or double click with the mouse on it.

Below the list of filenames there is a small window with information about
the selected file (complete path, size, modification time).

To leave the dialog without opening a file press ESC

3.2.2 New
---------

This is the menu entry for creating a new file to edit. This file gets the
title 'Untitled'. If you save or close it, you will be prompted for a new
name of this file by opening the file-open dialog.

3.2.3 Save
----------

Save the file in the current editor-window to disk. If the name of the
current file is 'Untitled' you will be prompted for a new name. This function
has the hotkey F2 . The modifcation of the file on disk is set to the time of
the last modification of this file and not to the time when saving to disk.

3.2.4 Save as
-------------

Save the file in the current editor-window to disk under a different name,
for which you will be prompted. For choosing the new name the file-open
dialog will be opened.

3.2.5 Save all
--------------

Save all the editorfiles to disk. If they are not modified, they will not be
saved.

3.2.6 DOS Shell
---------------

This executes a DOS-Shell. This is done by calling the program, which is set
in the environment variable COMSPEC. If this variable not exists, the program
`c:/command.com' is executed.  To return to the IDE type `exit' at the
DOS-prompt. Before calling DOS, the program does automaticly a *Save all*
(See Section 3.2.3 all).

3.2.7 Exit
----------

Here you can quit the IDE. If there are any unsaved editor-files, you will be
promted for saving them. (hotkey Alt+X )

3.3 Edit
========

In this menu you can activate functions, which are related with the integrated
editor. Most of them have a hotkey.

3.3.1 Undo
----------

This undoes your last changes in the current editor-window. The hotkey for
this function is Alt+Backspace . But this function can restore the old
situation only, if you didn't moved the cursor. When this function was
apllied, the restored text is highllighted.

3.3.2 Cut
---------

This *moves* the selected text in the current editor-window to the clipboard.
(hotkey Shift+Del )

3.3.3 Copy
----------

This *copys* the selected text in the current editor-window to the clipboard.
(hotkey Ctrl+Ins )

3.3.4 Paste
-----------

This inserts the selected text in the clipboard in the current editor-window
at the current cursor-position. (hotkey Shift+Ins )

3.3.5 Show Clipboard
--------------------

This brings up an editor-window with the contents of the clipboard. The
contents of the clipboard will be lost, if you exit the IDE.

3.3.6 Clear
-----------

This erases the selected text in the current editor-window.

3.4 Search
==========

Menu for finding and replacing strings in the editor-window. These functions
have also hotkeys, but there is a difference between the resulting functions.

If you select the search functions over the menu, RHIDE sets the current
word, where the cursor is, as the default string in the input for the string
to search or replace.

3.4.1 Find
----------

Find a string in the current editor-window. You can type the string for
searching in an inputline and you can also select, if the search is case
sensetive or not and to search for whole words only or not.

3.4.2 Replace
-------------

Find and replace a string in the current editor-window. This works in the
same way like searching text, but additional you can give a string, with wich
the founded text will be replaced.

3.4.3 Search again
------------------

This function repeats the last search or replace operation.

3.4.4 Goto line
---------------

After promting for a line number (with range checking), the cursor will be
located at this line. (hotkey Ctrl+J )

3.4.5 Next message
------------------

This selects the next message in the messages window (See Section 4.2), but
only, if there is a next message available.

(hotkey Alt+F8 )

3.4.6 Previous message
----------------------

This selects the previous message in the messages window (See Section 4.2),
but only, if there is a previous message available.

(hotkey Alt+F7 )

3.5 Run
=======

In this menu you find the functions for runing your program.

3.5.1 Run
---------

If your project-target is an executable, this will be run after doing a Make
(See Section 3.6.2). (hotkey Ctrl+F9 ) If building the program was not
successful, the programm will not be started.  (See Section 2.2)

3.5.2 Arguments
---------------

Here you can type the arguments, which will be passed to your program when
you do a *run*. (See Section 3.5.1) and (See Section 2.2).

3.6 Compile menu
================

Here are the functions to translate your source files and for updating your
project.

3.6.1 Compile
-------------

Compile the file in the current editor-window or the selected entry in the
project-window if you are there. The IDE chooses automaticly the correct
compiler, depending on the suffix of the file.  (See Section 2.1) (hotkey
Alt+F9 )

3.6.2 Make
----------

This makes your project up to date. It works like MAKE on commandline with a
makefile. (hotkey F9 ) This is done by checking the dependencies for each
item of the project. These dependencies are automaticly generated, if you
compile a file within the IDE.

3.6.3 Build all
---------------

This builds the project completely new with compiling and linking all of the
project-items.

3.6.4 Link
----------

This function has two different results depending on the type of your
project. If your project is executable (See Section 2.1), the linker is
started. But if it is a library, all the object files are taken to build a
library.

3.7 Project
===========

Here you can add or remove items to or from your project

3.7.1 Open project
------------------

Here is the point to open a project. After selecting this menu item, the file
open dialog is opened to select a project. You can type the name of the
project or select one from the list.

If you open a project in an other directory than the current, RHIDE will
change the current directory to this directory and then the project will be
opened.

If you type here a name of a project, which does not exist, a new one is
created.

If no project was opened, all files, which are already opened on the desktop
are still opened, but they are not inserted in the project.  If a project was
opened, this will be automaticly closed before the new project is opened.

3.7.2 Close project
-------------------

This closes the current opened project and closes all files, which are on the
desktop.

3.7.3 Add item
--------------

A dialog will be opened, from where you can choose your file to add to your
project. If you are in the project window (See Section 3.9.9 window) you can
use the Ins  key to activate this function.

3.7.4 Delete item
-----------------

This will remove the selected item in the project-window from your project.
If you are in the project window (See Section 3.9.9 window) you can use the
Del  key to activate this function.

3.7.5 Local options
-------------------

Here you can give the selected project-item options for compiling, which will
be in affect only for this item. If you are in the project window (See
Section 3.9.9 window) you can use Ctrl+O  to activate this function.  The
options you give here are passed to gcc only, when compiling this file.

3.7.6 Includes
--------------

This shows the dependencies for the selected item in the project window. In
the project window you can use the hotkey Ctrl+I .  (See Section 3.9.9 window)

3.7.7 Main targetname
---------------------

Here can change the name of your main target. The main target is either an
executable file or a library. RHIDE select the type of the main target from
the suffix of this name. If it has no suffix or the suffix `.exe', an
executable will be built. If it has the suffix `.a', a library will be
created. If you give it any other suffix, nothing will be done for the main
target after compiling all files of the project.

Remember when you give it no suffix, both, the COFF image and the `.exe' file
will created. If it has the `.exe' suffix, only the `.exe' file is created.
If you want to debug your program with the GNU debugger GDB (See Section
3.1.4), you need the COFF image.

3.7.8 Clear dependencies
------------------------

This function removes all internal stored dependenies. The files are not
removed. This is usefull, when you want to create a makefile (See Section
3.8.7) and you not want to include in it all the absolut filenames for the
dependencies (most the include files).

3.7.9 Delete rebuildable files
------------------------------

This function includes the function of clearing the dependencies (See Section
3.3.6 dependencies) and removes in addition to it all the files, which can be
rebuild within RHIDE.

3.8 Options
===========

This menu conatins many submenus for anything, which you can costumize.

3.8.1 Directories
-----------------

Here you can define all of the paths, where RHIDE and the compilers finds the
needed files and where to store some files.

All the paths, which you can define in the several entrys have the form of a
semicolon seperated list of directories like your environment variable
%PATH%. You can use forward slashes and back slashes, but they are converted
all by RHIDE to forward slashes. You can also use environment variables as
part of your paths. The syntax of such a variable like in a GNU makefile. If
you want to use the veriable %DJDIR%, you must type $(DJDIR).

3.8.1.1 Include directories
...........................

This is the list of directories, where gcc finds include files and RHIDE
searches in this directory (after looking in the current directory) for files
with the suffix `.h'

3.8.1.2 Library directories
...........................

This is the list of directories, where gcc looks for libraries when linking.
RHIDE searches in this directories (after looking in the current directory)
for librararies, if you have included them directly as a project item.

3.8.1.3 Object directories
..........................

This ist the list of directories, where RHIDE looks for object files.  If you
type here only one directory this has also the effect, that the object files,
which are compiled, stored in this directory.

3.8.1.4 Sources directories
...........................

This is the list of directories, where RHIDE looks for the source files
(after looking in the current directory).

3.8.2 C/C++-Compile
-------------------

In this submenu you can change most flags, which have to do when compiling C
or C++ files.

3.8.2.1 Warnings
................

This opens a dialog, where you can enable or disable most of the flags for
generating or supressing of Warnings when you compile a C or C++ file.  (See
Section 3.8.2.6).

For a detailed description of the available flags See Section 'Warning
Options' in documentation for 'gcc'.

3.8.2.2 Optimizations
.....................

This opens a dialog, where you can costumize, how the compiler optimizes your
code.  (See Section 3.8.2.6).

For a detailed description of the available flags See Section 'Optimize
Options' in documentation for 'gcc'.

3.8.2.3 Debugging
.................

This opens a dialog, where you can costumize, which debugging information the
compiler should include in object files.  (See Section 3.8.2.6).

For a detailed description of the available flags See Section 'Section
3.8.2.3 Options' in documentation for 'gcc'.

3.8.2.4 C options
.................

This opens a dialog, where you can select flags, which are only passed to
gcc, when compiling C files.  (See Section 3.8.2.6).

For a detailed description of the available flags See Section 'C Dialect
Options' in documentation for 'gcc'.

3.8.2.5 CXX options
...................

This opens a dialog, where you can select flags, which are only passed to
gcc, when compiling C++ files.  (See Section 3.8.2.6).

For a detailed description of the available flags See Section 'C++ Dialect
Options' in documentation for 'gcc'.

3.8.2.6 How to toggle these flags
.................................

The options in the dialogs for Warnings, Debugging, C-flags and CXX-Flags are
selected with the cursor-keys or the mouse and are activated or deactivated
by pressing SPACE  or by double-clicking with the mouse at the first field of
the option. If an option can take an additional value or string, an inputbox
will be opened, and you can type them there. If the addition value is
optional, you can leave this input-box by pressing ESC  or activating the
*Cancel* button and no value, or the previous one will be append to this
option.

3.8.3 Libraries
---------------

Here you can tell the linker, which libraries will be linked in your program.
At this time the number of additional lbraries is limited to 16. If you need
more, you have to type them manually (See Section 3.6.4er options).

In the input-fields of the dialog you have to type only the part of your
library name after `lib' and before `.a'. Example: If your library is
`libtv.a' you have to put only `tv' there. You can switch between the
inputlines for the libraries using Tab  or Down Arrow (next field) or
Shift+Tab  or Up Arrow (previous field). If you have typed your libraries you
can activate or disable them by switching the checkbox before the name on or
off. This is done by pressing Alt and the corresponding digit or letter of
the checkbox at the same time or by clicking with the mouse.

Normaly RHIDE checks the types of your source-files and adds automaticly some
standard libraries, corresponding to this source-files. These are for C++
files the library `libiostream.a' and for Objective C files the `libobjc.a'
library.  If you want to disable this, deactivate the *Use standard libraries*
checkbox. This adds also the commandline option -NOSTDLIB to gcc, that means,
you must give the linker explicit all of the standard libraries, which you
need, this includes the `libgcc.a' and `libc.a' libraries.

3.8.4 Linker options
--------------------

Here you can enter a space seperated list of options, which will be passed to
gcc when linking your program.  (See Section 2.2)

(See Section 2.2).

3.8.5 Compiler options
----------------------

Here you can enter a space seperated list of additional options, which will
be passed to gcc every times it will be called.  (See Section 2.2)

(See Section 2.2).

3.8.6 Environment
-----------------

3.8.6.1 Colors
..............

Here you can costumize all of the colors of the IDE.

3.8.6.2 Preferences
...................

Here you can costumize some basic options for the work of the IDE. A dialog
will be opened where you can turn on or off the following options:
   * USE HOOK21 Turn this option off, if you have problems with it. But
     remember that you save your files to disk before compiling, or turn the
     SAVE BEFORE COMPILING option on.

   * CREATE BACKUPFILES create backupfiles when saving or not

   * SYNTAX HIGHLIGHTING on or off.

   * SAVE BEFOR COMPILING If your computer sometimes crashes when compiling
     or when you don't want to use my int21-Hook then turn this option on.

   * OVERWRITE MODE If you want the editor in overwrite mode, when open a new
     one, then turn this option on

   * REDIRECT STDERR Turn this on, if you want to redirect the output to
     stderr from your program to a window in the IDE.

   * REDIRECT STDOUT Turn this option on, if you want to redirect the output
     to stdout from your program to a window in the IDE.

   * SHOW PROCESS INFORMATION Turn this option on, if you want to see, which
     files are checked, when you do a make (See Section 3.6.2) and to see the
     commandlines, how the compilers are started by RHIDE.

   * SHOW FREE MEMORY Turn this option on to show in the upper right corner
     of the screen a sstus about the free memory on your system.  This show
     both, the virtual and the physical free memory.

Additionaly you can select here the tabbing size for the editor and you can
select the video mode. If you want to use a video mode, other to the shown,
you have to select the USER MODE mode and type the value of this mode (see in
the reference of your video card) as a decimal or hexadecimal (preceeded by
`0x') number. But you can use only textmodes (modes with starting video ram
address at `0xB800:0000'. For the numbers of the videomodes refer to the
documentation of your cideo card.  If you type a videomode, which is invalid
(RHIDE checks it), the 80x25-Mode will automaticly selected.

I have tested all text modes, which are available with my et4000-card, and
they work. For all modes, which are not directly selectable in the dialog,
the mouse cursor is shown by my own routine.  That means, you can use the
mouse also in the high resolution text modes.

3.8.6.3 Reserved words
......................

This opens a dialog, where you can modify the list of reserved words, which
the editor knows. If you choose the *Default* button in this dialog, the
default reserved words are generated and any previous words are lost.

3.8.6.4 C-Flags
...............

Here you can modify the list of C options, which you can turn on or off. (See
Section 3.8.2.4)

See Section 3.8.6.10

3.8.6.5 CXX-Flags
.................

Here you can modify the list of CXX options, which you can turn on or off.
(See Section 3.8.2.5)

See Section 3.8.6.10

3.8.6.6 Warning-Flags
.....................

Here you can modify the list of Warning-Flags, which you can turn on or off.
(See Section 3.8.2.1)

See Section 3.8.6.10

3.8.6.7 Debugging-Flags
.......................

Here you can modify the list of Debugging-Flags, which you can turn on or off.
(See Section 3.8.2.3)

(See Section 3.8.6.10)

3.8.6.8 Optimization-Flags
..........................

Here you can modify the list of Optimization-Flags, which you can turn on or
off.  (See Section 3.8.2.2)

(See Section 3.8.6.10)

3.8.6.9 User words
..................

Here you can define your own list of your words, which can be special
highlighted, when syntax highlighting is enabled. (See Section 3.8.6.2)

3.8.6.10 How to change the list of flags
........................................

The syntax of the strings, which you can modify or add with the last
menu-entries is any string followed by an optional modifier with the
following meaning:

   - %D if you activate this option, you *must* enter there an integer

   - %D? if you activate this option, you *can* enter there an integer

   - %C if you activate this option, you *must* enter there a character

   - %C? if you activate this option, you *can* enter there a character

   - %S if you activate this option, you *must* enter there a string

   - %S? if you activate this option, you *can* enter there a string

   - %S(STRING) if you activate this option, you *must* enter there a string,
     which contains only characters defined by the string STRING

   - %S?(STRING) if you activate this option, you *can* enter there a string,
     which contains only characters defined by the string STRING

As an example: the string for the -O option is defined as -O%D? and the -D
option (See Section 3.8.2.3) is defined as -D%S(MNDYRXJSLTFCSLGRJDKAMP),
which means, the string after -D must be a combination of the characters in
MNDYRXJSLTFCSLGRJDKAMP.

If you leave the dialogs for modifying the flag lists with the *Ok* button or
if you activate the *Default* button, all flags are disabled

3.8.7 Write makefile
--------------------

Here you can create a makefile, which contains all the rules to build the
project on the command line without starting RHIDE. For this you need the GNU
make, because the generated makefile use the features of GNU make very
extensive. If you want to export your makefile together with your source
files (like I this did with the examples, which come with RHIDE), I think it
is bether to clear the dependencies before (See Section 3.3.6 dependencies).

If you have used environment variables in your search paths (See Section
3.8.1), these are not expanded in the generated makefile.  But all variables,
which you used will be defined at the beginning of the makefile with there
current value.

3.9 Windows
===========

In this menu you get the functions, which are for arranging, resizing and
switching between the windows on the desktop:

3.9.1 Size/move
---------------

With this function you can resize and/or move the current window. After
selecting this, the frame of the current window will be drawn light-green and
you can move it with the cursor-keys. To resize it, press Shift+
cursor-keys. To exit the moving/resizing function, press ESC or ENTER.
Alternativ you can use the mouse. For moving, click on the top of the window
and hold the left button down.  Now you can move the window by moving the
mouse. To resize it, click on lower right corner of the window, hold the
button down and resize the window by moving the mouse. (This function has the
hotkey Ctrl+F5 )

3.9.2 Zoom
----------

This brings up the window to maximal size or to previous size.  (hotkey F5
or click with the mouse at the symbol on the right upper corner of the window)

3.9.3 Tile
----------

This arranges all the editorwindows on the desktop, to see them all
simultanusly.

3.9.4 Cascade
-------------

This arranges all the editor-windows on the desktop, to see the contents of
the current editor-window and the top-frame of all the others.

3.9.5 Next
----------

This switches to the next window on the desktop. (hotkey F6 )

3.9.6 Previous
--------------

This switches to the previous window on the desktop.  (hotkey Shift+F6 )

3.9.7 Close
-----------

This closes the current window. If it is an editor window and its contents
was modified, you will be prompted to save it. (hotkey Alt+F3 ) or click with
the mouse on the upper-left symbol of the frame.

3.9.8 List
----------

This brings up a list of all window, which are currently on the desktop. You
can select one of them and press ENTER  to switch to it.  With Del  you can
close the selected window.  (hotkey Alt+0 ).

3.9.9 Project
-------------

With this function you can select the project window (See Section 3.9.9
window). If it was closed, it will be opened.

3.9.10 UserScreen
-----------------

This shows the contents of the DOS-Screen. To leave this function, do any
event, that means, press any key or move the mouse or click with the mouse.
(hotkey Alt+F5 )

3.9.11 Selecting a window
-------------------------

To select a window you can also do the following. If the window has a number,
this is right on the top-frame, you can select this window by pressing Alt
and this number. Or you click anywhere in the window or on the frame of the
window with your mouse.

3.10 How the editor works
=========================

Here I describe most of the editor commands. If there is a key command like
Ctrl+Q+Y, you have to press Ctrl and Q simultanusly and after this press Y.

3.10.1 Erasing commands
-----------------------

   * Ctrl+G  or Del  erases the character under the cursor or the selected
     text

   * Ctrl+H  or Backspace  erases the character before the cursor or the
     selected text

   * Ctrl+Y  erases the current line

   * Ctrl+Q+Y  erases from the cursor to the end of the line

   * Ctrl+Q+H  erases from the cursor to the beginning of the line

   * Ctrl+T  erases from the cursor to the beginning of the next word on this
     line

3.10.2 Cursor moving commands
-----------------------------

   * Ctrl+S  or Arrow left moves the cursor one character left

   * Ctrl+D  or Arrow right moves the cusor one character right

   * Ctrl+E  or Arrow up moves the cursor one line up

   * Ctrl+X  or Arrow down moves the cursor one line down

   * Ctrl+A  moves the cursor one word left

   * Ctrl+F  moves the cursor one word right

   * Ctrl+C  or Page down moves the cursor one page down

   * Ctrl+R  or Page up moves the cursor one page up

   * Ctrl+Q+D  or End moves the cursor to the end of the line

   * Ctrl+Q+S  or Home moves the cursor to the beginning of the line

   * Ctrl+Q+R  or Ctrl+PgUp  moves the cursor to the beginning of the file

   * Ctrl+Q+C  or Ctrl+PgDown  moves the cursor to the end of the file

3.10.3 Text selecting and searching commands
--------------------------------------------

   * Shift  cursor keys select the text like the cursor moves

   * Ctrl+Ins  or Ctrl+K+K  copy the selected text to the clipboard

   * Shift+Del  or Ctrl+K+Y  move the selected text to the clipboard

   * Shift+Ins  or Ctrl+K+C  copy the selected text from the clipboard to the
     current cursor position

   * Ctrl+Del  delete the selected text

   * Ctrl+Q+A   open the replace dialog

   * Ctrl+Q+F  open the find dialog

   * Ctrl+L  repeat the last replace or find operation

   * Ctrl+K+H  unselect all

3.10.4 Other commands
---------------------

   * Ctrl+V  toggle insert-/overwrite-mode

   * Ctrl+O  toggle auto-indent-mode on/off

   * Ctrl+J  goto to line (will be prompted for)

   * Ctrl+K+  a digit (0 - 9). Set a marker in the text (up to ten different
     markers)

   * Ctrl+Q+  a dirgit (0 - 9). Jump to a marker, which you have previously
     set.

   * Ctrl+K+R  Inserts the contents of a file at the current cursor position

   * Ctrl+K+W  Write the selected block to a file

If you have set some markers, they will be stored, so you can use them later,
when restarting RHIDE.

3.11 Some hints and problems
============================

To compile only a single file, you don't need to include it in a project.
You only have to open it and do a compile. If a file is in your project, you
can compile it, if you are in its editor-window or if you are in the
project-window and this file is selected.

Warnings and errors from compiling a file are listed in the message-window.
If there are wranings or errors, you jump to the corresponding source by
hitting ENTER  on this message. If this file wasn't already opened, it will
be opened.

I have included in my IDE an handler for int 0x21, which is only in affect,
when you compile or link. This handler hooks the open, read, seek and ioctl
function of the DOS-interrupt. Thats why, there is no need to save your
editor-files, when you compile them, because gcc reads the files from the
IDE, if they are opened. But there is a known problem. If you have opened
some include-files, which are needed by your programs, cpp doesn't find them,
because it uses fstat and this do not work with my hook. Thats why the IDE
redirect the DOS-functions for this files (which are ended by `.h') to the
original DOS-interrupt. That means, if you have done some changes at this
files, you have manually save them before compiling or turn on the *save
before compiling* option in the *Options/environment/preferences* dialog. See
Section 3.8.6.2

If you have other problems when compiling or linking your programs (computer
hangs, ...), try first to disable the *Hook21*-Option. If it now works,
please tell me exactly what you have done before the computer chrashed so I
can eventually remove the bug.

A known bug is the following: If you are at the end of your editing-file (and
at the bottom line of the editor window) and you now type some text over the
40. column, the rest of the line is showing some times confusing text, which
will be removed, if you press ENTER at the end of this line. Currently I
haven't found, why this happens.

3.11.1 Problems with automatic dependencies
-------------------------------------------

Most the checking of the dependenies work correct, but there are some few
situations, where this checking is confused. The first results in the fact,
that I implemented a cach function for getting the modification time of file,
that means, most files are 'stat'ed only once, after starting RHIDE. But if
someone modifies on of the files, which are in the cache, (this can be an
other program, when you run RHIDE in a multitasking environment, such
Windows) or if you run your project and it modifies some of these files, the
internal cache is after this not up to date.

Here is an other situation. Your source files are not in the current
directory. You have opened a source file for editing and succsessfully built
your project. Now you leave RHIDE, because you want to debug your program
with `fsdb', you copy the source file (in this case it is the file, which you
have opened in the IDE) to the current directoy. Now you debug it and there
are some errors. You restart RHIDE to make the changes in the file. The
previously opened file will opened automaticly and you edit it. If you do now
a *Make*, RHIDE tells you, that your project is up to date, because it
searches for source files at first in the current directory, and there is the
unmodified file.

4. Detailed description of some parts of RHIDE
**********************************************

In this chapter I will give you for some special parts a more detailed
description of what they do.

4.1 Project window
==================

The project window shows you every file, which you have included in your
project. Most time you work with RHIDE this window should be visible, but you
can also close it (See Section 3.9.7).

The items in the project window, and therefore also in your project, are
sorted in alphabetical order. This has the effect in a faster finding of an
item and you can also move the slecting bar to a specified item by typing the
name of this item.

To open an editor window with the selected item press either SPACE or ENTER .
If here was already a window with this file opened on the desktop, this
window will be selected.

If you have compiled a file already in RHIDE, you bring up a list with all
dependencies of that file. In this list the files are show by there basename
followed by the directory and they are also sorted in alphabetical order.
From here you can also open an editor window with the selected dependency by
pressing SPACE or ENTER  on that item.

4.2 Messages window
===================

This window shows every time you compile a file the resulting messages, which
gcc produces. These messges were converted in a special format to show them
in the window. Some of the messages contain a file eventually combined with a
line number. If you press ENTER  on such a message, the corresponding source
line in the file will be highlighted and the window with this file will be
selected. If this file is not already on the dektop, it will be opened.

If the file, for which the messages are, is already in the foreground you can
see the slected source line for your messages direct on the screen.

4.3 Syntax highlighting
=======================

This was a very hard work to apply this. And it is doesn't work correct in
all cases. The main problem with it is the checking for C style comments in a
file. Please do not overfill my mailbox with bug reports about the
incorrectness of the syntax highlighting, because I know that. But it would
be very great, if someone can tell me, how I can do that in the right way and
not to slow.  There are also somtimes problems to check if a string is a
float.

4.4 Checking the dependencies
=============================

This is one of the main parts of RHIDE. To speed up the code, I have added a
cache for checking the modification time of a file and for finding a file
(computing the full name of a file). But sometimes the data in the cache
isn't valid, especialy when running under Windows. If you see this, you can
clear the cache by leaving RHIDE and starting again.

4.5 What is Turbo Vision
========================

The Turbo Vision library is part of Turbo C++ version 3.1. I have ported this
library to use with DJGPP because I think it is the most powerful text
windowing library, which is available for MS-DOS.With the help of this
library you can write front end application which looks very well and the
interface is easy to use.

The Turbo Vision library is not only a window based text user interface, it
is also a very good event handling mechanism. It supports the use of the
mouse and keyboard with the ability of defining and using of hotkeys, that
means, you can assign to some keys or combinations of keys, which function
should be executed.

The main parts of an apllication, which is using this library, are the
desktop, the menu bar and the statusline. The menu bar is usualy shown as the
topmost line of the screen. There are shown the main parts of the pull down
menus, from where you can select the most functions, which are implemented in
an apllication.

To use the menu you can use the mouse as well the keyboard. With the mouse
you can click every where on a menu entry and the corresponding function will
be executed. There are some different actions, which a menu entry can have.
At first some of them, this are for example all the entries in the menu bar,
open a submenu with more menu entries which are related to the name of this
main entry. And the others, most in such a submenu, execute a definite
function of the application.

With the keybord you can walk through the menu very simple. To activate the
menu bar, you have to press F10 . In the pull down menus you can use the
cursor keys to move the highlighted bar up and down and with the cursor right
and left keys you can switch to next or previous menu. With the ENTER  key
you activate the function, which corresponds to this entry. If this was a
submenu, which is indicated with a symbol like a small right arrow, this will
be opened.

If you walk trough the menu with the cursor keys or the mouse (hold the left
mouse button down and move the mouse) in the statusline will be shown for
each entry a short hint for the function of this menu entry.

4.6 How the dialogs work
========================

In a dialog, like the file open dialog, are many things which you can select
or where you can type in some data. At first some general functions. If you
press ESC , the dialog will be closed and nothing will be changed. The same
can be done with the mouse by clicking an the close symbol (this is the small
symbol on upper left frame of the dialog).

In the next paragraphs I will describe the most used elements of a dialog.
For selecting each element of a dialog you can use the Tab key to select the
next element in the dialog or the Shift+Tab key, to select the previous
element.

A button a rectangle with some text on it. If you activate such a button a
specified action is executed. To select a button you can use the Tab key,
until the button is special highlighted and press then ENTER . Or most a
character of the text on this button has an other color. So you can press
Alt+ this charcter to activate the button. With the mouse you can simply
click on a button to activate it.

A listbox is a collection of some strings in one or more colums and rows as
needed. (The project window (See Section 3.9.9 window) is such a listbox with
the names of the project items) You can use the cursor keys to move the focus
bar in the list, or if it is a sorted listbox, you can also type some
characters and the focus will moved to the item, which starts with this
characters. To select a item in a list box, press SPACE or ENTER  or double
click with mouse on it.

In an input line you can type some text which can be edited with the usual
editing keys.

A checkbox is a collection of options, which can be turned on or off.  Each
option has in front of it a small indicator, if it is turned on (an X is
shown) or not (the X is not shown). To toggle such an option, use the cursor
keys to move the focus to the option you want and press SPACE . If a
character in an options string is highlighted you can press this key and the
option will be turned on or off or click with the mouse on the option.

Radiobuttons are similiar to chackboxes, but there you can select only one of
all the shown options.

5. Some FAQs
************

**Q*: Are there any sample project files, to show how RHIDE works?*

*A* :The sources of RHIDE include three project files to rebuild RHIDE with
RHIDE. These are the projects `dlg.gpr' (for generating the resource file),
`libide.gpr' (for building the library `libide.a' and `idegc.gpr' for
building the main program.

**Q*: I have written some libraries. How can I use they in a project?*

*A* : There are two differen ways to do this. On the one side you can include
they direct in the project with the *Add to project item* function (See
Section 3.7.3). But if they are not in the current directory, you must also
set the library search path to the directory, where they are. (See Section
3.8.1.2). The other variant is to include them in the list of libraries. (See
Section 3.8.3)

**Q*: I have a directory, where all my include files are. Can I setup RHIDE
to have this directory every time in the include search path, when creating a
new project?*

**Q*: I prever the 80x28 video mode over the default 80x25 mode. How I can
turn this mode on by default for all new created project files?*

*A* : You can create a default project file. From this file RHIDE reads all
the options, if it create a new project. The deafult project must have the
same basename as the executable of RHIDE and must be located in the directory
of that.

**Q*: I know, that I can create a default project file. Can I create and use
more than one?*

*A* :Since DJGPP supports a quasi Unix like link for executables, you can
create such a link also for RHIDE. As an example I will create a link to
`rhide.exe' with the name `myrhide.exe'. At first I have to create the new
file.
     stub -g myrehide.exe
Now I must tell `myrhide.exe' which program it realy should run.
     stubedit myrhide.exe runfile=rhide
Thats all.

**Q*: I'm working in a network and have no write privileg to `rhide.dlg'. So
I must type every time the commandline -L GER to use the german user
interface*

*A* : Create a environment variable RHIDELANG with your prevered language like
     set RHIDELANG=ger
and your problem is solved.

**Q*: I have 4 Mb RAM in my computer and every time, when I compile large
files with optimizations enabled, my hard disk is working very hard.*

*A* :Buy more RAM!

**Q*: I heard something about a newer version RHIDE. From where I can get
exact information about this?*

*A* : See at the RHIDE home page, at this URL:

     http://www.tu-chemnitz.de/~rho/rhide.html

.  This page contains the latest news and the latest version of RHIDE.

**Q*: I have a lot of money and don't know what to do with it. Can you help
me?*

*A* : Send it to me, so I can spend more time for developing RHIDE. My
Address is:
     Robert Hhne
     Am Berg 3
     D-09573 Dittmannsdorf
     Germany

**Q*: I think, I found a bug in RHIDE. How can I report it?*

*A* :At first try for your own to solve the problem by checking the
documentation.  See at the RHIDE home page, at this URL:

     http://www.tu-chemnitz.de/~rho/rhide.html

, if this problem was already reported by other users.  If this don't help
you, do the following:

     Try to reproduce the error with the smalles possible project or source
     file. Run RHIDE with all debugging options enabled and redirect the
     printed output to file. (See Section 1.2.2) Send me this file and a
     detailed as possible description of the problem and include in your
     report the exact version of RHIDE you are using.

6. Index
********



* stderr redirecting: Section 3.8.6.2.
* stdout redirecting: Section 3.8.6.2.
* Adding a file to the project: Section 3.7.3.
* Additional options for gcc: Section 3.8.5.
* Arguments for your program: Section 3.5.2.
* Assembler files, which must be preprocessed: Section 2.1.
* Automatic dependencies, problems with it: Section 3.11.1.
* Backup files: Section 3.8.6.2.
* Bug, in the editor (known): Section 3.11.
* Bug, reporting it: Chapter 5.
* Build: Section 3.6.3.
* Build the library: Section 3.6.4.
* Building a library: Section 3.7.7.
* Building an executable: Section 3.7.7.
* Button: Section 4.6.
* C  flags, edit them: Section 3.8.6.4.
* C language specific flags: Section 3.8.2.4.
* C++ flags, edit them: Section 3.8.6.5.
* Cascade the windows: Section 3.9.4.
* Changing the name of the library: Section 3.7.7.
* Changing the name of the program: Section 3.7.7.
* Changing the search paths for files: Section 3.8.1.
* Checkbox: Section 4.6.
* Checking dependencies: Section 4.4.
* Clear: Section 3.3.6.
* Clearing the dependencies: Section 3.7.8.
* Clearing the project: Section 3.7.9.
* Clipboard: Section 3.3.5.
* Close a project: Section 3.7.2.
* Close a window: Section 3.9.7.
* Colors: Section 3.8.6.1.
* Commandline arguments for your program: Section 3.5.2.
* Compile: Section 3.6.1.
* Compile without a project: Section 3.11.
* Compiler options: Section 3.8.5.
* COMSPEC: Section 3.2.6.
* Controlling the optimization of the code: Section 3.8.2.2.
* Controlling the warnings: Section 3.8.2.1.
* Copy: Section 3.3.3.
* Cplusplus options: Section 3.8.2.5.
* Creating a makefile: Section 3.8.7.
* Creating a new file: Section 3.2.2.
* Creating a new project: Section 3.7.1.
* Creating backup files: Section 3.8.6.2.
* Cursor moving: Section 3.10.2.
* Cut: Section 3.3.2.
* CXX options: Section 3.8.2.5.
* Debugging: Section 1.2.2.
* Debugging info: Section 3.8.2.3.
* Debugging RHIDE: Section 3.8.6.2.
* Debugging, edit the flags: Section 3.8.6.7.
* Default file mask: Section 3.2.1.
* Default language: Chapter 5.
* Default project file: Chapter 5.
* Default project file, more than one: Chapter 5.
* Define your own reserved words: Section 3.8.6.9.
* Defines: Section 3.8.5.
* Delete a file from the project: Section 3.7.4.
* Delete the selected text: Section 3.3.6.
* Deleting commands: Section 3.10.1.
* Dependencies for a file: Section 3.7.6.
* Dependencies, checking: Section 4.4.
* Dependencies, problems with it: Section 3.11.1.
* Dialog function keys: Section 4.6.
* Different name for RHIDE: Chapter 5.
* Directory for temp files: Section 2.3.
* Documentation: Section 3.1.6.
* Donations to the author: Chapter 5.
* DOS: Section 3.2.6.
* Edit a file: Section 3.2.1.
* Edit the list of C flags: Section 3.8.6.4.
* Edit the list of C++ flags: Section 3.8.6.5.
* Edit the list of debugging flags: Section 3.8.6.7.
* Edit the list of optimization flags: Section 3.8.6.8.
* Edit the list of reserved words: Section 3.8.6.3.
* Edit the list of user defined words: Section 3.8.6.9.
* Edit the list of warning flags: Section 3.8.6.6.
* Editor: Section 3.10.
* Editor, cursor moving: Section 3.10.2.
* Editor, erasing commands: Section 3.10.1.
* Editor, other usefull commands: Section 3.10.4.
* Editor, select some text: Section 3.10.3.
* Environment variables: Section 3.8.1.
* Erasing commands: Section 3.10.1.
* Executing your program: Section 3.5.1.
* Exit: Section 3.2.7.
* File open dialog: Section 3.2.1.
* Finding text: Section 3.4.1.
* Flags for C files: Section 3.8.2.4.
* Flags for C++ files: Section 3.8.2.5.
* Free memory: Section 3.8.6.2.
* Generating of warnigs: Section 3.8.2.1.
* Goto a line number: Section 3.4.4.
* Header files: Section 3.8.1.1.
* Help: Section 3.1.6.
* Help about a function: Section 3.1.6.
* Highlight the syntax: Section 4.3.
* Highlighting the syntax: Section 3.8.6.2.
* Hints: Section 3.11.
* Hook21: Section 3.8.6.2.
* How the editor works: Section 3.10.
* Include directories: Section 3.8.1.1.
* Include files: Section 3.8.1.1.
* Input line: Section 4.6.
* Insert mode: Section 3.8.6.2.
* Int21 handler: Section 3.11.
* Language, setting the default: Chapter 5.
* Languages: Section 1.2.1.
* Latest version of RHIDE: Chapter 5.
* Leaving RHIDE: Section 3.2.7.
* LFN: Section 2.3.
* Libc reference: Section 3.1.6.
* Libraries: Section 3.8.3.
* Libraries in a project: Chapter 5.
* Library search path: Section 3.8.1.2.
* Link the program: Section 3.6.4.
* Linker options: Section 3.8.4.
* List of all windows: Section 3.9.8.
* Listbox: Section 4.6.
* Lists: Section 4.6.
* Loading a file: Section 3.2.1.
* Local options for a project item: Section 3.7.5.
* Long filenames: Section 2.3.
* Main targetname: Section 3.7.7.
* Make: Section 3.6.2.
* Make clear: Section 3.7.9.
* Makefile: Section 3.8.7.
* Mark some text: Section 3.10.3.
* Messages window: Section 4.2.
* Miscellaneous commands: Section 3.10.4.
* Moving a window: Section 3.9.1.
* MS-DOS: Section 3.2.6.
* Name of the main target: Section 3.7.7.
* Next message: Section 3.4.5.
* Next window: Section 3.9.5.
* Object file search path: Section 3.8.1.3.
* Object files in a different directory: Section 3.8.1.3.
* Online Help: Section 3.1.6.
* Open a file: Section 3.2.1.
* Open a project: Section 3.7.1.
* Optimizations, edit the flags: Section 3.8.6.8.
* Optimizing the code: Section 3.8.2.2.
* Options: Section 1.2.
* Options for a single file: Section 3.7.5.
* Options for the linker: Section 3.8.4.
* OS/2: Section 2.4.
* Overwrite mode: Section 3.8.6.2.
* Paste: Section 3.3.4.
* Preprocessing Assembler files: Section 2.1.
* Previous message: Section 3.4.6.
* Previous window: Section 3.9.6.
* Problems: Section 3.11.
* Project window: Section 4.1.
* Quit: Section 3.2.7.
* Radiobuttons: Section 4.6.
* Rebuilding RHIDE: Chapter 5.
* Redirecting stderr: Section 3.8.6.2.
* Redirecting stdout: Section 3.8.6.2.
* Remove a file from the project: Section 3.7.4.
* Removing all targets: Section 3.7.9.
* Removing the internal deendencies: Section 3.7.8.
* Repeat of replacing: Section 3.4.3.
* Repeat of searching: Section 3.4.3.
* Replacing text: Section 3.4.2.
* Reporting bugs: Chapter 5.
* Reserved words: Section 3.8.6.3.
* Resizing a window: Section 3.9.1.
* RHIDE project files: Chapter 5.
* RHIDE, latest version: Chapter 5.
* Running your program: Section 3.5.1.
* Sample projects: Chapter 5.
* Save all files to disk: Section 3.2.5.
* Save the file to disk: Section 3.2.3.
* Save the file under a different name: Section 3.2.4.
* Save to disk before compiling: Section 3.8.6.2.
* Search path for include files: Section 3.8.1.1.
* Search path for libraries: Section 3.8.1.2.
* Search path for opbject files: Section 3.8.1.3.
* Search path for source files: Section 3.8.1.4.
* Searching text: Section 3.4.1.
* Select a window: Section 3.9.11.
* Select the project window: Section 3.9.9.
* Selecting some text: Section 3.10.3.
* Show free memory: Section 3.8.6.2.
* Show the includes for a file: Section 3.7.6.
* Show the project window: Section 3.9.9.
* Show the user screen: Section 3.9.10.
* Show what RHIDE does: Section 3.8.6.2.
* Single file compiling: Section 3.11.
* Size for the tabs: Section 3.8.6.2.
* Source file search path: Section 3.8.1.4.
* Source files in a different directory: Section 3.8.1.4.
* Space as part of an argument: Section 2.2.
* Start: Section 1.2.
* Starting your program: Section 3.5.1.
* Store a file: Section 3.2.3.
* Supressing of warnings: Section 3.8.2.1.
* Syntax help: Section 3.1.6.
* Syntax highlighting <1>: Section 3.8.6.2.
* Syntax highlighting: Section 4.3.
* Tab size: Section 3.8.6.2.
* Temp directory: Section 2.3.
* temporary do to DOS: Section 3.2.6.
* Text mode: Section 3.8.6.2.
* Tile the windows: Section 3.9.3.
* Turbo Vision: Section 4.5.
* Type of the main target: Section 3.7.7.
* Undo: Section 3.3.1.
* Use of libraries: Chapter 5.
* User defined reserved words: Section 3.8.6.9.
* User screen: Section 3.9.10.
* Using the dialog: Section 4.6.
* Version of RHIDE: Section 3.1.1.
* Video mode: Section 3.8.6.2.
* Warnings: Section 3.8.2.1.
* Warnings, edit the flags: Section 3.8.6.6.
* Window, close it: Section 3.9.7.
* Window, moving: Section 3.9.1.
* Window, resizing: Section 3.9.1.
* Window, select it: Section 3.9.11.
* Window, select the next: Section 3.9.5.
* Window, select the previous: Section 3.9.6.
* Window, zoom it: Section 3.9.2.
* Windows: Section 3.9.
* Windows 95: Section 2.3.
* Windows, cascade them: Section 3.9.4.
* Windows, show a list of all: Section 3.9.8.
* Windows, tile all: Section 3.9.3.
* Write a makefile: Section 3.8.7.
* Zoom a window: Section 3.9.2.

7. Index of key commands
************************



* Activate a button | ENTER |: Section 4.6.
* Activate a flag | SPACE |: Section 3.8.2.6.
* Activate menu bar | F10 |: Section 4.5.
* Add a project item | Ins |: Section 3.7.3.
* Again find/replace | Ctrl+L |: Section 3.10.3.
* Auto indent | Ctrl+O |: Section 3.10.4.
* Begin of file | Ctrl+PgUp |: Section 3.10.2.
* Bottom of file | Ctrl+PgDown |: Section 3.10.2.
* Close a window | Alt+F3 |: Section 3.9.7.
* Close a window | Del |: Section 3.9.8.
* Compile | Alt+F9 |: Section 3.6.1.
* Copy | Ctrl+Ins | <1>: Section 3.10.3.
* Copy | Ctrl+Ins |: Section 3.3.3.
* Copy | Ctrl+K+K |: Section 3.10.3.
* Cursor down | Ctrl+X |: Section 3.10.2.
* Cursor left | Ctrl+S |: Section 3.10.2.
* Cursor right | Ctrl+D |: Section 3.10.2.
* Cursor up | Ctrl+E |: Section 3.10.2.
* Cut | Ctrl+K+Y |: Section 3.10.3.
* Cut | Shift+Del | <1>: Section 3.10.3.
* Cut | Shift+Del |: Section 3.3.2.
* Delete a character | Ctrl+G |: Section 3.10.1.
* Delete a character | Ctrl+H |: Section 3.10.1.
* Delete selected text | Ctrl+Del |: Section 3.10.3.
* Delete to the beginning of line | Ctrl+Q+H |: Section 3.10.1.
* Delete to the end of line | Ctrl+Q+Y |: Section 3.10.1.
* Delete to the next word | Ctrl+T |: Section 3.10.1.
* End of file | Ctrl+Q+C |: Section 3.10.2.
* End of line | Ctrl+Q+D |: Section 3.10.2.
* Erase a character | Backspace |: Section 3.10.1.
* Erase a character | Del |: Section 3.10.1.
* Erase a line | Ctrl+Y |: Section 3.10.1.
* Find | Ctrl+Q+F |: Section 3.10.3.
* Goto line | Ctrl+J |: Section 3.4.4.
* Help about the INFO viewer | F1 |: Section 3.1.6.
* Help | F1 |: Section 3.1.6.
* Ignoring | Ctrl+C |: Chapter 1.
* Index of online help | Shift+F1 |: Section 3.1.6.
* Interrupting the compilers | Ctrl+Break |: Chapter 1.
* Jump to a line | Ctrl+J |: Section 3.10.4.
* Jump to a marker | Ctrl+Q+ |: Section 3.10.4.
* Jump to the source line | ENTER |: Section 4.2.
* Leaving a dialog | ESC | <1>: Section 4.6.
* Leaving a dialog | ESC | <1>: Section 3.2.1.
* Leaving a dialog | ESC |: Section 3.8.2.6.
* Leaving RHIDE | Alt+X |: Section 3.2.7.
* List of all windows | Alt+0 |: Section 3.9.8.
* Local options | Ctrl+O |: Section 3.7.5.
* Make | F9 |: Section 3.6.2.
* Menu | F10 | <1>: Chapter 3.
* Menu | F10 |: Section 1.2.
* Next inputline | Tab |: Section 3.8.3.
* Next message | Alt+F8 |: Section 3.4.5.
* Next window | F6 |: Section 3.9.5.
* open a file | F3 |: Section 3.2.1.
* Open a project item | ENTER |: Section 4.1.
* Open an include file | ENTER |: Section 4.1.
* Overwrite mode | Ctrl+V |: Section 3.10.4.
* Page down | Ctrl+C |: Section 3.10.2.
* Page up | Ctrl+R |: Section 3.10.2.
* Paste | Ctrl+K+C |: Section 3.10.3.
* Paste | Shift+Ins | <1>: Section 3.10.3.
* Paste | Shift+Ins |: Section 3.3.4.
* Previous inputline | Shift+Tab |: Section 3.8.3.
* Previous message | Alt+F7 |: Section 3.4.6.
* Previous window | Shift+F6 |: Section 3.9.6.
* Read block from file | Ctrl+K+R |: Section 3.10.4.
* Remove a project item | Del |: Section 3.7.4.
* Replace | Ctrl+Q+A |: Section 3.10.3.
* Resize/move a window | Ctrl+F5 |: Section 3.9.1.
* Resizing a window | Shift+ |: Section 3.9.1.
* Run | Ctrl+F9 |: Section 3.5.1.
* saving a file | F2 |: Section 3.2.3.
* Select a item in a listbox | ENTER |: Section 4.6.
* Select a menu entry | ENTER |: Section 4.5.
* Select a message | ENTER |: Section 3.11.
* Select a window | ENTER |: Section 3.9.8.
* Select menu item | ENTER |: Chapter 3.
* Select text | Shift |: Section 3.10.3.
* Selecting a window | Alt |: Section 3.9.11.
* Set a marker | Ctrl+K+ |: Section 3.10.4.
* Show includes | Ctrl+I |: Section 3.7.6.
* Start of file | Ctrl+Q+R |: Section 3.10.2.
* Start of line | Ctrl+Q+S |: Section 3.10.2.
* Syntax help | Ctrl+F1 |: Section 3.1.6.
* System Menu | Alt+SPACE |: Section 3.1.
* Toggle an option | SPACE |: Section 4.6.
* Undo | Alt+Backspace |: Section 3.3.1.
* Unselect | Ctrl+K+H |: Section 3.10.3.
* User screen | Alt+F5 |: Section 3.9.10.
* Word left | Ctrl+A |: Section 3.10.2.
* Word right | Ctrl+F |: Section 3.10.2.
* Write block to file | Ctrl+K+W |: Section 3.10.4.
* Zoom a window | F5 |: Section 3.9.2.

