* lisp/dired-aux.el (dired-compress-file-suffixes): Specify the
directory in the tar targets.
(dired-uncompress-file): New function (bug#47058). This asks what
directory to uncompress to.
(dired-compress-file): Use it.
This covers both sequences using Zero-Width-Joiner codepoints and
those without. Bug#39799, I hope.
* .gitignore: Add emoji-zwj.el
* admin/notes/unicode: Add emoji-zwj-sequences.txt and
emoji-sequences.txt references. Describe how to test after updating
to a newer Unicode version.
* admin/unidata/Makefile.in (all): add emoji-zwj.el as a dependency.
(emoji-zwj.el): Add target plus rules for building.
(gen-clean): Add emoji-zwj.el.
* admin/unidata/README: Add emoji-zwj-sequences.txt and
emoji-sequences.txt references.
* admin/unidata/blocks.awk: Force emoji script to be used for certain
codepoints that are used by the Unicode sequences.
* admin/unidata/emoji-sequences.txt: New file.
* admin/unidata/emoji-zwj-sequences.txt: New file.
* admin/unidata/emoji-zwj.awk: New file. Derives
composition-function-table rules from emoji-zwj-sequences.txt, plus
hardcodes some derived manually from emoji-sequences.txt.
* etc/NEWS: Announce change.
* lisp/international/characters.el: Load the generated emoji-zwj.el
* src/Makefile.in (emoji-zwj): New target.
(temacs): Add emoji-zwj as a dependency.
* doc/misc/eww.texi (Advanced): Mention url-retrieve-synchronously
for eww-retrieve-command.
* lisp/net/eww.el (eww-retrieve-command): Add choice 'sync' for
url-retrieve-synchronously.
(eww-retrieve): Use value 'sync' for url-retrieve-synchronously.
(eww-isearch-next-buffer): Let-bind eww-retrieve-command to 'sync'.
* lisp/erc/erc.el (erc-cmd-OPME, erc-cmd-DEOPME): Add convenience
commands for setting and unsetting the operator status on the current
nick in the current channel. 'erc-cmd-OPME' relies on ChanServ for
obtaining the operator status (see doc string for more details).
* etc/NEWS: Announce the addition of the commands.
* lisp/help-fns.el (help-fns--analyze-function): Use it.
* lisp/help-fns.el (help-enable-symbol-autoload): New user option.
* doc/emacs/help.texi (Name Help): Document it.
* src/fileio.c (expand-file-name): Check for null bytes for both
NAME and DEFAULT-DIRECTORY arguments. Also check for null bytes
in buffer-local default-directory, assuming it is used.
* src/coding.c (encode_file_name): Use CHECK_STRING_NULL_BYTES.
* src/lisp.h (CHECK_STRING_NULL_BYTES): Add function for checking
for null bytes in Lisp strings.
* test/src/fileio-tests.el (fileio-test--expand-file-name-null-bytes):
Add test for new changes to expand-file-name.
* etc/NEWS: Announce changes.
* 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).
* 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.
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>
* doc/lispref/minibuf.texi (Yes-or-No Queries):
* doc/lispref/os.texi (Suspending Emacs):
* doc/lispref/tips.texi (Programming Tips):
* doc/misc/gnus-faq.texi (FAQ 5-9):
* lisp/subr.el (y-or-n-p):
* src/fns.c (Fyes_or_no_p): Doc fix to reflect that a trailing space
is no longer needed; one is added or removed automatically.
* admin/unidata/copyright.html:
* admin/unidata/UnicodeData.txt:
* admin/unidata/Blocks.txt:
* admin/unidata/BidiBrackets.txt:
* admin/unidata/BidiMirroring.txt:
* admin/unidata/IVD_Sequences.txt:
* admin/unidata/NormalizationTest.txt:
* admin/unidata/SpecialCasing.txt:
* test/manual/BidiCharacterTest.txt: Updated files from Unicode
14.0.
* lisp/international/fontset.el (script-representative-chars): Add
new scripts.
(otf-script-alist): Update from latest version.
(setup-default-fontset): Add new scripts.
* lisp/international/characters.el: Update syntax and category
tables for new characters and scripts.
(char-width-table): Update for changes in Unicode 14.0.
* lisp/international/mule-cmds.el (ucs-names): Update used and
unused ranges per Unicode 14.0.
* test/lisp/international/ucs-normalize-tests.el
(ucs-normalize-tests--failing-lines-part1)
(ucs-normalize-tests--failing-lines-part2): Update per the test
results.
* doc/lispref/nonascii.texi (Character Properties): Update Unicode
version number.
* etc/NEWS: Announce support for Unicode 14.0.
* admin/notes/unicode: Minor copyedits.
* doc/misc/rcirc.texi (rcirc commands): Mention rcirc-reconnect-attempts
* etc/NEWS: Document change
(rcirc-connect): Ensure no other process exists
(rcirc-reconnect-attempts): Add option
(rcirc-failed-attempts): Add local variable
(rcirc-reconnection-timer): Add local variable
(rcirc-reconnect): Add function
(rcirc-sentinel): Manage multiple reconnection attempts
(rcirc-process-server-response): Change user for error messages
(rcirc-mode): Don't set rcirc-last-connect-time
(reconnect): Extract functionality to rcirc-reconnect
This is done with two new concepts: "foreign diagnostics" and
"list-only diagnostics". The manual has been updated with a
description of these new concepts.
* doc/misc/flymake.texi (Flymake utility functions):
Explain creation of foreign diagnostics.
(Foreign and list-only diagnostics): New subsection.
(Listing diagnostics): New subsection.
* lisp/progmodes/flymake.el
(Version): Bump to 1.2.1
(project): Require project.
(flymake--diag): Add new slots 'orig-beg' and 'orig-end'. Rename
'buffer' slot to 'locus'.
(flymake-make-diagnostic): Rework docstring. Accept stringp
LOCUS arg.
(flymake-diagnostic-beg, flymake-diagnostic-end)
(flymake-diagnostic-buffer): Simplify definition.
(flymake--equal-diagnostic-p): New helper
(flymake--highlight-line): Rework. Accept FOREIGN arg.
(flymake--state): Work docstring. Add new slot 'foreign-diags'
(flymake--handle-report): Call
flymake--update-diagnostics-listings.
(flymake--handle-report): New helper.
(flymake--mode): Forward declare.
(flymake--handle-report): Rework for foreign diagnostics.
(flymake-mode): When turning on, notice any Flymake diagnostics
for current buffer. When turning off update diagnostics listings.
(flymake-kill-buffer-hook): Turn off flymake explicitly before
killing.
(flymake--mode-line-counter): Use flymake-diagnostics to collect
diagnostics.
(flymake-show-diagnostic): Visit buffer of file-specific
diagnostic.
(flymake--tabulated-entries-1): New helper extracted from
flymake--diagnostic-buffer-entries.
(flymake--diagnostics-buffer-entries): Rework.
(flymake--diagnostics-base-tabulated-list-format): New helper.
(flymake--diagnostics-buffer-name): Adjust.
(flymake-list-only-diagnostics): New variable.
(flymake--project-diagnostic-list-project): New variable.
(flymake--clear-list-only-diagnostics): New helper.
(flymake-project-diagnostics-mode): New major mode.
(flymake--project-diagnostics)
(flymake--project-diagnostics-entries)
(flymake--project-diagnostics-buffer): New helpers.
(flymake-show-project-diagnostics): New command.
(flymake--update-diagnostics-listings): New helper.
(flymake-show-buffer-diagnostics): Renamed from flymake-diagnostics-buffer.
* etc/NEWS: Mention change.
* lisp/emacs-lisp/checkdoc.el
(checkdoc-column-zero-backslash-before-paren): New user option to
avoid warning on unescaped left parenthesis in column zero.
(checkdoc-this-string-valid-engine): Respect above new option.
* lisp/bookmark.el (bookmark-face): Adjust colors.
(bookmark-fringe-mark): New bitmap.
(bookmark--fontify): Use a fringe instead of marking the whole line.
(bookmark--unfontify): Adjust to remove.
(bookmark--jump-via): Ditto.
(bookmark-set-fringe-mark): Renamed from bookmark-fontify.
(bookmark--set-fringe-mark, bookmark--remove-fringe-mark): Renamed
from --*fontify. Callers adjusted.