Commit graph

373 commits

Author SHA1 Message Date
Amin Bandali
8d957f2dd8
Merge from origin/emacs-27
348b2aed0c Update IRC-related references to point to Libera.Chat
b0e725e2fe Fix typo in c-macro-expand docstring

# Conflicts:
#	doc/misc/erc.texi
#	doc/misc/gnus-faq.texi
#	doc/misc/rcirc.texi
#	etc/NEWS
#	lisp/erc/erc-services.el
#	lisp/erc/erc.el
#	lisp/ldefs-boot.el
#	lisp/net/rcirc.el
2021-07-04 00:14:47 -04:00
Amin Bandali
348b2aed0c
Update IRC-related references to point to Libera.Chat
Per GNU and FSF's announcements [0, 1] of moving official IRC channels
to the Libera.Chat IRC network, as well as several Emacs-related
channels following suit [2], update IRC-related references to reflect
the migration.

[0]: https://lists.gnu.org/archive/html/info-gnu/2021-06/msg00005.html
[1]: https://lists.gnu.org/archive/html/info-gnu/2021-06/msg00007.html
[2]: https://lists.gnu.org/archive/html/info-gnu-emacs/2021-06/msg00000.html
2021-07-03 23:39:18 -04:00
Philip Kaludercic
f222fe6163
* rcirc.el (rcirc-define-command): Mention name of malformed command
Author:
2021-07-02 20:11:08 +02:00
Alex McGrath
e3f456255b Fix SASL joining channels after auth 2021-06-29 17:07:00 +02:00
Alex McGrath
a85d27278e Send CAP END after authentication has been successful 2021-06-29 13:41:28 +02:00
Alex McGrath
df6efb1c8b Fix SASL on rcirc-update 2021-06-28 21:41:52 +02:00
Alex McGrath
6122e4c1f0 Add SASL authentication to rcirc
* lisp/net/rcirc.el (rcirc-handler-AUTHENTICATE): New function
(bug#48601).
(rcirc-authenticate):
(rcirc-connect): Support sasl.
(rcirc-get-server-password, rcirc-get-server-method): New functions.
(rcirc-authinfo): Document it.
2021-06-24 23:27:20 +02:00
Alex McGrath
8db520837a Add SASL authentication to rcirc
* lisp/net/rcirc.el (rcirc-handler-AUTHENTICATE): New function
(bug#48601).
(rcirc-authenticate):
(rcirc-connect): Support sasl.
(rcirc-get-server-password, rcirc-get-server-method): New functions.
(rcirc-authinfo): Document it.
2021-06-24 18:45:08 +02:00
Philip Kaludercic
b81c977799 Query encryption using yes-or-no-p
* rcirc.el (rcirc-prompt-for-encryption): Replace completing-read
  prompt with yes-or-no-p
2021-06-21 09:12:25 +02:00
Philip Kaludercic
869db473cb Use add-to-list instead of manually modifying minor-mode-alist 2021-06-19 10:43:26 +02:00
Philip Kaludercic
21148f67f1 Force mode line update after modifying activity string
* rcirc.el (rcirc-update-activity-string): Call force-mode-line-update
2021-06-16 09:43:05 +02:00
Philip Kaludercic
b5d935bb7f Fix edge case with single argument for rcirc-define-command
* rcirc.el (rcirc-define-command): Update regular expression generator
2021-06-15 23:44:56 +02:00
Philip Kaludercic
7e5360f322 Fix argument parser for rcirc-define-command with string input
* rcirc.el (rcirc-define-command): Require at least one space between
arguments
2021-06-15 23:12:02 +02:00
Philip Kaludercic
1181c606b3 Check if server buffer is live
* rcirc.el (with-rcirc-server-buffer): Use live-buffer-p
(rcirc-buffer-nick): Use with-rcirc-server-buffer
(rcirc-switch-to-server-buffer): Use with-rcirc-server-buffer
2021-06-15 18:16:58 +02:00
Philip Kaludercic
946ceca26f Improve message markup
* rcirc.el (rcirc-markup-text-functions): Add rcirc-color-attributes,
rcirc-remove-markup-codes
(rcirc-markup-attributes): Recognize strike-through and monospace,
don't remove control codes
(rcirc-color-attributes): Recognize mIRC color codes
(rcirc-remove-markup-codes): Add function
(rcirc-monospace-text): Add face
2021-06-15 09:37:17 +02:00
Philip Kaludercic
3e31846468 Fix construction of interactive specification in rcirc-define-command
* rcirc.el (rcirc-define-command): Ensure that only one argument is passed.
2021-06-14 18:02:24 +02:00
Philip Kaludercic
f1e79a33b5 Rename set-rcirc-{encode,decode}-coding-system
* rcirc.el (set-rcirc-decode-coding-system): Deprecate command
(rcirc-set-decode-coding-system): New command
(set-rcirc-encode-coding-system): Deprecate command
(rcirc-set-encode-coding-system): New command
2021-06-14 13:25:57 +02:00
Philip Kaludercic
88e07af18c Preserve order of completion during cycling
* rcirc.el (rcirc-completion-at-point): Specify cycle-sort-function
2021-06-14 11:52:28 +02:00
Philip Kaludercic
e17cc751ba Add mouse properties to activity string
* rcirc.el (rcirc-activity-string): Allow clicking on string
2021-06-14 00:21:48 +02:00
Philip Kaludercic
e61bdd5a96 Update activity string after switching to next active buffer
* rcirc.el (rcirc-next-active-buffer): Call rcirc-update-activity-string
2021-06-13 20:00:59 +02:00
Philip Kaludercic
a44e402b69 Preserve incoming order of messages with same timestamp
* rcirc.el (rcirc-print): Emulate time-less-or-equal-p
2021-06-10 19:44:00 +02:00
Philip Kaludercic
fd96e3a0d9 Allow hiding certain message types after reconnecting
* rcirc.el (rcirc-omit-after-reconnect): Add new user option
(rcirc-reconncting): Add new variable
(rcirc-print): Check if message should be omitted
(reconnect): Mark buffers as freshly reconnected
2021-06-10 17:38:44 +02:00
Philip Kaludercic
3a61e7bca1 Use defvar-local instead of setq-local where applicable 2021-06-10 17:22:58 +02:00
Philip Kaludercic
13f6f78473 Allow for optional arguments using rcirc-define-command
* rcirc.el (rcirc-define-command): Handle &optional arguments
2021-06-10 17:22:58 +02:00
Philip Kaludercic
b67b1eea25 Fix prompt doubling when reconnecting
* rcirc.el (rcirc-connect): Check if rcirc-mode is already active
(rcirc-get-buffer-create): Check if rcirc-mode is already active
2021-06-10 17:22:58 +02:00
Philip Kaludercic
95fdd4b99b Allow filtering how nicks are presented
* rcirc.el (rcirc-nick-filter): Add new option
(rcirc-completion-at-point): Use rcirc-nick-filter
(rcirc-format-response-string): Use rcirc-nick-filter
(rcirc-sort-nicknames-join): Use rcirc-nick-filter
2021-06-10 17:22:58 +02:00
Philip Kaludercic
f6e18c63a6 Implement invite-notify capability
* rcirc.el (rcirc-implemented-capabilities): Add invite-notify
(rcirc-handler-INVITE): Handle invite notifications
2021-06-10 17:22:58 +02:00
Philip Kaludercic
c300326fa0 Add TAGMSG handler
* rcirc.el (rcirc-handler-TAGMSG): Add new message handler
2021-06-10 17:22:58 +02:00
Philip Kaludercic
567e288eb9 Implement message-ids extension
* rcirc.el (rcirc-implemented-capabilities): Add to list of
implemented extensions
(rcirc-print): Insert property denoting message ID
2021-06-10 17:22:58 +02:00
Philip Kaludercic
ab49a9a634 Implement batch extension
* rcirc.el (rcirc-implemented-capabilities): Add batch extension
(rcirc-supported-batch-types): Add new variable
(rcirc-batch-attributes): Add new variable
(rcirc-batched-messages): Add new variable
(rcirc-process-server-response-1): Handle messages with batch tag
(rcirc-handler-BATCH): Add batch dispatcher
2021-06-10 17:22:58 +02:00
Philip Kaludercic
849e71fd83 Implement server-time extension
* rcirc.el (rcirc-implemented-capabilities): Add new capability
(rcirc-print): Insert messages in the right position
(rcirc-log): Use right time value
(rcirc-markup-timestamp): Use right time value
2021-06-10 17:22:58 +02:00
Philip Kaludercic
06af44e3e1 Create framework for IRCv3 support
* rcirc.el (rcirc-implemented-capabilities): Add new variable
(rcirc-requested-capabilities): Add new variable
(rcirc-acked-capabilities): Add new variable
(rcirc-connect): Request capabilities from rcirc-implemented-capabilities
(rcirc-process-regexp): Extend rcirc-process-regexp with tag support
(rcirc-tag-regexp): Add new tokenizer for tags
(rcirc-message-tags): Add new variable
(rcirc-get-tag): Add new function
(rcirc-process-server-response-1): Parse message-tags
(rcirc-handler-CAP): Add new handler for capability requests
2021-06-10 17:22:57 +02:00
Philip Kaludercic
4ff1f66b12 Replace defun-rcirc-command with rcirc-define-command
* rcirc.el (defun-rcirc-command): Remove old macro
(rcirc-define-command): Create new macro
2021-06-10 17:22:57 +02:00
Philip Kaludercic
0b367ec39f Remove custom rcirc-completion implementation
* rcirc.el (rcirc-completion-at-point): Improve completion suggestions
(rcirc-completions): Remove variable
(rcirc-completion-start): Remove variable
(rcirc-complete): Remove function
(rcirc-mode-map): Bind TAB to completion-at-point
(rcirc-mode): Use cycling for completion
2021-06-09 18:21:01 +02:00
Philip Kaludercic
8ea5766050 Recognize quoted commands in rcirc-process-input-line
* rcirc.el (rcirc-process-input-line): Check for quoted commands
(rcirc-process-command): Don't check for quoted commands
2021-06-09 18:20:21 +02:00
Philip Kaludercic
e6c99a761d Integrate formatting into rcirc-send-string
* rcirc.el (rcirc-connect): Use new syntax
(rcirc-send-string): Allow for more arguments
(rcirc-send-privmsg): Use new syntax
(rcirc-send-ctcp): Use new syntax
(rcirc-send-message): Use new syntax
(rcirc-clean-up-buffer): Use new syntax
(join): Use new syntax
(invite): Use new syntax
(part): Use new syntax
(quit): Use new syntax
(nick): Use new syntax
(names): Use new syntax
(topic): Use new syntax
(whois): Use new syntax
(mode): Use new syntax
(list): Use new syntax
(oper): Use new syntax
(kick): Use new syntax
(rcirc-handler-PING): Use new syntax
(rcirc-handler-ctcp-VERSION): Use new syntax
(rcirc-handler-ctcp-ACTION): Use new syntax
(rcirc-handler-ctcp-TIME): Use new syntax
2021-06-09 18:19:46 +02:00
Philip Kaludercic
fb158754c4 Fix checkdoc complaints and related issues 2021-06-09 18:19:11 +02:00
Philip Kaludercic
c6b6c2d596 Use auth-source for user-passwords
* (rcirc): Use auth-source is no password was specifed
2021-06-09 16:09:55 +02:00
Philip Kaludercic
6898816b7d Default to libera instead of freenode
* rcirc.el (rcirc-server-alist): Update default value
2021-06-09 16:08:36 +02:00
Tassilo Horn
a488716961 Allow opening buttonized URL with secondary browser in rcirc
* lisp/net/browse-url.el (browse-url-button-open-url): Add autoload
cookie.
* lisp/net/rcirc.el (rcirc-markup-urls): Use
`browse-url-button-open-url' instead of just `browse-url' in order to
be able to use the secondary browser by giving a prefix arg.
2021-06-02 23:04:51 +02:00
Philip K
869e437c10 Don't hard-code "~/.emacs.d/" in rcirc.el
* lisp/net/rcirc.el (rcirc-log-directory): Use
locate-user-emacs-file.  (Bug#47880)
2021-04-19 09:30:58 +02:00
Stefan Monnier
c45bfd3c4a * lisp/**/*.el: Avoid positional args to define-minor-mode
Back in Emacs-21.1, `define-minor-mode` grew keywords arguments to
replace its old positional arguments.  Let's make sure we don't use
the old-style any more.

* lisp/org/ox-beamer.el (org-beamer-mode-map): Move initialization
into declaration.
(org-beamer-mode):
* lisp/textmodes/tildify.el (tildify-mode):
* lisp/textmodes/sgml-mode.el (html-autoview-mode):
* lisp/textmodes/rst.el (rst-minor-mode):
* lisp/textmodes/remember.el (remember-notes-mode):
* lisp/textmodes/ispell.el (ispell-minor-mode):
* lisp/tar-mode.el (tar-subfile-mode):
* lisp/strokes.el (strokes-mode):
* lisp/so-long.el (so-long-minor-mode):
* lisp/shell.el (shell-dirtrack-mode):
* lisp/scroll-all.el (scroll-all-mode):
* lisp/ruler-mode.el (ruler-mode):
* lisp/rect.el (rectangle-mark-mode):
* lisp/progmodes/sh-script.el (sh-electric-here-document-mode):
* lisp/outline.el (outline-minor-mode):
* lisp/org/org.el (org-cdlatex-mode):
* lisp/org/org-table.el (org-table-header-line-mode)
(org-table-follow-field-mode, orgtbl-mode):
* lisp/org/org-src.el (org-src-mode):
* lisp/org/org-list.el (org-list-checkbox-radio-mode):
* lisp/org/org-indent.el (org-indent-mode):
* lisp/org/org-capture.el (org-capture-mode):
* lisp/obsolete/pc-select.el (pc-selection-mode):
* lisp/obsolete/iswitchb.el (iswitchb-mode):
* lisp/net/rcirc.el (rcirc-omit-mode, rcirc-multiline-minor-mode)
(rcirc-track-minor-mode):
* lisp/net/goto-addr.el (goto-address-mode, goto-address-prog-mode):
* lisp/image-mode.el (image-minor-mode):
* lisp/ibuf-ext.el (ibuffer-auto-mode):
* lisp/gnus/gnus-cite.el (gnus-message-citation-mode):
* lisp/font-core.el (font-lock-mode):
* lisp/erc/erc.el (define-erc-module):
* lisp/erc/erc-track.el (erc-track-minor-mode):
* lisp/erc/erc-fill.el (erc-fill-mode):
* lisp/epa-mail.el (epa-mail-mode):
* lisp/emacs-lisp/checkdoc.el (checkdoc-minor-mode):
* lisp/dirtrack.el (dirtrack-mode, dirtrack-debug-mode):
* lisp/dired-aux.el (dired-isearch-filenames-mode):
* lisp/cedet/semantic/idle.el (semantic-idle-scheduler-mode):
* lisp/cedet/semantic/decorate/mode.el (semantic-decoration-mode):
* lisp/autoarg.el (autoarg-mode, autoarg-kp-mode):
* lisp/vc/pcvs.el (cvs-minor-mode):
Avoid old-style positional args to `define-minor-mode`.
2021-04-11 23:47:14 -04:00
Stefan Monnier
dc083ebc4e * lisp/net/*.el: Use lexical-binding
Also remove some redundant `:group` arguments.

* lisp/net/eudc-export.el: Use lexical-binding.
(eudc-create-bbdb-record): Use `cl-progv` and `apply` to avoid `eval`.

* lisp/net/eudc-hotlist.el: Use lexical-binding.

* lisp/net/eudc.el (eudc-print-attribute-value): Use `funcall` to avoid
`eval`.

* lisp/net/eudcb-bbdb.el: Use lexical-binding.
(eudc-bbdb-filter-non-matching-record): Use `funcall` to avoid `eval`.
Move `bbdb-val` binding to avoid `setq`.
Use `seq-some` instead of `eval+or`.
(eudc-bbdb-format-record-as-result): Use `dolist` and `pcase`.
Use `funcall` to avoid `eval`.
(eudc-bbdb-query-internal): Simplify a bit.

* lisp/net/eudcb-ldap.el: Use lexical-binding.
(eudc-ldap-get-host-parameter): Use `defalias` to avoid `eval-and-compile`.

* lisp/net/telnet.el: Use lexical-binding.
* lisp/net/quickurl.el: Use lexical-binding.
* lisp/net/newst-ticker.el: Use lexical-binding.
* lisp/net/newst-reader.el: Use lexical-binding.
* lisp/net/goto-addr.el: Use lexical-binding.
* lisp/net/gnutls.el: Use lexical-binding.
* lisp/net/eudcb-macos-contacts.el: Use lexical-binding.
* lisp/net/eudcb-mab.el: Use lexical-binding.

* lisp/net/net-utils.el: Use lexical-binding.
(finger): Remove unused var `found`.

* lisp/net/network-stream.el (open-protocol-stream): Remove redundant
`defalias`.

* lisp/net/newst-plainview.el: Use lexical-binding.
(newsticker-hide-entry, newsticker-show-entry): Remove unused var
`is-invisible`.
(w3m-fill-column, w3-maximum-line-length): Declare vars.

* lisp/net/tramp.el (tramp-compute-multi-hops):
* lisp/net/tramp-compat.el (tramp-compat-temporary-file-directory):
* lisp/net/tramp-cmds.el (tramp-default-rename-file):
* lisp/net/webjump.el (webjump): Don't forget lexical-binding for `eval`.
2021-03-08 10:11:22 -05:00
Tassilo Horn
1ff46018f6 Improve rcirc-authenticated-hook docstring
* lisp/net/rcirc.el (rcirc-authenticated-hook): Improve docstring.
2021-03-05 20:53:18 +01:00
Stefan Kangas
21d9303c61 Prefer defvar-local in net/*.el
* lisp/net/browse-url.el (browse-url-temp-file-name):
* lisp/net/rcirc.el (rcirc-ignore-buffer-activity-flag)
(rcirc-low-priority-flag, rcirc-parent-buffer)
(rcirc-activity-types, rcirc-last-sender):
* lisp/net/soap-inspect.el (soap-inspect-previous-items)
(soap-inspect-current-item):
* lisp/net/telnet.el (telnet-remote-echoes)
(telnet-interrupt-string, telnet-count): Prefer defvar-local.
2021-01-31 20:08:25 +01:00
Paul Eggert
ba05d005e5 Update copyright year to 2021
Run "TZ=UTC0 admin/update-copyright".
2021-01-01 01:13:56 -08:00
Paul Eggert
8c1fe1e5ef Update copyright year to 2021
Run "TZ=UTC0 admin/update-copyright $(git ls-files)".
2021-01-01 00:32:32 -08:00
Stefan Kangas
5ab5c38987 Shorten over-wide docstrings in defcustoms
* lisp/calc/calc.el (calc-embedded-announce-formula-alist)
(calc-embedded-open-formula, calc-embedded-close-formula)
(calc-matrix-mode):
* lisp/cedet/semantic/imenu.el (semantic-imenu-sort-bucket-function):
* lisp/emacs-lisp/find-func.el (find-feature-regexp):
* lisp/emulation/cua-base.el (cua-paste-pop-rotate-temporarily):
* lisp/emulation/viper-init.el (viper-fast-keyseq-timeout)
(viper-related-files-and-buffers-ring):
* lisp/emulation/viper-keym.el (viper-want-ctl-h-help):
* lisp/gnus/gnus-art.el (gnus-article-banner-alist):
* lisp/gnus/gnus-group.el (gnus-keep-same-level):
* lisp/gnus/gnus-score.el (gnus-adaptive-word-length-limit):
* lisp/gnus/gnus-sum.el (gnus-inhibit-user-auto-expire):
* lisp/gnus/gnus-uu.el (gnus-uu-ignore-files-by-type)
(gnus-uu-do-not-unpack-archives)
(gnus-uu-unmark-articles-not-decoded)
(gnus-uu-correct-stripped-uucode, gnus-uu-save-in-digest)
(gnus-uu-post-include-before-composing):
* lisp/gnus/gnus.el (gnus-use-long-file-name)
(gnus-install-group-spam-parameters):
* lisp/gnus/message.el (message-cite-style):
* lisp/gnus/nnmail.el
(nnmail-split-fancy-with-parent-ignore-groups)
(nnmail-cache-ignore-groups):
* lisp/ido.el (ido-rewrite-file-prompt-functions):
* lisp/mail/feedmail.el (feedmail-fiddle-plex-user-list)
(feedmail-spray-address-fiddle-plex-list):
* lisp/mh-e/mh-e.el (mh-annotate-msg-hook):
* lisp/net/imap.el (imap-process-connection-type):
* lisp/net/rcirc.el (rcirc-omit-threshold):
* lisp/net/tramp-sh.el (tramp-copy-size-limit):
* lisp/nxml/nxml-mode.el (nxml-default-buffer-file-coding-system):
* lisp/obsolete/landmark.el (landmark-max-stall-time):
* lisp/obsolete/tls.el (tls-checktrust):
* lisp/org/org-indent.el
(org-indent-mode-turns-off-org-adapt-indentation)
(org-indent-mode-turns-on-hiding-stars):
* lisp/org/org-protocol.el (org-protocol-project-alist):
* lisp/progmodes/cc-vars.el (c-doc-comment-style):
* lisp/progmodes/cperl-mode.el (cperl-indent-subs-specially):
* lisp/progmodes/flymake-proc.el (flymake-proc-allowed-file-name-masks):
* lisp/progmodes/hideif.el (hide-ifdef-expand-reinclusion-protection):
* lisp/simple.el (minibuffer-history-case-insensitive-variables):
* lisp/tab-bar.el (tab-bar-close-last-tab-choice):
* lisp/textmodes/reftex-vars.el
(reftex-special-environment-functions):
* lisp/vc/ediff-init.el (ediff-startup-hook, ediff-cleanup-hook)
(ediff-metachars):
* lisp/vc/ediff-merg.el (ediff-show-clashes-only):
* lisp/vc/ediff-mult.el (ediff-default-filtering-regexp): Shorten doc
strings to not exceed 80-column limits.  (Bug#44858)
2020-12-19 18:21:06 +01:00
Lars Ingebrigtsen
1fb099ceb0 Make rcirc nick renaming heed nickname max lengths
* lisp/net/rcirc.el (rcirc-server-parameters): New variable (bug#6795).
(rcirc-connect): Set it.
(rcirc-handler-433): Use the length from the server.
(rcirc-handler-005): Collect server data.
(rcirc-server-parameter-value): New utility function.
(rcirc--make-new-nick): New function.
2020-12-08 18:22:47 +01:00
Amin Bandali
694c82ab1a
Replace irc.freenode.net with chat.freenode.net
chat.freenode.net has been the preferred address for connecting to the
freenode IRC network for years now.  Replace the occurrences of
irc.freenode.net with chat.freenode.net.
2020-10-31 14:09:29 -04:00