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

From: "Andrew W. Nosenko" <[email-masked]>
Date: Mon, 30 Aug 2010 13:56:31 +0300

On Sat, Aug 28, 2010 at 21:37, Jed Brown <[email-masked]> wrote:
> 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)
>

Seems like yet another consequence of adding Ruby to the compilation
error regexp alist.

For another see thread "wrong face in compilation buffer"

    http://comments.gmane.org/gmane.emacs.devel/129066

in emacs-devel.

I personally work around both simple by disabling Ruby regexp through Customize.

-- 
Andrew W. Nosenko <[email-masked]>