* lisp/term.el (term-emulate-terminal): Don't record the selection
of the window here, because we're not doing a user-level window
selection, but just selecting the window for internal purposes
(bug#41984).
* doc/emacs/programs.texi (Imenu): Document it.
* lisp/imenu.el (imenu-max-index-time): New user option.
(imenu-default-create-index-function, imenu--generic-function):
Use it (bug#18696).
* lisp/mh-e/mh-e.el (mh-variant-gnu-mh-info, mh-variant-nmh-info):
Run install-mh, not mhparam, to check whether an MH variant is
installed on the system. mhparam fails if no user profile is found,
so it is not a reliable check of the state of the system as a whole.
Tested with:
nmh 1.4, nmh 1.7.1, GNU Mailutils 2.2, GNU Mailutils 3.7, GNU Mailutils 3.13
* src/xterm.c (x_draw_stretch_glyph_string):
* src/w32term.c (w32_draw_stretch_glyph_string): Fix drawing
stretch glyphs when the window is hscrolled. (The original
pre-Jan-2021 code was almost correct, except that it used
'window_box_left_offset' instead of 'window_box_left', and didn't
restrict the background_width fixup to text-area.) (Bug#50564)
* admin/notes/unicode: Describe how to update emoji for new Unicode release.
* admin/unidata/Makefile.in: Pass emoji-data.txt to
blocks.awk script.
* admin/unidata/README: Add pointer to emoji-data.txt file.
* admin/unidata/blocks.awk: Parse emoji-data.txt, add emoji codepoints
to the 'emoji' script (except for the ASCII ones).
* admin/unidata/emoji-data.txt: New file.
* etc/NEWS: Describe new 'emoji' script.
* etc/TODO: Update item about 'emoji' script.
* lisp/international/fontset.el (script-representative-chars): Add
'emoji' script.
(setup-default-fontset): Add 'emoji' script. Use "Noto Color Emoji"
as default font for it.
For better compatibility with different systems.
Performance is unaffected, except in very pathological cases
(~100000 matches), and even then the overhead of 'sort' is comparable.
* lisp/progmodes/xref.el (xref-search-program-alist):
Drop the piping through 'sort'.
(xref-matches-in-files): Sort here instead.
Do that to both searchers' output as well now.
* lisp/vc/ediff-util.el (ediff-set-difference): Make into obsolete
function alias for 'seq-difference'.
* lisp/vc/ediff-mult.el (ediff-intersect-directories): Update single caller.
* lisp/vc/ediff-util.el (ediff-intersection): Make into obsolete
function alias for 'seq-intersection'.
* lisp/vc/ediff-mult.el (ediff-intersect-directories): Update
single caller.
* lisp/emacs-lisp/seq.el (seq-union): Autoload.
* lisp/vc/ediff-util.el (ediff-union): Make into obsolete function
alias for 'seq-union'.
* lisp/vc/ediff-mult.el (ediff-intersect-directories): Update single
caller.
* lisp/files.el (insert-directory): Call 'get-free-disk-space'
with the argument FILE, to make sure the reported info is for the
correct volume. (Bug#50630)
Copyright-paperwork-exempt: yes
When 'erc-prompt-for-nickserv-password' is non-nil, don't ignore the
other forms of identification. Instead, process them first, and
prompt for the password last. Separate concerns (determination of the
nick to use, of the password to use, and actual message sending).
Note that the user can be interactively prompted for a password on
reception of a NickServ request, as before (on
'erc-prompt-for-nickserv-password').
* lisp/erc/erc-services.el (erc-nickserv-identify): Make the password
argument optional (and don't prompt for it interactively). Further,
now take the nick to use for identification (interactively, ask for
it, defaulting to the current one). Move the actual message sending
into the new 'erc-nickserv-send-identify' function, and the password
prompting into 'erc-nickserv-get-password'.
(erc-nickserv-send-identify): New function containing the code for
sending the identify message to NickServ, given the nick and password.
(erc-nickserv-get-password): Try each password source in turn, in the
following order: 'erc-nickserv-passwords', auth-source (if
'erc-use-auth-source-for-nickserv-password' is non-nil), and in the
end prompt the user interactively (if
'erc-prompt-for-nickserv-password' is non-nil). If one source returns
a string, the function returns it, or nil if the string is empty.
(erc-nickserv-call-identify-function): Declare obsolete, but retain
for backward compatibility. Prefer invoking 'erc-nickserv-identify'
directly instead.
(erc-nickserv-identify-autodetect, erc-nickserv-identify-on-connect)
(erc-nickserv-identify-on-nick-change): Call 'erc-nickserv-identify'
directly ('erc-nickserv-call-identify-function' has been obsoleted).
For the last two functions, remove the redundant checks on the
NickServ identification flags (additionally, it is doubtful they have
any measurable impact on performance).
* etc/NEWS: Announce the change.
Co-authored-by: F. Jason Park <jp@neverwas.me>
* lisp/erc/erc-join.el (erc-autojoin-channels-alist): Explain the
extension.
(erc-autojoin-server-match): New function.
(erc-autojoin-channels): Use it.
(erc-autojoin-current-server): New function.
(erc-autojoin-add): Use it.
(erc-autojoin-remove): Ditto.
This can be useful when connecting to an IRC proxy like Weechat that
relays several networks under the same server. If we just keyed on the
server name, we would end up joining a channel on all networks
whenever we join one network on that server.
Networks are simply stored as symbols instead of regexes, since that's
how `erc-network' works.
The `erc-autojoin-add' function will still auto-add servers as strings
if the network doesn't have at least one entry in
`erc-autojoin-channels-alist'.
These days, a "home page" is understood to be only "the main web page
of a website" or "landing page", whereas a "website" is "a collection
of web pages and related content" (Wikipedia).
* doc/emacs/emacs.texi (Top):
* doc/emacs/package.texi (Package Menu):
* doc/lispintro/emacs-lisp-intro.texi (Top):
* doc/lispref/elisp.texi (Top):
* doc/lispref/tips.texi (Documentation Tips):
* doc/misc/ede.texi (ede-project):
* doc/misc/efaq-w32.texi (More information):
* doc/misc/gnus-faq.texi (FAQ 5-7):
* doc/misc/gnus.texi (About mairix):
* doc/misc/mairix-el.texi (About):
* doc/misc/reftex.texi (AUCTeX, Imprint):
* lisp/cedet/ede/base.el (ede-project):
* lisp/cedet/ede/system.el (ede-web-browse-home):
* lisp/emacs-lisp/package.el (package-menu-mode-menu)
(package-browse-url):
* lisp/erc/erc-button.el (erc-emacswiki-url):
* lisp/filesets.el (filesets-goto-homepage):
* lisp/net/mairix.el:
* lisp/net/webjump.el (webjump-sample-sites):
* lisp/obsolete/vc-arch.el:
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/idlwave.el (idlwave, idlwave-mode):
* lisp/textmodes/reftex-vars.el (reftex):
Prefer "website" to "home page".
* doc/lispref/tips.texi (Documentation Tips):
Sort the "URL" header comment before "Homepage".
* lisp/emacs-lisp/lisp-mnt.el
(lm-website): Rename from 'lm-homepage'.
(lm-homepage): Make into alias for 'lm-website'.
* erc.el (erc-debug-irc-protocol): Fix line-ending mismatch between
incoming and outgoing logger lines without changing interface. Do this
by adding carriage returns to the latter to improve machine
readability. Change printed peer labels to most accurately reflect
logical endpoints.
(erc-debug-irc-protocol-time-format): Add new variable to support
timestamps in protocol logger output.
(erc-debug-irc-protocol-version): Add new variable to help tooling
track logging format independent of ERC and Emacs versions.
(erc-toggle-debug-irc-protocol): Add headers to protocol-log buffer
to aid future bug-reproduction tools. Clean up overlong lines (bug#50009).
* lisp/erc/erc.el (erc-lurker-maybe-trim): Prevent warning from
showing up in third-party code using this function by autoloading
rx.el when needed. Remove trailing chars appended for uniquifying
purposes when a nick is already taken. Special thanks to Mattias
Engdegård for making this more respectable (Bug#50005).
* test/lisp/erc/erc-tests.el: Add tests for the above and require
erc-networks.
* test/lisp/erc/erc-tests.el (erc-ring-previous-command):
The variable erc-send-completed-hook was previously set to nil
permanently, which would affect other tests (bug#50005).
* doc/emacs/custom.texi (Early Init File): Clarify that using the
early-init file should be reserved to cases where it is absolutely
necessary. (Bug#50491)