usenet@cps3xx.UUCP (Usenet file owner) (07/10/89)
The following is a list of changes that I had to make to get MicroEmacs 3.10 working under SCO XENIX 386 v2.3.1. These changes were made to source ftp'ed from midas.mgmt.purdue.edu [128.210.1.3] about two weeks ago. Consult the comments at the beginning of tcap.c for necessary additions to /etc/termcap. The form is in the style of diffs, along with notes preceeded by '#' as to why I made the change. The preliminaries: Here is the makefile I used: ===== cut here ===== CFLAGS= -M3e -DM_TERMCAP -g OFILES= basic.o bind.o buffer.o char.o crypt.o display.o eval.o \ exec.o file.o fileio.o input.o isearch.o line.o lock.o main.o \ mouse.o random.o region.o search.o tcap.o unix.o window.o word.o CFILES= basic.c bind.c buffer.c char.c crypt.c display.c eval.c \ exec.c file.c fileio.c input.c isearch.c line.c lock.c main.c \ mouse.c random.c region.c search.c tcap.c unix.c window.c word.c HFILES= estruct.h edef.h efunc.h epath.h ebind.h evar.h etype.h emacs: $(OFILES) $(CC) $(CFLAGS) -o emacs $(OFILES) -ltcap -ltermlib -lx $(OFILES): $(HFILES) ===== cut here ===== Here is the pertinent section of estruct.h: Note: under XENIX it is essential the TYPEAH be 0 (this prevents a serious performance drop) COMPLET be 0 (the completion code doesn't work under XENIX) and COLOR be 0. (the stat line came out in normal video on a CGA, I hope to track down the color problem in the future) ===== cut here ===== /* Machine/OS definitions */ /* [Set one of these!!] */ #define AMIGA 0 /* AmigaDOS */ #define ST520 0 /* ST520, TOS */ #define MSDOS 0 /* MS-DOS */ #define OS2 0 /* Microsoft or IBM OS/2 */ #define V7 0 /* V7 UNIX or Coherent or BSD4.2*/ #define BSD 0 /* UNIX BSD 4.2 and ULTRIX */ #define USG 0 /* UNIX system V */ #define XENIX 1 /* IBM-PC SCO XENIX */ #define SUN 0 /* SUN v4.0 */ #define HPUX 0 /* HPUX HP 9000 minicomputer */ #define VMS 0 /* VAX/VMS */ #define FINDER 0 /* Macintosh OS */ #define WMCS 0 /* Wicat's MCS */ #define AOSVS 0 /* Data General AOS/VS */ /* Compiler definitions */ /* [Set one of these!!] */ #define UNIX 1 /* a random UNIX compiler */ #define MWC 0 /* Mark Williams C */ #define ALCYON 0 /* ALCYON Atari ST compiler */ #define LATTICE 0 /* Lattice 2.14 through 3.0 compilers */ #define AZTEC 0 /* Aztec C 3.20e */ #define MSC 0 /* MicroSoft C compile version 3 & 4 & 5.1 */ #define TURBO 0 /* Turbo C/MSDOS */ #define DTL 0 /* DataLight C v3.12 */ #define DGC 0 /* Data General AOS/VS C... */ /* Machine stack growth direction. */ /* [Set this to 1 if your machine stack grows UP!!!] */ /* data general mv/eclipse series stack grows up. */ /* dec vax series stack grows down... got it??? */ #define STACK_GROWS_UP 0 /* Debugging options */ #define RAMSIZE 0 /* dynamic RAM memory usage tracking */ #define RAMSHOW 0 /* auto dynamic RAM reporting */ #define RAMTRCK 0 /* send debug info to MALLOC.DAT */ /* Special keyboard/network definitions */ #define WANGPC 0 /* WangPC - mostly escape sequences */ #define VT100 0 /* Handle VT100 style keypad. */ #define XONDATA 0 /* VMS only - set to force /NOTTSYNC/NOHOSTSY */ #define NOVELL 0 /* IBMPC Novell NetWare flag! */ /* Terminal Output definitions */ /* [Set one of these!!] */ #define ANSI 0 /* ANSI escape sequences */ #define HP150 0 /* HP150 screen driver */ #define HP110 0 /* HP110 screen driver */ #define VMSVT 0 /* various VMS terminal entries */ #define VT52 0 /* VT52 terminal (Zenith). */ #define RAINBOW 0 /* Use Rainbow fast video. */ #define TERMCAP 1 /* Use TERMCAP */ #define IBMPC 0 /* IBM-PC CGA/MONO/EGA/VGA drvr */ #define OS2NPM 0 /* OS/2 non-Presentation Mgr. */ #define DG10 0 /* Data General system/10 */ #define TIPC 0 /* TI Profesional PC driver */ #define Z309 0 /* Zenith 100 PC family driver */ #define MAC 0 /* Macintosh */ #define ATARI 0 /* Atari 520/1040ST screen */ #define DASHER 0 /* DG Dasher 2xx/4xx crts */ /* Language text options (pick one) */ #define ENGLISH 1 #define FRENCH 0 #define SPANISH 0 #define GERMAN 0 #define DUTCH 0 #define PLATIN 0 /* Configuration options */ #define CVMVAS 1 /* arguments to page forward/back in pages */ #define CLRMSG 0 /* space clears the message line with no insert */ #define CFENCE 1 /* fench matching in CMODE */ #define TYPEAH 0 /* type ahead causes update to be skipped */ #define DEBUGM 1 /* $debug triggers macro debugging */ #define LOGFLG 0 /* send all executed commands to EMACS.LOG */ #define VISMAC 0 /* update display during keyboard macros */ #define CTRLZ 0 /* add a ^Z at end of files under MSDOS only */ #define NBRACE 1 /* new style brace matching command */ #define COMPLET 0 /* new completion code (as of 3.10) */ #define CLEAN 1 /* de-alloc memory on exit */ #define CALLED 0 /* is emacs a called subroutine? or stand alone */ #define ADDCR 0 /* ajout d'un CR en fin de chaque ligne (ST520) */ /* [= add a CR at the end of each line (ST520)] */ #define BINARY 1 /* using new binary searches? */ #define REVSTA 1 /* Status line appears in reverse video */ #define COLOR 0 /* color commands and windows */ #define FILOCK 0 /* file locking under unix BSD 4.2 */ #define ISRCH 1 /* Incremental searches like ITS EMACS */ #define WORDPRO 1 /* Advanced word processing features */ #define FLABEL 0 /* function key label code [HP150] */ #define APROP 1 /* Add code for Apropos command */ #define CRYPT 1 /* file encryption enabled? */ #define MAGIC 1 /* include regular expression matching? */ #define AEDIT 1 /* advanced editing options: en/detabbing */ #define PROC 1 /* named procedures */ #define MOUSE 0 /* Include routines for mouse actions */ #define NOISY 1 /* Use a fancy BELL if it exists */ #define DIACRIT 1 /* diacritical marks processed? */ #define SPEECH 0 /* spoken EMACS, for the sight impared [not ready] */ /* Character set options */ /* [Set one of these!!] */ #define ASCII 1 /* always using ASCII char sequences for now */ #define EBCDIC 0 /* later IBM mainfraim versions will use EBCDIC */ ===== cut here ===== Now for the file changes: ===== cut here ===== ========== ebind.h: ========== 328a329,331 > #if XENIX > {0x7F, BINDFNC, forwdel}, > #else 329a333 > #endif # Without this the 'Delete' keypad key does a backdel. Under MSDOS # the 'Delete' keypad key does a forwdel. As I use both MSDOS and # XENIX I don't want to suffer from schizoid typing ========== epath.h: ========== 57c57 < #if V7 | BSD | USG | HPUX --- > #if V7 | BSD | USG | HPUX | XENIX # Essential else a compile error occurs ========== estruct.h: ========== 309c309 < #if MSDOS | OS2 | V7 | USG | HPUX | BSD | (ST520 & MWC) | WMCS --- > #if MSDOS | OS2 | V7 | USG | HPUX | BSD | (ST520 & MWC) | WMCS | XENIX 420c420 < #if V7 | USG | HPUX | BSD --- > #if V7 | USG | HPUX | BSD | XENIX # Both of these are necessary ========== tcap.c: ========== 69c69 < :kh=\E[H:kH=\E[F:kA=\E[L:kN=\E[G:kP=\E[I: --- > :kh=\E[H:kH=\E[F:kI=\E[L:kN=\E[G:kP=\E[I: # if kA is used in the termcap entry, the 'Insert' keypad key does # a insert line. However, under MSDOS the 'Insert' keypad key does # a insert character. To avoid schzoid typing, use kI instead. 442a443,445 > #if XENIX > nap(35); /* under XENIX nap is in milliseconds */ > #else 443a447 > #endif # This was nap(35000L), under XENIX nap() is in milliseconds. The 35000L # caused a timeout period of 35 seconds while waiting to see if # anything followed an ESC ========== unix.c: ========== 17a18,21 > > #if XENIX > #include <sys/ndir.h> > #else 18a23,24 > #endif > # Under XENIX ndir.h is in /usr/include/sys, not /usr/include If you have any questions about these changes, contact me at my home address as I'm more likely to compose a comprehensive answer there. Hope this has been of use, John H. Lawitzke UUCP: Work: ...uunet!frith!dale1!jhl Dale Computer Corp., R&D Home ...uunet!frith!ipecac!jhl 2367 Science Parkway Internet: jhl@frith.egr.msu.edu Okemos, MI, 48864 [35.8.8.108]