Subject: bug#6937: 24.0.50; compilation-next-error-function parsing is dependent on where the cursor resides

From: Jed Brown <[email-masked]>
Date: Sat, 28 Aug 2010 20:37:30 +0200

emacs -Q, M-x compile some C code which produces some errors or
warnings.  The lines will look like

  /home/jed/dohp/src/fs/interface/fsgeom.c:12:14: warning: unused variable ‘off’

Press "M-g n" once or twice, instead of jumping through the errors, the
minibuffer asks

  Find this error in (default fsgeom.c:12):

This can also be observed with compile-goto-error (bount to RET) in the
*compilation* buffer.  If the cursor is at any character up to and
including the 'g' in "warning", then it will go directly to the source
line, but the failure above will occur if the cursor is anywhere on the
line after the 'g'.  In the case of an error, the critical character is
the space immediately preceding "error".

Site configuration follows, this was built from the Git repository as of
2010-08-28, but the issue has been present for several weeks.

In GNU Emacs 24.0.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.20.1)
 of 2010-08-28 on kunyang
Windowing system distributor `The X.Org Foundation', version 11.0.10801902
configured using `configure  'CFLAGS=-march=native -O1 -pipe -fno-optimize-sibling-calls' '--prefix=/usr' '--sysconfdir=/etc' '--localstatedir=/var' '--libexecdir=/usr/lib' '--mandir=/usr/share/man' '--without-sound' '--with-x-toolkit=gtk' 'LDFLAGS=-Wl,--hash-style=gnu -Wl,--as-needed''

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.utf8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: C/lw

Minor modes in effect:
  shell-dirtrack-mode: t
  subword-mode: t
  yas/global-mode: t
  yas/minor-mode: t
  senator-minor-mode: t
  which-function-mode: t
  semantic-mru-bookmark-mode: t
  semantic-idle-summary-mode: t
  semantic-idle-scheduler-mode: t
  semantic-decoration-mode: t
  semantic-highlight-func-mode: t
  semantic-stickyfunc-mode: t
  show-paren-mode: t
  diff-auto-refine-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
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t

