Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
Actually, we cannot (easily) detect NANSI.SYS, so we don't enable optimizations by default.
You will have to `set TECO_TERM=nansi.sys` to enable optimizations.
Of course you can also still set the TERMCAP variable.
|
|
|
|
screen at exit
termcap was already doing it.
Perhaps termcap is meant to be the main Video TECO interface?
|
|
It's in termcap.h...
|
|
They were probably for compatibility on some obscure legacy UNIX,
that lacked the header for some strange reason.
(But then, why wouldn't you just define `struct pollfd` and poll()
in one of Video TECO's headers?)
|
|
* It's actually the time of running ./configure that will be used.
* On OpenWatcom, it does not seem to be possible to set variables
based on external processes, so you will still have to update
AUTO_DATE in teco.h when releasing for DOS.
|
|
The resulting config.h.in is similar to the one from the CVS repo.
However, I removed checks that apparently weren't referenced in the code base.
Also, I fixed the terminfo check. Previously, it was actually building against
termcap on my system. Terminfo should always be preferred.
Currently, it does not check against ncurses itself. If it turns out there are
systems with an ncurses pkg-config file, but without tinfo, we might have to check
for ncurses as well.
It adds both -Wall and -Wsign-compare, which turned out to be useful to
debug the DOS version.
|
|
|
|
The text files are added with DOS line-breaks.
Well, actually README.OLD is currently detected as a binary file,
so it won't.
|
|
|
|
|
|
This is both important to highlight the license on Github and
so we can ship it in the DOS releases.
|
|
The original README is renamed to README.OLD.
|
|
archival purposes
I haven't updated it with any of the changes I did since Paul Cantrell put it online in 2007.
Original source: https://www.copters.com/teco.html
|
|
workaround
Also, we increased the maximum size of objects to be put into the "far data" section,
which significantly decreases the DOS binary size.
|
|
It now compiles with -DDEBUG1 again (magic struct checks).
|
|
|
|
This had been broken even before my mungings.
|
|
Apparently "." doesn't always have the S_ISDIR flag in SvarDOS (DR-DOS),
so we simply exclude it.
|
|
* this preserves CRs in the buffer - they will be echoed like ^M
* This is inspired by SciTECO's `-8`/`--8bit` parameter.
|
|
Just like in SciTECO!
|
|
* fixes at least <FS>, which has been broken since b5325e00c402ec18034da4b4a4aaaefa87bb1fef.
* but probably many other commands as well in the DOS version when working with
"very large" documents
* now compiles cleanly with -Wsign-compare
|
|
* This is not done by the shell in DOS.
* As a side effect, we support all of the Csh-like constructs like
{a,b,c} in contrast to Watcom's fnmatch().
|
|
|
|
It would be better to restore the previous screen contents,
but that's probably not trivial to implement.
|
|
* The magic field is now always called __magic.
* Saves some memory, which is important especially on MS-DOS.
|
|
In particular, this will work on MS-DOS, albeit inefficiently.
You also cannot generically redirect stderr on COMMAND.COM.
|
|
* This allows handling files >64kb even on 16-bit DOS.
* A few flags fields could be squashed into bitfields.
* The buffer overview (0EB) has been adapted for DOS.
We can only show the total amount of allocated
memory (as by tecmem.c) for the time being.
Unfortunately, we don't have a total amount of available
memory since _memavl() is for small data models and
the sbrk() apparently doesn't grow.
|
|
This reduces the binary size by a few kilobytes.
|
|
This will save a lot of stack space and sometimes heap space on DOS.
|
|
I tested it on FreeDOS with DOSLFN.COM.
Should also work on Win9x, so the DOS port works a Windows editor as well.
|
|
|
|
You can also `set VTECO=...` to the directory of TECO.INI (usually the installation directory).
This is helpful if the location of the binary's directory is unreliable.
|
|
dynamically
* The clrtobot capability (cd) is only used after goto(1,1), so it's safe to
clear the entire screen.
* Consistently use ESC[0m to disable attributes.
AFAIK, it's not possible to disable individual attributes only.
* al, AL, dl, DL, ic and dc are actually available, but only under NANSI.SYS.
We now detect recent versions of NANSI.SYS dynamically and enable these extensions,
which will speed up screen scrolling.
* Scrolling is now fixed under Dosbox.
Obviously they don't support the NANSI.SYS extensions.
* You can still define %TERMCAP% even on DOS to load a customized termcap definitions
file.
|
|
are in $PATH
* has been tested both hosted on Linux and DOS with OpenWatcom v1.9.
* more aggressively optimize for executable size
|
|
This is done via 10h interrupts and special memory regions.
The alternative would have been to use set the cursor to 9999,9999
and query the cursor position via ANSI escape sequences.
|
|
Linefeeds are normalized to LF in the buffer.
|
|
It can be cross-compiled or compiled natively on 32-bit DOS
with OpenWatcom C v1.9.
Compiling on an 8086 might be possible later on - but we would
have to add support for some ancient ANSI C compiler.
|
|
* Fixes access to uninitialized field in cmd_token, as found via Valgrind.
* Possibly other structures also aren't fully initialized, so I memset()
them as well.
|
|
Also avoid old-school function declarations without parameters (`void foo();`).
This is unnecessarily loosing type safety.
|
|
|
|
|
|
|
|
* undo token for DOT change, necessary if DOT was in EC argument range
* use read/buff_insert loop to insert new text so we don't have to tweak DOT to be able to use buff_readfd and can do pipe-specific stuff
|
|
unidirectional pipe with no arguments. with one/two arguments,
the buffer content is piped into the process and replaced with
its output.
* fixed error handling, now the child's exit status matters
if everything else is OK, as well
* colon modifier has standard behaviour of returning the command
status
|
|
|
|
this is possible since BITS_PER_INT is not used in any preprocessor
expression
|
|
* should be configurable using ./configure (disabled by default)
|