Subject: bug#9360: 24.0.50; emacs-lisp-mode-abbrev-table neglected in emacs-lisp-mode

From: Glenn Morris <[email-masked]>
Date: Wed, 24 Aug 2011 16:21:45 -0400

Seweryn Kokot wrote:

> When in a buffer in emacs-lisp-mode, emacs 24 neglects
> emacs-lisp-mode-abbrev-table. It uses lisp-mode-abbrev-table only. I
> think the elisp manual should tell us more about the difference between
> the three lisp abbrev tables:
> emacs-lisp-mode-abbrev-table, lisp-interaction-mode-abbrev-table and
> lisp-mode-abbrev-table. I add that in emacs 23
> emacs-lisp-mode-abbrev-table worked was taken into account when in
> emacs-lisp-mode buffer.

I don't see that emacs-lisp-mode-abbrev-table has ever had an effect.
In 23.1 it is void. In 23.2 and on it is defined (by define-derived-mode)
but not used. `add-mode-abbrev' in an Emacs Lisp mode buffer adds to
lisp-mode-abbrev-table. Adding an entry to emacs-lisp-mode-abbrev-table
in abbrev_defs has no effect.

This is because emacs-lisp-mode calls lisp-mode-variables, which
explicitly sets the abbrev-table to lisp-mode-abbrev-table.

To me, the bug looks like the fact that emacs-lisp-mode-abbrev-table is
defined at all. If it's never going to be used, the definition of
emacs-lisp-mode should specify an :abbrev-table.

> In GNU Emacs 24.0.50.1 (i386-mingw-nt5.1.2600)
>  of 2011-08-22 on 3249CTO