

                            SET's editor v0.4.17
                                  by SET

  That's the official distribution of SET's editor v0.4.17
  The editor is Copyrighted by Salvador Eduardo Tropea. (c) 1996-1998
  The editor is free and you don't need to pay for it. Any kind of donations
are accepted ;-).

*Important* There is a beta of RHIDE (1.4.5) that includes the editor v0.4.14.
*Important* The editor is available for Linux!! is under test but works very
            well.

IMPORTANT:

  Like the old releases I'm testing new features and bug fixes, some of them
will be part of RHIDE so I need they tested.
  Changes in v0.4.17:
New:
* Now you can open two copies of the editor under Win3.1+SHARE without losing
the help file in the second copy (open.c from libc was patched and DJ have
a copy of the patch, so it will be offitial in v2.02).
* Syntax highlight for NASM files (thanks to Ivan from Italy).
* Warning in file that contains ASCII 0 because it have an special meaning
for the editor.
* A better highlight of the matchs when making Find & Replace and the match
is outside the screen (Now you can see the whole word and not just the first
character).
* Now the command to search the complementary pair (parentheses, etc.) is
mapped to Ctrl+Q-ESC like in BC. (Wasn't asigned in v0.4.x).
* Enabled Ctrl+Shift+9 and Ctrl+Shift+0 to match parentheses. But for this
you'll need to load my TSR that expands the BIOS functionallity because BIOS
doesn't report some keyboard combinations.
* Now the keyboard expander is shipped with the editor. Look for more
information in this readme (keyboard extender section).
* Added help for all the items in the pull-down menu.
* Added a tip of the day dialog to provide tips about using the editor. It
pop-ups just ones a day and you can avoid it, but I think you must at
least read the tips first.
* Added in Replace "yes, no, cancel" dialog an "all" option. (I forgot the
name of the who suggested it).
* Now the save file, open file, save/read block of text, open info and
the project stuff have a path for each one. This path is the last used for
this operation and the value is stored in the desktop file. Additionally the
"File Dialog" now have a button called "Home", it changes the directory to
the one from where you started the editor.
* The settings of the find & replace dialogs are stored in the desktop file
(suggested by Elias Pschernig <f.x.gruber-museum-arnsdorf@magnet.at>).
* Support for Perl-Compatible Regular Expressions (from University of
Cambridge) (Laszlo's idea).
* Support for tags ($0,$1,etc) in the replace string to replace with sub-
expressions (Laszlo's idea).
* Now Shift+BackSpace is mapped as BackSpace as default. Same for Shift+Enter
to Enter because some people have the fingers tied to shift ;-). (asked by
Peter Palotas).
* I changed the behavior of the history in the "File Dialog". In the TVision
class it just stores anything you type or select, that's totally unuseful.
Now it stores the path and wilcards used for a selection so you can jump to
the most recent places where you loaded/saved files without problems. It was
a thing that annoyed me for a long time and the request of Elias Pschernig
triggered the modifications.
* Built-in support for gziped .info files. Now the editor doesn't call gzip,
just uncompress the files itself.
* MP3 player!!! that's totally crazy, I'm writing while the editor is playing
an MP3 from disk. Be carefull it could it your RAM and CPU. The player is
polled so sometimes it could be not updated often enough.
---
--- If you want to enable the 16 bits playing routines read the MP3 section
---
* Now when "Jump to function" shows the closest match for the word under the
cursor. With it jumping to the function under the cursor is very easy.
(Suggested by Alex Lozano).
* Support for Emacs like syntax highlight selection (// -*- C++ -*-). You can
use it for C++ header files without extention.
* A new sLisp command to run an external program. (See the 'Test RunProgam'
macro example, you can assign it to a key).
* Almost twice the documentantion (editor.inf grew from 70K to 137Kb).

Fixed:
* A bug that was blocking the use of hexadecimal prefixes in files where the
SHL isn't case sensitive (0x in .s files for example).
* A buffer overflow when using a user defined SHL and displaying files with
spaces after crossing the 80th column (produced GPFs in HTML files).
* Fixed a problem when the editor tried to change the read-only status of a
file. It only happened under DOS 6 and not W95.
* Now Alt-Q deletes the .dst files under W95 (it was working well under DOS
6, who said that they are compatible?)
* A silly limitation of 99 columns in the wrap column setting (reported by
Brett Porter)
* Now you can load splitted .info files located in any directory.
* Now the editor detects the write access ok in Novell disks when using NETX.
I use stat instead of fstat (work-around).
* Fixed a problem when saving files to a network drive and _truename returns
an UNC (DOS+NETX for example). Now the editor uses the device and inode to
detect if you open the files twice. Methode suggested by Eli.
* Compact text doesn't have undo (it affects the whole file) so now:
(1) The editor asks for confirmation and (2) The undo information is flushed
so the user can press undo (it produced unpredictable results). (reported by
Peter Palotas <blizzar@hem1.passagen.se>).
* Fixed the bug (?) that Num-Lock OFF, Shift+Gray Number is reported by BIOS
like a number instead an arrow key. (reported by Gili).
* __dpmi_yield to avoid problems with some W95 boxes (patch by Eli).

There are more small changes just take a look to change.log.

  Changes in v0.4.13:
New:
* When opening a read-only file now the editor makes a warning and offers to
change the file attributes.
* Now you can set some things from the command line:
--no-signal    Avoids hooking all the signals. Use it if when the editor
               crashes your computer crashes too.
--no-redirect  Avoids the stderr redirection. Use it if you have any problem
               with the erXXXXXX files.
--force-no-lfn Don't use LFN even when LFN is Y.
--force-lfn    Use LFN even when LFN is N.
I use these options when debuging, don't know if somebody could need it.

Fixed:
* Patched truename because it was failing producing a hard bug when using save
as in enviroments with LFN=Y. The whole directory was renamed. (thanks to
Ilya and Myknees).
* The aligment and size of some russian and normal chars in 3 fonts.
(thanks to Alexander,BY).
* When no tcedit.dst file found the editor selected ISO 8879-1 code page
messing the graphic chars. (thanks to Myknees).
* When opening files and getting error the editor generated a GPF.
(thanks to Ilya,RU)
* In the auto-indent mode sometimes the editor was increasing the indentation
level without a logical reason.

  Changes in v0.4.12:
New:
* Code pages: ISO Latin 2, ISO-5, CP866, Win1251 and KOI-8 (most of them
russian).
* Now the menues configuration file doesn't need to be preprocessed with cpp,
any modification will take effect in the next run (menubind.smn).
* The palette dialog now supports keys and not only mouse (RGBrgb).
* Clock.
* Screen saver.
* Support for an external program to set your favourite text mode. STM is a
very good example y tested it with 108x34.
* Now the editor calls to __dpmi_yield to help multitaskers, specially OS/2.
* Optimized searchs when REGEX is on but you enter a simple text to search.
* A mode to avoid the creation of .dst files in all the directories (see
Tool&Ops|Options|Editor General).
* Now the redirection of stderr is made by the program and not the batch so
you no longer need different batchs to run more than one copy of the editor.
Additionally the redirected file isn't deleted when you run again.

Fixed
* Aacute & Agrave in the ROMBIOS font.
* Powered Grep (PG) was failing when search in opened/project windows.
* PG fails with absolute paths.
* PG now forces the use of command.com because bash fails.
* PG problems when searching in roots (doble /)
* Wrap mode fails when Intelligent C was on.
* InfView didn't get underscore in incremental searchs (when typing names).
* Crashes if using "Previous windows" without windows opened.
* When changing code page not all the windows scroll bars were updated.
* InfView & Message windows didn't support code pages (scroll bars).
* Applied the Molnar's patch to libc's strftime. (0:00 now and not :00 at
midnight).
* Ctrl-F5 for resize was broken.
* The default for "File Open" from *.* to * because that matchs all.
* Now the editor doesn't let stderr redirected when you shell to DOS.
* In the code page handling of scroll bars (corruption).
* Some options in search dialog (Scope and Origin) were swapped.
* Save As ... allowed to overwrite file without warnings, additionally under
plain DOS it allowed to save names with more than 8+3 without truncating the
name in the editor's window.
* Now ESC is mapped to hide the selection.

And the additions of v0.4.8:

1) Screen mode setting, the 80x25,28,30,34,35,40,43,50 82x25 90x30,34 94x30,
34 and others. Be aware that the editor will behave OK only in these modes.
For example: the fonts doesn't work in a user defined mode.
  Note: 82x25 was created by me because my card uses 9x16 fonts in 80x25 and
that breaks the horizontal lines in ISO 8879-1 encoding. 82x25 uses 8x16.
  See Tool&Ops|Options|Screen Options.
2) Fonts, the editor is shipped with 5 different fonts. You can use up to TWO
of them simultaneously. The fonts are actually limited to modes with 8x14 and
8x16 fonts. Additionally they can be used in 9x16/14 modes but with some
limitations.
  When you use 2 fonts the most significant bit of the color selects the font,
so you must rearrange the colors in a special way to exploit the dual fonts
feature.
  If you have more fonts and/or you can convert the 8x14/16 to 8x8/10 please
contact me.
  See Tool&Ops|Options|Screen Options.
3) Code pages. The editor can handle code pages, that's different
arrangements of the ASCII table. The first 128 characters are defined by the
ASCII standard, but the rest of the characters no. For this reason there are
a lot of standards in how to arrange it, the ROM BIOS uses an arrangement
called PC437. The editor supports: PC437, PC850, PC852, PC860, PC863, PC865
and ISO 8879 Latin 1 (Used by Windows and Linux in some countries, USA
included).
  To enable this feature you must use the fonts of the editor or you won't get
