bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#36324: 27.0.50; Error in savehist-save: (wrong-type-argument listp t


From: Michael Heerdegen
Subject: bug#36324: 27.0.50; Error in savehist-save: (wrong-type-argument listp t)
Date: Sat, 22 Jun 2019 19:51:59 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

Noam Postavsky <npostavs@gmail.com> writes:

> No, any variable with a non-list value will silently do nothing, e.g.,
>
>     (defvar foo 1)
>     (read-string "q? " nil 'foo)
>
> `t' is just a (constant) variable with a non-list (symbol) value.

Sure.  But (savehist-save) afterwards gives

Debugger entered--Lisp error: (wrong-type-argument listp 1)
  car(1)
  (let ((elt (car --dolist-tail--))) (let ((start (point))) (insert " ") 
(condition-case nil (progn (prin1 elt (current-buffer)) (save-excursion 
(goto-char start) (read (current-buffer)))) (error (goto-char start) (insert 
"\n") (while (not (eobp)) (insert ";;; ") (forward-line 1)) (insert "\n"))) 
(goto-char (point-max))) (setq --dolist-tail-- (cdr --dolist-tail--)))
  (while --dolist-tail-- (let ((elt (car --dolist-tail--))) (let ((start 
(point))) (insert " ") (condition-case nil (progn (prin1 elt (current-buffer)) 
(save-excursion (goto-char start) (read (current-buffer)))) (error (goto-char 
start) (insert "\n") (while (not (eobp)) (insert ";;; ") (forward-line 1)) 
(insert "\n"))) (goto-char (point-max))) (setq --dolist-tail-- (cdr 
--dolist-tail--))))
  (let ((--dolist-tail-- value)) (while --dolist-tail-- (let ((elt (car 
--dolist-tail--))) (let ((start (point))) (insert " ") (condition-case nil 
(progn (prin1 elt (current-buffer)) (save-excursion (goto-char start) (read 
...))) (error (goto-char start) (insert "\n") (while (not ...) (insert ";;; ") 
(forward-line 1)) (insert "\n"))) (goto-char (point-max))) (setq 
--dolist-tail-- (cdr --dolist-tail--)))))
  (progn (insert "(setq ") (prin1 symbol (current-buffer)) (insert " '(") (setq 
excess-space (point)) (let ((--dolist-tail-- value)) (while --dolist-tail-- 
(let ((elt (car --dolist-tail--))) (let ((start (point))) (insert " ") 
(condition-case nil (progn (prin1 elt ...) (save-excursion ... ...)) (error 
(goto-char start) (insert "\n") (while ... ... ...) (insert "\n"))) (goto-char 
(point-max))) (setq --dolist-tail-- (cdr --dolist-tail--))))) (save-excursion 
(goto-char excess-space) (if (eq (following-char) 32) (delete-region (point) 
(1+ (point))))) (insert "))\n"))
  (if value (progn (insert "(setq ") (prin1 symbol (current-buffer)) (insert " 
'(") (setq excess-space (point)) (let ((--dolist-tail-- value)) (while 
--dolist-tail-- (let ((elt (car --dolist-tail--))) (let ((start ...)) (insert " 
") (condition-case nil (progn ... ...) (error ... ... ... ...)) (goto-char 
(point-max))) (setq --dolist-tail-- (cdr --dolist-tail--))))) (save-excursion 
(goto-char excess-space) (if (eq (following-char) 32) (delete-region (point) 
(1+ (point))))) (insert "))\n")))
  (let ((value (symbol-value symbol)) excess-space) (if value (progn (insert 
"(setq ") (prin1 symbol (current-buffer)) (insert " '(") (setq excess-space 
(point)) (let ((--dolist-tail-- value)) (while --dolist-tail-- (let ((elt ...)) 
(let (...) (insert " ") (condition-case nil ... ...) (goto-char ...)) (setq 
--dolist-tail-- (cdr --dolist-tail--))))) (save-excursion (goto-char 
excess-space) (if (eq (following-char) 32) (delete-region (point) (1+ 
(point))))) (insert "))\n"))))
  (progn (let ((value (symbol-value symbol)) excess-space) (if value (progn 
(insert "(setq ") (prin1 symbol (current-buffer)) (insert " '(") (setq 
excess-space (point)) (let ((--dolist-tail-- value)) (while --dolist-tail-- 
(let (...) (let ... ... ... ...) (setq --dolist-tail-- ...)))) (save-excursion 
(goto-char excess-space) (if (eq (following-char) 32) (delete-region (point) 
(1+ ...)))) (insert "))\n")))))
  (if (and (boundp symbol) (not (memq symbol savehist-ignored-variables))) 
(progn (let ((value (symbol-value symbol)) excess-space) (if value (progn 
(insert "(setq ") (prin1 symbol (current-buffer)) (insert " '(") (setq 
excess-space (point)) (let ((--dolist-tail-- value)) (while --dolist-tail-- 
(let ... ... ...))) (save-excursion (goto-char excess-space) (if (eq ... 32) 
(delete-region ... ...))) (insert "))\n"))))))
  (let ((symbol (car --dolist-tail--))) (if (and (boundp symbol) (not (memq 
symbol savehist-ignored-variables))) (progn (let ((value (symbol-value symbol)) 
excess-space) (if value (progn (insert "(setq ") (prin1 symbol 
(current-buffer)) (insert " '(") (setq excess-space (point)) (let (...) (while 
--dolist-tail-- ...)) (save-excursion (goto-char excess-space) (if ... ...)) 
(insert "))\n")))))) (setq --dolist-tail-- (cdr --dolist-tail--)))
  (while --dolist-tail-- (let ((symbol (car --dolist-tail--))) (if (and (boundp 
symbol) (not (memq symbol savehist-ignored-variables))) (progn (let ((value 
(symbol-value symbol)) excess-space) (if value (progn (insert "(setq ") (prin1 
symbol ...) (insert " '(") (setq excess-space ...) (let ... ...) 
(save-excursion ... ...) (insert "))\n")))))) (setq --dolist-tail-- (cdr 
--dolist-tail--))))
  (let ((--dolist-tail-- savehist-minibuffer-history-variables)) (while 
--dolist-tail-- (let ((symbol (car --dolist-tail--))) (if (and (boundp symbol) 
(not (memq symbol savehist-ignored-variables))) (progn (let ((value ...) 
excess-space) (if value (progn ... ... ... ... ... ... ...))))) (setq 
--dolist-tail-- (cdr --dolist-tail--)))))
  (progn (prin1 (list 'setq 'savehist-minibuffer-history-variables (list 'quote 
savehist-minibuffer-history-variables)) (current-buffer)) (insert 10) (let 
((--dolist-tail-- savehist-minibuffer-history-variables)) (while 
--dolist-tail-- (let ((symbol (car --dolist-tail--))) (if (and (boundp symbol) 
(not (memq symbol savehist-ignored-variables))) (progn (let (... excess-space) 
(if value ...)))) (setq --dolist-tail-- (cdr --dolist-tail--))))))
  (if savehist-save-minibuffer-history (progn (prin1 (list 'setq 
'savehist-minibuffer-history-variables (list 'quote 
savehist-minibuffer-history-variables)) (current-buffer)) (insert 10) (let 
((--dolist-tail-- savehist-minibuffer-history-variables)) (while 
--dolist-tail-- (let ((symbol (car --dolist-tail--))) (if (and (boundp symbol) 
(not ...)) (progn (let ... ...))) (setq --dolist-tail-- (cdr 
--dolist-tail--)))))))
  (let ((print-length nil) (print-level nil) (print-quoted t)) (if 
savehist-save-minibuffer-history (progn (prin1 (list 'setq 
'savehist-minibuffer-history-variables (list 'quote 
savehist-minibuffer-history-variables)) (current-buffer)) (insert 10) (let 
((--dolist-tail-- savehist-minibuffer-history-variables)) (while 
--dolist-tail-- (let ((symbol ...)) (if (and ... ...) (progn ...)) (setq 
--dolist-tail-- (cdr --dolist-tail--))))))) (let ((--dolist-tail-- 
savehist-additional-variables)) (while --dolist-tail-- (let ((symbol (car 
--dolist-tail--))) (if (boundp symbol) (progn (let (...) (if ... ...)))) (setq 
--dolist-tail-- (cdr --dolist-tail--))))))
  (progn (insert (format-message (concat ";; -*- mode: emacs-lisp; coding: %s 
-*-\n" ";; Minibuffer history file, automatically generate..." "\n") 
savehist-coding-system)) (run-hooks 'savehist-save-hook) (let ((print-length 
nil) (print-level nil) (print-quoted t)) (if savehist-save-minibuffer-history 
(progn (prin1 (list 'setq 'savehist-minibuffer-history-variables (list 'quote 
savehist-minibuffer-history-variables)) (current-buffer)) (insert 10) (let 
((--dolist-tail-- savehist-minibuffer-history-variables)) (while 
--dolist-tail-- (let (...) (if ... ...) (setq --dolist-tail-- ...)))))) (let 
((--dolist-tail-- savehist-additional-variables)) (while --dolist-tail-- (let 
((symbol (car --dolist-tail--))) (if (boundp symbol) (progn (let ... ...))) 
(setq --dolist-tail-- (cdr --dolist-tail--)))))) (let ((checksum (md5 
(current-buffer) nil nil savehist-coding-system))) (if (and auto-save (equal 
checksum savehist-last-checksum)) nil (let ((file-precious-flag t) 
(coding-system-for-write savehist-coding-system)) (write-region (point-min) 
(point-max) savehist-file nil (if (called-interactively-p 'interactive) nil 
'quiet))) (if savehist-file-modes (progn (set-file-modes savehist-file 
savehist-file-modes))) (setq savehist-last-checksum checksum))))
  (unwind-protect (progn (insert (format-message (concat ";; -*- mode: 
emacs-lisp; coding: %s -*-\n" ";; Minibuffer history file, automatically 
generate..." "\n") savehist-coding-system)) (run-hooks 'savehist-save-hook) 
(let ((print-length nil) (print-level nil) (print-quoted t)) (if 
savehist-save-minibuffer-history (progn (prin1 (list 'setq 
'savehist-minibuffer-history-variables (list ... 
savehist-minibuffer-history-variables)) (current-buffer)) (insert 10) (let 
((--dolist-tail-- savehist-minibuffer-history-variables)) (while 
--dolist-tail-- (let ... ... ...))))) (let ((--dolist-tail-- 
savehist-additional-variables)) (while --dolist-tail-- (let ((symbol ...)) (if 
(boundp symbol) (progn ...)) (setq --dolist-tail-- (cdr --dolist-tail--)))))) 
(let ((checksum (md5 (current-buffer) nil nil savehist-coding-system))) (if 
(and auto-save (equal checksum savehist-last-checksum)) nil (let 
((file-precious-flag t) (coding-system-for-write savehist-coding-system)) 
(write-region (point-min) (point-max) savehist-file nil (if 
(called-interactively-p ...) nil 'quiet))) (if savehist-file-modes (progn 
(set-file-modes savehist-file savehist-file-modes))) (setq 
savehist-last-checksum checksum)))) (and (buffer-name #:temp-buffer) 
(kill-buffer #:temp-buffer)))
  (save-current-buffer (set-buffer #:temp-buffer) (unwind-protect (progn 
(insert (format-message (concat ";; -*- mode: emacs-lisp; coding: %s -*-\n" ";; 
Minibuffer history file, automatically generate..." "\n") 
savehist-coding-system)) (run-hooks 'savehist-save-hook) (let ((print-length 
nil) (print-level nil) (print-quoted t)) (if savehist-save-minibuffer-history 
(progn (prin1 (list ... ... ...) (current-buffer)) (insert 10) (let (...) 
(while --dolist-tail-- ...)))) (let ((--dolist-tail-- 
savehist-additional-variables)) (while --dolist-tail-- (let (...) (if ... ...) 
(setq --dolist-tail-- ...))))) (let ((checksum (md5 (current-buffer) nil nil 
savehist-coding-system))) (if (and auto-save (equal checksum 
savehist-last-checksum)) nil (let ((file-precious-flag t) 
(coding-system-for-write savehist-coding-system)) (write-region (point-min) 
(point-max) savehist-file nil (if ... nil ...))) (if savehist-file-modes (progn 
(set-file-modes savehist-file savehist-file-modes))) (setq 
savehist-last-checksum checksum)))) (and (buffer-name #:temp-buffer) 
(kill-buffer #:temp-buffer))))
  (let ((#:temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer 
(set-buffer #:temp-buffer) (unwind-protect (progn (insert (format-message 
(concat ";; -*- mode: emacs-lisp; coding: %s -*-\n" ";; Minibuffer history 
file, automatically generate..." "\n") savehist-coding-system)) (run-hooks 
'savehist-save-hook) (let ((print-length nil) (print-level nil) (print-quoted 
t)) (if savehist-save-minibuffer-history (progn (prin1 ... ...) (insert 10) 
(let ... ...))) (let ((--dolist-tail-- savehist-additional-variables)) (while 
--dolist-tail-- (let ... ... ...)))) (let ((checksum (md5 ... nil nil 
savehist-coding-system))) (if (and auto-save (equal checksum 
savehist-last-checksum)) nil (let (... ...) (write-region ... ... savehist-file 
nil ...)) (if savehist-file-modes (progn ...)) (setq savehist-last-checksum 
checksum)))) (and (buffer-name #:temp-buffer) (kill-buffer #:temp-buffer)))))
  savehist-save()

I guess I was not clear enough.  Any non-nil symbol with a non-listp
value will do, but currently we only check for t in
`savehist-minibuffer-hook'.

Michael.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]