SETEDIT

Get SETEdit at SourceForge.net. Fast, secure and Free Open Source software downloads

I provide a menu because some sections are large and perhaps you are not interested in reading all: New. New pre-release available. Code name: "Glaciar Perito Moreno II" (v0.5.8).

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 29451 bytes OS: Win95, 94x34, font: 8x16. Editors: C, Perl, Environment and Makefile. See the rectangular and regular selections. Also the visible tabs in the makefile 22398 bytes
OS: Linux, using X11 driver and two different fonts 10500 bytes OS: Solaris, using X11 driver, this is from one of the first test versions. 274865 bytes
OS: Linux, using X11 driver and a nice Enlightenment theme ;-) 487382 bytes 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. 52908 bytes
OS: Linux, using X11 driver.
Here you can see the editor debugging itself. A watch, an inspector and the disassembler window are in use.
411415 bytes 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 II' aka 0.5.8.

IMPORTANT!

  1. 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.
  2. Don't be afraid of the version numbers, 0.5.8 is very stable and mature, other people could name it version 5.8.

Linux/Solaris/QNX/*BSD/etc.

DOS

  • Sources: 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: 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: 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: 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.

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: 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

CVS

  • Using CVS tool:
    1. 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 -P tvision
    2. 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 -P setedit

  • CVS web: http://setedit.cvs.sourceforge.net/viewvc/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-2010 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: Wed Jul 14 11:06:14 ART 2010