Subject: bug#15435: closed (Re: bug#15435: 24.3.50; [patch] sql-add-product adds invalid alist elt)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 13 Oct 2013 05:24:02 +0000

Your bug report

#15435: 24.3.50; [patch] sql-add-product adds invalid alist elt

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
15435: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15435
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#15435: 24.3.50; [patch] sql-add-product adds invalid alist elt
From: Glenn Morris <[email-masked]>
To: [email-masked]
Date: Sun, 13 Oct 2013 01:23:56 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Version: 24.4

Thanks; applied.

Subject: 24.3.50; [patch] sql-add-product adds invalid alist elt
From: Andreas Politz <[email-masked]>
To: [email-masked]
Date: Sat, 21 Sep 2013 23:19:09 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

The function `sql-add-product' adds an element corresponding to a
sql-product P to the alist `sql-product-alist', with P as
intended key.  But the level of nesting in the call to
add-to-list is one to deep, as should be obvious from the snippet
below.

sql.el:
(defun sql-add-product (product display &rest plist)
  [...]
  ;; Don't do anything if the product is already supported
  (if (assoc product sql-product-alist)
      (user-error "Product `%s' is already defined" product)
    ;; Add product to the alist
    (add-to-list 'sql-product-alist `((,product :name ,display . ,plist)))
    [...]))

-ap

=== modified file 'lisp/progmodes/sql.el'
*** lisp/progmodes/sql.el	2013-07-24 00:25:53 +0000
--- lisp/progmodes/sql.el	2013-09-21 14:07:17 +0000
***************
*** 2439,2445 ****
        (user-error "Product `%s' is already defined" product)
  
      ;; Add product to the alist
!     (add-to-list 'sql-product-alist `((,product :name ,display . ,plist)))
      ;; Add a menu item to the SQL->Product menu
      (easy-menu-add-item sql-mode-menu '("Product")
  			;; Each product is represented by a radio
--- 2439,2445 ----
        (user-error "Product `%s' is already defined" product)
  
      ;; Add product to the alist
!     (add-to-list 'sql-product-alist `(,product :name ,display . ,plist))
      ;; Add a menu item to the SQL->Product menu
      (easy-menu-add-item sql-mode-menu '("Product")
  			;; Each product is represented by a radio

In GNU Emacs 24.3.50.2 (x86_64-unknown-linux-gnu, GTK+ Version 2.20.1)
 of 2013-09-21 on luca
Bzr revision: 114421 [email-masked]
Windowing system distributor `The X.Org Foundation', version 11.0.10707000
System Description:	Debian GNU/Linux 6.0.7 (squeeze)

Important settings:
  value of $LC_COLLATE: C
  value of $LC_MESSAGES: C
  value of $LANG: de_DE.UTF-8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Diff

Minor modes in effect:
  semantic-minor-modes-format: ((:eval (if (or semantic-highlight-edits-mode semantic-show-unmatched-syntax-mode)  S)))
  vc-parent-buffer: sql.el
  whitespace-mode: t
  diff-auto-refine-mode: t
  desktop-save-mode: t
  ispell-track-input-method: t
  recentf-mode: t
  show-paren-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  window-numbering-mode: t
  shell-dirtrack-mode: t
  scroll-other-window-mode: t
  savehist-mode: t
  TeX-PDF-mode: t
  ekey-mode: t
  winner-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  view-mode: t

Recent input:
C-s <return> C-l M-v C-x o C-x b <return> C-u C-x v 
~ 5 2 2 2 7 <return> C-c i a d d <return> C-s s q l 
- a d d - p r o d u c t C-s C-s C-s C-s C-s C-s C-s 
C-s C-s C-g C-x k <return> C-x C-j ~ x y x C-g C-x 
b <return> C-x b l o g <return> M-v M-< C-s s q l <return> 
M-s o a d d - p r o d u c t \ b <backspace> _ > <return> 
M-s o M-p <return> M-s o M-p M-f M-f C-k <return> C-x 
o C-x k <return> C-p C-p C-x v g C-c i C-, m = C-v 
C-v C-v C-v C-s a d d - <return> C-l C-l C-l M-p M-n 
C-l C-l M-n M-n M-n M-p M-p M-p M-p M-p M-p C-r a d 
d - p r o <return> M-s C-s C-s C-s C-s C-s C-s <return> 
C-l C-l M-n M-p M-n M-p n C-, c M-n M-n M-p M-n M-p 
M-n M-n M-n M-p M-n M-n M-n C-M-s C-M-s C-M-s C-M-s 
<return> C-l C-a C-l C-l C-v C-v C-x b d i f C-g C-l 
M-v M-v C-l C-x k <return> C-v C-v C-v C-v C-x o C-x 
o D C-v C-v C-x k <return> C-x o j n p C-s d e f u 
n SPC a DEL s q l - a d d <return> C-l C-a l C-l M-< 
C-x b C-s <return> C-x v = C-x o C-c i s q l - a d 
d <tab> <return> M-f C-f C-a C-SPC 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 M-w C-x 
o M-x r e p o M-p <return>

Recent messages:
Annotating... [2 times]
Redisplaying annotation...done (Spanned from -984029.1 to 15969.9 days old)
Annotating... done
Redisplaying annotation...done (Spanned from 5367.9 to 135.0 days old)
Annotating... done
Mark saved where search started
Mark set
Finding changes in /home/politza/src/emacs/trunk/lisp/progmodes/sql.el...
View mode: type C-h for help, h for commands, q to quit.
Finding changes in /home/politza/src/emacs/trunk/lisp/progmodes/sql.el...done

Load-path shadows:
/home/politza/.emacs.d/elpa/yasnippet-0.8.0/dropdown-list hides /home/politza/.emacs.d/plugins/yasnippet-0.6.1c/dropdown-list
/home/politza/.emacs.d/elpa/yasnippet-0.8.0/yasnippet hides /home/politza/.emacs.d/plugins/yasnippet-0.6.1c/yasnippet
/home/politza/.emacs.d/plugins/tblc hides /home/politza/.emacs.d/plugins/tblc/tblc
/home/politza/.emacs.d/plugins/haskell-mode/haskell-cabal hides /home/politza/.emacs.d/plugins/haskell/haskell-cabal
/home/politza/.emacs.d/plugins/haskell-mode/haskell-decl-scan hides /home/politza/.emacs.d/plugins/haskell/haskell-decl-scan
/home/politza/.emacs.d/plugins/haskell-mode/haskell-doc hides /home/politza/.emacs.d/plugins/haskell/haskell-doc
/home/politza/.emacs.d/plugins/haskell-mode/ghc-core hides /home/politza/.emacs.d/plugins/haskell/ghc-core
/home/politza/.emacs.d/plugins/haskell-mode/haskell-mode hides /home/politza/.emacs.d/plugins/haskell/haskell-mode
/home/politza/.emacs.d/plugins/haskell-mode/haskell-c hides /home/politza/.emacs.d/plugins/haskell/haskell-c
/home/politza/.emacs.d/plugins/haskell-mode/haskell-indentation hides /home/politza/.emacs.d/plugins/haskell/haskell-indentation
/home/politza/.emacs.d/plugins/haskell-mode/haskell-site-file hides /home/politza/.emacs.d/plugins/haskell/haskell-site-file
/home/politza/.emacs.d/plugins/haskell-mode/haskell-ghci hides /home/politza/.emacs.d/plugins/haskell/haskell-ghci
/home/politza/.emacs.d/plugins/haskell-mode/inf-haskell hides /home/politza/.emacs.d/plugins/haskell/inf-haskell
/home/politza/.emacs.d/plugins/haskell-mode/haskell-indent hides /home/politza/.emacs.d/plugins/haskell/haskell-indent
/home/politza/.emacs.d/plugins/haskell-mode/haskell-hugs hides /home/politza/.emacs.d/plugins/haskell/haskell-hugs
/home/politza/.emacs.d/plugins/haskell-mode/haskell-font-lock hides /home/politza/.emacs.d/plugins/haskell/haskell-font-lock
/home/politza/.emacs.d/plugins/haskell-mode/haskell-simple-indent hides /home/politza/.emacs.d/plugins/haskell/haskell-simple-indent
/home/politza/.emacs.d/plugins/jedi/scratch hides /home/politza/.emacs.d/plugins/ewm/scratch
/home/politza/.emacs.d/elpa/company-0.6.10/.dir-locals hides /home/politza/.emacs.d/plugins/el-get/.dir-locals
/home/politza/.emacs.d/plugins/saveplace hides /home/politza/src/emacs/trunk/lisp/saveplace
/home/politza/.emacs.d/plugins/imenu hides /home/politza/src/emacs/trunk/lisp/imenu
/home/politza/.emacs.d/plugins/term hides /home/politza/src/emacs/trunk/lisp/term
/home/politza/.emacs.d/plugins/python/python/python hides /home/politza/src/emacs/trunk/lisp/progmodes/python
/home/politza/.emacs.d/elpa/company-0.6.10/.dir-locals hides /home/politza/src/emacs/trunk/lisp/gnus/.dir-locals
/home/politza/.emacs.d/plugins/python/python/sym-comp hides /home/politza/src/emacs/trunk/lisp/obsolete/sym-comp
/home/politza/.emacs.d/plugins/matlab/matlab hides /usr/share/emacs-snapshot/site-lisp/emacs-goodies-el/matlab
/home/politza/.emacs.d/plugins/boxquote hides /usr/share/emacs-snapshot/site-lisp/emacs-goodies-el/boxquote
/home/politza/.emacs.d/plugins/bm hides /usr/share/emacs-snapshot/site-lisp/emacs-goodies-el/bm
/home/politza/.emacs.d/plugins/haskell-mode/haskell-decl-scan hides /usr/share/emacs-snapshot/site-lisp/haskell-mode/haskell-decl-scan
/home/politza/.emacs.d/plugins/haskell-mode/haskell-c hides /usr/share/emacs-snapshot/site-lisp/haskell-mode/haskell-c
/home/politza/.emacs.d/plugins/haskell-mode/haskell-ghci hides /usr/share/emacs-snapshot/site-lisp/haskell-mode/haskell-ghci
/home/politza/.emacs.d/plugins/haskell-mode/haskell-doc hides /usr/share/emacs-snapshot/site-lisp/haskell-mode/haskell-doc
/home/politza/.emacs.d/plugins/haskell-mode/haskell-indent hides /usr/share/emacs-snapshot/site-lisp/haskell-mode/haskell-indent
/home/politza/.emacs.d/plugins/haskell-mode/haskell-mode hides /usr/share/emacs-snapshot/site-lisp/haskell-mode/haskell-mode
/home/politza/.emacs.d/plugins/haskell-mode/haskell-hugs hides /usr/share/emacs-snapshot/site-lisp/haskell-mode/haskell-hugs
/home/politza/.emacs.d/plugins/haskell-mode/haskell-site-file hides /usr/share/emacs-snapshot/site-lisp/haskell-mode/haskell-site-file
/home/politza/.emacs.d/plugins/haskell-mode/haskell-cabal hides /usr/share/emacs-snapshot/site-lisp/haskell-mode/haskell-cabal
/home/politza/.emacs.d/plugins/haskell-mode/inf-haskell hides /usr/share/emacs-snapshot/site-lisp/haskell-mode/inf-haskell
/home/politza/.emacs.d/plugins/haskell-mode/haskell-font-lock hides /usr/share/emacs-snapshot/site-lisp/haskell-mode/haskell-font-lock
/home/politza/.emacs.d/plugins/haskell-mode/haskell-simple-indent hides /usr/share/emacs-snapshot/site-lisp/haskell-mode/haskell-simple-indent
/home/politza/.emacs.d/plugins/haskell-mode/haskell-indentation hides /usr/share/emacs-snapshot/site-lisp/haskell-mode/haskell-indentation

Features:
(shadow bbdb-message nnir emacsbug sendmail smerge-mode vc-annotate
add-log log-view pcvs-util whitespace diff-mode ispell mm-archive sort
smiley gnus-cite mail-extr gnus-async gnus-bcklg qp gnus-ml disp-table
nndraft nnmh utf-7 network-stream starttls nnfolder bbdb-gnus nnnil
gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art
mm-uu mml2015 epg-config mm-view mml-smime smime dig mailcap nntp
gnus-cache etags reposition apropos misearch multi-isearch pp ibuf-ext
tex-buf reftex-dcr reftex-auc font-latex sh-script smie executable
semantic/format ezimage semantic/tag-ls semantic/ctxt semantic/dep
semantic/find semantic/wisent/python-wy python-21 python sym-comp
conf-mode cc-langs cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles
cc-align cc-engine cc-vars cc-defs dired-eshell vc-git
doc-view-fixed-scroll pdftk-outline vc-bzr vc-svn vc-dir ewoc vc
vc-dispatcher emacs-customizations nogroup-customizations
wp-customizations view-customizations tex-customizations
reftex-customizations reftex-miscellaneous-configurations-customizations
reftex-label-support-customizations
reftex-referencing-labels-customizations
reftex-defining-label-environments-customizations AUCTeX-customizations
preview-customizations preview-latex-customizations
preview-appearance-customizations TeX-parse-customizations
TeX-file-customizations TeX-command-customizations
TeX-view-customizations LaTeX-customizations LaTeX-macro-customizations
LaTeX-math-customizations LaTeX-indentation-customizations
table-customizations table-hooks-customizations outlines-customizations
programming-customizations tools-customizations vc-customizations
log-edit-customizations semantic-customizations makefile-customizations
etags-customizations ediff-customizations diff-customizations
diff-mode-customizations languages-customizations elpy-customizations
matlab-customizations sh-customizations python-customizations rx
haskell-customizations c-customizations asm-customizations
multimedia-customizations image-customizations pcase help-customizations
ekey-customizations info-lookup-customizations info-customizations
customize-customizations custom-buffer-customizations
apropos-customizations files-customizations uniquify-customizations
uniquify sunrise-customizations recentf-customizations
find-file-customizations backup-customizations faces-customizations
highlight-symbol-customizations font-lock-customizations
hi-lock-customizations facemenu-customizations external-customizations
server-customizations processes-customizations shell-customizations
proced-customizations gud-customizations tooltip-customizations
grep-customizations compilation-customizations next-error-customizations
comint-customizations SQL-customizations man-customizations
environment-customizations xterm-customizations windows-customizations
winner-customizations minibuffer-customizations savehist-customizations
completion-spelling lib-string menu-customizations
keyboard-customizations chistory-customizations
initialization-customizations frames-customizations
ediff-window-customizations desktop-customizations desktop frameset
dired-customizations dired-x-customizations dired-x
dired-details-customizations editing-customizations
yasnippet-customizations paragraphs-customizations
matching-customizations paren-matching-customizations
paren-showing-customizations isearch-customizations
bookmark-customizations killing-customizations indent-customizations
fill-customizations emulations-customizations
editing-basics-customizations development-customizations
lisp-customizations re-builder-customizations
inferior-lisp-customizations ielm-customizations ert-customizations
edebug-customizations bytecomp-customizations advice-customizations
internal-customizations alloc-customizations extensions-customizations
eldoc-customizations cust-print-customizations data-customizations
save-place-customizations convenience-customizations
diminish-customizations diminish iedit-customizations
imenu-tree-customizations tags-tree-customizations
company-customizations workgroups-customizations
window-numbering-customizations pabbrev-customizations
kmacro-customizations imenu-customizations ibuffer-customizations
ibuf-macs hl-line-customizations hippie-expand-customizations
file-cache-customizations ffap-customizations completion-customizations
iswitchb-customizations browse-kill-ring-customizations
auto-revert-customizations auto-insert-customizations
Buffer-menu-customizations comm-customizations tramp-customizations
browse-url-customizations applications-customizations
mediawiki-customizations w3m-customizations package-customizations
mail-customizations bbdb-customizations bbdb-sendmail-customizations
bbdb-mua-customizations bbdb-mua bbdb-com crm bbdb
smtpmail-customizations sendmail-customizations gnus-customizations
nnmail-customizations nnmail-split-customizations
gnus-summary-customizations gnus-thread-customizations
gnus-summary-various-customizations gnus-summary-sort-customizations
gnus-summary-marks-customizations
gnus-summary-maneuvering-customizations
gnus-summary-format-customizations parse-time-rfc2822
gnus-summary-exit-customizations gnus-sum gnus-group gnus-undo
gnus-start gnus-spec gnus-win gnus-start-customizations
gnus-server-customizations gnus-message-customizations
message-customizations message-various-customizations
message-sending-customizations message-buffers-customizations
gnus-group-customizations gnus-group-visual-customizations
gnus-nnimap-format nnimap nnmail gnus-int mail-source message rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
ietf-drums mailabbrev gmm-utils mailheader parse-time tls utf7 netrc
nnoo gnus gnus-ems nnheader mail-utils gnus-group-various-customizations
gnus-group-select-customizations gnus-files-customizations
gnus-newsrc-customizations gnus-exit-customizations
gnus-article-customizations gnus-article-hiding-customizations
ispell-customizations eshell-customizations eshell-module-customizations
eshell-smart-customizations eshell-hist-customizations
eshell-mode-customizations edebug doc-view-customizations
pdf-tools-customizations pdf-annot-customizations
pdf-links-customizations pdf-isearch-customizations pdf-annot tablist
tablist-filter semantic/wisent/comp semantic/wisent
semantic/wisent/wisent semantic/util-modes semantic/util semantic
semantic/tag semantic/lex semantic/fw mode-local cedet pdf-occur
pdf-history pdf-outline pdf-links pdf-isearch pdf-misc imenu pdf-info tq
pdf-render pdf-tools pdf-util gnus-range warnings doc-view jka-compr
image-mode calendar-customizations org-customizations
org-structure-customizations org-plain-lists-customizations
org-edit-structure-customizations org-startup-customizations
org-link-customizations org-latex-customizations
org-appearance-customizations holidays-customizations
calculator-customizations calc-customizations server recentf tree-widget
.autoload paren yasnippet dropdown-list help-mode window-numbering w3m
browse-url timezone w3m-hist w3m-e23 w3m-ccl ccl w3m-fsf w3m-favicon
w3m-image w3m-proc w3m-util view tramp tramp-compat tramp-loaddefs
trampver shell track-last-window scroll-other-window saveplace savehist
reftex reftex-vars pabbrev org ob-tangle ob-ref ob-lob ob-table
org-footnote org-src ob-comint ob-keys org-pcomplete org-list org-faces
org-entities noutline outline org-version ob-emacs-lisp ob org-compat
org-macs ob-eval org-loaddefs format-spec find-func cal-menu calendar
cal-loaddefs lib-edit lib-window lib-isearch lib-buffer reveal iswitchb
lib-basic lib-lispext latex easy-mmode tex-style tex dbus xml tex-site
auto-loads info-look info ibuffer hippie-exp grep compile filecache
edit-minibuffer eldoc-eval pcomplete esh-var esh-io esh-cmd esh-opt
esh-ext esh-proc esh-arg esh-groups eshell esh-module esh-mode esh-util
ekey assoc dired-details+ dired dired-details cool-prefix-bindings
winner lib-kbd comint-history comint ansi-color ring browse-kill-ring
advice anticus edmacro kmacro derived cl-macs gv ffap thingatpt
url-parse auth-source eieio byte-opt bytecomp byte-compile cconv
eieio-core gnus-util mm-util mail-prsvr password-cache url-vars eldoc
help-fns cus-edit easymenu cus-start cus-load wid-edit cl cl-loaddefs
cl-lib bbdb-loaddefs cl-format-autoloads eldoc-eval-autoloads
yasnippet-autoloads package time-date tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd 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 dbusbind
gfilenotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty emacs)