+---------------+
| uemacs editor |
+---------------+
uemacs is a full screen editor based on uEmacs/PK 4.0. This particular
version is intended to run on current Linux systems as well as on BSD
variants and therefore cleans up legacy code from the old MSDOS and
friends era. Furthermore, this version got permission by aquest/Greg
Mowczko to be released under the terms of GPL, version 2.
The public GIT repository of this fork is available at:
http://repo.or.cz/w/uemacs.git
For questions or patches you are welcome to write an email to:
Daniel Borkmann <borkmann@gnumaniacs.org>
Have a look at the INSTALL file for setup instructions and at the
HACKING file for uemacs code hacking. Have fun!
Old READMEs:
+---------------+
| uEmacs/PK 4.0 |
+---------------+
Full screen editor based on MicroEMACS 3.9e
MicroEMACS was written by Dave G. Conroy and
greatly modified by Daniel M. Lawrence
Copyright Notices:
MicroEMACS 3.9 (c) Copyright 1987 Daniel M. Lawrence.
Reference Manual Copyright 1987 by Brian Straight and
Daniel M. Lawrence. No copyright claimed for modifications
made by Petri H. Kutvonen.
Original statement of copying policy:
MicroEMACS 3.9 can be copied and distributed freely for any
non-commercial purposes. MicroEMACS 3.9 can only be incorporated
into commercial software with the permission of the current author
[Daniel M. Lawrence].
WHAT IS uEmacs/PK?
uEmacs/PK 4.0 is an enhanced version of MicroEMACS 3.9e. Enhancements
have been incorporated by Petri H. Kutvonen, University of Helsinki,
Finland <kutvonen@cs.Helsinki.FI>.
WHY IS IT BASED ON AN OLD VERSION OF MicroEMACS?
In my opinion 3.9e was the best of all MicroEMACSes. Creeping
featurism, growing size, and reduced portability made versions 3.10 and
3.11 less attractive. MicroEMACS 3.9e was one of the few editors that
were truly portable between different flavours of UNIX, PC/MS-DOS, and
VAX/VMS. It was pretty robust - although not flawless. uEmacs/PK 4.0
includes numerous bug fixes, adds some new functionality and comfort but
does not sacrifice the best things (small size and portability).
WHAT IS NEW - COMPARED TO MicroEMACS 3.9e?
Enhachements:
o advisory file locking on BSD-derived systems
o new screen update algorithm, borrowed largely form "vile" by
Paul G. Fox <pgf@cayman.com>, uEmacs can now be used on slow (1200 bps)
connections because it uses terminal scrolling capabilities
o new variables $scroll, $jump, and $overlap to control scrolling
o uEmacs reacts to windows size change signals (UNIX), also from "vile"
o automatic file name completion, works under UNIX and PC/MS-DOS
o functions keys on VT200 style keyboards can be used
o new command: justify-paragraph (Meta J)
o something important for us Europeans: allow the use of 8 bit ISO Latin 1
alphabet (UNIX and VMS), on an IBM-PC the accented characters are
interpreted as letters too
o the characters {|}[\] can be interpreted as letters, these are
frequently used as "national replacement characters" especially in
the Nordic countries
o allow use of XON/XOFF flow control: alternative key sequences for
^S and ^Q, don't disable flow control
o speed up reading of files (under VMS especially)
o new variable $tab, hardware tab stop (4 or 8)
o automatic configuration on some common systems
o new style mode line, includes percentage indicator
o new help file
Bug fixes - not very interesting:
o use TI and TE termcap strings, uEmacs works now correctly under
Sunview and OpenWindows
o use old protection mask on existing files (VMS)
o catch data overrun errors (VMS)
o allow VMS file names with characters < and >, replacements for [ and ]
o allow ANSI screens larger than 24 lines
o fix add/delete(-global)-mode
o display EOF as char = 0x0, not as garbage
o allow upper case letters in answers
o fix command interpreter spawning
o don't use reverse video on some (TVI925 style) terminals
o fix message line writing
o fix replace/undo
o fix &left and &mid functions
o fix documentation
o smaller bug fixes are too numerous to mention
Something is gone:
o removed (obsolete and untested) support for Amiga, Atari, and Mac
WHERE HAS IT BEEN TESTED?
uEmacs/PK 4.0 has been tested by myself on the following platforms:
IBM PC and compatibles, PC/MS-DOS 3.2 and up
Sun 3, SunOS 4.1.1
SPARC, SunOS 4.1.X and 5.{2|3|4|5} (Solaris 2)
VAX 8800 and 6000-420, VMS 5.4
DECstation 3100, Ultrix V4.1
IBM RS/6000, AIX 3.1.5
IBM PS/2, UNIX System V/386 Release 3.2
uVAX II, Ultrix V2.0
AT&T 3B2/400, UNIX System V Release 2.0
Various Toshiba i486 laptops, Linux 0.99pl13 thru 2.0.21
I have no reason to believe that there would be any problems to port
uEmacs/PK 4.0 to any reasonable BSD-, OSF/1-, or SVR4-based UNIX system.
HOW CAN I GET IT?
uEmacs/PK is available by anonymous FTP from ftp.cs.Helsinki.FI (IP
address can change) in the directory pub/Software/Local/uEmacs-PK. You
cannot get it by email of uucp. Hopefully it will bee soon available
from other file servers too.
WHAT IS IN THE PACKAGE
o em-4.0.<x>.tar.gz: full source, make and command files to build the
editor, reference manual as a MS-Write document,
tarred and gzipped, for patchlevel <x>
o there used to be a packages with binaries for PC/MS-DOS,
SPARC/SunOS4, Sun 3, MIPS/Ultrix, 386/ix, IBM RS/6000, VAX/VMS,
if you are really desperate you can try contacting me for an old
version of these
HOW TO INSTALL uEmacs/PK?
o PC/MS-DOS: Compile the package with using Turbo C 2.0 or MSC 6.0.
(Pretty obsolete both of these.) There are some support files
you might find useful in the full distribution.
o UNIX: Copy makefile.unx to makefile, edit to taste, look at estruct.h,
do a 'make', test the editor, 'make install'.
o VMS: To compile use '@VMSMAKE', install manually, uEmacs/PK uses a
logical name EMACS_DIR to locate its initialization files.
CONTACT INFORMATION
There will probably not be many new versions of uEmacs/PK, maybe just
some bug fixes. I have no intention to develope the code any further.
However, if you have some comments or good suggestions, you may find
the email address below useful.
Petri H. Kutvonen
Department of Computer Science
P.O.Box 26 (Teollisuuskatu 23)
FIN-00014 UNIVERSTITY OF HELSINKI
Finland
email: kutvonen@cs.Helsinki.FI
fax: +358 9 70844441
ACKNOWLEDGEMENTS AND STATUS
I would like to thank Linus Torvalds and Jyrki Havia for their work on
some bugs. uEmacs/PK 4.0.10 included fixes for a number of bugs and it
was assumed to be the final release for the UNIX platform. However,
there has been a couple of maintenance releases, so the final version is
4.0.13. On other platforms there has been no new releases since 4.0.3 in
1991.
April 23, 1995
And yet another release (thanks Linus)! This is most definitely the
really last (not latest) version, 4.0.14. Hmm ... 14 looks nicer than 13.
May 2, 1996
Still one more release - or actually a small patch - which closes a
potential security hole. Now we are at 4.0.15. This IS the FINAL release!
September 25, 1996
MicroEMACS 3.9 Release Notes July 22, 1987
**********************************************************************
(C)opyright 1987 by Daniel M. Lawrence
MicroEMACS 3.9 can be copied and distributed freely for any
non-commercial purposes. MicroEMACS 3.9 can only be incorporated
into commercial software with the permission of the current author.
**********************************************************************
MicroEMACS 3.9 is availible in a couple of different ways.
First, it is availible via my bulletin board system.....
The Programmer's Room
FIDO 201/2
(317) 742-5533
24 hours 300/1200 baud
Also it should be online on the following BBS's:
The Starship Trooper Fido 201/1 (317) 423-2281 2400
[These following two are open from 10pm till 5pm
and only while Purdue is in session]
The NightStaff Fido 201/4 (317) 495-4270 1200
The Access Violation Fido 201/5 (317) 495-4270 9600
There it is arranged as three MSDOS .ARC files, EMACSDOC.ARC
which contains the documentation and command files, EMACSSRC.ARC which
contains the sources and the UNIX Makefile, and EMACSEXE.EXE which
contains the MSDOS executables. Also all the various executables are
available individually.
EMACSDOC.ARC includes the files:
README This file
(These four files should be in your path for the standard setup)
EMACS.RC Standard startup file
NEWPAGE.CMD Shifted Function key Pager
PPAGE.CMD Programming page
WPAGE.CMD Word processing page
BPAGE.CMD Block and box manipulation page
ME110.RC HP110 startup file
ME150.RC HP150 startup file
AMIGA.RC AMIGA ".emacsrc" startup file
ST520.RC ATARI ST startup file
EMACS.HLP Online help file
EMACS.MSS MicroSCRIBE format of EMACS.TXT
EMACS.TXT EMACS BEGINNER'S/REFERENCE MANUAL
AZMAP.CMD Translate AZTEC .SYM files to .MAP
BDATA.CMD BASIC Data statement builder
FINDCOM.CMD Find mismatched C comments
FUNC.CMD Allow function keys on systems with non (like UNIX)
MENU.CMD Sample Menu system
MENU1 datafile for menu system
SHELL.CMD Sample interactive MSDOS shell
TRAND.CMD Generate random numbers and do statistics on them
EMACSSRC.ARC includes the files:
ALINE.H Atari ST graphic header file
ANSI.C ANSI screen driver
BASIC.C basic cursor movement
BIND.C key binding commands
BUFFER.C buffer manipulation commands
CRYPT.C encryption functions
DOLOCK file locking stub routines
DG10.C Data General 10 screen driver
DISPLAY.C main display driver
EBIND.H binding list
EDEF.H global variable declarations
EFUNC.H function name list
EPATH.H default path settings
ESTRUCT.H configuration and structure definitions
EVAL.C expression evaluator
EVAR.H EMACS macro variable declarations
EXEC.C macro execution functions
FILE.C user file functions
FILEIO.C low level file I/O driver
HP110.C HP110 screen driver
HP150.C HP150(A or C) screen driver
IBMPC.C IBM-PC CGA and MONOCHROME driver
INPUT.C low level user input driver
ISEARCH.C incremental search functions
LINE.C text line manipulation functions
LOCK.C file locking functions
MAIN.C argument parsing and command loop
RANDOM.C other random user functions
REGION.C region cut & paste functions
SEARCH.C search and replace functions
SPAWN.C OS interface driver
ST520.C ATARI ST1040 screen driver
TCAP.C Termcap screen driver
TERMIO.C low level I/O driver
TIPC.C TI-PC screen driver
VMSVT.C VMS screen driver
VT52.C VT52 screen driver
WINDOW.C window manipulation functions
WORD.C word manipulation functions
Z309.C Zenith 100 PC series terminal driver
EMACSEXE.ARC includes the files:
MEIBM.EXE IBM-PC CGA/MONO/EGA version
MEANSI.EXE MSDOS ANSI graphics version
ME110.EXE HP110 portable version
ME150.EXE HP150 version
ME309.EXE Zenith 100 PC series version
ME520.PRG Atari 520/1040ST version
MEAMIGA. Amiga 1000 version
Recently, MicroSPELL 1.0 has been released. This program allows
you to spell check text files and uses MicroEMACS to scan the file,
doing various corrections.
MicroSCRIBE, a fairly SCRIBE compatible text formatter to go
along with these programs will probably be available for beta testing
early spring 1988. This program is turning out to be a lot more complex
than I thought it would be, and is taking more time to get out.
I have in my possesion a port of MicroEMACS 3.8i to the
Macintosh, and I will be incorporating the needed changes for the current
version to support the Macintosh.
As before, I will continue to support these programs, and
encourage everyone to spread them around as much as they can. If you
make what you think are changes that are useful to many, send me the
updates, and as time permits, I will incorporate the ones I understand,
and agree with into the master sources.
MicroEMACS is available on disk directly from my by sending me
$25 per order and a note specifying the disk format and the product that
you need. I can fill orders for IBM-PC high/low density 5 1/4 and 3
1/5, ATARI ST single and double density, AMIGA disks and HP150 disks.
(You do not need to send disks or mailers, I will provide these.) The
distribution set includes on disk all docs, executables and sources.
Also I will register you and you will receive automatic notices of new
versions of all the programs I am releasing.
Commercial lisences to allow MicroEMACS to be incorporated into
other software packages are also available at a reasonable per package
price. Also I am available to do customization of MicroEMACS at an
hourly rate. Send all requests to the address below:
USmail: Daniel Lawrence
617 New York St
Lafayette, IN 47901
UUCP: pur-ee!j.cc.purdue.edu!nwd
ARPA: nwd@j.cc.purdue.edu
FIDO: The Programmer's Room 201/2
(317) 742-5533
ATT: (317) 742-5153
New Features since version 3.8i
===============================
** New standard startup file
The new emacs.rc file is segmented into more parts and loads much
faster than before. Separate "pages" of shifted function keys are
available. Users can write their own "pages".
*** New Variables (there are a lot...)
$status returns status of last command
$palette color palette settings
$lastkey returns last keystroke
$curchar returns and set the ascii number of the
character under the point
$progname always returns "MicroEMACS"
$version always returns the current version ("3.9")
$discmd sets display of messages on the command
line (except via the write-message command)
$disinp sets echoing of characters during input on the
command line
$wline returns and sets # lines in current window
$cwline returns and set current line within window
$target returns/sets target for line moves
$search returns/sets default search string
$replace returns/sets default replace string
$match returns last matched string in magic search
$cmode returns/sets encoded mode of current buffer
$gmode returns/sets encoded global mode (see appendix E
in emacs.mss to decode this)
$tpause returns/sets the pause for fence matching
(this is in rather arbitrary units which
WILL vary from machine to machine)
$line return/sets the contents of the current line
$gflags global operations flag (see emacs.txt Appendix G)
$rval child process return value
*** New computers supported
Atari 1040ST all three graphics modes and 50 line mode on a
monochrome monitor. The mouse is bound to the
cursor keys for now.
*** New Compilers supported
Turbo C v1.0 under MSDOS is now a supported compiler.
Mark Williams C on the Atari ST is also supported.
** New directives
!while <condition> loops while <cond> is true
!break breaks out of the innermost !while
!endwhile delimits the end of a !while loop
All !gotos are legal into and out of a !while loop.
*** Autosave mode
This mode saves the file out to disk every time 256 have been
inserted. $asave controls the # of characters between saves, $acount
controls the # of chars to the next save.
*** New functions
&and <log> <log> Logical AND
&or <log> <log> Logical OR
&len <str> returns length of <str>
&lower <str> lowercase <str>
&upper <str> uppercase <str>
&rnd <int> generate a random integer between 1 and <int>
&sindex <str1> <str2> search for string 2 within string 1
returning its position, or zero if it fails
&env <str> return value of DOS environment
variable <str>
&bind <str> returns the function name bound to the
key <str>
&exist <str> Does file <str> exist?
&find <str> find file <str> along the PATH
&band <num> <num> bitwise and
&bor <num> <num> bitwise or
&bxor <num> <num> bitwise xor
&bnot <num> bitwise not
&xlate <str1> <str2> <str3>
scan <str1> replacing characters in
<str2> with the coresponding characters
in <str3>
*** Advanced word processing commands
^X^T trim-line trim all trailing whitespace
^X^E entab-line change all multiple char runs to tabs
^X^D detab-line change all tabs to multiple spaces
*** Merged EGA driver
The EGA driver is now part of the IBM-PC driver. This driver now
supports MONO, CGA and EGA cards/modes. (settable by using the $sres
variable)
*** 8 bit characters fully supported
Eight bit characters (including foreign language and line
drawing characters) are now supported on the various micro environments)
*** List Buffers expanded
Given a numeric argument, ^X^B (list-buffers) will now also list
all the hidden internal buffers.
*** -k switch enhanced
If you use the -k (encrypted file) switch on the command line
without a key immediatly following it, it will prompt you for the key to
use to decrypt with.
*** word delete enhanced
with a zero (0) argument, M-D (delete-next-word) deletes the
next word and not any intervening whitespace or special characters.
*** New File read hook
Whenever MicroEMACS reads a file from disk, right before it is
read, whatever function is bound to M-FNR (which is an illegal
keystroke) will execute. By default this would be (nop), but the
standard emacs.rc binds this to a file that examines the file name and
places the buffer int CMODE if the extension ends in a .c or .h. You can
of course redefine this macro to taste.
*** Search Path modified
The order in which emacs looks for all .rc (startup) and
.cmd (command macros) is as follows:
$HOME (the HOME environment variable if it exists)
the current directory
$PATH (executable PATH)
default list contained in epath.h
*** Line length limits removed
Lines of arbitrary length may be read, edited, and written.
*** Out of memory handling improved
EMACS will announce "OUT OF MEMORY" when it runs out of dynamic
memory while reading files or inserting new text. It should then be
safe to save buffers out IF THE CONTENTS OF THE BUFFER ARE COMPLETE at
that time. When a buffer has been truncated while reading, a pound sign
"#" will appear in the first position of the mode line. Also a # will
appear in a buffer listing. If you attempt to save a truncated buffer,
EMACS will ask if you are certain before allowing the truncated file to
be written. As before, still beware of killing blocks of text after you
have run out of memory.
*** DENSE mode on the Atari ST
On an Atari ST monochrome monitor, setting $sres to "DENSE" will
result in a 50 line display.
*** Execute command
Execute-program (^X-$) will execute an external program without
calling up an intervening shell is possible.
*** Better close braces in CMODE
The name says it all, try it.