From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Juanma Barranquero Newsgroups: gmane.emacs.bugs Subject: bug#59710: Wrong type argument when editing a multisession variable Date: Wed, 30 Nov 2022 02:49:15 +0100 Message-ID: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="000000000000093ae105eea652dc" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="38863"; mail-complaints-to="usenet@ciao.gmane.io" Cc: "lars ingebrigtsen" To: 59710@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Nov 30 02:51:23 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p0CFt-0009qP-Ec for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 30 Nov 2022 02:51:21 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p0CFe-0002f2-5i; Tue, 29 Nov 2022 20:51:06 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p0CFb-0002eN-Ky for bug-gnu-emacs@gnu.org; Tue, 29 Nov 2022 20:51:04 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p0CFb-0005A3-Cn for bug-gnu-emacs@gnu.org; Tue, 29 Nov 2022 20:51:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1p0CFa-0005ut-B0; Tue, 29 Nov 2022 20:51:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Juanma Barranquero Original-Sender: "Debbugs-submit" Resent-CC: larsi@gnus.org, bug-gnu-emacs@gnu.org Resent-Date: Wed, 30 Nov 2022 01:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 59710 X-GNU-PR-Package: emacs X-Debbugs-Original-To: Bug-Gnu-Emacs X-Debbugs-Original-Xcc: "lars ingebrigtsen" Original-Received: via spool by submit@debbugs.gnu.org id=B.166977300322712 (code B ref -1); Wed, 30 Nov 2022 01:51:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 30 Nov 2022 01:50:03 +0000 Original-Received: from localhost ([127.0.0.1]:57743 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p0CEc-0005u3-6w for submit@debbugs.gnu.org; Tue, 29 Nov 2022 20:50:03 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:44774) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p0CEW-0005tp-Qi for submit@debbugs.gnu.org; Tue, 29 Nov 2022 20:50:00 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p0CEW-0002aC-8O for bug-gnu-emacs@gnu.org; Tue, 29 Nov 2022 20:49:56 -0500 Original-Received: from mail-ej1-x632.google.com ([2a00:1450:4864:20::632]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p0CET-0004iJ-UL for bug-gnu-emacs@gnu.org; Tue, 29 Nov 2022 20:49:55 -0500 Original-Received: by mail-ej1-x632.google.com with SMTP id td2so23915430ejc.5 for ; Tue, 29 Nov 2022 17:49:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=5xS/feAK7l5vzoI/iQLFAJ1Q0ZLnqqz0s/2jmORJSto=; b=j9Rast3zJjlCvN2k5UgN34t6QhSYJznMQTaElAqs3ficGeqxw1scSgniixoMutP8AI Fp0bGi9J5wW4Tp5FK/Eb7wz7MXr/ZHKWW/m459nOlsExPvJdWwN9PGv4aSpkyA1227vb 0O2KsvIproEmOTdvHTnw5K4yl5SQq7ZjU3MY/rhOg3JDWPc3VMR/vDOUHrrye0pueXxE X31W6ZFOUeuANINx6hVnz3Ay5xJRRHckZe1Qt0LFEvJIx9WctMoho0fkxO1rkCc8TiIy XTBtsaZr1rdBGZBqTm17A5fzDwxjyUoeNo5p1l1Gj7AQYIstCnLhebh4JntX12ZBpteG Trdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=5xS/feAK7l5vzoI/iQLFAJ1Q0ZLnqqz0s/2jmORJSto=; b=oSiFdO4tlRc7X4bLfMrntppyUVCBu+Bo333BV38mCVdh4+njW2RGnomDHbviPzf7lh IYxQO/YZNUD7ebL6CprEM5WKzpKmHky0QchYoxJhrUZ3dLNrhVnB9mLTzzoEj1OVyRZw zbTubqE1rJHPsQGlnfqoKV3Wf1fXxRMQXQv5gHhWTnydVWbcmNGC1BPciyBovPIHf5Hm Jk4CbquWPeUtedlkCdFn3Kf9TJqhltheKjqCVwS632x8PZDza4kiN4CwNlj9fDXr3rT3 izGj0ilo0gMh1+KO+RSIpOvzZ13AFH9k6p1fVbhI8YpK4YyaUQ6I+PNiwJmvKrX7Pm17 12GA== X-Gm-Message-State: ANoB5plaEW8+muWPTwmn2wu2Uv73MTAHBv4UdDs+p8IuwG7FwtuGUujZ 3F5Yy5VX8y/ZUnf0TkXxQao/E8NuJ5ApxU/USX4vRHtx0Zg= X-Google-Smtp-Source: AA0mqf5cueKqYMOoaQ6PDQP0mFPqc6PrGzVZeSFaI+mVbIAuYZ5K8pqHnaADwCSUGBv56t8sEaYlyw5SAy+E58Irj38= X-Received: by 2002:a17:906:aec1:b0:7c0:a04b:6795 with SMTP id me1-20020a170906aec100b007c0a04b6795mr255274ejb.16.1669772991870; Tue, 29 Nov 2022 17:49:51 -0800 (PST) Received-SPF: pass client-ip=2a00:1450:4864:20::632; envelope-from=lekktu@gmail.com; helo=mail-ej1-x632.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:249462 Archived-At: --000000000000093ae105eea652dc Content-Type: text/plain; charset="UTF-8" Package: emacs Version: 29.0.60 Severity: normal X-Debbugs-Cc: "Lars Ingebrigtsen" ;;; init.el (require 'multisession) (define-multisession-variable test-var nil "Test var" :package "test") (setf (multisession-value test-var) t) ;;; end of init.el emacs M-x list-multisession-values e Debugger entered--Lisp error: (wrong-type-argument symbolp (intern (cdr id))) multisession-edit-value(("test" . "test-var")) funcall-interactively(multisession-edit-value ("test" . "test-var")) command-execute(multisession-edit-value) The problem comes from this change commit bd586121ac21e046f60f75eeb0200866c38d6f9f Author: Lars Ingebrigtsen Date: 2022-01-22 11:56:13 +0100 Make the test for existing multisession variables more sensible * lisp/emacs-lisp/multisession.el (multisession-edit-value): Unconfuse the code. diff --git a/lisp/emacs-lisp/multisession.el b/lisp/emacs-lisp/multisession.el index 4a293796a8..25307594c6 100644 --- a/lisp/emacs-lisp/multisession.el +++ b/lisp/emacs-lisp/multisession.el @@ -437,8 +437,8 @@ multisession-edit-value (let* ((object (or ;; If the multisession variable already exists, use ;; it (so that we update it). - (and (boundp (intern-soft (cdr id))) - (symbol-value (intern (cdr id)))) + (and (intern-soft (cdr id)) + (bound-and-true-p (intern (cdr id)))) ;; Create a new object. (make-multisession :package (car id) because `bound-and-true-p' is a macro that requires as argument a symbol, which (intern ...) is not. ELISP> (bound-and-true-p (intern "whatever")) *** Eval error *** Wrong type argument: symbolp, (intern "whatever") so I'm afraid this change was never tested. The fix is reverting the change, doing perhaps this diff --git a/lisp/emacs-lisp/multisession.el b/lisp/emacs-lisp/multisession.el index 9d6e8c0d88..78d4137317 100644 --- a/lisp/emacs-lisp/multisession.el +++ b/lisp/emacs-lisp/multisession.el @@ -447,8 +447,9 @@ multisession-edit-value (let* ((object (or ;; If the multisession variable already exists, use ;; it (so that we update it). - (and (intern-soft (cdr id)) - (bound-and-true-p (intern (cdr id)))) + (if-let (sym (intern-soft (cdr id))) + (and (boundp sym) (symbol-value sym)) + nil) ;; Create a new object. (make-multisession :package (car id) --000000000000093ae105eea652dc Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Package: emacs
Version: 29.0.60
Severity: normal
X-Debbugs-Cc: &qu= ot;Lars Ingebrigtsen" <larsi@gnus= .org>


