RHIDE

RHIDE is an integrated development environment similar to Turbo C++ / Borland C 3.1, allegedly based on a public source release of Borland's TurboVision libraries at the end of those products' life cycles. It was originally created to work with DJGPP and later ported to Linux. It offers a DOS-like windowed text editing environment, which can be a delight to play with if you used TC / BC back in the day (or if you attend a tech school in India where it's still in use). See below for tips on how to get RHIDE running on your Linux system.

I am not the author or maintainer of RHIDE; I gather that their names are Robert Hoehne and Salvador Eduardo Tropea. I'm just a fan with some tips from my experiences compiling it.

Features

 * Good old borlandc hotkeys (F3, alt-F3, F6, ctrl-F9, alt-X, etc.)
 * C/C++ syntax highlighting
 * Integrated debugger

Download
To compile RHIDE, you will need several source packages: Download these and put them in the same directory.
 * GDB 5.3
 * RH TVision 2.0.3
 * SET Edit 0.5.4
 * RHIDE 1.5
 * My patch for the code
 * My patch for the binary rhgdb.gpr project file

Compile
I wasn't able to find a compiled package of RHIDE that I could install (there's a .deb, but the dependencies were too out of date), so I compiled from source. However, RHIDE does not compile out of the box on a modern Linux (in my case, Ubuntu 11.10)! It does many things that GCC does not allow anymore (such as assigning a (const char *) to a (char *); even GDB 5.3 does at least one thing that GCC refuses to compile now, involving incrementing a type casted value). I also found some incompatibilities among the different packages that had to be reconciled, such as global variables that had been turned into static class members.


 * 1) Unpack all of the packages under a common parent directory
 * 2) Apply the patches (I don't want to redistribute my complete modified sources without permission; hopefully a patch is OK. Mr. Tropea or Mr. Hoehne, if you ever read this, please feel free to apply this patch, either in whole or in part, to the main repository. It would be nice to have RHIDE available on Ubuntu by default, even if GDB 5.3 still needs to be patched manually.)
 * 3) Configure and compile each package in the order listed in the download section (except for GDB! rhide will do its own configure of GDB.).
 * 4) I opted to run RHIDE out of the compile folder rather than 'make install' because I didn't want these crazy hacked-up libraries and binaries contaminating my system in a way APT couldn't fix. You might want to go through with the full install.

Troubleshooting and Gotchas
SET Edit's Makefile deletes itself on 'make clean'! Re-run ./configure if this happens. This also applies to a few of the subdirectories of rhide-1.5.

SET Edit doesn't build libset by default, but RHIDE needs it, so you need to pass extra an parameter to configure.

RHIDE's configure script tries to prevent the compile from proceeding on 64-bit systems.

Some of the problems are in files generated by the configure scripts, so you might have to re-apply the patch after you run configure (see the -N flag of patch to re-apply cleanly).

Some of the makefiles are autogenerated from .gpr files, which is RHIDE's native project format. Since it's a binary format, there are certain things a text-only patch can't affect (like the -Werror flag, which is stored in a .gpr file and then copied out to a makefile). That's why there's an additional binary patch, applied with bspatch.

Limitations
I haven't yet gotten everything to work.
 * I get a seg fault in Options &rarr; Environment &rarr; Editor &rarr; Editor options. This means I can't change my tab width or make them not black. This crash very well may be caused by something in my patch. If you're curious, this was because a 32-bit int was passed into varargs and then interpreted as a 64-bit pointer. Fixed on 12/26/2011.
 * Resizing from a small window to a large one sometimes gives me a mostly black window that I have to kill from a command line.
 * I haven't figured out where the online help system looks for its files, so that just gives me error messages.
 * Obviously using an ancient debugger like GDB 5.3 on a system with a newer compiler will probably be a problem.
 * I bet my cheat to run on 64 bit systems doesn't do enough to make debugging work fully.
 * I have only compiled and tested on my own machine! No guarantee this will work elsewhere.

Patch summary

 * Change lots of char* to const char*
 * Add missing #include directives
 * Declare constructors and destructors without class name prefix
 * Comment out references to global variables that don't exist
 * Move a generic constructor into its header
 * Add some explicit casts
 * Call accessors instead of trying to reach private members
 * Fix a few buggy memset calls
 * Turn casted pointers into lvalues by dereferencing
 * Add missing libraries
 * Don't stop configure scripts on 64 bit systems
 * Make the Shell menu option work better with X terminals
 * Remove -Werror flag in despair
 * Cast terminating null values in varargs lists to pointers