RHIDE documentation for Version 1.00

June 1996

by Robert Höhne

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

Copyright (C) 1996 Robert Höhne

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

The following master menu lists the major topics in this documentation, including all the indices.

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

These archives you can find at The RHIDE home page. 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., 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. 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:

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 Open project )

Possible options are for selecting the language (See Supported languages ) and for debugging RHIDE itself (See Debugging RHIDE ). 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 Preferences ).

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:

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:

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 Running under Windows 95 ).

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 Known suffixes

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 Sources directories ) 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 Messages window ).

3.1.4 GDB

This is analog to the call of FSDB (See FSDB ), 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 Preferences ).

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 Save 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 Messages window ), 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 Messages window ), 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 Make ). (hotkey Ctrl+F9 ) If building the program was not successful, the programm will not be started. (See Syntax of arguments )

3.5.2 Arguments

Here you can type the arguments, which will be passed to your program when you do a run . (See Run ) and (See Syntax of arguments ).

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 Known suffixes ) (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 Known suffixes ), 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 Project 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 Project 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 Project 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 Project 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 GDB ), 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 Write makefile ) 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 Clear 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 How to toggle these flags ).

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 How to toggle these flags ).

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 How to toggle these flags ).

For a detailed description of the available flags see Section Debugging 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 How to toggle these flags ).

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 How to toggle these flags ).

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 Linker 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 Syntax of arguments )

(See Syntax of arguments ).

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 Syntax of arguments )

(See Syntax of arguments ).

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:

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 C options )

See How to change the list of flags

3.8.6.5 CXX-Flags

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

See How to change the list of flags

3.8.6.6 Warning-Flags

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

See How to change the list of flags

3.8.6.7 Debugging-Flags

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

(See How to change the list of flags )

3.8.6.8 Optimization-Flags

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

(See How to change the list of flags )

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 Preferences )

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:

As an example: the string for the -O option is defined as -O%d? and the -d option (See Debugging ) 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 Clear dependencies ).

If you have used environment variables in your search paths (See Directories ), 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 Project 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

3.10.2 Cursor moving commands

3.10.3 Text selecting and searching commands

3.10.4 Other commands

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 Preferences

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 Close ).

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 Project 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 Add item ). But if they are not in the current directory, you must also set the library search path to the directory, where they are. (See Library directories ). The other variant is to include them in the list of libraries. (See Libraries )

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.. 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 Höhne
     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. , 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 Debugging RHIDE ) 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

7. Index of key commands