>From 1b40fcdbe664ba4b364b7665370c66de82998038 Mon Sep 17 00:00:00 2001 From: "F. Jason Park" Date: Sun, 11 Dec 2022 19:41:43 -0800 Subject: [PATCH 2/5] Actually accept non-symbols as IDs in erc-open * lisp/erc/erc.el (erc-generate-new-buffer-name): Despite what it says in the documentation, only symbols were being accepted as valid :id entry point arguments. This ensures that the `princ' form is used instead. * test/lisp/erc/erc-scenarios-base-netid-samenet.el (erc-scenarios-common--base-network-id-same-network): Randomly specify a string for the ID param instead of a non-nil symbol when opening a new connection. * test/lisp/erc/resources/erc-scenarios-common.el (erc-scenarios-common-assert-initial-buf-name): Adjust helper to allow for non-symbol IDs. (Bug#59976.) --- lisp/erc/erc.el | 9 +++++---- test/lisp/erc/erc-scenarios-base-netid-samenet.el | 3 +++ test/lisp/erc/resources/erc-scenarios-common.el | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index 6bb2e013c3..a5ba45d9b3 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -1607,11 +1607,12 @@ erc-generate-new-buffer-name (if (and (with-suppressed-warnings ((obsolete erc-reuse-buffers)) erc-reuse-buffers) id) - (progn - (when-let* ((buf (get-buffer (symbol-name id))) + (let ((string (symbol-name (erc-networks--id-symbol + (erc-networks--id-create id))))) + (when-let* ((buf (get-buffer string)) ((erc-server-process-alive buf))) - (user-error "Session with ID %S already exists" id)) - (symbol-name id)) + (user-error "Session with ID %S already exists" string)) + string) (generate-new-buffer-name (if (and server port) (if (with-suppressed-warnings ((obsolete erc-reuse-buffers)) diff --git a/test/lisp/erc/erc-scenarios-base-netid-samenet.el b/test/lisp/erc/erc-scenarios-base-netid-samenet.el index 3cd8b7dfa1..1436712251 100644 --- a/test/lisp/erc/erc-scenarios-base-netid-samenet.el +++ b/test/lisp/erc/erc-scenarios-base-netid-samenet.el @@ -40,6 +40,9 @@ erc-scenarios-common--base-network-id-same-network (erc-server-flood-margin 30) erc-serv-buf-a erc-serv-buf-b) + (when (and id-a (zerop (random 2))) (setq id-a (symbol-name id-a))) + (when (and id-b (zerop (random 2))) (setq id-b (symbol-name id-b))) + (ert-info ("Connect to foonet with nick tester") (with-current-buffer (setq erc-serv-buf-a (erc :server "127.0.0.1" diff --git a/test/lisp/erc/resources/erc-scenarios-common.el b/test/lisp/erc/resources/erc-scenarios-common.el index d77b32984b..57d4658e75 100644 --- a/test/lisp/erc/resources/erc-scenarios-common.el +++ b/test/lisp/erc/resources/erc-scenarios-common.el @@ -185,7 +185,7 @@ erc-scenarios-common-with-cleanup (defun erc-scenarios-common-assert-initial-buf-name (id port) ;; Assert no limbo period when explicit ID given (should (string= (if id - (symbol-name id) + (format "%s" id) (format "127.0.0.1:%d" port)) (buffer-name)))) -- 2.38.1