layer@UUNET.UU.NET (Kevin Layer) (05/24/89)
There are two bugs which have been annoying me for some time. Well, I just spent 3 minutes finding and fixing them (they were due to the same bug). First, in Lisp mode I set the syntax of ?. to '. This is supposed to (from the Gnu Emacs Manual) make ?. part of "the class of expression-adhering characters. These characters are part of a symbol if found within or adjacent to one, and are part of a following expression if immediately preceding one, but are like whitespace if surrounded by whitespace." Well, ?. obviously doesn't behave this way. Put the following in a buffer (in Lisp mode): (thisissupposedtobe.onesymbol thesecondsymbol thethirdsymbol) Note, first, that the indentation of the second line is incorrect (my first annoyance). Second, note that (forward-sexp 1) when the point is just inside the ?( will move the point to the ?., not to the true end of the symbol thisissupposedtobe.onesymbol. I have made the fix and here it is (in the function scan_lists): snooze% diff -c syntax.c-18.53 syntax.c *** syntax.c.~1~ Tue Jan 19 03:49:45 1988 --- syntax.c Tue May 23 08:48:36 1989 *************** *** 508,513 **** --- 508,514 ---- break; case Sword: case Ssymbol: + case Squote: /* DKL 5/23/89 */ break; default: goto done; After making this change forward-sexp and indenting in lisp mode both work fine. Kevin Layer Franz Inc. layer%franz.uucp@Berkeley.EDU