Subject: bug#20386: 25.0.50; error when calling sgml-attributes and sgml-tag

From: Matt Lundin <[email-masked]>
Date: Mon, 20 Apr 2015 14:15:03 -0500

Within html-mode, calling sgml-tag (C-c C-o) and entering a tag that
prompts for attributes (e.g., "h3") results in the error/backtrace
included below. A similar error occurs when calling sgml-attributes
within an existing tag (e.g., "<h3></h3>").

As far as I can tell, this error began with commit
84e0b7dad6f1a8e53261f9b96f5a9080fea681a4.

Debugger entered--Lisp error: (void-variable alist)
  (completing-read "Attribute: " alist)
  eval((completing-read "Attribute: " alist))
  skeleton-read((completing-read "Attribute: " alist))
  sgml-attributes("h3" t)
  (setq v2 (sgml-attributes "h3" t))
  eval((setq v2 (sgml-attributes "h3" t)))
  skeleton-internal-1((quote (setq v2 (sgml-attributes "h3" t))) nil nil)
  skeleton-internal-list((("") (quote (setq v2 (sgml-attributes "h3" t))) 62 (cond ((string= "![" "h3") (backward-char) (quote (("") " [ " _ " ]]"))) ((and (eq v2 t) sgml-xml-mode (member "h3" sgml-empty-tags)) (quote (("") -1 " />"))) ((or (and (eq v2 t) (not sgml-xml-mode)) (string-match "^[/!?]" "h3")) nil) ((symbolp v2) (if (eq v2 t) (setq v2 nil)) (quote (("") v2 _ v2 "</" (identity (quote "h3")) 62 >))) ((eq (car v2) t) (cons (quote ("")) (cdr v2))) (t (append (quote (("") (car v2))) (cdr v2) (quote (resume: (car v2) _ "</" (identity (quote "h3")) 62 >)))))) "")
  skeleton-internal-1((("") (quote (setq v2 (sgml-attributes "h3" t))) 62 (cond ((string= "![" "h3") (backward-char) (quote (("") " [ " _ " ]]"))) ((and (eq v2 t) sgml-xml-mode (member "h3" sgml-empty-tags)) (quote (("") -1 " />"))) ((or (and (eq v2 t) (not sgml-xml-mode)) (string-match "^[/!?]" "h3")) nil) ((symbolp v2) (if (eq v2 t) (setq v2 nil)) (quote (("") v2 _ v2 "</" (identity (quote "h3")) 62 >))) ((eq (car v2) t) (cons (quote ("")) (cdr v2))) (t (append (quote (("") (car v2))) (cdr v2) (quote (resume: (car v2) _ "</" (identity (quote "h3")) 62 >)))))) t nil)
  skeleton-internal-1((\` (("") (quote (setq v2 (sgml-attributes (\, str) t))) 62 (cond ((string= "![" (\, str)) (backward-char) (quote (("") " [ " _ " ]]"))) ((and (eq v2 t) sgml-xml-mode (member (\, str) sgml-empty-tags)) (quote (("") -1 " />"))) ((or (and (eq v2 t) (not sgml-xml-mode)) (string-match "^[/!?]" (\, str))) nil) ((symbolp v2) (if (eq v2 t) (setq v2 nil)) (quote (("") v2 _ v2 "</" (identity (quote ...)) 62 >))) ((eq (car v2) t) (cons (quote ("")) (cdr v2))) (t (append (quote (("") (car v2))) (cdr v2) (quote (resume: (car v2) _ "</" (identity ...) 62 >))))))) nil nil)
  skeleton-internal-list(((funcall (or skeleton-transformation-function (quote identity)) (setq sgml-tag-last (completing-read (if (> (length sgml-tag-last) 0) (format "Tag (default %s): " sgml-tag-last) "Tag: ") sgml-tag-alist nil nil nil (quote sgml-tag-history) sgml-tag-last))) 60 str | (("") -1 (quote (undo-boundary)) (identity "&lt;")) | (\` (("") (quote (setq v2 (sgml-attributes (\, str) t))) 62 (cond ((string= "![" (\, str)) (backward-char) (quote (("") " [ " _ " ]]"))) ((and (eq v2 t) sgml-xml-mode (member (\, str) sgml-empty-tags)) (quote (("") -1 " />"))) ((or (and (eq v2 t) (not sgml-xml-mode)) (string-match "^[/!?]" (\, str))) nil) ((symbolp v2) (if (eq v2 t) (setq v2 nil)) (quote (("") v2 _ v2 "</" (identity ...) 62 >))) ((eq (car v2) t) (cons (quote ("")) (cdr v2))) (t (append (quote (... ...)) (cdr v2) (quote (resume: ... _ "</" ... 62 >)))))))) nil)
  #[nil "\302	\"\207" [skeleton str skeleton-internal-list] 3]()
  funcall(#[nil "\302	\"\207" [skeleton str skeleton-internal-list] 3])
  (let ((completion-ignore-case (quote t))) (funcall (quote #[nil "\302	\"\207" [skeleton str skeleton-internal-list] 3])))
  eval((let ((completion-ignore-case (quote t))) (funcall (quote #[nil "\302	\"\207" [skeleton str skeleton-internal-list] 3]))))
  skeleton-insert(((funcall (or skeleton-transformation-function (quote identity)) (setq sgml-tag-last (completing-read (if (> (length sgml-tag-last) 0) (format "Tag (default %s): " sgml-tag-last) "Tag: ") sgml-tag-alist nil nil nil (quote sgml-tag-history) sgml-tag-last))) 60 str | (("") -1 (quote (undo-boundary)) (identity "&lt;")) | (\` (("") (quote (setq v2 (sgml-attributes (\, str) t))) 62 (cond ((string= "![" (\, str)) (backward-char) (quote (("") " [ " _ " ]]"))) ((and (eq v2 t) sgml-xml-mode (member (\, str) sgml-empty-tags)) (quote (("") -1 " />"))) ((or (and (eq v2 t) (not sgml-xml-mode)) (string-match "^[/!?]" (\, str))) nil) ((symbolp v2) (if (eq v2 t) (setq v2 nil)) (quote (("") v2 _ v2 "</" (identity ...) 62 >))) ((eq (car v2) t) (cons (quote ("")) (cdr v2))) (t (append (quote (... ...)) (cdr v2) (quote (resume: ... _ "</" ... 62 >)))))))) nil nil)
  skeleton-proxy-new(((funcall (or skeleton-transformation-function (quote identity)) (setq sgml-tag-last (completing-read (if (> (length sgml-tag-last) 0) (format "Tag (default %s): " sgml-tag-last) "Tag: ") sgml-tag-alist nil nil nil (quote sgml-tag-history) sgml-tag-last))) 60 str | (("") -1 (quote (undo-boundary)) (identity "&lt;")) | (\` (("") (quote (setq v2 (sgml-attributes (\, str) t))) 62 (cond ((string= "![" (\, str)) (backward-char) (quote (("") " [ " _ " ]]"))) ((and (eq v2 t) sgml-xml-mode (member (\, str) sgml-empty-tags)) (quote (("") -1 " />"))) ((or (and (eq v2 t) (not sgml-xml-mode)) (string-match "^[/!?]" (\, str))) nil) ((symbolp v2) (if (eq v2 t) (setq v2 nil)) (quote (("") v2 _ v2 "</" (identity ...) 62 >))) ((eq (car v2) t) (cons (quote ("")) (cdr v2))) (t (append (quote (... ...)) (cdr v2) (quote (resume: ... _ "</" ... 62 >)))))))) nil nil)
  sgml-tag(nil nil)
  funcall-interactively(sgml-tag nil nil)
  call-interactively(sgml-tag nil nil)
  command-execute(sgml-tag)

In GNU Emacs 25.0.50.2 (i686-pc-linux-gnu, GTK+ Version 3.16.2)
 of 2015-04-19 on archeee
Repository revision: 62e170072e6000b30c37792227dc34e71a31d797
Windowing system distributor `The X.Org Foundation', version 11.0.11701000
Configured using:
 `configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --mandir=/usr/share/man
 --pdfdir=/usr/share/doc/emacs/pdf --with-sound=alsa --without-gconf
 --with-x-toolkit=gtk3 --with-xft 'CFLAGS=-march=i686 -mtune=generic -O2
 -pipe -fstack-protector-strong --param=ssp-buffer-size=4'
 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro
 CPPFLAGS=-D_FORTIFY_SOURCE=2'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY
ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB

Important settings:
  value of $LC_CTYPE: en_US.UTF-8
  value of $LC_MESSAGES: C
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Messages

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-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

Recent messages:
/home/matt/test.html locked by matt@archeee (pid 3893): (s, q, p, ?)? 
Please type q, s, or p; or ? for help
/home/matt/test.html locked by matt@archeee (pid 3893): (s, q, p, ?)? 
Please type q, s, or p; or ? for help
Quit
next-line: End of buffer
Entering debugger...
Making completion list...
Quit
Type "q" in help window to restore its previous buffer, C-M-v to scroll help.

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message dired format-spec
rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util help-fns mail-prsvr mail-utils help-mode easymenu debug skeleton
cus-start cus-load sgml-mode mule-util time-date tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode
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 cl-preloaded 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 dbusbind gfilenotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty emacs)

Memory information:
((conses 8 90059 9879)
 (symbols 24 19527 0)
 (miscs 20 73 257)
 (strings 16 14655 4308)
 (string-bytes 1 364073)
 (vectors 8 10754)
 (vector-slots 4 408319 9084)
 (floats 8 96 170)
 (intervals 28 428 20)
 (buffers 520 16)
 (heap 1024 24434 747))