Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!zaphod.mps.ohio-state.edu!samsung!umich!sharkey!msuinfo!midway!mimsy!mojo!mojo!djm From: djm@eng.umd.edu (David J. MacKenzie) Newsgroups: comp.emacs Subject: Re: Help with GNU emacs 18.55 on sunos 4.1 Message-ID: Date: 27 Sep 90 02:34:16 GMT References: <1990Sep26.163734.4471@cec1.wustl.edu> <49124@seismo.CSS.GOV> Sender: news@eng.umd.edu (The News System) Followup-To: comp.emacs Organization: Free Software Foundation Lines: 105 In-Reply-To: denio@beno.CSS.GOV's message of 26 Sep 90 21:50:12 GMT There are several bugs and incompatibilities involved; some are in SunOS 4.1, and some are in emacs. Here are diffs from 18.55 that make it work (also a patch for an Ultrix bug on Decstations). diff -2rc dist-18.55.dist/src/alloc.c dist-18.55/src/alloc.c *** dist-18.55.dist/src/alloc.c Mon Feb 13 05:23:35 1989 --- dist-18.55/src/alloc.c Mon Nov 27 23:30:13 1989 *************** *** 665,673 **** #define NSTATICS 200 - char staticvec1[NSTATICS * sizeof (Lisp_Object *)] = {0}; - int staticidx = 0; #define staticvec ((Lisp_Object **) staticvec1) /* Put an entry in staticvec, pointing at the variable whose address is given */ --- 665,676 ---- #define NSTATICS 200 int staticidx = 0; + #ifdef __GNUC__ + Lisp_Object *staticvec[NSTATICS] = {0}; + #else + char staticvec1[NSTATICS * sizeof (Lisp_Object *)] = {0}; #define staticvec ((Lisp_Object **) staticvec1) + #endif /* Put an entry in staticvec, pointing at the variable whose address is given */ diff -2rc dist-18.55.dist/src/m-pmax.h dist-18.55/src/m-pmax.h *** dist-18.55.dist/src/m-pmax.h Thu Jun 8 11:53:55 1989 --- dist-18.55/src/m-pmax.h Fri Jul 13 19:16:29 1990 *************** *** 2,3 **** --- 2,5 ---- #undef LIBS_MACHINE #undef BIG_ENDIAN + #define DATA_START 0x10000000 + #define DATA_SEG_BITS 0x10000000 diff -2rc dist-18.55.dist/src/malloc.c dist-18.55/src/malloc.c *** dist-18.55.dist/src/malloc.c Fri Apr 7 21:12:10 1989 --- dist-18.55/src/malloc.c Wed Jul 11 16:11:15 1990 *************** *** 477,481 **** --- 477,486 ---- Both the beginning of the header and the beginning of the block should be on an eight byte boundary. */ + #ifdef sun + /* SunOS 4.1 localtime scribbles on the ninth byte. */ + nbytes = (n + ((sizeof *p + 15) & ~15) + EXTRA + 15) & ~15; + #else nbytes = (n + ((sizeof *p + 7) & ~7) + EXTRA + 7) & ~7; + #endif { register unsigned int shiftr = (nbytes - 1) >> 2; diff -2rc dist-18.55.dist/src/process.c dist-18.55/src/process.c *** dist-18.55.dist/src/process.c Sun Aug 6 17:01:31 1989 --- dist-18.55/src/process.c Fri Jul 13 19:18:25 1990 *************** *** 1032,1035 **** --- 1032,1038 ---- ioctl (j, TIOCNOTTY, 0); close (j); + #ifndef USG + setpgrp (0, 0); + #endif } #endif /* TIOCNOTTY */ diff -2rc dist-18.55.dist/src/x11term.c dist-18.55/src/x11term.c *** dist-18.55.dist/src/x11term.c Wed Aug 2 21:56:42 1989 --- dist-18.55/src/x11term.c Fri Jul 13 19:22:32 1990 *************** *** 1213,1216 **** --- 1213,1218 ---- #endif /* not sun */ + static XComposeStatus status; + internal_socket_read(bufp, numchars) register unsigned char *bufp; *************** *** 1223,1227 **** BLOCK_INPUT_DECLARE (); XEvent event; - XComposeStatus status; KeySym keysym; --- 1225,1228 ---- *************** *** 1330,1334 **** nbytes = XLookupString (&event, mapping_buf, 20, &keysym, ! 0); /* Someday this will be unnecessary as we will be able to use XRebindKeysym so XLookupString --- 1331,1335 ---- nbytes = XLookupString (&event, mapping_buf, 20, &keysym, ! &status); /* Someday this will be unnecessary as we will be able to use XRebindKeysym so XLookupString -- David J. MacKenzie