Subject: bug#21828: 24.4; copy-abbrev-table fails

From: Lee B <[email-masked]>
Date: Wed, 04 Nov 2015 21:34:27 +0900

Working on some tests for abbrev.el, I came across the following:

1. Start emacs -Q
2. In scratch buffer, evaluate (list-abbrevs) to get abbrev tables.
3. Pick an abbrev table (eg. in my case awk-mode-abbrev-table) and
evaluate it:

awk-mode-abbrev-table
[## 0 0 0 0 0 0 0 0 0 0 0 ...]

4. Evaluate (copy-abbrev-table awk-mode-abbrev-table). Generates error
with backtrace:

Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)
  define-abbrev([## 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...] "" nil nil)
  #[257 "\301\300\302.!.J.K$\207" [[## 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...] define-abbrev symbol-name] 6 "\n\n(fn SYMBOL)"](##)
  mapatoms(#[257 "\301\300\302.!.J.K$\207" [[## 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...] define-abbrev symbol-name] 6 "\n\n(fn SYMBOL)"] [## 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...])
  copy-abbrev-table([## 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...])
  eval((copy-abbrev-table awk-mode-abbrev-table) nil)
  eval-last-sexp-1(t)
  eval-last-sexp(t)
  eval-print-last-sexp(nil)
  call-interactively(eval-print-last-sexp nil nil)
  command-execute(eval-print-last-sexp)

I would expect (copy-abbrev-table awk-mode-abbrev-table) to yield the
same result as that in step 3.

This also occurs on my copy of the latest build from source, which is
25.0.50.1 as I write.

Lee.

In GNU Emacs 24.4.1 (x86_64-apple-darwin13.4.0, NS apple-appkit-1265.21)
 of 2015-03-13 on mbp.local
Windowing system distributor `Apple', version 10.3.1265
Configured using:
 `configure --prefix=/usr/local/Cellar/emacs/24.4
 --enable-locallisppath=/usr/local/share/emacs/site-lisp
 --infodir=/usr/local/Cellar/emacs/24.4/share/info/emacs --without-dbus
 --with-gnutls --with-imagemagick --without-popmail --with-ns
 --disable-ns-self-contained'

Important settings:
  locale-coding-system: utf-8-unix

Major mode: mu4e-headers

Minor modes in effect:
  diff-auto-refine-mode: t
  global-git-commit-mode: t
  recentf-mode: t
  helm-mode: t
  shell-dirtrack-mode: t
  async-bytecomp-package-mode: t
  hl-line-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
C-f C-f C-f C-x o C-n C-n C-n C-n C-n C-n C-x o C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-a C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n <down-mouse-1> 
<mouse-1> <down-mouse-1> <mouse-1> <double-down-mouse-1> 
<double-mouse-1> <triple-down-mouse-1> <triple-mouse-1> 
<down-mouse-1> <mouse-1> <down-mouse-1> <mouse-1> <down-mouse-1> 
<mouse-1> <double-down-mouse-1> <double-mouse-1> <down-mouse-1> 
<mouse-1> C-x C-w C-l C-l C-l t e C-j a u C-j <return> 
C-x b C-g C-x o M-o M-o C-x b <return> j l b o <tab> 
i n <tab> C-v C-v C-v C-v M-v M-v M-v M-v C-v C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n <return> q C-p <return> q C-p <return> 
q C-p <return> q C-p <return> q C-p <return> q C-p 
<return> q C-p <return> q C-p <return> q C-p <return> 
q C-p <return> q C-p <return> q C-p <return> q C-p 
<return> q C-p <return> q C-p <return> q C-p <return> 
q C-p <return> q C-p <return> q C-p <return> q C-p 
<return> q M-x r e p o <return>

Recent messages:
[mu4e] Retrieving mail...done
[mu4e] Indexing... processed 57000, updated 0
[mu4e] Indexing completed; processed 57470, updated 0, cleaned-up 0
[mu4e] Retrieving mail...done
[mu4e] Indexing... processed 57000, updated 0
[mu4e] Indexing completed; processed 57470, updated 0, cleaned-up 0
[mu4e] Found 500 matching messages
[mu4e] Retrieving mail...done
[mu4e] Indexing... processed 57000, updated 0
[mu4e] Indexing completed; processed 57470, updated 0, cleaned-up 0

Load-path shadows:
/Users/lee/.emacs.d/elpa/helm-1.7.7/helm-multi-match hides /Users/lee/.emacs.d/elpa/helm-core-1.7.7/helm-multi-match
~/.emacs.d/lisp/smtpmail-multi hides /usr/local/share/emacs/site-lisp/smtpmail-multi
/Users/lee/.emacs.d/elpa/cperl-mode-6.3/cperl-mode hides /usr/local/Cellar/emacs/24.4/share/emacs/24.4/lisp/progmodes/cperl-mode
~/.emacs.d/emms/lisp/tq hides /usr/local/Cellar/emacs/24.4/share/emacs/24.4/lisp/emacs-lisp/tq

Features:
(shadow emacsbug ert ewoc mc-edit-lines multiple-cursors-core rect
goto-addr debug misearch multi-isearch apropos em-unix em-term term
ehelp em-script em-prompt em-ls em-hist em-pred em-glob em-dirs em-cmpl
em-basic em-banner em-alias esh-var esh-io esh-cmd esh-opt esh-ext
esh-proc esh-arg esh-groups eshell esh-module esh-mode esh-util inf-lisp
cl-indent slime arc-mode archive-mode hyperspec magit-blame magit-stash
magit-bisect magit-remote magit-commit magit-sequence magit magit-log
magit-apply magit-wip magit-diff smerge-mode diff-mode magit-core
magit-process magit-popup magit-mode magit-git magit-section magit-utils
git-commit log-edit pcvs-util with-editor tramp-sh server dash gnutls
mailalias timezone shr vc-git view eieio-opt flow-fill qp parse-time
smiley gnus-cite mail-extr gnus-async gnus-bcklg gnus-agent gnus-srvr
gnus-score score-mode nnvirtual nntp gnus-ml gnus-msg gnus-art mm-uu
mml2015 mm-view mml-smime smime dig nndoc gnus-cache gnus-sum nnoo
url-handlers gnus-group gnus-undo nnmail mail-source gnus-start
gnus-spec gnus-int gnus-range gnus-win gnus gnus-ems nnheader help-mode
mm-archive network-stream starttls url-cache crm debbugs-gnu debbugs
soap-client url-http tls url-auth url-gw warnings recentf tree-widget
wid-edit mule-util winner helm-command helm-elisp helm-eval edebug eldoc
ace-window avy org-element org-rmail org-mhe org-irc org-info org-gnus
org-docview org-bibtex bibtex org-bbdb org-w3m org org-macro
org-footnote org-pcomplete org-list org-faces org-entities noutline
outline org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table
ob-exp org-src ob-keys ob-comint ob-core ob-eval org-compat org-macs
org-loaddefs find-func cal-menu calendar cal-loaddefs emms-player-vlc
emms-player-mplayer emms-setup emms-librefm-stream
emms-librefm-scrobbler emms-playlist-limit emms-volume
emms-volume-amixer emms-i18n emms-history emms-score emms-stream-info
emms-metaplaylist-mode emms-bookmarks emms-cue emms-mode-line-icon
emms-browser sort emms-playlist-sort emms-last-played emms-player-xine
emms-player-mpd tq emms-playing-time emms-lyrics emms-url
emms-player-simple emms-streams emms-tag-editor emms-info-metaflac
emms-mark emms-mode-line emms-cache emms-info-ogginfo emms-info-mp3info
emms-info later-do emms-playlist-mode emms-source-playlist
emms-source-file locate emms emms-compat helm-mode helm-files
image-dired tramp tramp-compat tramp-loaddefs trampver shell pcomplete
dired-x dired-aux ffap thingatpt helm-buffers helm-elscreen helm-tags
helm-bookmark helm-adaptive helm-info bookmark pp helm-locate helm-grep
helm-regexp helm-plugin helm-external helm-net helm-utils helm-help
helm-types helm easy-mmode helm-source helm-multi-match helm-lib
helm-config helm-easymenu async-bytecomp async helm-aliases undo-tree
diff twittering-mode url url-proxy url-privacy url-expand url-methods
url-history url-cookie url-domsuf url-util url-parse url-vars mailcap
xml mu4e mu4e-speedbar mu4e-main mu4e-view epa epg browse-url
mu4e-headers mu4e-compose mu4e-draft mu4e-actions ido rfc2368 mu4e-mark
mu4e-message html2text mu4e-proc mu4e-utils doc-view jka-compr
image-mode dired mu4e-lists mu4e-about mu4e-vars message format-spec
rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader hl-line mu4e-meta smtpmail-multi
smtpmail auth-source eieio eieio-core gnus-util password-cache sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
tango-dark-theme js2-mode imenu cperl-mode web-mode disp-table php-mode
advice help-fns byte-opt bytecomp byte-compile cconv derived rx cl-macs
edmacro kmacro cl gv speedbar sb-image ezimage dframe etags flymake
compile comint ansi-color ring add-log cc-langs cl-loaddefs cl-lib
cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs slime-autoloads info easymenu package epg-config
time-date tooltip electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel ns-win tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment lisp-mode prog-mode register page menu-bar
rfn-eshadow timer select scroll-bar 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 minibuffer nadvice loaddefs button
faces cus-face macroexp files text-properties overlay sha1 md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process cocoa ns multi-tty emacs)

Memory information:
((conses 16 806560 168855)
 (symbols 48 66329 4)
 (miscs 40 1744 2063)
 (strings 32 183314 55913)
 (string-bytes 1 5546576)
 (vectors 16 71152)
 (vector-slots 8 1993706 71591)
 (floats 8 1057 1473)
 (intervals 56 28009 5993)
 (buffers 960 87))