SET's editor "Iguazu I" release v0.5.2 rev. 947 by SET That's the official distribution of SET's editor v0.5.2 The editor is Copyrighted by Salvador Eduardo Tropea <set@users.sf.net>. (c) 1996-2003 and distributed under the GPL license. It's free and you don't need to pay for it. Any kind of donations are accepted ;-). INDEX: 0. IMPORTANT (modifications and fixes in this release and the previous) 1. REQUIREMENTS 2. INSTALL 3. MORE INFO 4. MP3 player 5. EXAMPLES (SDG, and others) 6. LEGAL ISSUE 7. KEYBOARD PREFERENCES 8. KEYBOARD EXTENDER [DOS version only] 9. KEYBOARD FEATURES UNDER X [Linux version only] 10. DOWNLOAD 11. MAILING LIST 12. DONATIONS 13. THANKS TO 0. IMPORTANT: This is a major release and also a "dot zero" release. So you should expect big changes and also some annoying side effects. Please be patient and try to help me to solve any problem. I use the editor every day and compiled using "Electric Fence", it means that in my system the editor is really stable, but the editor supports too much systems and options. Changes in v0.5.2 (for more details read the change.log file): [taking last stable release (0.5.0) as reference] [40 new things and 25 fixes] New [40 things]: + Various [19] * Word completion. Based on tag files. * Jump to symbol (not only functions: variables, structures, etc.). Based on tag files. * Class browser. Based on tag files. * An option to control the size of newly opened files. When enabled the windows tries to avoid overlapping the message and project windows. It was suggested by Ivan Baldo. * Every 8 seconds or when we focuse a text window the editor checks if the copy on disk of the file we are editing changed. When the editor detects the copy on disk is newer asks for reload. But ... * If we also modified the copy in memory the editor asks for 4 options: 1) Load the file from disk, it discards changes in the copy we have on memory. 2) Don't do anything, the user must solve the problem. 3) Like 1 but the editor invokes diff -u and shows the output. 4) Like 2 but with diff like in 3. * Support to porperly display international messages even when changing the code page used by the editor. The messages are recoded on the fly. * Color scheme contributed by Juan Diego (bach) Ianelli. Is called "Dark JDI". * Options to export/import project items using a text file. * Now you can load a project located outside the current directory. * Holidays highlight to the calendar. Volunteers to support it for each country are wanted. * A dialog to dis/enable any advice dialog (also the Quit + delete warning). * Made the "Paste Emacs mode" more robust. If the first line is "#!..." the comment is pasted in the second. If the mode was already pasted by the editor it is first deleted. Suggested by Grzegorz. * Commands to allow configuring the editor to copy/paste the text in input lines to/from the OS clipboard. * Command called cmcJumpLastCursorPos. It works similar to cmcLastPosCur but uses a different mechanism. I assigned this command to ^Q-P that according to Alain is the WordStar command for it. * Command that inserts a new line without moving the cursor nor indenting. This is the old WordStar ^N command. * Option to avoid redirecting stdout when running an external program. Useful for interactive applications that uses stdout. * cmcCommentIndent/cmcCommentUnIndent now indents the current line if nothing is selected. Suggested by Thiago. * Commands to copy from the message window to the OS clipboard. Suggested by Thiago. + Compilation [4] * The compilation process was simplified and BC++ now can be used to create Win32 version of the editor with the same facility than gcc. * Support for makeinfo 4.4 and newer (breaks the old API). * More detailed documentation for each target. * Scripts to generate RPMs. + sLisp [8] * loop and exitloop sentences. From Bernd Becker. * Find command. Contributed by Bernd. * GetCursorX, GetCursorY and SetCursorXY commands. * ==, !=, ++ and -- operators. * (repeat times commands...) from code and ideas contributed by Bernd. * (= var value) as an alias for (setv ... * GetSyntaxLang command to find which syntax highlight is in use. * Two constants to be used by RunProgram. They are for the old option (use OS/user screen) and the new option to avoid redirecting stdout. + Syntax highlight and pmacros [5] * More python keywords. Contributed by Grzegorz. * Emacs modes and shell names for CSS, Tcl, Java and Python. Suggested by Grzegorz. * SQL emacs modes and keywords. Suggested by Grzegorz. * Made more robust the "shell script" shl detection. It now supports: "#!.../env command" and "#!.../commandVERSION" (i.e. python2.2). From Grzegorz suggestions. * Errors parser for ANT Java Builder. Contributed by Grzegorz. + Linux [1] * Support for UTF-8 consoles (i.e. RedHat 8.0 and 9.0). + X11 [1] * The powered grep now paints the screen more often and shows the busy indicator. + Cosmetic [2] * Calendar windows can be closed pressing ESC. * ManView window can be closed with ESC. Suggested by Thiago. Fixed [25 things]: + Fatal [2] * When a directory contained a project with a desktop file newer than the current setedit version and a default desktop file from a version older than 0.5.0 the editor rejected the new file but preloaded it doing a mess at the time of loading the old file. * When doing a search in/outside comments close to the first line you could get a GPF. Reported by Bernd Becker. + Not fatal [12] * Memory leak in about dialog. * When jumping to a hit in the message window and the first column contained a matching [{( and the editor was configure to do match pair on the fly: the message quickly dissapear. * When typing at the end of the visible area the editor not always scrolled 8 columns making it slow. * Tips code tried to jump to editor.inf which is no longer called like it. * Some problems when doing incremental searches in some list boxes. * Indentation problems in some pmacros. * "Intelligent indent" mode needed "Backspace unindents" enabled to work properly. * The list of "functions" supports things that aren't strcitly programming languages, like texinfo sources, for this reason the "space" key should't act as item selector (can be part of the name in an incremental search). * When switching from a window with some syntax highlight to another with a different shl and using Alt+F2 it was common to get a wrong result because the editor used the old shl. * The -m command line option was disabled. * Find whole words and out/inside comments didn't work together. Reported by Alain. * Fails in the "Export as HTML" command when some text was selected. + Compilation [1] * Issues with newer gcc 3.x (upto 3.3) versions and BC++ 5.6 (CBuilder 6). + sLisp [1] * The RunProgram command was affected by the options in the configuration dialog. + Linux [1] * When running an external program and using the "OS screen" the editor made a complete mess. Only in console. + X11 [1] * Problems using the mouse in InfView windows. + Cosmetic [7] * The main documentation was reviewed and a lot of errors fixed. * Color names now are coherent, all start with a capital letter. * Shortcut collision between Copy/paste to/from OS clipboard and file clipboard options. * After loading a file from a desktop file with column cursor enabled it wasn't visible until the cursor was moved. * When no project is available now the "Powered Grep" avoids using "search in projects" as default. * Now when you "Quit" and the warning dialog pops up you can press Escape to abort the process. Suggested by Alex Lozano. * + and - should change month in calendar. For information about older releases and more read the change.log file. Note for DOS users: %DJDIR% == The content of the enviroment variable %DJDIR%, that's the place where you installed djgpp. You don't need to set this variable, setting DJGPP is enough. 1. REQUIREMENTS: * PC 386 compatible or superior computer. * 2 Mb of memory or more. * 2.4 Mb of free disk during installation and about 1.5 Mb once installed. * DOS version 5.0 or posterior or any compatible OS (Win '9x, Win 3.1, OS/2, MS-DOS, etc.). Note: A native windows version is available but is just for testing. or * Linux with ELF support. or * FreeBSD, QNX and Solaris are supported but you'll need to compile from sources. * A VGA card. * DJGPP users normally have it. 2. INSTALL: *Important* To use the powered grep you need the grep program installed in your system. To use the man page viewer you need the man program installed in your system. Both are found in all Linux systems but not in all DOS systems. Starting with v0.4.26 the DOS version of the editor is distributed with an installer, if you have it just run install.exe and follow the instructions. If you only have a .zip or .tar.gz file that contains a lot of files continue reading this chapter. The following cases are explained: A) Installing in DOS for djgpp users. B) Installing in DOS for non-djgpp users. C) Installing in Linux. A) Installing in DOS for djgpp users: 1) Uncompress the file over your djgpp installation in the same way you did with the rest of packages. 2) If you installed the editor preserving the directory structure you won't need to do it so the following is usually optional: Add the following to your autoexec.bat: SET SET_FILES=c:/djgpp/share/setedit Replacing c:/djgpp with the place where you installed djgpp. IMPORTANT!! Windows NT (4.0, 2k, XP, etc.) is case sensitive for environment variables, avoid defining things like Set_Files. B) Installing in DOS for non-djgpp users: Attention: If you don't use the installer you must have some basic DOS knowledge, including: how to set an environment variable, modify your PATH and what is autoexec.bat. If you don't know it use the installer or ask a friend. 1) Uncompress the file in any directory you like preserving the directory structure. Examples: unzip edi0426b.zip or pkunzip -d edi0426b.zip or using WinZip (be careful to preserve the directories) For the other sections I'll give examples assuming you uncompressed the files in c:/setedit. 2) If you installed the editor preserving the directory structure you won't need to do it so the following is usually optional: Add the following to your autoexec.bat: SET SET_FILES=c:/setedit/share/setedit IMPORTANT!! Windows NT (4.0, 2k, XP, etc.) is case sensitive for environment variables, avoid defining things like Set_Files. Replacing c:/setedit by the place where you uncompressed the editor. 3) Add the c:\setedit\bin (don't forget to replace c:/setedit by the name you used in 1) to the PATH in autoexec.bat. Example: PATH=.... <= Line already existent in your autoexec.bat SET PATH=c:\setedit\bin;%PATH% C) Installing in Linux: 1) Uncompress the files in /tmp and run ./INSTALL_LINUX. If you want to setup the destination directory read the INSTALL_LINUX script. You'll need the make tool to run it, that's usually installed. Also: the script contains useful information about access rights needed to run the editor. 2) If you installed the editor in /usr or /usr/local the following is optional: Define the following environment variable (bash syntax): export SET_FILES="/usr/share/setedit" Replacing /usr by the prefix you used, example: prefix /opt then the editor is in /opt/bin and you must define: export SET_FILES="/opt/share/setedit" 3) Be sure the directory where setedit binary file is located is included in your PATH environment variable. Note for bash users: the file where (2) and (3) should be defined is normally called .bash_profile or .bashrc in your home directory. 3. MORE INFO: From v0.4.0 the editor doesn't need external files to configure the keyboard so forget about the old xxx.txt files used in RHIDE 1.4. You will need to customize the colors from Various|Options|Colors, the ones used by default aren't pretty. To save the default colors and settings go to the %SET_FILES% (examples: c:/setedit/share/setedit, c:/djgpp/share/setedir, /usr/share/setedit) directory, start the editor and set all the options (colors and settings with Alt-G). Just exit and the editor will save a file called tcedit.dst. Each time you start the editor in a directory where there isn't any *.dst file the editor will load this default. Linux users that doesn't have write access to the /usr tree can create a default in their home directory. In this case the file should be created in ~/.setedit directory. Users that want to have only one tcedit.dst file, and not one in each directory, must configure it in Tool&Ops|Options|Editor General. If you are annoyed with the back-up files and .dst files created by the editor in all the places just exit with Alt+Q and the editor will delete these files. Also see the options available in Tool&Ops|Options|Editor General. 4. MP3: [Only in the DOS, Linux and Solaris versions] Linux users doesn't need to configure any special thing. DOS users: The editor supports the Allegro mixing routines with 16 bits of resolution (I contributed it to the Allegro project because I needed it for the editor). If you want to enable it create a file called allegro.cfg with the following contents: -------- cut here -------- [sound] sb_freq = 45454 quality = 1 -------- cut here -------- Put the file in the same directory where the editor is located. It will enable the 16 bits routines and mix with the maximun mixing frequency. Enable it only if you are a fanatic because it will eat your CPU ;-). 5. EXAMPLES: SDG Example: To test the SDG tool you can uncompress the example.zip file in an empty directory. Then call the editor with e and follow these steps: 1) Select the menu Project|Open and type test and enter. You'll get a new project. 2) Press Insert and select the three .cc files pressing enter in each one, the press ESC. Now you have the project filled. 3) Select Various|Options|SDG Options, and take a look to the selected options, if you have SET_FILES right all must be Ok, so just press ENTER. 4) Press F9. The message window will appear with some messages. 5) Open the file out.html, it was generated when you pressed F9 (look the syntax highlight). Load the file with any web browser and look the results. If you like it for your code read the sdg.inf file (from the editor, if you don't know how press F1 and then Ctrl-H to learn more about the help system). sLisp macros examples: In addition to the macros included in macros.slp (you can access these macros from the Macros|Choose menu option) I included another, more simple, examples in a file called examples.slp. It is located in the same directory as the rest of the configuration files (/usr/share/setedit, c:/djgpp/share/setedit, etc.). Turbo Pascal 7, also for other non-gnu compilers: Andreas Leidner <leidner@gmx.net> contributed some wrapper to call TPC7 from the editor and convert the errors into the FSF format so you can jump to the function that originated the error from inside of the editor. This examples is included in the directory where other .zip files are located (contrib/setedit.bin or texts) and is called calltpc7.zip. 6. LEGAL ISSUE: The editor is free software. It may be used or distributed in any manner you wish, as long as you do not violate the GPL license. You can't remove any copyrigth included in the editor and you can't distribute it without any of the original files. You will also distribute the sources if you distribute the binaries. The GPL license is included in the package so read it before distributing the editor. The editor comes with ABSOLUTELY NO WARRANTY; excluding any and all implied warranties, including warranties of merchantability and fitness for a particular purpose. There is no warranty or representation, either express or implied, with respect to this program, its quality, performance, merchantability, or fitness for a particular purpose. The entire risk of using this program is with you. There will be no liability for special, incidental, or consequential damages arising out of or resulting from the use or modification of this program. 7. KEYBOARD PREFERENCES The keyboard is fully configurable from the Tool&Ops|Options|Keyboard|Key assignment menu option. But this configures the keys used only by the editor windows. The menu keys are defined in a text file with the .smn extension. The file loaded by the editor for this purpose is called menubind.smn. An example of how you can alter it to change some stuff is provided and called redmond.smn, I think you can guess what's the effect of this menu configuration ;-). If you used the installer one of the options offered was about changing redmond.smn by menubind.smn. 8. KEYBOARD EXTENDER [DOS version only] In the contrib/setedit directory you'll find a small program called kextend that's a very simple TSR (only needs 432 bytes of memory in my system) to extend the BIOS functionallity. 9. KEYBOARD FEATURES UNDER X [Linux/UNIX version only] Currently the editor runs as a native X11 application. It means the keyboard is fully supported, even the most bizarre key combinations works. Note that some Window Managers reserves some key combinations that are used by the editor. I recommend Enlightenment as W.M. it uses complex keyboard combinations and is also configurable so you can change them to avoid interference. The support for XTerm and Eterm is also very good. I recommend using XTerm from XFree86 4.x project. So I recommend using it for remote conections, you'll get much better results making telnet to a remote machine using XTerm than using the Linux console. If you want to get the best results download the Turbo Vision sources (http://tvision.sf.net) and look the examples found in the examples directory, they show how to configure XTerm and Eterm to get even better results. 10. DOWNLOAD: All the OSs: Stable and beta releases, mailing list, cvs, etc.: http://setedit.sourceforge.net/ DOS: (only stable releases) Any Simtelnet mirror, example: ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2apps/edi*.zip Linux: The Linux tarballs can be found in Source Forge. Debian GNU/Linux: (only stable releases) A repository is maintained by Ivan in Source Forge. To access the repository, just add the following line to your /etc/apt/sources.list: deb http://setedit.sourceforge.net/debian woody main That's for the Woody version of Debian, you should substitute "woody" by the name of your distribution or by the synonym "stable". Note that Ivan will upload stable editor releases. For betas look in the Source Forge pages. 11. MAILING LIST To subscribe visit: http://lists.sourceforge.net/mailman/listinfo/setedit-users I moved the old list at topica to Source Forge. 12. DONATIONS: If you really like the editor and/or the SET's Documentation Generator included on it you can send me anything as feedback. If you want to send money I'll be happy, but if you don't have it and want to show your gratitude you can send me a postal card from your city or some of the things I collect (train tickets, cigarette envelopes and boxes, stamps, old money and coins). For more information about how to contact me press F1 in the editor, select "Introduction" and then select "About the author". 13. THANKS TO (random order): Ivan Baldo: My Debian packager and friend. Molnar Laszlo: He reported a lot of the fixed bugs and sugested a lot of things that I added in the first releases of the 0.4.x serie. Grzegorz Adam Hankiewicz: Another tester and source of bug reports and good ideas to add to the editor. José Angel Sanchez Caso: For contributing a lot of code to make TV working in other UNIX platforms, not just Linux. I didn't yet incorporated all the things he sent me. Vadim Belodorov: For contributing the first port of TV to Win32. Anatoli Soltan: For porting to Win32 using BC++. Alexander Bokovoy: For the information on the russian code pages. Marek Habersack & Martijn Versteegh: For sugestions about the mode that doesn't create .dst files in all the dirs. Robert Hoehne: For starting RHIDE project and porting TV to djgpp, it made me start this project. The FSF and GNU people for such a good tools. DJ Delorie and colaborators for porting it to DOS. Shawn Hargreaves: For Allegro, the best gaming library. I use the sound engine from Allegro. Tomislav Uzelac: For AMP the MP3 engine. Ove Kaaven: For LibAmp, an adaptation of AMP to Allegro. Julian R. Seward: For the bzip2 library. Jean-loup Gailly and Mark Adler: For the zlib. Bjorn Reese: For a lot of ideas about the stack debugger for UNIX. The University of Cambridge: For the Perl Regular expressions package. The University of California, Berkeley and its contributors: after all I used your malloc upto v0.4.23, and perhaps I still using some libc function from Berkeley. SET