Recent input:
i f SPC ( C-e C-b ) SPC S E T E R R Q ( P E T S C _ 
E R R _ M-b M-d C O M M C-f S E L F , P E T S C _ E 
R R _ S Y S , " C o u l d SPC n o t SPC o p e n SPC 
p i p e " ) C-x C-s <switch-frame> <switch-frame> C-x 
b m p r <return> <M-backspace> <backspace> i f SPC 
( ! <switch-frame> <switch-frame> C-/ C-/ C-/ C-/ C-/ 
C-/ C-g C-/ C-e <switch-frame> <switch-frame> M-; N 
o t SPC v e r y SPC u s e f u l SPC e r r o r SPC b 
a h v <backspace> <backspace> <backspace> e h a v i 
o r , SPC b u t SPC w h a t SPC t o SPC d o SPC a t 
SPC E O F <M-backspace> <M-backspace> <M-backspace> 
<M-backspace> i s SPC d e s i r e d SPC b e h a v i 
o r SPC a t SPC l i n e SPC <M-backspace> E O F <M-backspace> 
<M-backspace> f o r SPC a t t e m p t SPC <backspace> 
SPC t o SPC r e a d SPC a t SPC E O F ? C-x C-s <switch-frame> 
<switch-frame> <switch-frame> M-g n M-g n C-g <C-tab> 
C-b <return> <C-tab> C-b C-b C-b C-b <return> <C-tab> 
M-f <return> C-g C-b <return> <C-tab> C-f <return> 
<help-echo> <help-echo> C-g C-g C-x C-g <C-tab> M-x 
v e r s <tab> <return> M-x M-p <return> M-x M-p <return> 
M-x M-p <return> <switch-frame> <switch-frame> M-x 
r e p o r t - m <backspace> e m a c <tab> <return>

Recent messages:
Wrote /home/jed/petsc/src/sys/fileio/mprint.c [2 times]
Quit
Mark set [4 times]
Quit
Mark set [3 times]
Quit [2 times]
GNU Emacs 24.0.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.20.1) of 2010-08-28 on kunyang [8 times]
dInt n
Scanning for dabbrevs...100%
dabbrev-expand: No dynamic expansion for `compilation-next-error-fun' found

Load-path shadows:
/usr/share/emacs/site-lisp/cedet/common/ezimage hides /usr/share/emacs/24.0.50/lisp/ezimage
/usr/share/emacs/site-lisp/cedet/speedbar/speedbar hides /usr/share/emacs/24.0.50/lisp/speedbar
/usr/share/emacs/site-lisp/cedet/speedbar/dframe hides /usr/share/emacs/24.0.50/lisp/dframe
/usr/share/emacs/site-lisp/cedet/speedbar/sb-image hides /usr/share/emacs/24.0.50/lisp/sb-image
/usr/share/emacs/site-lisp/cedet/eieio/eieio-custom hides /usr/share/emacs/24.0.50/lisp/emacs-lisp/eieio-custom
/usr/share/emacs/site-lisp/cedet/eieio/eieio-opt hides /usr/share/emacs/24.0.50/lisp/emacs-lisp/eieio-opt
/usr/share/emacs/site-lisp/cedet/eieio/eieio-base hides /usr/share/emacs/24.0.50/lisp/emacs-lisp/eieio-base
/usr/share/emacs/site-lisp/cedet/eieio/eieio-comp hides /usr/share/emacs/24.0.50/lisp/emacs-lisp/eieio-comp
/usr/share/emacs/site-lisp/cedet/eieio/eieio-datadebug hides /usr/share/emacs/24.0.50/lisp/emacs-lisp/eieio-datadebug
/usr/share/emacs/site-lisp/cedet/eieio/chart hides /usr/share/emacs/24.0.50/lisp/emacs-lisp/chart
/usr/share/emacs/site-lisp/cedet/eieio/eieio-speedbar hides /usr/share/emacs/24.0.50/lisp/emacs-lisp/eieio-speedbar
/usr/share/emacs/site-lisp/cedet/eieio/eieio hides /usr/share/emacs/24.0.50/lisp/emacs-lisp/eieio
/usr/share/emacs/site-lisp/cedet/common/data-debug hides /usr/share/emacs/24.0.50/lisp/cedet/data-debug
/usr/share/emacs/site-lisp/cedet/common/pulse hides /usr/share/emacs/24.0.50/lisp/cedet/pulse
/usr/share/emacs/site-lisp/cedet/common/cedet-global hides /usr/share/emacs/24.0.50/lisp/cedet/cedet-global
/usr/share/emacs/site-lisp/cedet/ede/ede hides /usr/share/emacs/24.0.50/lisp/cedet/ede
/usr/share/emacs/site-lisp/cedet/semantic/semantic hides /usr/share/emacs/24.0.50/lisp/cedet/semantic
/usr/share/emacs/site-lisp/cedet/srecode/srecode hides /usr/share/emacs/24.0.50/lisp/cedet/srecode
/usr/share/emacs/site-lisp/cedet/common/cedet-cscope hides /usr/share/emacs/24.0.50/lisp/cedet/cedet-cscope
/usr/share/emacs/site-lisp/cedet/common/cedet-idutils hides /usr/share/emacs/24.0.50/lisp/cedet/cedet-idutils
/usr/share/emacs/site-lisp/cedet/common/cedet hides /usr/share/emacs/24.0.50/lisp/cedet/cedet
/usr/share/emacs/site-lisp/cedet/common/inversion hides /usr/share/emacs/24.0.50/lisp/cedet/inversion
/usr/share/emacs/site-lisp/cedet/common/mode-local hides /usr/share/emacs/24.0.50/lisp/cedet/mode-local
/usr/share/emacs/site-lisp/cedet/common/cedet-files hides /usr/share/emacs/24.0.50/lisp/cedet/cedet-files

Features:
(shadow sort mail-extr hippie-exp emacsbug eieio-opt help-mode view
semantic-analyze-complete semantic-symref-grep grep semantic-symref-list
newcomment calc-vec calc-aent calc-lang calc-menu calc-embed calc-ext
calc calc-loaddefs calc-macs tramp-imap tramp-gw tramp-gvfs zeroconf
dbus xml tramp-fish tramp-smb tramp-cache tramp-ftp tramp-cmds tramp
shell format-spec tramp-compat trampver semantic-tag-write executable
dabbrev multi-isearch vc-hg xhg-dvc xhg xhg-annotate xhg-mq xhg-log tla
smerge-mode dvc-state dvc-config time-date diff tla-gnus dvc-gnus
dvc-cmenu dvc-about dvc-version ede-simple ede-linux ede-emacs eldoc
semanticdb-typecache compile comint vc-git xgit-dvc xgit xgit-annotate
rect dvc-annotate xgit-log dvc-revlist dvc-diff dvc-fileinfo bzr-core
tla-core pp tla-autoconf tla-defs dvc-log vc vc-dispatcher dvc-unified
dvc-tips dired-x dired-aux ffap add-log ediff-merg ediff-diff ediff-wind
ediff-help ediff-util ediff-mult ediff-init ediff xdarcs-core xgit-core
xhg-core xmtn-minimal semantic-find semantic-tag-ls ede-locate locate
dired semantic-tag-file semanticdb-file cedet-files semantic-c
semantic-c-by semantic-lex-spp subword cc-mode cc-fonts cc-menus cc-cmds
server semantic-el semantic-bovine bovine-debug semantic-debug package
uniquify printing ps-print ps-def lpr preview-latex tex-site auto-loads
slime-autoloads caml-font cmake-mode thingatpt cc-styles cc-align
cc-engine cc-vars cc-defs tempo url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-util url-parse auth-source
gnus-util timezone url-vars xml-parse doxymacs yasnippet dropdown-list
semanticdb-global semantic-symref-global semantic-symref cedet-global
gtags eassist edmacro kmacro ede-cpp-root srecode-mode srecode-insert
srecode-find srecode-ctxt srecode-compile srecode-table semantic-ia
semantic-gcc semantic-dep senator which-func semantic-imenu semantic-sb
imenu semantic-mru-bookmark ring semanticdb-mode semantic-idle
semantic-decorate-include semanticdb-find semanticdb-ref
semantic-decorate-mode semantic-decorate pulse cedet cedet-contrib-load
contrib-loaddefs cogre-load cogre-loaddefs cogre-srecode semantic-edit
srecode-template-mode srecode-template srecode-template-wy
semantic-wisent wisent srecode-map srecode-dictionary speedbar-load
speedbar-loaddefs ede-load ede-loaddefs ede-speedbar ede-files ede
eieio-speedbar semantic-ia-sb semantic-analyze semantic-scope
semantic-analyze-fcn semantic-sort semanticdb-el semanticdb
semantic-ctxt semantic-format semantic-util-modes semantic-util semantic
semantic-lex semantic-tag working fame speedbar sb-image ezimage dframe
assoc eieio-custom ede-source eieio-base srecode-load srecode
srecode-loaddefs semantic-load semantic-fw semantic-loaddefs mode-local
find-func eieio-load eieio-loaddefs cedet-load cedet-compat
cedet-loaddefs eieio warnings byte-opt bytecomp byte-compile inversion
browse-kill-ring advice help-fns advice-preload derived ido
dvc-autoloads dvc-core dvc-lisp dvc-buffers dvc-ui dvc-register
dvc-utils dvc-emacs ewoc dvc-defs dvc-site paren eudc cus-edit cus-start
cus-load eudc-vars starttls smtpmail notmuch notmuch-message
notmuch-maildir-fcc notmuch-hello wid-edit notmuch-show notmuch-mua
notmuch-address notmuch-wash diff-mode easy-mmode coolj notmuch-query
json notmuch-lib message idna sendmail regexp-opt rfc822 mml easymenu
mml-sec mailabbrev mail-utils gmm-utils mailheader mm-view smime
password-cache dig mm-decode mm-bodies mm-encode mailcap mail-parse
rfc2231 rfc2047 rfc2045 ietf-drums mm-util mail-prsvr cl cl-19 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 mldrag 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)