the desired result. That's one of the reasons to include the ROM BIOS fonts
as one of the shipped fonts ;-)
  Additionally you can set different code pages for each font (in dual fonts
mode) but I'm not so sure about the utility of that.
  The code page affects the BlockToUpper and BlockToLower commands.
Additionally the Ctrl-Arrow (NextWord and PrevWord) is affected too.
  Again, if you know about other encodings or detect a bug on it please
contact me.
  See Tool&Ops|Options|Screen Options.
4) Now you can customize the palette! The BIOS default isn't very good
because is too general. Additionally if you are developing a game an want to
compose an RGB color you don't need to exit the editor, you can compose it in
this part of the editor ;-)
  See Tool&Ops|Options|Color Palette.
5) You can control the generation of .BKP files and you can tell to the
editor to save UNIX files in UNIX format.
  See Tool&Ops|Options|Editor General.
6) You can use regular expressions to search in the editor (^QF ^QA). There
are problems with the match at the end or start of line because libc spects a
UNIX file (\n). Does anybody know how to fix it?
7) There are a new mode that ever centers the current line if Scroll-Lock is
ON. See Alt-G.
8) Pressing one key (Ctrl-F9 by default) you can execute an external program.
The editor will redirect the standard output and error to a file and show it
in the message window.
  If you call to make the editor will try to:
