From 36a485a1afb6b352ddb2d036d5ca430f4c6fdd10 Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Mon, 11 Oct 2021 09:39:17 -0400 Subject: [PATCH 1/6] Obsolete XEmacs compat convention in 'erc-button-press-button' * lisp/erc/erc-button.el (erc-button-press-button): Advertise new calling convention without XEmacs compatibility. --- lisp/erc/erc-button.el | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lisp/erc/erc-button.el b/lisp/erc/erc-button.el index 17d5b6129dd..69972856d19 100644 --- a/lisp/erc/erc-button.el +++ b/lisp/erc/erc-button.el @@ -389,12 +389,11 @@ REGEXP is the regular expression which matched for this button." (mouse-set-point event) (erc-button-press-button))) -;; XEmacs calls this via widget-button-press with a bunch of arguments -;; which we don't care about. (defun erc-button-press-button (&rest _ignore) "Check text at point for a callback function. If the text at point has a `erc-callback' property, call it with the value of the `erc-data' text property." + (declare (advertised-calling-convention () "28.1")) (interactive) (let* ((data (get-text-property (point) 'erc-data)) (fun (get-text-property (point) 'erc-callback))) From 4afff515c870339bdb3fccab4175b063770eb4bf Mon Sep 17 00:00:00 2001 From: Dmitry Gutov Date: Mon, 11 Oct 2021 16:37:55 +0300 Subject: [PATCH 2/6] Expand the full file name * lisp/vc/vc-git.el (vc-git--literal-pathspec): Expand the full file name, not just the local part (bug#51112). --- lisp/vc/vc-git.el | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index eca8d547a90..35c0838dd6f 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -242,15 +242,14 @@ included in the completions." ;;;###autoload (load "vc-git" nil t) ;;;###autoload (vc-git-registered file)))) +;; Good example of file name that needs this: "test[56].xx". (defun vc-git--literal-pathspec (file) "Prepend :(literal) path magic to FILE." - ;; Good example of file name that needs this: "test[56].xx". (when file - (let ((lname (file-local-name file))) - ;; Expand abbreviated file names. - (when (file-name-absolute-p lname) - (setq lname (expand-file-name lname))) - (concat ":(literal)" lname)))) + ;; Expand abbreviated file names. + (when (file-name-absolute-p file) + (setq file (expand-file-name file))) + (concat ":(literal)" (file-local-name file)))) (defun vc-git--literal-pathspecs (files) "Prepend :(literal) path magic to FILES." From c480b6864426a81b702b720bdacafc5ff13bdbc3 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Mon, 11 Oct 2021 10:04:44 -0400 Subject: [PATCH 3/6] Add ERC entries for 'customize-package-emacs-version-alist' * lisp/erc/erc.el (customize-package-emacs-version-alist): Add entries for existing ERC versions. --- lisp/erc/erc.el | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index 4a86fa712ab..d3c8b62fb3e 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -76,6 +76,14 @@ "https://www.gnu.org/software/emacs/erc.html (mailing list: emacs-erc@gnu.org)" "Location of the ERC client on the Internet.") +;; Map each :package-version to the associated Emacs version. +;; (This eliminates the need for explicit :version keywords on the +;; custom definitions.) +(add-to-list + 'customize-package-emacs-version-alist + '(ERC ("5.2" . "22.1") + ("5.3" . "23.1"))) + (defgroup erc nil "Emacs Internet Relay Chat client." :link '(url-link "https://www.gnu.org/software/emacs/erc.html") From 6c7947f0a1e4f259cce5f99d1fe66b399b684f54 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Mon, 11 Oct 2021 10:13:56 -0400 Subject: [PATCH 4/6] * etc/ERC-NEWS: Fix outline level for the recent additions. --- etc/ERC-NEWS | 56 ++++++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/etc/ERC-NEWS b/etc/ERC-NEWS index 5a2f30ad8c1..5225c62e558 100644 --- a/etc/ERC-NEWS +++ b/etc/ERC-NEWS @@ -27,67 +27,67 @@ to Emacs versions before 28, to avoid modifying the NEWS file for all of those releases, the ERC NEWS entries have only been copied below, and the NEWS.* files were left intact. -*** New option 'erc-rename-buffers'. +** New option 'erc-rename-buffers'. -*** New faces 'erc-my-nick-prefix-face' and 'erc-nick-prefix-face'. +** New faces 'erc-my-nick-prefix-face' and 'erc-nick-prefix-face'. -*** 'erc-format-@nick' displays all user modes instead of only op and voice. +** 'erc-format-@nick' displays all user modes instead of only op and voice. -*** The display of irc commands in the current buffer has been disabled. +** The display of irc commands in the current buffer has been disabled. -*** 'erc-version' now follows the Emacs version. +** 'erc-version' now follows the Emacs version. -*** ERC can now hide message types by network or channel. +** ERC can now hide message types by network or channel. 'erc-hide-list' will hide all messages of the specified type, while 'erc-network-hide-list' and 'erc-channel-hide-list' will only hide the specified message types for the respective specified targets. -*** Reconnection is now asynchronous. +** Reconnection is now asynchronous. -*** Nick completion is now case-insensitive again after inadvertently +** Nick completion is now case-insensitive again after inadvertently being made case-sensitive in Emacs 24.2. -*** New variable 'erc-default-port-tls' used to connect to TLS IRC +** New variable 'erc-default-port-tls' used to connect to TLS IRC servers. -*** New hook 'erc-insert-done-hook'. +** New hook 'erc-insert-done-hook'. This hook is called after strings have been inserted into the buffer, and is free to alter point and window configurations, as it's not called from inside a 'save-excursion', as opposed to 'erc-insert-post-hook'. -*** 'erc-button-google-url' has been renamed to 'erc-button-search-url' +** 'erc-button-google-url' has been renamed to 'erc-button-search-url' and its value has been changed to Duck Duck Go. -*** 'erc-send-pre-hook' and 'erc-send-this' have been obsoleted. +** 'erc-send-pre-hook' and 'erc-send-this' have been obsoleted. The user option to use instead to alter text to be sent is now 'erc-pre-send-functions'. -*** Improve matching/highlighting of nicknames. +** Improve matching/highlighting of nicknames. Open and close parenthesis and apostrophe are not considered valid nick characters anymore, matching the given grammar in RFC 2812 section 2.3.1. This enables correct matching and highlighting of nicks when they are surrounded by parentheses, like "(nick)", and when adjacent to an apostrophe, like "nick's". -*** Set 'erc-button-url-regexp' to 'browse-url-button-regexp' +** Set 'erc-button-url-regexp' to 'browse-url-button-regexp' which better handles surrounding pair of parentheses. -*** New function 'erc-switch-to-buffer-other-window' +** New function 'erc-switch-to-buffer-other-window' which is like 'erc-switch-to-buffer', but opens the buffer in another window. -*** New function 'erc-track-switch-buffer-other-window' +** New function 'erc-track-switch-buffer-other-window' which is like 'erc-track-switch-buffer', but opens the buffer in another window. -*** NickServ passwords can now be retrieved from auth-source. +** NickServ passwords can now be retrieved from auth-source. The 'erc-use-auth-source-for-nickserv-password' user option enables querying auth-source for NickServ passwords. To enable this, add the following to your init file: (setq erc-use-auth-source-for-nickserv-password t) -*** NickServ identification now prompts for password last. +** NickServ identification now prompts for password last. When 'erc-prompt-for-nickserv-password' is non-nil, the user used to be unconditionally prompted interactively for a password, regardless of the value of 'erc-nickserv-passwords', which was effectively @@ -96,24 +96,24 @@ ignored (same for the new lifted, and the user is interactively prompted last, after the other identification methods have run. -*** The '/ignore' command will now ask for a timeout to stop ignoring the user. +** The '/ignore' command will now ask for a timeout to stop ignoring the user. Allowed inputs are seconds or ISO8601-like periods like "1h" or "4h30m". -*** ERC now recognizes 'C-]' for italic text. +** ERC now recognizes 'C-]' for italic text. Italic text is displayed in the new 'erc-italic-face'. -*** erc-match.el now supports 'message' highlight type (not including the nick). +** erc-match.el now supports 'message' highlight type (not including the nick). The 'erc-current-nick-highlight-type', 'erc-pal-highlight-type', 'erc-fool-highlight-type', 'erc-keyword-highlight-type', and 'erc-dangerous-host-highlight-type' user options now support a 'message' type for highlighting the entire message but not the sender's nick. -*** erc-status-sidebar.el is now part of ERC. +** erc-status-sidebar.el is now part of ERC. The 'erc-status-sidebar' package which provides a HexChat-like activity overview sidebar for joined IRC channels is now part of ERC. -*** erc-tls now supports specifying a TLS client certificate. +** erc-tls now supports specifying a TLS client certificate. The 'erc-tls' function has been updated to allow specifying a TLS client certificate for authentication, as an alternative to NickServ password-based authentication. This is referred to as "CertFP" (short @@ -122,7 +122,7 @@ node "(erc) Connecting" in the ERC manual for more details and examples on how to specify and use TLS client certificates with 'erc-tls'. -*** Update IRC-related references to point to Libera.Chat. +** Update IRC-related references to point to Libera.Chat. The Free Software Foundation and the GNU Project have moved their official IRC channels from the Freenode network to Libera.Chat. For the original announcement and the follow-up update, including @@ -138,18 +138,18 @@ now been updated to point to Libera.Chat. https://lists.gnu.org/archive/html/info-gnu-emacs/2021-06/msg00000.html -*** Add 'erc-track-select-mode-line-face' (obsoletes 'erc-track-find-face'). +** Add 'erc-track-select-mode-line-face' (obsoletes 'erc-track-find-face'). The 'erc-track-find-face' function of the erc-track module has been declared obsolete and rewritten as 'erc-track-select-mode-line-face', with different expected arguments (the current and old faces are now separated) and clearer documentation. -*** Add '/opme' and '/deopme' convenience commands. +** Add '/opme' and '/deopme' convenience commands. The new '/opme' convenience command asks ChanServ to set the operator status for the current nick in the current channel, and '/deopme' unsets it. -*** Add '/wii' convenience command for whois with idle time. +** Add '/wii' convenience command for whois with idle time. The new '/wii' convenience command calls the '/whois' command with the given nick as both arguments, which is useful for displaying the whois information for the nick along with idle time, even if the nick is on @@ -157,7 +157,7 @@ a different server than the one the current user is connected to. Using the given nick itself instead of the server it is connected to is not standardized, but is widely supported across IRC networks. -*** Add 'erc-bug' command for reporting ERC bugs. +** Add 'erc-bug' command for reporting ERC bugs. The new 'erc-bug' command prompts for a subject, and passes it on to 'report-emacs-bug' along with the current ERC version, and adds the ERC mailing list in Cc. From a1a589d07b169d56fdd78e314646d6f37167ea95 Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Mon, 11 Oct 2021 10:25:08 -0400 Subject: [PATCH 5/6] * etc/ERC-NEWS: Announce ERC's addition to GNU ELPA. --- etc/ERC-NEWS | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/etc/ERC-NEWS b/etc/ERC-NEWS index 5225c62e558..f533c58aa41 100644 --- a/etc/ERC-NEWS +++ b/etc/ERC-NEWS @@ -27,6 +27,13 @@ to Emacs versions before 28, to avoid modifying the NEWS file for all of those releases, the ERC NEWS entries have only been copied below, and the NEWS.* files were left intact. +** ERC is now available on GNU ELPA. +Starting with ERC 5.4, in addition to being distributed with GNU Emacs +itself, ERC is also included in GNU ELPA, allowing users to enjoy the +improvements of newer ERC versions on older Emacs versions as well. + +ERC's package page on GNU ELPA: https://elpa.gnu.org/packages/erc.html + ** New option 'erc-rename-buffers'. ** New faces 'erc-my-nick-prefix-face' and 'erc-nick-prefix-face'. From ac066088780d473f883e2afe8d178e2bf2c964fd Mon Sep 17 00:00:00 2001 From: Amin Bandali Date: Mon, 11 Oct 2021 10:29:35 -0400 Subject: [PATCH 6/6] Release ERC 5.4 * lisp/erc/erc.el (Version, erc-version): Bump to 5.4. (customize-package-emacs-version-alist): Add entry for 5.4. --- lisp/erc/erc.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index d3c8b62fb3e..885d311cf38 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -12,7 +12,7 @@ ;; David Edmondson (dme@dme.org) ;; Michael Olson (mwolson@gnu.org) ;; Kelvin White (kwhite@gnu.org) -;; Version: 5.3 +;; Version: 5.4 ;; Package-Requires: ((emacs "27.1")) ;; Keywords: IRC, chat, client, Internet ;; URL: https://www.gnu.org/software/emacs/erc.html @@ -69,7 +69,7 @@ (require 'iso8601) (eval-when-compile (require 'subr-x)) -(defconst erc-version "5.3" +(defconst erc-version "5.4" "This version of ERC.") (defvar erc-official-location @@ -82,7 +82,8 @@ (add-to-list 'customize-package-emacs-version-alist '(ERC ("5.2" . "22.1") - ("5.3" . "23.1"))) + ("5.3" . "23.1") + ("5.4" . "28.1"))) (defgroup erc nil "Emacs Internet Relay Chat client."