-*-text-*- The is the README for ME2. It contains full source for: ME2 (the Mutt Editor v2.3) MC2 (the Mutt Compiler v2.1) a Compute Server (v1.0) various libraries Mutt extensions to ME2 Released: 2.0: February 29, 1992 (beta) 2.2: April 12, 1992 (MS-DOS and OS2 ports, bug fixes) 2.3 May 10, 1992 (Atari port, minor enhancements) 2.4: August 9, 1992 (regular expression bug fixes, a PC screen width bug fix) This release is targeted at Unix, MS-DOS, OS/2 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 ME2? ---- -- ---- ME2 is a medium-small, portable, extendable Emacs' like editor that is known to compile and run on HP-UX (Series 800, 700 and 300), BSD Unix (Sun, Apollo, DEC, etc), IBM AIX, OSF/POSIX (HP and DEC), MS-DOS/PC-DOS (IBM PCs and compatibles), OS/2 and Atari (TOS and MiNT). Standalone, ME2 is pretty mundane - you need to customize it to make full use of it. A compiled language is provided for this as well as 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 the ability to have concurrent processes (such as make) running in a buffer (Unix only). How to Compile and Install ME2 --- -- ------- --- ------- --- Compiling --------- Edit util/os.h so it matches your OS. Edit mc2/mm.h so that it matches your OS. Edit me2/config.h so that it matches what you what ME2 to support. Edit me2/compile so that it matches your OS and config.h. Edit ./compile for the CFLAGS you want. Type "./compile" in this directory and it will compile all the subdirectories. Notes: I've run the compile scripts (and tested the results) on: HP-UX 8.0 series 300 (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"). Make sure to set DOMAIN_OS in util/os.h. The compiles will complain (lots) about varargs and select. You can ignore these. I'm pretty sure the varargs complaints are groundless. 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") IBM RS/6000, AIX Version 3.1 ("-O"). AIX 3.2 ("-O" or ANSI C "CC=c89"). Make sure you use -lcurses in me2/compile and set AIX_OS in util/os.h. DEC 3100 OSF/1 ("-O"). Not much testing done. DECstation 5000/200 ULTRIX V4.2 ("-O"). You may need to set FOPEN_BINARY (me2/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 (./me2/process.c, ./me2/unixio.c, ./comserver/comserver.c). - in comserver/compile and me2/compile, add "-lsocket -lnsl" to the cc line so the socket code will link. - or just turn off the compute server (in me2/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 me2 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 - ME2 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 to (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: The compile scripts won't run but should give you an idea of what needs to be done. See below. John Burnell has ported ME2 to PC-DOS: Compiler: JPI Topspeed C ("__TSC__"). ME2: Use the large memory model (1 meg code and data). Remember to compile the libraries that way also. Use FASTVIDEO (me2/config.h) Build files (see me2/compile): terminal= termlib= io=misc/pcio.c keymap=misc/pckmap.c fileio=fileio.c process= fastvideo=misc/pcfv.c spam = The util directory: fxpand.c uses some Lattice 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 misc/ to util/ and add them to the utils library. Other programs: The other programs can use the small code, large data model. The compute server is not supported. 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 ./me2/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 ME2 and those systems that don't. Please send me info if your system is not listed. Also send bug reports/fixes. Installing ---------- Use the install script (as root) or: Copy me2/me2 and mc2/mc2 to /usr/local/bin or to a directory in your PATH. Copy mutt2/*.mco to /usr/local/lib/me2 or where you specified in config.h. Or leave them where they are and use the ME2 environment variable (which is what I do). See "load" in me2/doc/me2.doc for more about this var. As a quick test, run me2, hit Escape x load ganoi and use 4 disks. If you get the towers of hanoi, things are probably working pretty good. Read all the documentation (see ./contents for a list). Customizing ----------- Read the "Customizing me2.mut" section in me2/doc/package.doc. Author ------ Craig Durland (503) 750-3354 3419 SW Knollbrook, Corvallis, OR 97333 craig@cv.hp.com