Subject: bug#2034: 23.0.60; c-subword-mode incompatible with xml-mode

From: [email-masked]
Date: Sat, 24 Jan 2009 18:10:37 -0800

Running "M-x c-subword-mode" in a buffer using xml-mode will raise the
following error:

c-update-modeline: Wrong type argument: stringp, (sgml-xml-mode "XML" "SGML")

Here is the output from the debugger:

Debugger entered--Lisp error: (wrong-type-argument stringp (sgml-xml-mode "XML" "SGML"))
  string-match("\\(^[^/]*\\)/" (sgml-xml-mode "XML" "SGML"))
  c-update-modeline()
  c-subword-mode()

Apparently, the c-update-modeline counts on mode-name being a string
when in an xml-mode buffer mode-name is a list.

In GNU Emacs 23.0.60.1 (i486-pc-linux-gnu, GTK+ Version 2.14.4)
 of 2008-12-05 on iridium, modified by Debian
 (emacs-snapshot package, version 1:20081205-1)
Windowing system distributor `The X.Org Foundation', version 11.0.10502000
configured using `configure  '--build' 'i486-linux-gnu' '--host' 'i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/23.0.60/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.0.60/site-lisp:/usr/share/emacs/site-lisp' '--with-x=yes' '--with-x-toolkit=gtk' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2' 'LDFLAGS=-g -Wl,--as-needed' 'CPPFLAGS=''

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: Debugger

Minor modes in effect:
  shell-dirtrack-mode: t
  show-paren-mode: t
  server-mode: t
  diff-auto-refine-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  global-auto-composition-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

Recent input:
C-y C-x C-s C-x b <return> <down> <down> <up> <down> 
<down> <return> <return> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> C-y C-x C-s <up> C-SPC <down> C-w <up> 
C-y C-x C-s C-x b <return> <down> <down> <return> <return> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> C-y C-x C-s C-x b <return> <down> m m m m m 
<down> <down> <down> <up> <up> <up> m <down> <down> 
m m m <down> m m <up> <up> <up> <up> <up> <up> <up> 
C-x o C-x b <return> <up> <down> C-SPC <down> M-w <up> 
<up> C-SPC <down> <down> M-w <up> C-SPC <down> M-w 
C-x o M-< Q C-y M-y <return> C-y M-y C-g C-g Q <up> 
<down> C-y <return> <up> <up> <return> Q <return> SPC 
C-x C-s C-x b <return> M-x t o g g <tab> d e b <tab> 
r <backspace> e r r <tab> <return> Q <return> <backspace> 
<backspace> C-h f s g m l - x m l <tab> m o <tab> <return> 
<tab> <backspace> <backspace> <tab> C-g C-g C-g <down> 
<down> <right> <right> S-SPC C-g <up> C-SPC M-f M-f 
C-c p g <return> C-g C-x b m e s s <return> M-v C-x 
b <return> <up> <return> <up> <down> C-s s t r i n 
g p C-g C-g C-g <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <up> <up> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <down> <down> <down> 
C-x o M-x r e p o <tab> r <tab> <tab> b <tab> <ret
urn>

Recent messages:
uncompressing cc-cmds.el.gz...done
Note: file is write protected
nnimap: Updating info for devel...done
nnimap: Updating info for devel...done
nnimap: Updating info for devel...done
Quit [2 times]
nnimap: Updating info for buy.lists...done
nnimap: Updating info for buy.lists...done
nnimap: Updating info for buy.lists...done
Making completion list... [2 times]