Subject: bug#6086: Symbol's value as variable is void: fundamental-mode-syntax-table

From: Jim Meyering <[email-masked]>
Date: Mon, 03 May 2010 07:58:34 +0200

Hello,

I use snapshots built from the latest sources.
Starting about a week ago (April 28th), this code in my
~/.emacs has been making that snapshot version fail:

    Loading ~/emacs/startup...done
    Symbol's value as variable is void: fundamental-mode-syntax-table

The offending code is here:

    (defun my-_-hook (modename)
      (add-hook
        (intern (concat modename "-mode-hook"))
        `(lambda () (modify-syntax-entry ?_ "w"
                     ,(intern (concat modename "-mode-syntax-table"))))))

    ;;; Treat underscores as word-constituent characters in these modes.
    (mapcar 'my-_-hook '("c" "c++" "perl" "makefile" "text" "fundamental"
                         "m4" "shell-script" "autoconf"))

This looks like the change set that provoked it:

2010-04-28  Stefan Monnier  <[email-masked]>

       Make it possible to locally disable a globally enabled mode.
       * simple.el (fundamental-mode): Run fundamental-mode-hook.
       * emacs-lisp/derived.el (define-derived-mode): Use fundamental-mode
       rather than kill-all-local-variables so it runs fundamental-mode-hook.
       * emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
       Use fundamental-mode-hook to run MODE-enable-in-buffers earlier, so
       that subsequent hooks get a chance to disable it.

For now, I've simply removed "fundamental" from the list.
Is there a better way?