Commit 03f29eed authored by Dmitry Bogatov's avatar Dmitry Bogatov

Import Upstream version 2.70

parent 3c0f89af
......@@ -3,7 +3,7 @@ for any purpose without royalty or fees in accordance with the terms of the
copyright.
-----------------------------------------------------------------------------
Copyright (c) 2000-2004 Albrecht Kleine
Copyright (c) 2000-2006 Albrecht Kleine
All rights reserved.
You may distribute under the terms of the GNU General Public License.
......
Mon Jan 23 18:14:21 2006 Albrecht Kleine <kleine@ak.sax.de>
-e3.asm: bugfixed ^T key in empty file (WS edit mode)
-README: merged with README.UTF8
#214
-----------------------------------------------------------
Wed Jan 11 20:00:00 2006 Albrecht Kleine <kleine@ak.sax.de>
-e3.asm: various changes:
*replace variable errno with _errno
for "make statc" working again
* chganged max filesize to 1024000
* bugfix handling ascii character 127
-Makefile: removed make distinations
test, dync and dync2
-/contrib directory: removed old stuff
-/bin directory: removed BeOS, QNX and Atheos stuff
#213
------------------------------------------------------------
Sun Jan 8 20:00:00 2006 Albrecht Kleine <kleine@ak.sax.de>
e3.asm: added UTF8 switcher at cost of 90 byte.
This turns the editor from UTF-8 mode to 7 bit mode
and back. Use the special keys:
^KU in WS mode / ^QV in Pico mode / ^Y in Nedit mode
^U in Emacs mode / ESC:u in vi mode
#212
------------------------------------------------------------
Sat Jan 7 20:31:02 2006 Albrecht Kleine <kleine@ak.sax.de>
-e3.asm: improved handling of bad formated text
on UTF8 Unicode console (by complete ignoring this
characters).
Also added comments about some unused UTF8-runtime
switcher code.
#211
--------------------------------------------------------------
Wed Nov 23 17:41:00 2005 Albrecht Kleine <kleine@ak.sax.de>
-e3.asm: for error free assembling with current YASM
releases added "section .data", also in "make debug"
#210
-------------------------------------------------------------
Mon Oct 31 11:41:00 2005 Albrecht Kleine <kleine@ak.sax.de>
-e3.asm, e3.h: on NetBSD we are now using some
newer modern system calls: fstat (=279), lseek(=199)
#208,#209
--------------------------------------------------------------
Wed Oct 19 20:17:14 2005 Albrecht Kleine <kleine@ak.sax.de>
-e3.asm for NetBSD: replaced linux emulation with
native NetBSD interface
* changed push before int 80h
* added special .note.netbsd.ident (just like openbsd)
#207
***** released as v2.6.3 *****
--------------------------------------------------------------
Sun Oct 2 17:53:34 2005 Albrecht Kleine <kleine@ak.sax.de>
-e3.asm: added a "near" prefix to a jump
inside InputString (preventing jump distance overflow)
-e3.asm, e3.h, Makefile added special stuff
for running on newer NetBSD (1.6 or 2.0 )
Edit in Makefile: OS=NETBSD now possible.
(Thanks to Gabor Z. Papp for bug report.)
#206
--------------------------------------------------------------
Wed Aug 31 20:00:42 2005 Albrecht Kleine <kleine@ak.sax.de>
-e3.asm: bugfix re-introducing missing error messages
(AMD-64 version only)
Wed Aug 31 xx:xx:xx 2005 Christian Ostheimer
-e3.c: adapted to mipsel (fritz box fon)
#205 (Thanks to Christian Ostheimer !!!)
--------------------------------------------------------------
Sun Feb 27 01:04:56 2005 Albrecht Kleine <kleine@ak.sax.de>
-e3.asm added runtime checking of console status
(started this in #195). This solves some problems
running e3/UTF8 in non-UTF8-terminals like "rxvt".
[ We are trying to keep togeher the UTF-8 bytes
for 1 character also on non UTF-8 terminals. ]
#204
--------------------------------------------------------------
Sun Feb 20 10:30:02 2005 Albrecht Kleine <kleine@ak.sax.de>
-e3.asm bugfix: added forgotten line counter trigger
at four special keys (^S,^D,^A,^F).
Thanks for bug report to Pedro Gimeno Fortea !
-e3.asm: added check against empty string in filename
additional to checking arguments counter. This avoids
a problem of invoking e3 by Midnight Commander
(usually by pressing F14 in mc for editing a new file).
#203
***** released as v2.6.2 *****
--------------------------------------------------------------
Wed Jan 26 17:32:47 2005 Albrecht Kleine <kleine@ak.sax.de>
-e3.asm,e3.h: bugfixes in system calls for wait4,
execve, fstat, utime: moved data structure to 64bit
#202
------------------------------------------------------------
Mon Jan 24 21:36:38 2005 Albrecht Kleine <kleine@ak.sax.de>
-e3.asm, e3.h: changed kernel interfacing on AMD-64 code
for Linux from "int 80h" to syscall. The signal handler
is now set via "rt_sigaction" (was old "sigaction"),
because "sigaction" doesn't seem available.
Now e3-64bit can be traced with 'strace' again (no more
'strace32').
#201
-------------------------------------------------------------
Sun Jan 9 19:13:39 2005 Albrecht Kleine <kleine@ak.sax.de>
-e3.asm: repaired missing signal handler on
Linux/AMD-64 version. Thx to Andi Kleen.
#200
-------------------------------------------------------------
Mon Jan 3 18:00:48 2005 Albrecht Kleine <kleine@ak.sax.de>
-e3.asm, e3.h: continued 64 bit version, i. e.
fixed bugs in commandline reading and numerics
-e3.asm:added push ecx / pop ecx pair to save register ECX
......
......@@ -7,6 +7,7 @@ OS=LINUX
#OS=QNX
#OS=ATHEOS
#OS=W32 ** please use a separate make.bat for W9x **
#OS=NETBSD
# Set this to gzexe or upx if you want compression
# COMPRESS=gzexe
......@@ -137,28 +138,6 @@ yasm64: $(ASOURCES) Makefile
ln -sf e3 e3vi
ln -sf e3 e3ne
# selftest, linux only, assembled with a special option for using an input pipe
test:
ifeq ($(OS),LINUX)
$(NASM) -f bin -l e3.lst -o e3test e3.asm -DSELFTEST -DCRIPLED_ELF=1 -DLINUX -D$(EXMODE)
ifeq ($(COMPRESS),upx)
if which upx > /dev/null 2>&1 ; then \
upx -q -q -q -k -9 e3test ; \
fi ;
endif
ifeq ($(COMPRESS),gzexe)
if which gzexe > /dev/null 2>&1 ; then gzexe e3test; fi;
endif
if [ -f PIPE_IN ]; then rm PIPE_IN ; fi
if [ -f e3test~ ]; then rm e3test~ ; fi
chmod +x e3test
cat e3.h tests/e3test0 | ./e3test
clear
diff e3.h PIPE_IN && echo -e "\n\n\n**** THE TEST WAS SUCCESSFUL ****\n\n\n"
rm PIPE_IN e3test
endif
# next for cross asm for the ELKS people
elks:
nasm -w+orphan-labels -f as86 -o e3-16.o e3-16.asm -l e3-16.lst -D AS86 -D ELKS
......
README for mini editor e3 release 2.6.1 (aka 2.61)
README for mini editor e3 release 2.7.0 (aka 2.7)
(c) GPL 2000-05 Albrecht Kleine
(c) GPL 2000-06 Albrecht Kleine
kleine@ak.sax.de
alb.kleine@gmx.de (please use "e3" in mail subject line)
1. OVERVIEW
===========
e3 is a micro text editor with an executable code size between
......@@ -23,7 +22,7 @@ Also the user can calculate arithmetics inside the text.
e3's assembler version is available on 11 most important x86 OS,
see below for details.
Also available is an (alpha level) 32 bit native code assembler version
for StrongARM ("Advanced Risc Machine") CPUs.
for ARM CPUs in little endian mode.
There is also a GNU-C-written version for non-i386-Unix
and non-ARM-Linux platforms (e3.c) using Wordstar keybindings only.
This README doesn't further mention e3.c. (Just make it!)
......@@ -32,16 +31,16 @@ e3 is designed to be INDEPENDENT OF LIBC OR ANY OTHER library,
except on QNX and Win32.
It's been tested using the terminal console, but Xterm, Eterm,
kvt, rxvt, vt220 and vt100 should work too.
kvt, rxvt (no UTF8), vt220 and vt100 should work too.
Beginning in version 2.6.0 e3 does support UTF-8 coding of unicode
characters like this: α ( <---should be a greek alpha )
e3.asm it's been tested under several x86 32 bit OS:
* Linux kernels 2.0, 2.2, 2.4, 2.6
* FreeBSD 2.2, 3.1, 4.4, 5.0
* Linux kernels 2.x
* FreeBSD 2.x-5.0
* OpenBSD 3.4,
* NetBSD 1.51
* NetBSD 1.6,2.0
* BeOS 5PE
* Win98
* QNX RTP 6.1
......@@ -56,8 +55,8 @@ e3.s is tested under:
* ARM-linux kernel 2.4 (@zaurus PDA)
2a. BUILD on Linux/FreeBSD/BeOS/QNX/Atheos
==========================================
2a. BUILD on Linux/FreeBSD/NetBSD/BeOS/QNX/Atheos (32 bit)
==========================================================
A. For assembling of e3 you need NASM assembler.
B. If you don't like the default OS or destination (LINUX , /usr/local/ )
......@@ -89,12 +88,19 @@ F. Optional: some more editable options are on top of e3.h:
G. Take care:
If you are building your own e3 binary, be careful: some
NASM versions are producing oversized binaries, some won't
produce a e3.lst listing file: two bugs, but at all harmless.
NASM versions are producing oversized binaries.
2b. BUILD on Linux (64 bit)
===========================
A. For assembling of e3 you need YASM 0.4 assembler.
B. see 2a, except for make, this should be:
make yasm64
2b. BUILD on Win9x / ME / DOS
2c. BUILD on Win9x / ME / DOS
=============================
A. For assembling of e3 you need NASM assembler v0.98,
and ALINK (Anthony's Linker) and Win32 Import Library (win32.lib)
......@@ -112,20 +118,20 @@ C. Optional: some more editable options are on top of e3.h:
your favourite mode.
2c. BUILD on NetBSD,OpenBSD
===========================
Here are 2 Makefile for BSD-make included. See ./bin directory.
Also you need NASM. In general you don't need to change that files.
2d. BUILD on OpenBSD
====================
Here is a Makefile for BSD-make included. See ./bin directory.
Also you need NASM. In general you don't need to change that file.
2d. BUILD for ELKS
2e. BUILD for ELKS
==================
This is done usual on 32 bit x86 Linux systems either
by typing "make elks" or changing to elks/ and typing "make".
You need to have installed the ld86 linker (part of dev86 suite).
2e. BUILD for ARM Linux
2f. BUILD for ARM Linux
=======================
Simply type "make armlinux" on your x86 box.
You will need the ARM linux toolchain, at least
......@@ -141,27 +147,11 @@ Or adjust 'Makefile' and build e3arm on the destination ARM box.
3. RELEASE NOTES
================
Only changed Linux/ASM-version:
* First step: introduced building with YASM assembler,
see http://www.tortall.net/projects/yasm
So added new make destination: "make yasm"
* Second step: introduced building a 64-bit version
of e3 for Linux/AMD-64.
The program file says:
"e3_64: ELF 64-bit LSB executable, AMD x86-64,
version 1 (SYSV), statically linked, stripped"
* Both steps are using the sed stream editor.
Thus now we are using 2 converter scripts:
nasm to yasm: e3_nasm_yasm.sed
yasm to 64bit: e3_yasm_yasm64.sed
* Also fixed a bug first occurs running e3 under 2.6.8 kernels
during the Wait4 system call.
(This crashed sed filtering, e.g. by ^KP in WS mode.)
* some bugfixes
* AMD 64 bit version: yasm 0.4 can used again
* added runtime switching of UTF-8 edit mode,
see UTF8 section below.
* enhanced max filesize
......@@ -221,11 +211,14 @@ Some more examples:
1+1*2*3*4*5*6*7*8*9*10=3628801
7.627891*2.643189=20.161958
10000000000/8=1250000000
Some problems:
100000000000+1.00001=99999997953.00001 <--loss of precision!
8/0= <--not possible. You know.
(e3 says "beep")
100000000*100000000= <--overflow
Some specials:
Two specials:
12*p=37.699112 <--p is PI 3.14.....
r+20=57.699112 <--r is result of last calculation
......@@ -306,7 +299,51 @@ do NOT expect very high precision.
7. FILES
7. Notes on UTF-8 for the Linux/ASM-version
============================================
* By default now e3 does does support UTF-8 coding of unicode
characters like this: α (should be a greek alpha).
* You could disable UTF-8 support in e3 by editing e3.h at line 16:
from
%define UTF8
to
;;; %define UTF8
and run 'make' again.
* Running e3_with_disabled_UTF-support at a UTF-8 console
you will see two points .. for UTF-8 characters e.g. the greek alpha.
* If your terminal does _not_ support UTF-8 it is strongly
recommended to _disable_ UTF8-support in e3.h,
because output of some characters could be scrambled.
* e3 will _not_ convert your files from/to UTF-8 coding.
It does simply _use_ your terminal encodings.
* UTF-8 characters like © (c) will look very false on non-UTF-8 terminals,
but e3 can't help here. (So at first use a file converter.)
* If you simply call e3 without file argument the initial screen of e3
will tell you whether UTF8-support is built in:
MicroEditor e3 v2.7.0-UTF8 ©2000-06
vs.
MicroEditor e3 v2.7.0 (C)2000-06
* If it is a version with UTF8 and you are running
e3 in an UTF8 terminal, you can switch the editor
from UTF-8 mode to 7 bit mode and back.
Use the special keys:
^KU in WS mode
^QV in Pico mode
^Y in Nedit mode
^U in Emacs mode
ESC:u in vi mode
8. FILES
========
Makefile - (edit destination path and OS if desired)
e3.asm
......@@ -318,24 +355,21 @@ README - you are reading this
ChangeLog - version history
COPYING.GPL
COPYRIGHT - please read before using e3!
test/* - partial test suite
e3c/* - C stuff for non x86 systems, e.g. Alpha
contrib/* - useful things, e.g. e3.spec (== spec for building RPMs)
doswin9x/* - specials for DOS, Win9x and its derivates
elks/* - specials for ELKS
binaries/* - binaries separated for operating systems
armlinux/* - specials for Linux @ ARM RISC CPU
*.sed - special stuff for using YASM assembler
8. THANKS
9. THANKS
=========
Konstantin Boldyshev <konst at voshod.com>
Mark Zealey <mark at itsolve.co.uk>
Urs Rau <urs.rau at uk.om.org>
Terry Loveall <loveall at qwest.net>
David Douthitt <n9ubh at callsign.net>
Björn De Meyer <bjorn.demeyer at pandora.be>
Bjoern De Meyer <bjorn.demeyer at pandora.be>
Matthias Kopfermann <kopfermann at trio-hittfeld.de>
Tim Wegner <twegner at swbell.net>
Michele Andreoli <m.andreoli at tin.it>
......@@ -346,10 +380,10 @@ Philippe Corbes <philippe.corbes at laposte.net>
Charles Steinkuehler <charles at steinkuehler.net>
Adrian Bunk <bunk at fs.tum.de>
Joseph <joseph at randomnetworks.com>
Andi Kleen (at suse)
9. TM note
==========
10. TM note
===========
Some names are trademarks of their owners:
Linux BSD BeOS QNX Unix WordStar Unox DOS Win Alpha BSE Atheos ELKS ARM BEIN .. etc.
Some notes on UTF-8 for the Linux/ASM-version:
1.
By default now e3 does does support UTF-8 coding of unicode
characters like this: α (should be a greek alpha).
2.
You could disable UTF-8 support in e3 by editing e3.h at line 16:
from
%define UTF8 ;for UTF8 console or xterm e.g. @ Suse 9.1
to
;;; %define UTF8 ;for UTF8 console or xterm e.g. @ Suse 9.1
and run 'make' again.
3.
Running e3_with_disabled_UTF-support at a UTF-8 console
you will see two points .. for UTF-8 characters e.g. the greek alpha.
4.
If you terminal does _not_ support UTF-8 it is strongly
recommended to _disable_ UTF8-support in e3.h,
because output of some characters could be scrambled.
5.
e3 will _not_ convert your files from/to UTF-8 coding.
It does simply _use_ your terminal encodings.
UTF-8 characters like © (c) will look very false on non-UTF-8 terminals,
but e3 can't help here. (So at first use a file converter.)
6.
If you simply call e3 without file argument the initial screen of e3
will tell you whether UTF8-support is built in:
MicroEditor e3 v2.6.0-UTF8 GPL © 2000-04
vs.
MicroEditor e3 v2.6.0 GPL (C) 2000-04
BTW a runtime detection of UTF-8 console is planned, but not yet ready to use.
Enjoy!
Albrecht,
Jun/29/2004
This diff is collapsed.
......@@ -8,4 +8,8 @@ machine generated from e3.asm by my translator tool,
look on the freshmeat forum for package "cattt".
e3*.ipk is a ready-for-install package for the Z palmtop.
e3*.ipk is a ready-for-install package for the Zaurus palmtop.
CONSIDER: this e3 is for ARM CPUs running in
little endian mode only.
\ No newline at end of file
No preview for this file type
Keyboard problems:
* Home, End are not sending ESC sequences, but ASCII chars ^A,^F,
(maybe good for Emacs mode, but bad for WStar)
* using a German kbd map ^Z is at Ctrl+Y and NOT at Ctrl+Z,
I consider that as atheos bugs, not e3's bugs.
\ No newline at end of file
#!/bin/sh
clear
cat <<MSG
Dear e3/Atheos user,
due less of feedback e3/Atheos binaries are no more shipped.
Please build it yourself by running make. Sorry for inconvenience.
Albrecht Kleine
Sat Mar 16 17:06:04 MET 2002
MSG
\ No newline at end of file
e3
\ No newline at end of file
e3
\ No newline at end of file
e3
\ No newline at end of file
e3
\ No newline at end of file
e3
\ No newline at end of file
#!/bin/sh
clear
cat <<MSG
Dear e3/BeOS user,
due less of feedback e3/BeOS binaries are no more shipped.
Please build it yourself by running make. Sorry for inconvenience.
Albrecht Kleine
Sat Mar 16 17:06:04 MET 2002
MSG
\ No newline at end of file
e3
\ No newline at end of file
e3
\ No newline at end of file
e3
\ No newline at end of file
e3
\ No newline at end of file
e3
\ No newline at end of file
e3.exe contains 2 executables in one file,
one for DOS (the 'stub') and one for Win9x
e3.exe contains 2 (two!)
executables in 1 (one!) file,
one for DOS (the 'stub') and one for Win9x.
Also included the 'stub' itself: e3-16.com,
useful for some space limited DOS rescue disks.
No preview for this file type
No preview for this file type
Compresed binaries are no more included.
e3 is for UTF-8 consoles
e3_noUTF8 for 'classical' consoles running 'iso-8859-x' etc-
\ No newline at end of file
No preview for this file type
No preview for this file type
# Makefile for NetBSD
# (does not use GNU make extensions)
#
# On NetBSD we use some kind of Linux emulation mode
# (so you can use Linux settings completely)
# See some output from ktrace:
# 382 ktrace EMUL "netbsd"
# 382 ktrace RET ktrace 0
# 382 ktrace CALL execve(0xbfbfdd77,0xbfbfdd00,0xbfbfdd0c)
# 382 ktrace NAMI "./e3"
# 382 e3 EMUL "linux"
# .........
#
# 1. edit you OS if you want....
OS=LINUX # okay for NetBSD
#OS=BEOS
#OS=FREEBSD
#OS=OPENBSD
#OS=QNX
#OS=W32 ** please use a separate make.bat for W9x **
# 2. edit dest dir prefix if you want....
PREFIX='/usr/local'
# 3. for vi friends only (else leave as is):
# choice between '/bin/ex' or default '/bin/sed'
EXMODE=SED
#EXMODE=EX
BINDIR='$(PREFIX)/bin'
MANSEC='1'
MANDIR='$(PREFIX)/man/man$(MANSEC)'
#______________________do not edit below line________________________
ASOURCES=e3.asm
AFLAGS = -w+orphan-labels -f elf
all: $(ASOURCES) Makefile
nasm $(AFLAGS) -o e3.o $(ASOURCES) -l e3.lst -D$(OS) -D$(EXMODE)
ld -s -o e3 e3.o
strip --remove-section .comment e3
ln -sf e3 e3ws
ln -sf e3 e3em
ln -sf e3 e3pi
ln -sf e3 e3vi
ln -sf e3 e3ne
install: e3
install -d $(PREFIX) $(BINDIR) $(MANDIR)
install -m 755 e3 $(BINDIR)
ln -sf $(BINDIR)/e3 $(BINDIR)/e3ws
ln -sf $(BINDIR)/e3 $(BINDIR)/e3em
ln -sf $(BINDIR)/e3 $(BINDIR)/e3pi
ln -sf $(BINDIR)/e3 $(BINDIR)/e3vi
ln -sf $(BINDIR)/e3 $(BINDIR)/e3ne
install -m 644 e3.man $(MANDIR)/e3.$(MANSEC)
clean:
rm -f e3*.o e3*.lst e3 e3em e3pi e3vi e3ws e3ne
This release does NOT carry binaries for
NetBSD. Please build your own
using the included Makefiles. You don't
need GNU-make, so BSD-make will do the job.
No preview for this file type
Currently I do not have a OpenBSD system available.
So there is no binary included. Sorry.
File added
#!/bin/sh
clear
cat <<MSG
Dear e3/QNX user,
due less of feedback e3/QNX binaries are no more shipped.
Please build it yourself by running make. Sorry for inconvenience.
Albrecht Kleine
Sat Mar 16 17:06:04 MET 2002
MSG
\ No newline at end of file
e3
\ No newline at end of file
e3
\ No newline at end of file
e3
\ No newline at end of file
e3
\ No newline at end of file
e3
\ No newline at end of file
No preview for this file type
If you have problems running one of the primary self compressors
"gzexe" or "upx" you should give a try to the combination of
tinlink linker and 624 selfcompressor utility tools.
Both are easy to find on the net (via freshmeat.net),
but available only for Linux.
Here's how that e3 can be built:
------------------------------------------------
#!/bin/sh
nasm -f bin -o e3 e3.asm -DLINUX -DSED -DTINLINK
./tinlink -c e3 -m 10000000 -o e3.tin
./624 -s e3.tin e3
chmod +x e3
------------------------------------------------
#!/bin/sh
# (c) 2000 GPL David Douthitt <ddouthitt@mennonite.minister.net>
# a wrapper for editing a sequence of files.....
# ....define your favourite edit mode in E3EMU (or use default)
# Thanks to David! -- Sat Nov 11 2000 a.k.
E3_DEFAULT=e3vi # hey, I LIKE vi, alright? :-)
case $E3EMU in
ws|wordstar) E3=e3ws ;;
vi) E3=e3vi ;;
em|emacs) E3=e3em ;;
pi|pico) E3=e3pi ;;
"") E3=$E3_DEFAULT ;;
*) echo "e3: improper emulation! ($E3EMU)"; exit 1;;
esac
for file in "$@"; do
$E3 $file
done
#!/bin/bash
#
# Date: Wed, 16 May 2001 15:11:08 +0200
#
# I made this script from the original ewrapper.sh for a linux-on-a-floppy
# project i'm playing with.
# The main difference to the original is that you don't have all this e3xx
# links laying around and that you can call things with their real names
# (that's user friendly).
# "pico" is a demo for any other filename below. Copy to "emacs" etc. if you want,
# or create some links to this script.
# (c) 2001 Tito <farmatito@tiscalinet.it>
#
#
E3_PATH=/usr/local/bin
case $0 in
*ws|*wordstar)
E3=e3ws
;;
*vi)
E3=e3vi
;;
*em|*emacs)
E3=e3em
;;
*pi|*pico)
E3=e3pi
;;
*ne|*nedit)
E3=e3ne
;;
*)
echo "e3: improper emulation! ($0).Use emacs,wordstar,vi,pico,nedit"
;;
esac
if [ $@ = ] 2>/dev/null
then
ln -s $E3_PATH/e3 $E3_PATH/$E3
$E3_PATH/$E3
rm -f $E3_PATH/$E3
else
for file in $@
do
ln -s $E3_PATH/e3 $E3_PATH/$E3
$E3_PATH/$E3 $file
rm -f $E3_PATH/$E3
done
fi