a) Figure out in what directory is make working (using the Entering directory
and Leaving directory messages of make).
b) Catch errors and warnings from gcc looking for: "file:line:error"
structures.
  I'm not a friend of make and I didn't tested it enough but seems to work
OK. I want opinions and ideas.
  See Tool&Ops|Options|Run Program and Tool&Ops|Run Program.
9) A shell for grep, that's a simple (?) dialog box to set the grep options.
To make the life easy you can select to search in the project or opened files
just with a key stroke (no typing a name). A good addition to it is that you
can make the grep search to recurse in the subdirs. Another good thing is
that you can specify more than one base directory so you can run grep in all
your disk just specifying the root directories.
  See Tool&Ops|Grep.
10) The editor will show the line that made a hit in grep or have an error
with gcc, if you modify the code the editor try to keep track of the movement
of the line so if you add 4 lines before the line of the next error the
editor will show you the correct line even when the number is no longer the
one reported by gcc or grep.
  Alt-F7/F8 shows the next/previous hit line.

Fixes and changes:
1) When selecting after pasting now the selection works OK.
2) The Alt-Q (Quit) message is more clear (Myknees@aol.com). And can be
dissabled too.
3) ESC means NO in Alt-Q (Alex Lozano).
4) The editor refuses to run without SET_FILES declared.
5) If you delete the .shl file and choose Alt-L the editor doesn't generate a
GPF (ML).
6) ^BackSpace was mapped as ^BackSlash ;-P (ML).
7) The editor remmembers the search options through sessions.
8) You'll read it forced by the editor ;-)
9) Autoindent now looks first in the current line and then inserts the
newline (Toth Balazs).