;;; init.el
(require 'multisession)
(define-multisess= ion-variable test-var nil "Test var" :package "test")(setf (multisession-value test-var) t)
;;; end of init.el

emacs=
M= -x list-multisession-values <RET>
e

Debugger entered--Lisp error:= (wrong-type-argument symbolp (intern (cdr id)))
=C2=A0 multisession-edit-value(("test" . "t= est-var"))
=C2=A0 funcall-i= nteractively(multisession-edit-value ("test" . "test-var&quo= t;))
=C2=A0 command-execute(mult= isession-edit-value)


The= problem comes from this change

=C2= =A0 commit bd586121ac21e046f60f75eeb0200866c38d6f9f
=C2=A0 Author: Lars = Ingebrigtsen <larsi@gnus.org>=C2=A0 Date: =C2=A0 2022-01-22 11:56:13 +0100

=C2=A0 =C2=A0 =C2=A0= Make the test for existing multisession variables more sensible

=C2= =A0 =C2=A0 =C2=A0 * lisp/emacs-lisp/multisession.el (multisession-edit-valu= e):
=C2=A0 =C2=A0 =C2=A0 Unconfuse the code.

=C2=A0 diff --git a/= lisp/emacs-lisp/multisession.el b/lisp/emacs-lisp/multisession.el
=C2=A0= index 4a293796a8..25307594c6 100644
=C2=A0 --- a/lisp/emacs-lisp/multis= ession.el
=C2=A0 +++ b/lisp/emacs-lisp/multisession.el
=C2=A0 @@ -437= ,8 +437,8 @@ multisession-edit-value
=C2=A0 =C2=A0 =C2=A0(let* ((object = (or
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0;; If the multisession variable already exists, use
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0;; it (so= that we update it).
=C2=A0 - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0(and (boundp (intern-soft (cdr id)))
=C2=A0 - =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (sym= bol-value (intern (cdr id))))
=C2=A0 + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(and (intern-soft (cdr id))
=C2=A0 + =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (= bound-and-true-p (intern (cdr id))))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0;; Create a new object.
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(make-= multisession
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 :package (car id)


because `bound-and= -true-p' is a macro that requires as argument=C2=A0a symbol, which (int= ern ...) is not.

ELISP> (= bound-and-true-p (intern "whatever"))
*** Eval error *** =C2=A0Wrong type argument: symbolp, (int= ern "whatever")

so= I'm afraid this change was never tested.

The fix is reverting the change, doing perhaps this

diff --git a/lisp/emacs-lisp/multisession= .el b/lisp/emacs-lisp/multisession.el
index 9d6e8c0d88..78d4137317 10064= 4
--- a/lisp/emacs-lisp/multisession.el
+++ b/lisp/emacs-lisp/multise= ssion.el
@@ -447,8 +447,9 @@ multisession-edit-value
=C2=A0 =C2=A0(le= t* ((object (or
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0;; If the multisession variable already exists, use
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0;; it (so tha= t we update it).
- =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0(and (intern-soft (cdr id))
- =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (bound-and-true-p (intern (cd= r id))))
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0(if-let (sym (intern-soft (cdr id)))
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(and (boundp sym) (symbol-v= alue sym))
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0nil)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0;; Create a new object.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(make-multisession
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 :package (car id)

--000000000000093ae105eea652dc--