Hi all, Patric has succeeded in reuniting FreeDOS EDIT with all the
required D-FLAT source files, and he has finally fixed the AltGr-bug,
I think. You can get his version from:


>> http://freedos.mainlan.de/edit06.zip


As a second step, I have cleaned up all compiler warnings (except for
the types "passing struct by value" and "mixing pointers to signed and
unsigned char" - which numbers are those so that I can disable them in
the makefile? Original makefile had ALL warnings disabled...
The pointer mix / struct by value is a very common D-FLAT warning, and
should be harmless enough to ignore.

I have also cleaned up the makefile and changed the version (in 2 places!)
to 0.6b, plus I have updated some of the docs and made EDIT compile with
ALL features in Turbo C 2.01 (there is no Assembly "anti flicker/snow" code
in video.c anymore and I have written my own mktime() to find out the day
of the week for eny date between year 1900 and 32000 (or similar ;-)).
I have ENABLED Jeremies Ctrl-Break handler, but DISABLED the (broken, as
only mouse but often not keyboard worked) confirmation popup in it. If you
attempt to close a changed window with Ctrl-Break, you get a confirm box
from the "close window" handler anyway.
I have replaced the timer IRQ handler plus macros based countdown engine
by a "passive" function based one which reads the 40:6c BIOS timer tick
counter and tries to handle midnight wraparound in some sane way (well...
if your day has 1<<32 ticks!).
The only remaining IRQ handler is the keyboard one, which in addition
breaks support for "legacy free" hardware. I am tempted to remove it, but
it is needed for the hotkeys Alt-Del, Alt-Backspace, Ctrl-Ins and the
waitforkeyboard() macro.
Removing the keyboard IRQ handler would mean replacing waitforkeyboard()
by a normal conio or BIOS function and being unable to use the 3 mentioned
hotkeys. Please comment!

It is a bit confusing that ^C pushes the string ^C on the screen (FreeDOS
kernel feature - does MS kernel do the same?), and you sometimes have to
press space and / or wait after ^C before it closes the current file/window,
but CRASHES should happen far less often on ^C now. By using atexit(), I
have hopefully reduced the cases where EDIT exits without restoring the IRQ
handlers significantly now (and if we could kick that keyboard IRQ handler
completely (message.c), dangling handlers would be solved completely anyway!).

Very strange detail is that neither the old int 0x24 handler nor my new
harderr() based critical error handler seem to work. They should set a
flag and EDIT should read that flag to detect open/read/write/chdir/(???)
failures, but one of the two never seems to happen. Inviting bug-bashers to
help with this.

The Ctrl-Break, Critical Error, keyboard IRQ and timer IRQ handling basically
all happen in message.c, so if you want to compare different versions, you
generally only have to change a #define in message.c ...

Hope my changes are real improvements in general! And I hope that others
from fd-dev can now fix the last remaining bugs - now that EDIT can be
compiled easily, thanks to Patric and his "collect all parts of EDIT" quest.

My version of EDIT (0.6b, with binary and in FreeDOS directory structure...!)
can be found on in my usual download area:


>> http://www.coli.uni-sb.de/~eric/stuff/soft/by-others/ edit06b.zip

(225k)

Good luck and have fun with the update .

Eric.