From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.bugs Subject: bug#36324: 27.0.50; Error in savehist-save: (wrong-type-argument listp t) Date: Sat, 22 Jun 2019 19:51:59 +0200 Message-ID: <87lfxtece8.fsf@web.de> References: <87zhma9b6v.fsf@web.de> <87h88ir09w.fsf@web.de> <87lfxuxs76.fsf@web.de> <87imsxiqp9.fsf@web.de> <87a7e9v7pe.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="135018"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: Lars Ingebrigtsen , 36324@debbugs.gnu.org, Davor Rotim To: Noam Postavsky Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Jun 22 19:58:14 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hekHF-000YwS-1v for geb-bug-gnu-emacs@m.gmane.org; Sat, 22 Jun 2019 19:58:13 +0200 Original-Received: from localhost ([::1]:41972 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hekHD-0005VI-BK for geb-bug-gnu-emacs@m.gmane.org; Sat, 22 Jun 2019 13:58:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:35741) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hekH6-0005V8-Qa for bug-gnu-emacs@gnu.org; Sat, 22 Jun 2019 13:58:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hekH4-00024N-Ti for bug-gnu-emacs@gnu.org; Sat, 22 Jun 2019 13:58:04 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:38964) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hekH4-000248-JX for bug-gnu-emacs@gnu.org; Sat, 22 Jun 2019 13:58:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hekH4-0008CG-CR for bug-gnu-emacs@gnu.org; Sat, 22 Jun 2019 13:58:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Michael Heerdegen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 22 Jun 2019 17:58:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 36324 X-GNU-PR-Package: emacs Original-Received: via spool by 36324-submit@debbugs.gnu.org id=B36324.156122624431450 (code B ref 36324); Sat, 22 Jun 2019 17:58:02 +0000 Original-Received: (at 36324) by debbugs.gnu.org; 22 Jun 2019 17:57:24 +0000 Original-Received: from localhost ([127.0.0.1]:52508 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hekGS-0008BB-6Z for submit@debbugs.gnu.org; Sat, 22 Jun 2019 13:57:24 -0400 Original-Received: from mout.web.de ([212.227.15.14]:44501) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hekGP-0008Av-Bd for 36324@debbugs.gnu.org; Sat, 22 Jun 2019 13:57:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1561226234; bh=k8eLIsieHXL82fH1fLUeDGiKp9/7ex7pE4KeGsWRJGo=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=M179/8lVeIoqz9E9PS5ELUE6XZqA0o6kYuMZH2BlH9xLEo8J4NfS5NefAABrH71/2 Fccvq/82umugX+95Xj9xC73GnTy45vxussB++9ZcKswSWsaiufA6IgMJPI0iiT57hy tj8WpleEbzHk2FstD/Vm/Aynmf3uCXj90xDACJBY= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Original-Received: from drachen.dragon ([188.98.106.25]) by smtp.web.de (mrweb001 [213.165.67.108]) with ESMTPSA (Nemesis) id 0LpfFO-1iGqcp10Ao-00fP0W; Sat, 22 Jun 2019 19:52:01 +0200 In-Reply-To: <87a7e9v7pe.fsf@gmail.com> (Noam Postavsky's message of "Sat, 22 Jun 2019 13:41:17 -0400") X-Provags-ID: V03:K1:D8vH1OsyM0jS3tRuK57LZBka+r0WQpBJ1J3F+qs85iARCSFU+Fw TvQX/GqDi7zoLFtb5S22MK8i3lQoGl0ek/f6y9u0vq7GVovuUS9PdHILhIxAGLzQvr4IAv9 FcTr5h0mlM4vd6Hn+gJ5vzty9CJ460WZYbA8NJai+TYwqlSEAPYcWlEv6BUdMCbhY+qV9I1 rDo48OusrssC2QAgVOkOA== X-UI-Out-Filterresults: notjunk:1;V03:K0:xSHzTDlOqYk=:NnsYdLgBBb1GiW3I5pu5bJ IG8IWOklFTP7tImmv3e9mtztFOBt/XuMgz1cI7Z7aokOuESGjlYTrMvTbIE4Fs2clHWveRnOu +DxRxIf8H04Fvjw5NIOPJA1oPOd+MyhJbtO10h70baTt7h+YBEwYLiclCI5gwOJdbwTWhKyIz 0wextbkr+iUt7RDkg4VM/b591B0afdifi5gpbYd4bhoapSbqFe0sC9rymwE3Hmvkpw8fu9Ua+ vsBbjBUpZXMMtYGz7KLlpSVNI7GPezpCvfYXxO7jAVscEtFEnHie49URF95iO5FHZCuzc05uo iZF02B4lCUfz/Nfx/3ujtTlILw/s9Ibuuj7fvKrtVmJkqD0dmVWRVk7+TKZqLep4HAYNGrrC1 lFT5iVRYjAUxpg5FViC0wGrfuOqmUNWq44xitjbwQJTIURGTZIyfjenOwkewmXMIdYQ+ycp0n p2PZsipvbPwtVa4PHSirLq9AjOb02lA9wk7BMXzL35PJ6p3b2yCbknkZxyZc9RSL9dpaYILIT L5YtncX+MDI//bzOpDY0BU2A39mss9WSNGu4NeY+EQyUSU3QF1Rwjxnof4eLLqqX+vfHcLYik NVnlBB6y/XjDIVnikx1/QU9eHCVXua6LyQzWzFSjz60KzSzpoVTG+bLHqfliADDlM7RvmXYDx +9PK4QdzWrd281PTqwyXtHqWC+V0A8Zy7oTGuawEB/yZKNwt40jTyLi8R/lLuFBuYZDDzm4jQ /aOwnYCMKF4TVasLqOLBoDYFPJf6ItCQ5jDFiZ3Nje2bimxTg63lZqG3p+UrgKP3RZJWpviT X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:161046 Archived-At: Noam Postavsky 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 " ") (c= ondition-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"))) (g= oto-char (point-max))) (setq --dolist-tail-- (cdr --dolist-tail--))) (while --dolist-tail-- (let ((elt (car --dolist-tail--))) (let ((start (p= oint))) (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 --d= olist-tail--))) (let ((start (point))) (insert " ") (condition-case nil (pr= ogn (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-t= ail-- (let ((elt (car --dolist-tail--))) (let ((start (point))) (insert " "= ) (condition-case nil (progn (prin1 elt ...) (save-excursion ... ...)) (err= or (goto-char start) (insert "\n") (while ... ... ...) (insert "\n"))) (got= o-char (point-max))) (setq --dolist-tail-- (cdr --dolist-tail--))))) (save-= excursion (goto-char excess-space) (if (eq (following-char) 32) (delete-reg= ion (point) (1+ (point))))) (insert "))\n")) (if value (progn (insert "(setq ") (prin1 symbol (current-buffer)) (inser= t " '(") (setq excess-space (point)) (let ((--dolist-tail-- value)) (while = --dolist-tail-- (let ((elt (car --dolist-tail--))) (let ((start ...)) (inse= rt " ") (condition-case nil (progn ... ...) (error ... ... ... ...)) (goto-= char (point-max))) (setq --dolist-tail-- (cdr --dolist-tail--))))) (save-ex= cursion (goto-char excess-space) (if (eq (following-char) 32) (delete-regio= n (point) (1+ (point))))) (insert "))\n"))) (let ((value (symbol-value symbol)) excess-space) (if value (progn (inser= t "(setq ") (prin1 symbol (current-buffer)) (insert " '(") (setq excess-spa= ce (point)) (let ((--dolist-tail-- value)) (while --dolist-tail-- (let ((el= t ...)) (let (...) (insert " ") (condition-case nil ... ...) (goto-char ...= )) (setq --dolist-tail-- (cdr --dolist-tail--))))) (save-excursion (goto-ch= ar excess-space) (if (eq (following-char) 32) (delete-region (point) (1+ (p= oint))))) (insert "))\n")))) (progn (let ((value (symbol-value symbol)) excess-space) (if value (progn= (insert "(setq ") (prin1 symbol (current-buffer)) (insert " '(") (setq exc= ess-space (point)) (let ((--dolist-tail-- value)) (while --dolist-tail-- (l= et (...) (let ... ... ... ...) (setq --dolist-tail-- ...)))) (save-excursio= n (goto-char excess-space) (if (eq (following-char) 32) (delete-region (poi= nt) (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 exces= s-space (point)) (let ((--dolist-tail-- value)) (while --dolist-tail-- (let= ... ... ...))) (save-excursion (goto-char excess-space) (if (eq ... 32) (d= elete-region ... ...))) (insert "))\n")))))) (let ((symbol (car --dolist-tail--))) (if (and (boundp symbol) (not (memq= symbol savehist-ignored-variables))) (progn (let ((value (symbol-value sym= bol)) excess-space) (if value (progn (insert "(setq ") (prin1 symbol (curre= nt-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 (bo= undp 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 --d= olist-tail-- (let ((symbol (car --dolist-tail--))) (if (and (boundp symbol)= (not (memq symbol savehist-ignored-variables))) (progn (let ((value ...) e= xcess-space) (if value (progn ... ... ... ... ... ... ...))))) (setq --doli= st-tail-- (cdr --dolist-tail--))))) (progn (prin1 (list 'setq 'savehist-minibuffer-history-variables (list 'q= uote savehist-minibuffer-history-variables)) (current-buffer)) (insert 10) = (let ((--dolist-tail-- savehist-minibuffer-history-variables)) (while --dol= ist-tail-- (let ((symbol (car --dolist-tail--))) (if (and (boundp symbol) (= not (memq symbol savehist-ignored-variables))) (progn (let (... excess-spac= e) (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-varia= bles)) (current-buffer)) (insert 10) (let ((--dolist-tail-- savehist-minibu= ffer-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-his= tory-variables (list 'quote savehist-minibuffer-history-variables)) (curren= t-buffer)) (insert 10) (let ((--dolist-tail-- savehist-minibuffer-history-v= ariables)) (while --dolist-tail-- (let ((symbol ...)) (if (and ... ...) (pr= ogn ...)) (setq --dolist-tail-- (cdr --dolist-tail--))))))) (let ((--dolist= -tail-- savehist-additional-variables)) (while --dolist-tail-- (let ((symbo= l (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") sav= ehist-coding-system)) (run-hooks 'savehist-save-hook) (let ((print-length n= il) (print-level nil) (print-quoted t)) (if savehist-save-minibuffer-histor= y (progn (prin1 (list 'setq 'savehist-minibuffer-history-variables (list 'q= uote savehist-minibuffer-history-variables)) (current-buffer)) (insert 10) = (let ((--dolist-tail-- savehist-minibuffer-history-variables)) (while --dol= ist-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 (cur= rent-buffer) nil nil savehist-coding-system))) (if (and auto-save (equal ch= ecksum savehist-last-checksum)) nil (let ((file-precious-flag t) (coding-sy= stem-for-write savehist-coding-system)) (write-region (point-min) (point-ma= x) savehist-file nil (if (called-interactively-p 'interactive) nil 'quiet))= ) (if savehist-file-modes (progn (set-file-modes savehist-file savehist-fil= e-modes))) (setq savehist-last-checksum checksum)))) (unwind-protect (progn (insert (format-message (concat ";; -*- mode: emac= s-lisp; coding: %s -*-\n" ";; Minibuffer history file, automatically genera= te..." "\n") savehist-coding-system)) (run-hooks 'savehist-save-hook) (let = ((print-length nil) (print-level nil) (print-quoted t)) (if savehist-save-m= inibuffer-history (progn (prin1 (list 'setq 'savehist-minibuffer-history-va= riables (list ... savehist-minibuffer-history-variables)) (current-buffer))= (insert 10) (let ((--dolist-tail-- savehist-minibuffer-history-variables))= (while --dolist-tail-- (let ... ... ...))))) (let ((--dolist-tail-- savehi= st-additional-variables)) (while --dolist-tail-- (let ((symbol ...)) (if (b= oundp symbol) (progn ...)) (setq --dolist-tail-- (cdr --dolist-tail--))))))= (let ((checksum (md5 (current-buffer) nil nil savehist-coding-system))) (i= f (and auto-save (equal checksum savehist-last-checksum)) nil (let ((file-p= recious-flag t) (coding-system-for-write savehist-coding-system)) (write-re= gion (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 (i= nsert (format-message (concat ";; -*- mode: emacs-lisp; coding: %s -*-\n" "= ;; Minibuffer history file, automatically generate..." "\n") savehist-codin= g-system)) (run-hooks 'savehist-save-hook) (let ((print-length nil) (print-= level nil) (print-quoted t)) (if savehist-save-minibuffer-history (progn (p= rin1 (list ... ... ...) (current-buffer)) (insert 10) (let (...) (while --d= olist-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 ((fil= e-precious-flag t) (coding-system-for-write savehist-coding-system)) (write= -region (point-min) (point-max) savehist-file nil (if ... nil ...))) (if sa= vehist-file-modes (progn (set-file-modes savehist-file savehist-file-modes)= )) (setq savehist-last-checksum checksum)))) (and (buffer-name #:temp-buffe= r) (kill-buffer #:temp-buffer)))) (let ((#:temp-buffer (generate-new-buffer " *temp*"))) (save-current-buff= er (set-buffer #:temp-buffer) (unwind-protect (progn (insert (format-messag= e (concat ";; -*- mode: emacs-lisp; coding: %s -*-\n" ";; Minibuffer histor= y file, automatically generate..." "\n") savehist-coding-system)) (run-hook= s 'savehist-save-hook) (let ((print-length nil) (print-level nil) (print-qu= oted t)) (if savehist-save-minibuffer-history (progn (prin1 ... ...) (inser= t 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-l= ast-checksum)) nil (let (... ...) (write-region ... ... savehist-file nil .= ..)) (if savehist-file-modes (progn ...)) (setq savehist-last-checksum chec= ksum)))) (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.