>>>>> "MS" == Martin Stjernholm <mast@...> writes:
MS> Yes, it is; I usually do not keep up with the Emacs bug list
MS> or the other Emacs newsgroups.
MS> According to the Elisp manual, '_' clearly belongs in the
MS> symbol class rather than the word class, so that probably
MS> won't be changed in CC Mode. But afaik nothing internal breaks
MS> if it is changed as a user preference.
MS> This part of the code predates me by many years, so I don't
MS> know the reason for the great emphasis in the comment. Perhaps
MS> Barry can shed some light on this?
MS> I've dug out the following log entry from cvs, which regards
MS> the strong comment line:
MS> | revision 3.59 | date: 1993/11/17 23:29:41; author: warsaw;
MS> state: Exp; lines: +188 -116 | fixed all byte-compiler
MS> warnings. did a pass through the comments and |
MS> docstrings. macro-ized a few more defuns
MS> That's not very informative in this context. However, the
MS> actual modify-syntax-entry call was added a year later with
MS> this comment:
MS> | revision 4.98 | date: 1994/11/04 20:13:24; author: bwarsaw;
MS> state: Exp; lines: +8 -7 | (c-populate-syntax-table):
MS> Explicitly set underscore to symbol class | to avoid
MS> load-order problems. Should other syntax settings also be |
MS> done explicitly?
MS> It'd be interesting to know what the load-order problems are.
MS> (Btw, it's kinda cool to dig around in a cvs repository that
MS> spans almost a decade.. ;)
Yow. I don't even remember what I had for breakfast this morning, and
you want to know what the motivation for a 7 or 8 year old log message
As best I can remember, when that was original added, it /would/ break
internal stuff if _ was set to word class. I vaguely remember Martin
and I trading email about it (probably on the old victims list) and
Martin correcting me that the internal breakage no longer existed.
I've got no idea what the "load-order problems" are any more!
On the other hand I'm glad to hear this won't change for CC Mode
because I think it is better to Do The Right Thing for users than for
programmers. I want to be able to use M-f and M-b to move around by
word boundaries, which should definitely stop at underscores. I've
got other commands I can use if I want such navigations to move around
Programmers OTOH -- and I'd classify anybody doing a regexp search as
a programmer <wink> -- should be able to either write their regexps to
deal with word-or-symbol, or to temporarily bind _ to word class for
the duration of their function or task. I remember thinking that it
would be neat if you could specify one syntax for interactive commands
and another for non-interactive commands, but it's easy enough to
program around this. I've been out of (X)Emacs development for way
too long to know whether any of this still makes sense. :)
BTW, it's also kind of scary to see your old log messages come back to
haunt you years later. Two quick stories: these days I do primarily
lots of Python hacking and it's sometimes fun to throw a decade old
log message in Guido's face, like a pie thrown at a national leader!
It's even worse with a 10-15 year old email message or Usenet post.
Also, I remember back in my very early programming days at NBS/NIST
where, as a summer intern I wrote some Fortran code to do some vector
graphics on an old Tectronix terminal. Nearly 5 or 6 years later, I
was on staff and a new summer intern was given an old printout and
told to port some code to the new Forth system. There were almost no
comments, and of course, nothing resembling today's version control
record. At one point in the code, there was some bizarre DO loop with
a very odd iteration count, like 73209. This poor kid couldn't figure
out what the heck that did and came to me asking for some help. He
didn't know I'd written it, and I definitely didn't remember the
code... until I started recognizing that some of the variable names
had my, er, distinctive pattern of naming. It suddenly dawned on me
that this was /my/ old code coming back to haunt /me/! And I remember
why it was "73209".
Turns out the terminal had a "blank screen" command which had to be
followed by a certain period of inactivity or the whole system froze
up solid. 73209 was the exact minimum number of cycles through the
loop to prevent the seizing, and was discovered by the kind of futile
determination that only a summer intern could muster.