SETEDIT, a friendly text editor
Author: Salvador E. Tropea, salvador inti.gov.ar
Description: SETEdit a friendly text editor for DOS, Win32, Linux and other UNIXes
Keywords: SETEdit, setedit, rhide, editor, linux, DOS, console, tui, djgpp, library, download, SET, Salvador, Eduardo, Tropea, PPC, SPARC, Alpha, FreeBSD, Solaris

# SETEDIT |

I provide a menu because some sections are large and perhaps you are not interested in reading all:

- Lastest news, downloads and summary of the project [That's the Source Forge summary page]

- Introduction
- Features
- License
- Screen shots
- Download
- Contributing
- Mailing list
- Announcement of the last release
- Readme first
- Change log
- The info viewer as an standalone program: InfView
- Comparison between gcc 3 and 2
- A full IDE: RHIDE
- About the names of the releases
  - Iguazú
  - Glaciar Perito Moreno

New. New pre-release available. Code name: "Glaciar Perito Moreno II" (v0.5.5). It fixes an important bug and adds VHDL support among other things.

SETEDIT is my best program, I started it around june of 1996. When I discovered djgpp (read it if you don't know what djgpp is) one thing that annoyed me was the lack of intuitive tools. I was a user of Borland products since 1993 and I really missed the BC++ IDE, but soon I found RHIDE. Lamentably RHIDE was in your early beta stage, the editor was really dumb, no help system, no debugger, tons of bugs, etc. So, instead of giving up I started to help Robert with RHIDE. Very soon I solved the lack of help system with my InfView class and then I started with something bigger: replacing the old editor by a new one. I did it using the already existing one so we had something working pretty soon. My objective was to make an editor as good as the one found in BC++ 3.1.

Today I'm confident my editor is better than BC++'s one in most of the fields, here is a list of features:

FEATURES
Supported platforms
DOS or any other OS that can emulate DOS in a decent way. GNU/Linux for i386. (The code runs for Alpha, AMD64, ARM, HPPA, Itanium (IA64), PPC and SPARC but isn't fully tested). Win32 (Windows 95, 98, ME, NT 4.0, 2000, XP, etc.) as a native application, not a DOS application. Darwin, FreeBSD, NetBSD and OpenBSD. May be also other BSD flavors. Solaris (Tested on a SPARC64 machine and also an x86 machine) QNX
Edition
Selection: Wordstar mode (^K-B/^K-K, etc.) Using shift key plus any movement Mouse Rectangular blocks supported, very useful to move/copy/delete columns Support for OS native clipboard (Windows clipboard, gpm (Linux) and X11 clipboard and selection) Persistent and no persistent selections Read/write from/to disk Mark a line or word with one keystroke "Transparent" selections (you don't lose the highlight) [option] Indentation: Autoindent [option] Tab indents/delete unindents [option] Block indent/unindent (one space, one tab or a level) Intelligent auto indent [option] Pairs of braces, brackets, etc. Highlighting when you type [option] Reporting the position if the pair is outside the screen [option] Jump to the matching pair, for a specific or generic case Macros: Pmacros, typing the first two letters you can expand a text or structure Recordable macros Small macro language based on Lisp Jump in the text: Ten easy to access markers to jump Jump to a line Jump to a function, just place the cursor over the name of a function that's declared in the source and pressing a couple of keys you jump to it Jump to any defined symbol using TAGS Search and Replace: In the text using: Normal text or basic, extended or Perl regular expressions Case sensitive or not Whole words or just part Inside the selected text or in the whole document From the cursor or for the full scope of the search Inside/outside comments Normal replace or expanding subexpressions (with $n like in Perl) Outside the text: Using all the power of grep Basic and extended regular expressions Case sensitive or not Whole words or just part Whole line or just part In the files of the project or in a list of directories You can specify the mask of files to search for Recursive search for subdirectories available To any symbol definition using TAGS Movement: Arrow keys, page up, page down, home, end, etc. First/last line in the screen First/last character in file Next/previous word First/last character in the selection Cursor ever centered [option] Scroll window Tabs support: Adjustable size Use tabs in the text or not Conversion of tabs into spaces and viceversa Optimal fill (fills gaps with tabs) [option] Visible tabs [option] Move inside or around tabs Miscellaneous: Block toupper/lower Number of bytes selected Normal, column, line or cross cursor Un/comment block
Other features
Intuitive interface using windows and mouse. I use Turbo Vision for it. The state of all windows is remembered Configurable keyboard Configurable menus You can run external programs pressing a key or using the menu Projects to group files with some common criteria Undo Documentation generator Very fast (and yet configurable) syntax highlight for: 4DOS batch files 80x86 assembler (AT&T syntax) 80x86 assembler (Intel syntax) 8x51 assembler Ada BASIC C/C++ Cascading Style Sheets version 2 Clipper 5.x Command Line Errors File Environment files Flat assembler Fortran HTML Internationalization files (.po) Java Java Script Lua Makefiles Menu files [config. file of the editor] Modula 2 Netwide Assembler (NASM) Objetive C Pascal PDP11 assembler Perl PHP PIC assembler (Microchip) PLM/51 PMacros files [config. file of the editor] PostScript POV-ray Python Ruby SDG format files [config. file of the editor] sLisp macros [config. file of the editor] SPARC assembler SQL The syntax highlight file itself [config. file of the editor] TCL/Tk TeX Texinfo Turbo Vision configuration files UNIX shell scripts VHDL XML WML Class browser using TAGS Word completion using TAGS Support for UNIX files for DOS and DOS files for Linux. Transparent support for compressed text files (gzip and bzip2 formats) Context sensitive help system Syntax help system Reader for .info help files with many features as bookmark, open more than one window, search, mouse, etc. Code pages support Customizable colors Clock Calculator Tips Customizable palette of colors Fonts MP3 player!
Special features only available for DOS
Various video modes, including VESA text modes
Special features only available for Linux
Debug interface (using gdb) Dialogs to configure the debug mode (local, remote and running process), the command line options for the program, gdb binary, xterm binary, messages displayed, etc. Breakpoints, simple ones and advanced options including conditional breakpoints, breakpoints at functions, ignore count, etc. Watchpoints, they are data breakpoints. Options to run, continue, step over, trace into, run upto return, etc. Options to stop and kill the program. Thread selection. Evaluate and modify data. Data Window and Stack to browse the memory (very complete and with its own menu). Data Watches, like then ones in RHIDE and also with scope. Data Inspectors, used to analyze complex data structures. Disassembler Window, including syntax highlight and allowing to modify the registers. Calling stack, with functionality to browse the call chain. And much more things that I don't remember right now.

LICENSE
The editor is distributed under the GPL license. It basically means the code is free and you don't need to pay for it and you are free to change it, but any derived work will become GPL too. Most of the software available for Linux is distributed under these terms. This license protects my rights over the code (I hold the copyright) and protects the users ensuring they are free to use the code. If you plan to use parts or the whole code of the editor be sure you read the GPL license carefully. Note that GPL implies a disclaimer of guaranty, so if you must use it in an enterprise where you need to be able to sue software's authors in case of direct or indirect problems created by it just forget about the editor. By the way, I don't know about even one big company (Microsoft included) that doesn't included a disclaim of guaranty in your license. Even when you don't need to pay for the editor I accept any kind of help ;-). The best way to help me is contributing in one of the ways I mention here.

Screen Shots
OS: Win95, 94x34, font: 8x16. Editors: C and Perl files. ASCII table, Calculator and Calendar |  | OS: Win95, 94x34, font: 8x16. Editors: C, Perl, Environment and Makefile. See the rectangular and regular selections. Also the visible tabs in the makefile |
OS: Linux, using X11 driver and two different fonts |  | OS: Solaris, using X11 driver, this is from one of the first test versions. |
OS: Linux, using X11 driver and a nice Enlightenment theme ;-) |  | OS: Linux (Debian), 128x45, 6x12 Fixed Medium font, from an ETerm, and shows a Perl and a Java source file, and the MP3 menu. Contributed by Mike Conrad. |
OS: Linux, using X11 driver. Here you can see the editor debugging itself. A watch, an inspector and the disassembler window are in use. |  | More snapshots of the editor running on remote systems. They are for different systems, something similar to trophies ;-) |

DOWNLOAD
Last release is `Glaciar Perito Moreno I' aka 0.5.4.
IMPORTANT!
Only the most common files are listed here, for a complete list of available files go to the Source Forge Summary page or click here. Don't be afraid of the version numbers, 0.5.4 is very stable and mature, other people could name it version 5.4. You can download the files using ftp. For this use the upload.sf.net server. Login as anonymous user and go to the /pub/sourceforge/s/se/setedit and /pub/sourceforge/t/tv/tvision directories.
DOS
Sources: Last release Glaciar P. Moreno I (v0.5.4) (Use with TV 2.0.3) Previous release Iguazú I (v0.5.2) (Use with TV 2.0.2) Last stable in previous series v0.4.54 (Use with TV 1.1.4) All DOS packages are in .zip format and must be compiled using djgpp. You also need Turbo Vision sources, uncompress both packages in your djgpp directory. After uncompressing the sources will be in the contrib directory. Binary installer: Last release Glaciar P. Moreno I (v0.5.4) Previous release [Fix for "pure DOS" (not Windows emulating DOS) problems] Iguazú I DOS fix/test (v0.5.2) please report if it works or not Previous release Iguazú I (v0.5.2) Last stable in previous series v0.4.54 The installer is compressed using .zip format. Uncompress it and run the install.exe program. The installer will ask installation options and optionally create a desktop shortcut, menu item and modify autoexec.bat. This is the recommended package for djgpp and no-djgpp users. Binary Windows installer: Last release (EXE) Glaciar P. Moreno I (v0.5.4) Previous release (EXE) [New installer] Iguazú I (v0.5.2) Previous release (EXE) Iguazú I (v0.5.2) Previous release (MSI) Iguazú I (v0.5.2) This package was contributed by William Cullen. It uses the standard Windows installers to install the DOS version of the editor. For Windows 2000, XP and similar OSs: You should try the Win32 version. For this you must download and install the DOS version first and then get one of the Win32 version binaries and finally replace the setedit.exe. Binary: Last release Glaciar P. Moreno I (v0.5.4) Previous release [Fix for "pure DOS" (not Windows emulating DOS) problems] Iguazú I DOS fix (v0.5.2) Previous release Iguazú I (v0.5.2) All the available development releases: SF Last stable in previous series v0.4.54 It contains the binaries using a layout that matchs other djgpp applications. I recommend using the installer, but this pacakge is provided in case the installer fails or you don't like installers. Uncompress it in your djgpp directory like any other djgpp package.
Linux/Solaris/QNX/*BSD/etc.
- Sources: CVS snapshot Glaciar P. Moreno II (v0.5.5 r1244) (Use with TV 2.1.0) Last release Glaciar P. Moreno I (v0.5.4) (Use with TV 2.0.3) Previous release Iguazú I (v0.5.2) (Use with TV 2.0.2) Last stable in previous series v0.4.54 (Use with TV 1.1.4) All packages are in .tar.gz format and must be compiled using gcc. Note that if you use a very new version of gcc you'll have to use the last release or the CVS code. You also need Turbo Vision sources. I recommend uncompressing both packages in the same directory (i.e. /usr/src). Important for binaries: Each Linux distribution uses a particular set of libraries so you can't install a binary compiled for Red Hat 7.3 in a SuSE 8.0 machine. Some times it works some times it fails. Statically linked binaries have more chances but it doesn't mean it will work. Starting with Turbo Vision 2.0.0 the binary needs X11 libraries and they can't be linked statically. So I don't distribute 0.5.0 and newer versions statically linked. Consider downloading the sources if binaries for your distribution aren't available. If you can't compile the sources please report it. If you can generate binaries for your system in RPM, DEB or similar format please consider contributing them so other people using your system can download it. Debian GNU/Linux Etch 4.0 (i386): CVS snapshot Glaciar P. Moreno II (v0.5.5 r1244) (Use with TV 2.1.0) Debian GNU/Linux Etch 4.0 (AMD64): CVS snapshot Glaciar P. Moreno II (v0.5.5 r1244) (Use with TV 2.1.0) Debian GNU/Linux Etch 4.0 (SPARC): CVS snapshot Glaciar P. Moreno II (v0.5.5 r1244) (Use with TV 2.1.0) Debian GNU/Linux Sarge 3.1 (i386): CVS snapshot Glaciar P. Moreno II (v0.5.5 r1235) (Use with TV 2.1.0) Debian GNU/Linux Sarge 3.1 (SPARC): CVS snapshot Glaciar P. Moreno II (v0.5.5 r1235) (Use with TV 2.1.0) Debian GNU/Linux Woody 3.0 (i386): A Debian repository is maintained by Ivan, you can add the following to your /etc/apt/sources.list: deb http://setedit.sourceforge.net/debian woody main That's for Woody, replace woody by potato for Potato. Last release Glaciar P. Moreno I (v0.5.4) (Use with TV 2.0.3) Previous release Iguazú I (v0.5.2) (Use with TV 2.0.2) Debian GNU/Linux Woody 3.0 (Alpha): This should be considered experimental because it was compiled on a remote machine and tested only using XTerm. Last release Glaciar P. Moreno I (v0.5.4) (Use with TV 2.0.3) Debian GNU/Linux Potato 2.2 (i386): Only an old release is available for Potato Old release v0.5.0 (Use with TV 2.0.1) Debian GNU/Linux Potato 2.2 (Others): Only an old release is available for Potato Alpha: Last stable in previous series v0.4.54 (Use with TV 1.1.4) Power PC: Last stable in previous series v0.4.54 (Use with TV 1.1.4) SPARC: Last stable in previous series v0.4.54 (Use with TV 1.1.4) Fedora Core 3 (i586): Last release Glaciar P. Moreno I (v0.5.4) (Use with TV 2.0.3 and libmigdb 0.8.8) Fedora Core 2 (i686): CVS release (20040113) Iguazú II (v0.5.3 CVS) (Use with TV 2.0.3 CVS) Fedora Core 1 (i386): Rohan Carly reported success installing the Red Hat 7.3 binaries like this:
           If I install this C++ library that comes with the distribution:
           rpm -i compat-libstdc++-7.3-2.96.118.i386.rpm

           ... then I can install your RPMS without much trouble:
           rpm -i librhtv-2.0.2-3rh73.i386.rpm
           rpm -i --nodeps setedit-0.5.2-1rh73.i386.rpm

           The --nodeps for setedit is required because it thinks it
           /usr/local/install-info is missing. In reality it resides in
           /sbin/install-info.
Mandrake/Mandriva 10.0 (i386): Last pre-release Glaciar P. Moreno I (v0.5.4) (Use with TV 2.0.3) Mandrake 9.1 (i386): Previous release Iguazú I (v0.5.2) (Use with TV 2.0.2) Red Hat 9.0 (i386): Last pre-release Glaciar P. Moreno I (v0.5.4) (Use with TV 2.0.3) Red Hat 8.0 (i386) [Also look in Red Hat 7.3 section]: Last pre-release Glaciar P. Moreno I (v0.5.4) (Use with TV 2.0.3) Red Hat 7.3 (i386): Note: users reported that these RPMs also works for Red Hat 9.0 without generating dependency problems. Previous release Iguazú I (v0.5.2) (Use with TV 2.0.2) SuSE 9.1 (i586): CVS release (20040113) Iguazú II (v0.5.3 CVS) (Use with TV 2.0.3 CVS) SuSE 9.0 (i586): CVS release (20040124) Iguazú II (v0.5.3 CVS) (Use with TV 2.0.3 CVS) SuSE 8.2 (i686): Previous release Iguazú I (v0.5.2) (Use with TV 2.0.2) SuSE 8.1 (i686): Old release v0.5.0 (Use with TV 2.0.1) SuSE 8.0 (i686): Old release v0.5.0 (Use with TV 2.0.1) Ubuntu 6.10 (i386): CVS snapshot Glaciar P. Moreno II (v0.5.5 r1235) (Use with TV 2.1.0)
Win32
IMPORTANT!! To try the Win32 native version you have to install the DOS version and then replace the setedit.exe executable by one of the available Win32 executables. General notes: This isn't 100% tested but all people that tried it reported good results. I recommend it for Windows NT (2000, XP, etc.) users. I don't have any Windows XP box and some users reported strange behavior when using the DOS version. Cywin users: Wiktor Wandachowicz wrote a step by step tutorial explaining how to install the editor in a Cygwin system. From sources: The editor can be compiled for Win32 using Borland C++ 5.5 free compiler. To compile the editor you need BC++ 5.5 command line compiler and tools. The compilation is quite similar to the DOS version, you just need the zip file used for DOS (and Turbo Vision). Binaries: Last release (compiled with BC++ 5.5) Glaciar P. Moreno I (v0.5.4). Last release (compiled with Cygwin, needs Cygwin's DLL) Glaciar P. Moreno I (v0.5.4). Previous release (compiled with BC++ 5.5) Iguazú I (v0.5.2). To use it just install the DOS version and replace setedit.exe by this executable. Note that even when this program looks like the DOS version it is a true Win32 application and should behave much better under Windows NT, 2000, XP and similars.
Documentation in other formats
PDF: Last release: Glaciar P. Moreno I (v0.5.4) Previous release: Iguazú I (v0.5.2) Last stable in previous series: v0.4.54 HTML: Last release: Glaciar P. Moreno I (v0.5.4) Previous release: Iguazú I (v0.5.2) Last stable in previous series: v0.4.54 DVI: Last release: Glaciar P. Moreno I (v0.5.4) Previous release: Iguazú I (v0.5.2) Last stable in previous series: v0.4.54 PS (Postscript): Last release: Glaciar P. Moreno I (v0.5.4) Previous release: Iguazú I (v0.5.2) Last stable in previous series: v0.4.54
CVS
Using CVS tool: Check out the TV's CVS: cvs -d:pserver:anonymous@tvision.cvs.sourceforge.net:/cvsroot/tvision login cvs -z3 -d:pserver:anonymous@tvision.cvs.sourceforge.net:/cvsroot/tvision co tvision Check out the editor's CVS: cvs -d:pserver:anonymous@setedit.cvs.sourceforge.net:/cvsroot/setedit login cvs -z3 -d:pserver:anonymous@setedit.cvs.sourceforge.net:/cvsroot/setedit co setedit CVS web: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/setedit Snapshot: See the snap.html page. For Turbo Vision consult it: http://tvision.sf.net/snap.html page.

CONTRIBUTING
There are a lot of ways you can contribute, here are some of them: Giving useful bug reports, it means providing a good description of the bug and how to reproduce it. Helping with the documentation. Even when I try to keep the documentation up to date that's a lot of work and there are a lot of issues not covered by the documentation. You could just take one of these topics and investigate about it to then write a small chapter about it. Writing examples of use or mini-howtos. I'll be glad to include them with the editor. Helping with the web pages. Helping with the distribution, e.g. if you have an internet host or you can help with the announcements and uploads. Packaging the editor. Currently Ivan Baldo is working with the Debian packages, perhaps you can do it for other formats or platforms. Porting the code to other platforms. Currently the Linux/PPC and Linux/SPARC are usable. The Linux/Alpha version needs some adjustments (is corrupting memory). The FreeBSD target is supported but I don't have much information about it. We are also working to get the editor compiled for Solaris. Helping with the internationalization. Even when my language is spanish the editor have documentation and messages only in english, it means I don't even have time to keep up to date the support for my own language. Making additions to the code. I really need people writing code. I have a lot of ideas but I can't code all. Sending a post card from your city or some of the things I collect (train tickets, cigarette envelopes and boxes, stamps, old money and coins) you'll help to keep my interest in the project. Of course I'll accept money from you or any hardware, but I know that's very hard for most people, specially because I'm in Argentina.

Mailing List
That's a list to talk about the editor, proposed features, bugs, ideas, etc. The list is hosted by Source Forge. To subscribe please visit: http://lists.sourceforge.net/mailman/listinfo/setedit-users.

Comparison between gcc 3 and 2
If you can choose between gcc 2 and 3 to compile the editor you should consider the following comparison. GCC 3.x seems to be better when optimizing for modern CPUs (like AMD Athlon). But the cost is a huge increase in compilation time. Debian GNU/Linux v3.1 (Sarge) usually installs gcc 2.95.4 and gcc 3.3.5. That's because Linux kernels 2.4.x should be compiled using gcc 2 and kernels from the 2.6.x series with gcc 3. I have such a system and I compiled Turbo Vision and the editor using both. I found the following: gcc 3.3.5 is much slower compiling C++ code. Mostly because it uses a much more complex standard C++ library. It is much more ISO C++ 1998 compliant. But I think the real reason is that gcc is quite bad handling templates and that's the real reason (ISO C++ 1998 heavily uses templates). I found gcc 3.3.5 can be four times slower than gcc 2.95.4. The generated code (using -O2) runs notably faster on an Athlon XP CPU. It looks like the optimizations in 3.3.5 are much better tuned for modern CPUs. The editor performed about 20% faster when compiled using 3.3.5. The size of the code is bigger for the dynamic library (unstripped) and smaller for the editor itself. The result is quite similar to the size obtained using 2.95.4. To reduce the compilation time I tried using the SSC option provided by TV. It notably reduced the compilation time. The result wasn't as good as using 2.95.4. My conclusion is that gcc 3.3.5 can be used for modern CPUs but you must avoid using the provided C++ library. Note that not all TV applications can be compiled using SSC. Here are the results, note that the values were computed in a way that "more" always means "better". Results.

RHIDE
RHIDE is a full IDE (Integrated Development Environment) using Turbo Vision, SETEdit and InfView and adding: make facilities and interface to the debugger (gdb integrated inside). You can find more information about RHIDE here: http://www.rhide.com/. Lamentably precompiled binaries uses really old versions of my tools and aren't available for all targets. If you want to compile RHIDE with the last TV and SETEdit code you'll have to get the code of RHIDE from a special CVS branch of RHIDE called "for_tvision_2". As Source Forge's CVS is currently working too slow (hardware problems) I'm generating nightly tarballs for this branch: http://rhide.sf.net/snapshots/snap.html. Of course you have to also get Turbo Vision and SETEdit snapshots (see the download section). It worked for my system (Debian GNU/Linux Woody) so I hope it will at least help you to get closer to compile in other systems. Note 1: I used gdb 5.3 release to create RHIDE binaries. I also used 6.1. Note 2: Precompiled binaries for DOS are available in the Source Forge page of the editor. Note 3: The current release of the editor (Glaciar P, Moreno I) have debug features for Linux.

Copyright © 1999-2007 by Salvador E. Tropea, e-mail: set[at host]users.sf.net.

Some notes:

What's djgpp?

Is a port of the GNU tools to the DOS environment. The main purpose is bring the power of the free GNU C/C++ compiler called gcc. You can find more about it in http://www.delorie.com.

What are tags?

TAGS files are plain text files containing a list of symbols from your source code. For each symbol the file indicates in which file it's located and how to find the symbol inside the file. Modern programs also include very important information like which type of symbol is defined and if this symbol is part of a bigger construct like a class.
An ilustrated tutorial showing how to use tags in SETEdit is available here.

Last update: Tue Mar 17 10:11:31 ART 2009