Subject: bug#10499: 24.0.92; Fortran 90 mode does not fontify preprocessor directives

From: Ushnish Basu <[email-masked]>
Date: Fri, 13 Jan 2012 19:29:01 -0800

In Fortran 90 mode, preprocessor directives such as '#ifdef', '#else', 
'#endif' are not fontified correctly, unlike in Fortran 77 mode.

To reproduce, open two files - 'test.f90' and 'test.f'. In both, enter 
the following lines:

#ifdef
#else
#endif

These should be correctly highlighted in test.f, but not in test.f90.

In GNU Emacs 24.0.92.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.6)
  of 2012-01-12 on ubasu-desktop
Windowing system distributor `The X.Org Foundation', version 11.0.11004000
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_US.UTF-8
   value of $XMODIFIERS: nil
   locale-coding-system: utf-8-unix
   default enable-multibyte-characters: t

Major mode: F90

Minor modes in effect:
   which-function-mode: t
   shell-dirtrack-mode: t
   show-paren-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
   column-number-mode: t
   line-number-mode: t
   abbrev-mode: t

Load-path shadows:
/usr/share/emacs/site-lisp/gnuplot-mode/gnuplot hides 
/usr/local/share/emacs/site-lisp/gnuplot
/usr/share/emacs/site-lisp/gnuplot-mode/gnuplot-gui hides 
/usr/local/share/emacs/site-lisp/gnuplot-gui
/usr/share/emacs/site-lisp/gnuplot-mode/info-look.20.3 hides 
/usr/local/share/emacs/site-lisp/info-look.20.3

Features:
(shadow sort mail-extr message rfc822 mml mml-sec mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev
gmm-utils mailheader warnings emacsbug fortran add-log which-func imenu
f90 cus-edit help-mode multi-isearch dired-aux view dired tramp-cache
ess-toolbar ess-mouse mouseme thingatpt browse-url ess-menu ess-swv
ess-noweb noweb-font-lock-mode ess-bugs-l essd-els ess-sas-d ess-sas-l
ess-sas-a executable ess-arc-d ess-vst-d ess-xls-d ess-lsp-l ess-sta-d
ess-sta-l make-regexp ess-sp6-d ess-sp5-d ess-sp3-d ess-r-d ess-r-args
ess-s-l ess-inf ess-utils ess-mode noweb-mode ess ess-custom ess-compat
ess-site mmm-auto mmm-vars mmm-compat scss-mode compile derived
zencoding-mode zencoding-trie php-mode etags cc-langs cl cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs speedbar sb-image ezimage dframe gnus gnus-ems nnheader
mail-utils wid-edit octave-mod smie tramp tramp-compat auth-source eieio
byte-opt bytecomp byte-compile cconv macroexp assoc gnus-util mm-util
mail-prsvr password-cache shell pcomplete comint ring format-spec advice
help-fns advice-preload tramp-loaddefs regexp-opt jka-compr paren delsel
cus-start cus-load info easymenu time-date 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
minibuffer loaddefs button faces cus-face files text-properties overlay
sha1 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)