emacs-diffs
[Top][All Lists]
Advanced

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

master 8bef8a55660 3/5: Simplify erc-tab interface


From: F. Jason Park
Subject: master 8bef8a55660 3/5: Simplify erc-tab interface
Date: Tue, 30 May 2023 00:48:34 -0400 (EDT)

branch: master
commit 8bef8a55660906c143c0b3940a3587c064608f9c
Author: F. Jason Park <jp@neverwas.me>
Commit: F. Jason Park <jp@neverwas.me>

    Simplify erc-tab interface
    
    * etc/ERC-NEWS: Improve section mentioning `erc-tab'.
    * lisp/erc/erc-button.el (erc-button-alist): Restore a commented out
    version of the "<URL ...>" entry, which was dropped in 5adda2f4683
    "Revise FORM-as-function interface in erc-button-alist" for being
    redundant.  This may help unlikely objectors better adapt to the
    churn.
    (erc-button-next, erc-button-previous): Don't bother accommodating raw
    prefix arguments; expect numeric arguments only.
    * lisp/erc/erc.el (erc-tab): Change interactive spec to lowercase
    "p".  (Bug#60933)
---
 etc/ERC-NEWS           | 12 ++++++------
 lisp/erc/erc-button.el |  7 +++----
 lisp/erc/erc.el        |  8 ++++----
 3 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/etc/ERC-NEWS b/etc/ERC-NEWS
index 5e5779cfcd5..c7d157eacfb 100644
--- a/etc/ERC-NEWS
+++ b/etc/ERC-NEWS
@@ -216,12 +216,12 @@ changes are encouraged to voice their concerns on the bug 
list.
 *** Miscellaneous changes
 Two helper macros from GNU ELPA's Compat library are now available to
 third-party modules as 'erc-compat-call' and 'erc-compat-function'.
-In the area of buttons, 'Info-goto-node' has been supplanted by plain
-old 'info' in 'erc-button-alist', and the bracketed "<URL:...>"
-pattern entry has been removed because it was more or less redundant.
-And the "TAB" key is now bound to a new command, 'erc-tab', that only
-calls 'completion-at-point' when point is in the input area and
-module-specific commands, like 'erc-button-next', otherwise.
+In 'erc-button-alist', 'Info-goto-node' has been supplanted by plain
+old 'info', and the "<URL:...>" entry has been removed because it was
+more or less redundant.  In all ERC buffers, the "<TAB>" key is now
+bound to a new command, 'erc-tab', that calls 'completion-at-point'
+inside the input area and otherwise dispatches module-specific
+commands, like 'erc-button-next'.
 
 
 * Changes in ERC 5.5
diff --git a/lisp/erc/erc-button.el b/lisp/erc/erc-button.el
index 4307dc3b860..33b93ff6744 100644
--- a/lisp/erc/erc-button.el
+++ b/lisp/erc/erc-button.el
@@ -128,6 +128,7 @@ longer than `erc-fill-column'."
   ;; things hard to maintain.
   '((nicknames 0 erc-button-buttonize-nicks erc-nick-popup 0)
     (erc-button-url-regexp 0 t browse-url-button-open-url 0)
+    ;; ("<URL: *\\([^<> ]+\\) *>" 0 t browse-url-button-open-url 1)
 ;;; ("(\\(\\([^~\n \t@][^\n \t@]*\\)@\\([a-zA-Z0-9.:-]+\\)\\)" 1 t finger 2 3)
     ;; emacs internal
     ("[`‘]\\([a-zA-Z][-a-zA-Z_0-9!*<=>+]+\\)['’]"
@@ -629,15 +630,13 @@ greater than `point-min' with a text property of 
`erc-callback'.")
   "Go to the ARGth next button."
   (declare (advertised-calling-convention (arg) "30.1"))
   (interactive "p")
-  (setq arg (pcase arg ((pred listp) (prefix-numeric-value arg)) (_ arg)))
-  (erc--button-next arg))
+  (erc--button-next (or arg 1)))
 
 (defun erc-button-previous (&optional arg)
   "Go to ARGth previous button."
   (declare (advertised-calling-convention (arg) "30.1"))
   (interactive "p")
-  (setq arg (pcase arg ((pred listp) (prefix-numeric-value arg)) (_ arg)))
-  (erc--button-next (- arg)))
+  (erc--button-next (- (or arg 1))))
 
 (defun erc-button-previous-of-nick (arg)
   "Go to ARGth previous button for nick at point."
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
index aad6f7d9d54..a84e38e70e5 100644
--- a/lisp/erc/erc.el
+++ b/lisp/erc/erc.el
@@ -4773,11 +4773,11 @@ This places `point' just after the prompt, or at the 
beginning of the line."
   "Functions to try when user hits \\`TAB' outside of input area.
 Called with a numeric prefix arg.")
 
-(defun erc-tab (&optional arg)
+(defun erc-tab (arg)
   "Call `completion-at-point' when typing in the input area.
-Otherwise call members of `erc--tab-functions' with raw prefix
-ARG until one of them returns non-nil."
-  (interactive "P")
+Otherwise call members of `erc--tab-functions' with a numeric
+prefix ARG until one of them returns non-nil."
+  (interactive "p")
   (if (>= (point) erc-input-marker)
       (completion-at-point)
     (run-hook-with-args-until-success 'erc--tab-functions arg)))



reply via email to

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