Subject: Void variable nxml-mode-map when running nXhtml tests
From: Lennart Borgman <[email-masked]>
To: Emacs Bugs <[email-masked]>
Date: Sun, 2 Jan 2011 10:36:55 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

I found a problem with nxml-mode.el when testing nXhtml. If nXhtml is
not byte compiled it works fine, but when it is byte compiled some
tests fails with "void variable nxml-mode-map".

With an Emacs checkout from 2010-11-23 all tests pass, but with a
checkout from 2010-12-15 some tests fail as above.

I think the problem is caused by a small part of this change:

  2010-12-03  Glenn Morris  <[email-masked]>

	* nxml/nxml-mode.el: Require rng-nxml.
	(rng-nxml-mode-init, nxml-enable-unicode-char-name-sets):
	Remove declarations.

This change moved the (provide 'nxml-mode) statement to the beginning
of nxml-mode.el. Since eval-after-load is run at the provide the
statement

(eval-after-load 'nxml-mode
  '(progn
     (define-key nxml-mode-map [C-M-left]  'nxml-backward-element)
     (define-key nxml-mode-map [C-M-right] 'nxml-forward-element)
     (define-key nxml-mode-map [C-M-up]    'nxml-backward-up-element)
     (define-key nxml-mode-map [C-M-down]  'nxml-down-element)))

in the nXhtml file nxhtml-mode.el will now be run before nxml-mode-map
is defined.