home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 5 Edit
/
05-Edit.zip
/
me34src.zip
/
me3
/
README
< prev
next >
Wrap
Text File
|
1995-01-14
|
11KB
|
277 lines
-*-text-*-
The is the README for ME3. It contains source for:
ME3 (the Mutt Editor v3.4)
MC2 (the Mutt Compiler v2.6)
a Compute Server (v1.0)
various libraries
Mutt extensions to ME3 (v1.4)
Released:
3.4: May 1994 X11 R5 support, Borland C Makefiles.
3.0: June 1993
2.6: January 30, 1993 (more GNU compatible, tweaks and some bug fixes)
2.5: August 30, 1992 (Many extensions now compiled into the editor)
2.4: August 9, 1992 (regular expression bug fixes, a PC screen width
bug fix)
2.3 May 10, 1992 (Atari port, minor enhancements)
2.2: April 12, 1992 (MS-DOS and OS2 ports, bug fixes)
2.0: February 29, 1992 (beta)
This release is targeted at Unix, MS-DOS and Atari. I've tried to write
the code as portablly as possible (in C and ANSI C) so hopefully it
should be "easy" to port to other platforms (that support C).
This stuff is released as GNU Ware - use, share and enjoy.
What is ME3?
---- -- ----
ME3 is a small, portable, extendable [GNU] Emacs' like editor that is
known to compile and run on HP-UX (Series 800, 700 and 300), Sun (BSD
and SysV), BSD Unix (Apollo, DEC, etc), IBM AIX, OSF/POSIX (HP and DEC),
MS-DOS/PC-DOS (IBM PCs and compatibles) and Atari (TOS and MiNT).
"Pure" SysV Unix is not supported. ME3 is very customizable via a
compiled language (provided) with lots of example programs: a C mode,
paren matching, a visual towers of hanoi, incremental searching,
programmers calculator, mark rings, multi file search (and replace),
picture mode (from GNU Emacs), gomoku (from GNU Emacs) and lots more.
Other features include 8 bit character support and the (Unix only)
ability to have concurrent processes (such as make) running in a buffer.
How to Compile ME
--- -- ------- --
Compiling
---------
Type "make" and follow the directions for HP-UX, Apollo Domain/OS, IBM
AIX, SysV Suns and BSD Suns and MS-DOS (Borland C++).
MS-DOS and Borland C++ using Borland's make: make -f makefile.bc
Until I get a configure program figured out, you may need to edit a few
configuration files:
Edit util/os.h so it matches your OS. You DON'T need to do this if
you are on HP-UX, IBM AIX, Apollo Domain/OS or Borland C++ (MS-DOS).
Edit me/Makefile so that it matches your OS and config.h.
You don't need to change this for most Unix's.
For X11, change TERMINAL, TERMLIB, X11_includes, IO and KEYMAP
Edit me/config.h so that it matches what you want ME to support.
You shouldn't need to do this - it self configures. But it might be
interesting.
Edit ./Makefile.
To set the compiler, options and where to install things.
Type "make" in this directory and it will compile all the
subdirectories.
Notes:
I've run the Makefiles (and tested the results) on:
HP-UX 9.0 series 700 (Ansi C "-Aa -O" and "-O")
HP-UX 8.0 series 300, 800 (K&R "-O" and Ansi C "-Aa -O")
HP-UX 7.05 series 300 (K&R "-O")
HP-UX 7.0 series 800 (K&R "-O" and Ansi C "-Aa -O")
HP OSF/1 1.0 Operating System A.01.00 ("" - DON'T use -O)
Apollo 68k SR10.4 BSD (psudeo Ansi C "-O" and Ansi C "-O -Aansi").
The compiles will complain (lots) about varargs and select. You
can ignore these. I'm pretty sure the varargs complaints are
groundless (ie I've run it a long time without problems). If
you get tired of the messages, you can put "-U__STDC__" in the
compile flags.
Sun SparcStation 2, SunOS Release 4.1.1 ("-O"), set BSD_OS (os.h).
Sun SparcStation 10, SunOS Release 5.2. ("-O" or "-O -Xa"). Set
SYSV_OS to 1 (util/os.h) and in ./Makefile set "LDFLAGS =
-lsocket" and "RANLIB = echo".
Sun Solaris 5.3: same as 5.2.
IBM RS/6000, PowerStation 320H:
AIX 3.2 ("-O" or ANSI C "CC=c89"). Everything is configured,
just run make. You might want to change TERMLIB to -lcurses
(me/Makefile) to use the terminfo database instead of
/etc/termcap - terminfo is more complete.
AIX Version 3.1 ("-O"). Set TERMLIB to -lcurses (me/Makefile).
DEC 3100 OSF/1 ("-O"). Not much testing done.
DECstation 5000/200 Ultrix V4.2 ("-O"). You may need to set
FOPEN_BINARY (me/config.h). On this version of Ultrix, "rb" is
OK.
They should run on other Unix boxes but I can't test everything.
Let me know if you find problems.
Unixes that kinda work:
UNIX_System_V 4.1.0 V4ES i386 x86at (a 486 running a SYS V unix).
To get this to compile:
- change the #includes of time.h to sys/time.h (./me/process.c,
./me/unixio.c, ./comserver/comserver.c).
- in comserver/compile and me/compile, add "-lsocket -lnsl" to
the cc line so the socket code will link.
- or just turn off the compute server (in me/config.h) and
don't worry about the socket code. See why below.
Problem areas:
- getcwd() (called from util/canonize.c) gets an access error.
Maybe its the way my system is set up. To get around this,
you have to run me setuid root. Not a very good idea.
- Some of the termcaps don't seem right. Use a "xterm" TERM var
for xterms, "vt100" doesn't work.
- The compute server doesn't work very well with SYS V signals -
ME will get a signal (from the compute server) while signals
turned off and dump (not a problem with BSD like signals).
Maybe linking in /usr/ucblib/libucb.a would work (BSD
signals). Nope - seemed to fix the signal problem but broke
the LED lib and filename completion. I really shouldn't use
signals for interprocess communication.
Unixes not supported:
Apollo SysV (probably any "real" Sys V Unix)
Sockets are not supported so you need to turn off the compute
server (in config.h) and don't compile the comserver directory.
unixio.c has compile problems:
Change #include <time.h> to <sys/time.h> (why?).
termio.h doesn't seem to be supported so try USE_BSDIO.
select() needs to be updated to use the "new" structures. I
would do this but its yet another #ifdef and I'm getting tired
of them.
Other than that, the other directories seem to compile and work.
Your best bet is just to compile under BSD.
If you fix this stuff, send the the changes so I can add them to
my copies.
MS-DOS:
John Burnell has ported ME to PC-DOS:
Compiler: JPI Topspeed C ("__TSC__").
ME:
Use the large memory model (1 meg code and data). Remember to
compile the libraries that way also.
Use FASTVIDEO (me/config.h)
Build files (see me/compile):
terminal=
termlib=
io=misc/pcio.c
keymap=misc/pckmap.c
fileio=fileio.c
process=
fastvideo=misc/pcfv.c
Other programs:
The other programs can use the small code, large data model.
The compute server is not supported.
Compiler: Turbo C (1.0)
CFLAGS:
-ml (large memory model)
-D__STDC__ (force ANSI C)
-A (disable non-ANSI keywords; probably not needed)
-d (merge duplicate strings)
-I <util> <ed> <mc2>
ME:
Use the large memory model (1 meg code and data). Remember to
compile the libraries that way also.
Use FASTVIDEO (me/config.h)
Turn off COMPUTE_SERVER (me/config.h)
Build files (see me/compile):
terminal=
termlib=
io=misc/pcio.c
keymap=misc/pckmap.c
fileio=fileio.c
process=
fastvideo=misc/pcfv.c
Other programs:
The other programs can use the small code, large data model.
The compute server is not supported.
Compiler: Borland C++ 2.0
CFLAGS:
-ml (Large memory model)
-A (ANSI C. If using ASM code, change this to -A-).
-O
-d (Merge duplicate strings)
-f- (No floating point)
-N (Check for stack overflow, probably not needed)
-P-c (Default file extension is ".c")
-w-pia (Don't complain about "if (a = b) ...")
-I <util> <ed> <mc2>
The rest is the same as Turbo C.
MS-DOS Notes:
The util directory:
fxpand.c and canonize.c uses some OS C calls that may not be in
other Cs. If this is the case for your compiler, check out
util/misc/ibmdir.c and util/misc/ibmdir.h to see if they will
work. If so, move all files in util/misc/ to util/ and add
them to the utils library.
OS/2 (port by John Burnell):
Compiler: JPI Topspeed C ("__TSC__").
OS/2 1.3 on a FAT drive, not sure whether it will support HPSF
filenames (probably not since it uses the MSDOS code to parse
filenames, although it may cope with long filenames). Certainly
it does nothing with EAs at present.
To compile it, configure the system for MSDOZ (util/os.h), except
replace the DOS files with the corresponding OS/2 ones viz:
./util replace ibmdir.c with os2dir.c
./me/misc replace pcfile.c with os2filio.c
replace pcio.c with os2io.c
don't use pcfv.c
Atari ST TOS and MiNT (port and Makefiles by Jwahar R. Bammi):
Read ./Makefile for more info.
I'd like to keep a list of systems that have compiled and run ME and
those systems that don't. Please send me info if your system is not
listed. Also send bug reports/fixes.
How to Install ME
--- -- ------- --
Do one of:
- Edit ./Makefile and "make install". You may need be root.
-
Copy me/me3 and mc/mc2 to /usr/local/bin or to a directory in your
$PATH.
Copy mutt/package/*.mco to /usr/local/me2 or where you specified
in config.h. Or leave them where they are and use the ME3
environment variable (which is what I do). See "load" in
me/doc/me3.doc for more about this var.
If you want the online help system to work, copy doc/*.doc and
doc/web.idx to the same place as the .mco files.
As a quick test, run me, hit Escape x load <return> ganoi <return> and
use 4 disks. If you get the towers of hanoi, things are probably
working pretty good.
Read all the documentation (see doc/Contents for a list). You can do
this within ME by running the help system. Run help (M-x help
<return>), select "Quick Reference" and start there. To find out how to
browse, press "?" or just move the cursor to a topic you'd like more
info about and press <return>.
Converting from ME2 to ME3
---------- ---- --- -- ---
ME3 is backwards compatible with ME2 at the finger and source level.
The keyboard interface is the same (except for a few more GNU
keybindings) and Mutt source code should still compile and work. Mutt
code compiled for ME2 will NOT work if compiled with MC2's "-t" (token
file) option. Either recompile with me3.tok or, if you want to use the
code with both ME2 and ME3 (for example, your myme.mut file), don't use
the "-t" option.
Author
------
Craig Durland (503) 715-3354
3419 SW Knollbrook, Corvallis, OR 97333
craig@cv.hp.com