Subject: 24.0.50; Incomplete font locking in c++-mode with Emacs 24

From: Suvayu Ali <[email-masked]>
Date: Sat, 23 Oct 2010 21:35:23 -0700

Hi Emacs developers,

Since about 3 weeks I am seeing incomplete font-locking behaviour with
"GNU Emacs 24.0.50.1" in c++-mode. The variables and function names
are displayed in the `default' face instead of
`font-lock-variable-name-face' and `font-lock-function-name-face'
respectively.

Recipe:
1. Start emacs with `emacs -Q'
2. Open a C++ source file
3. Navigate to the implementation of a function or instantiation of an
    object

To demonstrate, I took comparing screenshots with Emacs 24 and Emacs 23. 
Compare lines 83 and 91 in the screen shots to see what I mean.

Emacs 23.2.1 (correct font-lock behaviour)
<http://i288.photobucket.com/albums/ll164/jalladandtux/screenies/emacs-24-incorrect-font-lock.png>

Emacs 24 (incorrect font-lock behaviour)
<http://i288.photobucket.com/albums/ll164/jalladandtux/screenies/emacs-23-correct-font-lock.png>

PS: I am not subscribed to the list.

Hope I didn't miss to include any information.

In GNU Emacs 24.0.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.20.1)
  of 2010-10-22 on xxx.xxx.xxx
Windowing system distributor `Fedora Project', version 11.0.10802000
configured using `configure  '--prefix=/opt/emacs-lisp' '--with-selinux' 
'--with-imagemagick''

Important settings:
   value of $LC_ALL: nil
   value of $LC_COLLATE: nil
   value of $LC_CTYPE: nil
   value of $LC_MESSAGES: nil
   value of $LC_MONETARY: nil
   value of $LC_NUMERIC: nil
   value of $LC_TIME: nil
   value of $LANG: en_IN.utf8
   value of $XMODIFIERS: @im=ibus
   locale-coding-system: utf-8-unix
   default enable-multibyte-characters: t

Major mode: C++/l

Minor modes in effect:
   linum-mode: t
   tooltip-mode: t
   mouse-wheel-mode: t
   menu-bar-mode: t
   file-name-shadow-mode: t
   global-font-lock-mode: t
   font-lock-mode: t
   blink-cursor-mode: t
   auto-composition-mode: t
   auto-encryption-mode: t
   auto-compression-mode: t
   line-number-mode: t
   transient-mark-mode: t
   abbrev-mode: t

Recent input:
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <up> <C-right> <C-right>
M-x d e s c r <tab> f a c <tab> <return> <return> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <up> <up> <up> <up> <up> <left>
<left> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <right> <right> M-x <up> <return> C-g
C-x 1 <help-echo> <help-echo> <help-echo> <help-echo>
M-x t o g g l <tab> t r u <tab> <return> <up> <up>
<up> <up> <up> <up> <up> <up> <down-mouse-4> <mouse-4>
<double-down-mouse-4> <double-mouse-4> <down-mouse-5>
<mouse-5> <help-echo> M-x t o o l <tab> - b a <tab>
<return> <help-echo> <down-mouse-1> <mouse-1> <down-mouse-5>
<mouse-5> M-x l i n u m <tab> <return> <help-echo>
<down-mouse-1> <mouse-1> <down-mouse-1> <mouse-1> M-x
r e p o r <tab> <return>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Loading vc-git...done
Type C-x 1 to delete the help window.
Quit
Truncate long lines enabled
Making completion list...
Tool-Bar mode disabled
Linum mode enabled

Load-path shadows:
/opt/emacs-lisp/share/emacs/site-lisp/flim/hex-util hides 
/opt/emacs-lisp/share/emacs/24.0.50/lisp/hex-util
/opt/emacs-lisp/share/emacs/site-lisp/flim/sha1 hides 
/opt/emacs-lisp/share/emacs/24.0.50/lisp/sha1
/opt/emacs-lisp/share/emacs/site-lisp/flim/md4 hides 
/opt/emacs-lisp/share/emacs/24.0.50/lisp/md4
/opt/emacs-lisp/share/emacs/site-lisp/flim/ntlm hides 
/opt/emacs-lisp/share/emacs/24.0.50/lisp/net/ntlm
/opt/emacs-lisp/share/emacs/site-lisp/flim/sasl hides 
/opt/emacs-lisp/share/emacs/24.0.50/lisp/net/sasl
/opt/emacs-lisp/share/emacs/site-lisp/flim/sasl-digest hides 
/opt/emacs-lisp/share/emacs/24.0.50/lisp/net/sasl-digest
/opt/emacs-lisp/share/emacs/site-lisp/flim/sasl-cram hides 
/opt/emacs-lisp/share/emacs/24.0.50/lisp/net/sasl-cram
/opt/emacs-lisp/share/emacs/site-lisp/flim/sasl-ntlm hides 
/opt/emacs-lisp/share/emacs/24.0.50/lisp/net/sasl-ntlm
/opt/emacs-lisp/share/emacs/site-lisp/flim/hmac-md5 hides 
/opt/emacs-lisp/share/emacs/24.0.50/lisp/net/hmac-md5
/opt/emacs-lisp/share/emacs/site-lisp/flim/hmac-def hides 
/opt/emacs-lisp/share/emacs/24.0.50/lisp/net/hmac-def

Features:
(shadow sort gnus-util mail-extr message idna sendmail rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mailabbrev mail-utils gmm-utils mailheader
emacsbug linum cus-start cus-load help-fns help-mode view crm thingatpt
vc-git cc-mode cc-fonts easymenu cc-menus cc-cmds cc-styles cc-align
cc-engine cc-vars cc-defs regexp-opt tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image fringe
lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
loaddefs button minibuffer faces cus-face files text-properties overlay
md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process dbusbind
dynamic-setting system-font-setting font-render-setting move-toolbar gtk
x-toolkit x multi-tty emacs)

-- 
Suvayu

Open source is the future. It sets us free.