Plus the following introduced in v0.4.1:
1) A new tool called SET's Documentation Generator. This feature is used
   to generate documentation from some special comments that you must put
   in your C/C++ files. For more information read the EXAMPLE part.
   Read %DJDIR%/setedit/sdg.txt or the on-line sdg.inf for more info.
2) The addition of Lisp like macros (sLisp), take a look to the file
   %DJDIR%/share/setedit/macros.slp. The name of the available editor
   commands is listed in the editor's help. Look in Macro|Choose for more.
3) A new system of keyboard handling, look in the editor in the menu Various|
   Options|Keyboard.
4) A new feature to wrap words, use Alt-L and Alt-G to enable and configure
   in the files you want.
5) Configurable menu, take a look to the file menubind.cc. To create a new
   menu modify the file and then run cpp menubind.cc > menubind.txt.
   These files are located in %DJDIR%/share/setedit.
6) A life save system for eventual crashes. If the editor drops to DOS just
   go and look the file %DJDIR%/share/setedit/error.1. To make it work you
   must EVER call the editor from the provided e.bat file and no directly.
7) A printing tool, See Files|Print Setup...
8) More things, just play a little with the options in the menu and the files
   in %DJDIR%/share/setedit.


Note: %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.
      But you must add the SET_FILES variable to your autoexec.bat, look in
      INSTALL.



REQUIREMENTS:

* PC 386 compatible or superior computer.
* 2 Mb of memory or more.
* 1 Mb of free disk or more.
* DOS version 5.0 or posterior or any compatible OS (Win '95, Win 3.1, OS/2,
MS-DOS, etc.).
* A VGA card.
* Well ... if you have djgpp you have it.



INSTALL:

1) Uncompress the file over your djgpp installation in the same way you
   did with the rest of packages. If you don't have djgpp do it in some
   directory.
2) Add the following in your autoexec.bat:

SET SET_FILES=c:/djgpp/share/setedit

Replacing c:/djgpp with the place where you installed djgpp. You can't make
it through djgpp.env because I use this variable in the e.bat file :-(
If you don't have djgpp replace c:/djgpp by the name of the directory where
you uncompressed the editor.



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.
  You will need to customize the colors from Various|Options|Colors.
  To save the default colors and settings go to the %SET_FILES% 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.
  Important! to use Alt-G you must open at least one editor window, so go to
File|New and create a new file, then set the optios you want, select OK and
then close the new file created. If you don't close it you'll get a new file
opened each time you start the editor in a new directory, perhaps you want it
but isn't the normal.
  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.
  If you want to run multiple copies of the editor at the same time make
copies of the e.bat file with names like e1.bat, e2.bat, etc. and modify the
name of the error.1 file with error.e1, error.e2, etc. And then start the
editor from different batchs. That's needed because all the error output of
the editor is redirected to a file.


MP3:

  Currently the editor used a patched version of Allegro to play MP3 files.
I modified Allegro to mix the samples with 16 bits of resolution. 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 ;-).



EXAMPLE:

  To test the SDG tool you can uncompress the example.zip file in an empty
directory. Then call the editor with e and folloe 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).



LEGAL ISSUE:

  The editor is free software.  It may be used or distributed in any manner
you wish, as long as you do not try to sell it.  You can't remove any
copyrigth included in the editor and you can't distribute it without any
of the original files.

  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.


KEYBOARD EXTENDER

  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.


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".



THANKS TO:
  Molnar Laszlo: He reported almost all the fixed bugs and sugested a lot of
things that I added.
  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.
  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.
  The University of Cambridge: For the Perl Regular expressions package.
  The University of California, Berkeley and its contributors: after all I
use your malloc.

SET
