[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.