massar@godot.UUCP (J.P. Massar) (11/27/84)
There is a bug in the Emacs e_lisp.c file which causes the '&' routines & Search and & Regular Expression Search to generate "Wrong number of argument" errors or even crash Emacs. The following simple fix corrects this: *** e_lisp.c~ Tue Nov 13 15:20:17 1984 --- e_lisp.c Wed Nov 21 15:40:14 1984 *************** *** 357,363 *ofname = comtab[n].name; *tindex = n; *mx = *comtab[n].name == '&' ? NOT_META_X : IS_META_X; ! *minargs = *maxargs = (comtab[n].keyset >> LARGBIT) & 3; *nocheck = (comtab[n].keyset & LNCHECKBIT) != 0; *retype = (comtab[n].keyset >> LRETBIT) & 3; for (i = 0; i < *minargs; i++) --- 357,363 ----- *ofname = comtab[n].name; *tindex = n; *mx = *comtab[n].name == '&' ? NOT_META_X : IS_META_X; ! *minargs = *maxargs = (comtab[n].keyset >> LARGBIT) & 7; *nocheck = (comtab[n].keyset & LNCHECKBIT) != 0; *retype = (comtab[n].keyset >> LRETBIT) & 3; for (i = 0; i < *minargs; i++) JP Massar ihnp4!godot!massar massar@cca-unix
massar@godot.UUCP (J.P. Massar) (11/30/84)
The following change fixes a problem with defining new major modes. Switching out of a buffer with a newly defined major mode and then back into it wasn't working properly. 544c544,545 < if ((i = binsrch(mode, (char *)comtab, NCOMS, sizeof(struct key))) >= 0 && i < NCOMS) --- > if ((i = binsrch(mode, (char *)comtab, NCOMS, sizeof(struct key))) >= 0 && i < NCOMS) { > xcnum = i; 545a547 > } JP Massar ihnp4!godot!massar massar@cca-unix
massar@godot.UUCP (J.P. Massar) (12/10/84)
If one attempts to interrupt Emacs/Elisp by hitting C-G C-G while Elisp is in the process of initializing, amazing and bizarre things occur (at least here at TMC). Emacs completely hangs and every minute or so emits about 5 seconds of BEEP's... Basically, Elisp is trying to handle the interrupt before it has been initialized. I have no explanation for the specific behavior I've observed, but I have a fix. The two files which need to be changed are elispinit.c and alone.c : diff oldalone.c alone.c (in alab_handle_user_interrupt) 69a70 > extern Bool initialization_complete; 2531a2533,2534 > if (!initialization_complete) return(F); > diff oldelispinit.c elispinit.c (in elisp_init) 73a74,75 > Bool initialization_complete; > 477a480,483 > /* mask off interrupts from the user until initialization is done */ > > initialization_complete = F; > 511a518,519 > initialization_complete = T; > caveat emptor: There is no guarentee that this or any other bug fix will be incorporated into the next version of CCA Emacs. JP Massar ihnp4!godot!massar massar@cca-unix
massar@think.ARPA (J.P. Massar) (05/03/85)
Here is a simple bug fix for the bcompare function. This should fix string comparisions that don't work. *** bcompare.c~ Wed Apr 24 16:44:40 1985 --- bcompare.c Wed May 1 14:36:14 1985 *************** *** 68,74 for (j = 2; j <= nargs; j++) { val2 = Get_Nth_Arg(j,nargs); ! compare_result = compare(val1,val2); switch (fid) { --- 68,74 ----- for (j = 2; j <= nargs; j++) { val2 = Get_Nth_Arg(j,nargs); ! compare_result = compare(val1,val2,which_type); switch (fid) { -- -- JP Massar, Thinking Machines Corporation, Cambridge, MA -- mit-eddie!godot!massar, ihnp4!godot!massar, massar@think, massar@cca-unix