diff --git a/.clang-format b/.clang-format index 44200a39952f..5c987536b0cd 100644 --- a/.clang-format +++ b/.clang-format @@ -1,12 +1,20 @@ Language: Cpp BasedOnStyle: GNU AlignEscapedNewlinesLeft: true +AlignOperands: Align AlwaysBreakAfterReturnType: TopLevelDefinitions BreakBeforeBinaryOperators: All BreakBeforeBraces: GNU ColumnLimit: 70 ContinuationIndentWidth: 2 -ForEachMacros: [FOR_EACH_TAIL, FOR_EACH_TAIL_SAFE] +IndentPPDirectives: AfterHash +PPIndentWidth: 1 +ForEachMacros: + - FOR_EACH_TAIL + - FOR_EACH_TAIL_SAFE + - FOR_EACH_LIVE_BUFFER + - ITREE_FOREACH + - FOR_EACH_ALIST_VALUE IncludeCategories: - Regex: '^$' Priority: -1 @@ -16,11 +24,17 @@ IncludeCategories: Priority: 2 - Regex: '.*' Priority: 3 +WhitespaceSensitiveMacros: + - STR + - CALL1I + - CALL2I + - STR_VALUE KeepEmptyLinesAtTheStartOfBlocks: false MaxEmptyLinesToKeep: 1 PenaltyBreakBeforeFirstCallParameter: 2000 SpaceAfterCStyleCast: true SpaceBeforeParens: Always +UseTab: Always # Local Variables: # mode: yaml diff --git a/.dir-locals.el b/.dir-locals.el index b313945936c0..0bcded4b5d1a 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -1,12 +1,18 @@ -;;; Directory Local Variables +;;; Directory Local Variables -*- no-byte-compile: t; -*- ;;; For more information see (info "(emacs) Directory Variables") ((nil . ((tab-width . 8) (sentence-end-double-space . t) (fill-column . 70) - (bug-reference-url-format . "https://debbugs.gnu.org/%s"))) + (emacs-lisp-docstring-fill-column . 65) + (vc-git-annotate-switches . "-w") + (bug-reference-url-format . "https://debbugs.gnu.org/%s") + (diff-add-log-use-relative-names . t) + (vc-prepare-patches-separately . nil))) (c-mode . ((c-file-style . "GNU") - (c-noise-macro-names . ("INLINE" "ATTRIBUTE_NO_SANITIZE_UNDEFINED" "UNINIT" "CALLBACK" "ALIGN_STACK")) + (c-noise-macro-names . ("INLINE" "NO_INLINE" "ATTRIBUTE_NO_SANITIZE_UNDEFINED" + "UNINIT" "CALLBACK" "ALIGN_STACK" "ATTRIBUTE_MALLOC" + "ATTRIBUTE_DEALLOC_FREE")) (electric-quote-comment . nil) (electric-quote-string . nil) (indent-tabs-mode . t) @@ -15,8 +21,12 @@ (electric-quote-comment . nil) (electric-quote-string . nil) (mode . bug-reference-prog))) + (c-ts-mode . ((c-ts-mode-indent-style . gnu) + (indent-tabs-mode . t) + (mode . bug-reference-prog))) (log-edit-mode . ((log-edit-font-lock-gnu-style . t) - (log-edit-setup-add-author . t))) + (log-edit-setup-add-author . t) + (vc-git-log-edit-summary-target-len . 50))) (change-log-mode . ((add-log-time-zone-rule . t) (fill-column . 74) (mode . bug-reference))) @@ -25,6 +35,7 @@ (electric-quote-comment . nil) (electric-quote-string . nil) (mode . bug-reference-prog))) + (lisp-data-mode . ((indent-tabs-mode . nil))) (texinfo-mode . ((electric-quote-comment . nil) (electric-quote-string . nil) (mode . bug-reference-prog))) diff --git a/.gitattributes b/.gitattributes index d9288b27d0f8..f3175a5cce1d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,6 +1,6 @@ # Attributes of Emacs files in the Git repository. -# Copyright 2015-2023 Free Software Foundation, Inc. +# Copyright 2015-2024 Free Software Foundation, Inc. # This file is part of GNU Emacs. diff --git a/.gitignore b/.gitignore index 40e6bf10ace1..46fa860c2914 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ # Files that Git should ignore in the Emacs source directory. -# Copyright 2009-2023 Free Software Foundation, Inc. +# Copyright 2009-2024 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -25,6 +25,7 @@ # Personal customization. .dir-locals-2.el +.no-advice-on-failure # Built by 'autogen.sh'. /aclocal.m4 @@ -53,6 +54,7 @@ src/emacs-module.h # C-level sources built by 'make'. lib/alloca.h +lib/assert.h lib/byteswap.h lib/dirent.h lib/errno.h @@ -93,6 +95,7 @@ lisp/cedet/semantic/grammar-wy.el lisp/eshell/esh-groups.el lisp/finder-inf.el lisp/leim/ja-dic/ +leim/small-ja-dic-option lisp/leim/leim-list.el lisp/leim/quail/4Corner.el lisp/leim/quail/ARRAY30.el @@ -156,9 +159,11 @@ test/manual/etags/srclist test/manual/etags/regexfile test/manual/etags/ETAGS test/manual/etags/CTAGS +test/manual/etags/CTAGS*.sorted test/manual/indent/*.new test/lisp/gnus/mml-sec-resources/random_seed test/lisp/play/fortune-resources/fortunes.dat +test/**/*.xml # ctags, etags. TAGS @@ -182,6 +187,7 @@ ID # Executables. *.exe a.out +lib-src/be-resources lib-src/blessmail lib-src/ctags lib-src/ebrowse @@ -203,6 +209,7 @@ nextstep/GNUstep/Emacs.base/Resources/Info-gnustep.plist src/bootstrap-emacs src/emacs src/emacs-[0-9]* +src/Emacs src/temacs src/dmpstruct.h src/*.pdmp @@ -215,8 +222,10 @@ lisp/international/charprop.el lisp/international/charscript.el lisp/international/cp51932.el lisp/international/emoji-zwj.el +lisp/international/emoji-labels.el lisp/international/eucjp-ms.el lisp/international/uni-*.el +lisp/international/idna-mapping.el lisp/language/pinyin.el # Documentation. @@ -316,3 +325,17 @@ lib-src/seccomp-filter-exec.pfc # gsettings schema /etc/*.gschema.valid + +# Ignore directory made by admin/make-manuals. +/manual/ + +# Ignore Finder files on MacOS. +.DS_Store + +# Ignore a directory used by dap-mode. +.vscode +/test/gmp.h + +# GDB history +.gdb_history +_gdb_history diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 601138365f3e..a9cf69ac195a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -# Copyright (C) 2021-2023 Free Software Foundation, Inc. +# Copyright (C) 2021-2024 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # @@ -15,7 +15,7 @@ # You should have received a copy of the GNU General Public License # along with GNU Emacs. If not, see . -# GNU Emacs support for the GitLab protocol for CI +# GNU Emacs support for the GitLab protocol for CI. # The presence of this file does not imply any FSF/GNU endorsement of # any particular service that uses that protocol. Also, it is intended for diff --git a/.mailmap b/.mailmap index 4066ab30c893..8454eb9154c0 100644 --- a/.mailmap +++ b/.mailmap @@ -30,6 +30,8 @@ Artur Malabarba Bastien Guerry Bastien Guerry Bastien Guerry +Benjamin Schwerdtner +Bob Rogers Bruno Félix Rezende Ribeiro Carlos Pita Chong Yidong @@ -77,6 +79,9 @@ Ian Dunn Jan Djärv Jan Djärv Jason Rumney +Jeff Walsh +Jeff Walsh +Jeff Walsh Jens Lechtenbörger Jim Blandy Jimmy Aguilar Mena @@ -100,12 +105,14 @@ Kenichi Handa Kenichi Handa Kenichi Handa Kenjiro Nakayama +Kjartan Óli Ágústsson Károly Lőrentey Lars Ingebrigtsen Lars Ingebrigtsen Lars Ingebrigtsen Lars Ingebrigtsen Lars Ingebrigtsen +Laurence Warne Lin Sun Ludovic Courtès Luke Lee @@ -119,6 +126,7 @@ Maxim Nikulin Michael Albinus Michalis V Miha Rihtaršič +Morgan J. Smith Nick Drozd Nicolas Petton Nitish Chandra @@ -133,6 +141,7 @@ Peter Oliver Peter Oliver Philip Kaludercic Philip Kaludercic +Philip Kaludercic Philip Kaludercic Philipp Stephani Philipp Stephani Philipp Stephani @@ -140,6 +149,7 @@ Phillip Lord Pierre Lorenzon Pieter van Oostrum Pip Cet +Po Lu Po Lu Po Lu via Przemysław Wojnowski Rasmus @@ -149,8 +159,10 @@ Robert Weiner Roland Winkler Ronnie Schnell Ryan C. Thompson -Simen Heggestøyl -Simen Heggestøyl +Sam Steingold +Simen Heggestøyl +Simen Heggestøyl +Simen Heggestøyl Simon Josefsson Stefan Kangas Stefan Monnier @@ -172,10 +184,13 @@ Ulf Jasper Ulf Jasper <> Ulf Jasper Ulf Jasper Ulrich Müller Vinicius Jose Latorre +Vladimir Nikishkin Werner Lemberg Wolfgang Scherer Xi Lu Xue Fuqiao +Yilkal Argaw +Yuuki Harano Óscar Fuentes İ. Göktuğ Kayaalp Łukasz Stelmach diff --git a/CONTRIBUTE b/CONTRIBUTE index 7c3421ed75ab..cdb47911d762 100644 --- a/CONTRIBUTE +++ b/CONTRIBUTE @@ -1,3 +1,6 @@ +Copyright (C) 2006-2024 Free Software Foundation, Inc. +See the end of the file for license conditions. + * How developers contribute to GNU Emacs Here is how software developers can contribute to Emacs. (Non-developers: see @@ -107,20 +110,21 @@ admin/notes/bug-triage. Any change that matters to end-users should have an entry in etc/NEWS. Try to start each NEWS entry with a sentence that summarizes the entry -and takes just one line -- this will allow to read NEWS in Outline +and takes just one line -- this will allow reading NEWS in Outline mode after hiding the body of each entry. Doc-strings should be updated together with the code. -New defcustom's should always have a ':version' tag stating the first -Emacs version in which they will appear. Likewise with defcustom's -whose value is changed -- update their ':version' tag. +New defcustom's and defface's should always have a ':version' tag +stating the first Emacs version in which they will appear. Likewise +with defcustom's or defface's whose value is changed -- update their +':version' tag. Think about whether your change requires updating the manuals. If you -know it does not, mark the NEWS entry with "---". If you know -that *all* the necessary documentation updates have been made as part -of your changes or those by others, mark the entry with "+++". -Otherwise do not mark it. +know it does not, mark the NEWS entry with "---" before the entry. If +you know that *all* the necessary documentation updates have been made +as part of your changes or those by others, mark the entry with "+++". +Otherwise, do not mark it. If your change requires updating the manuals to document new functions/commands/variables/faces, then use the proper Texinfo @@ -167,9 +171,9 @@ test 'out-of-tree' builds as well, i.e.: ** Commit messages -Ordinarily, a change you commit should contain a log entry in its -commit message and should not touch the repository's ChangeLog files. -Here is an example commit message (indented): +Ordinarily, a changeset you commit should contain a description of the +changes in its commit message and should not touch the repository's +ChangeLog files. Here is an example commit message (indented): Deactivate shifted region @@ -181,8 +185,9 @@ Here is an example commit message (indented): Deactivate the mark. Occasionally, commit messages are collected and prepended to a -ChangeLog file, where they can be corrected. It saves time to get -them right the first time, so here are guidelines for formatting them: +generated ChangeLog file, where they can be corrected. It saves time +to get them right the first time, so here are guidelines for +formatting them: - Start with a single unindented summary line explaining the change; do not end this line with a period. If possible, try to keep the @@ -191,9 +196,10 @@ them right the first time, so here are guidelines for formatting them: contexts. If the summary line starts with a semicolon and a space "; ", the - commit message will be ignored when generating the ChangeLog file. - Use this for minor commits that do not need separate ChangeLog - entries, such as changes in etc/NEWS. + commit message will be skipped and not added to the generated + ChangeLog file. Use this for minor commits that do not need to be + mentioned in the ChangeLog file, such as changes in etc/NEWS, typo + fixes, etc. - After the summary line, there should be an empty line. @@ -202,13 +208,15 @@ them right the first time, so here are guidelines for formatting them: you can put a paragraph (after the empty line and before the individual ChangeLog entries) that further describes the commit. -- Limit lines in commit messages to 78 characters, unless they consist - of a single word of at most 140 characters; this is enforced by a - commit hook. +- Lines in ChangeLog entries should preferably be not longer than 63 + characters, and must not exceed 78 characters, unless they consist + of a single word of at most 140 characters; this 78/140 limit is + enforced by a commit hook. - If only a single file is changed, the summary line can be the normal - file first line (starting with the asterisk). Then there is no - individual files section. + first line of a ChangeLog entry (starting with the asterisk). Then + there will be no individual ChangeLog entries beyond the one in the + summary line. - If the commit has more than one author, the commit message should contain separate lines to mention the other authors, like the @@ -239,12 +247,12 @@ them right the first time, so here are guidelines for formatting them: - Explaining the rationale for a design choice is best done in comments in the source code. However, sometimes it is useful to describe just the rationale for a change; that can be done in the commit message - between the summary line and the file entries. + between the summary line and the following ChangeLog entries. -- Emacs generally follows the GNU coding standards for ChangeLogs: see - https://www.gnu.org/prep/standards/html_node/Change-Logs.html - or run 'info "(standards)Change Logs"'. One exception is that - commits still sometimes quote `like-this' (as the standards used to +- Emacs follows the GNU coding standards for ChangeLog entries: see + https://www.gnu.org/prep/standards/html_node/Change-Logs.html or run + 'info "(standards)Change Logs"'. One exception is that commits + still sometimes quote `like-this' (as the standards used to recommend) rather than 'like-this' or ‘like this’ (as they do now), as `...' is so widely used elsewhere in Emacs. @@ -257,9 +265,9 @@ them right the first time, so here are guidelines for formatting them: in Emacs; that includes spelling and leaving 2 blanks between sentences. - They are preserved indefinitely, and have a reasonable chance of - being read in the future, so it's better that they have good - presentation. + The ChangeLog entries are preserved indefinitely, and have a + reasonable chance of being read in the future, so it's better that + they have good presentation. - Use the present tense; describe "what the change does", not "what the change did". @@ -296,6 +304,11 @@ them right the first time, so here are guidelines for formatting them: blank ChangeLog entries from the diff being committed, then use 'M-q' to combine and fill them. See 'info "(emacs) Log Buffer"'. +- If you use the third-party package Magit, you can use + 'magit-generate-changelog' from the commit message buffer. + See also 'magit-add-change-log-entry' and + 'magit-add-change-log-entry-other-window'. + - Alternatively, you can use Emacs functions for ChangeLog files; see https://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Log-Commands.html or run 'info "(emacs)Change Log Commands"'. @@ -314,11 +327,45 @@ them right the first time, so here are guidelines for formatting them: with Emacs commands like 'C-x 4 a', and commit the change using the shell command 'vc-dwim --commit'. Type 'vc-dwim --help' for more. +** Committing your changes. + +When you commit changes, Git invokes several scripts that test the +commit for validity, and may abort the commit if some of the tests +fail. These scripts live in the '.git/hooks/' subdirectory of the +top-level directory of the repository, and they perform the following +tests: + +- commit log message must not be empty; +- the first line of the commit log message doesn't start with + whitespace characters; +- the second line of the commit log message must be empty; +- commit log message should include only valid printable ASCII and + UTF-8 characters; +- commit log message lines must be shorter than 79 characters, unless + a line consists of a single long word, in which case that word can + be up to 140 characters long; +- there shouldn't be any "Signed-off-by:" tags in the commit log + message, and "git commit" should not be invoked with the '-s' option + (which automatically adds "Signed-off-by:"); +- if the commit adds new files, the file names must not begin with + '-' and must consist of ASCII letters, digits, and characters of the + set [-+./_]; +- the changes don't include unresolved merge conflict markers; +- the changes don't introduce whitespace errors: trailing whitespace, + lines that include nothing but whitespace characters, and indented + lines where a SPC character is immediately followed by a TAB in the + line's initial indentation + ** Committing changes by others If committing changes written by someone else, commit in their name, not yours. You can use 'git commit --author="AUTHOR"' to specify a -change's author. +change's author. When using Emacs VC to commit, the author can be +specified in the log-edit buffer by adding an "Author: AUTHOR" header +line (set 'log-edit-setup-add-author' non-nil to have this header line +added automatically). Note that the validity checks described in the +previous section are still applied, so you will have to correct any +problems they uncover in the changes submitted by others. ** Branches @@ -362,10 +409,26 @@ the commit to master, by starting the commit message with "Backport:". The gitmerge function excludes these commits from the merge to the master. Some changes should not be merged to master at all, for whatever -reasons. These should be marked by including something like "Do not +reason. These should be marked by including something like "Do not merge to master" or anything that matches gitmerge-skip-regexp (see admin/gitmerge.el) in the commit message. +** Some packages in Emacs are maintained externally + +Sometimes a package that ships as part of GNU Emacs is maintained as a +separate project, with its own upstream repository, its own maintainer +group, its own development conventions, etc. The upstream project's +code is periodically merged into Emacs (exactly when and how such +merges happen depends on the package). + +So when you are making a contribution -- such as fixing a bug or +proposing an enhancement -- to one of these externally maintained +packages, you sometimes need to deal with that package at its upstream +source. + +In the section "Externally maintained packages" in "admin/MAINTAINERS" +we maintain a list of such packages. + ** GNU ELPA This repository does not contain the Emacs Lisp package archive @@ -395,8 +458,8 @@ files intended for use only with Emacs version 24.5 and later. *** Useful files in the admin/ directory -See all the files in admin/notes/* . In particular, see -admin/notes/newfile, see admin/notes/repo. +See all the files in 'admin/notes/*'. In particular, see +'admin/notes/newfile' and 'admin/notes/repo'. The file admin/MAINTAINERS records the areas of interest of frequent Emacs contributors. If you are making changes in one of the files diff --git a/ChangeLog.1 b/ChangeLog.1 index 1c223875e6a6..40d2920a97b5 100644 --- a/ChangeLog.1 +++ b/ChangeLog.1 @@ -930,7 +930,7 @@ (mostlyclean_dirs, clean_dirs, distclean_dirs, maintainer_clean_dirs): New variables. (mostlyclean, clean, distclean, bootstrap-clean, maintainer-clean) - (extraclean): Define using each subdirectory as a prequisite. + (extraclean): Define using each subdirectory as a prerequisite. * lib/Makefile.am (bootstrap-clean): New. 2014-06-15 Paul Eggert @@ -4302,7 +4302,7 @@ (install-arch-indep): Don't install-etc for self-contained ns builds. * configure.in (GCC_TEST_OPTIONS, NON_GCC_TEST_OPTIONS) : - No longer unconditonally add /sw directories. (Bug#2280) + No longer unconditionally add /sw directories. (Bug#2280) * Makefile.in (install-arch-dep): Depend on install-arch-indep. (install-arch-indep): Depend on install-leim. @@ -5685,7 +5685,7 @@ (__mktime_internal): Use it systematically for all isdst comparisons. This completes the fix for libc BZ #6723, and removes the need for normalizing tm_isdst. - See + See (not_equal_tm) [DEBUG]: Use isdst_differ here, too. mktime: fix some integer overflow issues and sidestep the rest @@ -14700,7 +14700,7 @@ ;; coding: utf-8 ;; End: - Copyright (C) 1993-1999, 2001-2023 Free Software Foundation, Inc. + Copyright (C) 1993-1999, 2001-2024 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/ChangeLog.2 b/ChangeLog.2 index 5ab3a4e7ac88..7c1267e66b99 100644 --- a/ChangeLog.2 +++ b/ChangeLog.2 @@ -111,7 +111,7 @@ 2017-03-21 Noam Postavsky - Narrow scope of modification hook renabling in org-src fontification + Narrow scope of modification hook re-enabling in org-src fontification Modification hooks should be enabled while modifying text in the org-src temp buffer, but in 2017-01-29 "Call modification hooks in @@ -8956,10 +8956,10 @@ 2016-02-04 Carlos Pita (tiny change) - Make complection in erc use consistent casing + Make completion in erc use consistent casing * lisp/erc/erc-pcomplete.el (pcomplete-erc-all-nicks): Make - case in the complection consistent (bug#18509). + case in the completion consistent (bug#18509). 2016-02-04 Francis Litterio @@ -9317,7 +9317,7 @@ optional. * src/buffer.c (Fbarf_if_buffer_read_only): Rename argument POS - to POSITION to keep consisteny with doc-string. + to POSITION to keep consistent with doc-string. 2016-02-01 Paul Eggert @@ -10661,8 +10661,8 @@ * lisp/gnus/nnir.el (nnir-request-update-mark): Default to the original mark. - cf. - and + cf. [dead link] + and [dead link] 2016-01-19 Glenn Morris @@ -11843,7 +11843,7 @@ 2016-01-05 Alan Mackenzie - Make C++ buffers writeable when writing their initial text properties. + Make C++ buffers writable when writing their initial text properties. This is a correction to yesterday's CC Mode patch. @@ -12012,7 +12012,7 @@ (Maybe this is the last merge from Gnus git to Emacs git) Cf. discussion on ding mailing list, messages in - . + . [dead link] Common code from the three files mml-smime.el, mml1991.el, and mml2015.el is moved to mml-sec.el. Auxiliary functions are added to gnus-util.el. @@ -15206,8 +15206,9 @@ Remove nnml-retrieve-groups that is unnecessary and somewhat problematic * lisp/gnus/nnml.el (nnml-retrieve-groups): Remove. See: - and - + [dead link] + and + [dead link] 2015-11-25 Paul Eggert @@ -17093,11 +17094,11 @@ * lisp/json.el (json-encoding-object-sort-predicate): New variable for specifying a sorting predicate for JSON objects during encoding. (json--plist-to-alist): New utility function. - (json-encode-hash-table): Re-use `json-encode-alist' when object keys + (json-encode-hash-table): Reuse `json-encode-alist' when object keys are to be sorted. (json-encode-alist): Sort output by `json-encoding-object-sort-predicate, when set. - (json-encode-plist): Re-use `json-encode-alist' when object keys are + (json-encode-plist): Reuse `json-encode-alist' when object keys are to be sorted. (json-pretty-print-buffer-ordered): New command to pretty print the buffer with object keys sorted alphabetically. @@ -19541,7 +19542,7 @@ calling low-level functions. * test/automated/file-notify-tests.el (file-notify--test-timeout): - Decrase to 6 seconds for remote directories. + Decrease to 6 seconds for remote directories. (file-notify-test02-events): Expect different number of `attribute-changed' events for the local and remote cases. Apply short delays between the operations, in order to receive all @@ -23054,8 +23055,8 @@ Fix tests in file-notify-tests.el * test/automated/file-notify-tests.el: Remove Tramp declarations. - (file-notify-test00-availability): Print remote command w/o Tramp - internal functions. + (file-notify-test00-availability): Print remote command without + Tramp internal functions. (file-notify-test02-events, file-notify-test02-events-remote): Adapt docstring. (file-notify-test03-autorevert): Use `format-message' when @@ -26343,7 +26344,7 @@ (verilog-type-font-keywords): Cycle delay operators like ##1 and ##[0:$] are now highlighted in their entirety similarly to the # delay-control operator. Likewise, the followed-by operators #-# - and #=# are no longer partially highlighed. + and #=# are no longer partially highlighted. (verilog-backward-syntactic-ws-quick) (verilog-skip-backward-comments): Minor performance improvements to buffer traversal functions for reduced latency. @@ -28676,7 +28677,7 @@ * lisp/faces.el (set-face-attribute): Don't be fooled too easily by a hyphen in a font's name. - Fix value of posn-at-pont in R2L lines + Fix value of posn-at-point in R2L lines * src/keyboard.c (Fposn_at_x_y, Fposn_at_point): Allow X pixel coordinate of -1, for a newline in a right-to-left line that overflowed into the left fringe. @@ -30968,7 +30969,7 @@ 2015-05-28 Katsumi Yamaoka * lisp/gnus/gnus-art.el (gnus-button-alist): Re-revert last change. - cf. + cf. [dead link] 2015-05-28 Samer Masterson @@ -32623,7 +32624,7 @@ (verilog-set-auto-endcomments): Fix end comments for functions of type void, etc. Reported by Alex Reed. (verilog-do-indent): Fix electric tab deleting form-feeds. Note - caused by indent-line-to deleting tabls pre 24.5. + caused by indent-line-to deleting tables pre 24.5. (verilog-nameable-item-re): Fix nameable items that can have an end-identifier to include endchecker, endgroup, endprogram, endproperty, and endsequence. Reported by Alex Reed. @@ -34464,7 +34465,7 @@ * lisp/emacs-lisp/package.el: Make archive and status pseudo-keywords (package--has-keyword-p): Understand "arc:xxxx" and "status:xxxx" - as special keywords which match agains package archive and status + as special keywords which match against package archive and status respectively. * etc/NEWS: Document it. @@ -35787,7 +35788,7 @@ See ChangeLog.1 for earlier changes. ;; coding: utf-8 ;; End: - Copyright (C) 2015-2023 Free Software Foundation, Inc. + Copyright (C) 2015-2024 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/ChangeLog.3 b/ChangeLog.3 index fa66bd18b1d4..d43ffa10bc72 100644 --- a/ChangeLog.3 +++ b/ChangeLog.3 @@ -146,7 +146,7 @@ 2022-10-04 Andreas Schwab - * src/emacs.c (load_pdump): Propery handle case when executable + * src/emacs.c (load_pdump): Properly handle case when executable wasn't found. 2022-10-04 Eli Zaretskii @@ -2082,7 +2082,7 @@ This reverts commit 78f76fe16e2737b40694f82af28d17a90a21ed7b. The commit made calls to cl-concatenate bug out, since - autoloading defalises doesn't work very well (bug#54901). + autoloading defaliases doesn't work very well (bug#54901). 2022-04-12 Eli Zaretskii @@ -3422,7 +3422,7 @@ 2021-12-27 Eli Zaretskii - Fix typos in in 'reset-language-environment' + Fix typos in 'reset-language-environment' * lisp/international/mule-cmds.el (reset-language-environment): Fix a typo in 'windows-nt'. (Bug#52816) @@ -4356,7 +4356,7 @@ * lisp/follow.el (follow-scroll-down): Do away with the optimization of doing vertical-motion over only one window. Instead move over all windows, to - checck for being close to point-min, and setting point accordingly. + check for being close to point-min, and setting point accordingly. 2021-11-13 Eli Zaretskii @@ -4471,7 +4471,7 @@ * doc/emacs/maintaining.texi (Basic VC Editing): Mention Dired buffer. - * doc/emacs/text.texi (Outline Mode): Replace S-TAB with with S-. + * doc/emacs/text.texi (Outline Mode): Replace S-TAB with S-. * etc/NEWS: Add some missing +++/--- and move some related items closer. @@ -5985,7 +5985,7 @@ Fix ert errors when there's a test that binds `debug-on-error' * lisp/emacs-lisp/ert.el (ert--run-test-internal): Don't infloop - on errors when signalling errors (bug#51131). + on errors when signaling errors (bug#51131). 2021-10-10 Paul Eggert @@ -6159,7 +6159,7 @@ 2021-10-09 Dmitry Gutov - Slight simplificaiton + Slight simplification * lisp/progmodes/xref.el (xref--insert-xrefs): Compute log only once. Use 'dolist'. @@ -6570,7 +6570,7 @@ 2021-10-04 Lars Ingebrigtsen - Mention ffap-file-name-with-spaces in the ffap doc strin + Mention ffap-file-name-with-spaces in the ffap doc string * lisp/ffap.el (find-file-at-point): Mention ffap-file-name-with-spaces in the doc string. @@ -7174,7 +7174,7 @@ (ess-eval-visibly-p): Declare. (org-babel-julia-assign-elisp): Remove unused vars `header` and - `row-names` and corespondingly remove now unused args `colnames-p` and + `row-names` and correspondingly remove now unused args `colnames-p` and `rownames-p`. (org-babel-variable-assignments:julia): Adjust call to `org-babel-julia-assign-elisp` accordingly. @@ -10203,7 +10203,7 @@ 2021-09-17 Lars Ingebrigtsen - Mention that the garbage collection is convervative + Mention that the garbage collection is conservative * doc/lispref/internals.texi (Garbage Collection): Mention that we're using a conservative gc (bug#42013). @@ -11161,7 +11161,7 @@ Bump lisp/progmodes/project.el version to 0.7.1 - Amont other things exposes the new project-buffers generic function to + Among other things exposes the new project-buffers generic function to ELPA users. * lisp/progmodes/project.el (Version): Bump to 0.7.1 @@ -13098,7 +13098,7 @@ 2021-09-03 Lars Ingebrigtsen - Fix `describe-function' for autoloaded adviced functions + Fix `describe-function' for autoloaded advised functions * lisp/emacs-lisp/nadvice.el (advice--make-single-doc): Factor out. @@ -15152,7 +15152,7 @@ * lisp/icomplete.el (icomplete-vertical-mode): (fido-vertical-mode): Tweak docstring. Turn on - icomplete-mode. and fido-mdoe + icomplete-mode. and fido-mode 2021-08-16 Glenn Morris @@ -16605,7 +16605,7 @@ Fix automatic hscrolling when line numbers are displayed * src/xdisp.c (hscroll_window_tree): When line numbers are - displayed, account for the the line-number space when calculating + displayed, account for the line-number space when calculating the desired X coordinate on the left. (Bug#49891) 2021-08-06 Eli Zaretskii @@ -20454,7 +20454,7 @@ Add query command removed in 4ff1f66b12 - * lisp/net/rcirc.el (query): Readd accidentally removed command + * lisp/net/rcirc.el (query): Re-add accidentally removed command. 2021-07-06 Philip Kaludercic @@ -21082,7 +21082,7 @@ * lisp/progmodes/cc-engine.el (c-clear-<-pair-props, c-clear->-pair-props) (c-clear-<-pair-props-if-match-after, c-clear->-pair-props-if-match-before) (c-forward-<>-arglist-recur): - Invalidate caches with c-trunctate-lit-pos-cache. + Invalidate caches with c-truncate-lit-pos-cache. (c-forward-<>-arglist-recur): If in a matching <...> expression, the < has a syntax-table property, but the > not, remove that property. @@ -21491,7 +21491,7 @@ Fix prompting for large files when loading literally * lisp/files.el (find-file-noselect): Don't include "literally" in - the "large file" prompt if we're gonna load literally anyway + the "large file" prompt if we're going to load literally anyway (bug#49144). 2021-06-21 Lars Ingebrigtsen @@ -21832,7 +21832,7 @@ * src/doprnt.c (exprintf, evxprintf): * src/lisp.h (exprintf, evxprintf): Don't use a pointer-to-const type for the `nonheapbuf` argument: although it is never dereferenced, GCC - will warn when passing a pointer to uninitialised memory otherwise. + will warn when passing a pointer to uninitialized memory otherwise. * src/fns.c (sort_vector_copy, realize_face, realize_gui_face) (realize_tty_face): Use the same signatures in the prototypes as in the actual function definitions. @@ -22200,7 +22200,7 @@ EIEIO: Promote the CLOS behavior over the EIEIO-specific behavior - Change docs to advertize `slot-value` rather than `oref`. + Change docs to advertise `slot-value` rather than `oref`. Change the implementation of `:initform` to better match the CLOS semantics, while preserving the EIEIO semantics, but warn when encountering cases where the two diverge. @@ -22218,8 +22218,8 @@ * lisp/emacs-lisp/eieio.el (defclass): Warn about inapplicable `:initarg` and about uses of init forms that are ambiguous. - (oref): Don't advertize the deprecated use of initargs as slot names. - (oref-default): Don't advertize the deprecated case where it returns the + (oref): Don't advertise the deprecated use of initargs as slot names. + (oref-default): Don't advertise the deprecated case where it returns the initform's value. (initialize-instance): Use `macroexp-const-p`. * lisp/emacs-lisp/eieio-core.el (eieio--unbound): Rename from @@ -23755,7 +23755,7 @@ 2021-05-29 Lars Ingebrigtsen - Improve the file-accessible-directory-p doc strin + Improve the file-accessible-directory-p doc string * src/fileio.c (Ffile_accessible_directory_p): Don't use the phrase "directory name spec", which isn't defined (bug#18201). @@ -25646,7 +25646,7 @@ 2021-05-12 Richard Stallman - Little improvements in rmail.el. Recognize encryped override headers. + Little improvements in rmail.el. Recognize encrypted override headers. * lisp/mail/rmail.el (rmail-simplified-subject): Delete `[External] :'. (rmail-reply): In encrypted message, search for other header fields @@ -27632,7 +27632,7 @@ 2021-04-25 Andrea Corallo - Merge branch 'feature/native-comp' into into trunk + Merge branch 'feature/native-comp' into trunk 2021-04-25 Lars Ingebrigtsen @@ -27761,7 +27761,7 @@ 2021-04-24 Glenn Morris - Simlify top-level Makefile since admin is always included + Simplify top-level Makefile since admin is always included * Makefile.in (clean_dirs, distclean_dirs, maintainer_clean_dirs): Add admin directories. @@ -28096,7 +28096,7 @@ * lisp/international/mule-cmds.el (ucs-names): * lisp/progmodes/ebrowse.el (ebrowse-read): * test/src/coding-tests.el (benchmark-decoder): Avoid lowering - gc-cons-treshold. + gc-cons-threshold. 2021-04-22 Stefan Kangas @@ -28315,7 +28315,7 @@ * lisp/minibuffer.el (minibuffer--sort-by-length-alpha): New function. (minibuffer--sort-by-position): New function extracted from `completion-all-sorted-completions`. - (completion-all-sorted-completions): Use use them. + (completion-all-sorted-completions): Use them. 2021-04-19 Daniel Mendler @@ -28725,7 +28725,7 @@ 2021-04-17 Eli Zaretskii - * src/emacs.c (load_pdump): Fix compilation on picky-complier platforms. + * src/emacs.c (load_pdump): Fix compilation on picky-compiler platforms. 2021-04-17 Daniel Martín @@ -29790,7 +29790,7 @@ Make the function correctly recognize a brace block preceded by an introductory line without a parameter list. - * lisp/progmodes/cc-cmds.el (c-where-wrt-brace-contruct): Reintroduce the use + * lisp/progmodes/cc-cmds.el (c-where-wrt-brace-construct): Reintroduce the use of c-beginning-of-decl-1, which was removed some weeks ago, in place of a c-syntactic-skip-backward. Reformulate the code generally. @@ -31479,7 +31479,7 @@ 2021-03-28 Lars Ingebrigtsen - Clarify the doc string of plist-memeber and plist-put + Clarify the doc string of plist-member and plist-put * src/fns.c (Fplist_member): (Fplist_put): Clarify what comparison function is used for PROP @@ -33113,7 +33113,7 @@ * test/README: Mention $EMACS_TEST_DIRECTORY. * test/lisp/image-tests.el (image-tests--emacs-images-directory): - Use `data-directory', for runs w/o of make. + Use `data-directory', for runs without of make. (image-type/from-filename): Check for `image-load-path'. 2021-03-16 Michael Albinus @@ -34693,7 +34693,7 @@ Use `length=' and family where possible in native comp code * lisp/emacs-lisp/comp-cstr.el (comp-intersect-typesets) - (comp-cstr-imm): Use Use `length=' and family where possible. + (comp-cstr-imm): Use `length=' and family where possible. * lisp/emacs-lisp/comp.el (comp-add-cond-cstrs-target-block) (comp-compute-dominator-frontiers) (batch-byte-native-compile-for-bootstrap): Likewise. @@ -35664,7 +35664,7 @@ 2021-03-04 Andrea Corallo - * src/comp.c (hash_native_abi): Account for `system-configuraton-options'. + * src/comp.c (hash_native_abi): Account for `system-configuration-options'. 2021-03-04 Glenn Morris @@ -36156,7 +36156,7 @@ (comp-arithm-cmp-fun-p, comp-negate-arithm-cmp-fun) (comp-reverse-arithm-fun): Rename and add '=' '!='. (comp-emit-assume, comp-add-cond-cstrs, comp-fwprop-insn): Update - for new function nameing and to handle '='. + for new function naming and to handle '='. * lisp/emacs-lisp/comp-cstr.el (comp-cstr-=): New function. * test/src/comp-tests.el (comp-tests-type-spec-tests): Add a bunch of '=' specific tests. @@ -37102,7 +37102,7 @@ 2021-02-24 Andrea Corallo - Fix async compilation and paramenter naming + Fix async compilation and parameter naming * lisp/emacs-lisp/comp.el (native--compile-async) (native-compile-async): Fix broken parameter renaming. @@ -40282,7 +40282,7 @@ * lisp/net/mairix.el: Use lexical-binding. Remove redundant `:group` args. - (mairix-widget-create-query): Remove unnused var `allwidgets`. + (mairix-widget-create-query): Remove unused var `allwidgets`. 2021-02-09 Juri Linkov @@ -40605,7 +40605,7 @@ * lisp/simple.el (recenter-current-error): New command. * lisp/progmodes/grep.el (grep-mode-map): - Delete bidings for n and p. + Delete bindings for n and p. * lisp/progmodes/compile.el (compilation-minor-mode-map): Move here the n and p bindings. @@ -41641,7 +41641,7 @@ 2021-02-02 Lars Ingebrigtsen - Fix up invalid_syntax error signalling + Fix up invalid_syntax error signaling * src/lread.c (invalid_syntax_lisp): Instead of putting the line/column in a string, signal an error containing the numbers as @@ -42122,7 +42122,7 @@ in a global minor mode. This commit fixes bug #45792. * lisp/international/quail.el (quail-show-guidance): Test the major mode is - not minibuffer-inactive-mode before proceding with the function. + not minibuffer-inactive-mode before proceeding with the function. 2021-01-31 Lars Ingebrigtsen @@ -43364,7 +43364,7 @@ string in the byte-code (so the two branches return `eq` strings). So, I think using `iso-2022-jp` is a bad idea here: it gives the - illusion that the the `charset` info exists, even it will be lost. + illusion that the `charset` info exists, even it will be lost. Eli discussed it with Handa-san a year ago, and they arrived at the conclusion that the charset information is indeed no longer important. @@ -44041,7 +44041,7 @@ RFC2047-encode invalid Subject/From headers (bug#45925). This will make them be displayed more consistently in the Summary buffer (but still "wrong" sometimes, since there's not that much - we can guess at at this stage, charset wise). + we can guess at this stage, charset wise). (nnml-parse-head): Use it. 2021-01-22 Michael Albinus @@ -44752,7 +44752,7 @@ (nxml-prefer-utf-16-little-to-big-endian-flag) (nxml-default-buffer-file-coding-system) (nxml-auto-insert-xml-declaration-flag): Add :safe to allow easier - cusomization (bug#45969). + customization (bug#45969). 2021-01-19 Lars Ingebrigtsen @@ -46919,7 +46919,7 @@ Fix Quit button in dictionary buffer - * lisp/net/dictionary.el (dictionay-close): Changing the arity of the + * lisp/net/dictionary.el (dictionary-close): Changing the arity of the function in cc5f2803785c5dc785f09a292313cf799e8d29bb was a mistake. Restore it, but mark the argument as unused to avoid a wrong-number-of-arguments error when using the Quit button. @@ -46997,7 +46997,7 @@ Fix syntax of symbol and punctuation characters * lisp/international/characters.el: Adjust syntax of punctuation - and symbol charcaters to follow that of Unicode properties. + and symbol characters to follow that of Unicode properties. (Bug#44974) 2021-01-02 Andrea Corallo @@ -47582,10 +47582,10 @@ 2020-12-30 Andrea Corallo - Order function types in aphabetical order + Order function types in alphabetical order * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Reorder in - aphabetical order and comment. + alphabetical order and comment. 2020-12-30 Andrea Corallo @@ -49000,7 +49000,7 @@ c-laomib-loop. Insert code which calls c-laomib-loop minimally, with the help of the new cache. - * lisp/progmodes/cc-mode.el (c-basic-common-init): Initialize the new cach + * lisp/progmodes/cc-mode.el (c-basic-common-init): Initialize the new cache (at mode start). (c-before-change): Invalidate the new cache. (c-fl-decl-start): Add an extra check (> (point) bod-lim) to prevent looping. @@ -49534,7 +49534,7 @@ (comp-split-pos-neg): Minor. (comp-normalize-typeset): Logic update. (comp-union-typesets): Minor. - (comp-intersect-two-typesets): New functio. + (comp-intersect-two-typesets): New function. (comp-intersect-typesets): Logic update. (comp-range-union, comp-range-intersection): Minor. (comp-cstr-union-homogeneous, comp-cstr-union-1-no-mem) @@ -50506,7 +50506,7 @@ Optimize c-parse-state for large buffers with few (if any) braces. * lisp/progmodes/cc-engine.el (c-get-fallback-scan-pos): Search a maximum of - 50,000 characters back for the two BODs. Return nil if we dont' find them. + 50,000 characters back for the two BODs. Return nil if we don't find them. (c-parse-state-get-strategy): For strategy `forward', always use the position `good-pos' for `start-point', even when there's a change of current macro. Deal with a possible return value of nil from c-get-fallback-scan-pos (as @@ -51060,7 +51060,7 @@ Allow for adding constraints targeting blocks with multiple predecessors - This commit remove the limitaiton we had not being able to add + This commit remove the limitation we had not being able to add constraints derived from conditional branches to basic blocks with multiple predecessors. When this condition is verified we add a new dedicated basic block to hold the constraints. @@ -51339,7 +51339,7 @@ 2020-12-12 Lars Ingebrigtsen - Alter the "Redundant pcase patter" warning message + Alter the "Redundant pcase pattern" warning message * lisp/emacs-lisp/pcase.el (pcase--expand): Make the "Redundant pcase pattern" warning less vague (bug#31350). @@ -54570,7 +54570,7 @@ Tweak the face of unknown backend indicators in flymake * lisp/progmodes/flymake.el (flymake--mode-line-format): Don't put - a face on the the "?" unknown backend indicator, because that + a face on the "?" unknown backend indicator, because that looks odd in inactive windows (bug#44689). 2020-11-24 Paul W. Rankin @@ -55395,7 +55395,7 @@ 2020-11-18 Andrea Corallo - Fix eln file hasing for symlink paths (bug#44701) + Fix eln file hashing for symlink paths (bug#44701) * src/comp.c (Fcomp_el_to_eln_filename): Call `file-truename' in place of `expand-file-name' when available. @@ -55928,7 +55928,7 @@ Fix debug symbol emission * src/comp.c (Fcomp__compile_ctxt_to_file): Now that we do not - rely anymore on globlal variables move logic in from + rely anymore on global variables move logic in from 'Fcomp__init_ctxt' so comp.debug is already set correctly. 2020-11-14 Andrea Corallo @@ -56424,7 +56424,7 @@ 2020-11-12 Andrea Corallo - Unline some functions to optimize bootstrap time + Uninline some functions to optimize bootstrap time * lisp/emacs-lisp/comp.el (comp-mvar-value-vld-p) (comp-mvar-value, comp-mvar-fixnum-p, comp-set-op-p) @@ -57040,7 +57040,7 @@ 2020-11-07 Andrea Corallo - Allow for manually bumbing new native compiler ABI versions + Allow for manually bumping new native compiler ABI versions * src/comp.c (ABI_VERSION): Define macro. (hash_native_abi): Include ABI_VERSION in the hashing. @@ -59251,7 +59251,7 @@ 2020-10-26 Andrea Corallo - Make native compiler tollerant to redefined primitives (bug#44221). + Make native compiler tolerant to redefined primitives (bug#44221). * lisp/emacs-lisp/comp.el (comp-emit-set-call-subr): Rework based on the fact that the subr can now be redefined. @@ -59833,7 +59833,7 @@ Fix error in tramp-sh-handle-make-process * lisp/net/tramp-sh.el (tramp-sh-handle-make-process): Don't use heredoc - script whent the argument contains a string. + script when the argument contains a string. 2020-10-23 Stefan Kangas @@ -61657,7 +61657,7 @@ 2020-10-14 Andrea Corallo - Have `native-elisp-load' return the last registerd function + Have `native-elisp-load' return the last registered function * lisp/emacs-lisp/comp.el (comp-emit-for-top-level): Synthesize 'top_level_run' so it returns the last value returned by @@ -63885,9 +63885,9 @@ 2020-09-30 Lars Ingebrigtsen - Fix isearch-group-* colors on low-colour displays + Fix isearch-group-* colors on low-color displays - * lisp/isearch.el (isearch-group-1): On low-colour displays, just + * lisp/isearch.el (isearch-group-1): On low-color displays, just use the normal isearch color (bug#43702). (isearch-group-2 etc): Ditto. @@ -63906,7 +63906,7 @@ user-error when there's a wrong password (bug#43704). (epa--wrong-password-p): New function. (epa-file-insert-file-contents): Use it, and stash the error away - for later signalling. + for later signaling. * lisp/emacs-lisp/subr-x.el (if-let): Autoload. @@ -64846,7 +64846,7 @@ 2020-09-24 Andrea Corallo - Add a test for primitive advicing effectiveness + Add a test for primitive advising effectiveness * test/src/comp-test-funcs.el (comp-test-primitive-advice-f): New function. @@ -64903,7 +64903,7 @@ install a subr trampoline into the function relocation table. Once this is done any call from native compiled Lisp to the related primitive will go through the `funcall' trampoline - making advicing effective. + making advising effective. 2020-09-23 Andrea Corallo @@ -66259,7 +66259,7 @@ Better error handling after calling 'gcc_jit_context_compile_to_file' - Typically errors are catched in 'compile_function' but in case + Typically errors are caught in 'compile_function' but in case libgccjit throw an error only afterwards while compiling the whole compilation unit we have to report it correctly. @@ -68202,7 +68202,7 @@ 2020-09-05 Lars Ingebrigtsen - Revert "Display name with with spaces, but keep symbol name underneath" + Revert "Display name with spaces, but keep symbol name underneath" This reverts commit e0c77bb62c1c950a82ea0517646d989dc5c1fe27. @@ -68282,7 +68282,7 @@ 2020-09-05 ej-32u (tiny change) - Display name with with spaces, but keep symbol name underneath + Display name with spaces, but keep symbol name underneath * lisp/cus-edit.el (custom-unlispify-menu-entry): Display the pretty name, but keep the real symbol name as the value (bug#41905). @@ -68504,7 +68504,7 @@ wdired-do-renames: Speed up for long Emacs sessions `dired-rename-file' calls unconditionally `dired-rename-subdir'. - The second function performs performs a loop on all the Emacs + The second function performs a loop on all the Emacs buffers; this step is only needed if FILE is a directory (bug#32899). In a long lived Emacs session, this can make a difference @@ -69500,7 +69500,7 @@ 2020-08-27 Tino Calancha - dired: Show broken/circular links w/ different face + dired: Show broken/circular links with different face * lisp/dired.el (dired-broken-symlink): New face. (dired-font-lock-keywords): @@ -70385,7 +70385,7 @@ (MD5_BLOCKSIZE): New macro. (accumulate_and_process_md5, final_process_md5, md5_gz_stream) (comp_hash_source_file): New functions. - (Fcomp_el_to_eln_filename): Rework for hasing using also source + (Fcomp_el_to_eln_filename): Rework for hashing using also source file content. * src/lread.c (maybe_swap_for_eln): Rename el_name -> src_name as @@ -73450,7 +73450,7 @@ 2020-08-11 Paul Eggert - pdumper speed tweeks for hash tables + pdumper speed tweaks for hash tables * src/pdumper.c (dump_queue_empty_p): Avoid unnecessary call to Fhash_table_count on a known hash table. @@ -73517,7 +73517,7 @@ * lisp/textmodes/tex-mode.el (tex-font-lock-keywords-2): End the expression before the terminating $ in constructions like $\it identifiername$ - (bug#28277). This avoids italicising the final $ character. + (bug#28277). This avoids italicizing the final $ character. This fixes the final $ of the final test case here: @@ -73849,7 +73849,7 @@ 2020-08-08 Lars Ingebrigtsen - Modernise a code example in os.texi + Modernize a code example in os.texi * doc/lispref/os.texi (Session Management): Use with-current-buffer in the example instead of save+switch (bug#40341). @@ -75452,7 +75452,7 @@ (Bug#42563) - For some time, Eldoc has has some Elisp-specific code that shouldn't + For some time, Eldoc has some Elisp-specific code that shouldn't live there, but in elisp-mode.el. This can be fixed in Emacs master, but since ElDoc is distributed in GNU Elpa and is meant to work with Emacs 26 and 27, this means that that elisp-specific code must still @@ -75704,7 +75704,7 @@ Do this conservatively for now: if the ElDoc helper buffer (as returned by eldoc--doc-buffer) is visible and showing documentation - for the very same "situation" (as computed by the the new + for the very same "situation" (as computed by the new eldoc--request-state helper), don't request that documentation from sources again. @@ -75874,7 +75874,7 @@ According to RFC 3986 it should be percent-encoded and thus should not contain spaces. However, there are HTTP server implementation (notably nginx) that do not do that. This makes Emacs url-http.el behave like - most other HTTP client implementatios. Also remove the stripping of + most other HTTP client implementations. Also remove the stripping of angle bracket quotes as they are not valid according to the RFCs. 2020-07-19 Satoshi Nakagawa (tiny change) @@ -76115,7 +76115,7 @@ * lisp/net/eww.el (eww-list-bookmarks): Don't show buffer if there are no bookmarks. (Bug#41385) - (eww-bookmark-prepare): Move signalling an error if there are no + (eww-bookmark-prepare): Move signaling an error if there are no bookmarks from here... (eww-read-bookmarks): ...to here. Add new argument `error-out' to control this. @@ -76369,7 +76369,7 @@ 2020-07-13 Andrea Corallo - Rework the backend to allocate arument arrays for call by references + Rework the backend to allocate argument arrays for call by references * src/comp.c (comp_t): Add 'zero' field. (emit_limple_call_ref): Allocate an array to host the parameters @@ -76756,7 +76756,7 @@ Add a simple pass to infer pure functions not explicitly declared as such. Use this information only during compilation (speed 3) to - optimize out function calls whe possible. + optimize out function calls when possible. 2020-07-09 Andrea Corallo @@ -77752,7 +77752,7 @@ 2020-06-22 Andrea Corallo - Handle correctly pure delaration specifier. + Handle correctly pure declaration specifier. * lisp/emacs-lisp/comp.el (comp-func): New slot 'pure'. (comp-spill-decl-spec): New function. @@ -78062,7 +78062,7 @@ Add an initial implementation to support dynamic scope. Arg parsing/binding it's done using the existing code in use for - bytecode (no ad-hoc code is synthetized for that). + bytecode (no ad-hoc code is synthesized for that). * src/lisp.h (struct Lisp_Subr): Add lambda_list field. (SUBR_NATIVE_COMPILED_DYNP): New inliner. @@ -78440,7 +78440,7 @@ cd4f75bb86 Rename default function to next-error-buffer-unnavigated-c... 1dff0a8949 * lisp/image-mode.el (image-toggle-display-image): Fix fit... a71d1787f1 * doc/misc/tramp.texi (Predefined connection information):... - 079b0dc430 Delete, don't kill, dir dir fragments in icomplete-fido-ba... + 079b0dc430 Delete, don't kill, dir fragments in icomplete-fido-ba... 6cdecc2659 Revert markup change in with-coding-priority docs 22f4fba8a9 * lisp/emulation/cua-rect.el (cua--rectangle-region-insert... 6b9eac6759 * lisp/simple.el (shell-command-on-region): Fix docstring. @@ -78677,7 +78677,7 @@ (comp-latch-make-fill): New function. (comp-emit-uncond-jump, comp-emit-cond-jump): Update to emit latches. - (comp-new-block-sym): Add a postfix paramenter. + (comp-new-block-sym): Add a postfix parameter. 2020-06-13 Andrea Corallo @@ -79030,7 +79030,7 @@ Fix comp-call-optim-form-call for null `callee' * lisp/emacs-lisp/comp.el (comp-call-optim-form-call): Guard - agains null `calle'. + against null `calle'. 2020-06-07 Glenn Morris @@ -79122,7 +79122,7 @@ * lisp/emacs-lisp/comp.el (comp-symbol-values-optimizable): New defconst. - (comp-function-call-maybe-remove): New logic to to remove + (comp-function-call-maybe-remove): New logic to remove unnecessary `symbol-value' calls. 2020-06-07 Juri Linkov @@ -80103,7 +80103,7 @@ Simply return the directory selected by the user. (project-switch-project-find-file): Remove. (project-switch-project-dired): Rename to project-dired and make - it follow the convention of existing projec tcommands. + it follow the convention of existing project tcommands. (project-switch-project-eshell): Ditto. (project-switch-project): Instead of passing the project instance to the command, just bind default-directory. @@ -81056,7 +81056,7 @@ 2020-05-17 Andrea Corallo - Fix Garbage Collector for missing calle-saved regs content (Bug#41357) + Fix Garbage Collector for missing callee-saved regs content (Bug#41357) * src/alloc.c (SET_STACK_TOP_ADDRESS): Do not call __builtin_unwind_init. @@ -81338,7 +81338,7 @@ 'lambda_gc_guard' 'lambda_c_name_idx_h' 'data_imp_relocs' 'loaded_once' fields. - * src/comp.c (load_comp_unit): Use compilaiton unit 'loaded_once' + * src/comp.c (load_comp_unit): Use compilation unit 'loaded_once' field. (make_subr, Fcomp__register_lambda): New functions. (Fcomp__register_subr): Make use of 'make_subr'. @@ -81415,7 +81415,7 @@ 2020-05-14 Andrea Corallo - Dump log and intemediate GCC IRs only at comp-debug 3 + Dump log and intermediate GCC IRs only at comp-debug 3 * src/comp.c (Fcomp__init_ctxt): Increase threshold for dumping really everything to 'comp-debug' 3. @@ -81692,7 +81692,7 @@ Fix bug #40992 whilst still allowing breakpoint highlights in edebug Strategy: when an instrumented function gets re-evaluated, save the former - value of its symbol's `edebug' property in the new propery `ghost-edebug'. If + value of its symbol's `edebug' property in the new property `ghost-edebug'. If this function is still being edebugged, edebug will then access its info from this new property. @@ -84271,7 +84271,7 @@ Implement position independent dump. - Set the filename for every compilation unit as realtive to obtain a + Set the filename for every compilation unit as relative to obtain a position independent dump. * lisp/loadup.el: Modify filename for every compilation unit as @@ -84459,7 +84459,7 @@ either be encoding a string without NL, or decoding without CR. * src/coding.c (string_ascii_p): Revert to a pure predicate. - (code_convert_string): Fix logic. Don't use uninitialised + (code_convert_string): Fix logic. Don't use uninitialized ascii_p (removed). Use memchr to detect CR or LF in string when needed. * test/src/coding-tests.el (coding-nocopy-ascii): Update tests to include encodings with explicit EOL conversions. @@ -84825,7 +84825,7 @@ * lisp/arc-mode.el: Rewrite displaying the summaries - Completely rewrite the code that displayes the summaries, so all + Completely rewrite the code that displays the summaries, so all backends share the same code. (archive--summarize-descs): New function. @@ -86503,7 +86503,7 @@ Merge remote-tracking branch 'savannah/master' into HEAD -2020-03-10 AndreaCorallo +2020-03-10 Andrea Corallo * Improve load_comp_unit @@ -86512,9 +86512,9 @@ Guard also data_ephemeral_vec against compiler optimizations. -2020-03-10 AndreaCorallo +2020-03-10 Andrea Corallo - * Fix store_function_docstring for for native functions + * Fix store_function_docstring for native functions Do not Nil native_doc fields. This will be naturally dumped by pdumper. This was affecting dumped functions. @@ -86526,7 +86526,7 @@ native_intspec and native_doc fields has to be reached by the subr cause are not anymore in the CU. -2020-03-10 AndreaCorallo +2020-03-10 Andrea Corallo * Set relocation class as ephemeral in `comp-limplify-top-level' @@ -86579,7 +86579,7 @@ Merge remote-tracking branch 'savannah/master' into HEAD - * Fix regexp instroduced by f055f52321 + * Fix regexp introduced by f055f52321 2020-03-09 Paul Eggert @@ -86613,7 +86613,7 @@ * lisp/term/rxvt.el: Enable backeted paste and window title - rxvt-unicode uses the same escape sequences as xterm so just re-use + rxvt-unicode uses the same escape sequences as xterm so just reuse the xterm functions to enable them. The `xterm-rxvt-function-map` keymap already has @@ -86975,17 +86975,17 @@ * lisp/replace.el (occur-1): Update default-directory in occur buffer. -2020-03-04 AndreaCorallo +2020-03-04 Andrea Corallo * Do not crash if the output directory is created in the meanwhile -2020-03-03 AndreaCorallo +2020-03-03 Andrea Corallo Hash eln ABI once and add it to the output compilation path Fix org for eln new compilation folder layout -2020-03-03 AndreaCorallo +2020-03-03 Andrea Corallo Rework `find-lisp-object-file-name' @@ -87096,7 +87096,7 @@ and 'fill-column' values. (Bug#36837) (whitespace-lines-regexp): New function. -2020-03-01 AndreaCorallo +2020-03-01 Andrea Corallo * ; Clean-up out of date comment @@ -87146,11 +87146,11 @@ * src/pdumper.c (dump_object): Fix hash for Lisp_Type after commit 202c3319a28c029d6971dccea92f92425c5e8067. -2020-02-29 AndreaCorallo +2020-02-29 Andrea Corallo Introduce 'effective_load_path' -2020-02-29 AndreaCorallo +2020-02-29 Andrea Corallo * Keep comp-subr-list into pure space @@ -88047,7 +88047,7 @@ itself and reevaluates it in each stop to yield an address. We also add a warning (a red bold exclamation mark) on the header line when the content of the page doesn't represent the memory location - user requested for. That happends when some error occurs in + user requested for. That happens when some error occurs in evaluating the address, and we display the last successfully displayed memory page. * lisp/progmodes/gdb-mi.el (gdb-memory-address-expression) @@ -88117,7 +88117,7 @@ (lispref/modes.texi): Explain avoiding lambdas on hooks. -2020-02-06 AndreaCorallo +2020-02-06 Andrea Corallo Add system-configuration in the compilation output path @@ -88141,7 +88141,7 @@ Add function ssa-status as `comp-func' slot and have `comp-clean-ssa' to run when necessary. -2020-03-01 AndreaCorallo +2020-03-01 Andrea Corallo Remove relocation index form LIMPLE setimm @@ -88167,21 +88167,21 @@ Merge remote-tracking branch 'savannah/master' into HEAD -2020-02-26 AndreaCorallo +2020-02-26 Andrea Corallo * ; Add a TODO for a future optimization -2020-02-26 AndreaCorallo +2020-02-26 Andrea Corallo Store optimize qualities into .eln files For now just comp-speed and comp-debug are stored. -2020-02-26 AndreaCorallo +2020-02-26 Andrea Corallo - Rename d-base allocation classe into d-default + Rename d-base allocation class into d-default -2020-02-26 AndreaCorallo +2020-02-26 Andrea Corallo Add ephemeral relocation data class @@ -88221,7 +88221,7 @@ Test 'comp-eq' should not assume any string hashing policy -2020-02-21 AndreaCorallo +2020-02-21 Andrea Corallo Emit 'top_level_run' objects as impure @@ -88229,7 +88229,7 @@ Verify '--with-nativecomp' has also '--with-dumping=pdumper' -2020-02-21 AndreaCorallo +2020-02-21 Andrea Corallo Reorder m-var slots @@ -88247,7 +88247,7 @@ Use `sxhash-eq' to generate mvar SSA ids -2020-02-15 AndreaCorallo +2020-02-15 Andrea Corallo Speed 2 goes default @@ -88260,7 +88260,7 @@ Every function call by reference gets use one unique array of arguments. -2020-02-14 AndreaCorallo +2020-02-14 Andrea Corallo Clean-up old gc disable refuse in comp-tests-non-locals @@ -88499,7 +88499,7 @@ Always define subr-native-elisp-p also without native compiler -2020-02-03 AndreaCorallo +2020-02-03 Andrea Corallo Fix load_comp_unit for non zero speeds @@ -89426,7 +89426,7 @@ 2020-01-19 Stefan Kangas - Make arguments to dired-chage-marks non-optional + Make arguments to dired-change-marks non-optional * lisp/dired.el (dired-change-marks): Make arguments non-optional. (Bug#29842) @@ -91168,7 +91168,7 @@ compute dominator tree - ssa and endge number generation with generator + ssa and edge number generation with generator add edge computation @@ -91656,7 +91656,7 @@ optimize primitive native call - propagate contant types and optimize self calls + propagate constant types and optimize self calls introduce stack_el_t @@ -91894,7 +91894,7 @@ introduce CASE_CALL_NARGS macro and add various ops - symbol_function set fset fget fget Bsubstring + symbol_function set fset fget Bsubstring 2020-01-01 Andrea Corallo @@ -94006,10 +94006,10 @@ 2021-02-03 Michael Albinus - Fix an error in tramp-sh-handle-make-process. Dont' merge with master + Fix an error in tramp-sh-handle-make-process. Don't merge with master * lisp/net/tramp-sh.el (tramp-sh-handle-make-process): Don't use heredoc - script whent the argument contains a string. + script when the argument contains a string. 2021-02-03 Stefan Kangas @@ -95467,7 +95467,7 @@ 2020-06-13 João Távora - Delete, don't kill, dir dir fragments in icomplete-fido-backward-updir + Delete, don't kill, dir fragments in icomplete-fido-backward-updir Reported by: Andrew Schwartzmeyer @@ -97511,7 +97511,7 @@ * lisp/subr.el (cancel-change-group): Fix bug#39680 - Don't re-use an existing `pending-undo-list` even if (eq last-command 'undo) + Don't reuse an existing `pending-undo-list` even if (eq last-command 'undo) since there might have been changes to the buffer since that `undo` command and the `pending-undo-list` can hence be invalid for the current buffer contents. @@ -101841,7 +101841,7 @@ vc-hg: prompt for branch to merge * lisp/vc/vc-hg.el (vc-hg-merge-branch): Prompt for revision to merge. - (vc-hg-revision-table): Use branches, tags and bookmarks as competion + (vc-hg-revision-table): Use branches, tags and bookmarks as completion candidates. * etc/NEWS: Mention changes of vc-hg.el @@ -101911,7 +101911,7 @@ (Create_Pixmap_From_Bitmap_Data): (xpm_load): Use new function. * src/xterm.c (x_composite_image): Use PictOpOver when there is a mask - so the transparency is honoured. + so the transparency is honored. (x_draw_image_foreground_1): Use x_composite_image. 2019-11-29 Stefan Monnier @@ -103470,7 +103470,7 @@ open-paren-in-column-0-is-defun-start to nil) fixes bug #37910. It may also have fixed bug #5490 and bug #18072. - * lisp/progmodes/cc-engine.el (c-state-cache-non-literal-place): Remove thi + * lisp/progmodes/cc-engine.el (c-state-cache-non-literal-place): Remove this non-sensical function, replacing it with .... (c-state-cache-lower-good-pos): New function. (c-renarrow-state-cache, c-append-lower-brace-pair-to-state-cache) @@ -104163,7 +104163,7 @@ Fixes bug#38131. - This is not the best way to have fido-mdoe emulate that particular bit + This is not the best way to have fido-mode emulate that particular bit of ido-mode. This reverts commit 5761a1a3939e23d8e8c725241dd9398a12f191b0. @@ -105655,7 +105655,7 @@ Sometimes, when finding files with icomplete-mode, backward-deleting the previous word or sexp (to move up a directory) doesn't actually refresh the file list of the new directory. Forcing redisplay in - icomplete-exhibit misteriously fixes the problem. + icomplete-exhibit mysteriously fixes the problem. * lisp/icomplete.el (icomplete-exhibit): Add call to redisplay. @@ -108376,7 +108376,7 @@ 2019-10-12 Rolf Ade (tiny change) - TCL indentation fix outside functions + Tcl indentation fix outside functions * lisp/progmodes/tcl.el (tcl-calculate-indent): Indent code correctly outside of function definitions (bug#23565). @@ -110510,7 +110510,7 @@ 2019-10-01 Lars Ingebrigtsen - Make the help page mention the customizeable global mode variable + Make the help page mention the customizable global mode variable * lisp/help-fns.el (help-fns--customize-variable): Factor out into own function for reuse. @@ -111059,7 +111059,7 @@ Fix reversed check in mm-possibly-verify-or-decrypt * lisp/gnus/mm-decode.el (mm-possibly-verify-or-decrypt): Fix - reverse check thinko that made unverified singed messages not + reverse check thinko that made unverified signed messages not display correctly. 2019-09-27 Wilson Snyder @@ -114089,10 +114089,10 @@ 2019-09-04 Lars Ingebrigtsen - Make the NSM not pop up an X dialogue on non-mouse actions + Make the NSM not pop up an X dialog on non-mouse actions * lisp/emacs-lisp/rmc.el (read-multiple-choice): Don't pop up X - dialogues on (url-retrieve "https://expired.badssl.com/" #'ignore) + dialogs on (url-retrieve "https://expired.badssl.com/" #'ignore) and the like. 2019-09-04 Lars Ingebrigtsen @@ -115572,7 +115572,7 @@ 2019-08-21 Nicolas Petton - * etc/HISTORY: Add Emacs 26.3 release release date. + * etc/HISTORY: Add Emacs 26.3 release date. 2019-08-21 Nicolas Petton @@ -115585,7 +115585,7 @@ 2019-08-21 Lars Ingebrigtsen - Make hide-ifdef-mode-prefix-key customisable + Make hide-ifdef-mode-prefix-key customizable * lisp/progmodes/hideif.el (hide-ifdef-mode-prefix-key): Make into a defcustom since it seems like this is something that should be @@ -117135,7 +117135,7 @@ Use timer-convert with t rather than doing it by hand. * src/timefns.c (time_hz_ticks, time_form_stamp, lisp_time_form_stamp): Remove; no longer needed. - (decode_lisp_time): Rturn the form instead of having a *PFORM arg. + (decode_lisp_time): Return the form instead of having a *PFORM arg. All uses changed. (time_arith): Just return TICKS if HZ is 1. (Fencode_time): Remove argument FORM. All callers changed. @@ -118328,7 +118328,7 @@ (readbyte_from_file): Assert that `infile` is set. (close_infile_unwind): Reset `infile` to its previous value rather than to NULL. - (Fload): Remember the previous value of `infile` before chaning it. + (Fload): Remember the previous value of `infile` before changing it. (readevalloop): Don't set `infile` any more. 2019-07-31 Paul Eggert @@ -118554,7 +118554,7 @@ 2019-07-30 Lars Ingebrigtsen - Use decoded time accessors in in em-ls + Use decoded time accessors in em-ls * lisp/eshell/em-ls.el (eshell-ls-file): Use decoded time accessors. @@ -118744,7 +118744,7 @@ * lisp/mh-e/mh-speed.el (mh-speed-parse-flists-output): * lisp/mh-e/mh-search.el (mh-index-parse-search-regexp): Avoid - warning about `values-list' by using `cl-values-list' insead. + warning about `values-list' by using `cl-values-list' instead. 2019-07-29 Lars Ingebrigtsen @@ -118873,7 +118873,7 @@ internal variable... (browse-url-browser-function, browse-url-external-browser): Used by these two; the latter of which is a new variable. - (browse-url-botton-regexp): New variable. + (browse-url-button-regexp): New variable. (browse-url-button-map): New keymap. (browse-url-button): New face. (browse-url-add-buttons): New function to add clickable browse-url @@ -120129,7 +120129,7 @@ * doc/lispref/hash.texi (Creating Hash, Defining Hash): * src/fns.c (Fsxhash_eq, Fsxhash_eql, Fsxhash_equal): Say that hashes are fixnums. - (Fmake_hash_table): Say that that an integer rehash-size + (Fmake_hash_table): Say that an integer rehash-size should be a fixnum. * doc/lispref/hash.texi (Defining Hash): Say that hash and comparison functions should be consistent and pure, and should @@ -124256,7 +124256,7 @@ * doc/lispref/text.texi (Special Properties): For the hook property modification-hooks, state that inhibit-modification-hooks is NOT bound to - non-nil when calling its functions. For the hooks insert-in-fron-hooks and + non-nil when calling its functions. For the hooks insert-in-front-hooks and insert-behind-hooks, state that that variable does get bound to non-nil. 2019-06-24 Hong Xu @@ -124516,7 +124516,7 @@ This is fine when the GPG key is cached and each entry can be decrypted without user interaction. However, for security some people have their GPG on a hardware token like a Yubikey setup so that they - have to touch a sensor on the toke for every cryptographic operation, + have to touch a sensor on the token for every cryptographic operation, in which case it becomes inconvenient as each attempt to find an entry requires a variable number of touches of the hardware token. @@ -126683,7 +126683,7 @@ Suppress warning about non-prefixed variable in mailalias.el - * lisp/mail/mailalias.el (patters): Suppress warning about + * lisp/mail/mailalias.el (pattern): Suppress warning about non-prefixed variable used by `mail-complete-alist'. 2019-06-15 Lars Ingebrigtsen @@ -129775,7 +129775,7 @@ * lisp/emacs-lisp/package.el (package-install-from-archive): Fix last change - Don't place the unibyte content of of the downloaded file into + Don't place the unibyte content of the downloaded file into a multibyte buffer. 2019-05-24 Michael Albinus @@ -130153,7 +130153,7 @@ * lisp/delim-col.el: Use lexical-binding. * test/lisp/delim-col-tests.el: New file. - (delim-col-tests-delimit-colummns-before-after) + (delim-col-tests-delimit-columns-before-after) (delim-col-tests-delimit-columns) (delim-col-tests-delimit-columns-format/nil) (delim-col-tests-delimit-columns-format/padding) @@ -130689,7 +130689,7 @@ 8192 bytes is a reasonable number nowadays given typical file system design. * test/lisp/image-tests.el (image-tests--emacs-images-directory): - New contant. + New constant. (image-type-from-file-header-test): New test. 2019-05-18 Michael Albinus @@ -130952,7 +130952,7 @@ 2019-05-16 Lars Ingebrigtsen - Avoind string-as-multibyte in ps-output-string-prim + Avoid string-as-multibyte in ps-output-string-prim * lisp/ps-print.el (ps-output-string-prim): Avoid `string-as-multibyte', and encode as utf-8 instead if multibyte. @@ -131090,7 +131090,7 @@ Make shr-rescale-image respect get-buffer-window again * lisp/net/shr.el (shr-rescale-image): Partially revert previous - change -- ressurrect the check for `get-buffer-window'. + change -- resurrect the check for `get-buffer-window'. 2019-05-16 Ivan Shmakov @@ -131138,7 +131138,7 @@ Fix diff-mode face problem when used in terminals (Bug#35695) In a terminal supporting 256 colors, both diff-added and diff-removed - was mapped to the same greyish color. + was mapped to the same grayish color. * lisp/vc/diff-mode.el: Modify the colors of diff-removed, diff-added, diff-refine-removed, and diff-refine-added when @@ -135103,7 +135103,7 @@ (help-fns--var-ignored-local, help-fns--var-file-local) (help-fns--var-watchpoints, help-fns--var-obsolete) (help-fns--var-alias, help-fns--var-bufferlocal): New functions, - extacted from describe-variable. + extracted from describe-variable. (describe-variable): Run help-fns-describe-variable-functions instead. 2019-04-12 Glenn Morris @@ -136908,7 +136908,7 @@ Check gnus-newsgroup-dependencies is hash table in gnus-id-to-thread * lisp/gnus/gnus-sum.el (gnus-id-to-thread): If dependencies haven't - been initialized yet, don't blow up. Mimicks previous (non hasht + been initialized yet, don't blow up. Mimics previous (non hash table) behavior. 2019-03-31 Mattias Engdegård @@ -139451,7 +139451,7 @@ Add 'breakpoint' to builtins for Python * lisp/progmodes/python.el (python-font-lock-keywords-level-2) - (python-font-lock-keywords-maxiumum-decoration): Add 'breakpoint' + (python-font-lock-keywords-maximum-decoration): Add 'breakpoint' to the list of builtins, it's new as of Python 3.7. 2019-03-01 Eli Zaretskii @@ -140598,7 +140598,7 @@ * doc/misc/eshell.texi (Built-ins): Fix alias description - Dear eamcs developers, eshells current documentation first states + Dear emacs developers, eshell's current documentation first states that alias definitions are not saved to an alias file, later that they are saved to an alias file. I tested it and the latter is correct. @@ -143483,7 +143483,7 @@ 2019-01-05 João Távora - New flymake-supress-zero-counters defcustom + New flymake-suppress-zero-counters defcustom A feature suggested by Yuri Khan . @@ -143883,7 +143883,8 @@ 2018-12-28 Michael Albinus - * lisp/net/tramp-sh.el (tramp-set-remote-path): Handle platforms w/o getconf. + * lisp/net/tramp-sh.el (tramp-set-remote-path): Handle platforms + without getconf. 2018-12-27 Paul Eggert @@ -150817,7 +150818,7 @@ * lisp/textmodes/bibtex.el (bibtex-next-entry) (bibtex-previous-entry): New commands. - (bibtex-mode-map): Bind to to forward-paragraph and + (bibtex-mode-map): Bind to forward-paragraph and backward-paragraph. Add to menu under "Moving inside an Entry". 2018-08-27 Noam Postavsky @@ -155041,7 +155042,7 @@ Fixes: Bug#31951 * lisp/server.el (server-save-buffers-kill-terminal): Only pass - PRED=t to save-some-bufers if ARG in non-nil. + PRED=t to save-some-buffers if ARG in non-nil. 2018-06-27 Vincent Belaïche @@ -156972,7 +156973,7 @@ Obsolete Flymake's flymake-diagnostic-types-alist That variable was an association between symbols and properties, - effecively duplicating symbol's property lists. It is simpler to just + effectively duplicating symbol's property lists. It is simpler to just put properties on symbols. Backward compatibility to the old variable has been kept. @@ -157307,7 +157308,7 @@ Merge from origin/emacs-26 90bea37 ; * etc/PROBLEMS: Fix fvwm version number in last commit - af82d1f * etc/PROBLEMS: Document stickyness problem with FVWM (Bug#31... + af82d1f * etc/PROBLEMS: Document stickiness problem with FVWM (Bug#31... 4a3aed2 Update Emacs Lisp Intro to match current behavior 21f2247 Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emac... 3257085 Fix previous commit @@ -157631,7 +157632,7 @@ Fix file name completion in Tramp * lisp/net/tramp.el (tramp-handle-file-name-directory): Fix case - of localname starts w/o a slash. + of localname starts without a slash. * test/lisp/net/tramp-tests.el (tramp-test06-directory-file-name): Extend test. @@ -159172,7 +159173,7 @@ 2018-04-17 Basil L. Contovounesios - Modernise face specs and set version tags in eww/shr + Modernize face specs and set version tags in eww/shr * lisp/net/shr.el (shr-strike-through, shr-link, shr-selected-link): Set :version tag (bug#31200). @@ -159646,10 +159647,10 @@ 2018-04-14 Lars Ingebrigtsen - Modernise a Gnus function a bit + Modernize a Gnus function a bit * lisp/gnus/gnus-start.el (gnus-update-active-hashtb-from-killed): - Modernise code a bit. + Modernize code a bit. 2018-04-14 Lars Ingebrigtsen @@ -163189,7 +163190,7 @@ Quieten eshell compilation * lisp/eshell/em-tramp.el: Require esh-cmd. - * lisp/eshell/esh-ext.el: Requie esh-io at runtime too. + * lisp/eshell/esh-ext.el: Require esh-io at runtime too. 2018-02-28 Glenn Morris @@ -164097,7 +164098,7 @@ (server-socket-dir): Compute socket dir from `get-external-sockname'. (server-start): Don't check for existing server when an - uninitialised external socket has been passed to Emacs. + uninitialized external socket has been passed to Emacs. * src/emacs.c: (main): Obtain socket name via getsockname and pass to `init_process_emacs'. * src/lisp.h: (init_process_emacs): Add second parameter. @@ -165009,7 +165010,7 @@ Merge from origin/emacs-26 - 6415b2d Allow read-passwd to hide characters inserted by C-y. (Secur... + 6415b2d Allow read-passwd to hide characters inserted by C-y. (Secure... 8cb4ffb * etc/PROBLEMS: Document issues with double-buffering. (Bug#... fd10070 * lisp/window.el (window-largest-empty-rectangle): Fix grammar. e1a4403 Minor changes in the Emacs manual @@ -165499,7 +165500,7 @@ 1fc98ed073 ; Spelling fix bb396a369c Update Org to v9.1.6 fa582153f7 Use text-pixels values only when saving framesets (Bug#30141) - 6b01b9475d Minor improvement in section "Pages" of the usere manual + 6b01b9475d Minor improvement in section "Pages" of the user manual e8c8bd3de2 Minor improvements in user manual 26b8b92e63 Improve the "Mark" chapter of the user manual 759569fe40 Improve the "Buffers" chapter of the user manual @@ -166388,7 +166389,7 @@ cl-loop: Calculate the array length just once * lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause): - Dont calculate the array length on each iteration (Bug#29866). + Don't calculate the array length on each iteration (Bug#29866). 2018-01-07 Philipp Stephani @@ -167166,7 +167167,7 @@ 5a7d009 * lisp/vc/smerge-mode.el (smerge-refine): Replace obsolete al... e019c35 FOR_EACH_FRAME no longer assumes frame-list d64b88d * src/font.c (Ffont_info): Doc fix. (Bug#29682) - 92b2604 Modernise message.el face spec syntax + 92b2604 Modernize message.el face spec syntax b1efbe6 Update message.el obsolete face aliases 2494c14 ; * lisp/comint.el (comint-terminfo-terminal): Add a :version... 12ad276 Improve documentation of TERM environment variable @@ -167462,7 +167463,7 @@ 5a7d0095a4 * lisp/vc/smerge-mode.el (smerge-refine): Replace obsolete... e019c35df6 FOR_EACH_FRAME no longer assumes frame-list d64b88da2f * src/font.c (Ffont_info): Doc fix. (Bug#29682) - 92b2604a7f Modernise message.el face spec syntax + 92b2604a7f Modernize message.el face spec syntax b1efbe6564 Update message.el obsolete face aliases 2494c14e76 ; * lisp/comint.el (comint-terminfo-terminal): Add a :vers... 12ad276d15 Improve documentation of TERM environment variable @@ -167642,7 +167643,7 @@ 2017-12-12 Glenn Morris - Fix gitmerge handling of automatic conflict reslution + Fix gitmerge handling of automatic conflict resolution * admin/gitmerge.el (gitmerge-resolve): Reenable NEWS handling. (gitmerge-resolve-unmerged): Commit after successful resolution. @@ -169725,7 +169726,7 @@ 2e1b3522b8 Improve documentation of 'line-number-display-width' 5b6e59cfdb Implement vc-default-dir-extra-headers for vc-rcs 22adeca42a In NEWS give advice on use of `switch-to-buffer' (Bug#28645) - 2c3e6f1ddc Dont update primary selection with winner-undo + 2c3e6f1ddc Don't update primary selection with winner-undo b38724ab67 Work around ImageMagick bug 825 20cc68e871 Document rectangle-preview option more (Bug#27974) a0b7b301dd Do not reject https://gnu.org in commit messages @@ -172440,11 +172441,11 @@ * src/window.c (Fset_window_margins, Fset_window_fringes) (Fset_window_scroll_bars): In doc-strings tell that a window - must be large enough to accommodate fringes, sroll bars and + must be large enough to accommodate fringes, scroll bars and margins of the desired size. * doc/lispref/display.texi (Fringe Size/Pos, Scroll Bars) (Display Margins): Tell that windows must be large enough to - accommodate fringes, sroll bars and margins of the desired + accommodate fringes, scroll bars and margins of the desired size. 2019-03-10 Eli Zaretskii @@ -172768,7 +172769,7 @@ * doc/misc/eshell.texi (Built-ins): Fix alias description - Dear eamcs developers, eshells current documentation first states + Dear emacs developers, eshell's current documentation first states that alias definitions are not saved to an alias file, later that they are saved to an alias file. I tested it and the latter is correct. @@ -175962,7 +175963,7 @@ Save the server alias on reconnect (Bug#29657) rcirc does not retain the server alias on reconnect. As a result, rcirc - fails to re-use server and channel buffers when an alias is used. Further + fails to reuse server and channel buffers when an alias is used. Further problems may ensue when aliases are used to differentiate multiple connections to the same host, for example when using a single IRC bouncer or proxy to connect to multiple IRC networks. @@ -177337,7 +177338,7 @@ 2018-06-02 Martin Rudalics - * etc/PROBLEMS: Document stickyness problem with FVWM (Bug#31650) + * etc/PROBLEMS: Document stickiness problem with FVWM (Bug#31650) 2018-06-01 Eli Zaretskii @@ -177551,7 +177552,7 @@ Mention pcase as a fifth conditional form * doc/lispref/control.texi (Conditionals): ...here, - in first para, w/ xref to "Pattern-Matching Conditional". + in first para, with xref to "Pattern-Matching Conditional". 2018-05-27 Thien-Thi Nguyen @@ -180913,7 +180914,7 @@ 2018-01-21 Eli Zaretskii - Minor improvement in section "Pages" of the usere manual + Minor improvement in section "Pages" of the user manual * doc/emacs/text.texi (Pages): Improve wording. Suggested by Will Korteland in emacs-manual-bugs@gnu.org. @@ -182255,7 +182256,7 @@ 2017-12-15 Basil L. Contovounesios - Modernise message.el face spec syntax + Modernize message.el face spec syntax * lisp/gnus/message.el (message-header-to, message-header-cc) (message-header-subject, message-header-newsgroups) @@ -184511,7 +184512,7 @@ * src/lisp.h (GCALIGNMENT): Change it back to a macro that expands to a literal integer constant, for older GCC. I had mistakenly thought that only MSVC had the problem. - Problem repored by Eli Zaretskii (Bug#29040#69). + Problem reported by Eli Zaretskii (Bug#29040#69). 2017-11-03 Paul Eggert @@ -184780,7 +184781,7 @@ * src/lisp.h (COMMON_MULTIPLE): Move here from alloc.c. * src/thread.c (THREAD_ALIGNMENT): New macro. - (main_thread): Use THREAD_ALIGNMENT to align propertly. (Bug#29040) + (main_thread): Use THREAD_ALIGNMENT to align properly. (Bug#29040) 2017-10-28 Eli Zaretskii @@ -185724,10 +185725,10 @@ 2017-10-17 Tino Calancha Noam Postavsky - Dont update primary selection with winner-undo + Don't update primary selection with winner-undo * lisp/winner.el (winner-set): - Dont update primary selection when select-enable-primary + Don't update primary selection when select-enable-primary is non-nil (Bug#28631). 2017-10-17 Paul Eggert @@ -185801,7 +185802,7 @@ * lisp/image.el (image-type-header-regexps): Allow two or more CRs or LFs in initial whitespace sequences. See: - http://netpbm.sourceforge.net/doc/pbm.html + https://netpbm.sourceforge.net/doc/pbm.html 2017-10-16 Paul Eggert @@ -186076,7 +186077,7 @@ Add mode map to Flymake diagnostic button * lisp/progmodes/flymake.el (flymake--diagnostics-buffer-entries): Add - keymap propery. + keymap property. 2017-10-10 João Távora @@ -186288,7 +186289,7 @@ (flymake-start-syntax-check-on-find-file): Obsolete alias for flymake-start-on-flymake-mode. (flymake-start): Redesign. Affect the global post-command-hook - and local window-configuraiton-change-hook. + and local window-configuration-change-hook. (flymake--schedule-timer-maybe) (flymake-after-change-function, flymake-after-save-hook): Pass t to flymake-start. @@ -186855,7 +186856,7 @@ * doc/misc/flymake.texi (Overview of Flymake): Rewrite a bit. (Installing Flymake): Mostly scratch. Flymake comes with Emacs. (Running the syntax check): Simplify. - (Viewing error messages): Dekete, + (Viewing error messages): Delete. (Syntax check statuses): Rewrite. (Troubleshooting): Simplify. (Customizable variables): Rewrite. @@ -187675,7 +187676,7 @@ Lay some groundwork for a more flexible approach that allows for different classes of diagnostics, not necessarily line-based. Importantly, one overlay per diagnostic is created, whereas the - original implementation had one per line, and on it it concatenated + original implementation had one per line, and on it concatenated the results of errors and warnings. This means that currently, an error and warning on the same line are @@ -188460,7 +188461,7 @@ Loosen strict parsing requirement for desktop files There are other desktop-looking files, for instance those having to do - with MIME typess, that would benefit from being able to be read by this + with MIME types, that would benefit from being able to be read by this function. It helps to have some flexibility. * lisp/xdg.el (xdg-desktop-read-file): Remove an error condition. * test/lisp/xdg-tests.el: Remove a test. @@ -191120,7 +191121,7 @@ Support multi-lingual detection of SEE ALSO man sections * lisp/man.el (Man-see-also-regexp): Add support for SEE ALSO - section detection in several langages: French, German, Spanish, + section detection in several languages: French, German, Spanish, Portuguese, Italian, Polish, Turkish, Japanese, Chinese. (Bug#28142) 2017-08-26 Paul Eggert @@ -191330,7 +191331,7 @@ (initFrameFromEmacs) [NS_IMPL_COCOA]: Handle ns-appearance and ns-transparent-titlebar frame parameters. * doc/lispref/frames.texi (Window Management Parameters): Document - ns-apperance and ns-transparent-titlebar. + ns-appearance and ns-transparent-titlebar. 2017-08-22 Alan Mackenzie @@ -192479,7 +192480,7 @@ 2017-08-09 Tino Calancha - Ask files for deletion in buffer order: top first, botton later + Ask files for deletion in buffer order: top first, bottom later * lisp/dired.el (dired-do-flagged-delete, dired-do-delete): Call `nreverse' t invert the output of `dired-map-over-marks'. @@ -192818,7 +192819,7 @@ 2017-08-06 Tino Calancha - Dired w/ eshell-ls: Handle shell wildcards in file name + Dired with eshell-ls: Handle shell wildcards in file name * lisp/eshell/em-ls.el (eshell-ls--insert-directory): Use eshell-extended-glob (Bug#27844). @@ -193195,7 +193196,7 @@ 2017-08-01 Tino Calancha - Insert subdir content if dir-or-list is a string w/o wildcards + Insert subdir content if dir-or-list is a string without wildcards * lisp/eshell/em-ls.el (eshell-ls--insert-directory): Append '("-d") into 'eshell-ls-dired-initial-args' @@ -195008,7 +195009,7 @@ 2017-07-09 R. Bernstein - Add realgud faces faces to whiteboard... + Add realgud faces to whiteboard... Adjust wheatgrass to use underline for enabled/disabled breakpoints @@ -195948,7 +195949,7 @@ Ignore mouse-movement for describe-key-briefly (Bug#12204) - * lisp/help.el (help-read-key-sequence): Add optional argument ot + * lisp/help.el (help-read-key-sequence): Add optional argument to ignore `mouse-movement' events. (describe-key-briefly): Use it. * doc/emacs/help.texi (Key Help): @@ -197525,7 +197526,7 @@ Clang on macOS warns about these with -Wtautological-compare. POSIX guarantees that rlim_t is unsigned (cf. - http://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/resource.h.html), + https://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/resource.h.html), so these resource limits can never be negative. * src/emacs.c (main): Remove tautological comparisons. @@ -199118,7 +199119,7 @@ (tramp-adb-ls-toolbox-regexp): Ignore addition links column on Android 7. (tramp-adb-get-ls-command): - Dont use --color=none when using toybox (Android 7). It's not + Don't use --color=none when using toybox (Android 7). It's not possible to disable coloring explicitly for toybox ls. 2017-05-27 Svante Carl v. Erichsen (tiny change) @@ -199614,7 +199615,7 @@ 2017-05-23 Paul Eggert - Don't warn about missing brances on macOS + Don't warn about missing branches on macOS On macOS, removing -Wmissing-braces is not enough; the warning has to be disabled explicitly. @@ -199625,7 +199626,7 @@ ' is commonly used as an apostrophe in the prose sections of spec files, which was erroneously highlighted as strings. See for example - http://kmymoney2.sourceforge.net/phb/rpm-example.html + https://kmymoney2.sourceforge.net/phb/rpm-example.html * lisp/progmodes/sh-script.el (sh-mode-syntax-table): Treat ' as punctuation in RPM spec files. @@ -203189,7 +203190,7 @@ (w32_frame_parm_handlers): Add entries for new frame parameters. * src/w32font.c (Fx_select_font): Handle `z-group-above' - frames during font selection dialogue. + frames during font selection dialog. * src/w32term.c (construct_mouse_wheel): Construct mouse wheel event from F's w32 window. (w32_mouse_position): Handle child frames. @@ -204443,7 +204444,7 @@ 2017-04-02 Michael Albinus - Apply connecion-local variables for shells + Apply connection-local variables for shells * doc/misc/tramp.texi (Remote processes): Show use of connection-local variables. Don't mention Emacs 23 anymore. @@ -204454,7 +204455,7 @@ (connection-local-set-profiles, with-connection-local-profiles): Adapt docstring. - * lisp/shell.el (shell): Apply connecion-local variables. + * lisp/shell.el (shell): Apply connection-local variables. 2017-04-01 Evgeni Kolev (tiny change) @@ -205168,7 +205169,7 @@ 2017-03-21 Noam Postavsky - Narrow scope of modification hook renabling in org-src fontification + Narrow scope of modification hook re-enabling in org-src fontification Modification hooks should be enabled while modifying text in the org-src temp buffer, but in 2017-01-29 "Call modification hooks in @@ -206664,7 +206665,7 @@ 2017-03-03 Rolf Ade (tiny change) - sql-mode w/ sqlite: In-memory database + sql-mode with sqlite: In-memory database Enable the usage of an in-memory database. Prior to this, sql-mode w/ sqlite could only be used with file databases. @@ -207100,7 +207101,7 @@ * lisp/emacs-lisp/package.el (package-initialize): Check `after-init-time' rather than `load-file-name' to decide if `package--ensure-init-file' should be called. Depending on - `load-file-name' will fail if the user calls `pacakge-initialize' in + `load-file-name' will fail if the user calls `package-initialize' in file which is loaded from the init file (Bug#24643, Bug#25819). 2017-02-26 Eli Zaretskii @@ -209373,7 +209374,7 @@ Revamp quitting and fix infloops - This fixes some infinite loops that cannot be quitted out of, + This fixes some infinite loops that cannot be quit out of, e.g., (defun foo () (nth most-positive-fixnum '#1=(1 . #1#))) when byte-compiled and when run under X. See: https://lists.gnu.org/r/emacs-devel/2017-01/msg00577.html @@ -211623,7 +211624,8 @@ 2017-01-03 Stefan Monnier - (cl-defstruct): Improve error message for slots w/o value (bug#25312) + (cl-defstruct): Improve error message for slots without value + (bug#25312) * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Don't signal an error but emit a warning for those coders who forgot to put a default value in @@ -214586,7 +214588,7 @@ refactor systhread.h This refactors systhread.h to move the notion of a "lisp mutex" - into thread.c. This lets us make make the global lock and + into thread.c. This lets us make the global lock and post_acquire_global_lock static. 2012-08-17 Tom Tromey @@ -219224,7 +219226,7 @@ * lib/stdint.in.h, m4/extensions.m4, m4/stdint.m4, m4/stdio_h.m4: * m4/sys_types_h.m4: Copy from gnulib. * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. - * lib/limits.in.h, m4/limits-h.m4: New files, copie from gnulib. + * lib/limits.in.h, m4/limits-h.m4: New files, copied from gnulib. * nt/gnulib.mk: Merge changes from lib/gnulib.mk. 2016-09-15 Michael Albinus @@ -219620,7 +219622,7 @@ for 0x80 ⪬ c < 0x100. In other words, the loop never executes for c ≥ 0x80 and RE_CHAR_TO_MULTIBYTE call is unnecessary for c < 0x80. - * src/regex.c (regex_compile): Simplyfy a for loop by eliminating + * src/regex.c (regex_compile): Simplify a for loop by eliminating dead iterations and unnecessary macro calls. 2016-09-08 Michal Nazarewicz @@ -219890,7 +219892,7 @@ 2016-09-02 Stefan Monnier - Check actual contents before promting about changed file + Check actual contents before prompting about changed file * lisp/userlock.el (userlock--check-content-unchanged) (userlock--ask-user-about-supersession-threat): New functions. @@ -221124,7 +221126,7 @@ * lisp/progmodes/cc-mode.el (c-after-change): When we detect a missing invocation of c-before-change-functions, we assume the changed region is the - entire buffer, and call c-before-change explicitly before proceding. + entire buffer, and call c-before-change explicitly before proceeding. 2016-08-09 Alan Mackenzie @@ -221755,8 +221757,8 @@ is never used. Hardcode the syntax so that the compilar can detect such dead code and remove it from compiled code. - The only exception is RE_NO_POSIX_BACKTRACKING which can be separatelly - specified. Handle this separatelly with a function argument (replacing + The only exception is RE_NO_POSIX_BACKTRACKING which can be separately + specified. Handle this separately with a function argument (replacing now unnecessary syntax argument). With this patchset, size of Emacs binary on x86_64 machine is reduced by @@ -222015,7 +222017,7 @@ (ses-define-if-new-local-printer): New defsubst. (ses-center, ses-center-span, ses-dashfill) (ses-dashfill-span, ses-tildefill-span): Allow to pass printer - as an optional argument to superseed column printer/default + as an optional argument to supersede column printer/default spreadsheet printer. (ses-prin1): New defun. @@ -224390,10 +224392,10 @@ 2016-06-15 Stefan Monnier - Advertize set-keymap-parent as replacement for copy-keymap + Advertise set-keymap-parent as replacement for copy-keymap * doc/lispref/keymaps.texi (Creating Keymaps): - * src/keymap.c (Fcopy_keymap): Advertize set-keymap-parent as replacement. + * src/keymap.c (Fcopy_keymap): Advertise set-keymap-parent as replacement. 2016-06-15 Ted Zlatanov @@ -226965,7 +226967,7 @@ Fix Bug#10085 * lisp/net/tramp.el (tramp-find-foreign-file-name-handler): - Add optional arguments OPERATION and COMPETION. Handle + Add optional arguments OPERATION and COMPLETION. Handle `file-name-as-directory', `file-name-directory' and `file-name-nondirectory' also in completion mode. (tramp-file-name-handler): Use it. (Bug#10085) @@ -227282,7 +227284,7 @@ 2016-04-30 Lars Ingebrigtsen - Document mode mode line variables + Document mode line variables * doc/lispref/modes.texi (Mode Line Variables): Document `mode-line-front-space, `mode-line-misc-info', @@ -227974,7 +227976,7 @@ of the data end marker from here... (bug#23020). (smtpmail-send-data): ... to here, so that we don't get a "Sending done" before we've sent the final "." (which can make - the SMPT server reject the email. + the SMTP server reject the email. 2016-04-25 Lars Magne Ingebrigtsen @@ -228229,7 +228231,7 @@ * lisp/auth-source.el (auth-source-macos-keychain-search-items): Handle keychain - output correctly when has special chararcters (bug#22824). + output correctly when has special characters (bug#22824). 2016-04-24 Magnus Henoch @@ -229113,7 +229115,7 @@ 6da3a6d Port to strict C99 offsetof de7601f Port to GTK with strict C11 compiler 658aa2d Port to GTK with strict C99 compiler - 1df7173 Avoid screen artifacts with new OS X visible bell after scrol... + 1df7173 Avoid screen artifacts with new OS X visible bell after scroll... 7a2edd3 Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into... dca240a Suppress some Tramp tests for OSX, do not merge with master 9094304 * lisp/progmodes/xref.el (xref-buffer-name, xref--window): Mo... @@ -230384,7 +230386,7 @@ Use #' read syntax for functions. (file-notify-test05-dir-validity) (file-notify-test06-many-events): Simplify directory creation. - (file-notify-test09-sufficient-ressources): New test. + (file-notify-test09-sufficient-resources): New test. 2016-03-04 Lars Ingebrigtsen @@ -231514,7 +231516,7 @@ * lisp/gnus/gnus-rfc1843.el: New file for Gnus/rfc1843 interface functions. - * lisp/gnus/gnus-rfc1843.el: Move all Gnus-specifig functions to + * lisp/gnus/gnus-rfc1843.el: Move all Gnus-specific functions to gnus-rfc1843. 2016-02-22 Lars Ingebrigtsen @@ -233744,7 +233746,7 @@ ee73997 Make erc work better when encountering unknown prefix chars b99141d Make erc completion case-insensitive again - 66c4620 Make complection in erc use consistent casing + 66c4620 Make completion in erc use consistent casing 8c562b2 Make /QUIT in erc more robust d93d2c5 Make tracking faces in Emacs work more reliably af6ab7e Make shr not bug out on images on non-graphical displays @@ -234789,7 +234791,7 @@ (Maybe this is the last merge from Gnus git to Emacs git) Cf. discussion on ding mailing list, messages in - . + . [dead link] Common code from the three files mml-smime.el, mml1991.el, and mml2015.el is moved to mml-sec.el. Auxiliary functions are added to gnus-util.el. @@ -234942,7 +234944,7 @@ (rng-complete-attribute-value): Don't perform completion, but return completion data instead. (rng-complete-qname-function, rng-generate-qname-list): Add a few - arguments, previously passed via dynamic coping. + arguments, previously passed via dynamic copying. (rng-strings-to-completion-table): Rename from rng-strings-to-completion-alist. Don't return an alist. Don't both sorting and uniquifying. @@ -235278,7 +235280,7 @@ d400753 * src/buffer.c: Stick with ASCII in doc string. 221240c Reword transient-mark-mode doc string 977d3ea Update doc string of 'selective-display' - 229c3fa Make C++ buffers writeable when writing their initial text + 229c3fa Make C++ buffers writable when writing their initial text properties. f5c762c Additional changes for "make check-expensive" 1729cf3 ; * admin/MAINTAINERS: Remove myself. @@ -237353,7 +237355,7 @@ See ChangeLog.2 for earlier changes. ;; coding: utf-8 ;; End: - Copyright (C) 2015-2023 Free Software Foundation, Inc. + Copyright (C) 2015-2024 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/ChangeLog.4 b/ChangeLog.4 new file mode 100644 index 000000000000..74d6887376b5 --- /dev/null +++ b/ChangeLog.4 @@ -0,0 +1,120939 @@ +2024-01-18 Eli Zaretskii + + * Version 29.2 released. + + * ChangeLog.4: + * etc/HISTORY: Update for Emacs 29.2. + * README: + * configure.ac: + * nt/README.W32: + * msdos/sed2v2.inp: Bump Emacs version to 29.2. + +2024-01-17 Dmitry Gutov + + diff-mode: Support committing diff with file deletions + + * lisp/vc/diff-mode.el (diff-vc-deduce-fileset): + Remove nil elements from the result (bug#68443). + +2024-01-16 Juri Linkov + + * lisp/net/eww.el (eww-retrieve): Fix args of eww-render for sync (bug#68336). + + Suggested by Phil Sainty . + +2024-01-16 Mike Kupfer + + Fix folder creation error (Bug#67361) + + * lisp/mh-e/mh-funcs.el (mh-kill-folder) + * lisp/mh-e/mh-search.el (mh-index-new-folder) + * lisp/mh-e/mh-utils.el (mh-prompt-for-folder): + Check for existence of 'speedbar-buffer' rather than + 'mh-speed-folder-map'. The latter can exist if + 'mh-speed' has only been loaded but not displayed. + + (cherry picked from commit e6a2901b1be6b4aa01f8bf0d3c6e06344ce8d366) + +2024-01-15 Gregory Heytings + + Simplify 'without-restriction' + + This simplification is symmetrical to 01fb898420. + + * src/editfns.c: (Finternal__labeled_widen): Add a call to + 'Fwiden', and rename from 'internal--unlabel-restriction'. + (unwind_labeled_narrow_to_region): Use the renamed function, and + remove the call to 'Fwiden'. + (syms_of_editfns): Rename the symbol. + + * lisp/subr.el (internal--without-restriction): Use the renamed + function. + + (cherry picked from commit 9e9e11648d3d5514de85edfb69f0949a062f4716) + +2024-01-14 Gregory Heytings + + Fix blunder in labeled_narrow_to_region + + * src/editfns.c (labeled_narrow_to_region): Record point before, + instead of after, calling narrow-to-region; otherwise point may + already have been changed. Fixes bug#66764. + +2024-01-14 Daniel Martín + + Fix documentation of icon-elements + + * lisp/emacs-lisp/icons.el (icon-elements): The plist key it returns + is `image', not `display'. (Bug#68451) + +2024-01-14 Stefan Kangas + + Improve two docstrings in ox-latex + + * lisp/org/ox-latex.el (org-latex-src-block-backend) + (org-latex-engraved-theme): Improve docstring; mention that + engrave-faces is a GNU ELPA package. + +2024-01-14 Stefan Kangas + + Doc fix in auth-source-read-char-choice + + * lisp/auth-source.el (auth-source-read-char-choice): Don't + document 'dropdown-list', which was removed in 2011. + +2024-01-13 Eli Zaretskii + + Fix info-xref-tests + + * doc/lispintro/emacs-lisp-intro.texi (How let Binds Variables): + Fix cross-reference. (Bug#68428) + + * test/lisp/info-xref-tests.el (info-xref-test-write-file): Fix + test on MS-Windows when run from MSYS Bash. + +2024-01-13 Juri Linkov + + Add @kindex in manuals for existing keybindings on 'C-x x/w' (bug#13167) + + * doc/emacs/buffers.texi (Misc Buffer): Add @kindex for 'C-x x r', + 'C-x x u', 'C-x x i'. + + * doc/emacs/display.texi (Line Truncation): Add @kindex for 'C-x x t'. + + * doc/emacs/files.texi (Reverting): Add @kindex for 'C-x x g'. + + * doc/emacs/windows.texi (Change Window): Use new keybinding 'C-x w 0' + instead of 'M-x delete-windows-on'. + + * doc/misc/info.texi (Create Info buffer): Add @kindex for 'C-x x n'. + +2024-01-13 Eli Zaretskii + + Improve documentation of 'emacs_function' in modules + + * doc/lispref/internals.texi (Module Functions): Warn about + accessing the ARGS array in module functions. + +2024-01-12 Eli Zaretskii + + Improve documentation of Ispell commands + + * doc/emacs/fixit.texi (Spelling): Document "C-u M-$" and warn + against modifications in recursive-edit. (Bug#14192) + +2024-01-11 Stefan Kangas + + Don't recommend inverse-video for debugging + + * etc/DEBUG: Don't recommend 'inverse-video', which has been broken + for 20 years, give or take. (Bug#11430) + +2024-01-11 Xiyue Deng + + Fix typo in lispref "Creating Strings" section + + * doc/lispref/strings.texi (String Basics): Fix typo (bug#68375). + +2024-01-11 Xiyue Deng (tiny change) + + Fix count of no-op functions (bug#68375) + + It looks like there are actually three kinds of no-op functions. + + * doc/lispref/functions.texi (Calling Functions): Fix count and + plural of no-op functions. + +2024-01-11 Xiyue Deng (tiny change) + + Wrap @pxref of Abbrevs in parentheses (bug#68375) + + * doc/lispref/symbols.texi (Shorthands): Wrap `@pxref{Abbrevs}' in + parentheses. + +2024-01-10 Mauro Aranda + + Add examples to the Widget manual + + * doc/misc/widget.texi (Widget Gallery, Defining New Widgets): Add + examples. (Bug#66229) + +2024-01-10 Mauro Aranda + + Implement missing functions for custom-icon widget + + * lisp/cus-edit.el (custom-icon-reset-saved, custom-icon-mark-to-save) + (custom-icon-state-set-and-redraw, custom-icon-reset-standard) + (custom-icon-mark-to-reset-standard): New functions. + (custom-icon, custom-icon-extended-menu): Register and add them to the + menu. (Bug#66947) + +2024-01-10 Stephen Berman + + Fix fontification of cgroup2 in fstab (bug#68367) + + * lisp/generic-x.el (etc-fstab-generic-mode): Add cgroup2. + +2024-01-10 Philip Kaludercic + + Handle package versions that are not version strings + + * lisp/emacs-lisp/package.el (package-menu--version-predicate): Ignore + any errors raised by 'version-to-list', thus falling back to the + default version list. (Bug#68317) + + (cherry picked from commit eb913c7501489e1eae475cae843fccdf14cc24d8) + +2024-01-09 Jim Porter + + Introduce 'let' using lexical binding in the Lisp Introduction + + * doc/lispintro/emacs-lisp-intro.texi (Prevent confusion): Rework the + explanation to discuss how things work under lexical binding. + (How let Binds Variables): Describe the differences between lexical + and dynamic binding (including how to configure it). + (defvar): Mention that 'defvar' declares variables as always + dynamically-bound (bug#66756). + +2024-01-06 Eli Zaretskii + + Fix 'rmail-summary-by-thread' + + * lisp/mail/rmailsum.el (rmail-summary-by-thread): Call + 'rmail-new-summary' from the original buffer, not from + 'rmail-buffer' to avoid failing the logic in 'rmail-new-summary' + that decides whether to pop up a new window. Reported by Andrea + Monaco . + +2024-01-06 Jean-Christophe Helary + + * doc/emacs/back.texi: Fix a typo. + +2024-01-06 Eli Zaretskii + + Fix icons.el when icon does not exist as a file + + * lisp/emacs-lisp/icons.el (icons--create): Handle the case when + ICON is a file that doesn't exists or is unreadable. Suggested by + David Ponce . (Bug#66846) + +2024-01-05 Juri Linkov + + * lisp/isearch.el (isearch-search-and-update): Let-bind 'isearch-cmds'. + + When 'isearch-wrap-pause' is 'no' or 'no-ding', let-bind 'isearch-cmds' + to avoid changing it by 'isearch-push-state' in 'isearch-repeat', + so that a later DEL (isearch-delete-char) doesn't stop at the + intermediate failing state (bug#68158). + +2024-01-04 Andrea Corallo + + * src/comp.c (Fcomp__compile_ctxt_to_file): Fix hash table Qunbound use. + +2024-01-04 Eli Zaretskii + + Provide decent documentation for 'help-quick' + + * lisp/help.el (help-quick, help-quick-toggle): Doc fix. + + * doc/emacs/help.texi (Help Summary, Misc Help): Document + 'help-quick-toggle'. + +2024-01-02 Dmitry Gutov + + treesit--pre-syntax-ppss: Fix args-out-of-range in internal--syntax-propertize + + * lisp/treesit.el (treesit--pre-syntax-ppss): Make sure the lower + bound is still within the current restriction (bug#67977). + +2024-01-01 Mike Kupfer + + Fix mangled Subject header field when forwarding (Bug#67360) + + * lisp/mh-e/mh-comp.el (mh-forward): Overwrite subject when + forwarding. + +2024-01-01 Kyle Meyer + + Update to Org 9.6.15 + +2023-12-31 Eli Zaretskii + + * doc/emacs/custom.texi (Modifier Keys): Fix markup (bug#68164). + + Suggested by Jens Quade . + +2023-12-30 Stefan Kangas + + org-protocol: Minor copy-edits to Commentary + + * lisp/org/org-protocol.el: Minor copy-edits to Commentary. + +2023-12-30 Denis Zubarev + + Improve syntax highlighting for python-ts-mode + + Fix fontification of strings inside of f-strings interpolation, e.g. for + f"beg {'nested'}" - 'nested' was not fontified as string. Do not + override the face of builtin functions (all, bytes etc.) with the + function call face. Add missing assignment expressions (:= *=). + Fontify built-ins (dict,list,etc.) as types when they are used in type + hints. Highlight union types (type1|type2). Highlight base class names + in the class definition. Fontify class patterns in case statements. + Highlight the second argument as a type in isinstance/issubclass call. + Highlight dotted decorator names. + + * lisp/progmodes/python.el (python--treesit-keywords): Add compound + keyword "is not". + (python--treesit-builtin-types): New variable that stores all python + built-in types. + (python--treesit-type-regex): New variable. Regex matches if text is + either built-in type or text starts with capital letter. + (python--treesit-builtins): Extract built-in types to other variable. + (python--treesit-fontify-string): fix f-string interpolation. Enable + interpolation highlighting only if string-interpolation is presented + on the enabled levels of treesit-font-lock-feature-list. + (python--treesit-fontify-string-interpolation): Remove function. + (python--treesit-fontify-union-types): Fontify nested union types. + (python--treesit-fontify-union-types-strict): Fontify nested union + types, only if type identifier matches against + python--treesit-type-regex. + (python--treesit-fontify-dotted-decorator): Fontify all parts of + dotted decorator name. + (python--treesit-settings): Change/add rules. (Bug#67061) + + * test/lisp/progmodes/python-tests.el + (python-ts-tests-with-temp-buffer): Function for setting up test + buffer. + (python-ts-mode-compound-keywords-face) + (python-ts-mode-named-assignement-face-1) + (python-ts-mode-assignement-face-2) + (python-ts-mode-nested-types-face-1) + (python-ts-mode-union-types-face-1) + (python-ts-mode-union-types-face-2) + (python-ts-mode-types-face-1) + (python-ts-mode-types-face-2) + (python-ts-mode-types-face-3) + (python-ts-mode-isinstance-type-face-1) + (python-ts-mode-isinstance-type-face-2) + (python-ts-mode-isinstance-type-face-3) + (python-ts-mode-superclass-type-face) + (python-ts-mode-class-patterns-face) + (python-ts-mode-dotted-decorator-face-1) + (python-ts-mode-dotted-decorator-face-2) + (python-ts-mode-builtin-call-face) + (python-ts-mode-interpolation-nested-string) + (python-ts-mode-disabled-string-interpolation) + (python-ts-mode-interpolation-doc-string): Add tests. + +2023-12-29 Yuan Fu + + Revert "Fix treesit-node-field-name and friends (bug#66674)" + + This reverts commit 9874561f39e62c1c9fada6c2e013f93d9ea65729. + + See bug#67990. Basically our original code is correct, the error is + in libtree-sitter, which only manifests in certain cases. + + https://github.com/tree-sitter/tree-sitter/pull/2104 + +2023-12-25 Stefan Kangas + + Explain status "r" in `epa-list-keys` + + * lisp/epa.el (epa-list-keys): Add revoked status to description. + Suggested by CHENG Gao . + +2023-12-25 Jared Finder + + Fix mouse clicks on directory line in Dired + + The option 'dired-kill-when-opening-new-dired-buffer' should be + also honored when clicking the mouse to kill prev buffer. + * lisp/dired.el (dired--make-directory-clickable): Call + 'dired--find-possibly-alternative-file' instead of 'dired', in + the click callback. (Bug#67856) + +2023-12-25 Eli Zaretskii + + Fix 'split-root-window-right' and 'split-root-window-below' + + * lisp/window.el (split-root-window-right) + (split-root-window-below): Fix the 'interactive' spec to avoid + misbehaving when invoked with no prefix argument. (Bug#67452) + +2023-12-24 Stefan Kangas + + Mark icalendar.el as maintained by emacs-devel + + * lisp/calendar/icalendar.el: Mark emacs-devel as the maintainer. + Ref: https://debbugs.gnu.org/34315#152 + +2023-12-24 Xiyue Deng + + Fix usage of `setq-default' and offer more suggestions + + cd61af0 changed from default-major-mode to major-mode in the first + code sample but didn't change the rest. This patch fixes this and add + some explanations of why use `setq-default' instead of `setq'. In + addition, it gives background on suggesting using text-mode as default + mode and suggest other alternatives. + + * doc/lispintro/emacs-lisp-intro.texi (Text and Auto-fill): Fix usage + of `setq-default' and offer more suggestions. (Bug#67848) + +2023-12-23 Yuan Fu + + Fix python-ts-mode triple quote syntax (bug#67262) + + * lisp/progmodes/python.el (python--treesit-syntax-propertize): New function. + (python-ts-mode): Activate python--treesit-syntax-propertize. + +2023-12-23 Yuan Fu + + Increment parser timestamp when narrowing changes (bug#67977) + + When narrowing changes, parse reparses, so the timestamp should + definitely increment, just like in ts_record_changes. + + Failing to increment this timestamp, outdated nodes would think they + are still up-to-date, and try to print their type name. Printing + their type name involves accessing the old parse tree, which is + already freed during the last reparse. + + I also found that we don't increment timestamp when changing parser + ranges and fixed that as well. + + * src/treesit.c (treesit_sync_visible_region): + (Ftreesit_parser_set_included_ranges): Increment timestamp. + * src/treesit.h (Lisp_TS_Parser): Add some comments. + +2023-12-23 Dmitry Gutov + + ruby-ts-mode: Fix indentation for string_array closer + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules): + Fix indentation for string_array closer. + +2023-12-23 Dmitry Gutov + + treesit-major-mode-setup: Use 'treesit--syntax-propertize-notifier' + + * lisp/treesit.el (treesit-major-mode-setup): Make sure + 'treesit--syntax-propertize-notifier' is used (bug#66732) + +2023-12-23 Dmitry Gutov + + ruby-ts-mode: Fix an out-of-bounds error with heredoc at eob + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--syntax-propertize): + Fix an out-of-bounds error with heredoc at eob. + +2023-12-23 Yuan Fu + + Correctly refontify changed region in tree-sitter modes (bug#66732) + + We already have treesit--font-lock-notifier that should mark changed + regions to be refontified, but it's called too late in the redsiplay & + fontification pipeline. Here we add treesit--pre-redisplay that + forces reparse and calls notifier functions in + pre-redisplay-functions, which is early enough for the marking to take + effect. + + Similarly, we force reparse in + syntax-propertize-extend-region-functions so syntax-ppss will have the + up-to-date syntax information when it scans the buffer text. We also + record the lowest start position of the affected regions, and make + sure next syntex-propertize starts from that position. + + * lisp/treesit.el (treesit--pre-redisplay-tick): + (treesit--syntax-propertize-start): New variable. + (treesit--syntax-propertize-notifier): + (treesit--pre-redisplay): + (treesit--pre-syntax-ppss): New functions. + (treesit-major-mode-setup): Add hooks. + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): Remove notifier. + (ruby-ts--parser-after-change): Remove notifier function. + +2023-12-23 Michael Albinus + + * doc/man/emacsclient.1: Fix --tramp option. + +2023-12-23 Peter Oliver (tiny change) + + * doc/man/emacsclient.1: Add missing sections (bug#66598) + +2023-12-23 Xiyue Deng + + Add explanation for extra parentheses in ELisp Introduction + + * doc/lispintro/emacs-lisp-intro.texi (fwd-para while): Add + a note to explain the extra parentheses. (Bug#67820) + +2023-12-23 Xiyue Deng + + Add sample code to the "let*" section in "forward-paragraph" + + * doc/lispintro/emacs-lisp-intro.texi (fwd-para let): Add code + sample. (Bug#67817) + +2023-12-23 Denis Zubarev + + Fix treesit test (bug#67117) + + * test/src/treesit-tests.el (treesit-search-subtree-forward-1): + (treesit-search-subtree-backward-1): Replace treesit--thing-at with + treesit-query-capture (treesit--thing-at isn't available in Emacs 29). + +2023-12-23 Yuan Fu + + Fix c++-ts-mode indentation (bug#67975) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Make indent + rule match precise so it doesn't match declaration_list. + +2023-12-22 Stefan Kangas + + Recommend customizing eglot for python-base-mode + + * doc/misc/eglot.texi (Project-specific configuration): Recommend + setting directory local variables for 'python-base-mode' instead of + 'python-mode'. This makes any customizations effective also for + 'python-ts-mode'. + +2023-12-22 Eli Zaretskii + + Improve documentation of new native-compilation commands + + * lisp/progmodes/elisp-mode.el (emacs-lisp-mode-menu) + (emacs-lisp-native-compile, emacs-lisp-native-compile-and-load): + Doc fixes. + + * doc/lispref/compile.texi (Native-Compilation Functions): + Document 'emacs-lisp-native-compile' and + 'emacs-lisp-native-compile-and-load'. + +2023-12-21 Stefan Monnier + + doc/lispintro: Don't mention `set` (bug#67734) + + * doc/lispintro/emacs-lisp-intro.texi (Using set): Delete. + (Using setq): Adjust accordingly. + (setq): Rename from "set & setq" and don't refer to `set` any more. + (Review): Don't mention `set` any more. + +2023-12-20 Eli Zaretskii + + Fix script for some characters + + * lisp/international/characters.el (char-script-table): Fix script + for 2 characters. + + * admin/unidata/blocks.awk: Fix script for Yijing Hexagram + Symbols. (Bug#67924) + +2023-12-18 Denis Zubarev + + Fix an issue when searching subtree backward (bug#67117) + + * src/treesit.c (treesit_traverse_child_helper): + Do not call treesit_traverse_sibling_helper when the named node is + required and the last child is the named node. + Otherwise treesit_traverse_sibling_helper will move cursor to the + previous sibling and last node will be skipped. + * test/src/treesit-tests.el (treesit-search-subtree-forward-1): + (treesit-search-subtree-backward-1): + Add tests. + +2023-12-18 Christophe Deleuze (tiny change) + + Fix passive mode for tnftp client in ange-ftp.el. + + * lisp/net/ange-ftp.el (ange-ftp-passive-mode): Fix passive mode + result string for tnftp client. (Bug#67865) + +2023-12-16 Stefan Kangas + + Fix using disabled command without a docstring + + * lisp/novice.el (disabled-command-function): Fix error when the + disable command has no docstring. (Bug#67835) + +2023-12-16 Eli Zaretskii + + Improve documentation of text properties handling when yanking + + * doc/lispref/text.texi (Text Properties): Mention special + handling of text properties while yanking. + +2023-12-16 skykanin <3789764+skykanin@users.noreply.github.com> (tiny change) + + Eglot: Add Uiua language server + + * lisp/progmodes/eglot.el (eglot-server-programs): Add Uiua language + server. (Bug#67850) + +2023-12-16 Eli Zaretskii + + Fix shaping of Sinhala text + + * lisp/language/sinhala.el (composition-function-table): Allow + U+200D U+0DCA as well as U+0DCA U+200D between consonants. + Suggested by Richard Wordingham . + (Bug#67828) + +2023-12-16 Jeremy Bryant + Eli Zaretskii + + Add use cases of (fn) documentation facility. + + * doc/lispref/functions.texi (Function Documentation): Add examples. + (Bug#67499) + +2023-12-16 Eli Zaretskii + + Fix pasting into terminal-mode on term.el + + * lisp/term.el (term--xterm-paste): Read pasted text from the + input event. Suggested by Jared Finder . + (Bug#49253) + +2023-12-16 Eli Zaretskii + + Fix opening directory trees from Filesets menu + + In bug#976, the code was fixed, but the cautious condition in + the original author's code, which catered to invoking + 'filelists-open' from the menu-bar menu, was omitted, which made + that invocation, which did work before, broken. + * lisp/filesets.el (filesets-get-filelist): Fix opening directory + trees from the Filesets menu-bar menu. (Bug#67658) + +2023-12-16 Niall Dooley (tiny change) + + Eglot: Add ruff-lsp as an alternative Python server + + ruff-lsp [1] is an LSP server for Ruff [2], [3], a fast Python linter + and code formatter. + + It supports surfacing Ruff diagnostics and providing Code Actions to + fix them, but is intended to be used alongside another Python LSP in + order to support features like navigation and autocompletion. + + [1]: https://github.com/astral-sh/ruff-lsp + [2]: https://github.com/astral-sh/ruff + [3]: https://docs.astral.sh/ruff/ + + * lisp/progmodes/eglot.el (eglot-server-programs): Add ruff-lsp. + +2023-12-14 Adam Porter + + Fix symbol name in Multisession Variables examples + + * doc/lispref/variables.texi (Multisession Variables): Fix symbol + name. (Bug#67823) + +2023-12-12 Dmitry Gutov + + js-ts-mode: Fix font-lock rules conflict + + * lisp/progmodes/js.el (js--treesit-font-lock-settings): Move + 'property' to after 'jsx'. Stop using predicate (bug#67684). + (js--treesit-property-not-function-p): Delete. + +2023-12-11 Noah Peart + + Add indentation rules for bracketless statements in js-ts-mode + + * lisp/progmodes/js.el (js--treesit-indent-rules): Add indentation + rules to handle bracketless statements (bug#67758). + * test/lisp/progmodes/js-tests.el (js-ts-mode-test-indentation): + New test for js-ts-mode indentation. + * test/lisp/progmodes/js-resources/js-ts-indents.erts: New file + with indentation tests for js-ts-mode. + +2023-12-10 Yuan Fu + + Fix c-ts-mode bracketless indentation for BSD style (bug#66152) + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--indent-styles): Make sure the BSD rules only apply to + opening bracket (compound_statement), then bracketless statements will + fallback to common rules. + * test/lisp/progmodes/c-ts-mode-resources/indent-bsd.erts: Copy the + bracketless test from indent.erts to here. + +2023-12-10 Augustin Chéneau + + Add missing indent rules in c-ts-mode (bug#66152) + + Example: + + static myttype * + variable_name; + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Add rules. + +2023-12-10 Yuan Fu + + Fix treesit-default-defun-skipper (bug#66711) + + * lisp/treesit.el: + (treesit-default-defun-skipper): Add bol to the rx pattern. + +2023-12-10 Yuan Fu + + Fix treesit-node-field-name and friends (bug#66674) + + So turns out ts_node_field_name_for_child takes a named node index, + but we were passing it normal index that counts both named and + anonymous nodes. That's what makes the field name all wrong in + treesit explorer. + + * doc/lispref/parsing.texi: + (Accessing Node Information): Update docstring. + * lisp/treesit.el (treesit-node-index): Add some unrelated comment. + (treesit-node-field-name): Get named node index rather than all node + index. + * src/treesit.c (Ftreesit_node_field_name_for_child): Update + docstring, use ts_node_named_child_count. + +2023-12-10 Maciej Kalandyk + + python-ts-mode: Highlight default parameters + + * lisp/progmodes/python.el (python--treesit-settings): + Highlight default parameters (bug#67703). + +2023-12-10 Kyle Meyer + + Update to Org 9.6.13 + +2023-12-10 Yuan Fu + + Fix c-ts-mode indent heuristic (bug#67417) + + This is a continuation of the first two patches for bug#67417. The + c-ts-mode--prev-line-match heuristic we added is too broad, so for now + we are just adding a very specific heuristic for the else case. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--prev-line-match): Remove function. + (c-ts-mode--else-heuristic): New function. + (c-ts-mode--indent-styles): Use c-ts-mode--else-heuristic. + +2023-12-10 nverno + + Fix c-ts-mode indentation (bug#67357) + + 1. In a compund_statement, we indent the first sibling against the + parent, and the rest siblings against their previous sibling. But + this strategy falls apart when the first sibling is not on its own + line. We should regard the first sibling that is on its own line as + the "first sibling"", and indent it against the parent. + + 2. In linux style, in a do-while statement, if the do-body is + bracket-less, the "while" keyword is indented to the same level as the + do-body. It should be indented to align with the "do" keyword + instead. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--no-prev-standalone-sibling): New function. + (c-ts-mode--indent-styles): Use + c-ts-mode--no-prev-standalone-sibling. Add while keyword indent rule. + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: New tests. + +2023-12-09 nverno + + Add font-locking for hash-bang lines in typescript-ts-mode. + + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--font-lock-settings): + Add font-lock for hash bang line. + +2023-12-09 nverno + + Add font-locking for hash-bang lines in js-ts-mode + + * lisp/progmodes/js.el (js--treesit-font-lock-settings): + Add font-lock for hash bang line. + +2023-12-09 Dmitry Gutov + + ruby-mode: Better detect regexp vs division (bug#67569) + + * lisp/progmodes/ruby-mode.el (ruby-syntax-before-regexp-re): + Add grouping around methods from the whitelist. + (ruby-syntax-propertize): Also look for spaces around the slash. + +2023-12-09 Jared Finder + + Fix dragging mode line on text terminals with a mouse (bug#67457) + + * lisp/xt-mouse.el (xterm-mouse-translate-1): Fix the 'event-kind' + property of mouse-movement symbols emitted by xt-mouse. + * lisp/term/linux.el (terminal-init-linux): Call 'gpm-mouse-mode' + to set up the terminal for the mouse, if needed. + +2023-12-08 Christophe TROESTLER + + (rust-ts-mode): Set electric-indent-chars + + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode): + Set electric-indent-chars (bug#67701). + +2023-12-07 Dmitry Gutov + + js-ts-mode: Highlight function parameters inside destructuring + + * lisp/progmodes/js.el (js--treesit-font-lock-settings): + Highlight function parameters declared using destructuring syntax. + +2023-12-07 Dmitry Gutov + + js-ts-mode: Highlight property shorthands in assignments + + * lisp/progmodes/js.el (js--treesit-lhs-identifier-query): Match + property shorthands (which turn into variable reference). + (js--treesit-fontify-assignment-lhs): Use the matches. + +2023-12-07 Dmitry Gutov + + (js--treesit-font-lock-settings): Highlight parameters in function expression + + * lisp/progmodes/js.el (js--treesit-font-lock-settings): + Highlight parameters in a function expression (the node type + 'function'). Make the matcher for 'formal_parameters' independent + of the parent, that just created duplication. + +2023-12-07 Dmitry Gutov + + (js--treesit-font-lock-settings): Remove some duplicates + + * lisp/progmodes/js.el (js--treesit-font-lock-settings): + Remove queries from 'function' that duplicate entries in + 'definition' (one of them with a typo). + +2023-12-04 Philipp Stephani + + Don't claim to signal an error when deleting a nonexisting file. + + The behavior has changed in commit + 1a65afb7ecc2a52127d6164bad19313440237f9d to no longer signal an error + on ENOENT. + + * doc/lispref/files.texi (Changing Files): Fix documentation about + error reporting. + +2023-12-04 Eli Zaretskii + + * lisp/indent.el (indent-rigidly): Improve prompt (bug#67620). + +2023-12-03 Christophe Troestler + + rust-ts-mode--comment-docstring: Handle block doc comments + + * lisp/progmodes/rust-ts-mode.el + (rust-ts-mode--comment-docstring): Handle block doc comments. + Inhibit match-data modification. + +2023-12-02 Christophe TROESTLER + + rust-ts-mode--comment-docstring: Fix/improve the previous change + + * lisp/progmodes/rust-ts-mode.el + (rust-ts-mode--comment-docstring): Match also "inner" line docs. + Stop rebinding 'end' and use the argument's value in the + 'treesit-fontify-with-override' call. + +2023-12-02 Eli Zaretskii + + Fix 'Info-goto-node-web' when NODE is given in various forms + + * lisp/info.el (Info-goto-node-web): Support all forms of node + input, per 'Info-read-node-name's documentation, and extract + FILENAME from NODE if given there. Default NODE to "Top" if not + provided by the user. (Bug#67531) + (Info-url-for-node): Support browsing the "Top" node. + +2023-12-02 Eli Zaretskii + + Fix setting cursor when the window's op line has 'line-prefix' + + * src/xdisp.c (set_cursor_from_row): Skip glyphs that come from a + string if their 'avoid_cursor_p' flag is set. (Bug#67486) + +2023-12-02 Xiyue Deng (tiny change) + + Drop extra parenthesis in example code in Emacs Lisp Introduction + + * doc/lispintro/emacs-lisp-intro.texi (Small buffer case): Drop + trailing unmatched parenthesis. (Bug#67576) + +2023-12-01 Christophe Troestler + + rust-ts-mode: appropriately fontify doc strings + + * lisp/progmodes/rust-ts-mode.el + (rust-ts-mode--comment-docstring): New function. + (rust-ts-mode--font-lock-settings): Use it + (https://lists.gnu.org/archive/html/emacs-devel/2023-12/msg00019.html). + +2023-12-01 Xiyue Deng (tiny change) + + Fix example code in Emacs Lisp Introduction manual + + * doc/lispintro/emacs-lisp-intro.texi (Optional Arguments): Fix + indentation in an example. (Bug#67559) + +2023-12-01 Eli Zaretskii + + Fix example in Emacs Lisp Intro manual + + * doc/lispintro/emacs-lisp-intro.texi (beginning-of-buffer opt + arg): Fix indentation in example. Reported by Xiyue Deng + . (Bug#67560) + +2023-12-01 Jeremy Bryant + + Elisp manual: Mention 'write-region' for saving the buffer + + * doc/emacs/files.texi (Save Commands): Mention + 'write-region'. (Bug#67313) + +2023-11-30 Michael Albinus + + Document, that PROCESS of signal-process can be a string + + * doc/lispref/processes.texi (Signals to Processes) [signal-process]: + * src/process.c (Fsignal_process): Document, that PROCESS can be a + string. + +2023-11-29 nverno + + Fix typescript-ts-mode indentation for switch statements + + * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode): Add + indentation rule for switch case and default keywords. (Bug#67488) + +2023-11-29 Aymeric Agon-Rambosson (tiny change) + + Repair `tab-first-completion` (bug#67158) + + + * lisp/indent.el (indent-for-tab-command): Use `syntax-class` to fix + longstanding thinko introduced back in 2020 in commit 64c851166442. + Rework the check for `syn` because TAB always completed when + `tab-first-completion` had value `word-or-paren` or `word-or-paren-or-punct`. + + (cherry picked from commit c20226a1ef5fbdfd3e71e2ef8654ee19994c0f2f) + +2023-11-29 Eli Zaretskii + + Fix behavior of 'split-root-window-*' with 'C-u' + + * lisp/window.el (split-root-window-below) + (split-root-window-right): Fix the 'interactive' form to work with + raw 'C-u' as well. (Bug#67459) + (split-window-below, split-window-right, split-root-window-below) + (split-root-window-right): Doc fix. + +2023-11-29 Xiyue Deng (tiny change) + + Add more text to clarify the behavior of 'with-current-buffer' + + * doc/lispintro/emacs-lisp-intro.texi (copy-to-buffer): Expand + description of 'with-current-buffer'. (Bug#67521) + +2023-11-27 Eli Zaretskii + + Fix example in Emacs user manual + + * doc/emacs/custom.texi (Init Rebinding): Fix syntax of example. + Reported by silarakta . (Bug#67474) + +2023-11-27 Michael Albinus + + Mention Titankey in Tramp, which has passed the tests + + * doc/misc/tramp.texi (Frequently Asked Questions): + * lisp/net/tramp.el (tramp-security-key-confirm-regexp): + Mention also Titankey. + +2023-11-26 Yuan Fu + + Fix c-ts-mode indentation after if/else (bug#67417) + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--prev-line-match): New function. + (c-ts-mode--indent-styles): Add a rule for the empty line after + if/else/for/etc. + +2023-11-26 Yuan Fu + + Fix indentation for else clause in c-ts-mode (bug#67417) + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--indent-styles): Add indentation for children of + else_clause. + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: + (Name): Add test for else-break. Also make the test such that it + needs to indent correctly from scratch (rather than maintaining the + already correct indentation.) + +2023-11-26 Joseph Turner + + Ensure that directory is expanded in package-vc-checkout + + * lisp/emacs-lisp/package-vc.el (package-vc-checkout): Expand + DIRECTORY. (Bug#66115) + +2023-11-25 Ulrich Müller + + * etc/PROBLEMS: Add entry about pinentry with gpgsm. (Bug#67012) + +2023-11-24 nverno + + typescript-ts-mode: Add missing 'operator' to treesit-font-lock-features + + * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode): + Add operator to treesit-font-lock-feature-list (bug#67433). + +2023-11-24 Michael Albinus + + Extend D-Bus doc and test + + * doc/misc/dbus.texi (Register Objects): Adapt doc of + dbus-unregister-service. + + * test/lisp/net/dbus-tests.el (dbus--test-register-service): + Extend test. + +2023-11-24 Michael Albinus + + Do not unregister a D-Bus service which is a unique name + + * lisp/net/dbus.el (dbus-unregister-service): Check, whether + SERVICE is a known name. (Bug#67386) + +2023-11-24 Eli Zaretskii + + Fix byte-compilation warnings about 'sqlite-rollback' + + * lisp/sqlite.el (sqlite-transaction, sqlite-commit) + (sqlite-rollback): Declare. + * lisp/emacs-lisp/multisession.el (sqlite-commit) + (sqlite-transaction): Remove declaration. + +2023-11-23 Dmitry Gutov + + Make python-ts-mode's syntax-highlighting more standardized + + This was brought up in a Reddit discussion. + + * lisp/progmodes/python.el (python--treesit-fontify-variable): + Use font-lock-variable-use-face (since it applies to references). + (python-ts-mode): Move 'property' from 3rd to 4th + treesit-font-lock-level. + +2023-11-23 George Kuzler (tiny change) + + Fix "Text is read-only" on backspacing initial Calc input + + Immediately after `calc-mode' opens the minibuffer for input + (because you typed a digit, "e", etc), pressing backspace + should clear the minibuffer and return you to the *Calculator* + buffer. Instead, it leaves the minibuffer as-is and prints the + message "Text is read-only"; this is because the function used, + `erase-buffer', tries to erase the read-only minibuffer prompt. + Using `delete-minibuffer-contents' fixes this, since it doesn't + attempt to delete the prompt. + * lisp/calc/calc.el (calcDigit-backspace): Use + `delete-minibuffer-contents' instead of `erase-buffer'. (Bug#67395) + +2023-11-23 Jeremy Bryant + + Add a doc string to simple.el (bug#67355) + + * lisp/simple.el (kill-buffer--possibly-save): Add doc string. + +2023-11-23 Eli Zaretskii + + Mention "visual line" in user manual + + * doc/emacs/display.texi (Visual Line Mode): + * doc/emacs/basic.texi (Continuation Lines, Moving Point): Mention + "visual line". (Bug#67382) + +2023-11-23 Eli Zaretskii + + Allow listing Emoji from a read-only buffer + + * lisp/international/emoji.el (emoji-list): Don't barf here if the + original buffer is read-inly... + (emoji-list-select): ...barf here instead. (Bug#67400) + (emoji-list): Doc fix. + +2023-11-22 Michael Albinus + + Fix CRLF handling in Tramp (don't merge) + + * lisp/net/tramp-sh.el (tramp-send-command-and-read): Use 'space' + instead of 'blank' in rx expression, in order to handle also CR + and alike. Reported by Dominique Quatravaux + . + +2023-11-21 Dmitry Gutov + + Annotate java-ts-mode-test-movement with expected result + + Do not merge to master. + +2023-11-21 Theodor Thornhill + + Backport: Add more java indentation tests + + * test/lisp/progmodes/java-ts-mode-resources/indent.erts: Use default + indent offset, and tweak the indentation examples. + + (cherry picked from commit dbe7803aa1e8249bd70f67f25f19aedabeb9cc22) + +2023-11-21 Theodor Thornhill + + Backport: Add test for java indentation (bug#61115) + + * test/lisp/progmodes/java-ts-mode-resources/indent.erts: Add new test + case. + + (cherry picked from commit 229d0772e235f51812ed8020a31f9a8de366c7ba) + +2023-11-21 Noah Peart + + typescript-ts-mode: Support indentation for conditionals without braces + + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--indent-rules): Support indentation for + conditionals without braces (bug#67031). + + * test/lisp/progmodes/typescript-ts-mode-resources/indent.erts + (Statement indentation without braces): New test. + +2023-11-21 Theodor Thornhill + + Backport: Add some basic tests for java-ts-mode and typescript-ts-mode + + * test/lisp/progmodes/java-ts-mode-resources/indent.erts: New file + with tests for indentation. + * test/lisp/progmodes/java-ts-mode-resources/movement.erts: New file + with tests for movement. + * test/lisp/progmodes/java-ts-mode-tests.el: New tests. + * test/lisp/progmodes/typescript-ts-mode-resources/indent.erts: New + file with tests for indentation. + * test/lisp/progmodes/typescript-ts-mode-tests.el: New tests. + + (cherry picked from commit c8dd37b16c574beda900d4ee48ac7b4ab4a2ee56) + +2023-11-21 Eli Zaretskii + + Fix 'with-sqlite-transaction' when BODY fails + + * lisp/sqlite.el (with-sqlite-transaction): Don't commit changes + if BODY errors out. Roll back the transaction if committing + fails. (Bug#67142) + + * etc/NEWS: + * doc/lispref/text.texi (Database): Document the error handling in + 'with-sqlite-transaction'. + +2023-11-19 Richard Stallman + + Fix wording in ELisp Intro manual + + * doc/lispintro/emacs-lisp-intro.texi (Lisp macro): Improve + wording in description of 'unless'. (Bug#67185) + +2023-11-18 Yuan Fu + + Add missing python-ts-mode keyword (bug#67015) + + * lisp/progmodes/python.el (python--treesit-keywords): Add "not in". + +2023-11-18 Dmitry Gutov + + Fix string-pixel-width with global setting of display-line-numbers + + * lisp/emacs-lisp/subr-x.el (string-pixel-width): + Instead of checking for display-line-numbers-mode, set the + display-line-numbers variable to nil (bug#67248). + +2023-11-18 Eli Zaretskii + + Document changes in 'edmacro-parse-keys' + + * lisp/edmacro.el (edmacro-parse-keys): Add a comment for forcing + output to be a vector. + (read-kbd-macro): Adjust the doc string to changes in + 'edmacro-parse-keys'. (Bug#67182) + +2023-11-18 Eli Zaretskii + + Add 2 SQLite extensions to allow-list. + + * src/sqlite.c (Fsqlite_load_extension): Add 2 Free Software + extensions to the allow-list. For the details, see + https://lists.gnu.org/archive/html/emacs-devel/2023-11/msg00234.html. + +2023-11-17 Michael Albinus + + * test/lisp/net/tramp-tests.el (tramp--test-timeout-handler): Be more verbose. + +2023-11-17 Michael Albinus + + Make Tramp aware of completion-regexp-list (don't merge) + + * lisp/net/tramp.el (tramp-skeleton-file-name-all-completions): + New defmacro. + (tramp-completion-handle-file-name-all-completions): + * lisp/net/tramp-adb.el (tramp-adb-handle-file-name-all-completions): + * lisp/net/tramp-crypt.el (tramp-crypt-handle-file-name-all-completions): + * lisp/net/tramp-fuse.el (tramp-fuse-handle-file-name-all-completions): + * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-name-all-completions): + * lisp/net/tramp-sh.el (tramp-sh-handle-file-name-all-completions): + * lisp/net/tramp-smb.el (tramp-smb-handle-file-name-all-completions): + * lisp/net/tramp-sudoedit.el + (tramp-sudoedit-handle-file-name-all-completions): Use it. + +2023-11-17 Jeremy Bryant + + Add 5 docstrings to abbrev.el (bug#67153) + + * lisp/abbrev.el (prepare-abbrev-list-buffer, add-abbrev) + (inverse-add-abbrev, abbrev--describe) + (abbrev--possibly-save): Add doc strings. + +2023-11-15 Morgan Smith + + Fix CBZ file detection in doc-view-mode + + * lisp/doc-view.el (doc-view-set-doc-type): Fix CBZ file + detection. (Bug#67133) + + This fix is almost identical to the previous fix for ODF file + detection in bug#54947 which resulted in commit + b3ff4905388834994ff26d9d033d6bc62b094c1c + +2023-11-15 João Távora + + * lisp/progmodes/eglot.el (eglot-server-programs): Fix previous commit. + + (cherry picked from commit 58d9e735e721ecf0187a5e15eefc7641112ace0b) + +2023-11-14 João Távora + + Eglot: Send standard :language-id for typescript-language-server + + bug#67150 + + * lisp/progmodes/eglot.el (eglot-server-programs): Update + language-id for languages handled by typescript-language-server. + + (cherry picked from commit 1fe949888057b0275da041288709bd5690501974) + +2023-11-14 Zajcev Evgeny + + Typofix in the doc/lispref/modes.texi + +2023-11-14 Eli Zaretskii + + Fix spell-checking email message with citations + + This became broken 7 years ago, when the 'boundp condition was + removed, and with it an important unrelated part of the code. + * lisp/textmodes/ispell.el (ispell-message): Fix cite-regexp. + +2023-11-12 Xiaoyue Chen (tiny change) + + Pass only the local parts of Eshell's $PATH to 'tramp-remote-path' + + * lisp/eshell/esh-proc.el (eshell-gather-process-output): Get the + local part of the $PATH (bug#67126). + + Do not merge to master. + +2023-11-12 Jeremy Bryant + + Add two doc strings to cl-extra.el + + * lisp/emacs-lisp/cl-extra.el (cl--random-time) + (cl-find-class): Add docstrings. (Bug#66949) + +2023-11-11 Eli Zaretskii + + Improve documentation of read syntax and printed representation + + * doc/lispref/objects.texi (Syntax for Strings): Describe in more + detail how to specify special characters in string literals. + (Printed Representation, Character Type, Nonprinting Characters): + Improve information and add cross-references about printed + representation and read syntax. (Bug#67033) + +2023-11-09 Eli Zaretskii + + Improve documentation of signaling errors in batch mode + + * doc/lispref/control.texi (Signaling Errors) + (Processing of Errors): + * doc/lispref/os.texi (Batch Mode): + * doc/lispref/debugging.texi (Invoking the Debugger): + * lisp/emacs-lisp/debug.el (debug): + * src/eval.c (Fsignal): + * lisp/subr.el (error): Document more prominently that signaling + an unhandled error in batch mode kills Emacs. Better + documentation of backtrace in batch mode. + +2023-11-09 Yuan Fu + + Fix treesit-simple-indent-presets docstring (bug#67007) + + * lisp/treesit.el (treesit-simple-indent-presets): Fix docstring. + * doc/lispref/modes.texi (Parser-based Indentation): Fix example. + +2023-11-08 Stephen Berman + + Prevent an infinite loop in todo-mode (bug#66994) + + * lisp/calendar/todo-mode.el (todo-item-start): Moving an item to + a todo file (with `C-u m') that had not yet been read into a + buffer puts point at the beginning of the file, from where it is + impossible to reach todo-item-start by this function, so don't try + in that case. + +2023-11-08 Randy Taylor + + Fix cmake-ts-mode indentation (Bug#66845) + + * lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode--indent-rules): + Support versions v0.3.0 and v0.4.0 of the grammar. + (cmake-ts-mode--font-lock-compatibility-fe9b5e0): Fix docstring. + +2023-11-05 Kyle Meyer + + Update to Org 9.6.11 + +2023-11-04 Mattias Engdegård + + Suggest alternative reason for ERT test duplication error + + * lisp/emacs-lisp/ert.el (ert-set-test): Amend error message; + maybe the redefinition was caused by a file loaded twice. + (Bug#66782) + + Suggested by Xiyue Deng. + + (cherry picked from commit 425d23fbeaede81ab4f50b4073949cc1c8a3fbd0) + +2023-11-04 Eli Zaretskii + + Fix description of 'Package-Requires' library header + + * doc/lispref/tips.texi (Library Headers): Update the description + of the 'Package-Requires' header. (Bug#66677) + +2023-10-30 Stefan Monnier + + * lisp/emacs-lisp/cl-lib.el (cl--defalias): Improve&fix docstring + +2023-10-30 Jeremy Bryant + + Add two docstrings in cl-lib.el + + * lisp/emacs-lisp/cl-lib.el (cl--set-buffer-substring) + (cl--defalias): Add docstrings. (Bug#66828) + +2023-10-27 Michael Albinus + + Fix Tramp (don't merge) + + * lisp/net/tramp.el (tramp-read-id-output): Identifiers can contain "-". + +2023-10-26 Michael Albinus + + * doc/misc/tramp.texi (Traces and Profiles): Fix indentation. (don't merge) + +2023-10-25 Michael Albinus + + * doc/misc/tramp.texi (Traces and Profiles): Fix indentation. (Don't merge) + +2023-10-25 Eli Zaretskii + + Fix guessing commands for zstandard archives in Dired + + * lisp/dired-aux.el (dired-guess-shell-alist-default): Fix + zstdandard commands. (Bug#66532) + +2023-10-25 Matthew Woodcraft (tiny change) + + Fix eglot.texi (JSONRPC objects in Elisp) example + + * doc/misc/eglot.texi (JSONRPC objects in Elisp): Correct the + example. (Bug#66569) + +2023-10-25 Michael Albinus + + * doc/man/emacsclient.1: Fix --tramp option. + +2023-10-24 Stefan Kangas + + Improve `nsm-protocol-check--3des-cipher` docstring + + * lisp/net/nsm.el (nsm-protocol-check--3des-cipher): Update + docstring to reflect current NIST policy. + +2023-10-24 Lassi Kortela + + Recognize backslash in `dns-mode` quoted values + + * lisp/textmodes/dns-mode.el (dns-mode-syntax-table): Recognize + backslash as an escape character. (Bug#66660) + + (cherry picked from commit e6f05e189db73a0f0b29f987381ffef61a409232) + +2023-10-24 Stefan Kangas + + Make `dns-mode` fontify quoted values correctly + + * lisp/textmodes/dns-mode.el (dns-mode-syntax-table): Fontify + quoted values correctly. (Bug#62214) + Suggested by Trent W. Buck . + + (cherry picked from commit c586d984f279aa61de4f5dfc4f6df660188dd0f6) + +2023-10-23 Stefan Kangas + + Change news.gmane.org to news.gmane.io + + * admin/notes/emba: + * doc/misc/gnus.texi (Group Parameters) + (Non-ASCII Group Names, Filling In Threads) + (Selection Groups, Spam Package Configuration Examples) + (Terminology): + * lisp/gnus/gnus-group.el (gnus-useful-groups): + * lisp/gnus/gnus-sum.el (gnus-fetch-old-headers): + * lisp/gnus/spam-report.el (spam-report-gmane-use-article-number) + (spam-report-gmane-internal): + * test/lisp/gnus/gnus-group-tests.el (gnus-short-group-name): + Change news.gmane.org to news.gmane.io. + Ref: https://news.gmane.io/ + +2023-10-23 Mauro Aranda + + Fix minor defcustom issues in Gnus (Bug#66715) + + * lisp/gnus/gnus-art.el (gnus-button-prefer-mid-or-mail): Allow + function and add :tag to const values. + * lisp/gnus/gnus-bookmark.el (gnus-bookmark-bookmark-inline-details): + Fix docstring. + * lisp/gnus/gnus-sum.el (gnus-simplify-subject-fuzzy-regexp): Allow a + single regexp as value. + * lisp/gnus/message.el (message-indent-citation-function): Allow a + single function as value. + (message-mail-alias-type): Allow for a list of options as value. + (message-dont-reply-to-names): Allow a function as value. + * lisp/gnus/spam-report.el (spam-report-url-ping-function): Fix + default value for the function widget. + +2023-10-23 Michael Albinus + + Minor connection-local variables fixes + + * doc/emacs/custom.texi (Connection Variables): Warn about + specifying the same variable twice. + + * lisp/files-x.el (connection-local-get-profiles): Normalize criteria. + +2023-10-23 Stefan Kangas + + Make Dired honor `insert-directory-program´ with globs + + Starting with commit 6f6639d6ed6c6314b2643f6c22498fc2e23d34c7 + (Bug#27631), Dired stopped respecting the value of + 'insert-directory-program' when using directory wildcards/globs. + + * lisp/dired.el (dired-insert-directory): Honor the value of + 'insert-directory-program' when using directory wildcards. + +2023-10-22 Morgan J. Smith + + Fix typo in url-privacy-level :type + + * lisp/url/url-vars.el (url-privacy-level): Fix typo in + :type. (Bug#66613) + +2023-10-22 Juri Linkov + + * lisp/vc/log-view.el (log-view-mode-menu): Quote derived modes (bug#66686). + +2023-10-22 Petteri Hintsanen + + * lisp/tab-bar.el: Fix the close button with auto-width (bug#66678). + + (tab-bar-auto-width): Take into account the length of tab-bar-close-button + more than one character: " x". + Don't merge to master. + +2023-10-22 Mauro Aranda + + Fix State button for customize-icon (Bug#66635) + + * lisp/cus-edit.el (custom-icon-action): New function. + (custom-icon): Use it as the :action. Otherwise, clicking the State + button is a noop. Remove irrelevant stuff from the docstring and + comment out some copy-pasta. + (custom-icon-extended-menu): New variable, the menu to show upon + :action. + (custom-icon-set): Really redraw the widget with the new settings. + Comment out strange call to custom-variable-backup-value. + (custom-icon-save): New function. + + * lisp/emacs-lisp/icons.el (icons--merge-spec): Fix call to plist-get + and avoid infloop. + +2023-10-22 Yuan Fu + + Fix the use of adaptive-fill-regexp in treesit indent preset + + * lisp/treesit.el (treesit-simple-indent-presets): + adaptive-fill-regexp don't have a capture group (the group in the + default value is supposed to be a non-capture group), so don't use the + group. Also, in the second diff hunk, replace looking-at with + looking-at-p so it doesn't override match data that we use later. + +2023-10-21 nverno + + Fix treesit-install-language-grammar (bug#66673) + + * lisp/treesit.el (treesit-install-language-grammar): Take out the + language symbol when storing the recipe. + +2023-10-21 Yuan Fu + + Fix treesit-explore-mode (bug#66431) + + * lisp/treesit.el (treesit-explore-mode): Reset + treesit--explorer-last-node before calling treesit--explorer-refresh, + so that in the rare case described in the bug report, the explorer + buffer don't show the outdated node. + +2023-10-21 Dmitry Gutov + + tsx-ts-mode--font-lock-compatibility-bb1f97b: Re-fix the previous fix + + * lisp/progmodes/typescript-ts-mode.el + (tsx-ts-mode--font-lock-compatibility-bb1f97b): Make sure the + tested query is actually valid in the new grammar (bug#66646). + +2023-10-19 Michael Albinus + + Update Tramp version (don't merge with master) + + * doc/misc/trampver.texi: + * lisp/net/trampver.el: Change version to "2.6.2.29.2". + (customize-package-emacs-version-alist): + Adapt Tramp version integrated in Emacs 29.2. + +2023-10-19 Eli Zaretskii + + Bump Emacs version + + * README: + * configure.ac: + * msdos/sed2v2.inp: + * nt/README.W32: Bump Emacs version to 29.1.90. + +2023-10-16 Po Lu + + Correctly register focus events concomitant with alpha changes + + * src/xterm.c (x_frame_highlight, x_frame_unhighlight): Skip + changing the frame alpha when the frame is not eligible for + focus state-specific alpha values; otherwise, the alpha might be + reset by the time a alpha change wrought by a focus change + arrives, impeding handle_one_xevent from subsequently restoring + the initial value. (bug#66398) + +2023-10-16 Michael Albinus + + * doc/man/emacsclient.1: Add missing options. + +2023-10-15 Michael Albinus + + Fix test in files-tests + + * test/lisp/files-tests.el + (files-tests-file-name-non-special-expand-file-name-tilde): Fix test. + +2023-10-14 Stefan Kangas + + Add missing :version to two defcustoms + + * lisp/emacs-lisp/eldoc.el (eldoc-print-after-edit) + (eldoc-echo-area-prefer-doc-buffer): Add missing custom :version. + +2023-10-14 Mauro Aranda + + Fix a defcustom :type in eldoc.el + + * lisp/emacs-lisp/eldoc.el (eldoc-echo-area-prefer-doc-buffer): Make + :type a choice, to allow for the value 'maybe'. (Bug##66539) + +2023-10-14 Eshel Yaron + + Document 'M-x align' in the Emacs manual + + * doc/emacs/indent.texi (Alignment): New section. + * doc/emacs/emacs.texi: Update menu. (Bug#66303) + +2023-10-14 Bob Rogers + + Document that time-to-days and days-to-time use different epochs + + * doc/lispref/os.texi (Time Calculations): + * lisp/calendar/time-date.el (days-to-time, time-to-days): Doc fixes. + (Bug#66502) + +2023-10-14 Michael Albinus + + * lisp/files.el (file-name-non-special): Handle quoted tilde. + + (Bug#65685) + + * test/lisp/files-tests.el + (files-tests-file-name-non-special-expand-file-name-tilde): + New test. + +2023-10-13 Michael Albinus + + Handle quoted tilde in Tramp + + * lisp/net/tramp.el (tramp-handle-expand-file-name): + * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name): + * lisp/net/tramp-sh.el (tramp-sh-handle-expand-file-name): + * lisp/net/tramp-smb.el (tramp-smb-handle-expand-file-name): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-expand-file-name): + Handle quoted tilde. (Bug#65685) + + * test/lisp/net/tramp-tests.el (tramp-test05-expand-file-name-tilde): + New test. + +2023-10-09 Kyle Meyer + + Update to Org 9.6.10 + +2023-10-09 Yuan Fu + + Don't call font-lock-mode in treesit-major-mode-setup (bug#66223) + + * lisp/treesit.el (treesit-major-mode-setup): Remove. + + (cherry picked from commit a3a840c80a217db7d4d125c667ff7d4946507fbb) + +2023-10-09 Noah Peart + + Fix treesit-query-validate for string input (bug#66400) + + * lisp/treesit.el (treesit-query-validate): Don't expand if QUERY is + string. + +2023-10-07 Stefan Kangas + + Recommend `M-x man` in woman.el docs + + * lisp/woman.el (Commentary, woman): Recommend using 'M-x man' where + available. The added sentence is copied from the emacs manual. + Ref: https://lists.gnu.org/r/emacs-devel/2023-10/msg00090.html + +2023-10-07 Eli Zaretskii + + Fix updating process-mark position in 'set-process-buffer' + + * src/process.c (update_process_mark): Update marker position only + if P's process-mark is not already associated with P's buffer. + (Bug#66313) + +2023-10-07 Mauro Aranda + + Fix a defcustom :type + + * lisp/cedet/srecode/map.el (srecode-map-save-file): Expand :type to + allow nil. (Bug#66377) + +2023-10-07 Eli Zaretskii + + Fix 'ido--ffap-find-file' + + * lisp/ido.el (ido--ffap-find-file): Make the signature consistent + with that of 'find-file', and pass the optional second argument to + 'find-file'. (Bug#66382) + +2023-10-06 Eli Zaretskii + + Fix setting the pipe capacity for subprocesses + + * src/process.c (create_process) [F_SETPIPE_SZ]: Set the pipe + capacity only if the required read-process-max is larger than the + default capacity of the pipe. (Bug#66288) + +2023-10-05 Gerd Möllmann + + Handle LANG on macOS differently (bug#65908) + + * src/nsterm.m (ns_init_locale): If LANG is set, try to use that, + otherwise try to deduce what LANG should be. Check is the result is + valid, and use LANG="en_US.UTF-8" if not. + +2023-10-05 Jens Schmidt + + Silence macro expansion during completion at point + + To keep risk in the current release branch low, do not avoid compiler + macros as suggested by Stefan in the bug, but rather suppress all errors. + + * lisp/progmodes/elisp-mode.el (elisp--local-variables): Silence + messages. Suppress all errors during macro expansion. (Bug#58148) + + Do not merge to master. + +2023-10-05 Mauro Aranda + + Fix a defcustom :type + + * lisp/cedet/ede/base.el (ede-project-placeholder-cache-file): Expand + :type to allow nil. (Bug#66361) + +2023-10-04 Mauro Aranda + + Fix pulse-flag :type + + * lisp/cedet/pulse.el (pulse-flag): Expand :type to allow 'never as + value. (Bug#66341) + +2023-10-03 Mauro Aranda + + Fix defcustoms in timeclock.el + + * lisp/calendar/timeclock.el (timeclock-get-project-function) + (timeclock-get-reason-function): Fix :type to allow nil. (Bug#66320) + +2023-10-01 Stefan Kangas + + Improve documentation of `ns-use-proxy-icon` + + * doc/emacs/macos.texi (Mac / GNUstep Customization): + * src/nsfns.m (syms_of_nsfns): Fix documentation of + 'ns-use-proxy-icon'; explain what it does and how it's + used. (Bug#66190) + +2023-10-01 Stefan Kangas + + Document assigning libraries to packages in make-tarball.txt + + * admin/make-tarball.txt: Add new step to ensure that new libraries + are assigned to packages. + +2023-10-01 Stefan Kangas + + Doc fix; more consistently refer to "text terminals" + + In the Emacs Lisp manual, we refer to "text terminals" and "graphical + terminals" (see Info node `(elisp) Frames'). But in some places, + including the user manual, the alternative terminology "non-window + terminals" is used instead. + + In other places, we use the terminology "non-windowing display" + instead of the more canonical "non-graphical display". + + This is less clear than it could be. Let's consolidate our + terminology to prefer the wording from the Emacs Lisp manual; in other + words, prefer "text" and "non-graphical" to "non-window". + + * doc/emacs/frames.texi (Non-Window Terminals): Rename node from this... + (Text Terminals): ...to this. (Bug#66282) + * doc/emacs/display.texi (Standard Faces): + * doc/emacs/emacs.texi (Top): + * doc/emacs/misc.texi (emacsclient Options): + * doc/misc/viper.texi (Rudimentary Changes) + (Packages that Change Keymaps): + * doc/emacs/frames.texi (Frames, Frame Commands, Mouse Avoidance): + Replace instances of "non-window terminals" with "text terminals". + * doc/misc/ediff.texi (Quick Help Customization): + (Window and Frame Configuration): + * lisp/vc/ediff.el (ediff-windows-wordwise) + (ediff-windows-linewise): Prefer saying 'non-graphical display' to + 'non-windowing display'. + * lisp/net/tramp.el (tramp-default-method): + * lisp/printing.el (pr-find-command): Capitalize 'Windows' where it + clearly refers to the non-free operating system with that name. + +2023-09-30 Mauro Aranda + + Fix defcustoms in type-break.el (Bug#66210) + + * lisp/type-break.el (type-break-good-rest-interval) + (type-break-file-name): Allow nil. + +2023-09-30 Mauro Aranda + + Fix term-scroll-to-bottom-on-output :type + + * lisp/term.el (term-scroll-to-bottom-on-output): Add missing choices. + Don't advertise the value 'all' in docstring. (Bug#66071) + +2023-09-28 Stefan Kangas + + Doc fix in let-alist for keys with nil value + + * lisp/emacs-lisp/let-alist.el (let-alist): Clarify that keys with a + nil value will give the same result as if they were missing. + +2023-09-28 Michael Albinus + + Fix tramp-test.el (don't merge with master) + + * test/lisp/net/tramp-tests.el (tramp--test-check-files): + Don't err out when "printenv" doesn't exist on remote side. + +2023-09-25 Michael Albinus + + Improve Emacs 30 compatibility in tramp-tests.el (don't merge) + + * test/lisp/net/tramp-tests.el (tramp--test-deftest-direct-async-process) + (tramp-test30-make-process): Improve Emacs 30 compatibility. + +2023-09-25 Michael Albinus + + Add new Tramp test + + * test/lisp/net/tramp-tests.el (tramp-test46-read-password): + Use `copy-tree' but `copy-sequence'. + (tramp-test46-read-otp-password): New test. + +2023-09-25 Mauro Aranda + + Fix tmm-mid-prompt :type (Bug#66179) + + * lisp/tmm.el (tmm-mid-prompt): Allow nil. + +2023-09-24 Augustin Chéneau (tiny change) + + Fix tree-sitter indentation conflict with multiple languages + + * lisp/treesit.el (treesit--indent-1): Use bol instead of point. + +2023-09-24 Michael Albinus + + Fix bug#66093 in Tramp + + * lisp/net/tramp-sshfs.el (tramp-methods): Use "%a". + (tramp-sshfs-handle-process-file): Replace ?a by "-t". + + * lisp/net/tramp.el (tramp-methods): Adapt docstring. (Bug#66093) + (tramp-handle-make-process): Replace ?a by "-t" if indicated. + +2023-09-24 Eli Zaretskii + + Support regeneration of ja-dic.el under '--with-small-ja-dic' + + * lisp/international/ja-dic-cnv.el (skkdic-convert): Record the + value of SMALL_JA_DIC option used to produce ja-dic.el. + * leim/Makefile.in (small-ja-dic-option): New target, triggers + regeneration of ja-dic.el when the value of SMALL_JA_DIC option + changes by the configure script. Suggested by Ulrich Mueller + . + (${leimdir}/ja-dic/ja-dic.el): Depend on 'small-ja-dic-option'. + (Bug#66125) + + * make-dist (possibly_non_vc_files): + * .gitignore: Add 'leim/small-ja-dic-option'. + +2023-09-22 Basil L. Contovounesios + + Improve remote-file-name-inhibit-cache :type + + * lisp/files.el (remote-file-name-inhibit-cache) + (shell-highlight-undef-remote-file-name-inhibit-cache): Avoid + duplicated :tag string. Try to clarify wording and + formatting (bug#66150). + * lisp/shell.el (shell--highlight-undef-exec-cache): Reference + correct user option in docstring. + +2023-09-22 Stefan Kangas + + Ensure bind-key is its own package + + * lisp/finder.el (finder--builtins-alist): Remove "use-package" + directory. + * lisp/use-package/bind-key.el: Declare library as part of the + 'bind-key' package. + * lisp/use-package/use-package-bind-key.el: + * lisp/use-package/use-package-core.el: + * lisp/use-package/use-package-delight.el: + * lisp/use-package/use-package-diminish.el: + * lisp/use-package/use-package-ensure-system-package.el: + * lisp/use-package/use-package-ensure.el: + * lisp/use-package/use-package-jump.el: + * lisp/use-package/use-package-lint.el: Declare library as part of the + 'use-package' package. (Bug#62751) + + Do not merge to master. + +2023-09-21 Michael Albinus + + * lisp/net/tramp.el (tramp-skeleton-write-region): Fix missing comma. + + (Bug#66123) + +2023-09-18 Yuan Fu + + Fix tree-sitter range update function + + * lisp/treesit.el (treesit-update-ranges): If an embedded language + doesn't have any range, don't set its range to nil (which means whole + buffer), instead, set its range to a dummy (1 . 1) zero range. + +2023-09-18 Ihor Radchenko + + Announce handling 'org-protocol' URI scheme in NEWS + + * etc/NEWS: Document handling 'org-protocol' URI scheme. The commit + implementing the new functionality is 05a7c91b91c. (Bug#65469) + +2023-09-18 Ihor Radchenko + + Make emacsclient handle org-protocol:// links + + Org mode provides a way to quickly capture bookmarks, notes, and links + using emacsclient: + + emacsclient "org-protocol://store-link?url=URL&title=TITLE" + + * etc/emacsclient.desktop: Make Emacs the default application for + org-protocol. (Bug#65469) + + (cherry picked from commit 05a7c91b91c02c34ec6527119a465e5408dea2b1) + +2023-09-18 Robert Pluim + + Ensure ucs-names is consistent with Unicode names + + * lisp/international/mule-cmds.el (ucs-names): Skip adding an old-name + if it conflicts with the official name of a codepoint. Adjust the + ranges iterated over to account for new Unicode codepoints. + * test/lisp/international/mule-tests.el + (mule-cmds-tests--ucs-names-old-name-override, + mule-cmds-tests--ucs-names-missing-names): New tests for checking + 'ucs-names' consistency. + + Bug#65997 + +2023-09-18 Shynur + + Make key-translate actually work + + * lisp/keymap.el (key-translate): Use the first element of the parsed + keys rather than the whole vector. (Bug#65735) + +2023-09-17 Kyle Meyer + + Update to Org 9.6.9 + +2023-09-17 Stefan Kangas + + Add leim subdirectories to emacs package + + * lisp/finder.el (finder--builtins-alist): Add subdirectories + 'leim/ja-dic' and 'leim/quail' as part of the 'emacs' + package. (Bug#62751) + +2023-09-17 Stefan Kangas + + Add missing builtin package declarations + + * lisp/finder.el (finder--builtins-alist): Add new package + directories 'leim' and 'obsolete' as part of the 'emacs' package. + Add new package directory 'use-package' as part of the + 'use-package' package. + * lisp/net/eudc-capf.el: + * lisp/net/eudcb-ecomplete.el: + * lisp/net/eudcb-macos-contacts.el: + * lisp/net/eudcb-mailabbrev.el: Declare library as part of the + 'eudc' package. + * lisp/mail/ietf-drums-date.el: Declare library as part of the + 'ietf-drums' package. + * lisp/image/image-dired-dired.el: + * lisp/image/image-dired-external.el: + * lisp/image/image-dired-tags.el: + * lisp/image/image-dired-util.el: Declare library as part of the + 'image-dired' package. + * lisp/emacs-lisp/oclosure.el: + * lisp/keymap.el: + * lisp/progmodes/c-ts-common.el: Declare library as part of the + 'emacs' package. (Bug#62751) + + (cherry picked from commit 94b1de2774b5c1fa3c28285229900657638f5c3f) + +2023-09-17 Stefan Kangas + + Add more missing builtin package declarations + + * lisp/emacs-lisp/shorthands.el: Declare library as part of the + 'emacs' package. + * lisp/epa-ks.el: Declare library as part of the 'epa' + package. (Bug#55388) + +2023-09-17 Stefan Kangas + + Document shell-command-to-string security considerations + + * lisp/simple.el (shell-command-to-string): Document security + considerations in docstring. + +2023-09-17 Mauro Aranda + + Fix shell-indirect-setup-hook :type (Bug#66051) + + * lisp/shell.el (shell-indirect-setup-hook): It's a hook, not a + boolean. + +2023-09-17 Thomas Hilke (tiny change) + + Remove column quoting from sqlite-mode + + * lisp/sqlite-mode.el (sqlite-mode--column-names): Unquote column + name. (Bug#65998) + +2023-09-17 Theodor Thornhill + + Add indentation rules for type_arguments + + * lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Indent + as opening braces. + +2023-09-16 Dmitry Gutov + + typescript-ts-mode.el: Minor touches + + * lisp/progmodes/typescript-ts-mode.el + (tsx-ts-mode--indent-compatibility-b893426) + (tsx-ts-mode--font-lock-compatibility-bb1f97b): + Catch specific error. + (typescript-ts-base-mode): Improve docstring (bug#65470). + +2023-09-16 Dmitry Gutov + + Improve namespacing situation WRT to recent change in typescript-ts-mode.el + + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts--syntax-propertize): + Rename from ts-ts--syntax-propertize. + (tsx-ts--syntax-propertize-captures): + Rename from ts-ts--syntax-propertize-captures. + (typescript-ts--s-p-query): + Rename from ts-ts--s-p-query. + Update all references (bug#65470). + +2023-09-16 Stephen Berman + + Make move-end-of-line in minibuffer consistent (bug#65980) + + * lisp/simple.el (move-end-of-line): Always move to eol when + invoking `C-e' from within the minibuffer's prompt string. + +2023-09-16 Jens Schmidt + + Fix loss of encrypted data in plstore.el + + * lisp/plstore.el (plstore--insert-buffer): Fix loss of encrypted + data when a plstore gets opened and saved without being decrypted + between these steps. (Bug#63627) + +2023-09-16 Thomas Hilke (tiny change) + + Close SQL database when corresponding 'sqlite-mode' buffer is killed + + * lisp/sqlite-mode.el (sqlite-mode-open-file): Close DB when the + buffer is killed. (Bug#65998) + +2023-09-16 Eli Zaretskii + + Fix Unicode normalization of characters + + * lisp/international/ucs-normalize.el + (ucs-normalize-composition-exclusions, check-range): Update from + Unicode 15.0 data. (Bug#65996) + + * test/lisp/international/ucs-normalize-tests.el + (ucs-normalize-tests--failing-lines-part1) + (ucs-normalize-tests--failing-lines-part2): Update to reflect + changes in ucs-normalize.el. + + * admin/notes/unicode: Mention the updates in ucs-normalize.el. + +2023-09-16 Michael Albinus + + Support one-time passwords in Tramp + + * doc/misc/tramp.texi (Remote shell setup): + Describe tramp-otp-password-prompt-regexp. + + * lisp/net/tramp-sh.el (tramp-actions-before-shell) + (tramp-actions-copy-out-of-band): + Use `tramp-otp-password-prompt-regexp'. + + * lisp/net/tramp.el (tramp-otp-password-prompt-regexp): New defcustom. + (tramp-action-otp-password): New defun. + +2023-09-16 Eli Zaretskii + + Fix the 'C' and 'c' categories of characters + + * lisp/international/characters.el: Fix categories of Chinese + characters. (Bug65995) + +2023-09-16 Eli Zaretskii + + Fix Emoji zooming commands + + * lisp/international/emoji.el (emoji-zoom-increase): Handle the + case where face property at point is a list of faces. (Bug#65994) + +2023-09-15 Dmitry Gutov + + tsx-ts-mode--font-lock-compatibility-bb1f97b: Improve + + * lisp/progmodes/typescript-ts-mode.el + (tsx-ts-mode--font-lock-compatibility-bb1f97b): + Test the more complex query, because the current one leads to + false positives (mentioned in bug#65470). + +2023-09-15 Davide Masserut + + Avoid using --display in emacsclient to reuse frames on PGTK + + Using hard-coded display values can cause PGTK graphical frames to + open using the wrong backend or not open at all. + * Makefile.in (install-etc): Use --reuse-frame instead of + --display=$DISPLAY. (Bug#65509) + +2023-09-15 Eli Zaretskii + + Support emacsclient on Windows with server on GNU or Unix systems + + * lisp/server.el (server-process-filter): If 'tty-name' is literally + "CONOUT$", assume the client runs on MS-Windows and force the + frame type to GUI. This allows to run emacsclient on MS-Windows + when the server runs on a Posix host. (Bug#65812) + +2023-09-14 Mauro Aranda + + Fix defcustom in saveplace.el (Bug#65977) + + * lisp/saveplace.el (save-place-ignore-files-regexp): Allow nil. + +2023-09-14 Eli Zaretskii + + Fix 'window-text-pixel-size' when there are several images at START + + * src/xdisp.c (window_text_pixel_size): Remove unnecessary call to + 'move_it_to'. (Bug#65899) (Bug#54862) + +2023-09-14 Eli Zaretskii + + : Doc fix. + + * lisp/progmodes/prog-mode.el + (prettify-symbols-unprettify-at-point): Doc fix. + +2023-09-14 Stefan Kangas + + Doc fix for prettify-symbols-unprettify-at-point + + * lisp/progmodes/prog-mode.el + (prettify-symbols-unprettify-at-point): Document that it has to be + set before enabling 'prettify-symbols-mode'. (Bug#65884) + +2023-09-13 Stefan Monnier + + (report_overlay_modification): Fix bug#65929 + + Somehow the new overlay code in Emacs-29 changed slightly + the test to decide when to run the `modification-hooks` of overlays, + with the consequence that these hook functions end up being executed + also when text is deleted right after an empty overlay, which is + contrary to Emacs-28 behavior as well as contrary to the Texinfo doc. + + * src/buffer.c (report_overlay_modification): Better reproduce the + Emacs-28 code. + + * test/src/buffer-tests.el (overlay-modification-hooks): + Add corresponding test. + +2023-09-13 Alan Third + + Fix SVG colors (bug#56182) + + * src/image.c (svg_load_image): Reverse the R and B bytes in the + Windows colors before using them to generate the SVG. + +2023-09-13 Juri Linkov + + * doc/emacs/text.texi (Outline Minor Mode): Add a note about value 'insert'. + + * lisp/outline.el (outline-minor-mode-use-buttons): Add a note and + a comment about the value 'insert' (bug#65874). + +2023-09-13 Eli Zaretskii + + Improve documentation of 'list-abbrevs' + + * doc/emacs/abbrevs.texi (Editing Abbrevs): Describe how system + abbrevs are shown by 'list-abbrevs'. Suggested by Shynur Xie + . (Bug#65907) + +2023-09-12 Dmitry Gutov + + Tweak s-p-f for js-ts-mode + + * lisp/progmodes/js.el (js-ts--s-p-query): + Consider two more contexts (bug#65470). + +2023-09-12 Jostein Kjønigsen + + typescript-ts-mode, tsx-ts-mode: Fix syntax properties for regexp and jsx + + Propertize regexps as strings and JSX elements as generic strings. + + * lisp/progmodes/typescript-ts-mode.el (ts-ts--s-p-query) + (tsx-ts--s-p-query): New variables. + (ts-ts--syntax-propertize, tsx-ts--syntax-propertize) + (ts-ts--syntax-propertize-captures): New functions. + (typescript-ts-mode, tsx-ts-mode): Use them (bug#65470). + +2023-09-12 Eli Zaretskii + + * lisp/progmodes/c-ts-mode.el (c++-ts-mode): Provide (bug#65895). + +2023-09-11 Yuan Fu + + Fix regression of treesit_cursor_helper_1 + + * src/treesit.c (treesit_cursor_helper_1) + (treesit_cursor_first_child_for_byte): Use + ts_tree_cursor_goto_first_child_for_byte first, and + ts_tree_cursor_goto_first_child second. + +2023-09-10 Stefan Kangas + + Update docs for passing of Thien-Thi Nguyen + + * doc/emacs/ack.texi (Acknowledgments): Add Thien-Thi Nguyen. + * lisp/play/zone.el: Set maintainer to emacs-devel. + +2023-09-10 Stefan Kangas + + Update defvar usage tips example in manual + + * doc/lispref/variables.texi (Tips for Defining): Change example + to be about syntax tables instead of old way of defining keymaps + using 'defvar' and 'make-sparse-keymap'. (Bug#59224) + +2023-09-10 Stefan Kangas + + Document using Flymake together with Eglot + + * doc/misc/flymake.texi (Top, Using Flymake): Document using + Flymake together with Eglot. (Bug#60040) + +2023-09-08 Mauro Aranda + + Fix defcustom :type of ielm-indirect-setup-hook + + * lisp/ielm.el (ielm-indirect-setup-hook): Fix :type and remove :safe + property, since it was probably a copy-pasta. (Bug#65821) + +2023-09-08 Stefan Kangas + + Document NonGNU ELPA in FAQ + + * doc/misc/efaq.texi (Packages that do not come with Emacs): + Document NonGNU ELPA. (Bug#65818) + +2023-09-07 Jim Porter + + Fix remote path setting in Eshell + + This ensures that we supply Tramp with the local PATH so that it can + do its job of starting the local "ssh", or whatever the method uses + (bug#65551). + + * lisp/eshell/esh-proc.el (eshell-gather-process-output): Add special + handling for remote processes. + + * test/lisp/eshell/esh-proc-tests.el + (esh-var-test/remote/remote-path): New test. + +2023-09-07 Stefan Kangas + + Update docs for (co-)maintainer changes + + * admin/MAINTAINERS: Add information on current maintainers as a + canonical place to find this information. + * doc/emacs/ack.texi (Acknowledgments): Update for recent + Emacs (co-)maintainer changes. + * admin/make-tarball.txt: Add note as a reminder to update the above + before making a new release. + +2023-09-07 Sebastian Miele + + * doc/lispref/strings.texi (Text Comparison): Fix typo (bug#65799). + +2023-09-07 Michael Albinus + + Adapt Tramp manual + + * doc/misc/tramp.texi (Frequently Asked Questions): Do not use + `defadvice'. Add indices. (Bug#65481) + +2023-09-07 Stefan Kangas + + Improve docstring of message-sendmail-envelope-from + + * lisp/gnus/message.el (message-sendmail-envelope-from): Doc fix. + +2023-09-07 Philipp Stephani + + Unbreak builds with CHECK_STRUCTS. + + * src/pdumper.c (dump_buffer): Fix hash for 'struct buffer'. The + recent changes to that structure where commits + 8f3091defb3ec4396ccea563f67c005044b822ca and + 0bd46619413e83fe3c85c8a1dfbf5e20dfce8605, both of which just affected + comments. + +2023-09-07 Jens Schmidt + + Improve documentation of EPG + + * lisp/epg.el (epg-context-set-passphrase-callback): Update + GnuPG-version-dependent information in docstring and refer to + Info node `(epa)' for details. + (epg-start-edit-key): Replace description of arguments by a + reference to `epg-edit-key'. + (epg-edit-key): More precisely describe callback operation and + arguments and provide an example of how to edit a key. (Bug#65603) + +2023-09-07 Daniel Martín + + Avoid crashes on macOS with context menus + + * src/nsmenu.m ([EmacsMenu menuNeedsUpdate:]): Avoid crashes with + context menus. (Bug#63495) + +2023-09-07 Yuan Fu + + Fix c-ts-mode BSD style indentation + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): + Add else_clause. + + (cherry picked from commit d392a5d3c11b7e7479d31421f8237f29952c909e) + +2023-09-06 David Ponce + + Fix regexp for recognizing PBM images + + * lisp/image.el (image-type-header-regexps): Don't use [:space:], + as its meaning depends on the current buffer's syntax tables. + (Bug#65496) + +2023-09-06 Eli Zaretskii + + Improve wording in ELisp manual + + * doc/lispref/objects.texi (Printed Representation): Improve + wording. Suggested by Xie Shynur . + (Bug# 60639) + +2023-09-06 Joseph Turner + + Fix typo (Bug#65764) + + * lisp/subr.el (backward-word-strictly): Fix typo. + +2023-09-05 Po Lu + + Fix libgccjit build on Haiku + + * configure.ac (LIBGCCJIT_LIBS): Link only with -lgccjit under + Haiku. + +2023-09-05 Stefan Monnier + + (regexp-tests-backtrack-optimization): Mark it as failing + + * test/src/regex-emacs-tests.el (regexp-tests-backtrack-optimization): + The fix for bug#65726 broke some of the optimization added for bug#61514. + +2023-09-04 Stefan Monnier + + * src/regex-emacs.c (mutually_exclusive_p): Fix inf-loop (bug#65726) + +2023-09-04 Stefan Kangas + + Bump seq version to 2.24 + + * lisp/emacs-lisp/seq.el: Bump version to 2.24. (Bug#60990) + +2023-09-04 Stefan Kangas + + Add note on ELPA to admin/notes/bug-triage + + * admin/notes/bug-triage: Add section on (Non-)GNU ELPA packages and + do some copy editing. + +2023-09-02 Po Lu + + * etc/PROBLEMS: Mention bug#65432 and its remedy. + +2023-09-02 Theodor Thornhill + + Ignore errors when checking for object initializers (bug#63379) + + Since this is merely a check for syntax, we don't really care about + any internal errors inside of backward-up-list. + + * lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): Wrap + command in ignore-errors. + +2023-09-02 Stefan Kangas + + * CONTRIBUTE: Document making ChangeLogs with Magit. + +2023-09-02 Stefan Kangas + + Doc fixes for obsolete functions and variables + + * admin/notes/multi-tty: + * doc/emacs/building.texi (Debugger Operation): + * doc/misc/efaq-w32.texi (Line ends by file system): + * doc/misc/gnus.texi (Hashcash): + * lisp/emacs-lisp/eieio.el (eieio-class-parents) + (eieio-class-children): + * lisp/progmodes/perl-mode.el: + * lisp/textmodes/ispell.el (ispell-lookup-words): + * src/buffer.h: Update or delete references to variables and functions + made obsolete in Emacs 24.4. + +2023-09-02 Mauro Aranda + + A revision to the Widget manual + + * doc/misc/widget.texi (Widgets Basics, Working with Widgets) + (Widgets and the Buffer, Widget Gallery, Customization): New chapters. + (Basic Types, Sexp Types): Demote to subsections. + (Widget Browser): Rename to Inspecting Widgets. + (Widget Properties): Remove. + + (Top): Adapt menu to changes. + (Introduction): Rearrange text. Move warnings to a better place, and + user options to the Customization chapter. + (User Interface): Don't fully describe commands and customization + options here. + (Setting Up the Buffer): Expand on widget creation process and add + documentation for useful functions which deal with + creation/conversion. + (Defining New Widgets): Expand the documentation on define-widget. + All relevant properties moved to the description of the default + widget, in Widget Gallery. + (Utilities): Add some more useful functions not previously documented. + (Wishlist): Remove out-of-date items. + +2023-09-02 Stefan Kangas + + Fix fontification of " in edit-kbd-macro + + * lisp/edmacro.el (edit-kbd-macro): Fix fontification when editing + keyboard macros containing the " character. + +2023-09-02 Eli Zaretskii + + * lisp/emacs-lisp/gv.el (buffer-local-value): Unobsolete (bug#65555). + +2023-09-02 Jens Schmidt + + Add documentation to plstore.el + + * lisp/plstore.el: Add link to epa manual. Describe more + restrictions. Fix a typo in the examples. Fix terminology. Mark + FIXMEs as such. + * lisp/plstore.el (plstore-save): Describe edge case when no recipient + matches and mark as FIXME. (Bug#63627) + +2023-09-01 Stefan Kangas + + * lisp/help.el (substitute-quotes): Improve docstring. + +2023-09-01 Stefan Kangas + + Fix two defcustom :types + + * lisp/frame.el (blink-cursor-blinks): + * lisp/url/url-vars.el (url-max-redirections): Revert defcustom :types + back to integer. (Bug#65655) + +2023-09-01 Manuel Giraud + + Fix `image-auto-resize-on-window-resize' custom :type + + * lisp/image-mode.el (image-auto-resize-on-window-resize): Change + custom :type from integer to number to be able to set below 1 + second. (Bug#65626) + +2023-09-01 Ross Timson (tiny change) + + Add "terraform-ls" LSP server to Eglot + + * lisp/progmodes/eglot.el (eglot-server-programs): Add "terraform-ls", + the official Terraform LSP server. (Bug#65671) + +2023-09-01 Eli Zaretskii + + Fix minor bugs in vc-git and vc-hg on Windows uncovered by vc-tests + + * lisp/vc/vc-hg.el (vc-hg-state-slow): Non-existing files emit a + different message on MS-Windows; support that. + * lisp/vc/vc-git.el (vc-git-checkin): Make sure + 'default-directory' is not nil when calling + 'make-nearby-temp-file' on MS-Windows. + + * test/lisp/vc/vc-tests.el (vc-test--version-diff): Run + 'default-directory' through 'file-truename', otherwise the + 'vc-test-cvs06-version-diff' test might fail on MS-Windows. + +2023-08-31 Dmitry Gutov + + Add syntax-propertize-function to js-ts-mode + + * lisp/progmodes/js.el (js-ts--s-p-query): + New variable (bug#65470). + (js-ts--syntax-propertize): New function. + (js-ts-mode): Use it. + +2023-08-30 Yuan Fu + + Improve performance of treesit_cursor_helper_1 + + * src/treesit.c: (treesit_cursor_helper_1): Use + ts_tree_cursor_goto_first_child_for_byte to speed up traversing among + siblings. The "while (ts_node_end_byte (cursor_node) < end_pos)" can + be removed with the check added in the loop below. + +2023-08-28 Stefan Monnier + + * lisp/subr.el (combine-change-calls-1): Fix bug#64989 + + Silence the spurious warning, and improve the warning while at it. + Do not merge to master. + +2023-08-27 Kyle Meyer + + Update to Org 9.6.8-3-g21171d + +2023-08-27 Yuan Fu + + Escape percent character in treesit--inspect-name (bug#65540) + + * lisp/treesit.el (treesit-inspect-node-at-point): Escape percent. + +2023-08-27 Jim Porter + + Don't add an extraneous slash in remote PATH list in Eshell + + Previously, in a remote directory, '(eshell-get-path)' would return a + list of strings like "/ssh:localhost://usr/bin". While that shouldn't + break most things, it's not strictly correct either. See bug#65551. + + * lisp/eshell/esh-util.el (eshell-get-path): Use 'concat' instead of + 'file-name-concat'. + + * test/lisp/eshell/esh-util-tests.el: Require 'tramp' and + 'eshell-tests-helpers'. + (esh-util-test/path/get, eshell-util-test/path/get-remote): New tests. + +2023-08-27 Michael Albinus + + Fix Tramp on MS Windows + + * lisp/net/tramp-sh.el (tramp-sh-handle-expand-file-name): + Apply `tramp-drop-volume-letter' consequently. + +2023-08-27 Andrea Corallo + + * Fix native disassemble on Windows platforms (bug#65455) + + * lisp/emacs-lisp/disass.el (disassemble-internal): Improve regexp. + +2023-08-27 Andrea Corallo + + * Handle missing eln file when trying to disassble (bug#65455) + + * lisp/emacs-lisp/disass.el (disassemble-internal): Handle missing + eln file. + +2023-08-27 Andrea Corallo + + * lisp/emacs-lisp/comp.el (comp--native-compile): Fix OUTPUT for non abs paths + +2023-08-27 Jonas Bernoulli + + Update to Transient v0.4.3 + +2023-08-27 Michael Albinus + + Adapt Eshell manual + + * doc/misc/eshell.texi (Arguments): Mention more special + characters to be quoted in remote file names. (Bug#65431) + +2023-08-27 Eli Zaretskii + + Fix applying patches with Git on MS-Windows + + * lisp/vc/vc.el (vc-diff-internal): For Git, always suppress EOL + conversion when reading the diffs into a buffer. Doc fix. + * lisp/vc/vc-git.el (vc-git-checkin): Make sure to suppress EOL + conversion when the patch file is written. (Bug#65049) + +2023-08-26 Po Lu + + Repair bug#65068 on Emacs 29 + + * src/xterm.c (x_term_init): Disable ControlFallback library + control wherever present. (bug#65068) + + Do not merge to master. + +2023-08-24 Stefan Kangas + + Fix custom :type of dired-mouse-drag-files + + * lisp/dired.el (dired-mouse-drag-files): Fix :type to allow + specifying 'move'. (Bug#65497) + +2023-08-24 James Thomas + + Account for string names in active file + + Account also for strings when reading in group names from an active + file (bug#62812). + * lisp/gnus/nnmail.el (nnmail-parse-active): Make it similar to + gnus-active-to-gnus-format + +2023-08-24 Christoph Göttschkes (tiny change) + + Fix 'makefile-browser-client' variable initialization + + * lisp/progmodes/make-mode.el (makefile-browser-client): + Initialize to nil. (Bug#65487) + +2023-08-19 Yuan Fu + + Support defun navigation for DEFUN in c-ts-mode (bug#64442) + + Before this change, beginning/end-of-defun just ignores DEFUN in + c-ts-mode. After this change, beginning/end-of-defun can recognize + DEFUN, but a DEFUN definition is considered two defuns. Eg, + beginning/end-of-defun will stop at (1) (2) and (3) in the following + snippet: + + (1)DEFUN ("treesit-node-parser", + Ftreesit_node_parser, Streesit_node_parser, + 1, 1, 0, + doc: /* Return the parser to which NODE belongs. */) + (Lisp_Object node) + (2){ + CHECK_TS_NODE (node); + return XTS_NODE (node)->parser; + } + (3) + + Ideally we want point to only stop at (1) and (3), but that'll be a + lot harder to do. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--defun-valid-p): Refactor to take in account of DEFUN body. + (c-ts-mode--emacs-defun-body-p): New function. + (c-ts-base-mode): Add DEFUN and DEFUN body to recognized types. + (c-ts-mode--emacs-defun-at-point): Now that we recognize both parts of + a DEFUN as defun, c-ts-mode--emacs-defun-at-point needs to be updated + to adapt to it. + +2023-08-19 Eli Zaretskii + + Fix touchpad scrolling on MS-Windows + + * src/w32term.c (w32_construct_mouse_wheel): The number of lines + to scroll should always be positive in wheel-scroll events. + Whether to scroll up or down is encoded in the modifiers, which + produce either wheel-up or wheel-down event. (Bug#65070) + + * doc/lispref/commands.texi (Misc Events): Clarify the + documentation of 'wheel-up' and 'wheel-down' events. + +2023-08-19 Philip Kaludercic + + Fix order in which package-vc dependencies are resolved + + * lisp/emacs-lisp/package-vc.el (package-vc-install-dependencies): + Avoid a type-mismatch when comparing two packages. (Bug#65283) + +2023-08-19 Joseph Turner + + Fix building of VC package manuals with relative org links/includes + + * lisp/emacs-lisp/package-vc.el (package-vc--build-documentation): + Ensure that default-default is the docs-directory around + org-export-to-file to ensure that links to relative files work + correctly. (Bug#65243) + +2023-08-19 Eli Zaretskii + + Fix the documentation of 'cl-flet' + + * doc/misc/cl.texi (Function Bindings): Update the description. + (Bug#65362) + +2023-08-17 Jens Schmidt + + Avoid false "wrong passphrase" messages in EPA + + * lisp/epa-file.el (epa--wrong-password-p): Use a stricter regexp + to match "wrong passphrase" errors generated by GnuPG. (Bug#65316) + +2023-08-17 dannyfreeman + + Fix jsx font-lock in older tree-sitter-js grammars + + * lisp/progmodes/js.el (js--treesit-font-lock-settings): Use + queries that are backwards compatible with + tree-sitter-javascript bb1f97b. + * lisp/progmodes/js.el + (-jsx--treesit-font-lock-compatibility-bb1f97b): Delete unused + function. (Bug#65234) + +2023-08-17 Eli Zaretskii + + Fix cloning 'face-remapping-alist' for indirect buffers + + * lisp/face-remap.el (face-remap--copy-face): Remove. + (face-attrs--make-indirect-safe): Use 'copy-tree'. Suggested by + Stefan Monnier . + +2023-08-17 Eli Zaretskii + + Improve documentation of case transfer in replacement commands + + * doc/emacs/search.texi (Replacement and Lax Matches): + * src/search.c (Freplace_match): + * lisp/replace.el (query-replace, query-replace-regexp): Clarify + in the doc string and the manual how letter-case is transferred + from the replaced text to the replacement text. (Bug#65347) + +2023-08-16 Eli Zaretskii + + Fix horizontal scrolling of images with C-f + + * lisp/image-mode.el (image-forward-hscroll): Calculate the + window-width more accurately, as the number of full columns that + fits in the window's text-area. (Bug#65187) + +2023-08-16 Eli Zaretskii + + Fix unpacking ZIP archives on MS-Windows + + * lisp/arc-mode.el (archive-zip-summarize): Decode file names as + UTF-8 when bit 11 of flags is set, even on MS-Windows. + (Bug#65305) + +2023-08-16 Jim Porter + + Fix command example in Eshell manual + + * doc/misc/eshell.texi (Introduction): Fix example (bug#65303). + + Reported by Eric Gillespie . + +2023-08-14 Jim Porter + + Add user options mentioned in the Eshell manual to the variable index + + * doc/misc/eshell.texi: Make variable index entries use "code" style, + and add indexing for any options already in the manual. + +2023-08-14 Andrea Corallo + + * Add missing alias to `native-comp-enable-subr-trampolines'. + + * lisp/subr.el (native-comp-deferred-compilation): Alias to + native-comp-jit-compilation. + +2023-08-14 Andrea Corallo + + * Add missing alias to `native-comp-enable-subr-trampolines'. + + * lisp/subr.el (comp-enable-subr-trampolines): Alias to + native-comp-enable-subr-trampolines. + +2023-08-13 Kyle Meyer + + Update to Org 9.6.7-13-g99cc96 + +2023-08-13 Michael Albinus + + Handle last-coding-system-used in Tramp for all backends + + * lisp/net/tramp.el (tramp-skeleton-write-region): + Handle `last-coding-system-used'. + (tramp-handle-write-region): + * lisp/net/tramp-adb.el (tramp-adb-handle-write-region): + * lisp/net/tramp-smb.el (tramp-smb-handle-write-region): + * lisp/net/tramp-sshfs.el (tramp-sshfs-handle-write-region): + Set `coding-system-used'. (Bug#65022) + + * lisp/net/tramp-sh.el (tramp-sh-handle-write-region): + Move `last-coding-system-used' handling to + `tramp-skeleton-write-region'. + +2023-08-13 Devon Sean McCullough + + Add 2 Welsh characters to iso-transl.el + + * lisp/international/iso-transl.el (iso-transl-char-map): Add two + Welsh characters. (Bug#65248) + +2023-08-12 Andrea Corallo + + * Fix `batch-byte+native-compile' target directory. + + * lisp/emacs-lisp/comp.el (batch-native-compile): Don't shadow + `native-compile-target-directory' unless necessary. + +2023-08-12 Eli Zaretskii + + Avoid crashes in 'display_count_lines' when current buffer was killed + + * src/xdisp.c (Fformat_mode_line): + * src/fns.c (Fline_number_at_pos): Don't allow to count lines in a + dead buffer. (Bug#65060) + +2023-08-12 J M + + Update csharp tree-sitter support due to upstream changes + + A change in tree-sitter-c-sharp grammar for csharp (commit + 18a531), has removed the keyword void_keyword and advised + we should use predefined_type. + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings): + Support both old and new style of keywords in tree-sitter-c-sharp + grammar. (Bug#65113) + +2023-08-12 Matthew Tromp (tiny change) + + Substitute command keys in 'ielm-header' at use time + + Before, command keys were substituted into the ielm-header when + ielm.el was loaded, which resulted in the substitutions depending on + the user's current buffer instead of the ielm buffer. + For example, if the user was in an info-mode buffer, the key would + appear as 'H' instead of 'C-h m'. + Now, the command key is substituted after the ielm buffer has been + created. + * lisp/ielm.el (ielm-header): Remove substitute-command-keys. + (inferior-emacs-lisp-mode): Add substitute-command-keys. (Bug#65213) + +2023-08-12 Eli Zaretskii + + Fix rare crashes in redisplay due to problems with fontsets + + * src/xdisp.c (get_next_display_element): If we have no usable + face to display a character/composition, treat that as glyphless. + (produce_glyphless_glyph): If neither it->face nor its ASCII face + are usable, fall back to the frame's default font. (Bug#65198) + +2023-08-12 Eli Zaretskii + + Fix a typo in 'leuven-dark-theme.el' + + * etc/themes/leuven-dark-theme.el (leuven-dark): Fix a typo. + Reported by John Poole . (Bug#65239) + +2023-08-10 Michael Albinus + + Adapt Tramp test + + * test/lisp/net/tramp-tests.el (tramp-test41-special-characters): + Skip for macOS. + +2023-08-10 dannyfreeman + + Properly expand the JSX indentation rules in 'js-ts-mode' + + * lisp/progmodes/js.el (js--treesit-indent-rules): Fix + 'js-ts-mode' indent bug in JSX expressions. Before this + change, treesit indent mechanisms were trying to call this + compatibility function like a matching or anchor rule. + This resulted in an error when running `indent-for-tab-command` + while the cursor was in a JSX expression: + + treesit--simple-indent-eval: Wrong number of + arguments: ((cl-struct-js--pitem-tags ido-cur-list t) nil "Indent rules + helper, to handle different releases of tree-sitter-javascript." + + (Bug#65134) + +2023-08-10 Andrea Corallo + + * Add `emacs-lisp-native-compile' to easy-menu. + + * lisp/progmodes/elisp-mode.el (emacs-lisp-mode-menu): Add menu + item for emacs-lisp-native-compile. + +2023-08-10 Andrea Corallo + + * lisp/progmodes/elisp-mode.el (emacs-lisp-mode-menu): Simplify condition. + +2023-08-10 Andrea Corallo + + * Introduce `emacs-lisp-native-compile'. + + * lisp/progmodes/elisp-mode.el (emacs-lisp-native-compile): New command. + (emacs-lisp-native-compile-and-load): Make use of. + +2023-08-10 Eli Zaretskii + + Fix the -x switch in non-X builds + + * src/emacs.c (main): Move the handling of the -x switch out of + the HAVE_X_WINDOWS condition, and simplify the rest of the code by + avoiding code duplication in HAVE_X_WINDOWS and !HAVE_X_WINDOWS + cases. (Bug#65048) + +2023-08-10 Po Lu + + Document that `set-mouse-color' does not work everywhere + + * etc/PROBLEMS (Miscellaneous Problems): Mention where + `set-mouse-color' does not work. + +2023-08-10 Eli Zaretskii + + Fix the effects and documentation of 'dired-free-space' + + * lisp/dired.el (dired-free-space): Fix doc string and Custom tags. + (dired--insert-disk-space): When 'dired-free-space' is 'separate', + return the position of the beginning of the disk-space line, to be + compatible with pre-Emacs 29 behavior under + 'dired-hide-details-mode'. (Bug#65186) + + * doc/emacs/dired.texi (Misc Dired Features): Fix wording in + documentation of 'dired-free-space'. + +2023-08-09 Stefan Kangas + + Fix cross-reference to eldoc in eglot manual + + * doc/misc/eglot.texi (Eglot Features): Fix cross-reference to eldoc + node in the Emacs manual. + +2023-08-09 Eli Zaretskii + + Add native-compilation to Emacs Lisp mode menu + + * lisp/progmodes/elisp-mode.el (emacs-lisp-mode-menu): Add menu + item for emacs-lisp-native-compile-and-load. + +2023-08-09 Andrea Corallo + + Fix emacs-lisp-native-compile-and-load eln target directory (bug#64226) + + * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Don't use + `byte+native-compile' to select output directory but always axpect + it explicit through `native-compile-target-directory'. + (batch-byte+native-compile): Set `native-compile-target-directory'. + * test/src/comp-tests.el (comp-tests-bootstrap): Set + `native-compile-target-directory'. + +2023-08-09 Mattias Engdegård + + Disable failing test (bug#65156) + + * test/src/fileio-tests.el (fileio-tests--non-regular-insert): + Mark as :unstable, since /dev/urandom is seekable. + + Do not merge to master. + +2023-08-08 Po Lu + + Better fix for bug#65156 + + * src/fileio.c (Finsert_file_contents): Correct seek-ability + test, since lseek returns -1 upon failure. (Bug#65156) + +2023-08-08 Eli Zaretskii + + Fix insert-file-contents with pipes and /dev/stdin + + * src/fileio.c (Finsert_file_contents): Restore logic of + non-regular but seekable files. (Bug#65156) + +2023-08-07 Po Lu + + Fix bug#65042 + + * src/pgtkterm.c (fill_background_by_face): Respect the frame's + background alpha property. + +2023-08-07 Eli Zaretskii + + * configure.ac (HAVE_TREE_SITTER): Set NEED_DYNLIB=yes (bug#65123). + +2023-08-06 Michael Albinus + + * etc/NEWS: Mention tramp-show-ad-hoc-proxies. + + * test/lisp/net/tramp-tests.el (tramp-test42-utf8): Skip for macOS. + + * test/lisp/net/tramp-tests.el (tramp-test10-write-region): Extend test. + +2023-08-06 Eli Zaretskii + + Fix reverting Rmail buffers + + This bug happened because rmail.el relied on 'revert-buffer' to + return non-nil when it succeeds to revert, but a recent change + in 'revert-buffer' broke that promise in Emacs 29.1. + * lisp/files.el (revert-buffer--default, revert-buffer): Doc fix. + (revert-buffer): Return whatever 'revert-buffer-function' returns. + (Bug#65071) + +2023-08-05 Jim Porter + + Fix handling of 'byte-compile-ignore-files' when nil + + Before this fix, when 'byte-compile-ignore-files' was nil, + 'byte-recompile-directory' would ignore every file (bug#64985). + + * lisp/emacs-lisp/bytecomp.el (byte-recompile-directory): Handle case + when 'byte-compile-ignore-files' is nil. + +2023-08-05 Michael Albinus + + Sync with Tramp 2.6.2-pre + + * doc/misc/tramp.texi (Overview): Use "scp" in example. + (Obtaining @value{tramp}): Prefer https: to git: URIs on Savannah. + (Ssh setup): Extend for MS Windows and ssh. Explain + tramp-use-ssh-controlmaster-options value `suppress'. + (File name completion): Remove completion styles restrictions. + (Ad-hoc multi-hops): Describe tramp-show-ad-hoc-proxies. + (Remote processes): Add reference to "Using ssh connection sharing". + + * doc/misc/trampver.texi: + * lisp/net/trampver.el (tramp-version): Set to "2.6.2-pre". + + * lisp/net/tramp-adb.el (tramp-adb-handle-file-name-all-completions): + * lisp/net/tramp-archive.el + (tramp-archive-handle-file-name-all-completions): + * lisp/net/tramp-crypt.el (tramp-crypt-handle-file-name-all-completions): + * lisp/net/tramp-fuse.el (tramp-fuse-handle-file-name-all-completions): + * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-name-all-completions): + * lisp/net/tramp-sh.el (tramp-sh-handle-file-name-all-completions): + * lisp/net/tramp-smb.el (tramp-smb-handle-file-name-all-completions): + * lisp/net/tramp-sudoedit.el + (tramp-sudoedit-handle-file-name-all-completions): Return nil when + DIRECTORY is missing. (Bug#61890) + + * lisp/net/tramp.el (tramp-accept-process-output): Don't use TIMEOUT + anymore, default it to 0. When the connection uses a shared + socket possibly, accept also the output from other processes over + the same connection. (Bug#61350) + (tramp-handle-file-notify-rm-watch, tramp-action-process-alive) + (tramp-action-out-of-band, tramp-process-one-action) + (tramp-interrupt-process): + * lisp/net/tramp-adb.el (tramp-adb-handle-make-process): + * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch): + * lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch): + * lisp/net/tramp-smb.el (tramp-smb-action-get-acl) + (tramp-smb-action-set-acl, tramp-smb-wait-for-output): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-action-sudo): Adapt callees. + + * lisp/net/tramp.el (tramp-get-process, tramp-message) + (tramp-handle-make-process, tramp-handle-file-notify-valid-p) + (tramp-process-actions, tramp-accept-process-output) + (tramp-process-sentinel, tramp-read-passwd) + (tramp-interrupt-process, tramp-signal-process): + * lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection): + * lisp/net/tramp-cmds.el (tramp-cleanup-connection): + * lisp/net/tramp-crypt.el (tramp-crypt-maybe-open-connection): + * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch) + (tramp-gvfs-monitor-process-filter) + (tramp-gvfs-maybe-open-connection): + * lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection): + * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band) + (tramp-sh-handle-file-notify-add-watch) + (tramp-sh-gio-monitor-process-filter) + (tramp-sh-inotifywait-process-filter) + (tramp-barf-if-no-shell-prompt, tramp-maybe-open-connection): + * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory) + (tramp-smb-handle-file-acl, tramp-smb-handle-set-file-acl) + (tramp-smb-maybe-open-connection): + * lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-maybe-open-connection) + (tramp-sudoedit-send-command): Prefix internal process properties + with "tramp-". + + * lisp/net/tramp.el (tramp-skeleton-file-exists-p): New defmacro, + which also handles host name completion. + (tramp-handle-file-exists-p): + * lisp/net/tramp-adb.el (tramp-adb-handle-file-exists-p): + * lisp/net/tramp-sh.el (tramp-sh-handle-file-exists-p): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-file-exists-p): Use it. + + * lisp/net/tramp.el (tramp-wrong-passwd-regexp): + * lisp/net/tramp-adb.el (tramp-adb-prompt): + * lisp/net/tramp-sh.el (tramp-sh-inotifywait-process-filter): + * lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection): Unify regexps. + + * lisp/net/tramp.el: + * lisp/net/tramp-cmds.el: + * lisp/net/tramp-crypt.el: + * lisp/net/tramp-gvfs.el: + * lisp/net/tramp-sh.el: + * lisp/net/tramp-smb.el: Fix error messages. + + * lisp/net/tramp-cmds.el (tramp-cleanup-connection): + Protect `delete-process'. + + * lisp/net/tramp.el (tramp-prefix-format, tramp-prefix-regexp) + (tramp-method-regexp, tramp-postfix-method-format) + (tramp-postfix-method-regexp, tramp-prefix-ipv6-format) + (tramp-prefix-ipv6-regexp, tramp-postfix-ipv6-format) + (tramp-postfix-ipv6-regexp, tramp-postfix-host-format) + (tramp-postfix-host-regexp, tramp-remote-file-name-spec-regexp) + (tramp-file-name-structure, tramp-file-name-regexp) + (tramp-completion-method-regexp) + (tramp-completion-file-name-regexp): + * lisp/net/tramp-compat.el (tramp-syntax): + * lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-event-vector): + Rearrange declarations. + + * lisp/net/tramp-compat.el (ansi-color): Require. + (ls-lisp): Don't require. (Bug#64124) + (tramp-compat-replace-regexp-in-region): Move up. + (tramp-compat-length<, tramp-compat-length>) + (tramp-compat-length=): New defaliases. + (tramp-compat-file-name-unquote, tramp-compat-take) + (tramp-compat-ntake): Use them. + + * lisp/net/tramp-container.el (tramp-container--completion-function): + Rename from `tramp-docker--completion-function'. Add argument + PROGRAM. Use it for "docker" and "podman" host name completion. + + * lisp/net/tramp-crypt.el (tramp-crypt-handle-file-exists-p): + New defun. + (tramp-crypt-file-name-handler-alist): Add it. + + * lisp/net/tramp-fuse.el (tramp-fuse-handle-file-exists-p): New defun. + (tramp-fuse-mount-timeout): Move up. + (tramp-fuse-mount-point): Use `tramp-fuse-mount-timeout'. + (tramp-fuse-unmount): Flush "mount-point" file property. + (tramp-fuse-mount-point, tramp-fuse-mounted-p): Support existing + mount points. + (tramp-fuse-mounted-p): The mount-spec could contain an optional + trailing slash. (Bug#64278) + + * lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file) + * lisp/net/tramp-rclone.el (tramp-rclone-do-copy-or-rename-file): + Improve stability for WebDAV. + (tramp-rclone-handle-file-system-info): Check return code of + command. + + * lisp/net/tramp-gvfs.el (while-no-input-ignore-events): + Add `dbus-event' for older Emacs versions. + (tramp-gvfs-parse-device-names): Ignore errors. + + * lisp/net/tramp-sh.el (tramp-display-escape-sequence-regexp) + (tramp-device-escape-sequence-regexp): Delete. + (tramp-sh-handle-insert-directory, tramp-barf-if-no-shell-prompt) + (tramp-wait-for-output): Use `ansi-color-control-seq-regexp'. + (tramp-use-ssh-controlmaster-options): Allow new value `suppress'. + (tramp-ssh-option-exists-p): New defun. + (tramp-ssh-controlmaster-options): Implement `suppress' actions. + Should never return nil, but empty string. + (tramp-perl-file-name-all-completions): Don't print status message. + (tramp-sh-handle-file-name-all-completions): Return nil when check + fails. (Bug#61890) + (tramp-run-test): Add VEC argument. + (tramp-sh-handle-file-executable-p) + (tramp-sh-handle-file-readable-p) + (tramp-sh-handle-file-directory-p) + (tramp-sh-handle-file-writable-p): Adapt callees. + (tramp-sh-handle-insert-directory): + (tramp-sh-handle-insert-directory): Test whether -N is understood + by ls since that option is used along with --dired. Remove -N + when we remove --dired. (Bug#63142) + (tramp-sh-handle-insert-directory, tramp-barf-if-no-shell-prompt) + (tramp-wait-for-output): Use `ansi-color-control-seq-regexp'. + (tramp-sh-handle-expand-file-name): `null-device' could be nil. + Reported by Richard Copley . + (tramp-sh-handle-make-process): Improve handling of + connection-type `pipe'. (Bug#61341) + + * lisp/net/tramp-smb.el (tramp-smb-handle-make-symbolic-link): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-make-symbolic-link): + Flush TARGET file properties. + + * lisp/net/tramp-smb.el (tramp-smb-handle-copy-file): Flush proper + file properties. + (tramp-smb-handle-file-acl, tramp-smb-handle-set-file-acl): + Remove superfluous `unwind-protect'. + + * lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist): + Use `tramp-fuse-handle-file-exists-p'. + (tramp-sshfs-handle-insert-file-contents): Move result out of + unwindform. + + * lisp/net/tramp.el (tramp-string-empty-or-nil-p): New defsubst. + Use it everywhere when appropriate. + + * lisp/net/tramp.el (tramp-methods) <->: Add. + (tramp-completion-file-name-handler-alist): + Add `expand-file-name', `file-exists-p', `file-name-directory' and + `file-name-nondirectory'. + (tramp-dissect-file-name): Do not extra check for + `tramp-default-method-marker'. + (tramp-completion-handle-expand-file-name) + (tramp-completion-handle-file-exists-p) + (tramp-completion-handle-file-name-directory) + (tramp-completion-handle-file-name-nondirectory): New defuns. + (tramp-completion-handle-file-name-all-completions): Remove duplicates. + (tramp-show-ad-hoc-proxies): New defcustom. + (tramp-make-tramp-file-name): Use it. + (tramp-make-tramp-hop-name): Don't add hop twice. + (tramp-shell-prompt-pattern): Remove escape characters. + (tramp-process-one-action, tramp-convert-file-attributes): + Use `ansi-color-control-seq-regexp'. (Bug#63539) + (tramp-wrong-passwd-regexp): Add "Authentication failed" string + (from doas). + (tramp-terminal-type): Fix docstring. + (tramp-process-one-action): Delete ANSI control escape sequences + in buffer. (Bug#63539) + (tramp-build-completion-file-name-regexp): Support user name + completion. + (tramp-make-tramp-file-name): Keep hop while in file + (tramp-set-completion-function): Check, that cdr of FUNCTION-LIST + entries is a string. + (tramp-completion-file-name-handler): Run only when + `minibuffer-completing-file-name' is non-nil. + (tramp-skeleton-write-region): Fix scoping. (Bug#65022) + (tramp-handle-memory-info): Work on newly created objects, or use + non-destructive operations. + (tramp-accept-process-output): Use `with-local-quit'. + (tramp-call-process, tramp-call-process-region): + Let-bind `temporary-file-directory'. + + * test/lisp/net/tramp-archive-tests.el (tramp-archive--test-emacs28-p): + New defun. + (tramp-archive-test16-directory-files): Don't mutate. + (tramp-archive-test47-auto-load): Adapt test. + + * test/lisp/net/tramp-tests.el (tramp-display-escape-sequence-regexp): + Don't declare. + (tramp-action-yesno): Suppress run in tests. + (tramp-test02-file-name-dissect): + (tramp-test02-file-name-dissect-simplified) + (tramp-test02-file-name-dissect-separate): Adapt tests. + (tramp-test21-file-links): + (tramp-test21-file-links, tramp-test26-file-name-completion) + (tramp-test28-process-file, tramp-test29-start-file-process) + (tramp-test30-make-process, tramp-test33-environment-variables) + (tramp-test38-find-backup-file-name, tramp-test47-auto-load) + (tramp-test39-detect-external-change, tramp-test42-utf8) + (tramp-test47-auto-load, tramp-test47-delay-load) + (tramp-test48-unload): Adapt tests. + (tramp-test26-file-name-completion-with-perl): + (tramp-test26-file-name-completion-with-ls) + (tramp-test26-interactive-file-name-completion): New tests. + (tramp-test44-asynchronous-requests): Mark as :unstable. + +2023-08-05 Eli Zaretskii + + Fix documentation of saveplace facilities for Dired + + * lisp/saveplace.el (save-place-dired-hook, save-place-alist): + * lisp/dired.el (dired-initial-position-hook) + (dired-initial-position): Doc fixes. (Bug#65055) + +2023-08-04 Jim Porter + + Fix loaddef generation with ";;;foo-autoload" cookies in external packages + + This caused an issue where package-specific autoload cookies weren't + being correctly recognized, so they got dumped into the package's main + "-autoloads.el" file, instead of "-loaddefs.el" as they + should (bug#65023). + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--parse-file): + Save match data when checking syntax. + +2023-08-04 Stefan Kangas + + Delete comment saying that project.el is experimental + + * lisp/progmodes/project.el (Commentary): Delete comment saying that + the API is "still experimental". It is to be considered stable + starting with the version released with Emacs 29. + Ref: https://lists.gnu.org/r/emacs-devel/2023-07/msg00415.html + +2023-08-04 Eli Zaretskii + + Fix byte-compiled files that use 'bind-key' from use-package + + * lisp/use-package/bind-key.el (bind-key): Ensure 'bind-key' is + loaded at run time. Patch by John Wiegley . + (Bug#64901) + +2023-08-04 Eli Zaretskii + + Fix "Paste from Kill Menu" in non X toolkit builds + + * src/keymap.c (possibly_translate_key_sequence): Don't signal an + error if 'key-valid-p' returns nil. Suggested by Stefan Monnier + . (Bug#64927) + +2023-08-03 john muhl + + Handle tabs in the SQL shown in the column listing + + * lisp/sqlite-mode.el (sqlite-mode-list-columns): Handle tabs. + (Bug#64964) + +2023-08-03 Eli Zaretskii + + Add new keyword to 'typescript-ts-mode' + + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--keywords): Add "satisfies", a new operator in + Typescript 4.9. (Bug#64924) + +2023-08-03 Stefan Kangas + + Fix link to info node in prin1 docstring + + * src/print.c (Fprin1): Fix linking to info node in docstring. + + (cherry picked from commit 4b73edb8d1da74fd1bda8894e982d9768fd1f18c) + +2023-08-03 Eli Zaretskii + + Clarify the meaning of the argument of ':align-to' space spec + + * doc/lispref/display.texi (Specified Space): Clarify the meaning + and measurement of HPOS in ':align-to' space specs. (Bug#65015) + +2023-08-01 Jim Porter + + Fix handling of ".elpaignore" file when compiling packages + + * lisp/emacs-lisp/bytecomp.el (byte-recompile-directory): Treat + 'byte-compile-ignore-files' as a list of regexps per its docstring + (bug#64985). + +2023-08-01 Amritpal Singh (tiny change) + + Support files compressed by 'pigz' + + * src/decompress.c (md5_gz_stream): Check 'stream.avail_in' as + well. (Bug#63832) + + (cherry picked from commit 46b6d175054e8f6bf7cb45e112048c0cf02bfee9) + +2023-07-31 Eli Zaretskii + + Fix 'string-pixel-width' under 'line-prefix' + + * lisp/emacs-lisp/subr-x.el (string-pixel-width): Disable + 'line-prefix' and 'wrap-prefix' to avoid their effect on the + calculated string width. (Bug#64971) + +2023-07-31 Michael Albinus + + Fix find-dired-with-command for remote directories + + * lisp/find-dired.el (find-dired-with-command): + Use `start-file-process-shell-command'. (Bug#64897) + +2023-07-30 Kyle Meyer + + Update to Org 9.6.7-5-gd1d0c3 + +2023-07-30 Mattias Engdegård + + Fix rx wrong-code bug: ranges starting with ^ + + (rx (in (?^ . ?a))) was incorrectly translated to "[^-a]". + Change it so that we get "[_-a^]" instead. + + * lisp/emacs-lisp/rx.el (rx--generate-alt): Split ranges starting with + `^` occurring first in a non-negated character alternative. + * test/lisp/emacs-lisp/rx-tests.el (rx-any): Add and adapt tests. + + (cherry picked from commit 5f5d668ac7917d61e9366fe0c3efd7b542671c3d) + +2023-07-30 Basil L. Contovounesios + + Backport: Fix some tree-sitter :match regexps + + This was originally installed on 2023-06-17 in the emacs-29 release + branch and later reverted. This backport follows the Emacs 29.1 + release (bug#64019). + + The shy groups were caught by modified versions of the GNU ELPA + packages xr and relint: + - https://github.com/mattiase/xr/pull/6 + - https://github.com/mattiase/relint/pull/14 + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--s-p-query): Quote special + character in regexp. + * lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings): + * lisp/progmodes/js.el (js--plain-method-re): + (js--treesit-font-lock-settings): + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings): + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--font-lock-settings): Replace character + alternative [\\d], which matches '\' or 'd', with the most likely + intention [0-9]. Fix shy groups mistyped as optional colons. + Remove unneeded numbered :match group in rust-ts-mode. + + (cherry picked from commit cd8d3f3379ec7179fac4bb8e9c40658be15a64f6) + +2023-07-30 Po Lu + + Fix bug#64923 + + * src/xfns.c (Fx_create_frame): Prevent cairo surface from being + left without a desired size. (bug#64923) + +2023-07-30 Ulrich Müller + + Avoid spurious whitespace in the modeline of emacsclient frames + + * lisp/bindings.el (mode-line-client): Compute 'help-echotext + property in advance. (Bug#58183) + + (cherry picked from commit 8c3338f6ba354218aee12c223d778be4180f892b) + +2023-07-30 Mattias Engdegård + + Fix function help for advised aliases (bug#64797) + + * lisp/help-fns.el (help-fns--analyze-function): + For aliases, use the base function name if at the end of the chain. + This fixes a regression introduced in d30fde6b0cc. + + Reported by Michael Heerdegen. + + (cherry picked from commit 024bd1f09099ae186442001a75e578638070e296) + +2023-07-30 Eli Zaretskii + + Avoid crashes due to invalid 'mode-line-format' + + * src/xdisp.c (display_mode_element, redisplay_window_error): + Don't take XCAR of what can be Qnil. (Bug#64893) + + (cherry picked from commit 7ea3f39deec3d54914077455e70605a14eb7d200) + +2023-07-30 Eli Zaretskii + + Avoid crashes under 'which-key-mode' + + * src/keyboard.c (Fthis_single_command_keys): Don't allow calls to + Fvector with negative first argument. (Bug#64857) + + (cherry picked from commit 65834b8f8d53402517da7fe2446f5bac0aa30c39) + +2023-07-30 Eli Zaretskii + + Bump Emacs version + + * README: + * configure.ac: + * nt/README.W32: + * msdos/sed2v2.inp: + * etc/NEWS: Bump Emacs version to 29.1.50. + +2023-07-29 Vincenzo Pupillo + + Update CMake support due to upstream changes (bug#64922) + + A recent change in tree-sitter-cmake grammar support for CMake (commit + fe9b5e0), now put arguments are wrapped in a new argument_list node. + To support the old and new version of the grammar, a new function was + added on which string syntax highlighting now depends. + + * lisp/progmodes/cmake-ts-mode.el + (cmake-ts-mode--font-lock-compatibility-fe9b5e0): Indent helper + function to handle different tree-sitter-cmake version. + * lisp/progmodes/cmake-ts-mode.el + (cmake-ts-mode--font-lock-settings): Use the new function to handle + the new argument_list node. + +2023-07-24 Theodor Thornhill + + Remove nullptr named node from c++-ts-mode (bug#64818) + + The nullptr node was changed from a named node to an unnamed node + upstream[0], which caused font locking to break. As this is a small + enough regression, no compat code is required. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Remove + node no longer in use. + + [0]: + https://github.com/tree-sitter/tree-sitter-c/commit/c75868f8b508ae32a0c8490da91bb31b2b96430e + +2023-07-24 Theodor Thornhill + + Make compat check also check typescript + + * lisp/progmodes/typescript-ts-mode.el + (tsx-ts-mode--font-lock-compatibility-bb1f97b): + Add argument so that we run the 'treesit-query-capture' when the + language is 'typescript', not only 'tsx'. + + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--font-lock-settings): Use supplied argument. + +2023-07-23 Eli Zaretskii + + Update HISTORY and ChangeLog.4 + + * etc/HISTORY: + * ChangeLog.4: Update for the Emacs 29.1 release. + +2023-07-30 Eli Zaretskii + + * Version 29.1 released. + +2023-07-29 Vincenzo Pupillo + + Update CMake support due to upstream changes (bug#64922) + + A recent change in tree-sitter-cmake grammar support for CMake (commit + fe9b5e0), now put arguments are wrapped in a new argument_list node. + To support the old and new version of the grammar, a new function was + added on which string syntax highlighting now depends. + + * lisp/progmodes/cmake-ts-mode.el + (cmake-ts-mode--font-lock-compatibility-fe9b5e0): Indent helper + function to handle different tree-sitter-cmake version. + * lisp/progmodes/cmake-ts-mode.el + (cmake-ts-mode--font-lock-settings): Use the new function to handle + the new argument_list node. + +2023-07-24 Theodor Thornhill + + Remove nullptr named node from c++-ts-mode (bug#64818) + + The nullptr node was changed from a named node to an unnamed node + upstream[0], which caused font locking to break. As this is a small + enough regression, no compat code is required. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Remove + node no longer in use. + + [0]: + https://github.com/tree-sitter/tree-sitter-c/commit/c75868f8b508ae32a0c8490da91bb31b2b96430e + +2023-07-24 Theodor Thornhill + + Make compat check also check typescript + + * lisp/progmodes/typescript-ts-mode.el + (tsx-ts-mode--font-lock-compatibility-bb1f97b): + Add argument so that we run the 'treesit-query-capture' when the + language is 'typescript', not only 'tsx'. + + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--font-lock-settings): Use supplied argument. + +2023-07-23 Eli Zaretskii + + Bump Emacs version + + * README: + * configure.ac: + * nt/README.W32: + * msdos/sed2v2.inp: Bump Emacs version to 29.1. + +2023-07-23 Eli Zaretskii + + Update AUTHORS and ChangeLog.4 + + * ChangeLog.4: + * etc/AUTHORS: Update for Emacs 29.1 release. + +2023-07-22 Vincenzo Pupillo + + Update JSX support due to upstream changes (bug#64647) + + A recent change in tree-sitter-javascript grammar support for + JSX (commit bb1f97b), changed two things: + 1. renamed nested_identifier to member_expression + 2. removed jsx_fragment, jsx_text is used instead + + * lisp/progmodes/js.el (js-jsx--treesit-indent-compatibility-bb1f97b): + Indent helper function to handle different tree-sitter-javascript + version. + * lisp/progmodes/js.el (js--treesit-indent-rules): Use the new + function to handle both jsx_fragment and jsx_text. + * lisp/progmodes/js.el (js-jsx--treesit-font-lock-compatibility-bb1f97b): + Font lock helper function for handle different tree-sitter-javascript + version. + * lisp/progmodes/js.el (js--treesit-font-lock-settings): Use the new + function to handle both nested_identifier and member_expression. + +2023-07-22 Vincenzo Pupillo + + Update TSX support due to upstream changes (bug#64647) + + A recent change in tree-sitter-typescript grammar support for + TSX (commit b893426), changed two things: + 1. renamed nested_identifier to member_expression + 2. removed jsx_fragment, jsx_text is used instead + + * lisp/progmodes/typescript-ts-mode.el + (tsx-ts-mode--indent-compatibility-b893426): Indent helper function + to handle different tree-sitter-typescript version. + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--indent-rules): use the new function to handle + both jsx_fragment and jsx_text. + * lisp/progmodes/typescript-ts-mode.el + (tsx-ts-mode--font-lock-compatibility-bb1f97b): Font lock helper + function for handle different tree-sitter-typescript version. + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--font-lock-settings): Use the new function to + handle both nested_identifier and member_expression. + +2023-07-21 Philipp Stephani + + Unbreak build with CHECK_STRUCTS. + + The hash for the Lisp_Overlay structure has changed due to the (comment-only) + commit 7ac947f34c745c61f8acc1fe2452a2c720d57a0d. + + * src/pdumper.c (dump_overlay): Update struct hash. + +2023-07-21 Mattias Engdegård + + Revert "Improve commentary in nsfns.m" + + This reverts commit 3af27a4b815906c2ee38cbaf3a765289b3df061a, + because it missed the point completely. + Please talk to the original author next time. + +2023-07-20 Eli Zaretskii + + Fix NetBSD build --with-sound + + * src/sound.c (alsa_write): Use ESTRPIPE only if defined. + (Bug#64698) + +2023-07-20 Mauro Aranda + + Fix typo in pre-filter for underline property + + * lisp/cus-face.el (custom-face-attributes): Fix typo (Bug#64347) + +2023-07-20 Po Lu + + Improve commentary in nsfns.m + + * src/nsfns.m (lispString): Avoid C++ comment and make the + commentary actually relevant to the reason `make_string' is + used. + +2023-07-20 Po Lu + + Fix typos and ommissions in cus-edit.el + + * lisp/cus-edit.el (custom-display): Add missing display types. + +2023-07-18 Mattias Engdegård + + Convert NUL-containing NSString objects to Lisp strings correctly + + This cures the inability to paste text containing NUL from other + applications on macOS, introduced by mistake in 7e3c2b553f + (bug#64697). + + * src/nsfns.m ([NSString lispString]): Use make_string instead of + build_string which relies on NUL-termination. + +2023-07-15 Spencer Baugh + + Ignore quit while getting interprogram paste in kill-new + + On X, if the current selection owner is not responding to selection + requests, the user may want to take ownership of the selection. The + obvious way to do this is to kill some text (which a user might also + be doing just as part of normal editing at the time the selection + owner becomes nonresponsive). However, if + save-interprogram-paste-before-kill is non-nil, then killing text will + hang until the user quits, and this quit will abort the entire + kill-new, preventing the user from taking ownership of the selection. + + Now instead if the user quits while we are attempting to retrieve the + selection from hanging owner, we will proceed to take ownership of the + selection as normal, resolving the problem. + + (One example of a selection owner that might not be responding to + selection requests is another instance of Emacs itself; while Emacs is + blocked in call-process or Lisp execution, it currently does not + respond to selection requests.) + + * lisp/simple.el (kill-new): Ignore quit while getting interprogram + paste (bug#64423) + +2023-07-15 Wang Diancheng (tiny change) + + * lisp/progmodes/gdb-mi.el: Fix interactive invocation of 'gud-go'. + + Bug#64590. + +2023-07-15 Valtteri Vuorikoski (tiny change) + + Fix NetBSD build with and without ncurses + + * configure.ac (netbsd): Don't set TERMINFO=no unless the termcap + library is either -ltermcap or -lcurses. This prevents aborts + because on recent versions of NetBSD libtermcap is actually a + symlink to libterminfo. (Bug#64577) + +2023-07-14 YugaEgo + + Improve documentation of 'enable-local-variables' in Emacs manual + + * doc/emacs/custom.texi (Safe File Variables): Document ':all'. + (Bug#64621) + +2023-07-13 Jim Porter + + Add documentation about remote access in Eshell + + Do not merge to master. This is a backport of 438921161ac. + + * doc/misc/eshell.texi + (Invocation): Mention the '*' prefix. + (Remote Access): New section... + (Commands): ... link to it. + +2023-07-13 Jim Porter + + Document some missing Eshell commands + + Do not merge to master. This is a backport of f7a899d7ca0. + + * doc/misc/eshell.texi (Built-ins): Document 'eshell-debug'. + (Extra built-in commands): Document 'count', 'ff', and 'gf'. + +2023-07-13 Jim Porter + + Document optional Eshell modules + + Do not merge to master. This is a backport of 77f13edab0f. + + * doc/misc/eshell.texi (Built-ins): Move disabled-by-default commands + to... + (Tramp extensions, Extra built-in commands): ...here + (Optional modules, Key rebinding, Smart scrolling): Add documentation. + (Bug and ideas): Documentation is no longer incomplete! + +2023-07-13 Jim Porter + + Correct the Eshell documentation about how to write new modules + + * doc/misc/eshell.texi (Writing a module): Fix the documentation. + 'eshell-defgroup' doesn't exist anymore. + + Do not merge to master. This is a backport of 77f13edab0f. + +2023-07-13 Jim Porter + + Restructure Eshell extension modules documentation + + This adds a section for documenting all the optional modules. + + Do not merge to master. This is a backport of f2981a1681d. + + * doc/misc/eshell.texi (Extension modules): Move explanation about + writing modules to... + (Writing a module): ... here. + (Module testing): Remove. Testing an Eshell module doesn't require + any special documentation. + (Key binding, Smart scrolling, Electric forward slash): Move under... + (Optional modules): ... here. + (Directory handling, Terminal emulation): Remove. These modules are + enabled by default, and so are documented above. + (Tramp extensions, Extra built-in commands): New sections. + +2023-07-13 Jens Schmidt + + Replace duplicate text from epa.texi by a reference + + * doc/misc/auth.texi (GnuPG and EasyPG Assistant Configuration): + Replace duplicate text from epa.texi by a reference to + that. (Bug#64154) + +2023-07-13 Jens Schmidt + + Add basic usage information and fix references + + * doc/misc/epa.texi (Top): Add menu entry for new node GnuPG Pinentry. + (Quick Start): Add information on and reference to basic GnuPG + configuration. + (Encrypting/decrypting gpg files): Add usage information. + (GnuPG version compatibility): Update version information. + (GnuPG Pinentry): Add new node. + (Caching Passphrases): Describe mandatory gpg-agent usage for GnuPG + 2.0 and later. + (Overview, Encrypting/decrypting gpg files, GnuPG version compatibility) + (Caching Passphrases, Bug Reports): Fix references, terminology, + mark-up, and index entries. (Bug#64154) + +2023-07-13 Jens Schmidt + + Add concept index, title-case structure titles + + * doc/misc/epa.texi (Top, Overview, Commands, Key management) + (Cryptographic operations on regions, Cryptographic operations on files) + (Dired integration, Mail-mode integration) + (Encrypting/decrypting gpg files, Querying a key server) + (GnuPG version compatibility, Caching Passphrases) + (GNU Free Documentation License): Add concept index, title-case + structure titles. (Bug#64154) + +2023-07-10 Eli Zaretskii + + Fix show-paren-mode when the parentheses is partially visible + + * lisp/paren.el (show-paren-function): Support the case where the + open paren is partially visible, but enough so to not consider it + "off-screen". (Bug#64547) + +2023-07-08 Gregory Heytings + + Merge branch 'scratch/bug64391' into emacs-29 + +2023-07-08 Michael Albinus + + * lisp/net/tramp.el (tramp-get-buffer-string): Stabilize. + +2023-07-08 Michael Albinus + + Fix stale cache in Tramp (don't merge) + + * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-directly): + Flush cache in time. + +2023-07-07 Mattias Engdegård + + Mark failing icalendar test as unstable (bug#56241) + + * test/lisp/calendar/icalendar-tests.el + (icalendar-export-bug-56241-dotted-pair): + This test started failing early July 2023 in multiple branches at + once without any change to the code and is likely sensitive to the + current date. Tag it to keep it quiet for now. + +2023-07-06 Gregory Heytings + + Simplify after adding internal function to enter a labeled restriction + + * src/editfns.c: (Finternal__labeled_narrow_to_region): Merge the + code of Finternal__label_restriction into this function. + (Finternal__label_restriction): Remove this function. + (syms_of_editfns): Remove the 'outermost-restriction' buffer local + variable, which is not used anymore, and the symbol of + 'internal--label-restriction'. + (Fwiden): Remove the call to reset the 'outermost-restriction' + buffer local variable. + +2023-07-06 Gregory Heytings + + Add internal function to enter a labeled restriction + + * src/editfns.c (Finternal__labeled_narrow_to_region): New + function. A specific function is necessary to avoid unnecessary + slowdowns when 'narrow-to-region'/'widen' are called in a loop. + (Fnarrow_to_region): Remove the call to Fset, which has been moved + into Finternal__labeled_narrow_to_region. + (labeled_narrow_to_region): Use the new function. + (syms_of_editfns): Add the symbol of the new function. + + * lisp/subr.el (internal--with-restriction): Use the new function. + +2023-07-04 Robert Pluim + + Improve natnump shortdoc + + * lisp/emacs-lisp/shortdoc.el (number): Make it clear that zero + satisfies 'natnump'. Move 'natnump' next to 'cl-plusp' to highlight + the difference between them. + +2023-07-04 Robert Pluim + + correct info documentation of benchmark-call + + * doc/lispref/debugging.texi (Profiling): 'benchmark-call' is a defun, + not a macro. + +2023-07-03 Juri Linkov + + * lisp/progmodes/grep.el (rgrep): Fix docstring. + + Instead of the incorrect key `M-c' produce the right key + with \\\\[read-regexp-toggle-case-fold]. + +2023-07-03 Spencer Baugh + + Include a help-echo for flymake's modeline counters + + This helps clarify what each of these numbers mean. This is inspired + by 'compilation-mode-line-errors' which does the same. + * lisp/progmodes/flymake.el (flymake--mode-line-counter): Add + help-echo to mode line properties. (Bug#64424) + +2023-07-02 Eli Zaretskii + + Avoid errors in completion due to 'completion-regexp-list' + + * doc/lispref/minibuf.texi (Basic Completion): + * src/minibuf.c (syms_of_minibuf) : + Document that global non-nil settings of 'completion-regexp-list' + are not safe. + + * lisp/minibuffer.el (completion-pcm--merge-completions): Avoid + errors in 'try-completion' when PREFIX is nil. (Bug#64351) + +2023-07-01 Alan Mackenzie + + C Mode: Don't fontify foo globally as type due to "struct foo" + + This fixes bug#64322. + + * lisp/progmodes/cc-langs.el (c-typeless-decl-kwds): Make the + entry for c-mode nil. + +2023-07-01 Mattias Engdegård + + * lisp/rect.el (rectangle--duplicate-right): Fix rectangle dup bug. + + This is a necessary adjustment to changes to rect.el in Emacs 29. + +2023-07-01 Spencer Baugh + + Add project command entries to the menu-bar + + This will make it easier for new users to learn these increasingly + important and useful commands. (Bug#63469) + + * lisp/menu-bar.el (menu-bar-file-menu): Add project-dired and + project-find-file entries. + (menu-bar-search-menu): Add project-find-regexp entry. + (menu-bar-replace-menu): Add project-query-replace regexp entry. + (menu-bar-shell-commands-menu): Add project-shell entry. + (menu-bar-buffers-menu-command-entries): Add project-switch-to-buffer + and project-list-buffer entries. + (menu-bar-project-menu): Add. + (menu-bar-tools-menu): Add "Project" submenu, and also project-compile + entry and change text for compile entry. + +2023-06-30 Eli Zaretskii + + Improve documentation of registers + + * doc/lispref/text.texi (Registers): Document buffers in + registers. Mention "frameset" as another name for "frame + configuration". + * doc/emacs/regs.texi (Registers, Configuration Registers) + (File and Buffer Registers): Clarify and improve wording. Add + cross-references and indexing. + (Configuration Registers): Rename the section to a more accurate + name. (Bug#64354) + + * lisp/register.el (jump-to-register, point-to-register) + (register-alist, frame-configuration-to-register): Doc fixes. + (Bug#64353) + +2023-06-29 Andrew G Cohen + + Use a temporary buffer in nnagent-request-set-mark (bug#64117) + + Commit cb12a84f2c519a48dd87453c925e3bc36d9944db inadvertently removed + the use of a temporary buffer in nnagent-request-set-mark. Bug and + fix reported by Jens Schmidt + + * lisp/gnus/nnagent.el (nnagent-request-set-mark): Restore the use of + a temporary buffer that was inadvertently removed. + + (cherry picked from commit 5075d752773c31d959272a7e2b73b1dc38ba184c) + +2023-06-29 john muhl (tiny change) + + Support cons cell as value of ':line-width' box attribute + + * lisp/calculator.el (calculator-need-3-lines): Support + values of a face's ':line-width' box attribute that are + cons cells. (Bug#64344) + +2023-06-29 Yuan Fu + + Add missing calls to treesit_record_change in editfns.c + + These should be all that are missing. See the next commit for detail. + + * src/editfns.c (Ftranslate_region_internal): + (Ftranspose_regions): Call treesit_record_change. + +2023-06-29 Yuan Fu + + Call treesit_record_change in subst-char-in-region (bug#64329) + + * src/editfns.c (Fsubst_char_in_region): Call treesit_record_change in + the else branch. + +2023-06-29 Juri Linkov + + * lisp/misc.el (duplicate-line-final-position): New defcustom (bug#64185). + + * lisp/misc.el (duplicate-line): Use it. + + * test/lisp/misc-tests.el (misc--duplicate-line): Add tests for + duplicate-line-final-position. + + Don't merge to master. + +2023-06-29 Daniel Martín + + Make js-beginning-of-defun return non-nil on success + + The docstring of 'beginning-of-defun-function' says that the + function shall return non-nil when it found the beginning + of a defun. This is specially important because the calling + code decides when to move point depending on the return value. + * lisp/progmodes/js.el (js-beginning-of-defun) + (js--beginning-of-defun-flat): Return non-nil when the beginning + of a defun is found. (Bug#64283) + + * test/lisp/progmodes/js-tests.el (js-mode-end-of-defun): Add a unit + test. + +2023-06-27 Yuan Fu + + Tree-sitter use with-silent-modifications like jit-lock (bug#64321) + + * lisp/treesit.el (treesit--font-lock-notifier): Use + with-silent-modifications when marking modified text to be fontified + by jit-lock. This is what jit-lock itself does. + +2023-06-27 Stephen Berman + + Fix todo-mode.el Commentary and a doc string (bug#64298) + + * lisp/calendar/todo-mode.el: Explicitly note in the Commentary + that the Todo mode user manual is a separate Info manual in the + Emacs installation. + (todo-always-add-time-string): Replace doc string, which was + mistakenly retained in the initial merge of this version of + todo-mode.el, by a correct description of this user option. + +2023-06-27 Stephen Berman + + Prevent truncation of todo-mode categories sexp + + * lisp/calendar/todo-mode.el (todo-delete-file) + (todo-move-category, todo-convert-legacy-files) + (todo-update-categories-sexp, todo-check-format): + Bind print-length and print-level to nil before using prin1 + and related functions, to avoid truncating the todo categories + sexp and possibly corrupting the file format. + +2023-06-27 Stephen Berman + + Avoid making todo-mode buffers manually editable + + * lisp/calendar/todo-mode.el (todo-add-category) + (todo-move-category, todo-edit-item--header) + (todo-set-item-priority, todo-move-item, todo-item-undone) + (todo-archive-done-item, todo-set-category-number): Restrict the + scope of nil buffer-read-only to the function calls that change + buffer text, thereby preventing todo mode buffers from becoming + manually editable and hence possibly corrupted when the minibuffer + is in use. + +2023-06-26 Michael Albinus + + Fix Tramp mount-spec (don't merge) + + * lisp/net/tramp-fuse.el (tramp-fuse-mounted-p): The mount-spec + could contain an optional trailing slash. (Bug#64278) + +2023-06-25 Daniel Semyonov + + Fix VC package build when doc file isn't in a subdir + + * lisp/emacs-lisp/package-vc.el (package-vc--build-documentation): + Expand 'file' before attempting to get its directory. (Bug#64242) + +2023-06-25 Michael Albinus + + Fix type check in tramp-get-buffer-string + + * lisp/net/tramp.el (tramp-get-buffer-string): Check, that BUFFER + is really a bufferp. + +2023-06-25 Richard M. Stallman + + Clarify list terminology + + * doc/lispintro/emacs-lisp-intro.texi (Lists diagrammed): + Mention "cons cell". Add index entries. + (car & cdr): Simplify etymology of `car' and `cdr'. + Explain why for some purposes they are better than `first' and `rest'. + Mention cons cells. + + (cherry picked from commit 188c90c7c111dbbdc3edd29c23b59ade26f97bfd) + +2023-06-24 Mattias Engdegård + + * lisp/emacs-lisp/shortdoc.el: More and better `substring` examples. + + Suggested by Juri Linkov. + +2023-06-24 Eli Zaretskii + + Fix "C-x RET r" when the new encoding is UTF + + * src/fileio.c (Finsert_file_contents): Update point of + 'conversion_buffer' before decoding the last block. (Bug#64253) + +2023-06-23 Dmitry Gutov + + Fix "vc-print-log does not erase buffer" and associated problems + + * lisp/vc/vc.el (vc-deduce-fileset): Make sure to retain the + buffer switch (if it did), bug#63949. + +2023-06-23 Theodor Thornhill + + Add selector_expression indentation rule + + * lisp/progmodes/go-ts-mode.el (go-ts-mode--indent-rules): New rule. + +2023-06-22 Eli Zaretskii + + Add "nixd" LSP server to Eglot + + * lisp/progmodes/eglot.el (eglot-server-programs): Add "nixd". + Patch by Brian Leung . (Bug#64214) + +2023-06-22 Eli Zaretskii + + Fix building --with-native-compilation=aot from release tarball + + * lisp/Makefile.in (%.eln): Pattern rule for AOT native + compilation. + (compile-eln-targets, compile-eln-aot): New targets for AOT native + compilation. + + * src/Makefile.in (../native-lisp): If NATIVE_COMPILATION_AOT is + set, also native-compile all the other Lisp files. + (Bug#64167) + +2023-06-21 Alan Mackenzie + + Fix bug#64152 (Minibuffer sometimes goes "modal") + + In particular, when a frame has no minibuffer and is using that + of a different "normal" frame, C-x 5 o, etc., and GUI + operations fail. + + Fix by partially reverting the commit from 2022-07-07 15:38:09 + +0000 "Remove obscure, obsolete code from do_switch_frame". As + a consequent change, also revert the commit from 2022-07-08 + 20:19:03 +0000 "Remove now unused parameter TRACK from + do_switch_frame". + + * src/frame.c (do_switch_frame): Restore the TRACK parameter. + Restore the code which redirects the frame focus when a new + frame gets selected. + + * src/frame.c (Fselect_frame, Fhandle_switch_frame) + (delete_frame) + * src/keyboard.c (quit_throw_to_read_char) + * src/lisp.h (do_switch_frame prototype) + * src/minibuf.c (read_minibuf_unwind) + * src/window.c (Fset_window_configuration): Restore the TRACK + argument to do_switch_frame. + + * src/xterm.c (x_try_restore_frame): Add a zero TRACK argument + to do_switch_frame. + +2023-06-21 Eli Zaretskii + + Disable target-async by default in gdb-mi.el + + * lisp/progmodes/gdb-mi.el (gdb-non-stop-setting): Disable until + bug#63084 is fixed. (Bug#64186) + +2023-06-20 Filipp Gunbin + + Revert "Fix parsing of dn line if WITHDN is non-nil" + + This reverts commits 71b27779a9a and d2246b26275, because they change + the return value of "ldap-search" in an incompatible way. The fix + (a different one) will be done on master instead (bug#64089). + +2023-06-20 Eli Zaretskii + + Don't truncate filenames with "emacs.el" in them + + * lisp/emacs-lisp/find-func.el (find-function-search-for-symbol): + Avoid false positives when looking for "emacs.el" matches the + likes of "emacs.elpa". (Bug#64143) + +2023-06-20 Eli Zaretskii + + Improve documentation of 'minibuffer-message' + + * doc/lispref/minibuf.texi (Minibuffer Misc): Clarify that + 'minibuffer-message' behaves like 'message' if called from a + buffer that is not a minibuffer. + + * lisp/minibuffer.el (minibuffer-message) + (set-minibuffer-message, clear-minibuffer-message): Doc fixes. + (Bug#64165) + +2023-06-19 João Távora + + Eglot: again fix positions of coinciding inlay hint overlays (bug#64101) + + This bug originated from the previous fix, and is reproducible on non + Mac OS platforms, as long as the very latest version (at time of + writing) of the rust-analyzer server is used. + + * lisp/progmodes/eglot.el (eglot--update-hints-1): Reverse + priorities when pegging overlays after (i.e. when before-string is + used). + +2023-06-18 Eli Zaretskii + + * lisp/ldefs-boot.el: Regenerate. + +2023-06-18 Eli Zaretskii + + Bump Emacs version to 29.0.92 + + * README: + * configure.ac: + * nt/README.W32: + * msdos/sed2v2.inp: Bump version to 29.0.92. + +2023-06-18 Mattias Engdegård + + Describe primarily the Emacs s-exp dialect for treesit queries + + * doc/lispref/parsing.texi (Pattern Matching, Multiple Languages): + Writing tree-sitter queries as Emacs s-expressions is much more + convenient than using the native query notation inside a string, + so it makes sense to base the documentation on the former dialect + (bug#64017). + +2023-06-18 Eli Zaretskii + + Fix documentation of :predicate in 'define-globalized-minor-mode' + + * doc/lispref/modes.texi (Defining Minor Modes): + * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): + Document that :predicate creates a customizable user option. + (Bug#64048) + +2023-06-17 Basil L. Contovounesios + + Revert "Fix some tree-sitter :match regexps" + + This reverts commit 95091b77f0bbb2ae1aa94ef4a413626e7d434d58 + of 2023-06-17, mistakenly pushed to emacs-29. + + The patch will be installed on master instead, and backported later, + after Emacs 29.1 is released (bug#64019). + + Do not merge to master. + +2023-06-17 Michael Albinus + + Require ls-lisp in Tramp only when needed + + * lisp/net/tramp-compat.el (ls-lisp): Require only on MS Windows. + (Bug#64124) + + * lisp/net/tramp-sh.el (ls-lisp-use-insert-directory-program): Declare. + (tramp-sh-handle-insert-directory): Simplify. + + * lisp/net/tramp.el (ls-lisp-use-insert-directory-program): Declare. + (tramp-handle-insert-directory): Require ls-lisp. Simplify. + +2023-06-17 Alan Mackenzie + + After minibuffer action, don't make the minibuffer current + + This fixes bug#63967. + + * src/minibuf.c (minibuffer_unwind): After restoring the next + minibuffer outwards to the mini window (when + enable-recursive-minibuffers is non-nil), don't call + Fset_frame_selected_window, which used to set the current + window to be the mini window. + +2023-06-17 Basil L. Contovounesios + + Fix some tree-sitter :match regexps + + The shy groups were caught by modified versions of the GNU ELPA + packages xr and relint: + - https://github.com/mattiase/xr/pull/6 + - https://github.com/mattiase/relint/pull/14 + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--s-p-query): Quote special + character in regexp. + * lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings): + * lisp/progmodes/js.el (js--plain-method-re): + (js--treesit-font-lock-settings): + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings): + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--font-lock-settings): Replace character + alternative [\\d], which matches '\' or 'd', with the most likely + intention [0-9]. Fix shy groups mistyped as optional colons. + Remove unneeded numbered :match group in rust-ts-mode (bug#64019). + +2023-06-17 João Távora + + Eglot: fix relative position of coinciding inlay hint overlays (bug#64101) + + Only seems to happen on certain platforms, like Mac OS. Reason + unknown reason so far, but this defensive fix seems safe. + + * lisp/progmodes/eglot.el (eglot--update-hints-1): Explicitly put + priority in inlay hint overalys. + +2023-06-17 Eli Zaretskii + + Fix documentation of comment-dwim (bug#64104) + + * lisp/newcomment.el (comment-dwim): Doc fix. + + * doc/emacs/programs.texi (Comment Commands): More accurate + description of what 'M-;' does when there's no active region. + +2023-06-17 Jens Schmidt + + Fix parsing of dn line if WITHDN is non-nil + + Function `ldap-search' errors out with `wrong-type-argument listp' + when called with WITHDN non-nil. + * lisp/net/ldap.el (ldap-search-internal): Parse the dn line + correctly so that `ldap-search' can grok it. (Bug#64089) + +2023-06-15 Andreas Schwab + + * doc/misc/calc.texi (Advanced Math Functions): Correct calc + algebraic syntax. + +2023-06-15 Eli Zaretskii + + Consider 'dired-kill-when-opening-new-dired-buffer' in mouse clicks + + * lisp/dired.el (dired-mouse-find-file): Honor the value of + 'dired-kill-when-opening-new-dired-buffer'. (Bug#64079) + +2023-06-15 Eli Zaretskii + + Fix Gamma function definition in calc.texi + + * doc/misc/calc.texi (Advanced Math Functions): Fix definition + of Gamma function. Use @sup in @infoline lines. (Bug#64077) + +2023-06-15 Eli Zaretskii + + Fix subscripts in the Calc manual + + * doc/misc/calc.texi (Musical Notes): Use @sub instead of TeX-only + '_' notation. For the details, see the discussion in + https://lists.gnu.org/archive/html/emacs-devel/2023-06/msg00096.html. + +2023-06-15 Eli Zaretskii + + Improve documentation of 'declare' forms + + * lisp/simple.el (read-extended-command-predicate): Mention the + '(declare completion ...' form in the doc string. + + * doc/lispref/functions.texi (Declare Form): Clarify + 'completion-predicate' and 'modes'; add cross-references. + (Bug#64045) + +2023-06-13 Basil L. Contovounesios + + Improve tree-sitter docs + + * doc/lispref/positions.texi (List Motion): Incorporate more + accurate description of treesit-defun-type-regexp from + '(elisp) Tree-sitter Major Modes', replacing that duplicate + entry (bug#64018). + + * doc/lispref/parsing.texi (Parsing Program Source) + (Language Grammar, Using Parser, Retrieving Nodes) + (Accessing Node Information, Pattern Matching, Multiple Languages): + (Tree-sitter Major Modes): + * doc/lispref/modes.texi (Parser-based Font Lock): Improve wording, + grammar, punctuation, and markup. Fix typos. + (Parser-based Indentation): Ditto. Document indent rule presets + field-is, catch-all, nth-sibling, grand-parent, and + great-grand-parent. + + * lisp/treesit.el (treesit-simple-indent-presets): Mention field-is, + catch-all, nth-sibling, grand-parent, great-grand-parent in + docstring. + (treesit-major-mode-setup, treesit-explore-mode): Improve + docstring/commentary grammar. + +2023-06-13 Basil L. Contovounesios + + Fix some Texinfo markup in manuals + + * doc/emacs/macos.texi (Mac / GNUstep Customization): + * doc/lispintro/emacs-lisp-intro.texi (condition-case): + * doc/lispref/control.texi (pcase Macro): + * doc/lispref/debugging.texi (Internals of Debugger): + * doc/lispref/internals.texi (Building Emacs): + * doc/lispref/modes.texi (Imenu): + (Parser-based Font Lock, Parser-based Indentation): + * doc/lispref/parsing.texi (Retrieving Nodes, Tree-sitter C API): + * doc/lispref/processes.texi (Network, Bindat Types): + * doc/lispref/searching.texi (Rx Functions): + * doc/lispref/text.texi (Replacing): + * doc/lispref/windows.texi (Textual Scrolling): + * doc/misc/calc.texi (Killing From Stack, Customizing Calc): + * doc/misc/cc-mode.texi (Misc Font Locking, List Line-Up): + * doc/misc/ede.texi (ede-cpp-root-project) + (ede-proj-target-makefile, ede-sourcecode): + * doc/misc/ert.texi (Running Tests in Batch Mode): + * doc/misc/eudc.texi (Emacs-only Configuration, The Server Hotlist): + * doc/misc/eww.texi (Advanced): + * doc/misc/flymake.texi (Starting Flymake) + (Proc customization variables): + * doc/misc/tramp.texi (File name completion): + * doc/misc/gnus.texi (Summary Buffer Lines, Gnus Registry Setup) + (Fancy splitting to parent, Customizing the IMAP Connection) + (Mail Source Specifiers, Agent as Cache): Consistently mark up nil + and t as @code. Also fix the markup and wording of some surrounding + text (bug#64016). + + * doc/lispref/display.texi (SVG Images, Icons): + * doc/lispref/modes.texi (Customizing Keywords): Prefer ASCII + apostrophe over Unicode right single quotation mark. + +2023-06-13 Basil L. Contovounesios + + Fix bol/bos anchors in tree-sitter :match regexps + + Further regexp fixes to follow separately (bug#64019#29). + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): + * lisp/progmodes/cmake-ts-mode.el + (cmake-ts-mode--font-lock-settings): + * lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings): + * lisp/progmodes/js.el (js--treesit-font-lock-settings): + * lisp/progmodes/python.el (python--treesit-settings): + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings): + * lisp/progmodes/sh-script.el (sh-mode--treesit-settings): + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--font-lock-settings): + * test/src/treesit-tests.el (treesit-query-api): Anchor :match + regexps at beginning/end of string, not line. + +2023-06-12 Stefan Monnier + + * lisp/subr.el (with-restriction): Tweak indent rule + +2023-06-12 Eli Zaretskii + + Fix setting region in the minibuffer + + * lisp/minibuffer.el (minibuffer-beginning-of-buffer): Fix setting + region. (Bug#64022) + +2023-06-12 Michael Albinus + + Fix setting $DBUS_SESSION_BUS_ADDRESS after Emacs has started + + * doc/misc/dbus.texi (Alternative Buses): Explain using + $DBUS_SESSION_BUS_ADDRESS after Emacs has started. + + * src/dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Use egetenv. + +2023-06-11 Eli Zaretskii + + Fix tex-mode display-buffer issues + + * lisp/window.el (display-tex-shell-buffer-action): New defcustom. + * lisp/textmodes/tex-mode.el (tex-display-shell) + (tex-cmd-doc-view, tex-recenter-output-buffer): Use it. + (Bug#63956) + +2023-06-10 Morgan Smith + + Add test for when 'completion-auto-help' is 'visible' + + * test/lisp/minibuffer-tests.el (completion-auto-help-test): Add + test for when 'completion-auto-help' is 'visible'. Also test + for successful completion message. (Bug#63913) + +2023-06-10 Eli Zaretskii + + Avoid errors in 'apropos-documentation' after 'eval-buffer' + + * lisp/apropos.el (apropos--map-preloaded-atoms): Support the case + where an element of 'load-history' has nil as its car. (Bug#63881) + +2023-06-10 Daniel Martín + + Mention indent-rigidly in the Emacs manual + + * doc/emacs/indent.texi (Indentation Commands): Rewrite the first + sentence of 'C-x TAB' to mention the command that it executes, and + without using passive voice. (Bug#63997) + +2023-06-10 Morgan Smith + + Don't ding when completion succeeded + + * lisp/minibuffer.el (minibuffer-completion-help): Ensure 'ding' + is not called on a successful completion. Ensure 'ding' is not + called on a failure if 'completion-fail-discreetly' is set. + Also change "No completions" to "No match" as that is what is + used elsewhere. (Bug#63913) + +2023-06-09 Eli Zaretskii + + Improve documentation of color-related functions + + * doc/lispref/frames.texi (Color Names): Document + 'color-name-to-rgb' and 'color-dark-p'. + +2023-06-08 Eli Zaretskii + + Revert "* package.el (package--get-activatable-pkg): Prefer source packages" + + This reverts commit fb87d5008e21d1bc03547c1edf2280fb4cb8311e. + It caused problems when new versions of packages are installed + without deleting old versions. (Bug#63757) + +2023-06-08 Michael Albinus + + Fix connection-local user options handling (bug#63300) + + * lisp/files-x.el (connection-local-set-profiles) + (connection-local-set-profile-variables): Avoid saving the changed + user option to file unless triggered explicitly by user. (Bug#63300) + +2023-06-08 Eli Zaretskii + + Document 'startup-redirect-eln-cache' + + * doc/lispref/compile.texi (Native Compilation) + (Native-Compilation Functions): Document + 'startup-redirect-eln-cache'. + + * etc/PROBLEMS: Fix last change. + * etc/NEWS: Mark 'startup-redirect-eln-cache' as documented. + +2023-06-06 Andrea Corallo + + Fix `emacs-lisp-native-compile-and-load' for C-h f (bug#58314) + + * lisp/emacs-lisp/comp.el (comp-write-bytecode-file): New function + spilling code from `batch-byte+native-compile'. + (batch-byte+native-compile): Make use of. + * lisp/progmodes/elisp-mode.el + (emacs-lisp-native-compile-and-load): Produce the elc file and ask + to have it loaded. + +2023-06-06 Theodor Thornhill + + Add 'infer' as a keyword to typescript-ts-mode (bug#63880) + + * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode--keywords): + New keyword. + +2023-06-04 Philip Kaludercic + + Revert changes to the order in which package descs are loaded + + * lisp/emacs-lisp/package.el (package-load-all-descriptors): Remove + NOSORT argument to 'directory-files', reverting back to the behavior + as of Emacs 28. (Bug#63757) + +2023-06-04 Spencer Baugh + + Handle point in last file-name component in minibuffer completion + + This is a followup to commit e338a8ac41d4a9fd798dda90275abe75ac071335 + (Handle point not at EOB in minibuffer-choose-completion). + That commit added a heuristic, but the heuristic was insufficient: + It still had the original wrong behavior when completing the last + file-name component (i.e., the completion category is 'file' and + there's no slash after point). This patch makes the heuristic + cover that case as well. + * lisp/minibuffer.el (minibuffer-next-completion) + (minibuffer-choose-completion): If in file completion and there's no + slash after point, clear what's after point when we complete. + (Bug#62700) + +2023-06-03 Eli Zaretskii + + Avoid asking redundant question in emacsbug.el + + * lisp/mail/emacsbug.el (report-emacs-bug-hook): Don't ask the + question about saving email setup if we cannot save it anyway. + (Bug#63816) + +2023-06-03 Michael Albinus + + * test/infra/Dockerfile.emba (emacs-base): Don't install gawk. + +2023-06-03 Dmitry Gutov + + typescript-ts-mode: Add a rule for function_signature + + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--font-lock-settings): + Add a rule for function_signature (bug#63867) + +2023-06-03 Mattias Engdegård + + * admin/unidata/emoji-zwj.awk: Avoid sprint buffer overflow + + Some AWK implementations have a fixed buffer for sprintf; for mawk the + default size is 8192 bytes. Hoist a string concatenation from + a sprintf call to avoid running into that limit. See discussion at + https://lists.gnu.org/archive/html/emacs-devel/2023-06/msg00090.html . + + (cherry picked from commit b5f17fe07c6624380ba8d0c7a400a6b89f225209) + +2023-06-03 Йордан Миладинов (tiny change) + + Fix apostrophe handling in rust-ts-mode and go-ts-mode (Bug#63708) + + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--syntax-propertize): + Treat apostrophes as strings if used to define character literals. + Treat LT and GT as pairs if used to define type parameters (formerly + they were treated as pairs only for type arguments). + * lisp/progmodes/go-ts-mode.el (go-ts-mode--syntax-table): Treat + apostrophes as strings if used to define rune literals. + +2023-06-03 Michael Albinus + + * test/infra/Dockerfile.emba (emacs-base): Install also gawk. + +2023-06-03 Eli Zaretskii + + Fix 'python-util-clone-local-variables' + + * lisp/progmodes/python.el (python-util-clone-local-variables): + Avoid signaling an error when a local variable is unbound. + Patch by Ernesto Alfonso . (Bug#63818) + +2023-06-03 kobarity + + Revert "Enhance Python font-lock to support multilines" + + This reverts commit 4915ca5dd4245a909c046e6691e8d4a1919890c8. + + We have found that there are performance issues when editing a large + file. The issue can be reproduced as follows: + + 1. emacs -Q + 2. Open large Python file (e.g. turtle.py in Python) + 3. Near the top of the buffer, enter open paren and some characters. + + The above commit extends the region to be font-locked using + `python-nav-end-of-statement'. However, if there are unbalanced + parens, it may move point to the end of the buffer. This causes + almost the entire buffer to be font-locked, which is not acceptable + for large files. + +2023-06-03 Eli Zaretskii + + Fix typo in calc.texi + + * doc/misc/calc.texi (Programming Tutorial): Fix a typo. + Suggested by Vladimir Nikishkin . + +2023-06-02 Jonas Bernoulli + + Update to Transient v0.4.1 + +2023-06-02 Eli Zaretskii + + Avoid errors in 'delete-forward-char' deleting static compositions + + * lisp/simple.el (delete-forward-char): Fix recognition of static + compositions. (Bug#63837) + +2023-06-02 Robert Pluim + + Make VS-15 and VS-16 compositions work correctly + + There is a conflict between forward matching and backward matching + composition rules involving the same codepoint, which can cause the + backward matching ones not to be invoked. Ensure that VS-15 (U+FE0E) + and VS-16 (U+FE0F) are composed by forward matching rules instead in + order to avoid this issue. + + * admin/unidata/emoji-zwj.awk: Add rules for CHAR+VS-15 and CHAR+VS-16. + * lisp/composite.el: remove backward matching rule for VS-15. (Bug#63731) + +2023-06-01 Dmitry Gutov + + Fix project-name for vc-aware backend in non-file buffers + + * lisp/progmodes/project.el (project-name): Make sure + project-vc-name is picked up from dir-locals in all + non-file-visiting buffers too (mentioned in bug#63469). + +2023-05-31 Theodor Thornhill + + Add type_predicate 'is' as keyword in typescript-ts-mode (bug#63810) + + * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode--keywords): + New keyword 'is'. + +2023-05-31 Eli Zaretskii + + Fix infloop in info-look.el + + * lisp/info-look.el (info-lookup-guess-gdb-script-symbol): Fix + infloop when there are no completions. (Bug#63808) + +2023-05-31 Stephen Berman + + Fix several todo-mode.el item editing bugs (bug#63811) + + * lisp/calendar/todo-mode.el (todo-insert-item--basic): With + insertion type 'here', ensure item is inserted on the todo-mode + line where the command was invoked. + (todo-edit-item--cat, todo-edit-item--pos): New variables. + (todo-edit-item--text): Restrict the scope of nil-valued + buffer-read-only to the functions that change buffer text. If + user moved point while editing a single-line todo item or a done + item comment, or while inserting a done item comment, restore + point, and for comments, make sure the done items section is + displayed. For multiline items, set the new variables so + todo-edit-quit can use them. + (todo-edit-quit): Use the values of the new variables to restore + point in the todo-mode buffer if it had been moved while editing. + (todo-edit-item--header): Avoid clobbering match data when editing + a todo item header. + +2023-05-31 Randy Taylor + + dockerfile-ts-mode: Prevent empty categories in imenu (Bug#63759) + + * lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode--imenu): + Don't include empty categories. + +2023-05-31 Jens Schmidt + + Brush up doc strings and terminology in plstore.el + + * lisp/plstore.el (plstore-encoded, plstore-passphrase-callback-function) + (plstore--init-from-buffer, plstore-revert, plstore-close) + (plstore--merge-secret, plstore--decrypt, plstore--match, plstore-find) + (plstore-get, plstore-put, plstore-delete, plstore--insert-buffer) + (plstore-save, plstore--encode, plstore--decode) + (plstore--write-contents-functions, plstore-mode-decoded) + (plstore-mode): Brush up doc strings and documentation in general. + Fix terminology, in particular spurious occurrences of all uppercase + "PLSTORE". (Bug#63627) + +2023-05-31 Jens Schmidt + + Add internal documentation on plstore.el + + * lisp/plstore.el: Add internal documentation and some words of + warning in the user documentation. (Bug#63627) + +2023-05-30 Theodor Thornhill + + Add compact_constructor_declaration font-locking to java-ts-mode + + * lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings): + New pattern. + +2023-05-29 Juri Linkov + + * lisp/tmm.el (tmm-completion-delete-prompt): Add more checks (bug#63754). + + In case when 'completions-header-format' is nil, the first 'mouse-face' + property is at the beginning of the buffer. So first use 'get-text-property' + at point-min. + +2023-05-29 Eli Zaretskii + + Allow to disable the DWIMish behavior of 'x' in package menu + + * lisp/emacs-lisp/package.el + (package-menu-use-current-if-no-marks): New defcustom. + (package-menu-execute): Use it. (Bug#62563) + + * etc/NEWS: Announce the new option. + +2023-05-29 Robert Pluim + + Allow dired to invoke secondary browser + + 'browse-url-of-dired-file' always invokes the primary browser, but + sometimes it's handy to call a different browser, which is why + 'browse-url-secondary-browser-function' exists. + + * lisp/net/browse-url.el (browse-url-of-dired-file): Call + 'browse-url-secondary-browser-function' when invoked with a prefix + argument. + * etc/NEWS: Announce the change. + +2023-05-29 Robert Pluim + + Add a binding for enriched-toggle-markup + + * lisp/textmodes/enriched.el (enriched-mode-map): Bind + 'enriched-toggle-markup' to 'M-o m'. + * etc/NEWS: Announce the change. + +2023-05-29 Eli Zaretskii + + Fix order of tmm-menubar when 'tmm-mid-prompt' is nil + + * lisp/tmm.el (tmm-prompt): Reverse 'tmm-km-list' when + 'tmm-mid-prompt' is nil, to present the menu in the correct order. + Suggested by Thiago Melo . + +2023-05-29 Michael Albinus + + Fix regression when saving tramp-default-proxies-alist (Do not merge) + + * lisp/net/tramp.el (tramp-add-hops): Suppress `signal-hook-function'. + Save `tramp-default-proxies-alist' only when changed. + +2023-05-28 Yuan Fu + + Save the tree-sitter grammar recipe when installing a grammar + + Raised in bug#63750, but not the main subject of it. + + * lisp/treesit.el (treesit-install-language-grammar): Save the recipe + to treesit-language-source-alist when installation is successful. + +2023-05-28 Robert Pluim + + Add instructions and test file for VS-15/VS-16 + + * admin/notes/unicode: Add instructions for emoji-variation-sequences.txt + * admin/unidata/emoji-variation-sequences.txt: New file, imported from + Unicode 15. + +2023-05-28 Michael Heerdegen + + A better fix for "Fix cancellation of Wdired" + + * lisp/wdired.el (wdired-abort-changes): Call + `dired-build-subdir-alist' instead of `dired-revert'. + (Bug#63676) + +2023-05-27 Eli Zaretskii + + Fix tmm-menubar when 'tmm-completion-prompt' is nil + + * lisp/tmm.el (tmm-prompt): Handle nil value of 'tmm-mid-prompt'. + (tmm-completion-delete-prompt): Don't rely on the exact text of + the completion heading line, as it is now a customizable format + string, and can be nil, meaning no heading line is inserted at + all. Instead, search for the first character of the menu based on + text properties used for it. (Bug#63754) + +2023-05-26 kobarity + + Use 'font-lock-extend-region-functions' in python-mode + + * lisp/progmodes/python.el (python-font-lock-extend-region): Change + arguments and return value for 'font-lock-extend-region-functions'. + (python-mode): Change from + 'font-lock-extend-after-change-region-function' to + 'font-lock-extend-region-functions'. (Bug#63622) + +2023-05-26 kobarity + + Fix python-info-docstring-p + + * lisp/progmodes/python.el (python-info-docstring-p): Stop using + python-rx string-delimiter. + + * test/lisp/progmodes/python-tests.el + (python-font-lock-escape-sequence-bytes-newline) + (python-font-lock-escape-sequence-hex-octal) + (python-font-lock-escape-sequence-unicode) + (python-font-lock-raw-escape-sequence): Mark as expected failures + until another bug in 'python-info-docstring-p' is corrected. + (python-info-docstring-p-7): New test. (Bug#63622) + +2023-05-26 Eli Zaretskii + + Fix cancellation of Wdired + + * lisp/wdired.el (wdired-abort-changes): Call 'dired-revert'. + Patch by Stephen Berman . (Bug#63676) + +2023-05-26 Mattias Engdegård + + Handle #@00 in new reader in a compatible way (bug#63722) + + This was a regression from Emacs 28. + + * src/lread.c (skip_lazy_string, read0): Make #@00 read as nil, which + is a quirk from the old reader that we preserve for compatibility. + * test/src/lread-tests.el (lread-skip-to-eof): Verify it. + + Reported by Richard Newton. + +2023-05-25 Po Lu + + Don't mark selection request events + + * src/pgtkterm.c (mark_pgtkterm): Prevent crash by not marking + selection request events, which don't have Lisp_Object members. + +2023-05-25 Po Lu + + Disable cairo-xcb support by default + + * INSTALL (--with-cairo-xcb): Document new option. + * configure.ac (USE_CAIRO_XCB): Implement new option. + +2023-05-25 Juri Linkov + + * lisp/progmodes/project.el: Move :safe from defcustom to autoload (bug#63469) + + (project-vc-ignores, project-vc-merge-submodules) + (project-vc-include-untracked, project-vc-name) + (project-vc-extra-root-markers, project-kill-buffers-display-buffer-list): + Autoload the line that puts 'safe-local-variable' property on defcustom symbol + instead of using the :safe keyword. + +2023-05-25 Juri Linkov + + * lisp/vc/vc-annotate.el (vc-annotate-mode-menu): Quote vc-annotate-backend. + + When unquoted it might get the nil value when vc-annotate.el is loaded + in non-vc-controlled buffer (bug#63689). + +2023-05-25 Juri Linkov + + Add vc-create/switch/print-branch to menu and update documentation (bug#63690) + + * doc/emacs/maintaining.texi (VC Change Log): + Add 'C-x v b l' (vc-print-branch-log). + (Creating Branches): Add @kindex and @findex for vc-create-branch. + (Switching Branches): Add @kindex and @findex for vc-switch-branch. + + * lisp/vc/vc-hooks.el (vc-menu-map): Add menu items for new + commands vc-create-branch and vc-switch-branch, and also + vc-print-branch-log. + + * lisp/vc/vc.el (vc-print-branch-log): Improve docstring. + +2023-05-25 Eli Zaretskii + + Fix rare crashes in 'try_window_reusing_current_matrix' + + * src/xdisp.c (try_window_reusing_current_matrix): Make sure we + never use a mode-line glyph row to start displaying scrolled-in + rows. (Bug#63711) + +2023-05-25 Michael Albinus + + Make last Tramp change less invasive + + * lisp/net/tramp.el (tramp-dissect-file-name): Revert last change. + (tramp-handle-file-name-as-directory) + (tramp-handle-file-name-directory): Let-bind `tramp-default-proxies-alist'. + +2023-05-23 Eli Zaretskii + + Fix 'use-dialog-box-p' and friends + + * lisp/subr.el (use-dialog-box-p): Use dialog boxes also when + invoked from some window-system gesture. (Bug#63655) + (y-or-n-p): Fix the description in the doc string of conditions + under which a dialog box will be used. + + * src/fns.c (Fyes_or_no_p): Use the same condition for dialog + boxes as in 'use-dialog-box-p'. Fix the description in the doc + string of conditions under which a dialog box will be used. + + * doc/lispref/minibuf.texi (Multiple Queries, Yes-or-No Queries): + Fix the description of conditions under which a dialog box will be + used. + +2023-05-23 Stefan Monnier + + Avoid duplicates when adding package dirs to load-path + + Do not merge to master, we're going to delete this code there. + + * lisp/emacs-lisp/package.el (package-activate-1): Check if the path + we're about to add is already in 'load-path', since package autoload + files have been updating 'load-path' for a decade. + +2023-05-23 Robert Pluim + + Avoid duplicate load-path entry when generating package autoloads + + 'file-name-directory' produces a path ending in '/', so that needs to be + run through 'directory-file-name' to avoid duplicate entries in + 'load-path'. (Bug#63625) + + * lisp/emacs-lisp/package.el (package-generate-autoloads): Call + 'directory-file-name' on the directory of 'load-file-name'. + +2023-05-23 Eli Zaretskii + + Disable loading SQLite3 extensions when SQLite3 version is too old + + * src/sqlite.c (HAVE_LOAD_EXTENSION): Define to 1 only if + enabling/disabling extension loading is supported as well. + (load_dll_functions, Fsqlite_load_extension): Condition on + HAVE_LOAD_EXTENSION, not on HAVE_SQLITE3_LOAD_EXTENSION. + (Bug#63653) + +2023-05-22 Eli Zaretskii + + Fix visiting HTML files encoded in iso-2022 variants + + * lisp/international/mule.el (sgml-xml-auto-coding-function) + (sgml-html-meta-auto-coding-function): Handle coding-systems whose + coding-system-type is iso-2022. (Bug#63644) + +2023-05-22 Eli Zaretskii + + Support 'isearch-allow-scroll' in 'pixel-scroll-precision-mode' + + * lisp/pixel-scroll.el (pixel-scroll-precision) + (pixel-scroll-down, pixel-scroll-up): Put the 'scroll-command' + property on these commands. (Bug#63640) + +2023-05-22 Andreas Schwab + + shr: allow moving between adjacent anchors + + * lisp/net/shr.el (shr-urlify): Put shr-tab-stop only over first + position. + +2023-05-22 Michael Albinus + + Fix multihop file name expansion in Tramp + + * lisp/net/tramp.el (tramp-dissect-file-name): Set hop to nil if + NODEFAULT. (Bug#63578) + +2023-05-21 Jens Schmidt + + Remove obsolete information from Gnus manual + + The Gnus manual was still referencing long-removed external + marks in section "Archiving Mails". Without external marks, + that section is almost pointless, so remove it completely. + * doc/misc/gnus.texi (Archiving Mail): Remove section. + (Top, Browsing the Web): Remove references to "Archiving + Mail". (Bug#63497) + +2023-05-21 Jens Schmidt + + Preserve mark in comint-history-isearch + + This preserves mark in `comint-history-isearch-backward' and + friends, which tend to set the mark on completion of the isearch + to unexpected positions. + * lisp/comint.el (comint-history-isearch-end): Set `isearch-opoint' + to point. (Bug#63616) + +2023-05-20 Liu Hui + + Fix systemd unit completion for old versions of systemd + + * lisp/pcmpl-linux.el (pcmpl-linux--systemd-units): Use '--no-legend' + for compatibility with older versions of systemctl. (Bug#63411) + +2023-05-20 Eli Zaretskii + + Fix Skeletons menu-bar menu in Python modes + + * lisp/progmodes/python.el (python-mode, python-ts-mode): Call + 'python-skeleton-add-menu-items' here, not in 'python-base-mode', + since the "Python" menu is not yet set up in the latter. + (Bug#63598) + +2023-05-20 Eli Zaretskii + + Fix loading SQLite extensions + + * src/sqlite.c (sqlite3_db_config) [WINDOWSNT]: Load from the DLL. + (Fsqlite_load_extension): Use 'sqlite3_db_config' to enable and + disable loading of extensions. Add a few free extensions to the + allow-list. Fix testing for the ".dll" extension. (Bug#63590) + + * test/src/sqlite-tests.el (sqlite-load-extension): Fix the test + to require successful load if the extension does exist. + +2023-05-20 Mattias Engdegård + + * etc/NEWS: Note dotimes loop variable scoping change (bug#63586) + +2023-05-20 Yuan Fu + + Fix c-ts-mode--top-level-declarator + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--top-level-declarator): Don't use treesit-node-match-p. + +2023-05-19 Yuan Fu + + Improve c-ts-mode font-lock for function names (bug#63390) + + When a function definition has preproc directives in its body, it + can't correctly parse into a function_definition. This fix tries to + recognize this case and highlight the function_declarator correctly. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--font-lock-settings): New rule. + (c-ts-mode--top-level-declarator): New function. + +2023-05-19 Juri Linkov + + * lisp/tab-bar.el: Don't use 'minibuffer-selected-window' (bug#62427). + + (tab-bar-select-tab, tab-bar-new-tab-to): + Use 'window-minibuffer-p' instead of 'minibuffer-selected-window'. + And switch to 'get-mru-window' instead of 'minibuffer-selected-window'. + +2023-05-19 Juri Linkov + + Split windows horizontally in places that use split to create a new window. + + * lisp/tab-bar.el (tab-bar-new-tab-to): + * lisp/window.el (window-state-put): + To create a new window, split horizontally instead of vertically. + Use 'window-safe-min-width' for the SIZE arg of 'split-window'. + (bug#62592) + +2023-05-18 Yuan Fu + + Fix tree-sitter test (bug#63481) + + * test/src/treesit-tests.el (treesit-basic-parsing): Latest json + parser doesn't return an error on empty buffer or multiple objects + anymore [1]. + + https://github.com/tree-sitter/tree-sitter-json/commit/40a81c01a40ac48744e0c8ccabbaba1920441199 + +2023-05-18 Aaron Jensen + + Attempt to fix redisplay problems on macOS + + * src/nsterm.m (ns_scroll_run): Attempt to fix redisplay + artifacts. (Bug#63187) + +2023-05-18 Jens Schmidt (tiny change) + + Clarify misleading comment in isearch.el + + Clarify a misleading comment in isearch.el as to whether frame events + should exit an isearch or not (Bug#62032, Bug#41338 for background + information). + * lisp/isearch.el (isearch-mode-map): Replace the misleading comment. + (Bug#62032) + +2023-05-18 Eli Zaretskii + + Improve documentation of package-menu commands + + * doc/emacs/package.texi (Package Menu): Document that some + package-menu filters accept lists of values interactively. + + * lisp/emacs-lisp/package.el (package-menu-execute) + (package-menu-hide-package, package-menu-describe-package) + (package-menu-mark-delete, package-menu-mark-install) + (package-menu-mark-unmark, package-menu-backup-unmark) + (package-menu-quick-help, package-menu-get-status) + (package-menu--find-upgrades, package-menu-mark-upgrades) + (package-menu-filter-by-archive) + (package-menu-filter-by-description) + (package-menu-filter-by-keyword) + (package-menu-filter-by-name-or-description) + (package-menu-filter-by-name, package-menu-filter-by-status) + (package-menu-filter-by-version, package-menu-filter-marked) + (package-menu-describe-package): Doc fixes. + +2023-05-17 Basil L. Contovounesios + + Fix M-x completion-predicate under python-ts-mode + + * lisp/progmodes/python.el (python--completion-predicate) + (python-shell--completion-predicate): Filter M-x completion based on + python-base-mode instead of python-mode. This allows for + python-ts-mode as well (bug#63552). + +2023-05-17 Andrea Corallo + + * Account for `byte-compile-warnings' during native compilation (bug#63302). + + * lisp/emacs-lisp/comp.el (comp-final, comp-run-async-workers): + Forward `byte-compile-warnings' to child processes. + +2023-05-16 Philip Kaludercic + + Avoid duplicate VC packages in 'package-selected-packages' + + * lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Check if + 'package-selected-packages' already contains the package name. + (bug#63338) + +2023-05-15 Juri Linkov + + * lisp/tab-bar.el (tab-bar-new-tab-to): Set 'window-side' to nil (bug#62427). + + This is still needed for the case when tab-bar-new-tab-choice is 'window'. + +2023-05-14 Kyle Meyer + + Update to Org 9.6.6 + +2023-05-14 Eli Zaretskii + + Bump Emacs version for next pretest + + * README: + * configure.ac: + * nt/README.W32: + * msdos/sed2v2.inp: Bump Emacs version to 29.0.91. + +2023-05-14 Gabriel do Nascimento Ribeiro + + Ignore current-prefix-arg in async-shell-command + + * lisp/simple.el (async-shell-command): Ignore current-prefix-arg and + always pass nil to second argument of `shell-command'. (Bug#63432) + +2023-05-13 Joseph Turner + + Fix building of VC package manuals with relative includes + + * lisp/emacs-lisp/package-vc.el (package-vc--build-documentation): + Invoke makeinfo with -I to ensure the package directory is always + consulted for @include statements. (Bug#63337) + +2023-05-13 Cyril Arnould (tiny change) + + Another fix for VHDL mode highlighting + + * lisp/progmodes/vhdl-mode.el (vhdl-version): Bump to 3.38.5. + (vhdl-compiler-alist): Fix the regexps and the doc string. + +2023-05-13 Eli Zaretskii + + Fix auto-filling in Texinfo mode + + This fixes auto-filling in Texinfo buffers. It was broken by the + fix to bug#49558, which made M-q fill over-long @noindent lines by + refraining from customizing 'paragraph-separate' in Texinfo mode. + The underlying problem here is that 'auto-fill-mode' doesn't call + mode-specific filling functions, but does its job by itself, and + depends on 'forward-paragraph' to find the beginning of the + paragraph as appropriate for calculation of 'fill-prefix', and a + different value of 'paragraph-separate' broke that. As a side + effect, the change below also changes paragraph-movement commands + in Texinfo back to how they behaved prior to that bugfix, but I + don't see why the paragraph-movement behavior introduced by that + fix made more sense. Try to move through a series of + @-directives, like a paragraph preceded by several @cindex + entries, and you will see the inconsistencies. In any case, the + adverse effects of that fix on auto-filling is unacceptable. + + * lisp/textmodes/texinfo.el (fill-paragraph-separate): New + variable. + (texinfo-mode): Set 'fill-paragraph-separate' to the default value + of 'paragraph-separate'. Customize 'paragraph-separate' to the + Texinfo-specific value, as it was before commit dde591571abf. + (texinfo--fill-paragraph): Bind 'paragraph-separate' to the value + of 'fill-paragraph-separate', to keep 'M-q' happy. + +2023-05-12 Gregory Heytings + + Merge branch 'scratch/long-lines-cleanup' into 'emacs-29' + +2023-05-12 Gregory Heytings + + Add an assertion in, and a commentary for, 'get_nearby_bol_pos' + + * src/xdisp.c: + (get_nearby_bol_pos): Document the function, and add an assertion + on its return value. + +2023-05-12 Gregory Heytings + + Fix the return type of 'labeled_restrictions_get_bound' + + * src/editfns.c: + (labeled_restrictions_get_bound): Return a Lisp_Object instead of + a pointer to a struct Lisp_Marker. + (unwind_reset_outermost_restriction, reset_outermost_restrictions) + (Fwiden, Fnarrow_to_region): Adapt to the new return type. + +2023-05-12 Eli Zaretskii + + Fix mouse highlight with some fonts in Cairo builds + + * src/ftcrfont.c (ftcrfont_draw): Don't set the + 'background_filled_p' flag of the glyph string. (Bug#63271) + +2023-05-12 Philip Kaludercic + + Ensure that package menu respects 'package-install-upgrade-built-in' + + * lisp/emacs-lisp/package.el (package-menu--find-upgrades): Check if + built-in packages can be upgraded if + 'package-install-upgrade-built-in' is non-nil. + +2023-05-12 Philip Kaludercic + + Ensure that EXTRA-DATA are always written when generating autoloads + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Handle + edge-case where no autoloads are found. (Bug#63260) + +2023-05-11 Jonas Bernoulli + + Update to Transient v0.4.0 + + Or strictly speaking v0.4.0-1-g428576a4.) + +2023-05-11 Eli Zaretskii + + Revert "Don't have nntp-report signal an error" + + This reverts commit 032969e8c65ba1ccda8466f6c61f20e0c7293ebf. + The commit is being reverted because it caused bug#62845. + +2023-05-10 Alan Mackenzie + + Make c-emacs-features use the proper binding of parse-sexp-lookup-properties + + This is relevant for bug #58558, although it does not fix it. Due to a wrong + ordering of with-current-buffer and a let form, the function overwrote the + global value of parse-sexp-lookup-properties and two other variables. + + * lisp/progmodes/cc-defs.el (c-emacs-features): Change the nesting of + with-current-buffer and let so that the let bindings get used. + +2023-05-09 Stefan Monnier + + with-display-message: Workaround for bug#63253 + + Running arbitrary ELisp code from an atimer is still dangerous, + at least because the regexp engine is not-reentrant, so let's patch up + the case we bumped into. There are probably many other such holes :-( + + * src/alloc.c (garbage_collection_inhibited): Make it non-static. + + * src/xdisp.c (garbage_collection_inhibited): Declare it. + (set_message, clear_message): Use it as a proxy for "we're in + a dangerous context like within `probably_quit`". + +2023-05-09 João Távora + + Fido-mode: never shadow 'external' completion style + + As explained in the manual (20.7.2 Fast minibuffer selection) + 'fido-mode' and 'fido-vertical-mode' give priority the "flex" + completion style. + + In fact, bug#62015 was recently fixed in commit because that priority + was not taking place correctly and some completions were missed. + + However, an exception must be made for the 'external' completion + style. + + That style, made available by the lisp/external-completion.el library, + is specifically designed to work with backends that provide only a + partial view of all completions. If we allow 'flex' to step in front + of 'external' it could mean that 'flex' matches something and + 'external' isn't triggered as it probably should. + + To reproduce have the rust-mode ELPA package and the rust-analyzer LSP + server handy. Then: + + emacs -Q -f package-initialize main.rs + + Where main.rs is this content: + + fn foo1() {} fn foo2() {} fn foo3() {} + fn foobar1() {} fn foobar2() {} fn foobar3() {} + + The rust-analyzer server can be quickly configured to return only 3 + workspace symbols max, so evaluate: + + (setq-default eglot-workspace-configuration + '(:rust-analyzer + (:workspace (:symbol (:search (:limit 3)))))) + + Now start M-x eglot and M-x fido-vertical-mode and type C-u M-. to + find an arbitrary symbol in this one-file project. + + Type 'f'. You will see the three foo's are listed, correctly. + + Now type '3'. You will only see "foo3". + + But that's wrong because "foobar3" was available, if only the server + had been asked for it. This commit fixes the situation and no + completions are lost. + + As an unfortunate side-effect of this commit, the fontification of + completions-common-part on the matches is lost, but that is not worse + than missing out on completions and there are better ways to recover + the fontification anyway (in external-completion.el). + + See also: + https://github.com/joaotavora/eglot/discussions/1219#discussioncomment-5818336 + + * lisp/icomplete.el (icomplete--fido-ccd): Do not touch entries + with 'external in them. + + Do not merge to master. + Backport: + + (cherry picked from commit 0e8d8a72284f6b3aaa1bbce73d41c7d84bbc4d3c) + +2023-05-09 Eli Zaretskii + + Avoid crashes in --without-all build trying to scale non-ASCII char + + * src/fontset.c (face_for_char): Display a non-ASCII character as + glyphless if the ASCII face has no fontset. (Bug#63283) + +2023-05-09 Eli Zaretskii + + Improve instructions for dealing with Emacs crashes + + * doc/emacs/trouble.texi (Crashing): Show the variant of the + 'addr2line' command for MS-Windows. + +2023-05-08 Mohsen Banan + + Improved transliterations + improved bidi insertion support for Farsi + + * lisp/leim/quail/persian.el ("farsi-transliterate-banan"): + Improve and add transliterations. (Bug#63361) + +2023-05-08 Alan Third + + Fix crash when creating a child frame in NS (bug#63107) + + * src/nsterm.m ([EmacsView initFrameFromEmacs:]): Have a second go at + creating the toolbar. + ([EmacsWindow createToolbar:]): If there is already a toolbar or the + EmacsView's layer is not an EmacsLayer, then do nothing. + + (cherry picked from commit 3adc1e7f37901235bda83ea65a90644b7b0a8dbf) + +2023-05-07 Andrew G Cohen + + Fix outgoing mime type regression (Bug#62815) + + * lisp/net/mailcap.el (mailcap-mime-extensions, + mailcap-parse-mimetype-file, mailcap-mime-types): Don't regexp-quote + mimetypes in a context where they should be strings. + (mailcap--regexp-quote-type): Remove. + + (cherry picked from commit 605414d018da47f99dec5019142f584b6eb174c8) + +2023-05-07 Nicholas Vollmer + + define-minor-mode: sanitize mode function messages + + * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Ensure mode's + pretty name is not interprted as a message formatting string, + e.g., if the mode name contains a '%'. (Bug#63343) + +2023-05-07 Eli Zaretskii + + Fix beginning/end-of-defun with tree-sitter + + * lisp/treesit.el (treesit-beginning-of-defun) + (treesit-end-of-defun): Push mark, as other beginning/end-of-defun + functions do. + +2023-05-06 Theodor Thornhill + + Fix indent for enums in csharp-mode + + * lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): Check for + keywords containing 'enum' on the line before an opening bracket, and + make it behave like a class-open token. + +2023-05-06 Eli Zaretskii + + Teach c-ts-mode about the 'restrict' keyword + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--keywords): Add + "restrict" and "_Atomic" type qualifiers. (Bug#63323) + +2023-05-06 Eli Zaretskii + + * lisp/x-dnd.el (x-dnd-after-move-frame): Skip dead frames. (Bug#63312) + +2023-05-06 Eli Zaretskii + + Fix doc strings of 'mark-sexp' and 'mark-word' + + * lisp/emacs-lisp/lisp.el (mark-sexp): + * lisp/simple.el (mark-word): Clarify the doc strings in various + usage cases. (Bug#62892) + +2023-05-05 Dmitry Gutov + + (package-upgrade): Don't remove the package from 'package-selected-packages' + + * lisp/emacs-lisp/package.el (package-upgrade): + Don't remove the package from 'package-selected-packages', fixing + the problem described in https://debbugs.gnu.org/62720#718. + +2023-05-05 João Távora + + Eglot: re-rename eglot-upgrade to eglot-upgrade-eglot + + * doc/misc/eglot.texi (Getting the latest version): Mention + eglot-upgrade-eglot. + + * etc/EGLOT-NEWS: Mention eglot-upgrade-eglot. + + * lisp/progmodes/eglot.el (eglot-upgrade-eglot): Rename from + eglot-update. + (eglot-update): New compatibility alias. + +2023-05-05 Eli Zaretskii + + Fix arguments of xml.c functions as displayed in Help buffers + + * lisp/subr.el (libxml-parse-xml-region) + (libxml-parse-html-region): Adjust advertised-calling-convention + to the changes in commit cc33c6cf3a. (Bug#63291) + +2023-05-05 Po Lu + + More fixes for NetBSD/vax + + * src/sysdep.c (init_signals) [__vax__]: Treat SIGILL + as a floating point error on VAXen. + Otherwise, (log 0.0) crashes Emacs. + +2023-05-05 Cyril Arnould (tiny change) + + Improve VHDL mode highlighting + + * lisp/progmodes/vhdl-mode.el (vhdl-compiler-alist): Differentiate + between ModelSim errors, warnings, and notes when highlighting + them. Add a new entry for Xilinx Vivado. (Bug#63251) + +2023-05-04 Po Lu + + Clarify documentation wrt floating point division by zero and NaN + + * doc/lispref/numbers.texi (Float Basics) + (Arithmetic Operations): Document what happens on a VAX. + Tested on NetBSD 9.3. + +2023-05-04 Robert Pluim + + Make loaddefs-generate slightly more tolerant + + There are packages in the wild, such as vlf-20191126.2250, which have + entries that are not terminated by three ';', but by two. Tolerate + such entries. + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Search for two + ';' as a delimiter, not three. (Bug#63236) + +2023-05-04 Philip Kaludercic + + Fix order of rcirc-connect arguments + + * lisp/net/rcirc.el (rcirc): Pass SERVER-ALIAS before CLIENT-CERT. + (rcirc-connect): Take SERVER-ALIAS before CLIENT-CERT. + + This is necessary for the 'rcirc-reconnect' trick to work that applies + the contents of 'rcirc-connection-info' to 'rcirc-connect', otherwise + the server alias gets lost as certfp information. + + This addresses a change made in b79cb838a477ee5a5c3660e81264991ff833a82f. + +2023-05-04 Thuna (tiny change) + + Fix rcirc messages printing in the wrong place + + * lisp/net/rcirc.el (rcirc-send-message): Print the message before + sending it to the server. + (rcirc-print): Get the time with subsecond precision. + * lisp/calendar/parse-time.el (parse-time-string + parse-iso8601-time-string): Accept optional second FORM arguments, + with the same meaning as in `decode-time'. Mention as such in the + docstring. (Bug#59501) + +2023-05-04 Philip Kaludercic + + Prevent unnecessary modifications of 'package-vc-selected-packages' + + * lisp/emacs-lisp/package-vc.el (package-vc--unpack): Handle the + structure of correctly, not as an alist but a list of alists. + (package-vc--archive-spec-alist, package-vc--archive-spec-alists, + package-vc--desc->spec, package-vc--read-archive-data, + package-vc--download-and-read-archives, package-vc--unpack): Rename + 'package-vc--archive-spec-alist' to 'package-vc--archive-spec-alists'. + +2023-05-03 Dmitry Gutov + + Rename eglot-update to eglot-upgrade + + * doc/misc/eglot.texi (Getting the latest version): + Update the reference. + + * lisp/progmodes/eglot.el (eglot-upgrade): Rename from + 'eglot-update', as discussed on emacs-devel, in line with + 'package-upgrade'. + +2023-05-03 Randy Taylor + + go-ts-mode: Use iota query only if supported (Bug#63086) + + iota query support was added on January 5, 2022. To support older + versions of the tree-sitter-go grammar (like the latest tagged version, + v0.19.1, which was released on March 3, 2021), check if the query is + supported before trying to use it. + + * lisp/progmodes/go-ts-mode.el (go-ts-mode--iota-query-supported-p): New + function. + (go-ts-mode--font-lock-settings): Use it. + +2023-05-03 Dmitry Gutov + + (rng-complete-tag): Add the (ignored) argument to the :company-kind function + + * lisp/nxml/rng-nxml.el (rng-complete-tag): Add the (ignored) + argument to the :company-kind function. Fixes the "Wrong number + of arguments" error reported at + https://github.com/company-mode/company-mode/issues/1386. + +2023-05-03 Jonas Bernoulli + + Update to Transient v0.3.7-219-g3ded15b + +2023-05-03 Po Lu + + Fix inserting selection data into Mozilla programs + + * lisp/select.el (xselect-convert-to-text-uri-list): Don't + return any value when converting non-DND selections to this + drag-and-drop target. + + Reported by Tobias Bading . + +2023-05-03 Thuna (tiny change) + + Recognize defstruct slot names in various eieio functions + + * lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Set + each slot's name's 'slot-name' property so that + 'eieio--known-slot-name-p' can recognize them. (Bug#62959) + +2023-05-02 Thuna (tiny change) + + Use 'calendar-buffer' instead of fixed string + + * test/lisp/calendar/cal-julian-tests.el (with-cal-julian-test): + Use 'calendar-buffer' instead of a literal fixed name. + (Bug#61546) + +2023-05-02 Spencer Baugh + + Handle point not at EOB in minibuffer-choose-completion + + Without this change, only the minibuffer contents before point + are cleared when a completion is chosen, which results in stray + text when point is in the middle of the minibuffer. + + After this change, we heuristically decide either to clear the + whole buffer or only part of it, taking into account the + location of point. + + This is a backport for the Emacs 29 release branch of a simpler + fix in minibuffer-completion-help. + + * lisp/minibuffer.el (minibuffer-next-completion): + (minibuffer-choose-completion): + Recalculate completion-base-affixes with point. (Bug#62700) + +2023-05-02 Spencer Baugh + + Note that Emacs pauses when handling sentinel errors + + Noting this behavior and variable here makes it easier to + understand the behavior of Emacs when a sentinel has an error. + + * doc/lispref/processes.texi (Filter Functions): Note that Emacs + pauses when handling sentinel errors. + (Sentinels): Note that Emacs pauses when handling sentinel errors. + (Bug#63096) + +2023-05-01 Eli Zaretskii + + Fix vertical-motion when tab-line is displayed in a window + + * src/xdisp.c (try_window, try_window_id): Account for tab-line, + if present, when converting scroll-margin at the top of the window + to vertical pixel coordinate. (Bug#63201) + +2023-04-30 Kyle Meyer + + Update to Org 9.6.5-3-g2993f4 + +2023-04-30 Philip Kaludercic + + Prevent generating empty autoload files + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Remove + optimization that would mistakenly discard old loaddefs in case a file + was not modified by EXTRA-DATA is non-nil. (Bug#62734) + +2023-04-30 Stefan Monnier + + * lisp/org/org-macs.el (org--inhibit-version-check): Fix docstring + + Also, add an explanation to the docstring for what the version + check is about. + +2023-04-30 Eli Zaretskii + + Fix redisplay of mode line after its format changes from nil + + * src/dispnew.c (update_window): Make sure a mode-line's row of + the current glyph matrix is disabled when the mode line is not + being displayed. (Bug#63186) + +2023-04-30 Michael Albinus + + Fix c-ts-mode--emacs-c-range-query + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--emacs-c-range-query): + Check for (treesit-available-p). + +2023-04-30 Eli Zaretskii + + Improve documentation of warnings + + * doc/lispref/control.texi (Errors): + * doc/lispref/os.texi (Startup Summary): + * doc/lispref/display.texi (Warning Basics, Warning Variables) + (Warning Options, Delayed Warnings): Improve documentation of + warnings. Document the automatic delaying of warnings during + startup. (Bug#63181) + +2023-04-29 Yuan Fu + + Fix FOR_EACH_TAIL fontification (bug#62951) + + Fix the fontification inconsistency between different FOR_EACH_TAIL's. + See the comment for more explanation. Also enable the emacs-devel + feature automatically when c-ts-mode-emacs-sources-support is on. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--for-each-tail-regexp): Move up. + (c-ts-mode--font-lock-settings): New font-lock rule for FOR_EACH_TAIL. + (c-ts-mode--fontify-for-each-tail): New function. + (c-ts-mode): Automatically enable emacs-devel feature. + +2023-04-29 Eli Zaretskii + + Fix documentation of libxml-parse-* functions + + * doc/lispref/text.texi (Parsing HTML/XML): + * src/xml.c (Flibxml_parse_html_region, Flibxml_parse_xml_region): + Update the documentation regarding the use of BASE-URL argument. + (Bug#63125) + +2023-04-28 Theodor Thornhill + + Skip over whitespace in annotation-top-cont check (bug#63141) + + * lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): Make sure + we skip over whitespace when looking for the next '['. + +2023-04-28 Ruijie Yu + + Update zh-CN tutorial translation + + * etc/tutorials/TUTORIAL.cn (INTRO): Additions from English + version; say "interrupt" not "quit" a partially-entered command; + fixed minor inconsistency (English says partially-entered command, + Chinese used to say partially-executed command -- they are + different); converted half-width square brackets containing + translators' notes into full-width ones for consistency. + (BASIC CURSOR CONTROL): mention that a word boundary for Chinese + can also be space; fixed incorrect terminology (keyboard vs + terminal); retain English term "terminal"; retain English term + "prefix argument"; "most commands _interpret_ prefix args as + repeat-count", not "explain"; ensure space is added on both ends + of an English word. + (WINDOWS): Clarify it is the digit 1 in C-x 1. + (INSERTING AND DELETING): Mention the term "continuation line" and + retain its English term, because this term is mentioned again + later in the tutorial; avoid saying the name of "\\"; add + description for "electric" and a rough translation; sync English + for prefix argument for DEL and C-d; ensure that translators' + notes are marked explicitly so; add indentation to the instruction + about continuation lines; additional translations such as + mentioning C--, etc. + (FILES): Re-pluralize the heading; space around English words; + describe what C-g cancels (the command) when entering file name; + replace "search for" with "find"; minor rephrasing; explicit + translator notes; fixed the write-file message to no longer + contain ellipses (see src/fileio.c:5541). + (BUFFERS): Re-pluralize the heading; mention that C-x C-b also + shows buffer name; C-x s only looks for file-visiting buffers. + (EXTENDING THE COMMAND SET): Include C-x s and C-x b in list of + learned commands. + (MODE LINE): Remove the dashes in description on the point + location. + (MULTIPLE WINDOWS): Mention the difference between frame + and window; also add translator notes pointing to end of + tutorial which contains a terminology list. + (MULTIPLE FRAMES): Change the M-x commands to keybinds C-x 5 2 and + C-x 5 0 to sync with English. + (GETTING MORE HELP): Change C-h f to C-h x, to sync with English. + (INSTALLING PACKAGES): Rephrase "available packages", used to say + lit., "existing", now says lit., "installable"; consistently + translate the term "package", and retain its English name. + (TRANSLATION): Add my name as co-maintainer of this file. + + * etc/tutorials/TUTORIAL.translators (TUTORIAL.cn): Add my name + as co-maintainer for TUTORIAL.cn. + +2023-04-28 Eli Zaretskii + + Fix eglot.texi + + * doc/misc/eglot.texi (Troubleshooting Eglot): Add missing @menu. + (Performance, Getting the latest version): Improve wording and + indexing, add cross-references. + +2023-04-27 Po Lu + + Fix two crashes upon startup + + * src/image.c (image_create_bitmap_from_data) + (image_create_bitmap_from_file): Specify a Window or a Pixmap + describing the screen, not a back buffer drawable which may not exist. + Otherwise, Emacs crashes on startup when a bitmap icon is in use. + +2023-04-27 João Távora + + Eglot: explain how to update Eglot in manual (bug#62720) + + * lisp/progmodes/eglot.el (eglot-update): New command. + + * doc/misc/eglot.texi (Troubleshooting): Rework. + +2023-04-27 João Távora + + Eglot: fix edge case when deleting inlay hint overlays + + When asked to update hints in a region (FROM TO), + eglot--update-hints-1 first deletes the existing hints. It must + however take care to delete all overlays that logically belong to the + region, even if they don't physically belong to it, e.g. inlay + overlays spanning (FROM-1 FROM) and having a 'after-string' property. + + * lisp/progmodes/eglot.el (eglot--update-hints-1): Fix edge case. + +2023-04-27 Dmitry Gutov + + package-upgrade[-all]: Expand docstrings to note the current limitation + + * lisp/emacs-lisp/package.el (package-upgrade, package-upgrade-all): + Expand docstrings to note the current limitation (bug#62720). + +2023-04-27 Dmitry Gutov + + Rename all functions called package-*-update-* to package-*-upgrade-* + + * lisp/emacs-lisp/package-vc.el (package-vc-upgrade-all): + Rename from 'package-vc-update-all'. + (package-vc-upgrade): Rename from 'package-vc-update'. + + * lisp/emacs-lisp/package.el (package-upgrade): + Rename from 'package-update' (bug#62750). + (package--upgradeable-packages): + Rename from 'package--updateable-packages'. + (package-upgrade-all): Rename from 'package-update-all'. + +2023-04-27 Yuan Fu + + Fix FOR_EACH_TAIL in c-ts-mode (bug#62951) + + * lisp/progmodes/c-ts-mode.el + (c-ts-mode--indent-styles): New indent rule. + + (c-ts-mode--for-each-tail-regexp) + (c-ts-mode--for-each-tail-body-matcher) + (c-ts-mode--emacs-c-range-query) + (c-ts-mode--for-each-tail-ranges) + (c-ts-mode--reverse-ranges) + (c-ts-mode--emacs-set-ranges): New functions and variables. + + (c-ts-mode): Create a emacs-c parser. More setup for Emacs source + support. + + * lisp/treesit.el (treesit-query-range): Ignore underscore-prefixed + capture names. + +2023-04-27 Eli Zaretskii + + * Makefile.in (distclean): Remove the 'native-lisp' directory. + +2023-04-27 Eli Zaretskii + + Improve greek-ibycus4 input method + + * lisp/leim/quail/greek.el ("greek-ibycus4"): Add another sequence + for CAPITAL LETTER RHO WITH DASIA. (Bug#63104) + +2023-04-26 F. Jason Park + + Explain ERC 5.5 regressions in new version 5.5.0.29.1 + + * doc/misc/erc.texi: Bump version to 5.5.0.29.1. + * etc/ERC-NEWS: Don't hype bugged option `erc-reconnect-display'. + * lisp/erc/erc-dcc.el (erc-dcc-do-GET-command): Add comment explaining + parsing bug in ERC 5.5 (bug#62444). + * lisp/erc/erc-networks.el (erc-networks-on-MOTD-end): Mention known + /MOTD bug in error notice so people don't waste energy reporting + it (bug#62151). + * lisp/erc/erc.el: Change Version header to 5.5.0.29.1. Don't bother + updating the `customize-package-emacs-version-alist' entry + because no option defaults are affected. + (erc-version): Change version to 5.5.0.29.1. + (erc-reconnect-display, erc-query-on-unjoined-chan-privmsg): Add + warning to doc strings and `custom-set' functions. It's believed that + these bugs degrade the user experience significantly enough to warrant + such mentions (bug#62833). + (erc-query): Fix erroneous redirect string in deprecation spec. + Do not merge to master. + +2023-04-26 F. Jason Park + + * doc/misc/erc.texi: Elaborate on upgrading via ELPA. + +2023-04-26 Robert Pluim + + Improve outline-default-state docstring + + * lisp/outline.el (outline-default-state): Explain which functions are + available to affect heading visibility. + +2023-04-26 Eli Zaretskii + + Document problems with /bin/sh on Solaris 10 + + * etc/PROBLEMS (Solaris): Document problems with '/bin/sh'. + Suggested by Paul Eggert . (Bug#63067) + +2023-04-25 Eli Zaretskii + + Followup to addition of TUTORIAL.fa + + * etc/NEWS: Announce addition of TUTORIAL.fa. + + * etc/tutorials/TUTORIAL.translators (TUTORIAL.fa): New entry. + + * lisp/language/misc-lang.el ("Persian"): Add tutorial property. + +2023-04-25 Mohsen Banan + + Add Farsi/Persian translation of the tutorial + + * etc/tutorials/TUTORIAL.fa: New file. + + * lisp/language/misc-lang.el (arabic-shaper-ZWNJ-handling): Fix + typo in doc string. + +2023-04-25 Eli Zaretskii + + Add Mongolian language environments + + * lisp/language/misc-lang.el ("Mongolian-traditional"): + * lisp/language/cyrillic.el ("Mongolian-cyrillic"): New + language environments. + + * etc/HELLO: Add Mongolian Traditional. + * etc/NEWS: Announce the new language environments. + + (Bug#63028) + +2023-04-25 Eli Zaretskii + + Document the 'end-session' event on MS-Windows + + * doc/lispref/commands.texi (Misc Events): Document the + 'end-session' event. (Bug#63058) + +2023-04-24 Kyle Meyer + + Update to Org 9.6.4-9-g8eb209 + +2023-04-24 Eli Zaretskii + + Don't support versioned grammar libraries on MS-Windows + + * src/treesit.c (treesit_load_language_push_for_each_suffix): + Don't append ".0.0" on WINDOWSNT. + +2023-04-24 Yuan Fu + + Accept versioned tree-sitter language grammar files + + By discussion on emacs-devel, titled "Versioned Tree-sitter parser + libraries". + + * src/treesit.c (Vtreesit_str_dot_0): New variable. + (treesit_load_language_push_for_each_suffix): Additionally look for + lib_base_name.0 and lib_base_name.0.0. + (syms_of_treesit): Initialize Vtreesit_str_dot_0. + +2023-04-24 Benson Chu (tiny change) + + tab-bar-new-tab: inhibit side-window checks + + Previously, calling 'tab-bar-new-tab-to' only removed the + 'window-side' property on the currently selected window, + and then a call to 'delete-other-windows' was made to + ensure that the selected window was the only window. + We can skip this check by shadowing 'window--sides-inhibit-check' + to t. + * lisp/tab-bar.el (tab-bar-new-tab-to): Inhibit side-window checks. + (Bug#62427) + +2023-04-24 Michael Albinus + + * etc/NEWS: Fix outline level. (Bug#63042) + + Fix typos. + +2023-04-23 Eli Zaretskii + + Fix rendering of Traditional Mongolian script + + * lisp/international/characters.el: Set punctuation syntax for Po + characters from the Mongolian block + * lisp/international/fontset.el (setup-default-fontset): Add + fontset setting for Traditional Mongolic. + * lisp/language/misc-lang.el (composition-function-table): Add + rules for Traditional Mongolic. (Bug#63028) + +2023-04-22 Eli Zaretskii + + Fix line-number-at-pos when POSITION is out of narrowing + + * src/fns.c (Fline_number_at_pos): Don't signal an error when + ABSOLUTE is nil and POSITION is outside of the narrowing, like the + original Lisp implementation did. Minor speedup by using the byte + position where it is available from the get-go. (Bug#62857) + +2023-04-22 Eli Zaretskii + + Fix exiting Emacs after saving a tutorial + + * lisp/tutorial.el (tutorial--starting-point): Make it + permanent-local, so that saving the tutorial to some file doesn't + kill this buffer-local variable. Otherwise, trying to exit Emacs + after saving the tutorial will signal an error, because + 'tutorial--starting-point' is void. (Bug#37326) + +2023-04-22 Eli Zaretskii + + Add indentation style setting for c-ts-mode in .dir-locals.el + + * lisp/progmodes/c-ts-mode.el (c-ts-indent-style-safep): New + predicate. + (c-ts-mode-indent-style): Use it to test the value for being safe. + + * .dir-locals.el (c-ts-mode): Set 'c-ts-mode-indent-style' to 'gnu'. + +2023-04-20 Nicolas Martyanoff + + sql: add missing postgresql types + + * lisp/progmodes/sql.el: Add multiple missing PostgreSQL types: bigserial, + smallserial, macaddr8, jsonb, jsonpath, built-in range types, object + identifier types (oid & co). + +2023-04-19 Eli Zaretskii + + Fix display of menu-bar bindings of commands in *Help* buffers + + * lisp/help-fns.el (help-fns--insert-menu-bindings): Propertize + with 'help-key-binding' face only the menu items, not the arrows + between successive items. This is because 'char-displayable-p' is + unreliable when we propertize the character with an arbitrary + face: that face could specify a font which doesn't support the + character after all, while 'char-displayable-p' assumes there are + no restrictions on fonts that can be used for displaying the + character. Also, make the code more efficient by avoiding the + call to 'char-displayable-p' inside the loop. + +2023-04-19 Spencer Baugh + + Improve Completion Example section in the Emacs manual + + This can be a useful substitute for full-on fuzzy completion, as + provided by other completion styles and completion packages. + * doc/emacs/mini.texi (Completion Example): Give an example of + completion with point not at end of minibuffer. Also, use + @kbd{@key{TAB}} when telling the user to hit TAB. (Bug#62836) + +2023-04-19 Robert Pluim + + Improve 'message-server-alist' docstring + + * lisp/gnus/message.el (message-server-alist): Fix typo and clarify + what happens if there is already an X-Message-SMTP-Method header. + +2023-04-19 Robert Pluim + + Add index entry for fallback modes + + * doc/emacs/custom.texi (Specifying File Variables): Add index for + 'fallback modes'. + +2023-04-18 Dmitry Gutov + + xref-search-program-alist: Fix searching larger file lists on MS Windows + + * lisp/progmodes/xref.el (xref-search-program-alist): + Add '-s 10000' to xargs' options when on Windows or DOS. + Apparently the xargs port doesn't currently know how to obey the + system-wide limits (https://debbugs.gnu.org/bug=61667#521). + +2023-04-18 Shynur (tiny change) + + Fix typo and inaccuracy in the ELisp Reference manual + + * doc/lispref/loading.texi (Dynamic Modules): Fix a typo. + * doc/lispref/customize.texi (Group Definitions): Faces are also + in the 'custom-group' property of a customization group. + (Bug#62887) + +2023-04-18 Eli Zaretskii + + Fix description of lexical environment's internals + + * doc/lispref/variables.texi (Lexical Binding): Update the + description of how the lexical environment is represented + internally. (Bug#62840) + +2023-04-16 Kyle Meyer + + Update to Org 9.6.4-2-g0f6ae7 + +2023-04-16 Eli Zaretskii + + Documentation copyedits for 'package-install-upgrade-built-in' etc + + * etc/NEWS: More details about the new option + 'package-install-upgrade-built-in'. + + * lisp/emacs-lisp/package.el (package-install-upgrade-built-in) + (package--active-built-in-p, package-install): Doc fixes. + (Bug#62720) + +2023-04-16 Philip Kaludercic + + Allow upgrading built-in packages with 'package-install' + + * etc/NEWS: Mention the change + * lisp/emacs-lisp/package.el (package--upgradable-built-in-p): Add new + predicate. + (package-install-upgrade-built-in): Add new user option to enable + feature. + (package-install): Respect new user option. + +2023-04-16 Eli Zaretskii + + Minor changes in c-ts-mode.el's support of DEFUNs + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--fontify-DEFUN): Renamed + from 'c-ts-mode--fontify-defun'; all callers changed. + (c-ts-mode-emacs-sources-support): Renamed from + 'c-ts-mode-emacs-devel' and made into a defcustom; all users + changed. + (c-ts-mode--emacs-defun-p, c-ts-mode--emacs-defun-at-point) + (c-ts-mode--emacs-current-defun-name): Doc fixes. (Bug#62825) + +2023-04-16 Eli Zaretskii + + Fix strike-through attribute support on TTY frames + + * src/term.c (init_tty): Fix setting the strike-through capability + with "smxx". (Bug#62265) + +2023-04-16 Eli Zaretskii + + Avoid crashes in 'describe-keymap' due to shadowing + + * src/keymap.c (describe_vector): Handle shadowing by something + other than a symbol. (Bug#62867) + +2023-04-15 Andreas Schwab + + Make image-map bindings available on image links + + * lisp/net/shr.el (shr-map): Move shr-browse-image to "M-i". + * lisp/net/eww.el (eww-image-link-keymap): Use shr-image-map. + +2023-04-15 Alan Mackenzie + + * CONTRIBUTE: Fix a typo + +2023-04-15 Jostein Kjønigsen + + Add to Eglot support for additional language-servers. + + * lisp/progmodes/eglot.el (eglot-server-programs): Add + 'vscode-markdown-language-server' for Markdown and + 'dot-language-server' for GraphViz. (Bug#62844) + +2023-04-14 Yuan Fu + + Partial support for DEFUN in c-ts-mode (bug#62825) + + The DEFUN is hard to incorporate because it's made of two nodes rather + than one, and most tree-sitter functionalities assume a defun is one + node. I fixed the indent-defun and add-log functionality, but + beginning/end-of-defun and imenu still don't recognize DEFUN. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode-emacs-devel): New variable. + (c-ts-mode--defun-name): Support DEFUN. + (c-ts-mode--defun-valid-p): Support DEFUN. + (c-ts-mode--emacs-defun-p) + (c-ts-mode--emacs-defun-at-point): New functions. + (c-ts-mode-indent-defun): Use c-ts-mode--emacs-defun-at-point. + (c-ts-mode--emacs-current-defun-name): New function. + (c-ts-mode, c++-ts-mode): Optionally setup custom defun-name function. + +2023-04-14 Eli Zaretskii + + Fix style and unwinding code in treesit.c + + This was supposed to be a cherry-pick from master, but + isn't, due to the unnecessary rush to fix master without + cleaning up the mess first and without separating changes + that can and cannot be backported. + * src/treesit.c (treesit_traverse_cleanup_cursor): Fix indentation + style. + (Ftreesit_search_subtree, Ftreesit_search_forward) + (Ftreesit_induce_sparse_tree): Fix specpdl unwinding. (Bug#62823) + Do not merge to master. + +2023-04-14 Yuan Fu + + Catch signals produced by PRED in tree-sitter search functions + + Earlier we switched to using cursors rather than nodes to traverse the + parse tree. Because cursors need cleanup, we have to catch signals + thrown by the predicate functions and free the cursor. Failing to do + this will result in leaking the cursor whenever the predicate function + signals in a search function. This change fixes the leak. + * src/treesit.c (treesit_traverse_cleanup_cursor): New function. + (Ftreesit_search_subtree) + (Ftreesit_search_forward) + (Ftreesit_induce_sparse_tree): Catch signals. (Bug#62823) + + (cherry picked from commit a5eb9f6ad4e6f5a2819b540a477f1e889f6ef355) + +2023-04-13 Eli Zaretskii + + Fix compilation of w32.c with old MinGW system headers + + * src/w32.c (CONSOLE_FONT_INFO): Make sure the definition is not + visible for MinGW versions whose w32api's version is before 5.2.0. + (Bug#52792) + +2023-04-12 Dmitry Gutov + + ruby-add-log-current-method: Reduce the use of 'nreverse' + + * lisp/progmodes/ruby-mode.el (ruby-add-log-current-method): + Reduce the use of 'nreverse' (bug#62761). + + * test/lisp/progmodes/ruby-mode-tests.el + (ruby-add-log-current-method-singleton-referencing-outer): + New test. + +2023-04-12 Visuwesh + + Fix detection of WebP images by their signature + + * lisp/image.el (image-type-header-regexps): The 4 characters + between "RIFF" and "WEBP" in WebP images can also be newlines. + (Bug#62790) + +2023-04-12 Earl Hyatt + + Add more documentation for the keys of `package-vc-selected-packages`. + + * doc/emacs/package.texi (Specifying Package Sources): List the + accepted keys in a new subsection of Fetching Package Sources. + + * lisp/emacs-lisp/package-vc.el (package-vc-selected-packages): + Mention the `:doc` key. Add the `:doc` key to the Customize form, + mention the new Info node, correct "TexInfo" to "Texinfo", avoid + Git-specific terms for the description of `:branch`, mention guessing + `:vc-backend` based on the URL. + +2023-04-11 Dmitry Gutov + + vc-checkout: Try to use the vc-dir's backend first + + * lisp/vc/vc.el (vc-checkout): Try to use the vc-dir's backend + before looking for the file's one. The latter doesn't work when + the file doesn't exist on disk yet (bug#62674). + +2023-04-11 Eli Zaretskii + + Improve documentation related to 'ispell-complete-word' + + * lisp/textmodes/ispell.el (ispell-alternate-dictionary) + (ispell-complete-word-dict, ispell-complete-word): Doc fixes. + (Bug#62775) + +2023-04-11 Po Lu + + * configure.ac: Add -lbsd on Haiku. + +2023-04-11 Eli Zaretskii + + Add menu to 'c-ts-mode' and 'c++-ts-mode' + + * lisp/progmodes/c-ts-mode.el (c-ts-mode-menu): New menu. + +2023-04-11 Mattias Engdegård + + Update manual about `sort` + + * doc/lispref/sequences.texi (Sequence Functions): + Remove inaccurate and over-specific claims about how `sort` works for + lists: there is no guarantee that it doesn't modify the `car` fields + of the input list (which is precisely what it does at this time). + + (cherry picked from commit c753a9592345e2084d69e9e2cc458c16db2e4141) + +2023-04-11 Eli Zaretskii + + Fix wallpaper-tests on MS-Windows + + * test/lisp/image/wallpaper-tests.el (wallpaper--find-setter) + (wallpaper--find-setter/call-predicate) + (wallpaper--find-setter/set-current-setter) + (wallpaper-set/calls-init-action) + (wallpaper-set/calls-wallpaper-set-function) + (wallpaper-set/runs-command, wallpaper-set/runs-command/detach): + Skip these tests if native functions are used for changing + wallpaper. These tests are irrelevant in that case. + +2023-04-11 Basil L. Contovounesios + + Fix a couple of eglot-tests + + * test/lisp/progmodes/eglot-tests.el + (eglot-test-rust-analyzer-watches-files): Bump timeout. + (eglot-test-json-basic): Check for yas-minor-mode before using it, + like other tests do (bug#61637). + +2023-04-10 Eli Zaretskii + + Fix visiting RPM files + + We cannot call 'sh-set-shell' inside 'sh-base-mode', since various + settings of 'sh-mode', in particular the syntax table, is not yet + set. Likewise with various hooks: since 'sh-base-mode' is not a + mode any file should be visited with, it makes no sense to set up + stuff like 'hack-local-variables-hook' in 'sh-base-mode'; it + should be set in the descendant modes instead. + * lisp/progmodes/sh-script.el (sh-base-mode): Move the call to + 'sh-set-shell' from here... + (sh-mode): ...to here... + (bash-ts-mode): ...with a copy here. (Bug#62748) + +2023-04-10 Basil L. Contovounesios + + Fix ff-quiet-mode doc + + * lisp/find-file.el (ff-quiet-mode, ff-find-other-file): Say that + ff-quiet-mode disables tracing, not the inverse. + +2023-04-01 Gregory Heytings + + Another final fix to last changes + + * src/xdisp.c (get_small_narrowing_begv): Refine the value of 'bol_pos'. + +2023-04-01 Gregory Heytings + + Three final fixes to last changes + + * src/xdisp.c (get_nearby_bol_pos): Initialize 'bol' to BEGV - 1 + instead of 0 (which fixes cursor motion commands in the presence + of a narrowing), adapt the return condition accordingly, and do + not restart the loop when BEGV has been reached. + (get_small_narrowing_begv): Use correct type. + +2023-04-01 Gregory Heytings + + Two further fixes to last changes + + * src/xdisp.c (get_narrowed_width): Use FRAME_WINDOW_P instead of + Fterminal_live_p. Also take WINDOW_LEFT_FRINGE_WIDTH into + account. + +2023-04-01 Gregory Heytings + + Improve and fix last changes + + * src/xdisp.c (get_narrowed_width): Use WINDOW_RIGHT_FRINGE_WIDTH, + which works both for character-only terminals and for GUI frames + without fringes. + (get_nearby_bol_pos): Instead of searching for BOL in + [pos-500000..pos], gradually extend the region, starting with + [pos-500..pos]. This is much faster in buffers with some long + lines in the middle of lots of short lines. + +2023-03-29 Gregory Heytings + + Fix cursor motion in character-only terminals + + * src/xdisp.c (get_narrowed_width): Subtract 1 from + window_body_width to account for the '\' line wrapping indication. + +2023-03-28 Gregory Heytings + + Make get_medium_narrowing_begv/zv static + + * src/xdisp.c (get_medium_narrowing_begv): + (get_medium_narrowing_zv): Make these two functions static, they + are only used in xdisp.c. + + * src/dispextern.h: Remove the prototypes. + +2023-03-28 Gregory Heytings + + Improve accuracy of cursor motion commands in long lines + + * src/xdisp.c (get_nearby_bol_pos): New function. + (get_small_narrowing_begv): Use it. This makes cursor motion + commands much more accurate in the first 500K characters of each + long line. + +2023-03-28 Gregory Heytings + + Remove labeled restrictions before calling Fwiden + + * src/editfns.c (labeled_restrictions_remove_in_current_buffer): + New function. + + * src/lisp.h: Make it externally visible. + + * src/xdisp.c (display_count_lines_logically): + * src/lread.c (readevalloop): + * src/indent.c (line_number_display_width): + * src/fileio.c (write_region): + * src/callproc.c (Fcall_process_region): + * src/buffer.c (Ferase_buffer): Use it. + +2023-03-28 Gregory Heytings + + Code cleanup for long line optimizations + + This commit does not change any code, it merely renames functions + and clarifies the documentation, to make the code hopefully easier + to grasp. + + * src/dispextern.h (struct it): Rename the 'narrowed_begv', + 'narrowed_zv', 'locked_narrowing_begv', 'locked_narrowing_zv' to + 'medium_narrowing_begv', 'medium_narrowing_zv', + 'large_narrowing_begv', 'large_narrowing_zv'. Clarify the + comments. + Update the prototypes of the functions renamed in xdisp.c. + + * src/lisp.h: Update the prototypes of the functions renamed in + editfns.c. Remove the prototype of + 'safe_run_hooks_maybe_narrowed', which is used only in keyboard.c. + + * src/xdisp.c + (get_small_narrowing_begv): Renamed from + 'get_closer_narrowed_begv'. + (get_medium_narrowing_begv): Renamed from 'get_narrowed_begv'. + (get_medium_narrowing_zv): Renamed from 'get_narrowed_zv'. + (get_large_narrowing_begv): Renamed from 'get_locked_narrowing_begv'. + (get_large_narrowing_zv): Renamed from 'get_locked_narrowing_zv'. + (SET_WITH_NARROWED_BEGV): Use the new field names. + (handle_fontified_prop): Use the new function and new field names. + (back_to_previous_line_start): Use the new field name. + (back_to_previous_visible_line_start): Use the new field name. + (reseat): Use the new function and new field names. + (get_visually_first_element): Use the new field name. + (move_it_vertically_backward): Use the new function name. + (redisplay_internal): Use the new function name. + Also add a large comment to explain how Emacs deals with long lines. + + * src/keyboard.c: + (safe_run_hooks_maybe_narrowed): Use the new function names from + xdisp.c and editfns.c. Make the function static, and add a + prototype. + + * src/editfns.c: + (labeled_restrictions): Renamed from 'narrowing_locks'. + (labeled_restrictions_add): Renamed from 'narrowing_locks_add'. + (labeled_restrictions_remove): Renamed from + 'narrowing_locks_remove'. + (labeled_restrictions_get_bound): Renamed from + 'narrowing_lock_get_bound'. + (labeled_restrictions_peek_label): Renamed from + 'narrowing_lock_peek_tag'. + (labeled_restrictions_push): Renamed from 'narrowing_lock_push'. + (labeled_restrictions_pop): Renamed from 'narrowing_lock_pop'. + (unwind_reset_outermost_restriction): Renamed from + 'unwind_reset_outermost_narrowing'. + (reset_outermost_restrictions): Renamed from + 'reset_outermost_narrowings'. + (labeled_restrictions_save): Renamed from 'narrowing_locks_save'. + (labeled_restrictions_restore): Renamed from + 'narrowing_locks_restore'. + (unwind_labeled_narrow_to_region): Renamed from + 'unwind_narrow_to_region_locked'. + (labeled_narrow_to_region): Renamed from + 'narrow_to_region_locked'. + (Finternal__label_restriction): Renamed from + 'Finternal__lock_narrowing'. + (Finternal__unlabel_restriction): Renamed from + 'Finternal__unlock_narrowing'. + (Fwiden): Use the new function names. + (Fnarrow_to_region): Use the new function names. + (save_restriction_save): Use the new function names. + (syms_of_editfns): Use the new function names. + : Renamed from 'outermost-narrowing'. + + * lisp/subr.el (internal--with-restriction): Use the new internal + function name. + (internal--without-restriction): Use the new internal function + name. + + * src/composite.c (composition_compute_stop_pos): + (find_automatic_composition): Use the new function name. + + * doc/lispref/positions.texi (Narrowing): Add index entry. + +2023-04-10 Eli Zaretskii + + * lisp/ldefs-boot.el: Regenerate. + +2023-04-10 Eli Zaretskii + + Bump Emacs version to 29.0.90 + + * README: + * configure.ac: + * nt/README.W32: + * msdos/sed2v2.inp: Bump version to 29.0.90. + +2023-04-09 Dmitry Gutov + + Fix some cases of incomplete code's indentation [c/c++-ts-mode] + + * lisp/progmodes/c-ts-mode.el (c-ts-base--before-indent): Try to + guess when the parse tree is incomplete, and provide a better node + to indent against (bug#62717). + (c-ts-base-mode): Set up advice for local treesit-indent-function. + +2023-04-09 Dmitry Gutov + + project-search: Pipe the list of files through 'file-regular-p' + + * lisp/progmodes/project.el (project-search): Pipe the list of + files through 'file-regular-p' to skip directories (bug#62735). + +2023-04-09 Eli Zaretskii + + Update ChangeLog and AUTHORS for Emacs 29 + + * admin/authors.el: Update for Emacs 29. + + * etc/AUTHORS: Re-generate for Emacs 29. + + * ChangeLog.4: New generated file. + * Makefile.in (PREFERRED_BRANCH): Update to emacs-29. + (CHANGELOG_HISTORY_INDEX_MAX): Bump to 4. + +2023-04-09 João Távora + + Backport: Eglot: no more tests based on Pylsp (bug#62694) + + The functionality under test in eglot.el is exactly the same, but use + the clangd server only, as that is used in more tests, and it is much + easier to check if it misbehaves or not. + + Tests pass with clangd version 15. + + * test/lisp/progmodes/eglot-tests.el (python): Don't require it. + (eglot--call-with-fixture): Simplify. + (eglot--wait-for-clangd): New helper. + (eglot-test-basic-completions) + (eglot-test-non-unique-completions, eglot-test-basic-xref) + (eglot-test-snippet-completions) + (eglot-test-snippet-completions-with-company) + (eglot-test-eldoc-after-completions, eglot-test-multiline-eldoc): + Use clangd, not pylsp. + (eglot-test-formatting): Renamed from + eglot-test-python-autopep-formatting. + (eglot-test-python-yapf-formatting): Remove. + + (cherry picked from commit fc8230f3362b12955152f48565a6c670b4c4cc88) + +2023-04-08 Eli Zaretskii + + Fix 'C-h k' for "Paste from Kill Menu" in context menus + + * lisp/mouse.el (context-menu-region): Make the entries be + symbols, not just integers, to prevent "C-h c" from interpreting + them as character keys. (Bug#62626) + +2023-04-08 Eli Zaretskii + + Improve the documentation of the XDS support + + * doc/lispref/frames.texi (Drag and Drop): Rephrase and rearrange + the documentation of XDS support. Add indexing. Document + 'x-dnd-save-direct' and 'x-dnd-save-direct-immediately'. Original + patch from Po Lu . + + * lisp/x-dnd.el (x-dnd-types-alist, x-dnd-test-function) + (x-dnd-default-test-function, x-dnd-direct-save-function): Doc + fixes. + (x-dnd-save-direct, x-dnd-save-direct-immediately): Rename the + second argument to FILENAME. Doc fix. + +2023-04-08 Eli Zaretskii + + Allow reindentation of images inserted by 'mm-inline-image' + + * lisp/gnus/mm-view.el (mm-inline-image): Use "x" as text on which + to put the image 'display' property, so that indentation commands + don't destroy the image inadvertently. (Bug#62637) + +2023-04-08 Eli Zaretskii + + Fix "C-h k" and "C-h c" with Paste from Kill Menu + + * lisp/subr.el (event-basic-type, event-modifiers): Return nil if + EVENT is a string. (Bug#62626) + +2023-04-08 Daniel Martín + + Change cursor color on NS port when it matches the face background + + * src/macfont.m (CG_SET_FILL_COLOR_WITH_FRAME_CURSOR): New macro. + (CG_SET_FILL_COLOR_WITH_FRAME_BACKGROUND): New macro. + (macfont_draw): When the cursor's color matches the face background, + set the fill color of the cursor to the face foreground. + * src/nsterm.m (ns_maybe_dumpglyphs_background): When dumping the + background of a glyph string, apply the logic mentioned + above. (Bug#62573) + +2023-04-08 Eli Zaretskii + + Improve documentation of image-related commands + + * lisp/image.el (image-map): Make it inherit from + 'image-slice-map' instead of repeating the bindings. + + * doc/emacs/files.texi (Image Mode): Document the key bindings set + by 'insert-image'. Add indexing. + + * doc/lispref/display.texi (Showing Images): Make the description + of user commands more concise. Add index entries and + cross-reference to the Emacs manual. + + * etc/NEWS: Rearrange entries relevant to image commands. + +2023-04-08 Eli Zaretskii + + Fix handling of sliced images + + * lisp/image.el (image-slice-map): New keymap, without some + bindings that make no sense with sliced images. + (insert-image, insert-sliced-image): Use it. + (insert-sliced-image): Make the 'keymap' property rear-nonsticky, + to prevent calling image commands when point is to the right of + the slice. (Bug#62679) + + * lisp/image/image-crop.el (image-cut, image-crop): Doc fixes. + (image-crop): Don't try using stock MS-Widows convert.exe + program. Use 'image--get-image' to support sliced images. + +2023-04-08 garid3000 + + Add cyrillic-mongolian input method + + * lisp/leim/quail/cyrillic.el (cyrillic-mongolian): New input + method. (Bug#56617) + +2023-04-07 João Távora + + Jsonrpc: don't bind inhibit-read-only to t so early + + Related to https://github.com/joaotavora/eglot/discussions/1202, where + because of this very wide binding to inhibit-read-only to t, Eglot was + managing to write into read-only buffers from the response handlers + that ran from within the stack of the jsonrpc.el process filter. + + This is of course illegal and dangerous, but Eglot wasn't made aware + because of the binding. + + * lisp/jsonrpc.el (jsonrpc--process-filter): Don't bind + inhibit-read-only so early. + +2023-04-07 Eli Zaretskii + + Allow active region when IM is used + + * lisp/international/quail.el (quail-minibuffer-message): Bind + deactivate-mark to allow setting active region in the minibuffer + when an input method is used. (Bug#62709) + +2023-04-06 Robert Pluim + + Add emoji-zoom-reset + + * lisp/international/emoji.el (emoji-zoom-map): Add emoji-zoom-reset. + (emoji-zoom-reset): New function, it resets the zoom level. + * lisp/international/mule-cmds.el (ctl-x-map): Add emoji-zoom-reset. + * etc/NEWS: Announce new command. + +2023-04-06 Robert Pluim + + Make emoji-zoom-{increase,decrease} set text properties correctly + + * lisp/international/emoji.el (emoji-zoom-increase): Ensure that we're + increasing the :height of the anonymous face at point, rather than + having two :height properties, which appeared to work by + accident, and don't error at eob. (Bug#62675) + +2023-04-06 Eli Zaretskii + + Fix transforming sliced images + + * lisp/image.el (image--get-image): Support sliced images + (bug#62679). Doc fix. + (image-mouse-decrease-size, image-mouse-increase-size) + (image-decrease-size, image-increase-size): Doc fixes. + +2023-04-04 Michael Albinus + + Adapt EMBA scripts. + + * test/infra/Dockerfile.emba (emacs-gnustep): Add zlib1g-dev. + Remove make instrumentation. + + * test/infra/gitlab-ci.yml (build-image-gnustep, test-gnustep): Uncomment. + +2023-04-04 Eli Zaretskii + + Another terminology fix in ELisp reference manual + + * doc/lispref/frames.texi (Mouse Tracking): + * doc/lispref/commands.texi (Motion Events, Event Examples): + 'track-mouse' is a macro, not a special form. + +2023-04-04 Shynur (tiny change) + + Correct terminology in Elisp Reference Manual + + * doc/lispref/functions.texi (Function Names): 'defun' is a macro, not + a special form. (Bug#62661) + +2023-04-04 Michael Albinus + + Comment out GNUSTEP jobs on EMBA (again) + + * test/infra/gitlab-ci.yml (build-image-gnustep, test-gnustep): + Comment out jobs due to bug#62210. + +2023-04-03 Mattias Engdegård + + Fix regexp string escaping mistake in vhdl-mode.el (bug#62508) + + * lisp/progmodes/vhdl-mode.el (vhdl-compiler-alist): Quote brackets + correctly. + +2023-04-02 Kyle Meyer + + Update to Org 9.6.3-2-gf2949d + +2023-04-02 João Távora + + Eglot: don't watch directories that don't exist + + project-files isn't guaranteed to return existing files, so better + check if they exist because placing a watcher on them. + + Originally reported at: + https://github.com/joaotavora/eglot/issues/1198 + + * lisp/progmodes/eglot.el (eglot-register-capability + workspace/didChangeWatchedFiles): Check if directories exist. + +2023-04-02 Eshel Yaron + + Preserve peer information for web page in eww-readable + + The :peer property in eww-data affects the face of the page title + in 'header-line-format' as set by 'eww-update-header-line-format'. + Preserving this property in eww-readable avoids having the header + line's appearance change when this command is called. + * lisp/net/eww.el (eww-readable): Preserve eww-data's :peer + property. (Bug#62574) + +2023-04-02 Eli Zaretskii + + * lisp/subr.el (use-dialog-box-p): Fix conditions for GUI dialogs. + +2023-04-01 Eli Zaretskii + + Fix ModelSim error regexp in vhdl-mode + + * lisp/progmodes/vhdl-mode.el (vhdl-compiler-alist): Fix ModelSim + error regexp. Suggested by Reto Zimmermann . + (Bug#62508) + +2023-04-01 Eli Zaretskii + + Document enhancements in handling of echo-area messages + + * etc/NEWS: + * doc/lispref/display.texi (Displaying Messages): + * lisp/minibuffer.el (inhibit-message-regexps) + (set-message-functions, inhibit-message, set-multi-message): + Improve the documentation of functions dealing with display of + echo-area messages. + +2023-04-01 Eli Zaretskii + + Fix new Eshell tests on MS-Windows + + * test/lisp/eshell/eshell-tests.el (eshell-test/eshell-command/background) + (eshell-test/eshell-command/background-pipeline): Allow for ".exe" + in the program's name. This fixes these tests on MS-Windows. + +2023-03-31 Jim Porter + + Fix using background commands in 'eshell-command' + + Do not merge to master. + + This regressed due to the patch for bug#53715, which changed how + Eshell pipelines return the processes in the pipeline (bug#62556). + + * lisp/eshell/esh-cmd.el (eshell-eval-command): Allow process-pairs. + + * test/lisp/eshell/eshell-tests.el (eshell-test/eshell-command/simple) + (eshell-test/eshell-command/pipeline) + (eshell-test/eshell-command/background) + (eshell-test/eshell-command/background-pipeline): New tests. + +2023-03-31 Shynur (tiny change) + + Fix typo in section 14.1 of Emacs Manual + + * doc/emacs/display.texi (Scrolling): Fix typo. (Bug#62569) + +2023-03-30 João Távora + + Eglot: unbreak eglot-extend-to-xref on w32 + + Because of a drive-letter casing mismatch between 'buffer-file-name' + and the return value of 'url-generic-parse-url', the hash-table test + 'equal' in 'eglot-current-server' failed. + + This failed to recognize that the file xref landed us on really is + managed by the language server that facilitated that jump. + + The function w32-long-file-name seems to convert "C:/Users/" to + "c:/Users" consistently and so is a good addition to + eglot--uri-to-path. + + * lisp/progmodes/eglot.el (eglot--uri-to-path): Use + w32-long-file-name. + +2023-03-30 João Távora + + Eglot: ensure server shutdown turns off eglot-inlay-hints-mode + + * lisp/progmodes/eglot.el (eglot--managed-mode-off): Turn off + eglot-inlay-hints-mode. + +2023-03-30 Yuan Fu + + Add two typescript-ts-mode faces (bug#62429) + + * lisp/progmodes/typescript-ts-mode.el: + (typescript-ts-mode-jsx-tag-face) + (typescript-ts-mode-jsx-attribute-face): New faces. + (typescript-ts-mode--font-lock-settings): Use new faces. + (tsx-ts-mode): Mention the new faces in the docstring. + +2023-03-30 Shynur (tiny change) + + Fix scrolling window when point moves up + + This fixes the case when both 'scroll-conservatively' and + 'scroll-step' are customized to non-default values. + * src/xdisp.c (try_scrolling): Fix precedence between + 'scroll-step' and 'scroll-conservatively' when scrolling with + 'previous-line'. (Bug#62530) + +2023-03-30 Eli Zaretskii + + Improve documentation of 'defcustom's :set keyword + + * lisp/custom.el (defcustom): + * doc/lispref/customize.texi (Variable Definitions): Improve the + documentation of the :set keyword in 'defcustom'. + +2023-03-29 Andrea Corallo + + Comp fix calls to redefined primitives with op-bytecode (bug#61917) + + * test/src/comp-tests.el (61917-1): New test. + * src/comp.c (syms_of_comp): New variable. + * lisp/loadup.el: Store primitive arities before dumping. + * lisp/emacs-lisp/comp.el (comp--func-arity): New function. + (comp-emit-set-call-subr): Make use of `comp--func-arity'. + +2023-03-29 Eli Zaretskii + + Fix duplicate defcustom in eww.el + + * lisp/net/eww.el (eww-default-download-directory): Renamed back + from 'eww-download-directory'; all users changed. Doc fix. + (Bug#62531) + +2023-03-29 Eli Zaretskii + + Fix indentation regression in 'C-h l' + + * lisp/help.el (view-lossage): Fix indentation of commands + when the key sequence includes a semicolon. (Bug#62453) + +2023-03-29 Michael Albinus + + * doc/misc/tramp.texi (Remote shell setup): Clarify use of ssh RemoteCommand. + +2023-03-28 Eli Zaretskii + + Improve documentation of 'read-choice' and related symbols + + * doc/lispref/commands.texi (Reading One Event): + * lisp/subr.el (read-char-choice-use-read-key, read-char-choice) + (read-char-choice-with-read-key, y-or-n-p-use-read-key): Improve + documentation of these functions and variables. + +2023-03-28 Andrea Corallo + + Revert "Comp fix calls to redefined primitives with op-bytecode (bug#61917)" + + This reverts commit 263d6c38539691c954f4c3057cbe8d5468499b91. + + These patch series caused a number of regression and more analysis is + required. + +2023-03-28 Andrea Corallo + + Revert "* lisp/emacs-lisp/comp.el (comp-emit-set-call-subr): Improve..." + + This reverts commit 4a7a0c9a9f521b04b23580901e9c0a662b504e32. + + These patch series caused a number of regression and more analysis is + required. + +2023-03-28 Michael Albinus + + Skip ruby-ts-imenu-index test if needed + + * test/lisp/progmodes/ruby-ts-mode-tests.el (ruby-ts-imenu-index): + Add check for treesitter. + +2023-03-28 Michael Albinus + + Fix Eglot Tramp tests on EMBA + + * test/lisp/progmodes/eglot-tests.el (eglot--call-with-tramp-test): + Bind `tramp-allow-unsafe-temporary-files' with t. (Bug#62289) + +2023-03-28 Michael Albinus + + * test/infra/Dockerfile.emba (emacs-gnustep): Instrument "make V=1 ...". + +2023-03-27 João Távora + + Fix accidental backward-incompatible change (bug#62417) + + This code used to work, but with the change of 59ecf25fc860 it stopped + working: + + (defun foop (buffer-name _alist) (string-match "foop" buffer-name)) + (add-to-list 'display-buffer-alist '(foop . display-buffer-other-frame)) + + This change makes it work again, restoring compatibility. + + * lisp/subr.el (buffer-match-p): Fix and adjust docstring. + * lisp/window.el (display-buffer-alist): Adjust docstring. + (display-buffer-assq-regexp): Make good on promise of display-buffer-alist. + +2023-03-26 Dmitry Gutov + + ruby-ts-mode: Fix/simplify Imenu index generation + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--full-name): Drop '#' + from the end of resulting string when the node is not a method. + Support 'singleton_method' nodes. + (ruby-ts--imenu-helper): Simplify, to create a "flat" list of + entries, rather than a nested one. The previous implementation + had problems (like producing a nested structure of full-qualified + names, thus creating a lot of textual repetition), seems easier to + just follow ruby-mode's example here, at least for Emacs 29's + release. + + * test/lisp/progmodes/ruby-ts-mode-tests.el (ruby-ts-imenu-index): + New test. + +2023-03-26 Dmitry Gutov + + (ruby-ts--align-chain): Use 'equal' to check for an exact match + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--align-chain): Use + 'equal' to check for an exact match rather than substring. + +2023-03-26 Jonas Bernoulli + + Update to Transient v0.3.7-218-g3dbb22a + +2023-03-26 Kyle Meyer + + Update to Org 9.6.2 + +2023-03-26 Ken Brown + + Skip failing tests on Cygwin with native compilation (bug#62450) + + * test/Makefile.in (TEST_NATIVE_COMP): New variable, used to + determine whether to run tests tagged with :nativecomp. Set it to + "no" on Cygwin and to $(HAVE_NATIVE_COMP) otherwise. + + * test/lisp/emacs-lisp/benchmark-tests.el (benchmark-tests): Skip + on Cygwin with native-compilation. + +2023-03-26 Michael Albinus + + Fix GNUSTEP tests on EMBA + + * configure.ac (LIBS_GNUSTEP): Adapt CPPFLAGS and CFLAGS. (Bug#62210) + Proposed by Po Lu . + + * test/infra/gitlab-ci.yml (build-image-gnustep) + (test-gnustep): Uncomment jobs. + +2023-03-26 Phil Sainty + + Fix primary selection modification during `term-mouse-paste' (bug#58608) + + * lisp/term.el (term-mouse-paste): Prevent the primary selection from + being changed in the process of sending it to the inferior process. + +2023-03-26 Xi Lu + + Add 'eww-default-download-directory'. + + * lisp/net/eww.el (eww-default-download-directory): New defcustom. + (eww--download-directory): Use it. (Bug#62435) + +2023-03-26 Phil Sainty + + * doc/lispref/modes.texi: Improve docs for obsolete '%m' construct + + Bug #57080. + +2023-03-26 Phil Sainty + + Improve docs for global-mode-string / %M construct + + * src/xdisp.c (global-mode-string): Update docstring. + * doc/lispref/modes.texi: Update manual. + +2023-03-26 Phil Sainty + + * src/buffer.c (mode-line-format): Document %o and %q constructs + + Missed from commit b0b02ca7f3e06d0f092df6f81babd1277bf93b0f. + +2023-03-26 Phil Sainty + + * src/buffer.c (mode-line-format): Remove docs for obsolete %t construct + + This documentation had been previously removed in 1999 in [1] + but was subsequently restored again in a different form in 2006 + in [2] as the construct was still supported on some systems. + However it looks like it hasn't done what that documentation + indicated since [3] in 2011, and the final remnant of this + functionality was removed in [4] in 2013; so it seems clear that + it's no longer supported and shouldn't be documented now. + + [1] commit 08de62001945d4dd32a3d6af44da05804cb296d5 + [2] commit dafbe726b89a36010f3f24bb1efe4ace0a5f7f0f + [3] commit 05c652517317d10690aaf0a6aa0bc876382b9d82 + [4] commit 8549f9e89bd9288c4c709d183a5bf8f07dbeed3d + +2023-03-25 kobarity + + Improve indenting "case" in Python + + * lisp/progmodes/python.el (python-info-dedenter-statement-p): Do not + consider the first "case" in the block as dedenter. + * test/lisp/progmodes/python-tests.el + (python-info-dedenter-opening-block-positions-7) + (python-info-dedenter-statement-p-6): New tests. (Bug#62092) + +2023-03-25 Michael Albinus + + * test/infra/Dockerfile.emba (emacs-native-comp): Add zlib1g-dev. + +2023-03-25 Ken Brown + + Fix failure of fns-tests-collate-strings on Cygwin + + * test/src/fns-tests.el (fns-tests-collate-strings): Use + en_XY.UTF-8 instead of en_DE.UTF-8 as an example of an invalid + locale; en_DE.UTF-8 is actually a valid locale on Cygwin. + Note: The test will still fail on Cygwin releases < 3.5 + because of a Cygwin bug. (Bug#62420) + +2023-03-25 Aaron L. Zeng (tiny change) + + * lisp/savehist.el (savehist-save): Preserve shared structure + + This avoids ballooning the size of variables that contain + large text properties, such as the 'yank-handler' installed + by 'evil-yank-rectangle', which contains a list of lines in + the string. + * lisp/savehist.el (savehist-save): Enable 'print-circle'. + (Bug#62364) + +2023-03-24 Michael Albinus + + Adapt Tramp manual + + * doc/misc/tramp.texi (Default Method): OpenSSH for MS Windows can + be used. + (Ssh setup): Extend for MS Windows and ssh. + +2023-03-24 Eli Zaretskii + + Fix system time sampling on MS-Windows + + * src/timefns.c (emacs_localtime_rz) [WINDOWSNT]: Unconditionally + call tzset to make sure we pick up all the changes of time zone, + working around the MS CRT caching. + +2023-03-24 Yuan Fu + + Fix treesit_ensure_parsed (bug#62333) + + * src/treesit.c (treesit_ensure_parsed): Check for need_reparse after + treesit_sync_visible_region runs, because as the comment says, + treesit_sync_visible_region might modify need_reparse. + +2023-03-23 Stefan Monnier + + * lisp/help-fns.el (find-lisp-object-file-name): Fix bug#62376 part2 + + Nowadays `loaddefs.el` are byte-compiled, so adjust pattern accordingly + +2023-03-23 Eli Zaretskii + + Improve "Bugs" in the Emacs manual + + * doc/emacs/trouble.texi (Bugs, Known Problems) + (Understanding Bug Reporting, Checklist, Sending Patches) + (Contributing, Coding Standards): Improve wording, structure, + markup, and indexing. (Bug#62320) + +2023-03-23 João Távora + + Fix Eglot progress reporting + + When the server sends an "end" message, Emacs's progress reporters + should also be updated. + + * lisp/progmodes/eglot.el (eglot-handle-notification $/progress): Rework. + +2023-03-23 Stefan Monnier + + Fix :predicate handling in globalized minor modes + + * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): + Fix a thinko. (Bug#62376) + +2023-03-23 Eli Zaretskii + + Allow showing prefix commands in Help buffers + + * lisp/help.el (describe-bindings-show-prefix-commands): New user + option. + (describe-map): Use it to decide whether to output prefix + commands. Patch by Bob Rogers . (Bug#62279) + + * etc/NEWS: Document 'describe-bindings-show-prefix-commands'. + +2023-03-23 Daniel Martín + + Fix toolbar item validation in the NS port + + * src/nsterm.m ([EmacsView validateToolbarItem:]): Implement this + NSToolbarItemValidation method, which is called by AppKit when it + needs to validate an image item in a toolbar. This solves, in + particular, the problem with having the "Save" icon on the tool + bar enabled at Emacs startup. (Bug#62234) + +2023-03-22 Michael Albinus + + Use libgccjit-10-dev on EMBA + + * test/infra/Dockerfile.emba (emacs-native-comp): Use + libgccjit-10-dev. (Bug#62211) + + * test/infra/gitlab-ci.yml (build-native-comp-speed2) + (test-native-comp-speed2): Uncomment jobs. + +2023-03-22 Juri Linkov + + * lisp/outline.el (outline--fix-buttons-after-change): Add save-match-data. + + It's important for a hook in after-change-functions not to change match-data. + Otherwise it breaks functions that make changes in the buffer, such as + for example, successive calls to delete-region in smerge-keep-n, etc. + +2023-03-22 Yuan Fu + + Align concatenated strings to the first sibling in c-ts-mode + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Change rule. + +2023-03-22 Yuan Fu + + Only fill the current paragraph in c-ts-common--fill-block-comment + + * lisp/progmodes/c-ts-common.el: + (c-ts-common--fill-block-comment): Shrink the filled region to the + paragraph at point. + +2023-03-21 Yuan Fu + + Add missing indent rule for c-ts-mode + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): New rule for case. + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test. + +2023-03-21 Yuan Fu + + Improve docstring of treesit-parent-while (bug#62301) + + * doc/lispref/parsing.texi (Retrieving Nodes): Improve and fix + docstring for treesit-parent-until and treesit-parent-while. + * lisp/treesit.el (treesit-parent-while): Improve docstring. + +2023-03-21 João Távora + + Eglot: report window/workDoneProgress capability to language server + + In bug#59149, LSP progress reporting was implemented, but Eglot's + 'capabilities' statement to the server wasn't changed to include + window/workDoneProgress. + + * lisp/progmodes/eglot.el (eglot-client-capabilities): Actually + report workDoneProgress. + +2023-03-21 Andrea Corallo + + * lisp/emacs-lisp/comp.el (comp-emit-set-call-subr): Improve 263d6c38539 + +2023-03-21 Robert Pluim + + Expand defvar-keymap documentation + + * doc/lispref/keymaps.texi (Creating Keymaps): Describe the :repeat keyword. + +2023-03-20 Dmitry Gutov + + * lisp/treesit.el (treesit-end-of-defun): Guard arg against nil (bug#62158). + +2023-03-20 Andrea Corallo + + Comp fix calls to redefined primitives with op-bytecode (bug#61917) + + * lisp/emacs-lisp/comp.el (comp-emit-set-call-subr): Fix compilation + of calls to redefined primitives with dedicated op-bytecode. + * test/src/comp-tests.el (61917-1): New test. + +2023-03-20 Robert Pluim + + Warn package authors away from keymap-unset with REMOVE + + * doc/lispref/keymaps.texi (Changing Key Bindings): Ask package + authors to not use the REMOVE argument to `keymap-unset'. + +2023-03-20 Michael Albinus + + Comment out jobs on EMBA + + * test/infra/gitlab-ci.yml: Comment out jobs due to bug#62210 and + bug#62211. + +2023-03-20 Robert Pluim + + Improve defvar-keymap docstring. + + * lisp/keymap.el (defvar-keymap): Improve description of ':enter' and + ':exit' usage for ':repeat' keyword. + +2023-03-19 Gregory Heytings + + Improve warning about changing the string returned by symbol-name + + * src/data.c (Fsymbol_name): Add warning. See bug#62009. + + * doc/lispref/symbols.texi (Creating Symbols): Improve warning. + +2023-03-19 Eli Zaretskii + + Fix visiting XBM/XPM files when 'c-ts-mode' is active + + * lisp/progmodes/c-ts-mode.el (treesit-ready-p): Fix association + for XBM/XPM files in 'auto-mode-alist'. (Bug#62276) + +2023-03-19 Stefan Monnier + + * lisp/mpc.el (mpc-format): Fix oversight in commit 48b6cec61cf + +2023-03-19 João Távora + + Bail early from eglot--apply-text-edits if nothing to do + + * lisp/progmodes/eglot.el (eglot--apply-text-edits): Early return. + +2023-03-19 João Távora + + Improve ergonomics of Eglot's inlay hints + + Instead of deleting inlay hints instantly as soon as the affected + changes, make hint overlays span one character (instead of being + length 0). Give the overlays an "evaporate" property. + + Given an inlay hints at position POS, its attached to [POS, POS+1] if + it's kind=1 (usually type hints) and [POS-1, POS] otherwise. For + kind=1 hints, the 'cursor position of the first such overlay is also + tweaked, so that's it's less akward to edit around it. + + * lisp/progmodes/eglot.el (eglot--before-change): Don't delete hints + here. + (eglot--update-hints-1): Rework. + +2023-03-19 Eli Zaretskii + + Protect against too large size of 'recent-keys' vector + + * src/keyboard.c (MAX_NUM_RECENT_KEYS): New macro. + (Flossage_size): Don't allow specifying too large lossage-size. + Fix data types. (Bug#62277) + +2023-03-19 Michael Albinus + + * lisp/net/tramp.el (tramp-yn-prompt-regexp): Fix regexp. + +2023-03-18 Kyle Meyer + + Update to Org 9.6.1-48-g92471e + +2023-03-18 João Távora + + Merge confusing duplicate sections on commands in Eglot manual + + Also describe eglot-diagnostics-map. + + * doc/misc/eglot.texi (Eglot Features): Don't describe commands here. + (Eglot Commands): Describe commands here. + +2023-03-18 João Távora + + Don't take over mouse-1 binding on Eglot diagnostics (bug#62157) + + It's better to give the user a variable to allow the overlay keymap to + be customized. + + * lisp/progmodes/eglot.el (eglot--mouse-call): Accept second arg. + (eglot--mode-line-props): Adapt call to eglot--mouse-call + (eglot-diagnostics-map): New variable. + (eglot-code-actions-at-mouse): New command. + +2023-03-18 Michael Albinus + + * lisp/progmodes/eglot.el (eglot--connect): Improve Tramp workaround. + +2023-03-18 Gregory Heytings + + Avoid slowdowns in xmltok-scan-attributes + + * lisp/nxml/xmltok.el (xmltok-scan-attributes): Limit the search + to 10000 characters, to avoid slowdowns due to the quadratic + complexity of the regexp. Suggested by Stefan Monnier. + +2023-03-18 Alan Mackenzie + + CC Mode: Eliminate duplicate function c-list-of-strings + + Replace it with the existing c-string-list-p. Also put an autoload cookie in + front of c-string-list-p so that it will not be signaled as undefined by + loaddefs.el. + + lisp/progmodes/cc-vars.el (c-string-list-p): Make this autoload. + (c-list-of-strings): Remove. + (c-font-lock-extra-types, c++-font-lock-extra-types) + (objc-font-lock-extra-types, java-font-lock-extra-types) + (idl-font-lock-extra-types, pike-font-lock-extra-types): In the autoload + cookies, replace c-list-of-strings with c-string-list-p. + +2023-03-18 Alan Mackenzie + + CC Mode: Allow lists of strings as safe values for *-font-lock-extra-types + + * lisp/progmodes/cc-vars.el (c-list-of-strings): New function. + (c-font-lock-extra-types, c++-font-lock-extra-types) + (objc-font-lock-extra-types, java-font-lock-extra-types) + (idl-font-lock-extra-types, pike-font-lock-extra-types): Add a :safe entry + into each of these defcustoms for c-list-of-string. + (Top level): Add an autoload entry for each of the above. + +2023-03-18 Robert Pluim + + Add tests for Bug#62207 + + * test/src/keymap-tests.el (keymap-unset-test-remove-and-inheritance): + New test. + +2023-03-18 Manuel Giraud + + Fix 'find-ls-option-default-ls' for BSD/MacOS (bug#62096) + + * lisp/find-dired.el (find-ls-option-default-ls): Adapt to + a value that works with the default "find" on *BSD and + Darwin/MacOS. Tested on OpenBSD and MacOS. Do not merge + to master. + +2023-03-17 João Távora + + Enhance section about troubleshooting in Eglot manual. + + * doc/misc/eglot.texi (Troubleshooting Eglot): Partially rewrite. + +2023-03-17 João Távora + + Fix Eglot's snippet insertion to follow the manual + + The manual states that YASnippet must only be installed to be useful. + Before this change, it would only work if the user happened to have + manually activated it before with 'yas-global-mode' or somesuch. + + This makes Eglot's Yasnippet-activating behavior similar to its + Flymake-activating behavior. + + * lisp/progmodes/eglot.el (eglot-client-capabilities): Consult + eglot--stay-out-of. + (eglot--snippet-expansion-fn): Turn on yas-minor-mod eon demand. + (eglot-completion-at-point): Simplify. + +2023-03-17 Filipp Gunbin + + Reset abbrevs-changed after saving abbrevs (bug#62208) + + * lisp/abbrev.el (abbrev--possibly-save): Reset abbrevs-changed after + saving abbrevs. + * test/lisp/abbrev-tests.el (abbrev--possibly-save-test): New test. + +2023-03-17 Robert Pluim + + Document `keymap-unset' in lispref + + * doc/lispref/keymaps.texi (Changing Key Bindings): Document + keymap-unset. + +2023-03-17 Robert Pluim + + Don't add a key binding when REMOVE is non-nil + + * src/keymap.c (store_in_keymap): Don't add a nil keybinding if we've + been asked to remove a non-existent binding. (Bug#62207) + +2023-03-17 Eli Zaretskii + + Fix the documentation of various aspects of adding Xref history + + * lisp/progmodes/xref.el (xref-marker-ring-length) + (xref-set-marker-ring-length): + * lisp/progmodes/etags.el (tags-location-ring-length) + (find-tag-marker-ring): Add doc strings saying the variables are + unused. + + * etc/NEWS: Enhance the description of the change which made Xref + marker stack unlimited in its length. + + * doc/emacs/maintaining.texi (Looking Up Identifiers): Add back + text lost when xref forward history was added in bug#38797. + Explain the difference between 'C-M-,' and 'M-.'. Improve + wording (Bug#62229) + +2023-03-16 kobarity + + Fix python-fill-paragraph problems on filling strings (bug#62142) + + * lisp/progmodes/python.el (python-syntax--context-compiler-macro) + (python-syntax-context): Add single-quoted-string and + triple-quoted-string as TYPE argument. + (python-info-triple-quoted-string-p): New helper function. + (python-fill-paragraph) + (python-fill-string): Use it. + * test/lisp/progmodes/python-tests.el (python-syntax-context-1) + (python-fill-paragraph-single-quoted-string-1) + (python-fill-paragraph-single-quoted-string-2) + (python-fill-paragraph-triple-quoted-string-1) + (python-info-triple-quoted-string-p-1) + (python-info-triple-quoted-string-p-2) + (python-info-triple-quoted-string-p-3): New tests. + +2023-03-16 João Távora + + Also exempt eglot-inlay-hints-mode from desktop.el's fumblings + + Reported in https://github.com/joaotavora/eglot/discussions/1183. + + * lisp/progmodes/eglot.el (desktop): Also exempt + eglot-inlay-hints-mode from desktop.el fumblings. + +2023-03-16 Stefan Kangas + + Refer to EWW instead of w3 and w3m + + * doc/misc/idlwave.texi (Help with HTML Documentation): Refer to EWW + instead of w3 and w3m. + +2023-03-16 João Távora + + Fix Eglot's command generation for code actions + + The user command generated by eglot--code-action should always call + eglot-code-actions with a INTERACTIVE set to t. + + Reported in https://github.com/joaotavora/eglot/issues/1132. + + * lisp/progmodes/eglot.el (eglot--code-action): Pass INTERACTIVE=t to + eglot-code-action call. + +2023-03-16 João Távora + + Emphasize emacs-29-specificity in this version of lisp/progmodes/eglot.el + + Do not merge to master. + + Before working on bugfixes to Eglot in its non-ELPA form delivered + with Emacs 29, it's important to distinguish between this emacs-29 + version and the one in master, which will also get the bugfixes (via + routine gitmerge.el) but with a bumped version number. + + * lisp/progmodes/eglot.el (Version): Emphasize Emacs 29, but hint this + is 1.12 + something. + (Package-Requires): Remove. Everything required is already in Emacs + 29. + +2023-03-16 USAMI Kenta + + Fix quoting of font-family in 'hfy-family' + + Running "M-x htmlfontify-buffer" in one buffer, the exported HTML contains + lines like: + + body, pre { text-decoration: none; font-family: Migu 2M; font-stretch: + normal; font-weight: 500; font-style: normal; color: #ffffff; + background: #000000; font-size: 15pt; } + + Standards-compliant web browsers should ignore this font-family. + + MDN Web Docs says: + https://developer.mozilla.org/en-US/docs/Web/CSS/font-family + + Valid family names + Font family names must either be given quoted as strings, or unquoted as + a sequence of one or more identifiers. This means that punctuation + characters and digits at the start of each token must be escaped in + unquoted font family names. + + It is a good practice to quote font family names that contain white + space, digits, or punctuation characters other than hyphens. + + An unquoted font-family is valid as long as it doesn't start with a digit, + but MDN Web Docs also says: + + The following example is technically valid but is not recommended: + font-family: Gill Sans Extrabold, sans-serif; + + So it makes sense to quote all font-family. + + * lisp/htmlfontify.el (hfy-family): Quote 'font-family'. (Bug#62054) + +2023-03-15 Michael Eliachevitch (tiny change) + + Document how to construct JSONRPC arrays in Eglot manual + + Many language server configuration options are of the JSON array + datatype, for example argument lists for executables, but there wasn't + any example of that in the Eglot manual. + + * doc/misc/eglot.texi (User-specific configuration) + (User-specific configuration): Tweaks. + (JSONRPC objects in Elisp): Mention JSON arrays. Tweak example. + +2023-03-15 Michael Albinus + + * test/infra/Dockerfile.emba: Use debian:bullseye. + +2023-03-15 Andrea Corallo + + * configure.ac: Fix native comp compatibility check (bug#61960) + +2023-03-15 Michael Albinus + + * test/infra/Dockerfile.emba: Install clangd. + +2023-03-15 Philip Kaludercic + + Remove 'package-vc--query-spec' + + * lisp/emacs-lisp/package-vc.el (require): Do not load `inline' during + compilation. + (package-vc--query-spec): Remove function. + (package-vc--clone): Do not call 'package-vc--query-spec'. + +2023-03-15 Philip Kaludercic + + Do not store :lisp-dir in package descriptors + + * lisp/emacs-lisp/package-vc.el (package-vc--main-file) + (package-vc--unpack-1): Query 'pkg-spec' instead of + 'package-desc-extras'. + (package-vc--unpack): Do not update 'package-desc-extras'. + + This simplification is possible due to the change in 2718bbb3bc, since + we now ensure that package specifications are not lost. They are + either provided by a package archive or stored in + 'package-vc-selected-packages'. + +2023-03-15 Philip Kaludercic + + Use 'package-vc-selected-packages' to store package specs + + * doc/emacs/package.texi (Fetching Package Sources): Do not promote + the usage of 'package-vc-selected-packages' to install packages. + * lisp/emacs-lisp/package-vc.el (package-vc-selected-packages): Remove + custom setter and change docstring according to these changes. + (package-vc--desc->spec): Consult 'package-vc-selected-packages' for + package specifications. + (package-vc--unpack): Add unknown package specifications to + 'package-vc-selected-packages' + +2023-03-13 Juri Linkov + + * lisp/progmodes/xref.el: Bump the version. + +2023-03-13 Juri Linkov + + * lisp/progmodes/xref.el (xref--xref-buffer-mode): Split up 'setq-local'. + + xref.el needs to support 26.1, but an arbitrary number of variables + in 'setq-local' was added in Emacs 27.1 (bug#62162). + +2023-03-13 Filipp Gunbin + + Fix import of keys in buffer created by epa-search-keys + + * lisp/epa-ks.el (epa-ks--query-url): Add operation parameter. + (epa-ks--fetch-key, epa-search-keys): Use it. + +2023-03-13 Michael Albinus + + Fix connection-local variables settings + + + * lisp/files-x.el (connection-local-set-profiles) + (connection-local-set-profile-variables): Use NOW when calling + `custom-set-variables'. + + * test/lisp/files-x-tests.el + (files-x-test-connection-local-set-profile-variables) + (files-x-test-connection-local-update-profile-variables) + (files-x-test-connection-local-set-profiles) + (files-x-test-hack-connection-local-variables-apply) + (files-x-test-with-connection-local-variables) + (files-x-test-setq-connection-local): Fix tests. + + * test/lisp/net/tramp-tests.el (tramp-test34-connection-local-variables) + (tramp-test34-explicit-shell-file-name): Fix tests. + +2023-03-13 João Távora + + Bump Eglot version to 1.12 + + * etc/EGLOT-NEWS: New file. + + * etc/NEWS: Briefly mention etc/EGLOT-NEWS. + + * lisp/progmodes/eglot.el: Bump versions. + +2023-03-13 João Távora + + Update Eglot's manual about eglot-workspace-configuration + + There is a possible use for a global setting + eglot-workspace-configuration, which is to (ab)use it to set + user-specific configuration when the server doesn't permit other + methods. Rearrange the "Advanced server configuration" section and + describe that use in the manual. + + * doc/misc/eglot.texi (Project-specific configuration): Correct + mistake about global usefulness of eglot-workspace-configuration. + (Advanced server configuration): Swap order of sections. + (User-specific configuration): Mention possibility of globally + setting eglot-workspace-configuration. + +2023-03-12 João Távora + + Amend last Eglot commit (bug#62065) + + The fix contained a spurious check for this-command that shouldn't + have made it in.. + + * lisp/progmodes/eglot.el (eglot-ensure): Don't check this-command. + +2023-03-12 João Távora + + Make eglot-ensure's post-command-hook run a bit later (bug#62065) + + 'eglot-ensure', typically used in the major-mode-hook, use + 'post-command-hook' to schedule an automated, non-interactive + connection attempt to a server. The goal is to connect when the + buffer is ready, i.e. after the user command that found the file. + + However, if there are dir-local or buffer-local variables to confirm, + finding the file will cause a minibuffer prompt to appear. + + In that case, 'eglot-ensure's addition to the global post-command-hook + runs before it was intended too and a connection is started + prematurely. + + In turn, this means that a call to 'hack-dir-local-variables' -- which + is part of the connection process -- which also needs a minibuffer + prompt, collides with the previous one. This generates an error and + confuses the user, who doesn't know if the directory-local variables + have been applied or not. + + This commit fixes the clash by having 'eglot-ensure' set + 'post-command-hook' buffer-locally. This causes the automated + connection to take place, as intended, after the user's original + file-finding command has ended. + + However, the problem reported in bug#62065 is not completely fixed. + If the user answers "no" to the first "confirm local variables" + "prompt, she will be prompted again in the second one. A subsequent + commit will address this separate problem. + + * lisp/progmodes/eglot.el (eglot-ensure): Use buffer-local post-command-hook. + +2023-03-12 Eli Zaretskii + + Fix display of disabled-command help text + + * lisp/novice.el (disabled-command-function): Improve wording, and + make sure the prompt doesn't exceed one screen line, so that the + mini-window is not resized (which gets in the way of fitting the + window to the size of the help text), and the help text is fully + visible when Emacs prompts for input. (Bug#62146) + +2023-03-12 Mattias Engdegård + + Remove mention of old dotted-list reader quirk from manual + + * doc/lispref/objects.texi (Dotted Pair Notation): + The (. X) reader peculiarity is no more (bug#62020). + +2023-03-12 Eli Zaretskii + + Fix value history shown for 'gc-cons-percentage' + + When Emacs is built, temacs is run in batch mode, so if we enlarge + 'gc-cons-percentage' in that case, the enlarged value will be + "remembered" by the dumped Emacs, and will show confusing + information in "C-h v", claiming that the original value was 1.0. + Keeping the value at 0.1 during dumping avoids that. + + * src/emacs.c (main): Increase 'gc-cons-percentage' in batch mode + only if we are not initializing (a.k.a. "dumping") Emacs. + +2023-03-12 Michael Albinus + + TRework fix for bug#62106 + + * lisp/files-x.el (connection-local-set-profiles) + (connection-local-set-profile-variables): + Use `custom-set-variables'. It serves the purpose to not keep + unsaved user options, and it is less invasive than + `customize-save-variable'. + +2023-03-11 Randy Taylor + + Add missing indentation rule for rust-ts-mode (Bug#62109) + + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--indent-rules): Add + missing rule. + +2023-03-11 Michael Albinus + + Fix bug#62106 + + * lisp/files-x.el (connection-local-set-profiles) + (connection-local-set-profile-variables): + Use `customize-save-variable' instead of `customize-set-variable'. + (Bug#62106) + +2023-03-11 Randy Taylor + + Add missing rust-ts-mode highlight query for scoped_type_identifiers + + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings): + Add missing query. + +2023-03-11 kobarity + + Make "case" keyword a dedenter in Python + + * lisp/progmodes/python.el (python-rx): Add "case" to dedenter. + (python-info-dedenter-opening-block-positions): Add "case" to pairs. + * test/lisp/progmodes/python-tests.el (python-indent-dedenters-9): + New test. + +2023-03-11 Eli Zaretskii + + Fix decoding non-ASCII file names in zip archives on MS-Windows + + * lisp/arc-mode.el (archive-zip-summarize): On MS-Windows, + override archive-file-name-coding-system for files compressed + on MS-Windows, and use the local console encoding instead. + +2023-03-11 Eli Zaretskii + + Fix copying binary files from zip archives + + * lisp/arc-mode.el (archive-copy-file): Prevent any coding + conversions when writing output files. (Bug#62091) + +2023-03-10 Robert Pluim + + Skip ruby-ts-syntax-propertize-symbol unless treesitter is available + + * + test/lisp/progmodes/ruby-ts-mode-tests.el (ruby-ts-syntax-propertize-symbol): + Add check for treesitter. + +2023-03-10 Randy Taylor + + Fix enums and unions appearing as structs in c-ts-base-mode's imenu + + * lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Separate enums and unions out + from structs. + +2023-03-09 Dmitry Gutov + + ruby-ts-mode: Fine-tune s-p-f on symbols (bug#62086) + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--s-p-query): + Don't match ':' in symbol node text. Or '_', I suppose. + (ruby-ts--syntax-propertize): Make sure to only put the '_' syntax + on punctuation syntax characters, and not on the whole symbol (to + e.g. have symbols like :foo? include text recognized as word). + + * test/lisp/progmodes/ruby-ts-mode-tests.el + (ruby-ts-syntax-propertize-symbol): New test. + +2023-03-09 Dmitry Gutov + + python-info-dedenter-opening-block-positions: Fix to support "bare" match + + * lisp/progmodes/python.el + (python-info-dedenter-opening-block-positions): Make the check + stricter. Require that block starts only at indentation. + + * test/lisp/progmodes/python-tests.el + (python-indent-after-bare-match): Another test (bug#62031). + +2023-03-09 João Távora + + Autoload Eglot helper function eglot--debbugs-or-github-bug-uri + + This isn't a typical autoload: the progn block is plced in the + autoloads file, but the eglot.el file itself isn't loaded as a result + when the function inside the progn block is called. + + * lisp/progmodes/eglot.el (eglot--debbugs-or-github-bug-uri): + autoload, but in progn. + +2023-03-09 João Távora + + Add chapter on advanced server configuration to Eglot manual + + * doc/misc/eglot.texi (Top): Add section "Advanced server configuration" + (Setting Up LSP Servers): Rework. + (Advanced server configuration): New chapter. + +2023-03-09 Vincenzo Pupillo (tiny change) + + java-ts-mode: detect if text_block is supported. + + A recent commit in tree-sitter-java (issue #141) removed support for + the text_block node type from the grammar. To support the old released + version and the new one, a helper function was added on which the + string syntax highlighting now depends. (bug#61913) + + * lisp/progmodes/java-ts-mode.el + (java-ts-mode--string-highlight-helper): New helper function that + return the right query string + (java-ts-mode--font-lock-settings): Use it + +2023-03-09 kobarity + + Revert workaround introduced in Bug#56271 + + * lisp/progmodes/python.el (python-nav-end-of-statement) + (python-nav-end-of-block): Revert workaround introduced in Bug#56271 + as the bug is fixedin Bug#58780. + +2023-03-09 kobarity + + Fix searching for end of string in python-nav-end-of-statement + + * lisp/progmodes/python.el (python-nav-end-of-statement): Add + searching for corresponding string-quote. + * test/lisp/progmodes/python-tests.el (python-nav-end-of-statement-3) + (python-nav-end-of-statement-4, python-info-current-defun-4): New + tests. (Bug#58780) + +2023-03-08 Po Lu + + Fix libwebp check for some webp installations + + * configure.ac: Look for WebPGetInfo; if it is not there, look + for libwebpdecoder as well. (bug#61988) + +2023-03-08 Dmitry Gutov + + Avoid potential infloop + + * lisp/progmodes/python.el + (python-info-dedenter-opening-block-positions): + Avoid potential infloop (bug#62031). + +2023-03-08 Dmitry Gutov + Lele Gaifax + + Don't misindent 'else:' after 'if re.match:' in Python + + * lisp/progmodes/python.el + (python-info-dedenter-opening-block-positions): Check that the + supposed block start is not a method call (bug#62031). + + * test/lisp/progmodes/python-tests.el (python-indent-after-re-match): + New test. + +2023-03-08 Andrea Corallo + + * Make sure `default-directory' exists before spawning processes (bug#62004) + + * lisp/emacs-lisp/comp.el (comp-final, comp-run-async-workers): Bind + `default-directory' to `invocation-directory'. + +2023-03-08 Ulrich Müller + + Fix sed expression in install-etc make target + + * Makefile.in (install-etc): Fix sed expression for emacsclient + desktop files. (Bug#62045) + +2023-03-08 Ulrich Müller + + Avoid using bash in the emacsclient desktop file + + * etc/emacsclient-mail.desktop (Exec): Use sh and sed instead + of bash, because the latter may not be available everywhere. + +2023-03-08 Eli Zaretskii + + Fix documentation of the 'line-height' text property + + * doc/lispref/display.texi (Line Height): More accurate + documentation of the value t of 'line-height' text property. + (Bug#62048) + +2023-03-08 Gregory Heytings + + Add 'declare' specs to with- and without-restriction + + * lisp/subr.el (with-restriction): + (without-restriction): Add 'declare' specs. + +2023-03-07 Yuan Fu + + Fix empty line indentation in c-ts-mode (bug#61997) + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--indent-styles): Handle the empty line case. + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test. + + * doc/lispref/modes.texi (Parser-based Indentation): Update manual. + * lisp/treesit.el (treesit-simple-indent-presets): Support null as + a value for NODE-TYPE in the 'match' matcher. + +2023-03-07 Yuan Fu + + Fix tree-sitter indent preset prev-line (bug#61998) + + * lisp/treesit.el (treesit-simple-indent-presets): Fix return value. + +2023-03-07 Manuel Giraud + + Revert 'forward-sentence-default-function' to return point (bug#62027) + + * lisp/textmodes/paragraphs.el + (forward-sentence-default-function): Revert to return the + position of point. + (count-sentences): Adapt to this change. + +2023-03-07 Ulrich Müller + + Fix Elisp code injection vulnerability in emacsclient-mail.desktop + + A crafted mailto URI could contain unescaped double-quote + characters, allowing injection of Elisp code. Therefore, any + '\' and '"' characters are replaced by '\\' and '\"', using Bash + pattern substitution (which is not available in the POSIX shell). + + We want to pass literal 'u=${1//\\/\\\\}; u=${u//\"/\\\"};' in the + bash -c command, but in the desktop entry '"', '$', and '\' must + be escaped as '\\"', '\\$', and '\\\\', respectively (backslashes + are expanded twice, see the Desktop Entry Specification). + + Reported by Gabriel Corona . + + * etc/emacsclient-mail.desktop (Exec): Escape backslash and + double-quote characters. + +2023-03-07 Eli Zaretskii + + Fix problem with debuginfod queries in "M-x gdb" + + * lisp/progmodes/gdb-mi.el (gdb-debuginfod-enable-setting): New + defcustom. + (gdb-debuginfod-message): New function. + (gdb-init-1): Initialize gdb-debuginfod-enable. Ask the user + about debuginfod queries and display any error messages. + (Bug#61973) + + * etc/NEWS: Announce the change. + +2023-03-06 João Távora + + Fix regression in Fido mode (bug#62015) + + To understand the regression consider this recipe where the 'fo' + pattern is typed by the user in the last step. + + emacs -Q + C-x b foo RET + C-x b afoo RET + C-x b *scratch* RET + M-x fido-mode RET + C-x b fo + + This used to offer both 'foo' and 'afoo' as candidates but now only + offered 'foo'. This is because the pattern 'fo' matches 'foo', but + not 'afoo' with 'basic' completion style. + + Fido mode, however, prioritizes 'flex' completion style, and that is + not happening here as it used to. + + This was introduced in this commit + + commit bf81df86e52fdc995bec8d9646f84d114cb896d1 + Author: João Távora + Date: Wed Dec 7 10:43:59 2022 +0000 + + Don't override completion-category-defaults in fido-mode + + I took away the nil setting of 'completion-category-defaults; in Fido + mode's minibuffer. It seemed generally the correct thing to do, and + was done mainly because Eglot added its style preferences to that + variable instead of completion-category-overrides directly, which is a + nono. So, to be able use the Fido UI with Eglot successfully, + 'completion-category-defaults' should stay untouched. Or so I + thought. + + However, I failed to notice that, for most categories, the default + value of 'completion-category-defaults' prioritizes the 'basic' + completion style. + + For example, in the 'buffer' category, the default value has the + styles list '(basic substring)'. This means that if a pattern matches + according to the 'basic' style, 'substring' will not be tried. And + neither will 'completion-styles' which in Fido mode's case happens to + be 'flex'. + + The solution in this commit is to craft a value for completion + category defaults that is just like the default one, but prioritizes + 'flex' completion for every category. + + * lisp/icomplete.el (icomplete--fido-ccd): New helper. + (icomplete--fido-mode-setup): Use it. + +2023-03-06 Andrea Corallo + + * Fix `emacs-lisp-native-compile-and-load' for (bug#61917) + + * lisp/progmodes/elisp-mode.el (emacs-lisp-native-compile-and-load): + Don't load if no compilation happened. + +2023-03-06 Andrea Corallo + + * lisp/emacs-lisp/comp.el (comp-prettyformat-insn): Fix (bug#61917) + +2023-03-06 Eli Zaretskii + + Revert "Fix configuration of webp libraries" + + This reverts commit de4277af009115ceba7fe920163c05c608ea9524. + It breaks WebP support at least on my system. + There's no reason to require libwebpdecoder library to be + installed, since we don't use the functions from it, at least + not in libwebp 1.2.1. + +2023-03-06 Po Lu + + Fix configuration of webp libraries + + * configure.ac: Link with libwebpdecoder along with + libwebpdemux. (bug#61988) + +2023-03-05 Yuan Fu + + Fix c-ts-mode indentation + + Mentioned in bug#61893. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--anchor-prev-sibling): Handle + "#elif" and "#else". + * test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts: Add an + "#elif" to the test. + +2023-03-05 Yuan Fu + + Fix c-ts-mode indentation + + Mentioned in bug#61893, although not the subject of it. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--anchor-prev-sibling): Fix the child index for preproc_else + and preproc_elif case. + * test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts: + New test. + +2023-03-05 Yuan Fu + + Fix c-ts-mode indentation + + Not the subject of it, but mentioned in bug#61893. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--anchor-prev-sibling): Skip + the sibling if it doesn't start on it's own line. + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test. + +2023-03-05 Kyle Meyer + + Update to Org 9.6.1-40-g3d817c + +2023-03-05 Yuan Fu + + Add string-interpolation feature to bash-ts-mode + + * lisp/progmodes/sh-script.el: + (bash-ts-mode): Add string-interpolation feature. + (sh-mode--treesit-settings): Add rule for string-interpolation feature. + +2023-03-05 Michael Albinus + + Fix tramp-sh-handle-insert-directory + + * lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): Remove also + //DIRED-OPTIONS// line when there is no //DIRED// line. + +2023-03-05 Andrea Corallo + + * Warn when certain primitives are redefined (bug#61880) + + * lisp/emacs-lisp/comp.el (comp-warn-primitives): New constant. + (comp-subr-trampoline-install): Warn when a sensitive primitive is + being redefined. + +2023-03-04 Yuan Fu + + Fix c-ts-mode preproc directive indentation + + Mentioned in bug#61893, although not the subject of that report. This + change fixes indentation for nested directives. For example, when the + directive involves elif and the like, the elif is nested in the if + directive, so simply using grand-parent and great-grand-parent for + anchor is insufficient, because the nesting can grow arbitrarily. + + The test added also covers the last preproc fix. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--standalone-parent-skip-preproc): New function. + (c-ts-mode--indent-styles): New rules. + * test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts: New test. + +2023-03-04 João Távora + + More robustly unspoof HOME in Eglot tests (bug#61637) + + A fair number of LSP servers allow user-local installations instead of + system wide installations. Emacs's technique of spoofing the HOME env + var to some non-existent or non-home directory during 'make check' + breaks these tests. That's because the executables are still found by + executable-find, but their invocation will rarely be successful as + HOME isn't what they expect it to be. + + Eglot tests already had a technique for dealing with this, + "unspoffing" HOME just for the invocations of LSP server but it + stopped working a while back. So make it more robust. + + Eventually, we'll want to decide whether these local servers should be + considered in 'make check' runs at all, or whether there is a way to + use them with a spoofed HOME. + + * test/lisp/progmodes/eglot-tests.el (eglot--call-with-fixture): + More robustly unspoof HOME. + +2023-03-04 João Távora + + Turn on Eglot inlay hints by default + + This is like any other server-provided feature, and may be turned off + client-side by setting eglot-ignored-server-capabilities like + + (add-to-list 'eglot-ignored-server-capabilities :inlayHintProvider) + + * lisp/progmodes/eglot.el (eglot--maybe-activate-editing-mode): + Activate eglot-inlay-hints-mode. + (eglot-inlay-hints-mode): Instead of warning about missing + :inlayHintProvider, turn off eglot-inlay-hints-mode. + +2023-03-04 Dmitry Gutov + + Update ts modes missed in 4c16fd3a512 to use column-0 + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules): + * lisp/progmodes/go-ts-mode.el (go-ts-mode--indent-rules): + Change point-min anchor to column-0. + +2023-03-04 João Távora + + Robustify Eglot for "transient" projects + + When Eglot needs to synthesize a "transient" project for + default-directory sometimes the value of that variable is set to an + unexpanded value, sometimes not. This can cause simple invocations + like. + + Emacs -Q ~/path/to-some-python-file.py -f eglot + + to fail, because eglot--current-server will be looking for a project + in the registry called + + (transient . "~/path") + + where in reality it is stored there as + + (transient . "/home/someuser/path") + + The fix is to always expand default-directory in eglot--current-project. + + * lisp/progmodes/eglot.el (eglot--current-project): Use + expand-file-name. + +2023-03-04 Eli Zaretskii + + Fix documentation of 'normal-mode' in buffers that don't visit files + + * lisp/files.el (normal-mode): + * lisp/subr.el (run-mode-hooks): + * doc/emacs/modes.texi (Choosing Modes): Mention the caveat with + 'normal-mode' in buffers not visiting files. (Bug#61925) + * lisp/files.el (hack-local-variables): Doc fix. + +2023-03-04 Yuan Fu + + Change tree-sitter indent anchor 'point-min' to 'column-0' + + Point-min isn't necessarily at column 0, using line-beginning-position + is better. column-0 is also more intuitive. + + * doc/lispref/modes.texi (Parser-based Indentation): Update manual. + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): + * lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--indent-rules): + * lisp/progmodes/typescript-ts-mode.el: + (typescript-ts-mode--indent-rules): Change point-min to column-0. + * lisp/treesit.el (treesit-simple-indent-presets): Change point-min to + column-0. + +2023-03-04 Yuan Fu + + Fix go-ts-mode multi-line string indentation (bug#61923) + + * lisp/progmodes/go-ts-mode.el: + (go-ts-mode--indent-rules): Add indent rule for multi-line string. + +2023-03-03 João Távora + + Remove Eglot activation check from find-file-hook + + Adding eglot--maybe-activate-editing-mode to find-file-hook isn't + really necessary, since it is already in + 'after-change-major-mode-hook', and that also runs every time we find + a file. + + This reduces the number of project.el logic that runs every time the + user visits a file. + + * lisp/progmodes/eglot.el (find-file-hook): No need to add + eglot--maybe-activate-editing-mode here. + +2023-03-03 Stefan Monnier + + * src/intervals.c (set_intervals_multibyte_1): Fix bug#61887 + + When `total_length` is 0 there should be no subtree at all, but + `delete_interval` only deletes one interval, so make sure we don't end + up with some stale child of `i`. + +2023-03-03 João Távora + + Revert inadvertent change to lisp/icomplete.el in previous commit + + The change + + commit 3a651773d29afb48ac4229cd19e532bd57a4ee2d + Author: João Távora + Date: Fri Mar 3 13:13:35 2023 +0000 + + Eglot: pay better attention to hints' paddingLeft/Right (bug#61924) + + Inadvertently added a line to this file, which shouldn't (yet) bet + added. + + * lisp/icomplete.el (icomplete--vertical-minibuffer-setup): Remove + truncate-lines. + +2023-03-03 Yuan Fu + + Revert previous change in go-ts-mode.el + + Reverts 59365f928565f1be551b1697b9246b00cb87a9b7 and + 56cd810b9d1a4d537bee5a2fd954d6e0d346631a. + + Reverting because the use of treesit-ready-p is very much intentional. + + * lisp/progmodes/go-ts-mode.el (treesit-ready-p): Revert change. + +2023-03-03 F. Jason Park + + Release ERC 5.5 + + * doc/misc/erc.texi: Update ERCVER to 5.5. + * lisp/erc/erc.el: Increment main version header to 5.5. Update + Compat version in package-requires header to 29.1.3.4. Update + `customize-package-emacs-version-alist' entry by mapping ERC 5.5 to + Emacs 29.1. + (erc-version): Update value to 5.5. + +2023-03-03 Jim Porter + + Don't create GUI frames in batch sessions + + This resolves an issue with running test/lisp/server-tests.el when + 'DISPLAY' is set: the tests would start the Emacs server in a batch + session, and then request a new GUI frame. However, that caused the + tests to terminate with SIGIO, since a batch Emacs doesn't set a SIGIO + handler. + + Ref: + + * lisp/frame.el (make-frame): Always create a terminal frame in batch + sessions. + +2023-03-03 Eli Zaretskii + + Minor copyedits of documentation of OClosures + + * doc/lispref/functions.texi (OClosures): Improve wording, + indexing, and markup; add details. + +2023-03-03 João Távora + + Eglot: pay better attention to hints' paddingLeft/Right (bug#61924) + + * lisp/progmodes/eglot.el (eglot--update-hints-1): Consider + :json-false, which is a non-nil value. + +2023-03-02 Yuan Fu + + Fix c-ts-mode indentation for statement after preproc (bug#61893) + + Originally our c-ts-mode--anchor-prev-sibling only specially handled + labeled_statements, now we add special case for preproc in the similar + fashion: instead of using the preproc directive as anchor, use the last + statement in that preproc as the anchor. Thus effectively ignore the + preproc. + + There should be an accompanying test, but there are some problem in + the elif preproc directive indent so it would pass, we'll add the test + when that is fixed. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--anchor-prev-sibling): Add special case for preproc + directives. + +2023-03-02 Eli Zaretskii + + Fix c/c++-ts-mode's mode lighter + + * lisp/progmodes/c-ts-mode.el (c-ts-mode-set-modeline): Remove + trailing blank from comment-start when indicating the comment + style on the mode line. + +2023-03-02 João Távora + + Eglot: use shell-file-name in eglot--cmd (bug#61748) + + * lisp/progmodes/eglot.el (eglot--cmd): Use shell-file-name. + +2023-03-02 Eli Zaretskii + + Avoid signaling errors in url-basic-auth when password is nil + + * lisp/url/url-auth.el (url-basic-auth): Handle nil PASS. + Suggested by Ellis Kenyo . (Bug#61411) + +2023-03-02 Eli Zaretskii + + Fix wdired-tests on MS-Windows + + * test/lisp/wdired-tests.el (wdired-test-bug32173-01) + (wdired-test-bug32173-02, wdired-test-unfinished-edit-01) + (wdired-test-bug39280): Run test-dir through file-truename, to + avoid failures due to MS-Windows "numeric tails" (mis)feature and + similar issues, which make file names fail to compare 'equal'. + (wdired-test-bug34915, wdired-test-bug61510): Skip if symlinks + fail. + +2023-03-02 Andrew De Angelis + + Improvements to xwidget on macOS (bug#60703) + + * src/nsxwidget.m () + ([XwWebView initWithFrame:configuration:xwidget:]) + (nsxwidget_init): Fixed memory leaks: when sending an alloc + message to an object, send an autorelease message to any objects + we won't explicitly release. + ([XwWebView webView:didFinishNavigation:]): Second string to + store in 'store_xwidget_event_string' is "load finished" rather + than empty string. + ([XwWebView webView:didStartProvisionalNavigation:]) + ([XwWebView webView:didReceiveServerRedirectForProvisionalNavigation:]) + ([XwWebView webView:didCommitNavigation:]): New functions. + (nsxwidget_webkit_estimated_load_progress): New function. + (nsxwidget_webkit_stop_loading): New function. + * src/xwidget.c (Fxwidget_webkit_estimated_load_progress): Call + 'nsxwidget_webkit_estimated_load_progress' if we're on MacOS. + (Fxwidget_webkit_stop_loading): Call 'nsxwidget_webkit_stop_loading' + if we're on MacOS. + (syms_of_xwidget): Define symbol for function. + 'xwidget_webkit_estimated_load_progress' if we're on MacOS. + * src/nsxwidget.h: Signature for functions + 'nsxwidget_webkit_estimated_load_progress' and + 'nsxwidget_webkit_stop_loading'. + * lisp/xwidget.el (xwidget-webkit-current-url): Message URL rather + than return value of 'kill-new' (which is always nil). + +2023-03-01 Yuan Fu + + * lisp/progmodes/go-ts-mode.el: Use treesit-language-available-p. + + treesit-ready-p does more checks than language grammar availability. + +2023-03-01 Yuan Fu + + Don’t signal warning when loading go-ts-mode.el without grammar + + * lisp/progmodes/go-ts-mode.el: Add a QUIET flag to the call of + treesit-ready-p, so that it doesn't signal a warning if + go-mod (tree-sitter grammar) is not available. + +2023-03-01 Yuan Fu + + Fix c-ts-mode empty line indentation (bug#61893) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Make the + "rest sibling" matchers catch the case where NODE is nil, when + indenting an empty line. + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test. + +2023-03-01 Yuan Fu + + Improve tree-sitter's prev-sibling indent anchor + + Now it handles the case where NODE is nil when indenting an empty + line: it tries to get the previous sibling nonetheless. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--anchor-prev-sibling): + * lisp/treesit.el (treesit-simple-indent-presets): Add an or form to + handle more cases. + +2023-03-01 João Távora + + * lisp/icomplete.el (fido-mode): Enable in-buffer completion (bug#45763). + + Backport: + (cherry picked from commit b5c13032538377b0037c745715613693a1580f81) + +2023-03-01 Juri Linkov + + * lisp/icomplete.el: Fix in-buffer completion. + + (icomplete-force-complete-and-exit, icomplete-force-complete): Use + 'icomplete--field-beg/end' when not in the minibuffer to not erase + the current buffer. Also disable 'completion-in-region-mode' instead + of calling 'exit-minibuffer' (bug#45764, bug#51575, bug#61479). + + Backport: + (cherry picked from commit a7a984c0ebebb891e2052d8416544f0bd7002007) + +2023-03-01 Stefan Monnier + + * src/profiler.c (malloc_probe): Make it safe for GC (bug#60237) + +2023-03-01 Stefan Monnier + + * lisp/emacs-lisp/debug-early.el (debug-early-backtrace): Fix bug#61847 + + The `noerror` arg of `require` doesn't do what Stefan naively thought + when he wrote this code, so use `condition-case` instead. + Also check for `cl-defmethod` since `cl-prin1` can't be loaded before + that anyway. + +2023-03-01 Eli Zaretskii + + Revert "Don't disable eldoc when doing edebug" + + This reverts commit 6fd1fb8a6837acde8e1c9ab26618ec0f36121c72. + It turns out ElDoc does show messages inside Edebug, if you + are (un)lucky enough to have point where ElDoc has something + to show. Bug#56459 needs to be fixed in some more complex + way. + +2023-03-01 João Távora + + Eglot: work around Tramp instability bug#61350 + + Unconditionally disable ControlMaster for the Eglot's Tramp + connection. + + * lisp/progmodes/eglot.el (tramp-ssh-controlmaster-options) + (use-tramp-ssh-controlmaster-options): Forward declare + (eglot--connect): Set variables to unconditionally disable ControlMaster. + +2023-03-01 Yuan Fu + + Fix treesit-indent-region + + Fix it for the case where there is no suitable rule for the line. + Right now treesit-indent-region would indent the line to column 0. + After the change the indentation is not altered. + + * lisp/treesit.el (treesit-indent-region): Handle the case where + ANCHOR or OFFSET is nil specially. + +2023-03-01 Po Lu + + Replace C++ comments with C style equivalents + + * src/alloc.c (Fmake_byte_code, purecopy): + * src/bytecode.c (exec_byte_code): + * src/xdisp.c (face_at_pos): Do not use C++-style comments! + +2023-02-28 João Távora + + Eglot: fix M-x eglot-show-workspace-configuration (bug#61866) + + Now consult .dir-locals.el every time the workspace configuration is + needed: + + - workspace/configuration server request + - workspace/didChangeConfiguration signal + - M-x eglot-show-workspace-configuration + + The major-mode/hack-dir-local-variables-non-file-buffer trick is used. + When there is more than one, the server connection's "main" major mode + is used to find the relevant .dir-locals.el section. + + * lisp/progmodes/eglot.el (eglot--lookup-mode): Fix docstring. + (eglot--connect): Simplify. + (eglot-show-workspace-configuration): Fix. + (eglot--workspace-configuration): Remove. + (eglot--workspace-configuration-plist): Rework. + (eglot-handle-request): Simplify. + +2023-02-28 Dmitry Gutov + + ruby-mode: Fix method call indentation in rhs of multiple assignment + + * lisp/progmodes/ruby-mode.el (ruby-smie-rules): Special-case + assignment that follows a comma-separated list (bug#61871). + + * test/lisp/progmodes/ruby-mode-resources/ruby.rb: Add case. + +2023-02-28 Michael Albinus + + * lisp/net/tramp.el (tramp-remote-path): Improve docstring. + +2023-02-28 Felix (tiny change) + + Minor change in 'dired--find-possibly-alternative-file' + + * lisp/dired.el (dired--find-possibly-alternative-file): Don't + kill the buffer if the directory is shown in other windows. + +2023-02-28 Felix (tiny change) + + Implement prefix arg for 'c-ts-mode-toggle-comment-style' + + * lisp/progmodes/c-ts-mode.el (c-ts-mode-toggle-comment-style): + Actually implement the optional numeric arg mentioned in the + docstring. + +2023-02-28 Manuel Giraud + + Defaults to zero for image-dired--number-of-thumbnails + + * lisp/image/image-dired.el (image-dired--number-of-thumbnails): + Defaults zero to avoid wrong type argument error. (Bug#61734) + +2023-02-27 Dmitry Gutov + + Rename the newly added -ref- faces to -use- + + * lisp/font-lock.el (font-lock-variable-use-face) + (font-lock-property-use-face): Rename from font-lock-variable-ref-face + and font-lock-property-ref-face. Update all references (bug#61655). + +2023-02-27 João Távora + + Eglot: support multiple labels in same inlay hint + + Mainly the rust-analyzer LSP server uses this. There are still more + things we could support, like tooltips and stuff. + + * lisp/progmodes/eglot.el (lsp-interface-alist): Add + InlayHintLabelPart. + (eglot--update-hints-1): Support multiple labels for same hint. + +2023-02-27 João Távora + + Eglot: don't paint hints outside requested region (bug#61812) + + * lisp/progmodes/eglot.el (eglot--lambda): Add cl-block. + (eglot--update-hints-1): Return early if hint is outside the + requested inlay hint range. + +2023-02-27 João Távora + + Eglot: protect against unintended field text motion (bug#61726) + + Suggested-by: Augusto Stoffel + + * lisp/progmodes/eglot.el (eglot--bol): New helper. + (eglot-utf-8-linepos, eglot-utf-16-linepos) + (eglot-utf-32-linepos, eglot-move-to-utf-8-linepos) + (eglot-move-to-utf-16-linepos, eglot-move-to-utf-32-linepos) + (eglot-handle-notification, eglot--xref-make-match) + (eglot-completion-at-point): Use it. + +2023-02-27 Eli Zaretskii + + Fix description of 'desktop-save-mode' + + * doc/emacs/misc.texi (Saving Emacs Sessions): Adjust to changes + in 'desktop-path'. Reported by Petteri Hintsanen . + +2023-02-27 Yuan Fu + + Adjust tree-sitter defun navigation (bug#61617) + + Before this change, when you use a tree-sitter navigation function to + move to the next beginning of a thing, it jumps over the immediate + next thing and lands you at the beginning of the next-next thing. + + Eg, when point is at the "|", and we evaluate + (treesit--navigate-thing pos 1 'beg), we go from + + | (thing) (thing) + + to + + (thing) |(thing) + + But some might expect point to go to + + |(thing) (thing) + + instead, which makes sense. Also, that's how Emacs expect defun + navigation functions to work. The discrepancy in expectation causes + bug#61617. + + In this change I made tree-sitter navigation functions to work as what + Emacs expects. And what I described for moving to the next beginning + of thing is similarly applicable to moving to the end of previous end + of thing. + + * lisp/treesit.el (treesit-beginning-of-defun) + (treesit-end-of-defun): Handle the case where defun-skipper moves + point back to where we started, by adding a retry. + + (treesit--navigate-thing): Add a single condition checking for + progress to the condition form responsible for checking whether to + skip the next defun. Namely (eq pos (funcall advance next)))). + + * test/src/treesit-tests.el: + (treesit--ert-defun-navigation-nested-master) + (treesit--ert-defun-navigation-top-level-master): Change tests to + reflect the new expectation. + +2023-02-27 Yuan Fu + + Simplify c-ts-mode--top-level-label-matcher + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--top-level-label-matcher): Make more assumptions and remove + the loop, so it's faster in large files. + +2023-02-27 Yuan Fu + + New tree-sitter indent anchor standalone-parent used by c-ts-mode + + When writing c-ts-mode Theo used parent-bol which works well except + one case: + + 1 for (int i=0; + 2 i < 5; + 3 i++) { + 4 func(i); + 5 } + + In this case, when indenting "func(i)", parent-bol returns the start + of "i++" on line 3, instead of the "correct" anchor, the start of + "for" on line 1. parent-bol would have worked if the "for (...) {" + part is in one line. + + To support this case I tried numerous things and added a bunch of + stuff, culminating in c-ts-common-statement-offset. It's complicated, + requires extra setup, and slow. + + Not anymore! I think the new anchor standalone-parent really captures + the logic behind how people expect indentation to work. It's simple + and fast, and requires no setup. + + * doc/lispref/modes.texi (Parser-based Indentation): Update manual. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--standalone-grandparent): New anchor. + (c-ts-mode--indent-styles): Replace c-ts-common-statement-offset with + standalone-parent. + (c-ts-base-mode): Add comment. + + * lisp/treesit.el: + (treesit-simple-indent-presets): New anchor standalone-parent. + +2023-02-26 Dmitry Gutov + + ruby-smie-rules: Fix misindentation of a method call after assignment + + * lisp/progmodes/ruby-mode.el (ruby-smie-rules): Fix indentation of a + method call after assignment with ruby-after-operator-indent=nil + (bug#61822). + + * test/lisp/progmodes/ruby-mode-resources/ruby-after-operator-indent.rb: + Add corresponding example. + +2023-02-26 Eli Zaretskii + + * lib-src/etags.c (process_file_name): Free malloc'ed vars (bug#61819). + +2023-02-26 João Távora + + Eglot: rename and redocument encoding-related functions (bug#61726) + + * lisp/progmodes/eglot.el (eglot-current-column): Obsolete. + (eglot-lsp-abiding-column): Obsolete. + (eglot-current-column-function): Obsolete. + (eglot-current-linepos-function): Rename from eglot-current-column-function. + (eglot-utf-8-linepos): Rename from eglot-bytewise-column. + (eglot-utf-16-linepos): Rename from eglot-lsp-abiding-column. + (eglot-utf-32-linepos): Rename from eglot-current-column. + (eglot-move-to-current-column): Obsolete. + (eglot-move-to-lsp-abiding-column): Obsolete. + (eglot-move-to-column-function): Obsolete. + (eglot-move-to-linepos-function): Rename from eglot-move-to-column-function. + (eglot-move-to-utf-8-linepos): Rename from eglot-move-to-bytewise-column. + (eglot-move-to-utf-16-linepos): Rename from eglot-move-to-lsp-abiding-column. + (eglot-move-to-utf-32-linepos): Rename from eglot-move-to-current-column. + (eglot--managed-mode): Adjust. + (eglot-client-capabilities): Trim whitespace. + + * test/lisp/progmodes/eglot-tests.el (eglot-test-lsp-abiding-column) + (eglot-test-lsp-abiding-column-1): Use new function/variable names. + +2023-02-26 Augusto Stoffel + + Eglot: support positionEncoding LSP capability (bug#61726) + + * lisp/progmodes/eglot.el(eglot-client-capabilities): Announce the + new capability. + (eglot-bytewise-column, eglot-move-to-bytewise-column): New functions. + (eglot--managed-mode): Set 'eglot-current-column-function' and + 'eglot-move-to-bytewise-column' appropriately. + +2023-02-26 Eli Zaretskii + Augusto Stoffel + + Eglot: use faster strategy for moving to LSP positions (bug#61726) + + Turns out we don't need encode-coding-region after all. + + * lisp/progmodes/eglot.el (eglot-move-to-lsp-abiding-column): Rewrite. + +2023-02-26 Eli Zaretskii + + Fix mule-tests in UTF-8 locales + + * test/lisp/international/mule-tests.el + (sgml-html-meta-no-post-less-than-10lines): Fix test condition. + +2023-02-26 Eli Zaretskii + + Fix 'vertical-motion' when display strings are around + + * src/indent.c (Fvertical_motion): Correct bidi-related condition + for character position, when we didn't move vertically. (Bug#61636) + +2023-02-25 Dmitry Gutov + + python-ts-mode: Fix single-quote string fontification + + * lisp/progmodes/python.el (python--treesit-fontify-string): + Look for ', not just ", as opening delimiter (bug#61796). + +2023-02-25 Eli Zaretskii + + Fix infloop in bidi.c + + * src/bidi.c (bidi_set_paragraph_end): Reset the isolate_level to + zero. Whenever stack_idx is reset to zero, the isolate_level must + also be reset, since there cannot be any isolate status outside of + embeddings. Failure to reset isolate_level will cause us infloop + when we see a PDI. Reported by Matt Beshara . + +2023-02-25 Daniel Martín + + Check the anchor along with the offset in treesit-indent-region + + * lisp/treesit.el (treesit-indent-region): To compute a valid column, + having a non-nil offset is not enough, we need a non-nil anchor as + well. + +2023-02-24 Yuan Fu + + Align to prev sibling for c-ts-mode indentation + + As requested by a discussion on emacs-devel. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--anchor-prev-sibling): New function. + (c-ts-mode--indent-styles): Indent first child as before, indent the + rest to their previous sibling. Remove bracketless statement rules + that I forgot to remove previously. + +2023-02-24 Yuan Fu + + Fix c-ts-common-statement-offset and c-ts-common--node-is + + * lisp/progmodes/c-ts-common.el: + (c-ts-common--node-is): Guard against case where the node has no field + name. + (c-ts-common-statement-offset): Do indent a level if the "if" in the + "else if" is on an independent line. + +2023-02-24 Dmitry Gutov + + typescript-ts-mode: Highlight non-shorthand destructuring bindings + + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--font-lock-settings): Highlight non-shorthand + variable bindings in object destructuring. + +2023-02-24 Dmitry Gutov + + Add more/finer faces for tree-sitter + + * doc/lispref/modes.texi (Faces for Font Lock): + Update the list of faces (bug#61655). + + * etc/NEWS: Update the list of new faces. + + * lisp/cus-theme.el (custom-theme--listed-faces): Update. + + * lisp/font-lock.el (font-lock-function-call-face) + (font-lock-variable-ref-face, font-lock-property-ref-face): + New faces. + (font-lock-property-name-face): + Rename from 'font-lock-property-face'. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): + Use new faces. More 'enumerator' query to 'definition' feature. + (c-ts-mode--fontify-declarator, c-ts-mode--fontify-variable): + Use new faces. + + * lisp/progmodes/cmake-ts-mode.el + (cmake-ts-mode--font-lock-settings): Use new faces. + + * lisp/progmodes/csharp-mode.el + (csharp-ts-mode--font-lock-settings): Use new faces. + + * lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings): + Use new faces. + + * lisp/progmodes/java-ts-mode.el + (java-ts-mode--font-lock-settings): Use new faces. + + * lisp/progmodes/js.el (js--treesit-fontify-assignment-lhs) + (js--treesit-font-lock-settings): Use new faces. Highlight + variable definitions inside array and object destructuring + patterns. + + * lisp/progmodes/python.el (python--treesit-variable-p): + Exclude identifiers in parameters. + (python--treesit-settings): Use new faces. Highlight function + parameters. Move 'keyword' up to still highlight 'self' as + keyword. + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings): + Use new faces. + + * lisp/progmodes/rust-ts-mode.el + (rust-ts-mode--font-lock-settings): Use new faces. + + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--font-lock-settings): Use new faces. + + * lisp/textmodes/css-mode.el (css--treesit-settings): + Use font-lock-property-ref-face. + + * lisp/textmodes/toml-ts-mode.el + (toml-ts-mode--font-lock-settings): + Use font-lock-property-ref-face. + + * lisp/textmodes/yaml-ts-mode.el + (yaml-ts-mode--font-lock-settings): Same. + +2023-02-24 Eli Zaretskii + + Avoid crashes in batch mode due to lack of frame face cache + + * src/xfaces.c (Finternal_merge_in_global_face): Handle frames + with no face cache. + +2023-02-24 Michael Albinus + + Add Tramp version integrated in Emacs 28.3 + + * lisp/net/trampver.el (customize-package-emacs-version-alist): + Add Tramp version integrated in Emacs 28.3. + +2023-02-24 Philip Kaludercic + + Avoid reusing :lisp-dir twice in 'package-vc--main-file' + + * lisp/emacs-lisp/package-vc.el (package-vc--main-file): Just use + :lisp-dir from 'package-desc-extras', not 'pkg-spec'. + + This avoid appending the contents of :lisp-dir twice, in case it is + specified both in pkg-spec and pkg-desc. + +2023-02-24 Philip Kaludercic + + Ensure right package-desc-type before installing package + + * lisp/emacs-lisp/package-vc.el (package-vc--unpack): Move copying + code from 'package-vc-install'. + (package-vc-install): Remove copying. (Bug#61669) + +2023-02-24 Stephen Berman + + Restore invisibility of symlink target on exiting wdired-mode + + * lisp/wdired.el (wdired-change-to-dired-mode): Invoke + dired-hide-details-update-invisibility-spec (bug#61510). + + * test/lisp/wdired-tests.el (wdired-test-bug61510): New test. + +2023-02-24 João Távora + + Eglot: fix jit-lock inlay hint bugs + + One of the bugs was straightforward. The timer function of + eglot--update-hints must set the correct buffer. + + The other is much more odd. When using Eglot on Emacs's own + src/coding.c, the jit-lock code starts calling its jit-functions over + and over again with the same sequence of arguments, like so: + + ====================================================================== + 1 -> (eglot--update-hints 63551 65051) + 1 <- eglot--update-hints: [nil 25592 52026 4 + ====================================================================== + 1 -> (eglot--update-hints 65051 66551) + 1 <- eglot--update-hints: [nil 25592 52026 4 + ====================================================================== + 1 -> (eglot--update-hints-1 63551 66551) + 1 <- eglot--update-hints-1: nil + ====================================================================== + 1 -> (eglot--update-hints 63551 65051) + 1 <- eglot--update-hints: [nil 25592 52026 4 + ====================================================================== + 1 -> (eglot--update-hints 65051 66551) + 1 <- eglot--update-hints: [nil 25592 52026 5 + ====================================================================== + 1 -> (eglot--update-hints-1 63551 66551) + 1 <- eglot--update-hints-1: nil + + This continues forever at a very fast rate and saturates the LSP + channel. + + At first I thought that it was because eglot--update-hints-1 is + actually causing the buffer to be modified with overlays sometime in + the future, but it is not so! It seems that merely calling + + (goto-char (eglot--lsp-position-to-point position)) + + (from the LSP request handler in eglot--update-hints-1) will cause + this bug. + + * lisp/progmodes/eglot.el (eglot--update-hints): Fix bugs. + +2023-02-24 João Távora + + Eglot: fix inlay hint with label collection instead of string + + Reported by Chinmay Dalal + + * lisp/progmodes/eglot.el (eglot--update-hints-1): Fix bug when + inlay hint contains collection of labels. + +2023-02-24 Robert Pluim + + Fix insertion of keyboard macro containing named keys + + * lisp/kmacro.el: Autoload `macro--string-to-vector'. + (kmacro-ring-head): Convert `last-kbd-macro' to a vector if it's a + string, since `kmacro' uses `key-parse' on it. + (kmacro-lambda-form): Remove require for 'macros + * test/lisp/kmacro-tests.el + (kmacro-tests-name-last-macro-key-parse-syntax): + Test that insertion of macros that contain strings that look + like named keys works correctly. + + (Bug#61700) + +2023-02-23 João Távora + + Eglot: simplify inlay hints implementation with jit-lock + + This implementation is much simpler than the one based on + windows-scroll-functions. It's also supposedly safer, as long as + jit-lock guarantees refontification of affected regions. + + It's not _trivially_ simple though, as simply adding + 'eglot--update-hints-1' to jit-lock-functions, while possible, is + going to request inlay hints from the LSP server for many small + regions of the buffer, depending on what jit-lock thinks is best. So + we keep coalescing these into a larger region until the time is + suitable for a more bandwidth-efficient request. + + To do this, we use a jit-lock implementation detail, + jit-lock-context-unfontify-pos, which is a proxy for knowing that the + jit-lock-context-timer has run. Not sure how brittle it is, but it + seems to work reasonably. + + We also get rid of the previous "get hints for entire buffer" + implementation. + + * doc/misc/eglot.texi (Eglot Variables): Remove mention + to deleted eglot-lazy-inlay-hints. + + * lisp/progmodes/eglot.el (eglot-lazy-inlay-hints) + (eglot--inlay-hints-after-scroll) + (eglot--inlay-hints-fully) + (eglot--inlay-hints-lazily): Remove. + (eglot--update-hints): Add function. + (eglot-inlay-hints-mode): Simplify. + +2023-02-23 João Távora + + Eglot: update inlay hints on window configuration changes + + * lisp/progmodes/eglot.el + (eglot--inlay-hints-after-window-config-change): New helper. + (eglot-inlay-hints-mode): Use it. + +2023-02-23 João Távora + + Eglot: display completion label when safe + + Originally reported in + https://github.com/joaotavora/eglot/discussions/1141 by "Mintsoup". + + Eglot doesn't always show the LSP :label property of a CompletionItem + in the completion candidates. That is because label is sometimes not + what should be inserted in the buffer in the end, the :insertText + property supersedes it. + + But the label is usually more suitable for display nevertheless and if + the LSP CompletionItem contains either a snippet or a textEdit, it's + safe to display the label, since :exit-function will guarantee that a + suitable buffer insertion is performed. + + This change reflects that awareness that when a textEdit is available, + it's acceptable to show the label. + + * lisp/progmodes/eglot.el (eglot-completion-at-point): Adjust. + +2023-02-23 Eli Zaretskii + + Improve documentation of VC commands, including in Dired + + * doc/emacs/dired.texi (Operating on Files): + * doc/emacs/maintaining.texi (VC Change Log, VC Directory Mode) + (Version Control, Basic VC Editing): Document VC command + invocation from Dired buffers. Improve documentation of vc-log + commands. + + * lisp/dired-aux.el (dired-vc-next-action): + * lisp/vc/vc.el (vc-print-log, vc-log-search, vc-log-mergebase) + (vc-log-view-type, vc-print-root-log, vc-next-action): Doc fixes. + +2023-02-23 Juri Linkov + + * doc/emacs/maintaining.texi: More mentions of marked files in Dired. + + (Basic VC Editing, Old Revisions, VC Change Log): Add more mentions of + ability to include the marked files to the VC fileset in Dired (bug#61712). + +2023-02-22 João Távora + + Eglot: implement inlay hints (bug#61412, bug#61066) + + Inlay hints are small text annotations to specific parts of the whole + buffer, not unlike diagnostics, but designed to help readability + instead of indicating problems. For example, a C++ LSP server can + serve hints about positional parameter names in function calls and a + variable's automatically deduced type. Emacs can display these hints + in many little 0-length overlays with an 'before-string property, thus + helping the user remember those types and parameter names. + + Since inlay hints are potentially a large amount of data to request + from the LSP server, the implementation strives to be as parsimonious + as possible with these requests. + + So, by default, inlay hints are only requested for the visible + portions of the buffer across windows showing this buffer. This is + done by leveraging the 'window-scroll-functions' variable, making for + a reasonably complex implementation involving per-window timers. When + scrolling a window, it may take a short amount of time for inlay hints + to "pop in". The new user variable 'eglot-lazy-inlay-hints' can be + used to exert some control over this. + + Specifically, if the variable's value is set to 'nil', then inlay + hints are greedily fetched for the whole buffer every time a change + occurs. This is a much simpler mode of operation which may avoid + problems, but is also likely much slower in large buffers. + + Also, because the inlay feature is probably visually surprising to + some, it is turned OFF by default, which is not the usual practice of + Eglot (at least not when the necessary infrastructure is present). + This decision may be changed soon. Here's a good one-liner for + enabling it by default in every Eglot-managed buffer: + + (add-hook 'eglot-managed-mode-hook #'eglot-inlay-hints-mode) + + I haven't tested inlay hints extensively across many LSP servers, so I + would appreciate any testing, both for functional edge cases and + regarding performance. There are possibly more optimization + opportunities in the "lazy" mode of operation, like more aggressively + deleting buffer overlays that are not in visible parts of the buffer. + + Though I ended up writing this one from scratch, I want to thank + Dimitry Bolopopsky and Chinmay Dala + for suggestions and early patches. + + * lisp/progmodes/eglot.el (eglot--lsp-interface-alist): Define + InlayHint. + (eglot-client-capabilities): Announce 'inlayHint' capability. + (eglot-ignored-server-capabilities): Add :inlayHintProvider. + (eglot--document-changed-hook): New helper hook. + (eglot--after-change): Use it. + (eglot-inlay-hint-face, eglot-type-hint-face) + (eglot-parameter-hint-face): New faces. + (eglot--update-hints-1, eglot--inlay-hints-after-scroll) + (eglot--inlay-hints-fully, eglot--inlay-hints-lazily): New helpers. + (eglot-lazy-inlay-hints): New user variable. + (eglot-inlay-hints-mode): New minor mode. + (eglot--maybe-activate-editing-mode): Try to activate + eglot-inlay-hints-mode. + (eglot--before-change): Remove overlays immediately in the + area being changed. + (eglot--managed-mode-off): Remove overlays. + + * doc/misc/eglot.texi (Eglot Features): Mention inlay hints. + (Eglot Variables): Mention eglot-lazy-inlay-hints. + +2023-02-22 João Távora + + Eglot: run eglot-managed-mode-hook after LSP didOpen + + This allows using the hook for interacting with the LSP server using + the current buffer as the subject of that interaction ("document" in + LSP parlance). + + * lisp/progmodes/eglot.el (eglot--maybe-activate-editing-mode): + Run eglot-managed-mode-hook here. + (eglot--managed-mode): Not here. + +2023-02-22 João Távora + + Eglot: restore eldoc-documentation-functions on shutdown + + * lisp/progmodes/eglot.el (eglot--managed-mode): Restore + eldoc-documentation-functions when shutting down eglot. + +2023-02-22 João Távora + + Eglot: simplify capability-checking code + + * lisp/progmodes/eglot.el (eglot--server-capable-or-lose): New helper. + (eglot--signal-textDocument/willSave) + (eglot--signal-textDocument/didSave): Tweak docstring. + (eglot--workspace-symbols, xref-backend-identifier-at-point) + (eglot-format, eglot-completion-at-point, eglot-rename) + (eglot-code-actions): Use new eglot--server-capable-or-lose. + +2023-02-22 João Távora + + Eglot: go back to setting eldoc-documentation-strategy again + + This commits reverts part of + + commit e83c78b8c7784254c2c6f043530ab325c2fa7f16 + Author: João Távora + Date: Mon Feb 20 22:43:50 2023 +0000 + + Eglot: respect user's Eldoc configuration by default + + In that commit, I did what many longstanding issues and users were + suggesting and removed Eglot's override of two Eldoc user + configuration variables. + + I verified that Eglot's behavior would stay mostly unaltered but my + tests were very incomplete. In short there is no way that Eglot can + work acceptably with the default setting of + 'eldoc-documentation-strategy', which is + 'eldoc-documentation-default'. So it must be changed, either globally + or locally in Eglot's minor mode. + + This is true for any situation where both synchronous and asynchronous + documentation sources are present. In Eglot's case there are two + asynchronous sources which have more importance than the synchronous + source. So any other strategy except the + 'eldoc-documentation-default' makes sense. + + * lisp/progmodes/eglot.el (eglot--managed-mode): Set + eldoc-documentation-strategy to eldoc-documentation-compose. + +2023-02-22 F. Jason Park + + Yield to erc-move-to-prompt before unhiding prompt + + * lisp/erc/erc-backend.el (erc--hide-prompt): Change hook depth from 0 + to 91 to allow the `move-to-prompt' module to do its thing. This + feature was added by bug#54826 and first appeared in Emacs 29. + * lisp/erc/erc-common.el (erc-server-user): Remove erroneous comment. + The `buffers' field is a list of buffers. + * test/lisp/erc/erc-tests.el (erc-hide-prompt): Use `erc--target' + instead of `erc-default-recipients' because this is new code. + +2023-02-22 Augusto Stoffel + + * lisp/progmodes/python.el (python--import-sources): Fix regexp (bug#61648) + +2023-02-22 Manuel Giraud + + Do not error out on non image file (bug#61639) + + * lisp/image/image-dired.el + (image-dired-display-thumbs): Do not insert non image file and do not + display image-dired buffer if it is empty. + +2023-02-22 Eli Zaretskii + + Explain effect of variable-pitch fonts on fill-column + + * doc/emacs/text.texi (Fill Commands): + * doc/emacs/display.texi (Displaying Boundaries): + * lisp/display-fill-column-indicator.el + (display-fill-column-indicator-mode): Document caveats of using + variable-pitch fonts with 'fill-column' and its indicator. + (Bug#61677) + +2023-02-22 Eli Zaretskii + + Avoid division by zero in get_narrowed_* functions + + * src/xdisp.c (get_narrowed_width, get_narrowed_len): Return at + least 1 as the value. (Bug#61704) + +2023-02-21 Martin Rudalics + + * etc/NEWS: Mention new buffer display action alist entries + +2023-02-21 Eli Zaretskii + + Fix build --without-xdbe + + * src/xterm.c (x_end_cr_clip, handle_one_xevent): Condition + double-buffering code on HAVE_XDBE. (Bug#61667) + +2023-02-21 Robert Pluim + + Improve dnd-direct-save-remote-files docstring + + * lisp/dnd.el (dnd-direct-save-remote-files): Reword. + +2023-02-21 Robert Pluim + + Add 'process-status' to process shortdoc + + * lisp/emacs-lisp/shortdoc.el (process): Add 'process-status'. + +2023-02-21 Andrea Corallo + + * lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename): Improve 5d0b45cd67b + +2023-02-21 Robert Pluim + + Improve text about deleting windows + + * doc/emacs/windows.texi (Change Window): Improve grammar around + 'delete-window-choose-selected'. + +2023-02-21 Robert Pluim + + Make 'emacs-news-cycle-tag' work at all levels + + * lisp/textmodes/emacs-news-mode.el (emacs-news-cycle-tag): Search for + a heading starting with 2 or more '*' rather than exactly 3. + * test/lisp/textmodes/emacs-news-mode-resources/cycle-tag.erts + (Point-Char): Add tests for 2 and 4 '*' levels. + +2023-02-21 Mattias Engdegård + + Repair mistake in a previous edmacro-sanitize-string change + + * lisp/edmacro.el (edmacro-sanitize-for-string): + This condition should not have been 'repaired' but removed altogether. + Do so now, fixing bug#61647. + + Reported by Eduardo Ochs. + + (cherry picked from commit 4eefadad0670ad1c3da2505d734e528d54c76bef) + +2023-02-20 Stefan Monnier + + regex-emacs.c: Reduce the use of backtracking a bit further + + bug#61514 exhibited some undesirable backtracking in a case where + it's easy to avoid it by making `mutually_exclusive_p` just a bit + more careful. + + * src/regex-emacs.c (mutually_exclusive_p): Handle `on_failure_jump`s. + + * test/src/regex-emacs-tests.el (regexp-tests-backtrack-optimization): + Add a few tests. + +2023-02-20 João Távora + + Eglot: respect user's Eldoc configuration by default + + This change addresses the problems reported in many Elglot reports + dating back to early 2021 at least: + + https://github.com/joaotavora/eglot/issues/648 + https://github.com/joaotavora/eglot/issues/894 + https://github.com/joaotavora/eglot/issues/920 + https://github.com/joaotavora/eglot/issues/1031 + https://github.com/joaotavora/eglot/issues/1171 + + In one form or another, the reports point out that the multiple pieces + of information about the "thing at point" made available by the LSP + server are not all being considered by the ElDoc system. + + The reason for this is Eglot setting/trampling the variables + 'eldoc-documentation-strategy' and 'eldoc-documentation-functions' in + its minor more entry function. + + The reason it did that is historical and is partially described in the + issues above. But, evidently, it never made much sense, because so + many people want to override it, which requires setting + 'eldoc-documentation-strategy' to the non-default value + 'eldoc-documentation-compose'. + + The problem was made worse by the fact that setting it as usual in + either the Customize menu or their init file didn't work, requiring a + fairly complex Elisp snippet. That is now solved as of this commit. + + If the user does not do any setting, then Eglot works basically the + same as before (i.e. shows only one piece of information). + + It is arguable that the default value for + 'eldoc-documentation-strategy' should change globally to + 'eldoc-documentation-compose', but that has other subtle implications + and is not part of this commit. + + * lisp/progmodes/eglot.el (eglot--managed-mode): Don't set Eldoc + variables greedily. + +2023-02-20 Andrea Corallo + + Make the native compiler always use `make-temp-file' for temporary files + + * src/comp.c (CALL4I): Define macro. + (Fcomp__compile_ctxt_to_file): Use `make-temp-file' instead of + `make-temp-file-internal'. + * lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename): Likewise. + +2023-02-20 Jonas Bernoulli + + Update to Transient v0.3.7-216-gfe40342 + +2023-02-20 Daniel Martín + + Add declaration_list to c-ts-common-indent-type-regexp-alist + + * lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Consider a + "declaration_list" a block. (Bug#61635) + * test/lisp/progmodes/c-ts-mode-resources/indent.erts (Code): Add a + test case. + +2023-02-20 Theodor Thornhill + + Typescript-ts-mode: Add switch case handling + + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--indent-rules): New rules. + +2023-02-20 Theodor Thornhill + + Fix object initializer for csharp-mode (bug#61541) + + * lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): Make sure + we check the openers as well as closers. + +2023-02-20 Kyle Meyer + + Update to Org 9.6.1-34-geea8da + +2023-02-19 Yuan Fu + + Improve tree-sitter indent anchor prev-adaptive-prefix (bug#61314) + + Now prev-adaptive-prefix looks at the current line and checks if it + begins with a prefix itself. If it does, prev-adaptive-prefix tries + to place the anchor before the prefix on the previous line, rather + than after it. + + - prev line + - this line -> This line starts with a "-", i.e., begins with a + prefix, so we place the anchor at the beginning of the + "-" of the previous line, rather than after it + + - prev line + this line -> This line doesn't start with a prefix, so the anchor + is placed after the previous line's "-". + + * doc/lispref/modes.texi (Parser-based Indentation): Update manual. + * lisp/treesit.el: + (treesit-simple-indent-presets): Add local variable + this-line-has-prefix, base what anchor to return on the value of + this-line-has-prefix and whether the prev line has a prefix. + +2023-02-19 Theodor Thornhill + + Adjust jsx indentation + + We can use the fact that 'treesit-indent-1' uses 'treesit-node-on' + when on a whitespace to set the actual current node as parent. Now we + can correctly indent the 'jsx_text' nodes. We also add some more + electric-indent-chars so that auto-indenting of jsx behaves a little + more fluently. + + * lisp/progmodes/js.el (js--treesit-indent-rules): Add new rules. + (js-ts-mode): Add more indent-chars. + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--indent-rules): Add new rules. + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-base-mode): Add more indent-chars and layout rules. + +2023-02-19 Theodor Thornhill + + Cleanup preproc indent for c-ts-mode (bug#61558) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Make sure we + indent to great-grand-parent if inside an #ifdef...#endif block. If + grand-parent is root node, then don't indent one step. + (c-ts-mode--preproc-offset): New helper anchor function to calculate + indent offset. + +2023-02-19 Theodor Thornhill + + Add comment style toggle for c-ts-mode (bug#61550) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode-toggle-comment-style): New + command. + (c-ts-base-mode-map): Add binding. + (c-ts-mode-set-modeline): New function. + (c-ts-mode): Set modeline. + (c++-ts-mode): Set modeline. + +2023-02-19 Juri Linkov + + * lisp/simple.el (choose-completion): Check for completion-in-region-mode. + + Don't use base-affixes when completion-use-base-affixes is non-nil + in completion-in-region-mode (bug#61535). + +2023-02-19 Dmitry Gutov + + rust-ts-mode--font-lock-settings: Avoid the explicit 'default' face + + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--fontify-scope) + (rust-ts-mode--fontify-tail): New functions. + (rust-ts-mode--font-lock-settings): Use them instead of a lot of + more complex queries (bug#61302). Thus avoid having to create + block fontification by other features using the 'default' face. + Replace the catch-all query for 'variable' with an enumeration of + possible parent nodes. + +2023-02-19 Dmitry Gutov + + * lisp/progmodes/xref.el: Bump the version. + +2023-02-19 Dmitry Gutov + + xref--insert-xrefs: Use 'shadow' for the line number colon + + * lisp/progmodes/xref.el (xref--insert-xrefs): Use face 'shadow' for + the line number colon instead of continuing it face (bug#61340). + + (cherry picked from commit d6d25a3c221e566de4df5319181e9ba9a8df285e) + +2023-02-19 Juri Linkov + + * lisp/progmodes/xref.el (xref--insert-xrefs): Remove extra space (bug#61340). + + (cherry picked from commit 643a11c6e5defc0a34da1a53b64aa1e097298923) + +2023-02-19 Mattias Engdegård + + Backport: Fix xref-clear-marker-stack refactoring mistake + + * lisp/progmodes/xref.el (xref-clear-marker-stack): + Clear the history correctly. Changing a lexical variable has no effect. + + (cherry picked from commit dfdc0f5fb7b10e737c3c8e2bdb1eb873a1e91bd7) + +2023-02-19 Stefan Kangas + + Merge from origin/emacs-28 + + f5a99945b6f ; Update ChangeLog for Emacs 28.3 + f7bd5ac5521 Update HISTORY for Emacs 28.3 + + # Conflicts: + # etc/NEWS + +2023-02-19 Stefan Kangas + + Merge from origin/emacs-28 + + 4a77fcb1478 Update ChangeLog and AUTHORS for Emacs 28.3 + +2023-02-19 Manuel Giraud + + More doc on image-dired-dired-* (bug#61624) + + * doc/emacs/dired.texi (Image-Dired): Some fixes and more + documentation about image-dired-dired-* commands. + +2023-02-19 Theodor Thornhill + + Eglot: improve treatment of completion items without :sortText (bug#61532) + + Previously, defaulting to the empty string put candidates without + :sortText to the top of the list. since string-lessp is safe with nil + arguments, this makes them sort to the end instead. + + * lisp/progmodes/eglot.el (eglot-completion-at-point): Simplify. + +2023-02-19 Eli Zaretskii + + Fix invocation of File->Close from the menu bar + + * lisp/simple.el (kill-buffer--possibly-save): Don't request + LONG-FORM from 'read-multiple-choice' if GUI dialog should be + used. + * lisp/emacs-lisp/rmc.el (read-multiple-choice): Doc fix. + (read-multiple-choice--short-answers): Don't append "?" to + CHOICES and don't display the prompt in the echo area if GUI + dialog is used. Use 'use-dialog-box-p'. (Bug#61553) + +2023-02-19 Manuel Giraud + + Update thumbnail buffer's header more + + * lisp/image/image-dired.el (image-dired-display-thumbs): Call + image-dired--update-header-line. (Bug#61508) + +2023-02-18 Dmitry Gutov + + (treesit-query-validate): Fix reusing the output buffer + + * lisp/treesit.el (treesit-query-validate): Fix the "Buffer is + read-only" error when an output buffer already exists. + +2023-02-18 Dmitry Gutov + + (rust-ts-mode--font-lock-settings): Highlight closure parameters + + * lisp/progmodes/rust-ts-mode.el + (rust-ts-mode--font-lock-settings): Highlight closure parameters. + +2023-02-18 Andrea Corallo + + * Fix `native-comp-enable-subr-trampolines' semantic + + * lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename): Interpret + `native-comp-enable-subr-trampolines' relative to + `invocation-directory'. + +2023-02-18 Eli Zaretskii + + Fix documentation of 'just-one-space' and 'delete-horizontal-space' + + * lisp/simple.el (just-one-space, delete-horizontal-space): + Mention the effect of prefix argument. (Bug#61609) + +2023-02-18 martin rudalics + + Fix 'display-buffer-use-least-recent-window' + + * src/window.c (Fwindow_use_time): Doc fix. + (Fwindow_bump_use_time): Bump use time of the selected window as + well. Doc fix. + + * lisp/window.el (display-buffer-avoid-small-windows): Remove. + All users changed. + (window--display-buffer): Bump window use time when requested. + (display-buffer--lru-window): New function. + (display-buffer-use-some-window): Use it. + (display-buffer-use-least-recent-window): Rewrite and enhance doc + string. + + * doc/lispref/windows.texi (Selecting Windows) + (Buffer Display Action Functions, Buffer Display Action Alists) + (The Zen of Buffer Display): Improve and update documentation of + window selection and display facilities. + +2023-02-18 kobarity + + Fix point moving when calling python-shell-send-region + + * lisp/progmodes/python.el (python-shell-buffer-substring): Add + `save-excursion' to prevent the point from moving. + * test/lisp/progmodes/python-tests.el (python-tests-should-not-move): + New helper function to assert that point does not move while calling a + function. + (python-shell-buffer-substring-*): Use + `python-tests-should-not-move'. (Bug#61463) + +2023-02-18 Omar Polo + + (project-try-vc): Remove unused defvar/require + + * lisp/progmodes/project.el (project-try-vc): + Remove unused defvar/require (bug#61577). + +2023-02-18 Stefan Kangas + + Delete redundant question from Gnus FAQ + + * doc/misc/gnus-faq.texi (FAQ 1-2): Delete redundant question. + (FAQ 1-1, FAQ 1-3): Adjust accordingly. + +2023-02-18 Stefan Kangas + + Slightly improve hashcash documentation + + * lisp/mail/hashcash.el: Improve Commentary. + (hashcash-program): + * lisp/gnus/message.el (message-generate-hashcash): Improve + docstring. + +2023-02-18 Eli Zaretskii + + Fix cursor motion when there's line-prefix and display string at BOL + + * src/xdisp.c (move_it_in_display_line_to): Handle 'line-prefix' and + 'wrap-prefix' when the screen line has a display string at its + beginning. (Bug#61580) + +2023-02-18 Yuan Fu + + Fix comment in treesit_record_change (bug#61369) + + Turns out the previous commit message and comment is not entirely + correct: the old behavior is in fact wrong, not just "correct but has + problems". + + Here is why the old code is wrong: + + |visible range| -> markup for visible range + + updated range -> markup for updated range + ------------- + + First we have some text + + |aaaaaa| + + Now we insert something at the beginning, because we clip + new_end_offset to visible_end, out of eight b's inserted, only the + first six are known to tree-sitter. + + |bbbbbbbbaaaa|aa start: 0, old_end: 0, new_end: 6 + ------ + + In treesit_sync_visible_region, we sync up visible region, but the two + missing b's are not in the updated range. + + |bbbbbbbbaaaaaa| start: 12, old_end: 12, new_end: 14 + -- + + The old behavior not only is wrong, but also doesn't make much sense. + + * src/treesit.c (treesit_record_change): Update comment. + +2023-02-18 Stefan Kangas + + Spell out RPN abbreviation in Calc manual intro + + * doc/misc/calc.texi (What is Calc, Demonstration of Calc) + (RPN Tutorial): Spell out "Reverse Polish notation" abbreviation. + +2023-02-18 Eli Zaretskii + + Fix some uses of 'use-dialog-box' + + * lisp/frame.el (display-mouse-p): Fix return value on MS-Windows + in batch invocations. + * lisp/hi-lock.el (hi-lock-unface-buffer): Don't consider + 'last-nonmenu-event' being nil as a mouse event, for the purpose + of using dialog boxes. + +2023-02-18 Eli Zaretskii + + Fix hi-lock-tests when 'use-dialog-box' is non-nil + + * test/lisp/hi-lock-tests.el (hi-lock-case-fold) + (hi-lock-unhighlight): Bind 'use-dialog-box' to nil. + +2023-02-18 Eli Zaretskii + + Fix regression due to change in face sort order by 'face-list' + + * lisp/faces.el (x-create-frame-with-faces): Undo reversing of + the face list, which is no longer necessary, since 'face-list's + sorting order has been reversed recently. (Bug#61521) + +2023-02-17 Po Lu + + * lisp/files.el (file-equal-p): Work around Haiku stat bug. + +2023-02-17 Dmitry Gutov + + (project-vc-backend-markers-alist): Add entry for vc-got + + * lisp/progmodes/project.el (project-vc-backend-markers-alist): + Add entry for vc-got (bug#61577). Bump the version. + +2023-02-17 Dmitry Gutov + + project.el: Extract backend->marker association for a defvar + + * lisp/progmodes/project.el (project-vc-backend-markers-alist): + Extract from 'project-try-vc'. + (project-try-vc): Update accordingly (bug#61577). + +2023-02-17 Yuan Fu + + Don't completely clip into visible range in treesit_record_change + + (Bug#61369) + + From + min (visible_end, max (visible_beg, new_end_byte)) - visible_beg + to + max (visible_beg, new_end_byte) - visible_beg + + * src/treesit.c (treesit_record_change): We don't clip the new end + into the visible range anymore. If you think of it, when inserting in + a narrowed region, the visible region is always extended to + accommodate more text, rather than pushing text at the end to keep the + size of the visible region. + +2023-02-17 Dmitry Gutov + + * lisp/treesit.el (treesit-node-at): Update docstring (bug#61529). + +2023-02-17 Stefan Kangas + + * lisp/calc/calc.el (calc-mode): Improve docstring. + +2023-02-17 Stefan Kangas + + Bump Emacs version to 28.3 + + * README: + * configure.ac: + * msdos/sed2v2.inp: + * nt/README.W32: Bump Emacs version to 28.3. + +2023-02-17 Stefan Kangas + + Update ChangeLog and AUTHORS for Emacs 28.3 + + * ChangeLog.3: + * etc/AUTHORS: Update for Emacs 28.3. + +2023-02-17 Stefan Kangas + + Update HISTORY for Emacs 28.3 + +2023-02-17 Stefan Kangas + + Update NEWS for Emacs 28.3 + + * etc/NEWS: Update for Emacs 28.3. + +2023-02-17 Andrea Corallo + + Merge 'emacs-29' into 'feature/inhibit-native-comp-cleanup' + +2023-02-17 Eli Zaretskii (tiny change) + + Fix order of faces in 'face-list' + + * lisp/faces.el (frame-face-alist, face-list): Sort faces in + decreasing order of face IDs. Patch by Brennan Vincent + . (Bug#61521) + +2023-02-17 Eli Zaretskii + + Allow 'icon-title-format' to have the value t + + * src/xdisp.c (gui_consider_frame_title, syms_of_xdisp): If the + value of 'icon-title-format' is t, use 'frame-title-format' + instead. (Bug#61496) + + * etc/NEWS: + * doc/lispref/frames.texi (Frame Titles): Document the new + handling of the value t. + (Basic Parameters): Fix the documentation of the 'title' and + 'name' frame parameters. + +2023-02-16 Theodor Thornhill + + Add electric indent for preproc directives + + It looks like there are few if no other cases where we get this + particular error in the AST than with insertion of '#'. + + Consider: + + ``` + int + main() + { + | + } + ``` + + If we only add '#' the AST yields (ERROR (ERROR)), which we can + exploit to hook onto electric indent. The end result should be the + hashtag anchored to column 0. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): New rule. + (c-ts-base-mode): Add # to electric-indent-chars. + +2023-02-16 Robert Pluim + + Rename 'emacs-news-toggle-tag' to 'emacs-news-cycle-tag' + + * lisp/textmodes/emacs-news-mode.el (emacs-news-cycle-tag): Renamed + from 'emacs-news-toggle-tag'. + (emacs-news-mode-map, emacs-news-mode-menu): Use new name. + * test/lisp/textmodes/emacs-news-mode-resources/cycle-tag.erts: + Renamed from "toggle-tag.erts". + * test/lisp/textmodes/emacs-news-mode-tests.el (emacs-news-cycle-tag): + Rename test from 'emacs-news-toggle-tag', and call + 'emacs-news-cycle-tag' with new resource file name. + +2023-02-16 Robert Pluim + + Add menu to news-mode + + * lisp/textmodes/emacs-news-mode.el (emacs-news-mode-map): Add binding + for 'emacs-news-delete-temporary-markers'. + (emacs-news-mode-menu): Add menu for common actions. + +2023-02-16 Philip Kaludercic + + Attempt to recognize if a VC package has no Elisp files + + * lisp/emacs-lisp/package-vc.el (package-vc-non-code-file-names): Add + new variable used to avoid false-positives. + (package-vc--unpack): Recursively search for .el files excluding the + ones listed in 'package-vc-non-code-file-names', offering to abort the + installation if none are found. + +2023-02-15 Eli Zaretskii + + Fix mule-tests under en_US.UTF-8 locale + + * test/lisp/international/mule-tests.el (sgml-html-meta-utf-8): + Accept also utf-8-unix/dos/whatever. (Bug#61534) + + * lisp/international/mule.el + (sgml-html-meta-auto-coding-function): Fix comparison when + buffer-file-coding-system is of type 'charset'. + +2023-02-15 Theodor Thornhill + + Move block closer above declaration_list rule (bug#61531) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Move rule + above the previous rule. + +2023-02-15 Eli Zaretskii + + Minor improvements in c-ts-mode and docs + + * lisp/progmodes/c-ts-mode.el (c-ts-base-mode-map): Add a binding + for comment-region. + + * doc/emacs/programs.texi (C Indent): Mention "C-u TAB". + +2023-02-15 Theodor Thornhill + + Add super node as a keyword + + * lisp/progmodes/java-ts-mode.el + (java-ts-mode--font-lock-settings): Add new node. + +2023-02-15 Stefan Kangas + + Delete perplexing paragraph from Gnus manual + + * doc/misc/gnus.texi (Exiting Gnus): Delete a confusing paragraph, + that may or may not have been intended as a joke. (Bug#61325) + +2023-02-14 ~kby (tiny change) + + Eglot: check server capability before sending didSave (bug#61478) + + * lisp/progmodes/eglot.el (eglot--signal-textDocument/didSave): check + server capability. + +2023-02-14 Randy Taylor + + Fix rust-ts-mode type and module highlighting (Bug#61302) + + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings): + Specify import queries to avoid clashing with scoped identifiers in + the code. Highlight attributes with font-lock-preprocessor-face. + +2023-02-14 Dmitry Gutov + + rust-ts-mode: Highlight variable reassignments + + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode): + New treesit font-lock feature: 'assignment' (bug#61302). + (rust-ts-mode--fontify-pattern): Remove the node lookup step. + (rust-ts-mode--font-lock-settings): Update variable declaration + queries to match the 'pattern' child node right away. Add + highlights for 'assignment. + +2023-02-14 Gregory Heytings + + Improve backward compatibility of save-restriction + + * src/editfns.c (save_restriction_save_1): Renamed from + 'save_restrictions_save'. Make it static. + (save_restriction_restore_1): Renamed from + 'save_restriction_restore'. Make it static. + (save_restriction_restore): New function, combining + 'save_restriction_save_1' and 'narrowing_locks_save'. + (save_restriction_save): New function, combining + 'save_restriction_restore_1' and 'narrowing_locks_restore'. + (Fsave_restriction): Restore the previous code. + (narrowing_locks_save, narrowing_locks_restore): Make them static. + + * src/lisp.h: Remove two functions that are not externally visible + anymore. + + * src/comp.c (helper_save_restriction): Restore the previous code. + + * src/bytecode.c (exec_byte_code): Restore the previous code. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-save-restriction): + Decrement unbinding count. + +2023-02-14 Theodor Thornhill + + Don't indent template_string contents (bug#61503) + + * lisp/progmodes/js.el (js--treesit-indent-rules): Add new rule. + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--indent-rules): Add new rule. + +2023-02-14 Jostein Kjønigsen + + csharp-ts-mode: fontify compiler directives (bug#61512) + + lisp/progmodes/csharp-mode.el: Add tree-sitter-queries for known C# + compiler-directives. + +2023-02-14 Jonas Bernoulli + + Update to Transient v0.3.7-209-gdab1dfa + +2023-02-14 Andrea Corallo + + * Generate trampolines in a temporary directory if no other option is viable + + * lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename): Use + temporary file if no other option is viable. + +2023-02-13 Eli Zaretskii + + Rename with/without-narrowing to with/without-restriction + + * doc/lispref/commands.texi: + * doc/lispref/display.texi: + * doc/lispref/positions.texi: + * etc/NEWS: + * lisp/subr.el: + * src/buffer.c: + * src/editfns.c: + * src/keyboard.c: + * src/xdisp.c: + * test/src/buffer-tests.el: Rename with-narrowing and + without-narrowing to with-restriction and without-restriction. + Likewise with internal--with-narrowing and + internal--without-narrowing. All callers and documentation + changed. + +2023-02-13 Juri Linkov + + * lisp/repeat.el: Rename internal function and variable (bug#60980) + + (repeat--transient-exitfun): Rename internal variable from + 'repeat-exit-function'. + (repeat--clear-prev): Rename internal function from + 'repeat--exit'. + +2023-02-13 Andrea Corallo + + * Fix previous change + + * lisp/emacs-lisp/generate-lisp-file.el (generate-lisp-file-trailer): + Fix previous change b6e2799aa1c. + +2023-02-13 Andrea Corallo + + Rename native-comp-deferred-compilation-deny-list + + * lisp/emacs-lisp/comp.el (native-comp-jit-compilation-deny-list) + (native-compile-async-skip-p): Rename + native-comp-deferred-compilation-deny-list into + native-comp-jit-compilation-deny-list. + (native-comp-deferred-compilation-deny-list): Mark it obsolete. + +2023-02-13 Andrea Corallo + + Rename native-comp-deferred-compilation into native-comp-jit-compilation + + * src/comp.c (maybe_defer_native_compilation, syms_of_comp): + Rename native-comp-deferred-compilation into + native-comp-jit-compilation. + + * lisp/subr.el (native-comp-deferred-compilation): Mark + native-comp-deferred-compilation as obsolete. + + * lisp/startup.el (native-comp-deferred-compilation) + (normal-top-level): Rename native-comp-deferred-compilation into + native-comp-jit-compilation. + + * lisp/progmodes/elisp-mode.el + (emacs-lisp-native-compile-and-load): Likewise. + + * lisp/emacs-lisp/generate-lisp-file.el + (generate-lisp-file-trailer): Likewise. + +2023-02-13 Andrea Corallo + + Rename comp-enable-subr-trampolines into native-comp-enable-subr-trampolines + + * src/data.c (Ffset): Rename comp-enable-subr-trampolines into + native-comp-enable-subr-trampolines. + + * src/comp.c (syms_of_comp): Likewise. + + * lisp/subr.el (comp-enable-subr-trampolines): Make + comp-enable-subr-trampolines obsolete. + + * lisp/startup.el (native-comp-enable-subr-trampolines) + (normal-top-level): Rename comp-enable-subr-trampolines into + native-comp-enable-subr-trampolines. + + * lisp/loadup.el (dump-mode): Likewise. + + * lisp/emacs-lisp/comp.el (comp-subr-trampoline-install) + (comp--trampoline-abs-filename): Likewise. + +2023-02-13 Andrea Corallo + + * lisp/emacs-lisp/comp.el (native-comp-never-optimize-functions): Improve doc + +2023-02-13 Andrea Corallo + + Support `comp-enable-subr-trampolines' as string value + + * src/comp.c (syms_of_comp): Update `comp-enable-subr-trampolines'. + + * lisp/emacs-lisp/comp.el (native-comp-never-optimize-functions) + (comp--trampoline-abs-filename): Support + `comp-enable-subr-trampolines' string value. + + * src/data.c (Ffset): Use Vcomp_enable_subr_trampolines now. + +2023-02-13 Gregory Heytings + + Merge branch 'scratch/fix-locked-narrowing' + +2023-02-13 Andrea Corallo + + * Some more `inhibit-native-compile' clean-up + + * lisp/emacs-lisp/generate-lisp-file.el (generate-lisp-file-trailer): + Use `native-comp-deferred-compilation'. + +2023-02-13 Gregory Heytings + + Minor improvements to labeled narrowing + + * lisp/subr.el (internal--with-narrowing): + (internal--without-narrowing): Remove unnecessary 'progn'. + + * etc/NEWS: Mention 'with-narrowing' in the entry about long + lines. + + * doc/lispref/positions.texi (Narrowing): Fix typo. + + * doc/lispref/display.texi (Auto Faces): Use @pxref. + + * doc/lispref/commands.texi (Command Overview): Use @pxref. + +2023-02-13 Andrea Corallo + + Revert "Add new variable 'inhibit-native-compilation'" + + This reverts commit 5fec9182dbeffa88cef6651d8c798ef9665d6681. + +2023-02-13 Andrea Corallo + + Revert "Rename to inhibit-automatic-native-compilation" + + This reverts commit f97993ee667f9be7589825f3a4fbc095d6944ec6. + +2023-02-13 Ulrich Müller + + Fix spurious display of eclipses in Calendar + + * lisp/calendar/lunar.el (eclipse-check): Don't show an eclipse + unless the phase is new moon or full moon. (bug#61460) + * test/lisp/calendar/lunar-tests.el (lunar-test-eclipse-check) + (lunar-test-phase-list): Update tests. + +2023-02-12 Yuan Fu + + Fix indentation for closing bracket in c-ts-mode (bug#61398) + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--indent-styles): Move the rule earlier. + (c-ts-base-mode): Add move block type. + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: New tests. + +2023-02-12 Kyle Meyer + + Update to Org 9.6.1-31-gaf1bb1 + +2023-02-12 Alan Mackenzie + + * src/.gdbinit (nextcons): Amend $.u.cdr to $.u.s.u.cdr (bug#61453). + + (cherry picked from commit dde023b63ab82c38d33815409de5552f5bf349d1) + +2023-02-12 Theodor Thornhill + + Add lambda_expression to c-ts-common-indent-type-regexp-alist + + * lisp/progmodes/java-ts-mode.el (java-ts-mode): Tweak regexp. + +2023-02-12 Philip Kaludercic + + Tolerate missing elpa-packages.eld files + + * lisp/emacs-lisp/package-vc.el + (package-vc--download-and-read-archives): Replace + 'condition-case-unless-debug' with a regular 'condition-case'. + + It appears a few people using third-party archives that don't serve + package specifications have been having issues with package-vc, when + toggle-on-error is enabled. In their case, package-vc would raise an + error in its first invocation, but it would go on working normally + afterwards. As this behavior is confusing and the user can't do much + about a missing elpa-packages.eld to begin with, we satisfy ourselves + with printing out a message and continuing on. + +2023-02-12 Eli Zaretskii + + Avoid warning about 'load-path' in non-interactive sessions + + * lisp/startup.el (command-line): Emit the warning about + 'user-emacs-directory' in 'load-path' only in interactive + sessions. (Bug#61014) + +2023-02-12 Ulrich Müller + + Support webkit2gtk-4.1 + + * configure.ac: Check for webkit2gtk API version 4.1 first, then + fall back to 4.0. + +2023-02-10 Gregory Heytings + + Save and restore the absence of narrowing locks + + * src/editfns.c (narrowing_locks_save): Return the buffer with a + empty locks list when the current buffer has no narrowing locks. + (narrowing_locks_restore): Remove the narrowing locks if the + buffer had no narrowing locks. + +2023-02-10 Tassilo Horn + + bug-reference: prevent match-data clobbering (bug#61395) + + * lisp/progmodes/bug-reference.el (bug-reference-fontify): Wrap call + to syntax-ppss in save-match-data since it can clobber our + match-data (bug#61395). + +2023-02-10 Yuan Fu + + Rename LIMIT to DEPTH in tree-sitter functions (bug#61231) + + I only changed the Lisp functions, internal functions are left + unchanged. + + * doc/lispref/parsing.texi (Retrieving Nodes): Update manual. + * src/treesit.c (Ftreesit_search_subtree) + (Ftreesit_induce_sparse_tree): Change LIMIT to DEPTH. + +2023-02-09 Yuan Fu + + Add 'live' property to treesit-node-check (bug#61235) + + * doc/lispref/parsing.texi (Accessing Node Information): Document. + * src/treesit.c (treesit_parser_live_p): New function. + (Ftreesit_node_check): Add 'live' property. + * test/src/treesit-tests.el (treesit-node-api): Add tests. + +2023-02-09 Jonas Bernoulli + + Update to Transient v0.3.7-205-gb8ad0da + +2023-02-09 Eli Zaretskii + + Fix 'rmail-summary-output' + + * lisp/mail/rmailsum.el (rmail-summary-output): Fix deletion of + messages when 'rmail-output-reset-deleted-flag' is non-nil. + (Bug#61380) + +2023-02-09 Nicolas Martyanoff + + lisp-mode: add docstring recognition for more common lisp symbols + + * lisp/emacs-lisp/lisp-mode.el (define-compiler-macro) + (define-setf-expander, deftype): Add the 'doc-string-elt' + property for proper docstring highlighting in Common Lisp. + +2023-02-09 Jonas Bernoulli + + Update to Transient v0.3.7-204-gecff8c2 + +2023-02-09 Eli Zaretskii + + Fix Scala entry in Eglot's DB of LSP servers + + * lisp/progmodes/eglot.el (eglot-server-programs): Support Scala + LSP named "metals", in addition to "metals-emacs". (Bug#61312) + +2023-02-08 Dmitry Gutov + + ruby-ts-mode: Also don't reindent 'identifier' when inside ERROR + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules): + Also don't reindent 'identifier' when inside ERROR. + +2023-02-08 Dmitry Gutov + + ruby-ts-mode: Fix indentation inside empty if/unless/case/def + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules): + Add new rule. + + * test/lisp/progmodes/ruby-ts-mode-tests.el + (ruby-ts-indent-empty-if-else): New test. + +2023-02-08 Gregory Heytings + + Add an extensive test for labeled (locked) narrowing + + * test/src/buffer-tests.el (test-labeled-narrowing): New test. + +2023-02-08 Gregory Heytings + + Update the documentation about labeled (locked) narrowing + + * src/xdisp.c (syms_of_xdisp) : Update + docstring. + + * src/keyboard.c (syms_of_keyboard) : + (syms_of_keyboard) : Update docstring. + + * src/editfns.c: + (narrowing_locks): Explain why an alist is used instead of a + buffer-local variable. + (reset_outermost_narrowings): Point to recipes that demonstrate + why it is necessary to restore the user narrowing bounds when + redisplay starts. + (Fwiden): Update docstring. + (Fnarrow_to_region): Update docstring. + (Finternal__lock_narrowing): Update docstring. + (Finternal__unlock_narrowing): Update docstring. + (Fsave_restriction): Update docstring. + + * src/buffer.c (syms_of_buffer) + : Update docstring. + (syms_of_buffer) : + Update docstring. + + * lisp/subr.el (with-narrowing): Update docstring. + (without-narrowing): Update docstring. + + * etc/NEWS: Mention the 'long-line-optimizations-region-size' and + 'long-line-optimizations-bol-search-limit' options. + Announce the 'with-narrowing' and 'without-narrowing' forms. + + * doc/lispref/positions.texi (Narrowing): Update the documentation + of 'narrow-to-region', 'widen' and 'save-restriction'. Document + the 'with-narrowing' and 'without-narrowing' special forms. + + * doc/lispref/display.texi (Auto Faces): Update the documentation. + + * doc/lispref/commands.texi (Command Overview): Document the fact + that the buffer is narrowed around 'pre-command-hook' and + 'post-command-hook' when the buffer text includes very long lines. + +2023-02-08 Gregory Heytings + + Rename two long line optimizations variables + + * src/buffer.c (syms_of_buffer): Rename two variables. + + * src/xdisp.c (get_locked_narrowing_begv): + (get_locked_narrowing_zv): + (handle_fontified_prop): Use the new names. + + * src/keyboard.c (safe_run_hooks_maybe_narrowed): Use the new + names. + +2023-02-08 Gregory Heytings + + Add specific symbols for narrowings + + * src/xdisp.c (syms_of_xdisp): Define symbol. + (handle_fontified_prop): Use it. + + * src/keyboard.c (syms_of_keyboard): Define symbol. + (safe_run_hooks_maybe_narrowed): Use it. + +2023-02-08 Gregory Heytings + + Add 'without-narrowing' macro + + * lisp/subr.el (without-narrowing): New macro, companion (and + almost identical) to 'with-narrowing'. + +2023-02-08 Gregory Heytings + + Make 'narrowing-lock' and 'narrowing-unlock' internal + + * src/editfns.c (Finternal__lock_narrowing): Renamed from + 'narrowing-lock'. + (Finternal__unlock_narrowing): Renamed from 'narrowing-unlock'. + (unwind_narrow_to_region_locked): + (narrow_to_region_locked): + (syms_of_editfns): Use the new names. + + * lisp/subr.el (internal--with-narrowing): Use the new name. + +2023-02-08 Gregory Heytings + + Fix 'save-restriction' for narrowing locks + + * src/editfns.c (narrowing_locks_save): + (narrowing_locks_restore): Make them non-static. + + * src/lisp.h: Make them externally visible. + + * src/bytecode.c (exec_byte_code): Save and restore narrowing + locks. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-save-restriction): + Increment unbinding count. + + * src/comp.c (helper_save_restriction): Save and restore narrowing + locks. + +2023-02-08 LensPlaysGames (tiny change) + + * lisp/iimage.el (iimage-mode-buffer): Handle multiple regexps. + + Go to the beginning of the buffer before searching every regexp in + iimage-mode-image-regex-alist. + +2023-02-08 Stefan Monnier + + * lisp/edmacro.el (edit-kbd-macro): Fix thinko (bug#61333) + + Backported from commit 2273cdb40e1939f7c29a669f6a64e6a27738c1a5. + +2023-02-07 Eli Zaretskii + + Fix crashes inside 'xfree' called from treesit.c + + * src/treesit.c (treesit_load_language): Always xstrdup 'c_name', + to avoid crashes inside xfree. (Bug#61351) + +2023-02-06 Yuan Fu + + Make java-ts-mode use the c-ts-common-indent-type-regexp-alist + + * lisp/progmodes/java-ts-mode.el: + (java-ts-mode): Setup c-ts-common-indent-type-regexp-alist. + +2023-02-06 Yuan Fu + + Fix c-ts-mode indentation + + Sign, ok, there's another edge case: else if statements. Because + "else if" is usually implemented as just another if statement nested + in the else branch, this creates additional levels that indentation + needs to ignore. + + I converted c-ts-common-indent-block-type-regexp + + c-ts-common-indent-bracketless-type-regexp into a new, more flexible + variable, c-ts-common-indent-type-regexp-alist, to avoid adding yet + more variables in order to recognize else and if statements. + + * lisp/progmodes/c-ts-common.el: + (c-ts-common-indent-type-regexp-alist): New variable. + (c-ts-common-indent-block-type-regexp) + (c-ts-common-indent-bracketless-type-regexp): Remove variables. + (c-ts-common--node-is): New function. + (c-ts-common-statement-offset): Use the new variable, and add the + "else if" special case. Also merge the code of + c-ts-mode--fix-bracketless-indent, because now the code is much more + succinct. + (c-ts-mode--fix-bracketless-indent): Merge into + c-ts-common-statement-offset. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-base-mode): Setup c-ts-common-indent-type-regexp-alist. + + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test. + +2023-02-06 Yuan Fu + + Fix c-ts-mode indentation + + Turns out I shouldn't have removed the explicit rules. Anyway, now it + indents properly. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Add rules. + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: Add tests + +2023-02-06 Yuan Fu + + Fix c-ts-mode indentation (bug#61291) + + Fix indentation for the semicolon in + + while (str_a[i++] == str_b[j++]) + ; + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): New rule. + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test. + +2023-02-06 Dmitry Gutov + + (eglot-completion-at-point): Return correct values in :company-kind + + * lisp/progmodes/eglot.el (eglot-completion-at-point): Return the + correct values in :company-kind for "EnumMember" and "TypeParameter". + The convention is to use kebab case rather than plain downcasing. + Reported in https://github.com/company-mode/company-mode/issues/1370. + +2023-02-06 Mattias Engdegård + + Tighten and simplify typescript compilation-mode regexps (bug#61104) + + * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): + Tighten regexps and simplify. Translate to rx. + * etc/compilation.txt: Add examples. + + In collaboration with Jostein Kjønigsen. + +2023-02-06 Tassilo Horn + + Clarify bug-reference-auto-setup-functions docstring. + + * lisp/progmodes/bug-reference.el (bug-reference-auto-setup-functions): + Add clarification to docstring that this variable is for packages, not + for users. + +2023-02-06 Aleksandr Vityazev + + * lisp/treesit.el (treesit): Fix shortdoc example form (bug#61318). + +2023-02-06 Theodor Thornhill + + Use c-ts-common-statement-offset in java-ts-mode (bug#61142) + + * lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Add new + matchers to enable c-ts-common machinery. + (java-ts-mode): Add regexps. + * lisp/progmodes/c-ts-common.el (c-ts-common-statement-offset): Fix + typo in documentation and use the new if statement helpers. + (c-ts-common-if-statement-regexp): New defvar. + (c-ts-common-nestable-if-statement-p): New defvar. + (c-ts-common--fix-nestable-if-statement): New helper. + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: Add test for + complicated bracket matching indentation. + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Add indent + rules for bracketless statements. + +2023-02-06 Theodor Thornhill + + Add array_initializer to java-ts-mode + + Indent strings inside arrray_initializer one step: + + public class Java { + void foo() { + return new String[]{ + "foo", // These + "bar" + } + } + } + + * lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): New + matcher. + +2023-02-05 Dmitry Gutov + + go-ts-mode: Highlight variable declarations + + * lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings): + Highlight variable declarations in 'definition' feature. + +2023-02-05 Dmitry Gutov + + go-ts-mode: Fix highlighting of function name in call_expression + + * lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings): + Remove :override from the 'property' rules and move them above + 'variable' (bug#61302). Just like in rust-ts-mode. + +2023-02-05 Dmitry Gutov + + c-ts-mode: Highlight "property functions" as functions + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): + Highlight "property functions" as functions (bug#61302). + +2023-02-05 Dmitry Gutov + + rust-ts-mode: Fix highlighting of function name in call_expression + + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings): + Remove :override from the 'property' rules and move them above + 'variable' (bug#61302). + +2023-02-05 Dmitry Gutov + + rust-ts-mode--font-lock-settings: Improve consistency + + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings): + Remove the rule that highlighted scope identifier in a function call + as type. The existing rules will handle it when it does look like a + type (capitalized). + +2023-02-05 Dmitry Gutov + + Make sure 'M-x show-paren-local-mode' turns on right away + + * lisp/paren.el (show-paren--enabled-p): Extract from + 'show-paren-function'. + (show-paren-local-mode): Use it in the :variable getter (bug#61098). + +2023-02-05 Tassilo Horn + + Add to bug-reference-auto-setup-functions after its declaring defvar + + If it's the init-value of the defvar, add-hook from a third-party + package will suppress the default functions if it takes place before + bug-reference is loaded. + + * lisp/progmodes/bug-reference.el (bug-reference-auto-setup-functions): + Add to bug-reference-auto-setup-functions after its declaring defvar. + +2023-02-05 Juri Linkov + + * lisp/vc/vc.el (vc-find-revision-no-save): Fix parens (bug#61256). + + Move '(setq failed nil)' from UNWINDFORMS of 'unwind-protect' to BODYFORM. + +2023-02-05 Dmitry Gutov + + Fix inability to turn show-paren-local-mode on manually (bug#61098) + + * lisp/paren.el (show-paren-local-mode): Don't kill the local + value when both local and global are t. Because the + show-paren-predicate check in show-paren-function also checks + whether a local (non-nil) value of this variable exists. + +2023-02-05 Dmitry Gutov + + rust-ts-mode: Highlight variable declarations + + (rust-ts-mode--font-lock-settings): Change scoped_type_identifier + highlight to match similar cases. Highlight variable declarations + inside all kinds of destructuring patterns, not just function + definitions. + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--fontify-pattern): + Rename from 'rust-ts-mode--fontify-parameter'. Check the id node's + parent to avoid touching type identifiers. + +2023-02-05 Dmitry Gutov + + rust-ts-mode--indent-rules: Indent to 0 at top level + +2023-02-05 Alan Mackenzie + + Ensure upper bound of font-lock region is less than point-max + + This fixes bug #61298. The new long-lines code may have narrowed a buffer + before font-lock-default-fontify-region gets called. + + * lisp/font-lock.el (font-lock-default-fontify-region): Set `end' to point-max + if it is greater that it. + +2023-02-05 Dmitry Gutov + + Highlight more complex function parameters + + * lisp/progmodes/rust-ts-mode.el + (rust-ts-mode--fontify-parameter): New function. + (rust-ts-mode--font-lock-settings): Use it. + +2023-02-05 Jonas Bernoulli + + No longer use transient in isearch-emoji-by-name + + * lisp/isearch.el (isearch-emoji-by-name): Use 'emoji--read-emoji' + and if that returns derivations, 'completing-read' to select one + of them. This fixes bug#60740. + * lisp/international/emoji.el (emoji--init): Autoload. + (emoji--read-emoji): New function, which doesn't use transient + and returns a list of the glyph and all derivations, if any. + (emoji--choose-emoji): Use 'emoji--read-emoji'. + +2023-02-05 Dmitry Gutov + + Make highlighting more regular across TS modes (bug#61205) + + * doc/emacs/display.texi (Parser-based Font Lock): + Update description of treesit-font-lock-level, moving 'property' to + level 4. + + * lisp/treesit.el (treesit-font-lock-level): Likewise, in docstring. + + * lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Do that here. + + * lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode): Add a comment. + + * lisp/progmodes/go-ts-mode.el (go-ts-mode): Add 'definition' to + level 1. Move 'function', 'property' and 'variable' to level 4. + (go-ts-mode--font-lock-settings): Move a bunch of existing rules + to 'definition'. Add highlighting of function parameters. + + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode) + (rust-ts-mode--font-lock-settings): Same. And also change "scoped + identifiers" highlights to only match capitalized names. + +2023-02-05 Eli Zaretskii + + Document 'plistp' + + * doc/lispref/lists.texi (Property Lists): Document 'plistp'. + (Bug#61293) + +2023-02-05 Eli Zaretskii + + Fix display of raised/lowered composed text + + * src/xdisp.c (fill_gstring_glyph_string): Adjust the base line of + the glyph string due to subscript/superscript. (Bug#61290) + +2023-02-05 Eli Zaretskii + + Fix installation of tree-sitter grammar on MS-Windows + + * lisp/treesit.el (treesit--install-language-grammar-1): Fix a + failure on MS-Windows when the old DLL is still being used. + (Bug#61289) + +2023-02-05 Eli Zaretskii + + Update the Emacs FAQ for Emacs 29 + + * doc/misc/efaq.texi (New in Emacs 29, History of Emacs): Add new + section about Emacs 29. + +2023-02-05 Eli Zaretskii + + Fix byte-compilation of *-ts-mode.el files + + * lisp/treesit.el (treesit-font-lock-settings): Move to before + use, to prevent failure in byte-compiling modes which require this + file. (Bug#61282) + +2023-02-04 Yuan Fu + + Make c-ts-mode-set-style's effect local (bug#61245) + + Now c-ts-mode-set-style's effect is local, and there is a new function + c-ts-mode-set-global-style that changes the global setting. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--indent-style-setter): Use c-ts-mode-set-style. + (c-ts-mode-indent-style) + (c-ts-mode--prompt-for-style): Minor change in docstring. + (c-ts-mode-set-global-style): New function (from c-ts-mode-set-style). + (c-ts-mode-set-local-style): Remove function (became c-ts-mode-set-style). + (c-ts-mode-set-style): Renamed from c-ts-mode-set-local-style. + * test/lisp/progmodes/c-ts-mode-resources/indent-bsd.erts: + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: Use + c-ts-mode-set-style. + +2023-02-04 Dmitry Gutov + + c-ts-mode: Highlight name in parameter declarations + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): + Uncomment parameter declaration highlighting (bug#61275). + (c-ts-mode--fontify-declarator): Check that identifier was found. + Some declarations can miss identifier name. + +2023-02-04 Davide Masserut + + Fix switch statement indentation for go-ts-mode (bug#61238) + + * lisp/progmodes/go-ts-mode.el (go-ts-mode--indent-rules): Add + indentation for type switch and select case blocks + * test/lisp/progmodes/go-ts-mode-resources/indent.erts: New .erts file + to test indentation of Go constructs and prevent regression of bug + fixes. + * test/lisp/progmodes/go-ts-mode-tests.el: New file with go-ts-mode + tests. + +2023-02-04 Eli Zaretskii + + Fix bidi reordering of sequence of whitespace characters before a TAB + + * src/bidi.c (bidi_level_of_next_char): Test the current level + only for characters whose original type is BN. (Bug#61269) + +2023-02-04 Theodor Thornhill + + Add tests for compilation support for TypeScript (bug#61104) + + * test/lisp/progmodes/compile-tests.el + (compile-tests--test-regexps-data): Add new test-cases. + (compile-test-error-regexps): Increase expected errors + +2023-02-04 Jostein Kjønigsen + + Add support for TypeScript compilation to compile.el (bug#61104) + + * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): + Add regexps. + +2023-02-04 Eli Zaretskii + + Don't clobber match data in 'y-or-n-p' + + * lisp/subr.el (y-or-n-p): Avoid clobbering caller's match data. + (Bug#61091) + +2023-02-03 Dmitry Gutov + + Refine the previous change + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--s-p-query): Fix a typo. + (ruby-ts--syntax-propertize): Use pcase-exhaustive to avoid typos. + Put the last s-t property after heredoc's end (apparently + parse-partial-sexp likes that more). Move first s-t property on + percent literals to the very beginning (to be refined later). + Differentiate the %r{} literals from /.../ ones -- tree-sitter + parses them exactly the same. + +2023-02-03 Dmitry Gutov + + Add syntax-propertize-function to ruby-ts-mode + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--s-p-query): + New variable. + (ruby-ts--syntax-propertize): New function. + (ruby-ts--parser-after-change): New function. + (ruby-ts-mode): Use both of them. + +2023-02-03 Eli Zaretskii + + Improve documentation of 'header-line-indent-mode' + + * doc/lispref/modes.texi (Header Lines): Rewrite the documentation + of 'header-line-indent-mode' and its two variables. Fix the + example. + * doc/lispref/display.texi (Pixel Specification): More accurate + description of what happens with :align-to in header-lines. + Improve indexing. (Bug#61239) + + * src/buffer.c (syms_of_buffer) : + * lisp/display-line-numbers.el (header-line-indent) + (header-line-indent-width, header-line-indent-mode): Doc fixes. + + * etc/NEWS: Enhance the announcement of 'header-line-indent-mode'. + +2023-02-03 F. Jason Park + + Don't casemap erc-sasl-user when set to :nick + + * lisp/erc/erc-sasl.el (erc-sasl-user): Fix doc string. + (erc-sasl--get-user): Don't apply casemapping when the option + `erc-sasl-user' is set to `:nick'. While many servers and + auth-services providers perform case-folding when comparing SASL + usernames, only some recognize RFC1459 mappings, which ERC previously + applied blindly. Instead, ERC now behaves like other clients in + leaving such preparation in the hands of the server. This bug was + introduced with changes new to ERC 5.5 and Emacs 29 (bug#29108). + +2023-02-03 Robert Pluim + + Improve keymap-global-set and keymap-local-set interactive use fix + + * lisp/keymap.el (keymap-global-set, keymap-local-set): Add optional + `interactive' arg and use it to decide when to convert the key + specification to a string. Add `advertised-calling-convention' + declarations. (Bug#61149) + +2023-02-02 Yuan Fu + + Make c-ts-mode indent tests side-effect-free + + Running indent tests changes the global value of + c-ts-mode-indent-style. That's not good. This change fixes that. + + I also refactored the indent style functions a bit. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--prompt-for-style): New function. + (c-ts-mode-set-local-style): New function. + (c-ts-mode-set-style): Use c-ts-mode--prompt-for-style. Use + derived-mode-p when testing for major mode. Remove check of current + buffer's major mode since it doesn't matter. + + * test/lisp/progmodes/c-ts-mode-resources/indent-bsd.erts: + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: Use + c-ts-mode-set-local-style to set the indent style locally. + +2023-02-02 Yuan Fu + + Call treesit_record_change in insert_from_gap_1 + + Before this change, insert_from_gap calls treesit_record_change but + insert_from_gap_1 doesn't. However, insert_from_gap_1 is a public + function and is called in many other places outside of insdel.c. This + could lead to tree-sitter's parse tree becoming out-of-sync with the + buffer content. + + This change might fix bug#60650. + + * src/insdel.c (insert_from_gap_1): Call treesit_record_change. + (insert_from_gap): Remove call to treesit_record_change. + + * admin/notes/tree-sitter/treesit_record_change: New file. + +2023-02-02 Yuan Fu + + Use c-ts-common-statement-offset for closing brackets too + + Merge c-ts-mode--close-bracket-offset into + c-ts-common-statement-offset. + + * lisp/progmodes/c-ts-common.el: + (c-ts-common-statement-offset): Handle closing brackets too. + (c-ts-mode--close-bracket-offset): Remove function. + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Use + c-ts-common-statement-offset for closing brackets. + +2023-02-02 Eli Zaretskii + + Minor improvements in sqlite.c + + * src/sqlite.c (Fsqlite_next): Doc fix. Return nil if SQLITE_DONE + was once seen for this statement. (Bug#61151) + (row_to_value): Cons the value in reverse, to avoid the Fnreverse + call. Patch by Helmut Eller . + (Bug#61165) + +2023-02-02 Dmitry Gutov + + (treesit_predicate_match): Match node text against regexp without consing + + * src/treesit.c (treesit_predicate_match): Match node text against + regexp without creating a new string object (bug#60953). + + * src/search.c (search_buffer): Make not static. + Delete declaration near the beginning of the file. + + * src/lisp.h: Declare it here. + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--builtin-method-p): + Remove function. + (ruby-ts--font-lock-settings): Use the regexp with :match directly. + +2023-02-02 Eli Zaretskii + + Improve documentation of gdb-mi's dedicated windows + + * doc/emacs/building.texi (Other GDB Buffers): Describe the I/O + buffer and commands to show individual specialized windows. + Improve indexing. + +2023-02-02 Kévin Le Gouguec + + Avoid spurious pause in kill-ring-save (Bug#60841) + + 'indicate-copied-region' checks whether the region is "highlighted" + and if not, briefly moves point to mark to give a visual cue of the + extent of text that was saved to the kill ring. + + The region is considered "highlighted" if (a) it is active and (b) its + face specifies a :background. That latter condition does not account + for the multiple ways in which the face can make the region "visually + distinct" from the default face, so switch to the more extensive + predicate face-differs-from-default-p. + + The patch also fixes a couple of issues with the predicate's + implementation, and introduces a new user option in case anyone + happened to enjoy unconditional blinking. + + * lisp/faces.el (face-differs-from-default-p): Filter out :extend; add + rationale for the attributes we ignore. + * lisp/simple.el (copy-region-blink-predicate): Add option to let + users explicitly opt into or out of blinking point and mark. + (region-indistinguishable-p): New function to detect + "if there is currently no active region highlighting", leveraging + face-differs-from-default-p. + (indicate-copied-region): Use it. + * src/xfaces.c (merge_face_ref): Allow :stipple to be nil, since it is + a documented valid value for that attribute. + * etc/NEWS: Announce user option. + +2023-02-02 Eli Zaretskii + + Change the default of 'treesit-defun-tactic' for 'c-ts-mode' + + * lisp/progmodes/c-ts-mode.el (c-ts-mode): Set + 'treesit-defun-tactic' as appropriate for C. (Bug#61208) + +2023-02-02 Eli Zaretskii (tiny change) + + Fix docstring fontification of CL's 'defstruct' + + * lisp/emacs-lisp/lisp-mode.el (defstruct): Set 'doc-string' + property. Patch by Nicolas Martyanoff . + +2023-02-02 Eli Zaretskii + + Teach 'hs-minor-mode' about tree-sitter based modes + + * lisp/progmodes/hideshow.el (hs-special-modes-alist): Teach + 'hs-minor-mode' about tree-sitter based modes. (Bug#61232) + +2023-02-02 Eli Zaretskii + + Improve documentation of 'repeat-mode' and related variables + + * lisp/bindings.el (next-error-repeat-map) + (page-navigation-repeat-map, undo-repeat-map): + * lisp/tab-bar.el (tab-bar-switch-repeat-map) + (tab-bar-move-repeat-map): + * lisp/window.el (other-window-repeat-map) + (resize-window-repeat-map): Mention repeatable commands in the doc + strings. + * lisp/repeat.el (repeat-exit-timeout, repeat-check-key) + (repeat-echo-function, repeat-mode, repeat-check-key) + (repeat-check-map, repeat-echo-message-string) + (repeat-echo-message, repeat-echo-mode-line) + (describe-repeat-maps): Improve wording of doc strings. + (describe-repeat-maps): Improve wording of the heading line. + (Bug#61183) + + * doc/emacs/basic.texi (Repeating): Clarify and improve wording of + 'repeat-mode' documentation. + +2023-02-01 Nicolas Martyanoff + + (eshell--complete-commands-list): Fix regression in fix to bug#48995 + + Copyright-Paperwork-Exempt: Yes + + * lisp/eshell/em-cmpl.el (eshell--complete-commands-list): + Fix misuse of `completion-table-dynamic` when completing a file name. + +2023-02-01 Juri Linkov + + * doc/emacs/basic.texi (Repeating): Mention describe-repeat-maps (bug#61183). + + * lisp/repeat.el (describe-repeat-maps): Add more explanation to + the docstring. Suggested by Robert Pluim . + +2023-02-01 Eli Zaretskii + + Unbreak the MS-Windows build + + * src/treesit.c (ts_query_pattern_count) [WINDOWSNT]: Load from + the library and define as macro. + +2023-01-31 Dmitry Gutov + + (Ftreesit_query_capture): Cache list of predicates for given pattern index + + * src/treesit.c (Ftreesit_query_capture): + Cache list of predicates for given pattern index (bug#60953). + +2023-01-31 Robert Pluim + + * lisp/keymap.el (keymap-global-unset): Correct prompt + +2023-01-31 Eli Zaretskii + + Fix cursor-in-echo-area on TTY frames + + * src/dispnew.c (update_frame_1): Fix off-by-one error when + positioning the cursor in the echo-area. (Bug#61184) + +2023-01-30 Jonas Bernoulli + + Update to Transient v0.3.7-196-gb91f509 + +2023-01-30 Alan Mackenzie + + CC Mode: Fix a coding bug in c-make-keywords-re. This should fix bug #61135 + + * lisp/progmodes/cc-defs.el (c-make-keywords-re): Generate "\>" components in + result regexp when argument ADORN is `appendable'. This fully fixes a bug + which was half-fixed on 2019-01-22. + +2023-01-30 Juri Linkov + + * lisp/isearch.el (isearch-emoji-by-name): Disable derived emoji (bug#60740). + + Let-bind emoji--derived to nil to avoid the subsequent selection + of derived emoji that fails in transient.el. + +2023-01-30 Eli Zaretskii + + Fix keymap inheritance in descendants of 'c-ts-base-mode' + + * lisp/progmodes/c-ts-mode.el (c-ts-base-mode-map): Rename from + 'c-ts-mode-map'. + (c-ts-base-mode): Adjust accordingly. (Bug#60983) + +2023-01-30 Robert Pluim + + Fix interactive use of `keymap-local-set' and `keymap-global-set' + + * lisp/keymap.el (keymap-global-set, keymap-local-set): Convert the + read key sequence to a string when called interactively. Based on a + patch from Stephen Berman . (Bug#61149) + +2023-01-30 Michael Albinus + + Fix password prompt in Tramp (do not merge) + + * lisp/net/tramp.el (tramp-password-prompt-regexp): + Allow alternative trailing colons. (Bug#61168) + +2023-01-29 Kyle Meyer + + Update to Org 9.6.1-23-gc45a05 + +2023-01-29 Eli Zaretskii + + Document tree-sitter features in the user manual + + * lisp/progmodes/c-ts-mode.el (c-ts-mode-map): Bind "C-c .", for + consistency with CC mode. + * lisp/treesit.el (treesit-font-lock-level): Doc fix. + + * doc/emacs/programs.texi (C Indent, Custom C Indent): Document + the indentation features of 'c-ts-mode'. + (Moving by Defuns): Document 'treesit-defun-tactic'. + * doc/emacs/files.texi (Visiting): Document + 'treesit-max-buffer-size'. + * doc/emacs/display.texi (Traditional Font Lock) + (Parser-based Font Lock): New subsections. + * doc/emacs/emacs.texi (Top): Update top-level menu. + +2023-01-29 Randy Taylor + + Fix dockerfile-ts-mode line continuation indentation (bug#61131) + + Without this rule, line continuations are only indented after entering + the contents for the line and hitting TAB or RET. + + For example: + ``` + EXPOSE 1 \ + ``` + + After hitting RET to go to the next line, point would end up at BOL + instead of lining up with the previous entry, like so: + ``` + EXPOSE 1 \ + 2 + ``` + + The new rule will indent it as so: + ``` + EXPOSE 1 \ + 2 + ``` + + * lisp/progmodes/dockerfile-ts-mode.el: + (dockerfile-ts-mode--indent-rules): New rule. + (dockerfile-ts-mode--line-continuation-p) + (dockerfile-ts-mode--line-continuation-anchor): New functions. + +2023-01-29 Yuan Fu + + Use treesit-subtree-stat to determine treesit--font-lock-fast-mode + + * lisp/treesit.el: + (treesit--children-covering-range-recurse): Return nil if LIMIT is + exceeded. + (treesit--font-lock-fast-mode): Change to a ternary value. + (treesit-font-lock-fontify-region): Enable fast mode based on the + result of treesit-subtree-stat. + +2023-01-29 Yuan Fu + + Add treesit-subtree-stat + + * src/treesit.c (Ftreesit_subtree_stat): New function. + * lisp/treesit.el (treesit): Add to shortdoc. + +2023-01-29 Yuan Fu + + Move c-ts-mode--statement-offset to c-ts-common.el + + Now it can be used by other C-like languages. + + * lisp/progmodes/c-ts-common.el (c-ts-common-indent-offset): + (c-ts-common-indent-block-type-regexp): + (c-ts-common-indent-bracketless-type-regexp): New variables. + (c-ts-common-statement-offset): + (c-ts-mode--fix-bracketless-indent): + (c-ts-mode--close-bracket-offset): New functions. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Change + c-ts-mode--statement-offset to c-ts-common-statement-offset. + The (parent-is "if_statement") rules are now handled by (node-is + "compound_statement"). + + (c-ts-mode--statement-offset-post-processr): + (c-ts-mode--statement-offset): + (c-ts-mode--fix-bracketless-indent): Move to c-ts-common.el. + + (c-ts-base-mode): Setup c-ts-common stuff. + + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: Make the test + more challenging. + +2023-01-29 Yuan Fu + + Fix <> syntax in rust-ts-mode + + Similar to bug#60351, the angle brackets in rust-ts-mode are not + recognized as pairs when they should be. This change copies the + function used by c++-ts-mode and adapts it to rust-ts-mode. + + * lisp/progmodes/rust-ts-mode.el: + (rust-ts-mode--syntax-propertize): New function. + (rust-ts-mode): Set up syntax-propertize-function. + +2023-01-29 Eli Zaretskii + + Fix spurious errors on Windows when deleting temporary *.eln files + + * lisp/emacs-lisp/comp.el (comp--native-compile): On MS-Windows, + ignore errors when deleting a temporary .eln file. (Bug#60996) + +2023-01-28 Theodor Thornhill + + Fix java class member without access modifier (bug#61115) + + This + + ``` + public class T { + @Autowired + String a; + } + ``` + + Should be indented as: + + ``` + public class T { + @Autowired + String a; + } + ```` + + * lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Add new + rule to match edge case of field_declaration indentation. + +2023-01-28 Theodor Thornhill + + Make treesit-font-lock-level a defcustom + + * lisp/treesit.el (treesit--font-lock-level-setter): Setter for the + new defcustom. + (treesit-font-lock-level): Turn it into a defcustom. + +2023-01-28 Theodor Thornhill + + Add c-ts-mode-set-style and :set for c-ts-mode-indent-style + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-style-setter): New + setter for the indent style defcustom. + (c-ts-mode-indent-style): Don't quote the values and refer to the + setter. + (c-ts-mode-set-style): New command to interactively set the indent + style. + (c-ts-mode--get-indent-style): New function renamed from + 'c-ts-mode--set-indent-style'. + +2023-01-28 Juri Linkov + + Minor documentation improvements for outline-minor-mode (bug#61062) + + * doc/emacs/text.texi (Outline Minor Mode, Outline Minor Mode): + Add pxrefs to "Icons" and "Outline Visibility". + + * etc/NEWS: Mention outline-minor-mode for two modes. + +2023-01-28 Brian Leung + + python.el: Use correct regexp when enabling python-ts-mode + + * lisp/progmodes/python.el: Use "python[0-9.]*" regexp for + 'interpreter-mode-alist', and not 'auto-mode-alist'. (Bug#61090) + +2023-01-27 Dmitry Gutov + + Make project-current not error out inside non-existent dirs + + * lisp/progmodes/project.el (project-try-vc): + Use condition-case to catch 'file-missing' (bug#61107). + + * test/lisp/progmodes/project-tests.el + (project-vc-nonexistent-directory-no-error): New test. + +2023-01-27 Eli Zaretskii + + Improve documentation of 'shell-command-dont-erase-buffer' + + * doc/emacs/misc.texi (Single Shell): + * lisp/simple.el (shell-command, shell-command-on-region): + Document that non-nil value of 'shell-command-dont-erase-buffer' + affects what is displayed in the echo area after the command. + (Bug#61100) + +2023-01-27 Jostein Kjønigsen + + Fix errors in fontification of JavaScript import-statements (bug#61083) + + Currently js-ts-mode handles imports with aliases incorrectly. To be + consistent with how we otherwise do things, we should only highlight + the variable which is new and/or introduced, in this case "someAlias". + + Attached is a patch which fontifies import-declarations somewhat more + correctly. + + The following cases have been tested and all fontify properly: + + import gnu from "fsf"; // highlights gnu + import { gnu2 } from "fsf2"; // highlights gnu2 + import { gnu as gnu3 } from "fsf3"; // highlights gnu3 + import * as gnu4 from "fsf4"; // highlights gnu4 + + * lisp/progmodes/js.el (js--treesit-font-lock-settings): Add new + import_clause rules that adhere to the comment above. + +2023-01-27 Jostein Kjønigsen + + Fix fontification TypeScript of import-statements (bug#61081) + + Currently typescript-ts-mode and tsx-ts-mode handles imports with + aliases incorrectly. + + Consider the following case: + + import { someFunc as someAlias } from "module"; + + In this case the entire import ("someFunc as someAlias") will be + highlighted as a variable name. "as" is also highlighted as a + variable, rather than a reserved keyword. + + To be consistent with how we otherwise do things, we should only + highlight the variable which is new and/or introduced, in this case + "someAlias". + + Attached is a patch which fontifies import-declarations somewhat more + correctly. + + The following cases have been tested and all fontify properly: + + import gnu from "fsf"; // highlights gnu + import { gnu2 } from "fsf2"; // highlights gnu2 + import { gnu as gnu3 } from "fsf3"; // highlights gnu3 + import * as gnu4 from "fsf4"; // highlights gnu4 + + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--font-lock-settings): Tweak import_clause rules to + adhere to the comment above. + +2023-01-26 Basil L. Contovounesios + + Work around package.el transitive dependency bug + + Eglot already depends transitively on Xref 1.4.0 via Project, + but package.el doesn't pick up on this in Emacs 28 + (which has Xref 1.3.0). + + * lisp/progmodes/eglot.el (Version): Bump to 1.11. + (Package-Requires): Explicitly require Xref 1.4.0, which is + the version already required by Project, for the benefit of + Emacs 28 (bug#61048). + +2023-01-26 Eli Zaretskii + + Fix xt-mouse on terminals that report UTF-8 encoded coordinates + + * lisp/xt-mouse.el (xterm-mouse--read-coordinate): Fix conversion + of mouse coordinates in rxvt-unicode. Patches by Vladimir + Panteleev and Jared Finder . + (Bug#61022) + +2023-01-26 Randy Taylor + + Fix go-ts-mode indentation and set indent offset to 8 (Bug#61006) + + * lisp/progmodes/go-ts-mode.el (go-ts-mode-indent-offset): Change + default value to 8. + (go-ts-mode--indent-rules): Add indentation for parameters and + interfaces. + +2023-01-26 Eli Zaretskii + + Fix doc strings of window-splitting commands + + * lisp/window.el (split-window-below, split-window-right): Doc + fixes. (Bug#60886) + +2023-01-26 Yuan Fu + + Fix indentation for c-ts-mode (bug#61026) + + Fix indentation for things like + + while (true) + if (true) + { + puts ("Hello"); + } + + Note that the outer while loop omits brackets. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--statement-offset-post-processr): New variable. + (c-ts-mode--statement-offset): Use the new function. + (c-ts-mode--fix-bracketless-indent): New function. + (c-ts-base-mode): Use the new function. + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: New tests. + +2023-01-26 Yuan Fu + + Fix call to treesit_record_change in insdel.c + + The start position of the change shouldn't be PT_BYTE, IIUC PT_BYTE is + actually the end position. + + * src/insdel.c (insert_from_buffer): Move to here. + (insert_from_buffer_1): Remove call to treesit_record_change. + +2023-01-26 Randy Taylor + + Add support for building tree-sitter modules with MinGW + + * admin/notes/tree-sitter/build-module/build.sh: Add support for + building tree-sitter modules with MinGW. + +2023-01-25 Michael Albinus + + * lisp/net/tramp.el (tramp-wrong-passwd-regexp): Fix regexp. + +2023-01-25 Juri Linkov + + * doc/emacs/text.texi (Outline Minor Mode): New node split from "Outline Mode" + + (Outline Mode): Move all outline-minor-mode related information to the + new node "Outline Minor Mode" (bug#61062). + +2023-01-25 Dmitry Gutov + + ruby-ts-mode: Don't reindent when "class" or "def" is under "ERROR" + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules): + Don't reindent when "class" or "def" is under "ERROR" (bug#61017). + +2023-01-25 Dmitry Gutov + + treesit-install-language-grammar: Provide default repo url + + * lisp/treesit.el (treesit--check-repo-url): New function. + (treesit--install-language-grammar-build-recipe): Use it (bug#61051). + +2023-01-25 Basil L. Contovounesios + + Fix Dired face for directory symlinks + + * lisp/dired.el (dired-font-lock-keywords): Fontify directory + symlinks with the value of dired-directory-face rather than its name + as a (nonexistent) face (bug#60977). + +2023-01-25 Basil L. Contovounesios + + Pacify --without-x unused function warning + + * src/xfaces.c (font_maybe_unset_attribute): Move definition... + [HAVE_WINDOW_SYSTEM] (font_maybe_unset_attribute): ...to here, since + the function is used only when we HAVE_WINDOW_SYSTEM (bug#61049). + +2023-01-25 Robert Pluim + + Announce outline.el keymaps + + * etc/NEWS: Announce new keymaps. + +2023-01-25 Jostein Kjønigsen + + Fix fontification of function-valued variables (bug#61053) + + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--font-lock-settings): Remove overrides and reorder + the variable_declarator rule. + +2023-01-25 Theodor Thornhill + + Add new java indent rules + + * lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Check + for enum_body_declarations and switch_label. + +2023-01-24 Juri Linkov + + Handle relative file names in vc-resynch-window and vc-resynch-buffer + + * lisp/vc/vc-dispatcher.el (vc-resynch-window, vc-resynch-buffer): + While comparing with `buffer-file-name' if `file' is not absolute + use `expand-file-name' in `vc-root-dir'. This fixes the case of + refreshing the buffers after typing `C-x v = C-x v u' (bug#60897). + +2023-01-24 Robert Pluim + + Use named keymaps for outline buttons + + https://lists.gnu.org/archive/html/emacs-devel/2023-01/msg00334.html + + * lisp/outline.el (outline-button-icon-map) + (outline-overlay-button-map, outline-inserted-button-map): + Keymaps refactored from outline--create-button-icons and + outline--insert-button. + (outline--create-button-icons, outline--insert-button): Move + keymaps to separate variables. + +2023-01-24 Juri Linkov + + * lisp/vc/vc-bzr.el (vc-bzr--pushpull): Return buffer's process. + + * lisp/vc/vc-git.el (vc-git--pushpull): Add comment. + + * lisp/vc/vc.el (vc-pull-and-push): Expand docstring about + prerequisites for backend to support this command (bug#60569). + +2023-01-23 Alan Mackenzie + + CC Mode: Change the default value of objc-font-lock-extra-types to nil + + This fixes bug #59234, in which random identifiers in a .m file were getting + fontified as types. + + * lisp/progmodes/cc-vars.el (objc-font-lock-extra-types): Change the default + value to nil. + + * etc/NEWS: Mention the change in default value of objc-font-lock-extra-types, + and how to get the old behavior back. + +2023-01-23 Jim Porter + + Don't try to make a pipe process for remote processes in Eshell + + Tramp currently isn't able to handle this, so the result will just + produce an error (bug#61024). + + * lisp/eshell/esh-proc.el (eshell-gather-process-output): Check for a + remote 'default-directory' before trying to make a pipe process. + + * test/lisp/eshell/esh-proc-tests.el + (esh-var-test/output/remote-redirect): New test. + +2023-01-23 Eli Zaretskii + + * lisp/startup.el (command-line): Fix warning message. (Bug#61014) + +2023-01-23 Juri Linkov + + * lisp/find-dired.el (find-dired): Fix bug where M-p skips first history item. + + Don't apply "skip first duplicate history item" trick when find-args + used as initial input is nil. + +2023-01-22 Kyle Meyer + + Update to Org 9.6.1-16-ge37e9b + +2023-01-22 Dmitry Gutov + + (ruby-ts--predefined-variables): Fix the $` and $' entries + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--predefined-variables): + Fix the $` and $' entries, somehow replaced by curly quote. + + Reported by Mattias Engdegård. + +2023-01-22 Juri Linkov + + * lisp/find-dired.el (find-dired-with-command): Quote find-command-history. + +2023-01-22 Juri Linkov + + Generalize vc-pull-and-push to support more backends (bug#60569) + + * lisp/vc/vc-git.el (vc-git-pull-and-push): Remove and move its logic to + vc-pull-and-push. + + * lisp/vc/vc.el (vc-pull-and-push): Add code from vc-git-pull-and-push. + +2023-01-22 Benjamin Riefenstahl + + Add test suite for sgml-html-meta-auto-coding-function + + * test/lisp/international/mule-tests.el (sgml-html-meta-pre) + (sgml-html-meta-post, sgml-html-meta-run, sgml-html-meta-utf-8) + (sgml-html-meta-windows-hebrew, sgml-html-meta-none) + (sgml-html-meta-unknown-coding, sgml-html-meta-no-pre) + (sgml-html-meta-no-post-less-than-10lines) + (sgml-html-meta-no-post-10lines, sgml-html-meta-utf-8-with-bom): Add. + +2023-01-22 Benjamin Riefenstahl + + Fix decoding HTML files from archives + + * lisp/international/mule.el (sgml-xml-auto-coding-function): Avoid + signaling an error from coding-system-equal when the XML encoding tag + specifies an encoding whose type is 'charset'. (Bug#61005) + + This is the same fix as in #df7ed10e for + sgml-xml-auto-coding-function. + +2023-01-22 Eli Zaretskii + + Avoid crashes in batch Emacs sub-processes on MS-Windows + + * src/w32.c (shutdown_handler): When run in a separate thread, + don't call functions that only the main (a.k.a. "Lisp") thread can + call; instead, arrange for maybe_quit to kill Emacs. + * src/w32fns.c (emacs_abort): Don't show GUI Abort dialogs in + non-interactive sessions. (Bug#60556) + +2023-01-22 Theodor Thornhill + + Tweak BSD style indentation (bug#60984) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Simplify + rules. + * test/lisp/progmodes/c-ts-mode-resources/indent-bsd.erts: New + testfile with bsd style indentation examples. + * test/lisp/progmodes/c-ts-mode-tests.el + (c-ts-mode-test-indentation-bsd): Add a test for the new style. + +2023-01-22 Theodor Thornhill + + Fix typo of exposed symbol name + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Remove + double hyphen. + +2023-01-22 Theodor Thornhill + + Fix typo after move to common lib (bug#61001) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Use correct + preset. + +2023-01-21 Dmitry Gutov + + ruby-ts-mode: Fix two additional cases with ruby-method-call-indent=nil + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules): + Fix two additional cases with ruby-method-call-indent=nil. + + * test/lisp/progmodes/ruby-mode-resources/ruby-method-call-indent.rb: + Add examples. + +2023-01-21 Dmitry Gutov + + ruby-mode.el: Expand some docstrings with examples + + * lisp/progmodes/ruby-mode.el (ruby-align-chained-calls) + (ruby-method-params-indent): Expand docstrings with examples. + +2023-01-21 Po Lu + + Minor fixes for Haiku + + * lisp/frame.el (display-symbol-keys-p): + * lisp/simple.el (normal-erase-is-backspace-setup-frame): Add + support for Haiku. + +2023-01-21 Theodor Thornhill + + Move c-like common utils into own library (bug#60961) + + * lisp/progmodes/c-ts-common.el: New file. + * lisp/progmodes/c-ts-mode.el (treesit-induce-sparse-tree): Remove + unused declaration. + (c-ts-mode--indent-styles): Refer to the new library. + (c-ts-mode--looking-at-star, + c-ts-mode--comment-start-after-first-star, + c-ts-mode--comment-2nd-line-matcher, + c-ts-mode--comment-2nd-line-anchor, c-ts-mode--comment-regexp, + c-ts-mode--fill-paragraph, c-ts-mode--fill-block-comment): Move to + c-ts-common and expose as public. + (c-ts-mode-comment-setup): Move to c-ts-common. + * lisp/progmodes/csharp-mode.el (c-ts-common): Require new library. + (csharp-ts-mode--indent-rules): Refer to the new symbols. + (csharp-ts-mode): Use new function. + * lisp/progmodes/java-ts-mode.el (c-ts-common): Require new library. + (java-ts-mode--indent-rules): Refer to the new symbols. + (java-ts-mode): Use new function. + * lisp/progmodes/js.el (c-ts-common): Require new library. + (js--treesit-indent-rules): Refer to the new symbols. + (js-ts-mode): Use new function. + * lisp/progmodes/rust-ts-mode.el (c-ts-common): Require new library. + (rust-ts-mode--indent-rules): Refer to the new symbols. + (rust-ts-mode): Use new function. + * lisp/progmodes/typescript-ts-mode.el (c-ts-common): Require new + library. + (typescript-ts-mode--indent-rules): Refer to the new symbols. + (typescript-ts-base-mode): Use new function. + +2023-01-21 Michael Albinus + + Fix file-regular-p in Tramp + + * test/lisp/net/tramp-archive-tests.el + (tramp-archive-test18-file-attributes) + (tramp-archive-test21-file-links): + * test/lisp/net/tramp-tests.el (tramp-test18-file-attributes) + (tramp-test21-file-links): Adapt tests. + + * lisp/net/tramp.el (tramp-handle-file-regular-p): Fix symlink + case. (Bug#60943) + +2023-01-21 Theodor Thornhill + + Fix typo in c-ts-mode (bug#60932) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode-indent-block-type-regexp): + enumerator, not enumerator. + +2023-01-20 Mike Kupfer + + MH-E: handle removal of mhparam libdir from nmh 1.8 + + * lisp/mh-e/mh-e.el (mh-variant-nmh-info): If "libdir" doesn't + work, try "libexecdir" (Bug#60952) (SF#491). + +2023-01-20 Theodor Thornhill + + Use point-min to anchor top-level constructs (bug#60602) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): New anchor. + * lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): New + anchor. + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules): New anchor. + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--indent-rules): New anchor. + +2023-01-20 Dmitry Gutov + + * lisp/org/ob-ruby.el: Fix outdated comments. + +2023-01-20 Dmitry Gutov + + (project-try-vc): Add string-start and string-end anchors to marker-re + + * lisp/progmodes/project.el (project-try-vc): + Add string-start and string-end anchors to marker-re (bug#60956). + +2023-01-20 Robert Pluim + + Make `keymap-set-after' work for menus + + It still doesn't work for an AFTER that's a key, though, since + `key-parse' produces vectors, and keymaps contain integers. + + * lisp/keymap.el (keymap-set-after): Only parse AFTER as a key if it's + a string. For consistency, use `key-parse' on the definition if it's + a string, just like `keymap-set'. + * test/src/keymap-tests.el (keymap-tests--command-3): New dummy command. + (keymap-set-after-menus): New test. Check that we can insert a menu + item after a specific entry. + +2023-01-20 Robert Pluim + + Use `key-parse' in `keymap-lookup' + + It's stricter than `kbd', and doesn't try to do anything with key + sequences that look like macros. + + * lisp/keymap.el (keymap-lookup): Use `key-parse' instead of `kbd'. + * test/src/keymap-tests.el (keymap-set-after-menus): Test the + `keymap-set-after' API. + +2023-01-20 Robert Pluim + + Improve `keymap-set-after' documentation + + * doc/lispref/keymaps.texi (Changing Key Bindings): Mention `key-valid-p' + (Modifying Menus): Correct description of KEY arg. + +2023-01-20 Robert Pluim + + Handle after arg correctly in `keymap-set-after' + + * lisp/keymap.el (keymap-set-after): AFTER: t means the same as nil, + so just change it to nil. (Bug#60867) + +2023-01-20 F. Jason Park + + Don't load erc-goodies atop erc.el + + * lisp/erc/erc.el: Commit c2d657e7c4fd9685591f2120007eabf78745919d + "Move ERC's core dependencies to a separate file" ironed out ERC's + interwoven dependencies for the better but didn't cleanly sidestep the + goodies interdependency, specifically with regard to custom options. + This reverts the tiny portion impacting this aspect by once again + requiring `erc-goodies' at the very end of ERC's main library. Special + thanks to Libera.Chat user jrm for reporting this bug. + +2023-01-20 Eli Zaretskii + + Make tree-sitter based modes optional + + * lisp/progmodes/c-ts-mode.el: Update Commentary. Make + 'auto-mode-alist' update conditional on the tree-sitter and + grammar libraries being available. + * lisp/progmodes/cmake-ts-mode.el: + * lisp/progmodes/csharp-mode.el: + * lisp/progmodes/dockerfile-ts-mode.el: + * lisp/progmodes/go-ts-mode.el: + * lisp/progmodes/java-ts-mode.el: + * lisp/progmodes/js.el: + * lisp/progmodes/json-ts-mode.el: + * lisp/progmodes/python.el: + * lisp/progmodes/ruby-ts-mode.el: + * lisp/progmodes/typescript-ts-mode.el: + * lisp/textmodes/css-mode.el: + * lisp/textmodes/toml-ts-mode.el: + * lisp/textmodes/yaml-ts-mode.el: Make 'auto-mode-alist' update + for tree-sitter based modes be conditional on the tree-sitter and + grammar libraries being available. (Bug#60559) + +2023-01-19 Dmitry Gutov + + ruby-ts-mode: Claw back half of the performance drop from last change + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--builtin-method-p): + New function. + (ruby-ts--font-lock-settings): Use it instead of :match. + +2023-01-19 Dmitry Gutov + + (ruby-ts-mode): Rename 'builtin-functions' to 'builtin-function' + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings) + (ruby-ts-mode): Rename 'builtin-functions' to 'builtin-function', + for consistency with similar features. + +2023-01-19 Dmitry Gutov + + ruby-ts-mode: Highlight builtin methods + + * lisp/progmodes/ruby-mode.el (ruby-builtin-methods-with-reqs) + (ruby-builtin-methods-no-reqs): New constants, extracted. + (ruby-font-lock-keywords): Replace values with references. + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--builtin-methods): New + variable. Construct regexp from aforementioned constants' values. + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings): + Use it. + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): + Add new font-lock feature: builtin-functions. + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--predefined-constants) + (ruby-ts--predefined-variables): Unrelated to the rest of the + patch, add string-start and string-end anchors. + +2023-01-19 Yuan Fu + + Fix c-ts-mode indent (bug#60873) + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--statement-offset): Handle the edge case. + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: Add a test. + +2023-01-19 Yuan Fu + + Fix various problems in treesit-explore-mode (bug#60800) + + * lisp/treesit.el: + (treesit--explorer-kill-explorer-buffer): New function. + (treesit-explore-mode): + 1. Move prompt for language earlier, and terminate early if language + not available. + 2. Make sure desktop-save doesn't save the explorer buffer. + 3. Kill the explorer buffer when the source buffer is killed. + +2023-01-19 Michael Heerdegen + + Fix an oversight in advice.el + + This fixes an oversight from 77c3c464a16: "* lisp/emacs-lisp/advice.el + (ad-advised-functions): Make it a plain list" that caused an issue as + reported in Bug#60893. + * lisp/emacs-lisp/advice.el (ad-read-advised-function): Adjust to + handle the new type of elements of `ad-advised-functions'. + +2023-01-19 Dmitry Gutov + + (treesit-simple-indent-presets): Have n-p-gp check for grandparent's presence + + * lisp/treesit.el (treesit-simple-indent-presets): Have n-p-gp + check for grandparent's presence before checking its type. + +2023-01-19 Dmitry Gutov + + ruby-toggle-block: Fix in ruby-ts-mode + + * lisp/progmodes/ruby-mode.el (ruby-toggle-block): Make it work + with ruby-ts-mode. ruby-forward-sexp checks ruby-use-smie. + +2023-01-19 Dmitry Gutov + + (ruby-ts--indent-rules): Indent inside empty parens properly + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules): + Consider the case when there are no arguments inside the call yet. + + * test/lisp/progmodes/ruby-ts-mode-tests.el + (ruby-ts-indent-call-no-args): Add test. + +2023-01-19 Kai Tetzlaff + + Fix bug in 'sieve-manage--append-to-log' + + * lisp/net/sieve-manage.el (sieve-manage--append-to-log): Fix + log buffer creation. (Bug#54154) Do not merge to master. + +2023-01-19 Alan Mackenzie + + CC Mode: Prevent two classes of "type" prematurely entering c-found-types + + This fixes bug #60769. The two classes of "type" are foo and bar in + "foo d(bar () ...)", where the d could be a mistyped C-M-d. + + * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): New local variable + got-arglist. Refactor a sequence of enclosed `if' forms into a `cond' form. + Set got-arglist when needed. In CASE 2, set unsafe-maybe to inhibit foo + being entered into c-found-types. In CASE 19, likewise set unsafe-maybe, to + inhibit bar entering c-found-types. + +2023-01-18 Dmitry Gutov + + ruby-ts-mode: Use font-lock-constant-face for true/false/nil + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings): + Use font-lock-constant-face for true/false/nil. + +2023-01-18 Dmitry Gutov + + (ruby-ts--indent-rules): Add a rule for continuation of a hash pair + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules): + Add a rule for continuation of a hash pair. + + * test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb: Add examples. + +2023-01-18 Dmitry Gutov + + (ruby-ts--parent-call-or-bol): Handle more cases with nested literals + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--parent-call-or-bol): + Handle more cases with nested literals. + + * test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb: Add examples. + +2023-01-18 Dmitry Gutov + + (ruby-ts--statement-container-regexp): Remove "parenthesized_statements" + + * lisp/progmodes/ruby-ts-mode.el + (ruby-ts--statement-container-regexp): Remove + "parenthesized_statements", it's not really a statement container, + not one we'd use for indentation alignment anyway. + + * test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb: Add examples. + +2023-01-18 Dmitry Gutov + + ruby-ts-mode: Handle indent in parenless calls much closer to ruby-mode + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--parent-call-or-bol): + New function. + (ruby-ts--indent-rules): Use it for cases which need special + anchoring logic when inside a parenless method call. + Remove the ad-hoc handling of pair-hash-pair etc indentation, + which was there only for the parenless cases, apparently. + Have "No paren, ruby-parenless-call-arguments-indent is nil" case + align to the statement, if only because ruby-mode does that. + + * test/lisp/progmodes/ruby-ts-mode-tests.el: + Run indent test for ruby-parenless-call-arguments-indent.rb. + +2023-01-18 Juri Linkov + + Fix split-window-below for the case when split-window-keep-point is nil. + + * lisp/window.el (split-window-below): Don't try to move point when + split-window-keep-point is nil and window-to-split is not the selected window + or nil (that defaults to the selected window) because code makes sense + only for the selected window. + (split-window-below, split-window-right): Improve docstrings (bug#60886) + +2023-01-18 Juri Linkov + + Rebind in read-regexp-map ‘M-c’ to ‘M-s c’ compatible with search-map + + Also it's compatible with 'M-s c' (isearch-toggle-case-fold) + used during Isearch. Also makes possible to use the global keybinding + 'M-c' (capitalize-dwim) in the minibuffer. + + * doc/lispref/minibuf.texi (Text from Minibuffer): Rename ‘M-c’ to ‘M-s c’. + + * lisp/replace.el (read-regexp-map): Rebind ‘M-c’ to ‘M-s c’ (bug#60741). + (read-regexp-toggle-case-fold): Rename from read-regexp-toggle-case-folding + to more standard name. + +2023-01-18 Juri Linkov + + * lisp/vc/vc-dir.el: Make keys ‘% m’ and ‘* %’ compatible with Dired + + (vc-dir-mode-map): Replace ‘%’ for vc-dir-mark-by-regexp + with ‘% m’ in regexp-map and ‘* %’ in mark-map (bug#60887). + + * doc/emacs/maintaining.texi (VC Directory Commands): Replace ‘%’ + with ‘% m’ and ‘* %’. Mention vc-dir-mark-registered-files. + +2023-01-18 Jim Porter + + Use proper types for Eshell warnings + + * lisp/eshell/esh-var.el (eshell-get-variable): + * lisp/eshell/em-basic.el (eshell/echo): Don't use ':warning'; that's a + warning level, not a warning type. + +2023-01-18 Eli Zaretskii + + Improve the documentation of 'auto-mode-alist' search + + * doc/emacs/modes.texi (Choosing Modes): Expand the description of + "recursive extension stripping" using 'auto-mode-alist'. + (Bug#60930) + +2023-01-18 Yuan Fu + + Revert "Revert "Add c-or-c++-ts-mode (bug#59613)"" + + This reverts commit d46f7f4edcce14e6cbd8e2d7091dbabbe08defc1. + + Aaaactually, we need this, otherwise we can't use tree-sitter based C + mode for header files. + +2023-01-18 Yuan Fu + + Make it harder to misactivate tree-sitter font-lock fast mode + + This has been brought up in bug#60691 and bug#60223. I proposed a fix + by testing the size of the tree rather than measuring the query time. + But after some thought, I fear that just looking at the size will give + us false-negatives. So I kept the time-based activation, just added a + grace count to reduce false-positives. + + * lisp/treesit.el: + (treesit--font-lock-fast-mode-grace-count): New variable. + (treesit--font-lock-notifier): Only activate fast mode after 5 + offenses. + +2023-01-17 Dmitry Gutov + + ruby-ts-mode: Obey the option ruby-method-call-indent + + * lisp/progmodes/ruby-ts-mode.el + (ruby-ts--method-call-indent-p): New function. + (ruby-ts--indent-rules): Use it. + + * test/lisp/progmodes/ruby-ts-mode-tests.el: + Run indent test for ruby-method-call-indent.rb. + + * test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb: + Add explicit value for ruby-method-call-indent. + +2023-01-17 Dmitry Gutov + + ruby-ts-mode: Obey the option ruby-after-operator-indent + + * lisp/progmodes/ruby-ts-mode.el + (ruby-ts--after-op-indent-p): New function. + (ruby-ts--indent-rules): Use it. + + * test/lisp/progmodes/ruby-ts-mode-tests.el: + Run indent test for ruby-after-operator-indent.rb. + + * test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb: + Make sure indentation vars are at their default values. + +2023-01-17 Dmitry Gutov + + ruby-ts-mode: Fix indent after operator or conditional + + Make it match ruby-mode's indentation behavior. + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--binary-indent-anchor): + New function. + (ruby-ts--indent-rules): Use it instead of a composite matcher. + Add a rule for 'conditional'. + (ruby-ts--assignment-ancestor, ruby-ts--is-in-condition) + (ruby-ts--endless-method): Remove. + + * test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb: + Add examples. + +2023-01-17 Dmitry Gutov + + ruby-ts-mode: Fix/change indentation of a continuation method call + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules): + Fix/change indentation of a continuation method call. + + * test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb: + New examples. + +2023-01-17 Dmitry Gutov + + ruby-ts-mode: Fix indent inside parenthesized_expr and else/end after unless + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules): + Fix indentation for parenthesized_expression and else/end after + 'unless'. + + * test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb: + New examples. + +2023-01-17 Dmitry Gutov + + ruby-ts-mode: Fix the rules for hanging arrays and hashes + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules): + Fix the rules for hanging arrays and hashes (to line up to + parent-bol instead of the opening brace). + + * test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb: + New file with examples. + + * test/lisp/progmodes/ruby-ts-mode-tests.el: Use it here. + +2023-01-17 Jim Porter + + Add more detail about how to invoke Eshell commands + + * doc/misc/eshell.texi (Variables): Move footnote explaining "REPL" + from here... + (Top): ... to its first use here. + (Commands): Move explanation about kernel functions to here. + (Invocation): Describe command form and Lisp form. Fix documentation + about priority of commands in command form. + (Arguments): Add a cross reference to the Invocation node. + +2023-01-17 Alan Mackenzie + + CC Mode: On removal of "typedef", remove pertinent types from c-found-types + + For this purpose, record the type names declared by typedef in a text + property, c-typedef, on the typedef. On any change to that "typedef" or a + type, remove the old identifier(s) from c-found-types. + + This should fix bug #59671. + + * lisp/progmodes/cc-defs.el (c-search-forward-non-nil-char-property): New + macro. + + * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): Move the scope of + identifier-start from the "inner" let form to the outer one. Amend the + return value such that the middle element of the second element is now the + position of the "typedef", not merely non-nil. + + * lisp/progmodes/cc-fonts.el (c-font-lock-declarators): Disregard the LIMIT + parameter when fontifying the declarators of a typedef construct. Also in + this case, set the c-typedef text property on the "typedef" to the list of + declared types. Amend this list when these declared types change. + (c-font-lock-single-decl): Massage the `types' argument given to + c-font-lock-declarators. + (c-font-lock-cut-off-declarators): Amend to work when the starting point of + the fontification is inside a brace block. + + * lisp/progmodes/cc-mode.el (c-before-change-de-typedef) + (c-after-change-de-typedef): New functions. + (c-update-new-id): Replace the erroneous c-end-of-current-token with a clause + containing c-forward-token-2. + (c-before-change): Call c-before-change-de-typedef. + (c-after-change): Call c-after-change-de-typedef. + +2023-01-17 F. Jason Park + + Don't preserve non-module minor modes in erc-open + + * lisp/erc/erc-common.el (define-erc-module): Add symbol property + `erc-module' to minor modes defined as part of a module. + * lisp/erc/erc.el (erc--merge-local-modes): Be more conservative when + persisting local minor-mode state across ERC sessions. User and + third-party modes that were not defined via `define-erc-modules' + should be left alone. + (erc-open): Run major-mode hooks and enable minor modes after prompt + has been set up. This ensures that module-setup code can access a + fully initialized `erc-input-marker'. + * test/lisp/erc/erc-tests.el (erc--merge-local-modes): Add mocks for + `erc-module' symbol property and a test case covering some foreign ERC + mode. + (define-erc-module--global, define-erc-module--local): Expect the + `erc-module' symbol property to be defined for mode symbols and + aliases. (Bug#60784.) + +2023-01-17 F. Jason Park + + Use correct buffer for local-module vars in erc-open + + * lisp/erc/erc.el (erc--target-priors): New internal variable to do + for target buffers what `erc--server-reconnecting' does for server + buffers. + (erc-open): Source the state of a local module's mode variable from + its actual buffer rather than its server buffer. Additionally, make + all local variables from a prior session available to + module-activation functions and `erc-mode' hooks, even when + `erc-reuse-buffers' is nil. This bug arrived with the introduction of + "local-modules" (bug#57955). + + * test/lisp/erc/erc-scenarios-base-local-modules.el + (erc-scenarios-base-local-modules--toggle-helpers): Remove useless + `with-current-buffer'. + (erc-scenarios-base-local-modules--local-var, erc--phony-sblm--enable, + erc--phony-sblm--disable, erc--phony-sblm--mode): Add fake local + module and data var for test scenario. + (erc-scenarios-base-local-modules--var-persistence) Add slightly hacky + test case with promise to improve later when splitting the file. + +2023-01-17 Eli Zaretskii + + Fix display of warnings on w32 console + + * lisp/emacs-lisp/warnings.el (warnings-suppress): Use alternative + symbol for TTY frames on MS-Windows. + +2023-01-17 Basil L. Contovounesios + + Fix buffer-list-update-hook for indirect buffers + + Fmake_indirect_buffer can be told whether to run buffer hooks since + bug#49160, but until now it ran buffer-list-update-hook irrespective + of this. + + * src/buffer.c (Fmake_indirect_buffer): Don't run + buffer-list-update-hook when called with a non-nil + INHIBIT-BUFFER-HOOKS argument. + (run_buffer_list_update_hook): Don't special-case NULL argument, as + no such callers remain. + + * test/src/buffer-tests.el + (buffer-tests-inhibit-buffer-hooks-indirect): Test whether indirect + buffer hooks are run regardless of whether base buffer hooks are + inhibited. Check that all three buffer hooks, not just + kill-buffer-query-functions, are inhibited. + +2023-01-17 Yuan Fu + + Fix treesit-node-first-child-for-pos (bug#60127) + + The problem is due to a bug in ts_node_first_child_for_pos, but + tree-sitter is moving pretty slowly right now so I reimplemented a + correct version of it in treesit.c. + + * src/treesit.c (treesit_cursor_first_child_for_byte): New function. + (Ftreesit_node_first_child_for_pos): Use the new function. + +2023-01-16 Mattias Engdegård + + Fix hfy-exclude-file-rules (bug#60562) + + * lisp/htmlfontify.el (hfy-exclude-file-rules): + Fix broken defcustom type; no longer fails test-custom-opts. + Fix regexps not to use newline-sensitive patterns like `.` and `$` + which do not make sense when matching file names. + Better doc string. + * lisp/htmlfontify.el (hfy-list-files): Simplify regexp argument. + +2023-01-16 Alan Mackenzie + + CC Mode: Prevent ids in temporary "declarators" getting into c-found-types + + This should fix bug #60765. In the scenario type an identifier in front of + foo (bar, baz), as when started a new statement. This temporarily makes the + function call a declarator, and bar and baz types. Don't enter bar and baz + into c-found-types. + + * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1) (CASE 6): When a + 'maybe type triggers this case, set `unsafe-maybe' to non-nil. + +2023-01-16 João Távora + + Fix M-x eglot prompt when connection already exists (bug#60557) + + Before this change, if a current connection existed at the time of M-x + eglot, user would be first asked to enter into M-x eglot's interactive + spec details about new command line arguments, and only afterwards be + prompted about what to do with the current connection (which could be + to reconnect to it using the same arguments, or tear it down and make + a new one). + + This is very confusing, as users may not be fully aware of the + distinction between "reconnect" vs "disconnect-and-connect". They + might not know if any new command line arguments provided are taking + effect or not. + + This change simplifies this and removes the option to "reconnect + instead" from M-x eglot (users can do that at any time via M-x + eglot-reconnect). It also ensures that users are informed about a + current connection before asking to enter new command line arguments + and not the other way round. + + * lisp/progmodes/eglot.el (eglot): Rework. + +2023-01-16 Yuan Fu + + Fix tree-sitter indent preset function (bug#60270) + + * lisp/treesit.el (treesit-simple-indent-presets): Fix + prev-adaptive-prefix so it doesn't return nil if the previous line has + no prefix. + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test. + +2023-01-15 Dmitry Gutov + + ruby-ts-mode: Support the option ruby-block-indent + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--block-indent-anchor): + New function. + (ruby-ts--indent-rules): Use it. + + * test/lisp/progmodes/ruby-ts-mode-tests.el: + Run indent test for ruby-block-indent.rb. + +2023-01-15 Theodor Thornhill + + Improve indentation for jsx + + * lisp/progmodes/js.el (js--treesit-indent-rules): Use more parent + anchors and fix typo with wrong indent offset variable. + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--indent-rules): Use more parent anchors. + +2023-01-15 Sean Whitton + + * lisp/subr.el (while-let): Fix docs if-let->if-let* (bug#60758). + +2023-01-15 Sean Whitton + + Revert "* lisp/subr.el (while-let): Use if-let, not if-let* (bug#60758)." + + This reverts commit 083badc9c122a802080552e7771e78ee47c01e3c. + +2023-01-15 Stefan Kangas + + Bump use-package version for Emacs 29.1 + + * lisp/use-package/use-package.el: Bump version to 2.4.5. + +2023-01-15 Eli Zaretskii + + Improve error message from sqlite-mode.el + + * lisp/sqlite-mode.el (sqlite-mode-open-file): Add error + checking. (Bug#60490) + +2023-01-15 Yuan Fu + + Fix c-ts-mode block comment indentation (bug#60270) + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--comment-2nd-line-anchor): Handle another edge case. + +2023-01-15 Yuan Fu + + Fix c-ts-mode label indent + + Fix indentation of the statement right under a label. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Fix. + (c-ts-mode--top-level-label-matcher): Fix. + +2023-01-15 Yuan Fu + + Fix statement indent for c-ts-mode (bug#59686) (bug#60280) + + Instead of trying to figure out the correct anchor, now we just count + the layers of {} blocks between the node and the root node. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--indent-styles): Use new offset functions + c-ts-mode--close-bracket-offset and c-ts-mode--statement-offset. + (c-ts-mode--bracket-children-anchor): Remove function. + (c-ts-mode--top-level-label-matcher): New variable. + (c-ts-mode--statement-offset) + (c-ts-mode--close-bracket-offset): New offset functions. + +2023-01-15 Yuan Fu + + Allow offset in tree-sitter indent rules to be functions + + This is needed for fixing C indentation. See next comment. + + * doc/lispref/modes.texi (Parser-based Indentation): Update manual. + * lisp/treesit.el (treesit-simple-indent): Try evaluating OFFSET as a + function if it's not integer nor variable. + +2023-01-15 Yuan Fu + + Support filling line comments in c-ts-mode + + Now we handle line comments separately because for line comments, each + line is an individual node, unlike block comments, where the whole + block comment is a single node. fill-comment-paragraph turns out to + do the job perfectly fine. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--fill-paragraph): Extract out most parts into + c-ts-mode--fill-block-comment. + (c-ts-mode--fill-block-comment): New extracted function. + +2023-01-15 Eli Zaretskii + + Fix expansion of wildcards in ls-lisp.el + + * lisp/ls-lisp.el (ls-lisp--dired): Fix error message text. + Handle the case of a wildcard specifying directories. (Bug#60819) + +2023-01-15 Eli Zaretskii + + Fix messages displayed when diary is shown + + * lisp/calendar/diary-lib.el (diary-list-entries): Display the + "...done" message only if there's no important message in the + echo-area. (Bug#60795) + +2023-01-14 Theodor Thornhill + + Add constructor_declaration as java-ts-mode defun + + * lisp/progmodes/java-ts-mode.el (java-ts-mode): Extend + treesit-defun-type-regexp. + +2023-01-14 Gregory Heytings + + Further improvement for non-string values in pcomplete + + * lisp/pcomplete.el (pcomplete-arg): Use the string representation + of the argument value instead of the text representation of the + argument. Return the value, even when it is not a string, when + index is 'last'. Fixes bug#60464. + +2023-01-14 Juri Linkov + + Fix the case in first-completion revealed by minibuffer-tests + + * lisp/simple.el (first-completion): Add the text-property 'first-completion' + when the first completion is at the beginning of the buffer. + + * test/lisp/minibuffer-tests.el (completions-header-format-test): + Revert the recent change. + +2023-01-14 Theodor Thornhill + + Fix indent and font-lock for annotation_type + + * lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Indent + inside body. + (java-ts-mode--font-lock-settings): Add rule for name in + annotation_type_element_declaration. + +2023-01-14 Stefan Monnier + + apropos.el: Fix bug#60628 + + * lisp/apropos.el (apropos--map-preloaded-atoms): New function. + (apropos-documentation): Use it. + (apropos-documentation-check-elc-file): Don't presume #@ is preceded by + a newline (since that's not the case any more since commit + 900b09c0235d54d5), but be more careful not to burp on false positives. + +2023-01-14 Theodor Thornhill + + Fix indentation of some declarations and statements + + * lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Add new + rules so that we don't anchor at col 0. + +2023-01-14 Theodor Thornhill + + Fix indentation of object_expressions in csharp-ts-mode + + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--indent-rules): Make + sure the opening brace is indented at parent-bol, and everything else + is indented. + +2023-01-14 Xi Lu + + Replace 'hfy-find-cmd' with 'directory-files-recursively'. + + This removes a potential vulnerability to maliciously + named files. (Bug#60562) + * lisp/htmlfontify.el (hfy-exclude-file-rules): New defcustom. + (hfy-list-files): Reimplement using 'directory-files-recursively'. + +2023-01-14 Eli Zaretskii + + Disable and document 'doc-view-mupdf-use-svg' (bug#58041) + + * lisp/doc-view.el (doc-view-mupdf-use-svg): Disable by default. + * etc/NEWS: Document. Patch by Visuwesh . + Do not merge to master. + +2023-01-14 Eshel Yaron (tiny change) + + Eglot: don't use "nil" as minibuffer initial input + + Doing M-x eglot in a buffer for which buffer-file-name is nil, prompts + the user for a major mode to manage by invoking completing-read. The + way completing-read was called would end up with the string "nil" as + the initial minibuffer input, which is not very useful nor is it a + valid input. + * lisp/progmodes/eglot.el (eglot--guess-contact): Tweak prompt for + major mode. (Bug#60379) + +2023-01-14 Paul Eggert + + Fix dependency bug when building lwlib + + * lwlib/Makefile.in (DEPFLAGS): Use OBJS to calculate dependency + file names, not ALLOBJS. This fixes a typo introduced + in 2015-05-15 "Replace AC_SUBST_FILE in configure with include in + Makefiles" that caused lwlib/*.o to not be rebuilt sometimes + when that was needed. + +2023-01-13 Yuan Fu + + Fix use of build_pure_c_string in treesit.c + + This is brought up in bug#60691. build_pure_c_string should only be + used in places such as syms_of_treesit, which are called just once, + during dumping. + + * src/treesit.c (Vtreesit_str_libtree_sitter): + (Vtreesit_str_tree_sitter): + (Vtreesit_str_dot): + (Vtreesit_str_question_mark): + (Vtreesit_str_star): + (Vtreesit_str_plus): + (Vtreesit_str_pound_equal): + (Vtreesit_str_pound_match): + (Vtreesit_str_pound_pred): + (Vtreesit_str_open_bracket): + (Vtreesit_str_close_bracket): + (Vtreesit_str_open_paren): + (Vtreesit_str_close_paren): + (Vtreesit_str_space): + (Vtreesit_str_equal): + (Vtreesit_str_match): + (Vtreesit_str_pred): New variables. + + (treesit_load_language): + (Ftreesit_pattern_expand): + (Ftreesit_query_expand): + (treesit_eval_predicates): Use new variables. + + (treesit_check_buffer_size): + (treesit_compose_query_signal_data): + (treesit_check_range_argument): + (Ftreesit_parser_set_included_ranges): + (treesit_predicate_capture_name_to_node): + (treesit_predicate_equal): + (treesit_predicate_match): + (treesit_predicate_pred): Use build_string for signal message. + + (syms_of_treesit): Initialize new variables. + +2023-01-13 Stefan Monnier + + * lisp/subr.el (combine-change-calls-1): Fix bug#60467 + + Don't stop at timestamps. Strip them for now, to be on the safe side. + Don't merge into `master` where we'll use a better fix. + +2023-01-13 Michael Albinus + + Adapt tramp-tests.el (do not merge with master) + + * test/lisp/net/tramp-tests.el (tramp--test-container-p): + Rename from `tramp--test-docker-p'. Handle also "podman" method. + Adapt callees. + +2023-01-13 Eli Zaretskii + + Fix minibuffer-completion tests + + * test/lisp/minibuffer-tests.el (completions-header-format-test): + Fix the test which first fired, and then drew the target... + +2023-01-13 Daniel Martín + + Add c-ts-mode tests + + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: New .erts file + to test indentation of typical C constructs and prevent regression of + bug fixes. + * test/lisp/progmodes/c-ts-mode-tests.el: New file with c-ts-mode + tests. + +2023-01-13 Yuan Fu + + Fix c-ts-mode--fill-paragraph + + Example: + + doc: /* Return non-nil if NODE1 and NODE2 are the same node. + If any one of NODE1 and NODE2 is nil, return nil. + This function uses the same equivalence metric as `equal'. */ + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--fill-paragraph): Fix the + case where there are words before the /*, like the example above. + +2023-01-13 Eli Zaretskii + + Fix minor issues with 'pp' and related commands + + * etc/NEWS: + * lisp/emacs-lisp/pp.el (pp-use-max-width, pp-emacs-lisp-code): + Mention in doc string that formatting via 'pp-emacs-lisp-code' + could be slow. + (pp-eval-expression, pp-macroexpand-expression): Honor + 'pp-use-max-width'. (Bug#58687) + +2023-01-12 Yuan Fu + + Equal now recognizes tree-sitter nodes (bug#60659) + + Now equal uses ts_node_eq to check equality between nodes. + + * doc/lispref/parsing.texi: + (Accessing Node Information): Update manual. + * src/fns.c (internal_equal): Handle tree-sitter nodes. + * src/treesit.c (treesit_node_eq): New function. + (Ftreesit_node_eq): Factor out. Update docstring. + * src/treesit.h (treesit_node_eq): Declare new function. + +2023-01-12 Yuan Fu + + Fix c-ts-mode comment indentation (bug#60270) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Move the + star rule up. + +2023-01-12 Sean Whitton + + * lisp/subr.el (while-let): Use if-let, not if-let* (bug#60758). + +2023-01-12 Gregory Heytings + + * lisp/simple.el (next-completion): Handle first completion specially. + + When completions-header-format is nil and completion-show-help is nil, + the first completion is at the beginning the buffer, so 'M-' + missed it and moved to the second completion. Handle this case by + setting/checking the special text-property 'first-completion' that + is nil at the first call (bug#60411). + +2023-01-12 Eli Zaretskii + + Fix encoding with 'utf-8-auto' + + * src/coding.c (encode_coding_utf_8): Fix encoding with + 'utf-8-auto': it should produce BOM, per the documentation of + the :bom attribute. (Bug#60750) + + * lisp/international/mule.el (define-coding-system): Doc fix. + + * test/src/coding-tests.el (coding-tests): Use + 'with-coding-priority' instead of 'prefer-coding-system', as the + latter has global persistent effect and affects further tests. + +2023-01-12 Po Lu + + Report cursor correctly on PGTK when there is a margin + + * src/pgtkterm.c (pgtk_draw_window_cursor): Adjust frame_x by + the margin width as well. + +2023-01-11 Kyle Meyer + + Update to Org 9.6.1 + +2023-01-11 Theodor Thornhill + + Add support for annotation_type_declaration + + * lisp/progmodes/java-ts-mode.el (java-ts-mode--keywords): Add new + keyword. + (java-ts-mode--font-lock-settings): Add font-locking to the type + feature. + +2023-01-11 Juri Linkov + + * etc/NEWS: Mention incompatible changes in 'outline-minor-mode-cycle-map'. + + * lisp/outline.el (outline-minor-mode-cycle--bind): + Add docstring (bug#60426). + (outline-minor-mode-cycle--bind): Default 'map' to + 'outline-minor-mode-cycle-map'. + (outline-minor-mode-cycle-map): Improve docstring. + (outline-minor-mode): Move margin-cycling keys to + 'outline-minor-mode-cycle-map'. + +2023-01-11 Philip Kaludercic + + Ensure VC package names are not empty + + * lisp/emacs-lisp/package-vc.el (package-vc--unpack): Raise an error + if the package name is empty. + (package-vc-install): Avoid generating an empty file name, if a URL + ends with a slash, and raise an error if the package name is empty. + +2023-01-11 Philip Kaludercic + + Handle missing package description when unpacking vc packages + + * lisp/emacs-lisp/package-vc.el (package-vc--unpack): Create a dummy + descriptor if PKG-DESC is nil. + +2023-01-10 Alan Mackenzie + + CC Mode: partially revert commit from 2022-10-04 + + This reversion is of an ill-advised optimization, which resulted in non-type + identifiers getting fontified as types. + + * lisp/progmodes/cc-fonts.el (c-fontify-new-found-type): Rather than writing + the expected face directly to the text, instead remove the `fontified' + property. This allows the full font-lock mechanism to fontify the buffer + correctly. + +2023-01-10 Manuel Uberti + + Fix reftex-citation docstring (bug#60710) + + * lisp/textmodes/reftex-cite.el (reftex-citation): Fix spelling. + +2023-01-10 Robert Pluim + + Improve 'describe-char-fold-equivalences' docstring + + * lisp/char-fold.el (describe-char-fold-equivalences): Explain what + the output looks like. + +2023-01-10 F. Jason Park + + Remove obsolete server buffers on MOTD in erc-track + + * lisp/erc/erc-networks.el + (erc-networks--copy-server-buffer-functions): New internal hook + through which modules can perform housekeeping when server buffers + belonging to the same network context are merged. + (erc-networks--copy-over-server-buffer-contents): Run new internal + hook `erc-networks--copy-server-buffer-functions'. + * lisp/erc/erc-track.el (erc-track-enable, erc-track-disable): Manage + membership in `erc-networks--copy-server-buffer-functions' hook. + (erc-track--replace-killed-buffer): New function to replace server + buffer being killed in `erc-modified-channels-alist'. + * test/lisp/erc/erc-scenarios-base-association.el + (erc-scenarios-networks-merge-server-track): New test. + * test/lisp/erc/resources/networks/merge-server/track.eld: New test + data. (Bug#60560.) + +2023-01-10 Manuel Uberti + + Fix completion-auto-help docstring (bug#60709) + + * lisp/minibuffer.el (completion-auto-help): Remove extra period. + +2023-01-10 Yuan Fu + + Fix c-ts-mode comment indent + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--comment-2nd-line-matcher): Also make sure PARENT is a + comment node. + +2023-01-10 Yuan Fu + + Highlight identifier in import statements in js-ts-mode + + Follow-up on bug#60689. This commit just copied the change in + e385c099b8c to js-ts-mode. + + * lisp/progmodes/js.el: + (js--treesit-font-lock-settings): Add import query. + +2023-01-09 Yuan Fu + + Don't print named tree-sitter nodes with parenthesizes (bug#60696) + + * src/print.c (print_vectorlike): Use empty string as delimiters if + the node is named. + +2023-01-09 Jostein Kjønigsen + + Improve fontification for import-statements in typescript-ts-mode + + (bug#60689) + + * lisp/progmodes/typescript-ts-mode.el: + (typescript-ts-mode--font-lock-settings): Add rules to highlight the + actual imports in import-statements. + +2023-01-09 Yuan Fu + + Fix c-ts-mode indentation for 2nd line in block comment (bug#60270) + + If the first line is "/*" or "/* ", indent like this: + + /* + aaa + + If the first line is "/* some text", indent like this: + + /* some text + aaa + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): + (c-ts-mode--looking-at-star): Minor refactor. + (c-ts-mode--comment-2nd-line-matcher) + (c-ts-mode--comment-2nd-line-anchor): New functions. + * lisp/treesit.el (treesit-simple-indent-presets): + prev-adaptive-prefix doesn't handle the comment-start-skip case (i.e, + 2nd line) anymore. (Handled by the new matcher.) + +2023-01-09 Juri Linkov + + * lisp/vc/diff-mode.el (diff-font-lock-keywords): Check for limit. + + This check is necessary since 'diff-beginning-of-hunk' can move + not only backwards, but also forwards (bug#60660). + +2023-01-09 Yuan Fu + + Minor improvement for tree-sitter explorer + + If you open an empty python buffer and type + + 1 + 2 + a + b + + Currently the explorer only displays the top-level node at point, ie, + only 1 + 2, only a, or only b. That's kind of awkward, so if the + buffer is small, show the entire parse tree. + + * lisp/treesit.el (treesit--explorer-refresh): See above. + +2023-01-09 Yuan Fu + + Make sure NODE is not the root node in tree-sitter indent (bug#60602) + + There are two possible ways to solve the problem raised in the bug + report: either make sure NODE is never the root (so that parent is + never nil), or allow parent to be nil. + + If we go with the latter, a lot of matcher and anchor functions need + change (they need to guard against a null parent). I tried it, and + needing to check for null parent is pretty annoying. In comparison, + if NODE is never the root, it is very convenient for the user, and it + doesn't complicate the rule that much (and it's rather intuitive, + people usually don't think of the case where NODE is the root node). + So that's what I choose. + + * doc/lispref/modes.texi (Parser-based Indentation): Update manual. + * lisp/treesit.el (treesit-indent-function): Update docstring. + (treesit--indent-1): Make sure NODE is not the root. + +2023-01-08 Yuan Fu + + Fix label indent of GNU and Linux style in c-ts-mode (bug#60543) + + The previous fix isn't correct. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--indent-styles): New indent rule. Fix the rule for Linux + style. + (c-ts-mode--top-level-label-matcher): New function. + +2023-01-08 Evgeni Kolev + + Improve go-ts-mode Imenu, navigation and electric pair (bug#60407) + + The Imenu items are extended to support "Method", "Struct", + "Interface", "Alias" and "Type". + + go-ts-mode is updated to use the Imenu facility added in commit + b39dc7ab27a696a8607ab859aeff3c71509231f5. + + Variable electric-indent-chars is set in order to improve integration + with Electric Pair mode. + + * lisp/progmodes/go-ts-mode.el (go-ts-mode--imenu-1) (go-ts-mode--imenu): + Remove functions. + (go-ts-mode--defun-name, go-ts-mode--interface-node-p) + (go-ts-mode--struct-node-p, go-ts-mode--other-type-node-p) + (go-ts-mode--alias-node-p): New functions. + (go-ts-mode): Improve Imenu settings, navigation, add Electric Pair + mode settings. + +2023-01-08 Yuan Fu + + Revert "Add c-or-c++-ts-mode (bug#59613)" + + This reverts commit 1df2826639c912396fac0af108301533dac71406. + + I forgot about the feature freeze, sorry :-) + +2023-01-08 Benson Chu (tiny change) + + Add back renamed function 'font-lock-fontify-syntactically-region' + + A more accurate replacement for font-lock-fontify-syntactically-region + would be a function that funcalls the + font-lock-fontify-syntactically-function variable. That way, callers + of the function can inherit new behavior, if the value of that variable + changes. + + * lisp/font-lock.el (font-lock-fontify-syntactically-region): + Add function back, remove its obsolete alias. + +2023-01-08 Eli Zaretskii + + Improve options and docs of M-x command completion + + * lisp/simple.el (read-extended-command-predicate): Expand the + doc string. Add 2 more selectable values. + (command-completion-using-modes-and-keymaps-p): New function. + (execute-extended-command): Mention + 'read-extended-command-predicate' in the doc string. (Bug#60645) + +2023-01-07 Kyle Meyer + + Update to Org 9.6-90-ga6523f + +2023-01-07 Yuan Fu + + Fix string fontification on python-ts-mode (bug#60599) + + * lisp/progmodes/python.el: + (python--treesit-fontify-string): Generalize and skip anything + before the first quote character. + +2023-01-07 Yuan Fu + + Fix string-interpolation feature of python-ts-mode (bug#60599) + + * lisp/progmodes/python.el: + (python--treesit-fontify-string-interpolation): New function. + (python--treesit-settings): Use the new function for + string-interpolation. + +2023-01-07 Theodor Thornhill + + Add indentation rule for concatenated_string (bug#60572) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Indent to + parent-bol. + +2023-01-07 Jostein Kjønigsen + + Fix highlighting of variable-declarations in typescript-ts-mode + + (bug#60546) + + - Highlight variable declarations in catch-clauses. + - Remove highlighting of variables where not declarations (improve + consistency with other *-ts-modes). + + * lisp/progmodes/typescript-ts-mode.el: + (typescript-ts-mode--font-lock-settings): See above. + +2023-01-07 Yuan Fu + + Fix label indentation for Linux style in c-ts-mode (bug#60543) + + Reference: + 1. https://www.gnu.org/software/indent/manual/indent/Common-styles.html + 2. https://www.gnu.org/software/indent/manual/indent/Option-Summary.html + + The GNU indent manual says Linux style should use -il1 flag, which + means "indent labels to column 1". + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Indent label + to column 1 in Linux style. + +2023-01-07 Yuan Fu + + Remove duplicate entries in c-ts-mode's Imenu + + Right now the Class subindex includes top-level functions, which is + wrong. This change ensures the Class subindex only contain classes and + functions nested in those classes. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--defun-for-class-in-imenu-p): New function. + * lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Use the new function. + +2023-01-07 Yuan Fu + + Fix use of treesit-ready-p in c/c++-ts-mode + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode) + (c++-ts-mode): Put setup code in a when form. + +2023-01-07 Yuan Fu + + Add documentation for c/c++-ts-mode (bug#60443) + + Explain that tree-sitter c modes and cc-mode c modes don't share + config variables. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode) + (c++-ts-mode): Update docstring. + +2023-01-07 Dmitry Gutov + + (ruby-ts--font-lock-settings): Improve highlighting in patterns + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings): + Improve highlighting in patterns: highlight values not keys as + variable in the usual case; highlight keys when no value; + highlight the "as pattern" variable. + +2023-01-07 Yuan Fu + + Optionally include the namespace in c-ts-mode--declarator-identifier + + This is an additional fix for bug#60397. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--declarator-identifier): New parameter QUALIFIED. + (c-ts-mode--defun-name): Use qualified identifier. + +2023-01-07 Yuan Fu + + Support namespaces in c++-ts-mode (bug#60397) + + Not a complete fix. See the next commit. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Add rules. + (c-ts-mode--defun-name): Add namespace_definition. + (c-ts-base-mode): Add namespace_definition to + treesit-defun-type-regexp. + +2023-01-07 Yuan Fu + + Fix c-ts-mode--looking-at-star + + Not the topic of bug#60270 but reported in one of the replies. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--looking-at-star): Check not + the character after point but character after BOL. Otherwise + indentation is wrong when point is not at BOL. + +2023-01-07 Yuan Fu + + Add c-or-c++-ts-mode (bug#59613) + + * lisp/progmodes/c-ts-mode.el + (c-ts-mode--c-or-c++-regexp): New variable. + (c-or-c++-ts-mode): New mode. + * etc/NEWS: Mention c-or-c++-ts-mode. + +2023-01-07 Eli Zaretskii + + Document the 'definition-name' property. + + * doc/lispref/symbols.texi (Standard Properties): Document + 'definition-name'. + * doc/lispref/functions.texi (Defining Functions): Describe how to + use 'definition-name' when generating function definitions at run + time. (Bug#60568) + +2023-01-07 Dmitry Gutov + + (treesit-simple-indent-presets): Do that for 'or' as well. + + * lisp/treesit.el + (treesit-simple-indent-presets): Do that for 'or' as well. + +2023-01-07 kobarity + + Fix 'python-shell-buffer-substring' when START is in middle of 1st line + + * lisp/progmodes/python.el (python-shell-buffer-substring): Instead + of checking whether START is point-min, check whether START is in + the first line. (Bug#60466) + * test/lisp/progmodes/python-tests.el + (python-shell-buffer-substring-18): New test. + +2023-01-07 Manuel Giraud + + Rearrange the "Saving Emacs Sessions" section of the user manual + + * doc/emacs/misc.texi (Saving Emacs Sessions): Organize this + node more logically with main behavior and important features + near the top. (Bug#60600) + +2023-01-06 Dmitry Gutov + + (treesit-simple-indent-presets): Ensure 'and' works for anchors too + + * lisp/treesit.el (treesit-simple-indent-presets): + Rewrite to return the last successful evaluation, not just t. + +2023-01-06 Dmitry Gutov + + (treesit--indent-rules-optimize): Optimize 'and' and 'or' matcher forms + + * lisp/treesit.el (treesit--indent-rules-optimize): + Optimize 'and' and 'or' matcher forms. When 'and' has a 'query' + matcher inside (as is the case in ruby-ts--indent-rules, many + times over), this yields a significant performance boost. + +2023-01-06 Dmitry Gutov + + (treesit-simple-indent-presets): Short-circuit 'and' and 'or' + + * lisp/treesit.el (treesit-simple-indent-presets): + Short-circuit the 'and' and 'or' matchers. To avoid calling all + fns after one returned nil or truthy value, respectively. + +2023-01-06 Dmitry Gutov + + (font-lock-regexp-face): New face + + * lisp/font-lock.el (font-lock-regexp-face): New face. + + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--font-lock-settings): + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings): + * lisp/progmodes/js.el (js--treesit-font-lock-settings): + Use it for regexps. + + * etc/NEWS: Mention the addition. + +2023-01-06 Dmitry Gutov + + Unify the string interpolation delimiters face across ts modes + + * lisp/progmodes/js.el (js--treesit-font-lock-settings): + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings): + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--font-lock-settings): + Use font-lock-misc-punctuation-face for string interpolation + delimiters. + +2023-01-06 Dmitry Gutov + + ruby-ts-mode: Highlight more kinds of parameters + + * lisp/progmodes/ruby-ts-mode.el + (ruby-ts--font-lock-settings): Highlight destructured parameters, + lambda parameters, identifiers in pattern matching clauses + (array/hash) and exception variables. + Move the 'symbol' matchers lower to make 'hash_key_symbol' lower + priority than hash keys in match patterns. + +2023-01-06 Robert Pluim + + Fix `pr-interface' + + `pr-interface' specifies `inline' for its menu items, which is not + necessary, but it causes `widget-choice-value-create' to bug + out. (Bug#60501) + + * lisp/wid-edit.el (widget-choice-value-create): Allow the value to be + a non-list. + * test/lisp/wid-edit-tests.el (widget-test-handle-spurious-inline): + Add test to ensure that unnecessary :inline is allowed. + +2023-01-06 Jostein Kjønigsen + + Further generic-related improvements in csharp-ts-mode (bug#60376) + + This is an additional patch for bug#60376. + + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings): + New rules. + +2023-01-05 Dmitry Gutov + + ruby-ts-mode: Highlight method and block parameters + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings): + Add rules for method and block parameters. + (ruby-ts-mode): Add corresponding feature. + +2023-01-05 Perry Smith + + ruby-ts-mode: Highlight variable assignments + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings): + Bring back the 'assignment' feature. + (ruby-ts-mode): Replace the unused 'variable' with 'assignment'. Use + the level 3 for consistency with other ts modes. + Update the Commentary as well. + +2023-01-05 Dmitry Gutov + + ruby-ts-mode: Move 'self' and 'super' from constants to keywords + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings): + Move 'self' and 'super' from constants to keywords. + +2023-01-05 Dmitry Gutov + + (ruby-ts-mode): Split font-lock feature 'builtin' into two + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): + Split the 'builtin' feature in two: 'builtin-constant' and + 'builtin-variable'. + (ruby-ts-highlight-predefined-constants): + Drop the user option, the highlighting granularity can be chosen + using treesit-font-lock-recompute-features. + (ruby-ts--font-lock-settings): Update accordingly. + (ruby-ts--predefined-constants, ruby-ts--predefined-variables): + Fix docstrings. + +2023-01-05 Eli Zaretskii + + Avoid assertion violation due to fill-column indicator face + + * src/xdisp.c (extend_face_to_end_of_line): Use the original + iterator metrics for the stretch glyph, the one unaffected by the + 'fill-column-indicator' face. (Bug#60580) + +2023-01-05 Juri Linkov + + * lisp/cedet/semantic/symref/grep.el: Support ts-modes (bug#60525) + + (semantic-symref-filepattern-alist): Duplicate entries + c-mode -> c-ts-mode, c++-mode -> c++-ts-mode, ruby-mode -> ruby-ts-mode, + python-mode -> python-ts-mode. + +2023-01-05 Eli Zaretskii + + Make 'toml-ts-mode' optional + + * etc/NEWS: Reflect the fact that 'toml-ts-mode' is optional. + + * lisp/textmodes/toml-ts-mode.el (auto-mode-alist): Don't autoload + the addition of 'toml-ts-mode'. (Bug#60559) + +2023-01-04 Michael Albinus + + Fix bug in Tramp multi-hop + + * lisp/net/tramp.el (tramp-compute-multi-hops): Make check for + host name more robust. (Bug#60499) + +2023-01-04 Michael Albinus + + * lisp/files.el (find-sibling-rules): Fix docstring. + +2023-01-04 Juri Linkov + + Tree-sitter doc fixes (bug#60524) + + * doc/lispref/modes.texi (Parser-based Font Lock): + Replace :lang with :language. + + * doc/lispref/parsing.texi (Language Grammar): Replace + treesit-load-suffixes with dynamic-library-suffixes. + (Retrieving Nodes): Fix function names. + (Tree-sitter Major Modes): Fix treesit-ready-p args. + Fix pxref to Parser-based Indentation. + (Tree-sitter C API): Fix function names. + + * lisp/treesit.el (treesit--simple-indent-eval): Remove cond BODY + duplicated from CONDITION. + (treesit): Fix function names. + +2023-01-04 Daniel Martín + + Fontify C++ function definitions in c-ts-mode (bug#60529) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--declarator-identifier): + Teach the code how to extract the declarator of a node of type + "qualified_identifier". + (c-ts-mode--fontify-declarator): Consider the case where the + identifier in a function declarator is buried inside + "qualifier_identifier" nodes. + +2023-01-03 Dmitry Gutov + + (ruby-ts-add-log-current-function): Fix when between two methods + + * lisp/progmodes/ruby-ts-mode.el + (ruby-ts-add-log-current-function): Fix the case when point is + between two methods. 'treesit-node-at' returns the 'def' node of + the method after point in such case, so it behaved like point was + inside the method below. + + * test/lisp/progmodes/ruby-ts-mode-tests.el + (ruby-ts-add-log-current-method-outside-of-method): + Update the test case. + + * test/lisp/progmodes/ruby-mode-tests.el + (ruby-add-log-current-method-outside-of-method): + Mirror that change. + +2023-01-03 Sean Whitton + + * lisp/vc/vc-git.el (vc-git-checkin): Pass vc-git-diff-switches. + +2023-01-02 Dmitry Gutov + + Extract common code into ruby-base-mode to derive from + + * lisp/progmodes/ruby-mode.el (ruby-base-mode): + New major base mode, to set up common vars and hooks. + (ruby-mode-variables): Delete. Move most code to ruby-base-mode. + And some -- to ruby-mode body. + (ruby-mode): Derive from ruby-base-mode. Also move some setup + to there. + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): + Derive from ruby-base-mode. Remove duplicating settings. + +2023-01-02 Dmitry Gutov + + ruby-ts-mode: Indentation fixes + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--align-keywords): + Fix for 'def' (which was misread as 'method' in the check). + (ruby-ts--indent-rules): Indent the curly block closer the same + way as the 'do ... end' closer. + +2023-01-02 Dmitry Gutov + + ruby-ts--font-lock-settings: Use more standard faces + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings): + Use more standard faces for regexp literals and string + interpolation delimiters (following js-ts-mode). + +2023-01-02 Dmitry Gutov + + ruby-ts-mode: Standardize the string literal highlights + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings): + Use font-lock-string-face for %w() and `...`. + Use font-lock-constant-face (just like we do for symbol literals) + for symbol array literals, %i(). + Combine the matchers for string content and heredocs. + +2023-01-02 Theodor Thornhill + + Improve fontification in java-ts-mode (bug#60492) + + * lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings): + Add expression_statement with only identifier support. + +2023-01-02 Jostein Kjønigsen + + Fontification improvements in typescript-ts-mode (bug#60500) + + - highlight method-definitins in interfaces. + - only highlight variable-declarations, not variables + everywhere (consistency with other modes). + - move highlighting of method invocations to level 4 + + * lisp/progmodes/typescript-ts-mode.el: + (typescript-ts-mode--font-lock-settings): Update rules. + (typescript-ts-mode, tsx-ts-mode): Update feature list. + +2023-01-02 Jostein Kjønigsen + + Improve fontification consistency in js-ts-mode (bug#60503) + + * lisp/progmodes/js.el (js--treesit-font-lock-settings): Highlight + declared parameters in functions, methods and arrow-expressions as + variables. + +2023-01-02 Dmitry Gutov + + (typescript/tsx-ts-mode): Split font-lock feature list into 4 values + + * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode) + (tsx-ts-mode): Split font-lock feature list into 4 values. + +2023-01-02 Dmitry Gutov + + js-ts-mode: Move 'string-interpolation' to font-lock level 3 + + * lisp/progmodes/js.el (js-ts-mode): + Move 'string-interpolation' to font-lock level 3. + +2023-01-02 Eli Zaretskii + + Fix shrinking of the tab-bar + + * src/haikufns.c (haiku_change_tab_bar_height): + * src/pgtkfns.c (pgtk_change_tab_bar_height): + * src/nsfns.m (ns_change_tab_bar_height): + * src/w32fns.c (w32_change_tab_bar_height): + * src/xfns.c (x_change_tab_bar_height): Don't let the number of + tab-bar lines degenerate to zero due to integer division. + (Bug#60210) + +2023-01-02 F. Jason Park + + Fix default-port regression in erc-select-read-args + + * lisp/erc/erc.el (erc--warn-unencrypted): New function, likely + temporary, to warn new users connecting interactively to the default + server, "irc.libara.chat", via the default non-TLS port, 6667. + (erc-select-read-args): Remove stray code from incomplete feature + introduced by bug#56514. Ensure connecting always works with default + port, which is non-TLS. Respect `erc-prompt-for-password' when user + pastes URL containing password component into "server" prompt. Maybe + add `erc--warn-unencrypted' as one-off hook for impending connection. + * test/lisp/erc/erc-tests.el (erc-select-read-args): Always expect + password prompt and sometimes a non-TLS port when `erc' called + interactively. (Bug#60428.) + +2023-01-01 Kyle Meyer + + Update to Org 9.6-81-g563a43 + +2023-01-01 Dmitry Gutov + + ruby-ts-mode: Remove some currently unused functions + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--grand-parent-is) + (ruby-ts--ancestor-start, ruby-ts--ancestor-is): + Remove some currently unused functions. + +2023-01-01 Dmitry Gutov + + ruby-ts-mode: Highlight singleton method definitions and setters + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings): + Highlight singleton method definitions and setters. + +2023-01-01 Perry Smith + Dmitry Gutov + + Add ruby-ts-mode + + * etc/NEWS: Mention the new mode. + + * lisp/progmodes/ruby-ts-mode.el: New file. + + * test/lisp/progmodes/ruby-ts-mode-tests.el: New file. + + * lisp/progmodes/eglot.el (eglot-server-programs): + Add ruby-ts-mode to the Ruby entry. + +2023-01-01 Daniel Martín + + Fix fontification of C++ reference return types (bug#60441) + + * lisp/progmodes/c-ts-mode.el (c-ts-fontify-error): Treat + reference_declarator nodes the same as pointer_declarator nodes when + calculating the identifier to fontify. + +2023-01-01 Jostein Kjønigsen + + Adjust function-call fontification in csharp-ts-mode (bug#60376) + + - Ensure method-invocations are highlighted only on level 4. + - Ensure consistent fontification of variable declarations + (don't highlight usage of all variables). + - Fix issues with highlighting types in new() expressions. + - Fix issues with generic types in variable-declarations not using "var". + - Use fewer, more general queries for function-invocations. simplify code. + + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings): + Change rules. + (csharp-ts-mode): Update feature list. + +2023-01-01 Eli Zaretskii + + Rewrite Antinews in ELisp manual for Emacs 29 + + * doc/lispref/anti.texi (Antinews): Rewrite for Emacs 29. + * doc/lispref/elisp.texi (Top): Update the top-level menu for + Antinews. + +2023-01-01 Eli Zaretskii + + Update Antinews in the user manual for Emacs 29 + + * doc/emacs/anti.texi (Antinews): Rewrite for Emacs 29. + * doc/emacs/emacs.texi (Top): Adjust the top-level menu. + +2023-01-01 Mattias Engdegård + + Fix shortdoc-tests failure with respect to regexp-opt-charset + + * test/lisp/emacs-lisp/shortdoc-tests.el (regexp-opt): Require. + `regexp-opt-charset` is not autoloaded, and whether `regexp-opt` is + preloaded is configuration-dependent. + +2023-01-01 Eli Zaretskii + + Improve documentation of 'isearch-open-overlay-temporary' + + * lisp/isearch.el (isearch-open-overlay-temporary): Document that + the overlay passed to the 'isearch-open-invisible-temporary' + function cannot be deleted too early. (Bug#60399) + +2023-01-01 Eli Zaretskii + + Document 'use-package' in the 2 main manuals + + * doc/emacs/custom.texi (Init Examples): + * doc/lispref/loading.texi (Named Features): Document 'use-package' + and its most important features. + +2022-12-31 Yuan Fu + + Build recipe interactively in treesit-install-language-grammar + + If there is not existing recipe for a language, prompt to build the + recipe interactively. + + * lisp/treesit.el (treesit--install-language-grammar-build-recipe): + New functions. + (treesit-install-language-grammar): Use the new function. + +2022-12-31 Theodor Thornhill + + Tweak csharp-mode font-lock-settings (bug#60376) + + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings): + Rearrange features. + (csharp-ts-mode): Rearrange features. + +2022-12-31 Eli Zaretskii + + Revert a recent change which causes errors + + * lisp/subr.el (buffer-match-p): Undo last change, as it causes an + error in a timer function of show-paren-mode. + +2022-12-31 Stefan Kangas + + Fix misspelled functions in shortdoc groups + + * lisp/emacs-lisp/shortdoc.el (file, list): Fix misspelled function + names: 'file-writable-p' and 'seq-reduce'. + * test/lisp/emacs-lisp/shortdoc-tests.el (subr-x): Require. + (shortdoc-all-functions-fboundp): New test. + +2022-12-31 Kévin Le Gouguec + + Simplify introduction of use-package manual + + * doc/misc/use-package.texi (Getting Started): Do not advise requiring + the package, since the macro is autoloaded; also correct the macro's + name. (Bug#60366) + +2022-12-31 kobarity + + Fix python-shell-buffer-substring when retrieving a single statement + + * lisp/progmodes/python.el (python-shell-buffer-substring): Do not add + "if True:" line when retrieving a single statement. + (python-shell-send-region): Add a reference to + `python-shell-buffer-substring' in docstring. + * test/lisp/progmodes/python-tests.el (python-shell-buffer-substring-13) + (python-shell-buffer-substring-14, python-shell-buffer-substring-15) + (python-shell-buffer-substring-16, python-shell-buffer-substring-17): + New tests. (Bug#60142) + +2022-12-30 Yuan Fu + + Show tree-sitter query source when signaling query error + + * src/treesit.c (treesit_compose_query_signal_data): Add QUERY_SOURCE + parameter. + (treesit_ensure_query_compiled) + (Ftreesit_query_capture): Add query source. + +2022-12-30 Dmitry Gutov + + Add version tags and mention the new options in NEWS + + * etc/NEWS: Mention the new options (bug#60186). + + * lisp/progmodes/ruby-mode.el (ruby-block-indent) + (ruby-after-operator-indent, ruby-method-call-indent) + (ruby-parenless-call-arguments-indent): Add version tags. + +2022-12-30 Dmitry Gutov + + Add new options for Ruby code indentation + + * lisp/progmodes/ruby-mode.el (ruby-block-indent) + (ruby-after-operator-indent, ruby-method-call-indent) + (ruby-parenless-call-arguments-indent): New options (bug#60186). + (ruby-smie-grammar): Specify associativity for "?". + (ruby-smie--indent-to-stmt): Add optional argument. + + * test/lisp/progmodes/ruby-mode-resources/ruby.rb: New cases. + + * test/lisp/progmodes/ruby-mode-resources/ruby-method-call-indent.rb: + * test/lisp/progmodes/ruby-mode-resources/ruby-block-indent.rb: + * test/lisp/progmodes/ruby-mode-resources/ruby-after-operator-indent.rb: + * test/lisp/progmodes/ruby-mode-resources/ + ruby-parenless-call-arguments-indent.rb: New files. + + * test/lisp/progmodes/ruby-mode-tests.el: Add indentation tests for new files. + +2022-12-30 Yuan Fu + + Add treesit-install-language-grammar + + Per discussion on emacs-devel, I added function to install and compile + language grammars. + + * lisp/treesit.el (treesit-language-source-alist): New variable. + (treesit-install-language-grammar) + (treesit--call-process-signal) + (treesit--install-language-grammar-1): New functions. + +2022-12-30 Yuan Fu + + Add treesit-language-abi-version + + Also rename treesit-language-version to treesit-library-abi-version, + because the old name is somewhat misleading. + + * doc/lispref/parsing.texi (Language Grammar): Update. + * src/treesit.c (Ftreesit_library_abi_version): Rename. + (Ftreesit_language_abi_version): New function. + +2022-12-30 Yuan Fu + + Change "language definition" to "language grammar" in manual. + + "Language grammar" is apparently the more widely used term among + people talking about tree-sitter. To avoid confusion, I think it's + good to use that rather than "language definition", which is a term + that I made up :-) + + Feel free to revert this if it is too much change. + + * doc/lispref/elisp.texi: + * doc/lispref/modes.texi: + * doc/lispref/parsing.texi: + * lisp/treesit.el: Change "language definition" to "language grammar". + +2022-12-30 Michael Albinus + + * test/lisp/net/tramp-tests.el (tramp-test32-shell-command): Fix test. + + * lisp/eshell/em-tramp.el (tramp): Require also at runtime. (Bug#60402) + +2022-12-30 Roland Winkler + + lisp/textmodes/bibtex.el: fix bibtex-beginning-of-entry (bug#56636) + + lisp/textmodes/bibtex.el (bibtex-beginning-of-entry): + use bibtex-any-entry-maybe-empty-head (bug#56636) + +2022-12-30 Roland Winkler + + lisp/textmodes/bibtex.el: Treat $ as punctuation in BibTeX fields (bug#50202) + +2022-12-29 Gregory Heytings + + Clarify the documentation of 'set-face-attribute' + + * lisp/faces.el (set-face-attribute): Mention the evaluation order + of attribute-value pairs in the docstring. + + * doc/lispref/display.texi (Attribute Functions): Likewise, and + explain with an example that a different argument order might give + different results. Also align the documentation in the manual + with that of the docstring, whose changes were discussed in + bug#57499 but not included in the manual. + +2022-12-29 Gregory Heytings + + Handle non-string values in pcomplete + + * lisp/pcomplete.el (pcomplete-arg): When + pcomplete-parse-arguments-function returns a non-string value, + return the string the user typed in, and attach the value as a + text property to that string. Fixes bug#59956 and bug#60021. + +2022-12-29 Gregory Heytings + + Fix completion when completion-auto-select is set + + * lisp/minibuffer.el (completion--do-completion): Do not display + "Complete, but not unique" messages when completion-auto-select is + set. Fixes bug#60359. + +2022-12-29 Yuan Fu + + Add color fontification in css-ts-mode (bug#60405) + + * lisp/textmodes/css-mode.el (css-ts-mode): Add color fontification + and syntax-propertize-function. + +2022-12-29 Juri Linkov + + * lisp/hi-lock.el (hi-lock--regexps-at-point): Fix bug (bug#60241). + + Handle two cases: when a pattern is a regexp or a function. + +2022-12-29 Juri Linkov + + * src/keyboard.c (echo_add_key): Use recently rebound C-h key C-q (bug#60249) + +2022-12-29 Eli Zaretskii + + Avoid assertion violations in treesit.c with --enable-checking + + * src/treesit.c (Ftreesit_node_first_child_for_pos) + (Ftreesit_node_descendant_for_range): Check validity of buffer + positions before converting them to byte-positions, to avoid + assertion violations in buf_charpos_to_bytepos. + +2022-12-29 Yuan Fu + + Clean up treesit-default-defun-skipper and add comments + + * lisp/treesit.el (treesit-default-defun-skipper): Clean up, fix some + small issue, add comment. + +2022-12-29 Yuan Fu + + Fix c-ts-mode bracket indentation (bug#60398) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Use new + anchor. + (c-ts-mode--bracket-children-anchor): New anchor function. + +2022-12-28 Yuan Fu + + Clean up font-lock rules in js-ts-mode + + Changes for each feature: + + - string: Take out string-interpolation bits. + - string-interpolation: New. + - declaration: Rename to definition. + - identifier: Remove. + - property: Use a pred to filter out methods. + - expression: Rename to assignment. + - function: New. + - pattern: Merge into assignment. + + * lisp/progmodes/js.el (js--treesit-font-lock-settings): See above. + (js--treesit-property-not-function-p) + (js--treesit-lhs-identifier-query): New variable. + (js--treesit-fontify-assignment-lhs): New functions. + (js-ts-mode): Update feature list. + +2022-12-28 Yuan Fu + + Fix syntax for < and > in c++-ts-mode (bug#60351) + + < and > are usually punctuation, e.g., in ->. But when used for + templates, they should be considered pairs. Right now we always + consider them as pairs which is incorrect. + + * lisp/progmodes/c-ts-mode.el (c++-ts-mode--syntax-table): Remove + variable. + (c-ts-mode--syntax-propertize): New function. + (c++-ts-mode): Remove syntax table. Setup syntax-propertize-function. + +2022-12-28 Yuan Fu + + Call tree-sitter parser notifier on the first parse + + * src/treesit.c (treesit_call_after_change_functions): Handle NULL + old_tree. + (treesit_ensure_parsed): Remove check for NULL tree. + +2022-12-28 Yuan Fu + + Fix tree-sitter parser notifier recursion + + See the comment for detail. + + * src/treesit.c (treesit_ensure_parsed): Move the need_reparse short + circuit to the very beginning. Move the call to + treesit_call_after_change_functions to the very end. + +2022-12-28 Juri Linkov + + * lisp/help.el: Use 'C-h C-q' to toggle 'help-quick' window (bug#60249). + + (help-map): Bind "C-q" to 'help-quick-toggle'. Rebind "q" to 'help-quit'. + (help-quick): Replace help-quit-or-quick with help-quick-toggle. + (help-quick-toggle): New command. + (help-quit-or-quick): Remove command. + (help-for-help): Replace help-quick-or-quit with help-quick-toggle. + +2022-12-28 Juri Linkov + + * lisp/isearch.el: Small fixes. + + (isearch-wrap-pause): Mention the new feature of `no' and `no-ding' + in the docstring. + (isearch-lax-whitespace, isearch-forward-thing-at-point): Add the + group 'isearch' since another defgroup changed the default group. + (isearch-delete-char): Use 'isearch-invisible' instead of 'search-invisible' + since the users might change the current value with 'M-s i'. + +2022-12-28 Juri Linkov + + * lisp/vc/diff-mode.el (diff-minor-mode-prefix): Replace "ESC" with "\e". + + "ESC" looks like an attempt to use kbd syntax in customization. + But actually now 'key-description' is used in 'diff-minor-mode-map' + to convert "\e" to "ESC". + +2022-12-28 Juri Linkov + + * doc/emacs/display.texi (Text Scale): Improve section about repeating keys. + + Mention that it's possible to use repeating keys without the modifiers + and copy an example from etc/NEWS. + +2022-12-28 Juri Linkov + + * lisp/repeat.el (repeat-echo-function): Suggest 'add-function' in docstring. + + (bug#60353) + +2022-12-28 Juri Linkov + + * lisp/tab-line.el (tab-line-cache-key-default): More cache keys (bug#60340). + + Move more cache keys here from 'tab-line-format' to give users more freedom. + +2022-12-28 Stefan Monnier + + * etc/package-keyring.gpg: Update with new key + +2022-12-28 F. Jason Park + + Warn of absent networks module in ERC + + * doc/misc/erc.texi: Add linkable note in Modules chapter about some + modules being required. Also tweak markup in auth-source section. + * etc/ERC-NEWS: Mention the special role of `networks'. + * lisp/erc/erc-backend.el (erc--server-post-connect-hook): Add + internal hook for core modules to perform post-network-process, + pre-protocol config validation even when they haven't been loaded. + (erc--register-connection): Run `erc--server-post-connect-hook'. + * lisp/erc/erc-networks.el (erc-networks--bouncer-targets, + erc-networks-on-MOTD-end): Fix comments and doc strings. Also change + former from constant to internal variable in case adjustment needed + between releases. + (erc-networks--warn-on-connect): New function to warn about the + `networks' module being absent from `erc-modules'. This could + probably run at any time up to and including when the logical IRC + connection is established, but doing so at the process/protocol + boundary seems ideal. + * lisp/erc/erc-sasl.el (erc--register-connection): Defer to base + method instead of calling `erc-login' explicitly. + * lisp/erc/erc.el (erc-generate-new-buffer-name): Don't reconcile + buffer names when networks module not in play. + (erc-format-target-and/or-network): Don't assume networks module + loaded. + * test/lisp/erc/erc-scenarios-base-unstable.el: + (erc-scenarios-networks-no-module): New test. + * test/lisp/erc/resources/networks/no-module/basic.eld: New test data + file. (Bug#60331.) + +2022-12-28 F. Jason Park + + Avoid "already compiled" warning in erc-compat + + * lisp/erc/erc-compat.el (erc-compat--29-auth-source-pass-search): + Don't `byte-compile' sub-29 secrets wrapper. This was especially + noisy in tests. Ditch closed-over vars via HOF instead of suppressing + because compiling emits "unused lexical" warning on Emacs 27. + +2022-12-28 Dmitry Gutov + + (python--treesit-settings): Remove duplicate matcher + + * lisp/progmodes/python.el (python--treesit-settings): Remove + duplicate matcher (which found itself under 'function' in addition + to 'definition'). + +2022-12-28 Eli Zaretskii + + Make last change of w32 GUI dialogs conditional and reversible + + * src/w32term.c (syms_of_w32term) : + New boolean variable. + (w32_initialize): Fix query for visible system caret: 'bool' is a + single-byte data type, whereas SystemParametersInfo wants a BOOL, + which is a 32-bit int. + * src/w32menu.c (simple_dialog_show): Show "Cancel" button only if + 'w32-yes-no-dialog-show-cancel' is non-nil. + + * etc/NEWS: Announce the change. + +2022-12-28 Yuan Fu + + Fix tree-sitter typos + + * doc/lispref/parsing.texi (Tree-sitter major modes): + * lisp/progmodes/java-ts-mode.el: + * test/src/treesit-tests.el (treesit-defun-navigation-nested-4): Fix + typo. + +2022-12-27 Yuan Fu + + Update tree-sitter major modes to use the new Imenu facility + + See previous commit for more explanation. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--defun-name): Handle more + types. + (c-ts-mode--imenu-1) + (c-ts-mode--imenu): Remove functions. + (c-ts-base-mode): Setup Imenu. + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--imenu-1) + (csharp-ts-mode--imenu): Remove functions. + (csharp-ts-mode): Setup Imenu. + * lisp/progmodes/java-ts-mode.el (java-ts-mode--imenu-1) + (java-ts-mode--imenu): Remove functions. + (java-ts-mode): Setup Imenu. + * lisp/progmodes/js.el (js--treesit-imenu-1) + (js--treesit-imenu): Remove functions. + (js--treesit-valid-imenu-entry): New function. + (js-ts-mode): Setup Imenu. + * lisp/progmodes/json-ts-mode.el (json-ts-mode--defun-name): Trim the + quotes. + (json-ts-mode--imenu-1) + (json-ts-mode--imenu): Remove functions. + (json-ts-mode): Setup Imenu. + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--imenu) + (rust-ts-mode--imenu-1): Remove functions. + (rust-ts-mode): Setup Imenu. + * lisp/progmodes/typescript-ts-mode.el: + (typescript-ts-base-mode): Remove treesit-defun-prefer-top-level, it's + not used anymore. Setup Imenu. Setup treesit-defun-name-function. + * lisp/textmodes/css-mode.el (css--treesit-imenu-1) + (css--treesit-imenu): Remove functions. + (css-ts-mode): Setup Imenu. + * lisp/textmodes/toml-ts-mode.el (toml-ts-mode--defun-name): Fix it + and add a fallback. + (toml-ts-mode--imenu-1) + (toml-ts-mode--imenu): Remove functions. + (toml-ts-mode): Setup Imenu. + +2022-12-27 Yuan Fu + + Add tree-sitter helper functions for Imenu + + We didn't add an integration for Imenu because we aren't sure what + should it look like. Now we have a pretty good idea. All the major + modes copy-paste the two Imenu functions and tweaks them in a standard + way. With the addition of treesit-defun-type-regexp and + treesit-defun-name-function, now is a good time to standardize Imenu + integration. + + In the next commit we update all the major modes to use this + integration. + + * doc/lispref/modes.texi (Imenu): Add manual. + * doc/lispref/parsing.texi (Tree-sitter major modes): Update manual. + * lisp/treesit.el (treesit-simple-imenu-settings): New variable. + (treesit--simple-imenu-1) + (treesit-simple-imenu): New functions. + (treesit-major-mode-setup): Setup Imenu. + +2022-12-27 Yuan Fu + + Fix treesit--things-around (bug#60355) + + Current implementation of treesit--things-around only searches forward + for REGEXP and go up the tree until it finds a valid thing, if nothing + matches it gives up. This makes it sometimes miss defuns. The new + implementation tries multiple times (of search forward + go up) until + it exhausts all possible defun nodes. + + * lisp/treesit.el (treesit--things-around): New implementation. + (treesit--navigate-defun): Refactor to use treesit-node-top-level to + simplify code, and add some guards in the predicate function. + * test/src/treesit-tests.el: + (treesit--ert-defun-navigation-elixir-program): New variable. + (treesit-defun-navigation-nested-4): New test. + +2022-12-27 Yuan Fu + + Improve treesit-node-top-level and treesit-parent-until + + * lisp/treesit.el (treesit-node-top-level): Now it can accept a + predicate function. Add an optional argument INCLUDE-NODE. + (treesit-parent-until): Add an optional argument INCLUDE-NODE. + +2022-12-27 Eli Zaretskii + + * src/w32menu.c (simple_dialog_show): Use MB_YESNOCANCEL style. + +2022-12-27 Xi Lu + + Fix htmlfontify.el command injection vulnerability. + + * lisp/htmlfontify.el (hfy-text-p): Fix command injection + vulnerability. (Bug#60295) + +2022-12-27 Rudolf Adamkovič + + Improve support for Scheme R6RS and R7RS libraries (bug#54704) + + * etc/NEWS (Scheme mode): Document improved file-type auto-detection + and Imenu support for R6RS and R7RS Scheme libraries. + * lisp/files.el (auto-mode-alist): Associate the '.sls' (R6RS Scheme + Library Source) and '.sld' (R7RS Scheme Library Definition) file name + extensions with the Scheme mode. + * lisp/progmodes/scheme.el (scheme-imenu-generic-expression): Make + Imenu recognize the members nested (and so indented) inside of + 'library' (R6RS) or 'define-library' (R7RS) forms. + +2022-12-26 Yuan Fu + + Add a new tree-sitter query predicate 'pred' + + I realized that using an arbitrary function as the predicate in + queries is very helpful for some queries I'm writing for python and + javascript, and presumably most other languages[1]. + + Granted, we can already filter out unwanted nodes by using a function + instead of a face for the capture name, and (1) determine whether the + captured node is valid and (2) fontify that node if it's valid. + + However, such approach is a bit more cumbersome and more importantly + gets in the way of another potential use of the fontification queries: + context extraction. + + For example, I could use the query for the 'variable' feature to get + all the variables in a certain region. In this use-case, we want the + filtering happen before returning the captured nodes. + + Besides, the change is relatively small and straightforward: most code + are already there, I just need to add some boilerplate. + + [1] For a code like aa.bb(cc), we want bb to be in function face, + because obviously its a function. But for aa.bb, we want bb to be in + property face, because it's a property. In the AST, bb is always a + property, the difference between the two cases is the enclosing node: + in the first case, aa.bb is in a "call_expression" node, indicating + that bb is used as a function (a method). So we want a predicate + function that checks whether bb is used as a function or a property, + and determine whether it should be in function or property face. + + * doc/lispref/parsing.texi (Pattern Matching): Update manual. + * src/treesit.c (Ftreesit_pattern_expand): Handle :pred. + (treesit_predicate_capture_name_to_node): A new function extracted + from treesit_predicate_capture_name_to_text. + (treesit_predicate_capture_name_to_text): Use the newly extracted + function. + (treesit_predicate_pred): New predicate function. + (treesit_eval_predicates): Add new predicate. Also fix a bug: we want + to AND the results of each predicate. + * test/src/treesit-tests.el (treesit--ert-pred-last-sibling): New + helper function. + (treesit-query-api): Test #pred predicate. + +2022-12-26 Stefan Kangas + + Improve gnutls-min-prime-bits docstring + + * lisp/net/gnutls.el (gnutls-min-prime-bits): Doc fix: delete + out-of-date and now misleading sentence, added back when Emacs' + default minimum prime bits for a Diffie-Hellman handshake was only 256 + bits. These days, the default is nil, which means to let GnuTLS + decide the value. (See also `nsm-protocol-check--dhe-prime-kx`.) + +2022-12-26 Gregory Heytings + + Improve handling of tab-bar height. + + * src/xdisp.c (redisplay_tab_bar): When 'auto-resize-tab-bar' is + not 'grow-only', also consider the case when the tab-bar height + needs to shrink. Fixes bug#60210. + +2022-12-26 Eli Zaretskii + + Simplify last change (bug#60311) + + * src/json.c (json_available_p): Use original code. Always return + true for !WINDOWSNT. + (ensure_json_available): Now defined only on WINDOWSNT. + (Fjson_serialize, Fjson_insert, Fjson_parse_string) + (Fjson_parse_buffer): Call ensure_json_available only on + WINDOWSNT. + + * lisp/subr.el (json-available-p): Simplify. + +2022-12-26 Mattias Engdegård + + Fix 'json-available-p' on MS-Windows + + * src/json.c (json_available_p, ensure_json_available) + (Fjson__available_p): New functions. + (Fjson_serialize, Fjson_insert, Fjson_parse_string) + (Fjson_parse_buffer): Use ensure_json_available. + (syms_of_json): Defsubr json--available-p. + + * lisp/subr.el (json-available-p): Rewrite. + +2022-12-26 Kyle Meyer + + loaddefs-gen: Group results by absolute file name + + loaddefs-generate produced an incomplete output file if 1) it + was called with a relative file name and 2) that same file was + specified via a generated-autoload-file cookie in a subset of + the input files. In that case, autoload entries were lost + because loaddefs-generate writes the same output file twice: + once for the relative name specified by the caller and once + for the absolute name that loaddefs-generate--parse-file + returns for the generated-autoload-file value. + This has been fixed. (Bug#60318) + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Expand file + names when grouping loaddef files. + +2022-12-26 Yuan Fu + + Fix imenu for c-ts-mode (bug#60296) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--imenu-1): Use + c-ts-mode--defun-valid-p to filter out nested matches. + (c-ts-mode--defun-valid-p): Handle more types of nodes. + +2022-12-26 Yuan Fu + + Clean up python-ts-mode font-lock features + + * lisp/progmodes/python.el (python--treesit-settings): Remove + unnecessary override flags, add function and variable feature, fix + assignment feature. + (python--treesit-variable-p) + (python--treesit-fontify-variable): New functions. + (python-ts-mode): Add function and variable feature. + +2022-12-26 Yuan Fu + + Add comment indent and filling to other tree-sitter major modes + + Extract the setup into a function, and use it in other major modes. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode-comment-setup): New function. + (c-ts-base-mode): Extract out. + (c-ts-mode) + (c++-ts-mode): Remove old setup. + + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--indent-rules): New + indent rules. + (csharp-ts-mode): Use new setup function. + * lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): New + indent rules. + (java-ts-mode): Use new setup function. + * lisp/progmodes/js.el (js--treesit-indent-rules): New indent rules. + (js-ts-mode): Use new setup function. + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--indent-rules): New + indent rules. + (rust-ts-mode): Use new setup function. + * lisp/progmodes/typescript-ts-mode.el: + (typescript-ts-mode--indent-rules): New indent rules. + (typescript-ts-base-mode): Use new setup function. + +2022-12-26 Yuan Fu + + Add maintainer stub for tree-sitter files + + * lisp/treesit.el: + * src/treesit.c: Add maintainer. + +2022-12-25 Gregory Heytings + + Remove remaining mentions of 'eval-current-buffer' + + * lisp/emacs-lisp/edebug.el (edebug-all-defs): + * doc/lispref/eval.texi (Eval): + * doc/lispref/edebug.texi (Instrumenting, Edebug Options): + Remove remaining mentions of 'eval-current-buffer', obsoleted in + Emacs 22 and removed in Emacs 26. + +2022-12-25 Kyle Meyer + + Update to Org 9.6-61-g63e073f + +2022-12-25 Philip Kaludercic + + Add heuristic to locate lisp code in source packages + + * lisp/emacs-lisp/package-vc.el (package-vc--unpack): Check if a + "lisp" directory exists and use that instead of PKG-DIR. + + (Bug#60155) + +2022-12-25 Yuan Fu + + Further generalize treesit-defun functions + + Two new functions, treesit-beginning/end-of-thing. And + treesit-thing-at-point's signature changes. + + * lisp/treesit.el (treesit-block-type-regexp): New variable. + (treesit-beginning-of-thing) + (treesit-end-of-thing): Generalized from + treesit-beginning/end-of-defun. + (treesit-beginning-of-defun) + (treesit-end-of-defun): Use the new functions. + (treesit-thing-at-point): Accept PATTERN rather than REGEXP and PRED. + (treesit-defun-at-point): Adjust for the new signature of + treesit-thing-at-point. + +2022-12-25 Yuan Fu + + Generalize treesit-defun functions to "things" + + Change the "defun" in some functions (e.g. treesit--defuns-around) to + "thing". Add a function treesit-thing-at-point. + + * lisp/treesit.el (treesit--thing-unpack-pattern): New subroutine. + (treesit-beginning-of-defun) + (treesit-end-of-defun): Use new function treesit--navigate-thing. + (treesit--defuns-around): Generalize into treesit--thing-around. + (treesit--top-level-defun): Generalize into treesit--top-level-thing. + (treesit--navigate-defun): Generalize into treesit--navigate-thing. + (treesit-thing-at-point): Generalized from treesit-defun-at-point. + (treesit-defun-at-point): Use treesit-thing-at-point to do the work. + +2022-12-25 Philip Kaludercic + + Reorder optional arguments to 'package-vc-install' + + * lisp/emacs-lisp/package-vc.el (package-vc-install-selected-packages): + Update 'package-vc-install' invocation. + (package-vc-install): Reorder and update documentation. + +2022-12-25 Philip Kaludercic + + Handle missing dependencies for source packages + + * lisp/emacs-lisp/package-vc.el (package-vc-install-dependencies): Add + new function. + (package-vc--unpack-1): Call 'package-vc-install-dependencies' instead + of 'package-compute-transaction' and 'package-download-transaction'. + + It is unreasonable to abort the installation, since we cannot expect + all dependencies to be available in the regular archives. Instead we + note which packages couldn't be found, and warn the user that these + will be missing. + +2022-12-24 Yuan Fu + + Fix c-ts-mode imenu defun name (bug#60296) + + Extract out c-ts-mode--declarator-identifier from + c-ts-mode--fontify-declarator. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--declarator-identifier): New + function. + (c-ts-mode--fontify-defun): Extract out. + (c-ts-mode--defun-name): Use the new function. + +2022-12-24 Yuan Fu + + Fix treesit--children-covering-range-recurse (bug#60301) + + * lisp/treesit.el (treesit--children-covering-range-recurse): Always + return a list of node. + +2022-12-24 Yuan Fu + + Support treesit-defun-name in tree-sitter major modes + + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--defun-name): New + function. + (csharp-ts-mode--imenu-1): Extract into new function. + (csharp-ts-mode): Setup treesit-defun-name-function. + * lisp/progmodes/java-ts-mode.el (java-ts-mode--defun-name): New + function. + (java-ts-mode--imenu-1): Extract into new function. + (java-ts-mode): Setup treesit-defun-name-function. + * lisp/progmodes/js.el (js-treesit-current-defun): Remove function. + This function is not used (for a while already). + (js--treesit-defun-name): New function. + (js--treesit-imenu-1): Extract into new function. + (js-ts-mode): Setup treesit-defun-name-function. + * lisp/progmodes/json-ts-mode.el (json-ts-mode--defun-name): New + function. + (json-ts-mode--imenu-1): Extract into new function. + (json-ts-mode): Setup treesit-defun-name-function. + * lisp/progmodes/python.el (python--treesit-defun-name): New function. + (python--imenu-treesit-create-index-1): Extract into new function. + (python-ts-mode): Setup treesit-defun-name-function. + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--defun-name): New + function. + (rust-ts-mode--imenu-1): Extract into new function. + (rust-ts-mode): Setup treesit-defun-name-function. + * lisp/textmodes/css-mode.el (css--treesit-defun-name): New function. + (css--treesit-imenu-1): Extract into new function. + (css-ts-mode): Setup treesit-defun-name-function. + * lisp/textmodes/toml-ts-mode.el (toml-ts-mode--get-table-name): + Remove function. + (toml-ts-mode--defun-name): New function. + (toml-ts-mode--imenu-1): Extract into new function. + (toml-ts-mode): Setup treesit-defun-name-function. + +2022-12-24 Yuan Fu + + Add treesit-defun-name and friends + + 1. We now have treesit-defun-name, powered by + treesit-defun-name-function. + 2. We now have treesit-add-log-current-defun, which powers + add-log-current-defun. + 3. c-ts-mode updates its code to take advantage of these new features. + 4. Manual updates. + + * doc/lispref/parsing.texi (Tree-sitter major modes): Add manual for + new functions. + * lisp/progmodes/c-ts-mode.el (c-ts-mode--defun-name): New function. + (c-ts-mode--imenu-1): Extract out into c-ts-mode--defun-name. + (c-ts-base-mode): Setup treesit-defun-name-function. + * lisp/treesit.el (treesit-defun-name-function) + (treesit-add-log-defun-delimiter): New variables. + (treesit-defun-at-point) + (treesit-defun-name): New functions. + (treesit-major-mode-setup): Setup add-log-current-defun-function. + +2022-12-24 Yuan Fu + + Make treesit-node-at/on guess language at point + + If PARSER-OR-LANG is nil, it makes more sense to guess the language at + point by treesit-language-at than to simply use the first parser in + the parser list. + + * doc/lispref/parsing.texi (Retrieving Nodes): Update manual. + * lisp/treesit.el (treesit-node-at) + (treesit-node-on): Guess language at point. Update docstring. + (treesit-buffer-root-node): Update docstring. + +2022-12-24 Óscar Fuentes + + * nt/INSTALL.W64: update instructions for setting up W64 environment + +2022-12-24 Eli Zaretskii + + Revert "; Bump minimum supported Windows version for MinGW64 to Windows 10." + + This reverts commit 75155e458601a3597d382660d0be863ab4d512c0. + Evidently, some MSYS2/MinGW64 folks still think Windows 8.1 + is the minimum supported version, even though MinGW-w64 switched + to Windows 10 as the default target in January 2022. + +2022-12-24 Eli Zaretskii + + Fix definition of CNS 11643-15 charset + + * lisp/international/mule-conf.el (chinese-cns11643-15): Fix + :code-offset value. (Bug#60275) + * lisp/international/characters.el: Add chinese-cns11643-15 to + charsets whose characters have categories c and C. + +2022-12-24 Yuan Fu + + Improve c-ts-mode block comment indent (bug#60270) + + Now it handles stuff like (backslashes added to not confuse + authors.el) + + /** + \* @some_func: + \* @arg1: + \*/ + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Use new + matcher and anchor. + (c-ts-mode--looking-at-star): New matcher. + (c-ts-mode--comment-start-after-first-star): New anchor. + +2022-12-24 Yuan Fu + + Fix block comment indent and filling for c-ts-mode (bug#59763) + + Now indent and filling works like in c-mode. The only noticeable + missing piece is that the "*/" is not attached to the last sentence + when filling. c-mode does it by replacing whitespaces between the + "*/" and the end of the last sentence with xxx, fill it, then change + the xxx back. I don't know if we should do that in c-ts-mode's filling. + + * doc/lispref/modes.texi (Parser-based Indentation): Add new preset. + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Add new + indent rule. + (c-ts-mode--fill-paragraph): New function. + (c-ts-base-mode): Setup paragraph-start, adaptive-fill, etc. + * lisp/treesit.el (treesit-simple-indent-presets): Add new preset. + +2022-12-24 Yuan Fu + + Fix treesit_cursor_helper (bug#60267) + + The cause of that bug is that in a particular parse tree, the node + treesit_cursor_helper tries to go to is a missing node, not only is it + a missing node, it is the first node of a subtree. So when + treesit_cursor_helper follows the algorithm and goes down the tree, it + goes down the previous subtree (because that subtree's end = end_pos, + because the target node has zero width). + + o + | + o--+-o + | | + +-+ +-+-+ + | | | | | + o x t o o + + (We ended up in x when the target is t, because t has zero width.) + + One way to solve it is to go back up the tree if we are at a leaf node + and still haven't matched the target node. That's too ugly and + finicky so I resorted to recursion. Now one more functions will + return give up (treesit_node_parent) if we are in a weird parse tree + that is super deep. But since we already kind of give up on this kind + of parse trees (bug#59426), it doesn't really hurt. + + * src/treesit.c (treesit_cursor_helper_1): New function. + (treesit_cursor_helper): Use the new function. Change return type to + bool, and accept a cursor pointer. + + (Ftreesit_node_parent) + (Ftreesit_search_subtree) + (Ftreesit_search_forward) + (Ftreesit_induce_sparse_tree): Use the new signature. + +2022-12-24 Paul Eggert + + Fix restart-emacs alarms (Bug#60220) + + * src/emacs.c (Fkill_emacs): Turn timers off before execing, + so that the re-execed Emacs doesn’t get a timer alarm. + +2022-12-24 Florian Weimer + + Fix alternate stack test in configure + + * configure.ac (emacs_cv_alternate_stack): Include + for 'malloc's prototype. + +2022-12-24 Xi Lu + + Add more functions to "string" shortdoc + + * lisp/emacs-lisp/shortdoc.el: Add 'string-or-null-p', + 'char-or-string-p', 'char-uppercase-p'. (Bug#60279) + +2022-12-24 Yaraslau Tamashevich (tiny change) + + Make the Contour terminal an alias of xterm-256color + + * lisp/faces.el (term-file-aliases): Make the Contour terminal an + alias of xterm-256color. (Bug#60278) + +2022-12-24 glacials (tiny change) + + Correct wrong info in (info)Go to node + + The node (info)Go to node in the Info manual states that 'g' + does not allow the use of abbreviations, however it does. + To test this, type 'gt' from this node and see that it takes + you to (info)Top, then type 'ggo' and see that it takes + you back to (info)Go to node. Tested on emacs 28.2. + * doc/misc/info.texi (Go to node): Fix inaccurate information. + (Bug#60263) + +2022-12-24 Eli Zaretskii + + Fix typo in TUTORIAL.fr (bug#60261) + + * etc/tutorials/TUTORIAL.fr: Fix typo. Reported by + Clément Escude--Cotinat . + +2022-12-24 Daniel Martín + + Add some diff-fixup-modifs tests + + * test/lisp/vc/diff-mode-tests.el (diff-mode-test-fixups-added-lines): + Test that diff-mode fixes patches with added lines correctly. + * test/lisp/vc/diff-mode-tests.el (diff-mode-test-fixups-empty-hunks): + Ditto for patches with empty hunks. (Bug#60259) + +2022-12-24 Ulrich Müller + + Fix quoted argument in emacsclient-mail.desktop Exec key + + Apparently the emacsclient-mail.desktop file doesn't conform to the + Desktop Entry Specification at + https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#exec-variables + which says about the Exec key: + + | Field codes must not be used inside a quoted argument, the result of + | field code expansion inside a quoted argument is undefined. + + However, the %u field code is used inside a quoted argument of the + Exec key in both the [Desktop Entry] and [Desktop Action new-window] + sections. + * etc/emacsclient-mail.desktop (Exec): The Desktop Entry + Specification does not allow field codes like %u inside a quoted + argument. Work around it by passing %u as first parameter ($1) + to the shell wrapper. + * etc/emacsclient.desktop (Exec): Use `sh` rather than `placeholder` + as the command name of the shell wrapper. (Bug#60204) + +2022-12-24 Richard Hansen + + ert-x: Move window selection logic to its own macro + + * lisp/emacs-lisp/ert-x.el (ert-with-buffer-selected): New macro to + temporarily display a buffer in a selected window and evaluate a body. + (ert-with-test-buffer-selected): Use the new macro. + * test/lisp/whitespace-tests.el + (ert-test-with-buffer-selected/current) + (ert-test-with-buffer-selected/selected) + (ert-test-with-buffer-selected/nil-buffer) + (ert-test-with-buffer-selected/modification-hooks) + (ert-test-with-buffer-selected/read-only) + (ert-test-with-buffer-selected/return-value): Add tests. + (Bug#60189) + +2022-12-24 Po Lu + + Fix crash after X error + + * src/xdisp.c (redisplay_internal): Catch another crash if + gcscrollbars after an X error. + +2022-12-23 Xi Lu + + Fix ruby-mode.el local command injection vulnerability (bug#60268) + + * lisp/progmodes/ruby-mode.el + (ruby-find-library-file): Fix local command injection vulnerability. + +2022-12-23 Eli Zaretskii + + Fix "C-h k" in recursive minibuffers + + * lisp/subr.el (event--posn-at-point): Leave POSN alone if it + doesn't have at least 6 members. This follows more faithfully + what 'event-start' and 'event-end' did before they started using + this function, see commit c1cead89f5f. Call posn-at-point with + the minibuffer-window when in the minibuffer. (Bug#60252) + +2022-12-22 Sean Whitton + + vc-git-checkin: Don't try to apply an empty patch + + * lisp/vc/vc-git.el (vc-git-checkin): Don't try to apply an empty + patch to the index, because in that case 'git apply' fails. + + (cherry picked from commit 1424342225ef5b18c630364dd88e004f4ebb1c7f) + +2022-12-22 Michael Albinus + + Update Tramp version (don't merge with master) + + * doc/misc/trampver.texi: + * lisp/net/trampver.el: Change version to "2.6.0.29.1". + (customize-package-emacs-version-alist): + Adapt Tramp version integrated in Emacs 29.1. + +2022-12-22 João Távora + + Eglot: eglot--servers-by-xrefed-file doesn't need to be value-weak + + * lisp/progmodes/eglot.el (eglot--servers-by-xrefed-file): Doesn't + need to be weak. + +2022-12-22 João Távora + + Prevent stale servers when using eglot-extend-to-xref + + A weak-valued hash-table is not enough to guarantee that a reference + to a zombie server in eglot--servers-by-xrefed-file variable won't + survive long enough to confuse the next call to eglot--current-server + in some buffers. + + So, before this fix it was common to get "Process EGLOT ... not + running" errors if some xref-extended buffers (like system libraries) + were open and M-x eglot-reconnect was issued. This should be + prevented now. + + Note however, that even after this the eglot-extend-to-xref logic is + still flawed. For example, if a buffer for the xref-extended buffer + happens to be already visited by the time M-. is issued to navigate to + it, Eglot won't be activated. A half-decent workaround is to kill the + buffer and re-visit it. + + * lisp/progmodes/eglot.el (eglot--servers-by-xrefed-file): Move + up. + (eglot--on-shutdown): Make sure to cleanup + eglot--servers-by-xrefed-file. + +2022-12-22 Xi Lu + + * etc/tutorials/TUTORIAL.cn: Fix typos. (Bug#60221) + +2022-12-22 Benson Chu (tiny change) + + Add alias for removed font-lock function + + As part of 18947103fabf8070738b3bd9c5a8d02f90988a3d, + `font-lock-fontify-syntactically-region' was renamed to + `font-lock-default-fontify-sytactically'. + + * lisp/font-lock.el (font-lock-fontify-syntactically-region): Add + obsolete alias for the renamed function. + +2022-12-22 Yuan Fu + + Set beginning/end-of-defun-function in treesit-major-mode-setup + + * lisp/treesit.el (treesit-major-mode-setup): Set them. + +2022-12-22 Yuan Fu + + Add treesit-defun-at-point and fix c-ts-mode-indent-defun + + * lisp/treesit.el (treesit-defun-at-point): New function. + * lisp/progmodes/c-ts-mode.el (c-ts-mode-indent-defun): Implement with + treesit-defun-at-point. + +2022-12-22 Juri Linkov + + Use the new keyword ':repeat' in repeatable keymaps. + + * lisp/bindings.el (undo-repeat-map) + (buffer-navigation-repeat-map, next-error-repeat-map) + (page-navigation-repeat-map): + * lisp/comint.el (comint-repeat-map): + * lisp/dired.el (dired-jump-map): + * lisp/outline.el (outline-navigation-repeat-map) + (outline-editing-repeat-map): + * lisp/shell.el (shell-repeat-map): + * lisp/tab-bar.el (tab-bar-switch-repeat-map) + (tab-bar-move-repeat-map): + * lisp/window.el (other-window-repeat-map) + (resize-window-repeat-map): + * lisp/winner.el (winner-repeat-map): + * lisp/eshell/em-prompt.el (eshell-prompt-repeat-map): + * lisp/eshell/esh-mode.el (eshell-command-repeat-map): + Add the keyword ':repeat' to 'defvar-keymap' instead of + setting the symbol property 'repeat-map' explicitly. + + * lisp/keymap.el (defvar-keymap): Check for 'props' + that is used in 'defvar-form'. + +2022-12-21 Jim Porter + + When redirecting in Eshell, check for "/dev/null" specifically + + This is so that users can type "cmd ... > /dev/null" in Eshell no + matter what their system's null device is called. (Users can still + use their system's null device name when redirecting, too. Eshell + doesn't need to do anything special to support that.) This partially + reverts 67a8bdb90c9b5865b7f17290c7135b1a5458c36d. See bug#59545. + + Do not merge to master. + + * lisp/eshell/esh-io.el (eshell-set-output-handle): Use "/dev/null" + literally. + +2022-12-21 Andrea Corallo + + * Invoke spawned Emacs processes with '-Q' when native compiling (bug#60208) + + * lisp/emacs-lisp/comp.el (comp-final): Invoke spawned Emacs with '-Q'. + (comp-run-async-workers): Likewise. + +2022-12-21 montag451 (tiny change) + + Fix Eshell electric slash when used from the root directory of a remote host + + * lisp/eshell/em-elecslash.el (eshell-electric-forward-slash): Insert + the remote prefix as determined by 'file-remote-p'. + +2022-12-21 Eli Zaretskii + + Fix the --without-all build with tree-sitter + + * configure.ac (HAVE_TREE_SITTER): Set NEED_DYNLIB=yes, since + tree-sitter support requires dynlib.o. (Bug#60061) + +2022-12-21 Eli Zaretskii + + Fix write-region to null device on MS-Windows + + * src/fileio.c (write_region) [WINDOWSNT]: Ignore EBADF errors + from fsync -- this means fsync is not supported for this file. + Happens, for example, with the null device. (Bug#59545) + +2022-12-21 Alexander Adolf + + message: Do not default to eudc-capf-complete yet + + * lisp/gnus/message.el (message-mode): No longer add + eudc-capf-complete to the buffer-local value of + completion-at-point-functions. (Bug#59314) + +2022-12-21 Richard Hansen + + whitespace: Avoid mutating original buffer's markers in clones + + * lisp/whitespace.el (whitespace--clone): New hook function that is + run after cloning a buffer that copies `whitespace-bob-marker' and + `whitespace-eob-marker' and changes the copies to point to the new + buffer (Bug#59618). + (whitespace-color-on): Register the hook function. + (whitespace-color-off): Unregister the hook function. + + * test/lisp/whitespace-tests.el + (whitespace-tests--with-test-buffer): New macro. + (whitespace-tests--check-markers): New function. + (whitespace-tests--indirect-clone-breaks-base-markers) + (whitespace-tests--indirect-clone-markers) + (whitespace-tests--regular-clone-markers): New tests. + +2022-12-20 Charl P. Botha (tiny change) + + Fix empty pairs in js tree-sitter imenu alist (bug#59945) + + The current js--treesit-imenu, used by the JavaScript, TypeScript and + TSX tree-sitter modes, would return empty pairs in the imenu alist if + there were none of that type of symbol. + + This would break both the built in imenu and also packages like + consult-imenu. + + See https://github.com/minad/consult/issues/697 for the discussion + there. + + * lisp/progmodes/js.el (js--treesit-imenu): Don't add nil indexes. + +2022-12-20 Juri Linkov + + * lisp/repeat.el: Fix repeat-keep-prefix to allow customizing it to non-nil. + + * lisp/repeat.el (repeat-keep-prefix): Add or remove + 'repeat-pre-hook' depending on the customized value. + (repeat-mode): Add or remove 'repeat-pre-hook' to/from + 'pre-command-hook' when 'repeat-keep-prefix' is non-nil. + (repeat-pre-hook): New function. + (repeat-get-map, repeat-check-map): New function refactored from + 'repeat-post-hook'. + (repeat-post-hook): Move some code to smaller functions. + (describe-repeat-maps): Set outline-regexp without ^L. + + * test/lisp/repeat-tests.el (repeat-tests-keep-prefix): + Uncomment test case that is fixed now in bug#51281 and bug#55986. + +2022-12-20 Daniel Martín + + Correct capitalization of Lisp in the manual (bug#60222) + + * doc/lispref/compile.texi (Native-Compilation Functions): Fix typo. + +2022-12-20 Brian Leung + + eglot.el: Add vscode-json-languageserver to eglot-server-programs + + * lisp/progmodes/eglot.el (eglot-server-programs): Add the + alternative name of the vcscode JSON server. (Bug#60198) + +2022-12-19 Juri Linkov + + * lisp/progmodes/project.el (project--read-file-cpd-relative): Optimize. + +2022-12-19 Dmitry Gutov + + ruby-method-params-indent: New user option + + * lisp/progmodes/ruby-mode.el (ruby-method-params-indent): + New option (bug#60110). + + (ruby-smie-rules): Use it. + + * etc/NEWS: Mention it. + + * test/lisp/progmodes/ruby-mode-resources/ruby.rb: + Ensure the var's value is default. + + * test/lisp/progmodes/ruby-mode-resources/ruby-method-params-indent.rb: + New file. + + * test/lisp/progmodes/ruby-mode-tests.el (ruby-deftest-indent): + New macro, use it to run the indentation test using the new file. + Disable the :expensive-test tag, because neither runs for "longer + than some few seconds", both take significantly below 1s. + +2022-12-19 Juri Linkov + + * lisp/progmodes/project.el: Filter out empty strings from history (bug#58447) + + (project--read-file-cpd-relative): Do not include empty strings (when + prefix has the same length as the string). + +2022-12-19 Eli Zaretskii + + Fix storing email into nnmail by Gnus + + * lisp/gnus/nnml.el (nnml--encode-headers): Wrap + 'rfc2047-encode-string' calls with 'ignore-errors', to avoid + disrupting email workflows due to possibly-invalid headers. + Reported by Florian Weimer . + +2022-12-19 Richard Hansen + + whitespace: Fix unintended change in buffer modification status + + * lisp/whitespace.el (whitespace--empty-at-bob-matcher) + whitespace--empty-at-eob-matcher, whitespace--update-bob-eob): + Silently add the `font-lock-multiline' text property when + highlighting beginning-of-buffer and end-of-buffer empty lines + to prevent Emacs from running modification hooks or considering + the buffer to be modified (Bug#60066). + + * test/lisp/whitespace-tests.el + (whitespace-tests--empty-bob-eob-modified): Add a regression test. + +2022-12-19 Eli Zaretskii + + Make emacsclient add abbreviated file names to file-name-history + + * lisp/server.el (server-visit-files): Use + 'file-name-history--add' to add the visited files to history. + (Bug#60097) + +2022-12-19 Mattias Engdegård + + Repair setopt test after error demotion to warning + + * test/lisp/cus-edit-tests.el (test-setopt): + Check for a warning instead of an error in attempt to call `setopt` + with a value that does not match the declared type (bug#60162). + +2022-12-18 Dmitry Gutov + + ruby-mode: Support endless singleton method definitions too + + * lisp/progmodes/ruby-mode.el (ruby-endless-method-head-re): + Update to match not only 'self.' but 'xyz.' as well (bug#54702). + + * test/lisp/progmodes/ruby-mode-resources/ruby.rb (Bar#foo=): + Update example. + +2022-12-18 Yuan Fu + + Remove comment-start-skip preset in tree-sitter indentation engine + + Comment indentation should use a adaptive-fill-based indent, rather + than comment-start-skip. + + Also remove manual description of removed variables in treesit.el and + add documentation for n-p-gp upon request. + + * doc/lispref/modes.texi (Parser-based Indentation) + * lisp/treesit.el (treesit-simple-indent-presets): Add n-p-gp, remove + treesit-comment-start/end, remove comment-start-skip. + + * doc/lispref/parsing.texi (Tree-sitter major modes): Remove + treesit-comment-start/end. + +2022-12-18 Michael Albinus + + Fix recent change in tramp-smb.el + + * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist): + Ignore `make-directory-internal'. + (tramp-smb-handle-make-directory): Move implementation from + `tramp-smb-handle-make-directory-internal' here. + + * lisp/net/tramp.el (tramp-file-name-for-operation): + Rearrange `make-directory-internal'. + +2022-12-18 Michael Albinus + + Make tramp-archive autoloads robust for older Emacs versions + + * lisp/net/tramp-archive.el (tramp-archive-file-name-regexp): + Use `eval-when-compile'. Set it explicitly for older Emacs versions. + +2022-12-18 Dmitry Gutov + + ruby-mode: Support endless methods (bug#54702) + + * lisp/progmodes/ruby-mode.el (ruby-endless-method-head-re): + New constant. + (ruby-smie-grammar): New token. + (ruby-smie--forward-token, ruby-smie--backward-token): + Recognize it. + (ruby-smie-rules): Indentation support. + (ruby-add-log-current-method): Support here too. + + * test/lisp/progmodes/ruby-mode-tests.el + (ruby-add-log-current-method-after-endless-method): New test. + + * test/lisp/progmodes/ruby-mode-resources/ruby.rb: New examples. + +2022-12-18 Philip Kaludercic + + * lisp/cus-edit.el (setopt--set): Warn instead of raising an error + + (Bug#60162) + +2022-12-18 Philip Kaludercic + + Allow customizing windmove user options with an empty prefix + + * lisp/windmove.el (windmove--default-keybindings-type): Handle nil + as a prefix value. (Bug#60161) + +2022-12-18 Gregory Heytings + + Improve and extend admin/git-bisect-start + + * admin/git-bisect-start: Use 'git bisect skip' instead of 'git + bisect good' for merges of external trees, which is equivalent but + faster in some cases. Improve the explanation on external tree + merges. Add list of commits in the last six years on which + building Emacs fails, and call 'git bisect skip' on them. Also + document how the script can be called automatically when 'git + bisect start' is called in the Emacs repository. + + * admin/notes/repo (Bisecting): Adapt the explanation of the + script accordingly. + +2022-12-18 Andrea Monaco + + Make 'rmail-summary-by-thread' faster + + * lisp/mail/rmailsum.el (rmail-summary-message-parents-vector) + (rmail-summary-message-descendants-vector): Doc fixes. + (rmail-summary-message-descendants-vector): New variable. + (rmail-summary-fill-message-parents-and-descs-vectors): Renamed + from 'rmail-summary-fill-message-parents-vector' and rewritten. + (rmail-summary-direct-descendants): Function deleted. + +2022-12-18 Po Lu + + Fix the MS-DOS build + + * src/lread.c (syms_of_lread): Make the MS-DOS build work again. + +2022-12-18 Eli Zaretskii + + Avoid crashes in PGTK build due to signal in 'note_mouse_highlight' + + * src/xdisp.c (string_buffer_position): Make sure the TO argument + of 'string_buffer_position_lim' is always inside [BEGV..ZV]. + Otherwise 'string_buffer_position_lim' might call + 'get-char-property' and friends with invalid position, which will + just signal an error and do nothing useful. (Bug#60144) + +2022-12-18 Eli Zaretskii + + Fix MS-Windows build broken by recent treesit.c changes + + * src/treesit.c (init_treesit_functions, ts_tree_cursor_copy) + (ts_tree_cursor_delete): Add boilerplate for using new tree-sitter + functions. + (ts_node_parent): Delete boilerplate of unused function. + +2022-12-17 Theodor Thornhill + + Fix wrong capture in typescript-ts-mode (bug#60167) + + An example of the issue could be: + + + {({ active }) => ( + link + ? {text} + : {text} + )} + + + Here 'link' as well as a lot of the other constructs inside of the + parenthesized expression will be font-locked with + 'font-lock-variable-name-face'. We only want to capture the + identifier. + + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--font-lock-settings): Make the variable capture + only capture the identifier, and not the whole expression. + +2022-12-17 Randy Taylor + + Add rust-ts-mode (Bug#60136) + + * etc/NEWS: Mention it. + * lisp/progmodes/eglot.el (eglot-server-programs): Add it. + * lisp/progmodes/rust-ts-mode.el: New major mode with + tree-sitter support. + +2022-12-17 Theodor Thornhill + + Indentation fixes for jsx/tsx (bug#60169) + + * lisp/progmodes/js.el (js--treesit-indent-rules): Simplify the rules. + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--indent-rules): Simplify the rules. + +2022-12-17 Theodor Thornhill + + Fix treesit-query-validate problem with view-mode + + * lisp/treesit.el (treesit-query-validate): Move the (view-mode) into + the correct scope. + +2022-12-17 Yuan Fu + + Use cursor API in treesit-node-parent + + This is the last part of the change that fixes bug#60054. The + previous change fixes it for searching functions, this fixes for + treesit-node-parent. + + * src/treesit.c (Ftreesit_node_parent): Use the new cursor API. + +2022-12-17 Yuan Fu + + Switch to use cursor API in treesit.c + + ts_node_parent has bugs (bug#60054), using cursor API avoids that. + Tree-sitter's author might remove ts_node_parent in the future, so + might as well switch to use cursors now. We are basically + reimplementing some of the logic of ts_node_prev_sibling and + ts_node_parent in the sibling helper and cursor helper functions. + + See also https://github.com/tree-sitter/tree-sitter/issues/1992 + + * src/treesit.c (treesit_traverse_sibling_helper) + (treesit_traverse_child_helper) + (treesit_traverse_match_predicate): Reimplemented to use the cursor API. + (treesit_search_dfs) + (treesit_search_forward): Use the new cursor helper functions. + (Ftreesit_search_subtree) + (Ftreesit_search_forward) + (Ftreesit_induce_sparse_tree): Use cursors. + + * test/src/treesit-tests.el (treesit-search-subtree): New test. + (treesit--ert-search-setup): New macro. + (treesit-search-forward) + (treesit-search-forward-named-only) + (treesit-search-backward) + (treesit-search-backward-named-only) + (treesit-cursor-helper-with-missing-node): New tests. + +2022-12-17 Yuan Fu + + Add treesit_assume_true and treesit_cursor_helper + + This is part 1 of the change to change node API to cursor API. See + the second part for more detail. (I split the change to make the + diff more sane.) + + * src/treesit.c (treesit_assume_true) + (treesit_cursor_helper): New functions. + +2022-12-17 Paul Eggert + + Remove file-exists-in-trash-p + + * lisp/files.el (file-exists-in-trash-p): Remove, as this name is + not suitable for users. All uses replaced by file-attributes, + which is good enough here. + +2022-12-17 Kyle Meyer + + Update to Org 9.6-49-g47d129 + +2022-12-17 Paul Eggert + + Don’t assume make-directory handler returns nil + + * lisp/files.el (make-directory): Ignore what the make-directory + handler returns, as its return value was not documented in Emacs 28. + +2022-12-17 Paul Eggert + + Fix copy-directory bug when dest dir exists + + * lisp/files.el (copy-directory): Set ‘follow’ depending on + whether we made the directory, not based on a guess that is + sometimes wrong. When NEWNAME is a directory name and + COPY-CONTENTS is nil, do not object merely because the adjusted + NEWNAME is already a directory. (Bug#58919). + * test/lisp/files-tests.el (files-tests-copy-directory): + Test for the bug. + +2022-12-17 Paul Eggert + + make-directory now returns t if dir already exists + + This new feature will help fix a copy-directory bug (Bug#58919). + Its implementation does not rely on make-directory handlers + supporting the new feature, as it no longer uses a make-directory + handler H in any way other than (funcall H DIR), thus using + only the intersection of the old and new behavior for handlers. + This will give us time to fix handlers at our leisure. + * lisp/files.el (files--ensure-directory): New arg MKDIR. + All uses changed. + (files--ensure-directory, make-directory): + Return non-nil if DIR is already a directory. All uses changed. + * test/lisp/files-tests.el (files-tests-make-directory): + Test new return-value convention. + +2022-12-17 Paul Eggert + + Use make-directory handlers uniformly + + Formerly, the code supported both make-directory and + make-directory-internal handlers. This led to confusion and meant than + in a few cases (nnmaildir, ido) remote directories could not be used in + some cases. Fix this by using only make-directory handlers. + + Perhaps there used to be a reason for why there were both + make-directory and make-directory-internal handlers, but whatever that + reason was, it seems to have vanished even before now. + + There is no longer any need for make-directory-internal handlers, as + the few remaining callers that use make-directory-internal do so only + when there are no handlers. However, this change keeps the existing + make-directory-internal handlers for now, in case this code is ever + used in older Emacs versions that still call those handlers. + + * lisp/gnus/nnmaildir.el (nnmaildir--mkdir): + * lisp/ido.el (ido-file-internal): + * lisp/net/tramp-smb.el (tramp-smb-handle-make-directory): + Use make-directory, not make-directory-internal. + * lisp/net/tramp-smb.el (tramp-smb-handle-make-directory-internal): + Now obsolete. + * src/fileio.c (Fmake_directory_internal): Do not look for or + use a make-directory-internal handler. + * test/lisp/files-tests.el: + (files-tests-file-name-non-special-make-directory-internal): + Remove, as this test incorrectly assumes that make-directory-internal + must support handlers. + +2022-12-17 Eli Zaretskii + + Improve documentation of 'file-exists-p' + + * doc/lispref/files.texi (Testing Accessibility): Document better + how to test for existing dangling symlinks. (Bug#60146) + +2022-12-17 Eli Zaretskii + + Fix resizing of mini-windows by 'set-minibuffer-message' + + * src/xdisp.c (redisplay_window): Always resize mini-windows + displaying the active minibuffer. (Bug#60015) + +2022-12-17 Eli Zaretskii + + Prevent Abort dialogs from async-compiling jobs on Windows + + * lisp/emacs-lisp/comp.el (comp-run-async-workers): Disable Abort + dialog popping in the sub-processes that perform async + compilation, by passing w32-disable-abort-dialog=t on their + command line. + +2022-12-17 Eli Zaretskii + + Fix 'window-max-chars-per-line' when there are no fringes + + * lisp/window.el (window-max-chars-per-line): Fix the way we + account for the fringes by calling 'window-fringes'. (Bug#59963) + +2022-12-16 Dmitry Gutov + + ruby-mode: Recognize instance or global var as first arg in parenless call + + * lisp/progmodes/ruby-mode.el (ruby-smie--args-separator-p): + Recognize instance or global var as first arg in parenless call. + + * test/lisp/progmodes/ruby-mode-resources/ruby.rb: Add example. + +2022-12-16 Dmitry Gutov + + Fix end-of-defun in ruby-mode + + * lisp/progmodes/ruby-mode.el (ruby-beginning-of-defun): + Return t in case of success. + +2022-12-16 Yuan Fu + + Remove treesit-defun-prefer-top-level and friends + + Because they are not used anymore, after the new defun navigation is + installed. + + * lisp/treesit.el (treesit-defun-prefer-top-level) + (treesit--defun-maybe-top-level): Remove. + +2022-12-16 Randy Taylor + + Add yaml-ts-mode (Bug#60105) + + * admin/notes/tree-sitter/build-module/batch.sh: + * admin/notes/tree-sitter/build-module/build.sh: Add yaml support. + * etc/NEWS: Mention it. + * lisp/textmodes/yaml-ts-mode.el: New major mode with + tree-sitter support. + * lisp/progmodes/eglot.el (eglot-server-programs): Add it. + +2022-12-16 Jostein Kjønigsen + + Fix indentation in json-ts-mode (bug#60123) + + * lisp/progmodes/json-ts-mode.el + (json-ts--indent-rules): Add indentation rules for arrays. + +2022-12-16 Eli Zaretskii (tiny change) + + New input method 'cyrillic-chuvash' + + * lisp/leim/quail/cyrillic.el ("cyrillic-chuvash"): New input + method, contributed by flashymittens@tutanota.com. (Bug#60023) + +2022-12-16 Juanma Barranquero + + Backport: ; * lisp/bs.el: Small doc and whitespace fixes + + (cherry picked from commit 8624734504af4572525665c713a47e1b6f439a2c) + +2022-12-16 Eli Zaretskii + + Revert "alist-get testfn argument evaluation correction" + + This reverts commit 17d65c99cd812e085d85f790c83ec0d540490a55. + + Please don't install unnecessary improvements on the release + branch. + +2022-12-16 Eli Zaretskii + + Revert "Elide broken but unnecessary `if` optimizations" + + This reverts commit 13aa376e93564a8cf2ddbbcf0968c6666620db89. + + Please don't install anything on the release branch that is + not a clear bugfix for a known bug. + +2022-12-16 Eli Zaretskii + + Revert "Use equal and member instead of eq and memq" + + This reverts commit f4b430140f0866f98bbf18b7094348dc64032813. + + Please don't install anything on the release branch that is not + strictly necessary for Emacs 29. + +2022-12-16 Mattias Engdegård + + Use equal and member instead of eq and memq + + * lisp/cedet/semantic/complete.el (semantic-displayer-show-request): + * lisp/descr-text.el (describe-char-categories): + * lisp/mh-e/mh-identity.el (mh-select-identity): + * lisp/transient.el (transient--delay-post-command) + (transient--post-command): + * lisp/vc/vc-git.el (vc-git-create-tag): + * test/lisp/emacs-lisp/cl-lib-tests.el + (cl-lib-nth-value-test-multiple-values): + * lisp/emulation/viper-cmd.el (viper-preserve-cursor-color): + Use `equal` instead of `eq` and `member` instead of `memq` where + the comparison is with literals without guaranteed identity. + In some cases this change corrects evident bugs, in others it is + mostly cosmetic. + +2022-12-16 Mattias Engdegård + + Elide broken but unnecessary `if` optimizations + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-if): + Remove explicit clauses purposing to simplify + + (if X nil t) -> (not X) + (if X t nil) -> (not (not X)) + + but never did so because of a coding mistake (eq instead of equal), + found by a recently added warning. They weren't actually needed + thanks to the optimiser's fixpoint iteration: we eventually get the + same results through + + (if X nil t) -> (if (not X) t nil) -> (if (not X) t) -> (not X) + (if X t nil) -> (if X t) -> (not (not X)) + +2022-12-16 Mattias Engdegård + + alist-get testfn argument evaluation correction + + * lisp/emacs-lisp/gv.el (alist-get): + Evaluate TESTFN exactly once (previously up to 3 times). + Reduce the macro-expansion to include a call to either assoc or assq, + not both; this reduces the generated code size in some cases. + +2022-12-16 Eli Zaretskii + + * lisp/term/xterm.el (xterm-function-map): Add M-SPC. (Bug#60077) + +2022-12-16 Eli Zaretskii + + Fix moving to trash files that overwrite dangling symlinks there + + * lisp/files.el (file-exists-in-trash-p): New function. + (move-file-to-trash): Use it instead of 'file-exists-p' when + testing whether the file exist in the trash. (Bug#59986) + +2022-12-16 Manuel Giraud + + Fix SVG scaling (bug#59802) + + Fix SVG scaling with librsvg>2.52 and SVG file with only one known + dimension. + + * src/image.c (svg_load_image): Compute a percentage dimension with + the other known dimension. + +2022-12-16 F. Jason Park + + Fix some naming issues involving query buffers in ERC + + * lisp/erc/erc-networks.el + (erc-networks-rename-surviving-target-buffer): Don't kill a surviving + target buffer when another, non-target buffer, possibly not even + belonging to ERC, already exists and sports the target's name. + (erc-networks--reconcile-buffer-names): Always append a network-ID + suffix to a target buffer's name if another buffer of that name + already exists. (Bug#59976.) + * lisp/erc/erc.el (erc, erc-tls): Revise `:id' portion of doc strings. + Thanks to Mike Kazantsev for the suggestion and for filing this bug + and helping solve it. + * test/lisp/erc/erc-networks-tests.el: + (erc-networks-rename-surviving-target-buffer--query-non-target): Add + new test. + * test/lisp/erc/erc-scenarios-base-association-query.el: New file. + * test/lisp/erc/resources/base/assoc/queries/netnick.eld: New file. + * test/lisp/erc/resources/base/assoc/queries/non-erc.eld: New file. + +2022-12-16 F. Jason Park + + Increment erc-debug-irc-protocol-version to 2 + + * lisp/erc/erc.el (erc-debug-irc-protocol-version): Change version to + 2 to help dependent tooling detect redacted passwords. + (erc-log-irc-protocol): Don't bother redacting incoming messages. + (Bug#59284.) + +2022-12-16 Eli Zaretskii + + A better fix for bug#60096 + + * lisp/startup.el (initial-scratch-message): + * lisp/simple.el (get-scratch-buffer-create): Revert last changes. + + * src/window.c (Fset_window_configuration): Force recalculation of + Vwindow_list after restoring the windows. + * src/buffer.c (other_buffer_safely): Make sure we always return a + valid buffer, even if 'get-scratch-buffer-create' signals an + error. + +2022-12-16 João Távora + + Bump Eglot version to 1.10 + + * lisp/progmodes/eglot.el (Version): Bump to 1.10 + (Package-Requires): Bump required versions of jsonrpc and project. + +2022-12-16 João Távora + + Eglot: fix discrepant eglot-guess-contact/eglot-command-history + + Due to a typo, the defvar eglot--command-history wasn't actually used + in eglot-guess-contact as intended. That function used a + single-dash-name version of the variable instead. + + This worked fine, except that two variables were created instead of + one, and the one actually being used didn't have any docstring. + + Rename the variable to eglot-command-history to fix this. It's better + than renaming the reference in eglot-guess-contact which would lose + user's history for M-x eglot. + + * lisp/progmodes/eglot.el (eglot-command-history): Rename from + eglot--command-history. + +2022-12-16 João Távora + + Avoid recursive process filters in lisp/jsonrpc.el (bug#60088) + + jsonrpc.el may lose JSON-RPC messages because of recursive process + filters. The problem happens in jsonrpc.el's jsonrpc--process-filter. + + The code of the process filter didn't expect to be called recursively + and fails in that case. + + But that can happen if the three conditions are verified. + + 1. the client code invoked by its jsonrpc--connection-receive inside + the process filter callee immediately sends follow-up input to + process within the same Lisp stack. This is a common scenario, + especially during LSP initialization sequence used by Eglot, a + jsonrpc.el client. + + 2. that follow-up message is large enough for process-send-string to + send the input in bunches (output from processes can arrive in + between bunches). + + 3. the process happens to have already some more output ready + + The fix in this commit detects recursive invocations and immediately + re-schedules them as non-recursive calls to the + jsonrpc--process-filter (but started from timers). + + * lisp/jsonrpc.el (jsonrpc--process-filter): Rework. + (Version): Bump to 1.0.16. + +2022-12-15 Theodor Thornhill + + Add lambda_expression-rule to java-ts-mode (bug#60091) + + * lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): New + rule. + +2022-12-15 Jostein Kjønigsen + + eglot: Add support for new language server csharp-ls + + C# has two popular language servers: Omnisharp Roslyn (already + supported) and csharp-ls (newer, more performant). + + * lisp/progmodes/eglot.el: Add new C# language server + csharp-ls. (Bug#60089) + +2022-12-15 Yuan Fu + + Use the new tree-sitter commands + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--defun-valid-p) + (c-ts-mode--defun-skipper): New functions. + (c-ts-base-mode): Setup defun navigation. + * lisp/progmodes/sh-script.el (bash-ts-mode): Setup defun navigation. + * lisp/treesit.el (treesit-beginning-of-defun) + (treesit-end-of-defun): Change to new implementation, which is + intended to be used as commands. + (treesit-major-mode-setup): Setup remap for beginning/end-of-defun + commands. + +2022-12-15 Yuan Fu + + Add "function" feature to python-ts-mode (bug#59977) + + * lisp/progmodes/python.el (python--treesit-settings): Add feature. + (python-ts-mode): Add feature. And fix indentation for the + python-indent-guess-indent-offset code. + +2022-12-15 Randy Taylor + + Add go-ts-mode and go-mod-ts-mode (Bug#60025) + + * admin/notes/tree-sitter/build-module/batch.sh: + * admin/notes/tree-sitter/build-module/build.sh: Add go-mod support. + * etc/NEWS: Mention them. + * lisp/progmodes/eglot.el (eglot-server-programs): Add them. + * lisp/progmodes/go-ts-mode.el: New major modes with + tree-sitter support. + +2022-12-15 Yuan Fu + + Add basic support for hideshow in python-ts-mode (bug#60044) + + * lisp/progmodes/python.el (python-base-mode): Add setup for + python-ts-mode. + +2022-12-15 Theodor Thornhill + + Add "this" keyword to java-ts-mode (bug#60086) + + * lisp/progmodes/java-ts-mode.el + (java-ts-mode--font-lock-settings): Add the node to the keyword + feature. + +2022-12-15 Dmitry Gutov + + When completing relative project file names, use relative history + + * lisp/progmodes/project.el: Require 'cl-lib'. + + * lisp/progmodes/project.el (project--read-file-cpd-relative): + Pre-process history entries around completing-read (bug#58447). + + This includes both filtering by common-parent-directory prefix and + mapping into relative names. + +2022-12-15 Eli Zaretskii + + Avoid segfaults due to invalid selected-window's buffer + + * lisp/startup.el (initial-scratch-message): Don't use \\[...] + commands for substitute-command-keys. + * lisp/simple.el (get-scratch-buffer-create): Don't call + substitute-command-keys on initial-scratch-message, to avoid + signaling an error in rare cases. (Bug#60096) + +2022-12-15 Juri Linkov + + Revert 21b387c39bd with last-minute hasty changes (bug#60048). + + * lisp/simple.el (completion-list-mode-map): Unbind [up] and [down]. + (previous-line-completion, next-line-completion): Remove. + +2022-12-15 Alan Mackenzie + + Replace an erroneous eq with an equal in cc-defs.el + + * lisp/progmodes/cc-defs.el (c-looking-at-non-alphnumspace): Replace eq with + equal in the XEmacs branch. + +2022-12-15 Juri Linkov + + * lisp/tab-bar.el ([tab-bar]): Use 'make-sparse-keymap' instead of 'ignore'. + + This helps to avoid the error in 'where-is-internal' that should + not call :filter unnecessarily (bug#9923). + +2022-12-15 Stefan Monnier + + compile.el: Fix regression with nb of errors in modeline + + * lisp/progmodes/compile.el (compilation-mode-line-errors): Mark it as + risky-local, like `defconst` used to do for us. + +2022-12-15 Juri Linkov + + Make tab-bar-tab-group-format-function backwards-compatible (bug#60073) + + * lisp/tab-bar.el (tab-bar--format-tab-group): Add condition-case + with wrong-number-of-arguments for backwards-compatibility. + (tab-bar-tab-group-format-default): Simplify. + +2022-12-15 Gabriel do Nascimento Ribeiro + + Make tab-bar-tab-group-format-function also handle current group + + * lisp/tab-bar.el (tab-bar--format-tab-group): Call + 'tab-bar-tab-group-format-default' to format current group tab. + (tab-bar-tab-group-format-default): Update function to also handle + current group tab (bug#60073). + +2022-12-15 Philip Kaludercic + + Ensure package directories for source packages from checkouts + + * lisp/emacs-lisp/package-vc.el (package-vc-install-from-checkout): + Set the :dir entry, since `package-vc--unpack-1' assumes the field is + set, as is the case when invoking `package-vc--unpack'. + +2022-12-15 Michael Albinus + + * test/README (SELECTOR): Add eglot-tests.el to remote file using libraries. + +2022-12-15 Michael Albinus + + Fix bug#60060 in Tramp + + * lisp/net/tramp-sh.el (tramp-sh-handle-file-local-copy): + Delete `tmpfile' in case of error. (Bug#60060) + +2022-12-15 Manuel Giraud + + * .gitignore: Ignore GDB history files. + +2022-12-15 Eli Zaretskii + + Mention 'tree-sitter' in user manual and NEWS + + * doc/emacs/programs.texi (Program Modes): Mention tree-sitter and + the modes supported by it. + * etc/NEWS: Mention tree-sitter in the Installation Changes + section. + +2022-12-14 Dmitry Gutov + + Fix ruby-add-log-current-method after nested class definition + + * lisp/progmodes/ruby-mode.el (ruby--add-log-current-indent): + New function. + (ruby-add-log-current-method): Use it. + Check for "class" and "module" indentation to filter out the + definitions which don't include the given position. Also try to + match "def" only once (for performance), because if the closest + one doesn't include the given position, none will. + + * test/lisp/progmodes/ruby-mode-tests.el + (ruby-add-log-current-method-after-inner-class-outside-methods) + (ruby-add-log-current-method-after-inner-class-outside-methods-with-text): + New tests. + +2022-12-14 Theodor Thornhill + + Add indent rules to js/typescript/tsx-ts-mode (bug#60074) + + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--indent-rules): Add in binary_expression and + jsx_fragment. + * lisp/progmodes/js.el (js--treesit-indent-rules): Add the same rules. + +2022-12-14 Jostein Kjønigsen + + Improve fontification in csharp-ts-mode (bug#59897) + + Fixes highlighting of generic methods like the one below: + + instance.MethodWithTypeArguments(...); + InClassMethodWithTypeArguments(...); + + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings): + Add new rule. + +2022-12-14 Yuan Fu + + Revert "Add expression for generic_name in csharp-ts-mode" + + I applied the wrong commit, the next commit will be the right one, + sorry about that! + + This reverts commit 647b6a8099f414e5a7b162efd3658e174064dfe7. + +2022-12-14 Jostein Kjønigsen + + Introduce support for TOML config-format + + This commit introduces support for the semi-popular TOML + config-format[1] through a new major-mode: toml-ts-mode. + + I've read through the full spec[2], and from what I can see this + major-mode should provide correct syntax-highligting for every sort of + config-declaration which adheres to the specification. + + Besides that it also adds support for imenu and basic tree-sitter + based navigation. + + [1] https://toml.io/en/ + [2] https://toml.io/en/v1.0.0 + +2022-12-14 Arash Esbati + + Fix handling of % when searching in .tex or .dtx files + + * lisp/textmodes/reftex.el (reftex-compile-variables): Consider % + when building the regexp for searching only in .dtx files. + (AUCTeX bug#59638) + +2022-12-14 Daniel Martín + + Treat C++ classes as defuns in C Tree-sitter mode (bug#60047) + + * lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Add "class_specifier" + as a node of type "defun". + +2022-12-14 Daniel Martín + + Add < and > to the syntax table in c++-ts-mode (bug#60049) + + * lisp/progmodes/c-ts-mode.el (c++-ts-mode--syntax-table): Add a + specific syntax table for C++. Consider "<" and ">" open/close + delimiters (C++ templates). + (c++-ts-mode): Use the new syntax table. + +2022-12-14 Jostein Kjønigsen + + Improve fontifications in Typescript mode + + * lisp/progmodes/typescript-ts-mode.el: Improve fontification of + variables. (Bug#59831) + +2022-12-14 Eli Zaretskii + + Update the documentation of overlays (bug#59996) + + * src/buffer.c (Foverlay_recenter, Foverlay_lists): Update the doc + strings. + + * lisp/subr.el (copy-overlay): Update comment. + + * doc/lispref/internals.texi (Buffer Internals): Remove buffer + fields relevant to the old implementation; add the new interval + tree field. + * doc/lispref/display.texi (Overlays, Managing Overlays): Update + text to be consistent with the new implementation of overlays. + (Managing Overlays): Remove documentation of 'overlay-recenter'. + + * etc/NEWS: Mention incompatible aspects of overlay + reimplementation. + +2022-12-14 F. Jason Park + + Don't send erc-sasl-user as USER command argument + + * lisp/erc/erc-sasl.el (erc-sasl--send-cap-ls): Add internal switch + for sending an opening "CAP LS". The rationale for not enabling this + by default is twofold: one, it more strongly implies that ERC supports + IRCv3 client capability negotiation, which is somewhat disingenuous; + and, two, We'd still be "faking it" by firing and forgetting, and more + balls in the air makes things less predictable. + (erc--register-connection): Possibly send a "CAP LS" before anything + depending on the value of `erc-sasl--send-cap-ls'. Also, don't + attempt to send `erc-session-username' when it holds an SASL username + because the latter may contain protocol-defying characters. + * test/lisp/erc/resources/base/local-modules/fourth.eld: change user + parameter of "USER" command to reflect nick when `erc-sasl-user' is + set to `:user'. (Bug#59976.) + +2022-12-14 F. Jason Park + + Set erc-network to a "given" ID instead of failing + + * lisp/erc/erc-networks.el (erc-networks--determine): Return the + so-called "given" ID from a non-nil `:id' keyword arg passed to `erc' + or `erc-tls'. + (erc-networks--allow-unknown-network): Add internal variable to + allow IRC session to continue despite the network being unknown. + (erc-networks--set-name): Tell the user about falling back to a given + ID when the network can't be determined. When that's so, end the + session by destroying the connection unless + `erc-networks--allow-unknown-network' is enabled. (Bug#59976.) + (erc-networks--ensure-announced): Include the fallback announced + server name in the error message. + * test/lisp/erc/erc-networks-tests.el (erc-networks--set-name): Add + dummy server process and don't expect an error to be signaled. + * test/lisp/erc/erc-scenarios-misc.el + (erc-scenarios-networks-announced-missing): Don't expect an error to + be signaled. + * test/lisp/erc/resources/networks/announced-missing/foonet.eld: + Remove "mode" match pattern. + +2022-12-14 F. Jason Park + + Limit casemapping to appropriate ranges in ERC + + * lisp/erc/erc-common.el (erc-downcase): Use case table for + `erc-downcase' so that case conversions are limited to the ASCII + interval. + * lisp/erc/erc.el (erc-casemapping--rfc1459-strict, + erc--casemapping-rfc1459): Make these case tables instead of + translation tables. The functions in case-table.el modify the + standard syntax table, but that doesn't seem to make sense here, + right? + * test/lisp/erc/erc-tests.el (erc-downcase): Add cases showing + mappings outside of the ASCII range. (Bug#59976.) + +2022-12-14 F. Jason Park + + Actually accept non-symbols as IDs in erc-open + + * lisp/erc/erc.el (erc-generate-new-buffer-name): Despite what it says + in the documentation, only symbols were being accepted as valid `:id' + entry-point arguments. This uses the interned `princ' representation + of the argument instead. + * test/lisp/erc/erc-scenarios-base-netid-samenet.el + (erc-scenarios-common--base-network-id-same-network): Randomly specify + a string for the ID param instead of a non-nil symbol when opening a + new connection. + * test/lisp/erc/resources/erc-scenarios-common.el + (erc-scenarios-common-assert-initial-buf-name): Adjust helper to allow + for non-symbol IDs. (Bug#59976.) + +2022-12-14 F. Jason Park + + Respect a nil erc-session-password when reconnecting + + * lisp/erc/erc.el (erc-open): Simplify `old-vars' expression. + (erc--compute-server-password): Only compute a server password when + first connecting. For compatibility, this respects third-party code + that expects session passwords in target buffers when initially + non-nil. + * test/lisp/erc/erc-scenarios-services-misc.el + (erc-scenarios-services-auth-source-reconnect): Add new test. + * test/lisp/erc/resources/services/auth-source/recon.eld: Add new test + data file. (Bug#59858.) + +2022-12-14 F. Jason Park + + Add dedicated auth-source section in ERC manual + + * doc/misc/erc.texi: Move auth-source description from the Password + subheading of the Advanced chapter's Connecting section to the new + Integrations section as a new node, Auth-Source, and give it a bit + more structure. Fix various misuses of xref vs. pxref. Convert URL + subheading to subsection and add anchor. Prefer "backend" as a single + word, based on usage in other manuals. Also replace loud "warning" in + SASL troubleshooting section. + * etc/ERC-NEWS: Re-link auth-source mention. + * lisp/erc/erc-sasl.el (erc-sasl-auth-source-function): Update info + node in doc string. + * lisp/erc/erc-services.el (erc-auth-source-services-function): + Re-link auth-source info node in doc string. + * lisp/erc/erc.el (erc-password, erc-auth-source-server-function, + erc-auth-source-join-function): Re-link auth-source info node in doc + strings. + +2022-12-14 Mattias Engdegård + + Better shortdoc examples + + * lisp/emacs-lisp/shortdoc.el + (symbol, comparison): New. + (string, list, number): Remove or change examples that do not have + well-defined results, such as `eq` on strings or floats. + Edit other examples for better illustrating each respective operation. + +2022-12-14 Mattias Engdegård + + Shortdoc: read and evaluate strings after :eval + + * lisp/emacs-lisp/shortdoc.el (shortdoc--display-function): + If the parameter of :eval is a string then read, evaluate and print + the result. This was always the intention and is documented behavior. + +2022-12-14 Michael Albinus + + Fix Tramp tests in eglot-tests, prefix tests uniquely + + * test/lisp/progmodes/eglot-tests.el (eglot--call-with-fixture): + Use `make-nearby-temp-file'. + (eglot--call-with-tramp-test): Set `tramp-verbose' and + `default-directory'. The latter is needed for `make-nearby-temp-file'. + (eglot-test-tramp-test, eglot-test-tramp-test-2): Tag them as + :expensive-test. + (all): Prefix all tests with `eglot-test-' uniquely. + +2022-12-14 Juri Linkov + + * lisp/vc/vc-git.el (vc-git-checkin): Use make-nearby-temp-file (bug#60011) + +2022-12-14 Stefan Kangas + + Delete temp files after icalendar tests + + * test/lisp/calendar/icalendar-tests.el + (icalendar-tests--get-error-string-for-export): Make sure we clean up + temporary files after test. + +2022-12-13 Kai Ma (tiny change) + + Fix syntax tables of tree-sitter modes (bug#59807) + + Tree-sitter modes should use the same syntax table as the + non-tree-sitter ones. + + * lisp/progmodes/js.el (js-mode-syntax-table) + (js-ts-mode) + * lisp/progmodes/python.el (python-ts-mode) + * lisp/progmodes/sh-script.el (bash-ts-mode) + + + xx + +2022-12-13 Stefan Kangas + + * doc/misc/Makefile.in (need_emacsver): Add use-package. + +2022-12-13 Stefan Kangas + + Fix bug when calling `rgrep` non-interactively + + * lisp/progmodes/grep.el (rgrep): Fix bug where running + non-interactively requires running it interactively + first. (Bug#60024) + +2022-12-13 Michael Albinus + + Adapt Tramp specific tests in eglot-tests.el + + * test/lisp/progmodes/eglot-tests.el (tramp): Move up. + (tramp-sh): Don't require. + (eglot--cleanup-after-test): Delete Tramp buffers if needed. + (eglot-tests-lsp-abiding-column): Rename from `eglot-lsp-abiding-column'. + (tramp-histfile-override): Declare. + (eglot--call-with-tramp-test): + Use `ert-remote-temporary-file-directory'. Skip if needed. + (eglot--tramp-test, eglot--tramp-test-2): Don't skip. + +2022-12-13 Stefan Kangas + + * lisp/textmodes/texinfo.el (texinfo-flymake): Improve docstring. + +2022-12-13 Juri Linkov + + Support a function in the BUFFER-LIST arg of list-buffers-noselect (bug#59935) + + * lisp/buff-menu.el (Buffer-menu-buffer-list): New buffer-local variable. + (list-buffers-noselect): Set Buffer-menu-buffer-list to 'buffer-list' + that now keeps the buffer-local value of the provided buffer list + or a function that returns the buffer list. + (list-buffers--refresh): Handle buffer-list and Buffer-menu-buffer-list + as a function and as a list. + + * lisp/progmodes/project.el (project-list-buffers): Let-bind + 'buffer-list-function' used by both legacy code and the new version + of list-buffers-noselect that supports its arg BUFFER-LIST as a function. + +2022-12-13 Augusto Stoffel + + Don't allow lazy highlight from recursive minibuffers + + See bug#59918. + + * lisp/isearch.el (minibuffer-lazy-highlight-setup): Don't activate + when starting a recursive minibuffer. + +2022-12-13 Eli Zaretskii + + Improve resetting face attributes when looking for suitable fonts + + * src/xfaces.c (syms_of_xfaces): + Change the default value to t. Update doc string. + (realize_gui_face): When 'Vface_font_lax_matched_attributes' is t, + reset the 3 default font attributes efficiently. Call + 'font_maybe_unset_attribute' only if the value is neither nil nor + t. (Bug#59347) + +2022-12-13 Stefan Kangas + + Add lexical-binding to example package header + + * doc/lispref/package.texi (Simple Packages): Add lexical-binding + cookie to example package header. + +2022-12-13 Yuan Fu + + Add improved tree-sitter navigation + + This new set of functions (and tests) should eliminate + defun-navigation bugs and limitations we currently have. This commit + doesn't change any existing behavior: treesit-beginning/end-of-defun + and friends are unchanged. The plan is to later switch gear and + replace the current functions with the new ones introduced in this + change. + + This is a relatively big change, but I've setup a comprehensive test, + and it should fix current bugs, so I think it's ok to put it on the + release branch. + + The gist of the new navigation is to use treesit--defuns-around to + find the previous sibling defun, next sibling defun, and the parent + defun, then use this information to move to previous/next + beginning/end of defun in treesit--navigate-defun. + + I also added comprehensive testing that tests all four possible + operations (prev-beg, next-beg, prev-end, next-end) starting at all + possible positions (between two sibling defuns, inside a sibling + defun, etc). + + * lisp/treesit.el (treesit-defun-type-regexp): Expand definition to + allow (REGEXP . FILTER). Old functions don't support this, but it + should be fine since we are soon replacing them. + + (treesit-defun-tactic) + (treesit-defun-skipper): New variables. + + (treesit-default-defun-skipper) + (treesit--defuns-around) + (treesit--top-level-defun) + (treesit--navigate-defun): New functions. + + * test/src/treesit-tests.el (treesit--ert-insert-and-parse-marker) + (treesit--ert-collect-positions) + (treesit--ert-test-defun-navigation): New helper functions. + + (treesit--ert-defun-navigation-python-program) + (treesit--ert-defun-navigation-js-program) + (treesit--ert-defun-navigation-bash-program) + (treesit--ert-defun-navigation-nested-master): New variables. + + (treesit-defun-navigation-nested-1) + (treesit-defun-navigation-nested-2) + (treesit-defun-navigation-nested-3) + (treesit-defun-navigation-top-level): New tests. + +2022-12-12 Stefan Kangas + + Add cross-reference to flush-lines + + * lisp/replace.el (flush-lines, kill-matching-lines): Add + cross-references between commands, using the names + '(kill|delete)-matching-lines' for symmetry. (Bug#59934) + +2022-12-12 Jostein Kjønigsen + + Use font-lock-number-face for numeric values in csharp-mode + + (bug#60004) + + * lisp/progmodes/csharp-mode.el: update fontification code. + +2022-12-12 Jostein Kjønigsen + + Make treesit-query-validate create a read-only buffer + + * lisp/treesit.el: use view-mode for generated validation buffer. + +2022-12-12 Randy Taylor + + Improve dockerfile-ts-mode imenu generation (Bug#59979) + + * lisp/progmodes/dockerfile-ts-mode.el (treesit-node-child-by-field-name): + Declare. + (dockerfile-ts-mode--imenu-1): Use stage name if available. + +2022-12-12 Daniel Martín + + Add "->" to python--treesit-operators (bug#59968) + + * lisp/progmodes/python.el (python--treesit-operators): Add "->", used + to specify the return types of functions in Python. + +2022-12-12 Daniel Martín + + Align C++ access specifiers to their enclosing class/struct/union + + (bug#59966) + + The default style in c++-mode aligns access specifiers like "private", + "public" or "protected" to their enclosing class, struct, or union. + The "ellemtel" style indents access specifiers, but this C++ style is + not supported by c++-ts-mode yet. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Align access + specifiers to their enclosing class/struct/union. + +2022-12-12 Randy Taylor + + Add cmake-ts-mode + + * admin/notes/tree-sitter/build-module/batch.sh: + * admin/notes/tree-sitter/build-module/build.sh: Add cmake support. + * etc/NEWS: Mention it. + * lisp/progmodes/cmake-ts-mode.el: New major mode with + tree-sitter support. + * lisp/progmodes/eglot.el (eglot-server-programs): Add it. + +2022-12-12 Theodor Thornhill + + Tweak various ts-mode's indent and fontification (bug#59931) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Add raw + string literal font-locking. + * lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Add + text_block indent rule. + (java-ts-mode--font-lock-settings): Add text_block font-locking. + * lisp/progmodes/js.el (js-ts-mode): Prefer top-level navigation. + * lisp/progmodes/json-ts-mode.el (json-ts-mode--font-lock-settings): + Add comment feature. + (json-ts-mode): Use comment feature. + * lisp/progmodes/typescript-ts-mode.el (typescript-ts-base-mode): + Prefer top-level navigation. + +2022-12-12 Theodor Thornhill + + Add expression for generic_name in csharp-ts-mode (bug#59897) + + Given the below example, we want 'services' to be font-locked in + 'font-lock-variable-name-face' in all cases. Previously this only + worked in the first case, and the other was font-locked as + 'font-lock-function-name-face'. + + namespace Foo { + void Foo() { + services.Add(); + services.Add(); + } + } + + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings): + Add new query that makes the mentioned example work. + +2022-12-12 Juri Linkov + + * lisp/outline.el: Fix the value 'insert' of outline-minor-mode-use-buttons. + + (outline--insert-button): Keep text properties around point + on the inserted whitespace placeholder. + + * lisp/apropos.el (apropos-mode): + * lisp/progmodes/xref.el (xref--xref-buffer-mode): + Change outline-minor-mode-use-buttons from t to 'insert'. + +2022-12-12 Juri Linkov + + * lisp/minibuffer.el (completions-group-separator): Revert f7816c94b6. + + Change face attribute from :underline back to :strike-through. + https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg01792.html + +2022-12-12 João Távora + + Skip Eglot rust-analyzer tests if 'cargo' isn't available + + * test/lisp/progmodes/eglot-tests.el + (project-wide-diagnostics-rust-analyzer) + (diagnostic-tags-unnecessary-code): Skip unless "cargo" is found. + +2022-12-12 Stefan Kangas + + use-package.texi: New section "Manual installation" + + * doc/misc/use-package.texi (Manual installation): New section. + (Load path, Manual autoloads): Make into subsections of above new + section. + +2022-12-11 Po Lu + + Revert "Revert "Improve last change to xfaces.c" (05ece1eb8b)" + + This reverts commit b8d2ec920f37f5d77d32440eefc97dd5e8c2c7dc. + + Not only does it make debugging Emacs harder for users, that change is + unsafe for the Haiku port. + +2022-12-11 Gregory Heytings + + Revert "Improve last change to xfaces.c" (05ece1eb8b) + + * src/xfaces.c: Revert 05ece1eb8b. + + See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=59347#331. + +2022-12-11 Gregory Heytings + + Do not pare arguments unnecessarily. + + * lisp/pcomplete.el (pcomplete-here-using-help): Do not pare + arguments. Fixes bug#59803. + +2022-12-11 João Távora + + Add automated tests for Eglot + + Most of the tests require a specific LSP server to do their thing, and + skip themselves if this server isn't found. + + This file is a modified/overhauled version of the original Eglot + automated tests that were developed in the old GitHub upstream. + + * test/lisp/progmodes/eglot-tests.el: New file. + +2022-12-11 João Távora + + Eglot: allow skipping compile-time warnings about LSP interfaces + + * lisp/progmodes/eglot.el (eglot-strict-mode): Add 'no-unknown-interfaces'. + (eglot--check-object): Honor new eglot-strict-mode value. + +2022-12-11 Yuan Fu + + Add customizale faces for tree-sitter explorer + + * lisp/treesit.el (treesit-explorer-anonymous-node) + (treesit-explorer-field-name): New face. + (treesit--explorer-draw-node): Use the new faces. + (treesit-explore-mode): Change playground to explorer. + +2022-12-11 Stefan Kangas + + Fix error message when installing non-existent package + + * lisp/emacs-lisp/package.el (package-compute-transaction): Don't add + trailing dash to package name in non-existent package + error. (Bug#59923) + +2022-12-11 Juri Linkov + + Don't use diff-mode buffer as a patch when it's visiting a file (bug#59962) + + * lisp/vc/vc.el (vc-deduce-fileset-1): Don't call diff-vc-deduce-fileset + for diff-mode when buffer-file-name is non-nil. This is because in this case + a file with a diff might be committed to VCS. So don't use it as a patch + to commit with 'C-x v v'. + +2022-12-11 Mattias Engdegård + + Fix pcase rx patterns using rx-let bindings (bug#59814) + + Reported by Daniel Pittman. + + * lisp/emacs-lisp/rx.el (rx): Move binding of rx--local-definitions... + (rx--to-expr): ...here. + * test/lisp/emacs-lisp/rx-tests.el (rx-let-pcase): New test. + +2022-12-11 Mattias Engdegård + + Fix use-package-defaults defcustom type (bug#59941) + + * lisp/use-package/use-package-core.el (use-package-defaults): + Enlarge type to allow for keywords such as :ensure and :pin to be + added later, remedying a failure in test-custom-opts. + +2022-12-11 समीर सिंह Sameer Singh + + * lisp/language/indian.el: Improve Brahmi composition rules. (bug#58957) + +2022-12-10 Po Lu + + Improve last change to xfaces.c + + * src/xfaces.c (font_unset_attribute): New function. + (realize_gui_face): Improve commentary and use list instead of + bitmask. + (syms_of_xfaces): Get rid of bitmask. Replace it by a list, + there is no reason any user should have to think about bitmasks + in Emacs lisp. + +2022-12-10 Gregory Heytings + + Actually improve detection of long lines + + * src/xdisp.c (redisplay_window): Update condition. + + * src/xdisp.c (mark_window_display_accurate_1): + * src/pdumper.c (dump_buffer): + * src/buffer.h (BUF_CHARS_UNCHANGED_MODIFIED): + (struct buffer_text): + * src/buffer.c (Fget_buffer_create): + Revert 1c837c42c2, which was misguided. + +2022-12-10 Gregory Heytings + + Unset the weight/slant/width in the spec when realizing a font + + Between commits bf0d3f76dc (2014) and 6b1ed2f2c9 (2022), + realize_gui_face called font_load_for_lface with an empty or + partly emptied font spec, i.e. it ignored a part of its attrs + argument. The rationale given in bug#17973, which led to + bf0d3f76dc, is not clear. However, 6b1ed2f2c9, which passes + the full font spec to font_load_for_lface and + font_find_for_lface, leads to suboptimal font choices, for + example when the font chosen for the default face has a + weight, slant or width that is not supported by other + available fonts on the system, such as 'medium' or 'heavy'. + + If these attributes are not unset here, the call to + font_list_entities in font_find_for_lface arbitrarily limits + the candidate font list to those that are perfect matches for + these attributes, which means that the scoring mechanism is + bypassed. Note that the size attribute in spec is also unset, + in font_find_for_lface. + + Also allow unsetting the other attributes, for debugging purposes. + + * src/xfaces.c (realize_gui_face): Unset the weight, slant and + width of the font spec. Fixes bug#57555 and bug#59347. + (syms_of_xfaces): New variable + 'realize-gui-face-ignored-spec-attributes'. + +2022-12-10 Kyle Meyer + + Update to Org 9.6-31-g954a95 + +2022-12-10 Eli Zaretskii + + Fix infloop in 'shell-resync-dirs' with tcsh + + * lisp/shell.el (shell-resync-dirs): Remove trailing slash from + output of 'dirs', for csh/tcsh's sake. (Bug#59804) + +2022-12-10 Philip Kaludercic + + Ensure 'package-vc--version' always returns a version + + * lisp/emacs-lisp/package-vc.el (package-vc--version): Return "0" even + if the main file exists, but lacks version headers. + +2022-12-10 Philip Kaludercic + + Ensure 'package-vc--main-file' always returns an existing file + + * lisp/emacs-lisp/package-vc.el (require): Explicitly require cl-lib. + (package-vc--main-file): If the expected file name is missing, try and + find the closest match. + +2022-12-10 Philip Kaludercic + + Check if package already exists before installing from checkout + + * lisp/emacs-lisp/package-vc.el (package-vc-install-from-checkout): + Copy check from 'package-vc--unpack'. + +2022-12-10 Matt Armstrong + + Refresh the package quickstart file in package-vc + + * lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Call + `package--quickstart-maybe-refresh', just as + `package-install-from-buffer' does. (bug#59728) + +2022-12-09 Yuan Fu + + Make indirect buffers use tree-sitter parsers of their base buffer + + Fix the problem described in bug#59693. + + * src/treesit.c (treesit_record_change): Always use the base buffer. + (Ftreesit_parser_create): Always use the base buffer. Also change the + for loop into FOR_EACH_TAIL (stylistic change). + (Ftreesit_parser_list): Always use the base buffer. + + * doc/lispref/parsing.texi (Using Parser): Update manual. + * test/src/treesit-tests.el (treesit-indirect-buffer): New test. + +2022-12-09 Brian Leung + + Fontify "this" as a keyword in c++-ts-mode (bug#59924) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): + Following c++-mode, fontify as a keyword instead of a constant. + +2022-12-09 Theodor Thornhill + + Add class_body indentation for typescript (bug#59680) + + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--indent-rules): New indent rule. + +2022-12-09 Theodor Thornhill + + Make more granular defun-type-regexp (bug#59873) + + We don't want to match local_variable_declaration and others to hit on + beginning-of-defun. The fix is just to make the regexp a bit more + granular. + + * lisp/progmodes/java-ts-mode.el (java-ts-mode): Use regexp-opt to + distinguish more granularly. + +2022-12-09 Randy Taylor + + Add dockerfile-ts-mode (Bug#59894) + + * admin/notes/tree-sitter/build-module/batch.sh: Add dockerfile support. + * admin/notes/tree-sitter/build-module/build.sh: Support different + namespaces and add dockerfile support. + * etc/NEWS: Mention it. + * lisp/progmodes/dockerfile-ts-mode.el: New major mode with + tree-sitter support. + * lisp/progmodes/eglot.el (eglot-server-programs): Add it. + +2022-12-09 Jostein Kjønigsen + + Fix fontification of method-invocations in js-ts-mode (bug#59904) + + * lisp/progmodes/js.el (js--treesit-font-lock-settings): Move rules + for property in front of function names, so function names override + property. + +2022-12-09 Theodor Thornhill + + Fix escape-sequence feature in typescript-ts-mode (bug#59906) + + * lisp/progmodes/typescript-ts-mode.el: (typescript-ts-mode, + tsx-ts-mode): Use escape-sequence feature. + +2022-12-09 Jostein Kjønigsen + + Improve fontification in csharp-ts-mode (bug#59909) + + - Fontity escape sequences. + - Highlight syntax errors. + + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings) + (csharp-ts-mode): Add new features + +2022-12-09 Dmitry Gutov + + Use 'project--value-in-dir' for 'project-vc-include-untracked' too + + * lisp/progmodes/project.el (project--vc-list-files): Use + 'project--value-in-dir' for 'project-vc-include-untracked' too. + So that is can be reliably set through dir-locals. + +2022-12-09 Eli Zaretskii + + Update Turkish Hello + + * etc/HELLO (Turkish): + * lisp/language/european.el ("Turkish"): Add a Turkish Hello. + Suggested by YUSUF ALPER ÇIKIŞIR . + +2022-12-09 Philipp Stephani + + Support newer glib versions (Bug#59061) + + * lib-src/seccomp-filter.c (main): Allow pidfd_open system call + +2022-12-09 Dmitry Gutov + + Bring back the project--value-in-dir logic + + Essentially revert commit 2389158a31b4a12, restoring the changes + and fixing the conflicts. Motivated by the problem brought up in + bug#59722 (behavior of project-find-files/regexp when switching + projects). We should find other ways to improve performance. + + * lisp/progmodes/project.el + (project--value-in-dir, project--vc-merge-submodules-p): Restore. + (project-try-vc, project-files, project--vc-list-files) + (project-ignores, project-buffers): Use. + + * test/lisp/progmodes/project-tests.el + (project-vc-supports-project-in-different-dir): New test. + + * test/lisp/progmodes/project-resources/.dir-locals.el: + * test/lisp/progmodes/project-resources/foo: + * test/lisp/progmodes/project-resources/etc: New files. + +2022-12-09 Andrea Corallo + + Backport: Enable native speed 2 EMBA build and tests and disable speed 0 + + * test/infra/gitlab-ci.yml (build-native-comp-speed2): Uncomment. + (build-native-comp-speed0): Comment. + (test-native-comp-speed0): Remove. + (test-native-comp-speed2): Add. + + (cherry picked from commit 06bf218f69a62d5d5c8d3b3767d7db8d9fb4bb9f) + +2022-12-09 Michael Albinus + + * test/infra/test-jobs.yml: Regenerate for the new use-package subdirectory. + +2022-12-09 Michael Albinus + + Adapt manual names in emacs-news-mode + + * lisp/textmodes/emacs-news-mode.el (emacs-news--buttonize): + Allow hyphen in manual names. + +2022-12-09 F. Jason Park + + Respect some spaces in auth-source-pass--match-regexp + + * lisp/auth-source-pass.el (auth-source-pass--match-regexp): Allow an + entry's host and user fields to contain spaces, just like other + backends do. + * lisp/erc/erc-compat.el + (erc-compat--29-auth-source-pass--retrieve-parsed): Change regexp to + allow spaces in host and user components of file names. + * test/lisp/auth-source-pass-tests.el (auth-source-pass-any-host): + Silence warning message re wildcards emitted by + `auth-source-pass-search'. + (auth-source-pass-extra-query-keywords--suffixed-user): Add spaces + to users and hosts of some example entries. (Bug#58985.) + +2022-12-09 dannyfreeman + João Távora + + Eglot: Handle LSP progress with Emacs progress reporters (bug#59149) + + + * lisp/progmodes/eglot.el (eglot-report-progress): New custom variable. + (eglot-lsp-server): New slot for tracking active progress reporters. + (eglot-handle-notification (eql $/progress)): New method. + + The LSP spec describes methods for reporting progress on long running + jobs to the client: + + https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#progress + https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#workDoneProgress + + This change reports those notifications in the minibuffer as they come + in. It shows a percent indicator (if the server provides theme), or a + spinner. + + This change could open the door for writing a "cancel long running + request" command, which are identified by these progress + notifications. See + https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#window_workDoneProgress_cancel + + * doc/misc/eglot.texi (Customizing Eglot): Describe new variable. + +2022-12-09 dannyfreeman + João Távora + + Eglot: cleanup whitespace and indentation + + + * lisp/progmodes/eglot.el: Misc whitespace fixes. + +2022-12-09 Mattias Engdegård + + Better test-custom-opts diagnostics + + Make it easier to understand errors from the test-custom-opts test by + reporting variable values and types that didn't match. + + * admin/cus-test.el (cus-test-errors): Richer contents. + (cus-test--format-error): New. + (cus-test-apropos, cus-test-errors-display, cus-test-opts): + Use new format. + +2022-12-09 Stefan Kangas + + New script admin/check-man-pages + + * admin/check-man-pages: New file with script used to check man pages + for errors. (Bug#59631) + * admin/make-tarball.txt: Document when to use the above script. + +2022-12-09 Stefan Kangas + + Improve :delight keyword example in use-package manual + + * use-package.texi (Diminish, Delight): Clarify what happens if the + pre-requisite packages are not installed. Change an example with + performance issues to one without any. + + Resolves https://github.com/jwiegley/use-package/issues/835 + +2022-12-08 Stefan Kangas + + Clarify :after keyword in use-package docstring + + * lisp/use-package/use-package-core.el (use-package): Clarify the + effect of :after in docstring. + + Resolves https://github.com/jwiegley/use-package/issues/825 + +2022-12-08 Stefan Kangas + + Add conditional loading examples to use-package manual + + * doc/misc/use-package.texi (Conditional loading): Expand section with + examples. + + Resolves https://github.com/jwiegley/use-package/issues/693 + +2022-12-08 Po Lu + + Revert "; * src/emacs.c (main): Improvements to last change." + + This reverts commit c774e83e36784ab96539c5c083b3bcb6d0158a8c. It + causes crashes on GNU/Linux systems using libgmp, as there a shared + library initializer is used to set the malloc functions on startup, so + they are not dumped. + +2022-12-08 Sean Whitton + + server-eval-at: Don't call server--file-name + + * lisp/server.el (server-eval-at): Revert to old code for determining + the server file. The recent change to call server--file-name meant + that the SERVER argument to server-eval-at was ignored. + +2022-12-08 Stefan Kangas + + Merge branch 'feature/use-package' into emacs-29 + +2022-12-08 Stefan Kangas + + * etc/USE-PACKAGE-NEWS: Delete file. + + Ref: https://lists.gnu.org/r/emacs-devel/2022-11/msg01535.html + +2022-12-08 Stefan Kangas + + * admin/git-bisect-start: Prune use-package merge commits. + +2022-12-08 Stefan Kangas + + Update use-package defgroups + + * lisp/use-package/bind-key.el (bind-key): + * lisp/use-package/use-package-core.el (use-package): + * lisp/use-package/use-package-ensure.el (use-package-ensure): Add + :link, :version and :group to defgroups. + +2022-12-08 Stefan Kangas + + Drop key-chord.el support from use-package + + * lisp/use-package/bind-chord.el: + * lisp/use-package/use-package-chords.el: + * test/lisp/use-package/use-package-chords-tests.el: Delete files. + * doc/misc/use-package.texi (use-package-chords): Delete section. + Ref: https://lists.gnu.org/r/emacs-devel/2022-12/msg00052.html + +2022-12-08 Juanma Barranquero + + Remove unneeded (require 'edebug) from which-func.el + + * lisp/progmodes/which-func.el: Don't require edebug. This is + code from an attempted fix to bug#49592, installed in 55cc8b040b + (2022-08-08) and left behind after 48b0f2606b (2022-08-23). + +2022-12-08 Stefan Kangas + + Change use-package custom :group to `initialization` + + * lisp/use-package/use-package-core.el (use-package): Move + defgroup to custom :group 'initialization'. + +2022-12-08 Jim Porter + + Treat escaped newlines in Eshell as the empty string + + This fixes a regression introduced during Emacs 29's development. + + * lisp/eshell/esh-arg.el (eshell-parse-argument): Handle + 'eshell-empty-token' as the result of an argument-parsing hook. + (eshell-parse-argument-hook): Document 'eshell-empty-token'. + (eshell-parse-backslash): Return 'eshell-empty-token' when + encountering an escaped newline. + + * test/lisp/eshell/eshell-tests.el (eshell-test/escape-nonspecial) + (eshell-test/escape-nonspecial-unicode) + (eshell-test/escape-nonspecial-quoted) + (eshell-test/escape-special-quoted): Move from here... + + * test/lisp/eshell/esh-arg-tests.el (esh-arg-test/escape/nonspecial) + (esh-arg-test/escape/nonspecial-unicode) + (esh-arg-test/escape-quoted/nonspecial) + (esh-arg-test/escape-quoted/special): ... to here. + (esh-arg-test/escape/special, esh-arg-test/escape/newline) + (esh-arg-test/escape-quoted/newline): New tests. + + * doc/misc/eshell.texi (Arguments): Explain escaping logic in more + detail (bug#59622). + +2022-12-07 Stefan Kangas + + use-package: Improve :mode keyword documentation + + * doc/misc/use-package.texi (Modes and interpreters): Improve + section and document the use of a list of regexps. + + Resolves https://github.com/jwiegley/use-package/issues/996 + +2022-12-07 Stefan Kangas + + Improve bind-keys* and override-global-mode docstrings + + * lisp/use-package/bind-key.el (bind-keys*): Add docstring. + (override-global-mode) Improve docstring. + +2022-12-07 Po Lu + + Fix crash on Windows 9X + + * src/emacs.c (main): Call init_bignum before init_window_once. + +2022-12-07 Yuan Fu + + Add recursion limit to treesit--children-covering-range-recurse + + * lisp/treesit.el (treesit--children-covering-range-recurse): Add + limit. + +2022-12-07 Yuan Fu + + Improve tree-sitter fontification in edge-cases (bug#59738) + + * lisp/treesit.el (treesit-font-lock-fontify-region): Use + treesit--children-covering-range-recurse. + +2022-12-07 Stefan Kangas + + Add new use-package manual + + * doc/misc/use-package.texi: Rewrite manual. + +2022-12-07 Theodor Thornhill + + Add c-ts-mode-indent-defun (bug#59662) + + Add in this function to mimic 'c-indent-defun'. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode-indent-defun): New function. + (c-ts-mode-map): New mode map that uses said function. + +2022-12-07 Theodor Thornhill + + Fix syntax-table for tree-sitter modes + + When adapting the 'c-populate-syntax-table' for tree-sitter, I misread + the code, and thus some crucial entries were missing. For the + relevant modes we use the same table as specified in the + non-tree-sitter major mode. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--syntax-table): Add new + entries. + * lisp/progmodes/csharp-mode.el (csharp-ts-mode): Add new entries. + * lisp/progmodes/java-ts-mode.el (java-ts-mode--syntax-table): Add new + entries. + * lisp/progmodes/json-ts-mode.el (json-ts-mode--syntax-table): Add new + entries. + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--syntax-table): Add new entries. + * lisp/textmodes/css-mode.el (css-ts-mode): Add new entries. + +2022-12-07 Brian Leung + + c++-ts-mode: Highlight nullptr as a constant + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Add + nullptr. + +2022-12-07 Yuan Fu + + Improve parameter checking in tree-sitter functions + + * src/treesit.c (treesit_check_position): Extract out new function. + (Ftreesit_node_first_child_for_pos) + (Ftreesit_node_descendant_for_range): Replace code with the new + function. + (Ftreesit_query_capture): Add missing check for node and parser. Add + check for range for BEG and END. Move treesit_initialize to the + beginning of the function. + + * test/src/treesit-tests.el (treesit-node-api) + (treesit-query-api): Add tests for out-of-range error. + +2022-12-07 Eli Zaretskii + + Fix comint-tests on MS-Windows + + * test/lisp/comint-tests.el (comint-tests/test-password-function): + On MS-Windows, call 'w32-native-executable-find' instead of + 'executable-find', to find the native version of the 'cat' + program. + (w32-native-executable-p, w32-native-executable-find): New + functions. + +2022-12-07 João Távora + + Use new external-completion.el in Eglot + + This refactor simplifies Eglot's source code. + + * lisp/progmodes/eglot.el: + (Package-Requires): Require external-completion. + (external-completion): Require it. + (xref-backend-identifier-completion-table): Use external-completion-table. + (completion-category-overrides): No longer set it. + ("Backend Completion"): Delete section. + +2022-12-07 João Távora + + Don't override completion-category-defaults in fido-mode + + To more closely emulate ido-mode, fido-mode and fido-vertical-mode + strongly lean to the 'flex completion style. But overriding + completion-category-defaults is not the correct way to do it, since + sometimes even the 'flex style isn't possible. + + * lisp/icomplete.el (icomplete--fido-mode-setup): Don't set + completion-category-defaults here. + +2022-12-07 João Távora + + Add lisp/external-completion.el for completions from external tools + + This table uses a new 'external' completion style which has been in + use in Eglot and other third-party extensions for a long time. It's + meant for libraries that interface with an external tool which + provides completions, such as a shell utility, an inferior process, an + http server. + + The new file lisp/external-completion.el provides a helper function, + external-completion-table which is given an interfacing function to + the external tool and returns a "programmed completion" table that is + bound to the 'external' completion style. That table can then be used + with completing-read or any other facility expecting a completion + table. + + When the 'external' is in use, the usual styles configured by the user + or other in 'completion-styles' are completely overridden. This + relatively minor inconvenience is the price to pay for responsive + completion where the full set of completion candidates doesn't need to + be transferred into Emacs's address space. + + * lisp/external-completion.el: New file. + + * etc/NEWS: (Lisp Changes in Emacs 29.1): Mention + external-completion-table. + +2022-12-07 João Távora + + Eglot: fix setting of flymake-list-only-diagnostics (bug#59824) + + When Eglot receives diagnostics for a file not yet visited in Emacs, + it stores them in flymake-list-only-diagnostics, which feed M-x + flymake-show-project-diagnostics. If the file is eventually visited + in a buffer and Eglot starts receibing diagnostics for it, the + flymake-list-only-diagnostics database has to be updated accordingly, + since the previous diagnostics are now stale. + + * lisp/progmodes/eglot.el (eglot-handle-notification): Reset + flymake-list-only-diagnostics + +2022-12-07 Mattias Engdegård + + * test/src/sqlite-tests.el (sqlite-version): Declare. + +2022-12-06 Thomas Fitzsimmons + + EUDC: Outline deprecation plans in NEWS + + * etc/NEWS (EUDC): Mention deprecation plans. + +2022-12-06 Yuan Fu + + Fix admin/notes/tree-sitter/build-module/build.sh (bug#59789) + + Besides the problem mentioned by Juri, which is fixed by removing + + -cp tree-sitter-lang.in "tree-sitter-${lang}/src" + -cp emacs-module.h "tree-sitter-${lang}/src" + + (we removed those files in an earlier commit, because they are not + used anymore.) + + Now it also more parameterized and builds typescript and tsx + separately. + + * admin/notes/tree-sitter/build-module/build.sh (topdir) + (repo, sourcedir, grammardir): New variables. + (Build): Make it parametric. + (Copy out): Use absolute path. + + * admin/notes/tree-sitter/build-module/batch.sh (languages): Add tsx. + +2022-12-06 Stefan Kangas + + * doc/misc/eww.texi (Overview): Improve introduction. + +2022-12-06 Jostein Kjønigsen + + Consistent fontification of using-directives in csharp-ts-mode + + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings): + New rules. + +2022-12-06 Yuan Fu + + Fontify some keywords in type face in c-ts-mode + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--keywords): Remove some keywords. + (c-ts-mode--type-keywords): New variables. + (c-ts-mode--font-lock-settings): New rule. + +2022-12-06 Mattias Engdegård + + Fix etags builds on non-Windows non-MS-DOS machines + + * lib-src/etags.c: In this file, MSDOS is always defined but can be + either `true` or `false`, so don't used `defined MSDOS` as a condition. + +2022-12-06 lu4nx + + Fix etags local command injection vulnerability + + * lib-src/etags.c: (escape_shell_arg_string): New function. + (process_file_name): Use it to quote file names passed to the + shell. (Bug#59817) + +2022-12-06 Eli Zaretskii + + Avoid crashes in a build --without-modules + + * src/lread.c (syms_of_lread): Move the definitions of + 'dynamic-library-suffixes' outside of the HAVE_MODULES + conditional. (Bug#59832) + +2022-12-06 Eli Zaretskii + + Fix 'add-display-text-property' when OBJECT is non-nil + + * lisp/emacs-lisp/subr-x.el (add-display-text-property): Fix the + case where OBJECT is not nil. (Bug#59857) + + * test/lisp/emacs-lisp/subr-x-tests.el + (subr-x-test-add-display-text-property): Add test for this case. + +2022-12-06 Michael Albinus + + Do not run slow tests on EMBA + + * test/infra/gitlab-ci.yml (.filenotify-gio-template): Do not run + scheduled. + (build-native-comp-speed1, build-native-comp-speed2): Comment out. + + * test/lisp/international/ucs-normalize-tests.el + (ucs-normalize-part1): Skip also on EMBA. + +2022-12-06 Mattias Engdegård + + Lisp reader undefined behavior excision + + * src/lread.c (read_bool_vector, skip_lazy_string): + Replace `|` with `||` to explicitly introduce sequence points since + the variables, `length` and `nskip`, are mutated more than once. + + The `|` was just a weak attempt at micro-optimisation in any case; + sorry about that. + +2022-12-05 Yuan Fu + + Fix treesit-query-capture + + Before this change Ftreesit_query_capture doesn't convert character + position to byte position for BEG and END parameters. I observed + fontification issue in css files but couldn't figure out why, now I + know :-) + + I decide to keep treesit--font-lock-query-expand-range, since it might + provide a escape hatch for problems we discover in the future, and it + should be very cheap so no downside of keeping it. + + * lisp/textmodes/css-mode.el (css-ts-mode): Stop setting + treesit--font-lock-query-expand-range. + * lisp/treesit.el (treesit--font-lock-query-expand-range): Update + docstring. + * src/treesit.c (Ftreesit_query_capture): Convert BEG and END to byte + position. Also added parentheses wround "beg_byte - visible_beg" in + the call to ts_query_cursor_set_byte_range (i.e., style change). + +2022-12-05 Jostein Kjønigsen + + Improve fontification of typescript-ts-mode (bug#59831) + + - Highlight property and field definitions in class declaration. + - Highlight property-keys in object initializaters. + - Highlight variable-names in function/method return-statements. + + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--font-lock-settings): Add fontification rules. + +2022-12-05 Theodor Thornhill + + Add back pair feature in json-ts-mode fontification (bug#59833) + + * lisp/progmodes/json-ts-mode.el (json-ts-mode--font-lock-settings): + Add back in removed pair feature. Also alphabetize features. + (json-ts-mode): Use the new feature. + +2022-12-05 Eli Zaretskii + + Fix mouse clicks on a non-selected frame + + * lisp/mouse-drag.el (mouse-drag-drag): Skip switch-frame events + while tracking mouse. (Bug#59785) + +2022-12-04 Yuan Fu + + Improve treesit-fontify-with-override + + This also fixes fontification problem with c-ts-mode--fontify-defun. + + Now treesit-fontify-with-override clips the fontification region for + the user, so no need for (max start node-start) shenanigans anymore. + More importantly it doesn't fontify unless the region between + node-start and node-end intersects with the region between start and + end, which fixes the problem with c-ts-mode--fontify-defun. + + * lisp/treesit.el (treesit-fontify-with-override): Add optional + parameter BOUND-START and BOUND-END. Wrap the function body in a + when-form. + * lisp/progmodes/c-ts-mode.el (c-ts-mode--fontify-declarator) + (c-ts-mode--fontify-variable) + (c-ts-mode--fontify-defun) + (c-ts-fontify-error) + * lisp/progmodes/js.el (js--fontify-template-string) + * lisp/progmodes/python.el (python--treesit-fontify-string): Use the + new signature. + +2022-12-04 Jim Porter + + Make killing a non-last client work the same no matter the auto-stop setting + + Previously, if 'server-stop-automatically' was configured for + 'kill-terminal' or 'delete-frame', killing a client via + 'save-buffers-kill-terminal' wouldn't prompt about the saving files in + the client's buffer list (as it does when not using those settings). + This change ensures that those settings only apply when killing the + last client, as described in the manual (bug#51993). + + * lisp/server.el (server-save-buffers-kill-terminal): Handle + 'server-stop-automatically' behavior in this function, rather than + calling 'server-stop-automatically--handle-delete-frame'. + +2022-12-04 Juri Linkov + + Use the function 'window-system' on the tab-bar/tab-line (bug#59620) + + * lisp/tab-bar.el (tab-bar-separator) + (tab-bar-format-align-right, tab-bar-auto-width): + * lisp/tab-line.el (tab-line-format-template): Replace the variable + 'window-system' with the function call '(window-system)'. + +2022-12-04 Tom Gillespie + + Restore font-lock-type-face for lisp mode &symbols + + * lisp/emacs-lisp/lisp-mode.el (lisp-cl-font-lock-keywords-2) + (lisp-el-font-lock-keywords-2): Restore use of type face instead of + builtin face for &symbol keywords. This fixes what appears to be + a copy paste error that changed the face for common lisp and emacs + lisp &symbol style keywords that was introduced in commit + a498e5f83 by restoring the type face to font-lock-type-face as + consistent with the comments. + +2022-12-04 Kai Ma (tiny change) + + Prevent a segfault when deleting a fullscreen frame on NextStep. + + * nsterm.m ([EmacsView resetCursorRects:]): Be defensive when + accessing FRAME_OUTPUT_DATA. [resetCursorRects:] can be called + from the event loop after the frame is deleted. When this + happens, emacsframe is NULL. This means there is an underlying + leak of the EmacsView object! (Bug#59794) + Do not merge to master. + +2022-12-04 Eli Zaretskii + + Fix markup in ERC manual + + * doc/misc/erc.texi (SASL): Use @table instead of simulating it + with @indentedblock. Fix markup. (Bug#59815) + +2022-12-03 Yuan Fu + + Fix comment-start-skip in tree-sitter modes (bug#59690) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode) + (c++-ts-mode) + * lisp/progmodes/csharp-mode.el (csharp-ts-mode) + * lisp/progmodes/java-ts-mode.el (java-ts-mode) + * lisp/progmodes/js.el (js-ts-mode) + * lisp/progmodes/typescript-ts-mode.el (tsx-ts-mode): Remove the group + from the regexp. + +2022-12-03 Mattias Engdegård + + Speed up Unicode normalization tests by a factor of 5 + + After this change, ucs-normalize-tests are still very slow but + somewhat less disastrously so (from 100 to 20 min on this machine). + + * test/lisp/international/ucs-normalize-tests.el + (ucs-normalize-tests--normalization-equal-p) + (ucs-normalize-tests--normalization-chareq-p) + (ucs-normalize-tests--rule1-holds-p) + (ucs-normalize-tests--rule2-holds-p) + (ucs-normalize-tests--part1-rule2): + Run only over the Unicode code space. + Hoist `with-current-buffer` to reduce overhead. + +2022-12-03 Eli Zaretskii + + Fix "C-h k" when clicking on another frame + + * lisp/help.el (help--analyze-key): Don't barf if the key sequence + includes a switch-frame event. (Bug#59785) + +2022-12-03 Juanma Barranquero + + Fix and expand tests broken by commit 2772ebe366 of 2022-11-28 + + * test/lisp/emacs-lisp/comp-tests.el + (with-test-native-compile-prune-cache) + (test-native-compile-prune-cache) + (test-native-compile-prune-cache/delete-only-eln) + (test-native-compile-prune-cache/dont-delete-in-parent-of-cache): + Check that the last directory in `native-comp-eln-load-path' is + not affected by `native-compile-prune-cache'. + +2022-12-03 Eli Zaretskii + + Fix handling of relative directories in "--init-directory=DIR" + + * lisp/startup.el (command-line): Interpret non-absolute file + names in '--init-directory' relative to the directory from + which Emacs is started. (Bug#59795) + +2022-12-03 Eli Zaretskii + + Make sure 'user-emacs-directory' ends in a slash + + * lisp/startup.el (command-line): Make sure 'user-emacs-directory' + has the form of a directory. + +2022-12-03 Eli Zaretskii + + Fix gud-minor-mode-menu + + * lisp/emacs-lisp/easy-mmode.el (define-minor-mode) + (easy-mmode-define-keymap): Don't declare obsolete, since we are + still using it in gud.el. (Bug#59769) (Bug#59605) + Do not merge to master. + +2022-12-03 Eli Zaretskii + + Revert "Make easy-mmode-defmap obsolete and adjust only caller" + + This reverts commit 8bb5c1bfec0929f2ba419e1c503f5acc01c336c2. + That commit lost too many useful features in the GUD menus + and caused several bugs, the last of them bug#59769. + + Do not merge to master. + +2022-12-03 Sean Whitton + + vc-git-print-log: Don't assume vc-git-log-switches is a list + + * lisp/vc/vc-git.el (vc-git-print-log): Call ensure-list on + vc-git-log-switches to handle the case where it's a singular string. + +2022-12-02 Stefan Kangas + + Fix use-package tests + + * test/lisp/use-package/use-package-chords-tests.el: + * test/lisp/use-package/use-package-tests.el: Remove local + variables section. Require 'ert' and fix copyright header. + +2022-12-02 Mattias Engdegård + + Fix server-tests run noninteractively (bug#59742) + + This may or may not fix the test run from CI. + + * test/lisp/server-tests.el (server-tests/can-create-frames-p): + Don't attempt to create frames if TERM=dumb, which what we have + if run from M-x compile (for instance). + (server-tests/server-force-stop/keeps-frames): Delete created frame so + that it doesn't cause trouble for other tests. + +2022-12-02 Randy Taylor + + Use file-name-nondirectory to determine default project-name + + * lisp/progmodes/project.el (project-name): + Use file-name-nondirectory instead of file-name-base (bug#59756). + +2022-12-02 Yikai Zhao + + Speed up auto-completion in 'sh-script-mode' + + * lisp/progmodes/sh-script.el (sh--cmd-completion-table-gen): New + function, replacement for 'sh--cmd-completion-table'. + (sh--cmd-completion-table): Function removed. + (sh-completion-at-point-function): Use + 'sh--cmd-completion-table-gen'. (Bug#59678) + +2022-12-02 Juanma Barranquero + + Fix error editing multisession variables (bug#59710) + + * lisp/emacs-lisp/multisession.el (multisession-edit-value): + Do not use `bound-and-true-p' on a non-symbol. This reverts + commit bd586121ac21e046f60f75eeb0200866c38d6f9f. + +2022-12-02 Brian Leung + + Add tsx-ts-mode to eglot-server-programs + + * lisp/progmodes/eglot.el (eglot-server-programs): Add + tsx-ts-mode. (Bug#59770) + +2022-12-02 Juri Linkov + + * lisp/tab-bar.el (tab-bar-format-align-right): Fix alignment on TTY frames. + + Calculate the alignment from the left edge instead of the right edge + since the `right' spec doesn't work on TTY frames when windows are split + horizontally (bug#59620). + +2022-12-02 Juri Linkov + + Fix the width of margins for icons in outline-minor-mode (bug#59719) + + * doc/lispref/display.texi (Icons): Add :width spec. + + * lisp/emacs-lisp/icons.el (icons--create): Handle :width as well. + + * lisp/outline.el (outline--margin-width, outline-margin-width): + New variables. + (outline-open-in-margins, outline-close-in-margins) + (outline-close-rtl-in-margins): Don't inherit from parents. + Use `:width font' instead of `:height 10'. + (outline-minor-mode): Calculate the number of columns for margins + to fit the icons. + +2022-12-01 Theodor Thornhill + + Add new TypeScript mode tsx-ts-mode + + There are in fact two languages supporting TypeScript for tree-sitter. + Because TSX causes some ambiguities with types there are two grammars, + one called typescript and one called tsx. To account for this and to + be as correct as possible we enable using both. + + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--indent-rules): Change to a function to accommodate + the two languages. + (typescript-ts-mode--font-lock-settings): Change to a function to + accommodate the two languages. + (typescript-ts-base-mode): Parent mode for typescript-ts-mode + and tsx-ts-mode. + (typescript-ts-mode): Derive from typescript-ts-base-mode and + extend with language specific settings + (tsx-ts-mode): New major mode that derives from + typescript-ts-base-mode and extend it with language specific + settings + + Add autoload cookies for the respective file type extensions: .ts and + .tsx. + + * etc/NEWS: Mention the new mode. + +2022-12-01 Daniel Martín + + Add case and match to python--treesit-keywords (bug#59720) + + * lisp/progmodes/python.el (python--treesit-keywords): Add "case" and + "match" keywords. + +2022-12-01 Dmitry Gutov + + project-files (VC-aware): Make sure the VC backend is loaded + + * lisp/progmodes/project.el (project-files): + Make sure the VC backend is loaded (bug#59734). + +2022-12-01 Sean Whitton + + term--update-term-menu: Add the menu to term-terminal-menu + + Reading bug#5641, the intention was to add this to the existing + "Terminal" menu for term-mode buffers, not to the local keymaps of all + other buffers. Moreover, the existing code signaled errors when + switching to buffers with no local keymap, such as term-mode buffers + whose processes have died. + + * lisp/term.el (term--update-term-menu): Add the menu to + term-terminal-menu, instead of implicitly trying to add it to every + local keymap. + +2022-12-01 Eli Zaretskii + + Improve detection of very long lines + + * src/xdisp.c (redisplay_window): Recheck for long lines if the + restriction has changed. (Bug#56682) + +2022-12-01 Laurence Warne + + Add colors to Proced (bug#59407) + + Add a new custom variable proced-enable-color-flag which when set to a + non-nil value (defaults to nil), will prompt some format functions to + furnish their respective process attributes with colors and effects in + order to make them easier to distinguish and highlight possible issues + (e.g. high memory usage), in a manner similar to htop. + + In particular, the current Emacs process id is highlighted purple in + both the process id and parent process id columns, session leaders + have their process ids underlined, larger memory sizes for rss + are highlighted in darker shades of orange, and the first word in the + args property (the executable) is highlighted in blue. + + * lisp/proced.el (proced-grammar-alist): Update to use the new format + functions. + (proced-low-memory-usage-threshold): New custom variable to determine + whether a value represents 'low' memory usage, used only in + proced-format-memory for coloring. + (proced-medium-memory-usage-threshold): New custom variable to + determine whether a value represents 'medium' memory usage, used only + in proced-format-memory for coloring. + (proced-enable-color-flag): New custom variable to toggle coloring. + (proced-run-status-code, proced-interruptible-sleep-status-code) + (proced-uninterruptible-sleep-status-code, proced-executable) + (proced-executable, proced-memory-gb, proced-memory-mb) + (proced-memory-default, proced-pid, proced-ppid, proced-pgrp) + (proced-sess, proced-cpu, proced-mem, proced-user, proced-time-colon): + New faces. + (proced-format-time): Edit function to color colons using + proced-time-colon. + (proced-format-args): Edit function to color executables using + proced-executable. + (proced-format-state): New function to color states. + (proced-format-pid): New function to color process ids. + (proced-format-ppid): New function to color parent process ids. + (proced-format-pgrp): New function to color process group ids. + (proced-format-sess): New function to color process session leader + ids. + (proced-format-cpu): New function to color cpu utilization. + (proced-format-mem): New function to color memory utilization. + (proced-format-user): New function to color the user a process + belongs to. + +2022-12-01 Dmitry Gutov + + Update project docs and NEWS + + * doc/emacs/maintaining.texi (Projects): Update the name. + + * etc/NEWS: Mention new option (bug#41572). + +2022-12-01 Stefan Kangas + + Update publicsuffix.txt from upstream + + * etc/publicsuffix.txt: Update from + https://publicsuffix.org/list/public_suffix_list.dat + dated 2022-11-29 18:15:27 UTC. + + (cherry picked from commit de00aef3e151e0eefe20feda74cf90578e8ff109) + +2022-12-01 kobarity + + Add highlighting Python operators (bug#59629) + + * lisp/progmodes/python.el (python-rx): Remove "is" and + "not" from operator. + (python-font-lock-keywords-maximum-decoration): Add + highlighting operators. + * test/lisp/progmodes/python-tests.el + (python-font-lock-assignment-statement-1) + (python-font-lock-assignment-statement-2) + (python-font-lock-assignment-statement-3) + (python-font-lock-assignment-statement-4) + (python-font-lock-assignment-statement-5) + (python-font-lock-assignment-statement-6) + (python-font-lock-assignment-statement-7) + (python-font-lock-assignment-statement-8) + (python-font-lock-assignment-statement-9) + (python-font-lock-assignment-statement-10) + (python-font-lock-assignment-statement-11) + (python-font-lock-assignment-statement-12) + (python-font-lock-assignment-statement-13) + (python-font-lock-assignment-statement-14) + (python-font-lock-assignment-statement-15) + (python-font-lock-assignment-statement-16) + (python-font-lock-assignment-statement-17) + (python-font-lock-assignment-statement-18) + (python-font-lock-assignment-statement-multiline-1) + (python-font-lock-assignment-statement-multiline-2) + (python-font-lock-assignment-statement-multiline-3) + (python-font-lock-assignment-statement-multiline-4) + (python-font-lock-assignment-statement-multiline-5) + (python-font-lock-assignment-statement-multiline-6) + (python-font-lock-escape-sequence-multiline-string): Modify + expectations to include faces for operators. + (python-font-lock-operator-1, python-font-lock-operator-2): New tests. + +2022-12-01 Eli Zaretskii + + Fix compilation of Org 9.6 on MS-Windows + + * lisp/org/org-clock.el (org-x11idle-exists-p): Don't try to + invoke "command x11idle" on MS-Windows and MS-DOS. This fixes a + hang during byte-compilation of Org. + +2022-12-01 Po Lu + + * doc/lispref/frames.texi (Input Focus): Clarify for XInput 2 support. + +2022-12-01 Mattias Engdegård + + Fix types in various defcustom declarations + + * lisp/org/ob-clojure.el + (ob-clojure-babashka-command, ob-clojure-nbb-command): + Account for the possibility of nil (commands absent). + * lisp/org/org.el (org-safe-remote-resources): + * lisp/org/ox-md.el (org-md-toplevel-hlevel): + * lisp/progmodes/project.el (project-vc-extra-root-markers): + Fix incorrect or invalid types. + +2022-12-01 Po Lu + + Fix crashes and memory leaks during display deinitialization + + * .dir-locals.el (c-mode): Add more noise macro names. + * src/frame.c (delete_frame): Do not delete terminal if force is + Qnoelisp. + + * src/xterm.c (x_wm_supports): Fix coding style. + (x_delete_display): Delete the supported atoms list. + (x_delete_terminal): Delete all terminals. Free the scratch + cursor GC. + +2022-11-30 Dmitry Gutov + + New user option: project-vc-extra-root-markers + + * lisp/progmodes/project.el: Commentary update. + (project-vc, project-vc-include-untracked, project-vc-name): + Update docstrings. Rename 'VC project' to 'VC-aware project'. + (project-vc-extra-root-markers): New option (bug#41572). + (project-try-vc): Use it. Construct a single regexp from all and + validate it using the MATCH argument of 'directory-files'. Call + 'locate-dominating-file' directly. + (project-ignores): Support VC-aware project instances with nil + value of VC backend. + + * test/lisp/progmodes/project-tests.el (project-vc-recognizes-git) + (project-vc-extra-root-markers-supports-wildcards) + New tests. + (project-tests--this-file): New variable. + +2022-11-30 Daniel Martín + + Add inline to c-ts-mode--keywords + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--keywords): Add "inline", a + keyword available since C99 to define inline functions in C. + +2022-11-30 Daniel Martín + + Remove duplicate "friend" from c-ts-mode--keywords + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--keywords): Remove duplicate + keyword. + +2022-11-30 Yuan Fu + + Make treesit-defun-prefer-top-level more flexible + + * doc/lispref/positions.texi (List Motion): Update manual. + * lisp/treesit.el (treesit-defun-prefer-top-level): Update docstring. + (treesit--defun-maybe-top-level): Change to accept new format. + +2022-11-30 Yuan Fu + + Fix c-ts-mode defun movement (bug#59628) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--end-of-defun): New function. + (c-ts-mode--base-mode): Use more specific regexp, and set + treesit-defun-prefer-top-level. + (c-ts-mode) + (c++-ts-mode): Set end-of-defun-function. + +2022-11-30 Juri Linkov + + * lisp/tab-bar.el: Keep tabs of the same group together (bug#59721) + + (tab-bar-tab-post-change-group-functions): Change the default value to + '(tab-bar-move-tab-to-group)'. Improve docstring. + (tab-bar-change-tab-group): Improve docstring. + +2022-11-30 muffinmad + + Insert news for installed packages only + + * lisp/emacs-lisp/package.el (describe-package-1): Check package is + installed and "news" is a regular file. (Bug#59684) + +2022-11-30 Dmitry Gutov + + project-current: Improve the docstring + + * lisp/progmodes/project.el (project-current): + Improve the docstring (bug#59722). + +2022-11-30 Stefan Kangas + + * doc/misc/Makefile.in (INFO_COMMON): Add use-package. + +2022-11-30 Mattias Engdegård + + Org regexp style fixes + + * lisp/org/org-element.el (org-element--get-node-properties): + Escape literal `+`. + * lisp/org/org-persist.el (org-persist-load:index): + Replace line-start with string-start when the latter is meant. + +2022-11-30 Mattias Engdegård + + Skip one python test case on macOS + + * test/lisp/progmodes/python-tests.el (python-ffap-module-path-1): + This test fails with a standard macOS Python installation; + see bug#59477 and bug#25753. + + (cherry picked from commit db042b7591ea9da5e169704e5b32bd99c4ea7adf) + +2022-11-30 Mattias Engdegård + + Sink python indent offset guessing to avoid test failure + + Call python-indent-guess-indent-offset late in the set-up of + python-mode and python-ts-mode to make sure that the required other + settings (of syntax-propetize-function in particular) have been + carried out. This cures a python-test failure (bug#59477). + + * lisp/progmodes/python.el (python-base-mode): Move + python-indent-guess-indent-offset call from here... + (python-mode): ...to here... + (python-ts-mode): ...and here. + +2022-11-29 Kyle Meyer + + * etc/NEWS: Announce Org update. + + Update to Org 9.6-3-ga4d38e + +2022-11-29 Juanma Barranquero + + Fix interactive selection of emacs-lock mode, broken by 2a4b0da28c + + * lisp/emacs-lock.el (emacs-lock--set-mode): Check that + arg is 4 and prefix is '(4). + (emacs-lock-mode): Pass also `current-prefix-arg' to + `emacs-lock--set-mode'. + +2022-11-29 Daniel Martín + + Fix typo in flag to load Emacs-specific LLDB commands + + * src/.lldbinit: Fix typo in flag to parse .lldbinit files from the + current directory. (Bug#59702) + +2022-11-29 Alan Mackenzie + + CC Mode: Prevent lone ids being parsed as types unless in decl arglists + + This fixes bug #59051. + + * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): In the test for the + last invocation of c-fdoc-shift-type-backward before CASE 1, additionally + test CONTEXT not being an arglist or BACKUP-AT-TYPE being non-nil. + +2022-11-29 Mattias Engdegård + + Allow csharp-mode in c-default-style + + * lisp/progmodes/cc-vars.el (c-default-style): + Add csharp-mode to the type. This fixes test-custom-opts. + +2022-11-29 Augusto Stoffel + + In project-find-file, add abbreviated file names to history + + * lisp/progmodes/project.el (project--read-file-cpd-relative): + Use 'abbreviate-file-name' (bug#58447). + +2022-11-29 Dmitry Gutov + + * lisp/progmodes/project.el (project-vc-name): Fix the :type form (bug#48747). + +2022-11-29 Michael Albinus + + Tramp cleanup + + * doc/misc/tramp.texi: Use @value{tramp} where appropriate. + + * doc/misc/trampver.texi: Change "Tramp" format ifplaintext. + + * lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist): + Ignore `memory-info'. + +2022-11-29 Po Lu + + Allow be-resources to fail + + * lib-src/be_resources.cc (be_perror): Print additional blurb. + (main): Return 0 on failure as well, but print the blurb. + Problem reported by the Haiku packager. + +2022-11-29 F. Jason Park + + Simplify erc-sasl's auth-source API + + * doc/misc/erc.texi: Revise descriptions in SASL chapter to reflect + simplified auth-source options. + + * lisp/erc/erc-sasl.el (erc-sasl-password, + erc-sasl-auth-source-function): Revise doc strings. + (erc-sasl-auth-source-password-as-host): New function to serve as + more useful choice for option `erc-sasl-auth-source-function'. + (erc-sasl--read-password): Promote auth-source to pole position, above + an explicit string and `:password'. + + * test/lisp/erc/erc-sasl-tests.el (erc-sasl--read-password--basic): + Massage tests to conform to simplified `erc-sasl-password' + API. (Bug#29108.) + +2022-11-28 F. Jason Park + + * doc/misc/erc.texi: Revise SASL and modules chapters. + +2022-11-28 F. Jason Park + + Add erc-sasl-auth-source-function to cached options + + * lisp/erc/erc-sasl.el (erc-sasl--read-password): Consult cached + options instead of `erc-sasl-auth-source-function'. + (erc-sasl--init): Add `erc-sasl-auth-source-function' to + `erc-sasl--options'. + + * test/lisp/erc/erc-sasl-tests.el (erc-sasl--read-password--basic, + erc-sasl--read-password--auth-source): Look for original value of + `erc-sasl-auth-source-function' in `erc-sasl--options' under the + `authfn' key. + +2022-11-28 Jostein Kjønigsen + + Improve fontification in csharp-ts-mode + + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings): + Improve rules for variables, new-expressions, and catch statements. + +2022-11-28 Jostein Kjønigsen + + Improve fontification in typescript-ts-mode + + - Restore method-name fontification. + - Fontify all types in class-declarations, extendees too + + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--font-lock-settings): Change patterns. + +2022-11-28 Theodor Thornhill + + Add more font-lock settings to css-ts-mode + + * lisp/textmodes/css-mode.el (css--treesit-settings): Add new + font-lock features 'query', 'keyword', 'operator' and 'bracket'. + (css-ts-mode): Use new features. + +2022-11-28 Yuan Fu + + Reparse tree-sitter tree when buffer restriction changes + + * src/treesit.c (treesit_sync_visible_region): Set nee_reparse flag to + true if buffer range changes. Add some assertion. + + * src/treesit.c (treesit_ensure_parsed): Move + treesit_sync_visible_region in front of the check for need_reparse. + +2022-11-28 Eli Zaretskii + + Fix GUD item on the menu bar in source buffers + + * lisp/progmodes/gud.el (alist-get): Restore gud-minor-mode menu + on the menu bar. (Bug#59605) + +2022-11-28 Eli Zaretskii + + Cut the emacs-29 release branch + + * README: + * configure.ac: + * nt/README.W32: + * msdos/sed2v2.inp: Bump Emacs version to 29.0.60. + + * admin/admin.el (set-version): Fix regexp for configure.ac. + + * lisp/cus-edit.el (customize-changed-options-previous-release): + Bump last version to 28.2. + +2022-11-28 Juanma Barranquero + + Do not prune native-compiled system directories (bug#59658) + + * lisp/emacs-lisp/comp.el (native-compile-prune-cache): + Skip last directory in `native-comp-eln-load-path'. + +2022-11-28 Gregory Heytings + + Fix display of long completions. + + * lisp/minibuffer.el (completion--insert-strings): Do not assume + "at least 2 columns", which is not possible when completion + strings are long, e.g. with completions-detailed set. + +2022-11-27 Gregory Heytings + + Do not enter locked narrowing when it would span the whole buffer + + * src/xdisp.c (handle_fontified_prop): + * src/keyboard.c (safe_run_hooks_maybe_narrowed): Add condition. + +2022-11-27 Dmitry Gutov + + * lisp/progmodes/xref.el (xref--outdated-p): Fix broken docstring. + +2022-11-27 Stefan Kangas + + Catch more cases in info--ensure-not-in-directory-node + + * lisp/info.el (info--ensure-not-in-directory-node): Fix the case + where "DIR" is in upper-case, and if 'Info-current-file' is an + absolute file name. + Problem reported by Eli Zaretskii . + +2022-11-27 Gregory Heytings + + Fix incompatible -t and -r options in emacsclient + + * lib-src/emacsclient.c (decode_options): Do not allow -t and -r + together. + +2022-11-27 Gregory Heytings + + Minor improvements to locked narrowing + + * src/xdisp.c (get_locked_narrowing_begv) + (get_locked_narrowing_zv): Safer handling of negative values. + (handle_fontified_prop): Do not use locked narrowing if the region + size is <= 0. + + * src/keyboard.c (safe_run_hooks_maybe_narrowed): Do not use + locked narrowing if the region size is <= 0. + +2022-11-27 Yuan Fu + + Remove treesit-comment-start/end and use comment-start/end-skip + + treesit-comment-start/end is unnecessary because of + comment-start/end-skip, so they should be removed. + + Cleanup and set comment-start/end-skip for tree-sitter C-like major + modes. + + I replaced the [ \t]* part in comment-start-skip with (syntax + whitespace), which is what comment-end-skip uses. I also added + grouping in comment-start-skip to match that of comment-end-skip. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode) + (c++-ts-mode) + * lisp/progmodes/csharp-mode.el (csharp-ts-mode) + * lisp/progmodes/java-ts-mode.el (java-ts-mode) + * lisp/progmodes/js.el (js-ts-mode) + * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode): Setup + comment-start/end-skip. + + * lisp/treesit.el (treesit-comment-start) + (treesit-comment-end): Remove variables. + (treesit-simple-indent-presets): Use comment-start/end-skip instead. + +2022-11-27 John Wiegley + + Merge pull request from skangas/revert-for-copyright + + GitHub-reference: https://github.com/jwiegley/use-package/issues/1026 + +2022-11-27 John Wiegley + + Merge pull request from skangas/revert-for-copyright2 + + GitHub-reference: https://github.com/jwiegley/use-package/issues/1027 + +2022-11-27 Gregory Heytings + + Merge branch 'feature/improved-locked-narrowing' + +2022-11-27 Eli Zaretskii + + Fix the new ctags test + + * test/manual/etags/Makefile (ctags_update): Sort CTAGS* files + before comparing. Patch by lu4nx . (Bug#59544) + + * .gitignore: Ignore CTAGS*.sorted files. + +2022-11-27 Michael Albinus + + Extend memory-info for remote systems + + * doc/lispref/files.texi (Magic File Names): Add memory-info. + + * doc/lispref/internals.texi (Garbage Collection): memory-info can + also retrieve values from remote systems. + + * etc/NEWS: Document changes in memory-info. Fix typos. + + * lisp/files.el (warn-maybe-out-of-memory): Ensure local memory info. + + * lisp/net/tramp.el (tramp-handle-memory-info): New defun. + (tramp-file-name-for-operation) + * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist): + * lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist): + * lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist): + * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist): + * lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist): + * lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist): + * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist): + * lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist) + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist): + Add 'memory-info'. + + * lisp/net/tramp-sshfs.el (tramp-sshfs-handle-exec-path): + Let-bind `process-file-side-effects'. + + * src/alloc.c (Fmemory_info): Support remote systems. + (Qmemory_info): Declare. + + * test/lisp/net/tramp-tests.el (tramp-test31-memory-info): New test. + +2022-11-27 Philip Kaludercic + + Consistently refer to VC packages as such + + * lisp/emacs-lisp/package-vc.el: Replace instances of "source package" + in comments and docstrings. + * lisp/emacs-lisp/package.el: Replace instances of "source package" in + comments and docstrings. + +2022-11-27 Juanma Barranquero + + Fix xref interaction with which-func (bug#59575) + + * lisp/progmodes/xref.el (xref--add-log-current-defun): + New function. + (xref--xref-buffer-mode): Assign it buffer-locally to + `add-log-current-defun-function'. + +2022-11-27 lu4nx + + Fixed ctags local command execute vulnerability + + * lib-src/etags.c: + + (clean_matched_file_tag): New function + (do_move_file): New function + (readline_internal): + Add `leave_cr` parameter, if true, include the \r character + + * test/manual/etags/CTAGS.good_crlf: New file + * test/manual/etags/CTAGS.good_update: New file + * test/manual/etags/crlf: New file + * test/manual/etags/Makefile: Add `ctags -u` test cases + +2022-11-27 Juanma Barranquero + + Fix xref to correctly display Windows absolute filenames + + * lisp/progmodes/xref.el (xref--group-name-for-display): + Use `file-name-absolute-p' instead of faking it. (Discussed + in bug#59628.) + +2022-11-27 Shohei YOSHIDA + + * lib-src/emacsclient.c (print_help_and_exit): Fix --timeout. + +2022-11-27 Po Lu + + Make frame synchronization more robust + + * src/xterm.c (x_sync_wait_for_frame_drawn_event) + (x_sync_handle_frame_drawn): Only cancel frame synchronization + if hanging twice or more in a row. + * src/xterm.h (struct x_output, FRAME_X_DRAW_JUST_HUNG): New + flag. + +2022-11-27 Theodor Thornhill + + Remove compatibility code in csharp-mode + + * lisp/progmodes/csharp-mode.el (c-basic-matchers-before): Remove + invalid string check for Emacs 27. + (version=): Remove compatibility hack for string handling in CC Mode + in Emacs 27.1. (Bug#59602) + +2022-11-27 Stefan Kangas + + Revert "Add: 'local' keyword" + + This reverts commit 620fe443c2e7598191cb5d6c6a41064471edb57c. + +2022-11-27 Stefan Kangas + + Remove tests lacking a copyright assignment for now + + * use-package-tests.el (use-package-test/pre-post-hooks-with-:config) + (use-package-test/pre-post-hooks-without-:config): Remove tests. + +2022-11-27 Theodor Thornhill + + Add js-ts-mode to eglot-server-programs + + * lisp/progmodes/eglot.el (eglot-server-programs): Add js-ts-mode as + an alternative. (Bug#59252) + +2022-11-27 Stefan Kangas + + Improve describe-text-properties display + + * lisp/descr-text.el (describe-property-list): Don't propertize white + space with the 'help-argument-name' face. This improves display + slightly when that face has an underline. + +2022-11-26 Gregory Heytings + + Simplify narrowing_locks_restore + + * src/editfns.c (narrowing_locks_restore): Simplify. + +2022-11-26 Gregory Heytings + + Improve handling of killed buffers in locked narrowings + + * src/editfns.c (narrowing_locks_add, narrowing_locks_remove): + New functions, factored out. + (narrowing_lock_push, narrowing_lock_pop) + (narrowing_locks_restore): Use the new functions. + (narrowing_lock_get_bound): Return NULL for killed buffers. + (reset_outermost_narrowings, unwind_reset_outermost_narrowing): + Remove killed buffers from the 'narrowing_locks' alist. + +2022-11-26 Yuan Fu + + Make typescript-ts-mode not fallback to js-mode + + 1. js-mode might not be able to handle typescript file + 2. Now that we use separate modes for tree-sitter modes, not falling + back makes tree-sitter modes more consistent + + * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode): Remove + the fallback code. + +2022-11-26 Yuan Fu + + Make bash-ts-mode fall back to sh-mode if the file isn't in Bash + + * lisp/progmodes/sh-script.el (sh--guess-shell): Take out into a new + function. + (sh-base-mode): Use the new function. + (bash-ts-mode): Update docstring. + (sh--redirect-recursing): New variable. + (sh--redirect-bash-ts-mode): New function. + +2022-11-26 Jostein Kjønigsen + + Correctly fontify types in typeof() expression in csharp-ts-mode + + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings): + Add new pattern. + +2022-11-26 Yuan Fu + + Reorganize treesit-font-lock-feaure-list's to the new level scheme + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--base-mode) + * lisp/progmodes/csharp-mode.el (csharp-ts-mode) + * lisp/progmodes/java-ts-mode.el (java-ts-mode) + * lisp/progmodes/js.el (js-ts-mode) + * lisp/progmodes/python.el (python-ts-mode) + * lisp/progmodes/sh-script.el (bash-ts-mode) + * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode): + Reorganized treesit-font-lock-feature-list. + +2022-11-26 Yuan Fu + + Add treesit-font-lock-level + + This replaces font-lock-maximum-decoration and allows us to disable + the busiest fontification level by default. + + * lisp/treesit.el (treesit-font-lock-level): New variable. + (treesit-font-lock-feature-list) + (treesit-font-lock-settings): Change docstring. + (treesit-font-lock-recompute-features): Use the new variable. + +2022-11-26 Yuan Fu + + Add default limit for tree-sitter recursive tree-traversing function + + This fixes bug#59426. + + * src/treesit.c (treesit_search_dfs) + (treesit_build_sparse_tree): Remove no_limit parameter. + (Ftreesit_search_forward, Ftreesit_induce_sparse_tree): Use default + limit of 1000. + + * doc/lispref/parsing.texi (Retrieving Nodes): Update manual. + +2022-11-26 Yuan Fu + + Partially fix some python tests (bug#59477) + + This fixes + + python-font-lock-assignment-statement-multiline-1 + python-font-lock-assignment-statement-multiline-2 + python-font-lock-assignment-statement-multiline-3 + python-font-lock-assignment-statement-multiline-4 + python-font-lock-assignment-statement-multiline-5 + python-font-lock-assignment-statement-multiline-6 + + but leaves + + python-tests--fill-long-first-line + + unfixed. + + * lisp/progmodes/python.el (python-mode): Add the missing setup. + +2022-11-26 Gregory Heytings + + Minor improvements for locked narrowing + + * src/editfns.c (narrowing_lock_pop): Clarify comment, replace + assertion by return. + (narrowing_locks_restore): Add comments. + + * lisp/subr.el (with-narrowing, internal--with-narrowing): + Simplify, use a single helper function with an optional argument. + +2022-11-26 Jim Porter + + Improve robustness of server.el tests + + * lisp/emacs-lisp/ert.el (ert--insert-infos): Allow 'message' to be a + function that is called when inserting the info. + (ert-info): Update docstring to describe using a function for + MESSAGE-FORM. + + * lisp/server.el (server-start): Log when the server is starting. + + * test/lisp/server-tests.el (server-tests/can-create-frames-p): New + constant. Use it to skip tests that need to create frames. + (server-tests/start-emacsclient): Rename to... + (server-tests/start-client): ... this, and set the process's buffer. + (server-tests/with-server): Put the server file in a temporary + directory so we don't conflict with real Emacs servers. + (server-tests/with-client): New macro... + (server-tests/server-start/stop-prompt-with-client) + (server-tests/emacsclient/server-edit) + (server-tests/emacsclient/create-frame) + (server-tests/emacsclient/create-frame): ... use it. + (server-tests/server-start/stop-prompt-with-client): Simplify. + +2022-11-26 Eric Abrahamsen + + Remove mentions of create-directory nnmaildir setting + + * lisp/gnus/nnmaildir.el (nnmaildir-open-server): The + 'create-directory server parameter should have been removed entirely, + and supplanted by 'target-prefix. Remove check for old parameter. + * doc/misc/gnus.texi (Maildir): Delete mention from manual. + +2022-11-26 Paul Eggert + + Update from Gnulib by running admin/merge-gnulib + +2022-11-26 Gregory Heytings + + Docstring improvements + + * src/xdisp.c (syms_of_xdisp): + * src/keyboard.c (syms_of_keyboard): + Docstring improvements. + +2022-11-26 Gregory Heytings + + Docstring improvements + + * src/xdisp.c (syms_of_xdisp): + * src/keyboard.c (syms_of_keyboard): + * src/buffer.c (syms_of_buffer): + Docstring improvements. + +2022-11-26 Gregory Heytings + + Further improvements to narrowing locks + + * src/editfns.c: + (narrowing_lock_get_bound): Return a pointer to a struct + Lisp_Marker instead of a character position. Suggested by Eli + Zaretskii. + (reset_outermost_narrowings, unwind_reset_outermost_narrowing) + (Fwiden, Fnarrow_to_region): Adapt accordingly. + (narrowing_lock_peek_tag, narrowing_lock_push) + (narrowing_lock_pop, narrowing_locks_save) + (narrowing_locks_restore): Use XCAR/XCDR/XSETCAR instead of + Fcar/Fcdr/Fsetcar. + +2022-11-26 Gregory Heytings + + Improve locked narrowing around low-level hooks. + + * src/buffer.c (syms_of_buffer): Two new variables, + 'long-line-locked-narrowing-region-size' and + 'long-line-locked-narrowing-bol-search-limit', to make the locked + narrowing around low-level hooks configurable. + + Increase the default value of 'long-line-threshold'. After + carefully considering the (few) bug reports about long line + optimizations, I concluded that the previous default value was too + low. + + * src/xdisp.c (get_locked_narrowing_begv) + (get_locked_narrowing_zv): Two new functions. + (handle_fontified_prop, reseat): Use them. + + * src/keyboard.c (safe_run_hooks_maybe_narrowed): Use them. + + * src/dispextern.h (struct it): Add two new fields to store the + values returned by these functions. + Make them externally visible. + + * src/editfns.c: (Fsave_restriction): Update docstring. + +2022-11-26 Stefan Kangas + + Mention new programming language support in manual + + * doc/emacs/programs.texi (Program Modes): Mention newly added support + for C#, TypeScript and JSON. + +2022-11-26 Augusto Stoffel + + In project-find-file and the like, add absolute file name to history + + * lisp/progmodes/project.el (project--read-file-cpd-relative): Add + absolute file name to history. + +2022-11-26 Eli Zaretskii + + Improve documentation of some posn-* functions + + * lisp/subr.el (posn-object-x-y): Doc fix. + + * doc/lispref/commands.texi (Click Events): More accurate + documentation of what are DX and DY in POSITION. + +2022-11-26 Eli Zaretskii + + Fix generation of autoloads on MS-Windows + + * lisp/emacs-lisp/loaddefs-gen.el + (loaddefs-generate--file-load-name): Handle the case when FILE and + OUTFILE don't share any common ancestor directory. (Bug#59507) + +2022-11-26 Po Lu + + Reduce wasted cycles in x*.c + + * src/xfns.c (compute_tip_xy, Fx_show_tip): + * src/xselect.c (x_own_selection, x_get_local_selection) + (x_clear_frame_selections): Call CAR and CDR, not Fcar and Fcdr. + +2022-11-26 Stefan Kangas + + Use substitute-command-keys in Info-index error + + * lisp/info.el (info--ensure-not-in-directory-node): New helper + function using substitute-command-keys for error message. + (Info-index, Info-virtual-index): Use it. + +2022-11-26 Brian Leung + + eglot-server-programs: ts-mode -> typescript-ts-mode + + * lisp/progmodes/eglot.el (eglot-server-programs): Fix name of + 'typescript-ts-mode' after rename from 'ts-mode'. (Bug#59589) + +2022-11-25 Yuan Fu + + Fix tree-sitter assertion error (bug#59574) + + * src/treesit.c (treesit_sync_visible_region): Initialize + visible_beg/end when tree is NULL. + +2022-11-25 Yuan Fu + + Rename treesit_ensure_position_synced to treesit_sync_visible_region + + * src/treesit.c: Rename to better convey the purpose of the function. + +2022-11-25 Theodor Thornhill + + Rename ts-mode to typescript-ts-mode + + * lisp/progmodes/typescript-ts-mode.el: Rename from 'ts-mode' to + 'typescript-ts-mode'. Rename all symbols to match new prefix. + * etc/NEWS: Mention the new mode name. + Ref: https://lists.gnu.org/r/emacs-devel/2022-11/msg01587.html + +2022-11-25 Theodor Thornhill + + Rename ts-mode.el to typescript-ts-mode.el + + * lisp/progmodes/ts-mode.el: Move from here... + * lisp/progmodes/typescript-ts-mode.el: ...to here. + +2022-11-25 Po Lu + + Fix no-accept-focus handling for embedded frames + + * src/xterm.c (handle_one_xevent): Don't focus embedded frames + on click if they have `no-accept-focus' set. + +2022-11-25 Gregory Heytings + + Save and restore narrowing locks in 'save-restriction'. + + * src/editfns.c: (Fsave_restriction): Save and restore narrowing + locks. Suggested by Stefan Monnier. + (narrowing_locks_save, narrowing_locks_restore): Helper functions. + + * lisp/subr.el (with-narrowing-1): Simplify. + +2022-11-25 Dmitry Gutov + + Drop project--value-in-dir + + Drop the project--value-in-dir mechanics, where the user could edit + the value in .dir-locals.el and have it applied instantly without + reverting the current buffer. It made working in remote buffers with + enable-remote-dir-locals non-nil slower, which doesn't seem worth it + for a minor improvement of an infrequent operation. Also less + complexity overall. + + * lisp/progmodes/project.el (project-try-vc, project-files) + (project--vc-list-files, project-ignores, project-buffers): + Use the user options directly. + (project--vc-merge-submodules-p, project--value-in-dir): + Delete functions. + +2022-11-25 Gregory Heytings + + Generic 'with-narrowing' macro. + + * lisp/subr.el (with-narrowing): New generic macro, replacing the + 'with-locked-narrowing' one. Suggested by Stefan Monnier. + (with-narrowing-1, with-narrowing-2): Helper functions. + +2022-11-25 Gregory Heytings + + Reworked locked narrowing. + + * src/editfns.c: (narrowing_locks): New alist to hold the narrowing + locks and their buffers. + (narrowing_lock_get_bound, narrowing_lock_peek_tag) + (narrowing_lock_push, narrowing_lock_pop): New functions to access + and update 'narrowing_locks'. + (reset_outermost_narrowings, unwind_reset_outermost_narrowing): + Functions moved from src/xdisp.c, and rewritten with the above + functions. + (Fwiden): Use the above functions. Update docstring. + (Fnarrow_to_region, Fnarrowing_lock, Fnarrowing_unlock): Use the above + functions. + (syms_of_editfns): Remove the 'narrowing-locks' variable. + + * src/lisp.h: Make 'reset_outermost_narrowings' externally visible. + + * src/xdisp.c (reset_outermost_narrowings) + unwind_reset_outermost_narrowing): Functions moved to src/editfns.c. + + * lisp/subr.el (with-locked-narrowing): Improved macro, with a helper + function. + +2022-11-25 F. Jason Park + + Disable auth-source-pass-extra-query-keywords by default + + * doc/misc/auth.texi: Mention subdomain matching in + `auth-source-pass-extra-query-keywords' section. + * etc/NEWS: Mention the loss of traditional auth-source-pass features + when `auth-source-pass-extra-query-keywords' is enabled. + * lisp/auth-source-pass.el (auth-source-pass-extra-query-keywords): Set + default to nil. Mention domain matching in doc string. + (auth-source-pass--match-regexp): Allow username to contain "@". + * lisp/erc/erc-compat.el: + (erc-compat--29-auth-source-pass--retrieve-parsed): Adjust regexp. + * test/lisp/auth-source-pass-tests.el + (auth-source-pass-extra-query-keywords--suffixed-user): make plain + username more email-like. + (Bug#58985.) + +2022-11-25 Mattias Engdegård + + Add sqlite library version string retrieval function (bug#58766) + + * src/sqlite.c (sqlite3_libversion, load_dll_functions): + Make sqlite3_libversion available. + (Fsqlite_version): New. + (syms_of_sqlite): Define sqlite-version. + * doc/lispref/text.texi (Database): Document. + * test/src/sqlite-tests.el (sqlite-returning): `RETURNING` was added + in sqlite 3.35; skip the test for older versions. + +2022-11-25 Theodor Thornhill + + Fix regex errors in csharp-mode + + * lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): + Repetition errors in regex. + + (csharp-compilation-re-xbuild-warning): Make regex match regex for + xbuild-error. + +2022-11-25 Alan Mackenzie + + CC Mode: Fix the "asymmetry rule" for fontifying a type followed by * + + This fixes bug #59427. We now handle correctly the case when a parenthesis + follows the * which is ambiguously a multiplication or indirection operator. + Also, we don't recognize a type thus found as a found type - the evidence is + too weak. + + * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): Fix CASE 17.5 as + above. + +2022-11-25 Stefan Kangas + + Remove unused parameter from image_create_pix_container + + * src/image.c (image_create_pix_container): Remove unused + frame parameter. Update callers. + +2022-11-25 Daanturo + + Show package name in package-vc--unpack prompt + + * lisp/emacs-lisp/package-vc.el (package-vc--unpack): Display the + package name when asking whether to overwrite its previous + checkout. (Bug#59548) + +2022-11-24 Jim Porter + + Don't explicitly delete client frames when killing Emacs anyway + + This eliminates a useless error prompt when killing Emacs from a + client frame when there are no other frames (bug#58877). + + * lisp/server.el (server-running-external): New error. + (server--file-name): New function... + (server-eval-at): ... use it. + (server-start): Factor out server stopping code into... + (server-stop): ... here. + (server-force-stop): Use 'server-stop', and tell it not to delete + frames. + + * test/lisp/server-tests.el + (server-tests/server-force-stop/keeps-frames): New test. + +2022-11-24 Gabriel do Nascimento Ribeiro + + Make ibuffer directory filter buffer aware + + * lisp/ibuf-ext.el (define-ibuffer-filter): Make ibuffer directory + filter buffer aware for buffer not visiting files. (Bug#59165) + +2022-11-24 Ackerley Tng + + Add support for window-local xref history + + * lisp/progmodes/xref.el (xref-history-storage): + New user option (bug#59381). + (xref--make-xref-history): New function. + (xref--history): Use it. + (xref-global-history, xref-window-local-history): New function. + (xref--get-history): New function. + (xref--push-backward, xref--push-forward) + (xref-push-marker-stack, xref-go-back, xref-go-forward) + (xref-clear-marker-stack, xref-marker-stack-empty-p) + (xref-forward-history-empty-p): Use it. + +2022-11-24 Stefan Kangas + + Bind Buffer-menu-view-other-window to "O" + + * lisp/buff-menu.el (Buffer-menu-mode-map): Bind + 'Buffer-menu-view-other-window' to "O". + (Buffer-menu-mode): Clean up docstring. (Bug#59280) + +2022-11-24 Gabriel do Nascimento Ribeiro + + Allow goto-address-at-point to use secondary browser + + * lisp/net/goto-addr.el (goto-address-at-point): Call + `browse-url-button-open-url', so a prefix argument uses + `browse-url-secondary-browser-function'. (Bug#59443) + +2022-11-24 Manuel Giraud + + Fix easy menu separator in oldXMenu + + * lisp/emacs-lisp/easymenu.el (easy-menu-convert-item-1): Replace a + string of dash with a menu separator as the doc says. (Bug#59370) + +2022-11-24 Jostein Kjønigsen + + Improve csharp-ts-mode fontification + + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings): + Add more pattern for definition feature. + +2022-11-24 Yuan Fu + + Improve python-ts-mode fontification (bug#59534) + + * lisp/progmodes/python.el (python--treesit-operators): Add operators. + (python--treesit-fontify-string): Fontify BOF docstrings. + +2022-11-24 Paul Eggert + + Work around lsp-mode compatibility bug + + * src/timefns.c (Ftime_subtract): Respect current-time-list when + args are eq (Bug#59506). + +2022-11-24 Brian Leung + + Add more tree-sitter modes to eglot-server-programs + + * lisp/progmodes/eglot.el (eglot-server-programs): Add python-ts-mode + and bash-ts-mode. (Bug#59550) + +2022-11-24 Philip Kaludercic + + * src/emacs.c (usage_message): Add missing --init-directory entry + +2022-11-24 Brian Leung + + Add tree-sitter-based modes to eglot-server-programs + + * lisp/progmodes/eglot.el (eglot-server-programs): Add + tree-sitter-based major modes. (Bug#59229) + +2022-11-24 Ulf Jasper + + icalendar: Adjust tests after fixing parsing of sexp entries (bug#56241) + + * test/lisp/calendar/icalendar-tests.el + (icalendar-export-bug-56241-nested-sexps): New. + * test/lisp/calendar/icalendar-tests.el (icalendar-real-world): + Disable testcase for exporting sexp entries that has now become invalid. + +2022-11-24 hokomo (tiny change) + + icalendar.el: Fix parsing of sexp entries (bug#56241) + + * lisp/calendar/icalendar.el (icalendar--convert-sexp-to-ical): Use + read-from-string for parsing sexp entries (bug#56241). + +2022-11-24 dannyfreeman + + Eglot: don't confuse URLs and windows file paths + + bug#59338 + + * lisp/progmodes/eglot.el (eglot--path-to-uri): Check for windows path + +2022-11-24 João Távora + + Remove fboundp check in eglot--connect + + project.el is a GNU ELPA :core package, so this kind of trick isn't + needed. + + * lisp/progmodes/eglot.el (eglot--connect): Don't fboundp + project-name. + +2022-11-24 Marcin Pajkowski (tiny change) + + Eglot: Advertise completion.resolveSupport capabilities + + Some servers avoid reporting completion items that + require "additionalTextEdits" capability. Actually, + 'eglot-completion-at-point' function supports such + feature so it can be advertised to LSP server. + * lisp/progmodes/eglot.el (eglot-client-capabilities): Advertise + resolveSupport. (bug#59465) + +2022-11-24 Mattias Engdegård + + Add new SI prefixes + + * lisp/calc/calc-units.el (math-unit-prefixes): + * lisp/files.el (file-size-human-readable): + + Add ronna, quetta, ronto and quecto. (We get the future IEC binary + prefixes Ri and Qi (robi and quebi) in `file-size-human-readable` for + free.) + +2022-11-24 Gregory Heytings + + Merge master into feature/improved-locked-narrowing. + +2022-11-24 Po Lu + + Fix reentrancy problem/crash in xterm.c + + * src/xterm.c (x_ignore_errors_for_next_request) + (x_stop_ignoring_errors): Be paranoid and block input inside the + protected section. + (x_focus_frame): Block input around critical section. + +2022-11-24 Mike Kupfer + + Fix trashing of symlink that points at a directory + + * lisp/files.el (move-file-to-trash): Redefine is-directory so + that it is false for symlinks. + +2022-11-24 Mike Kupfer + + Fix cross-filesystem directory trashing (Bug#58721) + + * lisp/files.el (move-file-to-trash): When trashing a directory with + the same name as something that's already in the trash, copy it into + the trash folder and then delete it, rather than using rename-file. + +2022-11-24 Alan Mackenzie + + CC Mode: Make it scroll fast over buffers with only #define's + + * lisp/progmodes/cc-engine.el (c-forward-over-token): New LIMIT parameter + + * lisp/progmodes/cc-langs.el (c-anchored-hash-define-no-parens): Replace + ill-formed regular expression (which mixed \\sw and character alternative) + with simpler efficient regexp. + + * lisp/progmodes/cc-mode.el (c-fl-decl-end): New forward limit LIM+ used in + c-forward-declarator and c-forward-over-token. + +2022-11-24 Tassilo Horn + + Fix face issues in show-paren context overlay (bug#59527) + + * lisp/paren.el (show-paren--show-context-in-overlay): Use + show-paren-priority as overlay priority (fixes problem 2 of + bug#59527). + * lisp/simple.el (blink-paren-open-paren-line-string): Ensure the + context lines are font-locked before taking the + buffer-substring (fixes problem 1 of bug#59527). + +2022-11-24 Eli Zaretskii + + Avoid assertion violations in treesit.c when editing non-ASCII + + * src/treesit.c (make_treesit_parser): Use byte positions when + initializing 'lisp_parser'. This avoids assertion violations when + the buffer has non-ASCII characters. + +2022-11-24 Thomas Fitzsimmons + + EUDC: Improve LDAP and BBDB tests + + * test/lisp/net/eudc-tests.el (eudcb-ldap): Make slapd detection + reliable. + * test/lisp/net/eudc-resources/bbdb: Add another test contact. + +2022-11-23 Yuan Fu + + Add an error fontification heuristic to c-ts-mode + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Use new + function. + (c-ts-fontify-error): New function. + +2022-11-23 Yuan Fu + + Don't always filter out captured tree-sitter nodes outside of region + + * lisp/treesit.el (treesit-font-lock-fontify-region): If the capture + name is a function, don't filter. + +2022-11-23 Dmitry Gutov + + project-switch-project: Use a different fix for bug#58784 + + * lisp/progmodes/project.el (project-current-inhibit-prompt): + Rename to 'project-current-directory-override', and make it a + string value. + (project-current): Refer to it. + (project-switch-project): Bind it. Drop the temp buffer (bug#58784). + +2022-11-23 F. Jason Park + + Add test scenarios for local ERC modules + + * test/lisp/erc/erc-scenarios-base-local-modules.el: New file. + * test/lisp/erc/resources/base/local-modules/first.eld: New file. + * test/lisp/erc/resources/base/local-modules/fourth.eld: New file + * test/lisp/erc/resources/base/local-modules/second.eld: New file. + * test/lisp/erc/resources/base/local-modules/third.eld: New file. + (Bug#57955.) + +2022-11-23 F. Jason Park + + Accept functions in place of passwords in ERC + + * lisp/erc/erc-backend.el (erc-session-password): Add comment + explaining type is now string, nil, or function. + * lisp/erc/erc-compat.el (erc-compat--29-auth-source-pass-search): + Use obfuscation from auth-source function when available. + * lisp/erc/erc-sasl.el (erc-sasl--read-password, + erc-server-AUTHENTICATE): Use `erc--unfun'. + * lisp/erc/erc-services.el (erc-nickserv-get-password, + erc-nickserv-send-identify): Use `erc--unfun'. + * lisp/erc/erc.el (erc--unfun): New function for unwrapping a + password couched in a getter. + (erc--debug-irc-protocol-mask-secrets): Add variable to indicate + whether to mask passwords in debug logs. + (erc--mask-secrets): New function to swap masked secret with question + marks in debug logs. + (erc-log-irc-protocol): Conditionally mask secrets when + `erc--debug-irc-protocol-mask-secrets' is non-nil. + (erc--auth-source-search): Don't unwrap secret from function before + returning. + (erc-server-join-channel, erc-login): Use `erc--unfun'. + + * test/lisp/erc/erc-services-tests.el + (erc-services-tests--wrap-search): Add helper for `erc--unfun'. + (erc-services-tests--auth-source-standard, + erc-services-tests--auth-source-announced, + erc-services-tests--auth-source-overrides, erc-nickserv-get-password): + Use `erc--unfun'. + * test/lisp/erc/erc-tests.el (erc--debug-irc-protocol-mask-secrets): + Add test for masking secrets with `erc--unfun' and friends. + +2022-11-23 F. Jason Park + + Add non-IRCv3 SASL module to ERC + + * doc/misc/erc.texi: Add SASL section in Advanced Usage chapter to + document the new SASL module. + + * etc/ERC-NEWS: Mention addition of erc-sasl module for SASL support. + + * lisp/erc/erc-compat.el + (erc-compat--29-sasl-scram-construct-gs2-header, + erc-compat--29-sasl-scram-client-first-message, + erc-compat--29-sasl-scram--client-final-message): Fix encoding bug and + add minimal authorization support with copies of SASL functions + introduced in Emacs 29. + + * lisp/erc/erc.el (erc-modules): Add `sasl'. + * lisp/erc/erc-sasl.el: New file (bug#29108). + * test/lisp/erc/erc-sasl-tests.el: New file. + * test/lisp/erc/erc-scenarios-sasl.el: New file. + * test/lisp/erc/resources/sasl/plain-failed.eld: New file. + * test/lisp/erc/resources/sasl/plain.eld: New file. + * test/lisp/erc/resources/sasl/scram-sha-1.eld: New file. + * test/lisp/erc/resources/sasl/scram-sha-256.eld: New file. + * test/lisp/erc/resources/sasl/external.eld: New file. + +2022-11-23 F. Jason Park + + Call erc-login indirectly via new generic wrapper + + * lisp/erc/erc-backend.el (erc--register-connection): Add new internal + generic function that defers to `erc-login' by default. + (erc-process-sentinel, erc-server-connect): Call + `erc--register-connection' instead of `erc-login'. + +2022-11-23 F. Jason Park + + Support local ERC modules in erc-mode buffers + + * doc/misc/erc.texi: Mention local modules in Modules chapter. + + * etc/ERC-NEWS: Mention changes to `erc-update-modules'. + + * lisp/erc/erc.el (erc-migrate-modules): Add some missing mappings. + (erc-modules): When a user removes a module, disable it and kill its + local variable in all ERC buffers. + (erc-update-modules): Move body of `erc-update-modules' to new + internal function. + (erc--update-modules): Add new function, a renamed and slightly + modified version of `erc-update-modules'. Specifically, change return + value from nil to a list of minor-mode commands for local modules. + Use `custom-variable-p' to detect flavor. + (erc--merge-local-modes): Add helper for finding local modules + already active as minor modes in an ERC buffer. + (erc-open): Replace `erc-update-modules' with `erc--update-modules'. + Defer enabling of local modules via `erc--update-modules' until after + buffer is initialized with other local vars. Also defer major-mode + hooks so they can detect things like whether the buffer is a server or + target buffer. Also ensure local module setup code can detect when + `erc-open' was called with a non-nil `erc--server-reconnecting'. + + * lisp/erc/erc-common.el (erc--module-name-migrations, + erc--features-to-modules, erc--modules-to-features): Add alists of + old-to-new module names to support module-name migrations. + (erc--assemble-toggle): Add new helper for constructing mode toggles, + like `erc-sasl-enable'. + (define-erc-modules): Defer to `erc--assemble-toggle' to create toggle + commands. + (erc--normalize-module-symbol): Add helper for `erc-migrate-modules'. + + * lisp/erc/erc-goodies.el: Require cl-lib. + + * test/lisp/erc/erc-tests.el (erc-migrate-modules, + erc--update-modules): Add rudimentary unit tests asserting correct + module-name mappings. + (erc--merge-local-modes): Add test for helper. + (define-erc-module--global, define-erc-module--local): Add tests + asserting module-creation macro. (Bug#57955.) + +2022-11-23 F. Jason Park + + Make erc--server-reconnecting non-buffer-local + + * lisp/erc/erc-backend.el (erc--server-reconnecting): Mention expected + non-nil value type in doc string. + (erc-server-connect): Don't set `erc--server-reconnecting'. + (erc-server--reconnect): Let-bind `erc--server-reconnecting' instead + of setting it locally in the server buffer. Set it to an alist + containing the current buffer's local variables. + (erc-process-sentinel-2): Don't set `erc--server-reconnect'. + * lisp/erc/erc.el (erc--cmd-reconnect): Clean up some assertions. + (Bug#57955.) + +2022-11-23 F. Jason Park + + Don't set erc-networks--id until network is known + + * lisp/erc/erc-networks.el (erc-networks--id-given): Accept a null + argument. + (erc-networks--id-on-connect): Remove unused function. + (erc-networks--id-equal-p): Add method for comparing initialized and + unset IDs. + (erc-networks--update-server-identity): Ensure `erc-networks--id' is + set before continuing search. + (erc-networks--init-identity): Don't assume `erc-networks--id' is + non-nil. Add branch condition to reload ID on non-nil case. + (erc-networks-on-MOTD-end): Let init-ID function handle renaming of + server buffer. + + * lisp/erc/erc.el (erc-open): For continued sessions, try copying over + the last network ID. + (erc--auth-source-determine-params-default): Don't expect a network ID + to have been initialized. + (erc-set-current-nick): When connected, reload network ID. Leave + comment warning that it may be unneeded. + + * lisp/erc/erc-backend.el (erc-server-NICK, erc-server-433): Unless + already connected, schedule ID reload when server rejects or mandates + a nick change. + + * test/lisp/erc/erc-scenarios-base-association-nick.el + (erc-scenarios-base-association-nick-bumped, + erc-scenarios-base-association-nick-bumped-mandated-renick): Update to + reflect more liberal association behavior when renamed by IRCd. + +2022-11-23 F. Jason Park + + Add GS2 authorization to sasl-scram-rfc + + * lisp/net/sasl-scram-rfc.el (sasl-scram-gs2-header-function, + sasl-scram-construct-gs2-header): Add new variable and default + function for determining a SCRAM GSS-API message header. This is + mainly intended for other libraries rather than end users. + (sasl-scram-client-first-message): Use gs2-header function. + (sasl-scram--client-final-message): Use dedicated gs2-header function. + Also remove whitespace when base64-encoding, as per RFC 5802. + (Bug#57956.) + +2022-11-23 Theodor Thornhill + + Add csharp-mode and csharp-ts-mode + + * etc/NEWS: Mention new modes. + * lisp/progmodes/csharp-mode.el (csharp-mode, csharp-ts-mode): New + major modes. + +2022-11-23 Yuan Fu + + Don't skip nested defuns in python-ts-mode defun navigation + + This fixes bug#59495. + + Before this change, python tries to skip nested function + definition. Now we don't skip any nested defun. + + * lisp/progmodes/python.el (python-treesit-beginning-of-defun) + (python-treesit-end-of-defun): Remove functions. + * lisp/progmodes/python.el (python-ts-mode): Use tree-sitter's default + navigation function. + +2022-11-23 Yuan Fu + + More flexible tree-sitter defun navigation + + Before this change, treesit-beginning-of-defun skips nested defuns. + Now user can decide whether to skip nested defuns. + + * lisp/treesit.el (treesit-search-forward-goto): Improve docstring. + (treesit-defun-prefer-top-level): New variable. + (treesit--defun-maybe-top-level): New function. + (treesit-beginning-of-defun) + (treesit-end-of-defun): Use treesit--defun-maybe-top-level. + +2022-11-23 Ulf Jasper + + icalendar.el: Add test(s) for bug#56241 + + * test/lisp/calendar/icalendar-tests.el + (icalendar-tests--get-error-string-for-export): new. + * icalendar-tests.el (icalendar-export-bug-56241-dotted-pair): new + +2022-11-23 Juri Linkov + + New commands previous-line-completion and next-line-completion (bug#59486) + + * lisp/simple.el (completion-list-mode-map): Bind [up] to + 'previous-line-completion', and [down] to 'next-line-completion'. + (completion-auto-wrap): Mention `next-line-completion' and + `previous-line-completion' in the docstring. + (previous-line-completion, next-line-completion): New commands. + +2022-11-23 Philip Kaludercic + + Don't break when loading VC packages on older Emacs versions + + * lisp/emacs-lisp/package-vc.el + (package-vc--generate-description-file): Append a :kind property + instead of modifying the version number. + * lisp/emacs-lisp/package.el (package-desc): Remove special handling + for "vc annotated" versions. (bug#59404) + +2022-11-23 Juri Linkov + + * lisp/help.el (describe-bindings): Use the outline-default-rules feature. + + Set buffer-local outline-default-state to 1, and outline-default-rules + to match "Key translations", instead of searching and hiding this section + explicitly. + +2022-11-23 lu4nx (tiny change) + + Support Racket programs in 'etags' + + * lib-src/ctags.c (Scheme_suffixes): Add the Racket language + extension ".rkt". + +2022-11-23 Dmitry Gutov + + xref--search-property: Jump over entries hidden by outline-minor-mode + + * lisp/progmodes/xref.el (xref--search-property): + Jump over entries hidden by e.g. outline-minor-mode (bug#49731). + +2022-11-23 Eli Zaretskii + + Avoid signaling args-out-of-range in mouse.el + + * lisp/mouse.el (mouse-posn-property): Avoid + signaling args-out-of-range errors when mode-line format uses + min-width 'display' property. (Bug#59452) + +2022-11-23 Eli Zaretskii + + Improve documentation of locale-specific string comparison + + * doc/lispref/strings.texi (Text Comparison): + * src/fns.c (Fstring_collate_equalp): Improve documentation of + 'string-collate-equalp' and 'string-collate-lessp'. (Bug#59275) + +2022-11-23 Eli Zaretskii + + Fix error signaled by mouse-highlight on mode line + + * src/xdisp.c (note_mode_line_or_margin_highlight): Avoid + signaling args-out-of-range errors when mode-line format uses + min-width 'display' property. (Bug#59452) + +2022-11-23 Po Lu + + Improve last change to xterm.c + + * src/xfns.c (Fx_display_last_user_time): Reject overly large + timestamps. + * src/xterm.c (x_display_set_last_user_time, handle_one_xevent): + New functions. + +2022-11-23 Michael Albinus + + Restore tramp-achive's Emacs 26 compatibility + + * lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-regexp): + Special handling of Emacs 26. Simplify the other part. + + * test/lisp/net/tramp-tests.el (tramp-test48-unload): Special case + of `tramp-register-archive-file-name-handler'. + +2022-11-23 Juri Linkov + + * lisp/outline.el: 'S-' on buffer buttons cycles all outlines. + + (outline--create-button-icons, outline--insert-button): Bind 'S-' to + 'outline-cycle-buffer' as it's already done for buttons on the margins. + Ignore 'S-'. Don't hard-code 'help-echo' since it should be + customizable by the ':help-echo' keyword in 'define-icon'. + +2022-11-23 Juri Linkov + + * lisp/progmodes/xref.el: Support outline-minor-mode (bug#49731) + + (xref--xref-buffer-mode): Set buffer-local variables outline-minor-mode-cycle, + outline-minor-mode-use-buttons, outline-search-function, outline-level + as settings for enabling outline-minor-mode in xref output buffers where + outline headings are xref groups, and their lines can be hidden by + outline commands. + +2022-11-22 Yuan Fu + + Tweak python-ts-mode fontification (bug#59470) + + * lisp/progmodes/python.el (python--treesit-settings): Only fontify + the @ and the identifier of a decorator, not the argument list (if + there is any). + +2022-11-22 Randy Taylor + + Utilize new font-lock faces for more tree-sitter modes (Bug#59397) + + * lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings): + Use font-lock-number-face. + (java-ts-mode): Alphabetize features. + * lisp/progmodes/js.el (js--treesit-operators): Define operators. + (js--treesit-font-lock-settings): Use bracket, delimiter, + escape-sequence, property, number, and operator font-lock faces. + (js-ts-mode): Add them to the feature list and alphabetize. + * lisp/progmodes/json-ts-mode.el (json-ts-mode--font-lock-settings): + Use bracket, delimiter, escape-sequence, and number faces. Remove + unused features. + (json-ts-mode): Add them to the feature list and alphabetize. + * lisp/progmodes/sh-script.el (sh-mode--treesit-settings): Use + bracket, delimiter, number, misc-punctuation, and operator font-lock + faces. + (sh-mode--treesit-operators): Remove ; and ;; from list. + (bash-ts-mode): Add them to the feature list and alphabetize. + * lisp/progmodes/ts-mode.el (ts-mode--operators): Define operators. + (ts-mode--font-lock-settings): Use escape-sequence, number, and + operator font-lock faces. + (ts-mode): Add them to the feature list and alphabetize. + +2022-11-22 Dmitry Gutov + + Add a way to override project name for project-vc backend + + * lisp/progmodes/project.el (project-vc-name): New user option. + (project-name): Override for VC project backend (bug#48747). + +2022-11-22 Yuan Fu + + Fix treesit-update-ranges + + * lisp/treesit.el (treesit--clip-ranges): New function. + (treesit-update-ranges): Now clips the range within (point-min) + and (point-max), so the new range we use are not out-of-range. + +2022-11-22 Stephen Leake + + * lisp/progmodes/eglot.el (eglot--connect): Use project-name + + As discussed in bug#48747. + +2022-11-22 Stephen Leake + + * lisp/progmodes/project.el (project-name): New + +2022-11-22 Eli Zaretskii + + Fix 'treesit-max-buffer-size' and its use + + * lisp/treesit.el (treesit-max-buffer-size): Avoid overflow in + computing buffer-size limit. Account for 32-but systems built + "--with-wide-int". Extend doc string. + (treesit-ready-p): Compare the limit with the size of the buffer + in bytes, not in characters. + + * src/treesit.c (treesit_check_buffer_size): Measure buffer size + in bytes. + +2022-11-22 Robert Pluim + + Add '\lll' for VERY MUCH LESS-THAN to TeX input method + + * lisp/leim/quail/latin-ltx.el (latin-ltx--define-rules): Add '\lll' + translation for U+22D8. (Bug#59476) + +2022-11-22 Po Lu + + Adjust x_display_set_last_user_time for Xlib sign-extension + + * src/xterm.c (x_display_set_last_user_time): Adjust for Xlib + sign extending fields in client messages to 64 bit long, which + then break x_display_set_last_user_time after 24 days, as Time + is unsigned long for historical reasons. (bug#59480) + +2022-11-22 Ihor Radchenko + + Improve the doc string of 'string-collate-lessp' + + * src/fns.c (Fstring_collate_lessp): Clarify that + IGNORE-CASE argument might be ignored when the operating + system does not implement string collation for the + specified locale. (Bug#59275) + +2022-11-22 Sam James + + Fix tree-sitter build using non-bash /bin/sh (bug#59460) + + * configure.ac: Don't use '==' in comparisons. + +2022-11-22 Po Lu + + Avoid potentially expensive XFlush and fix ordering + + * src/xterm.c (x_raise_frame): Don't call XFlush without a + request being made. + (x_lower_frame): Fix ordering wrt to xwidget view lowering. + +2022-11-22 Yuan Fu + + Separate tree-sitter and non-tree-sitter variant of sh-mode + + Now there are three modes, sh-base-mode, sh-mode, bash-ts-mode. + + The change I made: change sh-mode to sh-base-mode, remove docstring. + Below the new sh-base-mode, create a new definition for sh-mode, paste + the dostring, add setup for font-lock-defaults. Below sh-mode, add + bash-ts-mode. + + * lisp/progmodes/sh-script.el (sh-mode): Moves all setup into + sh-base-mode, except for the setup for font-lock-defaults and the + docstring. + (sh-base-mode): New mode. + (bash-ts-mode): New mode. + +2022-11-22 Yuan Fu + + Fix treesit_record_change in casify_region + + This fixes bug#59455. + + * src/casefiddle.c: Always record changes. + +2022-11-22 Theodor Thornhill + + Tweak faces in Java and TypeScript + + * lisp/progmodes/java-ts-mode.el (java-ts-mode--operators): Remove @ + as an operator. + + (java-ts-mode--font-lock-settings): Use constant-face for @ to match + rest of the annotation. Add bracket, delimiter and use some of the + new faces. + + (java-ts-mode--imenu): Clean up the implementation a little. + + (java-ts-mode): Refer to the new features. + + * lisp/progmodes/ts-mode.el (ts-mode--font-lock-settings, ts-mode): + Add in bracket and delimiter'. + +2022-11-22 Yuan Fu + + treesit-font-lock-recompute-features now has two modes of operation + + 1. Set activation of each feature (changes every feature) + 2. Add/remove features (only change those explicitly configured by + ADD-LIST and REMOVE-LIST) + + This is useful for enabling/disabling certain features for all + modes (without resetting others) by calling this function in + prog-mode-hook + + * lisp/treesit.el (treesit-font-lock-recompute-features): See above + description. + +2022-11-22 Yuan Fu + + Tweak c-ts-mode fontification + + New features: function and variable, which consistently fontify all + occurrences of functions and variables, respectively. + + Remove expression feature, as its purpose is fulfilled by function, + variable, and property combined. + + Fix declaration feature, remove unnecessary rule from label + feature. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): See + above description. + (c-ts-mode--fontify-variable): New function. + (c-ts-mode--base-mode): Add & remove features. + +2022-11-22 Yuan Fu + + * lisp/treesit.el (treesit-max-buffer-size): Enlarge value. + +2022-11-22 Stefan Kangas + + Don't refer to deleted variable 'gnus-parameter-to-list-alist' + + * doc/misc/gnus.texi (Group Parameters): + * lisp/gnus/message.el (message-recipients-without-full-name): + Don't refer to deleted variable 'gnus-parameter-to-list-alist'. + +2022-11-21 Stefan Kangas + + Refresh menus in gnus.texi + + Fixes problem reported by Po Lu . + * doc/misc/gnus.texi (Top, Starting Up, Article Treatment) + (The Gnus Diary Library, Searching, nnmairix): Refresh menus. + +2022-11-21 Stefan Kangas + + Improve wording and markup in gnus-faq.texi + + * doc/misc/gnus-faq.texi (FAQ 2-4): Improve wording and markup. + (FAQ 2-1, FAQ 2-4, FAQ 2-5, FAQ 3 - Getting Messages, FAQ 3-1) + (FAQ 3-2, FAQ 3-2, FAQ 3-4, FAQ 4-1, FAQ 4-2, FAQ 4-3, FAQ 4-4) + (FAQ 4-8, FAQ 4-9, FAQ 4-10, FAQ 4-12, FAQ 5-1, FAQ 5-2) + (FAQ 5-7, FAQ 6-1, FAQ 6-2, FAQ 6-2, FAQ 6-3, FAQ 6-4, FAQ 6-5) + (FAQ 7-2, FAQ 7-3, FAQ 7-3, FAQ 7-4, FAQ 8-1, FAQ 8-5, FAQ 9-1): + Improve markup and reflow some paragraphs. + +2022-11-21 Yuan Fu + + Merge remote-tracking branch 'savannah/master' into feature/tree-sitter + +2022-11-21 Yuan Fu + + Allow major modes to tweak tree-sitter fontification + + treesit--font-lock-query-expand-range allows a major mode to fix + fontification problems temporarily before the parser can be fixed. + + * lisp/treesit.el (treesit--font-lock-query-expand-range): New variable. + (treesit-font-lock-fontify-region): Use the new variable. + * lisp/textmodes/css-mode.el (css-ts-mode): Use the new variable. + +2022-11-21 Yuan Fu + + Further tweak tree-sitter fontification heuristics + + So it turns out the slowness observed in bug#59415 is not due to the + size, but the strangely tall tree. Adjust the heuristic to DTRT: + don't enable the heuristic by default or when buffer is large, enable + when query is abnormally slow. We could do some clever thing that + calibrates a base reading for the query time instead of using a + hard-coded value, but it doesn't seem necessary. + + * lisp/treesit.el (treesit--font-lock-fast-mode): New variable. + (treesit-font-lock-fontify-region): Don't activate heuristic by + default (reasons in comments). Measure the query time and activate + the fast mode if query time is long. + +2022-11-21 Michael Albinus + + Activate direct asynchronous processes for Tramp container methods + + * doc/misc/tramp.texi (Remote processes): Mention also + tramp-container.el. + + * lisp/emacs-lisp/ert-x.el (ert-remote-temporary-file-directory): + Add `tramp-direct-async' to "mock" method. + + * lisp/net/tramp-container.el + (tramp-methods) : Add `tramp-direct-async'. + + * lisp/net/tramp.el (tramp-methods): Adapt docstring. + (tramp-handle-make-process): Handle `tramp-direct-async'. + + * test/lisp/net/tramp-tests.el (tramp-methods) : + Add `tramp-direct-async'. + +2022-11-21 Gregory Heytings + + Make sed invocation in Makefile POSIX-compliant + + * Makefile.in: Add a semicolon before the closing brace, which is + required by POSIX. Fixes bug#59444. + +2022-11-21 Stefan Kangas + + * lisp/forms.el (forms-mode): Prefer setq-local. + +2022-11-21 Stefan Kangas + + Make instructions for updating ancient filesets obsolete + + * lisp/filesets.el (filesets-update-pre010505): Make update + information for filesets older than 2001 obsolete. Note that this + dates back to before filesets.el was even added to Emacs. + +2022-11-21 Yuan Fu + + Use constant face for labels in c-ts-mode + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Use + constant face for labels. + +2022-11-21 Yuan Fu + + Add separate keymaps for js/python/css-ts-mode + + * lisp/progmodes/js.el (js-ts-mode-map) + * lisp/progmodes/python.el (python-ts-mode-map) + * lisp/textmodes/css-mode.el (css-ts-mode-map): New keymap. + +2022-11-21 Yuan Fu + + Tweak python-ts-mode fontification + + * lisp/progmodes/python.el (python--treesit-fontify-string): Make the + matching condition for docstrings more specific. + +2022-11-21 Yuan Fu + + Fix tree-sitter fontification heuristic + + Previously applied heuristic 2 sometimes invalidates heuristic 1, add + a guard so it doesn't. + + The new function is just for clarity of the code and has nothing to + do with the change itself. + + * lisp/treesit.el (treesit--node-length): New function + (treesit-font-lock-fontify-region): Use the new function. Only do + heuristic 2 when the node is large. + +2022-11-21 Stefan Kangas + + * lisp/woman.el (woman-mode-map): Prefer defvar-keymap. + +2022-11-21 Juri Linkov + + * lisp/outline.el (outline-search-function): New variable (bug#53981). + + (outline-font-lock-keywords, outline-font-lock-face) + (outline-minor-mode-highlight-buffer, outline-next-preface) + (outline-next-heading, outline-previous-heading) + (outline-back-to-heading, outline-on-heading-p, outline-demote) + (outline-map-region, outline-next-visible-heading) + (outline-hide-sublevels, outline-up-heading): Use outline-search-function + when it's non-nil as an alternative to searching outline-regexp. + (outline-search-level, outline-search-text-property): New functions. + + * lisp/apropos.el (apropos-mode): Set outline-search-function + instead of unreliable outline-regexp. + (apropos-print): Add text property outline-level. + + * lisp/emacs-lisp/shortdoc.el (shortdoc-display-group): + Add text property outline-level on text separate from final newlines. + (shortdoc-display-group): Add a narrow newline to not show + text properties of the final line when the outline is hidden. + (shortdoc--display-function): Add text property outline-level. + (shortdoc-mode): Set buffer-local outline-search-function and outline-level. + +2022-11-21 Po Lu + + * src/treesit.c (treesit_load_language): Fix uninitialized uses. + +2022-11-21 Po Lu + + Avoid usage of intern_c_string in treesit.c + + * src/treesit.c (Ftreesit_pattern_expand): Use DEFSYM'd symbols + when the naming makes sense. + (syms_of_treesit): Add new defsyms QCanchor, QCequal, QCmatch. + +2022-11-21 Po Lu + + Stylistic fixes to treesit.c + + * src/treesit.c (treesit_make_ranges): + (Ftreesit_parser_set_included_ranges): Fix coding style. + +2022-11-21 Po Lu + + Fix MS-DOS build + + * msdos/sed1v2.inp: Edit out tree-sitter stuff. + +2022-11-20 Yuan Fu + + Add another heuristic to speed up tree-sitter fontification + + * lisp/treesit.el (treesit-font-lock-fontify-region): Use + treesit--children-covering-range to reduce the node size. + +2022-11-20 Yuan Fu + + Limit recursion level for tree-sitter imenu functions + + Generating imenu index doesn't require going down to the bottom of the + tree (defun's are usually top-level). Add limit so we don't go too + far down on very large buffers. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--imenu) + * lisp/progmodes/java-ts-mode.el (java-ts-mode--imenu) + * lisp/progmodes/js.el (js--treesit-imenu) + * lisp/progmodes/json-ts-mode.el (json-ts-mode--imenu) + * lisp/progmodes/python.el (python-imenu-treesit-create-index) + * lisp/textmodes/css-mode.el (css--treesit-imenu): Add limit to + treesit-induce-sparse-tree. + +2022-11-20 Yuan Fu + + Improve tree-sitter fontification on large buffers + + * lisp/treesit.el (treesit--children-covering-range) + (treesit--children-covering-range-recurse): New functions. They are + not currently used but could be useful in the future, so I left them + in place. + (treesit-font-lock-fontify-region): + * lisp/treesit.el (treesit-font-lock-fontify-region): Use the result + of treesit-node-on instead of the root node. + +2022-11-20 Stephen Leake + + Delete eglot spinner; not useful + + * lisp/progmodes/eglot.el (eglot-lsp-server): Delete slot spinner. + (eglot--mode-line-format): Don't include spinner in mode-line. + (eglot--signal-textDocument/didChange): Don't set spinner. + +2022-11-20 Juanma Barranquero + + Avoid native compiler setting user-init-file to warnings.el (bug#59358) + + * src/lread.c (maybe_swap_for_eln): Use a delayed warning + instead of `display-warning' to avoid a recursive call to + Fload while loading the init file that sets `user-init-file' + to a bogus value. + +2022-11-20 Juri Linkov + + Rename 'elisp-eval-buffer' to 'elisp-eval-region-or-buffer' (bug#59350) + + * lisp/progmodes/elisp-mode.el (elisp-eval-region-or-buffer): + Rename recently added command 'elisp-eval-buffer' to support active region. + (emacs-lisp-mode-map, lisp-interaction-mode-map): Rebind 'C-c C-e' + from elisp-eval-buffer to elisp-eval-region-or-buffer. + +2022-11-20 Juri Linkov + + Disable display-line-numbers-mode in string-pixel-width (bug#59311) + + * lisp/emacs-lisp/subr-x.el (string-pixel-width): + Turn off display-line-numbers-mode when it's enabled. + +2022-11-20 Michael Albinus + + * doc/misc/Makefile.in (INFO_COMMON): Sort alphabetically. + +2022-11-20 Michael Albinus + + Rework tramp-archive autoloads + + * lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-regexp): + Use `tramp-compat-rx'. Protect `tramp-archive-suffixes' and + `tramp-archive-compression-suffixes'. + (tramp-archive-file-name-handler): Don't autoload. + (tramp-register-archive-autoload-file-name-handler): Rename from + `tramp-register-archive-file-name-handler'. Adapt callees. + +2022-11-20 Po Lu + + Coalesce duplicate scroll valuator handling code + + Also, write more commentary. + + * src/xterm.c (xi_populate_scroll_valuator): New function. + Describe the meaning of each field in xi_scroll_valuator_t. + (xi_populate_device_from_info, xi_handle_new_classes): Factor + out duplicate code to that function. + +2022-11-20 Laurence Warne + + Cancel proced auto update timer if no proced buffers are open + + * lisp/proced.el (proced-auto-update-timer): Cancel timer if no proced + buffers are open. + +2022-11-20 Eli Zaretskii + + Advise against using too-high GC thresholds + + * doc/lispref/internals.texi (Garbage Collection): + * src/alloc.c (syms_of_alloc) + : Advise against enlarging the GC thresholds + more than needed and for prolonged periods of time. + +2022-11-20 Gabriel do Nascimento Ribeiro + + Handle error in bookmark-relocate when filename is nil + + * lisp/bookmark.el (bookmark-relocate): Handle error when + filename is nil. (Bug#59326) + +2022-11-19 Yuan Fu + + Fix uses of treesit-ready-p + + * lisp/progmodes/c-ts-mode.el (c-ts-mode) + (c++-ts-mode) + * lisp/progmodes/java-ts-mode.el (java-ts-mode) + * lisp/progmodes/js.el (js-ts-mode) + * lisp/progmodes/json-ts-mode.el (json-ts-mode) + * lisp/progmodes/python.el (python-ts-mode) + * lisp/progmodes/sh-script.el (sh-mode) + * lisp/progmodes/ts-mode.el (ts-mode): Remove the MODE argument. + +2022-11-19 Yuan Fu + + Remove treesit-settings + + Remove it since we are using separate major modes for tree-sitter and + native variant now. + + * doc/lispref/parsing.texi (Tree-sitter major modes): Update manual. + * lisp/treesit.el (treesit-settings): Remove option. + (treesit--setting-for-mode): Remove function. + (treesit-ready-p): Don't check for user preference in treesit-settings. + +2022-11-19 Yuan Fu + + Remove tree-sitter setup from js-json-mode + + * lisp/progmodes/js.el (js-json--treesit-font-lock-settings) + (js--json-treesit-indent-rules): Remove variables. + (js-json-mode): Remove tree-sitter setup. + +2022-11-19 Yuan Fu + + Fix tree-sitter comment indentation for C-like languages + + The goal is to indent like this: + + /* comment + comment --> This line aligns with the beginning of the first line + */ --> This line aligns with the opening comment token + + * lisp/treesit.el (treesit-comment-start) + (treesit-comment-end): New variables. + (treesit-simple-indent-presets): New preset comment-end, + comment-start, comment-start-skip + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles) + (c-ts-mode) + * lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules) + (java-ts-mode) + * lisp/progmodes/js.el (js--treesit-indent-rules) + (js-ts-mode) + * lisp/progmodes/ts-mode.el (ts-mode--indent-rules) + (ts-mode): Add identical indent rules to each mode, and set identical + treesit-comment-start/end's. + + * doc/lispref/modes.texi (Parser-based Indentation) + * doc/lispref/parsing.texi (Tree-sitter major modes): Update manual. + +2022-11-19 Yuan Fu + + Separate native and tree-sitter variant of js-mode + + * lisp/progmodes/js.el (js-base-mode): New mode. + (js-mode): Return to before tree-sitter setup is added, change to + inherit from js-base-mode. + (js-ts-mode): New mode. Now it doesn't use any cc-mode feature, + meaning it looses comment filling. + +2022-11-19 Yuan Fu + + Merge function/class-name features in python-mode + + To keep consistency with other tree-sitter major modes. + + * lisp/progmodes/python.el (python--treesit-settings) + (python-ts-mode): Merge function-name and class-name features into + definition. + +2022-11-19 Yuan Fu + + Split python-mode into native and tree-sitter variant + + * lisp/progmodes/python.el (python-base-mode): New virtual mode that + contains most of the setup. + (python-mode): Change to inherit from python-base-mode. + (python-ts-mode): New mode that sets up tree-sitter. + +2022-11-19 Yuan Fu + + Expand css-ts-mode and merge it into css-mode + + * lisp/progmodes/css-ts-mode.el: Deleted. + * lisp/textmodes/css-mode.el (css--treesit-indent-rules) + (css--treesit-settings): New variables. + (css--treesit-imenu-1) + (css--treesit-imenu): New functions. + * lisp/textmodes/css-mode.el (css-base-mode): New mode inherited by + both css-mode and css-ts-mode. + (css-ts-mode): New mode. + (css-mode): Inherit from css-base-mode, and move some setup to + css-base-mode. + +2022-11-19 Yuan Fu + + Change tree-sitter indent preset 'match' to count on all nodes + + I changed other presets to count all nodes a while ago, but forgot to + change 'match' too. + + * lisp/treesit.el (treesit-simple-indent-presets): Change to count on + both named and anonymous nodes. + +2022-11-19 Eli Zaretskii + + Fix encoding and display of messages sent by server to emacsclient + + * lisp/server.el (server-start): Use 'locale-coding-system' to + encode messages sent back to the client. + + * lib-src/emacsclient.c (main): Print '-error' messages via + 'message', not directly via 'fprintf'. This shows the error on + MS-Windows when the client is invoked as 'emacsclientw', since + stderr goes to the bit bucket in that case. + +2022-11-19 Thomas Fitzsimmons + + EUDC: Add BBDB test + + * test/lisp/net/eudc-tests.el (eudcb-ldap): Call skip-unless with + slapd check. + (eudcb-bbdb): New test. + +2022-11-19 Gregory Heytings + + Fix global face scaling bug due to rounding. + + * lisp/face-remap.el (global-text-scale-adjust): Try again if the face + height should have changed but did not actually change. Update the + docstring to clarify the difference with 'text-scale-adjust'. + (global-text-scale-adjust--increment-factor): New internal variable. + Fixes bug#59122. + (text-scale-adjust): Update the docstring to clarify the difference + with 'global-text-scale-adjust'. + +2022-11-19 Brent Westbrook + + EUDC: Fix a void-variable error + + * lisp/net/eudcb-mailabbrev.el (eudc-mailabbrev-query-internal): + Check if symbol is bound before taking its value. (Bug#59369) + +2022-11-19 Philip Kaludercic + + * lisp/emacs-lisp/package.el (package-maintainers): Improve error handling + +2022-11-19 Mattias Engdegård + + * Makefile.in: Escape literal asterisks in regexps + + Discovered by Po Lu. + +2022-11-19 Po Lu + + Fix error trapping in x_set_mouse_color + + * src/xfns.c (x_set_mouse_color): Use + x_uncatch_errors_after_check right after x_had_errors_p. Then, + trap errors around FreeCursor requests, since some of the IDs + may not name valid cursors. + +2022-11-19 Yuan Fu + + Use keyword-face for declaration commands in tree-sitter sh-mode + + * lisp/progmodes/sh-script.el: Change builtin to keyword. + +2022-11-19 Yuan Fu + + Fix python-mode tree-sitter fontification + + Forgot to update python-mode's code when I added the tree-sitter + notifier facility. Now it doesn't need any special treatment anymore. + Leaving it as is causes some incorrect fontification. + + * lisp/progmodes/python.el (python--treesit-fontify-string): Accept + the string node rather than the quote node. + (python--treesit-settings): Capture string node. + +2022-11-19 Po Lu + + Fixes to fast mouse position reporting + + * src/xterm.c (x_fast_mouse_position): New function. Factor out + most of the fast mouse position code here. Correctly port some + Haiku code to take into account multiple displays. Report + scroll bar coordinates correctly. + (XTmouse_position): Call it. + +2022-11-19 Thomas Fitzsimmons + + EUDC: Add LDAP tests + + * test/lisp/net/eudc-resources/slapd.conf: New file. + * test/lisp/net/eudc-resources/dc=gnu,dc=org.ldif: Likewise. + * test/lisp/net/eudc-resources/dc=gnu,dc=org: New files. + * test/lisp/net/eudc-tests.el (eudcb-ldap): New test. + +2022-11-19 Po Lu + + Fix automatic DPI adjustment and add workarounds for some systems + + * lisp/faces.el (x-create-frame-with-faces): New field + `delayed-font'. Set the `font-parameter' property to `font' in + the given parameter list after face-set-after-frame-default is + called. + * src/fontset.c (Fset_fontset_font): Avoid changing + `font-parameter' with the call to Fmodify_frame_parameters. + * src/frame.c (gui_set_frame_parameters_1): New function. + Factor out gui_set_frame_parameters here, and add an argument + DEFAULT_PARAMETER. If the `font' parameter is set, and + `default_parameter' is not, then set the `font-parameter' frame + parameter to the `font' parameter as well, to keep track of + which user-specified `font' frame parameter set the default + face's font on the frame. + (gui_set_frame_parameters): Call gui_set_frame_parameters_1 with + new arg set to false. + (gui_set_font): Remove broken implementation of + `font-parameter'. + (gui_default_parameter): If the default value was used, then + call gui_set_frame_parameters_1 with the new argument set to + false. This is because no font was specified as a frame + parameter by the user, so Freconsider_frame_fonts is free to do + anything it wants. + (Freconsider_frame_fonts): If `font-parameter' is set, then use + it. + (syms_of_frame): New defsym Qfont_parameter. + + * src/frame.h: Update prototypes. + + * src/haikuterm.c (haiku_default_font_parameter): + * src/pgtkfns.c (pgtk_default_font_parameter): + * src/w32fns.c (w32_default_font_parameter): Stop setting + `font-parameter' here. This code resulted in decades of + automatic font rescaling not working correctly. + + * src/xfaces.c (set_font_frame_param): Clear the + `font-parameter' frame parameter. + (Finternal_merge_in_global_face): + * src/xfns.c (x_default_font_parameter): Avoid changing + `font-parameter' in response to changes to face attributes. + * src/xsettings.c (apply_xft_settings): Add workaround for + Cairo. (bug#59371, bug#59347, bug#59283, bug#59271, bug#59285, + bug#59306.) + +2022-11-18 Po Lu + + Fix bug#59371 + + * src/frame.c (Freconsider_frame_fonts): If a font parameter was + set, create a params alist with it. Then, pass it to both + default_font_parameter and face-set-after-frame-default. + (bug#59371) + +2022-11-18 Po Lu + + Fix earlier changes to keyboard.c + + * src/keyboard.c (coords_in_menu_bar_window): New function. + (make_lispy_event): Do not process menu bar events on window + system frames if there is no menu bar window or the click lies + outside. + +2022-11-18 Po Lu + + Fix build with ext menu bar + + * src/keyboard.c (make_lispy_event): Don't access + menu_bar_window when !HAVE_EXT_MENU_BAR. + +2022-11-18 Manuel Giraud + + Fix click position to menu bar entry with no-toolkit + + * src/keyboard.c (make_lispy_event): Use x_y_to_hpos_vpos to + compute correct menu bar position should the menu face change. + * src/xdisp.c (x_y_to_hpos_vpos): Not static anymore. + * src/dispextern.h: Export x_y_to_hpos_vpos. + +2022-11-18 Thomas Fitzsimmons + + EUDC: Revert eudc-server-hotlist default change + + * etc/NEWS: Remove eudc-server-hotlist default change. + * lisp/net/eudc-vars.el (eudc-server-hotlist): Set to nil. + (Bug#59314) + +2022-11-18 Stefan Monnier + + itree: Make sure a deleted overlay has NULL pointer fields + + * src/buffer.c (delete_all_overlays): Use POST_ORDER to set the node's + pointers to NULL, as god intended. + + * src/itree.c (itree_insert_node): Uncomment the assertion accordingly. + +2022-11-18 Stefan Monnier + + * lisp/emacs-lisp/bytecomp.el (byte-compile-dynamic-variable-bind): Typo + +2022-11-18 Robert Pluim + + Improve 'defvar-keymap' docstring + + * etc/NEWS: Improve ':repeat' entry for 'defvar-keymap'. + * lisp/keymap.el (defvar-keymap): Improve description of ':repeat' + keyword. + +2022-11-18 Robert Pluim + + Silence rmailsum byte compiler warnings + + * lisp/mail/rmailsum.el (rmail-summary-by-thread): Prefix unused + lambda args with '_'. + +2022-11-18 Robert Pluim + + Use boolean values directly in rmailsum + + * lisp/mail/rmailsum.el (rmail-summary-invert): + (rmail-summary-direct-descendants): + (rmail-summary--walk-thread-message-recursively): + (rmail-summary-by-thread): + (rmail-summary-by-labels): + (rmail-summary-by-recipients): + (rmail-summary-by-regexp): + (rmail-summary-by-topic): + (rmail-summary-by-senders): Use the boolean values in + 'rmail-summary-currently-displayed-msgs' and similar directly instead + of comparing them to t and nil. + +2022-11-18 Juanma Barranquero + + Avoid `user-init-file' being set to an eln file (bug#59334) + + * lisp/startup.el (startup--load-user-init-file): If possible, + point `user-init-file' to the source file if the init file was + native-compiled. + +2022-11-18 Mattias Engdegård + + Fix simple-tests when run noninteractively + + * test/lisp/simple-tests.el + (simple-execute-extended-command--describe-binding-msg): + Bind text-quoting-style explicitly to ensure consistent behavior + whether or not the test is run interactively. + +2022-11-18 Stefan Kangas + + Avoid raw control characters in grm-wy-boot.el + + * lisp/cedet/semantic/grm-wy-boot.el + (semantic-grammar-wy--parse-table): Don't use raw control characters. + +2022-11-18 Juri Linkov + + * lisp/repeat.el (describe-repeat-maps): More outlines and page separators. + +2022-11-17 Po Lu + + Add knob to make `mouse-position' faster on X + + * etc/PROBLEMS (Improving performance with slow X connections): + Add new advice. + * src/xterm.c (XTmouse_position): Add alternative + implementations for slow connections. + (syms_of_xterm): Add new variable to enable them. + * src/xterm.h (struct x_display_info): Update commentary. + +2022-11-17 Stefan Monnier + + itree.c: Get rid of the old iterator code + + Only use the new iterator which relies on a fixed size (and small) + state in the iterator. + This makes non-local exits safe within ITREE_FOREACH loops. + + * src/itree.c (make_nav, nav_nodeptr, nav_flag, itree_stack_clear) + (itree_stack_push_flagged): Delete functions. + (nodeptr_and_flag): Delete type. + (struct itree_stack): Make the array hold plain pointers instead. + (itree_stack_push): Inline the former code of `itree_stack_push_flagged`. + (itree_stack_pop): Change return type. + (itree_contains): Don't call `ITREE_FOREACH_ABORT` any more. + (itree_insert_gap): Simplify access to the stack of nodes. + (itree_delete_gap, itree_insert_gap): Adjust code to new return type of + `itree_stack_pop`. + (itree_iterator_finish): Delete function. + (itree_iterator_start): Don't setup the `stack` field any more. + (itree_iterator_next): Delete function. + (itree_iter_next): Rename to `itree_iterator_next` and make it non-static. + (itree_iterator_narrow): Don't check the `running` flag any more. + + * src/itree.h (itree_iterator_finish): Remove declaration. + (struct itree_iterator): Remove the `stack` and `running` fields. + (ITREE_FOREACH_ABORT): Delete macro. + (ITREE_FOREACH): Don't call `itree_iterator_finish` any more. + + * src/xdisp.c (strings_with_newlines): + * src/buffer.c (overlays_in, next_overlay_change, overlay_touches_p): + Don't call `ITREE_FOREACH_ABORT` any more. + +2022-11-17 Stefan Monnier + + itree.c: Make the iterator reentrant (bug#59183) + + Get rid of the global iterator object and instead allocate + a separate iterator for every loop. This still uses the "duplicate + iterator" code, including the old iterator which needs a stack, + make ITREE_FOREACH a bit more expensive than we'd like. + + * src/itree.h (init_itree, forget_itree, itree_iterator_busy_p): + Delete declarations. + (itree_iterator_start): Add iterator arg and remove `line` and `file` args. + (struct itree_iterator): Move from `itree.c`. Remove `line` and + `file` fields. + (ITREE_FOREACH): Stack allocate an iterator object and pass it to + `itree_iterator_start`. + + * src/itree.c (struct itree_iterator): Move to itree.h. + (iter): Delete global variable. + (itree_iterator_create, init_itree, forget_itree, itree_iterator_busy_p): + Delete functions. + (itree_contains): Adjust assertion. + (itree_iterator_finish): Deallocate the iterator's stack. + (itree_iterator_start): Take the (uninitialized) iterator as argument. + Allocate a fresh new stack. Remove `file` and `line` arguments. + Don't check `running` any more since the iterator is not expected to be + initialized at all. + + * src/eval.c (signal_or_quit): + * src/alloc.c (garbage_collect): Don't check `itree_iterator_busy_p` + any more. + + * src/emacs.c (main): No need to `init_itree` any more. + (Fdump_emacs): No need to `forget_itree` any more. + +2022-11-17 Philip Kaludercic + + * lisp/emacs-lisp/package-vc.el: Autoload package-vc-update{,-all} + +2022-11-17 Philip Kaludercic + + Ensure 'package-vc-prepare-patch' runs in the right directory + + * lisp/emacs-lisp/package-vc.el (package-vc-prepare-patch): Bind + 'default-directory'.p + +2022-11-17 Philip Kaludercic + + Avoid duplicate source packages in 'package-alist' + + * lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Remove all + other source packages before installing the new package description. + +2022-11-17 Philip Kaludercic + + Fix issues related to 'package-vc-install-from-checkout' + + * lisp/emacs-lisp/package-vc.el (package-vc--main-file): Ensure the + package name is a string. + (package-vc--unpack-1): Use pkg-dir instead of the empty return value + of 'package-lisp-dir'. + (package-vc-install-from-checkout): Fix file name handling. + +2022-11-17 Philip Kaludercic + + Allow the direct installation of package specifications + + * lisp/emacs-lisp/package-vc.el (package-vc-install): Handle package + specifications as an argument. + +2022-11-17 Philip Kaludercic + + Only fetch elpa-packages.eld when necessary + + * lisp/emacs-lisp/package-vc.el: Remove hook from + 'package-refresh-contents-hook'. + +2022-11-17 Philip Kaludercic + + Remove duplicate package descriptions after updating + + * lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Ensure there + is always just one instance of a package description in 'package-alist'. + +2022-11-17 Philip Kaludercic + + Remove temporary .texi files if used to build documentation + + * lisp/emacs-lisp/package-vc.el (package-vc--build-documentation): + Remember if a temporary file was generated and delete it afterwards. + +2022-11-17 Philip Kaludercic + + Fix the behavior of 'byte-compile-ignore-files' + + * lisp/emacs-lisp/bytecomp.el (byte-recompile-directory): Negate the + 'string-match-p' check. (Bug#59139) + +2022-11-17 Philip Kaludercic + + Add missing elpa-package.eld to package test resources + +2022-11-17 Philip Kaludercic + + Avoid destructive manipulation of 'package-vc--archive-spec-alist' + + * lisp/emacs-lisp/package-vc.el (package-vc--desc->spec): Replace + 'mapcar' with 'apply'. This is done to avoid unintentional cycles. + +2022-11-17 Philip Kaludercic + + Improve robustness of 'package-vc-update' + + * lisp/emacs-lisp/package-vc.el (package-vc-update): Ensure that the + command is only invoked with installed packages. that the hook is + always removed and that 'vc-pull' is always called in the right + directory. + +2022-11-17 Philip Kaludercic + + * lisp/vc/vc.el (vc-default-last-change): Use 'vc-call' + +2022-11-17 Philip Kaludercic + + Have 'vc-prepare-patch' handle prefix arguments. + + * lisp/emacs-lisp/package-vc.el (package-vc-prepare-patch): Use + 'vc-prepare-patch-prompt-revisions'. + * lisp/vc/vc.el (vc-prepare-patch-prompt-revisions): Extract common + function and handle prefix arguments. + (vc-prepare-patch): Pull logic out to + 'vc-prepare-patch-prompt-revisions'. + +2022-11-17 Philip Kaludercic + + Explain that 'package-vc-install' doesn't remove tarball packages + + * lisp/emacs-lisp/package-vc.el (package-vc-install): Expand documentation. + +2022-11-17 Philip Kaludercic + + Mention package name when package is lacking VC data + + * lisp/emacs-lisp/package-vc.el (package-vc-install): Add package name. + (package-vc-checkout): Add package name. + +2022-11-17 Philip Kaludercic + + Add new command 'package-vc-update-all' + + * lisp/emacs-lisp/package-vc.el (package-vc-update-all): Add command + (package-vc-update): Add an assertion to verify this. + +2022-11-17 Philip Kaludercic + + Raise 'wrong-type-argument' when installing package nil + + * lisp/emacs-lisp/package-vc.el (package-vc-install): Check if the + package is nil. + +2022-11-17 Philip Kaludercic + + Have 'package-vc-selected-packages' consider all installed packages + + * lisp/emacs-lisp/package-vc.el + (package-vc-install-selected-packages): Consider more than just one + value in `package-alist', in case there are multiple installations. + +2022-11-17 Philip Kaludercic + + Fix indefinite loading of asynchronous downloads + + * lisp/emacs-lisp/package.el (package--download-one-archive): Only add + the archive that is actually being downloaded to + 'package--downloads-in-progress'. + +2022-11-17 Philip Kaludercic + + Fix edebug spec for 'package--with-response-buffer' + + * lisp/emacs-lisp/package.el (package--with-response-buffer): Add a + spec that makes the macro debuggable. + +2022-11-17 Philip Kaludercic + + Improve robustness of documentation generation + + * lisp/emacs-lisp/package-vc.el (package-vc--build-documentation): Log + output and display error messages if anything goes wrong. + +2022-11-17 Philip Kaludercic + + Remove unused variable in 'package-vc--unpack' + + * lisp/emacs-lisp/package-vc.el (package-vc--unpack): Remove 'url'. + +2022-11-17 Philip Kaludercic + + Move package spec documentation to 'package-vc-selected-packages' + + * lisp/emacs-lisp/package-vc.el (package-vc-selected-packages): Add + documentation. + (package-vc--archive-spec-alist): Remove documentation. + +2022-11-17 Philip Kaludercic + + Fix type error in package-vc prompt function + + * lisp/emacs-lisp/package-vc.el (package-vc--read-package-name): Pass + (not allow-url) as REQUIRE-MATCH, not as INITIAL-INPUT. + +2022-11-17 Philip Kaludercic + + Rename 'package-vc-refresh' to 'package-vc-rebuild' + + * doc/emacs/package.texi (Fetching Package Sources): Update documentation. + * lisp/emacs-lisp/package-vc.el (package-vc-refresh): Rename from. + (package-vc-rebuild): Rename to. + + This intends to clarify the intention and avoid confusion with + 'package-refresh-contents'. Thanks to Rudolf Adamkovič for the + suggestion. + +2022-11-17 Philip Kaludercic + + Track 'default-directory' while updating source packages + + * lisp/emacs-lisp/package-vc.el (package-vc-update): Add the source + directory to the identifier list, in case the remaining + 'vc-do-command' arguments are all read-time constants. + +2022-11-17 Philip Kaludercic + + Respect :lisp-dir in package specs by loading a sub-directory + + * lisp/emacs-lisp/package-vc.el (package-vc-repository-store): Remove + obsolete variable. + (package-vc--unpack-1): Respect :lisp-dir. + (package-vc--unpack): Add :lisp-dir to the package description if + necessary. + * lisp/emacs-lisp/package.el (package--delete-directory): Check if a + directory is a symbolic link. + +2022-11-17 Philip Kaludercic + + Fix generation of documentation for source packages + + * lisp/emacs-lisp/package-vc.el (package-vc--build-documentation): + Call "makeinfo" before "install-info" + +2022-11-17 Philip Kaludercic + + Remove references to internal symbols from public docstrings + + * lisp/emacs-lisp/package-vc.el (package-vc-repository-store): + Unmention 'package-vc--unpack'. + (package-vc-install): Unmention 'package-vc--guess-backend' in favor + of 'package-vc-heuristic-alist'. + +2022-11-17 Philip Kaludercic + + Expand 'package-vc--unpack-1' documentation + + * lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Explain what + the function does. + +2022-11-17 Philip Kaludercic + + Clarify 'package-vc--build-documentation' docstring + + * lisp/emacs-lisp/package-vc.el (package-vc--build-documentation): + Rewrite the first line. + + As suggested by Eli Zaretskii. + +2022-11-17 Philip Kaludercic + + Fix the docstring for 'package-vc--version' + + * lisp/emacs-lisp/package-vc.el (package-vc--version): Replace + docstring. + + It seems like this was just copied over from 'package-vc-commit', for + no good reason. + +2022-11-17 Philip Kaludercic + + Fix 'package-vc-selected-packages' documentation + + * lisp/emacs-lisp/package-vc.el (package-vc-selected-packages): Remove + reference to non-existent function and add an explanation that the + value won't override an existing source package installation. + +2022-11-17 Philip Kaludercic + + Mark 'package-vc-update' as interactive + + * lisp/emacs-lisp/package-vc.el (package-vc--sourced-packages-list): + Remove function in favor of 'package-vc--read-package-name'. + (package-vc--read-package-name): + Extract out common functionality. + (package-vc--read-package-desc): Add auxiliary function based on + 'package-vc--read-package-name'. + (package-vc-update): Add interactive spec using + 'package-vc--read-package-desc'. + (package-vc-install): Use 'package-vc--read-package-desc'. + (package-vc-checkout): Use 'package-vc--read-package-desc'. + (package-vc--read-pkg): Remove in favor of 'package-vc--read-package-desc'. + (package-vc-refresh): Use 'package-vc--read-package-desc'. + (package-vc-prepare-patch): Use 'package-vc--read-package-desc'. + +2022-11-17 Philip Kaludercic + + Autoload 'package-vc-install-selected-packages' + + * lisp/emacs-lisp/package-vc.el (package-vc-ensure-packages): Add an + autoload cookie. + (package-vc-selected-packages): Set + :initialize to 'custom-initialize-default'. + +2022-11-17 Philip Kaludercic + + Mark 'package-vc-install-selected-packages' as interactive + + * lisp/emacs-lisp/package-vc.el (package-vc-ensure-packages): Add an + interactive spec. + +2022-11-17 Philip Kaludercic + + Rename '-ensure-packages' to -install-selected-packages' + + * doc/emacs/package.texi (Fetching Package Sources): Rename instances. + * lisp/emacs-lisp/package-vc.el (package-vc-ensure-packages): Rename + to 'package-vc-install-selected-packages'. + (package-vc-selected-packages): Call renamed function. + +2022-11-17 Philip Kaludercic + + Handle strings as keys in 'package-vc-ensure-packages' + + * lisp/emacs-lisp/package-vc.el (package-vc-ensure-packages): Inter + string keys while processing 'package-vc-selected-packages'. + + As requested by Rudolf Adamkovič. + +2022-11-17 Stefan Kangas + + Avoid raw control characters in two files + + * lisp/net/rcirc.el (rcirc-format, rcirc-unformat) + (rcirc-format-bold, rcirc-format-italic, rcirc-format-underline) + (rcirc-format-strike-trough, rcirc-format-fixed-width): + * test/lisp/subr-tests.el (test-keymap-parse-macros): Don't use + raw control characters. + +2022-11-17 Randy Taylor + + Utilize new font-lock faces for C/C++ and Python tree-sitter use + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Use new + escape, number, property, operator, bracket, and delimiter font-lock + faces. + (c-ts-mode--base-mode): Add them to the feature list. + (c-ts-mode): Fix typo. + * lisp/progmodes/python.el (python--treesit-settings): Use new number, + property, operator, bracket, and delimiter font-lock faces. + (python-mode): Add them to the feature list. + +2022-11-17 Yuan Fu + + Improvements to the tree-sitter setup in sh-script.el + + * lisp/progmodes/sh-script.el (sh-mode--treesit-settings): Add defvar. + (sh-mode): Change feature names. + (sh-mode--treesit-fontify-decl-command): Remove function. + (sh-mode--treesit-declaration-commands): New variable. + (sh-mode--treesit-settings): Change feature names. Simplify + declaration-command feature. + +2022-11-17 João P. L. de Carvalho + + Initial fontification in sh-mode with tree-sitter + + * lisp/progmodes/sh-script.el (sh-mode): Add tree-sitter setup. Move + setup of font-lock-defaults into branch. + (sh-mode--treesit-operators) + (sh-mode--treesit-keywords) + (sh-mode--treesit-settings): New variables. + (sh-mode--treesit-other-keywords) + (sh-mode--treesit-fontify-decl-command): New functions. + +2022-11-17 Juri Linkov + + * lisp/repeat.el (describe-repeat-maps): Use fill-region-as-paragraph. + +2022-11-17 John Wiegley + + Merge pull request from skangas/package-requires + + GitHub-reference: https://github.com/jwiegley/use-package/issues/1024 + +2022-11-17 Robert Pluim + + Use mapc instead of mapcar when walking rmail threads + + * lisp/mail/rmailsum.el (rmail-summary--walk-thread-message-recursively): + Use `mapc' instead of `mapcar'; we don't care about the results. + +2022-11-17 Stefan Monnier + + itree.c: Add new "stateless" iterator code and post-order traversal + + This still uses the old iterator code, but runs the new code + alongside to make sure they behave identically. + + * src/itree.c (struct itree_iterator): New field `node`. + (itree_iterator_create): Give it a sane default value. + (itree_iterator_busy_p, itree_iterator_start, itree_iterator_finish): + Move down to the "iterator" section of the file. + (itree_iter_next_in_subtree, itree_iterator_first_node) + (itree_iter_next): New functions. + (itree_iterator_start): Initialize the new `node` field. + (itree_iterator_next): Add post-order case. + Call the new "stateless" `itree_iter_next` function and check that it + agrees. + + * src/itree.h (enum itree_order): New value for post-order traversals. + +2022-11-17 Andrea Monaco + + New Rmail summary "by thread" + + * lisp/mail/rmailsum.el (rmail-summary-subjects-hash-table) + (rmail-summary-message-parents-vector) + (rmail-summary-message-ids-hash-table): New variables. + (rmail-summary-fill-message-ids-hash-table) + (rmail-summary--split-header-field) + (rmail-summary-fill-message-parents-vector) + (rmail-summary-direct-descendants) + (rmail-summary--walk-thread-message-recursively) + (rmail-summary-by-thread): New functions. + + * etc/NEWS: Announce the new Rmail features. + +2022-11-17 Andrea Monaco + + Improve progressive summaries in Rmail + + * lisp/mail/rmailsum.el (rmail-summary-progressively-narrow): + Renamed from 'rmail-summary-apply-filters-consecutively'. Doc + fix. + (rmail-summary-invert): Renamed from 'rmail-summary-negate'. Doc + fix. + (rmail-summary-currently-displayed-msgs): Doc fix. + (rmail-summary--exists-1): New function. + (rmail-summary-by-labels, rmail-summary-by-recipients) + (rmail-summary-by-regexp, rmail-summary-by-topic) + (rmail-summary-by-senders): Call 'rmail-summary-exists' to verify + that the summary is usable. + +2022-11-17 Eli Zaretskii + + Fix documentation of recent treesit changes + + * src/treesit.c (Ftreesit_parser_notifiers) + (Ftreesit_parser_add_notifier, Ftreesit_parser_remove_notifier): + Doc string fixes. + + * doc/lispref/parsing.texi (Accessing Node Information): Fix + wording and punctuation. + (Using Parser): Improve indexing and wording. + +2022-11-17 Stefan Kangas + + Add package keyword from finder-known-keywords + + Fix Package-Requires for bind-{chord,key}.el + +2022-11-17 Alan Mackenzie + + CC Mode: Make implicit int types following specifiers fontify correctly + + This fixes bug #59267. It applies to C Mode only, and refers to constructs + like "register count;" which are implicitly of int type. + + * lisp/progmodes/cc-engine.el (c-forward-type): Use the new regexp + c-maybe-typeless-specifier-re in place of c-opt-type-modifier-prefix-key. Add + an extra arm to the main cond form to handle the construct, and another to + handle "extern "C" foo_t my_foo;". + (c-forward-decl-or-cast-1): Adapt to handle the result no-id from + c-forward-type. + + * lisp/progmodes/cc-langs.el (c-maybe-typeless-specifier-re): New lang + const/var. + +2022-11-17 Jan Stranik + + Support multi-line C++11 strings in Ebrowse + + * lib-src/ebrowse.c (yylex): Support C++11 multi-line strings. + (bug#58847) + +2022-11-17 Laurence Warne + + Make VSIZE and RSS human-readable in Proced buffers + + * lisp/proced.el (proced-format-memory): New function. + (proced-grammar-alist): Use proced-format-memory to format + VSIZE and RSS. (Bug#59272) + +2022-11-17 Eli Zaretskii + + * lisp/progmodes/eglot.el (eglot-server-programs): Remove Intelephense. + +2022-11-17 USAMI Kenta + + Add Eglot alternatives for PHP language servers + + * lisp/progmodes/eglot.el (eglot-server-programs): Add alternatives + for PHP. + +2022-11-17 Olivier Certner + + ediff: Merges with ancestor: Fix computation of hunks and proposed merge + + Hunks were not computed correctly because the diff3 command was + invoked with arguments in an incorrect order. The correct order is + the local file first, the base (or "ancestor") second and the other + file third. This erroneous behavior had two consequences. First, the + output of diff3 would change, since it tries to merge chunks according + to maximal matches between the second and first files, and the second + and third files. Second, ediff, more precisely, `ediff-do-merge', + would consequently try to merge the reverse of the changes from the + base to the other file. + + * lisp/vc/ediff-diff.el (ediff-setup-diff-regions3): In the arguments + to `ediff-exec-process', swap the other file with the ancestor (only + when merging with an ancestor). + + (ediff-extract-diffs3): Match the hunk data for the ancestor and the + other file correctly. The local variable `three-way-comp' indicates + this is a merge with ancestors when it is nil. + + (Bug#59182) + +2022-11-17 Brian Leung + + shell: Add repeat-map for shell-{forward,backward}-prompt + + * lisp/shell.el (shell-repeat-map): New defvar. (Bug#59144) + +2022-11-17 Brian Leung + + esh-mode: Add repeat-map for eshell-{forward,backward}-argument + + * lisp/eshell/esh-mode.el (eshell-command-repeat-map): New defvar. + (Bug#59144) + +2022-11-17 Brian Leung + + em-prompt: Add repeat-map for eshell-{next,previous}-prompt + + * lisp/eshell/em-prompt.el (eshell-prompt-repeat-map): New keymap. + (Bug#59144) + +2022-11-17 Brian Leung + + comint: Add repeat-map for comint-{next,previous}-prompt + + * lisp/comint.el (comint-repeat-map): New keymap. (Bug#59144) + +2022-11-17 Eli Zaretskii + + Fix display of mode line when the right divider is used + + * src/xdisp.c (init_iterator): For the mode-line, adjust + last_visible_x due to the right divider and the 'box' attribute, + if any, of the mode-line face. + (display_min_width): Update current_x after producing the stretch + glyph, to mimic PRODUCE_GLYPHS. + (display_mode_line): Widen the last glyph to account for adding + the right box line to it. (Bug#5930) + +2022-11-17 Juanma Barranquero + + * lisp/emacs-lisp/shortdoc.el (sequence): Don't use cl-lib (bug#59319) + +2022-11-17 Stefan Kangas + + Merge from origin/emacs-28 + + 0636e1066b ; Don't unnecessarily use non-ASCII characters in Texinfo + + # Conflicts: + # doc/emacs/custom.texi + +2022-11-17 Stefan Kangas + + Prefer defvar-keymap in window.el + + * lisp/window.el (other-window-repeat-map) + (resize-window-repeat-map): Prefer defvar-keymap. + +2022-11-17 Juri Linkov + + * lisp/keymap.el (defvar-keymap): Don't use pcase. + +2022-11-17 Juri Linkov + + * lisp/keymap.el (defvar-keymap): Add support for repeat-mode. + + Put symbol properties 'repeat-map' on commands from the keymap + when a ':repeat' keyword is non-nil. Also include/exclude commands + according to ':repeat (:enter (commands ...) :exit (commands ...))'. + https://lists.gnu.org/archive/html/emacs-devel/2022-11/msg00968.html + +2022-11-17 Juri Linkov + + * lisp/repeat.el (describe-repeat-maps): Improve the output. + + Print the table of keybindings and a list of commands that + enter and exit repeat-map. Use default outline headings. + https://lists.gnu.org/archive/html/emacs-devel/2022-11/msg00969.html + +2022-11-17 Po Lu + + Fix treatment of input focus on MPX setups + + * src/xterm.c (x_ewmh_activate_frame): Use x_set_input_focus + instead of XSetInputFocus. + (x_set_input_focus): New function. Take into account the + ``client pointer'' chosen by Emacs. + (x_focus_frame): Use x_set_input_focus instead of + XSetInputFocus. + +2022-11-17 F. Jason Park + + Improve new connections in erc-handle-irc-url + + * doc/misc/erc.texi: Add new Integrations section to the info manual + under Advanced Usage. + * etc/ERC-NEWS: Add new section mentioning improved UX when clicking + on irc:// links. + + * lisp/erc/erc.el (erc-handle-irc-url): Add optional "scheme" + parameter. Fix `erc-open' invocation so that the server buffer is + named correctly by deferring to a new customizable opener. Arrange + for JOINing a channel in a manner similar to ERC's autojoin module. + (erc-url-connect-function): Add new option for creating a new ERC + connection based on info parsed from a URL. + (erc--url-default-connect-function): New function to serve as an + interactive-only fallback when a user hasn't specified a URL connect + function. + * lisp/erc/erc-compat.el (erc-compat--29-browse-url--irc): Add new + compatibility function for `browse-url-irc' and include it in + `browse-url-default-handlers' on Emacs versions below 29. + + * test/lisp/erc/erc-tests.el (erc-tests--make-server-buf, + erc-tests--make-client-buf): Add helpers for creating dummy ERC + buffers. + (erc-handle-irc-url): Add test. + * test/lisp/erc/erc-scenarios-misc.el (erc-scenarios-handle-irc-url): + Add new test. + * test/lisp/erc/resources/join/legacy/foonet.eld: Relax + timeout. (Bug#56514.) + +2022-11-17 F. Jason Park + + Add optional server param to erc-networks--determine + + * lisp/erc/erc-networks.el (erc-networks--determine): Accept optional + `server' argument. + * test/lisp/erc/erc-networks-tests.el (erc-networks--determine): Add + test. (Bug#56514.) + +2022-11-17 F. Jason Park + + Default to TLS port when calling erc-tls from lisp + + * lisp/erc/erc.el (erc-normalize-port): Add standard IANA port-name + mappings for 6667 and 6697. + (erc-open): Add note to doc string explaining that params `connect' + and `channel' are mutually exclusive. + (erc-tls): Call `erc-compute-port' with override. + (erc-compute-port): Call `erc-normalize-port' with result'. + * test/lisp/erc/erc-tests.el (erc-tls): Add simplistic test focusing + on default parameters. (Bug#56514.) + +2022-11-17 F. Jason Park + + Refactor erc-select-read-args + + * lisp/erc/erc-backend.el (erc--server-connect-dumb-ipv6-regexp): Add + liberal pattern for matching bracketed IPv6 addresses. + (erc-server-connect): Remove brackets from IPv6 hosts before + connecting. + * lisp/erc/erc.el (erc--ensure-url): Add compat adapter to massage + partial URLs given as input that may be missing the scheme:// portion. + (erc-select-read-args): Keep bracketed IPv6 hosts + intact. Make this function fully URL-aware (was only partially so). + Accept optional `input' argument. + * lisp/erc/erc-tests.el (erc-tests--ipv6-examples, + erc--server-connect-dumb-ipv6-regexp, erc-select-read-args): Add test + reading user input during interactive invocations of entry points. + (Bug#56514.) + +2022-11-17 F. Jason Park + + Accommodate ircs:// URLs in url-irc and browse-url + + * lisp/url/url-irc.el (url-irc-function): Change signature of function + interface to expect a final "scheme" argument, such as "ircs". + (url-irc): Call `url-irc-function' with new positional argument, the + scheme extracted via `url-type' from the input URL. + (url-irc-erc, url-irc-rcirc, url-irc-zenirc): Accept a URL scheme as a + sixth positional arg. + (url-ircs-default-port, url-ircs): Add new autoloaded constant and + alias for `url-scheme-get-property' to recognize. Do this to avoid + having to add another file. + * lisp/net/browse-url.el (browse-url-irc-function): Add new option. + (browse-url--irc): Add new function to call `browse-url-irc-function'. + (browse-url-default-handlers): Add "irc://" entry. + (browse-url-irc): Add new function to serve as general handler for + "irc://" URLS. Accept trailing variadic args to accommodate + non-browse-url interfaces as well. + * test/lisp/net/browse-url-tests.el + (browse-url-tests-select-handler-irc): Add test for "irc://" URL + pattern. + * etc/NEWS: Mention select browse-url and url-irc + changes. (Bug#56514.) + +2022-11-17 F. Jason Park + + Warn of future breaking change to erc-response.tags + + * lisp/erc/erc-backend.el (erc-parse-tags-format): New option to + determine type of the `erc-response' "tags" field. + (erc-parse-tags): Defer to internal generic function. + (erc--parse-tags): New function to hold original `erc-parse-tags' + implementation. + (erc--parse-message-tags): New generic function that conditionally + calls `erc--parse-tags', perhaps emitting a warning beforehand. + (erc-parse-server-response): Call `erc--parse-message-tags'. + (Bug#58797.) + +2022-11-17 F. Jason Park + + Improve auto-reconnect visibility in ERC + + * lisp/erc/erc-backend.el (erc--server-reconnect-timer): New variable. + (erc-server-reconnect-function): New user option. + (erc-process-sentinel-2): Display time remaining until next + reconnection attempt. Also remove condition case and move bulk of + else condition logic to `erc-schedule-reconnect'. More importantly, + no longer set `erc--server-reconnecting here'). + (erc-server-connect): Initialize `erc--server-reconnect-timer' to nil. + (erc-server-reconnect): Set `erc-server--reconnecting' here. + (erc--mode-line-process-reconnecting): New constant to store value for + "reconnect" state of `mode-line-process'. + (erc--cancel-auto-reconnect-timer): New function to cancel + auto-reconnect timer and print message. + (erc-schedule-reconnect): New function for scheduling another + reconnect attempt. + + * lisp/erc/erc.el (erc-open): Only update mode line for target + buffers. For server buffers, let `erc-login' and/or process sentinels + take care of it. + (erc--cmd-reconnect, erc-cmd-RECONNECT): Rename latter to former, a + new function, but repurpose existing to recognize newly allowed + additional arguments and act accordingly. In new internal function, + cancel an existing auto-reconnect timer, if any, before proceeding. + Defer to `erc-server-reconnect' to set `erc--server-reconnecting'. + Fix `with-suppressed-warnings' form. + (erc-update-mode-line-buffer): Show "reconnecting in Ns" for + `mode-line-process' when awaiting an automatic reconnect attempt. + (erc-message-english-reconnecting, + erc-message-english-reconnect-canceled): Add new message functions to + English catalog. + + * lisp/erc/erc-pcomplete.el (pcomplete/erc-mode/RECONNECT): Perform + completion for newly subcommand-aware `erc-cmd-RECONNECT'. + + * lisp/erc/erc-scenarios-base-reconnect.el + (erc-scenarios-base-cancel-reconnect): Add new test case for canceling + reconnect timers. (Bug#58840.) + +2022-11-17 F. Jason Park + + Support auth-source-pass in ERC + + * doc/misc/erc.texi: Mention that the auth-source-pass backend is + supported. + * lisp/erc/erc-compat.el (erc-compat--29-auth-source-pass-search, + erc-compat--29-auth-source-pass--build-result-many, + erc-compat--29-auth-source-pass--retrieve-parsed, + erc-compat--29-auth-source-pass-backend-parse, + erc-compat--auth-source-backend-parser-functions): Adapt some yet + unreleased functions from auth-source-pass that mimic the netrc + backend, and add forward declarations to support them. + + * lisp/erc/erc.el (erc--auth-source-search): Use own auth-source-pass + erc-compat backend. + * test/lisp/erc/erc-services-tests.el + (erc-join-tests--auth-source-pass-entries): Remove useless items. + (erc--auth-source-search--pass-standard, + erc--auth-source-search--pass-announced, + erc--auth-source-search--pass-overrides): Remove `ert-skip' guard. + (Bug#58985.) + +2022-11-17 F. Jason Park + + Make auth-source-pass behave more like other backends + + * lisp/auth-source-pass.el (auth-source-pass-extra-query-keywords): Add + new option to bring search behavior more in line with other backends. + (auth-source-pass-search): Add new keyword params `max' and `require' + and consider new option `auth-source-pass-extra-query-keywords' for + dispatch. + (auth-source-pass--match-regexp, auth-source-pass--retrieve-parsed, + auth-source-pass--match-parts): Add supporting variable and helpers. + (auth-source-pass--build-result-many, + auth-source-pass--find-match-many): Add "-many" variants for existing + workhorse functions. + * test/lisp/auth-source-pass-tests.el: Require `ert-x'. + (auth-source-pass-can-start-from-auth-source-search): Ensure + `auth-source-pass-extra-query-keywords' is enabled around test body. + (auth-source-pass-extra-query-keywords--wild-port-miss-netrc, + auth-source-pass-extra-query-keywords--wild-port-miss, + auth-source-pass-extra-query-keywords--wild-port-hit-netrc, + auth-source-pass-extra-query-keywords--wild-port-hit, + auth-source-pass-extra-query-keywords--wild-port-req-miss-netrc, + auth-source-pass-extra-query-keywords--wild-port-req-miss, + auth-source-pass-extra-query-keywords--netrc-akib, + auth-source-pass-extra-query-keywords--akib, + auth-source-pass-extra-query-keywords--netrc-host, + auth-source-pass-extra-query-keywords--host, + auth-source-pass-extra-query-keywords--baseline, + auth-source-pass-extra-query-keywords--port-type, + auth-source-pass-extra-query-keywords--hosts-first, + auth-source-pass-extra-query-keywords--ambiguous-user-host, + auth-source-pass-extra-query-keywords--suffixed-user, + auth-source-pass-extra-query-keywords--user-priorities): Add + juxtaposed netrc and extra-query-keywords pairs to demo optional + extra-compliant behavior. + * doc/misc/auth.texi: Add option + `auth-source-pass-extra-query-keywords' to auth-source-pass section. + * etc/NEWS: Mention `auth-source-pass-extra-query-keywords' in Emacs + 29.1 package changes section. (Bug#58985.) + + Special thanks to Akib Azmain Turja for helping + improve this patch. + +2022-11-17 Jim Porter + + Enable/disable 'server-mode' when starting/stopping the server + + * lisp/server.el (server-mode-map): New keymap... + (server-mode): ... use it. + (server-start): Update the 'server-mode' variable (and sync to + 'global-minor-modes') when starting/stopping the server. + + * test/lisp/server-tests.el: New file (bug#58909). + +2022-11-16 Karl Fogel + + Fix two typos in a doc string + +2022-11-16 Thomas Fitzsimmons + + EUDC: Fix eudc-capf-message-expand-name nil result + + * lisp/net/eudc-capf.el (eudc-capf-message-expand-name): Return + nil if EUDC query returns no results. (Bug#59314) + +2022-11-16 Yuan Fu + + Fix treesit-search-forward not matching leaf nodes + + * src/treesit.c: Match against NODE at start of the loop. + +2022-11-16 Yuan Fu + + Tweaks on c-ts-mode fontification rules + + Changes: + 1. Remove some :override flags + 2. Fontify "!" in font-lock-negation-char-face + 3. Use some new faces like font-lock-escape-face and + font-lock-property-face + 4. Move all type fontification into 'type' feature. Previously some + are in 'definition' feature. + 5. Simplify definition feature, and fontify identifiers in definitions + recursively. + 6. Change 'statement' feature to 'label' + 7. New feature 'assignment' + 8. Remove some rules from 'expression' feature + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): See + above. + (c-ts-mode--fontify-declarator): New function. + (c-ts-mode): Update feature-list. + +2022-11-16 Yuan Fu + + Fix c-ts-mode-imenu + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--imenu-1): If cannot find + its name, ignore the node. + (c-ts-mode--imenu): Don't include a category if it's empty. + +2022-11-16 Yuan Fu + + Allow checking for outdated nodes in tree-sitter + + Now you can run (treesit-node-check node 'outdated). + + * doc/lispref/parsing.texi (Accessing Node Information): Update + manual. + * src/treesit.c (Ftreesit_node_check): Add new property 'outdated'. + * test/src/treesit-tests.el (treesit-node-check): Add tests. + +2022-11-16 Yuan Fu + + Add treesit-explore-mode + + This mode is basically the tree-sitter playground[1] in Emacs: + displays the syntax tree with the source side-by-side, kept in sync in + real-time. + + [1] https://tree-sitter.github.io/tree-sitter/playground + + * doc/lispref/parsing.texi (Language Definitions): Mention in manual. + * lisp/treesit.el (treesit--explorer-buffer) + (treesit--explorer-source-buffer) + (treesit--explorer-language) + (treesit--explorer-refresh-timer) + (treesit--explorer-highlight-overlay) + (treesit--explorer-last-node): New variables. + * lisp/treesit.el (treesit--explorer--nodes-to-highlight) + (treesit--explorer-refresh) + (treesit--explorer-post-command) + (treesit--explorer-jump) + (treesit--explorer-highlight-node) + (treesit--explorer-draw-node): New functions. + (treesit--explorer-tree-mode) + (treesit-explore-mode): New modes. + +2022-11-16 Stefan Monnier + + * src/itree.c: Use more uniform names starting with `itree_` + + (struct itree_stack, itree_stack_create, itree_stack_destroy) + (itree_stack_clear, itree_stack_push_flagged, interval_stack_push) + (itree_stack_pop): Rename from `interval_stack*`. + (itree_max_height, itree_update_limit, itree_inherit_offset) + (itree_propagate_limit, itree_validate, itree_init) + (itree_rotate_left, itree_rotate_right, itree_insert_fix) + (itree_contains, itree_subtree_min, itree_remove_fix) + (itree_replace_child, itree_transplant): Rename from `interval_tree_*`. + (itree_insert_node): Rename from `interval_tree_insert`. + (itree_node_intersects): Rename from `interval_node_insert`. + +2022-11-16 John Wiegley + + Merge pull request from skangas/dir-locals + + GitHub-reference: https://github.com/jwiegley/use-package/issues/1023 + +2022-11-16 John Wiegley + + Merge pull request from skangas/fix-headers + + GitHub-reference: https://github.com/jwiegley/use-package/issues/1022 + +2022-11-16 Stephen Leake + + Call xref--analyze with correct project + + * lisp/progmodes/xref.el (xref-show-definitions-buffer-at-bottom): + Call xref--analyze with correct project. + +2022-11-16 Stefan Kangas + + Add .dir-locals.el + +2022-11-16 Gabriel do Nascimento Ribeiro + + Add flat-button to docstring of 'set-face-attribute' + + * lisp/faces.el (set-face-attribute): Add 'flat-button' to + COLOR and STYLE sections of docstring. (Bug#59266) + +2022-11-16 Eli Zaretskii + + Reduce buffer-tests noisiness even more + + * test/src/buffer-tests.el (test-kill-buffer-auto-save-default) + (test-kill-buffer-auto-save-delete-yes) + (test-kill-buffer-auto-save-delete-no) + (test-buffer-modifications, test-restore-buffer-modified-p): Shut + up auto-save messages. (Bug#59028) + +2022-11-16 Matt Armstrong + + Reduce buffer-tests noisiness when run in batch mode. + + * test/src/buffer-tests.el (overlay-modification-hooks): Remove noisy + `message' calls and use `ert-info' to log context of test + failures. (bug#59028) + (overlay-tests-start-recording-modification-hooks): ditto. + +2022-11-16 Philip Kaludercic + + Set vc-prepare-patches-separately to nil in .dir-locals.el + + * .dir-locals.el (c-mode): Set 'vc-prepare-patches-separately'. + + See https://lists.gnu.org/archive/html/emacs-devel/2022-11/msg00973.html. + +2022-11-16 Stefan Kangas + + Delete redundant headers + + Normalize GPLv3 license statements + +2022-11-16 Stefan Kangas + + Merge from origin/emacs-28 + + 56026242e4 Explain how to bind keys to non-ASCII sequences + 7d592db0ab Document that 'transient-mark-mode' is off in batch mode + + # Conflicts: + # doc/emacs/custom.texi + # doc/emacs/mark.texi + +2022-11-15 Po Lu + + Fix calculation of tab bar lines during automatic height adjustment + + * src/haikufns.c (haiku_change_tab_bar_height): + * src/nsfns.m (ns_change_tab_bar_height): + * src/pgtkfns.c (pgtk_change_tab_bar_height): + * src/w32fns.c (w32_change_tab_bar_height): + * src/xfns.c (x_change_tab_bar_height): Do not round tab bar + height up. (bug#59285, bug#59271) + +2022-11-15 Po Lu + + Fix error trapping in x_focus_frame + + * src/xterm.c (x_focus_frame): Improve commentary. Dno not trap + errors around x_get_server_time. + +2022-11-15 John Wiegley + + Merge pull request from jwiegley/revert-1019-johnw/multi-keymap + + GitHub-reference: https://github.com/jwiegley/use-package/issues/1021 + +2022-11-15 John Wiegley + + Revert "Allow multiple keymaps in :map argument" + +2022-11-15 Juri Linkov + + New command 'project-list-buffers' bound to 'C-x p C-b' (bug#59153) + + * doc/emacs/maintaining.texi (Project Buffer Commands): + Add 'project-list-buffers'. + + * lisp/buff-menu.el (Buffer-menu-filter-predicate): New defvar-local. + (list-buffers-noselect): Add new optional arg 'filter-predicate'. + Set 'Buffer-menu-filter-predicate' to 'filter-predicate'. + (list-buffers--refresh): Use 'Buffer-menu-filter-predicate'. + + * lisp/progmodes/project.el (project-prefix-map): Bind "\C-b" to + 'project-list-buffers'. + (project-list-buffers): New command. + +2022-11-15 Yuan Fu + + Add emacs-devel-specific font-lock rules to c-ts-mode + + This rule corrects the fontification for DEFUN macros. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): + Additional font-lock rules. + (c-ts-mode--fontify-defun): New function. + +2022-11-15 John Wiegley + + Merge pull request from jwiegley/johnw/multi-keymap + + GitHub-reference: https://github.com/jwiegley/use-package/issues/1019 + +2022-11-15 John Wiegley + + Merge remote-tracking branch 'origin/master' into pr-830 + +2022-11-15 John Wiegley + + Merge pull request from skangas/texinfo-wip + + GitHub-reference: https://github.com/jwiegley/use-package/issues/1018 + +2022-11-15 John Wiegley + + Merge branch 'master' into texinfo-wip + +2022-11-15 John Wiegley + + Merge pull request from skangas/gnu-elpa + + GitHub-reference: https://github.com/jwiegley/use-package/issues/1017 + +2022-11-15 Eli Zaretskii + + Fix the MS-Windows build due to use of a new TS function + + * src/treesit.c (ts_tree_get_changed_ranges) [WINDOWSNT]: Define, + load from the library, and call through a function pointer. + +2022-11-15 Po Lu + + Fix last change again + + * src/frame.c (Freconsider_frame_fonts): Apply value of default + face again. (bug#59283) + +2022-11-15 Po Lu + + More fixes to last change + + * lisp/dynamic-setting.el (font-setting-change-default-font): + Call `reconsider-frame-fonts'. + * src/frame.c (Freconsider_frame_fonts): New function. + (syms_of_frame): Add new function. + +2022-11-15 Po Lu + + Fix recent Cairo xsettings changes + + * lisp/dynamic-setting.el (font-setting-change-default-font): + Instead of setting the font frame parameter, just clear the font + and face cache and redraw the display. This will re-open all + fonts as well. + * src/ftcrfont.c (ftcrfont_get_default_font_options): New + function. + * src/ftfont.h: Export. + * src/xsettings.c (apply_xft_settings): Call that function to + obtain the default font settings on Cairo. (bug#58912, + bug#59283, bug#59271) + +2022-11-15 Yuan Fu + + Make tree-sitter fontification automatically update + + Now nodes that are affected and changed during re-parse will be + correctly refontified. Nodes can change even if it corresponding text + wasn't edited: additional text can complete the parse tree and resolve + error nodes, for example. + + * lisp/progmodes/python.el (python-mode): Create Python parser before + calling treesit-major-mode-setup. + * lisp/treesit.el (treesit--font-lock-notifier): New function. + (treesit-major-mode-setup): Register fontifier with every existing + parser. + +2022-11-15 Yuan Fu + + Remove the contextual hack in tree-sitter fontification + + We now have a better facility that can replace the contextual + hack. The C part is in the previous commit, and the Lisp part work + will be in the next commit. + + * doc/lispref/modes.texi (Parser-based Font Lock): Update manual. + * lisp/progmodes/js.el (js--treesit-font-lock-settings) + * lisp/progmodes/python.el (python--treesit-settings) + * lisp/progmodes/ts-mode.el (ts-mode--font-lock-settings): Stop marking + contextual nodes. + * lisp/treesit.el (treesit-font-lock-contextual-post-process): Remove + function. + (treesit-font-lock-fontify-region): Remove code processing contextual + nodes. + +2022-11-15 Yuan Fu + + Allow tree-sitter to notify parse-tree changes + + * src/treesit.c (treesit_call_after_change_functions): New function. + (treesit_ensure_parsed): Call treesit_call_after_change_functions + right after re-parse. + (make_treesit_parser): Initialize after_change_functions. + (Ftreesit_parser_notifiers) + (Ftreesit_parser_add_notifier) + (Ftreesit_parser_remove_notifier): New functions. + * src/treesit.h (Lisp_TS_Parser): New field after_change_functions. + +2022-11-15 Stefan Kangas + + Fix makeinfo warnings + + Resolves https://github.com/jwiegley/use-package/issues/962 + +2022-11-15 Yuan Fu + + Extract out treesit_make_ranges + + * src/treesit.c (treesit_make_ranges): New function. + (Ftreesit_parser_included_ranges): Use treesit_make_ranges. + +2022-11-15 Stefan Kangas + + Use two spaces to end sentences + + Recommend GNU ELPA over MELPA + +2022-11-15 Stefan Kangas + + Use substitute-command-keys for buffer-menu help + + * lisp/buff-menu.el (buffer-menu--display-help): New function. + (buffer-menu, buffer-menu-other-window): Fontify key bindings + using substitute-command-keys. + (Buffer-menu-delete): Advertise key binding as 'd'. + (Buffer-menu-this-window): Advertise key binding as 'f'. + +2022-11-15 Stefan Kangas + + manual: Regenerate texi file + +2022-11-14 Stefan Kangas + + Add face to key bindings suggested by M-x + + * lisp/simple.el (execute-extended-command--describe-binding-msg): + Use 'help-key-binding' face for keybinding. + +2022-11-14 John Wiegley + + Merge pull request from skangas/checkdoc + + GitHub-reference: https://github.com/jwiegley/use-package/issues/1015 + +2022-11-14 John Wiegley + + Merge pull request from skangas/ci + + GitHub-reference: https://github.com/jwiegley/use-package/issues/1013 + +2022-11-14 Yuan Fu + + Don't highlight syntax error in c-ts-mode + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--base-mode): Remove error + feature. + +2022-11-14 Robert Pluim + + Explain how to bind keys to non-ASCII sequences + + * doc/emacs/custom.texi (Init Rebinding): Explain how to use `kbd' + when binding keys to non-ASCII sequences. + +2022-11-14 Po Lu + + Make C-x 5 o work on GNOME Shell-like Wayland compositors + + * src/pgtkterm.c (pgtk_free_frame_resources) + (fill_background_by_face) + (pgtk_draw_glyphless_glyph_string_foreground) + (pgtk_draw_window_cursor): Fix coding style. + (pgtk_focus_frame): Use gtk_window_present_with_time whenever + possible. + (key_press_event): Set the last user time. + (pgtk_display_info_for_display): New function. + (key_release_event, construct_mouse_click, button_event): Set + the last user time. + (scroll_event, pgtk_parse_color, syms_of_pgtkterm) + (pgtk_begin_cr_clip): Fix coding style. + * src/pgtkterm.h (struct pgtk_output): New field + `last_user_time'. + +2022-11-14 Alan Mackenzie + + CC Mode: Prevent over-eager recognition of a variable as a found type + + This fixes bug #59233. It occurred in the C source code fragment + + open_replies = alloca (nproviders ) + + , where typing a * before the closing parenthesis caused nproviders to be + prematurely recognized as a type. + + * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): CASE 18 - set + unsafe-maybe to t, when needed. + +2022-11-14 Theodor Thornhill + + Fix some inconsistencies in *-ts-modes + + (c-ts-mode--base-mode): Extract comment-* so that we can separate + between C and C++. + (c-ts-mode, c++-ts-mode): Set comment-* variables. + + * lisp/progmodes/css-ts-mode.el (css-ts-mode): Add electric-indent. + + * lisp/progmodes/java-ts-mode.el + (java-ts-mode--imenu): Add categories. Only display categories that + exist in the file. + (java-ts-mode): Add electric-indent. + + * lisp/progmodes/json-ts-mode.el + (json-ts-mode): Add electric-indent. + + * lisp/progmodes/ts-mode.el + (ts-mode--font-lock-settings): Whitespace cleanup. + (ts-mode): Add electric-indent. + +2022-11-14 Yuan Fu + + Remove feature that checks whether tree-sitter node "has changes" + + First of all, we signal error on using an outdated node, so if a node + has changes, calling treesit-node-check would only raise an error. + Besides, in order to properly answer whether a node has changed, we + would have to update the node as the buffer is edited, which we don't + do right now. + + * doc/lispref/parsing.texi (Accessing Node Information): Remove + relevant manual text. + * src/treesit.c (Ftreesit_node_check): Remove docstring mentions, + remove the branch for "has-changes". + (syms_of_treesit): Remove has-changes. + +2022-11-14 Po Lu + + Prevent crashes upon trying to focus a child frame on click + + * src/xterm.c (handle_one_xevent): Do not try to activate + override-redirect frames. Explain why. + (x_focus_frame): Catch errors around XSetInputFocus. + +2022-11-13 Stefan Kangas + + Various checkdoc fixes + +2022-11-13 Dmitry Gutov + + Hardcode "-name" instead of using find-name-arg + + * lisp/progmodes/project.el (project--files-in-directory): + Hardcode "-name" instead of using find-name-arg (bug#59023). + +2022-11-13 John Wiegley + + Merge pull request from bhankas/master + + GitHub-reference: https://github.com/jwiegley/use-package/issues/1011 + +2022-11-13 Stefan Kangas + + Fix building on Emacs 24.3 + + This fixes the following error: + use-package-core.el:60:32:Error: Cannot open load file: subr-x + +2022-11-13 Stefan Kangas + + Fix tests on Emacs 26 or older + + This fixes the following error in Emacs 25.3: + + In toplevel form: + bind-key.el:549:1:Error: the function ‘mapcan’ is not known to be defined. + +2022-11-13 Juri Linkov + + * lisp/minibuffer.el (set-message-functions): New user option. + + (set-message-function): Change the default from + 'set-minibuffer-message' to 'set-message-functions'. + 'set-minibuffer-message' is set as the default value + of the user option 'set-message-functions'. + (set-message-functions): New function. + (inhibit-message-regexps): New customizable variable (bug#52314). + (inhibit-message): New function. + (multi-message-timeout, multi-message-max): New defcustoms. + (multi-message-separator, multi-message-list): New variables. + (set-multi-message): New function. + +2022-11-13 Stefan Kangas + + Fix suggest-key-bindings displaying key as command + + * lisp/simple.el (execute-extended-command--describe-binding-msg): + New function factored out from... + (execute-extended-command): ...here. Fix bug where a key binding was + displayed as a command with 'suggest-key-bindings'. (Bug#59247) + * test/lisp/simple-tests.el + (simple-execute-extended-command--describe-binding-msg): New test. + +2022-11-13 Juri Linkov + + * lisp/tab-bar.el: More improvements for tab-bar-auto-width (bug#59208) + + (tab-bar-auto-width): Use add-face-text-property instead of propertize. + Prevent from going into infinite loops. More optimizations. + (tab-bar-format-align-right): Use add-face-text-property, not propertize. + +2022-11-13 Ingo Lohmar + + Eglot: fix null scopeUri regression in workspace/configuration + + * lisp/progmodes/eglot.el (eglot-handle-request): + Commit 1a2d603bb3938ff68ed1a5412d131b41efd40a24 changed + `eglot--uri-to-path' to return a nil uri untouched. (Before, + `url-unhex-string' turned the parsed all-nil uri record into the empty + string.) + + A nil return value must now be handled in the caller, do that for the + workspace/configuration handler to avoid an uncaught error. + +2022-11-13 Stefan Kangas + + New test for execute-extended-command helper defun + + * test/lisp/simple-tests.el + (simple-execute-extended-command--shorter): New test. + +2022-11-13 Stefan Kangas + + Prefer defvar-keymap in sql.el + + * lisp/progmodes/sql.el (sql-interactive-mode-map, sql-mode-map): + Prefer defvar-keymap. + +2022-11-13 Davide Masserut + + Add new Go modes to eglot-server-programs + + * lisp/progmodes/eglot.el (eglot-server-programs): Add new major modes + for Go to be used with gopls. (Bug#59245) + +2022-11-13 Po Lu + + Fix bug#59075 + + * src/nsimage.m (ns_can_use_native_image_api): Do not use native + image APIs for SVG images when RSVG is present. (bug#59075) + +2022-11-13 Eli Zaretskii + + Fix crash on MS-Windows due to memory-allocation problem in treesit.c + + * src/treesit.c (treesit_load_language): Use 'xstrdup'/'xfree' + instead of 'strdup'/'free', to prevent crashes on MS-Windows, + where we must use our own implementation of 'malloc'/'free', + whereas 'strdup' uses the default implementation in the MS-Windows + C runtime library. + +2022-11-13 Po Lu + + Fix warnings without XCB or XFixes + + * src/xterm.c (x_term_init): Don't USE_SAFE_ALLOCA or call + SAFE_FREE outside of where it is actually used. For some reason + the compiler still emitted warnings despite the ((void) + SAFE_ALLOCA (0)) statement. + +2022-11-12 Po Lu + + Prevent non-local exits from ns-in-echo-area + + * src/nsterm.m (ns_in_echo_area_1): + (ns_in_echo_area_2): + (ns_in_echo_area): New functions. + ([EmacsView firstRectForCharacterRange:]): Call them instead. + (syms_of_nsterm): New defsym. + +2022-11-12 Yuan Fu + + Improve tree-sitter imenu for c-mode and js-mode + + Instead of a flat list, now categorize imenu entries into categories + like "Function", "Variable", "Class", etc. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--imenu-1): Handle more edge + cases. + (c-ts-mode--imenu): Categorize menu entries. + * lisp/progmodes/js.el (js--treesit-imenu-type-alist): Remove variable. + (js--treesit-imenu-label): Remove function. + (js--treesit-imenu-1): Use the name alone for labels. + (js--treesit-imenu): Categorize menu entries. + +2022-11-12 Michal Dubiel (tiny change) + + eglot: Support signature labels without a function name + + * lisp/progmodes/eglot.el (eglot--sig-info): Support signature labels + without a function name. (Bug#58777) + +2022-11-12 Theodor Thornhill + + Add tree-sitter modes for C-like languages + + * etc/NEWS: Mention the new modes + * lisp/progmodes/c-ts-mode.el: New major mode with tree-sitter support + for C and C++. + * lisp/progmodes/java-ts-mode.el: New major mode with tree-sitter support. + * lisp/progmodes/json-ts-mode.el: New major mode with tree-sitter support. + * lisp/progmodes/css-ts-mode.el: New major mode with tree-sitter support. + +2022-11-12 Morgan Smith + + vc-git: Ensure git doesn't try to colorize stashes + + * lisp/vc/vc-git.el (vc-git-stash-show): Add --color=never to git + flags. (Bug#59158) + +2022-11-12 Shohei YOSHIDA + + Add cperl-mode to eglot-server-programs + +2022-11-12 Alan Mackenzie + + .dir-locals.el (C entry). Add NO_INLINE to c-noise-macro-names + +2022-11-12 Po Lu + + Correctly handle key map updates on Haiku + + * src/haiku_support.cc (MessageReceived): Handle + B_KEY_MAP_LOADED by clearing the previous keymap. + +2022-11-12 Eli Zaretskii + + Document that 'transient-mark-mode' is off in batch mode + + * doc/emacs/mark.texi (Mark, Disabled Transient Mark): Document, + belatedly, that 'transient-mark-mode' is turned on by default only + in interactive sessions. (Bug#59201) + +2022-11-12 Po Lu + + Handle request serial wraparound more correctly + + * src/xterm.c (X_COMPARE_SERIALS): Remove macro. + (x_is_serial_more_than, x_is_serial_more_than_or_equal_to) + (x_is_serial_less_than, x_is_serial_less_than_or_equal_to): New + functions. + (x_find_error_handler, x_request_can_fail) + (x_clean_failable_requests, x_stop_ignoring_errors): Use those + functions to perform request serial comparison. + +2022-11-12 Po Lu + + Fix implementation of MULTIPLE + + * src/xselect.c (x_handle_selection_request): Make sure the type + of a reply to a MULTIPLE request is ATOM_PAIR. + +2022-11-12 Eli Zaretskii + + Fix recent changes in documentation + + * lisp/treesit.el (treesit-node-at): Doc fix. + + * doc/lispref/parsing.texi (Language Definitions): Add + cross-reference. + (Retrieving Nodes): Renamed from "Retrieving Node"; all references + changed. + (Retrieving Nodes): Fix wording and markup. + +2022-11-12 Stefan Kangas + + * doc/lispref/intro.texi: Fix PDF output without VERSION. (Bug#59199) + +2022-11-12 Po Lu + + * lisp/xwidget.el: Improve Commentary. + +2022-11-12 Stefan Kangas + + Prefer defvar-keymap in cus-theme.el + + * lisp/cus-theme.el (custom-new-theme-mode-map) + (custom-theme-choose-mode-map): Prefer defvar-keymap. + +2022-11-11 Yuan Fu + + Improve treesit-node-at + + * doc/lispref/parsing.texi (Retrieving Node): Update manual. + * lisp/treesit.el (treesit-node-at): Change semantic. It tries to + return the node that a user would expect in various circumstances. + * test/src/treesit-tests.el (treesit-node-at): New test. + +2022-11-11 Dmitry Gutov + + project--buffer-list: Remove as unused + + * lisp/progmodes/project.el (project--buffer-list): + Remove as unused (pointed out in bug#59153 by Juri). + +2022-11-11 Eric Abrahamsen + + Mention obsolete gnus/nnir package in Gnus manual + + * doc/misc/gnus.texi (nnir): Provide some hints for upgrade. + +2022-11-11 Brian Leung + + Make Eglot consider FileSystemWatcher.kind when watching files + + bug#58677 + + * eglot.el (eglot-register-capability + workspace/didChangeWatchedFiles): Rework + + Only send notifications of interest, as determined by the optional LSP + FileSystemWatcher.kind bitmask provided by the server. + + When the FileSystemWatcher.kind property is omitted, use the default + value of 7, which is computed from taking the bitwise OR operation + WatchKind.Create (1) | WatchKind.Change (2) | WatchKind.Delete (4). + +2022-11-11 Gerd Möllmann + + Fix &key parameters called without arguments (bug#58714) + + * lisp/emacs-lisp/cl-macs.el (cl--do-arglist): Check for missing + argument. + * test/lisp/emacs-lisp/cl-macs-tests.el (cl-&key-arguments): New test. + +2022-11-11 Stefan Kangas + + eglot: Remove menu entry for manual + + * lisp/progmodes/eglot.el (eglot-manual): Make obsolete. Open the + eglot info manual instead of the less exhaustive README. + (eglot-menu): Remove entry for reading the manual. (Bug#58892) + +2022-11-10 Stefan Kangas + + Remove redundant library installation instructions + + * lisp/apropos.el: + * lisp/mail/feedmail.el: + * lisp/mail/mail-hist.el: + * lisp/org/org-ctags.el: + * lisp/org/org-protocol.el: + * lisp/progmodes/ebnf2ps.el: + * lisp/progmodes/mixal-mode.el: + * lisp/progmodes/perl-mode.el: + * lisp/savehist.el: + * lisp/textmodes/table.el: + * lisp/vc/smerge-mode.el: Remove redundant installation instructions + for packages bundled with Emacs. + +2022-11-10 Po Lu + + Slightly adjust EWMH frame activation code for child frames + + * src/xterm.c (x_get_toplevel_parent): New function. + (x_focus_frame): Do not use EWMH activation in two cases: focus + transfers to child frames (this is not guaranteed to work if the + focus and the child frame do not share the same toplevel) or + focus transfers from child frames to their toplevel parents. + +2022-11-10 Stefan Kangas + + * lisp/progmodes/hideshow.el: Improve Commentary. + +2022-11-10 Stefan Kangas + + Prefer defvar-keymap in hideshow.el + + * lisp/progmodes/hideshow.el (hs-minor-mode-map): Prefer + defvar-keymap. + +2022-11-10 Yuan Fu + + In end-of-defun, terminate early if no further defun exists + + Before this change, end-of-defun calls end-of-defun-function even if + point is not necessarily at the beginning of a defun (contrary to what + end-of-defun-function's docstring claims). Now it terminates early + and doesn't call end-of-defun-function. + + * lisp/emacs-lisp/lisp.el (beginning-of-defun-raw): Update docstring + clarifying the return value. + (end-of-defun): Terminate early if beginning-of-defun-raw returns nil. + +2022-11-10 dannyfreeman + + Eglot: Only handle URIs with the file:// scheme (bug#58790) + + Eglot will not attempt to parse URIs that are not file:// type at all. + Instead let 'file-name-handler-alist' entries to deal with those. Not + parsing them at all allows the 'file-name-handler-alist' regexps to + identify them more accurately. + + By also checking if Eglot received a URI in 'eglot--path-to-uri', + 'file-name-handler-alist' can provide the non-file type URI back to + the lsp server, which presumably will know how to handle them since it + is also giving them out to clients. + + This issue originated with clojure-lsp sending clients "jar:" type + URIs that Emacs is unable to handle out of the box. Before this + change, "jar:" URIs were parsed once, but since they contain a nested + URI, this resulted in a file being dispatched with a partially parsed + path that looked like "file://path/to.jar!/path/in/jar". + + * lisp/progmodes/eglot.el (eglot--path-to-uri): Noop if already an + URI. (eglot--uri-to-path): Only handle file:// URIs + +2022-11-10 João Távora + + Improve Eglot's docstrings and manual + + The examples in the manual can now be copy-pasted to user's init + files as-is. + + * doc/misc/eglot.texi (Setting Up LSP Servers): Use + `with-eval-after-load'. Add eglot-alternatives example. + (Customizing Eglot): Use 'require and fix a typo. + + * lisp/progmodes/eglot.el (eglot-server-programs): Mention + eglot-alternatives in eglot-server-program's docstring. + +2022-11-10 Yuan Fu + + Utilize new face font-lock-escape-face in python-mode + + * lisp/progmodes/python.el (python--treesit-settings): Use + font-lock-escape-face rather than font-lock-constant-face. + +2022-11-10 Yuan Fu + + Accept older versions of tree-sitter library + + * configure.ac: Accept a tree-sitter library as long as it provides + ts_set_allocator. + +2022-11-10 Evgeni Kolev + + Ignore errors when shutting down all LSP servers (bug#59146) + + eglot-shutdown-all has a bug that results in partially stopping + servers: when a server shutdown timeouts (1.5s), an error is + propagated and eglot-shutdown-all does not try to shutdown the rest of + the servers. + + * eglot.el (eglot-shutdown-all): Ignore errors when shutting down + servers, converting errors to messages. + +2022-11-10 Eli Zaretskii + + Don't reset the inbox buffer's modified status in Rmail + + * lisp/mail/rmail.el (rmail-get-new-mail-1): Don't mark the buffer + unmodified if it was modified before getting new mail. (Bug#59108) + +2022-11-10 Arash Esbati + + Support 'texlab' LSP server in Eglot OOTB + + * lisp/progmodes/eglot.el (eglot-server-programs): Add support for + 'texlab' LSP server for tex-mode and similar languages. + +2022-11-10 Alan Mackenzie + + Add to /etc/NEWS a mention of the new C++20 support in CC Mode + + * etc/NEWS. A new section about C++20 support. + + * lisp/progmodes/cc-defs.el (c-version): Update to 5.35.2. + +2022-11-10 Randy Taylor + + Add more font-lock faces (Bug#58940) + + * lisp/font-lock.el (font-lock-bracket-face, font-lock-delimiter-face, + font-lock-escape-face, font-lock-number-face, + font-lock-misc-punctuation-face, font-lock-operator-face, + font-lock-property-face, font-lock-punctuation-face): Define new + faces. + * lisp/cus-theme.el (custom-theme--listed-faces): Add them to the + list. + * doc/lispref/modes.texi (Faces for Font Lock): Document them. + * etc/NEWS: Mention them. + +2022-11-10 Eli Zaretskii + + Fix initialization of module functions + + * src/emacs-module.c (allocate_module_function): Fix + initialization of module functions. Suggested by Richard Copley + . (Bug#59104) + +2022-11-10 kobarity + + Fix indentation for multi-line block start in Python mode + + * lisp/progmodes/python.el + (python-info-dedenter-opening-block-positions): Fix for multi-line + block start. + * test/lisp/progmodes/python-tests.el + (python-info-dedenter-opening-block-positions-6): New test. (Bug#59009) + +2022-11-10 Eli Zaretskii + + Avoid dumping core upon SIGHUP in non-interactive sessions + + * src/emacs.c (terminate_due_to_signal): Don't special-case + SIGINT. Patch by Paul Eggert . (Bug#58956) + +2022-11-10 Alan Mackenzie + + * lisp/progmodes/cc-mode.el (c-fl-decl-start): Fix off-by-one error. + + This fixes bug #59070. + +2022-11-10 Gabriel do Nascimento Ribeiro + + Make 'dired-hide-details-mode' work after 'dired-hide-subdir' + + * lisp/dired.el (dired--unhide): Restore text properties. + (Bug#59047) + + * test/lisp/dired-tests.el (dired-test-bugXXXX): New test. + +2022-11-10 Matt Armstrong + + Rewrite the `kill-buffer-delete-auto-save' tests (bug#59028) + + These tests had been annoying to me when run in interactive mode. + They failed to bind `kill-buffer-delete-auto-save' as needed, so they + depended on the user's settings, and they failed to mock out the + "Buffer modified, save?" prompt. + + * test/src/buffer-tests.el (test-kill-buffer-auto-save): New helper + function that mocks the two different kinds of prompts that occur when + killing modified buffers that visit a file. Tests fail if expected + prompts are not issued. + (test-kill-buffer-auto-save-default): Use it, and explicitly bind + `kill-buffer-delete-auto-save' to nil. + (test-kill-buffer-auto-save-delete): Delete it. + (test-kill-buffer-auto-save-delete-yes): New test for the "yes" half + of the old `test-kill-buffer-auto-save-delete'. + (test-kill-buffer-auto-save-delete-yes): Ditto for the "no" half. + +2022-11-10 Nicolas Graner + + Better support for 'textarea' and 'select' tags in EWW + + * lisp/net/eww.el (eww-tag-textarea, eww-tag-select): Don't miss + 'textarea' and 'select' tags. (Bug#58973) + +2022-11-10 Po Lu + + Be a little more paranoid about XI 2.0 implementations + + * src/xterm.c (xi_populate_device_from_info): + (xi_disable_devices): Do not restore valuator values if the + valuator info has a mode of Relative and a value of 0.0. + +2022-11-09 Juanma Barranquero + + Make 't' in bs-mode be more defensive + + * lisp/bs.el (bs-visit-tags-table): Verify that the + buffer holds a tags-table file before using it as + such. This is identical to bug#54133 affecting + Buffer-menu, and this fix is copied from the one + by Eli Zaretskii in commit 794fbd1c07 of 2022-02-24. + Thanks to Bob Rogers for noticing. + +2022-11-09 Yuan Fu + + * configure.ac: Change required tree-sitter version to 0.20.2. + +2022-11-09 Yuan Fu + + Make tree-sitter node type match case-sensitive + + * doc/lispref/parsing.texi (Retrieving Node): Update manual. + * src/treesit.c (treesit_traverse_match_predicate): Change to + fast_c_string_match. + (Ftreesit_search_subtree) + (Ftreesit_search_forward) + (Ftreesit_induce_sparse_tree): Update docstring. + +2022-11-09 Yuan Fu + + New function fast_c_string_match and fast_c_string_match_internal + + Generalize fast_c_string_match_ignore_case into + fast_c_string_match_internal. And Make fast_c_string and + fast_c_string_match_ignore_case use fast_c_string_match_internal. + + * src/lisp.h (fast_c_string_match_internal) + (fast_c_string_match): New declaration. + (fast_c_string_match_ignore_case): Change to thin wrapper. + * src/search.c (fast_c_string_match_internal): New function. + +2022-11-09 Yuan Fu + + Add tree-sitter shortdoc + + * lisp/treesit.el (treesit--generate-shortdoc-examples): New function. + (treesit): New shortdoc group. + +2022-11-09 Yuan Fu + + Mimic existing python-mode beg/end-of-defun behavior better + + * lisp/progmodes/python.el (python-treesit-beginning-of-defun) + (python-treesit-end-of-defun): New functions. + * lisp/progmodes/python.el (python-mode): Use custom beg/end-of-defun + functions. + +2022-11-09 Alan Mackenzie + + Optimize c-bs-interval, changing its value from 5000 to 2000 + + * lisp/progmodes/cc-engine.el (c-bs-interval): This optimization speeds + forward scrolling in a C Mode buffer by ~2.4%, backward scrolling by ~1.8%. + +2022-11-09 Juri Linkov + + * lisp/tab-bar.el (tab-bar-auto-width): Add selected-frame to the cache key. + +2022-11-09 Eli Zaretskii + + Avoid assertion violations in matrix_row + + * src/xdisp.c (cursor_in_mouse_face_p): Avoid rare assertion + violations when the cursor's VPOS winds up being invalid for the + window. (Bug#59147) + +2022-11-09 Stefan Kangas + + * lisp/thread.el (thread-list-mode-map): Prefer defvar-keymap. + +2022-11-09 Stephen Leake + + Delete emacs < 26.2 workaround in eglot--apply-text-edits + + * lisp/progmodes/eglot.el (eglot--apply-text-edits): Delete emacs < + 26.2 workaround; fixes bug in ada-mode test. + +2022-11-09 F. Jason Park + + Teach thing-at-point to recognize bracketed IPv6 URLs + + * lisp/thingatpt.el (thing-at-point-bounds-of-url-at-point): Allow + IPv6 addresses as hosts. Overshoots in the case of bracketed markup + but is rescued by `thing-at-point--bounds-of-well-formed-url'. + * test/lisp/thingatpt-tests.el (thing-at-point-test-data): Add cases + for IPv6 URLs. Bug#56514. + +2022-11-09 Po Lu + + Make the PGTK port display a loud warning when run under X + + * src/pgtkterm.c (pgtk_display_x_warning): New function. + (pgtk_term_init): Call it. + +2022-11-09 Po Lu + + "Fix" iconification handling on PGTK + + * src/pgtkterm.c (pgtk_iconify_frame): Write some more comments + and refrain from setting the frame as iconified here. + (map_event): Remove redundant braces. + (window_state_event): Remove useless code and manage frame + visibility as correctly as possible under Wayland while + iconified. (bug#55836) + +2022-11-09 Po Lu + + Avoid use of `uint' type in XKB code + + * src/xterm.c (x_find_modifier_meanings, handle_one_xevent): Use + `unsigned int' instead of `uint'. + +2022-11-09 Mattias Engdegård + + * src/lread.c (syms_of_lread): Drop unused capture group. + +2022-11-09 Nicholas Vollmer + + bytecomp.el (byte-recompile-directory): Fix negated ignore logic + + Previous logic would only compile files which matched the + byte-compile-ignore-files regular expression. (Bug#59115) + +2022-11-09 Juri Linkov + + * lisp/tab-bar.el (tab-bar-auto-width): Use 'frame-inner-width'. + + * lisp/tab-bar.el (tab-bar-get-buffer-tab): Add optional arg 'all-tabs'. + +2022-11-08 Alexander Adolf + + EUDC: Add ecomplete and mailabbrev backends + + * doc/misc/eudc.texi (Overview): Add ecomplete and mailabbrev + nodes. + (ecomplete, mailabbrev): New nodes. + (Installation): Add ecomplete and mailabbrev nodes. + (LDAP Configuration): Use code formatting instead of quotes. + (macOS Contacts Configuration): Likewise. + (ecomplete Configuration): New node. + (mailabbrev Configuration): Likewise. + * etc/NEWS (EUDC): Mention ecomplete and mailabbrev backends, + mention eudc-server-hotlist default change. + * lisp/net/eudc-vars.el (eudc-known-protocols): Add ecomplete and + mailabbrev. + (eudc-server-hotlist): Add entries for ecomplete and mailabbrev. + * lisp/net/eudcb-ecomplete.el: New EUDC backend file. + * lisp/net/eudcb-mailabbrev.el: Likewise. + * test/lisp/net/eudc-resources/ecompleterc, + test/lisp/net/eudc-resources/mailrc: New eudc-tests resource + files. + * test/lisp/net/eudc-tests.el (eudc-test-rfc5322-quote-phrase) + (eudc-test-make-address, eudcb-ecomplete, eudcb-mailabbrev): New + test cases. + +2022-11-08 Thomas Fitzsimmons + + EUDC: Deprecate eudc-server variable + + * lisp/net/eudc-vars.el (eudc-server): Deprecate variable for + Emacs 29.1. + +2022-11-08 Stephen Leake + + * lisp/progmodes/eglot.el (eglot--pos-to-lsp-position): Improve comment + +2022-11-08 Alan Mackenzie + + CC Mode: Improve accuracy of recognition of bitfields + + * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): When we've got two + identifiers followed by a colon, additionally check for a number (or + identifier) followed by a semicolon or comma before concluding we have a + bitfield. + +2022-11-08 Robert Pluim + + Don't use @w around @xref in ede.texi + + Texinfo 7 warns about this now. + + * doc/misc/ede.texi (ede-project-placeholder, ede-project, + ede-cpp-root-project, ede-simple-project,ede-simple-base-project, + ede-proj-project, project-am-makefile, ede-step-project, ede-target, + ede-proj-target, ede-proj-target-makefile, + semantic-ede-proj-target-grammar, ede-proj-target-makefile-objectcode, + ede-proj-target-makefile-archive, ede-proj-target-makefile-program, + ede-proj-target-makefile-shared-object, ede-proj-target-elisp, + ede-proj-target-elisp-autoloads, + ede-proj-target-makefile-miscelaneous, ede-proj-target-makefile-info, + ede-proj-target-scheme, project-am-target, project-am-objectcode, + project-am-program, project-am-header-noinst, project-am-header-inst, + project-am-lisp, project-am-texinfo, project-am-man, + ede-compilation-program, ede-compiler, ede-object-compiler, + ede-linker): Remove @w around @xref. + +2022-11-08 Po Lu + + Clean up some duplicate event group conversion code + + * src/xterm.c (xi_convert_event_keyboard_state): New function. + Move keyboard event state over. + (handle_one_xevent): Use it where necessary. + +2022-11-08 Alan Mackenzie + + CC Mode: Stabilize the fontification in the presence of "register" keywords + + This fixes bug #58883. + + * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): New variable + unsafe-maybe. Set it in CASE 10 rather than setting c-record-type-identifiers + to nil. Near the end of the function, when unsafe-maybe is set, bind + c-promote-possible-types to 'just-one rather than t around the call to + c-forward-type. + +2022-11-07 Thomas Fitzsimmons + + EUDC: Add eudc-ignore-options-file customization + + * etc/NEWS (EUDC): Document eudc-ignore-options-file. + * doc/misc/eudc.texi (The Server Hotlist): Likewise + * lisp/net/eudc-vars.el (eudc-ignore-options-file): New variable. + (eudc-options-file): Mention new variable. + * lisp/net/eudc.el: Warn on load if eudc-ignore-options-file is + set but the options file exists. + (eudc-set-server): Support + eudc-ignore-options-file. + (eudc-bookmark-server): Likewise. + (eudc-save-options): Likewise. (Bug#56154) + +2022-11-07 Po Lu + + Add missing SAFE_FREE on XI 2.0 servers + + * src/xterm.c (xi_populate_device_from_info): Add missing + SAFE_FREE. + +2022-11-07 Alan Mackenzie + + CC Mode: Fix infinite loop in c-brace-stack-at. + + This fixes bug #59038. The infinite loop occurred with a buffer containing + Base-64 encoded text rather than appropriate C Mode text. + + * lisp/progmodes/cc-engine.el (c-update-brace-stack): Don't execute + c-beginning-of-current-token unless the previous c-syntactic-re-search-forward + has succeeded at least once. + +2022-11-07 Po Lu + + Avoid invalid values showing up in scroll valuators + + * src/xterm.c (xi_populate_device_from_info): Reset emacs_value + when invalid_p is cleared. + +2022-11-07 Yuan Fu + + Add tree-sitter indent preset "point-min" + + * doc/lispref/modes.texi (Parser-based Indentation): Update manual. + * lisp/treesit.el (treesit-simple-indent-presets): Add preset. Update + docstring. + +2022-11-07 Yuan Fu + + Add treesit--indent-rules-optimize + + * lisp/treesit.el (treesit--indent-rules-optimize): New function. + (treesit-major-mode-setup): Optimize indent rules when setting up for + major mode. + +2022-11-07 Juri Linkov + + * lisp/outline.el (outline-minor-mode): Ensure margins are either 0 or 1. + + This check is necessary to make it idempotent to multiple calls. + +2022-11-07 Stefan Monnier + + (itree_insert_gap, itree_delete_gap): Minor optimization + + `limit` can get smaller in either of the two children of a node. + It can also happen that the root node itself has a low enough limit + that the loop can be interrupted right away. + + The previous code only checked `limit` when going down to a left + child, which is not wrong, but tests suggest that it is also very + common to reach this limit when going to a right child, so move the + test accordingly. + + * src/itree.c (itree_insert_gap, itree_delete_gap): Check `limit` for + all nodes, rather than only when following a `left` pointer. + +2022-11-06 Stefan Kangas + + Merge from origin/emacs-28 + + 70fb03a49a ; * doc/emacs/search.texi (Lax Search): Improve suggestion... + 5779df0c5b ; * doc/lispref/searching.texi: Remove reference to Posix.... + 46929f6b73 ; Improve documentation of character classes in regexps + +2022-11-06 Philip Kaludercic + + Revert "* lisp/vc/vc-git.el (vc-git--rev-parse): Allow abbreviating commits" + + This reverts commit 307ad210040251ea0de2e7f453350c4497bda874. + +2022-11-06 Ingo Lohmar + + Fix sql-{beginning,end}-of-statement counting + + * lisp/progmodes/sql.el (sql-beginning-of-statement, sql-end-of-statement): + Do not count statement separators if inside a string. + +2022-11-06 Stefan Kangas + + Prefer defvar-keymap in octave.el + + * lisp/progmodes/octave.el (octave-mode-map): Prefer + defvar-keymap. + +2022-11-06 Stefan Kangas + + Fix failing eshell alias tests + + * test/lisp/eshell/esh-var-tests.el (esh-var-test/alias/function) + (esh-var-test/alias/symbol-pair): Fix tests. (Bug#59062) + +2022-11-06 Eli Zaretskii + + Revert "Pacify -Wnull-dereference" + + This reverts commit dad452552bebf832e737ebb946b5eea6cd57f63f. + Please don't assume I write such code by omission. + +2022-11-06 Po Lu + + Fix splash screen display on NS and Haiku with native image APIs + + * src/image.c (syms_of_image): Add Qsvg image type if SVG is + also supported by native image APIs. + +2022-11-06 Po Lu + + Pacify -Wnull-dereference + + * src/xdisp.c (extend_face_to_end_of_line): Use FACE_FROM_ID, + not FACE_FROM_ID_OR_NULL, when the next line proceeds to + immediately dereference the face. + +2022-11-06 Po Lu + + Write more commentary on XI2 device management + + * src/xterm.c (xi_populate_device_from_info): Take dpyinfo. + Describe what master and slave devices are, how they represent + seats, and how they are used to multiplex user input. Also + simplify ifdefs and avoid looping over scroll classes on XI 2.0. + (x_cache_xi_devices, handle_one_xevent): Adjust accordingly. + (x_term_init): Set dpyinfo->xi2_version before calling + x_cache_xi_devices. + +2022-11-06 Eli Zaretskii + + Fix face extension when Org narrows the buffer + + * src/xdisp.c (extend_face_to_end_of_line): Make sure glyph rows + at ZV use the default face for extension. (Bug#59065) + +2022-11-06 Davide Masserut + + Bind "DEL" in dictionary-mode + + * lisp/net/dictionary.el (dictionary-mode-map): Bind DEL to + 'scroll-down-command'. (Bug#58986) + +2022-11-06 Eli Zaretskii + + Improve documentation of Edebug overwriting buffer point + + * doc/lispref/edebug.texi (Edebug Display Update) + (Edebug Options): More details about Edebug changing buffer point + position. Reported by Alan Mackenzie . + +2022-11-06 Juri Linkov + + * lisp/tab-bar.el (tab-bar-fixed-width-max): Change :type from cons to list. + + This will allow possible future extensions to customize Double (HiDPI). + + (tab-bar-fixed-width-min): Change :type from cons to list. + (tab-bar-fixed-width): Use the list instead of cons. + +2022-11-06 Matt Armstrong + + itree.c and buffer-tests.el: Incorporate code review feedback + + * src/itree.c: Improve wording in `itree_insert_gap` comment. + * test/src/buffer-tests.el (test-overlay-insert-before-markers-at-start): + Don't rely on (point-min) being 1. + (test-overlay-insert-before-markers-at-end): ditto. + (test-overlay-insert-before-markers-empty): ditto. + +2022-11-05 Yuan Fu + + Fix incorrect tree-sitter fontification + + * lisp/treesit.el (treesit-font-lock-fontify-region): If the captured + node is outside of the region between START and END, don't fontify it. + Wrap fontification code in a when form. + +2022-11-05 Yuan Fu + + Allow tree-sitter indent offset to be a variable + + * doc/lispref/modes.texi (Parser-based Indentation): Update manual. + * lisp/progmodes/js.el (js--treesit-indent-rules): Change all + occurrence of ,js-indent-level to js-indent-level. + + * lisp/progmodes/ts-mode.el (ts-mode--indent-rules): Change all + occurrence of ,ts-mode-indent-offset to ts-mode-indent-offset. + * lisp/treesit.el (treesit-simple-indent-rules): Change docstring. + (treesit-simple-indent): Allow offset to be a variable. + +2022-11-05 Yuan Fu + + Don't indent empty lines in treesit-indent-region + + * lisp/treesit.el (treesit-indent-region): Wrap the old code in an if + form that checks whether we are at an empty line. Add comments. + +2022-11-05 Yuan Fu + + Make treesit-language-at work in more situations + + even if treesit-language-at-point-function is nil. + +2022-11-05 Stefan Monnier + + buffer.c: evaporate overlays in all indirect buffers + + This fixes bug#58928. The patch works by moving the + `evaporate_overlays` check closer to `itree_delete_gap`. + + * src/buffer.c (adjust_overlays_for_delete_in_buffer): New function, + integrating the functionality of `evaporate_overlays`. + (adjust_overlays_for_delete): Use it. + (evaporate_overlays): Delete function. + + * src/buffer.h (evaporate_overlays): Delete declaration. + + * src/insdel.c (adjust_markers_for_replace): Minor optimization. + (adjust_after_replace, replace_range, replace_range_2, del_range_2): + Don't call `evaporate_overlays`. + + * test/src/buffer-tests.el (buffer-tests--overlays-indirect-evaporate): + Remove the `:expected-result :failed` attribute. + +2022-11-05 Matt Armstrong + + Add a test for overlay evaporation across indirect buffers + + * test/src/buffer-tests.el (buffer-tests--overlays-indirect-evaporate): + Test evaporation of overlays triggered by deleting text in base + and in indirect buffers. Test doesn't pass at the moment. + +2022-11-05 Matt Armstrong + + Minor tweaks to the fix for `insert-before-markers' overlay fix + + (bug#58928) + + * src/buffer.c (adjust_overlays_for_insert): wrap to less than 80 + chars. + * src/itree.c: document BEFORE_MARKERS. + +2022-11-05 Matt Armstrong + + Tweak the overlay related `insert-before-markers' tests + + * test/src/buffer-tests.el (test-overlay-insert-before-markers-empty): + Move code down to the other tests related to insertion. Test all + front/rear insert combinations. To make the test more clear, at least + to me, hard code all character positions. + (test-overlay-insert-before-markers-at-start): For both front-advance + modes verify that `insert-before-markers' at and overlay's start + advances it. + (test-overlay-insert-before-markers-at-end): For both rear-advance + modes test that `insert-before-markers' at an overlay's end advances + it. + (test-overlay-insert-before-markers-non-empty): Delete, replaced by + the two tests above. + +2022-11-05 Brian Cully + + lisp/eshell/em-tramp.el: Rename 'TRAMP' to 'Tramp'. + +2022-11-05 Brian Cully + + Add the "doas" alias to eshell. + + * lisp/eshell/em-tramp.el (eshell/doas): new function. + (eshell--method-wrap-directory): new function. + (eshell/sudo): accept '-s'/'--shell' for interactive use. + * test/lisp/eshell/em-tramp-tests.el + (em-tramp-test/sudo-shell) (em-tramp-test/sudo-user-shell) + (em-tramp-test/doas-basic) (em-tramp-test/doas-user) + (em-tramp-test/doas-shell) (em-tramp-test/doas-user-shell): new + tests. + * etc/NEWS: mention new 'doas' eshell command. + * doc/misc/eshell.texi: add 'doas' command documentation. + +2022-11-05 Juri Linkov + + * etc/NEWS: Remove remark implemented by 'vc-default-checkin-patch'. + + * lisp/net/dictionary.el (dictionary-search): Use format-prompt. + + * lisp/tab-bar.el (tab-bar-fixed-width): Improve width calculations. + +2022-11-05 Philip Kaludercic + + Rephrase 'package-vc-ensure-packages' docstring + + * lisp/emacs-lisp/package-vc.el (package-vc-ensure-packages): Make it + easier to read. + +2022-11-05 Michael Albinus + + * lisp/jka-compr.el (jka-compr-load): Add MUST-SUFFIX argument. + +2022-11-05 Eli Zaretskii + + Fix the unexec build + + * src/itree.c (forget_itree): New function. + * src/emacs.c (Fdump_emacs): Call 'forget_itree'. + +2022-11-05 Eli Zaretskii + + Fix warnings in sqlite.c in the MS-Windows build + + * src/sqlite.c (sqlite3_errstr) [WINDOWSNT]: Define and load from + the DLL only if the SQLite3 version is at least 3.7.15. + (sqlite_prepare_errdata) [SQLITE_VERSION_NUMBER >= 3007015]: Use + the original code if sqlite3_errstr is available. + +2022-11-05 Nicolas Graner + + Avoid error when forwarding messages from Rmail + + * lisp/gnus/message.el (message-mail): Verify that In-Reply-To has + a string value before matching it with a regexp. (Bug#59007) + +2022-11-05 Po Lu + + Make sqlite.c build with SQlite in Fedora 9 + + * src/sqlite.c (sqlite_prepare_errdata): Use sqlite3_errmsg + instead of sqlite3_errstr. + +2022-11-05 Po Lu + + Simplify XI scroll class reporting code + + * src/xterm.c (xi_populate_device_from_info): Use xnmalloc. + Avoid reading classes at all when the XI library only supports + 2.0. + (xi_handle_new_classes): New function. + (xi_handle_device_changed): Move class parsing logic there to + avoid duplicating code. + +2022-11-05 Payas Relekar + + Bump version to 2.4.4 + +2022-11-04 dickmao + + Move ERC's core dependencies to separate file + + Asking people to order require's is about as effective + as asking kids to keep off the grass. + + * lisp/erc/erc-backend.el (erc--target, erc-auto-query, + erc-channel-list, erc-channel-users, erc-default-nicks, + erc-default-recipients, erc-format-nick-function, + erc-format-query-as-channel-p, erc-hide-prompt, erc-input-marker, + erc-insert-marker, erc-invitation, erc-join-buffer, + erc-kill-buffer-on-part, erc-kill-server-buffer-on-quit, erc-log-p, + erc-minibuffer-ignored, erc-networks--id, erc-nick, + erc-nick-change-attempt-count, erc-prompt-for-channel-key, + erc-prompt-hidden, erc-reuse-buffers, erc-verbose-server-ping, + erc-whowas-on-nosuchnick): Forward-declare variables. + (erc--open-target, erc--target-from-string, erc-active-buffer, + erc-add-default-channel, erc-banlist-update, erc-buffer-filter, + erc-buffer-list-with-nick, erc-channel-begin-receiving-names, + erc-channel-end-receiving-names, erc-channel-p, + erc-channel-receive-names, erc-cmd-JOIN, erc-connection-established, + erc-current-nick, erc-current-nick-p, erc-current-time, + erc-default-target, erc-delete-default-channel, + erc-display-error-notice, erc-display-server-message, + erc-emacs-time-to-erc-time, erc-format-message, + erc-format-privmessage, erc-get-buffer, erc-handle-login, + erc-handle-user-status-change, erc-ignored-reply-p, + erc-ignored-user-p, erc-is-message-ctcp-and-not-action-p, + erc-is-message-ctcp-p, erc-log-irc-protocol, erc-login, + erc-make-notice, erc-network, erc-networks--id-given, + erc-networks--id-reload, erc-nickname-in-use, erc-parse-user, + erc-process-away, erc-process-ctcp-query, erc-query-buffer-p, + erc-remove-channel-member, erc-remove-channel-users, erc-remove-user, + erc-sec-to-time, erc-server-buffer, erc-set-active-buffer, + erc-set-current-nick, erc-set-modes, erc-time-diff, erc-trim-string, + erc-update-mode-line, erc-update-mode-line-buffer, + erc-wash-quit-reason, erc-display-message, erc-get-buffer-create, + erc-process-ctcp-reply, erc-update-channel-topic, erc-update-modes, + erc-update-user-nick, erc-open, erc-update-channel-member): + Forward-declare functions. + (erc-response): Move to lisp/erc/erc-common.el. + (erc-compat--with-memoization): Use "erc-compat-" prefixed macro. + + * lisp/erc/erc-common.el: New file. Change indentation for + `erc-with-all-buffers-of-server' from 1 to 2. + + * lisp/erc/erc-compat.el (erc-compat--with-memoization): Migrate macro + from `erc-backend' and rename. + + * lisp/erc/erc-goodies.el: Require `erc-common' instead of `erc'. + (erc-controls-highlight-regexp, erc-controls-remove-regexp, + erc-input-marker, erc-insert-marker, erc-server-process, erc-modules, + erc-log-p): Forward declare variables. + (erc-buffer-list, erc-error, erc-extract-command-from-line): + Forward-declare functions. + + * lisp/erc/erc-networks.el (erc--target, erc-insert-marker, + erc-kill-buffer-hook, erc-kill-server-hook, erc-modules, + erc-rename-buffers, erc-reuse-buffers, erc-server-announced-name, + erc-server-connected, erc-server-parameters, erc-server-process, + erc-session-server): Forward declare variables. + (erc--default-target, erc--get-isupport-entry, erc-buffer-filter, + erc-current-nick, erc-display-error-notice, erc-error, erc-get-buffer, + erc-server-buffer, erc-server-process-alive): Forward-declare + functions. + (erc-obsolete-var): Also suppress free-variable warnings. + + * lisp/erc/erc.el: Require `erc-networks', `erc-goodies', and + `erc-backend' at top of file. Don't require `erc-compat'. + (erc--server-last-reconnect-count, erc--server-reconnecting, + erc-channel-members-changed-hook, erc-network, erc-networks--id, + erc-server-367-functions, erc-server-announced-name, + erc-server-connect-function, erc-server-connected, + erc-server-current-nick, erc-server-lag, erc-server-last-sent-time, + erc-server-process, erc-server-quitting, erc-server-reconnect-count, + erc-server-reconnecting, erc-session-client-certificate, + erc-session-connector, erc-session-port, erc-session-server, + erc-session-user-full-name) Remove superfluous forward declarations. + (erc-message-parsed, tabbar--local-hlf, motif-version-string): + Relocate forward declares to central location. + (erc-session-password): Move to `erc-backend'. + (erc-downcase, erc-with-server-buffer, erc-server-user, + erc-channel-user, erc-get-channel-user, erc-get-server-user): Move to + lisp/erc/erc-common.el. + (erc-add-server-user, erc-remove-server-user, + erc-channel-user-owner-p, erc-channel-user-admin-p, + erc-channel-user-op-p, erc-channel-user-halfop-p, + erc-channel-user-voice-p): Convert from inline functions to normal + functions. + (define-erc-module, erc--target, erc--target-channel, + erc--target-channel-local, erc-log, erc-log-aux, erc-with-buffer, + erc-with-all-buffers-of-server): Move to lisp/erc/erc-common.el. + (erc-channel-members-changed-hook): Relocate option to avoid compiler + warning. + (erc-input, erc--input-split): Move to lisp/erc/erc-common.el. + (erc-controls-strip): Remove forward declaration temporarily until + this file stops requiring `erc-goodies'. + + * test/lisp/erc/erc-networks-tests.el: Require `erc' instead of + `erc-networks'. + * test/lisp/erc/erc-tests.el (erc--meta--backend-dependencies): + Remove obsolete test. Don't require `erc-networks'. Bug#56340. + +2022-11-04 F. Jason Park + + Offer completions for GET subcommand flags in erc-dcc + + * lisp/erc/erc-dcc.el (pcomplete/erc-mode/DCC): Add /DCC GET switches. + This is unfinished business from bug#54458. + * test/lisp/erc/erc-dcc-tests.el (erc-dcc-tests--pcomplete-common, + pcomplete/erc-mode/DCC--get-basic, pcomplete/erc-mode/DCC--get-1flag, + pcomplete/erc-mode/DCC--get-2flags, + pcomplete/erc-mode/DCC--get-2flags-reverse): Add helper and tests for + completing /DCC GET switches. + +2022-11-04 F. Jason Park + + * lisp/erc/erc.el (erc-cmd-RECONNECT): Fix macro arg. + +2022-11-04 Dmitry Gutov + + project-kill-buffer-conditions: Tweak + + * lisp/progmodes/project.el (project-kill-buffer-conditions): Tweak. + +2022-11-04 Matt Armstrong + + Configure clang-format to use tabs + + * .clang-format (UseTab): Set to "Always", to match + the (indent-tabs-mode . t) in .dir-locals.el. (Bug#59027) + +2022-11-04 Philip Kaludercic + + Print "decrypted" rot13 text is buffer is read-only + + * lisp/rot13.el (rot13-region): Add fallback if buffer is read-only + * doc/emacs/rmail.texi (Rmail Rot13): Document new behavior. + +2022-11-04 Philip Kaludercic + + * lisp/net/rcirc.el (rcirc-print): Replace misjudged assertion + +2022-11-04 Stefan Kangas + + * lisp/textmodes/css-mode.el (css-mode-map): Prefer defvar-keymap. + + * lisp/dired-aux.el (dired-check-process): Use progress reporter. + +2022-11-04 Stefan Kangas + + Use progress reporter in cpp.el + + * lisp/progmodes/cpp.el (cpp-highlight-buffer): Use progress + reporter. + (cpp-progress-time, cpp-progress-message): Make obsolete in favor + of 'make-progress-reporter'. + (cpp-message-min-time-interval): Doc fix. + +2022-11-04 Stefan Kangas + + * lisp/progmodes/cpp.el (cpp-edit-mode-map): Prefer defvar-keymap. + +2022-11-04 Paul Eggert + + Pacify gcc -Wanalyzer-null-dereference + + This is for gcc 12.2.1 20220819 (Red Hat 12.2.1-2) x86-64 + when Emacs is configured with --enable-gcc-warnings. + * src/buffer.c (Fmove_overlay): Prefer BASE_EQ to EQ in a place + where they’re equivalent because the only symbol allowed here is nil. + +2022-11-04 Philip Kaludercic + + Merge branch 'feature/package+vc' + + * lisp/emacs-lisp/package-vc.el: Expand commentary + +2022-11-04 Philip Kaludercic + + Link to Manual from the package-vc group + + * lisp/emacs-lisp/package-vc.el (package-vc): Add 'custom-manual' + link. + +2022-11-04 Philip Kaludercic + + Document 'package-vc-selected-packages' + + * doc/emacs/package.texi: Expand documentation and give example. + * etc/NEWS: Mention 'package-vc-selected-packages'. + * lisp/emacs-lisp/package-vc.el (package-vc--select-packages): Remove + function. + (package-vc-ensure-packages): Add function based on + 'package-vc--select-packages'. + (package-vc-selected-packages): Call 'package-vc-ensure-packages' from + custom setter. + +2022-11-04 Yuan Fu + + Add treesit-indent-error + + * lisp/treesit.el (treesit-indent-error): New error. + (treesit--simple-indent-eval): Signal treesit-indent-error. + +2022-11-04 Yuan Fu + + Revise tree-sitter facility for multi-language buffers + + * doc/lispref/parsing.texi (Multiple Languages): Extend and update + manual. + * lisp/treesit.el (treesit-range-functions): Remove variable. + (treesit-range-settings): New variable. + (treesit-range-rules): New function. + (treesit--merge-ranges): New function. + (treesit-update-ranges): Use treesit-range-settings instead of + treesit-range-functions. + (treesit-font-lock-rules): Fix docstring. + (treesit-indent) + (treesit-indent-region): Only update ranges in a region. + * test/src/treesit-tests.el (treesit-range): New test. + +2022-11-04 Stefan Monnier + + * lisp/simple.el (function-documentation): Fix bug#59014 + +2022-11-04 Michael Albinus + + Fix calling file name handler for `load'. + + * lisp/net/ange-ftp.el (ange-ftp-load): Add MUST-SUFFIX argument. + + * lisp/net/tramp.el (tramp-handle-load): Adapt MUST_SUFFIX test. + + * src/lread.c (Fload): Call handler with must_suffix. + + * test/lisp/net/tramp-tests.el (tramp-test27-load): Extend test. + +2022-11-04 Stefan Kangas + + Normalize some syntax table definitions + + * lisp/nxml/rng-cmpct.el (rng-c-syntax-table): + * lisp/progmodes/cperl-mode.el (cperl-mode-syntax-table) + (cperl-string-syntax-table2): + * lisp/progmodes/dcl-mode.el (dcl-mode-syntax-table): Normalize + definitions to better follow modern ELisp conventions. + +2022-11-04 Stefan Kangas + + * lisp/progmodes/dcl-mode.el (dcl-mode-map): Prefer defvar-keymap. + + * admin/authors.el: Don't recommend deprecated fgrep. + +2022-11-04 Basil L. Contovounesios + + Fix manual noverlay tests + + * test/manual/noverlay/Makefile.in: Add copyright notice. + (LIBS): Rename... + (PACKAGES): ...to this, to avoid confusion with Autoconf's LIBS. + All uses changed. + (CFLAGS): Break out -I flag... + (CPPFLAGS): ...into this new variable. + (LDFLAGS): Rename... + (LDLIBS): ...to this, which is expected to hold -l flags. + (top_builddir): New variable. + (EMACS): Define in terms of it. + (.PHONY): Add clean, distclean, and perf targets. + (have-libcheck): Remove redundant target. All uses updated. + (itree-tests.o): Remove redundant dependency on its source file. + (itree-tests): Remove redundant (and uncompilable) rule. + + * test/manual/noverlay/check-sanitize.sh: Use /usr/bin/env. Add + copyright notice. Enable pipefail option, to propagate itree-tests + exit status to caller. Fix typo in usage message. Strip less + information from Check's error messages. + + * test/manual/noverlay/emacs-compat.h: Add copyright notice. + Include stdlib.h. + (emacs_abort, eassert): Consistently use EXIT_FAILURE. + (eassume): Define when necessary. + + * test/manual/noverlay/itree-tests.c: Add copyright notice. Include + standard headers before third-party ones. Use most narrowly + applicable ck_assert* macro for the types being checked, + e.g. ck_assert_ptr_* macros for pointer values. Replace removed + names and APIs with current ones, e.g. the itree_node field 'color' + is now called 'red'. Ensure preconditions of itree API are + satisfied before use, e.g. itree_node otick being set appropriately + before insertion, or global iterator being initialized + before (implicit) use (bug#58976). Make all functions static. + (DEF_TEST_SETUP): Remove all instances, replacing with... + (test_insert1_setup, test_insert2_setup, test_remove1_setup) + (test_remove2_setup): ...these new test fixtures. + (A, B, C, D, E, N_05, N_10, N_15, N_20, N_30, N_40, N_50, N_70) + (N_80, N_90, N_85, N_95): Define as static variables rather than + macros. + (test_get_tree4): Remove, inlining salient parts. + (shuffle): Move closer to users. + (test_create_tree): Accept itree_nodes as argument instead of + dynamically allocating them. All callers changed. + (FOREACH): Remove unused macro. + (N_BEG, N_END): Define in terms of itree_node_begin and + itree_node_end, respectively. + (test_gap_insert_1, test_gap_insert_2, test_gap_insert_3) + (test_gap_insert_5, test_gap_insert_7, test_gap_insert_11): Use + test_setup_gap_node_noadvance. + (basic_suite): Group unit tests into test cases and fixtures. Run + previously forgotten test_insert_14. + (main): Run suite as CK_ENV to allow specifying desired verbosity in + the environment. + +2022-11-04 Po Lu + + Avoid using too up-to-date values when restoring valuators + + * src/xterm.c (xi_has_scroll_valuators): New function. + (xi_handle_device_changed): If the device changed event provides + scroll valuators, then use the values in there. (bug#58980) + +2022-11-04 Juri Linkov + + * lisp/tab-bar.el (tab-bar-fixed-width): New user option. + + (tab-bar-fixed-width-max): New user option. + (tab-bar-fixed-width-min): New variable. + (tab-bar-fixed-width-faces): New variable. + (tab-bar--fixed-width-hash): New function. + (tab-bar-make-keymap-1): Use 'tab-bar-fixed-width'. + + https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg02067.html + +2022-11-04 Stefan Kangas + + Merge from origin/emacs-28 + + 8cae9d8bd8 ; * doc/emacs/search.texi (Lax Search): Improve wording. ... + e01e8a8f84 ; * lisp/dired-aux.el (dired-show-file-type): Doc fix. + +2022-11-04 Yuan Fu + + Fix treesit-parser-set-included-ranges + + Track whether a parser has ranges set ourselves. See comment in + Ftreesit_parser_included_ranges for detail. + + * src/treesit.c (make_treesit_parser): Initialize has_range. + (Ftreesit_parser_set_included_ranges): Set has_range. Fill docstring. + (Ftreesit_parser_included_ranges): Check has_range. + * src/treesit.h (Lisp_TS_Parser): Add has_range. + +2022-11-03 Stefan Monnier + + itree.c: Minor tightening + + * src/itree.c (iter): Initialize to NULL. + (init_itree): Make sure it's not allocated before we overwrite it. + (itree_insert_gap): Tweak the end-loop. + +2022-11-03 Stefan Monnier + + itree: Reproduce markers's behavior more faithfully (bug#58928) + + The most obvious problem was the lack of support for + `insert-before-markers`, but the behavior was also different in a few + other cases. + + * src/itree.h (itree_insert_gap): + * src/itree.c (itree_insert_gap): Add `before_markers` arg. + * src/lisp.h (adjust_overlays_for_insert): + * src/buffer.c (adjust_overlays_for_insert): Add `before_markers` arg. + + * src/insdel.c (adjust_markers_for_replace, adjust_markers_for_insert) + (adjust_markers_for_delete): Adjust overlays directly from here. + (insert_1_both, insert_from_string_1, insert_from_gap) + (insert_from_buffer_1, adjust_after_replace, replace_range) + (replace_range_2, del_range_2): Don't adjust overlays explicitly here + any more. + + * test/src/buffer-tests.el (test-overlay-insert-before-markers-empty) + (test-overlay-insert-before-markers-non-empty): New tests. + +2022-11-03 Dmitry Gutov + + project-buffers: Describe the default implementation + + * lisp/progmodes/project.el (project-buffers): + Describe what the default implementation is doing (bug#58784). + +2022-11-03 Dmitry Gutov + + project-kill-buffer-conditions: Skip Gnus modes as well + + * lisp/progmodes/project.el (project-kill-buffer-conditions): + Skip Gnus modes as well (bug#58839). + +2022-11-03 Dmitry Gutov + + project-kill-buffer-conditions: Skip hidden ones + + * lisp/progmodes/project.el (project-kill-buffer-conditions): + Make exception for "hidden" buffers (bug#58839). + +2022-11-03 Po Lu + + Fix initialization of scroll valuator emacs_value + + * src/xterm.c (xi_handle_device_changed): Initialize emacs_value + to 0, not DBL_MIN. (bug#58980) + +2022-11-03 Philip Kaludercic + + Autoload all entry functions + +2022-11-03 Yuan Fu + + Add contextual tree-sitter font-lock to ts-mode and js-mode + + * lisp/progmodes/js.el (js--treesit-font-lock-settings) + * lisp/progmodes/ts-mode.el (ts-mode--font-lock-settings): Capture + comment and strings. Add empty lines. + +2022-11-03 Jim Porter + + Only strip newlines when stringifying a value for Eshell + + * lisp/eshell/esh-util.el (eshell-stringify): Use 'string-trim-right' + instead of stripping the last character of the result of + 'pp-to-string' (bug#58810). + + * test/lisp/eshell/esh-util-tests.el: New file. + +2022-11-03 Yuan Fu + + Minor change to tree-sitter imenu function of js-mode + + If someone don’t like the labels, they can set them to empty strings. + + * lisp/progmodes/js.el (js--treesit-imenu-type-alist): Add space. + (js--treesit-imenu-label): Remove space. + +2022-11-03 Philip Kaludercic + + * lisp/emacs-lisp/package-vc.el (package-vc-version): Use main file + +2022-11-03 Philip Kaludercic + + Add command 'package-vc-checkout' + + * doc/emacs/package.texi: Document feature. + * etc/NEWS: Mention feature. + * lisp/emacs-lisp/package-vc.el (package-vc-clone): Extract + functionality out of 'package-vc-unpack'. + (package-vc-unpack): Extract functionality out to 'package-vc-clone'. + (package-vc-checkout): Add command. + +2022-11-03 Paul Eggert + + Improve suppression of bogus macOS warnings + + * configure.ac: On macOS, always use -Wno-deprecated-declarations, + as the false alarms appear even if --disable-gcc-warnings is given + (Bug#58966). + +2022-11-03 Juri Linkov + + Fix overlays order in Flyspell (bug#58970) + + Flyspell relies on the sorting order of overlays from 'overlays-in' + that returned the overlays sorted by decreased 'overlay-start'. + But after the recent merge of the noverlay branch, the order was reversed. + So need to change the order back to the expected by Flyspell. + + * lisp/textmodes/flyspell.el (flyspell-auto-correct-previous-word): + Sort overlays returned from 'overlays-in' descending by 'overlay-start'. + +2022-11-03 Basil L. Contovounesios + + Port interval trees to --enable-checking=structs + + Some names under the interval_* namespace were renamed under the + itree_* namespace in commits: + + 0. f421b58db5 of 2022-10-19 + "Prefix all itree.h type names with itree_". + 1. 37a1145410 of 2022-10-19 + "Rename all exported itree.h functions with the itree_ prefix" + + Further, some values still referenced in commentary were removed in + commits: + + 2. 258e618364 of 2022-10-17 + "Delete the itree_null sentinel node, use NULL everywhere." + 3. 2c4a3910b3 of 2022-10-02 + "itree: Use a single iterator object" + + * src/emacs.c (main): Allocate global itree iterator once and for + all. + * src/alloc.c (mark_overlay): + * src/buffer.c (set_overlays_multibyte): + * src/itree.c (itree_destroy): Update commentary. + (interval_stack_ensure_space, itree_insert_gap): Prefer + unsigned-to-unsigned comparisons over signed-to-unsigned. + (interval_stack_push_flagged, interval_tree_insert) + (interval_tree_contains, itree_iterator_start) + (itree_iterator_finish, itree_iterator_next, itree_iterator_narrow): + Improve assertions. + (itree_init): Rename... + (init_itree): ...to this, for consistency with other global init + functions. + (itree_create): Stop leaking a global iterator allocation on each + call. + (interval_tree_init): Complete renames of + interval_tree -> itree_tree and interval_tree_clear -> itree_clear. + (interval_tree_remove_fix): Fix indentation. + * src/itree.h: Declare init_itree. + (ITREE_FOREACH): Fix typo in commentary. + + * src/pdumper.c [CHECK_STRUCTS] + (dump_interval_node): Use the correct name in the HASH condition + and #error message. + (dump_overlay, dump_buffer): Update HASH (bug#58975). + +2022-11-03 Juanma Barranquero + + * src/gnutls.c (Fgnutls_available_p): Avoid duplicating capabilities. + +2022-11-03 Stefan Kangas + + Prefer defvar-keymap in profiler.el + + * lisp/profiler.el (profiler-report-mode-map): Prefer + defvar-keymap. + +2022-11-03 Po Lu + + Further simplify valuator reset code + + * src/xterm.c (xi_reset_scroll_valuators_for_device_id): Minor + style adjustments. + (handle_one_xevent): Don't check frames; reset on all XI_Enter + and XI_Leave events. + +2022-11-03 Po Lu + + More style fixes to tree-sitter code + + * src/treesit.c (treesit_node_uptodate_p): + * src/treesit.h: Fix coding style. + +2022-11-03 Po Lu + + Minor fixes to last tree-sitter change + + * src/treesit.c (treesit_find_override_name): Initialize + variable. + (Ftreesit_query_expand): Revert change to behavior. + +2022-11-03 Po Lu + + Stylistic changes to tree-sitter code + + * src/treesit.c (treesit_find_override_name) + (treesit_load_language_push_for_each_suffix, treesit_load_language) + (Ftreesit_langauge_available_p, treesit_record_change) + (make_treesit_parser, make_treesit_node, make_treesit_query) + (Ftreesit_parser_create, Ftreesit_parser_delete, Ftreesit_parser_list) + (treesit_check_range_argument, Ftreesit_parser_included_ranges) + (Ftreesit_node_start, Ftreesit_node_end, Ftreesit_node_check) + (Ftreesit_node_child_by_field_name, Ftreesit_pattern_expand) + (Ftreesit_query_expand, treesit_predicates_for_pattern) + (treesit_predicate_capture_name_to_text, treesit_predicate_equal) + (treesit_predicate_match, treesit_eval_predicates) + (Ftreesit_query_capture, treesit_search_dfs, treesit_build_sparse_tree) + (syms_of_treesit): Use FOR_EACH_TAIL (or FOR_EACH_TAIL_SAFE where not + obviously safe), and check list heads and tails correctly; fix coding + style of various constructs, especially: + + variable = + mumble (frob (bar), (foo () + bar ()) + (baz () + quux ())) + + which should actually be + + variable + = mumble (frob (bar), (foo () + bar ()) + (baz () + quux ())) + + and + + foo = + mumble (frob (bar), 0) + + (foo () + bar ()) + + (baz () + quux ()) + + which should actually be + + foo = (mumble (frob (bar), 0) + + (foo () + bar ()) + + (baz () + quux ())) + + * src/treesit.h: Make declaration coding style consistent. + +2022-11-03 Gerd Möllmann + + Suppress deprecation warnings on macOS (bug#58966) + + * configure.ac (CHECK_LISP_OBJECT_TYPE): Add + -Wno-deprecated-declarations for darwin. + +2022-11-03 Eli Zaretskii + + Fix 'text-property-search-backward' with 1-char long properties + + * lisp/emacs-lisp/text-property-search.el + (text-property--find-end-backward): Don't miss the end of + text-property value at point. This fixes searches backward when + the property is on a single character position. (Bug#58937) + +2022-11-02 Yuan Fu + + Check for outdated tree-sitter node when printing + + * src/print.c (print_vectorlike): Check for outdated node. + * src/treesit.c (treesit_check_node): Use the new function. + (treesit_node_uptodate_p): New function. + * src/treesit.h: Declare new function. + +2022-11-02 Yuan Fu + + Pass region start and end to tree-sitter fontification functions + + * doc/lispref/modes.texi (Parser-based Font Lock): Update manual. + * lisp/progmodes/js.el (js--fontify-template-string) + * lisp/progmodes/python.el (python--treesit-fontify-string): Update + function to only fontify within the region. + * lisp/treesit.el (treesit-font-lock-rules): Update docstring. + (treesit-font-lock-fontify-region): Pass START and END to + fontification functions. + +2022-11-02 Yuan Fu + + Add handling of contextual entities in tree-sitter font-lock + + * lisp/progmodes/python.el: Remove function. + (python--treesit-settings): Capture contextual node. + * lisp/treesit.el (treesit--set-nonsticky): + (treesit-font-lock-contextual-post-process): New functions. + (treesit-font-lock-fontify-region): Change local variable START and + END to NODE-START and NODE-END, handle special capture name + "contextual". + * doc/lispref/modes.texi (Parser-based Font Lock): Update manual. + +2022-11-02 Paul Eggert + + Initialize child signal handling before posix_spawn too. + + Problem reported by Tino Calancha (Bug#58960). + * src/callproc.c (call_process): Initialize SIGCHLD handling + before possibly creating a child with emacs_span. This need not + be in the critical section that calls emacs_spawn, so do it + outside the critical section. + * src/process.c (child_signal_init): Now extern. + +2022-11-02 Yuan Fu + + Change signature of tree-sitter font-lock functions + + Change from + + (START END NODE OVERRIDE &rest _) + + to + + (NODE OVERRIDE &rest _) + + START and END aren't used frequently enough to justify. If a + fontification function needs them, it can get them from NODE. + + * doc/lispref/modes.texi (Parser-based Font Lock): Update manual. + + * lisp/progmodes/js.el (js--fontify-template-string) + * lisp/progmodes/python.el (python--treesit-fontify-string) + (python--treesit-fontify-string-end): Change signature. + + * lisp/treesit.el (treesit-font-lock-rules): Update docstring. + (treesit-font-lock-fontify-region): Remove START and END arguments. + +2022-11-02 Juri Linkov + + Add the parameter :noquery to open-network-stream (bug#58948) + + * doc/lispref/processes.texi (Network): Add :noquery for open-network-stream. + + * lisp/net/network-stream.el (open-network-stream): Pass the + parameter :noquery to make-network-process. Doc fix. + + * lisp/progmodes/eglot.el (eglot--connect): Pass `:noquery t' to + eglot--inferior-bootstrap to use in open-network-stream call, like + `:noquery t' is passed to make-process in other places. + +2022-11-02 Stefan Kangas + + * lisp/man.el (Man-mode-map): Prefer defvar-keymap. + +2022-11-02 Philip Kaludercic + + Track file name in 'package--downloads-in-progress' + + * lisp/emacs-lisp/package.el (package--download-one-archive): Move + 'cl-pushnew' call from 'package--download-one-archive' and cons file + name onto the archive. + (package--download-one-archive): Cons the file name onto the archive. + (package--download-and-read-archives): Remove 'cl-pushnew' call. + +2022-11-02 Po Lu + + Improve commentary in some parts of xterm.c + + * src/xterm.c (x_probe_xfixes_extension): Rename to + `x_fixes_pointer_blanking_supported', as fixes is now used for + selection tracking as well. All callers changed. + (x_focus_changed): Document where this code is used. + +2022-11-02 Paul Eggert + + Remove unused local in simple_search + + * src/search.c (simple_search): Remove unused local. + +2022-11-01 Stefan Monnier + + src/buffer.c: Fix interaction between overlays & indirect buffers (bug#58928) + + * src/buffer.c (adjust_overlays_for_insert) + (adjust_overlays_for_delete): Repeat for all buffers sharing the same text. + + * src/itree.c (itree_insert_gap, itree_delete_gap): Allow an empty tree. + + * test/src/buffer-tests.el (buffer-tests--overlays-indirect-bug58928): + New test. + +2022-11-01 Dmitry Gutov + + project-switch-project: Avoid altering default-directory in cb + + * lisp/progmodes/project.el (project-switch-project): + Avoid altering default-directory in the current buffer, even + temporarily (bug#58784). + +2022-11-01 Dmitry Gutov + + vc-svn-ignore-completion-table: Ignore empty lines + + * lisp/vc/vc-svn.el (vc-svn-ignore-completion-table): + Make sure to ignore empty lines (bug#58889). + +2022-11-01 Yuan Fu + + Fix string fontification for tree-sitter python-mode + + Now when user inserts a ending quote, the whole string is ganranteed + to be refontified and redisplayed. + + * lisp/progmodes/python.el (python--treesit-fontify-string): Change + docstring, now it's called on the leading quote. + (python--treesit-fontify-string-end): New function. + (python--treesit-settings): Capture both leading and ending quote in a + string. + +2022-11-01 Yuan Fu + + Don't print buffer when printing tree-sitter node and parser + + Additionally, print node's position in buffer. + + * doc/lispref/parsing.texi (Retrieving Node): Reflect this change in + manual. + * src/print.c (print_vectorlike): Remove printing of buffer, add + printing of node position. + +2022-11-01 Yuan Fu + + Allow user to add/remove tree-sitter font-lock features + + * lisp/treesit.el (treesit-font-lock-recompute-features): Add + ADD-LIST, REMOVE-LIST argument. + +2022-11-01 Yuan Fu + + Query on the root node in tree-sitter font-lock + + Rather than querying on the smallest node that spans START to END, we + query on the root node between START to END. + + * lisp/progmodes/python.el (python--treesit-fontify-string): Accept + the string rather than the quote node. + (python--treesit-settings): Capture the string rather than the quote + node. + * lisp/treesit.el (treesit-font-lock-fontify-region): Query the root + node rather than the smallest node. + +2022-11-01 Gregory Heytings + + Add a script to ease bisecting. + + * admin/git-bisect-start: New script. + + * admin/notes/repo (Bisecting): Mention the script. + + * admin/emake: Add a Copyright blurb. + +2022-11-01 Michael Albinus + + * lisp/net/dbus.el (dbus-debug): Declare. (Bug#58865) + +2022-11-01 Philip Kaludercic + + Ensure 'package-vc-update' runs 'package-vc-unpack-1' only once + + * lisp/emacs-lisp/package-vc.el (package-vc-update): Use + 'vc-sourced-packages-list' and other hacks. + +2022-11-01 Po Lu + + * src/xterm.c (x_term_init): Fix last change. + +2022-11-01 Po Lu + + Fix leak on Lucid build + + * src/xterm.c (x_term_init): Rectify wrong fix for bug#18403. + +2022-11-01 Stefan Kangas + + Merge from origin/emacs-28 + + 1862df834c ; * src/search.c (Fmatch_data): Doc fix. + 15fc5225b1 ; * lisp/whitespace.el (whitespace-trailing): Fix a typo. + 9f3c896f7c ; * doc/emacs/text.texi (Quotation Marks): Typo fix. (Bug... + + # Conflicts: + # src/search.c + +2022-11-01 Gerd Möllmann + + Prevent a buffer-overflow (bug#58850) + + * src/print.c (print_vectorlike): Don't use sprintf. + +2022-11-01 Stefan Kangas + + Update publicsuffix.txt from upstream + + * etc/publicsuffix.txt: Update from + https://publicsuffix.org/list/public_suffix_list.dat + dated 2022-10-29 17:48:52 UTC. + +2022-11-01 Po Lu + + Fix leaks of XImage structures in image.c + + * src/image.c (image_clear_image, lookup_image): Fix coding + style. + (x_destroy_x_image): Remove unnecessary assertion. Call + XDestroyImage, since otherwise only the image data is freed. + (image_from_emacs_colors): Rename variables to make more sense. + +2022-10-31 Stephen Leake + + Fix eglot-shutdown-all: Match current eglot-shutdown signature + +2022-10-31 Yuan Fu + + Use treesit-fontify-with-override in tree-sitter functions + + * lisp/progmodes/js.el (js--fontify-template-string) + * lisp/progmodes/python.el (python--treesit-fontify-string): Use + treesit-fontify-with-override. + +2022-10-31 Yuan Fu + + Add an argument OVERRIDE to tree-sitter font-lock functions + + * doc/lispref/modes.texi (Parser-based Font Lock): Reflect this change + in manual. + * lisp/progmodes/js.el (js--fontify-template-string): Add _OVERRIDE + argument. + * lisp/progmodes/python.el (python--treesit-fontify-string): Add + _OVERRIDE argument. + * lisp/treesit.el (treesit-font-lock-rules): Update docstring. + (treesit-fontify-with-override): New function. + (treesit-font-lock-fontify-region): Extract out into + treesit-fontify-with-override. + +2022-10-31 Michael Albinus + + Fix tramp-handle-file-newer-than-file-p + + * lisp/net/tramp.el (tramp-handle-file-newer-than-file-p): Don't use + fractions of seconds. (Bug#58842) + +2022-10-31 Stefan Kangas + + Prefer defvar-keymap in cus-edit.el + + * lisp/cus-edit.el (custom-mode-map, custom-mode-link-map): Prefer + defvar-keymap. + +2022-10-31 Stefan Kangas + + * lisp/emacs-lisp/multisession.el: Add Commentary. (Bug#58845) + + * lisp/vcursor.el (vcursor-map): Prefer defvar-keymap. + +2022-10-31 Philip Kaludercic + + Allow specifying and pinning source packages to be installed + + * lisp/emacs-lisp/package-vc.el (package-vc--select-packages): Add + custom setter for 'package-vc-selected-packages'. + (package-vc-selected-packages): Add user option. + +2022-10-31 Yuan Fu + + Use tree-sitter for font-lock's syntactic function (optionally) + + Before this change, we rebind font-lock-fontify-region-function and + call font-lock's function in tree-sitter's function, and the order of + fontification is tree-sitter, font-lock syntax, font-lock regexp. + + Now we make font-lock's syntax function customizable and replace it + with tree-sitter's function, and the order of fontification is + tree-sitter, font-lock regexp. + + * doc/lispref/modes.texi (Parser-based Font Lock): Reflect the change + in manual. + * lisp/font-lock.el (font-lock-fontify-syntactically-function): New + variable. + (font-lock-default-fontify-region): Call + font-lock-fontify-syntactically-function rather. + (font-lock-fontify-syntactically-region): Rename to + font-lock-default-fontify-syntactically + (font-lock-default-fontify-syntactically): Rename to this. + + * lisp/treesit.el (treesit-font-lock-fontify-region): Don't call + font-lock functions. + (treesit-font-lock-enable): Remove this function. It is not used even + before this change. + (treesit-major-mode-setup): Instead of binding + font-lock-fontify-region-function, now bind to + font-lock-fontify-syntactically-function. And we can let font-lock do + it's thing. + +2022-10-31 Yuan Fu + + Improve python tree-sitter's string fontification + + * lisp/progmodes/python.el (python--treesit-fontify-string): Handle + not only f-strings, but also docstrings, and NODE is now the last + quote rather than the whole string. + (python--treesit-settings): Use python--treesit-fontify-string for + every occasion. + +2022-10-30 Yuan Fu + + Add tresit--font-lock-verbose + + * lisp/treesit.el (tresit--font-lock-verbose): New variable. + (treesit-font-lock-fontify-region): Take tresit--font-lock-verbose + into account. Return jit-lock-bounds. + +2022-10-30 Yuan Fu + + Set jit-lock-contextually in treesit-major-mode-setup + + * lisp/treesit.el (treesit-major-mode-setup): Set jit-lock-contextually. + +2022-10-30 Dmitry Gutov + + Fix semantic-symref-perform-search when dir contains a space + + * lisp/cedet/semantic/symref/grep.el (semantic-symref-grep--local-dir): + New variable. + (semantic-symref-perform-search): Use it. And use "." when + expanding the template to substitute for the current dir. + (semantic-symref-parse-tool-output-one-line): Use it (bug#55016) + +2022-10-30 Dmitry Gutov + + Speed up vc-default-checkin-patch a little + + * lisp/vc/vc.el (vc-default-checkin-patch): Drop some + 'revert-buffer' calls to speed up the process a little (bug#52349). + +2022-10-30 Stefan Kangas + + Prefer defvar-keymap in simula.el + + * lisp/progmodes/simula.el (simula-mode-map): Prefer + defvar-keymap. + +2022-10-30 Philip Kaludercic + + Merge remote-tracking branch 'origin/master' into feature/package+vc + +2022-10-30 Juri Linkov + + * lisp/tab-line.el: Allow user-defined cache-key function (bug#57848) + + (tab-line-cache-key-default): New function. + (tab-line-cache-key-function): New variable. + (tab-line-format): Funcall tab-line-cache-key-function. + +2022-10-30 Juri Linkov + + * lisp/tab-line.el: Escape %-constructs in tab names (bug#57848) + + (tab-line-tab-name-format-default): Replace % with %% in tab name + to escape %-constructs from processing by mode-line-format. + +2022-10-30 Gregory Heytings + + Merge master into feature/improved-locked-narrowing. + +2022-10-30 Philip Kaludercic + + Have 'last-change' accept a line number instead of a range + + * lisp/emacs-lisp/package-vc.el (package-vc-release-rev): Use new + signature. + * lisp/vc/vc-git.el (vc-git-last-change): Update signature + * lisp/vc/vc.el (vc-default-last-change): Update signature and use + 'annotate-command'. + +2022-10-30 Philip Kaludercic + + Display a message after installing source packages + + * lisp/emacs-lisp/package-vc.el (package-vc-unpack-1): Print message + and return t. + +2022-10-30 Philip Kaludercic + + Prefer "Package-Version" over "Version" if available + + * lisp/emacs-lisp/package-vc.el (package-vc-release-rev): Search for + both in sequence. + +2022-10-30 Stefan Monnier + + * lisp/url/url-util.el (url-insert-entities-in-string): Simplify + +2022-10-30 Stefan Monnier + + dom-print: Fix missing entities quoting + + Also use `?\s` for the space character. + + * lisp/dom.el (dom-print): Properly quote special characters to avoid + generating invalid HTML/XML. + (dom-tag, dom-attributes, dom-children, dom-node) + (dom-add-child-before): Simplify. + (dom-set-attribute): Add at beginning rather than at end (slightly + more efficient and less destructive). + +2022-10-30 Stefan Kangas + + elide-head: Make trailing "/" in URL optional + + * lisp/elide-head.el (elide-head-headers-to-hide): Make trailing + "/" in the gnu.org URL optional for the GPL. + * test/lisp/elide-head-tests.el + (elide-head--test-headers-to-hide/gpl3-5): New test. + +2022-10-30 Damien Cassou + + Make previous-buffer and next-buffer repeatable + + * lisp/bindings.el (buffer-navigation-repeat-map): Add new map. + * lisp/bindings.el (previous-buffer, next-buffer): Mark as + repeatable. (Bug#58800) + +2022-10-30 Philip Kaludercic + + Extract last source package release from local VCS data + + * lisp/emacs-lisp/package-vc.el (package-vc-archive-spec-alist): + Unmention :release-rev + (package-vc-desc->spec): Fall back on other archives if a + specification is missing. + (package-vc-main-file): Add new function, copying the behavior of + elpa-admin.el. + (package-vc-generate-description-file): Use 'package-vc-main-file'. + (package-vc-unpack): Handle special value ':last-release'. + (package-vc-release-rev): Add new function using 'last-change'. + (package-vc-install): Pass ':last-release' as REV instead of a + release. + * lisp/vc/vc-git.el (vc-git-last-change): Add Git 'last-change' + implementation. + * lisp/vc/vc.el (vc-default-last-change): Add default 'last-change' + implementation. + + This attempts to replicate the behavior of elpa-admin.el's + "elpaa--get-last-release-commit". + +2022-10-30 Damien Cassou + + Make winner key sequences repeatable in repeat-mode + + * lisp/winner.el (winner-repeat-map): New variable. + (winner-undo, winner-redo): Put 'repeat-map' property with + 'winner-repeat-map'. (Bug#58799) + +2022-10-30 Stefan Kangas + + Prefer defvar-keymap in etags.el + + * lisp/progmodes/etags.el (select-tags-table-mode-map): Prefer + defvar-keymap. + +2022-10-30 Visuwesh + + Fix set-language-info-alist when multiple PARENTS are given + + * lisp/international/mule-cmds.el (set-language-info-setup-keymap): + Function factored out from... + (set-language-info-alist): ...here. Do not mess up the keymaps when + multiple parents are given in PARENTS. (Bug#58376) + +2022-10-30 Juri Linkov + + * lisp/tab-bar.el: Minibuffer follows selected tabs (bug#58728) + + (tab-bar-select-tab): Set set-window-configuration + arg DONT-SET-MINIWINDOW to t. Reselect the previously active minibuffer + and unselect unnecessarily selected minibuffer. + (tab-bar-history-back, tab-bar-history-forward): Set set-window-configuration + arg DONT-SET-MINIWINDOW to t. + +2022-10-30 Po Lu + + Plug big leaks upon display IO error + + Frame GCs are still leaked, but there is nothing that can be + done in that case because the display connection is dead. + + * src/xterm.c (x_delete_terminal): Always free xkb desc and + modmap. + +2022-10-29 Yuan Fu + + Separate python tree-sitter fontification into features + + Level 1: comment string function-name class-name + Level 2: keyword builtin constant type + Level 3: assignment decorator escape-sequence string-interpolation + + * lisp/progmodes/python.el (python--treesit-settings): Separate. + (python-mode): Set features. + +2022-10-29 Yuan Fu + + Fix byte-compile warning in treesit.el + + Originally treesit-simple-indent-presets was + + '((parent-is . (lambda (type) + `(lambda (n p b) + (equal (treesit-node-type p) + ,type))))) + + Then I changed it to + + `((parent-is . ,(byte-compile + (lambda (type) + (lambda (n p b) + (equal (treesit-node-type p) + type)))))) + + but that generates "function already compiled" warning when + byte-compiling treesit.el. The latest form shouldn't have any problem + anymore. + + * lisp/treesit.el (treesit-simple-indent-presets): Change byte-compile + to plain evaluation. + +2022-10-29 Yuan Fu + + Not return noindent in treesit-indent + + * lisp/treesit.el (treesit-indent): Don't return noindent. + (treesit-defun-type-regexp): Return (nil . nil) rather than nil. + +2022-10-29 Yuan Fu + + Add treesit-node-top-level + + Merge treesit-node-top-level-p and treesit--find-top-level-match into + treesit-node-top-level. + + * doc/lispref/parsing.texi (Retrieving Node): Add manual entry for it. + * lisp/progmodes/js.el (js--treesit-imenu-1): Replace + treesit-node-top-level-p with treesit-node-top-level. + * lisp/treesit.el (treesit-node-top-level-p) + (treesit--find-top-level-match): Remove functions. + (treesit-node-top-level): New function. + * lisp/treesit.el (treesit-beginning-of-defun) + (treesit-end-of-defun): Replace treesit--find-top-level-match with + treesit-node-top-level. + +2022-10-29 Yuan Fu + + Reflect recent change in tree-sitter manual sections + + * doc/lispref/modes.texi (Parser-based Font Lock): + treesit-font-lock-enable is replaced by treesit-major-mode-setup. + * doc/lispref/modes.texi (Parser-based Indentation): Mention + treesit-major-mode-setup, + * doc/lispref/parsing.texi (Tree-sitter major modes): Remove + treesit-mode and global-treesit-mode, explain setup guideline. + +2022-10-29 Yuan Fu + + Fix parent-bol preset for tree-sitter indent + + * lisp/treesit.el (treesit-simple-indent-presets): Return point rather + than column. + +2022-10-29 Yuan Fu + + Keep cursor position in treesit-indent + + * lisp/treesit.el (treesit-indent): Create a marker and jump back to + that marker after indentation. + +2022-10-29 John Wiegley + + Merge pull request from andreyorst/face-spec-set-third-argument + + GitHub-reference: https://github.com/jwiegley/use-package/issues/1009 + +2022-10-29 Yuan Fu + + Remove hack in js-mode's tree-sitter indentation rules + + * lisp/progmodes/js.el (js--treesit-backward-up-list): Remove + function. + (js--treesit-indent-rules): Replace with new rule. + +2022-10-29 Yuan Fu + + Refine handling of node at point in treesit-indent + + * doc/lispref/modes.texi (Parser-based Indentation): Document the + semantic clearly. + * lisp/treesit.el (treesit-simple-indent-presets): Replace with + current-indentation. + (treesit--indent-1): Now NODE always starts at BOL, and parent is + always the smallest node above NODE that spans BOL. + (treesit-indent): Don't use save-excurtion, no one else does. + +2022-10-29 Yuan Fu + + Fix treesit-indent-region + + * lisp/treesit.el (treesit-simple-indent-presets): Remove extra comma. + (treesit--indent-1): Return (ANCHOR . OFFSET) instead of column. + (treesit-indent): Accept (ANCHOR . OFFSET) from treesit--indent-1. + (treesit--indent-region-batch-size): Reduce to 400. + (treesit-indent-region): Put a marker on each line's ANCHOR and + compute the indentation with ANCHOR + OFFSET. Precomputing column + gives wrong indentation when the ANHOR line doesn't have correct + indent yet. + +2022-10-29 Eli Zaretskii + + Set 'native-comp-debug' to zero on MS-Windows + + * lisp/emacs-lisp/comp.el (native-comp-debug): Don't emit debug + symbols on MS-Windows. The default was originally made 1 because + without that, C backtraces on Windows would not show + natively-compiled functions correctly, or would even stop short of + reaching the topmost call frame. But that turned out to be due to + a bug in GDB, which was meanwhile fixed in GDB 12. So we can now + reset the value back to zero, and gain smaller *.eln files on + MS-Windows. + +2022-10-29 Stefan Kangas + + Prefer defvar-keymap in ps-mode.el + + * lisp/progmodes/ps-mode.el (ps-mode-map, ps-run-mode-map): Prefer + defvar-keymap. + +2022-10-29 Alan Mackenzie + + Fix the subr-arity returned by native compiled functions with lots of args + + This fixes bug #58739. Make subr-arity return, e.g., (12 . 12) rather than + (12 . many) for a function with a fixed number of arguments more than 8. + + * lisp/emacs-lisp/comp.el (comp-prepare-args-for-top-level): Only return a cdr + of 'many when there are &rest arguments. + + * src/eval.c (eval_sub): Also check for a fixed number of args over 8 when + using the nargs + *args calling convention. + (funcall_subr): Also check numargs <= 8 before using the fixed args calling + convention. Include the case numargs > 8 in the aMany calling convention. + + * src/lisp.h (DEFUN): Amend the comment about MANY. + +2022-10-29 Eli Zaretskii + + Make Dired header clickable on non-Posix systems as well + + * lisp/dired.el (dired--make-directory-clickable): Support + MS-Windows and MS-DOS absolute directory names with drive letters + and UNCs. (Bug#21973) + +2022-10-29 Eli Zaretskii + + Display the Dired buffer as unmodified initially + + * lisp/dired.el (dired-readin): Make sure a newly-created Dired + buffer is shown as unmodified. (Bug#58863) + +2022-10-29 Andrey Listopadov (tiny change) + + Allow passing the SPEC-TYPE argument via :custom-face + + GitHub-reference: https://github.com/jwiegley/use-package/issues/1008 + +2022-10-29 Po Lu + + Fix another GCC warning + + * src/nsterm.m (ns_draw_glyphless_glyph_string_foreground): Fix + another compiler warning. + +2022-10-29 Po Lu + + Fix crash destroying NS frame tool bar + + * src/nsterm.m (ns_draw_glyphless_glyph_string_foreground): Work + around silly GCC bug causing splurious warnings. + ([EmacsWindow dealloc]): Detach tool bar before dealloc'ing + window. (bug#58857) + +2022-10-29 Alan Mackenzie + + c-get-fontification-context: Refine the last non-default arm of the cond + + This fixes bug #58772. + + * lisp/progmodes/cc-fonts.el (c-get-fontification-context): Make the function + return (decl . nil) when MATCH-POS is in the second paren list of something + like DEFUN (..) (..). Tidy up untidy code with save-excursion's for greater + accuracy. Set a c-type text property value c-decl-arg-start to speed up + future calls. Reindent the entire function. + +2022-10-29 Stefan Kangas + + Prefer defvar-keymap in help.el + + * lisp/help.el (help-key): New function. + (help-map): Prefer defvar-keymap. + +2022-10-28 Yuan Fu + + Remove test of treesit-language-at + + Because now it just calls a user-supplied function rather than doing + any work by itself. + + * test/src/treesit-tests.el (treesit-parser-supplemental): Remove the + test. + +2022-10-28 Stefan Kangas + + Prefer defvar-keymap in page-ext.el + + * lisp/textmodes/page-ext.el (pages--ctl-x-ctl-p-map) + (pages-directory-mode-map): Prefer defvar-keymap. + +2022-10-28 Yuan Fu + + Byte-compile treesit-simple-indent-presets + + * lisp/treesit.el (treesit-simple-indent-presets): Byte-compile these + functions. + +2022-10-28 Po Lu + + Fix last change + + * src/itree.c (struct itree_iterator): + (itree_iterator_next): Fix some fields and const confusion. + +2022-10-28 Yuan Fu + + Add treesit-indent-region + + Now indenting a large buffer is reasonably fast. + + * lisp/treesit.el (treesit-indent): Move meat to treesit--indent-1. + (treesit--indent-1) + (treesit-indent-region): New functions. + (treesit-major-mode-setup): Setup indent-region-function. + +2022-10-28 Po Lu + + Fix function declarations in itree headers + + * src/itree.h: Make all declarations `extern'. + +2022-10-28 Po Lu + + Fix coding style of latest feature branch merge + + * src/itree.c (interval_stack_ensure_space) + (interval_stack_push_flagged, struct itree_iterator) + (struct check_subtree_result, check_subtree, check_tree) + (itree_newlimit, interval_tree_inherit_offset) + (interval_tree_propagate_limit, itree_node_init, itree_node_begin) + (itree_node_end, itree_create, interval_tree_rotate_left) + (interval_tree_rotate_right, interval_tree_insert_fix) + (interval_tree_insert, itree_insert, itree_node_set_region) + (interval_tree_contains, interval_tree_subtree_min) + (interval_tree_remove_fix, interval_tree_replace_child) + (interval_tree_transplant, itree_remove, itree_iterator_start) + (itree_insert_gap, itree_delete_gap, interval_node_intersects) + (itree_iterator_next, itree_iterator_narrow): Tabify. Fix + comment and code coding style. + +2022-10-28 Po Lu + + Include Cairo FreeType header when available + + * src/xsettings.c: Include cairo-ft.h if CAIRO_HAS_FT_FONT. + (bug#58830) + +2022-10-28 Yuan Fu + + Make Emacs compile without tree-sitter library + + * lisp/treesit.el: Add function declaration forms. + * src/emacs.c: Always include syms_of_treesit. + +2022-10-28 Theodor Thornhill + + Add in new font lock features in js/ts-mode + + We want to support font lock features on the syntactic level, not only + the decoration-level level. + + New supported features are: + - comment + - constant + - keyword + - string + - declaration + - identifier + - expression + - property + - pattern + - jsx + + * lisp/progmodes/js.el (js--treesit-font-lock-settings, js-mode): Add + in the new features. + + * lisp/progmodes/ts-mode.el (ts-mode--indent-rules): Remove faulty '.' + anchor. + + (ts-mode--font-lock-settings, ts-mode): Add in the new features. + +2022-10-28 Yuan Fu + + * configure.ac (emacs_config_features): Change to TREE_SITTER + + Last commit on this line has a wrong changelog, the subject should be + emacs_config_features, not WINDOW_SYSTEM_OBJ. + +2022-10-28 Stefan Kangas + + Fix warning in xsettings.c + + * src/xsettings.c [USE_CAIRO]: Include cairo-ft.h. + Thanks to Vincent Bernat . + +2022-10-28 Stefan Kangas + + Remove redundant requires from make-mode.el + + * lisp/progmodes/make-mode.el (imenu, dabbrev, add-log): Remove + redundant requires. + +2022-10-28 Stefan Kangas + + Use new sit-for calling convention in zone.el + + * lisp/play/zone.el (zone-exploding-remove): Don't use obsolete + calling convention for 'sit-for'. + +2022-10-28 Stefan Kangas + + Minor doc fixes in make-mode.el + + * lisp/progmodes/make-mode.el: + (makefile-insert-macro, makefile-pickup-everything) + (makefile-backslash-region): Minor doc fixes. + (makefile-browse): Use substitute-command-keys. + +2022-10-28 Stefan Kangas + + Prefer defvar-keymap in make-mode.el + + * lisp/progmodes/make-mode.el (makefile-mode-map) + (makefile-browser-map): Prefer defvar-keymap. + +2022-10-28 Stefan Kangas + + Prefer make-temp-name in make-mode.el + + * lisp/progmodes/make-mode.el + (makefile-generate-temporary-filename): Make obsolete in favor of + 'make-temp-name'. Simplify. + (makefile-save-temporary): Don't use above obsolete function. + +2022-10-28 Stefan Kangas + + Ensure temp file is deleted in makefile overview + + * lisp/progmodes/make-mode.el (makefile-create-up-to-date-overview): + Ensure temp file is always deleted. + +2022-10-28 Stefan Kangas + + Merge from origin/emacs-28 + + 510020d30d ; Improve doc strings in whitespace.el + + # Conflicts: + # lisp/whitespace.el + +2022-10-28 John Wiegley + + Merge pull request from bhankas/master + + GitHub-reference: https://github.com/jwiegley/use-package/issues/1007 + +2022-10-28 Philip Kaludercic + + Explicitly handle :vc-backend in a package specification + + * lisp/emacs-lisp/package-vc.el (package-vc-archive-spec-alist): + Document the feature. + (package-vc-unpack): Check for :vc-backend in both PKG-SPEC and the + archive specification data. + +2022-10-28 Philip Kaludercic + + Ensure that package specifications are always fetched + + * lisp/emacs-lisp/package-vc.el (package-vc--archives-initialize): Add + new function, extending 'package--archives-initialize'. + (package-vc-install): Use new function. + (package-vc-link-directory): Use new function. + +2022-10-28 Philip Kaludercic + + Allow specifying the VC backend used by 'package-vc-install' + + * lisp/emacs-lisp/package-vc.el (package-vc-install): Add argument BACKEND. + +2022-10-28 Philip Kaludercic + + Update handling for new elpa-packages.eld format + + * lisp/emacs-lisp/package-vc.el (package-vc-elpa-packages-version): + Add constant. + (package-vc-archive-data-alist): Add variable. + (package-vc--read-archive-data): Separate package specifications from + metadata. + (package-vc-unpack): Check archive metadata. + +2022-10-28 Alan Mackenzie + + CC Mode: Fontify cast types without adding them to c-found-types + + * lisp/progmodes/cc-engine.el (c-forward-type): Test for the special new + value `just-one' of c-promote-possible-types, and if found, fontify the type, + but don't add it to c-found-types. + (c-forward-decl-or-cast-1): Add the new &optional parameter inside-macro. + Whilst checking for a cast construct, analyze the text following the closing + paren more rigorously. + Check for, and allow, the closing paren of a macro arglist before the putative + cast construct. + + * lisp/progmodes/cc-fonts.el (c-font-lock-declarations): In the lambda + function, pass the parameter inside-macro to c-forward-decl-or-cast-1. + + * lisp/progmodes/cc-langs.el (c-primary-expr-regexp-details): New + c-lang-defvar which calculates `c-primary-expr-regexp' and three match + numbers for various sub-expressions in the regexp. + (c-primary-expr-regexp): Now extracted from `c-primary-expr-regexp-details'. + (c-per-++---match, c-per-&*+--match, c-per-\(-match): New + c-lang-defconsts/vars extracted from `c-primary-expr-regexp-details'. + +2022-10-28 Stefan Monnier + + cconv.el: Fix regression in cconv-tests-interactive-closure-bug51695 + + The new code to make interpreted closures safe-for-space introduced + a regression in `cconv-tests-interactive-closure-bug51695`, only seen + when using TEST_LOAD_EL. + A few other issues were found and fixed along the way. + + * lisp/emacs-lisp/cconv.el (cconv-fv): Change calling convention and + focus on finding the free variables. + (cconv-make-interpreted-closure): New function. + + * lisp/loadup.el: Use `compiled-function-p` rather than + `byte-code-function-p` so we also use safe-for-space interpreted + closures when we build with native compilation. + (internal-make-interpreted-closure-function): + Use `cconv-make-interpreted-closure`. + + * src/eval.c (syms_of_eval): Rename `internal-filter-closure-env-function` + to `internal-make-interpreted-closure-function`. + (Ffunction): Let that new var build the actual closure. + + * test/lisp/emacs-lisp/cconv-tests.el + (cconv-tests-interactive-closure-bug51695): Test specifically the + interpreted case. + +2022-10-28 Jonas Bernoulli + + * lisp/transient.el: Update to package version v0.3.7-173-g81b29ca + +2022-10-28 Po Lu + + Improve Drag and Drop preamble in the Lisp reference manual + + * doc/lispref/frames.texi (Drag and Drop): Reword contents and + clear up some ambiguities and redundancies. + +2022-10-28 Stefan Kangas + + Minor doc fixes in treesit.el + + * lisp/treesit.el (treesit-font-lock-rules) + (treesit-font-lock-settings): Minor doc fixes. + +2022-10-28 Stefan Monnier + + * lisp/emacs-lisp/re-builder.el: Cosmetic changes + + (reb-valid-string): Declare it risky so the mode-line will obey its + text-properties. + (reb-lisp-syntax-p): No need to make it `defsubst`. + (reb-target-value): New function to replace the + `reb-target-binding` macro. Adjust all callers. + (reb-auto-update): Give a more informative error message than just + "invalid" and give it a warning face. + (reb-update-regexp): Always update `reb-regexp-src` (it's harmless), + rather than only when it's necessary (reduces the need for advice in pcre.el). + +2022-10-28 Jonas Bernoulli + + Include more information in error data for sqlite errors + + Introduce a new 'sqlite-error' and use it for all errors signaled in + 'src/sqlite.c', except those that already used 'sqlite-locked-error'. + Include the values of 'sqlite3_errcode', 'sqlite3_extended_errcode', + 'sqlite3_errstr' and 'sqlite3_errmsg' in the error data. + + * src/sqlite.c (load_dll_functions): Load 'sqlite3_extended_errcode'. + (sqlite-load-extension): Use 'xsignal1' as required by argument type. + (syms_of_sqlite): Introduce a new error type 'sqlite-error'. + (check_sqlite, sqlite-open, bind_values, sqlite-execute) + (sqlite-select, sqlite-load-extension, sqlite-next): Use it. + (sqlite_prepare_errdata): New function. + (sqlite_prepare_errmsg): Remove function. + (sqlite-execute, sqlite-select): Use new function. + (sqlite-locked-error): Derive from 'sqlite-error'. + +2022-10-28 Alan Mackenzie + + CC Mode: Fix wrong fontification of enum foo bar; in Objective C Mode + + This fixes bug #58795 and bug #58796. + + * lisp/progmodes/cc-langs.el (c-type-prefix-kwds): Add the missing entry for + objc. + +2022-10-28 Payas Relekar + + Bump version to 2.4.3 + +2022-10-28 Po Lu + + Simplify scroll valuator reset handling + + * src/xterm.c (xi_populate_device_from_info) + (xi_reset_scroll_valuators_for_device_id, xi_handle_device_changed) + (handle_one_xevent): + * src/xterm.h (struct xi_scroll_valuator_t): Get rid of + `pending_enter_reset', which was extremely convoluted and kept + hitting server bugs. Now, valuators are reset upon all crossing + events. + +2022-10-28 Po Lu + + Clean up some xwidgets code + + * src/xterm.c (handle_one_xevent): [HAVE_XWIDGETS]: Fix coding + style and remove extra ifdefs. Also avoid redundant frame + lookups in some cases. + +2022-10-28 Po Lu + + Fix Haiku subprocess support + + * src/callproc.c: Disable posix_spawn on Haiku until some things + are fixed. + +2022-10-28 Po Lu + + Fix build without Cairo FreeType and fontconfig support + + * src/xsettings.c (apply_xft_settings): Don't enable Xft code + unless Cairo FreeType support is present. (bug#58830) + +2022-10-28 Yuan Fu + + Reflect tree-sitter indent rule presets change in manual + + * doc/lispref/modes.texi (Parser-based Indentation): String + equivalence checks are changed to regexp matching. + +2022-10-28 Theodor Thornhill + + Improve tree-sitter indent rules in ts-mode and js-mode + + * lisp/progmodes/js.el (js--treesit-indent-rules) + * lisp/progmodes/ts-mode.el (ts-mode--indent-rules): Add more rules. + (ts-mode): Create parser. + +2022-10-28 Yuan Fu + + Add some js-mode tree-sitter indent rules + + * lisp/progmodes/js.el (js--treesit-indent-rules): Add rules and a let + form. + +2022-10-28 Yuan Fu + + Remove tree-sitter-indent's integration with cc-mode + + Also minor improvement of tree-sitter-indent error messaging. + + * lisp/progmodes/js.el (js--treesit-indent-rules): Fix it so it works + with the new presets (which expects regexps). + (js--treesit-cc-indent-rules): Remove variable. + (js-mode): Go back to js--treesit-indent-rules. + * lisp/treesit.el (treesit-indent): Don't report error message when + ANCHOR or OFFSET is nil: let treesit-simple-indent display the + message. + (treesit-simple-indent): Remove cc-mode integration. Display error + message when no rules matches. + +2022-10-28 Yuan Fu + + * configure.ac (WINDOW_SYSTEM_OBJ): Move tree-sitter placement. + +2022-10-28 Wamm K. D + + Fix failing test for package Hierarchy + + This fixes a typo in one of the tests of Hierarchy which was causing + the test to fail. + * test/lisp/emacs-lisp/hierarchy-tests.el (hierarchy-delayed-add-trees): + Fix typo. + +2022-10-28 Vincent Bernat (tiny change) + + Fix detection of DPI changes in builds without Xft + + * src/xsettings.c (apply_xft_settings) [!HAVE_XFT]: Support + XSETTINGS changes in non-XFT builds. (Bug#43128) + +2022-10-28 Payas Relekar + + bind-key.el: Bump version for ELPA + +2022-10-28 Protesilaos Stavrou + + Update to modus-themes version 3.0.0 + + * doc/misc/modus-themes.org + (Option for red-green color deficiency or deuteranopia) + (Option for more bold constructs, Option for more italic constructs) + (Option for font mixing, Option for box buttons) + (Option for mode line presentation) + (Option for accented background in tab interfaces) + (Option for completion framework aesthetics, Option for mail citations) + (Option for line numbers, Option for mouseover effects) + (Option for diff buffer looks, Option for org-mode block styles) + (Option for Org agenda constructs) + (Option for the headings' overall style) + (Option for variable-pitch font in UI elements, Note on SHR fonts): + Revise markup of "non-nil" so that it is rendered properly in texinfo. + + (Option for fringe visibility, Option for line highlighting): Reword + description of user option. + + (Full support for packages or face groups): Update list of supported + packages or face groups. + + (Note on ERC escaped color sequences) + (What is the best setup for legibility?) + (Port the Modus themes to other platforms?): Prefer American English. + + (Note on pdf-tools link hints): Use double spacing between sentences + + (Acknowledgements): Update list of names that have contributed to the + project, which was user feedback in this case. + + * etc/themes/modus-themes.el (modus-themes, modus-themes-faces): + Reword doc string. + (modus-themes--version): Update to current version. + (modus-themes-version): Refine function definition. + (modus-themes-completion-standard-first-match) + (modus-themes-completion-standard-selected) + (modus-themes-completion-extra-selected) + (modus-themes-completion-key-binding, modus-themes-intense-markup) + (modus-themes--heading-weights, modus-themes--completion): Delete + obsolete forms, which were deprecated many months/version ago. + (modus-themes-fringes, modus-themes-completions) + (modus-themes-hl-line): Update default value and reword doc string + accordingly. + (modus-themes-faces): Update list of supported faces and their + attributes. + + * etc/themes/modus-operandi-theme.el: + * etc/themes/modus-vivendi-theme.el: Update version header. + + Complete release notes: . + +2022-10-27 John Wiegley + + Merge pull request from andreyorst/face-spec-set + + GitHub-reference: https://github.com/jwiegley/use-package/issues/1004 + +2022-10-27 Wamm K. D + + Allow Hierarchy to delay computation of children + + This adds an option to allow callers to specify that computing + the children of the hierarchy should be delayed to when the + user calls for them, by utilizing the tree-widget :expander + property. + * lisp/emacs-lisp/hierarchy.el (hierarchy-add-tree) + (hierarchy-add-trees): Add parameter 'delay-children-p'. + * lisp/emacs-lisp/hierarchy.el + (hierarchy--create-delayed-tree-widget): Add function. + * lisp/emacs-lisp/hierarchy.el (hierarchy-convert-to-tree-widget): + Utilize ':expander' if delaying children. (Bug#55900) + + * test/lisp/emacs-lisp/hierarchy-tests.el: Add tests for + delayed-children functionality. + +2022-10-27 kobarity + + Disable completion/ElDoc/FFAP when Python program is running + + * lisp/progmodes/python.el (python-completion-at-point) + (python-ffap-module-path, python-eldoc--get-doc-at-point): Add check + using `python-util-comint-end-of-output-p'. + (python-util-comint-end-of-output-p): New function. + * test/lisp/progmodes/python-tests.el (python-tests-shell-wait-for-prompt): + Use `python-util-comint-end-of-output-p'. + (python-completion-at-point-while-running-1) + (python-ffap-module-path-1) + (python-ffap-module-path-while-running-1) + (python-eldoc--get-doc-at-point-1) + (python-eldoc--get-doc-at-point-while-running-1): New tests. + (Bug#58713) + +2022-10-27 Andrea Monaco + + Allow applying Rmail summary filters consecutively + + * lisp/mail/rmailsum.el (rmail-summary-currently-displayed-msgs): + New variable. + (rmail-summary-apply-filters-consecutively): New user option. + (rmail-summary-fill-displayed-messages, rmail-summary-negate): New + functions. + (rmail-summary-by-labels, rmail-summary-by-recipients) + (rmail-summary-by-regexp, rmail-summary-by-topic) + (rmail-summary-by-senders): Obey + 'rmail-summary-apply-filters-consecutively'. + KEEP-FILTERING, to narrow the existing filtered summary. + + * etc/NEWS: Announce the change. + +2022-10-27 Eli Zaretskii + + Revert "Allow applying filters to summary consecutively" + + This reverts commit c8b9ba5fa1bf3a20b9b08a553ad088ca33f3d1ba. + +2022-10-27 Andrea Monaco + + Allow applying filters to summary consecutively + + * lisp/mail/rmailsum.el (rmail-summary-currently-displayed-msgs): + New variable. + (rmail-summary-fill-displayed-messages, rmail-summary-negate): New + functions. + (rmail-summary-by-labels, rmail-summary-by-recipients) + (rmail-summary-by-regexp, rmail-summary-by-topic) + (rmail-summary-by-senders): Accept an additional argument + KEEP-FILTERING, to narrow the existing filtered summary. + + * etc/NEWS: Announce the change. + +2022-10-27 Eli Zaretskii + + Avoid recentering when point enters invisible text at BOL + + * src/xdisp.c (try_cursor_movement): Don't say we must scroll when + point is inside invisible text at beginning of a glyph row. + (Bug#58793) + +2022-10-27 Stefan Kangas + + Minor copy-edits in tree-sitter docs + + * doc/lispref/parsing.texi (Parsing Program Source): Improve wording. + +2022-10-27 Po Lu + + Fix reporting of iconic state on old window managers + + * src/xterm.c (x_handle_wm_state): Handle IconicState if the + window manager does not support _NET_WM_STATE_HIDDEN. + +2022-10-27 Stephen Leake + + Fix auto-insert-alist ada-mode entry to match current ELPA ada-mode + +2022-10-27 John Wiegley + + Merge pull request from bhankas/master + + GitHub-reference: https://github.com/jwiegley/use-package/issues/1006 + +2022-10-26 Payas Relekar + + Update version to 2.4.2 + + In preparation for inclusion to GNU ELPA. + +2022-10-26 Yuan Fu + + Plug tree-sitter-simple-indent into c-offset-alist + + Now tree-sitter indentation can produce a cc-engine syntax symbol and + use c-offset-alist to compute the offset. Catch: line-up functions + don't work with tree-sitter. + + * lisp/progmodes/js.el (js--treesit-cc-indent-rules): New variable. + (js-mode): Use cc-indent rules by default. + * lisp/treesit.el (treesit-simple-indent-presets): Consider types as + regexp now. New matchers: n-p-gp, field-is, top-level, catch-all. + New anchors: nth-sibling, grand-parent, and, or, not, list. + first-sibling now returns the actual first sibling rather than the + first named sibling. + +2022-10-26 Yuan Fu + + * lisp/treesit.el (treesit-node-top-level-p): New argument TYPE. + +2022-10-26 Yuan Fu + + Generalize js--treesit-imenu-top-level-p + + * lisp/progmodes/js.el (js--treesit-imenu-top-level-p): Move. + (js--treesit-font-lock-settings): Fix usage. + * lisp/treesit.el (treesit-node-top-level-p): Move to here. + +2022-10-26 Yuan Fu + + Add tree-sitter navigation support to python-mode + + * lisp/progmodes/python.el (python-mode): Set + treesit-defun-type-regexp. + +2022-10-26 Yuan Fu + + Add tree-sitter imenu support for js-mode and ts-mode + + js-mode's current imenu is pretty plain and incomplete, so I took the + liberty to add a bit more flair to it. + + * lisp/progmodes/js.el (js--treesit-imenu-type-alist): New variable. + (js--treesit-imenu-top-level-p) + (js--treesit-imenu-label) + (js--treesit-imenu-1) + (js--treesit-imenu): New functions. + +2022-10-26 Yuan Fu + + Fix tree-sitter navigation + + * lisp/treesit.el (treesit-search-forward-goto): Track current + position with a local variable instead of (point). Clean up the + condition forms. + (treesit-beginning-of-defun): Fix traverse direction. + +2022-10-26 Stefan Kangas + + Fix typo in textsec-restriction-level + + * lisp/international/textsec.el (textsec-restriction-level): + * test/lisp/international/textsec-tests.el (test-restriction-level): + Fix typo in symbol name `moderately-restrictive'. + +2022-10-26 Stefan Kangas + + Declare variable Info-minibuf-history + + * lisp/info.el (Info-minibuf-history): Declare variable. + (Bug#58786) + +2022-10-26 John Wiegley + + Merge pull request from bhankas/master + + GitHub-reference: https://github.com/jwiegley/use-package/issues/1005 + +2022-10-26 Filipp Gunbin + + Compare addresses case-insensitively in message-update-smtp-method-header + + * lisp/gnus/message.el (message-update-smtp-method-header): Compare + addresses case-insensitively. + +2022-10-26 Alan Mackenzie + + c-find-decl-spots: Replace an arbitrary search limit by a parameter + + The old arbitrary limit led to errors thrown whilst fontifying large areas of + syntactic whitespace containing "#undef", as in src/comp.c. + + * lisp/progmodes/cc-engine.el (c-find-decl-spots): Replace the limit argument + to two calls of c-forward-syntactic-ws by the parameter `cfd-limit'. + +2022-10-26 Mauro Aranda + + Make completion-category-overrides choices dynamic + + See https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg01969.html + + * lisp/minibuffer.el (completion--update-styles-options): New internal + function. + + (completion--styles-type): Use it. + +2022-10-26 Eli Zaretskii + + Fix rare problems with current-column when text is invisible + + * src/indent.c (scan_for_column, compute_motion): Don't miss + compositions when the position to check for composition happens to + be inside invisible text. (Bug#58791) + +2022-10-26 Po Lu + + Prevent gui_consider_frame_title from restoring dead top frames + + * src/xdisp.c (unwind_format_mode_line): Check that + old_top_frame is live before selecting it. It could have been + deleted, which leads to signals when the post-command-hook + installed by xterm-set-window-title runs upon the last frame of + a terminal being deleted. + (gui_consider_frame_title): Rearrange code to be more + understandable. + +2022-10-26 Basil L. Contovounesios + + Pacify recent unused/ignored lexvar warnings + + Lexvars with special names like 'ignored' or 'unused' are no longer + treated specially. + + * lisp/ansi-color.el (ansi-color-process-output): + * lisp/cus-edit.el (customize-apropos-options): + * lisp/cus-theme.el (customize-create-theme): + * lisp/dired-aux.el (dired-hide-all): + * lisp/emacs-lisp/crm.el (crm--choose-completion-string): + * lisp/emacs-lisp/tabulated-list.el (tabulated-list-revert): + * lisp/ido.el (ido-choose-completion-string): + * lisp/international/mule-diag.el (describe-font-internal): + * lisp/mail/sendmail.el (sendmail-user-agent-compose): + * lisp/progmodes/fortran.el (fortran-uncomment-region): + * lisp/progmodes/prolog.el (prolog-inferior-guess-flavor): + * lisp/progmodes/ruby-mode.el (ruby-indent-line, ruby-indent-exp): + * lisp/url/url.el (url-mm-callback): + * lisp/xwidget.el (xwidget-webkit-history-reload): Prepend an + underscore to unused function parameter names. + * lisp/emacs-lisp/cconv.el (cconv--dummy-var): Remove unused + constant. + * lisp/files.el (hack-local-variables-filter): Remove unused lexvar. + +2022-10-26 Po Lu + + Clean up some event handling code + + * src/xterm.c (handle_one_xevent): Use dpyinfo where + FRAME_DISPLAY_INFO could be substituted for it. + +2022-10-26 Michael Albinus + + Modernize `auto-revert-notify-exclude-dir-regexp' + + * lisp/autorevert.el (auto-revert-notify-exclude-dir-regexp): Use `rx' + and `mounted-file-systems'. + +2022-10-26 Mattias Engdegård + + Dynamic validation of styles in completion-category-overrides + + The type of the defcustom completion-category-overrides must be able + to accommodate dynamic changes to completion-styles-alist, because + some packages (eglot) make their own additions. + + This change fixes a failure in test-custom-opts. See discussion at: + https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg01969.html + + * lisp/minibuffer.el (completion--styles-type): + Add an "Other" case that accepts any symbol which is then validated + dynamically against completion-styles-alist. + +2022-10-26 Philip Kaludercic + + Add support for :release-rev in 'package-vc-archive-spec-alist' + + * lisp/emacs-lisp/package-vc.el (package-vc-archive-spec-alist): + Update docstring. + (package-vc-install): Use :release-rev if invoked with a prefix argument. + +2022-10-26 Philip Kaludercic + + Allow nil as a valid value for 'ecomplete-filter-regexp' + + * lisp/ecomplete.el (ecomplete-filter-regexp): Replace user option type. + + Reported by Mattias Engdegård. + +2022-10-26 Po Lu + + Fix Haiku build for recent changes to system headers + + * src/callproc.c (emacs_posix_spawn_init_actions): Do not use + posix_spawn_file_actions_addchdir on Haiku; it links but does + not work. + +2022-10-26 Andrea Corallo + + Set `comp-no-spawn' earlier using -no-comp-spawn + + * src/emacs.c (standard_args): Add '-no-comp-spawn' cmd line option. + * lisp/startup.el (command-line): Parse '-no-comp-spawn' cmd line + option. + * lisp/emacs-lisp/comp.el (comp-run-async-workers, comp-final): + Use '-no-comp-spawn'. + +2022-10-26 Yuan Fu + + * src/treesit.c (treesit_search_dfs): Fix traverse algorithm. + +2022-10-25 Yuan Fu + + * src/treesit.c (treesit_search_forward): Fix traverses algorithm. + +2022-10-25 Yuan Fu + + Don't disable parse cache in tree-sitter activated js-mode + + * lisp/progmodes/js.el (js-mode): Move parse cache setup back. + +2022-10-25 Yuan Fu + + * lisp/treesit.el (treesit-simple-indent-rules): Make buffer-local. + +2022-10-25 Yuan Fu + + Fix treesit-language-at + + * lisp/treesit.el (treesit-language-at-point-function): New local + variable. + (treesit-language-at): Change to use + treesit-language-at-point-function rather than trying each parser + one-by-one. + * doc/lispref/parsing.texi (Multiple Languages): Update manual. + +2022-10-25 Dmitry Gutov + + vc-hg-checkin-patch: Add implementation for Hg + + * lisp/vc/vc-hg.el (vc-hg-checkin-patch): Add Hg-specific + implementation (bug#52349), like suggested in + https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg01533.html. + (vc-hg--extract-headers): Extract from vc-hg-checkin. + +2022-10-25 Yuan Fu + + New tree-sitter toggle scheme + + This version: central variable, everything controlled by + treesit-settings. Major mode sets up tree-sitter/non-tree-sitter + in a conditional branch, based on the setting. + + * lisp/treesit.el (treesit-settings): New option. + (treesit-defun-type-regexp): Change docstring. + (treesit-mode-supported) + (treesit-required-languages) + (treesit--local-variable-backup): Remove variables. + (treesit--backup-local-variable) + (treesit-mode) + (global-treesit-mode--turn-on) + (global-treesit-mode): Remove functions. + (treesit--setting-for-mode): New function. + (treesit-ready-p): New argument MODE, changed REPORT to QUIET, and + LANGUAGEs to LANGUAGE (now it can be a single symbol or a list of + them). + (treesit-major-mode-setup): New function. Mostly comes from + treesit-mode. + + * test/src/treesit-tests.el (treesit-misc): New test. + + * lisp/progmodes/python.el (python-mode): Move some setup code into + the conditional branch at the end. + + * lisp/progmodes/js.el (js-json-mode) + (js-mode): Move some setup code into the conditional branch at the + end. + + * lisp/progmodes/ts-mode.el: Move tree-sitter setup into the + conditional branch. + +2022-10-25 Andreas Schwab + + Ignore non-base64 junk when decoding MIME + + * src/fns.c (Fbase64_decode_region): Add optional argument + IGNORE-INVALID and pass down to base64_decode_1. + (Fbase64_decode_string): Likewise. + (base64_decode_1): Add argument IGNORE_INVALID. + * doc/lispref/text.texi (Base 64): Document them. + * lisp/gnus/mm-bodies.el (mm-decode-content-transfer-encoding): + Ignore any junk when decoding base64. + +2022-10-25 João Guerra (tiny change) + + * lisp/tab-line.el (tab-line-auto-hscroll): Set word-wrap to nil (bug#58740). + +2022-10-25 Stefan Monnier + + (Ffunction): Make interpreted closures safe for space + + Interpreted closures currently just grab a reference to the complete + lexical environment, so (lambda (x) (+ x y)) can end up looking like + + (closure ((foo ...) (y 7) (bar ...) ...) + (x) (+ x y)) + + where the foo/bar/... bindings are not only useless but can prevent + the GC from collecting that memory (i.e. it's a representation that is + not "safe for space") and it can also make that closure "unwritable" + (or more specifically, it can cause the closure's print + representation to be u`read`able). + + Compiled closures don't suffer from this problem because `cconv.el` + actually looks at the code and only stores in the compiled closure + those variables which are actually used. + + So, we fix this discrepancy by letting the existing code in `cconv.el` tell + `Ffunction` which variables are actually used by the body of the + function such that it can filter out the irrelevant elements and + return a closure of the form: + + (closure ((y 7)) (x) (+ x y)) + + * lisp/loadup.el: Preload `cconv` and set + `internal-filter-closure-env-function` once we have a usable `cconv-fv`. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-preprocess): Adjust to new + calling convention of `cconv-closure-convert`. + (byte-compile-not-lexical-var-p): Delete function, moved to `cconv.el`. + (byte-compile-bind): Use `cconv--not-lexical-var-p`. + + * lisp/emacs-lisp/cconv.el (cconv--dynbound-variables): New var. + (cconv-closure-convert): New arg `dynbound-vars` + (cconv--warn-unused-msg): Remove special case for `ignored`, + so we don't get confused when a function uses an argument called + `ignored`, e.g. holding a list of things that it should ignore. + (cconv--not-lexical-var-p): New function, moved from `bytecomp.el`. + Don't special case keywords and `nil` and `t` since they are already + `special-variable-p`. + (cconv--analyze-function): Use `cconv--not-lexical-var-p`. + (cconv--dynbindings): New dynbound var. + (cconv-analyze-form): Use `cconv--not-lexical-var-p`. + Remember in `cconv--dynbindings` the vars for which we used + dynamic scoping. + (cconv-analyze-form): Use `cconv--dynbound-variables` rather than + `byte-compile-bound-variables`. + (cconv-fv): New function. + + * src/eval.c (Fsetq, eval_sub): Remove optimization designed when + `lexical-binding == nil` was the common case. + (Ffunction): Use `internal-filter-closure-env-function` when available. + (eval_sub, Ffuncall): Improve error info for `excessive_lisp_nesting`. + (internal-filter-closure-env-function): New defvar. + +2022-10-25 Filipp Gunbin + + Move required options out of ldap-ldapsearch-args + + * lisp/net/ldap.el (ldap-ldapsearch-args, ldap-search-internal): Move + "-LLL" and "-tt" options as they're required for the code to work + properly. + +2022-10-25 Stefan Kangas + + eglot: Prefer ensure-list on Emacs 28 or later + + * lisp/progmodes/eglot.el (eglot--ensure-list): Make into alias + for 'ensure-list' on Emacs 28 or later. + +2022-10-25 Michael Albinus + + Handle context changes in Tramp kubernetes method + + * doc/misc/tramp.texi (Inline methods): Remove note about cache reset. + (File name completion): Add tramp-completion-use-cache. + + * etc/NEWS: Add 'tramp-completion-use-cache'. + + * lisp/net/tramp-cache.el (tramp-completion-use-cache): New defcustom. + (tramp-parse-connection-properties): Use it. + + * lisp/net/tramp-container.el (tramp-docker--completion-function) + (tramp-kubernetes--completion-function): Ensure the processes run + locally. + (tramp-kubernetes--current-context-data): New defun. + (tramp-methods) : Add `tramp-config-check'. + + * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): + Handle `tramp-login-args'. + + * lisp/net/tramp.el (tramp-methods): Adapt docstring. + +2022-10-25 Payas Relekar + + Update copyright for submission to ELPA + + - Update year to 2022 + - Set copyright to Free Software Foundation, Inc. + +2022-10-25 Robert Pluim + + Fix eglot defcustom types + + * lisp/progmodes/eglot.el (eglot-autoreconnect): Allow for 'nil'. + (eglot-connect-timeout): Allow for 'nil' and add descriptions. + (eglot-sync-connect): Split boolean into 'nil' and 't' and add descriptions. + (eglot-confirm-server-initiated-edits): Change 'symbol' type to 'const'. + +2022-10-25 Alan Mackenzie + + Test face name variables are bound before using them in cc-fonts.el + + This fixes bug #58641. + + Also, set c-reference-face-name to font-lock-constant face in preference to + c-label-face-name. + + * lisp/progmodes/cc-fonts.el (c-preprocessor-face-name, c-label-face-name) + (c-constant-face-name, c-reference-face-name): Test variables with the same + name as font-lock faces are bound before accessing their values. + (c-reference-face-name): Use font-lock-constant face in preference to + c-label-face-name. + +2022-10-25 Robert Pluim + + * lisp/progmodes/eglot.el: Remove not very funny joke. + +2022-10-25 Lin Sun + + lisp.h: Remove unnecessary preprocessor conditions + + This removes the HAVE_PDUMPER || HAVE_UNEXEC condition + of gflags.will_dump_, which gets in the way when Emacs + is built without any dumping method. (Bug#58708) + +2022-10-25 Po Lu + + Fix drag-and-drop bugs on Lucid build + + Also, optimize Fx_translate_coordinates to avoid excessive calls + to _XReply. + + * lisp/x-dnd.el (x-dnd-get-drop-rectangle): Return empty drop + rectangle if posn-area. + * src/xfns.c (Fx_translate_coordinates): Accept arg + `require_child'. If not set, allow optimizations based on + cached position data. + * src/xselect.c (x_handle_dnd_message): Use + x_translate_coordinates. + * src/xterm.c (x_translate_coordinates): Export function. + (x_handle_translate_coordinates): New function. + (handle_one_xevent): Fix coding style. + * src/xterm.h: Update prototypes. + +2022-10-25 Brian Leung + + eglot-server-programs: Account for new ts-mode + + At the time of writing, this exists only in the unmerged tree-sitter + branch. It is not harmful to include, however. + + * lisp/progmodes/eglot.el (eglot-server-programs): Add new major mode + to be used with the typescript-language-server. (Bug#58769) + +2022-10-25 Brian Leung + + eglot-server-programs: Account for new js-json-mode + + js-json-mode derives from js-mode, so this reordering is necessary to + prevent js-mode's eglot server from starting if a user has something + like this in their config: + + (add-to-hook 'js-json-mode #'eglot-ensure) + (add-to-hook 'js-mode #'eglot-ensure) + + * lisp/progmodes/eglot.el (eglot-server-programs): Move the + json-language-server info before the entry for js-mode, and add on + js-json-mode. (Bug#58769) + +2022-10-25 Robert Pluim + + Improve the eglot info documentation + + * doc/misc/eglot.texi (Eglot and Buffers): Improve phrasing. + (Eglot Commands): 'reference of' -> 'reference for' and a typo fix. + (Eglot Variables): Add markup for values. + (Customizing Eglot): Grammar fixes. + (Troubleshooting Eglot): Improve text. + +2022-10-25 João Távora + + Fix M-x eglot breakage due to typo + + * lisp/progmodes/eglot.el (eglot): Fix bug. + +2022-10-25 Stephen Leake + + * lisp/progmodes/eglot.el (eglot): Ensure managed-major-mode is a list + +2022-10-24 Yuan Fu + + * lisp/progmodes/ts-mode.el (ts-mode): Fix font-lock setup. + +2022-10-24 Stefan Monnier + + * lisp/progmodes/compile.el (compilation-mode-line-errors): Use `defvar` + + This is not really a constant, e.g. it's modified in `grep.el`. + +2022-10-24 Eli Zaretskii + + Unbreak the build broken by tab-bar.el changes + + Without this change, compiling tab-bar.el errors out: + In tab-bar--load-buttons: + tab-bar.el:161:18: Warning: reference to free variable `tab-bar-new' + tab-bar.el:174:6: Error: `define-icon' defined after use in + (define-icon tab-bar-close nil (cons (cons 'image + (cons "tabs/close.xpm" + (cons :margin (cons tab-bar-button-margin '(:ascent center))))) + '((text " x"))) "Icon for closing the clicked tab." + :version "29.1" :help-echo "Click to close tab") + (missing `require' of a library file?) + tab-bar.el:174:18: Warning: reference to free variable `tab-bar-close' + * lisp/tab-bar.el (eval-when-compile): Require 'icons. + +2022-10-24 Mattias Engdegård + + * doc/lispref/searching.texi (Rx Constructs): Elaborate intent. + + Suggested by Michael Heerdegen (bug#58727). + +2022-10-24 Po Lu + + Fix focus stealing in the Emacs server for old window managers + + * src/xterm.c (x_focus_frame): Apply focus stealing preference + to non-EWMH focus as well. Otherwise frames get raised but not + focused. + +2022-10-24 Mattias Engdegård + + Clarify RX... semantics in manual (bug#58727) + + Suggested by Michael Heerdegen. + + * doc/lispref/searching.texi (Rx Constructs): Explain implicit + concatenation of `RX...`. + +2022-10-24 Martin Jerabek (tiny change) + + Repair nXML handling of URIs with hex escapes (bug#58718) + + + * lisp/nxml/rng-uri.el (rng-uri-file-name-1): Add missing backslashes. + (rng-uri-unescape-unibyte, rng-uri-unescape-unibyte-match): + Convert hex-encoded character to string. + +2022-10-24 Mattias Engdegård + + Fix regexp matching with atomic strings and optimized backtracking + + This bug occurs when an atomic pattern is matched at the end of + a string and the on-failure-keep-string-jump optimization is + in effect, as in: + + (string-match "\\'\\(?:ab\\)*\\'" "a") + + which succeeded but clearly should not (bug#58726). + + Reported by Michael Heerdegen. + + * src/regex-emacs.c (PREFETCH): Add reset parameter. + (re_match_2_internal): Use it for proper atomic pattern treatment. + * test/src/regex-emacs-tests.el (regexp-atomic-failure): New test. + +2022-10-24 Robert Pluim + + Remove erroneous @w in yank-media cross ref + + I added this by mistake, there's actually no need to keep the cross + ref on the same line. + + * doc/emacs/killing.texi (Clipboard): Remove @w around @pxref. + +2022-10-24 Juri Linkov + + * lisp/tab-bar.el: Use customizable button icons (bug#51309, bug#51648) + + * lisp/tab-bar.el (tab-bar--load-buttons): Use 'define-icon' to + define icons for tab-bar-new, tab-bar-close, tab-bar-menu-bar. + Also set tab-bar-new-button, tab-bar-close-button, tab-bar-menu-bar-button + to the specified icon-string. + (tab-bar-history-mode): Use 'define-icon' to + define icons for tab-bar-back, tab-bar-forward. + Also set tab-bar-back-button, tab-bar-forward-button + to the specified icon-string. + + * lisp/emacs-lisp/icons.el (icons--create): Allow to easy + add new image props by using 'apply' on them. Add :margin. + +2022-10-24 Juri Linkov + + * lisp/minibuffer.el (completions-group-separator): Update :version. + +2022-10-23 Yuan Fu + + * lisp/treesit.el (treesit-node-at): Remove argument LARGEST. + + LARGEST returns the root node at BOB, finding the smallest node at + point and search upward is a better practice. + +2022-10-23 Yuan Fu + + * lisp/treesit.el (treesit-parser-range-on): New function. + +2022-10-23 Yuan Fu + + Fix treesit-beginning/end-of-defun + + Now they always move to the top-level defun (i.e., skips nested ones). + + * lisp/treesit.el (treesit--find-top-level-match): New function + (treesit-beginning-of-defun): Goes to the top-level match. + (treesit-end-of-defun): Simply move to the end of current match. + +2022-10-23 Yuan Fu + + Make treesit-search-forward-goto accept a NODE argument + + With NODE argument we can do + + (setq node (treesit-search-forward-goto node)) + + And we can choose what node to pass to it (maybe we want to pass it + the largest node at point, rather than the smallest node, and in case + of multiple parsers, we can choose which parser to use). + + * doc/lispref/parsing.texi (Retrieving Node): Update manual. + * lisp/treesit.el (treesit-search-forward-goto): Accept a NODE + argument. + +2022-10-23 Yuan Fu + + Make treesit-node-at return the last leaf node at EOB + + * doc/lispref/parsing.texi (Retrieving Node): Update manual. + * lisp/treesit.el (treesit-node-at): Add a (when node) form just to be + explicit, return the last leaf node if there is no node after POS. + +2022-10-23 Yuan Fu + + Make treesit-node-child and fiends accept negative index + + * doc/lispref/parsing.texi (Retrieving Node): Update manual. + * src/treesit.c (Ftreesit_node_child) + (Ftreesit_node_field_name_for_child): Accept and process negative + index. + +2022-10-23 Yuan Fu + + * lisp/treesit.el (treesit-node-at): Add LARGEST argument. + +2022-10-23 Yuan Fu + + Change function signature of treesit search functions + + Justification: We want to make the SIDE argument in + treesit-search-forward-goto optional, so I changed it to START. + It makes more sense for BACKWARD to follow START so two common + case, search for end forward and beginning backwards are + + (treesit-search-forward-goto node pred) + (treesit-search-forward-goto node pred t t) + + Then since we swapped BACKWARD and ALL for + treesit-search-forward-goto, it's best to swap them for + treesit-search-forward and treesit-search-subtree, too. And BACKWARD + will probably be used more frequently than ALL anyway. + + * doc/lispref/parsing.texi (Retrieving Node): Resolve FIXME and update + function signatures. + * lisp/treesit.el (treesit-search-forward-goto): Change SIDE to + START, swap BACKWARD and ALL. + (treesit-beginning-of-defun) + (treesit-end-of-defun): Update use of treesit-search-forward-goto + * src/treesit.c (Ftreesit_search_subtree) + (Ftreesit_search_forward): Swap BACKWARD and ALL. + +2022-10-23 Philip Kaludercic + + * doc/emacs/package.texi (Package from Source): Clarify prose + +2022-10-23 Juri Linkov + + * lisp/outline.el: Pre-compute some frequent data for button icons (bug#57813) + + (outline--button-icons): New buffer-local variable. + (outline-minor-mode): Set outline--button-icons. + Unify overlay name 'outline-margin' with 'outline-button'. + (outline--make-button-overlay, outline--make-margin-overlay) + (outline--insert-open-button, outline--insert-close-button): Remove functions. + (outline--create-button-icons, outline--insert-button): New functions + with code refactored from old functions. Add more support for icon faces. + (outline--fix-up-all-buttons): Use outline--insert-button. + (outline--fix-buttons-after-change): Unify overlay name + 'outline-margin' with 'outline-button'. + + * lisp/minibuffer.el (completions-group-separator): Change face + attribute :strike-through to :underline. + +2022-10-23 Philip Kaludercic + + ; Fix typo for "package" + +2022-10-23 Philip Kaludercic + + Extract separate function 'package-vc-guess-backend' + + * lisp/emacs-lisp/package-vc.el (package-vc-guess-backend): New + function. + (package-vc-unpack): Use it. + (package-vc-sourced-packages-list): Use it. + (package-vc-install): Use it. + +2022-10-23 Philip Kaludercic + + ; Fix typo for "heuristic" + +2022-10-23 Philip Kaludercic + + Use user option 'package-vc-default-backend' when cloning + + * lisp/emacs-lisp/package-vc.el (package-vc-unpack): Respect + 'package-vc-default-backend'. + +2022-10-23 Philip Kaludercic + + Immediately check out the right branch or revision + + * lisp/emacs-lisp/package-vc.el (package-vc-unpack) Use REV to avoid + checking out the wrong branch/revision first. + * lisp/vc/vc-bzr.el: Handle REV. + * lisp/vc/vc-git.el: Handle REV. + * lisp/vc/vc-hg.el: Handle REV. + * lisp/vc/vc-svn.el: Handle REV. + * lisp/vc/vc.el: Make BACKEND optional and add REV. + +2022-10-23 Matt Armstrong + + Fix compiler warning about possible null pointer dereference + + * src/itree.c (interval_tree_remove_fix): Use 'eassert' to both check + for non-null and suppress a compiler warning. + +2022-10-23 Philip Kaludercic + + Add auxiliary function to query package specifications + + * lisp/emacs-lisp/package-vc.el (package-vc-query-spec): Add + inline function. + +2022-10-23 Po Lu + + Reduce duplicate code for creating "special windows" + + * src/xterm.c (x_create_special_window): Define on all non-GTK + builds and all builds with XFixes. + (x_update_frame_user_time_window): Use x_create_special_window. + Also write a comment explaining what user time windows are. + * src/xterm.h: Fix style of `x_parse_color' prototype. + +2022-10-23 Yuan Fu + + Fix infinite loop in treesit-search-forward-goto + + * lisp/treesit.el (treesit-search-forward-goto): Remove UP argument. + * src/treesit.c (treesit_traverse_child_helper): New function. + (treesit_search_forward): Remove UP_ONLY and SKIP_START argument. + Don't traverse subtree of START. And after we've found the next + sibling/parent, go down to the first leaf node. Also change recursion + to loop. + (Ftreesit_search_forward): Change docstring, remove UP argument. + +2022-10-23 Stefan Kangas + + Merge from origin/emacs-28 + + f1f4a0c9d2 ; * doc/lispref/display.texi (Progress): Correct typo. (B... + +2022-10-23 Stefan Kangas + + Merge from origin/emacs-28 + + 626525c29f ; Remove reference to non-existent Flymake function from m... + +2022-10-22 Matt Armstrong + + Fix `get-pos-property' for the new overlay implementation. + + Some of the trickier edge cases weren't handled properly. See + bug#58706. + + * src/editfns.c (overlays_around): Extend the search range past POS by + one to fetch overlays beginning at POS. Fetch empty overlays, as they + may be extended by an insertion and thus be relevant to + `get-pos-property'. Make a note that the function now, unfortunately, + may return out of range overlays. + (Fget_pos_property): Deal with 'overlays_around' returning out of + range overlays. + +2022-10-22 Matt Armstrong + + Add `get-pos-property' tests covering bug#58706 + + * test/src/buffer-tests.el (get-pos-property-overlay-beg): New test. + (get-pos-property-overlay-empty-rear-advance): ditto. + (get-pos-property-overlay-past-rear-advance): ditto. + (get-pos-property-overlay-at-narrowed-end): ditto. + +2022-10-22 Yuan Fu + + Resolve FIXME's in tree-sitter manual sections + + Pattern vs query: a query consists of many patterns. I tightened up + the use of pattern vs query in the manual, now there shouldn't be + ambiguities. + + * doc/lispref/modes.texi (Parser-based Font Lock): + * doc/lispref/parsing.texi (Language Definitions): Resolve FIXME's. + +2022-10-22 Basil L. Contovounesios + + Improve error reporting of EUDC plist functions + + * lisp/net/eudc.el (eudc--plist-member): Signal a more + informative wrong-type-argument instead of a generic error + (bug#58531#19, bug#58720). + * test/lisp/net/eudc-tests.el (eudc--plist-member) + (eudc-plist-member, eudc-plist-get, eudc-lax-plist-get): + Update tests accordingly. + +2022-10-22 Juri Linkov + + * lisp/outline.el: Use 'outline-cycle' on buttons for 'RET' like 'TAB' uses. + + (outline--make-button-overlay, outline--make-margin-overlay): + Use overlay keymap where RET and mouse-2 are bound to outline-cycle. + (outline--insert-open-button, outline--insert-close-button): + Move overlay keymap to outline--make-button-overlay and replace + bindings outline-hide-subtree/outline-show-subtree with outline-cycle. + +2022-10-22 Juri Linkov + + Unify outline-minor-mode-use-buttons with in-margins/insert values (bug#57813) + + * doc/emacs/text.texi (Outline Mode): Remove outline-minor-mode-use-margins. + Document the values insert/in-margins of outline-minor-mode-use-buttons. + + * lisp/help.el (describe-bindings): + Set outline-minor-mode-use-buttons to 'insert'. + + * lisp/textmodes/emacs-news-mode.el (emacs-news--mode-common): + Set outline-minor-mode-use-buttons to 'in-margins'. + + * lisp/outline.el (outline-minor-mode-use-buttons): Change :type + from 'buffer-predicate' to choice of const values nil/in-margins/t. + (outline--use-buttons, outline-minor-mode-insert-buttons) + (outline-minor-mode-use-margins, outline--use-margins): Remove variables. + (outline-minor-mode-highlight-buffer): Change overlay name + 'outline-overlay' to 'outline-highlight'. + (outline-minor-mode): Simplify to handle possible values of + 'outline-minor-mode-use-buttons' instead of using many variables. + (outline--make-button-overlay): Use value 'insert' of + 'outline-minor-mode-use-buttons'. + (outline--insert-open-button, outline--insert-close-button) + (outline--fix-up-all-buttons, outline--fix-buttons-after-change): + Handle values of outline-minor-mode-use-buttons instead of using + many variables. + +2022-10-22 Juri Linkov + + * lisp/info.el (Info-toc-build): Remove message not needed anymore (bug#58634) + +2022-10-22 Basil L. Contovounesios + + Audit some plist uses with new predicate argument + + * doc/lispref/lists.texi (Plist Access): Improve description of + default predicate. + * lisp/emacs-lisp/cl-extra.el (cl-getf, cl--set-getf): Assume + plist-member always returns a cons. + * lisp/emacs-lisp/gv.el (plist-get): Support new optional predicate + argument (bug#47425#91). + * lisp/emacs-lisp/map.el: Bump minor version. + (map--dispatch): Remove now that bug#58563 is fixed. Break two + remaining uses out into corresponding cl-defmethods. + (map--plist-p): Add docstring. + (map--plist-has-predicate, map--plist-member-1, map--plist-member) + (map--plist-put-1, map--plist-put): New definitions for supporting + predicate argument backward compatibly. + (map-elt): Fix generalized variable getter under a + predicate (bug#58531). Use predicate when given a plist. + (map-put): Avoid gratuitous warnings when called without the hidden + predicate argument. Improve obsoletion message. + (map-put!): Use predicate when given a plist. + (map-contains-key): Ditto. Declare forgotten + advertised-calling-convention (bug#58531#19). + (map--put): Group definition in file together with that of map-put!. + * lisp/files-x.el (connection-local-normalize-criteria): Simplify + using mapcan + plist-get. + * lisp/net/eudc.el (eudc--plist-member): New convenience function. + (eudc-plist-member, eudc-plist-get, eudc-lax-plist-get): Use it + instead of open-coding plist-member. + * src/fns.c (Fplist_get, plist_get, Fplist_put, plist_put): Pass the + plist element as the first argument to the predicate, for + consistency with assoc + alist-get. + (Fplist_member, plist_member): Move from widget to plist section. + Open-code the EQ case in plist_member, and call it from + Fplist_member in that case, rather than the other way around. + + * test/lisp/apropos-tests.el (apropos-tests-format-plist): Avoid + polluting obarray. + * test/lisp/emacs-lisp/cl-extra-tests.el (cl-getf): Extend test with + generalized variables, degenerate plists, and improper lists. + * test/lisp/emacs-lisp/gv-tests.el: Byte-compile file; in the + meantime bug#24402 seems to have been fixed or worked around. + (gv-setter-edebug): Inhibit printing messages. + (gv-plist-get): Avoid modifying constant literals. Also test with a + predicate argument. + * test/lisp/emacs-lisp/map-tests.el (with-maps-do): Simplify + docstring. + (test-map-elt-testfn): Rename... + (test-map-elt-testfn-alist): ...to this. Also test with a predicate + argument. + (test-map-elt-testfn-plist, test-map-elt-gv, test-map-elt-signature) + (test-map-put!-plist, test-map-put!-signature) + (test-map-contains-key-signature, test-map-plist-member) + (test-map-plist-put): New tests. + (test-map-contains-key-testfn): Also test with a predicate argument. + (test-map-setf-alist-overwrite-key, test-map-setf-plist-insert-key) + (test-map-setf-plist-overwrite-key): Avoid modifying constant + literals. + (test-hash-table-setf-insert-key) + (test-hash-table-setf-overwrite-key): Fix indentation. + (test-setf-map-with-function): Make test more precise. + * test/lisp/net/eudc-tests.el: New file. + * test/lisp/subr-tests.el (test-plistp): Extend test with circular + list. + * test/src/fns-tests.el (test-cycle-equal, test-cycle-nconc): Move + from plist section to circular list section. + (plist-put/odd-number-of-elements): Avoid modifying constant + literals. + (plist-member/improper-list): Simplify. + (test-plist): Move to plist section. Also test with a predicate + argument. + +2022-10-22 Eli Zaretskii + + Clean up tree-sitter sections of the ELisp manual + + * doc/lispref/parsing.texi (Parsing Program Source): + * doc/lispref/modes.texi (Font Lock Mode) + (Parser-based Font Lock): Fix wording, punctuation, and markup. + Add index entries. + + * lisp/treesit.el (treesit-node-at, treesit-language-at): Rename + argument POINT to POS. + +2022-10-22 Po Lu + + Further fixes to menu event processing on no-toolkit builds + + * src/xdisp.c (note_mouse_highlight): Return if a popup is + activated under the no-toolkit build as well. + * src/xmenu.c (pop_down_menu): Clear popup_activated_flag when + not on MS-DOS. + (x_menu_show): Set popup_activated_flag under X. + +2022-10-22 Stefan Kangas + + * admin/notes/repo: Document feature and scratch branches. + +2022-10-21 Matt Armstrong + + Fix a narrow-to-region vs. overlays-at bug + + See bug#58703. + + * src/buffer.c (overlays_in): Add a new TRAILING arg expressing the + behavior wanted by `overlays-at', namely to include all overlays + beginning at the POS passed to `overlays-at', even if POS is the end + of the narrowed region. Pass true and the search range is extended to + ZV+1 if END is greater than ZV, just as is done for EMPTY. + (overlays_at): Pass 'true' for the new trailing arg. At present this + is the only caller passing 'true'. + (mouse_face_overlay_overlaps): Pass 'false' for the new trailing arg. + (disable_line_numbers_overlay_at_eob): ditto. + (Foverlays_in): ditto. + * src/editfns.c (overlays_around): ditto. + * test/src/buffer-tests.el (sorted-overlays): Add a spot test for + this. + +2022-10-21 Yuan Fu + + * lisp/treesit.el (treesit-font-lock-enable): Add function back. + +2022-10-21 Matt Armstrong + + Fix handling of overlays that begin at END in 'overlays_in' + + When passed EMPTY, 'overlays_in' should return empty overlays at END. + It was doing so, but it was also returning any other overlay that + happened to begin at END. + + bug#58672 + + * src/buffer.c (overlays_in): Don't return overlays at END unless they + are empty overlays. + (disable_line_numbers_overlay_at_eob): Pass 'false' instead of 'NULL' + for the bool 'empty' arg. + * test/src/buffer-tests.el (sorted-overlays-in): New helper function. + (test-overlays-in-empty-range): New test exhaustively covering these + edge conditions. + (test-overlays-in-empty-range-bug58672): Simple test for one case. + +2022-10-21 Philip Kaludercic + + Rephrase initial paragraph in "Package from Source" section + + * doc/emacs/package.texi (Package from Source): Clarify motivation. + +2022-10-21 Philip Kaludercic + + Request "elpa-packages.eld" instead of "elpa-packages" + + * lisp/emacs-lisp/package-vc.el + (package-vc--read-archive-data): Apply change. + (package-vc--download-and-read-archives): Apply change. + +2022-10-21 Philip Kaludercic + + Remove 'package-vc-install' alias 'package-checkout' + + * lisp/emacs-lisp/package-vc.el (package-checkout): Remove it. + +2022-10-21 Nacho Barrientos (tiny change) + + Bindat (src, strz): Operate on vectors too + + + * lisp/emacs-lisp/bindat.el (bindat--unpack-str, bindat--unpack-strz): + Fix the non-string case. + * test/lisp/emacs-lisp/bindat-tests.el (bindat-test--strz-array-unpack) + (bindat-test--str-simple-array-unpack,bindat-test--str-combined-array-unpack): + New tests. + +2022-10-21 Po Lu + + Fix various menu problems + + * src/menu.c (x_popup_menu_1): Cancel hourglass timer before + displaying popup. + * src/xterm.c (x_show_hourglass): Avoid displaying hourglass + cursor during a popup. + (handle_one_xevent): Under X Toolkit and GTK+ 2.x builds with + XInput 2, clear the mouse face upon a core LeaveNotify; these + can be generated by menu grabs. + (x_wm_set_size_hint): Fix Motif build warning. + +2022-10-21 Eli Zaretskii + + Improve and extend documentation of ElDoc + + * lisp/emacs-lisp/eldoc.el (eldoc-documentation-strategy) + (eldoc-documentation-enthusiast) + (eldoc-documentation-compose-eagerly) + (eldoc-documentation-compose, eldoc-documentation-default) + (eldoc-minibuffer-message, eldoc-idle-delay) + (eldoc-print-after-edit) + (eldoc-echo-area-display-truncation-message) + (eldoc-echo-area-use-multiline-p) + (eldoc-echo-area-prefer-doc-buffer): Doc string fixes. + + * doc/emacs/emacs.texi (Top): + * doc/emacs/programs.texi (Documentation, Programming Language Doc): + Rename "Lisp Doc" to "Programming Language Doc", including in + parent menus. All references changed. + (Programming Language Doc): Formerly "Lisp Doc". Rewrite to not + be specific to Emacs Lisp. Improve markup and wording. Document + more commands and variables. + * doc/emacs/maintaining.texi (Maintaining): Improve indexing. + +2022-10-21 Po Lu + + Fix delivery of window manager ping events during menu + + * oldXMenu/Activate.c (XMenuActivateSetExposeFunction) + (XMenuActivate): + * oldXMenu/XMenu.h: Remove expose functions. + * src/msdos.h (XMenuSetAEQ): Remove no longer used function. + * src/xmenu.c (x_menu_expose_event): Delete function. + (x_menu_dispatch_event): New function. + (x_menu_show): Set it as the XMenu event handler. + +2022-10-21 Mauro Aranda + + Fix last change in perl-mode + + * lisp/progmodes/perl-mode.el (perl--syntax-exp-intro-regexp): Escape + $. Reported by Mattias Engdegård. + +2022-10-21 Brian Leung + + Add the "nil" language server to eglot-server-programs + + * lisp/progmodes/eglot.el (eglot-server-programs): Add the "nil" + language server. Put it before rnix-lsp since it is more featureful + and more actively updated. (Bug#58676) + Ref: https://github.com/oxalica/nil + +2022-10-21 Brian Leung + + Add lua-language-server to eglot-server-programs + + * lisp/progmodes/eglot.el (eglot-server-programs): Add + lua-language-server. It is, at the time of writing, more actively + developed and more popular than the lua-lsp server, so prioritize + that. (Bug#58676) + +2022-10-20 Philip Kaludercic + + Have 'package-vc-link-directory' use name if given + + * lisp/emacs-lisp/package-vc.el (package-vc-link-directory): Use the + NAME argument. + +2022-10-20 Philip Kaludercic + + Build documentation like elpa-admin.el + + * lisp/emacs-lisp/package-vc.el (package-vc-build-documentation): Add + function to build a documentation file. + (package-vc-unpack-1): Use 'package-vc-build-documentation'. + +2022-10-20 Philip Kaludercic + + Merge remote-tracking branch 'origin/master' into feature/package+vc + +2022-10-20 Filipp Gunbin + + Fix ldapsearch output parsing in ldap-search-internal + + * lisp/net/ldap.el (ldap-search-internal): When parsing output, make + sure that file:// matched before opening the file. (bug#58605) + +2022-10-20 Eli Zaretskii + + Add Eglot to the menu bar + + * lisp/progmodes/eglot.el (eglot): Improve the doc string. + * lisp/menu-bar.el (menu-bar-tools-menu): Add Eglot to the menu. + +2022-10-20 Eli Zaretskii + + Mention Eglot in the Emacs user manual + + * doc/emacs/maintaining.texi (Xref): + * doc/emacs/programs.texi (Symbol Completion, Imenu): Mention Eglot. + +2022-10-20 João Távora + + Merge branch 'feature/eglot2emacs' + +2022-10-20 João Távora + + Minor fixes to doc/misc/eglot.texi + + * doc/misc/eglot.texi (eglot-workspace-configuration): Correct + markup of eglot-{} + (Quick Start): Fix section cross reference. + +2022-10-20 João Távora + + * lisp/info-look.el (mapc): Add Eglot manual's index. + +2022-10-20 Po Lu + + Work around problems setting input focus when a frame is in the background + + * src/xterm.c (server_timestamp_predicate, x_get_server_time): + New functions. + (x_ewmh_activate_frame, x_focus_frame, syms_of_xterm): Apply + various workarounds for window manager "focus stealing + prevention". (bug#57012) + +2022-10-20 Po Lu + + * etc/PROBLEMS: Document window manager focus problems. + +2022-10-20 João Távora + + Merge branch 'feature/eglot-texi-manual' into feature/eglot2emacs + +2022-10-20 João Távora + + Revert "eglot.texi: Make example more realistic" + + This quest for realism ignores the fact that a previous example for a + hypothetical language Foo and a language server "fools" already + exists. It also undermines the intended generality of the + instructions. + + This reverts commit 16986a9cc42ef4de580456f4acc5feba682ac8b1. + +2022-10-20 João Távora + + Fix Eglot manual's description of eglot-workspace-configuration + + * doc/misc/eglot.texi (Customizing Eglot) + (eglot-workspace-configuration): Explain that plist may be + arbitrarily complex and correctly identify nil as the Elisp + equivalent to JSON null. + +2022-10-20 Mauro Aranda + + Improve HERE document detection in perl-mode + + * lisp/progmodes/perl-mode.el (perl-syntax-propertize-function): + Detect indented HERE documents when using a bare identifier. + (perl--syntax-exp-intro-keywords): Recognize HERE documents that come + after die, warn and eval. + (perl--syntax-exp-intro-regexp): Identify HERE documents when printing + to a filehandle with printf? and when they appear after a fat comma. + + * test/lisp/progmodes/cperl-mode-resources/here-docs.pl: Add more tests. + +2022-10-20 João Távora + + Expose eglot-{} to be used in eglot-workspace-configuration + + * eglot.el (eglot-{}): New variable alias. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/1084 + +2022-10-20 João Távora + + Rework header of eglot.el + + * eglot.el (Commentary): Rework. + +2022-10-20 João Távora + + Do use eglot-connect-timeout if eglot-sync-connect is t + + Reported by Eli Zaretskii + + * eglot.el (eglot--connect): Use eglot-connect-timeout in the case + eglot-sync-connect is t. + +2022-10-20 Stefan Kangas + + eglot.texi: Explain where to find third-party packages + + * doc/misc/eglot.texi (Eglot Features): Improve description on + third-party packages. + +2022-10-20 Stefan Kangas + + eglot.texi: Make example more realistic + + * doc/misc/eglot.texi (Eglot and Buffers): Prefer more realistic + *.c instead of *.foo in example. + +2022-10-20 Stefan Kangas + + eglot.texi: Move sentence on LSP Servers earlier + + * doc/misc/eglot.texi (Setting Up LSP Servers): Move explanation + on the (lack of) need for customizing servers earlier. + +2022-10-20 Stefan Kangas + + * doc/misc/Makefile.in (INFO_COMMON): Add eglot. + +2022-10-20 Stefan Kangas + + Prefer defvar-keymap in modula2.el + + * lisp/progmodes/modula2.el (m2-mode-map): Prefer defvar-keymap. + +2022-10-20 Rudolf Adamkovič + + Add 'slovak-querty' input method (bug#58642) + + * lisp/leim/quail/slovak.el ("slovak-querty"): New input method. + * etc/NEWS: Mention the new 'slovak-querty' input method. + +2022-10-20 Stefan Kangas + + Merge from origin/emacs-28 + + 4b2c83eeaf ; * doc/lispref/modes.texi (Defining Minor Modes): Explain... + +2022-10-19 Matt Armstrong + + Rename all exported itree.h functions with the itree_ prefix + + For the most part, I replaced the interval_tree_ prefix with itree_, + interval_node_ with itree_node_, etc. + + * src/alloc.c: Rename everywhere as appropriate. + * src/alloc.c: ditto. + * src/buffer.c: ditto. + * src/buffer.h: ditto. + * src/itree.c: ditto. + * src/itree.h: ditto. + +2022-10-19 Matt Armstrong + + Prefix all itree.h type names with itree_ + + Rename interval_node -> itree_node, interval_tree -> itree_tree, + interval_tree_order -> itree_order. + + * src/alloc.c: Renames. + * src/buffer.c: ditto. + * src/itree.c: ditto. + * src/itree.h: ditto. + * src/lisp.h: ditto. + * src/pdumper.h: ditto. + * src/textprop.c: ditto. + * src/xdisp.c: ditto. + +2022-10-19 Matt Armstrong + + Revert "mark_overlays: Use the normal ITREE_FOREACH" + + This reverts commit b8fbd42f0a7caa4cd9e2d50dd4e4b2101ac78acd, + with edits. + + * src/alloc.c (mark_overlays): restore function. + (mark_buffer): Call it, not ITREE_FOREACH. + (garbage_collect): eassert (!itree_busy_p ()). + * src/itree.h: Comment tweak: explain why GC is considered risky. It + isn't that GC itself is risky, it is that GC can call ELisp by way of + a hook, and running ELisp during iteration is risks nested iteration. + +2022-10-19 Matt Armstrong + + Remove the ITREE_NULL macro and use NULL everywhere. + + * src/itree.h: Delete the ITREE_NULL macro. + * src/itree.c (check_subtree): Use NULL everywhere. + * src/pdumper.c (dump_buffer): ditto. + +2022-10-19 Yuan Fu + + Revise the toggle scheme of tree-sitter (again) + + Now instead of a toggle function (major-mode-backend-function), we let + major mode set local variables like treesit-font-lock-settings, + treesit-imenu-function, then treesit-mode takes care of activating + those things (clearing font-lock-keywords, setting + imenu-create-index-function to treesit-imenu-function, etc). + + js.el and python.el: I've returned js-mode and python-mode to exactly + what they were before tree-sitter change, plus lines at the end + setting up tree-sitter variables. Sorry about all these fuss :-D + + * lisp/treesit.el (treesit-mode-inhibit-message): Remove option. + (major-mode-backend-function) + (treesit-remapped-major-mode-alist): Remove variables. + (treesit-mode): Move down to the end of buffer. Do more things. + (global-treesit-mode): Move down to the end of buffer. Don't handle + major-mode-remap-alist anymore. + (global-treesit-mode--turn-on): Move down to the end of buffer. + (treesit-ready-p): Move down to the end of buffer. Changed signature. + (treesit-font-lock-enable): Remove function. + (treesit-defun-type-regexp): New variable. + (treesit-beginning-of-defun) + (treesit-end-of-defun): New function. + (treesit-imenu-function): New variable. + (treesit-mode-supported) + (treesit-required-languages) + (treesit--local-variable-backup): New variables. + (treesit--backup-local-variable): New function + + * lisp/progmodes/js.el (js-use-tree-sitter): Remove option. + (js--treesit-defun-type-regexp): Remove variable. (Now set inline in + js-mode.) + (js--treesit-beginning-of-defun) + (js--treesit-end-of-defun): Remove functions. (Now use + treesit-beginning/end-of-defun.) + (js--backend-toggle) + (js--json-backend-toggle): Remove function. + (js-mode) + (js-json-mode): Restore back to before tree-sitter changes. Add + tree-sitter setup at the end. + + * lisp/progmodes/python.el (python--backend-toggle): Remove function. + (python-mode): Restore back to before tree-sitter changes. Add + tree-sitter setup at the end. + + * lisp/progmodes/ts-mode.el (ts-mode--font-lock-settings): Use + js--fontify-template-string. + (ts-mode--fontify-template-string): Remove function (because we can + just use js--fontify-template-string). + (ts-mode--defun-type-regexp): Remove variable (now set inline in + ts-mode). + (ts-mode--beginning-of-defun) + (ts-mode--end-of-defun): Remove functions (now using + treesit-beginning/end-of-defun). + (ts-mode): Setup tree-sitter variables and then turn on treesit-mode + or move to js-mode. + +2022-10-19 Andrea Corallo + + * Fix async native compilation (bug#58637) + + * lisp/emacs-lisp/comp.el (comp--native-compile): Fix gate condition. + (comp-run-async-workers): Add assetion. + +2022-10-19 Alan Mackenzie + + CC Mode: Cease adding types to found-types too eagerly + + This fixes bug #58537 and bug #58539. + + * lisp/progmodes/cc-engine.el (c-forward-type): Remove trailing whitespace + from an identifier before passing it to c-add-type. + (c-forward-decl-or-cast-1): CASE 3: Do not recognize two consecutive + identifiers as type + variable/function unless certain conditions are met. + CASE 10: Do not recognize the "type" as a found type unless certain conditions + are met. (Near end): Do not recognize the identifier in a cast as a type + unless certain conditions are met. + + * lisp/progmodes/cc-fonts.el (c-get-fontification-context): Recognize being + in declaration parens when there is a syntactially wrong "foo ((bar))" + preceding the match position. + + * lisp/progmodes/cc-mode.el (c-update-new-id): Set c-new-id-is-type + unconditionally to nil to prevent a second identifier being wrongly marked as + a type. + +2022-10-19 Po Lu + + Fix various builds + + * src/xterm.c (x_handle_selection_monitor_event): Adjust for + build without XInput2. + (x_maybe_clear_preedit, xim_destroy_callback): Make conditional + on Release 6 XIM. + (x_get_keyboard_modifiers): Adjust for build without XCB. + +2022-10-19 Po Lu + + Fix build warning without XKB, Xmb, and XInput 2 + + * src/xterm.c (handle_one_xevent): Avoid defining + USE_SAFE_ALLOCA when SAFE_ALLOCA is not actually used. + +2022-10-19 João Távora + + Remove spurious trailing ':' in doc/misc/eglot.texi + + * doc/misc/eglot.texi (Customizing Eglot): Remove spurious ':'. + +2022-10-19 João Távora + + Tweak some node names in doc/misc/eglot.texi + + "Shutting Down LSP Server" -> "Shutting Down LSP Servers" + "Setting Up LSP Server" -> "Setting Up LSP Servers" + + * doc/misc/eglot.texi: Rework node names. + +2022-10-19 Arun Isaac + + Add tamil99 input method (bug#58070) + + * lisp/leim/quail/indian.el: Require pcase and seq. + ("tamil99"): New input method. + * etc/NEWS: Mention new tamil99 input method. + +2022-10-19 Stefan Kangas + + Add admin/emacs-shell-lib for shared bash code + + * admin/emacs-shell-lib: New file for shared bash code. + * admin/automerge: + * admin/diff-tar-files: + * admin/emacs-shell-lib: + * admin/make-manuals: + * admin/update_autogen: + * admin/upload-manuals: Simplify and improve using above new library. + +2022-10-19 Stefan Kangas + + * lib-src/rcs2log: Add fallback for $TMPDIR. + +2022-10-19 Stefan Kangas + + Merge from origin/emacs-28 + + efd3ef3ceb ; * src/window.c: Fix some comments. (Bug#58550) + +2022-10-18 Stefan Monnier + + (sit-for): Add compiler-macro to warn about obsolete calling convention + + * lisp/subr.el (sit-for): Add compiler-macro. + * lisp/eshell/esh-util.el (eshell-redisplay): + * lisp/play/zone.el (zone, zone-pgm-jitter, zone-pgm-whack-chars): + (zone-remove-text): Avoid obsolete calling convention. + +2022-10-18 Yuan Fu + + Add a new section to tree-sitter's manual node + + * doc/lispref/parsing.texi (Parsing Program Source): New section + Tree-sitter major modes. + +2022-10-18 Philip Kaludercic + + Remove modifications to the list of ignored files in source packages + + * lisp/emacs-lisp/package-vc.el (package-vc-unpack-1): Remove + 'vc-ignore' calls. + +2022-10-18 Theodor Thornhill + + Add more granular features in font-locking + + There is now support for three font-locking levels, 'minimal', + 'moderate' and 'full'. The richest experience is to be expected from + the 'full', and all levels are enabled by default. + + * lisp/progmodes/js.el (js--treesit-font-lock-settings): New defvar + renamed from 'js--treesit-settings'. + + (js--treesit-font-lock-settings): New defvar renamed from + 'js--json-treesit-settings'. + + * lisp/progmodes/ts-mode.el (ts-mode--font-lock-settings): New defvar + renamed from 'ts-mode--settings'. + +2022-10-18 Philip Kaludercic + + Use 'elpa-packages' files for VC metadata + + * lisp/emacs-lisp/package-vc.el (package-vc-default-backend): Add new + option. + (package-vc-archive-spec-alist): Add new variable to store the + contents of 'elpa-packages' for each archive. + (pacakge-vc-desc->spec): Add function to query package specifications. + (package-vc--read-archive-data): Add a 'package-read-archive-hook' + implementation. + (package-vc--download-and-read-archives): Add a + 'package-refresh-contents-hook' implementation. + (package-vc-main-file): Remove function. + (package-vc-generate-description-file): Use package specifications. + (package-vc-unpack-1): Adapt to previous changes. + (package-vc-unpack): Adapt to previous changes. + (package-vc-sourced-packages-list): Adapt to previous changes. + (package-vc-install): Adapt to previous changes. + * lisp/emacs-lisp/package.el (package-read-archive-hook): Allow + extending 'package-read-all-archive-contents' using a hook. + (package-read-all-archive-contents): Use 'package-read-archive-hook'. + (package-refresh-contents-hook): Allow extending + 'package-refresh-contents' using a hook. + (package-refresh-contents): Use 'package-refresh-contents-hook'. + +2022-10-18 Yuan Fu + + Rename tree-sitter group to treesit + + * lisp/treesit.el (tree-sitter): Rename to treesit. + (treesit-mode) + (global-treesit-mode): Use treesit group. + +2022-10-18 Yuan Fu + + * lisp/treesit.el: Add commentary. + +2022-10-18 Lars Ingebrigtsen + + Fix functions.texi syntax error + + * doc/lispref/functions.texi (Function Documentation): Fix syntax + error. + +2022-10-18 Yuan Fu + + Install new toggle scheme for tree-sitter + + Basically we now have treesit-mode and global-treesit-mode. Major + modes set major-mode-backend-function which treesit-mode calls to + activate/deactivate tree-sitter. + + js.el needs a bit explanation: I'm so sorry for messing up the + history, but basically now js-mode and js-json-mode should be exactly + the same as before any tree-sitter change was introduced, sans some + initialization code that are moved to js(-json)--backend-toggle. + js-mode and js-json-mode now just sets major-mode-backend-function and + initialize with js(-json)--backend-toggle. + + * lisp/treesit.el (treesit-mode-inhibit-message): New option. + (treesit-can-enable-p): Remove function. + (major-mode-backend-function) + (treesit-remapped-major-mode-alist): New variables. + (treesit-mode) + (global-treesit-mode): New minor modes. + (global-treesit-mode--turn-on) + (treesit-ready-p): New functions. + + * lisp/progmodes/python.el: Remove option. + (python--backend-toggle): New function. + (python-mode): Remove the if-form, all the initialization code are + moved to python--backend-toggle, python-mode now just sets + major-mode-backend-function and initialize with + python--backend-toggle. + * lisp/progmodes/js.el (js--treesit-can-enable-p) + (js--json-treesit-can-enable-p) + (js--treesit-enable) + (js--json-treesit-enable): Remove functions. + (js--backend-toggle) + (js-json--backend-toggle): New function. + + * lisp/progmodes/ts-mode.el (ts-mode): Use treesit-ready-p. + +2022-10-18 Stefan Monnier + + functions.texi: Fix bug#58602 + + * doc/lispref/functions.texi (Function Documentation): Document + `:documentation` and `function-documentation`. + +2022-10-18 Philip Kaludercic + + Merge remote-tracking branch 'origin/master' into feature/package+vc + +2022-10-18 Philip Kaludercic + + Have 'vc-clone' return a directory + + * lisp/vc/vc-bzr.el (vc-bzr-clone): Return directory. + * lisp/vc/vc-git.el (vc-git-clone): Return directory. + * lisp/vc/vc-hg.el (vc-hg-clone): Return directory. + * lisp/vc/vc-svn.el (vc-svn-clone): Return directory. + * lisp/vc/vc.el (vc-clone): Ensure the backend returns directory. + +2022-10-18 Juri Linkov + + * lisp/outline.el (outline-minor-mode-insert-buttons): New defvar-local. + + (outline--make-button-overlay, outline--insert-open-button) + (outline--insert-close-button): Insert button when + outline-minor-mode-insert-buttons is non-nil, otherwise + put an overlay with before-string. (bug#57813) + + * lisp/help.el (describe-bindings): Set buffer-local + outline-minor-mode-insert-buttons to t. + + * lisp/textmodes/emacs-news-mode.el (emacs-news--mode-common): + Set buffer-local outline-minor-mode-use-margins to t. Don't set + outline-regexp for leading spaces because now spaces are not added + in the NEWS buffer. + +2022-10-18 Juri Linkov + + * lisp/outline.el: Use one character wide strings for margins (bug#57813) + + (outline-open-in-margins, outline-close-in-margins) + (outline-close-rtl-in-margins): Add 1-char emoji, symbol, text + for margins that are 1-column wide. + (outline-minor-mode): Force display of margins only for the selected buffer. + +2022-10-18 Michael Albinus + + * lisp/net/tramp.el (tramp-file-name-equal-p): Fix docstring. + + * etc/NEWS: Adapt connection-local variables entries. + +2022-10-18 Matt Armstrong + + * .gitignore: Unignore the tests/manual directory. (Bug#58611) + +2022-10-18 Stefan Monnier + + (byte-compile--first-symbol-with-pos): Fix bug#58601 + + * lisp/emacs-lisp/bytecomp.el: Require `subr-x`. + (byte-compile--first-symbol-with-pos): Avoid inf-loops on circular data. + +2022-10-18 João Távora + + More minor fixes to doc/misc/eglot.texi + + Most, if not all of these, were previously discussed with Eli. + + * doc/misc/eglot.texi (Setting Up LSP Server): Fix repetition of + "This variable". + (Setting Up LSP Server): Explain that single a running instance + supports multiple major modes. + (Starting Eglot, Eglot and Buffers): Correctly describe mode-line indication. + (Eglot Features): Suggest that company-mode is just one of the + possible packages. Explain that Eglot arranges for the completion + package to "instantiate" snippets. Could have used "expand". + Mention benefits of having the popular markdown-mode available. + (Eglot Commands): Explain how eglot-reconnect and + eglot-clear-status are useful. + (Eglot Variables): Clarify when eglot-autoreconnect is useful. + Clarify how eglot-sync-connect and eglot-connect-timeout relate to + each other. Clarify semantics of + eglot-confirm-server-initiated-edits. + +2022-10-18 João Távora + + Minor stylistic fixes to introduction of doc/misc/eglot.texi + + * doc/misc/eglot.texi (title): Add "the". + (Top): Fix sentence structure in top-level + introduction. + +2022-10-18 Lars Ingebrigtsen + + Regenerated ldefs-boot.el + + Fix previous loaddefs-gen fix + +2022-10-18 Eli Zaretskii + + Add new Texinfo manual for the Eglot LSP client + + * doc/misc/eglot.texi: New file. + +2022-10-18 Lars Ingebrigtsen + + Fix faulty loaddefs detection + + * lisp/emacs-lisp/loaddefs-gen.el + (loaddefs-generate--emacs-batch): Fix faulty loaddefs detection. + +2022-10-18 Alan Mackenzie + + * lisp/progmodes/cc-defs.el Remove setting of inhibit-point-motion-hooks + +2022-10-18 Lars Ingebrigtsen + + Regenerate ldefs-boot.el + +2022-10-18 Andrea Corallo + + * Prevent potential native compilation infinite recursions + + * lisp/emacs-lisp/comp.el (comp-no-spawn): New var. + (comp-subr-trampoline-install, comp-final, comp-run-async-workers) + (comp--native-compile): Update. + +2022-10-17 Jim Porter + + Print the correct $PATH when Eshell's 'which' fails to find a command + + * lisp/eshell/esh-cmd.el (eshell/which): Use 'eshell-get-path' + (bug#20008). + +2022-10-17 Jim Porter + + Improve handling of $PATH in Eshell for remote directories + + * lisp/eshell/esh-util.el (eshell-path-env, eshell-parse-colon-path): + Make obsolete. + (eshell-path-env-list): New variable. + (eshell-connection-default-profile): New connection-local profile. + (eshell-get-path): Reimplement using 'eshell-path-env-list'; add + LITERAL-P argument. + (eshell-set-path): New function. + + * lisp/eshell/esh-var.el (eshell-variable-aliases-list): Add entry for + $PATH. + (eshell-var-initialize): Add 'eshell-path-env-list' to + 'eshell-subcommand-bindings'. + + * lisp/eshell/esh-ext.el (eshell-search-path): Use 'file-name-concat' + instead of 'concat'. + (eshell/addpath): Use 'eshell-get-path' and 'eshell-set-path'. + + * lisp/net/tramp-integration.el: Only apply Eshell hooks when + 'eshell-path-env-list' is unbound. + + * test/lisp/eshell/esh-var-tests.el + (esh-var-test/path-var/local-directory) + (esh-var-test/path-var/remote-directory, esh-var-test/path-var/set) + (esh-var-test/path-var/set-locally) + (esh-var-test/path-var-preserve-across-hosts): New tests. + + * test/lisp/eshell/esh-ext-tests.el: New file. + + * test/lisp/eshell/eshell-tests-helpers.el + (with-temp-eshell): Set 'eshell-last-dir-ring-file-name' to nil. + (eshell-tests-remote-accessible-p, eshell-last-input) + (eshell-last-output): New functions. + (eshell-match-output, eshell-match-output--explainer): Use + 'eshell-last-input' and 'eshell-last-output'. + + * doc/misc/eshell.texi (Variables): Document $PATH. + + * etc/NEWS: Announce this change (bug#57556). + +2022-10-17 Jim Porter + + Allow setting the values of variable aliases in Eshell + + This makes commands like "COLUMNS=40 some-command" work as expected. + + * lisp/eshell/esh-cmd.el (eshell-subcommand-bindings): Remove + 'process-environment' from here... + + * lisp/eshell/esh-var.el (eshell-var-initialize): ... and add to here, + along with 'eshell-variable-aliases-list'. + (eshell-inside-emacs): Convert to a 'defvar-local' to make it settable + in a particular Eshell buffer. + (eshell-variable-aliases-list): Make $?, $$, and $* read-only and + update docstring. + (eshell-set-variable): New function... + (eshell-handle-local-variables, eshell/export, eshell/unset): ... use + it. + (eshell/set, pcomplete/eshell-mode/set): New functions. + (eshell-get-variable): Get the variable alias's getter function when + appropriate and use a safer method for checking function arity. + + * test/lisp/eshell/esh-var-tests.el (esh-var-test/set/env-var) + (esh-var-test/set/symbol, esh-var-test/unset/env-var) + (esh-var-test/unset/symbol, esh-var-test/setq, esh-var-test/export) + (esh-var-test/local-variables, esh-var-test/alias/function) + (esh-var-test/alias/function-pair, esh-var-test/alias/string) + (esh-var-test/alias/string/prefer-lisp, esh-var-test/alias/symbol) + (esh-var-test/alias/symbol-pair, esh-var-test/alias/export) + (esh-var-test/alias/local-variables): New tests. + + * doc/misc/eshell.texi (Built-ins): Add 'set' and update 'unset' + documentation. + (Variables): Expand documentation of how to get/set variables. + +2022-10-17 Jim Porter + + Add helpers to dynamically assign connection-local values + + * lisp/files-x.el (connection-local-criteria) + (connection-local-profile-name-for-setq): New variables. + (with-connection-local-variables-1): ... let-bind them here. + (connection-local-update-profile-variables) + (connection-local-profile-name-for-criteria): New functions. + (with-connection-local-application-variables, setq-connection-local): + New macros. + + * test/lisp/files-x-tests.el: Require 'tramp-integration' + (files-x-test--variable5, remote-lazy-var): New variables. + (files-x-test-hack-connection-local-variables-apply): Expand checks. + (files-x-test-with-connection-local-variables): Remove + 'hack-connection-local-variables-apply' check (it belongs in the above + test), and expand some other checks. + (files-x-test--get-lazy-var, files-x-test--set-lazy-var): New + functions. + (files-x-test-connection-local-update-profile-variables) + (files-x-test-setq-connection-local): New tests. + + * doc/lispref/variables.texi (Connection Local Variables): Split into + two subsections and document the new features. + + * etc/NEWS: Announce 'setq-connection-local'. + +2022-10-17 Paul Eggert + + Improve ‘random’ doc re nonces + + * doc/lispref/numbers.texi (Random Numbers): Improve coverage of + random seed, entropy pools, and why one shouldn’t use ‘random’ for + nonces. See Bug#58472. + +2022-10-17 Po Lu + + Fix bug#58584 + + * src/xterm.c (x_handle_selection_monitor_event): Return if + selection event is one Emacs asked for. + (handle_one_xevent): In that case, drop the event and don't let + it reach GTK. + +2022-10-17 Yuan Fu + + Change free to xfree in treesit.el + + This should be in the last commit but I forgot. + + * src/treesit.c (Ftreesit_parser_set_included_ranges): Change free to + xfree. + +2022-10-17 Yuan Fu + + Change malloc to xmalloc in treesit.c + + * src/treesit.c (Ftreesit_parser_set_included_ranges): Change malloc + to xmalloc. + +2022-10-17 Yuan Fu + + Fix casts to uint32_t in treesit.c + + * src/treesit.c (treesit_tree_edit_1): Add assertion. + (treesit_ensure_position_synced): Add assertion. + (treesit_check_buffer_size): Change error message. + (treesit_ensure_parsed): Move treesit_check_buffer_size and + treesit_ensure_position_synced together + (treesit_read_buffer): Add assertion. + (Ftreesit_parser_set_included_ranges): Add assertion. Signal error if + list too long. Add check for buffer size. + (Ftreesit_parser_included_ranges): Add check for buffer size. + (Ftreesit_query_capture): Add assertion. + +2022-10-17 Dmitry Gutov + + Follow-up fixes for vc-default-checkin-patch + + * lisp/vc/vc.el (vc-default-checkin-patch): + Call vc-revert-file on buffer-file-name (vc-backend failed on + relative name sometimes). Delete the tmp dir after copying all + files back, not just the first one. Bug#52349, + https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg01446.html. + +2022-10-17 Yuan Fu + + Simplify error reported by loading tree-sitter language definition + + Before: + + Error: Cannot load language definition: + "javascript", + ("/home/jostein/.emacs.d/tree-sitter/libtree-sitter-javascript: + cannot open shared object file: No such file or directory" + "/home/jostein/.emacs.d/tree-sitter/libtree-sitter-javascript.so: + cannot open shared object file: No such file or directory" + "libtree-sitter-javascript: cannot open shared object file: No such + file or directory" "libtree-sitter-javascript.so: cannot open shared + object file: No such file or directory") + + After: + + (treesit-load-language-error + not-found + ("libtree-sitter-z.so" "libtree-sitter-z.dylib") + "No such file or directory") + + * src/treesit.c (treesit_load_language): Add base_candidates, remove + error_list, report base_candidates rather than error_list. + +2022-10-17 Yuan Fu + + Skip tree-sitter tests unless language definition is available + + * test/src/treesit-tests.el (treesit-basic-parsing) + (treesit-node-api) + (treesit-query-api) + (treesit-narrow) + (treesit-cross-boundary) + (treesit-multi-lang) + (treesit-node-supplemental): Add skip-unless form. + +2022-10-17 Yuan Fu + + Fix memory leak in ts_load_language + + * src/treesit.c (ts_load_language): Move initialization of c_name down + and free it right after use. + +2022-10-17 Alan Mackenzie + + CC Mode: Don't fontify as types variables with the same names as struct tags + + This fixes bug #58534. + + * lisp/progmodes/cc-engine.el (c-forward-type): Only regard "struct" keywords + which create self contained types (e.g. C++'s "typename") as creating found + types. + + * lisp/progmodes/cc-langs.el (c-self-contained-typename-kwds + (c-self-contained-typename-key): New language consts and variable. + +2022-10-17 Stefan Kangas + + Prefer defvar-keymap in fortran.el + + * lisp/progmodes/fortran.el (fortran-mode-map): Prefer + defvar-keymap. + +2022-10-17 Stefan Kangas + + Update version information in Gnus manual + + * doc/misc/gnus.texi (Gnus Versions): Update with some information + from https://www.gnus.org/history.html + (Ma Gnus): Explain that Gnus is now developed together with + Emacs. (Bug#58161) + +2022-10-17 Stefan Monnier + + * src/itree.c: Eliminate all prototypes for static functions + + Massive code reorganization to move definitions of static functions + before their first use, so as to remove the need for + redundant prototypes. + While at it, fix a few places where the used more than 80 column. + +2022-10-17 Basil L. Contovounesios + + Silence recent comp-tests.el lexvar warnings + + * test/lisp/emacs-lisp/comp-tests.el: Mark used native-compile + variables as special to pacify unknown lexvar warnings in the + default build. + (with-test-native-compile-prune-cache): Instrument macro arguments + for debugging and indent conventionally. Reindent all callers. + (test-native-compile-prune-cache/dont-delete-in-parent-of-cache): + Simplify file name expansion. + +2022-10-17 Eli Zaretskii + + Make sure the treesit path variables are lists + + * src/treesit.c: (treesit_load_language) + (treesit_find_override_name): Make sure the lists we use are + really lists. + +2022-10-17 Matt Armstrong + + Rename itree iterators with itree_iterator prefix + + * src/itree.h: Rename struct interval_generator -> itree_iterator. + Rename functions: itree_busy_p -> itree_iterator_busy_p, + interval_tree_iter_start -> itree_iterator_start, + interval_generator_narrow -> itree_iterator_narrow, + interval_tree_iter_finish -> itree_iterator_finish, + interval_generator_next -> itree_iterator_next. + * src/itree.c: Use new names everywhere. + * src/eval.c: ditto. + +2022-10-17 Matt Armstrong + + Delete the itree_null sentinel node, use NULL everywhere. + + This effort caught a few (already committed) places that were + dereferencing through ITREE_NULL in a confusing way. It makes some + functions have to check for NULL in more places, but in my experience + this is worth it from a code clarity point of view. + + In doing this I rewrote `interval_tree_remove` completely. There + there was one final bug in that function that I simply could not find + when I #define'd ITREE_NULL to NULL. I couldn't easily understand + that function, so instead I rewrote it completely with a focus on code + clarity. Bug went away. + + I have left the ITREE_NULL #define in code, to reduce code review + noise. It is easily removed later, mechanically. + + * src/itree.h: #define ITREE_NULL to NULL and leave a FIXME. + * src/itree.c (itree_null): Delete the itree_null static variable. + (null_is_sane): Delete (and all callers). + (interval_tree_insert): Insert the first node as black straight away. + (itree_newlimit): Handle NULL children. + (interval_tree_remove_fix): ditto. + (interval_tree_insert_fix): ditto. + (interval_tree_remove): Rewrite for clarity. + (null_safe_is_red): New function. + (null_safe_is_black): New function. + (interval_tree_replace_child): Renamed from interval_tree_transplant. + (interval_tree_transplant): New function that something I think is + more like a full transplantation. (names are hard) + +2022-10-17 Stefan Kangas + + Improve native-compile-prune-cache messages + + * lisp/emacs-lisp/comp.el (native-compile-prune-cache): Quote name of + pruned directory. + +2022-10-17 Stefan Kangas + + Don't prune *.eln files in parent of eln-load-path + + * lisp/emacs-lisp/comp.el (native-compile-prune-cache): Don't + prune *.eln files in parent directory of `native-comp-eln-load-path'. + * test/lisp/emacs-lisp/comp-tests.el + (test-native-compile-prune-cache/dont-delete-in-parent-of-cache): + New test. + +2022-10-17 Stefan Kangas + + Add tests for native-compile-prune-cache + + * test/lisp/comp-tests.el: New file. + +2022-10-17 Po Lu + + Fix pieces of code being too expensive over slow network connections + + * lisp/menu-bar.el (menu-bar-edit-menu): Test buffer-read-only + before gui-backend-selection-exists-p. This places the less + expensive condition before the more expensive one. + * src/xfns.c (compute_tip_xy): Use cached monitor attributes + whenever available. + (Fx_show_tip): Remove code that really did nothing. + (Fx_backspace_delete_keys_p): Do not download the entire keymap + from the server upon creating a frame. + * src/xmenu.c (create_and_show_popup_menu): Use + x_translate_coordinates_to_root. + (x_menu_show): Use x_translate_coordinates_to_root. + * src/xselect.c (Fx_selection_exists_p): If a temporary + selection owner can be found, use it. + * src/xterm.c (x_translate_coordinates_to_root) + (x_handle_selection_monitor_event, x_find_selection_owner): New + functions. These functions try to avoid downloading data from + the X server in places that are called very often (i.e. during + tool bar updates.) + (handle_one_xevent): Handle selection notify events. Also catch + some mistakes found. Fetch all kinds of key names as well. + (x_create_special_window): New function. + (x_term_init, x_delete_display): Ask for all key names. Also, + passively monitor selections that are given to + `x-selection-exists-p' during redisplay, so we do not have to + ask the server about them upon each redisplay. + (syms_of_xterm): New variable `x-fast-selection-list'. + * src/xterm.h (struct x_monitored_selection): New structure. + (X_INVALID_WINDOW): New define. + (struct x_display_info): New fields for selection monitoring. + Also, record the fixes extension base. + +2022-10-17 Lars Ingebrigtsen + + Fix spurious "Compilation finished" native-comp messages + + * lisp/emacs-lisp/comp.el (native--compile-async): Don't start the + async compilation if we didn't add anything. This avoids spurious + "Compilation finished" messages in the *Async* buffer when it + turned out that all the files we considered nativecomping were + skipped. + +2022-10-17 Yuan Fu + + Fix js/ts tree-sitter template_string font-lock + + * lisp/progmodes/js.el (js--treesit-settings): Fontify + template_strings with js--fontify-template-string. + (js--fontify-template-string): New function. + (js--json-treesit-settings): Add missing :feature flag. + * lisp/progmodes/ts-mode.el (ts-mode--settings): Fontify + template_strings with js--fontify-template-string. + +2022-10-17 Yuan Fu + + * lisp/treesit.el (treesit-font-lock-rules): Warn about :feature. + +2022-10-17 Lars Ingebrigtsen + + Avoid having the async compile log saying it's compiling loaddefs + + * lisp/loadup.el (featurep): Define the hash table in nativecomp + builds (but not otherwise). A more natural place to define this + would be in comp.el, but comp.el isn't loaded yet when we load the + .elc file that updates comp--no-native-compile. We could change + the load order and move the definition to comp.el, though. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Allow + inhibiting nativecomp earlier (bug#57627). + + * lisp/emacs-lisp/comp.el (native-compile-async-skip-p): Use the data. + +2022-10-17 Andrey Listopadov (tiny change) + + Use face-spec-set instead of custom-set-faces + + GitHub-reference: https://github.com/jwiegley/use-package/issues/934 + +2022-10-17 Stefan Kangas + + Make `message-canlock-generate' faster + + * lisp/gnus/message.el (message-canlock-generate): Improve performance + by several orders of magnitude. + +2022-10-16 Dmitry Gutov + + Add default implementation for 'checkin-patch' + + * lisp/vc/vc.el (vc-default-checkin-patch): + Add default implementation for 'checkin-patch' (bug#52349). + The first attempt was here: + https://lists.gnu.org/archive/html/emacs-devel/2022-08/msg01464.html + +2022-10-16 Philip Kaludercic + + * src/keyboard.c (echo_add_key): Mention quick-help + +2022-10-16 Philip Kaludercic + + Only clone packages if necessary + + * lisp/emacs-lisp/package-vc.el (package-vc-unpack): Check if + directory exists before cloning. + +2022-10-16 Stefan Monnier + + cl-generic: Fix `advertised-calling-convention` declarations + + * lisp/emacs-lisp/cl-generic.el (cl-generic-define-method): + Preserve the `advertised-calling-convention`, if any (bug#58563). + + * lisp/subr.el (declare): Warn when we hit this. + + * lisp/emacs-lisp/byte-run.el (get-advertised-calling-convention): New fun. + * lisp/progmodes/elisp-mode.el (elisp-get-fnsym-args-string): + * lisp/help-fns.el (help-fns--signature): + * lisp/emacs-lisp/bytecomp.el (byte-compile-fdefinition): Use it. + + * test/lisp/emacs-lisp/cl-generic-tests.el (cl-generic-tests--acc): New fun. + (cl-generic-tests--advertised-calling-convention-bug58563): New test. + +2022-10-16 Philip Kaludercic + + Attempt to infer the package subject if missing + + * lisp/emacs-lisp/package-vc.el (package-vc-main-file): Add function. + (package-vc-generate-description-file): Infer the subject. + +2022-10-16 kobarity + + Move and rename Python completion ERTs + + * test/lisp/progmodes/python-tests.el + (python-shell-completion-at-point-1) + (python-shell-completion-at-point-native-1) + (python-completion-at-point-1) + (python-completion-at-point-2, python-completion-at-point-pdb-1) + (python-completion-at-point-native-1) + (python-completion-at-point-native-2) + (python-completion-at-point-native-with-ffap-1) + (python-completion-at-point-native-with-eldoc-1): Renamed tests + (bug#58565). + +2022-10-16 Eli Zaretskii + + Support MinGW build on MS-Windows + + * src/treesit.c [WINDOWSNT]: Add MS-Windows boilerplate for + dynamically-loaded optional libraries. + (init_treesit_functions) [WINDOWSNT]: New function. + (load_tree_sitter_if_necessary): New function. + (ts_initialize): Call 'load_tree_sitter_if_necessary'. + (ts_delete_parser, ts_delete_query, ts_named_node_p): Wrapper + functions for TS calls from outside treesit.c. + (Ftreesit_parser_root_node, Ftreesit_parser_set_included_ranges) + (Ftreesit_parser_included_ranges, Ftreesit_node_type) + (Ftreesit_node_start, Ftreesit_node_end, Ftreesit_node_string) + (Ftreesit_node_parent, Ftreesit_node_child, Ftreesit_node_check) + (Ftreesit_node_field_name_for_child, Ftreesit_node_child_count) + (Ftreesit_node_next_sibling, Ftreesit_node_prev_sibling) + (Ftreesit_node_first_child_for_pos) + (Ftreesit_node_descendant_for_range, Ftreesit_node_eq) + (Ftreesit_query_compile, Ftreesit_query_capture) + (Ftreesit_search_subtree, Ftreesit_search_forward) + (Ftreesit_induce_sparse_tree): Call 'ts_initialize' before any + other TS functions. + (Ftreesit_available_p): 'treesit-available-p' implemented in C, so + that on WINDOWSNT the library could be loaded dynamically. + * src/treesit.h (ts_delete_parser, ts_delete_query) + (ts_named_node_p): Add prototypes. + * src/print.c (print_vectorlike): + * src/alloc.c (cleanup_vector): Call tree-sitter function via + wrappers defined in treesit.c, not directly, because WINDOWSNT + redefines the TS functions to be called via function pointers. + * src/Makefile.in (base_obj): Add treesit.o + (TREE_SITTER_OBJ): Remove. + + * lisp/treesit.el (treesit-available-p): Remove: now implemented + in C. + * lisp/term/w32-win.el (dynamic-library-alist): Add libtree-sitter + DLLs. + + * configure.ac (TREE_SITTER): Support the MinGW build. + (TREE_SITTER_OBJ): Remove. + +2022-10-16 Stefan Kangas + + Prefer defvar-keymap in ansi-osc.el + + * lisp/ansi-osc.el (ansi-osc-hyperlink-map): Prefer defvar-keymap. + +2022-10-16 Philip Kaludercic + + Mark source packages as always updatable + + * lisp/emacs-lisp/package.el (package--updateable-packages): Add check + for source packages. + +2022-10-16 Philip Kaludercic + + Delete 'package-contact-maintainer' + + * doc/emacs/package.texi: Remove mention. + * etc/NEWS: Remove mention. + * lisp/emacs-lisp/package.el: Remove the command. + +2022-10-16 Stefan Kangas + + Make help-for-help echo key on failure + + * lisp/help-macro.el (make-help-screen): Echo key on failure. + +2022-10-16 Stefan Kangas + + Bind "home"/"end" in help-for-help + + * lisp/help-macro.el (make-help-screen): Bind "home"/"end" keys to + scrolling up/down. + +2022-10-16 Stefan Kangas + + Don't ding when exiting help-for-help with C-g + + * lisp/help-macro.el (make-help-screen): Don't ding on "C-g". + +2022-10-16 Lars Ingebrigtsen + + Clear misleading message in help-quit-or-quick + + * lisp/help.el (help-quit-or-quick): Clear misleading message + (bug#58542). + +2022-10-16 kobarity + + Fix invalid search bound error in python-shell-completion-at-point + + * lisp/progmodes/python.el (python-shell-completion-at-point): Add + check if point is before line-start. + * test/lisp/progmodes/python-tests.el (python-shell-completion-shell-buffer-1) + (python-shell-completion-shell-buffer-native-1): New tests + (bug#58548). + +2022-10-16 Daniel Martín + + Signal an error in dictionary lookup if there's no word at point + + * lisp/net/dictionary.el (dictionary-lookup-definition): Signal an + error when there is no word at point (bug#58552). + +2022-10-16 kobarity + + Disable completion when PDB is active in Python Shell buffer + + * lisp/progmodes/python.el (python-shell-completion-at-point): Disable + completion in Python buffer when PDB is active in Python Shell buffer. + * test/lisp/progmodes/python-tests.el (python-shell-completion-pdb-1): + New test (bug#58562). + +2022-10-16 Stefan Kangas + + Merge from origin/emacs-28 + + 067361f3a2 ; Improve documentation of 'C-M-i' + fdb6f7cf26 ; Fix documentation of 'comp-enable-subr-trampolines' + be30369e01 ; Avoid incorrect indentation in an @example. + 4bd3dd505e Document how to control where the *.eln files are written + b7d7c2d9e9 Add cross-reference to alternative syntaxes for Unicode + + # Conflicts: + # doc/emacs/custom.texi + +2022-10-16 Stefan Kangas + + Expand 'random' testsuite + + * test/src/fns-tests.el (ert): Require. + (fns-tests-random): Expand test. + +2022-10-16 Po Lu + + Adapt last change to Haiku port + + * src/haikuterm.c (haiku_frame_up_to_date): + (haiku_clear_frame): + (haiku_update_begin): + (haiku_flush): + (haiku_flush_dirty_back_buffer_on): + (haiku_read_socket): + * src/haikuterm.h (struct haiku_output): + (FRAME_COMPLETE_P): Synchronize logic with X. + +2022-10-16 Po Lu + + Fix multiple sources of flicker under X + + Fix three kinds of flicker. The first is if you do: + + (while t (sit-for 1) (redraw-display)) + + and press a key, the frame will turn blank until you C-g. The + second is where handling async input happens in the middle of + drawing and causes a buffer flip to happen. The third is where + unmapping the hourglass window causes exposures. + + * src/dispnew.c (redraw_frame): Garbage the frame if it is a + window system frame. + * src/xterm.c (x_update_begin): Clear complete flag. + (x_flip_and_flush, XTframe_up_to_date): Set complete flag. + (x_show_hourglass): Fix hourglass window class. + (flush_dirty_back_buffer_on): Rename to + x_flush_dirty_back_buffer_on. + (x_flush_dirty_back_buffer_on): Check if the frame is complete + before trying to flip. + (handle_one_xevent): Flush frames in a more detailed fashion. + * src/xterm.h (struct x_output): New flag `complete'. + (FRAME_X_COMPLETE_P): New macro. + +2022-10-15 Yuan Fu + + Update ts-mode font-lock to work with tree-sitter's :feature + + * lisp/progmodes/ts-mode.el (ts-mode--settings): Add :feature flag. + (ts-mode): Set treesit-font-lock-feature-list. + +2022-10-15 Paul Eggert + + Fix ‘make bootstrap’ when the *.m4 files change + + This should help avoid problems like Bug#58535. + * Makefile.in (bootstrap-clean): Also remove autom4te.cache. + +2022-10-15 Michael Albinus + + Minor Tramp fixes + + * lisp/net/tramp-sh.el (tramp-perl-id): Fix Perl script. + (tramp-sh-handle-expand-file-name): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-expand-file-name): + Check, that there's really a Tramp file name. + +2022-10-15 Philip Kaludercic + + Merge branch 'master' into feature/package+vc + + * lisp/vc/vc-git.el (vc-git-symbolic-commit): Use --no-undefined + +2022-10-15 Philip Kaludercic + + * lisp/vc/vc-git.el (vc-git-symbolic-commit): Add argument FORCE + + (Bug#57400) + +2022-10-15 Philip Kaludercic + + * lisp/vc/vc-git.el (vc-git--rev-parse): Allow abbreviating commits + + * lisp/vc/vc-git.el (vc-git-working-revision): Use abbreviated comment + references. (Bug#57400) + +2022-10-15 Philip Kaludercic + + Handle ;;;###theme-autoload comments in etc/themes + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--emacs-batch): + Extract the autoloads and have them loaded along with loaddefs.el. + * etc/NEWS: Mention the new feature. (Bug#57639) + +2022-10-15 Philip Kaludercic + + Tag themes with properties + + * doc/emacs/custom.texi (Custom Themes): Document 'theme-choose-variant'. + * doc/lispref/customize.texi (Custom Themes): Document the new + optional argument to 'deftheme'. + (Autoload): Mention that 'deftheme' is not copied verbatim. + * etc/themes/adwaita-theme.el (adwaita): Add properties. + * etc/themes/deeper-blue-theme.el (deeper-blue): Add properties. + * etc/themes/dichromacy-theme.el (dichromacy): Add properties. + * etc/themes/light-blue-theme.el (light-blue): Add properties. + * etc/themes/manoj-dark-theme.el (manoj-dark): Add properties. + * etc/themes/misterioso-theme.el (misterioso): Add properties. + * etc/themes/tango-dark-theme.el (tango-dark): Add properties. + * etc/themes/tango-theme.el (tango): Add properties. + * etc/themes/tsdh-dark-theme.el (tsdh-dark): Add properties. + * etc/themes/tsdh-light-theme.el (tsdh-light): Add properties. + * etc/themes/wheatgrass-theme.el (wheatgrass): Add properties. + * etc/themes/whiteboard-theme.el (whiteboard): Add properties. + * etc/themes/wombat-theme.el (wombat): Add properties. + * etc/themes/modus-operandi-theme.el: Add properties. + * etc/themes/modus-vivendi-theme.el: Add properties. + * etc/themes/leuven-dark-theme.el (leuven-dark): Add properties. + * etc/themes/leuven-theme.el (leuven): Add properties. + * lisp/custom.el (deftheme): Allow for optional arguments to set the + property list. + (custom-declare-theme): Accept the same optional arguments as 'deftheme'. + (theme-list-variants): Add new function. + (theme-choose-variant): Add new command for switching between members + of a theme family. + (toggle-theme): Add an alias for 'theme-choose-variant'. + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload): + Handle 'defcustom's by extracting the properties. (Bug#57639) + +2022-10-15 Stefan Kangas + + Add no-byte-compile to the ".dir-locals.el" auto-insert template + + * lisp/autoinsert.el (auto-insert-alist): Add the no-byte-compile + cookie to the ".dir-locals.el" template. + +2022-10-15 Stefan Kangas + + Delete broken link to Network Theory Ltd. + + Sadly, their website has been down for several months already. + I was unable to find a new link, but it seems like they haven't + published anything new for over a decade. + * doc/misc/org.org (Summary): Remove broken link to Network Theory Ltd. + +2022-10-15 Eli Zaretskii + + Fix encoding and decoding of process I/O in Eshell on Windows + + * lisp/eshell/esh-proc.el (eshell-gather-process-output): Set up + encoding and decoding of text to/from the subprocess for + MS-Windows. (Bug#58281) + +2022-10-15 Po Lu + + Remove redundant call to expensive function XOpenDisplay + + * src/xterm.c (x_term_init): Speed up opening Emacs over a slow + network connection by an order of magnitude on no toolkit builds + by avoiding a redundant call to XOpenDisplay. + +2022-10-15 Po Lu + + Fix XDS file name expansion + + * lisp/x-dnd.el (x-dnd-handle-xds-drop): Expand file names + again. That code was mistakenly removed. + +2022-10-14 Stefan Kangas + + Use file-size-human-readable in memory-report--format + + * lisp/emacs-lisp/memory-report.el (memory-report--format): Use + file-size-human-readable. + +2022-10-14 Basil L. Contovounesios + + Update image-circular-tests.el + + * test/manual/image-circular-tests.el + (image-test-duplicate-keywords): Skip unless images are supported. + (image-test-circular-plist, image-test-:type-property-value): Ditto. + Wrap only failing forms in should[-error] rather than entire test + bodies. Use simpler printed notation in place of function calls. + (image-test-circular-specs): Ditto. Wrap overly wide docstring. + Mark as failing since shortly after its introduction (bug#36403#63). + +2022-10-14 Stefan Monnier + + src/textprop.c (get_char_property_and_overlay): Fix bug#58479 + + Correct `get-char-property` which failed to ignore empty overlays. + + * src/textprop.c (get_char_property_and_overlay): Make sure the + overlay covers the character. + * test/src/buffer-tests.el (buffer-tests--overlay-bug58479): New test. + * src/buffer.h (buffer_has_overlays): Avoid `interval_tree_size`. + +2022-10-14 Michael Albinus + + Rename `file-attribute-file-number' to `file-attribute-file-identifier' + + * doc/lispref/files.texi (File Attributes): + * etc/NEWS: + * lisp/files.el (find-buffer-visiting, find-file-noselect) + (set-visited-file-name, basic-save-buffer) + (file-attribute-file-identifier): + * lisp/startup.el (normal-top-level-add-subdirs-to-load-path): + * lisp/eshell/em-unix.el (eshell-shuffle-files): + * src/dired.c (Ffile_attributes): + Rename `file-attribute-file-number' to `file-attribute-file-identifier'. + +2022-10-14 Eli Zaretskii + + Document how to control where the *.eln files are written + + * doc/lispref/compile.texi (Native Compilation): Document the + trick of pointing $HOME to a non-existent directory. + (Native-Compilation Variables): Document the role of + 'native-comp-eln-load-path' in determining where *.eln files are + written. + +2022-10-14 Alan Mackenzie + + Correctly fontify C++'s operator"" _tag (...) + + Give both the "" and _tag font-lock-function-name-face. Also correct the + fontification of an inherited class name when there is an attribute between + the class name being declared and the colon introducing the inheritance. + + * lisp/progmodes/cc-engine.el (c-forward-over-colon-type-list): New function. + (c-forward-keyword-clause): Use the above new function instead of a + looking-at. + (c-forward-name, c-forward-declarator): Accept both the "" and the tag as part + of the name. + + * lisp/progmodes/cc-fonts.el (c-font-lock-declarators): Fontify the "" (which + already has font-lock-string-face) and the tag with + font-lock-function-name-face. + + * lisp/progmodes/cc-langs.el (c-overloadable-operators): Add "" to this list. + (c-sub-colon-type-list-re): New lang-const and lang-var. + +2022-10-14 Philip Kaludercic + + Add a quick-help menu + + * lisp/help.el (help-map): Bind 'help-quit-or-quick' instead of 'help-quit'. + (help-quick-sections): Add variable. + (help-quick): Add main command. + (cheat-sheet): Add alias for 'help-quick'. + (help-quit-or-quick): Add auxiliary command. + lisp/help.el (help-for-help): Mention 'help-quit-or-quick'. + * etc/NEWS (https): Mention 'help-quit'. + +2022-10-14 Philip Kaludercic + + * lisp/net/rcirc.el (rcirc-bridged-nick): Inherit from highlight + +2022-10-14 Philip Kaludercic + + Allow filtering what items are added to Ecomplete + + * etc/NEWS: Mention new option. + * lisp/ecomplete.el (ecomplete-filter-regexp): Add new option. + (ecomplete-add-item): Respect new option. (bug#58487) + +2022-10-14 Philip Kaludercic + + Prevent .dir-locals.el from being byte-compiled + + * lisp/files-x.el (modify-dir-local-variable): Add a 'no-byte-compile' + file local variable when generating a .dir-locals.el + file. + * .dir-locals.el: Add 'no-byte-compile'. (Bug#58486) + +2022-10-14 Philip Kaludercic + + * lisp/net/rcirc.el (rcirc-generate-log-filename): Append ".log" + + (Bug#54718) + +2022-10-14 Philip Kaludercic + + Prepare all inline patches at once + + * lisp/vc/vc.el (vc-prepare-patch): Remove the usage of + 'recursive-edit' when 'vc-prepare-patches-separately' is non-nil. + +2022-10-14 Philip Kaludercic + + Allow reordering commits in 'vc-prepare-patch' prompt + + * lisp/vc/vc.el (vc-prepare-patch): Use marked log-view commits as + initial input. + +2022-10-14 Philip Kaludercic + + Mention that vc-prepare-patch can interact with a log-view + + * lisp/play/zone.el (zone): Allow selecting a program + +2022-10-14 Robert Pluim + + Add cross-reference to alternative syntaxes for Unicode + + These alternative syntaxes allow you to specify Unicode codepoints + using only ASCII, which helps avoid decoding issues. + + * doc/emacs/custom.texi (Init Non-ASCII): Add cross reference to + "General Escape Syntax" in the Emacs Lisp Reference Manual. + +2022-10-14 Reuben Thomas + + Do perl documentation lookups case-insensitively, like man + + * lisp/progmodes/cperl-mode.el (cperl-perldoc): add -i to the perldoc + command. + +2022-10-14 Po Lu + + Fix bug#56153 + + * src/nsterm.m (get_keysym_name) + (ns_draw_glyphless_glyph_string_foreground): Fix new Mac OS + deprecations. + + ([EmacsApp terminate:]): Use kbd_buffer_store_event instead + of emacs_event. (bug#56153) + ([EmacsView windowDidChangeBackingProperties:]): Fix new Mac + OS deprecation. + +2022-10-14 Po Lu + + Avoid redundant creation of XRender pictures + + * src/xterm.c (x_composite_image): Take arg DESTINATION. Do not + create a picture if it is set. + (x_draw_image_foreground, x_draw_image_foreground_1): Pass + destination where appropriate. + +2022-10-14 Stefan Kangas + + Merge from origin/emacs-28 + + 85e47d9a9e ; Continued cleanup of "-hooks" + +2022-10-13 Yuan Fu + + Update tree-sitter manual to reflect the previous commit + + * doc/lispref/modes.texi: Update manual to reflect previous change: + remove :toggle and :level, add :feature. Document new variables and + functions. + * doc/lispref/parsing.texi: Add the missing closing bracket in + @code{(t . nil)}. + +2022-10-13 Yuan Fu + + Rework tree-sitter font-lock + + Remove :toggle and :level, add :feature. + + * lisp/progmodes/js.el (js--treesit-settings): Add :feature. + (js--treesit-enable): Set treesit-font-lock-feature-list. + * lisp/progmodes/python.el: Replace :level with :feature. + (python-mode): Set treesit-font-lock-feature-list. + * lisp/treesit.el (treesit-font-lock-feature-list): New variable. + (treesit-font-lock-settings): Change format. + (treesit-font-lock-rules): Remove :toggle and :level, add :feature. + (treesit-font-lock-recompute-features): New function. + (treesit-font-lock-fontify-region): Change to work with the new + format. + (treesit-font-lock-enable): Add call to + treesit-font-lock-recompute-features. And improve the font-lock-mode + workaround. + +2022-10-13 Yuan Fu + + * doc/lispref/parsing.texi: Add manual for treesit-query-language. + + * src/treesit.c (Ftreesit_query_language): New function. + +2022-10-13 Michael Albinus + + Clarify structure of file-attribute's device number + + * doc/lispref/buffers.texi (Buffer File Name): Fix description of + buffer-file-number. + + * doc/lispref/files.texi (File Attributes): Clarify type of device + number. Describe file-attribute-file-number. (Bug#58446) + + * etc/NEWS: Mention file-attribute-file-number. + + * lisp/files.el (buffer-file-number, file-attribute-device-number) + (file-attribute-collect): Fix docstring. + (file-attribute-file-number): New defsubst. + (find-buffer-visiting, find-file-noselect) + (set-visited-file-name, basic-save-buffer): + * lisp/startup.el (normal-top-level-add-subdirs-to-load-path): + * lisp/eshell/em-unix.el (eshell-shuffle-files): Use it. + + * src/dired.c (Ffile_attributes): Fix docstring. + +2022-10-13 Paul Eggert + + Improve checks for recent "File exists" fixup + + * src/fileio.c (Finsert_file_contents): Add an assertion (bug#42431). + +2022-10-13 Stefan Kangas + + Make `info' treat "\n" in node names as "\s" + + * lisp/info.el (info): Treat "\n" in node name as "\s". (Bug#57936) + +2022-10-13 Po Lu + + Shrink client list window structure + + * src/xterm.c (struct x_client_list_window): Rearrange members + for better alignment. + +2022-10-13 Paul Eggert + + Simplify recent "File exists" fix + + * src/fileio.c (Finsert_file_contents): + Simplify previous change that fixed bug#42431. + +2022-10-13 Lars Ingebrigtsen + + Fix hl-line-mode/global-hl-line-mode logic again + + * lisp/hl-line.el (hl-line-mode): Make explicit calls to + (hl-line-mode 1) work again when global-hl-line-mode is on + (bug#58478). + +2022-10-13 Lars Ingebrigtsen + + Fix browse-url-emacs for file: URLs on Windows + + * lisp/net/browse-url.el (browse-url-emacs): Fix up + file:///c:/foo/bar URLs on windows (bug#58464). + +2022-10-13 Juri Linkov + + * lisp/outline.el: Rearrange button/margin functions. + + (outline--make-button-overlay, outline--make-margin-overlay) + (outline--insert-open-button, outline--insert-close-button) + (outline--fix-up-all-buttons): Move to the section "Button/margin indicators". + +2022-10-13 Juri Linkov + + * lisp/outline.el (outline--fix-buttons-after-change): New function. + + (outline-minor-mode): Use it. + (outline--make-margin-overlay): Remove inhibit-read-only. + +2022-10-13 Lars Ingebrigtsen + + Fix misleading "File exists, but cannot be read" in browse-url-emacs + + * src/fileio.c (Finsert_file_contents): Don't signal an error + about not being able to open the file when we're fetching things + via handlers -- in that case, modtime isn't necessarily set, and + if there's a handler, it should take care of this (bug#42431). + +2022-10-13 Stefan Kangas + + Merge from origin/emacs-28 + + 4b4b093ab3 ; * admin/make-tarball.txt: Fix typo. + +2022-10-12 Stefan Monnier + + src/frame.c (do_switch_frame): Fix bug#58343 + + * src/frame.c (do_switch_frame): Move call to `get-mru-window` outside + of the "critical region" where (selected-window) != (frame-selected-window). + * src/minibuf.c (move_minibuffers_onto_frame): Add arg `frame`. + Use it instead of `selected_frame`. Adjust all callers. + * src/lisp.h (move_minibuffers_onto_frame): Adjust declaration. + +2022-10-12 Philip Kaludercic + + * etc/NEWS: Mention package-vc additions + +2022-10-12 Philip Kaludercic + + Document package-vc + + * doc/emacs/package.texi (Package Files): Add new node. + +2022-10-12 Philip Kaludercic + + Allow specifying a package name for 'package-vc-link-directory' + + * lisp/emacs-lisp/package-vc.el (package-vc-link-directory): Add argument NAME + +2022-10-12 Philip Kaludercic + + * lisp/emacs-lisp/package-vc.el (package-vc-refresh): Add function. + +2022-10-12 Philip Kaludercic + + Rename 'package-vc-link-project' to 'package-vc-link-directory' + + * lisp/emacs-lisp/package-vc.el (package-vc-link-project): Rename it. + +2022-10-12 Philip Kaludercic + + Run 'package-vc-unpack-1' after updating source packages + + * lisp/emacs-lisp/package-vc.el (package-vc-update): Call + 'package-vc-unpack-1'. + +2022-10-12 John Wiegley + + Merge pull request from conao3/add-commands-keyword + + GitHub-reference: https://github.com/jwiegley/use-package/issues/917 + +2022-10-12 Yuan Fu + + Better signal data for treesit-load-language-error + + * src/treesit.c (ts_load_language): Better formatted signal data, + (Ftreesit_langauge_available_p): Optionally return the signal data if + language not available. + * doc/lispref/parsing.texi: Document the signal data in detail. + +2022-10-12 Philip Kaludercic + + Add new command to install a package via symbolic linking + + * lisp/emacs-lisp/package-vc.el (package-vc-unpack-1): Add new function. + (package-vc-unpack): Use 'package-vc-unpack-1'. + (package-vc-link-project): Add new command. + +2022-10-12 Lars Ingebrigtsen + + Clarify Native-Compilation Variables slightly + + * doc/lispref/compile.texi (Native-Compilation Variables): Clarify + trampoline bit (bug#58429). + +2022-10-12 Philip Kaludercic + + Only use 'package-vc-repository-store' if necessary + + * lisp/emacs-lisp/package-vc.el (package-vc-unpack): Check if the + upstream data indicates a custom lisp directory. + * lisp/emacs-lisp/package.el (package--delete-directory): Adapt + accordingly. + +2022-10-12 Po Lu + + Improve makefile-imake-mode + + * lisp/progmodes/make-mode.el + (makefile-imake-font-lock-keywords): Give Imake priority over + CPP keywords, and don't require comments to start at BOL. + (makefile-imake-mode): Set comment-start to some sensible value. + +2022-10-12 Lars Ingebrigtsen + + Fix thinko in read-string-from-buffer + + * lisp/textmodes/string-edit.el (string-edit-done): Return an empty + string when the user has entered no text. + +2022-10-12 kobarity + + Fix Python completion when point in shell buffer is before prompt + + * lisp/progmodes/python.el (python-shell-completion-at-point): Limit + prompt boundaries check to shell buffer. + * test/lisp/progmodes/python-tests.el (python-shell-completion-2): + (python-shell-completion-native-2): New tests (bug#58441). + +2022-10-12 Po Lu + + Stop relying on Xt hack to set window manager hints + + * src/widget.c (get_wm_shell): Return WMShellWidget. + (update_wm_hints, widget_update_wm_size_hints): Return whether + or not size hints changed. + * src/widget.h: Delete `size_switch'. + * src/widgetprv.h (EmacsFramePart): Likewise. + * src/xterm.c (x_wm_set_size_hint): Set size hints the usual way + if Xt did not set them. (bug#58412) + +2022-10-12 Theodor Thornhill + + Add TypeScript support with tree-sitter + + * lisp/progmodes/ts-mode.el (ts-mode): New major mode for TypeScript + with support for tree-sitter. It uses the TSX parser, so that we get + support for TSX as well as TypeScript. If we cannot find tree-sitter, + we default to using js-mode. + +2022-10-12 Stefan Kangas + + Merge from origin/emacs-28 + + 3787d0b11a ; * doc/lispref/windows.texi (Window Hooks): Fix markup (b... + +2022-10-11 Andrea Corallo + + Add trampoline AOT compilation target (bug#58318) + + * Makefile.in (trampolines): New target. + * lisp/Makefile.in (trampolines): Likewise. + * lisp/emacs-lisp/comp.el (comp-compile-all-trampolines): New + function. + +2022-10-11 Theodor Thornhill + + Fix byte-compile warning for js--treesit-defun-type-regexp + + * lisp/progmodes/js.el (js--treesit-defun-type-regexp): Move before + js--treesit-beginning-of-defun. + +2022-10-11 Yuan Fu + + Lazily compile tree-sitter query + + See comment on struct Lisp_TS_Query for why. Previous commits adding + python and js support for tree-sitter breaks Emacs build if language + definitions aren't available at build time. This commit fixes that. + + Now query object don't compile the query upon creation, but stores the + query source and language symbol, and compiles upon first use (in + treesit-query-capture). + + I want ts_ensure_query_compiled to return signal symbol and data + rather than signaling itself, because it's a helper function not lisp + function. But because it calls ts_load_language, I had to update + ts_load_language to also use the signal symbol/data interface. + + * src/treesit.h (struct Lisp_TS_Query): Add two new field. + * src/treesit.c (ts_load_language): Return signal symbol and data + rather than signaling itself. + (Ftreesit_langauge_available_p) + (Ftreesit_parser_create): Update usage of ts_load_language + + (make_ts_query): Now returns a lisp object. + (ts_query_error_to_string): Moved because it's used by + ts_compose_query_signal_data. + (ts_compose_query_signal_data) + (ts_ensure_query_compiled): New functions. + (Ftreesit_query_compile): Delay compiling the query. + (Ftreesit_query_capture): Instead of creating a query object which + compiles the query, now goes two routes: if QUERY is a query object, + make sure it is compiled and use the TSQuery; if QUERY is a cons or + string, compile directly to TSQuery, and free it after use. Creating + a lisp query requires the language symbol, but in this function we + only have TSLanguage. + +2022-10-11 Stefan Monnier + + itree.c (check_tree): Simplify + + * src/itree.c (struct check_subtree_result): Remove `complete`. + (check_subtree): Remove `max_depth` arg (and adjust callers). + Use 0 as black-depth of empty tree. + Remove redundant `node->parent` check (already performed by the caller). + (check_tree): Replace with `check_tree_common` (update all callers). + Check the root's `parent` field. + (check_tree_no_rb): Delete function, inlined in its sole caller. + (interval_tree_remove): Add call to `check_tree` (without RB checks) + before `interval_tree_remove_fix`. Move update of `size` + field accordingly. + +2022-10-11 Po Lu + + Also avoid setting _NET_WM_USER_TIME on crossing + + * src/xterm.c (handle_one_xevent): Stop setting user time prop + on crossing events. + +2022-10-11 João Távora + + * eglot.el (version): actually bump to 1.9 + +2022-10-11 Lars Ingebrigtsen + + Make read-string-from-buffer and string-edit mention each other + + * lisp/textmodes/string-edit.el (read-string-from-buffer) + (string-edit): Mention each other in the doc strings. + +2022-10-11 Eli Zaretskii + + Speed up scrolling when lines are very long and truncated + + * src/window.c (window_scroll_for_long_lines): New function. + (window_scroll): Call 'window_scroll_for_long_lines' when lines + are very long and truncated on display. Also, disable + 'fontification-functions' during scrolling in that case. + * src/xdisp.c (redisplay_window): When recentering the window's + display, go back to the centering position using a simplified + method, if lines in the buffer are very long and truncated on + display. + +2022-10-11 Po Lu + + Remove some more unnecessary calls to block_input + + * src/xterm.c (x_update_opaque_region, show_back_buffer) + (XTbuffer_flipping_unblocked_hook, x_clear_under_internal_border) + (x_after_update_window_line): Remove and add calls to + block_input as required. + +2022-10-10 Matt Armstrong + + Stop reading and writing the itree_null.parent field entirely. + + With this change all fields in the itree_null sentinel are read only. + This makes accessing itree_null thread safe in an obvious way. + + Because it took two commits from two peole to get this right, I think + we can call this design fragile and difficult to reason about. + Another benefit of this commit is as preparation for removing sentinel + node completely, and just using NULL. + + * src/itree.c (itree_null): Statically initialize itree_null.parent to + NULL. It is never accessed. + (null_is_sane): Assert parent == NULL. + (interval_tree_remove_fix): Remove unnecessary assignments to parent + from node->parent. These were the last places itree_null.parent were + read. + (interval_tree_remove): Avoid an assignment to itree_null.parent + through min->right->parent. + (interval_tree_transplant): Avoid an assignment to itree_null.parent + through source->parent. + +2022-10-10 Matt Armstrong + + Simplify itree_null initialization + + * src/itree.c (null_is_sane): call eassert directly, check + REAR_ADVANCE, FRONT_ADVANCE. Add FIXME that PARENT is still + read/write. + (itree_null): initialize statically + (itree_init): remove initialization code, call eassert(null_is_sane()) + (check_tree_common): call eassert (null_is_sane()) + +2022-10-10 Matt Armstrong + + Check red-black invariants in most places + + Stefan recently disabled this but I happened to want it back soon + after. + + * src/itree.c (check_subtree): new arg: allow_red_red + (check_tree_common): renamed from check_tree, pass allow_red_red + through. + (check_tree): new function, pass allow_red_red=false + (interval_tree_insert): check_tree -> check_tree_common with + allow_red_red=true. + +2022-10-10 Matt Armstrong + + Improve check_subtree + + * src/itree.c (struct check_subtree_result): new struct returned by + check_subtree. + (check_subtree): new function, renamed from recurse_check_tree. Add + new black height assertions. + (check_tree): assert that the tree has non-negative size, assert that + limiting to interval_tree_max_height(tree) levels is enough to + traverses the complete tree. + +2022-10-10 F. Jason Park + + Accommodate missing spec values in erc-format-message + + * lisp/erc/erc.el (erc-format-message): Although not mentioned in its + log message, commit 5281946fbf6b3cdbec5ce82e0057c71849faf4d2 "Make + format-spec accept function substitutions" also fixed a bug involving + the `ignore-missing' parameter of `format-spec'. Until now, ERC has + been relying on the old behavior to gracefully handle malformed server + messages. This commit tries to regain that functionality. + +2022-10-10 Philipp Stephani + + Add gettid to seccomp-filter + + * lib-src/seccomp-filter.c (main): gettid is necessary on RHEL 9.0 + (bug#56359). + +2022-10-10 Lars Ingebrigtsen + + Remove the view-remove-frame-by-deleting variable + + * lisp/view.el (view-remove-frame-by-deleting): Remove variable + that hasn't been used since 2011 -- 357f93d245344 reworked the + code and stopped using it (bug#58413). + +2022-10-10 kobarity + + Fix Python completion failure under certain conditions + + * lisp/progmodes/python.el (python-shell-send-string-no-output): + Save and restore `comint-last-prompt-overlay' or `comint-last-prompt'. + * test/lisp/progmodes/python-tests.el (python-tests-shell-wait-for-prompt): + New helper function. + (python-tests-with-temp-buffer-with-shell): New helper macro. + (python-shell-completion-1, python-shell-completion-native-1) + (python-shell-completion-native-with-ffap-1) + (python-shell-completion-native-with-eldoc-1): New tests (bug#58389). + +2022-10-10 Lars Ingebrigtsen + + Improve error message from sqlite-execute + + * src/sqlite.c (sqlite_prepare_errmsg): New function. + (Fsqlite_execute): Use it to get the same error format for both + execute and select. + (Fsqlite_select): Factored out from here. + +2022-10-10 Jim Porter + + Don't prompt when killing an Emacs client if it's the last client + + * lisp/server.el (server-kill-emacs-query-function): Ignore the + current client (if any) when checking for live clients (bug#58404). + +2022-10-10 Daniel Martín + + Fix typo in Makefile.in + + * src/Makefile.in (TREE_SITTER_CFLAGS): Set the correct C flags. + +2022-10-10 Michael Albinus + + Fix Tramp completion on MS Windows + + * lisp/net/tramp.el (tramp-build-remote-file-name-spec-regexp): + Revert previous change, it's too complicate. + (tramp-build-completion-file-name-regexp): + Use `tramp-prefix-format' instead of `tramp-prefix-regexp'. (Bug#558133) + +2022-10-10 Paul Eggert + + Port bwrap/allows-stdout test to Ubuntu 22.04.1 + + Without this patch, Ubuntu 22.04.1 x86-64 "make check" reports a + failure in test/src/emacs-tests.el’s + emacs-tests/bwrap/allows-stdout. One can reproduce the bug + without using the Emacs executable, by running this script: + + #!/bin/bash + export LC_ALL=C + exec strace -f -o /tmp/tr bwrap --ro-bind / / --seccomp 20 -- \ + cat /dev/null 20< lib-src/seccomp-filter-exec.bpf + + This script exits with status 159, because "cat" didn’t get + started (it got a SIGSYS signal early on). + + The command "journalctl -g SECCOMP" indicated that rseq (syscall + 334) was the problem. This syscall is issued by + /lib64/ld-linux-x86-64.so.2 before ‘main’ is called. + + There’s another problem with the clone3 syscall, which is used by + pthread_create starting in glibc 2.34. pthread_create is called + by g_child_watch_source_new, which is called by + init_process_emacs. + + * lib-src/seccomp-filter.c (main): Allow rseq, clone3. This + causes the test to pass. Perhaps a fancier, more accurate patch + could be written by someone who has the time. + +2022-10-10 Yuan Fu + + Make treesit-node-at faster + + * lisp/treesit.el (treesit-node-at): We only need to use + treesit-node-first-child-for-pos. This is both faster for large + buffers and simpler. Also remove the TODO comment. + +2022-10-10 Theodor Thornhill + + Fix typo in treesit--check-manual-covarage + + * lisp/treesit.el (treesit--check-manual-coverage): Fix typo in + function name and also lookup the correct library in + `find-library-name' + +2022-10-10 Yuan Fu + + Improve treesit-search-forward-goto so it doesn't stuck at EOF + + * lisp/treesit.el (treesit-search-forward-goto): Handle the edge case. + +2022-10-10 Yuan Fu + + * admin/notes/tree-sitter/starter-guide (Navigation): Improve demo. + +2022-10-10 Yuan Fu + + Fix js--treesit-beginning/end-of-defun + + * lisp/progmodes/js.el (require): Add rx. + (js--treesit-move-to-node): Remove function. + (js--treesit-beginning-of-defun) + (js--treesit-end-of-defun): Change to use treesit-search-forward-goto. + (js-treesit--defun-query): Remove variable. + (js--treesit-defun-type-regexp): Add variable. + +2022-10-10 Theodor Thornhill + + Add tree-sitter functionality to js-mode + + The diff for js-mode, js-json-mode, js-jsx-mode are a bit strange, but + all we did is to wrap some the old code in + + (if tree-sitter + (tree-sitter-enable) + ...some old-code) + + ...other old-code (that’s tree-sitter-agnostic) + + * lisp/progmodes/js.el (treesit): Add tree-sitter dependency + (js-use-treesitter) + (js-json-use-treesitter): New custom options. + + (js--treesit-keywords) + (js--treesit-settings) + (js--treesit-indent-rules) + (js--json-treesit-settings) + (js--json-treesit-indent-rules): New variables. + + (js--treesit-backward-up-list) + (js-treesit-current-defun) + (js--treesit-move-to-node) + (js--treesit-beginning-of-defun, js--treesit-end-of-defun) + (js--treesit-enable) + (js--json-treesit-enable): New functions. + + (js-mode, js-json-mode, js-jsx-mode): Add support for tree-sitter + functionalities. + +2022-10-10 Yuan Fu + + Fix tree-sitter build script in admin/notes + + * admin/notes/tree-sitter/build-module/README: Add explanation. + * admin/notes/tree-sitter/build-module/build.sh: change + typescript to tsx. + +2022-10-10 Lars Ingebrigtsen + + Add a test for sqlite "insert ... returning" + + * test/src/sqlite-tests.el (sqlite-returning): Add a test for + "insert ... returning". + +2022-10-10 Robert Pluim + + Fix `vc-prepare-patch' docstring + + * lisp/vc/vc.el (vc-prepare-patch): Correct description of + `vc-prepare-patches-separately'. + +2022-10-10 Lars Ingebrigtsen + + Support "insert into ... returning ..." in sqlite-execute + + * doc/lispref/text.texi (Database): Mention it. + * src/sqlite.c (Fsqlite_execute): Support syntax like "insert into + ... returning ..." (bug#58390). + +2022-10-10 Lars Ingebrigtsen + + Fix some indentation in Fsqlite_execute + + * src/sqlite.c (Fsqlite_execute): Fix indentation. + +2022-10-09 Yuan Fu + + Rename custom group treesit to tree-sitter + + * lisp/treesit.el (treesit): Rename. + +2022-10-09 Yuan Fu + + Add :version tag for new tree-sitter custom options + + * lisp/progmodes/python.el (python-use-tree-sitter): Add version tag. + * lisp/treesit.el (treesit): + (treesit-max-buffer-size): Add version tag. + +2022-10-09 Yuan Fu + + Make python tree-sitter font-lock support decoration levels + + * lisp/progmodes/python.el (python--treesit-settings): Stratify into + three levels. + +2022-10-09 Yuan Fu + + Make tree-sitter font-lock support decoration levels + + * admin/notes/tree-sitter/html-manual/Parser_002dbased-Font-Lock.html: + Update. + * admin/notes/tree-sitter/html-manual/Parsing-Program-Source.html: + Update. + * doc/lispref/modes.texi: Mention the new :level option. + * lisp/treesit.el (treesit-font-lock-settings): Update docstring. + (treesit-font-lock-rules): Support :level. Relayout the let form. + (treesit-font-lock-fontify-region): Support :level. + +2022-10-09 Yuan Fu + + Add note on tree-sitter's naming convention + + * admin/notes/tree-sitter/starter-guide: Add note. + * doc/lispref/parsing.texi: Add note. + +2022-10-09 Stefan Monnier + + Tighten up handling of `otick` + + Move args between `build_overlay` and `add_buffer_overlay`, + to try and keep buffer positions together with their buffer. + Be more strict in the `otick` values passed to `interval_tree_insert`. + Move a few things around to try and reduce dependencies through `.h` files. + Fix a thinko bug in `check_tree`. + + * src/alloc.c (build_overlay): Remove `begin` and `end` args. + + * src/buffer.c (add_buffer_overlay): Move from `buffer.h`. + Add `begin` and `end` args. + (copy_overlays): Adjust accordingly. + (Fmake_overlay): Use BUF_BEG and BUF_Z; adjust call to `build_overlay` + and `add_buffer_overlay`. + (Fmove_overlay): Use BUF_BEG and BUF_Z; Use the new `begin` and `end` + args of `add_buffer_overlay` so we don't need to use + `interval_node_set_region` when moving to a new buffer. + (remove_buffer_overlay, set_overlay_region): Move from `buffer.h`. + + * src/buffer.h (set_overlay_region, add_buffer_overlay) + (remove_buffer_overlay): Move to `buffer.c`. + (build_overlay): Move from `lisp.h`. + (maybe_alloc_buffer_overlays): Delete function (inline into its only + caller). + + * src/itree.c (interval_tree_insert): Move declaration `from buffer.h`. + (check_tree): Fix initial offset in call to `recurse_check_tree`. + Remove redundant check of the `limit` value. + (interval_node_init): Remove `begin` and `end` args. + (interval_tree_insert): Mark it as static. + Assert that the new node's `otick` should already be up-to-date and its + new parent as well. + (itree_insert_node): New function. + (interval_tree_insert_gap): Assert the otick of the removed+added nodes + were up-to-date and mark them as up-to-date again after adjusting + their positions. + (interval_tree_inherit_offset): Check that the parent is at least as + up-to-date as the child. + + * src/lisp.h (build_overlay): Move to `buffer.h`. + + * src/itree.h (interval_node_init): Adjust accordingly. + (interval_tree_insert): Remove declaration. + (itree_insert_node): New declaration. + +2022-10-09 Philip Kaludercic + + Rename 'package-vc-fetch' to 'package-vc-install' + + * lisp/emacs-lisp/package-vc.el (package-vc-fetch): Rename to preserve + symmetry with 'package-install'. + (package-checkout): Follow the previous rename. + +2022-10-09 Michael Heerdegen + + Try to speed up extended command shorthand computation + + Discussed in Bug#51143. + + * lisp/simple.el (execute-extended-command--shorter): Compute a + complete list of `commandp' symbols once. This significantly speeds + up complicated cases while the slowdown of simple cases is still + acceptable. + +2022-10-09 समीर सिंह Sameer Singh + + Set the PARENTS argument for language environments + + * lisp/language/indonesian.el + * lisp/language/philippine.el + * lisp/language/misc-lang.el + (set-language-info-alist): Add PARENTS argument. (Bug#58376) + +2022-10-09 Lars Ingebrigtsen + + Make Fsqlite_select error data better + + * src/sqlite.c (Fsqlite_select): Add more the more specific error + text to the error data (bug#58363). + +2022-10-09 Lars Ingebrigtsen + + Clean up Fsqlite_select slightly + + * src/sqlite.c (Fsqlite_select): Clean up code slightly. + +2022-10-09 Po Lu + + Fix user time handling bug on GNOME Shell and Metacity + + * src/xfns.c (x_window): Avoid extraneous + XChangeWindowAttributes. + * src/xterm.c (x_display_set_last_user_time): New argument + SET_PROPERTY. Do not change the user time property if it is not + true. All callers changed. + (handle_one_xevent): Avoid setting the user time property on + LeaveNotify and XI_Leave events. + +2022-10-09 Stefan Monnier + + itree.c: Use `interval_tree_inherit_offset` + + The insertion code tried to manipulate the offset in its own way, + and apparently there was a bug in it. Replace that with a call to + `interval_tree_inherit_offset`, making the whole logic a bit simpler, + and fixing a bug along the way (not sure where the bug was, to be honest). + + * src/itree.c (interval_tree_insert): Use `interval_tree_inherit_offset`. + Check the tree before insert_fix. + (recurse_check_tree): Don't check RB invariants. + (itree_limits_are_stable): Delete function (subsumed by `check_tree`). + +2022-10-09 Stefan Kangas + + Merge from origin/emacs-28 + + 32ef7550ed ; Improve documentation of 'file-in-directory-p' + +2022-10-08 Matt Armstrong + + Debug check overlay tree invariants + + * src/itree.c (check_tree): + (recurse_check_tree): new functions. + (interval_tree_insert): call them. + (interval_tree_remove): ditto. + (interval_tree_insert_fix): ditto. + +2022-10-08 Matt Armstrong + + Comment change: explain inheriting "dirty" offsets + + handles inheriting offsets from dirty nodes. + +2022-10-08 Stefan Monnier + + * lisp/url/url-file.el (url-file): Don't bind `coding-system-for-read` + + Binding it causes errors when some of the enclosed code ends up + loading a `.el` file, and it is unnecessary since the rest of + the code (in `url-file-asynch-callback`) is already careful to + use `insert-file-contents-literally`. + +2022-10-08 Mattias Engdegård + + Restrict string-lessp vectorization to safe architectures + + * src/fns.c (HAVE_FAST_UNALIGNED_ACCESS): New. + (Fstring_lessp): Only use word operations where safe, because string + data from purespace may be unaligned. + +2022-10-08 Mattias Engdegård + + Better Lisp_String comments + + * src/lisp.h (struct Lisp_String): Comments improved. + * src/pdumper.c (dump_string): Update hash (comment change only). + +2022-10-08 Mattias Engdegård + + Improved format string error message (bug#58168) + + * src/editfns.c (styled_format): Better message when the conversion + char is non-ASCII from a unibyte format string. + +2022-10-08 Philip Kaludercic + + * lisp/emacs-lisp/package-vc.el: Autoload 'package-vc-prepare-patch' + +2022-10-08 Stefan Monnier + + package.el: Understand a few more variations in tarball formats + + * lisp/emacs-lisp/package.el (package-untar-buffer): Fix thinko. + (package-tar-file-info): Handle the case where the first file is in + a subdirectory. + + * test/lisp/emacs-lisp/package-tests.el (package-test-bug58367): New test. + * test/lisp/emacs-lisp/package-resources/ustar-withsub-0.1.tar: + * test/lisp/emacs-lisp/package-resources/v7-withsub-0.1.tar: New files. + +2022-10-08 Lars Ingebrigtsen + + Make sqlite-select signal errors when there's an error + + * src/sqlite.c (load_dll_functions): Update. + (Fsqlite_select): Signal an error when there's an error preparing + the statement. + +2022-10-08 Lars Ingebrigtsen + + Fix vtable-insert-object line insertion + + * lisp/emacs-lisp/vtable.el (vtable-insert-object): Pass in the + correct ellipsis values (bug#58370). + (vtable--insert-line): Don't bug out on missing optional arguments. + +2022-10-08 Visuwesh + + Fix misleading prompt in vc-git-create-tag + + * lisp/vc/vc-git.el (vc-git-create-tag): Actually pass the DEFAULT + argument to vc-read-revision (bug#58378). + +2022-10-08 Lars Ingebrigtsen + + Fix typo in etc/TODO + +2022-10-08 Michael Albinus + + * etc/TODO (Wishlist items): Add libarchive(3) integration. + +2022-10-08 Lars Ingebrigtsen + + Mention seq-keep in shortdoc + + * lisp/emacs-lisp/shortdoc.el (sequence): Mention seq-keep. + +2022-10-08 João Távora + + Fix docstring of eglot-list-connections-mode + + * eglot.el (eglot-list-connections-mode): Fix mistaken reference + to similar non-Eglot code. + +2022-10-08 Philip Kaludercic + + Clone packages into a separate directory + + * lisp/emacs-lisp/package-vc.el (package-vc-repository-store): Add new + user option. + (package-vc-unpack): Use 'package-vc-repository-store'. + * lisp/emacs-lisp/package.el (package--delete-directory): Check and + handle source packages. + (package-delete): Invoke 'package--delete-directory' with an + additional argument. + +2022-10-08 Philip Kaludercic + + * lisp/emacs-lisp/package.el (package-report-bug): Use 'file-in-directory-p' + +2022-10-08 Philip Kaludercic + + Extend package-vc heuristics to multiple source forges + + * package-vc.el (package-vc-probable-repository-regexp): Rename to + 'package-vc-heusitic-alist'. + (package-vc-heusitic-alist): Add support for multiple VC backends. + (package-vc-sourced-packages-list): Use 'package-vc-heusitic-alist' + +2022-10-08 Philip Kaludercic + + Use 'package-vc-p' in package-vc.el + + * package-vc.el (package-vc-commit): Use it instead of 'eq'. + (package-vc-version): Use it instead of 'eq'. + +2022-10-08 Philip Kaludercic + + Add a package-vc command for submitting ptches + + * lisp/emacs-lisp/package-vc.el (package-vc-read-pkg): Add auxiliary + command for querying source packages. + (package-vc-prepare-patch): Add it. + * lisp/emacs-lisp/package.el (package-maintainers): Add an optional + NO-ERROR argument. + +2022-10-08 Philip Kaludercic + + Extract package maintainer guessing code into a separate function + + * package.el (package-maintainers): Add new function. + (package-contact-maintainer): Use it. + (package-report-bug): Use it. + +2022-10-08 Philip Kaludercic + + Add an inline procedure for checking for source packages + + * package.el (eval-when-compile): Require 'inline during compilation. + (package-vc-p): Add inline function. + (package-desc-full-name): Use it. + (package-load-descriptor): Use it. + (package--get-activatable-pkg): Use it. + (package-install-from-archive): Use it. + (package-update): Use it. + (package-desc-status): Use it. + (package--remove-hidden): Use it. + (package-menu--print-info-simple): Use it. + +2022-10-08 Philip Kaludercic + + Merge branch 'master' into feature/package+vc + +2022-10-08 Philip Kaludercic + + Add a VC command to prepare patches + + * doc/emacs/vc1-xtra.texi (Miscellaneous VC): Add new node. + (Editing VC Commands): Document new feature. + * etc/NEWS: Mention 'vc-prepare-patch'. + * lisp/vc/log-view.el: Autoload 'log-view-get-marked'. + * lisp/vc/vc-git.el (vc-git-prepare-patch): Add Git implementation. + * lisp/vc/vc-hg.el (vc-git-prepare-patch): Add Mercurial implementation. + * lisp/vc/vc-bzr.el (vc-git-prepare-patch): Add Bazaar implementation. + * lisp/vc/vc.el (vc-read-revision): Add a MULTIPLE argument. + (vc-read-multiple-revisions): Add an auxiliary function that always + calls 'vc-read-revision' with a non-nil value for MULTIPLE. + (vc-prepare-patches-separately): Add user option. + (message-goto-body): Declare function. + (message--name-table): Declare function. + (vc-default-prepare-patch): Add a default implementation. + (vc-prepare-patch): Add command. (Bug#57400) + +2022-10-08 Po Lu + + Stop passing CurrentTime to SetInputFocus + + * src/xterm.c (xi_focus_handle_for_device, handle_one_xevent): + Set the last user time where required for focus to be handled + correctly. + (x_focus_frame): Do not perform actions prohibited by the ICCCM. + +2022-10-08 समीर सिंह Sameer Singh + + Add support for the Coptic script (bug#58330) + + * lisp/language/misc-lang.el ("Coptic"): New language environment. + Add sample text and input method. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support coptic. + * lisp/leim/quail/misc-lang.el ("coptic"): New input method. + + * etc/HELLO: Add a Coptic greeting. + * etc/NEWS: Announce the new language environment. + +2022-10-08 Stefan Kangas + + Merge from origin/emacs-28 + + cfb1e21844 Update name of hs-mouse-toggle-hiding in Emacs manual + +2022-10-07 Stefan Monnier + + itree: Try and detect non-local exits during itree iterations + + * src/itree.c (itree_busy_p): New function. + * src/eval.c (signal_or_quit): Use it. + * src/itree.h (itree_busy_p): Declare it. + +2022-10-07 Stefan Kangas + + Prefer defvar-keymap in bibtex.el + + * lisp/textmodes/bibtex.el (bibtex-mode-map): Prefer defvar-keymap. + +2022-10-07 Stefan Kangas + + Fix setting the wallpaper with "swaybg" and "wbg" + + * lisp/image/wallpaper.el (wallpaper-setter): Add 'init-action' + and 'detach' fields to structure. + (wallpaper--init-action-kill): New helper function. + (wallpaper--default-setters): Use above new fields for "swaybg" and + "wbg", to start/restart the corresponding processes as needed. + (wallpaper-default-set-function): Call 'init-action' function if + there is one. If 'detach', use 'call-process' instead of + 'start-process'. (Bug#57781) + + * test/lisp/image/wallpaper-tests.el (wallpaper--find-setter) + (wallpaper--find-setter/call-predicate) + (wallpaper--find-setter/set-current-setter) + (wallpaper-set/runs-command, wallpaper-set/runs-command/detach) + (wallpaper-set/calls-init-action) + (wallpaper-set/calls-wallpaper-set-function): New tests. + +2022-10-07 Stefan Monnier + + subr.el (inhibit-point-motion-hooks): Mark it as obsolete + + When Emacs-25 changed the default of `inhibit-point-motion-hooks` to t, + /etc/NEWS declared it as obsolete and so did its docstring, but + it was not marked as obsolete so as not to emit too many warnings + in code where it was impractical to remove the let-binding while + keeping backward compatibility with older Emacsen. + Those backward compatibility issues are not serious any more now that + Emacs-25 is itself considered old. + + * lisp/subr.el (inhibit-point-motion-hooks): Mark it as obsolete. + * src/textprop.c (inhibit-point-motion-hooks): Don't mention it being + obsolete in the docstring any more. + * lisp/simple.el (line-move-1, line-move-finish): Silence warnings. + +2022-10-07 Stefan Monnier + + * lisp/isearch.el (isearch-search): Don't bind `inhibit-point-motion-hooks` + + The let-binding was added back in 1997 (commit 79c7a4fa5f974a9d3b) + "because we might have to search inside invisible and intangible text". + So it's been redundant since Emacs-25 changed the default to t. + +2022-10-07 Stefan Monnier + + verilog-mode.el: Don't bind `inhibit-point-motion-hooks` + + Keep binding it in Emacs<25 but not in Emacs≥25 (where such bindings + are redundant and the var is declared obsolete). + + * lisp/progmodes/verilog-mode.el (verilog-save-buffer-state): + Don't bind `inhibit-point-motion-hooks` if Emacs≥25. + (verilog-save-font-no-change-functions): Same, and refrain from + binding `before/after-change-functions` as well while we're at it, + since `inhibit-modification-hooks` already covers it in Emacs≥25. + +2022-10-07 Stefan Monnier + + (nxml-with-invisible-motion): Delete macro. + + Don't use this macro any more since it doesn't do anything since Emacs-25 + changed the default of `inhibit-point-motion-hooks` to t. + + * lisp/nxml/nxml-util.el (nxml-with-invisible-motion): Delete macro. + * lisp/nxml/nxml-mode.el (nxml-mode, nxml-cleanup): + * lisp/nxml/rng-valid.el (rng-do-some-validation): + * lisp/nxml/rng-nxml.el (rng-set-state-after): Don't use it. + +2022-10-07 Stefan Monnier + + * lisp/pcomplete.el (pcomplete-arg): Simplify + +2022-10-07 Stefan Monnier + + (line-move-1): Obey `inhibit-point-motion-hooks` + + `line-move-1` was written back before `inhibit-point-motion-hooks` + was made obsolete and it's written under the assumption that its + value is nil, whereas since Emacs-25 it's t. + + To work around problems linked to a nil value of + `inhibit-point-motion-hooks`, the code temporarily binds that var to + t while it moves around trying to find the final destination and then + later in a few key spots it binds it "back" to nil so as to run the + point-motion hooks according to the final destination, as if the + overall motion had been made "normally". + + Change the code so that the "bind back" indeed binds the var back to + the value it had originally, rather than always to nil. + + * lisp/simple.el (line-move-1): Obey `inhibit-point-motion-hooks` + (line-move-finish): New optional arg `not-ipmh`. + +2022-10-07 Matt Armstrong + + Use a bool instead of a bitfield + + * src/itree.c (struct interval_generator): use a bool instead of a + bitfield, since space is not an issue. + +2022-10-07 Stefan Monnier + + org.el: Improve bindings of `inhibit-*` vars + + Remove binding of `inhibit-point-motion-hooks` (it's t by default + anyway and it's obsolete) and don't "manually" bind + `inhibit-modification-hooks`. + + * lisp/org/org.el (org-unfontify-region): Use `with-silent-modifications`. + (org-display-inline-remove-overlay): Remove ineffective binding of + `inhibit-modification-hooks` around code which doesn't modify the + buffer anyway. + +2022-10-07 Stefan Monnier + + Remove aliases of `with-silent-modifications` + + There were many reinventions of `with-silent-modifications` (tho + many of them weren't reinventions but copy&paste of code from + font-lock, IIUC). Now that those don't even need to let-bind + `inhibit-point-motion-hooks` they're really just obsolete. + + * lisp/font-lock.el (save-buffer-state): Delete macro. + (font-lock-unfontify-region, font-lock-default-fontify-region): + Use `with-silent-modifications` instead. + (font-lock-after-change-function, font-lock-fontify-block): Don't + let-bind `inhibit-point-motion-hooks`. + + * lisp/htmlfontify.el (hfy-save-buffer-state): Delete macro. + (hfy-mark-trailing-whitespace, hfy-unmark-trailing-whitespace): + Use `with-silent-modifications` instead. + + * lisp/jit-lock.el (with-buffer-prepared-for-jit-lock): Delete macro. + (jit-lock--debug-fontify, jit-lock-refontify, jit-lock-function) + (jit-lock-fontify-now, jit-lock-force-redisplay) + (jit-lock-deferred-fontify, jit-lock-context-fontify) + (jit-lock-after-change): Use `with-silent-modifications` instead. + + * lisp/progmodes/antlr-mode.el (save-buffer-state-x): Delete macro. + (antlr-hide-actions): Use `with-silent-modifications` instead. + + * lisp/progmodes/hideshow.el (hs-life-goes-on): Don't + let-bind `inhibit-point-motion-hooks`. + +2022-10-07 Stefan Monnier + + Remove redundant let-bindings of `inhibit-point-motion-hooks` + + `inhibit-point-motion-hooks` has defaulted to t (and been declared + obsolete) since Emacs-25, so remove left-over bindings to that + now default value. + + * lisp/dabbrev.el (dabbrev--search): + * lisp/format.el (format-insert-file): + * lisp/forms.el (forms-next-field, forms-prev-field): + * lisp/minibuf-eldef.el (minibuf-eldef-setup-minibuffer): + * lisp/simple.el (primitive-undo): + * lisp/cedet/semantic/edit.el (semantic-change-function): + * lisp/cedet/srecode/fields.el (srecode-field-mod-hook): + * lisp/cedet/srecode/insert.el (srecode-insert-fcn): + * lisp/erc/erc-button.el (erc-button-add-buttons): + * lisp/erc/erc.el (erc-display-line): + * lisp/eshell/em-script.el (eshell-source-file): + * lisp/eshell/em-smart.el (eshell-smart-scroll-window): + * lisp/eshell/esh-arg.el (eshell-parse-arguments): + * lisp/eshell/esh-cmd.el (eshell-with-temp-command): + * lisp/eshell/esh-mode.el (eshell-send-input, eshell-output-filter): + * lisp/gnus/gnus-art.el (gnus-with-article-headers) + (article-hide-headers, article-hide-boring-headers) + (article-decode-mime-words, article-decode-charset) + (article-decode-encoded-words, article-decode-group-name) + (article-decode-idna-rhs, article-hide-list-identifiers) + (article-strip-banner, article-really-strip-banner) + (article-strip-leading-blank-lines) + (article-strip-multiple-blank-lines, article-strip-leading-space) + (article-strip-trailing-space, article-strip-all-blank-lines) + (gnus-article-narrow-to-signature, gnus-article-show-hidden-text) + (article-date-ut, article-verify-x-pgp-sig) + (gnus-article-only-boring-p, gnus-article-highlight-signature) + (gnus-article-add-buttons, gnus-signature-toggle, gnus-button-push): + * lisp/gnus/gnus-cite.el (gnus-article-highlight-citation) + (gnus-article-fill-cited-article, gnus-article-hide-citation) + (gnus-article-toggle-cited-text, gnus-article-hide-citation-maybe) + (gnus-cite-parse-wrapper, gnus-cite-add-face, gnus-cite-toggle): + * lisp/gnus/gnus-gravatar.el (gnus-gravatar-insert): + * lisp/gnus/gnus-rfc1843.el (rfc1843-decode-article-body): + * lisp/gnus/gnus-sum.el (gnus-summary-toggle-header): + * lisp/gnus/gnus-util.el (gnus-fetch-field): + * lisp/gnus/message.el (message-fetch-field, message-reply) + (message-followup, message-hide-headers): + * lisp/net/goto-addr.el (goto-address-fontify): + * lisp/obsolete/linum.el (linum-update-window): + * lisp/play/zone.el (zone-shift-left, zone-shift-right) + (zone-fill-out-screen): + * lisp/progmodes/opascal.el (opascal-save-excursion): + * lisp/progmodes/vhdl-mode.el (vhdl-prepare-search-2): + * lisp/textmodes/enriched.el (enriched-encode): + * lisp/textmodes/flyspell.el (flyspell-word-search-backward) + (flyspell-word-search-forward): + * lisp/textmodes/table.el (table--point-entered/left-cell-function): + Remove let-binding of `inhibit-point-motion-hooks`. + +2022-10-07 Lars Ingebrigtsen + + Update name of hs-mouse-toggle-hiding in Emacs manual + + * doc/emacs/programs.texi (Hideshow): Update the name of + hs-mouse-toggle-hiding (bug#58331). + +2022-10-07 Matt Armstrong + + Handle successive mime sections in decoding. + + rmailsum.el (rmail-epa-decode):Handle blank lines at start. + Handle both ending delim and another starting delim. + +2022-10-07 Mattias Engdegård + + Speed up string-lessp for multibyte strings + + Improve comparison speed when both arguments are multibyte strings, + at least one of them containing a non-ASCII character. (All-ASCII + multibyte strings are already fast.) + The speed-up is about 2× for strings of 10 chars, 10× for strings of + 100 chars. + + * src/fns.c (Fstring_lessp): Quickly skip the common prefix by + comparing words. + +2022-10-07 Mattias Engdegård + + Clearer byte-compiler arity warnings (bug#58319) + + * lisp/emacs-lisp/bytecomp.el (byte-compile-arglist-signature-string): + Replace '3+' and '3-4' with '3 or more' and '3 or 4', respectively. + +2022-10-07 Miha Rihtaršič + + comint-fontify-input: Don't fontify output as input, different approach + + * lisp/comint.el (comint-output-filter): Propertize process output + with field=output before inserting it into buffer to prevent + comint-fontify-input from fontifying it (bug#58169). + +2022-10-07 Miha Rihtaršič + + Revert "comint-fl: Prevent fontification of output as input" + + This reverts commit 90744ff0be581b69cedea1194b7e78265bdb67a4. + +2022-10-07 Michael Albinus + + * lisp/dired.el (dired-make-relative): Make change less aggressive. + +2022-10-07 Po Lu + + Handle IM server disconnects during preedit + + * src/xterm.c (x_maybe_clear_preedit): New function. + (xim_destroy_callback): Call that function. + +2022-10-07 Stefan Kangas + + Improve package-check-signature docstring + + * lisp/emacs-lisp/package.el (package-check-signature): Improve + docstring. + +2022-10-07 Yuan Fu + + Add a :toggle option for tree-sitter font-lock + + * admin/notes/tree-sitter/html-manual/Parser_002dbased-Font-Lock.html: + Update html manual. + * admin/notes/tree-sitter/html-manual/build-manual.sh: Fix manual + path. + * admin/notes/tree-sitter/starter-guide: Mention :toggle. + * doc/lispref/modes.texi: Mention :toggle. + * lisp/treesit.el (treesit-font-lock-settings): Update docstring. + (treesit-font-lock-rules): Handle :toggle. Also change + some wrong-type-argument signal to treesit-font-lock-error which is + easier to understand. + (treesit-font-lock-fontify-region): Handle :toggle. + +2022-10-07 Stefan Kangas + + Merge from origin/emacs-28 + + 5f8849425c Fix typo in `(emacs) Lisp Doc' + f0a06364fb Fix references to 'default-indent-new-line' + +2022-10-06 Yuan Fu + + * src/treesit.c (syms_of_treesit): Add Streesit_language_version. + +2022-10-06 Michael Albinus + + Better support for remote file names in dired + + * lisp/dired.el (dired-make-relative): Expand DIR anyway, because + it could also be an abbreviated remote file name. (Bug#58300) + +2022-10-06 Philip Kaludercic + + Add a generic bug reporting command for packages + + * lisp/emacs-lisp/package.el (package-menu-mode-map): Bind + 'package-report-bug'. + (package-report-bug): Add new command. + +2022-10-06 Philip Kaludercic + + * lisp/vc/vc-svn.el (vc-svn-clone): Add 'clone' implementation + + * lisp/vc/vc-cvs.el (vc-cvs-clone): Add 'clone' implementation + + * lisp/vc/vc-bzr.el (vc-bzr-clone): Add 'clone' implementation + + * lisp/vc/vc-hg.el (vc-hg-clone): Add 'clone' implementation + +2022-10-06 Yuan Fu + + Merge branch 'master' into feature/tree-sitter + +2022-10-06 Arash Esbati + + Pass correct environment name to `reftex-label' + + * lisp/textmodes/tex-mode.el (latex-block-body-alist): Pass + "figure" to `reftex-label' when inserting a figure float. + (bug#58329) + +2022-10-06 Lars Ingebrigtsen + + etc/NEWS: Fix typo in seq-keep entry. + +2022-10-06 Justus Winter + + Replace aging OpenPGP artifacts in gnus' mml-sec tests. + + This replaces the old OpenPGPv4 keys that are used in the test suite + with more modern OpenPGPv4 keys. + + Having old cryptographic artifacts in the test suite presents a + problem once the old algorithms are rejected by contemporary + implementations (bug#58301). + +2022-10-06 Justus Winter + + Replace aging OpenPGP artifacts in the package-resources tests. + + This replaces the old OpenPGPv4 key that is used in the test suite + with a more modern OpenPGPv4 key. The key is the Alice key from + https://datatracker.ietf.org/doc/draft-bre-openpgp-samples/. All + cryptographic artifacts in the test suite are updated accordingly. + + Having old cryptographic artifacts in the test suite presents a + problem once the old algorithms are rejected by contemporary + implementations. + +2022-10-06 Justus Winter + + Replace aging OpenPGP artifacts in the epg tests. + + This replaces the old OpenPGPv4 key that is used in the test suite + with a more modern OpenPGPv4 key. The key is the Alice key from + https://datatracker.ietf.org/doc/draft-bre-openpgp-samples/. All + cryptographic artifacts in the test suite are updated accordingly. + + Having old cryptographic artifacts in the test suite presents a + problem once the old algorithms are rejected by contemporary + implementations. + +2022-10-06 Justus Winter + + Fix epg's reliance on an implicit GnuPG command. + + Previously, epg invoked GnuPG without an explicit command to verify + signatures. Make that operation explicit. Happily, this aligns how + gpg and gpgsm is invoked, so it actually makes the code simpler. + +2022-10-06 Manuel Giraud + + Fix BSD battery mode over TRAMP (bug#58307) + + * lisp/battery.el (battery--call-process-to-string): Simple wrapper + to `call-process' that outputs to a string. + (battery-bsd-apm): Use it instead of `shell-command-to-string' + (bug#58307). + +2022-10-06 Matt Armstrong + + Fix calling `package-reinstall' just after quick initialization. + + * lisp/emacs-lisp/package.el (package-reinstall): call + `package--archives-initialize', just like `package-install' does. + This populates `package-alist', and so fixes calling + `package-reinstall' as the first thing done after package "quick + init" (Bug#53527). + +2022-10-06 Gerd Möllmann + + Add missing staticpro (bug#58327) + + * src/window.c (init_window_once): staticpro old_selected_window. + +2022-10-06 Stefan Kangas + + Fix typo in `(emacs) Lisp Doc' + + * doc/emacs/programs.texi (Lisp Doc): Fix reference to + 'eldoc-echo-area-display-truncation-message'. (Bug#58324) + +2022-10-06 Stefan Kangas + + Fix references to 'default-indent-new-line' + + * doc/emacs/programs.texi (Comment Commands) + (Multi-Line Comments): Fix references to + 'default-indent-new-line'. (Bug#58325) + +2022-10-06 Gerd Möllmann + + Inhibit GC in probably_quit (bug#58042) + +2022-10-06 Stefan Kangas + + * etc/NEWS: Document how to continue using 'linum'. (Bug#58220) + +2022-10-05 Stefan Monnier + + itree.c: Get rid of the trick using null->parent + + * src/itree.c (interval_tree_remove_fix): Add a `parent` argument. + Change the loop so it always keeps both `node` and `parent` in sync, + thus avoiding the use of `node->parent` on the initial node (since + that one can be null). + (interval_tree_remove): Manually keep track of the `broken` node's + parent to pass it to `interval_tree_remove_fix`. + +2022-10-05 Stefan Monnier + + * src/itree.c (interval_tree_remove_fix): Move before first use + +2022-10-05 Po Lu + + Minor fixes to IM locale handling + + * lisp/term/x-win.el (x-get-input-coding-system): Translate locales. + * src/xterm.c (x_term_init): If the X library doesn't support + the current locale, don't set up input methods. + +2022-10-05 Stefan Monnier + + itree.c: Fix corner case errors in offsets + + In some cases, `interval_tree_remove` could cause some nodes to + inherit fewer (or additional) offsets than the should because nodes + were transplanted between two parts of the tree where offsets had not + been propagated "equally". So we remove/apply all offsets along the + path between the two points of a transplant before doing the transplant. + + * src/itree.c (interval_tree_subtree_min): Move before first use; delete + the declaration; add an `otick` argument, and use it to update offsets + along the way. + (interval_tree_remove): Update all offsets on the way from `node` to `min`. + Reorder some of the operations so that when we transplant `min` to `node` + those nodes are in the proper state where `interval_tree_transplant` + can do its sanity checks. + (itree_total_offset): New function. + (interval_tree_transplant): Use it to sanity check that improper + offsets aren't accidentally inherited/lost because of the transplant. + (itree_newlimit): New function. + (itree_limit_is_stable, interval_tree_update_limit) + (interval_tree_propagate_limit): Use it. + (null_is_sane): Remove `inline` annotation; it's not needed. + (interval_tree_inherit_offset): Sanity check that `offset` is 0 when + `otick` is up-to-date. Skip the unneeded increments when the offset is 0. + (interval_tree_insert_fix): Add sanity check that we indeed have 2 reds. + +2022-10-05 Po Lu + + Fix nsmenu crash when exiting popup dialog + + * src/nsmenu.m (pop_down_menu): Do not discard menu items here. + (ns_popup_dialog): Call discard_menu_items after + unuse_menu_items. (bug#58296) + +2022-10-05 Stefan Kangas + + * etc/NEWS: Add instructions for replacing 'linum'. (Bug#58220) + +2022-10-05 Yuan Fu + + Merge branch 'master' into feature/tree-sitter + +2022-10-05 Yuan Fu + + Add tree-sitter admin notes + + starter-guide: Guide on writing major mode features. + build-module: Script for building official language definitions. + html-manual: HTML version of the manual for easy access. + + * admin/notes/tree-sitter/build-module/README: New file. + * admin/notes/tree-sitter/build-module/batch.sh: New file. + * admin/notes/tree-sitter/build-module/build.sh: New file. + * admin/notes/tree-sitter/starter-guide: New file. + * admin/notes/tree-sitter/html-manual/Accessing-Node.html: New file. + * admin/notes/tree-sitter/html-manual/Language-Definitions.html: New file. + * admin/notes/tree-sitter/html-manual/Multiple-Languages.html: New file. + * admin/notes/tree-sitter/html-manual/Parser_002dbased-Font-Lock.html: + New file. + * admin/notes/tree-sitter/html-manual/Parser_002dbased-Indentation.html: + New file. + * admin/notes/tree-sitter/html-manual/Parsing-Program-Source.html: New + file. + * admin/notes/tree-sitter/html-manual/Pattern-Matching.html: New file. + * admin/notes/tree-sitter/html-manual/Retrieving-Node.html: New file. + * admin/notes/tree-sitter/html-manual/Tree_002dsitter-C-API.html: New + file. + * admin/notes/tree-sitter/html-manual/Using-Parser.html: New file. + * admin/notes/tree-sitter/html-manual/build-manual.sh: New file. + * admin/notes/tree-sitter/html-manual/manual.css: New file. + +2022-10-05 Stefan Monnier + + itree.c: Fix incomplete update of `limit`s in corner cases + + `interval_tree_remove` called `interval_tree_propagate_limit (subst)` + and `interval_tree_propagate_limit (min_right)` but both of those nodes + are moved without touching their subtrees, so their `limit`s are + "stable" causing `interval_tree_propagate_limit` to do nothing. + Indeed we don't need to update those nodes's `limit`s but we *do* + need to update their parents since those nodes have been moved. + Incidentally, this removes some uses of `null->parent` :-) + + There are more uses of `null->parent`, tho, so I added more comments + explaining them (with the help of the matching section of the book + from which the algorithm was taken). + + * src/itree.c (interval_tree_update_limit): Remove unused arg `tree`. + (interval_tree_rotate_left, interval_tree_rotate_right): Adjust callers. + (interval_tree_contains): Mark as static. + (itree_limit_is_stable, itree_limits_are_stable): New functions. + (interval_tree_remove): Fix incomplete update of `limit`s in corner + cases. + (interval_generator_next): Add sanity check to make sure the `limit`s + were properly updated. + + * src/itree.h (interval_tree_contains): Remove declaration. + +2022-10-05 João Távora + + Make eglot-code-actions usable non-interactively + + * eglot.el (eglot--read-execute-code-action): New helper. + (eglot-code-actions): Use new helper. Offer non-interactive version. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/1070 + +2022-10-05 João Távora + + Add half-baked m-x eglot-list-connections + + Not very useful for now, but more functionality could be added later, + like bindings for disconnecting a given connection, switching to its + events buffers, or just listing some details like capabilities. + + * eglot.el (eglot-list-connections-mode, eglot-list-connections): + New mode and function. + +2022-10-05 Juri Linkov + + * lisp/repeat.el (repeat-exit): Add autoload cookie. + + * etc/tutorials/TUTORIAL.uk: Fix typos. + +2022-10-05 Stefan Monnier + + itree.c: Clarify how the sentinel is used + + * src/itree.c (null_is_sane): New function. + (interval_tree_iter_start): Use it to make sure we haven't garbled null. + (itree_init): Fully initialize `itree_null` here... + (interval_tree_clear): ...instead of here. + (interval_tree_propagate_limit): Remove special code that read NULL->parent. + (interval_tree_remove): Do it explicitly before the call in those two + places where it can happen. + +2022-10-05 Michael Albinus + + Adapt Tramp manual + + * doc/misc/tramp.texi (Inline methods): Method "kubernetes" does + not support user names. + +2022-10-05 Stefan Kangas + + New command 'world-clock-copy-time-as-kill' + + * lisp/time.el (world-clock-copy-time-as-kill): New command. + (world-clock-mode-map): Bind above new command to "w". + +2022-10-05 Stefan Kangas + + Add face help-key-binding in help-char echo + + * src/keyboard.c (echo_add_key): Add help-key-binding face to the + "?" key in 'help-char' echo. (Bug#57906) + (syms_of_keyboard) : New DEFSYM. + +2022-10-04 Stefan Monnier + + itree.c: Remove some unnecessary `tree` arguments + + * src/itree.c (interval_tree_propagate_limit) + (interval_tree_subtree_min): Remove `tree` argument. + (interval_node_set_region, interval_tree_remove) + (interval_tree_insert_gap, interval_tree_delete_gap): Adjust callers. + +2022-10-04 Po Lu + + Fix bug in "macintization" of x_draw_glyph_string + + * src/nsterm.m (ns_draw_stretch_glyph_string): Restore text decoration + drawing code omitted during "macintization" to convert the X function + into NS code. Reported by Qiantan Hong . + +2022-10-04 Filipp Gunbin + + Add tramp-kubernetes integration + + * doc/misc/tramp.texi (Inline methods): Add kubernetes. + (Customizing Methods): Remove kubernetes-tramp. + * etc/NEWS: Mention new Tramp method "kubernetes". + * lisp/net/tramp-compat.el (kubernetes-tramp): Warn if that package is + used. + * lisp/net/tramp-container.el (tramp-kubernetes-program): New + defcustom. + (tramp-kubernetes-method): New defconst. + (tramp-kubernetes--completion-function): New function. + +2022-10-04 Filipp Gunbin + + Rename lisp/net/tramp-docker.el to lisp/net/tramp-container.el + +2022-10-04 Yuan Fu + + Add :override flag for python tree-sitter font-lock settings + + * lisp/progmodes/python.el (python--treesit-settings): Add :override. + +2022-10-04 Yuan Fu + + Add :override flag for tree-sitter font-lock + + * doc/lispref/modes.texi (Parser-based Font Lock): Update manual. + * lisp/treesit.el (treesit-font-lock-settings): Update docstring. + (treesit-font-lock-rules): Handle :override. + (treesit-font-lock-fontify-region): Handle :override. Also set + inhibit-point-motion-hooks to t. + +2022-10-04 Yuan Fu + + Fix python tree-sitter font-lock + + Add fontification for lhs attribute and some operators. + + * lisp/progmodes/python.el (python--treesit-keywords): Add operators. + (python--treesit-settings): Add lhs attribute. + +2022-10-04 Yuan Fu + + Add treesit-language-version + + * doc/lispref/parsing.texi (Language Definitions): Update manual. + * src/treesit.c (Ftreesit_language_version): New function + +2022-10-04 Yuan Fu + + Improve documentation of tree-sitter search functions + + * doc/lispref/parsing.texi (Retrieving Node): Update manual. + * src/treesit.c (treesit-search-subtree) + (treesit-search-forwardn) + (treesit-induce-sparse-tree): Mention case-insensitivity. + * lisp/treesit.el (treesit-simple-indent): Mention case-insensitivity. + +2022-10-04 Yuan Fu + + Ignore some capture name in treesit-font-lock-fontify-region + + * doc/lispref/modes.texi (Parser-based Font Lock): Update manual. + * lisp/treesit.el: (treesit-font-lock-fontify-region): Ignore names + that are not face nor function. + (treesit-font-lock-rules): Update docstring. + +2022-10-04 Yuan Fu + + Remove treesit-query-in + + Because treesit-query-capture can now do everything it does. + + * doc/lispref/parsing.texi (Pattern Matching): Update manual. + * lisp/treesit.el (treesit-query-in): Remove function. + * src/treesit.c (Ftreesit_query_capture): Accept parser and language + symbol as NODE. + +2022-10-04 Vibhav Pant + + Add comment explaining gcc_jit_context_new_bitcast usage. + + Address styling comments. + + comp.c: Add declaration for gcc_jit_type_is_pointer. + +2022-10-04 Vibhav Pant + + src/comp.c: Use libgccjit's bitcast API for type coercion, when available. + + * (type_to_cast_index, define_type_punning, define_cast_from_to, + define_cast_functions): Define functions when + gcc_jit_context_new_bitcast is not available. + + * (emit_coerce): Use gcc_jit_context_new_bitcast to coerce types, when + available. + +2022-10-04 Lars Ingebrigtsen + + Put all seq.el news into one section + +2022-10-04 Lars Ingebrigtsen + + Add 'seq-keep' + + * doc/lispref/sequences.texi (Sequence Functions): Document it. + * lisp/emacs-lisp/seq.el (seq-keep): New function (bug#58278). + +2022-10-04 Brian Cully + + Add method description for podman in Tramp + + * doc/misc/tramp.texi (Inline methods): Adapt docker method. + Describe podman method. + +2022-10-04 João Távora + + Rename "eglot -> eglot" in docstrings + + * eglot.el (eglot-mode-line, eglot-client-capabilities) + (eglot--stay-out-of-p, eglot-managed-p) + (eglot-managed-mode-hook, eglot--managed-mode) + (eglot-current-server, eglot--current-server-or-lose) + (eglot--mode-line-format, eglot-xref-backend) + (eglot-imenu): Rename "EGLOT" -> "Eglot" + +2022-10-04 Stefan Kangas + + Merge from origin/emacs-28 + + a78af3018e * src/emacs.c (load_pdump): Properly handle case when execu... + + # Conflicts: + # src/emacs.c + +2022-10-04 Stefan Kangas + + Merge from origin/emacs-28 + + 78c262e1c2 ; * lisp/progmodes/glasses.el (glasses-face): Expand the d... + +2022-10-04 Alan Mackenzie + + CC Mode: A new operator and some new keywords for C++20 + + * lisp/progmodes/cc-langs.el (c-operators, c-overloadable-operators) + (c-arithmetic-operators): Add the "spaceship" operator for C++. + (c-primitive-type-kwds): Add char8_t for C++. + (c-decl-hangon-kwds, c-paren-nontype-kwds): Add alignas for C++. + +2022-10-04 Michael Albinus + + * etc/NEWS: Mention new Tramp method "podman". Fix typos. + +2022-10-04 Brian Cully + + Provide Podman containers on their own method in Tramp + + * lisp/net/tramp-docker.el (tramp-podman-program): New defcustom. + (tramp-podman-method): New defconst. + (tramp-docker-program): Remove "podman" from option list. + (top): Update comments to refer to Docker-alike where necessary. + Add description for how to use the podman method. + +2022-10-04 Andreas Schwab + + * src/emacs.c (load_pdump): Properly handle case when executable + wasn't found. + +2022-10-04 Alan Mackenzie + + CC Mode: Optimize c-fontify-new-found-type and amend a debug spec + + * lisp/progmodes/cc-fonts.el (c-fontify-new-found-type): Write the `face' + property directly, rather than removing `fontified' properties and letting + font-lock do the work. + + * lisp/progmodes/cc-defs.el (cc-eval-when-compile): Amend the debug spec from + t to (&rest body), in line with the fix to bug #16184. + +2022-10-04 Eli Zaretskii + + Revert "Improve manual display tests of undisplayable chars (bug#58168)" + + This reverts commit 849b7756fd31a69791e67dfe010b1e10f0168c83. + Please don't rush installing changes that are still being + discussed. + +2022-10-04 Stefan Kangas + + * lisp/subr.el (y-or-n-p): Use substitute-command-keys. + +2022-10-04 Stefan Kangas + + image-dired: Shorten several long names + + * lisp/image/image-dired.el (image-dired-image-mode-map) + (image-dired-image-mode): Rename from + 'image-dired-display-image-mode-map' and + 'image-dired-display-image-mode'. Update all uses and make old + names into obsolete aliases. + (image-dired-display-this, image-dired-display-next) + (image-dired-display-previous): Rename from + 'image-dired-display-thumbnail-original-image', + 'image-dired-display-next-thumbnail-original', and + 'image-dired-display-previous-thumbnail-original'. Update all uses + and make old names into obsolete aliases. + * doc/emacs/dired.texi (Image-Dired): Update documentation for the + above changes, and improve indexing. + +2022-10-04 Mattias Engdegård + + Improve manual display tests of undisplayable chars (bug#58168) + + Test display of multibyte raw bytes, as well as undisplayable + multibyte chars (C1 controls and other values). + + The test still assumes that raw bytes should be displayed identically + to undisplayable characters (such as C1 controls) because that is how + the display code currently works. + + * test/manual/redisplay-testsuite.el (test-redisplay-5-toggle) + (test-redisplay-5): Fix likely typo (#x3fffc) of raw byte value. + (test-redisplay-6): New. + +2022-10-04 Stefan Kangas + + image-dired: Fix arrow keys in thumbs buffer + + * lisp/image/image-dired.el (image-dired-thumbnail-mode-map): Also + remap 'left-char' and 'right-char'. + +2022-10-04 Eli Zaretskii + + Fix recent changes for Ukrainian language + + * etc/HELLO: + * lisp/language/cyrillic.el ("Ukrainian"): Fix greetings and + remove redundant Ukrainian entry in cyrillic.el. + +2022-10-04 Lars Ingebrigtsen + + Make cropping of images work in message-mode + + * lisp/gnus/message.el (message-mode): Set the image cropping function. + (message--yank-media-image-handler): Factor out... + (message--image-part-string): ... here for reuse. + (message--update-image-crop): Update the cropped data. + +2022-10-04 Alan Mackenzie + + CC Mode: Make c-forward-declarator move over a suffix after parens, e.g. const + + Also tidy up several inaccuracies in the code. + + * lisp/progmodes/cc-engine.el (c-forward-decl-arglist): Move point for modes + other than C++ Mode. + (c-forward-declarator): Move over a suffix following arglist parens + (e.g. const). Set the ARGLIST element of the return value to non-nil on + encountering an unbalanced open parenthesis. Don't move forward out of + enclosing parens. + + * lisp/progmodes/cc-mode.el (c-fl-decl-end): Handle being in a multi-line + string. Move forward over token after declarator. + +2022-10-04 Lars Ingebrigtsen + + Move image commands to the 'i' sub map + + * doc/lispref/display.texi (Showing Images): Adjust. + * lisp/image.el (image-map): Move all keys under the "i" prefix. + (image--repeat-map): New map. + (image-increase-size, image-rotate, image-decrease-size): Make + repeatable. + (image--delayed-change-size): New function. + +2022-10-04 Lars Ingebrigtsen + + Fix the arguments in tags--compat-initialize + + * lisp/progmodes/etags.el (tags--compat-initialize): Fix argument + order -- swap the last two arguments (bug#58272). + +2022-10-04 Po Lu + + Update Ukrainian language info alist + + * lisp/language/cyrillic.el ("Ukrainian"): Replace "Glory to + Ukraine" with "hello". See + www.gnu.org/prep/maintain/html_node/Other-Politics.html. + +2022-10-04 Denys Nykula + + Add Ukrainian tutorial + + * etc/tutorials/TUTORIAL.uk: Create the translation. + * lisp/language/cyrillic.el: Link "Emacs Tutorial" + to the translation if the system is Ukrainian, and + add our modern greeting as a sample text. + * etc/NEWS: + * etc/tutorials/TUTORIAL.translators: Attribute my work (bug#55250). + +2022-10-04 Lars Ingebrigtsen + + Fix NEWS item about obsoleting the `eq' gv + +2022-10-04 Lars Ingebrigtsen + + Make `eq' obsolete as a generalized variable + + * lisp/emacs-lisp/gv.el (eq): Make obsolete as a generalized + variable. + +2022-10-04 Lars Ingebrigtsen + + Mention cond/if as generalized variables in the manual + + * doc/lispref/variables.texi (Setting Generalized Variables): + Mention cond and if (bug#52290). + +2022-10-04 Eli Zaretskii + + Avoid assertion violations in STRING_CHAR + + * src/xdisp.c (handle_composition_prop): + * src/editfns.c (styled_format): Don't call 'STRING_CHAR' on + unibyte strings. This avoids assertion violation in + 'string_char_and_length'. + +2022-10-04 Lars Ingebrigtsen + + Make loaddefs-generate more resilient + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Don't bug + out when there's an existing loaddefs file that's not formatted + properly (bug#58280). + +2022-10-04 Lars Ingebrigtsen + + Don't bug out in advice--make-docstring when there's not doc string + + * lisp/emacs-lisp/nadvice.el (advice--make-docstring): Don't bug + out on functions with no documentation (bug#58284). + +2022-10-04 Eli Zaretskii + + Avoid errors in interactive calls of 'calendar-goto-day-of-year' + + * lisp/calendar/cal-move.el (calendar-goto-day-of-year): Fix the + default value of DAY; doc fix. (Bug#58283) + +2022-10-04 Stefan Kangas + + * etc/NEWS: Clarify confusing Image-Dired entry. (Bug#58279) + +2022-10-03 Po Lu + + Fix deiconification handling on FVWM and possibly other window managers + + I can't believe we weren't doing this before. + + * src/xterm.c (x_handle_wm_state): New function. + (handle_one_xevent): Handle window state changes in WM_STATE + messages, and use them for signaling deiconification. + (bug#58164) + +2022-10-03 Stefan Kangas + + Merge from origin/emacs-28 + + 992611b10a Fix documentation of 'TAB' in cc-mode + 08e485a2a5 Fix 'org-export-dispatch' command name in manual + e5a49f44ff * src/emacs.c (load_pdump): Fix use of xpalloc. + 7ff5207624 Avoid assertion violation in 'xpalloc' + + # Conflicts: + # src/emacs.c + +2022-10-03 Juri Linkov + + * lisp/repeat.el (repeat-exit-key): Replace type 'key-sequence' with 'key'. + + (repeat-post-hook, repeat-echo-message-string): Add backward-compatibility + code for repeat-exit-key to keep support for 'key-sequence' type (bug#55986). + +2022-10-03 Juri Linkov + + * lisp/repeat.el (repeat-exit): New command. + + (repeat-exit-function): New variable. + (repeat-post-hook): Set repeat-exit-function. + Call repeat-exit from run-with-idle-timer. + Also use repeat--exit. + (repeat--exit): New internal function. + +2022-10-03 Stefan Monnier + + * lisp/textmodes/tex-mode.el (tex--redirect-to-submode): Fix last change + +2022-10-03 Lars Ingebrigtsen + + Improve messaging in ecomplete-remove + + * lisp/ecomplete.el (ecomplete-remove): Make messaging better. + +2022-10-03 Lars Ingebrigtsen + + Fix typo in last help-fns--insert-menu-bindings change + + * lisp/help-fns.el (help-fns--insert-menu-bindings): Fix typo in + last change. + +2022-10-03 Lars Ingebrigtsen + + Improve help-fns--insert-menu-bindings formatting + + * lisp/help-fns.el (help-fns--insert-menu-bindings): Make this + work better for menus that turn out to not be reachable after all + -- i.e., don't insert " and " before the heading in certain cases. + +2022-10-03 Lars Ingebrigtsen + + Add commands to edit/remove ecomplete entries + + * lisp/ecomplete.el (ecomplete-add-item): Allow forcing new values. + (ecomplete--remove-item): + (ecomplete--prompt-type): New functions. + (ecomplete-edit, ecomplete-remove): New commands. + +2022-10-03 Lars Ingebrigtsen + + Rename to inhibit-automatic-native-compilation + + * src/comp.c (maybe_defer_native_compilation): + (syms_of_comp): + * lisp/subr.el (native-comp-deferred-compilation): + * lisp/startup.el (inhibit-native-compilation): + (normal-top-level): + * lisp/progmodes/elisp-mode.el (emacs-lisp-native-compile-and-load): + * lisp/emacs-lisp/comp.el (comp-trampoline-compile): + * etc/NEWS: + * doc/lispref/compile.texi (Native-Compilation Variables): Rename + inhibit-native-compilation to inhibit-automatic-native-compilation. + +2022-10-03 Stefan Monnier + + files.el (major-mode-remap-alist): New custom var (bug#58075) + + * lisp/files.el (major-mode-remap-alist): New custom var. + (set-auto-mode--last): New var. + (set-auto-mode-0): Obey `major-mode-remap-alist`. + + * doc/emacs/modes.texi (Choosing Modes): Document `major-mode-remap-alist`. + + * lisp/progmodes/cperl-mode.el: Recommend the use of + `major-mode-remap-alist` over the crude `defalias` solution. + + * lisp/textmodes/tex-mode.el (tex--guess-mode): Simplify. + (tex--redirect-to-submode): Obey `major-mode-remap-alist`. + +2022-10-03 Lars Ingebrigtsen + + Add new variable 'inhibit-native-compilation' + + * doc/lispref/compile.texi (Native-Compilation Variables): + Document it. + + * lisp/startup.el (normal-top-level): Set + inhibit-native-compilation from environment variable. + + * lisp/subr.el (native-comp-deferred-compilation): Make obsolete. + + * lisp/emacs-lisp/comp.el (comp-trampoline-compile): Don't write + trampolines to disk. + + * lisp/progmodes/elisp-mode.el + (emacs-lisp-native-compile-and-load): Adjust. + + * src/comp.c (syms_of_comp): New variable + inhibit-native-compilation. + (maybe_defer_native_compilation): Use it. + +2022-10-03 Po Lu + + Fix coding systems used for X input methods + + * doc/emacs/mule.texi (International): Refer to X Coding as + well. + (Communication Coding): Document that locale-coding-system is + not always used on X to decode keyboard input. + (X Coding): New node. + * etc/NEWS: Announce change to input method coding resolution. + * lisp/term/x-win.el (x-get-input-coding-system): New function. + * src/coding.c (syms_of_coding): Update doc string of + locale-coding-system. + * src/xfns.c (struct x_xim_text_conversion_data) + (x_xim_text_to_utf8_unix_1, x_xim_text_to_utf8_unix_2) + (x_xim_text_to_utf8_unix): Accept dpyinfo. Use the coding + system specified inside if possible. + (xic_preedit_draw_callback): Pass dpyinfo. + * src/xterm.c (handle_one_xevent): Use XIM coding system for IM + input. + (xim_open_dpy): Try to determine the input method coding system. + (mark_xterm): Mark `xim_coding'. + (syms_of_xterm): New variable `x-input-coding-system'. + * src/xterm.h (struct x_display_info): New field `xim_coding'. + (FRAME_X_XIM_CODING): New macro. + +2022-10-03 Lars Ingebrigtsen + + Add --with-native-compilation=aot configuration option + + * configure.ac: Allow --with-native-compilation=aot to switch full + ahead-of-time on. + + * lisp/Makefile.in: Use the setting from configure. + +2022-10-03 Lars Ingebrigtsen + + Revert "keymap.el: Ease up support for non-`kbd` formats." + + This reverts commit 570a11052be6178954956a1c59c8ebcbdb77d38e. + + We do not want to support several keymap formats in + `keymap-set' and friends -- the point is to have an + interface with easy-to-understand semantics that + give good feedback on valid/invalid key sequences. + +2022-10-02 Stefan Kangas + + Improve auto-insert-mode documentation + + * lisp/autoinsert.el: Improve usage instructions and formatting. + (auto-insert-directory): Doc fix; the directory does not have to end + in slash. + +2022-10-02 Stefan Kangas + + Fix documentation of 'TAB' in cc-mode + + * doc/emacs/programs.texi (C Indent): Fix documentation of 'TAB' + in cc-mode. (Bug#58258) + +2022-10-02 Stefan Kangas + + Fix 'org-export-dispatch' command name in manual + + * doc/emacs/text.texi (Org Authoring): Fix 'org-export-dispatch' + command name. (Bug#58260) + +2022-10-02 Paul Eggert + + Port TZ settings to POSIX + + * lisp/Makefile.in (.el.elc): + * lisp/net/tramp-sh.el (tramp-sh-handle-set-file-times): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-set-file-times): + Use the POSIX standard TZ=UTC0 rather than the GNU extension + TZ=UTC to set the time zone to UTC. + +2022-10-02 Stefan Kangas + + Actually delete markers in dired-do-flagged-delete + + * lisp/dired.el (dired-do-flagged-delete): Actually delete + markers. (Bug#58256) + +2022-10-02 Stefan Kangas + + Fix more overly long docstrings in eieio + + * lisp/emacs-lisp/eieio.el (defclass): Fix more overly long + docstrings. (Bug#58252) + +2022-10-02 Paul Eggert + + Don’t truncate seccomp-filter diagnostic + + * lib-src/seccomp-filter.c (fail): Do not truncate diagnostic + arbitrarily to 1000 bytes when ERROR is nonzero. + +2022-10-02 Paul Eggert + + Prefer static_assert to verify in seccomp-filter + + Prefer static_assert in just one file for now; the idea is to do + it elsewhere eventually. static_assert is standard (starting with + C23) whereas verify is not, and static_assert can be used even in + pre-C23 files due to Gnulib’s support for it. + * lib-src/seccomp-filter.c: Do not include verify.h. + Prefer static_assert to verify. + +2022-10-02 Alan Mackenzie + + Suppress irritating/misleading message in make bootstrap about old .elc files + + These are the "compile-first" .elc files, artificially given an old timestamp + to cause them later to be native compiled. This fixes bug #58224. + + * lisp/Makefile.in (compile-first .el.elc): Give these .elc's the UTC epoch. + Amend the comment. + + * src/lread.c (Fload): New variable, epoch_timestamp, initialized to binary + zero. Compare with this the timestamp of .elc's being loaded, and if they + match, don't output the message about the source file being newer than the + file being loaded. + +2022-10-02 Paul Eggert + + * .gitignore: Add lib/assert.h (Bug#58254). + +2022-10-02 Juri Linkov + + * lisp/vc/vc-git.el (vc-git-checkin): Add more checks for vc-git-patch-string + + Check that vc-git-patch-string contains the same changes that already exists + in the staged area when files were added/removed by vc commands (bug#52349). + +2022-10-02 Juri Linkov + + In vc-git-log-incoming use the repository in the command "fetch" (bug#50340) + + * lisp/vc/vc-git.el (vc-git-log-incoming): Use repository part + from non-nil remote-location in the command "fetch". + + * lisp/vc/vc.el (vc-log-incoming, vc-log-outgoing): Mention in + docstrings and prompts that REMOTE-LOCATION can be a remote branch name. + + * doc/emacs/maintaining.texi (VC Change Log): For commands + vc-log-incoming and vc-log-outgoing, use the term "remote location" + instead of "repository". + +2022-10-02 Peter Münster + + Delete thumbs in image-dired-do-flagged-delete after confirmation + + * lisp/image/image-dired.el (image-dired-do-flagged-delete): Remove + thumbnails only after confirming deletion of the files. (Bug#58255) + +2022-10-02 Juri Linkov + + * lisp/repeat.el (repeat): New customization group. + + (repeat-too-dangerous, repeat-on-final-keystroke) + (repeat-exit-key, repeat-exit-timeout, repeat-keep-prefix) + (repeat-check-key, repeat-echo-function, repeat-mode): + Change group to 'repeat'. + +2022-10-02 Stefan Monnier + + keymap.el: Ease up support for non-`kbd` formats. + + While we want to standardize on the `kbd` syntax for user-facing code, + the internal vector representation of key sequences is not going away, + so let's not impose silly `key-description + key-parse` roundtrips. + Also, provide some support for packages stuck with user configs defined + to hold old-style key formats. + + * lisp/keymap.el (keymap-set): Allow vectors as `key`. + (key-parse-old-format): New function, which stands out better than + `key-description` when searching for uses of the old syntax. + + * lisp/outline.el (outline-minor-mode): Use it. + +2022-10-02 Stefan Monnier + + itree: Use a single iterator object + + Instead of having one iterator object per buffer, use just a single + global one. There is virtually no benefit to having per-buffer + iterators anyway: if two iterations can be active at the same time, + then there can be cases where those two iterations happen + to operate on the same buffer :-( + + * src/itree.h (struct interval_tree): Remove `iter` field. + * src/itree.c (interval_generator_destroy) + (interval_tree_iter_ensure_space): Delete functions. + (iter): New global variable. + (init_itree_null): Rename to `itree_init` and adjust all callers. + Initialize `iter` as well. + (interval_tree_create, interval_tree_init): + Don't initialize `iter` field any more. + (interval_tree_destroy): Don't destroy `iter` field any more. + (interval_tree_insert): Don't bother growing the iterator (it's grown + in `interval_stack_push_flagged` if needed anyway, and in any case + there's no `iter` here to grow any more). + (interval_tree_remove): Tweak assertion to be more precise and + self-evident. + (interval_tree_iter_start): Use the global `iter`. + (interval_generator_create): Make it work with a NULL argument. + +2022-10-02 Stefan Monnier + + mark_overlays: Use the normal ITREE_FOREACH + + This commit basically reverts commit 5b954f8f9. The problem of nested + iterations hasn't been fixed in the mean time, but since the GC can + run arbitrary ELisp code (via `post-gc-hook`), running the GC from + within an itree iteration is already unsafe anyway :-( + + * src/alloc.c (mark_overlays): Delete function. + (mark_buffer): Use ITREE_FOREACH. + +2022-10-02 Stefan Kangas + + * lisp/files.el (after-find-file): Use substitute-command-keys. + +2022-10-02 Stefan Kangas + + Fix overly wide docstrings generated by eieio + + * lisp/emacs-lisp/eieio-core.el (eieio-make-class-predicate) + (eieio-make-child-predicate, eieio-defclass-internal): Don't generate + overly wide docstrings. (Bug#58252) + +2022-10-02 Stefan Monnier + + itree.c: Remove `tree` field from iterator + + * src/itree.c (interval_generator_ensure_space, interval_generator_reset): + Inline and then delete functions. + (interval_tree_inherit_offset): Only take the tree's `otick` as arg. + Update all callers. + (struct interval_generator): Remove `tree` field, replace with a copy + of the tree's `otick`. + (interval_stack_push_flagged): The arg should be a real node. + (interval_tree_insert_gap): Prefer checking root==NULL rather than size==0. + Skip loop when tree is empty to avoid pushing&processing the NULL node. + (interval_tree_inherit_offset): Prefer parent==NULL rather than + node==root to avoid accessing the tree object. + +2022-10-02 Lars Ingebrigtsen + + Kill URL buffer in url-insert-file-contents-literally + + * lisp/url/url-handlers.el (url-insert-file-contents-literally): + Kill the URL buffer after use. + +2022-10-02 Lars Ingebrigtsen + + Fix coding system problems in gnus-read-ephemeral-bug-group + + * lisp/gnus/gnus-group.el (gnus-read-ephemeral-bug-group): Don't + bind coding system variables, because that leads to loading other + files (like cookie files) using that coding system (bug#58227). + + * lisp/url/url-handlers.el (url-insert-file-literally): New function. + (url-insert): Allow forcing no-decode. + +2022-10-02 Stefan Kangas + + Decrease use of the word "Emacsen" in Tramp docs + + * lisp/net/tramp-archive.el: + * lisp/net/tramp-smb.el: + * lisp/net/tramp-uu.el: + * lisp/net/tramp.el: Don't say "Emacsen" when a different wording + would be clearer. + +2022-10-02 Lars Ingebrigtsen + + perform-replace doc string fix + + * lisp/replace.el (perform-replace): Fix doc string (bug#58177). + +2022-10-02 Lars Ingebrigtsen + + Fix point movement when indenting in sieve-mode + + * lisp/net/sieve-mode.el (sieve-mode-indent-function): Fix point + movement when point is at the start of the line (bug#58202). + +2022-10-02 Andreas Schwab + + * src/emacs.c (load_pdump): Fix use of xpalloc. + +2022-10-02 Eli Zaretskii + + Avoid assertion violation in 'xpalloc' + + * src/emacs.c (load_pdump): Ensure the 3rd argument of xpalloc is + always positive. (Bug#58232) + +2022-10-02 समीर सिंह Sameer Singh + + Add support for the Gothic script (bug#58194) + + * lisp/language/misc-lang.el ("Gothic"): New language environment. + Add sample text and input method. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support gothic. + * lisp/leim/quail/misc-lang.el ("gothic"): New input method. + + * etc/HELLO: Add Gothic greetings. + * etc/NEWS: Announce the new language environment. + +2022-10-02 Stefan Monnier + + Merge remote-tracking branch 'origin/feature/noverlay' into noverlay + +2022-10-02 Stefan Monnier + + New ITREE_FOREACH macro + + * src/itree.h (interval_tree_iter_start): Adjust type. + (interval_tree_nodes): Delete declaration. + (ITREE_FOREACH, ITREE_FOREACH_ABORT, ITREE_FOREACH_NARROW): New macros. + + * src/itree.c (interval_tree_contains, interval_tree_insert_gap): + Use the new ITREE_FOREACH macro. + (interval_tree_nodes): Delete function. + (interval_tree_iter_start): Return the iterator. + (interval_generator_next, interval_tree_destroy): + Don't accept a NULL arg any more. + + * src/xdisp.c (load_overlay_strings, strings_with_newlines): + * src/textprop.c (get_char_property_and_overlay): + * src/buffer.c (copy_overlays, delete_all_overlays) + (set_overlays_multibyte, swap_buffer_overlays, overlays_in) + (next_overlay_change, previous_overlay_change, overlay_touches_p) + (overlay_strings, Foverlay_lists, report_overlay_modification) + (evaporate_overlays): Use the new ITREE_FOREACH macro. + + * src/buffer.h (buffer_overlay_iter_start1) + (buffer_overlay_iter_start, buffer_overlay_iter_next) + (buffer_overlay_iter_finish, buffer_overlay_iter_narrow): + Delete declarations. + +2022-10-01 Po Lu + + Only rely on EWMH window activation if possible + + * xterm.c (x_ewmh_activate_frame): Remove unnecessary + x_wm_supports check. + (x_focus_frame): When the window manager supports + _NET_ACTIVE_WINDOW, just use it; anything else may confuse the + window manager. + +2022-10-01 Stefan Kangas + + Revert "Decrease use of the word "Emacsen" in docs" + + This reverts commit 55f46cc77cb9d72fbabadb63d8aeab45c5e005e2. + + Ref. https://lists.gnu.org/r/emacs-devel/2022-10/msg00016.html + +2022-10-01 Michael Albinus + + Tramp cleanup + + * doc/misc/tramp.texi (Password handling): Fix typos. + + * lisp/net/tramp-docker.el (tramp-default-remote-shell): + * lisp/net/tramp-sshfs.el (tramp-default-remote-shell): Declare. + + * lisp/net/tramp.el (tramp-methods): Fix docstring. + (tramp-get-remote-tmpdir): Revert previous patch, it isn't needed + anymore. + +2022-10-01 Stefan Kangas + + Update publicsuffix.txt from upstream + + * etc/publicsuffix.txt: Update from + https://publicsuffix.org/list/public_suffix_list.dat + dated 2022-09-27 20:39:13 UTC. + +2022-10-01 Michael Albinus + + Use a version for the Tramp cache + + * lisp/net/tramp-cache.el (tramp-cache-version): New defconst. + (top): Check the cache version, and flush the cache in case of + mismatch. Suggested by Paul Pogonyshev . + + * lisp/net/tramp-cmds.el (tramp-cleanup-all-connections): + Re-initialize the cache version. + +2022-10-01 Stefan Kangas + + Decrease use of the word "Emacsen" in docs + + "Emacsen" is either a less clear way of saying "old versions of + Emacs", or an implicit reference to XEmacs. We recommend against + using it in the FAQ. So use the more clear wording instead. + + * doc/misc/gnus.texi (Oort Gnus): + * doc/misc/widget.texi (Basic Types, toggle): + * lisp/cedet/semantic/bovine/c.el (semantic-c-skip-conditional-section): + * lisp/cedet/semantic/wisent/comp.el (wisent-compile-grammar): + * lisp/desktop.el (desktop-save): + * lisp/erc/erc-compat.el: + * lisp/erc/erc-log.el: + * lisp/gnus/gnus-util.el (gnus-replace-in-string): + * lisp/mail/footnote.el: + * lisp/net/tramp-archive.el: + * lisp/net/tramp-smb.el: + * lisp/net/tramp-uu.el: + * lisp/net/tramp.el: + (with-tramp-locked-connection): + * lisp/org/ol-eww.el: + * lisp/org/org-compat.el: + (org-define-error): + * lisp/shadowfile.el: + * lisp/winner.el: Don't use the word "Emacsen". + +2022-10-01 Stefan Kangas + + Merge from origin/emacs-28 + + be3eac3929 ; * etc/NEWS: Fix typos. + 99a8c53247 Fix connection property incompatibility in Tramp + + # Conflicts: + # etc/NEWS + +2022-10-01 Lars Ingebrigtsen + + Make mailcap--regexp-quote-type more resilient + + * lisp/net/mailcap.el (mailcap--regexp-quote-type): Make more + resilient in the presence of junk. + +2022-10-01 Lars Ingebrigtsen + + Make "git pull" output slightly prettier + + * lisp/vc/vc-git.el (vc-git--pushpull): Translate ^M in output + (bug#58199). + +2022-10-01 Eli Zaretskii + + Fix vertical motion in some rare bidi situations + + * src/xdisp.c (move_it_by_lines): Handle the case where we + didn't move vertically at all. + +2022-10-01 Lars Ingebrigtsen + + Make mailcap consistent about regexp-quoting minors + + * lisp/net/mailcap.el (mailcap-mime-data): Quote regexp. + (mailcap-mime-extensions): Ditto. + (mailcap--regexp-quote-type): New function. + (mailcap-parse-mimetype-file): Use it to get consistent quoting of + (regexp) strings (bug#52038). Before you'd get both + application/vnd\.ms-excel and application/vnd.ms-excel (etc), + making prompting confusing. + +2022-10-01 Lars Ingebrigtsen + + Fix url-retrieve-synchronously on very short timeouts + + * lisp/url/url.el (url-retrieve-synchronously): Don't kill the + process buffer unless we made one (bug#58218). This makes HTTP + free connection marking work on premature timeouts. + +2022-10-01 Matthias Meulien + + Define ansi-osc customization group + + * lisp/ansi-osc.el (ansi-osc): Define ansi-osc customization group + (ansi-osc-for-compilation-buffer): Fix wrong group + +2022-10-01 Matthias Meulien + + Rename osc.el to ansi-osc.el (bug#58200) + + * lisp/osc.el: Move from here... + * lisp/ansi-osc.el: ...to here. + * test/lisp/osc-tests.el: Move from here... + * test/lisp/ansi-osc-tests.el: ...to here. + +2022-10-01 Protesilaos Stavrou + + Update to Modus themes stable version 2.7.0 + + * doc/misc/modus-themes.org (Load theme depending on time of day): Add + missing keyword from sample configuration. + (Full support for packages or face groups): Update list of supported packages. + (Note on goto-address-mode faces): Add documentation about possible + user-level tweaks. + (Are these color schemes?): Fix typo. + (Acknowledgements): Update list of contributors to the project. + + * etc/themes/modus-themes.el (modus-themes--version): Update to + current stable version. + (modus-themes-vivendi-colors): Tweak value of a single color. + (modus-themes-faces): Update list of supported faces. + (modus-themes-custom-variables): Remove outdated "TODO" comment. + + * etc/themes/modus-operandi-theme.el: + * etc/themes/modus-vivendi-theme.el: Update version header. + + Release notes: . + +2022-10-01 Gerd Möllmann + + Make it compile with ITREE_DEBUG defined + + * src/buffer.c (make_lispy_interval_node): Use make_fixnum. + (overlay_tree): Use ITREE_NULL. + +2022-10-01 Eli Zaretskii + + Fix 'C-a' and 'C-e' under 'visual-line-mode' + + * src/xdisp.c (move_it_vertically_backward): Fix last change. + (Bug#58210) + +2022-09-30 Paul Eggert + + Update from Gnulib by running admin/merge-gnulib + +2022-09-30 Stefan Monnier + + itree.c: Improve division between tree and iterator + + * src/buffer.c (delete_all_overlays): Add comment. + + * src/itree.c (struct interval_generator): New fields `running`, + `file`, and `line` moved from `interval_tree`. + (interval_stack_push_flagged): Adjust comment to resolve a FIXME. + (interval_tree_clear): Replace assignment with an a + (interval_tree_iter_next): Delete function. + (interval_tree_clear): Don't set `iter_running` here any more. + (interval_generator_create): Set it here instead. + (interval_tree_iter_start): Fetch `iter` once and for all. + (interval_generator_narrow): Mark it as non-static. + (interval_tree_iter_next, interval_tree_iter_narrow): + Delete functions. Inline their old bodies in the callers. + (interval_tree_iter_finish): Take the iter rather than + the whole tree. Adjust all callers. + (interval_generator_next): Move `running `assertion here from + `interval_tree_iter_next`. + + * src/buffer.h: Adjust accordingly. + + * src/itree.h (struct interval_tree): Remove fields `iter_running`, + `file`, and `line`, moved to `interval_generator`. + (interval_generator_narrow): Replace `interval_tree_iter_narrow`. + +2022-09-30 Yuan Fu + + Change tree-sitter indent anchor preset 'prev-line' + + * doc/lispref/modes.texi: Update manual. + * lisp/treesit.el (treesit-simple-indent-presets): Change prev-line to + mean bol of prev-line. + +2022-09-30 Yuan Fu + + Fix tree-sitter manuals + + * doc/lispref/modes.texi: Fix typos, reword, etc. + * doc/lispref/parsing.texi: Fix typos, reword, etc. + +2022-09-30 Michael Albinus + + Fix connection property incompatibility in Tramp + + * lisp/net/tramp.el (tramp-get-remote-tmpdir): Remove obsolete + connection property "tmpdir". (Bug#57800) + +2022-09-30 Miha Rihtaršič + + Rename comint-fl-* to comint-fontify-input-* and mention it in NEWS + + * lisp/comint.el + (comint-fontify-input-mode): + (comint--fontify-input-saved-jit-lock-contextually): + (comint--fontify-input-on): + (comint--fontify-input-off): + (comint--fontify-input-ppss-flush-indirect): + (comint--fontify-input-fontify-region): Replace comint-fl-* with + comint-fontify-input-*. + + * lisp/ielm.el (ielm-fontify-input-enable): + (ielm-fontify-input-enable): + (ielm-indirect-setup-hook): + (inferior-emacs-lisp-mode): Replace comint-fl-* with + comint-fontify-input-*. + + * lisp/shell.el (shell-comint-fl-enable): + (shell-mode): Replace comint-fl-* with comint-fontify-input-*. + + * etc/NEWS: Mention the new modes and how to disable or enable + them (bug#58169). + +2022-09-30 Miha Rihtaršič + + comint-fl: Prevent fontification of output as input + + * lisp/comint.el (comint-output-filter): Inhibit jit-lock + fontification of inserted process output before marking it with the + 'output' filed property (bug#58169). + +2022-09-30 Lars Ingebrigtsen + + Further with-locale-environment refresh fixes + + * lisp/international/mule-cmds.el + (set-display-table-and-terminal-coding-system): Allow inhibiting + refresh. + (set-locale-environment): Inhibit refresh in more paths (bug#58193). + +2022-09-30 Sean Whitton + + Add vc-edit-next-command + + * lisp/vc/vc.el (vc-read-revision): Override + vc-filter-command-function back to its default value. + (vc-print-branch-log): Remove recently-added prefix argument. + (vc-edit-next-command): New command. + * lisp/vc/vc-hooks.el (vc-prefix-map): Bind it to 'C-x v !'. + * etc/NEWS: + * doc/emacs/vc1-xtra.texi (Editing Shell Commands): Document it. + +2022-09-30 Mattias Engdegård + + Rectify string= documentation + + * doc/lispref/strings.texi (Text Comparison): Describe the current + behavior since about 20 years back. + +2022-09-30 Mattias Engdegård + + Strengthen string-lessp tests + + * test/src/fns-tests.el (fns-tests--string-lessp-cases) + (fns-tests-string-lessp): Check more cases, and in a more robust way. + +2022-09-30 Mattias Engdegård + + Speed up string-lessp further + + * src/fns.c (Fstring_lessp): Use the memcmp fast path for ASCII-only + multibyte strings as well. Specialize loops on argument + multibyteness. + +2022-09-30 Lars Ingebrigtsen + + Don't refresh the frame in with-locale-environment + + * lisp/international/mule-cmds.el (with-locale-environment): + Inhibit refresh so that there's no flickering (bug#58193). + (set-locale-environment): Allow inhibiting the refresh. + * lisp/international/mule.el (set-terminal-coding-system): Ditto. + +2022-09-30 Lars Ingebrigtsen + + Make gnus-user-agent less verbose + + * lisp/gnus/gnus.el (gnus-user-agent): Don't include the Emacs/OS + version for privacy reasons (bug#58171). + +2022-09-30 Lars Ingebrigtsen + + Fix the `dictionary' parent defgroup + + * lisp/net/dictionary.el (dictionary): The `hypermedia' group + doesn't exist, so put it in the same parent group that `ispell' + uses (bug#58178). + +2022-09-30 Jose A. Ortega Ruiz + + docview: fixes for imenu generation + + * lisp/doc-view.el: (doc-view--pdf-outline): + (doc-view-imenu-index): + (doc-view-imenu-setup): Fix multiple empty index generation for + documents without an outline, caching the result (see discussion in + bug#58103). + (doc-view--imenu-subtree): Fix for nested imenus (bug introduced in + commit fe002cc8ce) (bug#58180). + +2022-09-30 Lars Ingebrigtsen + + Fix rename-visited-file when renaming to a directory name + + * lisp/files.el (rename-visited-file): Allow renaming to a + directory file name (bug#58182). + +2022-09-30 Lars Ingebrigtsen + + Improve message-sendmail-f-is-evil documentation + + * lisp/gnus/message.el (message-sendmail-f-is-evil): Move some of + the explanation here. + + * lisp/mail/feedmail.el (feedmail-sendmail-f-doesnt-sell-me-out): + Refer to message-sendmail-f-is-evil (bug#58185). + +2022-09-30 Eli Zaretskii + + Fix some issues with vertical-motion in bidi-reordered text + + This fixes some uses of vertical-motion when a screen line + starts withcharacters of directionality that is opposite to + the current paragraph's base direction. + * src/xdisp.c (move_it_vertically_backward): Adjust NLINES to + compensate for its increasing when DY == 0. + +2022-09-30 Gerd Möllmann + + Remove the per-tree null node + + "make check" shows 0 unexpected. + + * src/itree.h (itree_null): Declare extern. + (ITREE_NULL): New macro + (struct interval_tree): Remove null member. + * src/alloc.c (mark_overlays): Use ITREE_NULL. + * src/itree.c: Use ITREE_NULL insteads of a tree's null. + * src/pdumper.c (dump_buffer): Use ITREE_NULL. + +2022-09-30 Po Lu + + Fix calculation of frame times when X server time overflows + + * etc/TODO: Add TODO about frame synchronization and animations. + * src/xterm.c (x_display_set_last_user_time): Handle cases when + the monotonic time is not the server time due to the latter + overflowing. + +2022-09-30 समीर सिंह Sameer Singh + + Add support for the Toto script (bug#58181) + + * lisp/language/indian.el ("Toto"): New language environment. + Add input method. + * lisp/international/fontset.el (script-representative-chars): + Support Toto. + * lisp/leim/quail/indian.el ("toto"): New input method. + + * etc/NEWS: Announce the new language environment. + +2022-09-30 Stefan Kangas + + Merge from origin/emacs-28 + + 64e8cc14b5 ; * lisp/image.el (create-image): Fix last change in doc s... + f3e3632394 Update some Gnus documentation in the Emacs manual + +2022-09-29 Stefan Monnier + + itree: Remove the `visited` flag from the tree nodes + + These bits really belong in the "workstack" used within + `interval_generator_next`, so move them there. + + * src/itree.c (nodeptr_and_flag): New type; + (struct interval_stack): Use it. + (make_nav, nav_nodeptr, nav_flag): New functions. + (interval_tree_insert_gap, interval_tree_delete_gap): Adjust accordingly. + (interval_generator_next): Stash the `visited` bit in the work stack + rather than inside the tree nodes. + (interval_stack_create, interval_stack_destroy, interval_stack_clear) + (interval_stack_ensure_space, interval_stack_push_flagged) + (interval_stack_push, interval_stack_pop): Move before first use. + + * src/itree.h (struct interval_node): Remove `visited` field. + * src/pdumper.c (dump_interval_node): Adjust accordingly. + +2022-09-29 Stefan Monnier + + free_buffer_overlays: Move nearer to its sole caller + + * src/buffer.c (free_buffer_overlays): Move from `buffer.h`. + * src/buffer.h (free_buffer_overlays): Move to `buffer.c`. + + * src/itree.c (interval_tree_iter_narrow, interval_tree_iter_finish) + (interval_tree_iter_next): Prefer `eassert`. + +2022-09-29 Stefan Monnier + + * src/itree.c (interval_tree_iter_start): Improve error message + +2022-09-29 Stefan Kangas + + Fix loading wallpaper.el on MS-Windows + + * lisp/image/wallpaper.el (wallpaper--find-command) + (wallpaper--find-command-args): Avoid backtrace when + 'wallpaper--find-setter' returns nil, e.g. on MS-Windows. + (Bug#58167) + +2022-09-29 Alan Mackenzie + + CC Mode: Refactor c-forward-delarator and callers + + c-forward-declarator now moves over a complete declarator, including any + arglist expression, but possibly not including certain C++20 constructs. + + * lisp/progmodes/cc-engine.el (c-forward-decl-arglist): New function, + extracted from c-do-declarators. + (c-forward-declarator): Extend the result list by one element, denoting + whether the function parsed an argument list. Insert special handling for a + C++ operator construct. If there is a parenthesis expression, and it is + an argument list, move forward over it. + (c-do-declarators): Append an optional parameter, cdd-anon-accepted + instructing the function to handle declarators without identifiers. Extract + c-forward-decl-arglist. + + * lisp/progmodes/cc-fonts.el (c-font-lock-declarators): New &optional + parameter accept-anon, as above. Analyze and use the identifier location + returned by c-do-declarators, rather than using c-last-identifier-range. + (c-font-lock-single-decl): Determine accept-anon from the context, passing it + as argument to c-font-lock-declarators. + + * lisp/progmodes/cc-langs.el (c-opt-identifier-prefix-key): Make a + c-lang-defvar out of this existing c-lang-defconst. + + * lisp/progmodes/cc-mode.el (c-fl-decl-end): Adapt for the new + c-forward-declarator which now moves over arglists. Amend better to handle + certain syntactically invalid constructs in C++. + +2022-09-29 Peter Münster + + New command image-dired-do-flagged-delete + + * lisp/image/image-dired.el (image-dired-delete-marked): Remove command, + because it was too buggy. + (image-dired-do-flagged-delete): New command that does almost the same + as the above removed command but with flagged images. + (image-dired-thumbnail-mode-map): Bind "x" to + 'image-dired-do-flagged-delete'. + +2022-09-29 Peter Münster + + image-dired-delete-char: Don't disturb formatting + + * lisp/image/image-dired.el (image-dired-delete-char): Don't disturb + the expected formatting of the thumbnail buffer (always one + space/newline after a thumbnail). + +2022-09-29 Stefan Kangas + + wallpaper-set: Get monitor name on non-graphical display + + * lisp/image/wallpaper.el + (wallpaper--format-arg): Break out function from here... + (wallpaper--x-monitor-name): ...to here. Try to get the monitor name + non-graphical displays, and prompt if that doesn't work. + (wallpaper-default-set-function): Improve debugging output. + Ref. https://lists.gnu.org/r/emacs-devel/2022-09/msg01910.html + +2022-09-29 Stefan Kangas + + Prompt for wallpaper width/height only when needed + + * lisp/image/wallpaper.el (wallpaper--format-arg): Don't prompt for + width and height unless the values are actually used. + +2022-09-29 Stefan Kangas + + Make format-spec accept function substitutions + + * lisp/format-spec.el (format-spec): Accept a function producing the + substitution for a character. + * doc/lispref/strings.texi (Custom Format Strings): Document the + above change. + * test/lisp/format-spec-tests.el (format-spec/function): New test. + Ref. https://lists.gnu.org/r/emacs-devel/2022-09/msg01875.html + +2022-09-29 समीर सिंह Sameer Singh + + Add support for the Wancho script (bug#58159) + + * lisp/language/indian.el ("Wancho"): New language environment. + Add sample text and input method. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Wancho. + * lisp/leim/quail/indian.el ("wancho"): New input method. + + * etc/HELLO: Add a Wancho greeting. + * etc/NEWS: Announce the new language environment. + +2022-09-29 Stefan Monnier + + alloc.c: Avoid nested overlay iterations (bug#58158) + + * src/alloc.c (mark_overlays): New function. + (mark_buffer): Use it instead of using the overlay iterator. + +2022-09-29 Stefan Kangas + + Remove Emacs 21 compat code for gnus-user-agent + + * lisp/gnus/gnus.el (gnus-user-agent): No longer convert old + (< 2005-01-10) symbol type values. + +2022-09-29 Lars Ingebrigtsen + + Update some Gnus documentation in the Emacs manual + + * doc/emacs/misc.texi (Gnus Group Buffer, Gnus Summary Buffer): + Update documentation (bug#58145). + +2022-09-29 Lars Ingebrigtsen + + Tweak while-let definition + + * lisp/subr.el (while-let): Use if-let* since we don't need/want + the backwards compat of if-let. + +2022-09-29 समीर सिंह Sameer Singh + + Add support for the Mende Kikakui script (bug#58151) + + * lisp/language/misc-lang.el ("Mende Kikakui"): New language environment. + Add sample text and input method. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Mende Kikakui, Indic Siyaq Numbers, + Ottoman Siyaq Numbers. + * lisp/leim/quail/misc-lang.el ("mende-kikakui"): New input method. + + * etc/HELLO: Add Mende Kikakui greeting. + * etc/NEWS: Announce the new language environment. + +2022-09-29 Jacob First + + bind-keys supports passing a list of keymaps as :map argument + + Fix bind-chords docs: :map argument may be a list of keymaps + +2022-09-29 Stefan Kangas + + Merge from origin/emacs-28 + + cf38e1c393 Clarify image file search + fc212364ce ; Fix typo. + +2022-09-28 Po Lu + + Pacify compiler warning in xterm.c + + * src/xterm.c (handle_one_xevent): Mark gen_help_time UNINIT. + Reported by Lars Ingebrigtsen . + +2022-09-28 Po Lu + + Fix the MS-DOS build + + * config.bat: Add assert.in-h. + * msdos/sed2v2.inp: Define HAVE_STDBOOL_H. + * msdos/sedlibmk.inp (GL_GNULIB_LCHMOD, HAVE_LCHMOD): Define to + reflect realities. + (NEXT_ASSERT_H, @GL_GENERATE_ASSERT_H_CONDITION@): Define. + (assert.h): Edit command group into individual commands appending + to assert.h-t. + +2022-09-28 Stefan Monnier + + itree.[ch]: Add sanity checks, comments, and minor tweaks + + * src/alloc.c (mark_overlay): Add sanity check. + + * src/buffer.c (next_overlay_change, previous_overlay_change): + Tweak code to keep the same vars for the bounds. + + * src/itree.c (interval_tree_clear, interval_tree_insert) + (interval_tree_remove, interval_tree_insert_fix, interval_tree_remove_fix): + Adjust to the `color` -> `red` change. + (interval_tree_clear): Prefer `true/false` for booleans. + (interval_generator_create): Use an actual `interval_tree_order` value + rather than 0. + (interval_generator_next): Simplify a tiny bit. Add comment. + (interval_generator_narrow): Add sanity check. + + * src/itree.h (struct interval_node): Replace `color` field with + boolean `red` field. + (enum interval_tree_order): Remove unused `ITREE_DEFLT_ORDER` value. + + * src/pdumper.c (dump_interval_node): Adjust to the + `color` -> `red` change. + +2022-09-28 Eli Zaretskii + + Clarify image file search + + * doc/lispref/display.texi (Defining Images, Image Descriptors): + * lisp/image.el (create-image): Clarify that non-absolute image + files are searched along 'image-load-path'. (Bug#52931) + +2022-09-28 Stefan Monnier + + * doc/lispref/functions.texi (Declare Form) : Re-rephrase + +2022-09-28 Stefan Monnier + + * doc/lispref/functions.texi (Declare Form) : Rephrase + + See bug#57397. + +2022-09-28 Stefan Monnier + + Merge remote-tracking branch 'origin/scratch/noverlay-wip' into noverlay + +2022-09-28 Stefan Kangas + + * .mailmap: Fixes for Emacs 29. + +2022-09-28 Stefan Kangas + + Merge from origin/emacs-28 + + 8033947fe2 .mailcap: Some additional fixes. + b1e92c59ed Avoid assertion violations in 'pop_it' + +2022-09-28 Gerd Möllmann + + Avoid nested iteration over intervals (bug#58144) + + * src/xdisp.c (strings_with_newlines): Call + buffer_overlay_iter_finish. + +2022-09-28 Gregory Heytings + + Remove hard-coded path to pwd in Makefiles. + + * Makefile.in: + * lib-src/Makefile.in: + * nextstep/Makefile.in: + * nt/Makefile.in: Replace hard-coded calls to /bin/pwd by calls + to 'pwd -P'. Fixes bug#58080. + +2022-09-28 Gerd Möllmann + + Add debugging help for nested iterators (nug#58144) + + When starting an iteration, store __FILE__ and __LINE__ where this + happens in the interval_tree structure. + + * src/buffer.h (buffer_overlay_iter_start): New macro adding __FILE + and __LINE__. + (buffer_overlay_iter_start1): Renamed from ..._start. + * src/itree.h (struct interval_tree): Add file and line info. + * src/itree.c: (interval_tree_contains, interval_tree_nodes, + interval_tree_insert_gap): Pass __FILE__ and __LINE__ to iter_start. + (interval_tree_iter_start): Record file and line info in tree. + +2022-09-28 Stefan Kangas + + .mailcap: Some additional fixes. + +2022-09-28 Eli Zaretskii + + Avoid assertion violations in 'pop_it' + + * src/xdisp.c (pop_it): Avoid assertion violations when handling + lists or vectors of display properties. (Bug#58122) + +2022-09-28 Stefan Kangas + + Merge from origin/emacs-28 + + 72aac80184 ; Fix typo + c54a64491f Add .mailmap for proper git log output + f9a072c592 ; Fix typo + 3d056f6947 * doc/emacs/ack.texi (Acknowledgments): Update maintainers. + 00159c086c ; Add commentary to disabled OTF support code in font.c + + # Conflicts: + # src/font.c + +2022-09-28 Stefan Kangas + + Add .mailmap for proper git log output + + This file is used to fix a few misspelled names in various git + listings (e.g., "git log"). This can be used to fix incorrect + attribution, poor display, or names showing up more than once. + It also allows updating an old email addresses to a new one. + See "man git-shortlog" for more information on the format. + + * .mailmap: New file. + +2022-09-28 समीर सिंह Sameer Singh + + Add support for the Adlam script (bug#58111) + + * lisp/language/misc-lang.el ("Adlam"): New language environment. + Add composition rules for Adlam. Add sample text and input method. + * lisp/international/fontset.el (script-representative-chars): + Support Adlam. + * lisp/leim/quail/misc-lang.el ("adlam"): New input method. + + * etc/HELLO: Add Adlam greeting. + * etc/NEWS: Announce the new language environment. + +2022-09-28 समीर सिंह Sameer Singh + + Improve Gurmukhi composition rules (Bug#58098) + + * lisp/language/indian.el: Improve composition rules for Gurmukhi. + + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Chess Symbols. + +2022-09-28 Po Lu + + Apply root window coordinate optimizations to crossing events as well + + * src/xterm.c (xi_compute_root_window_offset_enter): New + function. + (handle_one_xevent): Apply root window crossing optimizations to + XI_Enter and XI_Leave events too. Not strictly necessary but + since we apply them to motion events it would be consistent to + apply them to crossing events as well as recommended by the + ICCCM. + +2022-09-28 Stefan Kangas + + * lisp/files.el (auto-mode-alist): Add entry for ".mailmap". + +2022-09-28 Lars Ingebrigtsen + + Simplify eww--rescale-images code + + * lisp/net/eww.el (eww--rescale-images): Simplify code. + +2022-09-28 Lars Ingebrigtsen + + Add new macro 'while-let' + + * doc/lispref/control.texi (Conditionals): Document + when-let/if-let/while-let. + * lisp/subr.el (while-let): New macro. + +2022-09-28 Jose A. Ortega Ruiz + + docview: new customization options for imenu + + * doc/emacs/misc.texi (DocView Navigation): + * lisp/doc-view.el (doc-view-imenu-title-format, doc-view-imenu-flatten): + (doc-view--imenu-subtree): customizable format for imenu entry titles, + and flag to disable nested submenus. + * lisp/doc-view.el (doc-view--pdf-outline): clean up whitespace + markers '\r' and '\t' in imenu item titles (bug#58131). + +2022-09-28 Lin Sun + + package-update would always re-install package + + * lisp/emacs-lisp/package.el (package--updateable-packages): fix + version comparison between available packages and archived + packages (bug#58129). + +2022-09-28 Visuwesh + + Follow #target links in eww without re-rendering + + * lisp/net/eww.el (eww-follow-link): Do a text property search instead + of re-rendering to follow #target links in the same page. (bug#58118) + (eww-link-keymap): Bind to eww-follow-link as well. + +2022-09-28 Stefan Kangas + + image-dired: End thumbnail file names with ".jpg" + + * lisp/image/image-dired-util.el (image-dired-thumb-name): Always + end thumbnail name in ".jpg" and simplify naming to just use the + SHA-1 hash. (Bug#57961) + * test/lisp/image/image-dired-util-tests.el + (image-dired-thumb-name/image-dired): Adjust test for the above + change. + * etc/NEWS: Announce the above change. + +2022-09-28 Stefan Kangas + + Standardize XPM files + + These headers make GraphicsMagick croak with "Improper image header". + Note that the copyright information is already in README. + + * etc/images/checked.xpm: + * etc/images/gnus/gnus.xpm: + * etc/images/gnus/gnus-pointer.xpm: + * etc/images/mh-logo.xpm: + * etc/images/unchecked.xpm: Normalize file headers. + +2022-09-28 Gerd Möllmann + + Fix last change + +2022-09-28 Paul Eggert + + Port better to C23 bool+true+false keywords + + C23 is adding the C++ keywords bool, true, and false; + prefer them to if they are available. + * admin/merge-gnulib (GNULIB_MODULES): + Add stdbool, which emulates C23 on pre-C23 platforms. + (AVOIDED_MODULES): Remove stdbool; Gnulib has renamed + this module to stdbool-c99 and nobody uses it so it does + not need to be avoided. + * m4/c-bool.m4: New file, from Gnulib stdbool module. + * lib-src/seccomp-filter.c, src/conf_post.h, src/dynlib.h: + * src/emacs-module.c, src/nsterm.m, src/systhread.h: + * test/src/emacs-module-resources/mod-test.c: + Use the C23 style and use bool without including . + The Gnulib stdbool module causes config.h to include stdbool.h + on pre-C23 platforms. + * src/emacs-module.h.in: + Don’t include if C23 or later, or if + it has already been included. + +2022-09-28 Paul Eggert + + Update from Gnulib by running admin/merge-gnulib + +2022-09-27 Sean Whitton + + Maintaining ChangeLog history: add more details + + * admin/notes/repo (Maintaining ChangeLog history): Add more details. + See . + +2022-09-27 Stefan Kangas + + Make image-dired-dired-toggle-marked-thumbs faster + + * lisp/image/image-dired-dired.el + (image-dired-dired-toggle-marked-thumbs): Don't show progress, since + it makes things slower. + +2022-09-27 Lin Sun + + Load compiled "calc-loaddefs", if any + + * lisp/calc/calc.el ("calc-loaddefs"): Load the .elc file (if it + exists) (bug#58127). + +2022-09-27 Stefan Kangas + + image-dired: Fix header line when file is missing + + * lisp/image/image-dired.el + (image-dired-format-properties-string): Don't error when file has + been deleted. + +2022-09-27 Stefan Monnier + + * lisp/files.el (file-backup-file-names): Don't burp if dir doesn't exist + +2022-09-27 Stefan Kangas + + Add back useful information from gnus-coding.texi + + * lisp/international/rfc1843.el: + * lisp/net/pop3.el: Improve Commentary by adding back text from + deleted file gnus-coding.texi. + +2022-09-27 Stefan Kangas + + * doc/emacs/ack.texi (Acknowledgments): Update maintainers. + +2022-09-27 Lars Ingebrigtsen + + Remove gnus-coding.text (bug#58119) + +2022-09-27 Michael Albinus + + Some tramp-docker.el adaptions + + * lisp/net/tramp-docker.el (tramp-docker--completion-function): + Add ;;;###tramp-autoload cookie. Make implementation more robust. + (tramp-methods) Use `tramp-default-remote-shell'. + +2022-09-27 Stefan Kangas + + * etc/NEWS.23: Belatedly announce 'format-spec'. + +2022-09-27 Stefan Kangas + + Document the new "XRandR 1.5" value + + * src/xfns.c (Fx_display_monitor_attributes_list): + * lisp/frame.el (display-monitor-attributes-list): + * doc/lispref/frames.texi (Multiple Terminals): Document the new + "XRandR 1.5" value. + +2022-09-27 Po Lu + + Improve doc of `x-window-property' + + * src/xfns.c (Fx_window_property): Fix errors in doc string and + document where to obtain documentation for standardized window + properties. + +2022-09-27 Jose A. Ortega Ruiz + + docview: imenu access to table of contents + + * lisp/doc-view.el (doc-view-imenu-enabled): user option to disable + imenu generation. + * lisp/doc-view.el (doc-view--outline-rx): + (doc-view--pdf-outline, doc-view--imenu-subtree, doc-view-imenu-index): + functions implementing the imenu index generation via mutool. + * lisp/doc-view.el (doc-view-imenu-setup, doc-view-mode): setup of the + new functionality in doc-view mode. + * lisp/imenu.el (imenu-submenus-on-top): + (imenu--split-menu): new local variable to optionally inhibit + grouping of entries with children at the top of imenu menus. + * doc/emacs/misc.texi: documentation for the new functionality + (bug#58103). + +2022-09-27 Richard Hansen + + ert-x: Improve realism of `ert-with-test-buffer-selected' + + * lisp/emacs-lisp/ert-x.el (ert-with-test-buffer-selected): Set + `inhibit-read-only' and `buffer-read-only' to nil when executing the + body to provide a more realistic test environment. + +2022-09-27 Gerd Möllmann + + Fix macOS build (bug#58108) + + * src/itree.h (struct interval_tree): Rename member nil to null. + * src/itree.c: Use null instead of nil + * src/pdumper.c (dump_buffer): Use null instead of nil. + * src/itree.c: Fix copyright. + * src/itree.h: Fix copyright. + +2022-09-27 Alan Mackenzie + + * lisp/progmodes/cc-defs.el (c-let*-maybe-max-specpdl-size): Fix glitches + +2022-09-27 Alan Mackenzie + + CC Mode: Don't bind max-specpdl-size when it doesn't exist or is obsolete + + This is part of the changes for bug #57911. + + * lisp/progmodes/cc-defs.el (c-let*-maybe-max-specpdl-size): New macro. + (c-get-lang-constant): Use the new macro in place of let*. + +2022-09-26 YAMAMOTO Mitsuharu + + Avoid uninitialized variable warning + + * src/composite.c (composition_gstring_adjust_zero_width): Simplify + last change with respect to an exit condition. + +2022-09-26 Po Lu + + Optimize coordinate translation during event handling + + These changes noticeably improve turning the mouse wheel on top of + scroll bars etc over slow network connections. + + * src/xterm.c (x_dnd_note_self_position, x_dnd_note_self_wheel) + (x_dnd_note_self_drop): Use x_translate_coordinates. + (x_compute_root_window_offset): New function for calculating and + caching root window offsets of edit window. + (x_translate_coordinates): New function. Use cached values + whenever possible. + (xi_compute_root_window_offset) + (xi_compute_root_window_offset_pinch): New wrappers for XI2 + events. + (x_construct_mouse_click, handle_one_xevent): Use + x_translate_coordinates wherever appropriate. + * src/xterm.h (struct x_output): New fields for keeping track of + the root window offset of the edit window. + +2022-09-26 YAMAMOTO Mitsuharu + + Adjust zero-width grapheme clusters so they are displayed (Bug#50951) + + * src/composite.c (composition_gstring_adjust_zero_width): New function. + * src/composite.h: Declare it. + * src/font.c (Ffont_shape_gstring): Use it before putting gstring to cache. + +2022-09-26 Stefan Kangas + + Fix OBOE in image-dired--with-marked + + * lisp/image/image-dired.el (image-dired--with-marked): Fix off-by-one + error. + +2022-09-26 Sean Whitton + + vc-filter-command-function: Abbreviate default value + + * lisp/vc/vc-dispatcher.el (vc-filter-command-function): Abbreviate + `(lambda (&rest args) args)' as just `list'. + +2022-09-26 Stefan Kangas + + Get rid of default wallpaper-setter constructor + + * lisp/image/wallpaper.el (wallpaper-setter): Actually get rid of + the default constructor. + +2022-09-26 Stefan Kangas + + Set XFCE wallpaper also in single-workspace-mode + + This fixes setting the wallpaper on XFCE whether or not the + "/backdrop/single-workspace-mode" setting is true or false. + That XFCE setting controls whether or not the same wallpaper is used + on all workspaces or not. + + * lisp/image/wallpaper.el (wallpaper-setter) + (wallpaper-command-args, wallpaper-default-set-function): Allow + using a function for getting the command line arguments. + (wallpaper-xfce-command-args): New function. + (wallpaper--default-setters): Use above new function for XFCE. + +2022-09-26 Alan Mackenzie + + CC Mode: Handle C++20 concepts + + * lisp/progmodes/cc-align.el (c-lineup-topmost-intro-cont): Amend so as not to + indent lines following a requires line. + + * lisp/progmodes/cc-engine.el (c-forward-primary-expression) + (c-forward-c++-requires-clause): New functions. + (c-forward-declarator): Skip forward over any trailing requires clause. + (c-forward-decl-or-cast-1): Skip requires clauses before and after the type. + Amend the second element of the return list to include information on two + consecutive identifiers in <...>. + (c-looking-at-or-maybe-in-bracelist): Don't recognize braces in requires + expressions as brace lists. + (c-guess-basic-syntax): CASE 5D.7: New case to handle the continuation of a + "concept foo = " line. + + * lisp/progmodes/cc-fonts.el (c-basic-matchers-before): Add a new clause to + handle the declaration of a concept. + (c-get-fontification-context): Treat the arglist of a requires construct as a + declaration arglist. + + * lisp/progmodes/cc-langs.el (c-equals-nontype-decl-kwds/key) + (c-fun-name-substitute-kwds/key, c-pre-concept-<>-kwds/key): New + c-lang-consts/vars. + (c-constant-key): New c-lang-var. + (c-type-decl-suffix-key): Include "requires" in the keywords matched. + + * lisp/progmodes/cc-mode.el (c-fl-decl-start): Fix an off by one error. Use + equal rather than eq to compare two syntax contexts. + +2022-09-26 Stefan Kangas + + Don't auto-resize image if echo area is non-empty + + * lisp/image-mode.el (image-fit-to-window): Don't auto-resize + image if there's a message in the echo area. + +2022-09-26 Stefan Kangas + + Display a message when wallpaper was set + + * lisp/image/wallpaper.el (wallpaper-default-set-function): Display a + message when the wallpaper was successfully set. + +2022-09-26 Stefan Kangas + + Fix setting the wallpaper in XFCE + + * lisp/image/wallpaper.el (wallpaper-command-args) + (wallpaper-default-set-function): Support new format specifiers + %S for screen, %W for workspace, and %M for monitor. + (wallpaper--default-setters): Use above new specifiers for XFCE. + (wallpaper--format-arg): New defun broken out from... + (wallpaper-default-set-function): ...here. + (wallpaper--get-height-or-width): Support noninteractive use. + * test/lisp/image/wallpaper-tests.el (wallpaper--format-arg/filename) + (wallpaper--format-arg/filename-hex) + (wallpaper--format-arg/width, wallpaper--format-arg/screen) + (wallpaper--format-arg/monitor, wallpaper--format-arg/workspace): + New tests. + +2022-09-26 Stefan Kangas + + Rewrite wallpaper.el to use a cl-defstruct + + * lisp/image/wallpaper.el + (wallpaper--default-commands): Delete variable. + (wallpaper-setter): New cl-defstruct. + (wallpaper--default-methods-create): New macro. + (wallpaper--default-setters): + (wallpaper--current-setter): New variables. + (wallpaper--find-setter): New defun to pick a wallpaper-setter. + (wallpaper--find-command, wallpaper--find-command-args): + Use 'wallpaper--find-setter'. + (wallpaper-command): Doc fix. + + * test/lisp/image/wallpaper-tests.el + (wallpaper--find-command/return-string) + (wallpaper--find-command-args/return-list) + (wallpaper--image-file-regexp/return-string): New tests. + +2022-09-26 Protesilaos Stavrou + + Add log-edit-summary-separator face (bug#58092) + + * lisp/vc/log-edit.el (log-edit-summary-separator): Add new face. + (log-edit-font-lock-keywords): Replace hardcoded face attributes with + named face. + * etc/NEWS: Announce the new face. + +2022-09-26 Stefan Kangas + + Autoload image-dired-thumbnail-storage :safe property + + * lisp/image/image-dired.el (image-dired-thumbnail-storage): + Autoload :safe property. + +2022-09-26 Lars Ingebrigtsen + + Fix (thing-at-point 'url) in eww forms + + * lisp/net/eww.el (eww-tag-input): Don't claim to have an URL here + (bug#58091). + + * lisp/net/shr.el (shr-next-link, shr-previous-link): Search for + shr-tab-stop instead of shr-url so that we can be more general. + (shr-urlify): Mark all links as tabbable-to. + +2022-09-26 João Távora + + Make clojure-lsp handle more major modes at once + + Suggested-by: Witoslaw Koczewski + + * eglot.el (eglot-server-programs): Enhance clojure-specific section. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/682 + +2022-09-26 Lars Ingebrigtsen + + Rescale images along with text in eww with `C-x C-+' + + * lisp/net/eww.el (eww--rescale-images): Also rescale images when + using `C-x C-+' etc (bug#58047). + +2022-09-26 Lars Ingebrigtsen + + Fix percentage width computation in vtable + + * lisp/emacs-lisp/vtable.el (vtable--compute-width): Fix + percentage computation (bug#58067). + +2022-09-26 Lars Ingebrigtsen + + Keep point in eww after hitting `g' + + * lisp/net/eww.el (eww-retrieve): Keep point after hitting `g' + (bug#58076). + +2022-09-26 Lars Ingebrigtsen + + Fix whitespace-mode in read-only buffers + + * lisp/whitespace.el (whitespace--update-bob-eob): Don't bug out + in read-only buffers (bug#58082). + +2022-09-26 João Távora + + Add support for "single server, multiple modes" + + Previously, if an entry such as: + + ((c++-mode c-mode) . ("clangd)") + + were found in eglot-server-programs, it meant that opening a .cpp file + and a .c file in the same project and enabling eglot for both would + lead to two clangd instances. Now only one instance is created to + handle all buffers of those major modes, as long as they are in the + same project. + + This change accomplishes this with minimal changes and NO modification + to the already complicated syntax of eglot-server-programs. + + Naturally, this means that a subtle backward-incompatibility was + introduced. If, instead of "clangd", someone is using some kind + "c++-or-c-but-not-both-at-once" server, this commit now breaks that + person's configuration. + + After analyzing the entries of this variable, an educated guess was + made that this situation is rare. If it's not rare, then some change + to the syntax of eglot-server-programs will have to ensue. + + * eglot.el (eglot-server-programs): Update docstring. + (eglot-lsp-server): Replace major-mode -> major-modes. + (eglot--lookup-mode): Rework. + (eglot--guess-contact): Rework. + (eglot--connect): Reword first parameter. + (eglot-reconnect): Use eglot--major-modes. + (eglot--read-server): Rework. + (eglot--ensure-list): New helper. + (eglot-current-server): Rework. + (eglot-handle-request workspace/configuration): Use first of + managed major modes. + + * NEWS.md: Mention change. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/681 + +2022-09-26 João Távora + + Shoosh byte-compilation warnings about line numbering functions + + Also add warning at the top of file about not using functionality + incompatible with 26.3 + + * eglot.el: + (eglot-current-column, eglot-current-column): Use line-beginning-position + (eglot--xref-make-match): Use line-beginning-position, + line-end-position, line-number-at-pos + +2022-09-25 Stefan Monnier + + * src/buffer.c (overlays_in): Fix confusion Z-vs-ZV + + This fixes test failures in `test-overlays-in-2` and `test-remove-overlays`. + +2022-09-25 YAMAMOTO Mitsuharu + + Make average width computation on ftcr more permissive (Bug#43058) + + * src/ftcrfont.c (ftcrfont_open): Use only non-zero width glyphs for + computing average width. + +2022-09-25 Stefan Monnier + + Merge 'master' into noverlay + +2022-09-25 Stefan Monnier + + tex-mode.el: Don't override AUCTeX modes + + * lisp/textmodes/tex-mode.el (TeX-mode, plain-TeX-mode, LaTeX-mode): + Only define them as aliases in `lisp/loaddefs.el` so we don't + override AUCTeX's own definitions when we load `tex-mode.el`. + +2022-09-25 Mattias Engdegård + + Boolean constant detection additions + + * lisp/emacs-lisp/byte-opt.el (byte-opt--bool-value-form): + `set` is boolean identity in its second argument. + (byte-compile-trueconstp): `set-marker` is always true. + +2022-09-25 Stefan Kangas + + Refactor system specific code in wallpaper.el + + * lisp/image/wallpaper.el (wallpaper-set-function): New defvar + containing system specific function for setting wallpaper. + (wallpaper-default-set-function): Factor out function from... + (wallpaper-set): ...here. Use above new defvar. + + (wallpaper-default-file-name-regexp): Delete defvar. + (wallpaper-image-file-extensions): New defvar. + (wallpaper--image-file-regexp): New defun that returns a regexp to + match for completion purposes. + + (wallpaper--use-default-set-function-p): New defun. + (wallpaper--find-command, wallpaper--find-command-arguments): + Do nothing on MS-Windows and Haiku. + +2022-09-25 Mattias Engdegård + + Don't crash in copy-alist with non-list argument + + * src/fns.c (Fcopy_alist): Check argument type. + * test/src/fns-tests.el (fns--copy-alist): New test. + +2022-09-25 Stefan Kangas + + Add reasonable default to wallpaper-set + + * lisp/image/wallpaper.el + (wallpaper-default-file-name-regexp): New variable. + (wallpaper--get-default-file): New function. + (wallpaper-set): Use above new function to set a default. + * test/lisp/image/wallpaper-tests.el: New file. + +2022-09-25 Stefan Kangas + + Add :buffer argument to ert-with-temp-file + + * lisp/emacs-lisp/ert-x.el (ert-with-temp-file): Add new keyword + argument :buffer SYMBOL to visit the file with `find-file-literally' + before running the body, and cleaning up after. + +2022-09-25 Po Lu + + Implement font-use-system-font on Haiku + + * doc/emacs/frames.texi (Fonts): Update documentation to say + what font-use-system-font really does and where it can be used. + * src/haiku_font_support.cc (language_code_points): Fix coding + style. + (font_style_to_flags, be_font_style_to_flags): Accept const char + *. + (be_send_font_settings, be_listen_font_settings) + (be_lock_font_defaults, be_unlock_font_defaults) + (be_get_font_default, be_get_font_size): New functions used to + retrieve default font data. + + * src/haiku_io.c (haiku_len): Handle FONT_CHANGE_EVENT. + * src/haiku_support.h (enum haiku_event_type): New event type + FONT_CHANGE_EVENT. + (enum haiku_what_font): New enum. + (struct haiku_font_change_event): New struct. + + * src/haikufont.c (Ffont_get_system_normal_font) + (Ffont_get_system_font, haiku_handle_font_change_event): New + functions. + (syms_of_haikufont): Provide `dynamic-setting' and define new + variables and subrs. + + * src/haikuterm.c (haiku_default_font_parameter): Use system font. + (haiku_read_socket): Handle FONT_CHANGE_EVENTS. + (haiku_term_init): Start listening for font configuration changes. + * src/haikuterm.h: Update prototypes. + + * src/xsettings.c (Ffont_get_system_normal_font) + (Ffont_get_system_font): Update doc string. + (syms_of_xsettings): Replace calls to intern with a static + string. + +2022-09-25 Stefan Kangas + + wallpaper: URI-encode gsettings argument + + * lisp/image/wallpaper.el (wallpaper--default-commands) + (wallpaper-command-args, wallpaper-set): URI-encode gsettings + argument. + +2022-09-25 Stefan Kangas + + Improve shortdoc documentation + + * doc/emacs/help.texi (Name Help): + * doc/lispref/help.texi (Documentation Groups): Refer to + 'shortdoc' convenience alias instead of 'shortdoc-display-group'. + * lisp/emacs-lisp/shortdoc.el: Add Commentary. + (shortdoc-next, shortdoc-previous) + (shortdoc-next-section, shortdoc-previous-section): Doc fixes. + +2022-09-25 Stefan Kangas + + Make image-dired-thumb-name more portable + + * lisp/image/image-dired-util.el + (image-dired-thumb-name): Create file names in a portable manner. + * test/lisp/image/image-dired-util-tests.el + (image-dired-thumb-name/standard) + (image-dired-thumb-name/image-dired) + (image-dired-thumb-name/per-directory): Expand tests. + +2022-09-25 Stefan Kangas + + Fix shortdoc movement commands + + * lisp/emacs-lisp/shortdoc.el (shortdoc--goto-section): Don't skip + over current function or section when searching. + +2022-09-25 Stefan Kangas + + Add new command 'shortdoc-copy-function-as-kill' + + * lisp/emacs-lisp/shortdoc.el + (shortdoc-copy-function-as-kill): New command. + (shortdoc-mode-map): Bind above new command to "w". + +2022-09-25 Stefan Kangas + + * etc/NEWS.22: Belatedly announce 'dired-copy-filename-as-kill'. + +2022-09-25 Stefan Kangas + + Bind "N"/"P" to next/prev section in shortdoc + + * lisp/emacs-lisp/shortdoc.el (shortdoc-mode-map): Bind "N" and + "P" to 'shortdoc-next-section' and 'shortdoc-previous-section'. + +2022-09-25 Stefan Kangas + + * lisp/bookmark.el (bookmark-rename): Improve prompt. + +2022-09-25 Stefan Kangas + + Add new command image-dired-copy-filename-as-kill + + * lisp/image/image-dired.el + (image-dired-copy-filename-as-kill): New command. + (image-dired-thumbnail-mode-map): Bind above new command to "w". + +2022-09-25 Philip Kaludercic + + * lisp/net/rcirc.el (rcirc-print): Remove 'fill-region' call + + See Bug#57376. + +2022-09-25 Philip Kaludercic + + Add formatting commands to rcirc + + * etc/NEWS: Mention new command + * lisp/net/rcirc.el (rcirc-format): Add new utility function. + (rcirc-unformat): Add new command. + (rcirc-format-bold): Add new command. + (rcirc-format-italic): Add new command. + (rcirc-format-underline): Add new command. + (rcirc-format-strike-trough): Add new command. + (rcirc-format-fixed-width): Add new command. + (rcirc-mode-map): Bind formatting commands. + (rcirc-multiline-minor-mode-map): Bind formatting commands. + +2022-09-25 Yuan Fu + + Fix treesit-induce-sparse-tree + + Because not-at-all-werid way we implemented ts_build_sparse_tree, it’s + return value needs a bit post-processing (i.e., reverse its cdr). + + * src/treesit.c (Ftreesit_induce_sparse_tree): Reverse the top-level + children list. + (ts_build_sparse_tree): Add comment. + +2022-09-25 Yuan Fu + + Improve treesit-search-forward-goto + + * doc/lispref/parsing.texi (Retrieving Node): Update manual. + * lisp/treesit.el (treesit-search-forward-goto): Instead of taking a + node, use the node at point, and make sure we make progress. + +2022-09-25 Yuan Fu + + Fix treesit-search-forward + + * src/treesit.c (ts_search_forward): Fix return value. + +2022-09-25 Yuan Fu + + Update and enable treesit-imenu function in python.el + + * lisp/progmodes/python.el (python--treesit-settings): Add docstring. + (python--imenu-treesit-create-index-1): Rewrite with + treesit-induce-sparse-tree. + (python-imenu-treesit-create-index): Move main body to + python--imenu-treesit-create-index-1. + (python-imenu-treesit-create-flat-index): Fix typo. + (python-mode): Enable treesit-imenu. Also fix indentation for + which-func code. + +2022-09-25 Yuan Fu + + Add the treesit-search functions that supplant the removed ones + + The signatures also changed. + + treesit-traverse-depth-first -> treesit-search-subtree + treesit-traverse-breadth-first -> + treesit-traverse-forward -> treesit-search-forward + treesit-search-forward -> treesit-search-forward-goto + treesit-search-beginning/end -> treesit-search-forward-goto + -> treesit-induce-sparse-tree + + * doc/lispref/parsing.texi (Retrieving Node): Add relevant manual + sections. + * lisp/treesit.el (treesit-search-forward-goto): New function. + * src/treesit.c (ts_traverse_sibling_helper) + (ts_traverse_match_predicate) + (ts_search_dfs) + (ts_search_forward) + (treesit-search-subtree) + (treesit-search-forward) + (ts_build_sparse_tree) + (Ftreesit_induce_sparse_tree): Add functions. + * test/src/treesit-tests.el (treesit-node-supplemental): Add comments. + +2022-09-25 Yuan Fu + + Remove treesit-traverse functions + + Remove before adding the replacements. + + * doc/lispref/parsing.texi (Retrieving Node): Remove relevant sections. + * lisp/treesit.el (treesit-traverse-depth-first) + (treesit--traverse-breadth-first-1) + (treesit-traverse-breadth-first) + (treesit-next-sibling-or-up) + (treesit-traverse-forward) + (treesit-search-forward) + (treesit-search-beginning): + (treesit-search-end): Remove functions. + (treesit-defun-query): Remove variable. + (treesit-beginning-of-defun) + (treesit-end-of-defun): Remove functions. + * test/src/treesit-tests.el: Remove comments. + +2022-09-25 Yuan Fu + + Accept nil as NODE in treesit-node-text + + * lisp/treesit.el (treesit-node-text): Just wrap function body + in (when ...). + +2022-09-25 Yuan Fu + + Change make_string to build_string in treesit.c + + * src/treesit.c (Ftreesit_node_string) + (Ftreesit_node_field_name_for_child): Change make_string to + build_string. + +2022-09-25 Yuan Fu + + Improve printing treesit nodes + + * src/print.c (print_vectorlike): Instead of position, print the type + of the node. + +2022-09-25 Yuan Fu + + Rename treesit-expand-query/pattern + + * src/treesit.c (treesit-expand-pattern): Rename to + treesit-patter-expand. + (treesit-expand-query): Rename to treesit-query-expand. + (make_ts_query): Use new name. + * test/src/treesit-tests.el (treesit-query-api): Fix name. + +2022-09-24 Lars Ingebrigtsen + + Tweak window handling in vc-pull-and-push + + * lisp/vc/vc-dispatcher.el (vc--inhibit-async-window): Rename + variable. + (vc-do-async-command): Allow inhibiting all window changes. + + * lisp/vc/vc-git.el (vc-git-pull-and-push): Don't pop up the + window asynchronously on the "pull" because that gets in the way + of doing other things. + +2022-09-24 Stefan Kangas + + image-dired: Add faces for header line + + * lisp/image/image-dired.el (image-dired-thumb-header-file-name) + (image-dired-thumb-header-directory-name) + (-image-dired-thumb-header-file-size) + (image-dired-thumb-header-image-count): New faces. + (image-dired-format-properties-string): Use above new faces. + (image-dired-thumb-mark, image-dired-thumb-flagged): Move + definition further down. + +2022-09-24 Stefan Kangas + + image-dired: Add new %-format specifiers for header line + + * lisp/image/image-dired.el + (image-dired-format-properties-string): Add new specifiers "%n", "%d", + and "%s". + (image-dired-display-properties-format): Change default format to use + above new specifiers. + (image-dired--number-of-thumbnails): New variable. + (image-dired-insert-thumbnail, image-dired-display-thumbs): Keep + track of file number when appending it into the thumbnail buffer. + (image-dired--update-header-line): Support above new format + specifiers. Rename from 'image-dired-update-header-line' and + update callers. + * lisp/image/image-dired-dired.el + (image-dired-dired-display-properties): Support above new format + specifiers. + +2022-09-24 Sean Whitton + + Generalize & simplify implementation of user edits to VC commands + + * lisp/vc/vc-dispatcher.el (vc-pre-command-functions) + (vc-want-edit-command-p): Delete. + (vc-filter-command-function): New variable. + (vc-user-edit-command): Factor out of vc-do-command. + (vc-do-command, vc-do-async-command) + * lisp/vc/vc-git.el (vc-git--pushpull) + * lisp/vc/vc.el (vc-print-branch-log): Use vc-filter-command-function + in place of vc-pre-command-functions and vc-want-edit-command-p. + +2022-09-24 Juri Linkov + + * lisp/emacs-lisp/icons.el (icons--create): Use default rotation 0 (bug#57813) + +2022-09-24 Michael Albinus + + Adapt tramp-docker integration + + * doc/misc/tramp.texi (Inline methods): Add docker. + (Customizing Methods): Remove docker-tramp. Adapt references to this. + + * etc/NEWS: Mention new Tramp method "docker". Fix typos. + + * lisp/net/tramp-compat.el (docker-tramp): Warn, if that package is used. + + * lisp/net/tramp-docker.el: Format header lines. + (tramp-docker): Remove custom group. + (tramp-docker-program, tramp-docker-method): Add + ;;;###tramp-autoload cookie. + (tramp-docker-program): Change group to `tramp'. Add version. + (tramp-docker--completion-function): Fix docstring. + (tramp-docker--add-method, tramp-docker--remove-method) + (tramp-docker-unload-function, tramp-docker-setup): Remove functions. + (tramp-methods, tramp-set-completion-function): Initialize via + `tramp--with-startup'. + (tramp-unload-hook): Unload `tramp-docker'. + +2022-09-24 Stefan Kangas + + image-dired: Move menu definitions to keymaps + + * lisp/image/image-dired.el (image-dired-thumbnail-mode-menu): + * lisp/image/image-dired-dired.el (image-dired-minor-mode-menu): + Delete variables and move menus to... + * lisp/image/image-dired.el (image-dired-thumbnail-mode-map): + * lisp/image/image-dired-dired.el(image-dired-minor-mode-map): + ...here. + +2022-09-24 Manuel Giraud + + Ensure no memory leaks of glyph_matrix + + each glyph_matrix only when it's NULL. (Bug#58028) + +2022-09-24 kobarity + + hideshow.el: Improve hs-toggle-hiding behavior + + * lisp/progmodes/hideshow.el + (hs-find-block-beginning-match): New function to be used in + `hs-already-hidden-p'. + (hs-already-hidden-p): Add check if beginning of line is inside a + block. + (hs-toggle-hiding): Don't change to selected-window's buffer when + event arg is absent. + + * test/lisp/progmodes/hideshow-tests.el + (hideshow-tests-with-temp-buffer-selected): New helper macro. + (hideshow-tests-make-event-at): New helper function. + (hideshow-already-hidden-p-1): New test. + (hideshow-toggle-hiding-1): New test. + (hideshow-mouse-toggle-hiding-1): New test (bug#52092). + +2022-09-24 Lars Ingebrigtsen + + Regenerated ldefs-boot.el + +2022-09-24 Lars Ingebrigtsen + + Remove "manual" package--builtin-versions updates + + * lisp/emacs-lisp/nadvice.el: + * lisp/emacs-lisp/cl-generic.el: Don't push to + package--builtin-versions "manually", because loaddefs-gen does + this correctly now. + +2022-09-24 Brian Cully + + * lisp/net/tramp-docker.el: New file. + +2022-09-24 Stefan Monnier + + (event-start/end): Fix part of bug#52092 + + When synthesizing a posn for keyboard events, make sure the `posn-point` + i the same as `point`. + + * lisp/subr.el (event--posn-at-point): New function. + (event-start, event-end): Use it. + +2022-09-24 Stefan Monnier + + Merge branch 'emacs-28' + +2022-09-24 Stefan Monnier + + * lisp/progmodes/hideshow.el (hs-toggle-hiding): Fix `interactive` form + + This fixes the first part of bug#52092, which is a regression + introduced by commit d0e9113de97. + +2022-09-24 Lars Ingebrigtsen + + Make dired-do-rename refuse to rename . and .. + + * lisp/dired-aux.el (dired-do-rename): Refuse to rename . and .. + (bug#52004). This used to error out after renaming. + +2022-09-24 Lars Ingebrigtsen + + Add a new command vc-pull-and-push + + * lisp/vc/vc-svn.el (vc-exec-after): + * lisp/vc/vc-hg.el (vc-exec-after): + * lisp/vc/vc-git.el (vc-exec-after): + * lisp/vc/vc-cvs.el (vc-exec-after): + * lisp/vc/vc-bzr.el (vc-exec-after): + * lisp/org/org-macro.el (vc-exec-after): + * lisp/obsolete/vc-mtn.el (vc-exec-after): + * lisp/obsolete/vc-arch.el (vc-exec-after): Update declaration. + * lisp/vc/vc-dispatcher.el (vc--process-sentinel): Allow running + code only on success. + (vc-exec-after): Ditto. + (vc--inhibit-change-window-start): New variable. + (vc-do-async-command): Use it to allow chaining commands without + moving window point. Return the process instead of the buffer, + since the process may have exited already, and then we can't get + at the process. + + * lisp/vc/vc-git.el (vc-git--pushpull): Return the process object. + (vc-git-pull-and-push): New function. + + * lisp/vc/vc.el (vc-pull-and-push): New command (bug#51964). + +2022-09-24 Lars Ingebrigtsen + + Tweak binding of `+' in vc-dir + + * lisp/vc/vc-dir.el (vc-dir-mode-map): Point to the actual + function instead of the alias. This makes *Help* more helpful. + +2022-09-24 Alan Mackenzie + + CC Mode. Make AWK Mode work with electric-pair-mode + + Also fix some minor anomalies with other CC Mode modes in electric-pair-mode. + This fixes bug #53446. + + * lisp/progmodes/cc-mode.el (c-open-string-opener): New buffer local + variable. + (c-after-change-mark-abnormal-strings): Set c-open-string-opener when an + unbalanced string is detected. + (c-before-change): Initialize c-open-string-opener to nil, each buffer change. + (c-electric-pair-inhibit-predicate): Use the value of c-open-string-opener to + flag an unbalaced string rather than trying to calculate it again. + + * lisp/progmodes/cc-awk.el (c-awk-syntax-tablify-string): Set + c-open-string-opener when an unbalanced string is detected. + +2022-09-24 Visuwesh + + docview: Use svg images when using mupdf for conversion + + * lisp/doc-view.el (doc-view-mupdf-use-svg, doc-view-svg-background) + (doc-view-svg-foreground): New user options. + (doc-view-insert-image): Add :background and :foreground image + attributes when display svg images. + (doc-view-set-up-single-converter): Produce svg images when using + mupdf (bug#58041). + +2022-09-24 Stefan Kangas + + image-dired: Prefer command remapping + + * lisp/image/image-dired.el (image-dired-thumbnail-mode-map): + Prefer command remapping to binding keys directly. + +2022-09-24 Stefan Kangas + + image-dired: Fix C-a/C-e in thumbnail buffer + + * lisp/image/image-dired.el + (image-dired--movement-ensure-point-pos): New function, and... + (image-dired--movement-command): ...new macros broken out from... + (image-dired-next-line, image-dired-previous-line) + (image-dired-beginning-of-buffer, image-dired-end-of-buffer): + ...here. + (image-dired-move-beginning-of-line) + (image-dired-move-end-of-line): New commands. + (image-dired-thumbnail-mode-map): Remap 'move-beginning-of-line' + and 'move-beginning-of-line' to above new commands. + +2022-09-24 Stefan Kangas + + Make thumbs.el obsolete + + * lisp/obsolete/thumbs.el: Add Obsolete-since. + * etc/NEWS: Announce obsoletion of thumbs.el. (Bug#57779) + +2022-09-24 Stefan Kangas + + Move thumbs.el to lisp/obsolete + + * lisp/thumbs.el: + * test/lisp/thumbs-tests.el: Move from here... + * lisp/obsolete/thumbs.el: + * test/lisp/obsolete/thumbs-tests.el: ...to here. (Bug#57779) + +2022-09-24 Stefan Kangas + + image-dired: Regenerate old thumbnails when needed + + * lisp/image/image-dired.el + (image-dired--get-create-thumbnail-file): Rename from + 'image-dired-get-thumbnail-image'. Update callers and make old + name into an obsolete alias. + (image-dired-display-thumbs): Use above function to simplify and + regenerate the thumbnail if it's outdated. + +2022-09-24 Stefan Kangas + + image-dired: Improve performance of marking commands + + * lisp/image/image-dired.el (image-dired-thumbnail-storage): Mark + (image-dired--thumb-update-mark-at-point): New function. + (image-dired--thumb-update-marks): + (image-dired--do-mark-command): Use it. + (image-dired--thumb-update-marks): Rename from + 'image-dired-thumb-update-marks'. Update all callers and make the + old name into an obsolete alias. + +2022-09-24 Stefan Kangas + + image-dired: Mark 'per-directory' as :safe + + * lisp/image/image-dired.el (image-dired-thumbnail-storage): Mark + 'per-directory' value as :safe. + +2022-09-24 Stefan Kangas + + Add new macro image-dired--with-dired-buffer + + * lisp/image/image-dired-util.el + (image-dired--with-dired-buffer): New macro. + * lisp/image/image-dired.el (image-dired-track-original-file) + (image-dired--on-file-in-dired-buffer) + (image-dired--do-mark-command) + (image-dired--on-file-in-dired-buffer) + (image-dired-jump-original-dired-buffer) + (image-dired-thumb-file-marked-p, image-dired-delete-marked): + Use above new macro to simplify and improve error handling. + (image-dired-show-all-from-dir): Simplify removing Dired marks. + (image-dired-thumb-update-marks): Avoid triggering above new error + handling. + +2022-09-24 Lars Ingebrigtsen + + Tweak how :override advice is formatted in *Help* + + * lisp/emacs-lisp/nadvice.el (advice--make-single-doc): Format + :overrides specially (bug#57974). + (advice--make-docstring): Put overrides at the front. + +2022-09-24 Lars Ingebrigtsen + + Rename file-name-directory + + * lisp/emacs-lisp/shortdoc.el (file-name): + * doc/lispref/files.texi (Directory Names): Adjust. + * lisp/files.el (file-name-parent-directory): Rename from + `file-name-directory' (bug#58039). + +2022-09-24 Lars Ingebrigtsen + + Ensure that cus-load doesn't add things twice + + * lisp/cus-dep.el (custom-make-dependencies): Use it. + + * lisp/custom.el (custom--add-custom-loads): New function. + +2022-09-24 Lars Ingebrigtsen + + `append' doc string clarification + + * src/fns.c (Fappend): Clarify whether arguments are copied. + +2022-09-24 Lars Ingebrigtsen + + Clarify message-newline-and-reformat doc string + + * lisp/gnus/message.el (message-newline-and-reformat): Clarify the + DWIM-ness in the doc string (bug#57986). + +2022-09-24 Stefan Kangas + + Improve image-dired-thumbnail-display-external + + * lisp/image/image-dired.el: (image-dired-external-viewer): Add more + image viewers and slightly re-arrange. + (image-dired-thumbnail-display-external): Correctly handle + external viewers with spaces or flags. + +2022-09-24 Stefan Kangas + + * lisp/emacs-lisp/shortdoc.el (file-name): Improve examples. + +2022-09-24 Stefan Kangas + + image-dired: Use command substitution for tags bindings + + * lisp/image/image-dired-tags.el + (image-dired-dired-edit-comment-and-tags): Use substitute-command-keys + +2022-09-24 Stefan Kangas + + image-dired: Various code clean ups + + * lisp/image/image-dired.el + (image-dired--display-thumb-properties-fun): Delete function. + (image-dired-forward-image): Immediately update header line. Improve + docstring. + (image-dired-backward-image, image-dired-next-line) + (image-dired-previous-line, image-dired-beginning-of-buffer) + (image-dired-end-of-buffer, image-dired-display-image): Improve + docstring. + (image-dired-comment-thumbnail): Fix interactive declaration. + +2022-09-24 João Távora + + Fix blunder in eglot--guess-contact + + * eglot.el (eglot--guess-contact): Add back + 'split-string-and-unquote' lost in https://github.com/joaotavora/eglot/issues/940 fix. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/940 + +2022-09-24 Po Lu + + Reduce complexity of scroll bar window protection code + + It turns out my previous theories of why ClientMessages were + generated were wrong, and they are just generated so we can set + finish to X_EVENT_GOTO_OUT to have them delivered immediately. + + This allows for the code to be simplified greatly, by not + unpacking pointers to the raw window into the client messages. + + * src/xterm.c (x_unprotect_window_for_callback): Return the + window removed from the queue, or nil if none. + (x_scroll_bar_to_input_event) + (x_horizontal_scroll_bar_to_input_event): Use window provided by + x_unprotect_window_for_callback. + (handle_one_xevent): Pass dpyinfo to functions that need it. + (x_free_frame_resources): Remove "first scroll bar request" + code. + + * src/xterm.h (struct x_display_info): Likewise. + +2022-09-24 Augusto Stoffel + + New Flymake backend using the shellcheck program + + See bug#57884. + + * lisp/progmodes/sh-script.el: Require let-alist and subr-x when + compiling. + (sh--json-read): Helper function to deal with possible absence of + json-parse-buffer. + (sh-shellcheck-program, sh--shellcheck-process, + sh-shellcheck-flymake): Variables and function defining a Flymake + backend. + (sh-mode): Add it to 'flymake-diagnostic-functions'. + +2022-09-23 Sean Whitton + + vc-git--pushpull: Restore handling of vc-git-program + + * lisp/vc/vc-git.el (vc-git--pushpull): Restore handling of + vc-git-program before recent change: respect a buffer-local value of + vc-git-program, and don't ignore user edits to the git program name + when PROMPT. + +2022-09-23 Stefan Monnier + + * lisp/emacs-lisp/eieio.el (defclass): Fix bug#51068 + + Accept (defclass (.. ..)) without + having to wrap the slot name within parentheses. + +2022-09-23 Stefan Kangas + + image-dired: Rewrite and extend slideshow feature + + * lisp/image/image-dired.el + (image-dired--slideshow-start-timer) + (image-dired--slideshow-stop-timer) + (image-dired--slideshow-show-message): New functions. + (image-dired--slideshow-current-delay): New variable. + (image-dired--slideshow-initial): Delete variable. + (image-dired-slideshow-start): Simplify and ensure we display the + image at start. + * lisp/image/image-dired.el (image-dired--slideshow-stop): Add support + for pausing, and going backwards and forwards during slideshow. + +2022-09-23 Stefan Kangas + + image-dired: Mark two slideshow defuns as internal + + * lisp/image/image-dired.el (image-dired--slideshow-step) + (image-dired--slideshow-stop): Rename from + 'image-dired--slideshow-step' and 'image-dired--slideshow-stop'. + Update callers and make old names into obsolete aliases. + +2022-09-23 Stefan Monnier + + cconv.el: Fix interactive closure bug#51695 + + Make cconv.el detect when a closure's interactive form needs to + capture variables from the context and tweak the code accordingly + if so. + + * lisp/emacs-lisp/cconv.el (cconv--interactive-form-funs): New var. + (cconv-convert): Handle the case where the interactive form captures + vars from the surrounding context. Remove left over handling of + `declare` which was already removed from the cconv-analyze` phase. + (cconv-analyze-form): Adjust analysis of interactive forms accordingly. + + * lisp/emacs-lisp/oclosure.el (cconv--interactive-helper): New type and + function. + * lisp/simple.el (function-documentation, oclosure-interactive-form): + Add methods for it. + + * test/lisp/emacs-lisp/cconv-tests.el + (cconv-tests-interactive-closure-bug51695): New test. + +2022-09-23 Visuwesh + + Make Gnus respect mode-line-buffer-identification-keymap + + * lisp/gnus/gnus-group.el (gnus-group-set-mode-line): Use + 'propertized-buffer-identification' to buttonise and fontify the + buffer name. + * lisp/gnus/gnus-sum.el (gnus-set-mode-line): + * lisp/gnus/gnus.el (gnus-mode-line-buffer-identification): Adjust + calls to above. + * lisp/gnus/gnus-srvr.el (gnus-browse-foreign-server): Add missing + 'gnus-modeline-buffer-identification' call (bug#57977). + +2022-09-23 Visuwesh + + Make bounding box of 'image-crop' more noticeable + + * lisp/image/image-crop.el (image-crop--crop-image-1): Darken the + selected region to make the bounding-box more noticeable in images + which are mostly white (bug#58004). + +2022-09-23 Lars Ingebrigtsen + + Don't overwrite cus-load dependencies + + * lisp/cus-dep.el (custom-make-dependencies): Don't overwrite + elements added by packages (bug#58015). + +2022-09-23 Lars Ingebrigtsen + + Make loaddefs-gen register parent :groups from defcustom + + * lisp/emacs-lisp/loaddefs-gen.el + (loaddefs-generate--make-autoload): Also register parent :groups from + `defgroup' entries (bug#58015). + +2022-09-23 kobarity + + Fix syntax check in python-info-looking-at-beginning-of-defun + + * lisp/progmodes/python.el + (python-info-looking-at-beginning-of-defun): Check syntax after moving + to the beginning of line. + * test/lisp/progmodes/python-tests.el (python-nav-beginning-of-defun-6) + (python-end-of-defun-1, python-info-looking-at-beginning-of-defun-3): + New tests (bug#58023). + +2022-09-23 Lars Ingebrigtsen + + Inhibit image-crop when there's overlays + + * lisp/image/image-crop.el (image-crop): Don't mess with overlays, + because they're a pain to reconstruct (bug#58027). + +2022-09-23 Lars Ingebrigtsen + + Delete the correct region after cropping an image + + * lisp/image/image-crop.el (image-crop): Delete the correct region + after editing (bug#58027). + +2022-09-23 Stefan Kangas + + image-dired: Disable 'image-map' in thumbnail buffer + + These bindings are more likely to mess up the buffer than to be + helpful here; image manipulation is better done in the display buffer. + + * lisp/image/image-dired.el (image-dired-insert-thumbnail): Disable + `image-map' in thumbnail buffer. + +2022-09-23 Stefan Kangas + + Update manual for recent image-dired changes + + * doc/emacs/dired.texi (Image-Dired): Update to reflect recent + changes. + +2022-09-23 Mattias Engdegård + + * lisp/files.el (risky-local-variable): Remove max-specpdl-size. + +2022-09-23 Mattias Engdegård + + Remove max-specpdl-size overrun test + + * test/src/eval-tests.el (eval-tests--exceed-specbind-limit) + (eval-exceed-specbind-with-signal-hook): Remove test that is + no longer useful, since there is no longer any specpdl limit + to overrun. (The test still passed but vacuously so, by + hitting the max-lisp-eval-depth limit instead.) + This silences an obsoletion warning. + +2022-09-23 Michael Albinus + + * lisp/bookmark.el (bookmark-make-record): Fix thinko. + +2022-09-23 Stefan Kangas + + Improve prompt of 'image-dired' command + + * lisp/image/image-dired.el (image-dired-show-all-from-dir): + Improve prompt. + +2022-09-23 Stefan Kangas + + Rename 'image-dired-db-file' to 'image-dired-tags-db-file' + + * lisp/image/image-dired.el (image-dired-tags-db-file): Rename + from 'image-dired-db-file'. Update all uses and make old name + into an obsolete variable alias. + +2022-09-23 Stefan Kangas + + Merge from origin/emacs-28 + + 60ac12d21f Fix shaping with bitmap-only fonts on HarfBuzz 5.2.0 (Bug#... + 9f65e52362 ; Minor copyedits of elisp.texi + +2022-09-23 Po Lu + + Fix more toolkit scroll bar window protection issues + + * src/xterm.c (handle_one_xevent): Ignore outdated scroll bar + events. + (x_free_frame_resources): Clear protected windows and invalidate + previous scroll bar events. + * src/xterm.h (struct x_display_info): New field + `first_valid_scroll_bar_req'. + +2022-09-23 Stefan Kangas + + Autoload wallpaper-set + + * lisp/image/wallpaper.el (wallpaper-set): Autoload. + * lisp/image-mode.el (wallpaper): + * lisp/image/image-dired.el (wallpaper): + * lisp/thumbs.el (wallpaper): Don't require. + +2022-09-23 Eli Zaretskii + + Support Noto Emoji font as fallback + + The black-and-white emoji font is back under active development, + see https://github.com/googlefonts/noto-emoji. So this adds + that font as fallback for systems that don't have the capability + of using color fonts. + * lisp/international/fontset.el (setup-default-fontset): Support + black-and-white Noto Emoji font as fallback for Emoji display. + +2022-09-23 YAMAMOTO Mitsuharu + + Fix shaping with bitmap-only fonts on HarfBuzz 5.2.0 (Bug#57976) + + * src/ftcrfont.c (ftcrhbfont_begin_hb_font): Undo last change for + HarfBuzz 5.2.0. + +2022-09-22 Stefan Kangas + + Support several new DEs in wallpaper.el + + * lisp/image/wallpaper.el (wallpaper--default-commands) + (wallpaper--check-command, wallpaper-command): Add support for Unity, + Pantheon, Budgie, LXQt, and LXDE. Also add support for Lubuntu, + Xubuntu, and Pop!_OS. + +2022-09-22 Stefan Kangas + + image-dired: Obsolete two unused functions + + * lisp/image/image-dired-util.el (image-dired-display-window) + (image-dired-associated-dired-buffer-window): Make obsolete; they are + currently unused. + +2022-09-22 Yuan Fu + + Utilize tree-sitter in python.el + + * lisp/progmodes/python.el (python-use-tree-sitter): New option. + (python--treesit-keywords, python--treesit-builtins) + (python--treesit-constants, python--treesit-operators) + (python--treesit-special-attributes, python--treesit-exceptions): New + variables. + (python--treesit-fontify-string, python--treesit-settings) + (python--imenu-treesit-create-index) + (python--imenu-treesit-create-flat-index) + (python-info-treesit-current-defun): New functions. + (python-mode): Enable tree-sitter font-lock and which-func. + +2022-09-22 Mattias Engdegård + + Don't rewrite `set` to `setq` of lexical variables + + Only perform the rewrite + + (set 'VAR X) -> (setq VAR X) + + for dynamic variables, as `set` isn't supposed to affect + lexical vars (and never does so when interpreted). + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-set): + * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--xx): New. + (bytecomp-tests--test-cases): Add test cases. + * test/lisp/emacs-lisp/bytecomp-resources/warn-variable-set-nonvariable.el: + Remove obsolete test. + +2022-09-22 Stefan Kangas + + image-dired: Improve minor mode docstring + + * lisp/image/image-dired-dired.el (image-dired-minor-mode): + Improve docstring. + +2022-09-22 Stefan Kangas + + image-dired: Remove redundant keybindings + + * lisp/image/image-dired-dired.el (image-dired-minor-mode-map): + Don't redundantly bind keys that are already bound in dired. + +2022-09-22 Stefan Kangas + + Fix failing image-dired test + + * test/lisp/image/image-dired-util-tests.el (ert-x, xdg): Require. + (image-dired-thumb-name/): Delete test. + (image-dired-thumb-name/standard) + (image-dired-thumb-name/image-dired) + (image-dired-thumb-name/per-directory): New tests. + +2022-09-22 Stefan Kangas + + Add X-Hashcash to the end of mail headers + + * lisp/mail/hashcash.el (mail-add-payment): Move headers to the end of + the headers. + +2022-09-22 Michael Albinus + + Improve don't save bookmark context from encrypted files + + * etc/NEWS: Mention 'bookmark-inhibit-context-functions'. + Fix typos. + + * lisp/bookmark.el (bookmark-inhibit-context-functions): New defcustom. + (bookmark-make-record): Use it. + + * lisp/auth-source-pass.el (auth-source-pass-file-name-p): + * lisp/auth-source.el (auth-source-file-name-p): New defuns. Add + them to `bookmark-inhibit-context-functions'. + + * lisp/epa-hook.el (epa-file-name-p): + * lisp/net/tramp-crypt.el (tramp-crypt-file-name-p): Add them to + `bookmark-inhibit-context-functions'. + +2022-09-22 Po Lu + + Work around rare crash when turning scroll wheel + + * src/xterm.c (handle_one_xevent): Don't allow devices to be + added twice handling hierarchy events. + +2022-09-21 Sean Whitton + + Add support for user edits to VC command arguments + + * lisp/vc/vc-dispatcher.el (vc-pre-command-functions): New hook. + (vc-want-edit-command-p): New variable. + (vc-do-command): If vc-want-edit-command-p is non-nil, prompt the user + to edit the VC command & arguments before execution. Run the new hook. + (vc-do-async-command): Use the new hook to insert into BUFFER the + command that's next to be run. + * lisp/vc/vc-git.el (vc-git--pushpull): Drop prompting code. Bind + vc-want-edit-command-p so that vc-do-command handles the prompting. + Use the new hook to update compile-command with the edited command. + * lisp/vc/vc.el (vc-print-branch-log): A non-nil prefix argument now + means vc-want-edit-command-p is bound to a non-nil value (bug#57807). + +2022-09-21 Stefan Kangas + + Prefer command remapping in image-dired-minor-mode + + * lisp/image/image-dired-dired.el (image-dired-minor-mode-map): + Prefer command remapping. + (image-dired-minor-mode): Improve docstring. + +2022-09-21 Stefan Kangas + + Obsolete image-mode--images-in-directory + + * lisp/image-mode.el (image-mode--images-in-directory): Make + unused function obsolete. + +2022-09-21 Robert Pluim + + Update version tag of rmail-retry-ignored-headers + + * lisp/mail/rmail.el (rmail-retry-ignored-headers): Set :version to "29.1". + +2022-09-21 Stefan Kangas + + * test/lisp/image/image-dired-util-tests.el: New file. + +2022-09-21 Richard Stallman + + Add more headers to default value of rmail-retry-ignored-headers. + + * rmail.el (rmail-retry-ignored-headers): Add more headers to default. + Don't bother with `purecopy'. Split value readably. + +2022-09-21 Stefan Kangas + + Add new function xdg-session-type to xdg.el + + * lisp/xdg.el (xdg-session-type): New function. + +2022-09-21 Thuna (tiny change) + + Correct the usage of `image-file-name-regexps' + + * lisp/image-file.el (image-file-name-regexp): Treat + `image-file-name-regexps' as a list of regexps (as documented) in + addition to a regexp string (bug#57971). + +2022-09-21 Po Lu + + Fix handling of nil device names + + * lisp/frame.el (device-class): + * lisp/term/pgtk-win.el (pgtk-device-class): + * lisp/term/x-win.el (x-device-class): Handle `nil' + correctly. (bug#57969) + +2022-09-21 Po Lu + + Small adjustments to precision pixel scrolling + + * lisp/pixel-scroll.el + (pixel-scroll-precision-interpolation-factor): Adjust for + increased accuracy. + (pixel-scroll-precision-interpolate): Slightly decrease accuracy + in exchange for consing less floats. + (pixel-scroll-interpolate-down, pixel-scroll-interpolate-up): + Fix usage of function. + +2022-09-21 Po Lu + + Improve scroll interpolation in pixel-s-precision-mode + + * lisp/pixel-scroll.el (pixel-scroll-precision-interpolate): New + arg FACTOR. Use it to determine the interpolation factor if + non-nil. Also, clear scroll remainder if direction changes, and + determine deltas based on the absolute amount of time passed. + (bug#57967) + (pixel-scroll-interpolate-down, pixel-scroll-interpolate-up): + Pass factor of 0 to scroll exactly 1 page. + +2022-09-21 Lars Ingebrigtsen + + Make emacs-build-description into a command + + * lisp/mail/emacsbug.el (report-emacs-bug, submit-emacs-patch): + Adjust callers. + (emacs-build-description): Rename from + `emacs-bug--system-description' and make into a command. + +2022-09-21 Stefan Kangas + + Merge from origin/emacs-28 + + 478b786d5a ; * doc/lispref/windows.texi (Window Hooks): Fix a typo (b... + 5085351645 * lisp/text-modes/tex-mode.el (tex-mode): Fix AUCTeX regre... + ee6f8598ca Add vc-annotate-switches to manual + 616dcf27e5 ; Fix typos in Lisp symbols + 5405852541 Remove mention of non-existent `annotate-switches' + 191505b8a3 Mention that src/macuvs.h sometimes needs committing + 10373c4b68 ; More comment fixes in font.h (bug#57935) + c2595b8dcc ; * src/font.h (struct font_driver): Comment fix. + 97b928ce09 MacOS ld warning from native compilation (bug#57849) + +2022-09-21 Stefan Kangas + + * admin/gitmerge.el (gitmerge): Use substitute-command-keys. + +2022-09-21 Stefan Kangas + + Bind 'n'/'p' in gitmerge-mode to line scroll + + * admin/gitmerge.el (gitmerge-mode-map): Bind 'n' and 'p' to + 'next-line' and 'previous-line'. + +2022-09-21 Robert Pluim + + Fix substitute-command-keys for global binding lookup + + The previous change forgot to account for the (rare) case of doing a + lookup for a global binding when a specific keymap is in force. + + * lisp/help.el (substitute-command-keys): Redo lookup in global map if + lookup in specific map fails. + * + test/lisp/help-tests.el (help-tests-substitute-command-keys/keymap-change): + Add testcase for specific map overriding advertised-binding. + +2022-09-21 Juri Linkov + + * lisp/outline.el: More improvements for buttons/margins (bug#57813) + + (outline-minor-mode-use-margins): Don't use for modes derived from help-mode + that are handled by 'outline-minor-mode-use-buttons'. + (outline-open, outline-close, outline-close-rtl): Use image height + proportional to font height of 0.8em. + (outline-minor-mode): Remove overlays 'outline-button' and 'outline-margin', + and move such overlay removal after the call of 'outline-show-all' + that might trigger overlay addition. + +2022-09-21 Stefan Kangas + + image-dired: Support the customize-mode command + + * lisp/image/image-dired.el (image-dired-thumbnail-mode) + (image-dired-display-image-mode): Add custom group 'image-dired'. + +2022-09-21 Po Lu + + Fix minor thinko in focus tracking logic + + * src/xterm.c (xi_handle_focus_change): Prefer explicit focus to + implicit focus. + +2022-09-20 Yuan Fu + + Improve treesit-query-capture + + * src/treesit.c (Ftreesit_query_capture): Add a suggestion in the + signal message. + +2022-09-20 Yuan Fu + + Fix treesit-query-validate + + * lisp/treesit.el (treesit-query-validate): Add a call to + treesit-query-expand so this function works on both sexp and string + query, as expected. + +2022-09-20 Yuan Fu + + Rename treesit-expand-query/pattern + + * src/treesit.c (treesit-expand-pattern): Rename to + treesit-patter-expand. + (treesit-expand-query): Rename to treesit-query-expand. + (make_ts_query): Use new name. + +2022-09-20 Mauro Aranda + + Recognize the backslash operator in perl-mode + + * lisp/progmodes/perl-mode.el (perl-syntax-propertize-function): + Add new rule to detect a backslash operator. (Bug#11996) + + * test/lisp/progmodes/cperl-mode-tests.el (cperl-test-bug-11996): New + test. + + * test/lisp/progmodes/cperl-mode-resources/cperl-bug-11996.pl: New + file. + +2022-09-20 Stefan Kangas + + Make linum.el obsolete + + * lisp/obsolete/linum.el: Add Obsolete-since. + * etc/NEWS: Announce obsoletion of linum.el. (Bug#57412) + + * doc/misc/efaq.texi (Displaying the current line or column): + * etc/TODO: + * lisp/faces.el: Don't mention linum.el. + +2022-09-20 Stefan Kangas + + Move linum.el to lisp/obsolete + + * lisp/linum.el: Move from here... + * lisp/obsolete/linum.el: ...to here. (Bug#57412) + +2022-09-20 Stefan Kangas + + * doc/misc/ede.texi (Extending EDE): Fix reference. + +2022-09-20 Philip Kaludercic + + Have rcirc handle bridge bots + + * doc/misc/rcirc.texi (Dealing with Bridge Bots): Document new feature. + * etc/NEWS: Mention the new feature. + * lisp/net/rcirc.el (rcirc-markup-text-functions): Add new markup function + (rcirc-pseudo-nicks): Add new local variable. + (rcirc-channel-nicks): Use 'rcirc-pseudo-nicks' for nick completion. + (rcirc-bridge-bot-alist): Add new user option. + (rcirc-bridged-nick): Add new face. + (rcirc-markup-bridge-bots): Add new function. + +2022-09-20 Juri Linkov + + * lisp/outline.el: Bind margin mouse event to cycle outlines (bug#57813) + + (outline-minor-mode): In mode keymap bind + 'right/left-margin mouse-1' to outline-cycle, and + 'right/left-margin S-mouse-1' to outline-cycle-buffer. + (outline-hide-subtree, outline-show-subtree): Add save-excursion + to keep point unmoved after mouse click. + (outline-cycle): Add optional arg 'event' like in + outline-hide-subtree and outline-show-subtree, and + add save-excursion to keep point unmoved after mouse click. + (outline--make-button-overlay, outline--make-margin-overlay): + Put overlay property 'evaporate' to t. + (outline--insert-open-button, outline--insert-close-button): + Remove temporary attempts to bind margin-local mouse events. + +2022-09-20 Robert Pluim + + Allow keymap to override advertised-binding in docstrings + + Previously + + (substitute-command-keys "\\\\[undo]") + + would use the global advertised-binding for `undo', even though + there's a binding in `undo-repeat-map', which is highly + counter-intuitive. Now the binding is looked up in the specified + keymap first. + + * lisp/help.el (substitute-command-keys): Restrict the initial key + lookup to the specified keymap (if there is one). (Bug#51384) + +2022-09-20 Robert Pluim + + Specify keymap in gnus-custom-mode docstring + + * lisp/gnus/gnus-cus.el (gnus-custom-mode): Put in the keymap to use, + otherwise the bindings are looked up in the global map (where they + don't exist). + +2022-09-20 Drew Adams + + Tweak how use-region-p works with `use-empty-active-region' + + * lisp/simple.el (use-region-p): Don't report non-nil if the user + has just clicked mouse-1 without extending the region (bug#51874). + +2022-09-20 Lars Ingebrigtsen + + Attempt to clarify Input Focus documentation + + * doc/lispref/frames.texi (Input Focus): Try to clarify the + documentation (bug#51862). + +2022-09-20 Gregory Heytings + + Improve display of advices on build failures. + + * Makefile.in: Use three leading '*' characters, and redirect to stderr. + +2022-09-20 Stefan Monnier + + * lisp/textmodes/tex-mode.el (tex-mode): Fix AUCTeX regression + + As discussed in + https://lists.gnu.org/r/auctex/2022-08/msg00004.html + AUCTeX installs its own advice to redefine `tex-mode`, and that + advice used to take precedence before commit 6075a7c5ae3fa456cd. + +2022-09-20 Michael Albinus + + Wrap max-specpdl-size with with-no-warnings in Tramp + + * lisp/net/tramp-archive.el (max-specpdl-size): + * lisp/net/tramp-gvfs.el (max-specpdl-size): Wrap with + `with-no-warnings'. + +2022-09-20 Robert Pluim + + Add vc-annotate-switches to manual + + * doc/emacs/maintaining.texi (Old Revisions): Add description of + `vc-annotate-switches' and `vc-BACKEND-annotate-switches'. + +2022-09-20 Lars Ingebrigtsen + + Mention compilation in the Package Installation node + + * doc/emacs/package.texi (Package Installation): Mention that + packages are compiled (bug#51660). + +2022-09-20 Lars Ingebrigtsen + + Allow hl-line-mode so work when global-hl-line-mode is active + + * lisp/hl-line.el (hl-line-mode): Allow switching off the global + mode in the current buffer (bug#51580). + +2022-09-20 Lars Ingebrigtsen + + Get fewer false positives for :keyword and &options + + * lisp/emacs-lisp/lisp-mode.el (lisp-mode--search-key): New + function to check more carefully for start of :keywords and + &options (bug#51574). + (lisp-fdefs): Use it. + +2022-09-20 Stefan Kangas + + Obsolete unused variable in debug.el + + * lisp/emacs-lisp/debug.el (debugger-previous-backtrace): Make + unused variable obsolete. + +2022-09-20 Lars Ingebrigtsen + + Further ffap-read-file-or-url tweaks + + * lisp/ffap.el (ffap-read-file-or-url): Make this work for URLs + again if you're using `ido-everywhere' (bug#57943). + +2022-09-20 Robert Pluim + + Remove mention of non-existent `annotate-switches' + + * lisp/vc/vc.el (vc-annotate-switches): Remove mention of + `annotate-switches'. As far as I can tell this has never existed in + Emacs. + +2022-09-20 Robert Pluim + + Mention that src/macuvs.h sometimes needs committing + + * admin/notes/unicode: src/macuvs.h is generated, but needs to be + committed sometimes. + +2022-09-20 Stefan Kangas + + Use "set -o nounset" in bash scripts + + * admin/automerge: + * admin/make-manuals: + * admin/update-copyright: + * admin/update_autogen: + * admin/upload-manuals: Use "set -o nounset". + +2022-09-20 Stefan Kangas + + Revert "Allow nil value for filter-buffer-substring-function" + + This reverts commit a7c65fc6660878e244432a5b25fb3a4ff20e8604. + +2022-09-19 Po Lu + + Remove intern calls with a static string from haiku*.c + + * src/haikufns.c (Fx_show_tip, syms_of_haikufns): + * src/haikufont.c (haikufont_maybe_handle_special_family) + (syms_of_haikufont): + * src/haikuterm.c (haiku_term_init, syms_of_haikuterm): Replace + intern with real predefined symbols. + +2022-09-19 F. Jason Park + + Bury new ERC buffers by default + + * lisp/erc/erc.el (erc-join-buffer): Change default value to `bury'. + (erc-setup-buffer): Make `window-noselect' behave more like its + description and abstain from ever replacing the current buffer. + * test/lisp/erc/erc-scenarios-base-reconnect.el + (erc-scenarios-common-base-reconnect-options): Update helper to handle + new default value for option `erc-join-buffer'. + (erc-scenarios-base-reconnect-options--buffer): Update and rename + function `erc-scenarios-base-reconnect-options--default'. + (erc-scenarios-base-reconnect-options--default): Update and rename + function `erc-scenarios-base-reconnect-options--bury'. + * etc/ERC-NEWS: Update existing display-buffers section for 5.5. + (Bug#51753) + +2022-09-19 F. Jason Park + + Offer to regexp-quote new items in erc-match commands + + * lisp/erc/erc-match.el (erc-match-quote-when-adding) Add new option + to quote new items added to match lists. + (erc-add-entry-to-list): Add optional `alt' parameter indicating + whether to flip the behavior indicated by + `erc-match-quote-when-adding'. + (erc-add-pal, erc-add-fool, erc-add-keyword, erc-add-dangerous-host): + Pass universal arg to `erc-add-entry-to-list' as `alt' argument. + (erc-match-pal-p, erc-match-fool-p, erc-match-keyword-p, + erc-match-dangerous-host-p): Don't bother matching when list is nil. + + * lisp/erc/erc.el (erc-list-match (lst str): Join input list as regexp + union instead of looping over items. + + * etc/ERC-NEWS: Update misc-UX section for 5.5. + + * test/lisp/erc/erc-match-tests.el: New file. (Bug#56450) + +2022-09-19 F. Jason Park + + Don't record undo history in erc-protocol buffers + + * lisp/erc/erc.el (erc-log-irc-protocol): Disable undo history. + +2022-09-19 F. Jason Park + + Stabilize channels variant of erc-reuse-buffers test + + * lisp/erc/erc-networks.el (erc-networks--id-sort-buffers): Use + `buffer-local-value' instead of `with-current-buffer'. + + * test/lisp/erc/erc-scenarios-base-reuse-buffers.el + (erc-scenarios-common--base-reuse-buffers-channel-buffers): Wait for + buffers to be created by server-initiated JOINs. + (erc-scenarios-base-reuse-buffers-channel-buffers--disabled): Remove + `:unstable' tag. + + * test/lisp/erc-tests.el (erc-ring-previous-command): Remove + unnecessary `goto-char'. + +2022-09-19 Stefan Monnier + + * lisp/emacs-lisp/cl-generic.el (cl--generic-lambda): Fix bug#57903 + + Fall back to old slower calling convention in dynbound code (bug#56596). + +2022-09-19 Juri Linkov + + * lisp/outline.el (outline-open): Revert 'text' back to " open ". + + (outline-close): Revert 'text' back to " close ". + (outline-close-rtl): Remove 'text' since it's inherited from the parent + 'outline-close'. + +2022-09-19 Gregory Heytings + + Improve advices on build failures. + + * Makefile.in: Mention "make extraclean; make". Mention mailing the + bugtracker among the possible choices. Fix typo. + +2022-09-19 Juri Linkov + + * lisp/outline.el (outline-minor-mode-use-margins): New user option. + + (outline--use-margins, outline--use-buttons, outline--use-rtl): + New buffer-local internal variables. + (outline-open, outline-close): Move :ascent center to default of define-icon. + Use ASCII-art for text. Fix docstring and help-echo. + (outline-close-rtl, outline-open-in-margins) + (outline-close-in-margins, outline-close-rtl-in-margins): New icon + definitions. + (outline-minor-mode-highlight-buffer): Remove outline--insert-open-button + since initial outline--fix-up-all-buttons is added now to outline-minor-mode. + (outline-minor-mode): Set buffer-local outline--use-buttons, + outline--use-margins and outline--use-rtl. Show/hide margins for + outline--use-margins. Add hook after-change-functions for editable buffers. + Move outline--fix-up-all-buttons for both cases: font-lock and non-font-lock. + (outline--use-buttons-p): Remove function. + (outline--make-button-overlay): Use outline--use-rtl icon outline-close-rtl. + (outline--make-margin-overlay): New function. + (outline--insert-open-button, outline--insert-close-button): Add optional + arg 'use-margins'. + (outline--fix-up-all-buttons): Call outline--insert-close-button + and outline--insert-open-button with arg outline--use-margins. + (outline-cycle-buffer): Remove outline--fix-up-all-buttons + that is already called from outline-flag-region. + + * lisp/emacs-lisp/icons.el (icons--create): Handle keywords :rotation + and :ascent with the default value 'center (bug#57813). + + * doc/emacs/text.texi (Outline Mode): Mention outline-minor-mode-use-margins. + +2022-09-19 Matthias Meulien + + Minor touch-ups of some recent OSC stuff + + * lisp/comint.el (comint-osc-handlers): + (comint-osc-hyperlink-map): Use defvaralias (bug#57821). + + * lisp/osc.el: Fix some comments. + +2022-09-19 Mauro Aranda + + perl-mode: / is a regexp match if there's nothing before it + + * lisp/progmodes/perl-mode.el (perl-syntax-propertize-function): + A "/" that starts the first statement is a regexp match. (Bug#997) + * test/lisp/progmodes/cperl-mode-tests.el (cperl-test-bug-997): New + test. + +2022-09-19 Mattias Engdegård + + Abolish max-specpdl-size (bug#57911) + + The max-lisp-eval-depth limit is sufficient to prevent unbounded stack + growth including the specbind stack; simplify matters for the user by + not having them to worry about two different limits. This change + turns max-specpdl-size into a harmless variable with no effects, + to keep existing code happy. + + * lisp/subr.el (max-specpdl-size): + Define as an ordinary (but obsolete) dynamic variable. + * admin/grammars/Makefile.in: + * doc/lispintro/emacs-lisp-intro.texi (Loops & Recursion): + * doc/lispref/control.texi (Cleanups): + * doc/lispref/edebug.texi (Checking Whether to Stop): + * doc/lispref/eval.texi (Eval): + * doc/lispref/variables.texi (Local Variables): + * doc/misc/calc.texi (Recursion Depth): + Update documentation. + * etc/NEWS: Announce. + * src/eval.c + (FletX): Use safe iteration to guard against circular bindings list. + (syms_of_eval): Remove old max-specpdl-size definition. + (init_eval_once, restore_stack_limits, call_debugger) + (signal_or_quit, grow_specpdl_allocation): + * leim/Makefile.in: + * lisp/Makefile.in: + * lisp/calc/calc-stuff.el (calc-more-recursion-depth) + (calc-less-recursion-depth): + * lisp/calc/calc.el (calc-do): + * lisp/cedet/semantic/ede-grammar.el (ede-proj-makefile-insert-rules): + * lisp/cedet/semantic/grammar.el (semantic-grammar-batch-build-one-package): + * lisp/cus-start.el (standard): + * lisp/emacs-lisp/comp.el (comp--native-compile): + * lisp/emacs-lisp/edebug.el (edebug-max-depth): + (edebug-read-and-maybe-wrap-form, edebug-default-enter): + * lisp/emacs-lisp/regexp-opt.el (regexp-opt): + * lisp/eshell/esh-mode.el (eshell-mode): + * lisp/loadup.el (max-specpdl-size): + * lisp/mh-e/mh-e.el (mh-invisible-headers): + * lisp/net/shr.el (shr-insert-document, shr-descend): + * lisp/play/hanoi.el (hanoi-internal): + * lisp/progmodes/cperl-mode.el: + * src/fileio.c (Fdo_auto_save): + Remove references to and modifications of max-specpdl-size. + +2022-09-19 João Távora + + Revert "fix jdtls support" + + This reverts commit e5b021c01fceea02b7e6622cde0a347b842ca6f3. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/1008 + +2022-09-19 João Távora + + Don't use three-argument plist-get + + * eglot.el (eglot-handle-request): Don't use three-argument + plist-get. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/1024 + +2022-09-19 Stefan Kangas + + Allow nil value for filter-buffer-substring-function + + * lisp/simple.el + (filter-buffer-substring): Support a nil value to be more resilient. + (filter-buffer-substring-function): Doc fix; improve and update for + above change. + +2022-09-19 Stefan Kangas + + Support imenu in emacs-news-mode + + * lisp/outline.el (outline-imenu-generic-expression): New variable + broken out from... + (outline-mode): ...here. + * lisp/textmodes/emacs-news-mode.el (emacs-news--mode-common): Use + above new variable to add imenu support. + +2022-09-19 Eli Zaretskii + + Fix 'posn-at-point' around several 'display' properties + + * src/xdisp.c (pos_visible_p): Fix the case when CHARPOS is hidden + by a display property, and its neighbors are also hidden. + (Bug#45915) + +2022-09-19 Stefan Monnier + + * doc/misc/eieio.texi (Introduction, Generics): Remove outdated limits + + Reported by Hokomo . + +2022-09-19 Philipp Stephani + + Improve check for misleading 'cl-case' cases (Bug#57915). + + * lisp/emacs-lisp/cl-macs.el (cl-case): Check that the case is of the + form (quote FOO), not just (quote). + * test/lisp/emacs-lisp/cl-macs-tests.el (cl-case-no-warning): New unit test. + +2022-09-19 Michael Albinus + + Revert change in Tramp inotifywait + + * lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch): + Revert use of "-P", it doesn't exist in older inotifywait versions. + + * test/lisp/filenotify-tests.el: Deactivate instrumentation. + +2022-09-19 Stefan Kangas + + Prefer DE specific commands to set wallpaper + + * lisp/image/wallpaper.el (wallpaper--default-commands): Rearrange + order to prioritize desktop environment specific commands before + general Wayland commands like "wbg" or even "swaybg". (Bug#57781) + +2022-09-19 Stefan Kangas + + Avoid an unnecessary call to intern + + * src/doc.c (Fdocumentation): Prefer DEFSYM to using intern directly. + +2022-09-19 Daniel Pettersson (tiny change) + + Fix eshell directory and executable completion on action t + + * lisp/eshell/em-cmpl.el (eshell--pcomplete-executables): New + function (bug#57905). + (eshell--complete-commands-list): Use it. + +2022-09-19 Lars Ingebrigtsen + + Don't save bookmark context from encrypted files + + * doc/emacs/regs.texi (Bookmarks): Mention this. + * lisp/bookmark.el (bookmark-make-record): Don't include context + in encrypted files (bug#57856). + + * lisp/epa-hook.el (epa-file-name-p): New function. + +2022-09-19 Gregory Heytings + + Revert 60de98f6f0 and b2d419ed5b. + +2022-09-19 Po Lu + + * Makefile.in: Re-add warnings about "git clean -fdx" + +2022-09-19 Po Lu + + Revert "; * Makefile.in: Partly revert 5b3c4004a9." + + This reverts commit e54da280ff4bf458c437f87dd64e848cdc75479c. + +2022-09-19 Lars Ingebrigtsen + + make gen-clean remove some newly-added generated files + + * admin/unidata/Makefile.in (gen-clean): Remove some newly-added + generated files. + +2022-09-19 Gerd Möllmann + + MacOS ld warning from native compilation (bug#57849) + + * lisp/emacs-lisp/comp.el (native-comp-driver-options): Add "-Wl,-w" + on Darwin systems. + * etc/NEWS: Describe change. + +2022-09-19 Stefan Kangas + + Merge from origin/emacs-28 + + a2f9788cbc ; Minor copyedits of *-frame-alist doc strings + c200098dde ; * src/intervals.c (get_local_map): Fix commentary. + 69cc3d38bc Fix Tramp error with eshell integration + +2022-09-18 Po Lu + + Remove calls to intern with a static string from code that runs on X + + * Makefile.in (actual-all): Reword build failure advice. + + * src/bytecode.c (exec_byte_code, syms_of_bytecode): + * src/font.c (syms_of_font): + * src/hbfont.c (uni_combining): + * src/xfns.c (Fx_display_backing_store, Fx_display_visual_class) + (x_create_tip_frame, Fx_show_tip, syms_of_xfns): + * src/xfont.c (xfont_supported_scripts, xfont_driver) + (syms_of_xfont): + * src/xsmfns.c (Fhandle_save_session, syms_of_xsmfns): Remove + calls to intern with a static string. + +2022-09-18 Po Lu + + Get rid of intern calls to static strings in xterm.c + + * src/xterm.c (x_cr_export_frames): Use Qconcat instead of + interning concat. + (syms_of_xterm): New defsym Qconcat. + +2022-09-18 Po Lu + + Fix GC protection of scroll bar windows + + * src/xterm.c (x_atom_refs): Add _EMACS prefix to + vendor-specific scroll-bar atoms. + (handle_one_xevent): Unprotect windows immediately upon + receiving an _EMACS_SCROLLBAR event, instead of waiting for the + event to be put on the keyboard buffer. Reported by martin + rudalics . + +2022-09-18 Gregory Heytings + + Display a help message when building Emacs failed. + + * Makefile.in (actual-all): New target, replacing the former 'all' + target. + (advice-on-failure, sanity-check): New targets. + (all): Use the new targets. + (bootstrap-all): New target, identical to 'all' but meant for the + 'bootstrap' target in GNUmakefile. + (actual-bootstrap): New target, replacing the former 'bootstrap' + target. Use the 'actual-all' target instead of the 'all' target. + (bootstrap): Use the new targets. + + * GNUmakefile (bootstrap): Use the new 'bootstrap-all' target. + +2022-09-18 Stefan Kangas + + Prefer using DEFSYMs to intern with wrong_type_argument + + * src/data.c (syms_of_data) : + * src/fileio.c (syms_of_fileio) : + * src/font.c (syms_of_font) : New DEFSYMs. + * src/dbusbind.c (xd_signature, xd_append_arg): + * src/fileio.c (file_offset, Finsert_file_contents): + * src/font.c (Ffontp): Prefer using above new DEFSYMs to using intern + directly. + +2022-09-18 Michael Albinus + + Minor Tramp cleanups + + * lisp/net/tramp-compat.el (tramp-compat-rx): Declare. + + * lisp/net/tramp-integration.el (info-lookup-maybe-add-help): + Fix `rx' call. + +2022-09-18 Michael Heerdegen + + Turn gv-synthetic-place into a function + + This fixes Bug#57397. + + * lisp/emacs-lisp/gv.el (gv-synthetic-place): Make a function and add + trivial compiler macro to avoid decreasing efficiency. + +2022-09-18 Matthias Meulien + + Add NEWS entry for osc.el (bug#57821) + +2022-09-18 Lars Ingebrigtsen + + Fix osc.el compilation warning + + * lisp/osc.el (compilation-filter-start): Avoid compilation warning. + +2022-09-18 Matthias Meulien + + OSC escape sequences filter for compilation buffer + + * lisp/osc.el (osc-control-seq-regexp): Regexp matching OSC control sequence. + (osc-filter-region): Filter out OSC control sequences from region. + (osc-for-compilation-buffer): Determines what to do with OSC escape + sequences in compilation output. + (osc-compilation-filter): Implement OSC escape sequence handling for + compilation output (bug#57821). + +2022-09-18 Matthias Meulien + + Handle OSC command to set window title + + * lisp/osc.el (osc-handlers): Bind osc-window-title-handler to OSC + command 2. + (osc-window-title): Local variable storing string extracted from OSC + command 2. + (osc-window-title-handler): Copy text from OSC command 2 to + osc-window-title (bug#57821). + +2022-09-18 Matthias Meulien + + Extract support of OSC escape sequences from comint + + * lisp/comint.el (osc): Now requires osc.el. + (comint-osc-directory-tracker): Alias to osc-directory-tracker. + (comint-osc-hyperlink-handler): Alias to osc-hyperlink-handler. + (comint-osc-hyperlink-map): Alias to osc-hyperlink-map. + (comint-osc-handlers): Alias to osc-handlers. + (comint-osc-hyperlink): Alias to osc-hyperlink. + (comint-osc-process-output): Rewritten to call osc-apply-on-region. + * lisp/osc.el (osc-handlers): Clone comint-osc-handlers. + (osc--marker): Clone comint-osc--marker. + (osc-apply-on-region): Implementation taken from comint-osc-process-output. + (osc-directory-tracker): Clone from comint-osc-directory-tracker. + (osc-hyperlink-map): Clone from comint-osc-hyperlink-map. + (osc-hyperlink): Clone from comint-osc-hyperlink. + (osc-hyperlink--state): Clone from comint-osc-hyperlink--state. + (osc-hyperlink-handler): Clone from comint-osc-hyperlink-handler. + * test/lisp/osc-tests.el (osc): Test osc-apply-region (bug#57821). + +2022-09-18 Lars Ingebrigtsen + + Improve the initial-frame-alist doc string + + * lisp/frame.el (initial-frame-alist): Clarify how to set this + variable (bug#57890). + +2022-09-18 Lars Ingebrigtsen + + Restore the point after aborting an image crop + + * lisp/image/image-crop.el (image-crop): Restore point after + aborted cropping (bug#57874). + +2022-09-18 Augusto Stoffel + + pulse-momentary-highlight-one-line: Act on visual line + + * lisp/cedet/pulse.el (pulse-momentary-highlight-one-line): Act on + entire visual line, ignoring fields etc (bug#57876). + +2022-09-18 Augusto Stoffel + + Remap 'up-list' in python-mode-map + + * lisp/progmodes/python.el (python-mode-map): Remap 'up-list' to + 'python-nav-up-list' (bug#57885). + +2022-09-18 Augusto Stoffel + + Add new command python-shell-restart + + * lisp/progmodes/python.el (python-shell-restart): New command (bug#57885). + +2022-09-18 Michael Albinus + + Fix Tramp error with eshell integration + + * lisp/net/tramp-integration.el (tramp-eshell-directory-change): + Respect local `default-directory'. (Bug#57556) + +2022-09-18 Stefan Kangas + + image-dired: Don't require subr-x + + * lisp/image/image-dired-dired.el (subr-x): + * lisp/image/image-dired.el (subr-x): Don't require, since string-join + is now autoloaded. + +2022-09-18 João Távora + + Don't return hash tables from e-w-configuration-plist + + * eglot.el (eglot-signal-didChangeConfiguration): Adjust. + (eglot-handle-request workspace-configuration): Adjust. + (eglot--workspace-configuration-plist): Don't return a hashtable. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/1033 + +2022-09-18 João Távora + + Allow eglot-workspace-configuration to be a plist + + Suggested-by: Augusto Stoffel + + * NEWS.md: Mention change. + + * README.md (eglot-workspace-configuration): Update yet again. Update + examples to use pylsp. + + * eglot.el (eglot--workspace-configuration-plist): Noop if already + a plist. + (eglot-handle-request workspace/configuration): Use + eglot--workspace-configuration-plist. + (eglot-workspace-configuration): Document variable. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/590 + GitHub-reference: per https://github.com/joaotavora/eglot/issues/790 + GitHub-reference: per https://github.com/joaotavora/eglot/issues/1033 + +2022-09-18 João Távora + + Don't exceed max-specdl-size in big go projects + + When invoking client/registerCapability for + workspace/didChangeWatchedFiles, Gopls lists each file to watch + separately. This makes eglot--glob-emit-{} emit a closure with an + 'or' form containing a potentially large number of 're-search-forward' + forms. + + For large Go project such as "Kubernetes", this list becomes so large + that -- for some reason I don't understand -- it triggers the + 'max-specdl-size' limit. + + An alternative using `regexp` opt doesn't seem to trigger the error. + + * eglot.el (eglot--glob-emit-{}): Use regexp-opt. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/633 + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/1067 + +2022-09-18 Po Lu + + Remove what should be unnecessary calls to block_input + + * src/xterm.c (handle_one_xevent): Do not block input inside. + This function is not reentrant and is always called with input + blocked. + +2022-09-18 Gerd Möllmann + + Fix possible null pointer access + + * src/term.c (Ftty__output_buffer_size): Handle case of + decode_tty_terminal returning NULL. + +2022-09-18 Stefan Kangas + + Merge from origin/emacs-28 + + 50bb9ec84c ; * admin/admin.el (make-news-html-file): Fix typo. + +2022-09-17 Sean Whitton + + vc-do-command: Actually include "torsocks" in the command + + * lisp/vc/vc-dispatcher.el (vc-do-command): When vc-tor is non-nil, + actually include "torsocks" in the command to be run (bug#57870). + +2022-09-17 Stefan Kangas + + image-dired: Display image on double click + + * lisp/image/image-dired.el (image-dired-thumbnail-mode-map): + Display image on 'double-mouse-1'. + +2022-09-17 Stefan Kangas + + image-dired: Remove spurious message on C- + + * lisp/image/image-dired.el (image-dired-thumbnail-mode-map): Fix + spurious message about C- being undefined. + +2022-09-17 João Távora + + Allow :initializationoptions in eglot-server-programs + + Also see https://github.com/joaotavora/eglot/issues/1038. + + This feature was poorly tested, and simply wouldn't work when trying + to initialize the server object. + + The simple solution is to ignore :initializationOptions initarg in + this context. It is still stored separately as and accessed as the + 'eglot--saved-initargs' slot. + + Another complication arises in eglot--guess-contact, which tried too + hard to be able to compose an interactive prompt (when the server + program can't be found). The solution is just to give up when + :autoport or :initializationOptions is found. It's not easy or + practical to have the user provide non-string arguments via a string + interface like the minibuffer. + + * eglot.el (initialize-instance :before eglot-lsp-server): Don't pass + :initializationOptions initarg onward. + (eglot--guess-contact): Simplify. Don't try heroics with + :autoport and :initializationOptions. + + * eglot-tests.el (eglot-server-programs-simple-missing-executable): + Update test. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/940 + +2022-09-17 Stefan Kangas + + Increase image-dired-thumb-size to 128 + + * lisp/image/image-dired.el (image-dired-thumb-size): Increase default + to 128. + +2022-09-17 Stefan Kangas + + image-dired: Change some custom types to natnum + + * lisp/image/image-dired.el (image-dired-thumb-size) + (image-dired-thumb-relief, image-dired-thumb-margin) + (image-dired-thumbs-per-row, image-dired-thumb-width) + (image-dired-thumb-height): Change :type to natnum. + +2022-09-17 Stefan Kangas + + Make `image-dired-thumb-(height|width)' obsolete + + * lisp/image/image-dired.el (image-dired-thumb-width) + (image-dired-thumb-height): Make obsolete. + (image-dired-thumb-size): Clean up and improve docstring. + * lisp/image/image-dired-external.el (image-dired-thumb-size): Use + 'image-dired-thumb-size' instead of above obsolete variables. + (image-dired-create-thumb-1): Support %s format specifier for size. + (image-dired-cmd-create-thumbnail-options): Document %s format + specifier. + (image-dired--thumb-size): Rename function from + 'image-dired-thumb-size' and make old name into an obsolete alias. + Update all callers. + +2022-09-17 Stefan Kangas + + Simplify image-dired-thumbnail-storage customization + + * lisp/image/image-dired.el (image-dired-dir): Improve docstring. + (image-dired-thumbnail-storage): Change default to `image-dired', + maintain `use-image-dired-dir' for backwards compatibility. + * lisp/image/image-dired-util.el (image-dired-thumb-name): Handle + above new default value. + +2022-09-17 Stefan Kangas + + * lisp/image/image-dired.el: Bump version for Emacs 29. + +2022-09-17 YAMAMOTO Mitsuharu + + Fix rare shaping problems with Urdu and Arabic + + * src/composite.c (fill_gstring_body): Clear unused slots of the + gstring. (Bug#50951) + +2022-09-17 Gerd Möllmann + + Optimize tty display updates (bug#57727) + + * src/dispnew.c (update_frame_1): Don'f flush if tty's + output_buffer_size is non-zero. + * src/sysdep.c (init_sys_modes): Setvbuf depending on the tty's + output_buffer_size. + * src/term.c (Ftty__set_output_buffer_size, Ftty__output_buffer_size): + Low-level interface for setting and retrieving a tty's output buffer + size. + (syms_of_term): Defsubr the new functions. + * src/termchar.h (struct tty_display_info): New member + output_buffer_size. + * etc/NEWS: Describe the change. + +2022-09-17 Michael Albinus + + Fix recent filenotify-tests changes + + * lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch): + Use "-P". + + * test/lisp/filenotify-tests.el (file-notify-test11-symlinks): + Adapt test. + +2022-09-17 Lars Ingebrigtsen + + Autoload string-join + + * lisp/emacs-lisp/subr-x.el (string-join): Autoload since it's + being used more now. + +2022-09-17 Gregory Heytings + + Further improvements to admin/emake. + + * admin/emake: Better parsing of script options. Add a --quieter option, + which removes everything except errors. + +2022-09-17 João Távora + + Adjust last commit about workspace configuration + + * README.md (way): Adjust. + + * eglot.el (json): Don't require needlessly. + (eglot-show-workspace-configuration): Don't depend on json-mode. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/790 + GitHub-reference: per https://github.com/joaotavora/eglot/issues/590 + +2022-09-17 Po Lu + + Fix MPX focus tracking upon frame deletion + + * src/xterm.c (x_free_frame_resources): Consider focus change + after. + +2022-09-17 Eli Zaretskii + + Fix running spell-checking in remote buffers + + * lisp/textmodes/ispell.el (ispell-with-safe-default-directory): + Don't use remote 'default-directory' when running the speller. + (Bug#57649) + +2022-09-17 समीर सिंह Sameer Singh + + Update Unicode support to Unicode version 15.0.0 (bug#57846) + + * admin/unidata/BidiBrackets.txt + * admin/unidata/BidiMirroring.txt + * admin/unidata/Blocks.txt + * admin/unidata/IVD_Sequences.txt + * admin/unidata/IdnaMappingTable.txt + * admin/unidata/NormalizationTest.txt + * admin/unidata/PropertyValueAliases.txt + * admin/unidata/ScriptExtensions.txt + * admin/unidata/Scripts.txt + * admin/unidata/SpecialCasing.txt + * admin/unidata/UnicodeData.txt + * admin/unidata/confusables.txt + * admin/unidata/copyright.html + * admin/unidata/emoji-data.txt + * admin/unidata/emoji-sequences.txt + * admin/unidata/emoji-test.txt + * admin/unidata/emoji-zwj-sequences.txt + * test/manual/BidiCharacterTest.txt: Updated files from Unicode + 15.0. + + * admin/unidata/unidata-gen.el (unidata-file-alist): Add new ranges. + + * 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 15.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 15.0. + +2022-09-17 Stefan Kangas + + Merge from origin/emacs-28 + + 320f0cac80 ; * etc/NEWS: Fix typo. + 5dbe4fa64a Simplify regexp in make-news-html-file + 069ffbda09 * admin/admin.el (make-news-html-file): Set id on correct ... + bcc84ac7fe Add version headlines to HTML NEWS export + 5d227ae83e ; * etc/NEWS: Fix formatting. + + # Conflicts: + # etc/NEWS + +2022-09-16 João Távora + + Rework readme.md about workspace configuration again + + Also tweak eglot-show-workspace-configuration a bit. + + * README.md (Workspace configuration): Rework. + + * eglot.el (eglot-show-workspace-configuration): Rework. + (eglot--workspace-configuration-plist): New helper. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/590 + +2022-09-16 Fredrik Bergroth + + Add eglot-show-configuration to debug workspace configurations + + Also see https://github.com/joaotavora/eglot/issues/790, https://github.com/joaotavora/eglot/issues/1033. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/590 + +2022-09-16 Stefan Kangas + + Simplify regexp in make-news-html-file + + * admin/admin.el (make-news-html-file): Simplify regexp. + Suggested by Mattias Engdegård . + +2022-09-16 Gregory Heytings + + Various improvements to admin/emake. + + * admin/emake: Return the status code of make when the build fails. + Filter the output of emake *clean. Add three options --no-color + (useful for emake check for example), --no-check (useful for quicker + builds during development) and --no-fast. + +2022-09-16 Stefan Kangas + + Support XFCE in wallpaper.el + + * lisp/image/wallpaper.el (wallpaper--default-commands) + (wallpaper-command): Support XFCE. (Bug#57781) + Thanks to Thierry Volpiatto . + +2022-09-16 Stefan Kangas + + Accept more wide function signatures in docstrings + + * test/lisp/emacs-lisp/bytecomp-tests.el + ("warn-wide-docstring-ignore-function-signature.el"): New test. + * lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p): + Make regexp more allowing to silence warning. + * test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-ignore-function-signature.el: + New file. + +2022-09-16 Stefan Kangas + + image-dired: Add support for PDF files (Bug#26432) + + * lisp/image/image-dired.el + (image-dired--file-name-regexp): New function. + (image-dired-display-thumbnail-original-image): Clean up. + (image-dired-display-image): Support visiting PDF files. + * lisp/image/image-dired-dired.el + (image-dired-dired-toggle-marked-thumbs): + * lisp/image/image-dired.el (image-dired-get-thumbnail-image) + (image-dired-show-all-from-dir): Use above new function instead of + 'image-file-name-regexp'. + +2022-09-16 Stefan Kangas + + image-dired: Print command when debugging + + * lisp/image/image-dired-external.el (image-dired-create-thumb-1): + Display command and arguments when debugging. + * lisp/image/image-dired-util.el (image-dired-debug): Rename from + 'image-dired-debug-message'. + +2022-09-16 Stefan Kangas + + Delete mystery code from cperl-mode.el + + * lisp/progmodes/cperl-mode.el: Delete commented out code referring to + some 'edit-var-mode-alist' that we don't think is used for anything. + +2022-09-16 Stefan Kangas + + Delete some commented out code in cperl-mode.el + + The differences between this and the existing `cperl-ps-print-init' + are that some faces had been moved from italic to bold or vice versa, + and that there were some obsolete or non-existent face names + mentioned. So there is no point to keeping it given that it's been + commented out since 1999. + + * lisp/progmodes/cperl-mode.el: Delete code commented out since 1999: + a slightly different, duplicate definition of `cperl-ps-print-init'. + +2022-09-16 Stefan Monnier + + Fix last occurrence of `font-lock-reference-face` + + Well... except for CC-mode. + + * lisp/cedet/semantic/grammar.el (semantic-grammar-mode-keywords-1): + Redirect reference to obsolete `font-lock-reference-face` to + `font-lock-constant-face`. + +2022-09-16 Stefan Kangas + + * admin/admin.el (make-news-html-file): Set id on correct tag. + +2022-09-16 Stefan Kangas + + Add version headlines to HTML NEWS export + + This allows linking to, e.g. "NEWS.28.html#28.1" to go directly to + those release notes. + * admin/admin.el (admin--org-export-headers-format) + (make-news-html-file): Add XX.Y version headlines with an HTML anchor. + +2022-09-16 Mattias Engdegård + + * lisp/subr.el (list-of-strings-p): Declare pure and error-free + +2022-09-16 Juri Linkov + + * lisp/outline.el: Optimize performance of S-TAB (bug#57813) + + (outline-hide-subtree): Don't call outline--insert-close-button, because + it's handled by outline--fix-up-all-buttons called from outline-flag-region. + (outline-show-subtree): Don't call outline--insert-open-button, same reason. + (outline--fix-up-all-buttons): Check invisible outlines explicitly instead of + using slow outline--cycle-state. + +2022-09-16 Michael Albinus + + Enable `dont-follow' for inotify file notifications + + * doc/lispref/os.texi (File Notifications): Symlinks aren't followed. + + * lisp/filenotify.el (file-notify--add-watch-inotify): + Add `dont-follow' flag. + + * lisp/net/tramp.el (tramp-handle-file-notify-rm-watch): + Suppress errors when reading process output. + + * test/lisp/filenotify-tests.el (file-notify-test11-symlinks) + (file-notify-test11-symlinks-remote): New tests. + +2022-09-16 Stefan Kangas + + Use substitute-command-keys in some vc messages + + * lisp/vc/vc-dispatcher.el (vc-start-logentry): + * lisp/vc/vc.el (vc-steal-lock): Use substitute-command-keys. + +2022-09-16 Stefan Kangas + + Merge from origin/emacs-28 + + f232d989fd Improve HTML export of NEWS file + 397890ba77 Delete "etc/NEWS*.html" from .gitignore + 70ca5f6524 ; * etc/NEWS: Fix typos. + 19de241a7d Recommend NonGNU ELPA over MELPA + f25f9dbf30 Minor doc fixes in picture.el + 520b041b54 * lisp/textmodes/page-ext.el: Improve Commentary. + + # Conflicts: + # etc/NEWS + +2022-09-16 Stefan Kangas + + Improve HTML export of NEWS file + + * admin/admin.el (admin--org-export-headers-format) + (admin--org-html-postamble): New variables. + (admin--require-external-package): New function. + (make-news-html-file): Improve HTML export. + +2022-09-16 Stefan Kangas + + Add command to delete temporary markers in NEWS + + * lisp/textmodes/emacs-news-mode.el + (emacs-news-delete-temporary-markers): New command. + * admin/make-tarball.txt: Update instructions. + +2022-09-16 Alan Mackenzie + + cc-fonts.el: Eliminate an Emacs compiler warning introduced yesterday. + + * lisp/progmodes/cc-fonts.el (top level): Introduce a cc-bytecomp-defvar for + font-lock-reference-face. + +2022-09-16 Mattias Engdegård + + Faster and more robust list-of-strings-p + + * lisp/subr.el (list-of-strings-p): Speed up by a factor 4 (approx.) + and don't crash on dotted lists. + * test/lisp/subr-tests.el (test-list-of-strings-p): Extend test. + +2022-09-16 Stefan Kangas + + Delete "etc/NEWS*.html" from .gitignore + + We actually do want to see it when preparing a release, so that we + don't include it in a tarball by mistake. + * .gitignore: Don't ignore "etc/NEWS*.html". + +2022-09-16 Stefan Kangas + + Recommend NonGNU ELPA over MELPA + + * doc/misc/org.org (Using CDLaTeX to enter math, Footnotes): Recommend + NonGNU ELPA over MELPA. + +2022-09-16 Lars Ingebrigtsen + + Fix *Help* output for native-comp functions from IELM + + * lisp/help-fns.el (find-lisp-object-file-name): Don't claim that + native-comp functions that are defined outside of files (for + instance, created by calling `native-compile' in IELM) are in C + source (bug#57819). + +2022-09-16 Lars Ingebrigtsen + + Regenerate ldefs-boot.el + +2022-09-16 Lars Ingebrigtsen + + Inhibit image-mode resizing in the minibuffer + + * lisp/image-mode.el (image-fit-to-window): Don't resize when in + the minibuffer (bug#57823). + +2022-09-16 Lars Ingebrigtsen + + Fix cperl list indentation problem + + * lisp/progmodes/cperl-mode.el (cperl-calculate-indent): Indent + foo:bar() in lists correctly (bug#57829). + +2022-09-16 Stefan Kangas + + Prefer defvar-keymap in picture.el + + * lisp/textmodes/picture.el (picture-mode-map): Prefer defvar-keymap. + +2022-09-16 Stefan Kangas + + Minor doc fixes in picture.el + + * lisp/textmodes/picture.el: Improve Commentary. + (picture-forward-column, picture-backward-column) + (picture-move-down, picture-move-up, picture-movement-nw) + (picture-movement-ne, picture-movement-sw, picture-movement-se) + (picture-set-motion, picture-clear-line, picture-newline) + (picture-tab, picture-yank-rectangle) + (picture-yank-rectangle-from-register, picture-insert-rectangle) + (picture-draw-rectangle): Minor doc fixes. + +2022-09-16 Lars Ingebrigtsen + + Don't use autoloaded functions for safe-local-variable + + * doc/lispref/symbols.texi (Standard Properties): Clarify how + safe-local-variable should look. + + * lisp/emacs-lisp/checkdoc.el (checkdoc-ispell-lisp-words) + (checkdoc-symbol-words): Use list-of-strings-p. + (checkdoc-list-of-strings-p): Obsolete. + + * lisp/vc/vc-git.el (vc-git-annotate-switches): Remove. + (vc-git-annotate-switches): Open-code the check. + +2022-09-16 Lars Ingebrigtsen + + Add new predicate list-of-strings-p + + * lisp/subr.el (list-of-strings-p): New function. + +2022-09-16 Stefan Kangas + + * lisp/textmodes/page-ext.el: Improve Commentary. + +2022-09-16 Lars Ingebrigtsen + + Fix sorting of backends in vc-responsible-backend + + * lisp/vc/vc.el (vc-responsible-backend): When comparing directory + names, expand them first so that we get consistent sorting of ~/ + etc (bug#57777). + +2022-09-16 Po Lu + + Fix icon spec for outline icons + + * lisp/outline.el (outline-open): + (outline-close): Fix listing of multiple images. Reported by + Lars Ingebrigtsen . + +2022-09-16 Lars Ingebrigtsen + + Rename `image-elide' to `image-cut' and add more bindings + + * doc/lispref/display.texi (Showing Images): Update. + * lisp/image.el (image-map): Move binding to mirror Gimp bindings. + + * lisp/image/image-crop.el (image-crop-cut-command): Rename. + (image-cut-color): New user option. + (image-cut): Rename and remove prefix. + (image-crop): Remove prefix. + (image-crop--crop-image-update): Add commands to switch to + move/square modes. + +2022-09-16 Po Lu + + Fix wrong source window being generated for XDND leave events + + * src/xterm.c (x_dnd_update_state, handle_one_xevent): Let + x_dnd_last_seen_toplevel remain at its old value until any + XdndLeave event was definitely sent. + +2022-09-16 Po Lu + + Avoid asserting for fontset validity before it is used + + * src/fontset.c (face_for_char): Move `eassert' to before the + fontset is really used. Suggested by Eli Zaretskii + + +2022-09-16 Po Lu + + Add portable versions of the outline SVGs + + * lisp/outline.el (outline-open): + (outline-close): Add PBM images. + + * etc/images/outline-open.pbm: + * etc/images/outline-close.pbm: New images used on systems + without librsvg. + +2022-09-16 Juri Linkov + + Add outline open/close images (bug#57813) + + * etc/images/outline-open.svg: + * etc/images/outline-close.svg: New files. + + * lisp/outline.el (outline-open, outline-close): Use images + outline-open.svg and outline-close.svg. + + * lisp/emacs-lisp/icons.el (icons--create): Add :ascent 'center'. + +2022-09-16 Gerd Möllmann + + Fix crash in GC on macOS (bug#57751) + + * src/nsterm.m ([EmacsView windowDidMove:]): Initialize input_event. + +2022-09-15 Peter Münster + + image-dired: Fix thumbnail options for gm + + * lisp/image/image-dired-external.el + (image-dired-cmd-create-standard-thumbnail-options): Fix options for + "gm" (GraphicsMagick). (Bug#52200) + +2022-09-15 Stefan Kangas + + Improve image-dired-display-properties-format + + * lisp/image/image-dired.el + (image-dired-display-properties-format): Change default format, + improve docstring and add :safe property + +2022-09-15 Stefan Kangas + + image-dired: Show header line on start + + * lisp/image/image-dired.el (image-dired-show-all-from-dir): Update + header line, to ensure that it is immediately visible on start. + +2022-09-15 Stefan Monnier + + combine-change-calls-1: Fix case where `body` also changes other bufs + + * lisp/subr.el (combine-change-calls-1): Only set the current buffer's part + of the `*-change-functions` hooks. + +2022-09-15 Stefan Kangas + + image-dired: Fix performance bug with mouse click + + * lisp/image/image-dired.el + (image-dired--on-file-in-dired-buffer): Move call to + 'image-dired-thumb-update-marks' from here... + (image-dired--do-mark-command): ...to here. Add new optional + argument UPDATE to control calling it. Update callers. + (image-dired-mouse-toggle-mark-1): Fix performance bug by setting + above new optional argument to nil. (Bug#53599) + +2022-09-15 Stefan Kangas + + Make image-dired-toggle-mark-thumb-original-file obsolete + + * lisp/image/image-dired.el + (image-dired-toggle-mark-thumb-original-file): Make obsolete. + (image-dired-mouse-toggle-mark-1): Don't use above obsolete + function. + +2022-09-15 Mattias Engdegård + + Include nil as valid wallpaper-commmand + + * lisp/image/wallpaper.el (wallpaper-command): + Include nil in the type since that is a valid value for the variable, + and may be the default value. This should fix test-custom-opts. + +2022-09-15 Alan Mackenzie + + CC Mode: Handle C++20 modules + + * lisp/progmodes/cc-engine.el (c-before-after-change-check-c++-modules): New + function. + (c-forward-<>-arglist): Add special handling for "import <...>". + + * lisp/progmodes/cc-fonts.el (c-preprocessor-face-name): Add extra "fallback" + face after font-lock-reference-face, namely font-lock-constant-face. + (c-cpp-matchers): Don't fontify the <> delimiters for XEmacs in #include <..>. + (c-basic-matchers-before): Add c-font-lock-c++-modules to the C++ value. + (c-forward-c++-module-name, c-forward-c++-module-partition-name) + (c-font-lock-c++-modules): New functions. + + * lisp/progmodes/cc-langs.el (c-get-state-before-change-functions) + (c-before-font-lock-functions): Include + c-before-after-change-check-c++-modules in the C++ value of these variables. + (c-module-name-re): New c-lang-const/var. + (c-other-decl-kwds): Add a C++ value "export". + (c-<>-sexp-kwds): Add a new component c-import-<>-kwds. + (c-import-<>-kwds, c-module-kwds): New c-lang-consts. + (c-module-key): New c-lang-const/var. + +2022-09-15 Stefan Kangas + + Document MS-Windows support in wallpaper.el + + * lisp/image/wallpaper.el: Add MS-Windows to Commentary. + (wallpaper-command, wallpaper-command-args, wallpaper-set): + Document MS-Windows support. + +2022-09-15 Stefan Kangas + + Improve error when wallpaper-command is nil + + * lisp/image/wallpaper.el (wallpaper-set): Improve the error message + when 'wallpaper-command' is nil. + +2022-09-15 Stefan Kangas + + Support macOS in wallpaper.el + + * lisp/image/wallpaper.el (wallpaper--default-commands) + (wallpaper-command): Support macOS using "osascript". + (wallpaper-set): Display image name when wallpaper-debug is t. + +2022-09-15 Juri Linkov + + Fix outline image icon display (bug#57813) + + * lisp/outline.el (outline--make-button-overlay): Don't overwrite + image display with string display when image exists. + (outline--fix-up-all-buttons): Optimize. + +2022-09-15 Eli Zaretskii + + Implement support for 'wallpaper-set' on MS-Windows + + * src/w32fns.c (Fw32_set_wallpaper): New primitive. + (syms_of_w32fns): Defsubr it. + (globals_of_w32fns): Attempt to load SystemParametersInfoW from + its DLL at run time. + + * lisp/image/wallpaper.el (wallpaper-set): Support MS-Windows by + calling 'w32-set-wallpaper'. + + * etc/NEWS: Update and simplify wording of the 'wallpaper-set' + entry. + +2022-09-15 Stefan Kangas + + Add rudimentary font-locking to edit-abbrevs-mode + + * lisp/abbrev.el (abbrev-table-name): New face. + (edit-abbrevs-mode-font-lock-keywords): New defvar. + (edit-abbrevs-mode): Support font-locking. + +2022-09-15 Mattias Engdegård + + Use `eql` or `eq` instead of `=` in some places + + For a switch op to be generated, comparisons must be made using `eq`, + `eql` or `equal`, not `=`. + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): + * lisp/files.el (file-modes-char-to-who, file-modes-char-to-right): + * lisp/international/titdic-cnv.el (tit-process-header): + * lisp/language/ethio-util.el (ethio-input-special-character) + (ethio-fidel-to-tex-buffer): + * lisp/language/lao.el (consonant): + Use `eq` or `eql` instead of `=`. + + In these cases either `eq` or `eql` would do and the choice does not + affect the resulting code. We compare numbers with `eql` and + characters with `eq` as a matter of style. + +2022-09-15 Mattias Engdegård + + Simplify and shrink reader buffers + + A big on-stack buffer in a potentially long-running function can + interact badly with the GC's conservative scanning of the C stack. + It may make the scanning slower (since the stack frame is big) and + risks accidental retention of objects from stack detritus + (because the buffer isn't cleaned on entry). + + * src/lread.c (stackbufsize): Remove. + (read_integer, read_string_literal, read_bool_vector): Use a local + buffer instead of piggy-backing on that in read0. + (read0): Reduce buffer to something suitable for most identifiers and + numbers. + +2022-09-15 Mattias Engdegård + + mapconcat fast path with `identity` function argument + + This makes (mapconcat #'identity SEQ) slightly faster than + (apply #'concat SEQ), which used to be much faster. + Notably, `string-join` benefits from this change as it uses mapconcat. + + * src/fns.c (Fmapconcat): Speed up execution when the function + argument is `identity`. + +2022-09-15 Po Lu + + More fixes for XDND proxy support + + * src/xterm.c (handle_one_xevent): Check replies against + toplevel, not proxy. + +2022-09-15 Stefan Kangas + + Use substitute-command-keys in proced-help + + * lisp/proced.el (proced-help-string, proced-help): Use + substitute-command-keys. + +2022-09-15 Eli Zaretskii + + Revert "; Fix doc string of 'loaddefs-generate'" + + This reverts commit 5fe9a1a85ae6d54196031157a735352f6ab655ff. + It included unrelated changes. + +2022-09-15 Stefan Kangas + + Merge from origin/emacs-28 + + 5543aea1b2 Automate exporting etc/NEWS to HTML + 23a91163ed * Makefile.in (uninstall): Remove the *.eln files. (Bug#5... + +2022-09-14 Jim Porter + + Allow using a symbol as an index into an alist in Eshell + + * lisp/eshell/esh-var.el (eshell-index-value): If INDEX is a symbol, + use 'assoc' for indexing. + + * test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-var-assoc) + (esh-var-test/quoted-interp-var-assoc): Add checks for indexing via + symbol (bug#57787). + +2022-09-14 Sean Whitton + + Use '^' key for detach command bindings + + * lisp/tab-bar.el (tab-prefix-map): Move tear-off-window to C-x w ^ f. + Bind tab-window-detach to C-x w ^ t. + * lisp/window.el (window-prefix-map): Bind tab-detach to C-x t ^ f. + +2022-09-14 Stefan Kangas + + Add image-transform-reset-to-original to manual + + * doc/emacs/files.texi (Image Mode): + Add 'image-transform-reset-to-original'. + Suggested by Juri Linkov . + +2022-09-14 Stefan Kangas + + Support fbsetbg in wallpaper.el + + * lisp/image/wallpaper.el (wallpaper--default-commands) + (wallpaper-command): Add "fbsetbg". + +2022-09-14 Augusto Stoffel + + pcomplete: Generate completions from --help messages + + * lisp/pcomplete.el (pcomplete-from-help): New function (and hash + table) to get pcomplete candidates from help messages. + (pcomplete-here-using-help): Helper function to define pcomplete for + simple commands + (pcomplete-completions-at-point): Provide annotation-function and + company-docsig properties. + * lisp/pcmpl-git.el: New file, provides pcomplete for Git. + * lisp/pcmpl-gnu.el: Add pcomplete for awk, gpg and gdb, emacs and + emacsclient. + * lisp/pcmpl-linux.el: Add pcomplete for systemctl and journalctl. + * lisp/pcmpl-rpm.el: Add pcomplete for dnf. + * lisp/pcmpl-unix.el: Add pcomplete for sudo and most commands found + in GNU Coreutils. + * lisp/pcmpl-x.el: Add pcomplete for tex, pdftex, latex, pdflatex, + rigrep and rclone. + * test/lisp/pcomplete-tests.el (pcomplete-test-parse-gpg-help, + pcomplete-test-parse-git-help): Tests for the new functions. + +2022-09-14 Lars Ingebrigtsen + + Allow specifying the color to use in image-elide + + * lisp/image/image-crop.el (image-crop-elide-command): Adjust to + allow specifying the color. + (image-elide): Prompt for a color. + (image-crop--crop-image-update): Pass the color along. + +2022-09-14 Stefan Kangas + + Automate exporting etc/NEWS to HTML + + * admin/admin.el (make-news-html-file): New function. + * .gitignore: Ignore generated "etc/NEWS*.html" file. + +2022-09-14 Lars Ingebrigtsen + + Make image-crop variables into user options + + * lisp/image/image-crop.el (image-crop): New group. + (image-crop-crop-command, image-crop-resize-command) + (image-crop-elide-command, image-crop-crop-command): Make into + defcustoms. + +2022-09-14 Stefan Kangas + + Support hsetroot in wallpaper.el + + * lisp/image/wallpaper.el (wallpaper--default-commands) + (wallpaper-command): Add "hsetroot". + +2022-09-14 Lars Ingebrigtsen + + Regenerated ldefs-boot.el + +2022-09-14 Lars Ingebrigtsen + + Speed up Emacs build by autoloading vc-git-annotate-switches-safe-p + + * lisp/vc/vc-git.el (vc-git-annotate-switches-safe-p): Put the + definition into the loaddefs file. + +2022-09-14 Lars Ingebrigtsen + + Fix image-mode.el compilation + + * lisp/image/image-crop.el (text-property-search): Require. + +2022-09-14 Lars Ingebrigtsen + + Make image cropping work in image-mode buffers + + * lisp/image-mode.el (image-mode): Update the buffer text after + cropping (bug#57793). + +2022-09-14 Lars Ingebrigtsen + + Don't alter the buffer contents in image-crop by default + + * lisp/image/image-crop.el (image-crop-buffer-text-function): + Allow modes to alter the textual representation. + (image-crop): Delete the complete image data without assuming it's + all on one line (which isn't the case in image-mode, for instance). + (image-crop--crop-image-update, image-crop--insert-image-data): + Use image-crop-buffer-text-function. + (image-crop--default-buffer-text): New default action -- don't + alter the buffer contents (bug#57793). + +2022-09-14 Mattias Engdegård + + Raise default max-specpdl-size and max-lisp-eval-depth + + Recent changes have caused bootstrapping to fail for certain + configurations, and it was likely getting close to the limits + for others. This change raises the limits to those previously + used when configured for nativecomp: + + max-specpdl-size raised from 1800 to 2500 + max-lisp-eval-depth raised from 800 to 1600 + + * src/eval.c (init_eval_once): Raise limits. + * doc/lispref/eval.texi (Eval): + * doc/lispref/variables.texi (Local Variables): Document new values. + +2022-09-14 Stefan Kangas + + Rename image transform commands to be less confusing + + * lisp/image-mode.el + (image-transform-original): Rename from this... + (image-transform-reset-to-original): ...to this. Make old name + into an obsolete function alias and update all callers. + (image-transform-reset): Rename from this... + (image-transform-reset-to-initial): ...to this. Make old name + into an obsolete function alias and update all callers. + (Bug#51451) + * doc/emacs/files.texi (Image Mode): Update for above change. + +2022-09-14 Lars Ingebrigtsen + + Remove the save-match-data from shell-command + + * lisp/simple.el (shell-command): Remove save-match-data, since + we're (in many cases) altering the match data earlier in the + function anyway (bug#57795). + +2022-09-14 Lars Ingebrigtsen + + Fix textsec-suspicious foreground color + + * lisp/international/textsec-check.el (textsec-suspicious): Set + the foreground, too (bug#57796). + +2022-09-14 Lars Ingebrigtsen + + Also use eww URL transformers in the actual links + + * lisp/net/eww.el (eww-mode): Use it to transform URLs + (bug#57796). + + * lisp/net/shr.el (shr-url-transformer): New variable. + (shr-tag-a): Use it. + +2022-09-14 Stefan Kangas + + Add new command image-mode-wallpaper-set + + * lisp/image-mode.el (wallpaper): Require. + (image-mode-wallpaper-set): New command. + (image-mode-map): Bind above new command to "W". + +2022-09-14 Stefan Kangas + + Add :type to wallpaper-command + + * lisp/image/wallpaper.el (wallpaper-command): Make it easier to + customize by adding a :type declaration covering all supported values. + +2022-09-14 Evan Klitzke (tiny change) + + Add consteval and constinit keywords to cc-mode + + * lisp/progmodes/cc-langs.el (c-modifier-kwds): Add consteval and + constinit keywords (introduced in C++20) (bug#51092). + +2022-09-14 Eli Zaretskii + + * Makefile.in (uninstall): Remove the *.eln files. (Bug#57771) + +2022-09-14 Basil L. Contovounesios + + Fix more misleading cl-case quoting in tests + + * test/lisp/dnd-tests.el (x-begin-drag): + * test/lisp/so-long-tests/so-long-tests-helpers.el + (so-long-tests-assert-active, so-long-tests-assert-reverted): Remove + misleading quoting in cl-case clauses (bug#51368). + +2022-09-14 Stefan Kangas + + Make it easier to customize wallpaper command + + * lisp/image/wallpaper.el + (wallpaper--default-commands): New defvar. + (wallpaper--find-command): Use above new defvar. + (wallpaper--find-command-arguments): New defun. + (wallpaper-command): Rename from 'wallpaper-commands' and change + type to string. Use 'wallpaper--find-command' to set it. + (wallpaper-command-args): New defcustom. Use + 'wallpaper--find-command-arguments' to set it. + (wallpaper--set-wallpaper-command): New defun. Use as :set property + for 'wallpaper-command'. + (wallpaper-set): Use above new defcustoms to set the wallpaper. + Suggested by Eli Zaretskii . + +2022-09-14 Stefan Kangas + + Improve wallpaper.el docs for recent changes + + * lisp/image/wallpaper.el: Fix documentation to better reflect that no + external command is needed on Haiku. + * etc/NEWS: Update entry on wallpaper.el. + +2022-09-14 Stefan Kangas + + Allow setting wallpaper from TTY + + * lisp/image/wallpaper.el (wallpaper-set): Allow setting wallpaper + when 'display-graphic-p' is nil. + (wallpaper-default-width, wallpaper-default-height): + New variables. + (wallpaper--get-height-or-width): New helper function. + +2022-09-14 Stefan Kangas + + * lisp/image/wallpaper.el (wallpaper-commands): Add xwallpaper. + +2022-09-14 Stefan Kangas + + Support recent KDE Plasma in wallpaper.el + + * lisp/image/wallpaper.el (wallpaper-commands): Support recent KDE + Plasma. + (wallpaper--check-command): New cl-defmethod. + +2022-09-14 Stefan Kangas + + Fix desktop environment check on Ubuntu + + * lisp/image/wallpaper.el (xdg): Require. + (wallpaper--check-command): Use xdg-current-desktop instead of reading + XDG_CURRENT_DESKTOP directly. This fixes things on e.g. Ubuntu, where + XDG_CURRENT_DESKTOP might contain a string like "ubuntu:GNOME". + +2022-09-14 Stefan Kangas + + Add new function xdg-current-desktop to xdg.el + + * lisp/xdg.el (xdg-current-desktop): New function. + * test/lisp/xdg-tests.el (xdg-current-desktop): New test. + +2022-09-14 Stefan Kangas + + Improve messages in image-crop.el + + * lisp/image/image-crop.el (image-crop) + (image-crop--crop-image-1): Improve messages and include the name + of the current operation. + +2022-09-14 Po Lu + + Implement wallpaper.el support for Haiku + + * lisp/image/wallpaper.el (haiku-set-wallpaper, wallpaper-set): + Use `haiku-set-wallpaper' on Haiku. + * lisp/term/haiku-win.el (haiku-write-node-attribute) + (haiku-send-message, haiku-set-wallpaper): New function. + * src/haiku_support.cc (be_write_node_message, be_send_message): + New functions. + * src/haiku_support.h: Update prototypes. + * src/haikuselect.c (haiku_message_to_lisp) + (haiku_lisp_to_message): Fix CSTR type handling to include NULL + byte. + (haiku_report_system_error, Fhaiku_write_node_attribute) + (Fhaiku_send_message): New functions. + (syms_of_haikuselect): Add defsubrs. + +2022-09-14 Stefan Kangas + + Support wbg in wallpaper.el (Bug#57781) + + * lisp/image/wallpaper.el (wallpaper-commands): Add "wbg". + (wallpaper--check-command): New cl-defmethod for "wbg". + +2022-09-13 Lars Ingebrigtsen + + Fix recently-added cl-macs tests + + * test/lisp/emacs-lisp/cl-macs-tests.el (cl-case-error) + (cl-case-warning): Fix warning matches. + +2022-09-13 Lars Ingebrigtsen + + Make help-fns--generalized-variable more resilient + + * lisp/help-fns.el (help-fns--generalized-variable): Don't bug out + when a key binding isn't a symbol. + +2022-09-13 Juri Linkov + + Prefer defvar-keymap for repeat-map in outline.el + + * lisp/outline.el (outline-navigation-repeat-map) + (outline-editing-repeat-map): Prefer defvar-keymap. + +2022-09-13 Paul Eggert + + Port alignas definition to C23 + + * src/lisp.h (alignas): C23 is removing the __alignas_is_defined + macro, so do not rely on it. Instead, do not define alignas if C23 + or later, or if C++11 or later. + +2022-09-13 Lars Ingebrigtsen + + Fix wallpaper.el build warning + + * lisp/image/wallpaper.el (require): Fix build warning. + +2022-09-13 Lars Ingebrigtsen + + Revert "Fix help--analyze-key problem when not called from menu" + + This reverts commit 7e374b96635ce70f574fba351defc765e9a52da9. + + This should not be needed -- perhaps it was triggered by + an ephemeral code change in my running Emacs. + +2022-09-13 Stefan Kangas + + Use wallpaper-set in thumbs.el + + * lisp/thumbs.el (wallpaper): Require. + (thumbs-setroot-command): Make defcustom obsolete. + (thumbs-call-setroot-command): Make obsolete in favor of + wallpaper-set. + (thumbs-set-image-at-point-to-root-window, thumbs-set-root) + (thumbs-dired-setroot): Use wallpaper-set instead of + thumbs-call-setroot-command. + (thumbs-before-setroot-hook, thumbs-after-setroot-hook): Make + obsolete. + +2022-09-13 Stefan Kangas + + Add new command image-dired-set-wallpaper + + * lisp/image/image-dired.el (wallpaper): Require. + (image-dired-set-wallpaper): New command. + (image-dired-thumbnail-mode-map): Bind above new command to "W". + +2022-09-13 Stefan Kangas + + Add new library wallpaper.el + + * lisp/image/wallpaper.el: New file. + +2022-09-13 Lars Ingebrigtsen + + Remove a nil cl-case case + + * lisp/emacs-lisp/testcover.el (testcover-coverage-combine): + Remove the nil case, which will never match (bug#51368). + +2022-09-13 Lars Ingebrigtsen + + Fix some misleading quoting in cl-case + + * lisp/progmodes/compile.el (compilation-auto-jump): + * lisp/image/image-crop.el (image-crop--crop-image-1): + (image-crop--crop-image-1): + * lisp/image/exif.el (exif--process-value): + * lisp/image-mode.el (image-mode--next-file): + * lisp/dnd.el (dnd-begin-text-drag): + (dnd-begin-file-drag): + (dnd-begin-drag-files): Fix misleading quoting in cl-case (bug#51368). + +2022-09-13 Lars Ingebrigtsen + + Regenerated ldefs-boot.el + +2022-09-13 Philipp Stephani + + Have 'cl-case' warn about suspicious cases + + * lisp/emacs-lisp/cl-macs.el (cl-case): Warn if the user passes a nil + key list (which would never match). Warn about quoted symbols that + should probably be unquoted. + + * test/lisp/emacs-lisp/cl-macs-tests.el (cl-case-warning): New unit + test (bug#51368). + +2022-09-13 Philipp Stephani + + Signal an error if a fallback cl-case is misplaced + + * lisp/emacs-lisp/cl-macs.el (cl-case): Warn if the user passes a nil + key list (which would never match). Warn about quoted symbols that + should probably be unquoted. + + * test/lisp/emacs-lisp/cl-macs-tests.el (cl-case-warning): New unit + test (bug#51368). + +2022-09-13 Lars Ingebrigtsen + + Move imagep in image.c from the debugging section + + * lisp/simple.el (imagep): Remove. + * src/image.c (Fimagep): Always define. + +2022-09-13 Lars Ingebrigtsen + + Fix help--analyze-key problem when not called from menu + + * lisp/help.el (help--analyze-key): Don't bug out when not called + from the menu. + +2022-09-13 Lars Ingebrigtsen + + Add new commands 'image-crop' and 'image-elide' + + * doc/lispref/display.texi (Showing Images): Document it. + + * lisp/image.el (image-map): Bind commands. + + * lisp/image/image-crop.el: New file (bug#51331). + +2022-09-13 Lars Ingebrigtsen + + Add new function imagep + + * lisp/simple.el (imagep): New function. + +2022-09-13 Gerd Möllmann + + Fix whitespace-tests on macOS + + * test/lisp/whitespace-tests.el (whitespace-tests--empty-bob): + (whitespace-tests--empty-eob): Use C-a/C-e instead of + / (bug#57763). + +2022-09-13 Stefan Monnier + + comp-tests.el: Enable compilation again + + Rather than disable byte-compilation to circumvent bug#51104, + change the ELisp code so that `most-positive/negative-fixnum` does + not end up hardcoded in the `.elc` file. + + * test/src/comp-tests.el (comp-tests-define-type-spec-test): + Don't quote the type expressions. + (comp-tests-type-spec-tests): Quote them here instead. + +2022-09-13 Eli Zaretskii + + Fix last change in image.c + + * src/image.c (svg_load_image): Don't call Lisp to remove trailing + whitespace from librsvg error messages, do it in C instead; this + reduces consing and is much cleaner. Don't display empty error + reason if librsvg happens to return an empty message text. + (syms_of_image): Don't DEFSYM string-trim-right. (Bug#57755) + +2022-09-13 Stefan Kangas + + Prefer defvar-keymap in several cases + + * lisp/calc/calc-embed.el (calc-override-minor-modes-map): + * lisp/calc/calc-yank.el (calc-edit-mode-map): + * lisp/calc/calc.el (calc-trail-mode-map): + * lisp/cedet/semantic/mru-bookmark.el (semantic-mru-bookmark-mode-map): + * lisp/cedet/semantic/util-modes.el (semantic-highlight-edits-mode-map) + (semantic-show-unmatched-syntax-mode-map) + (semantic-show-parser-state-mode-map) + (semantic-stickyfunc-mode-map, semantic-highlight-func-mode-map): + * lisp/cedet/srecode/srt-mode.el (srecode-template-mode-map): + * lisp/gnus/gnus-art.el (gnus-prev-page-map, gnus-next-page-map): + * lisp/gnus/gnus-search.el (gnus-search-minibuffer-map): + * lisp/gnus/score-mode.el (gnus-score-mode-map): + * lisp/gnus/smime.el (smime-mode-map): + * lisp/indent.el (edit-tab-stops-map): + * lisp/isearch.el (minibuffer-local-isearch-map): + * lisp/printing.el (pr-interface-map): + * lisp/progmodes/prog-mode.el (prog-mode-map): + * lisp/progmodes/subword.el (subword-mode-map): + * lisp/reveal.el (reveal-mode-map): + * lisp/strokes.el (strokes-mode-map): + * lisp/textmodes/flyspell.el (flyspell-mouse-map): + * lisp/textmodes/less-css-mode.el (less-css-mode-map): + * lisp/textmodes/remember.el (remember-mode-map) + (remember-notes-mode-map): + * lisp/wid-browse.el (widget-browse-mode-map): + * lisp/wid-edit.el (widget-key-sequence-map): Prefer defvar-keymap in + some easy-to-convert cases. + +2022-09-13 Lars Ingebrigtsen + + Enable undo in eww buffers + + * lisp/net/eww.el (eww-render): Enable undo after rendering. This + allows using `undo' in text input boxes. + (eww-setup-buffer): Disable undo before rendering (bug#57750). + + * lisp/net/shr.el (shr-image-fetched): Inhibit undo tracking. + +2022-09-13 Lars Ingebrigtsen + + Indirect Buffers manual improvement + + * doc/emacs/buffers.texi (Indirect Buffers): There's no point in + mentioning both clone-indirect-buffer and + clone-indirect-buffer-other-window here since they do the pretty + much the same (bug#57753). + +2022-09-13 dickmao + + Avoid double svg error reporting and segfaults + + * src/image.c (svg_load_image): Use g_error_free directly instead + of the helder g_clear_error (since we're only calling it with + non-nil values). + (svg_load_image): Avoid segfault and double reporting errors. + * test/manual/image-tests.el (image-tests-load-image/svg-too-big) + (image-tests-load-image/svg-invalid): Test it (bug#57755). + +2022-09-13 Stefan Kangas + + Prefer defvar-keymap in pixel-scroll-precision-mode-map + + * lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): Prefer + defvar-keymap. + +2022-09-13 Stefan Kangas + + Prefer defvar-keymap in tab-line.el + + * lisp/tab-line.el (tab-line-tab-map, tab-line-add-map) + (tab-line-tab-close-map, tab-line-left-map, tab-line-right-map): + Prefer defvar-keymap. + +2022-09-13 Stefan Kangas + + Prefer defvar-keymap in lisp/epa*.el + + * lisp/epa-ks.el (epa-ks-search-mode-map): + * lisp/epa.el (epa-key-list-mode-map, epa-key-mode-map): Prefer + defvar-keymap. + +2022-09-13 Po Lu + + Fix frames with explicit parent being unmapped after parent shuts down + + * src/xterm.c (handle_one_xevent): Delete leftover _XEMBED_INFO + property after parent shuts down. + +2022-09-13 Stefan Kangas + + Merge from origin/emacs-28 + + 86f0601392 ; * admin/notes/www: Fix typos. + 2cdb9d03fd ; * admin/make-tarball.txt: Minor clarifications. + +2022-09-13 Stefan Kangas + + Merge from origin/emacs-28 + + 739b5d0e52 Update HISTORY for Emacs 28.2 + +2022-09-12 Stefan Kangas + + * Version 28.2 released. + +2022-09-12 Paul Eggert + + Fix comp-tests.el problem after reconfiguring + + * test/src/comp-tests.el: Do not byte-compile, as the .elc + file would be machine-dependent (bug#51104). + +2022-09-12 Juri Linkov + + Document the recently added branch commands (bug#50344) + + * doc/emacs/maintaining.texi (VC Directory Commands): Change the + prefix key from "B" to "b". Replace vc-create-tag with vc-create-branch, + and vc-retrieve-tag with vc-switch-branch. + (Switching Branches): Mention vc-switch-branch bound to 'C-x v b s'. + (Creating Branches): Mention vc-create-branch bound to 'C-x v b c'. + + * lisp/vc/vc-dir.el (vc-dir-mode-map): In branch keymap 'b' rebind + "c" from vc-create-tag to vc-create-branch, and "s" from + vc-retrieve-tag to vc-switch-branch. + +2022-09-12 Juri Linkov + + * lisp/vc/vc.el (vc-print-branch-log): Fix interactive spec. + + For reading vc-read-revision in the interactive spec use the same 'backend' + and 'rootdir' as in the body of the same function. + +2022-09-12 Juri Linkov + + 'C-x v b' prefix key is used for branch commands to create/switch/print branch + + * lisp/vc/vc.el (vc-create-branch): New command. + (vc-retrieve-tag): Add new optional arg 'branchp'. + (vc-switch-branch): New command (bug#50344). + + * lisp/vc/vc-hooks.el (vc-prefix-map): Bind "b c" to vc-create-branch, + "b l" to vc-print-branch-log, "b s" to vc-switch-branch. Remove obsolete + and suppressed "b" from vc-switch-backend. + + * lisp/vc/vc-dir.el (vc-dir-mode-map): Rebind 'branch-map' from "B" to "b" + for consistency with 'vc-prefix-map'. + + * lisp/vc/vc-git.el (vc-git-create-tag): For a new branch read + its start-point. Ask a confirmation if modified files exist. + +2022-09-12 Sean Whitton + + Add new C-x w prefix map + + * window.el (window-prefix-map): New map. + (ctl-x-map): Unbind split-root-window-below and + split-root-window-right. Bind window-prefix-map to C-x w. + +2022-09-12 Stefan Kangas + + Skip manual GIF metadata test on MS-Windows + + * test/manual/image-tests.el + (image-skip-unless): Add new arg CONDITION. + (image-tests-image-metadata/gif): Skip test on MS-Windows when + using native image API. (Bug#57691) + +2022-09-12 Lars Ingebrigtsen + + Don't overwrite error message in `x' in package.el + + * lisp/emacs-lisp/package.el (package-menu--perform-transaction): + Return whether there were errors. + (package-menu-execute): Don't overwrite the error message(s) with + a success message (bug#51201). + +2022-09-12 Lars Ingebrigtsen + + Remove some XEmacs references in speedbar.el + + * lisp/speedbar.el (speedbar-toggle-etags): Remove some references + to etags support being XEmacs specific (bug#51102). + +2022-09-12 Lars Ingebrigtsen + + Document :vert-only tool bar property + + * doc/lispref/keymaps.texi (Tool Bar): Document what :vert-only + does (bug#51049). This is not what it was intended to do -- but + what it intended to do didn't really make that much sense either, + so perhaps the prop should just be renamed :image-only? + +2022-09-12 Arthur Miller + + Remove edebug props in edebug-remove-instrumentation + + * lisp/emacs-lisp/edebug.el (edebug--strip-plist): New function + (bug#51026). + (edebug-remove-instrumentation): Use it to remove pros added while + running edebug. + +2022-09-12 Lars Ingebrigtsen + + Fix length issues in gnus-cloud-make-chunk + + * lisp/gnus/gnus-cloud.el (gnus-cloud-make-chunk): Make buffer + unibyte (bug#50988). + +2022-09-12 Arash Esbati + + Consider key=val labels when renumbering + + * lisp/textmodes/reftex-global.el (reftex-translate): Recognize + key=val labels given in the optional or mandatory argument of + environments (AUCTeX bug#57720). + + * test/lisp/textmodes/reftex-tests.el + (reftex-renumber-simple-labels): New Test. + +2022-09-12 Michael Albinus + + Fix Tramp test + + * lisp/net/tramp-compat.el (tramp-compat-rx): + Add `tramp-autoload' function property. + +2022-09-12 Po Lu + + Fix focus restoration upon x_mouse_leave again + + * src/xterm.c (x_mouse_leave): Call xi_handle_focus_change after + changing the implicit focus. + +2022-09-11 Stefan Kangas + + Update HISTORY for Emacs 28.2 + + * etc/HISTORY: Update for the Emacs 28.2 release. + +2022-09-11 Dmitry Gutov + + * lisp/progmodes/xref.el: Bump the version. + +2022-09-11 Kévin Le Gouguec + + Restrict replace-*-in-region to the bounds defined by caller + + * lisp/subr.el (replace-string-in-region, replace-regexp-in-region): + Narrow to region before iterating over matches, instead of giving a + bound to the search functions. + * test/lisp/subr-tests.el (test-replace-string-in-region): Add + regression tests (bug#57733). + +2022-09-11 Michael Albinus + + Disable Tramp cache for relative file names + + * lisp/net/tramp.el (tramp-file-name-unify): + Return `tramp-cache-undefined' if LOCALNAME is a relative file name. + + * lisp/net/tramp-cache.el (tramp-get-file-property) + (tramp-set-file-property, tramp-file-property-p) + (tramp-flush-file-property, tramp-flush-file-upper-properties) + (tramp-flush-file-properties): Handle KEY being + `tramp-cache-undefined'. + (tramp-flush-file-function): Revert last change. + +2022-09-11 Richard Hansen + + whitespace: Redo BoB/EoB empty line highlighting + + * lisp/whitespace.el (whitespace--empty-at-bob-matcher, + whitespace--empty-at-eob-matcher, whitespace--update-bob-eob, + whitespace-color-off, whitespace-color-on, + whitespace-empty-at-bob-regexp, whitespace-empty-at-eob-regexp, + whitespace-looking-back, whitespace-post-command-hook): Redo the + `empty' line highlighting logic to ensure that a buffer change causes + all affected `empty' lines to become (un)highlighted (bug#37467). + Also, for improved UX, don't highlight BoB empty lines at or below + point (not just when point is at 1), or EoB empty lines at or above + point (not just when point is `eobp'). + (whitespace-bob-marker, whitespace-eob-marker): Clarify documentation. + * test/lisp/whitespace-tests.el (whitespace--with-test-buffer, + whitespace--fu, whitespace-tests--empty-bob, + whitespace-tests--empty-eob): Add tests. + +2022-09-11 Richard Hansen + + whitespace: Include empty final line in BoB empty match + + * lisp/whitespace.el (whitespace-empty-at-bob-regexp): Include any + last line trailing whitespace in the BoB empty line match to ensure + that those characters get highlighted. + +2022-09-11 Richard Hansen + + whitespace: Reset `whitespace-buffer-changed' when refontifying + + * lisp/whitespace.el (whitespace-post-command-hook): Add missing reset + of `whitespace-buffer-changed' back to nil between commands. + +2022-09-11 Richard Hansen + + ert-x: New `ert-with-test-buffer-selected' convenience macro + + * lisp/emacs-lisp/ert-x.el (ert-with-test-buffer-selected): New + convenience macro that extends `ert-with-test-buffer' by displaying + the test buffer in a temporary selected window. This makes it easier + to simulate user input in the body via `execute-kbd-macro'. + * test/lisp/emacs-lisp/ert-x-tests.el + (ert-test-test-buffer-selected/*): Add tests. + +2022-09-11 Philip Kaludercic + + Revert "Add new command 'toggle-theme'" + + This reverts commit f31b9d86a67f1b3fd70339f277dff52478890351. + +2022-09-11 Philip Kaludercic + + Revert "Add new user option 'custom-ensure-single-theme'" + + This reverts commit b4dbf7184cd68ecd8d1a27fbc1407be0eae7e64c. + +2022-09-11 Philip Kaludercic + + Add new user option 'custom-ensure-single-theme' + + * etc/NEWS: Mention it. + * lisp/custom.el (custom-ensure-single-active-theme): Add it. + (load-theme): Use it. + +2022-09-11 Philip Kaludercic + + Add new command 'toggle-theme' + + * doc/emacs/custom.texi (Custom Themes): Mention it. + * etc/themes/leuven-dark-theme.el (leuven-dark): Add dual theme. + * etc/themes/leuven-theme.el (leuven): Add dual theme. + * etc/themes/tango-dark-theme.el (tango-dark): Add dual theme. + * etc/themes/tango-theme.el (tango): Add dual theme. + * etc/themes/tsdh-dark-theme.el (tsdh-dark): Add dual theme. + * etc/themes/tsdh-light-theme.el (tsdh-light): Add dual theme. + * lisp/cus-theme.el (describe-theme-1): Say if a theme has a dual. + * lisp/custom.el (toggle-theme): Add new command. + +2022-09-11 Miha Rihtaršič + + Improve some shell highlight doc strings + + * lisp/shell.el (shell-highlight-undef-mode-restart): Rename function. + * lisp/shell.el (shell-comint-fl-enable): + (shell--highlight-undef-indirect) + * lisp/ielm.el (ielm-comint-fl-enable): + * lisp/comint.el: (comint--fl-fontify-region): Improve doc strings. + +2022-09-11 Po Lu + + Make it easier to clear the Motif drag window for debugging + + * src/xterm.c (xm_get_drag_window_1): Add comment explaining + side effect of x_special_window_exists_p. + (handle_one_xevent): Clear Motif drag window upon DestroyNotify. + In addition to debugging, it also reduces syncs necessary to + communicate via the Motif protocol after a defective/old client + sets the drag window without setting the disconnect mode. + +2022-09-11 Juri Linkov + + * lisp/vc/vc.el (vc-diff-patch-string): Fix arg in revert-buffer-function. + +2022-09-11 Sean Whitton + + * lisp/vc/vc.el (vc-deduce-backend): Handle eshell-mode. + +2022-09-10 John Wiegley + + Merge pull request from sdwolfz/native-compiler-warning + + GitHub-reference: https://github.com/jwiegley/use-package/issues/998 + +2022-09-10 Codruț Constantin Gușoi + + Fix emacs native compilation warning for bind-key + + To reproduce, have emacs built with native compilation and notice the + compilation logs. You can then open the offending file and run `M-x + emacs-lisp-native-compile-and-load` before and after the changes to see + the warning is removed. + + ``` + ■ Warning (comp): bind-key.el:150:2: Warning: docstring has wrong + usage of unescaped single quotes (use \= or different quoting) + ``` + +2022-09-10 ookami (tiny change) + + Fix project-remember-projects-under when recursing + + * lisp/progmodes/project.el (project-remember-projects-under): + Actually recurse into directories (bug#57714). + +2022-09-10 Michael Albinus + + Ensure, that Tramp cache works over absolute file names + + * lisp/net/tramp.el (tramp-skeleton-directory-files) + (tramp-skeleton-directory-files-and-attributes) + (tramp-skeleton-set-file-modes-times-uid-gid) + (tramp-handle-add-name-to-file, tramp-handle-file-exists-p) + (tramp-handle-file-readable-p, tramp-handle-file-writable-p): + * lisp/net/tramp-adb.el (tramp-adb-handle-file-executable-p) + (tramp-adb-handle-file-exists-p) + (tramp-adb-handle-file-readable-p) + (tramp-adb-handle-file-writable-p) + * lisp/net/tramp-gvfs.el (tramp-gvfs-info, tramp-gvfs-handle-delete-file) + (tramp-gvfs-get-directory-attributes) + (tramp-gvfs-get-root-attributes) + (tramp-gvfs-handle-file-executable-p): + * lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link) + (tramp-sh-handle-file-exists-p) + (tramp-sh-handle-set-visited-file-modtime) + (tramp-sh-handle-file-selinux-context) + (tramp-sh-handle-set-file-selinux-context) + (tramp-sh-handle-file-acl, tramp-sh-handle-file-executable-p) + (tramp-sh-handle-file-readable-p) + (tramp-sh-handle-file-directory-p) + (tramp-sh-handle-file-writable-p) + (tramp-sh-handle-file-ownership-preserved-p) + (tramp-sh-handle-add-name-to-file) + (tramp-sh-handle-copy-directory, tramp-sh-handle-delete-file) + (tramp-sh-handle-dired-compress-file): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-add-name-to-file) + (tramp-sudoedit-handle-delete-file) + (tramp-sudoedit-handle-file-acl) + (tramp-sudoedit-handle-file-executable-p) + (tramp-sudoedit-handle-file-exists-p) + (tramp-sudoedit-handle-file-readable-p) + (tramp-sudoedit-handle-file-selinux-context) + (tramp-sudoedit-handle-file-writable-p) + (tramp-sudoedit-handle-make-symbolic-link) + (tramp-sudoedit-handle-set-file-selinux-context): + Use `expand-file-name'. (Bug#57572) + + * lisp/net/tramp-cache.el (tramp-flush-file-function): + Expand `buffer-file-name'. (Bug#57676) + + * lisp/net/tramp.el (tramp-file-name-unify): Extend error message. + + * lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link): + * lisp/net/tramp-smb.el (tramp-smb-handle-make-symbolic-link): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-make-symbolic-link): + Do not check remoteness of TARGET anymore. + +2022-09-10 Po Lu + + Fix compliance with the XDND specification when dropping on a proxy + + * src/xterm.c (x_dnd_send_enter, x_dnd_send_position) + (x_dnd_send_leave, x_dnd_send_drop, x_dnd_do_drop): New + parameter `toplevel'. Use it as the window in sent client + messages. + (x_dnd_cancel_dnd_early, x_dnd_cleanup_drag_and_drop) + (x_dnd_process_quit, x_dnd_update_state, handle_one_xevent) + (x_connection_closed): Give the right toplevel to the client + message sending functions. + +2022-09-10 Paul Eggert + + Make wdired match dired with symlink permissions + + * lisp/wdired.el (wdired-do-perm-changes): Do not follow symlinks, + to be consistent with plain dired (bug#50189). + +2022-09-10 Lars Ingebrigtsen + + Make `format-prompt' use `substitute-command-keys' + + * doc/lispref/minibuf.texi (Text from Minibuffer): Mention it. + * lisp/minibuffer.el (format-prompt): Run through + `substitute-command-keys' (bug#51040). + +2022-09-10 Lars Ingebrigtsen + + Fix diff-mode.el compilation warnings + + * lisp/vc/diff-mode.el (diff-auto-refine-mode): Suppress + byte-compile warnings. + +2022-09-10 Stefan Kangas + + New function substitute-quotes + + * lisp/help.el (substitute-quotes): New function. (Bug#51040) + * doc/lispref/help.texi (Keys in Documentation): Document + substitute-quotes. + * test/lisp/help-tests.el (help-tests-substitute-quotes): New test. + + * lisp/cedet/srecode/srt-mode.el (srecode-macro-help): + * lisp/cus-theme.el (describe-theme-1): + * lisp/emacs-lisp/cl-extra.el (cl--describe-class): + * lisp/emacs-lisp/eieio-opt.el (eieio-help-constructor): + * lisp/emacs-lisp/package.el (describe-package-1): + * lisp/help-fns.el (help-fns--parent-mode, help-fns--var-risky) + (help-fns--var-file-local, help-fns--var-bufferlocal) + (describe-face): + * lisp/help.el (substitute-command-keys): + * lisp/progmodes/octave.el (octave-help): Use the new function + instead of 'substitute-command-keys'. + +2022-09-10 Stefan Kangas + + Doc fixes for 'text-quoting-style' + + * doc/lispref/help.texi (Keys in Documentation): Remove duplicate + entry for 'text-quoting-style'. Document the function with the same + name instead. + * src/doc.c (Ftext_quoting_style): Doc fix: clarify the return values. + (syms_of_doc) : Doc fix: clarify that you should + not read the value of this variable directly; use Ftext_quoting_style + instead (bug#51040). + +2022-09-10 Lars Ingebrigtsen + + Make a flymake.texi code example more resilient + + * doc/misc/flymake.texi (An annotated example backend): Make the + example code resilient wrt. narrowed buffers (bug#51437). + +2022-09-09 Stefan Kangas + + * src/w32image.c (w32_can_use_native_image_api): Fix comment. + +2022-09-09 Stefan Kangas + + Support outline-minor-mode in emacs-authors-mode + + * lisp/textmodes/emacs-authors-mode.el (emacs-authors-mode): + Support and enable outline-minor-mode. + +2022-09-09 Po Lu + + Fix several printfs for 32 bit systems + + * lib-src/emacsclient.c (main): Use right length modifier when + printing uintmax_t. + * src/alloc.c (check_pure_size): Use right length modifier when + printing ptrdiff_t. + +2022-09-09 John Wiegley + + Merge pull request from CeleritasCelery/master + + GitHub-reference: https://github.com/jwiegley/use-package/issues/743 + +2022-09-09 Stefan Kangas + + * lisp/subr.el (string-split): New alias for split-string. + +2022-09-09 Stefan Kangas + + Set vc-git-annotate-switches to "-w" in .dir-locals.el + + * .dir-locals.el: Set vc-git-annotate-switches to "-w". + Ref: https://lists.gnu.org/r/emacs-devel/2022-09/msg00453.html + +2022-09-09 Stefan Kangas + + Accept "-w" as safe value for vc-git-annotate-switches + + * lisp/vc/vc-git.el + (vc-git-annotate-switches-safe-p): New predicate function. + (vc-git-annotate-switches): Use above new predicate function to + check if it's :safe. + +2022-09-09 Theodor Thornhill + + Prefer documentchanges to changes in server-initiated edits + + Some servers return both. + + PR: https://github.com/joaotavora/eglot/issues/949 + + * eglot.el (eglot--apply-workspace-edit): When both documentChanges + and changes are present, prefer the documentChanges. By doing that we + ensure that we don't double edit, rendering the document in an + unusable state. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/704 + +2022-09-09 jgart <47760695+jgarte@users.noreply.github.com> (tiny change) + + Add support for jedi-language-server (again) + + * eglot.el (eglot-server-programs): Add jedi-language-server + + * README.md: Mention jedi-language-server + + * NEWS.md: Mention jedi-language-server + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/961 + +2022-09-09 Paul Eggert + + Fix problem with Glib 2.73.2+ and SIGCHLD handler + + This code fix is by Stefan Monnier (Bug#57699). + * src/process.c (init_process_emacs) [HAVE_GLIB && !WINDOWSNT]: + Adjust to Glib 2.73.2 behavior change on Linux kernel 5.3+. + +2022-09-09 John Wiegley + + Merge pull request from sdwolfz/native-compiler-warning + + GitHub-reference: https://github.com/jwiegley/use-package/issues/997 + +2022-09-09 Miha Rihtaršič + + Input indentation for M-x shell + + * lisp/comint.el + (comint-indent-input-line): + (comint-indent-input-line-default): + (comint-indent-input-region): + (comint-indent-input-region-default): New functions that implement a + general mechanism for input indentation through an indirect buffer in + comint derived major modes. + * lisp/shell.el (shell-mode): Set up input indentation according to + sh-mode (bug#51940). + +2022-09-09 Miha Rihtaršič + + Highlight non-existent commands in M-x shell + + * lisp/shell.el (shell-mode): Enable highlighting of non-existent + commands if requested. + (shell-highlight-undef-aliases): + (shell-highlight-undef-remote-file-name-inhibit-cache): New user + options. + (shell-highlight-undef-mode): New minor mode. + (shell-highlight-undef-defined-face): + (shell-highlight-undef-undefined-face): + (shell-highlight-undef-alias-face): New faces. + (shell-highlight-undef--exec-cache): + (shell-highlight-undef--face): + (shell-highlight-undef-keywords): + (shell-highlight-undef-regexp): + (shell-highlight-undef--executable-find): + (shell-highlight-undef-matcher): + (shell-highlight-undef--indirect): + (shell-highlight--setup): + (shell-highlight-undef-reset-mode): New functions and buffer local + variables (bug#51940). + +2022-09-09 Miha Rihtaršič + + Input fontification for M-x ielm + + * lisp/ielm.el (ielm-comint-fl-enable): New user option to control + input fontification. + (ielm-indirect-setup-hook): New hook. + (inferior-emacs-lisp-mode): Set up and enable input fontification. + +2022-09-09 Miha Rihtaršič + + Input fontification for M-x shell + + * lisp/comint.el + (comint-indent-input-line): + (comint-indent-input-line-default): + (comint-indent-input-region): + (comint-indent-input-region-default): New functions that implement a + general mechanism for input indentation through an indirect buffer in + comint derived major modes. + * lisp/shell.el (shell-mode): Set up input indentation according to + sh-mode (bug#51940). + * lisp/comint.el + (comint-indent-input-line): + (comint-indent-input-line-default): + (comint-indent-input-region): + (comint-indent-input-region-default): New functions that implement a + general mechanism for input indentation through an indirect buffer in + comint derived major modes. + * lisp/shell.el (shell-mode): Set up input indentation according to + sh-mode (bug#51940). + +2022-09-09 Miha Rihtaršič + + Implement a general input fontification mechanism for comint modes + + * lisp/comint.el + (comint-indent-input-line): + (comint-indent-input-line-default): + (comint-indent-input-region): + (comint-indent-input-region-default): New functions that implement a + general mechanism for input indentation through an indirect buffer in + comint derived major modes. + * lisp/shell.el (shell-mode): Set up input indentation according to + sh-mode (bug#51940). + +2022-09-09 Lars Ingebrigtsen + + Fix "warn-lambda-malformed-interactive-spec.el" even more + + * test/lisp/emacs-lisp/bytecomp-tests.el + ("warn-lambda-malformed-interactive-spec.el"): Adjust test further. + +2022-09-09 Lars Ingebrigtsen + + Don't bind `s' in the normal backtrace map + + * lisp/emacs-lisp/backtrace.el (backtrace-mode-map): Don't bind + the "s" command, because it's meaningless outside modes that have + set the backtrace-goto-source-functions variable (and only edebug + does that) (bug#57674). + * lisp/emacs-lisp/edebug.el (edebug-pop-to-backtrace): Use it. + (edebug-backtrace-mode-map, edebug-backtrace-mode): New mode. + +2022-09-09 Lars Ingebrigtsen + + Update a bytecomp test + + * test/lisp/emacs-lisp/bytecomp-tests.el + ("warn-lambda-malformed-interactive-spec.el"): Update test to code + change. + +2022-09-09 Lars Ingebrigtsen + + Fix typo in byte-compile-lambda warning + + * lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Fix typo in + message (bug#57690). + +2022-09-09 Lars Ingebrigtsen + + Fix --without-x compilation warnings + + * lisp/image/image-dired.el (clear-image-cache): + * lisp/image/image-dired-external.el (clear-image-cache): Fix + compilation warning (bug#57695). + +2022-09-09 Lars Ingebrigtsen + + Revert "Fix tramp-loaddefs compilation" + + This reverts commit 43e9c8e9d28dcb659a43e58778e2745d1279051f. + + The cookie seemed to go to lisp/loaddefs.el for a reason, but a bootstrap is needed. + +2022-09-09 Lars Ingebrigtsen + + Fix tramp-loaddefs compilation + + * lisp/net/tramp-compat.el: Fix build by putting tramp-compat-rx + in the right loaddefs file. + +2022-09-09 Michael Albinus + + Make use of rx in Tramp backward compatoble + + * lisp/net/tramp-compat.el (tramp-compat-rx--runtime-params): New defvar. + (tramp-compat-rx--transform-items) + (tramp-compat-rx--transform-item, tramp-compat-rx--transform): + New defuns. Suggested by Mattias Engdegård . + (tramp-compat-rx): New defalias or defmacro. + (tramp-compat-string-replace, tramp-compat-string-search): + Use regexp-quote. + + * lisp/net/tramp.el: + * lisp/net/tramp-adb.el: + * lisp/net/tramp-archive.el: + * lisp/net/tramp-cmds.el: + * lisp/net/tramp-crypt.el: + * lisp/net/tramp-fuse.el: + * lisp/net/tramp-gvfs.el: + * lisp/net/tramp-sh.el: + * lisp/net/tramp-smb.el: + * lisp/net/tramp-sudoedit.el: Use `tramp-compat-rx' where indicated. + + * test/lisp/net/tramp-archive-tests.el: + * test/lisp/net/tramp-tests.el: Use `tramp-compat-rx' where indicated. + +2022-09-09 Stefan Kangas + + Fix SVG loading test for old librsvg 2.40.1 + + * test/manual/image-tests.el (image-tests-load-image/svg-invalid): Fix + test for old librsvg 2.40.1. (Bug#57691) + +2022-09-09 Stefan Kangas + + Don't warn about some deleted variables in rst.el + + * lisp/textmodes/rst.el (rst-level-face-max) + (rst-level-face-base-color, rst-level-face-base-light) + (rst-level-face-format-light, rst-level-face-step-light) + (rst-level-1-face, rst-level-2-face, rst-level-3-face) + (rst-level-4-face, rst-level-5-face, rst-level-6-face): Don't issue + obsoletion warnings for variables deleted in 24.3. + +2022-09-09 Stefan Kangas + + Delete variable window-system-version obsolete since 24.3 + + * lisp/frame.el (window-system-version): Delete variable. + * src/dispnew.c (syms_of_display) : + Delete DEFVAR, obsolete since 24.3. + (init_display_interactive, syms_of_display_for_pdumper): + * src/msdos.c (internal_terminal_init): + * src/nsterm.m (ns_term_init): + * src/pgtkfns.c (pgtk_display_info_for_name): + * src/w32fns.c (w32_display_info_for_name, Fx_open_connection): + * src/xfns.c (x_display_info_for_name, Fx_open_connection): Don't + set above deleted variable. + * admin/admin.el (set-version): Don't update above deleted + variable in msdos.c. + * lisp/textmodes/artist.el (artist-submit-bug-report): Don't use + above deleted variable. + +2022-09-09 Stefan Kangas + + Delete many items obsolete since 24.3 + + * lisp/allout.el (allout-exposure-change-hook) + (allout-structure-added-hook, allout-structure-deleted-hook) + (allout-structure-shifted-hook): + * lisp/arc-mode.el (archive-extract-hooks): + * lisp/buff-menu.el (Buffer-menu-buffer+size-width): + * lisp/calendar/timeclock.el (timeclock-modeline-display) + (timeclock-modeline-display, timeclock-update-modeline): + * lisp/cedet/semantic/db-el.el + (semanticdb-elisp-sym-function-arglist): + * lisp/cedet/semantic/db-file.el (semanticdb-save-database-hooks): + * lisp/cedet/semantic/edit.el (semantic-change-hooks) + (semantic-edits-new-change-hooks) + (semantic-edits-delete-change-hooks) + (semantic-edits-reparse-change-hooks): + * lisp/cedet/semantic/lex.el (semantic-lex-reset-hooks): + * lisp/comint.el (comint--unquote&expand-filename) + (comint-unquote-filename): + * lisp/custom.el (user-variable-p): + * lisp/dired.el (dired-shrink-to-fit, dired-pop-to-buffer) + (dired-sort-set-modeline): + * lisp/ebuff-menu.el (Electric-buffer-menu-mode): + * lisp/emacs-lisp/byte-run.el (macro-declaration-function): + * lisp/emacs-lisp/checkdoc.el (custom-print-functions) + (checkdoc-comment-style-hooks): + * lisp/emacs-lisp/cl-lib.el (custom-print-functions): + * lisp/emacs-lisp/edebug.el (gud-inhibit-global-bindings): + * lisp/erc/erc-dcc.el (erc-dcc-chat-filter-hook): + * lisp/eshell/esh-mode.el (eshell-status-in-modeline): + * lisp/eshell/eshell.el (eshell-add-to-window-buffer-names) + (eshell-remove-from-window-buffer-names): + * lisp/faces.el (set-face-underline-p, font-list-limit): + * lisp/files.el (automount-dir-prefix, toggle-read-only): + * lisp/filesets.el (filesets-cache-fill-content-hooks): + * lisp/frame.el (automatic-hscrolling): + * lisp/generic-x.el (javascript-generic-mode) + (javascript-generic-mode-hook): + * lisp/gnus/gnus-start.el (gnus-subscribe-newsgroup-hooks): + * lisp/gnus/nndiary.el (nndiary-request-create-group-hooks) + (nndiary-request-update-info-hooks) + (nndiary-request-accept-article-hooks): + * lisp/htmlfontify.el (hfy-post-html-hooks): + * lisp/international/mule-cmds.el + (inactivate-current-input-method-function) + (inactivate-input-method, input-method-inactivate-hook) + (ucs-insert): + * lisp/international/quail.el (quail-inactivate) + (quail-inactivate-hook): + * lisp/international/robin.el (robin-inactivate) + (robin-inactivate-hook): + * lisp/leim/quail/hangul.el (hangul-input-method-inactivate): + * lisp/leim/quail/uni-input.el (ucs-input-inactivate): + * lisp/mail/emacsbug.el (report-emacs-bug-info): + * lisp/mh-e/mh-e.el (mh-kill-folder-suppress-prompt-hooks): + * lisp/mpc.el (mpc-string-prefix-p): + * lisp/net/rcirc.el (rcirc-print-hooks, rcirc-sentinel-hooks) + (rcirc-receive-message-hooks, rcirc-activity-hooks): + * lisp/obsolete/crisp.el (crisp-mode-modeline-string): + * lisp/pcomplete.el (pcomplete-arg-quote-list) + (pcomplete-quote-argument): + * lisp/progmodes/cc-mode.el (c-prepare-bug-report-hooks): + * lisp/progmodes/python.el (python-info-ppss-context) + (python-info-ppss-context-type) + (python-info-ppss-comment-or-string-p, python-indent) + (python-guess-indent, python-buffer, python-preoutput-result) + (python-proc, python-send-receive, python-send-string) + (python-use-skeletons): + * lisp/progmodes/sh-script.el (sh-maybe-here-document): + * lisp/replace.el (query-replace-interactive): + * lisp/strokes.el (strokes-modeline-string): + * lisp/subr.el (redraw-modeline): + * lisp/term.el (term-default-fg-color, term-default-bg-color): + * lisp/textmodes/tex-mode.el (latex-string-prefix-p) + (tex-string-prefix-p): + * lisp/url/url-parse.el (url-recreate-url-attributes): + * lisp/vc/add-log.el (change-log-acknowledgement): + * lisp/vc/ediff-wind.el + (ediff-choose-window-setup-function-automatically): + * lisp/vc/pcvs-util.el (cvs-string-prefix-p): + * lisp/vc/vc.el (vc-string-prefix-p): + * lisp/window.el (display-buffer-function): + * lisp/winner.el (winner-mode-leave-hook): Remove many functions and + variables obsolete since 24.3. + + * lisp/buff-menu.el (list-buffers--refresh): + * lisp/dired.el (dired-mode-map): + * lisp/files.el (abbreviate-file-name): + * lisp/generic-x.el (generic-default-modes): + * lisp/mh-e/mh-funcs.el (mh-kill-folder): + * lisp/progmodes/hideif.el (hide-ifdef-mode-submap): + * lisp/replace.el (query-replace-read-from): + * lisp/term.el (term): + * lisp/window.el (display-buffer): Don't use above deleted + functions and variables. + + * src/marker.c (Fbuffer_has_markers_at): Delete DEFUN obsolete + since 24.3. + (syms_of_marker) : Delete defsubr. + * lisp/subr.el (buffer-has-markers-at): Remove obsoletion + of above deleted DEFUN. + * etc/TODO: Doc fix; don't mention above deleted function. + + * admin/cus-test.el (cus-test-get-options): + * lisp/pcomplete.el: Doc fixes; don't mention removed items. + +2022-09-09 Stefan Kangas + + Display error in emacsclient if setsockopt failed + + * lib-src/emacsclient.c (set_tcp_socket, set_socket_timeout): Display + an error message if setsockopt failed. + +2022-09-09 Po Lu + + Remove some redundant calls to x_ignore_errors_for_next_request + + * src/xterm.c (x_dnd_do_unsupported_drop, x_set_frame_alpha): + Wrap some requests in x_ignore_errors_for_next_request instead + of calling it each time. + +2022-09-09 Codruț Constantin Gușoi + + Fix emacs native compilation warning + + ``` + ■ Warning (comp): use-package-core.el:907:2: Warning: docstring has + wrong usage of unescaped single quotes (use \= or different quoting) + ■ Warning (comp): use-package-core.el:930:2: Warning: docstring has + wrong usage of unescaped single quotes (use \= or different quoting) + ``` + + To reproduce, have emacs build with native compilation and notice the + compilation logs. You can then open this file and run `M-x + emacs-lisp-native-compile-and-load` before and after the changes to see the + warning is removed. + +2022-09-08 Po Lu + + Remove long-broken TESTRM interface + + * src/xrdb.c: [TESTRM]: + (fatal, main): Delete functions and code block. They don't work + and rely on XLIB_ILLEGAL_ACCESS. + +2022-09-08 Stefan Kangas + + Prefer defvar-keymap in proced.el + + * lisp/proced.el (proced-mode-map): Prefer defvar-keymap. + +2022-09-08 Stefan Kangas + + Set indent-tabs-mode for lisp-data-mode in .dir-locals.el + + * .dir-locals.el (lisp-data-mode): Enforce existing indent-tabs-mode + policy. + +2022-09-08 Stefan Kangas + + Display librsvg error when loading bad SVG + + * src/image.c (svg_load_image): Display the error message from librsvg + when parsing a bad SVG image file. + * test/manual/image-tests.el + (image-tests-load-image/svg-invalid): New test. + +2022-09-08 João Távora + + Don't return poorly supported "special elements" in eglot-imenu + + Fix https://github.com/joaotavora/eglot/issues/758, https://github.com/joaotavora/eglot/issues/536, https://github.com/joaotavora/eglot/issues/535. + + Eglot's eglot-imenu returned a structure compliant with the rules + outlined in imenu--index-alist. In particular, it returned some + elements of the form + + (INDEX-NAME POSITION GOTO-FN ARGUMENTS...) + + The original intention (mine) must have been to allow fancy + highlighting of the position navigated to with a custom GOTO-FN. + + Not only was access to that fanciness never implemented, but many + other imenu frontends do not support such elements. + + See for example https://github.com/joaotavora/eglot/issues/758, https://github.com/joaotavora/eglot/issues/536, https://github.com/joaotavora/eglot/issues/535. And also related issues in other + packages: + + https://github.com/IvanMalison/flimenu/issues/6 + https://github.com/bmag/imenu-list/issues/58 + + So it's best to remove this problematic feature for now. It can be + added back later. + + * eglot.el (eglot-imenu): Simplify. + + * NEWS.md: Mention change + +2022-09-08 Richard Stallman + + Decode base64 attachments revealed by decryption. + + * lisp/mail/rmail.el (rmail-epa-decode): New function. + (rmail-epa-decrypt): Call rmail-epa-decode. + +2022-09-08 Stefan Kangas + + Merge from origin/emacs-28 + + 395760dcd3 Update ChangeLog and AUTHORS for Emacs 28.2 + ddabb03a01 * doc/misc/idlwave.texi (Troubleshooting): Don't say "Emac... + 724444f3d5 ; * doc/emacs/misc.texi (emacsclient Options): Fix typo. + b96257162d Don't mention very old Emacs versions in docs + + # Conflicts: + # doc/emacs/misc.texi + # etc/NEWS + +2022-09-08 Stefan Monnier + + * src/keyboard.c (safe_run_hook_funcall): Fix thinko + +2022-09-08 Stefan Monnier + + * src/keyboard.c (safe_run_hook_funcall): Fix recent regression + + The mutation of `args` was unsafe because that array was + later reused (and assumed unchanged) by the caller. + https://lists.gnu.org/archive/html/emacs-devel/2022-09/msg00329.html + +2022-09-08 Stefan Monnier + + test: Remove redundant "" arg to `mapconcat` + + * test/src/process-tests.el (process-test-stderr-filter): + * test/src/print-tests.el (print-tests-continuous-numbering): + * test/src/fns-tests.el (fns-tests-mapconcat): + * test/src/data-tests.el (test-bool-vector-to-hex-string): + * test/src/casefiddle-tests.el (casefiddle-tests-char-properties) + (casefiddle-tests-case-table, casefiddle-tests-casing-character): + * test/lisp/tabify-tests.el (tabify-tests--test-changes): + * test/lisp/subr-tests.el (subr-tests-bug22027): + * test/lisp/sort-tests.el (sort-tests-random-word): + * test/lisp/net/hmac-md5-tests.el (hmac-md5-test-encode-string): + * test/lisp/md4-tests.el (md4-tests-digest->hex): + * test/lisp/emacs-lisp/cl-extra-tests.el (cl-extra-test-map): + * test/lisp/dired-tests.el (dired-test-directory-files): + * test/lisp/char-fold-tests.el (char-fold--random-word): + * test/lisp/ansi-color-tests.el (ansi-color-incomplete-sequences-test): + Remove redundant "" arg to `mapconcat`. + +2022-09-08 Yuan Fu + + Add node-only parameter to treesit-query-capture + + * doc/lispref/parsing.texi (Pattern Matching): Mention the new + parameter. + * lisp/treesit.el (treesit-query-in): Add node-only. + * src/treesit.c (Ftreesit_query_capture): Add node-only. + +2022-09-08 Yuan Fu + + * lisp/treesit.el (treesit-can-enable-p): Minor fix. + +2022-09-08 Phil Sainty + + Add new user option ecomplete-auto-select + + * lisp/ecomplete.el (ecomplete-auto-select): New user option + (bug#53935). + (ecomplete-display-matches): Use it. + +2022-09-08 Augusto Stoffel + + Add prefix argument to outline-cycle-buffer + + * lisp/outline.el (outline-cycle-buffer): Add prefix argument to show + headings up to a given level. Handle the case where the top + heading level is not 1. + +2022-09-08 Lars Ingebrigtsen + + Fix diff-add-log-use-relative-names prompting + + * lisp/vc/diff-mode.el (diff-add-log-use-relative-names): Autoload + to avoid prompting when set via dir-locals. + +2022-09-08 Stefan Kangas + + * src/xrdb.c (main) [TESTRM]: Replace gets with fgets. + +2022-09-08 Manuel Uberti + + Fix jdtls support + + PR https://github.com/joaotavora/eglot/issues/1026 + + * eglot.el (eglot-server-programs): Add -data setup for java-mode. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/1008 + +2022-09-08 Artem Pyanykh (tiny change) + + Add marksman server for markdown + + * eglot.el (eglot-server-programs): Update. + * README (Connecting to a server): Add marksman. + * NEWS.md: Mention change. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/1013 + +2022-09-08 Sam James (tiny change) + + Recognize zstandard (.zst) compressed Info files + + * lisp/info.el (Info-suffix-list): Recognize .zst file extension + from the zstd compression tool. This allows reading Info pages + compressed with 'zstd'. (Bug#57636) + +2022-09-08 Michael Albinus + + Make call of remote `id' more performant in Tramp + + * lisp/net/tramp-adb.el (tramp-adb-handle-file-exists-p): New defun. + (tramp-adb-file-name-handler-alist): Use it. + (tramp-adb-handle-file-executable-p) + (tramp-adb-handle-file-readable-p) + (tramp-adb-handle-file-writable-p) + (tramp-adb-handle-get-remote-uid) + (tramp-adb-handle-get-remote-gid) + (tramp-adb-handle-get-remote-groups): Use caches consequently. + + * lisp/net/tramp-sh.el (tramp-perl-id, tramp-python-id): New defconsts. + (tramp-sh-handle-get-remote-uid, tramp-sh-handle-get-remote-gid) + (tramp-sh-handle-get-remote-groups): Use caches consequently. + (tramp-sh-handle-file-writable-p): Use `file-writable-p'. + (tramp-expand-script): Handle also "python" expansion. + (tramp-get-remote-id): Do not set connection property anymore, + this is done differently now. + (tramp-get-remote-uid-with-id, tramp-get-remote-uid-with-perl) + (tramp-get-remote-uid-with-python, tramp-get-remote-gid-with-id) + (tramp-get-remote-gid-with-perl) + (tramp-get-remote-gid-with-python): Remove. + + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-file-executable-p) + (tramp-sudoedit-handle-file-exists-p) + (tramp-sudoedit-handle-file-readable-p) + (tramp-sudoedit-handle-file-writable-p): + (tramp-sudoedit-handle-get-remote-uid) + (tramp-sudoedit-handle-get-remote-gid) + (tramp-sudoedit-handle-get-remote-groups): Use caches consequently. + + * lisp/net/tramp.el (tramp-check-cached-permissions): + Call `tramp-get-remote-groups' only if needed. + (tramp-get-remote-groups): Do not return default value. + (tramp-read-id-output): New defun. + + * test/lisp/net/tramp-tests.el (tramp--test-deftest-with-perl): + Suppress also remote `id'. + +2022-09-08 Philip Kaludercic + + Add new user option 'diff-add-log-use-relative-names' + + * .dir-locals.el: Set new option to t + * etc/NEWS: Mention new option. + * lisp/vc/diff-mode.el (diff-add-log-use-relative-names): Add new option. + (diff-add-log-current-defuns): Use new option. + * doc/emacs/maintaining.texi (Log Buffer): Mention new option. + +2022-09-08 Po Lu + + Avoid selecting for excessive output configuration events + + * src/xterm.c (x_term_init): Only select for + RROutputPropertyNotify if GTK is in use. Emacs doesn't need it + itself, and output property changes will otherwise lead to 2 + second freezes over connections with high network latency. + +2022-09-07 Stefan Kangas + + Bump Emacs version to 28.2 + + * README: + * configure.ac: + * msdos/sed2v2.inp: + * nt/README.W32: Bump Emacs version to 28.2. + +2022-09-07 Stefan Kangas + + dired-guess: Support zstandard archives + + * lisp/dired-aux.el (dired-guess-shell-alist-default): Support + zstandard archives. + +2022-09-07 Stefan Kangas + + Move some tests to test/manual/image-tests.el + + * test/src/image-tests.el: Move several tests from here... + * test/manual/image-tests.el: ...to here. + Suggested by Eli Zaretskii . + +2022-09-07 Morgan Smith + + image-dired: Fix moving forward when marking files + + * lisp/image/image-dired.el (image-dired--do-mark-command): Make + movement consistent regardless of the value of + image-dired-marking-shows-next. (Bug#57651) + +2022-09-07 Morgan Smith + + Make image-dired-rotate-original-{left,right} respect marks + + * lisp/image/image-dired.el (image-dired-rotate-original-left) + (image-dired-rotate-original-right): Rotate all marked + files. (Bug#57651) + +2022-09-07 Yuan Fu + + Fix tree-sitter manual entry for treesit-should-enable-p + + * doc/lispref/parsing.texi: Move two entries in the front to "Using + Parser" section, replacing the old entry. + +2022-09-07 Stefan Kangas + + Prefer defvar-keymap in icomplete.el + + * lisp/icomplete.el (icomplete-minibuffer-map) + (icomplete-fido-mode-map) + (icomplete-vertical-mode-minibuffer-map): Prefer defvar-keymap. + +2022-09-07 Yuan Fu + + Remove treesit-disabled-modes and change treesit-should-enable-p + + Per emacs-devel discussion, remove treesit-disabled-modes and let + major modes to provide tree-sitter switches. I also decided to add + treesit-max-buffer-size to elisp manual despite it being a user + option. Though we should still add it to the user manual. + + * doc/lispref/parsing.texi (Parsing Program Source): Update manual to + remove entries for treesit-diabled-modes and add + treesit-max-buffer-size. Also update treesit-should-enable-p. + * lisp/treesit.el (treesit-disabled-modes): Remove user option. + (treesit-maximum-size): Change to treesit-max-buffer-size. + (treesit-should-enable-p): Change to treesit-can-enable-p and remove + checks of treesit-disabled-modes. + +2022-09-07 Yuan Fu + + Add manual entry for tree-sitter search functions + + * doc/lispref/parsing.texi (Retrieving Node): New subsection + "Searching for node". + * doc/lispref/positions.texi (List Motion): Add entries for + treesit-defun-query, treesit-beginning-of-defun, treesit-end-of-defun. + * lisp/treesit.el (treesit-search-forward, treesit-search-beginning) + (treesit-search-end): Minor docstring fix-up. + +2022-09-07 Yuan Fu + + Add tree-sitter font-lock settings helper function/macro + + 1. Add treesit-font-lock-rules that helps with settings + treesit-font-lock-settings. + 2. Remove treesit-font-lock-defaults and with it, decoration levels. + + Now major modes should set treesit-font-lock-settings with the output + of treesit-font-lock-rules rather than setting + treesit-font-lock-defaults. + + * lisp/treesit.el (treesit-font-lock-settings): Update docstring. + (treesit-font-lock-rules): New function. + (treesit-font-lock-defaults): Remove variable. + (treesit-font-lock-enable): Remove code that interacts + treesit-font-lock-defaults. + * doc/lispref/modes.texi: Update manual for + treesit-font-lock-settings, treesit-font-lock-rules, + treesit-font-lock-defaults. + +2022-09-07 Mattias Engdegård + + Improve save-match-data hygiene + + * lisp/subr.el (save-match-data): Use uninterned variable symbol. + Remove outdated comments. + +2022-09-07 Eli Zaretskii + + Add instructions to 'standard-display-by-replacement-char' + + * lisp/disp-table.el (standard-display-by-replacement-char): Add a + preamble to the generated code with instructions. Suggested by + Richard Stallman . + +2022-09-07 Eli Zaretskii + + Don't follow symlinks in w32notify file watches + + * src/w32notify.c (add_watch): On filesystems that support + symlinks, don't follow symlinks. (Bug#57536) + * src/w32.c (symlinks_supported): New function. + * src/w32.h (symlinks_supported): Add prototype. + +2022-09-07 Mattias Engdegård + + Simplify dolist and dotimes + + We no longer care enough about non-lexbind code generation for it + to merit special attention; better to keep the code simple. + + Suggested by Philip Kaludercic in + https://lists.gnu.org/archive/html/emacs-devel/2022-09/msg00354.html . + + * lisp/subr.el (dolist, dotimes): Use uninterned symbols for variable + bindings generated by the macros, and discard the alternative code + versions for non-lexbind code. Use sensible variable names. + +2022-09-07 Philip Kaludercic + + Untabify rcirc.el + +2022-09-06 Po Lu + + Fix nsfont breakage since 6b1ed2f2c99a1c2da56c5f434570c438cad6576d + + * nsfont.m (ns_spec_to_descriptor): Fix coding style, also + handle `monospace' special family. + (ns_descriptor_to_entity): Fix reporting of spacing on fonts. + (ns_findfonts): Fix coding style. + +2022-09-06 Po Lu + + Reenable reporting of frame movement on NS + + * src/nsterm.m ([EmacsView windowDidMove:]): Restore code to + generate MOVE_FRAME_EVENTS, and use kbd_buffer_store_event + instead. + +2022-09-06 Stefan Kangas + + Improve image-tests.el Commentary + + * test/src/image-tests.el: Doc fix; explain how to run from + command line. + +2022-09-06 Stefan Kangas + + Update ChangeLog and AUTHORS for Emacs 28.2 + + * ChangeLog.3: + * etc/AUTHORS: + * etc/NEWS: Update for Emacs 28.2. + +2022-09-06 Stefan Monnier + + * lisp/jit-lock.el (jit-lock-function): Update comment + +2022-09-06 Stefan Kangas + + * doc/misc/idlwave.texi (Troubleshooting): Don't say "Emacsen". + +2022-09-06 Stefan Monnier + + * lisp/jit-lock.el (jit-lock-function): Don't fontify invisible text + + See bug#57447. This can speed up fontification significantly when using + things like outline-mode. + +2022-09-06 Stefan Monnier + + * etc/NEWS.28: Mention `make-closure` + +2022-09-06 Stefan Kangas + + * doc/misc/mh-e.texi (Getting MH-E): Update. + +2022-09-06 Stefan Kangas + + Don't mention ancient Gnus versions in MH-E manual + + * doc/misc/mh-e.texi (Preface, Reading PGP, Procmail): Don't mention + pre-2000 versions of Gnus. + +2022-09-06 Eli Zaretskii + + Fix the MS-Windows build + + * lib-src/emacsclient.c (DEFAULT_TIMEOUT): Move out of the + !WINDOWSNT condition, to fix the MS-Windows compilation. + (set_socket_timeout) [WINDOWSNT]: Protect against too-large values + of timeout. + +2022-09-06 Stefan Kangas + + Don't mention very old Emacs versions in docs + + * doc/misc/mh-e.texi (Conventions): + * doc/misc/reftex.texi (Problems and Work-Arounds): + * doc/misc/viper.texi (Loading Viper): Delete references to + very old versions of Emacs. + +2022-09-06 Stefan Kangas + + * doc/misc/semantic.texi: Delete unused macro. + +2022-09-06 Po Lu + + Correctly handle frame synchronization on fullscreen KWin + + * src/xfns.c (x_set_use_frame_synchronization): Announce that we + do not want the compositor to unredirect the frame while + fullscreen. + * src/xterm.c (x_atom_refs): New atom + `_NET_WM_BYPASS_COMPOSITOR'. + * src/xterm.h (struct x_display_info): Likewise. + +2022-09-06 Kai Tetzlaff + + Fix (mostly multibyte) issues in sieve-manage.el (Bug#54154) + + The managesieve protocol (s. RFC5804) requires support for (a slightly + restricted variant of) UTF-8 in script content and script names. This + commit fixes/improves the handling of multibyte characters. + + In addition, `sieve-manage-getscript' now properly handles NO + responses from the server instead of inflooping. + + There are also some logging improvements. + + * lisp/net/sieve-manage.el + (sieve-manage--append-to-log): + (sieve-manage--message): + (sieve-manage--error): + (sieve-manage-encode): + (sieve-manage-decode): + (sieve-manage-no-p): New functions. + (sieve-manage-make-process-buffer): Switch process buffer to unibyte. + (sieve-manage-open-server): Add `:coding 'raw-text-unix` to + `open-network-stream' call. Use unix EOLs in order to keep matching + CRLF (aka "\r\n") intact. + (sieve-manage-send): Make sure that UTF-8 multibyte characters are + properly encoded before sending data to the server. + (sieve-manage-getscript): + (sieve-manage-putscript): Use the changes above to fix down/uploading + scripts containing UTF-8 multibyte characters. + (sieve-manage-listscripts): + (sieve-manage-havespace) + (sieve-manage-getscript) + (sieve-manage-putscript): + (sieve-manage-deletescript): + (sieve-manage-setactive): Use the changes above to fix handling of + script names which contain UTF-8 multibyte characters. + (sieve-manage-parse-string): + (sieve-manage-getscript): Add handling of server responses with type + NO. Abort `sieve-manage-getscript' and show error message in message + area. + (sieve-manage-erase): + (sieve-manage-drop-next-answer): + (sieve-manage-parse-crlf): Return erased/dropped data (instead of nil). + (sieve-sasl-auth): + (sieve-manage-getscript): + (sieve-manage-erase): + (sieve-manage-open-server): + (sieve-manage-open): + (sieve-manage-send): Improve logging. + +2022-09-06 Kai Tetzlaff + + Improve robustness of `sieve-manage-quit' in case of errors + + * lisp/net/sieve.el (sieve-manage-quit): Avoid killing buffers it's + not supposed to touch (bug#54154). + +2022-09-06 Stefan Kangas + + Add tests for opening different image formats + + * test/src/image-tests.el + (image-tests-make-load-image-test): New macro. + (image-tests-load-image/gif) + (image-tests-load-image/jpeg) + (image-tests-load-image/pbm) + (image-tests-load-image/png) + (image-tests-load-image/svg) + (image-tests-load-image/tiff) + (image-tests-load-image/webp) + (image-tests-load-image/xbm) + (image-tests-load-image/xpm): New tests. + +2022-09-06 Stefan Kangas + + Fix interactive image.c tests + + * test/src/image-tests.el (image-tests-image-metadata/gif) + (image-tests-image-metadata/webp): Fix tests. + +2022-09-06 Drew Adams + + Add some new find-lisp commands + + * lisp/find-lisp.el (find-lisp-find-dired-other-window): New command. + (find-lisp-find-dired): Improve the doc string. + (find-lisp-find-dired-subdirectories): Clarify doc string. + (find-lisp-find-dired-subdirs-other-window): New command. + (find-lisp-find-dired-internal): Adjust to allow being called by + the new command. + (find-lisp-format): Make symlink output more regular. + +2022-09-06 Laurence Warne + + Apply syntax highlighting for all python f-strings + + * lisp/progmodes/python.el (python--f-string-p) + (python--font-lock-f-strings): Edit functions to use a regular + expression matching all f-strings (bug#56757). + +2022-09-06 Michael Albinus + + Use secondary groups when checking permissions in Tramp (Bug#57044) + + * lisp/net/tramp.el (tramp-check-cached-permissions): Check also for + secondary groups. (Bug#57044) + (tramp-get-remote-groups): + * lisp/net/tramp-adb.el (tramp-adb-handle-get-remote-groups): + * lisp/net/tramp-sh.el (tramp-sh-handle-get-remote-groups): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-get-remote-groups): + New defuns. + + * lisp/net/tramp.el (tramp-file-name-for-operation): + * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist): + * lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist): + * lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist): + * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist): + * lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist): + * lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist): + * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist): + * lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist): + Add `tramp-get-remote-groups'. + + * lisp/net/tramp.el: + * lisp/net/tramp-adb.el: + * lisp/net/tramp-cache.el: + * lisp/net/tramp-crypt.el: + * lisp/net/tramp-fuse.el: + * lisp/net/tramp-gvfs.el: + * lisp/net/tramp-integration.el: + * lisp/net/tramp-rclone.el: + * lisp/net/tramp-sh.el: + * lisp/net/tramp-smb.el: + * lisp/net/tramp-sudoedit.el: Use `blank' in `rx' forms. + + * test/lisp/net/tramp-archive-tests.el: + * test/lisp/net/tramp-tests.el: Use `blank' in `rx' forms. + +2022-09-06 Lars Ingebrigtsen + + Make ffap-file-finder work again + + * lisp/ffap.el (find-file-at-point): Allow people to set + ffap-file-finder again (bug#50279). + + * lisp/ido.el (ido-everywhere): Add an interstitial to fulfill + ffap-file-handler semantics. + +2022-09-06 Stefan Kangas + + Merge from origin/emacs-28 + + ecbdb3b0ad * lisp/server.el: Improve Commentary. + ee5c591249 Explain how the font appearance can be fine-tuned in fbterm. + +2022-09-06 Stefan Monnier + + cl-symbol-macrolet: Fix recent regression + + The recent fix for bug#57397 introduced a regression, breaking + the `cl-lib-symbol-macrolet-hide` test. It turned out that the + origin of the problem was that `gv.el` uses `macroexpand-1` which + does not (can't) use `macroexpand` but `cl-symbol-macrolet` failed + to advise `macroexpand-1` the way it advised `macroexpand`. + + To fix this, we change `cl-symbol-macrolet` so it advises both, and we + do that with a new `macroexpand` advice which delegates the bulk of + the work to `macroexpand-1`. + + Along the way, I bumped into another bug in the interaction between + `cl-letf` and `cl-symbol-macrolet`, which I tried to fix in `cl-letf`. + + I hear the war on `cl-symbol-macrolet` was a failure. + Maybe ... just say no? + + * lisp/emacs-lisp/cl-macs.el (cl--sm-macroexpand-1): New function, + extracted from `cl--sm-macroexpand`. + (cl--sm-macroexpand): Rewrite completely. + (cl-symbol-macrolet): Advise both `macroexpand` and `macroexpand-1`. + (cl--letf): Don't use the "simple variable" code for symbol macros. + + * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-symbol-macrolet-hide): + Revert last change because the test was right. + + * test/lisp/emacs-lisp/cl-macs-tests.el + (cl-macs-test--symbol-macrolet): Add a test case. + +2022-09-05 Stefan Kangas + + Add new --timeout flag to emacsclient + + * lib-src/emacsclient.c (DEFAULT_TIMEOUT): New constant. + (timeout): New static variable. + (longopts, shortopts, decode_options, print_help_and_exit): Add new + flag --timeout. + (set_socket_timeout, check_socket_timeout): New helper functions. + (main): Display a status message or exit after Emacs has not responded + for a while, depending on above new --timeout flag. (Bug#50849) + + * doc/emacs/misc.texi (emacsclient Options): + * doc/man/emacsclient.1: Document the above new option. + * etc/NEWS: Announce it. + +2022-09-05 Lars Ingebrigtsen + + Disable failing cl-lib-symbol-macrolet-hide test for now + + * test/lisp/emacs-lisp/cl-lib-tests.el + (cl-lib-symbol-macrolet-hide): Disable until code is fixed. + +2022-09-05 Gregory Heytings + + Simplify describe-function. + + * lisp/help-fns.el (describe-function-1): Do not pass + 'describe-function-orig-buffer' as argument to... + (help-fns--key-bindings): but use it directly there instead. + This simplifies 1d1158397b. + +2022-09-05 Juri Linkov + + Fit the re-builder window to the buffer + + * lisp/emacs-lisp/re-builder.el (re-builder): Fit the height to + the buffer (bug#56772). + +2022-09-05 Hugo Heagren + + Add new functions for splitting the root window + + * lisp/window.el (split-window-right): Add optional argument to + control which window is split (previously, would only split selected + window). Update docstring. + * doc/lispref/windows.texi (Splitting Windows): Update docs for + `split-window-right'. + * lisp/window.el (split-window-below): Add optional argument to + control which window is split (previously, would only split selected + window). Update docstring. + * doc/lispref/windows.texi (Splitting Windows): Update docs for + `split-window-below'. + * lisp/window.el (ctl-x-map): Bind `split-root-window-right' to 9 in + ctl-x-map. This is consistent with binding other window-splitting + operations to numbers in this map. + * lisp/window.el (ctl-x-map): Bind `split-root-window-below' to 7 in + ctl-x-map. This is consistent with binding other window-splitting + operations to numbers in this map. + * lisp/window.el (split-root-window-right): New function to split + whole frame. + * doc/lispref/windows.texi (Splitting Windows): Add documentation for + `split-root-window-right'. + * lisp/window.el (split-root-window-below): New function to split + whole frame. + * doc/lispref/windows.texi (Splitting Windows): Add documentation for + `split-root-window-below' (bug#56791). + +2022-09-05 Sean Whitton + + Font lock long Git commit summary lines + + * lisp/vc/vc-git.el (vc-git-log-edit-summary-target-len) + (vc-git-log-edit-summary-max-len): New defcustoms. + (vc-git-log-edit-summary-target-warning) + (vc-git-log-edit-summary-max-warning): New faces. + (vc-git--log-edit-summary-check): New function. + (vc-git-log-edit-mode): Add vc-git--log-edit-summary-check to + log-edit-font-lock-keywords to font lock long Git commit summary + lines. + * etc/NEWS (VC): Document the change. + * .dir-locals.el: Set vc-git-log-edit-summary-target-len. + +2022-09-05 Stefan Kangas + + * lisp/server.el: Improve Commentary. + +2022-09-05 Gregory Heytings + + Explain how the font appearance can be fine-tuned in fbterm. + + * doc/misc/efaq.texi (Emacs in a Linux console): Briefly document + Xft font specifications with which the font appearance can be + fine-tuned. + +2022-09-05 Stefan Kangas + + Merge from origin/emacs-28 + + 5713c730f2 Update to Org 9.5.5 + aad38d6010 * lisp/emacs-lisp/comp.el (comp-run-async-workers): Fail m... + +2022-09-04 Po Lu + + Fix crash while converting empty vector to X data + + * src/xselect.c (lisp_data_to_selection_data): Assume an empty + vector represents INTEGER data, instead of blindly trying to + aref it's first element. + +2022-09-04 Jim Porter + + Let external Eshell processes send stdout and stderr to different places + + * lisp/eshell/esh-proc.el (eshell-put-process-properties): Pass INDEX. + (eshell-gather-process-output): Create a pipe process for stderr when + stderr goes somewhere different than stdout. + (eshell-insertion-filter, eshell-sentinel): Consult + ':eshell-handle-index' property. + + * test/lisp/eshell/esh-proc-tests.el + (esh-proc-test/output/stdout-to-buffer) + (esh-proc-test/output/stderr-to-buffer) + (esh-proc-test/exit-status/with-stderr-pipe): New tests (bug#21605). + +2022-09-04 Jim Porter + + Put Eshell's bookkeeping data for external processes on the process object + + This allows tracking this information for process objects not recorded + in 'eshell-process-list', which will be useful for pipe processes for + stderr output. + + * lisp/eshell/esh-proc.el (eshell-process-list): Add docstring. + (eshell-record-process-object): Only record the process object and + whether it's a subjob. + (eshell-remove-process-entry): Adapt to changes in + 'eshell-record-process-object'. + (eshell-record-process-properties): New function... + (eshell-gather-process-output): ... call it. + (eshell-insertion-filter, eshell-sentinel): Use new process + properties, don't require process to be in 'eshell-process-list'. + + * test/lisp/eshell/esh-proc-tests.el (esh-proc-test--output-cmd): New + variable. + (esh-proc-test--detect-pty-cmd): Add docstring. + (esh-proc-test/output/to-screen) + (esh-proc-test/output/stdout-and-stderr-to-buffer) + (esh-proc-test/exit-status/success, esh-proc-test/exit-status/failure) + (esh-proc-test/kill-process/foreground-only): New tests. + (esh-proc-test/kill-background-process): Rename to... + (esh-proc-test/kill-process/background-prompt): ... this, and use + 'eshell-wait-for-subprocess' instead of 'sit-for'. + +2022-09-04 Jim Porter + + Add support for more kinds of redirect operators in Eshell + + * lisp/eshell/esh-arg.el: Require cl-lib. + (eshell-finish-arg): Allow passing multiple ARGUMENTS. + (eshell-quote-argument): Handle the case when 'eshell-finish-arg' was + passed multiple arguments. + + * lisp/eshell/esh-cmd.el (eshell-do-pipelines) + (eshell-do-pipelines-synchronously): Only set stdout output handle. + + * lisp/eshell/esh-io.el (eshell-redirection-operators-alist): New + constant. + (eshell-io-initialize): Prefer sharp quotes for functions. + (eshell-parse-redirection, eshell-strip-redirections): Add support for + more redirection forms. + (eshell-copy-output-handle, eshell-set-all-output-handles): New + functions. + + * test/lisp/eshell/esh-io-tests.el + (esh-io-test/redirect-all/overwrite, esh-io-test/redirect-all/append) + (esh-io-test/redirect-all/insert, esh-io-test/redirect-copy) + (esh-io-test/redirect-copy-first, esh-io-test/redirect-pipe): New + tests. + + * doc/misc/eshell.texi (Redirection): Document new redirection syntax. + (Pipelines): Document '|&' syntax. + (Bugs and ideas): Update item about redirection syntax. + + * etc/NEWS: Announce this change. + +2022-09-04 Jim Porter + + Allow checking specific Eshell handles for interactive output + + This changes the default behavior of the function to check only stdout + for interactivity, but for most cases this should be what we want. + + * lisp/eshell/esh-io.el (eshell-interactive-output-p): Pass HANDLES + and handle INDEX. + + * lisp/eshell/em-term.el (eshell-visual-command-p): Check for + interactivity of both stdout and stderr. + +2022-09-04 Jim Porter + + Simplify Eshell handle functions and add tests/documentation + + * lisp/eshell/esh-arg.el (eshell-parse-argument-hook): Explain how to + use 'eshell-finish-arg'. + + * lisp/eshell/esh-io.el (eshell-create-handles): Only call + 'eshell-get-target' for stderr if necessary. + (eshell-protect-handles): Use 'dotimes'. + (eshell-set-output-handle): Pass HANDLES and fix an edge case with + setting a duplicate TARGET. + + * test/lisp/eshell/eshell-tests-helpers.el (eshell-with-temp-buffer): + New macro. + + * test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/quoted-lisp-form) + (esh-cmd-test/backquoted-lisp-form) + (esh-cmd-test/backquoted-lisp-form/splice): New tests. + + * test/lisp/eshell/eshell-tests.el (eshell-test/redirect-buffer) + (eshell-test/redirect-buffer-escaped): Move to... + * test/lisp/eshell/esh-io-tests.el: ... here, and add other I/O tests. + + * doc/misc/eshell.texi (Arguments): Add documentation for special + argument types. + (Input/Output): Expand documentation for redirection and pipelines. + +2022-09-04 Matt Armstrong + + Add basic test coverage for overlay modification hooks + + * test/src/buffer-tests.el: (overlay-modification-hooks) new + ert-deftest. + (overlay-tests-start-recording-modification-hooks): New function. + (overlay-tests-get-recorded-modification-hooks): New function + (bug#57150). + +2022-09-04 Lars Ingebrigtsen + + Clarify that the region is in the Emacs manual + + * doc/emacs/mark.texi (Mark): Try to clarify what's so special + about Emacs' regions (bug#50950). + +2022-09-04 Lars Ingebrigtsen + + Mark some filenotify tests unstable on EMBA + + * test/lisp/filenotify-tests.el (file-notify-test03-events) + (file-notify-test09-watched-file-in-watched-dir): Mark as unstable + on EMBA, because they seem to fail regularly. + +2022-09-04 Michael Albinus + + Fix comment in tramp.el + +2022-09-04 Juri Linkov + + Don't replace the first character with an arrow in outline-minor-mode + + * lisp/outline.el (outline--make-button-overlay): Add the first character + to the displayed outline button (bug#56820). + +2022-09-04 Juri Linkov + + Use use-region-beginning/end in replacement commands (bug#45607) + + * lisp/isearch.el (isearch-query-replace): Use use-region-beginning + and use-region-end. + + * lisp/textmodes/paragraphs.el (repunctuate-sentences): + * lisp/replace.el (query-replace, query-replace-regexp) + (map-query-replace-regexp, replace-string, replace-regexp): + Add 'interactive-args' to 'declare' and use use-region-beginning, + use-region-end, use-region-noncontiguous-p. + + * lisp/simple.el (use-region-noncontiguous-p): New function. + (region-noncontiguous-p): Return more meaningful value. + +2022-09-04 Lars Ingebrigtsen + + Add a basic widget type for buffer predicates + + * lisp/paren.el (show-paren-predicate): + * lisp/outline.el (outline-minor-mode-use-buttons): Use it. + * lisp/wid-edit.el (buffer-predicate): New widget type. + +2022-09-04 Po Lu + + Fix earlier change to xterm.c + + * src/xterm.c (x_detect_focus_change): Finally figure out what + the call to x_new_focus_frame does with the core focus, and do + the equivalent with the XInput 2 focus. + +2022-09-04 Michael Albinus + + Fix rx forms in Tramp + + * lisp/net/tramp.el (tramp-restricted-shell-hosts-alist) + (tramp-local-host-regexp, tramp-echoed-echo-mark-regexp) + (tramp-login-prompt-regexp, tramp-terminal-prompt-regexp) + (tramp-antispoof-regexp) + (tramp-build-completion-file-name-regexp) + (tramp-debug-outline-regexp) + (tramp-use-absolute-autoload-file-names) + (tramp-lock-file-info-regexp, tramp-shell-quote-argument): + * lisp/net/tramp-adb.el (tramp-do-parse-file-attributes-with-ls) + * lisp/net/tramp-cache.el (tramp-flush-file-function): + * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name): + * lisp/net/tramp-integration.el (tramp-rfn-eshadow-update-overlay-regexp) + (info-lookup-maybe-add-help): + * lisp/net/tramp-sh.el (tramp-default-user-alist, tramp-sunos-unames) + (tramp-scp-direct-remote-copying, tramp-get-remote-locale): + * lisp/net/tramp-smb.el (tramp-smb-prompt, tramp-smb-wrong-passwd-regexp) + (tramp-smb-errors, tramp-smb-get-localname) + (tramp-smb-read-file-entry): Simplify rx forms. + + * lisp/net/tramp.el (tramp-handle-find-backup-file-name) + (tramp-handle-lock-file, tramp-handle-make-auto-save-file-name): + * lisp/net/tramp-adb.el (tramp-adb-handle-set-file-times) + (tramp-adb-maybe-open-connection): + * lisp/net/tramp-gvfs.el + (tramp-gvfs-file-attributes-with-gvfs-ls-regexp): + * lisp/net/tramp-sh.el (tramp-open-shell, tramp-find-shell): Do not use + `eval-when-compile'. + + * lisp/net/tramp-cmds.el (tramp-rename-files, tramp-rename-these-files): + Use rx. + + * lisp/net/tramp-gvfs.el (tramp-gvfs-password-tcrypt): New defonst. + (tramp-gvfs-handle-file-attributes): Use `number-to-string'. + + * test/lisp/net/tramp-archive-tests.el + (tramp-archive-test17-insert-directory): + * test/lisp/net/tramp-tests.el (tramp-test17-insert-directory) + (tramp--test-share-p): Simplify rx forms. + +2022-09-04 Damien Cassou + + Add new function `seq-positions' + + * doc/lispref/sequences.texi (Sequence Functions): Document it. + + * lisp/emacs-lisp/seq.el (seq-positions): New function. + + * lisp/emacs-lisp/shortdoc.el (sequence): Mention it. + + * test/lisp/emacs-lisp/seq-tests.el (test-seq-positions): Test it + (bug#57548). + +2022-09-04 Augusto Stoffel + + Add Python import management commands + + * lisp/progmodes/python.el (python-interpreter): New variable + (python-mode-map): Keybindings and menu entries for new commands + (python--list-imports, python-import-history, python--query-import) + (python--do-isort): New variables and helper functions. + (python-add-import, python-import-symbol-at-point) + (python-remove-import, python-sort-imports, python-fix-imports): New + interactive commands (bug#57574). + +2022-09-04 Augusto Stoffel + + Python shells dedicated to a project + + * lisp/progmodes/python.el: Require 'seq' and (optionally) 'compat' + and 'project' libraries. + (python-shell-dedicated): New user option + (python-shell-get-process-name): Adapt to project-dedicated shells. + (run-python): Offer possibility to create a project-dedicated shell, + or use 'python-shell-dedicated' as the default behavior. + (python-shell-get-buffer): Adapt to project-dedicated shells + (bug#56997). + +2022-09-04 Damien Cassou + + Add new function `seq-remove-at-position' + + * doc/lispref/sequences.texi (Sequence Functions): Document it. + + * lisp/emacs-lisp/seq.el (seq-remove-at-position): New function. + + * lisp/emacs-lisp/shortdoc.el (sequence): Mention it. + + * test/lisp/emacs-lisp/seq-tests.el (test-seq-remove-at-position): + Test it. + +2022-09-04 Damien Cassou + + Improve documentation of several functions in seq.el + + * doc/lispref/sequences.texi (Sequence Functions): + * lisp/emacs-lisp/seq.el (seq-contains): + (seq-contains-p): + (seq-set-equal-p): + (seq-position): + (seq-union): + (seq-intersection): + (seq-difference): Use more standard wording in the docstrings + (bug#57561). + +2022-09-04 Lars Ingebrigtsen + + Rename the Mice node in the Emacs manual + + * doc/emacs/commands.texi (User Input, Keys): Rename "Mice" to + Mouse Input. + +2022-09-04 Lars Ingebrigtsen + + Fix some help-fns test failures + + * lisp/help-fns.el (help-fns--key-bindings): Fix test failures + from recent change. + +2022-09-04 Eli Zaretskii + + New command to facilitate text-mode display of unsupported chars + + * lisp/disp-table.el (standard-display-by-replacement-char): New + command. + + * etc/NEWS: Announce it. + +2022-09-04 Eli Zaretskii + + Fix update of Dired display when it was called on a cons cell + + * lisp/dired.el (dired-internal-do-deletions): Make sure that FN's + directory entry is updated on display. (Bug#57565) + +2022-09-03 Stefan Monnier + + * lisp/term/linux.el (gpm-mouse-enable): Remove left-over declaration + +2022-09-03 Stefan Monnier + + gv.el and cl-macs.el: Fix bug#57397 + + * lisp/emacs-lisp/gv.el (gv-get): Obey symbol macros. + * lisp/emacs-lisp/cl-macs.el (cl--letf): Remove workaround placed to + try and handle symbol macros. + + * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-test--symbol-macrolet): + Add new testcase. + +2022-09-03 Kyle Meyer + + Update to Org 9.5.5 + +2022-09-03 Gregory Heytings + + Look up keybindings in correct buffer in describe-function. + + * lisp/help-fns.el (help-fns--key-bindings): New parameter. + Use it when looking up keybindings. + (describe-function-1): Add the buffer in which the command + was invoked as argument to 'help-fns--key-bindings'. + Fixes bug#57568. + +2022-09-03 Stefan Monnier + + * lisp/emacs-lisp/comp.el (comp-run-async-workers): Fail more gracefully + + Otherwise Emacs may fail to start if it can't find a writable + `~/.emacs.d/eln-cache` directory. + Fixes bug#57562. See also Debian's bug #1017739. + +2022-09-03 Jeff Walsh + + Update error message to reflect variable rename + + * src/comp.c (Fcomp_el_to_eln_filename): Update error message. (Bug#55861) + + [ According to the Git metadata, this commit 8436e0bee9cf7a was already + merged from `emacs-28`, yet the code says it was not. :-( ] + +2022-09-03 Eli Zaretskii + + Fix indexing of mouse-wheel events + + * doc/emacs/frames.texi (Mouse Commands): Add index entries for + wheel events. + +2022-09-03 Eli Zaretskii + + Revert "* doc/emacs/commands.texi (Mice): Improve indexing." + + This reverts commit 1cea0ae4133bb22fd70d483df105e5a4653bc56c. + + The index entries it added don't belong to the place where they were + added. + +2022-09-03 Mattias Engdegård + + lisp/emacs-lisp/seq.el: remove unnecessary compatibility code + + * lisp/emacs-lisp/seq.el (seq-take, seq--activate-font-lock-keywords): + Simplify unnecessarily guarded code, as this file will only ever be + used with the same version of Emacs. + +2022-09-03 Stefan Kangas + + * doc/emacs/commands.texi (Mice): Improve indexing. + +2022-09-03 Stefan Monnier + + Merge branch 'master' of git+ssh://git.sv.gnu.org/srv/git/emacs + +2022-09-03 Stefan Monnier + + * lisp/emacs-lisp/macroexp.el (macroexp--compiler-macro): Soften message + + Clarify that the error is "harmless". + +2022-09-03 Stefan Monnier + + * lisp/emacs-lisp/cl-macs.el: Use `define-symbol-prop` (bug#50869) + + (cl-define-compiler-macro, cl-defstruct, cl-deftype): Prefer + `define-symbol-prop` over `put` so `unload-feature` can undo + those definitions. + +2022-09-03 Stefan Monnier + + * lisp/loadhist.el (loadhist-unload-element): Remove auxiliary function info + + See bug#50869. + +2022-09-03 Stefan Monnier + + * lisp/help-fns.el (find-lisp-object-file-name): Revert last change + +2022-09-03 Po Lu + + Improve documentation of scroll wheel event types in new Mice node + + * doc/emacs/commands.texi (Mice): Improve documentation of + scroll wheel event types; fix doc for Emacs 29 and describe + horizontal wheel movement. + +2022-09-03 Po Lu + + Work around another X server bug in crossing event dispatch + + * src/xterm.c (xi_focus_handle_for_device): Clear implicit focus + along with FocusOut. (bug#57468) + (x_mouse_leave): Avoid invalid reads of + dpyinfo->x_focus_event_frame on input extension builds. + +2022-09-03 Lars Ingebrigtsen + + Add a Mice node in the Emacs manual + + * doc/emacs/commands.texi (User Input): Don't claim to not + document mouse buttons. + (Mice): New node (bug#50948). + +2022-09-03 Philip Kaludercic + + * subr.el (buffer-match-p): Use 'pcase' (bug#57502) + +2022-09-03 Lars Ingebrigtsen + + Mention M-x list-packages in the Help node in the Emacs manual + + * doc/emacs/help.texi (Help): Mention listing packages + (bug#50936). + +2022-09-03 Lars Ingebrigtsen + + Inhibit nativecomp of loaddefs files + + * lisp/emacs-lisp/generate-lisp-file.el + (generate-lisp-file-trailer): Allow inhibiting nativecomp. + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--rubric): + Inhibit native-comp, because it's not very useful for loaddefs files. + +2022-09-03 Po Lu + + Work around potential X server bug + + * src/xterm.c (handle_one_xevent): Ignore core crossing events + on input extension builds. The X server is not actually + supposed to deliver them to us, and it messes up MPX focus + tracking. (bug#57468) + +2022-09-03 Eli Zaretskii + + Teach 'max-char' about the Unicode code range + + * src/character.c (Fmax_char): Accept an optional argument + UNICODE, and, if non-nil, return the maximum codepoint defined by + Unicode. + + * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Update the + signature of 'max-char'. + + * etc/NEWS: + * doc/lispref/nonascii.texi (Character Codes): Update the + documentation of 'max-char'. + +2022-09-03 Stefan Kangas + + Increase image-dired-show-all-from-dir-max-files to 1000 + + * lisp/image/image-dired.el + (image-dired-show-all-from-dir-max-files): Increase to 1000. + +2022-09-03 Lars Ingebrigtsen + + Fix image-dired-util.el compile warning + + * lisp/image/image-dired-util.el (require): Require for cl-case. + +2022-09-03 Stefan Kangas + + Add new defgroup image-dired-dired + + * lisp/image/image-dired-dired.el + (image-dired-dired-append-when-browsing): Rename from + 'image-dired-append-when-browsing'. Update all uses. + (image-dired-dired): New defgroup. + (image-dired-dired-append-when-browsing) + (image-dired-dired-disp-props): Use above new defgroup. + +2022-09-03 Stefan Kangas + + image-dired: Minor cleanups + + * lisp/image/image-dired-dired.el + (image-dired-dired-after-readin-hook, image-dired-minor-mode): + Minor doc fixes. + (image-dired-dired-display-image): Don't accept ineffectual prefix + argument. + * lisp/image/image-dired-util.el + (image-dired-file-name-at-point): Use when-let. + (image-dired-display-thumb-properties): Redefine as obsolete function + alias for 'image-dired-update-header-line'. + + * lisp/image/image-dired-util.el + (image-dired-window-width-pixels): Make obsolete in favor of + window-body-width. + * lisp/image/image-dired.el (image-dired-line-up-dynamic) + (image-dired-display-window-width): Don't use above obsolete function. + +2022-09-03 Stefan Kangas + + image-dired: Prefer defvar-keymap + + * lisp/image/image-dired-dired.el (image-dired-minor-mode-map): + * lisp/image/image-dired.el + (image-dired-thumbnail-mode-line-up-map) + (image-dired-thumbnail-mode-tag-map) + (image-dired-thumbnail-mode-map) + (image-dired-display-image-mode-map): Prefer defvar-keymap. + +2022-09-03 Stefan Kangas + + Add new defgroup image-dired-external + + * lisp/image/image-dired-external.el (image-dired-external): New + defgroup. + (image-dired-cmd-create-thumbnail-program) + (image-dired-cmd-create-thumbnail-options) + (image-dired-cmd-pngnq-program, image-dired-cmd-pngnq-options) + (image-dired-cmd-pngcrush-program) + (image-dired-cmd-pngcrush-options) + (image-dired-cmd-optipng-program) + (image-dired-cmd-optipng-options) + (image-dired-cmd-create-standard-thumbnail-options) + (image-dired-cmd-rotate-original-program) + (image-dired-cmd-rotate-original-options) + (image-dired-temp-rotate-image-file) + (image-dired-rotate-original-ask-before-overwrite) + (image-dired-cmd-write-exif-data-program) + (image-dired-cmd-write-exif-data-options): Use above new defgroup. + +2022-09-03 Stefan Kangas + + image-dired: Make HTML gallery generation obsolete + + * lisp/image/image-dired.el (image-dired-gallery): Delete + defgroup again. + (image-dired-gallery-dir, image-dired-gallery-image-root-url) + (image-dired-gallery-thumb-image-root-url) + (image-dired-gallery-hidden-tags, image-dired-tag-file-list) + (image-dired-file-tag-list, image-dired--add-to-tag-file-lists) + (image-dired--add-to-file-comment-list) + (image-dired--create-gallery-lists, image-dired--hidden-p) + (image-dired-gallery-generate): Make obsolete. + +2022-09-03 Stefan Kangas + + image-dired: Do more interactive mode tagging + + * lisp/image/image-dired-dired.el + (image-dired-dired-toggle-marked-thumbs) + (image-dired-next-line-and-display) + (image-dired-previous-line-and-display) + (image-dired-toggle-append-browsing) + (image-dired-mark-and-display-next) + (image-dired-toggle-dired-display-properties) + (image-dired-dired-next-line, image-dired-dired-previous-line) + (image-dired-create-thumbs, image-dired-display-thumbs-append) + (image-dired-display-thumb, image-dired-dired-display-external) + (image-dired-dired-display-image) + (image-dired-copy-with-exif-file-name, image-dired-mark-tagged-files) + (image-dired-dired-display-properties): + * lisp/image/image-dired-external.el + (image-dired-thumbnail-set-image-description): + * lisp/image/image-dired-tags.el (image-dired-tag-files) + (image-dired-tag-thumbnail, image-dired-delete-tag) + (image-dired-tag-thumbnail-remove) + (image-dired-dired-comment-files) + (image-dired-dired-edit-comment-and-tags): + * lisp/image/image-dired.el (image-dired-display-thumbs) + (image-dired-track-original-file) + (image-dired-toggle-movement-tracking) + (image-dired-forward-image, image-dired-backward-image) + (image-dired-line-up, image-dired-line-up-dynamic) + (image-dired-line-up-interactive) + (image-dired-thumbnail-display-external) + (image-dired-display-thumbnail-original-image) + (image-dired-rotate-original-left) + (image-dired-rotate-original-right) + (image-dired-comment-thumbnail, image-dired-delete-marked) + (image-dired-rotate-thumbnail-left) + (image-dired-rotate-thumbnail-right): Do interactive mode tagging. + + * lisp/image/image-dired.el (image-dired-delete-marked): Signal error + if not in image-dired-thumbnail-mode. + +2022-09-03 Stefan Kangas + + Split image-dired.el into several files (part 2/2) + + Use a git trick to split a file while preserving line history (for + "git blame", "git log --follow", etc.): + + 1) Make exact copies of the original file, in the same commit as + moving it. + + 2) Next, trim down the extra copies to contain only the relevant + parts. [this commit] + + * lisp/image-dired.el: + * lisp/image/image-dired-dired.el: + * lisp/image/image-dired-external.el: + * lisp/image/image-dired-tags.el: + * lisp/image/image-dired-util.el: + * lisp/image/image-dired.el: Trim files down to keep only one copy of + each definition. + +2022-09-03 Stefan Kangas + + Split image-dired.el into several files (part 1/2) + + Use a git trick to split a file while preserving line history (for + "git blame", "git log --follow", etc.): + + 1) Make exact copies of the original file, in the same commit as + moving it. [this commit] + + 2) Next, trim down the extra copies to contain only the relevant + parts. + + * lisp/image-dired.el: Move from here... + * lisp/image/image-dired-dired.el: + * lisp/image/image-dired-external.el: + * lisp/image/image-dired-tags.el: + * lisp/image/image-dired-util.el: + * lisp/image/image-dired.el: ...to here. + + * test/lisp/image-dired-tests.el: Move from here... + * test/lisp/image/image-dired-tests.el: ...to here. + +2022-09-03 Stefan Kangas + + Make "rlogin" method obsolete in url*.el + + * lisp/url/url-about.el (url-probe-protocols): Remove "rlogin". + * lisp/url/url-gw.el (url-gateway-rlogin-host) + (url-gateway-rlogin-user-name, url-gateway-rlogin-parameters) + (url-open-rlogin): Make obsolete. (Bug#56891) + (url-open-stream): + * lisp/url/url-misc.el (url-do-terminal-emulator): Warn when using + "rlogin". + (url-rlogin): Make obsolete. + * lisp/url/url-vars.el (url-gateway-method): Remove "rlogin" + choice. + + * lisp/url/url-gw.el (url-gw-rlogin-obsolete-warned-once) + * lisp/url/url-misc.el (url-misc-rlogin-obsolete-warned-once): New + variables, immediately marked obsolete. + + * doc/misc/url.texi (telnet/tn3270): Rename section from + "rlogin/telnet/tn3270". + (Gateways in general, Customization): Don't mention "rlogin" + method. + +2022-09-03 Stefan Kangas + + Merge from origin/emacs-28 + + d89e65c638 Update acknowledgments + +2022-09-02 Stefan Kangas + + Update acknowledgments + + * doc/emacs/ack.texi (Acknowledgments): Update. + * doc/emacs/emacs.texi (Acknowledgments): Add several names from + Author: headers. + +2022-09-02 Stefan Kangas + + Make some versions in docs match package version + + * doc/emacs/misc.texi (Interactive Shell): Bump Emacs version. + * doc/misc/ediff.texi: + * doc/misc/flymake.texi: + * doc/misc/viper.texi: Fix version to match package. + * lisp/emulation/viper.el: Make version match variable. + +2022-09-02 Stefan Kangas + + Merge from origin/emacs-28 + + 917da2641e Minor doc fix; improve sorting of VC backends + 89695bce3e Clarify the doc string of 'set-face-attribute' + +2022-09-02 Gregory Heytings + + Display a warning for some uses of nil in face attributes. + + * src/xfaces.c (HANDLE_INVALID_NIL_VALUE): New macro, which displays + a warning for invalid uses of nil as a face attribute value. + (Finternal_set_lisp_face_attribute): Use the macro for the attributes + :foreground, :distant-foreground and :background. + +2022-09-02 Stefan Monnier + + * lisp/help-fns.el: Minor fixes + + (describe-mode--minor-modes): Don't burp on minor modes that lack a docstring. + (describe-mode--minor-modes): Simplify eta-redex. + (find-lisp-object-file-name): Use `autoload-file`. + (help-fns--describe-function-or-command-prompt): Allow the user to + insist on choosing a function even if it appears not to exist. + +2022-09-02 Robert Pluim + + Use `format-prompt' in `describe-char-fold-equivalences' + + * lisp/char-fold.el (describe-char-fold-equivalences): Use `format-prompt'. + +2022-09-02 Lars Ingebrigtsen + + Fix define-minor-mode :keymap obsoletion warning + + * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Fix some + warning. + +2022-09-02 Stefan Kangas + + Make minibuffer-eldef-shorten-default obsolete + + * lisp/minibuf-eldef.el (minibuffer-eldef-shorten-default): Make + variable obsolete in favor of 'minibuffer-default-prompt-format'. + * doc/emacs/mini.texi (Basic Minibuffer): Delete above obsolete + variable (bug#50935). + +2022-09-02 Lars Ingebrigtsen + + Default show-paren-mode to off in special-mode buffers + + * doc/emacs/programs.texi (Matching): Mention the new user option. + + * doc/misc/efaq.texi (Matching parentheses): Adjust text to the + current state of affairs. + + * lisp/paren.el (show-paren-function): New user option (bug#50894). + (show-paren-mode): Mention it. + (show-paren-function): Use it. + +2022-09-02 Lars Ingebrigtsen + + Clean up ispell "look"-related variables + + * lisp/textmodes/ispell.el (ispell-look-p): Make obsolete. + (ispell-lookup-words): Look up the look command at run time + instead (bug#50852). + (ispell-have-new-look): Make obsolete. + (ispell-look-options): Adjust. Apparently the version of "look" + that had a "-r" (regexp interface) never took off -- it's not + present in GNU/Linux or Macos, at least, as far as we can tell. + +2022-09-02 Lars Ingebrigtsen + + Fix quotes in mailcap-add-mailcap-entry doc string + + * lisp/net/mailcap.el (mailcap-add-mailcap-entry): Fix usage of + quotes. + +2022-09-02 Felix Dietrich + + Restructure ‘mailcap-add-mailcap-entry’ + + * lisp/net/mailcap.el (mailcap-add-mailcap-entry): + Restructure mailcap-add-mailcap-entry to improve readability. + +2022-09-02 Felix Dietrich + + Add tests for ‘mailcap-add-mailcap-entry’ + + * test/lisp/net/mailcap-tests.el: + Add tests for ‘mailcap-add-mailcap-entry’ + +2022-09-02 Robert Pluim + + Use frame-monitor-attributes in gamegrid + + * lisp/play/gamegrid.el (gamegrid-calculate-glyph-size): Use + `frame-monitor-attributes' to get the frame attributes directly + instead of iterating over `display-monitor-attributes-list'. + +2022-09-02 Po Lu + + Prevent crashes when embedding Emacs in a nonexistent parent + + * src/xfns.c (x_window, Fx_create_frame): Handle X errors while + trying to reparent the frame onto an explicitly specified + parent. + * src/xterm.c (handle_one_xevent): Handle unparenting embedded + windows correctly. This only works if the embedder is aware of + the fixes extension and has put the window into the right save + set. + (x_embed_frame): New function. + * src/xterm.h (FRAME_X_EMBEDDED_P): Fix coding style. + +2022-09-02 Robert Pluim + + Make single char entry easier for `describe-char-fold-equivalences' + + * lisp/char-fold.el (describe-char-fold-equivalences): Improve + docstring. Pass t for 'allow-single' arg in call to + `read-char-by-name' so that single characters can be entered directly. + +2022-09-02 Robert Pluim + + Allow easy entry of single chars in `read-char-by-name' + + * lisp/international/mule-cmds.el (read-char-by-name): Add optional + 'allow-single' argument, meaning to accept single chars as themselves. + +2022-09-02 Fabrice Bauzac-Stehly + + ldap-host-parameters-alist: Add auth-source option + + * lisp/net/ldap.el (ldap-host-parameters-alist): Add auth-source + to checklist. + +2022-09-01 Jim Porter + + Under no-X builds, allow any value for 'fringe-bitmap' options + + * lisp/cus-edit.el (fringe-bitmap): Always match under no-X. + +2022-09-01 Po Lu + + Fix bug#57476 for Xt builds + + * src/xterm.c (handle_one_xevent): Add similar event mode check + to code under USE_X_TOOLKIT conditional. (bug#57476) + +2022-09-01 Lars Ingebrigtsen + + Make easy-mmode-define-keymap obsolete + + * lisp/emacs-lisp/easy-mmode.el (easy-mmode-define-keymap): Make + obsolete. + (define-minor-mode): Add comment. + +2022-09-01 Lars Ingebrigtsen + + Make easy-mmode-defmap obsolete and adjust only caller + + * lisp/emacs-lisp/easy-mmode.el (easy-mmode-defmap): Make obsolete. + * lisp/progmodes/gud.el (gud-menu-map): Use easy-menu-define. + +2022-09-01 Lars Ingebrigtsen + + Fix outline-minor-mode-map + + * lisp/outline.el (outline-minor-mode): Avoid using + easy-mmode-define-keymap, since it doesn't handle :inherit + correctly (bug#57512). + +2022-09-01 Daanturo + + Make file-parent-directory more efficient + + * lisp/files.el (file-parent-directory): Use equal instead of + file-equal-p to compare the found parent and the child + (bug#56355). This is much faster. + +2022-09-01 Stefan Kangas + + Minor doc fix; improve sorting of VC backends + + * doc/emacs/maintaining.texi (Version Control Systems): Minor doc fix; + rearrange list to put git, cvs and subversion at the top. + +2022-09-01 Eli Zaretskii + + Clarify the doc string of 'set-face-attribute' + + * lisp/faces.el (set-face-attribute): Clarify the issue with + resetting attribute values to 'unspecified' for future frames. + (Bug#57499) + +2022-09-01 Mattias Engdegård + + Better `take` and `ntake` bignum argument handling + + * src/fns.c (Ftake, Fntake): Treat positive bignum arguments + as most-positive-fixnum which results in better error checking + of improper lists. + +2022-09-01 Stefan Kangas + + Merge from origin/emacs-28 + + 8807a4f532 Enable 256 colors in fbterm. + bbc23ca8ab One more fix for find-file.el + 0cbcaf5119 ; Yet another doc fix for 'ff-other-file-alist' (bug#57325) + 2d9a391727 Recommend using fbterm in the Linux console. + a5a92e577c ; * src/window.c (syms_of_window) + + Update publicsuffix.txt from upstream + + * etc/publicsuffix.txt: Update from + https://publicsuffix.org/list/public_suffix_list.dat + dated 2022-08-25 13:54:14 UTC. + +2022-08-31 Jim Porter + + Don't fail Eshell ERT tests when an internal signal gets raised + + * test/lisp/eshell/esh-proc-tests.el + (esh-proc-test/pipeline-connection-type/middle) + (esh-proc-test/pipeline-connection-type/last): Set 'debug-on-error' to + nil. + + Ref: https://lists.gnu.org/archive/html/emacs-devel/2022-08/msg01452.html + +2022-08-31 Alan Mackenzie + + C++ Mode: Fontify functions correctly with commas in template expressions + + This fixes bug #57318. + + Also apply an optimization which marks generic expressions as already + analyzed, thus avoiding repeating this analysis when not needed. This + optimization prevents the fix slowing down scrolling when the C++ source has + lots of template structures. + + * lisp/progmodes/cc-engine.el (top-level) Near the beginning of the file, add + a comment describing the new text property c-<>-c-types-set. + (c-update-brace-stack): Bind c-restricted-<>-arglists to nil rather than t + around the call to c-forward-<>-arglist. + (c-forward-<>-arglist-recur): Allow the abbreviated analysis of a generic + expression also when the opening < is marked with a c-<>-c-types-set text + property. Set this property at the same time as the c-type properties are set + on the commas inside the template structure. + + * lisp/progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare): Clear the + c-<>-c-types-set text property, along with c-type, from the region being + fontified. + +2022-08-31 Robert Pluim + + Fix describe-char-fold-equivalences for composed characters + + * lisp/char-fold.el (describe-char-fold-equivalences): Map + `get-char-code-property' across all the component codepoints of the + equivalent character rather than just the first one. + +2022-08-31 ookami (tiny change) + + Fix semantic-find-file-noselect binding of recentf-exclude + + * lisp/cedet/semantic/fw.el (semantic-find-file-noselect): + recentf-exclude should be a list (bug#57489). + +2022-08-30 Po Lu + + Gently nudge Xt into always setting size hints + + * src/widget.c (update_wm_hints): Force a resource to change + every time this function is called. (bug#57475) + (EmacsFrameInitialize): Initialize new field. + * src/widgetprv.h (EmacsFramePart): New field `size_switch'. + * src/xterm.c (x_wm_set_size_hint): Don't change flags if flags + is 0. + +2022-08-30 Po Lu + + Fix bug#57476 + + * src/xterm.c (handle_one_xevent): Don't reset valuators on certain + crossing events, for the benefit of xfwm4. (bug#57476) + +2022-08-30 Stefan Monnier + + t-mouse.el: Make sure we apply the setting to new terminals + + * lisp/t-mouse.el (gpm-mouse-tty-setup): New function. + (gpm-mouse-mode): Use it as well as `tty-setup-hook`. + * lisp/term/linux.el (terminal-init-linux): Remove gpm-specific code, + not needed any more. + +2022-08-30 Gregory Heytings + + Enable 256 colors in fbterm. + + * lisp/term/fbterm.el: New file. + + * doc/misc/efaq.texi (Emacs in a Linux console): Document the TERM + environment variable with which the new file is used. + +2022-08-30 Juri Linkov + + Fix 744ed0ceeed7472a160fea7154939cf641205577 from bug#57082 (bug#57176) + + * lisp/outline.el (outline-minor-mode-highlight-buffer): Handle 'append'. + (outline-minor-mode): Call outline--fix-up-all-buttons when font-lock is used. + + * lisp/textmodes/emacs-news-mode.el (emacs-news--mode-common): Fix regexp. + +2022-08-30 Eli Zaretskii + + One more fix for find-file.el + + * lisp/find-file.el (ff-get-file-name): Use 'expand-file-name' + instead of 'concat', which doesn't DTRT with absolute file names. + (ff-other-file-alist): Yet another doc fix. (Bug#57325) + +2022-08-30 Mattias Engdegård + + Accept bignum arguments in `take` and `ntake` + + * src/fns.c (Ftake, Fntake): Accept any integer as first argument, for + completeness. + * test/src/fns-tests.el (fns--take-ntake): Add test cases. + +2022-08-30 Po Lu + + Fix junk data being returned with incremental selection transfers + + * src/xselect.c (receive_incremental_selection): New arg + REAL_BYTES_RET. Set it to the actual size instead of using the + size of the array after it was grown by xpalloc. + (x_get_window_property_as_lisp_data): Adjust call to + receive_incremental_selection. + +2022-08-30 Philip Kaludercic + + * package-vc.el (package-vc-unpack): Fix 'vc-ignore' call + + When generating the manual node (/dir), we need to ensure that the + default-directory is set to the package root, otherwise the file is + ignored in some other repository, that probably doesn't exist. + +2022-08-30 Lars Ingebrigtsen + + Fix char-fold compilation warning + + * lisp/char-fold.el (require): Get string-join definition. + +2022-08-30 Juri Linkov + + * lisp/char-fold.el (describe-char-fold-equivalences): New command. + + (char-fold--no-regexp): New internal variable. + (char-fold--make-table): Use it to skip translation to regexp. + Suggested by Robert Pluim . + https://lists.gnu.org/archive/html/emacs-devel/2022-07/msg00864.html + +2022-08-29 Jim Porter + + Handle 'eshell-pipe-broken' when evaluating Lisp forms in Eshell + + * lisp/eshell/esh-cmd.el (eshell-exec-lisp): Handle + 'eshell-pipe-broken'. + + * lisp/eshell/esh-io.el (eshell-output-object-to-target): Only signal + 'eshell-pipe-broken' if the process being written to has finished. + + * test/lisp/eshell/esh-proc-tests.el + (esh-proc-test/pipeline-connection-type/middle) + (esh-proc-test/pipeline-connection-type/last): Remove ':unstable'. + + Ref: https://lists.gnu.org/archive/html/emacs-devel/2022-08/msg00524.html + +2022-08-29 Gregory Heytings + + Recommend using fbterm in the Linux console. + + * doc/misc/efaq.texi (Emacs in a Linux console): New node. + (Common requests): Entry for the new node. + + * etc/PROBLEMS (Linux console problems...): Mention the new FAQ node. + +2022-08-29 Yuan Fu + + Merge remote-tracking branch 'origin/master' into feature/tree-sitter + +2022-08-29 Stefan Kangas + + Improve point-at-{bol,eol} obsoletion message + + * lisp/subr.el (point-at-eol, point-at-bol): Mention 'pos-eol' and + 'pos-bol' in obsoletion message. + +2022-08-29 Mattias Engdegård + + Fix reader memory leak upon error (bug#56623) + + Reported by Tom Gillespie; error found by Greg Hendershott. + + * src/lread.c (read_stack_reset): New. + (read0): Reset read stack when unwinding from an error. + +2022-08-29 Jake Moss (tiny change) + + Show gdb-mi disassembly over tramp + + * lisp/progmodes/gdb-mi.el (gdb-invalidate-disassembly): Show + gdb-mi disassembly over tramp (bug#57464). + +2022-08-29 Lars Ingebrigtsen + + Work around `&' dired command when using the fish shell + + * lisp/dired-aux.el (dired-shell-stuff-it): Add a space before + &wait; this apparently makes the `&' command work with the fish + shell (bug#57472). + +2022-08-29 Eli Zaretskii + + * lisp/find-file.el (ff-other-file-alist): Doc fix. (Bug#57325) + +2022-08-29 Eli Zaretskii + + Fix point adjustment in recreated *Messages* buffers + + * lisp/startup.el (normal-top-level): Move setting of + 'window-point-insertion-type' from here... + * lisp/simple.el (messages-buffer-mode): ...to here. This is so + any *Messages* buffers we create instead of the original one, if + it's killed, will have the same type of the window-point marker. + (Bug#57466) + +2022-08-29 Stefan Monnier + + * src/keyboard.c (safe_run_hooks*): Simplify and generalize + + (safe_run_hooks_1, safe_run_hook_funcall): Simplify and generalize to + arbitrary `nargs`. + (safe_run_hooks_error): Remove unneeded assertion. + +2022-08-29 Michael Albinus + + Do not connect unreachable remote hosts in recentf + + * lisp/recentf.el (recentf-expand-file-name): Protect against + stalled remote hosts. (Bug#57336) + +2022-08-29 Po Lu + + Unify floating point handling when reading XI motion events + + * src/xterm.c (handle_one_xevent): Always round values as + recommended, instead of just truncating them. Also fixes + weird "jitter" during drag-and-drop on some clients. + +2022-08-28 Juri Linkov + + 'C-c C-d' on vc-log buffer shows the diff from 'vc-log-fileset' (bug#52349) + + * lisp/vc/log-edit.el (log-edit-diff-fileset): New function. + + * lisp/vc/vc-dispatcher.el (vc-log-edit): Set log-edit-diff-function to + log-edit-diff-fileset instead of vc-diff. + + * lisp/vc/vc.el (vc-diff): New optional arg ‘fileset’. + If non-nil, use instead of vc-deduce-fileset. + +2022-08-28 Juri Linkov + + 'C-x v v' on a diff buffer commits it as a patch (bug#52349) + + * lisp/vc/diff-mode.el (diff-vc-deduce-fileset): New function. + + * lisp/vc/log-edit.el (log-edit-diff-patch): New function. + + * lisp/vc/vc-dispatcher.el (vc-log-edit): Set log-edit-diff-function + to log-edit-diff-patch when vc-patch-string is non-nil. + (vc-start-logentry): New optional arg 'patch-string'. + Set buffer-local 'vc-patch-string' to 'patch-string'. + (vc-dispatcher-browsing): Add (derived-mode-p 'diff-mode). + + * lisp/vc/vc-git.el (vc-git-checkin-patch): New function. + (vc-git-checkin): When vc-git-patch-string is non-nil, + use `git apply --cached` to add the patch to the index, + then commit the staged changes. + + * lisp/vc/vc.el: New backend function 'checkin-patch'. + (vc-deduce-fileset-1): Call diff-vc-deduce-fileset in diff-mode. + (vc-next-action): For model 'patch' call vc-checkin with the + diff buffer string. + (vc-checkin): New optional arg 'patch-string'. + Call backend function 'checkin-patch' when 'patch-string' is non-nil. + Call vc-start-logentry with 'patch-string'. + (vc-diff-patch-string): New function. + +2022-08-28 Juri Linkov + + Revert parts of 3f076a8e44 that caused test failures + + * lisp/simple.el (line-move-finish): + * lisp/window.el (scroll-command--goto-goal-column): + Revert back to using truncate-partial-width-windows instead of + truncated-partial-width-window-p. This change caused test failures + in lisp/ls-lisp-tests.log and lisp/emacs-lisp/edebug-tests.log. + +2022-08-28 Ken Brown + + Fix data for files-tests-bug-21454 on Cygwin + + * test/lisp/files-tests.el (files-tests-bug-21454): Fix test data + to reflect the fact that Cygwin supports UNC paths. + +2022-08-28 Eli Zaretskii + + * lisp/info.el (Info-mode): Support the Linux console better. + +2022-08-28 Eli Zaretskii + + Improve the documentation of glyphless-character display + + * lisp/international/characters.el (glyphless-char-display-control): + * src/xdisp.c (syms_of_xdisp) : Mention + the 'glyphless-char' face in the doc string. + + * doc/lispref/display.texi (Glyphless Chars): Index + 'glyphless-char' face. + +2022-08-28 Po Lu + + Fix two issues in xterm.c + + * src/xterm.c (x_atom_refs): Make EMACS_SERVER_TIME_PROP atom + have a vendor-specific prefix. + (x_query_pointer_1): Fix leak of button mask. + +2022-08-27 Juri Linkov + + Use truncated-partial-width-window-p in more places (bug#56815) + + * lisp/simple.el (line-move, line-move-finish): + Use truncated-partial-width-window-p. + + * lisp/window.el (count-screen-lines, scroll-command--goto-goal-column): + Use truncated-partial-width-window-p. + (truncated-partial-width-window-p): Replace window-width with + window-total-width. + + * src/indent.c (scan_for_column): Bring the logic of using + truncated-partial-width-window-p closer to what the display engine does. + +2022-08-27 Juri Linkov + + Use a list of text properties to search in symlink filenames in Wdired + + * lisp/dired-aux.el (dired-isearch-search-filenames): + Use text properties 'dired-filename' and 'dired-symlink-filename'. + + * lisp/dired.el (dired-font-lock-keywords): Add text property + 'dired-symlink-filename' on symlinks. + + * lisp/isearch.el (isearch-search-fun-in-text-property): + Support a list of text properties (bug#57293). + +2022-08-27 Lars Ingebrigtsen + + Make dynamic info-lookup more backwards-compatible + + * lisp/info-look.el (info-lookup--expand-info): Don't try to + expand elements that aren't functions (bug#57446). + +2022-08-27 Daniel Martín + + Fix webp detection on some Macos systems + + * configure.ac (HAVE_RSVG): Make webp detection work with Macos + 10.3/Homebrew (bug#57420). + +2022-08-27 Eli Zaretskii + + Fix regression with cursor motion in Magit buffers + + * lisp/simple.el (line-move): Condition movement optimizations on + presence of very long lines. (Bug#57433) + +2022-08-27 Eli Zaretskii + + Fix antialias face attribute when text is scaled + + This restores the code we had in realize_gui_face before commit bf0d3f7. + The problem described in bug#17973, which led to that commit, only + happens if one uses a specific (misc-fixed) font family, not for + the usual default fonts used by Emacs, and I'm not sure what's + described there is a bug at all. At least for the purposes of + text-scale-adjust, it makes no sense to ignore the + foundry/family/adstyle of the original font, because we _want_ the + same (or very similar) font, just of a different size. + + And likely in other use cases: if the :font attribute of a face + specifies some font properties, we want to keep them all, not + arbitrarily to ignore some of them. And definitely catering to an + obscure use case such as the one cited in bug#17973 is NOT a good + reason to make such radical changes in face-realization behavior. + + So I think backing out that part of commit bf0d3f7 is TRT, and if + we decide that this causes bug#17973 in too many situations we care + about, I'd rather find a kludge for that specific case than do that + for every face realization. + * src/xfaces.c (realize_gui_face): Preserve face attributes when + text is scaled. This reverts part of the changes installed in + commit bf0d3f7. (Bug#37473) + +2022-08-27 Alan Mackenzie + + CC Mode: Remove double evaluation of self-quoting function in cc-langs.el + + This is a followup to Stefan Monnier's fix for bug #57065 from 2022-08-25. + + * lisp/progmodes/cc-langs.el (c-init-language-vars): Add a #' after the + funcall. + +2022-08-27 Eli Zaretskii + + Support "replacement characters" on TTY frames + + * src/nsterm.m (ns_draw_glyphless_glyph_string_foreground): + * src/pgtkterm.c (pgtk_draw_glyphless_glyph_string_foreground): + * src/haikuterm.c (haiku_draw_glyphless_glyph_string_foreground): + * src/xterm.c (x_draw_glyphless_glyph_string_foreground): + * src/w32term.c (w32_draw_glyphless_glyph_string_foreground): + * src/xdisp.c (lookup_glyphless_char_display): Handle extra-slot + of 'glyphless-char-display' that is a cons cell. + (syms_of_xdisp) : Update doc string. + + * etc/NEWS: + * doc/lispref/display.texi (Glyphless Chars): Document the new + feature. + + * lisp/faces.el (glyphless-char): Make the face stand out on TTY + frames that don't support the underline attribute. + +2022-08-27 Eli Zaretskii + + Fix documentation of 'glyphless-char-display' + + * src/xdisp.c (syms_of_xdisp): Doc fix. + (gui_produce_glyphs, lookup_glyphless_char_display): Fix + indentation. + +2022-08-26 Po Lu + + Fix crash when handling "swallowed" generic events + + * src/xmenu.c (x_menu_translate_generic_event, x_menu_show): + Pass through more events, correctly. + * src/xterm.c (handle_one_xevent): Don't abort if must_free_data + and xi_event is NULL; this is an Xlib bug. + +2022-08-26 Dmitry Gutov + + xref-matches-in-files: Use with-connection-local-variables + + * lisp/progmodes/xref.el (xref-matches-in-files): + Use with-connection-local-variables (bug#57385). + +2022-08-26 Stefan Kangas + + Use shr as default for mm-text-html-renderer + + * lisp/gnus/mm-decode.el (mm-text-html-renderer): Use 'shr' as + default to avoid a nil value. + Problem reported by Mattias Engdegård . + +2022-08-26 Lars Ingebrigtsen + + Clarify the :box attributes in Face Attributes lispref node + + * doc/lispref/display.texi (Face Attributes): Mention that the + elements are optional (bug#50699). + +2022-08-26 Alan Mackenzie + + CC Mode: Fontify correctly a brace list element followed only + by syntactic WS + + This fixes a regression introduced in the fix for bug #56841 + on 2022-08-24. + + * lisp/progmodes/cc-engine.el (c-forward-declarator): Allow + point to be at EOB after the call to c-forward-name, rather + than rejecting it as an invalid declarator. Also reindent + a section of this function. + +2022-08-26 Michael Albinus + + Use `rx' in Tramp where possible + + * lisp/net/tramp.el: + * lisp/net/tramp-adb.el: + * lisp/net/tramp-archive.el: + * lisp/net/tramp-cache.el: + * lisp/net/tramp-cmds.el: + * lisp/net/tramp-compat.el: + * lisp/net/tramp-crypt.el: + * lisp/net/tramp-ftp.el: + * lisp/net/tramp-fuse.el: + * lisp/net/tramp-gvfs.el: + * lisp/net/tramp-integration.el: + * lisp/net/tramp-rclone.el: + * lisp/net/tramp-sh.el: + * lisp/net/tramp-smb.el: + * lisp/net/tramp-sudoedit.el: Use `rx' where possible. + + * lisp/net/tramp-adb.el (tramp-adb-handle-set-file-times): + Use `eval-when-compile'. + (tramp-adb-maybe-open-connection): Use file-property for "/". Use + `eval-when-compile'. + + * lisp/net/tramp-cmds.el (mm-7bit-chars): Declare. + (tramp-reporter-dump-variable): Simplify point movement. + + * lisp/net/tramp-gvfs.el (tramp-dbus-function): Fix typo. + (tramp-zeroconf-parse-device-names): Use `tramp-prefix-port-format'. + + * lisp/net/tramp-sh.el (tramp-open-shell, tramp-find-shell): + Use `eval-when-compile'. Improve sanity check. + + * lisp/net/tramp.el (tramp-prefix-format, tramp-prefix-regexp) + (tramp-method-regexp, tramp-postfix-method-format) + (tramp-postfix-method-regexp, tramp-prefix-ipv6-format) + (tramp-prefix-ipv6-regexp, tramp-postfix-ipv6-format) + (tramp-postfix-ipv6-regexp, tramp-postfix-host-format) + (tramp-postfix-host-regexp, tramp-remote-file-name-spec-regexp) + (tramp-file-name-structure, tramp-file-name-regexp) + (tramp-completion-method-regexp) + (tramp-completion-file-name-regexp): Declare. + (tramp-set-syntax): Set also `tramp-completion-method-regexp'. + (tramp-volume-letter-regexp, tramp-completion-method-regexp-alist): + New defconsts. + (tramp-build-completion-method-regexp): New defun. + (tramp-completion-method-regexp): New defvar. + (tramp-completion-file-name-regexp-default) + (tramp-completion-file-name-regexp-simplified) + (tramp-completion-file-name-regexp-separate) + (tramp-completion-file-name-regexp-alist): Remove. + (tramp-build-completion-file-name-regexp): Rwrite. + (tramp-make-tramp-file-name): Use `tramp-archive-method'. + (tramp-handle-file-directory-p): Ignore errors. + (tramp-handle-find-backup-file-name, tramp-handle-lock-file) + (tramp-handle-make-auto-save-file-name): Use `eval-when-compile'. + + * test/lisp/net/tramp-archive-tests.el: + * test/lisp/net/tramp-tests.el: Use `rx' where possible. + (tramp-test01-file-name-syntax): Adapt test. + +2022-08-26 Lars Ingebrigtsen + + Make the *Ido COmpletions* buffer fit the window to the buffer + + * lisp/ido.el (ido-completion-help): Display the ido completions + buffer pretty much the same way that the default *Completions* + buffer is displayed (bug#50671). This means that we're defaulting + to fit-window-to-buffer. + +2022-08-26 Augusto Stoffel + + New option 'thrifty' for Man-notify-method + + * lisp/man.el (Man-notify-when-ready): Accept new 'thrifty' notify + method. + (Man-notify-method): Explain what 'thrifty' does (bug#57408). + +2022-08-26 Lars Ingebrigtsen + + Delete blank lines at the start of the cited text in message-indent-citation + + * lisp/gnus/message.el (message-indent-citation): Fix thinko in + the fix for the previous thinko. + +2022-08-26 Basil L. Contovounesios + + Fix recent gamegrid.el change for nox build + + * lisp/play/gamegrid.el (gamegrid-make-glyph): Declare + image-scaling-factor as special before dynamically binding it, for + the sake of --without-x builds which do not preload lisp/image.el. + +2022-08-26 Basil L. Contovounesios + + Pacify obsolete gv warnings in xt-mouse-tests.el + + * test/lisp/xt-mouse-tests.el (with-xterm-mouse-mode): Replace + deprecated generalized variables frame-width and frame-height with + direct calls to set-frame-width and set-frame-height, respectively. + +2022-08-26 Jim Porter + + Kill the buffer for the temp file after using '$' in Eshell + + * lisp/eshell/esh-var.el (eshell-parse-variable-ref): Kill the temp + file's buffer when we're done. + + Ref: https://lists.gnu.org/archive/html/bug-gnu-emacs/2022-08/msg01444.html + +2022-08-26 Stefan Kangas + + Merge from origin/emacs-28 + + e3b8577525 ; * etc/DEBUG: Fix wording of "X protocol errors" section. + +2022-08-26 Stefan Kangas + + Merge from origin/emacs-28 + + 9e03e29c4e * lisp/wdired.el: Improve "Commentary" section. + 92e90297f9 * lisp/wdired.el: Doc fix; don't mention obsolete variable. + 2ccefef4c7 * lisp/progmodes/etags.el (next-file): Minor doc fix. + +2022-08-25 Po Lu + + Restore old code in x_sync_trigger_fence + + * src/xterm.c (x_sync_trigger_fence): Restore old code, since that + makes it easier to adapt to more than 2 sync fences (which might be + necessary in the future, if we ever decide to do frame handling + asynchronously), and is much more recognizable for people coming from + other programs. + +2022-08-25 Paul Eggert + + Update from Gnulib by running admin/merge-gnulib + +2022-08-25 Paul Eggert + + Fix overflows in HAVE_XSYNC timestamp handling + + Also, port to platforms lacking CLOCK_MONOTONIC and int64_t, and + use 0 more consistently to represent missing timestamps. + * src/xterm.h (struct x_display_info): + Omit server_time_monotonic_p and server_time_offset if + !HAVE_CLOCK_GETTIME since they are unused in that case. + * src/xterm.h (struct x_display_info, struct x_output): + * src/xterm.c (x_sync_get_monotonic_time) + (x_sync_current_monotonic_time, x_sync_note_frame_times): + Use int_fast64_t instead of int64_t as POSIX doesn't + guarantee the latter. Similarly for uint_fast64_t. + (x_sync_get_monotonic_time, x_sync_current_monotonic_time) + (x_sync_note_frame_times, x_display_set_last_user_time): + Check for integer overflow in time arithmetic. + (CLOCK_MONOTONIC): Define to CLOCK_REALTIME if absent. + (x_sync_current_monotonic_time): Check for clock_gettime failure + and fall back on CLOCK_REALTIME if CLOCK_MONOTONIC does not work, + which POSIX allows. + (x_sync_current_monotonic_time, x_sync_note_frame_times) + (x_display_set_last_user_time): + Use 0 more consistently to represent missing timestamps. + +2022-08-25 Paul Eggert + + Fix unlikely core dump with Xaw + + * lwlib/lwlib-Xaw.c (make_dialog): Don’t dump core if calloc fails. + Caught with --enable-gcc-warnings. + +2022-08-25 Stefan Monnier + + * lisp/progmodes/cc-langs.el (c-make-no-parens-syntax-table): Fix bug#57065 + + (c-lang-const c-make-mode-syntax-table) already returns a function, + so quote it to avoid double evaluation since it could fail if the + function is not self-evaluating, such as when it's a symbol or + a value of the form (closure ...). + +2022-08-25 Stefan Kangas + + Improve explanation of init file in FAQ + + * doc/misc/efaq.texi (Setting up a customization file): Improve + and update section to reflect current behavior. Add + cross-references back to this section. + * doc/emacs/custom.texi (Init File): Add comment to remind about + also updating the FAQ. + Ref: https://lists.gnu.org/r/emacs-devel/2022-08/msg01056.html + +2022-08-25 Stefan Kangas + + Don't refer to Emacs 24.3 or older in FAQ + + * doc/misc/efaq.texi: Don't say that the FAQ has been edited. + (Displaying the current line or column, Automatic indentation) + (Problems with very large files, Emacs for other operating systems) + (Right-to-left alphabets, Expanding aliases when sending mail): Remove + references to Emacs 24.3 or older. + + (Learning how to do something): Don't include the reference card + price; it is currently incorrect and is likely to be incorrect again + in the future. + +2022-08-25 Robert Pluim + + Treat smtp-auth method from auth-info as a symbol + + The lookup of the SMTP auth method is done based on symbols, but + sometimes the requested value comes from `auth-info', in which case it + is a string, so call `intern-soft' to convert it to a symbol (which + does nothing if it's already a symbol). + + * lisp/mail/smtpmail.el (smtpmail-try-auth-methods): Call + `intern-soft' on the smtp-auth key's value. (Bug#57373) + + Do not merge to master + +2022-08-25 Stefan Kangas + + * lisp/wdired.el: Improve "Commentary" section. + + * lisp/wdired.el: Doc fix; don't mention obsolete variable. + + * lisp/progmodes/etags.el (next-file): Minor doc fix. + +2022-08-25 Lars Ingebrigtsen + + Add a new user option grep-command-position + + * lisp/progmodes/grep.el (grep-command): Mention it. + (grep-command-position): New user option. + (grep): Use it (bug#50502). + +2022-08-25 Lars Ingebrigtsen + + Document how :map and :scale interacts in image maps + + * doc/lispref/display.texi (Image Descriptors): Mention problems + with scaling (bug#50487). + +2022-08-25 Stefan Kangas + + Fix generalized variable documentation for recent change + + * doc/lispref/variables.texi (Setting Generalized Variables): Delete + obsolete generalized variable 'frame-width'. + +2022-08-25 Lars Ingebrigtsen + + Make a prefix go to the previous error + + * lisp/textmodes/flyspell.el (flyspell-goto-next-error): Make a + prefix find the previous error (bug#50443). + +2022-08-25 Lars Ingebrigtsen + + Mention C-x C-q + revert change in NEWS + +2022-08-25 Robert Pluim + + Treat smtp-auth method from auth-info as a symbol + + The lookup of the SMTP auth method is done based on symbols, but + sometimes the requested value comes from `auth-info', in which case it + is a string, so call `intern-soft' to convert it to a symbol (which + does nothing if it's already a symbol). + + * lisp/mail/smtpmail.el (smtpmail-try-auth-methods): Call + `intern-soft' on the smtp-auth key's value. (Bug#57373) + +2022-08-25 Kien Nguyen + + Allow symlink creation on MS-Windows without Administrator privileges + + * src/w32.c (symlink): Use the + SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE flag when available. + (Bug#57386) + +2022-08-25 Lars Ingebrigtsen + + Fix warning about obsoleted generalized variables + + * lisp/emacs-lisp/bytecomp.el (byte-compile-warn-obsolete): + Autoload so that the call here from gv.el (about obsolete + generalized variables) doesn't bug out (bug#57394). + +2022-08-25 Lars Ingebrigtsen + + Make frame-width obsolete as a generalized variable + + * lisp/emacs-lisp/gv.el (frame-width): Make obsolete as + generalized variable. + +2022-08-25 Daniel Martín + + Fix instrumented eval-defun not printing "Edebug:" to the echo area + + * lisp/progmodes/elisp-mode.el (elisp--eval-defun): Determine if we're + instrumenting a function and call eval-region with PRINTFLAG set to + nil if so (Bug#50245). + + * test/lisp/progmodes/elisp-mode-tests.el + (eval-defun-prints-edebug-when-instrumented): Add a new test. + +2022-08-25 Lars Ingebrigtsen + + Add hideshow-test.el file (bug#56635) + +2022-08-25 kobarity + + Add Python blocks support for hideshow + + * lisp/progmodes/python.el (python-nav-beginning-of-block-regexp): + New variable. + (python-hideshow-forward-sexp-function): Change to call + `python-nav-end-of-block'. + (python-hideshow-find-next-block): New function to be used as + FIND-NEXT-BLOCK-FUNC in `hs-special-modes-alist'. + (python-info-looking-at-beginning-of-block): New function to be + used as LOOKING-AT-BLOCK-START-P-FUNC in `hs-special-modes-alist'. + (python-mode): Change settings of `hs-special-modes-alist'. + + * test/lisp/progmodes/python-tests.el + (python-hideshow-hide-levels-1): Fix to keep empty lines. + (python-info-looking-at-beginning-of-block-1) + (python-hideshow-hide-levels-3, python-hideshow-hide-levels-4) + (python-hideshow-hide-all-1, python-hideshow-hide-all-2) + (python-hideshow-hide-all-3, python-hideshow-hide-block-1): New + tests (bug#56635). + +2022-08-25 kobarity + + Extend `hs-special-modes-alist' for languages such as Python + + * lisp/progmodes/hideshow.el (hs-special-modes-alist): Add + elements FIND-BLOCK-BEGINNING-FUNC, FIND-NEXT-BLOCK-FUNC, and + LOOKING-AT-BLOCK-START-P-FUNC. + (hs-find-block-beginning-func): New variable to hold + FIND-BLOCK-BEGINNING-FUNC. + (hs-find-next-block-func): New variable to hold + FIND-NEXT-BLOCK-FUNC. + (hs-looking-at-block-start-p-func): New variable to hold + LOOKING-AT-BLOCK-START-P-FUNC. + (hs-grok-mode-type): Set new variables from + `hs-special-modes-alist'. + (hs-find-next-block): New function. + (Misc.): Update callers of the above functions. + + * test/lisp/progmodes/hideshow-tests.el: New test file (bug#56635). + +2022-08-25 Lars Ingebrigtsen + + Allow not deleting the config.cache file with "make FAST=true bootstrap" + + * Makefile.in: Add some commentary about make bootstrap, + ./configure -C and FASTo + (top_bootclean): Don't delete config.cache here. + (top_distclean): Delete it here instead. + (bootstrap-clean): Allow not deleting the cache file. + + * admin/emake (cores): Adjust. + +2022-08-25 Michael Albinus + + Minor fixes in tramp-tests.el + + * test/lisp/net/tramp-tests.el (tramp--test-deftest-with-stat) + (tramp--test-deftest-with-perl) + (tramp--test-deftest-with-ls): Skip if underlying test didn't run + or lasted too long. + (tramp--test-shell-file-name): Do not depend on `tramp--test-adb-p'. + +2022-08-25 Andreas Schwab + + * configure.ac: Move AC_LANG_PUSH/POP out of AC_CACHE_CHECK. (Bug#57380) + +2022-08-25 Po Lu + + Fix various problems with mouse highlight on XI2 builds + + * src/dispextern.h (reset_mouse_highlight): Fix coding style. + * src/xterm.c (xi_position_changed): New functions. + (xi_report_motion_window_clear, handle_one_xevent): Don't report + motion events if the pixel position did not actually change. + + * src/xterm.h (struct xi_device_t): New fields + `last_motion_window', `last_motion_x' and `last_motion_y'. + +2022-08-24 Dmitry Gutov + + vc-merge: Look for 'merge-file' instead of 'merge' + + * lisp/vc/vc.el (vc-merge): + Look for 'merge-file' in second clause (bug#50258). + +2022-08-24 Alan Mackenzie + + C++ Mode - Fontify "class Foo {\n ~Foo() noexcept;" correctly + + This fixes bug #49787. + + * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): (In `if' form just + before CASE 8) Remove the (not ...) around the (looking-at + c-after-suffixed-type-maybe-decl-key). + + * lisp/progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare): Add + `c-not-decl' to the values of c-type which are erased at the start of a + fontification. + +2022-08-24 Eli Zaretskii + + Fix handling of UNCs in 'parse-colon-path + + * lisp/files.el (parse-colon-path): Don't remove the second + leading slash on systems that support UNCs. (Bug#57353) + + * test/lisp/files-tests.el (files-tests-bug-21454): Update + expected results. + (files-colon-path): Add a new test pattern. + +2022-08-24 Alan Mackenzie + + CC Mode: Fontify args correctly when arglist closing ) is not on the same line + + This fixes bug #56841. + + * lisp/progmodes/cc-engine.el (c-forward-declarator): Fix an off-by-one + comparing the position after a c-forward-name with a limit. + + * lisp/progmodes/cc-mode.el (c-fl-decl-end): Handle correctly point starting + inside a literal. Insert a missing c-backward-syntactic-ws in the handling of + C++ attributes. Correctly handle an unmatched (. Better handle point + starting inside a [ or (. Tidy up the handling of syntactic whitespace at the + end of the buffer. + +2022-08-24 Santiago Calandrino (tiny change) + + Fix string padding in gdb-mi + + * lisp/progmodes/gdb-mi.el (gdb-table): Fix string padding in + gdb-mi (bug#57362). + (gdb-pad-string): Unobsolete. + (gdb-table-string): Re-fix string padding. + +2022-08-24 Lars Ingebrigtsen + + Don't lose read-only marking when reverting a view-mode buffer + + * lisp/view.el (view--enable): Don't lose read-only-ness when + reverting (bug#35166). + +2022-08-24 Lars Ingebrigtsen + + When reverting, preserve the readedness state set by `C-x C-q' + + * lisp/files.el (revert-buffer): Save the user's intention in a + variable (bug#50431). + + * lisp/simple.el (read-only-mode): Use it. + +2022-08-24 Po Lu + + Fix input extension focus tracking with some window managers + + * src/xterm.c (handle_one_xevent): If a window manager sends us + FocusIn and FocusOut with XSendEvent (they do that), don't + detect focus changes when XInput 2 is enabled. The X server + will tell us the actual truth if the focus really did change. + +2022-08-24 Stefan Kangas + + Make mh-colors-available-p obsolete + + * lisp/mh-e/mh-utils.el (mh-colors-available-p): Redefine as + obsolete function alias for 'display-color-p'. + +2022-08-24 Stefan Kangas + + Prefer saying "init file" to ".emacs" in FAQ + + * doc/misc/efaq.texi: Prefer saying "init file" to + ".emacs". (Bug#49424) + +2022-08-23 Stefan Kangas + + Use substitute-command-keys in a few more places + + * lisp/indent.el (edit-tab-stops): + * lisp/printing.el (pr-help-message, pr-show-setup): + * lisp/progmodes/cperl-mode.el (cperl-narrow-to-here-doc): Use + substitute-command-keys. + +2022-08-23 Stefan Kangas + + Move generalized variable `substring' doc to elisp manual + + * doc/misc/cl.texi (Setf Extensions): Move documentation on + 'substring' generalized variable from here... + * doc/lispref/variables.texi (Setting Generalized Variables): + ...to here. + +2022-08-23 Stefan Kangas + + Move generalized variable docs to elisp manual + + * doc/misc/cl.texi (Setf Extensions): Delete documentation on obsolete + generalized variable 'buffer-substring'. Move documentation on + generalized variables from here... + * doc/lispref/variables.texi (Setting Generalized Variables): + ...to here. These variables have already been moved to gv.el. + +2022-08-23 Stefan Kangas + + Update documentation for obsolete generalized variables + + * doc/misc/cl.texi (Setf Extensions): Delete obsolete generalized + variables from list. + * etc/NEWS: Fix sorting of obsolete generalized variables. + +2022-08-23 Gregory Heytings + + Merge master into feature/improved-locked-narrowing. + +2022-08-23 Gregory Heytings + + Improve detection of long lines. + + * src/buffer.h (struct buffer_text): New field. + (BUF_CHARS_UNCHANGED_MODIFIED, CHARS_UNCHANGED_MODIFIED): New macros. + + * src/buffer.c (Fget_buffer_create): Initialize the new field. + + * src/xdisp.c (mark_window_display_accurate_1): Set the new field. + (redisplay_window): Use it, together with CHARS_MODIFF, instead of + MODIFF and UNCHANGED_MODIFIED to decide whether to check for long + lines. + + * src/pdumper.c (dump_buffer): Dump the new field. + +2022-08-23 Lars Ingebrigtsen + + Add NEWS entry about obsoleted generalized variables + +2022-08-23 Stefan Kangas + + Make XEmacs compat alias face-background-pixmap obsolete + + * lisp/faces.el (face-background-pixmap) + (set-face-background-pixmap): Make XEmacs compat aliases obsolete in + favor of 'face-stipple' and 'set-face-stipple'. Update callers. + + * lisp/emacs-lisp/gv.el (face-background-pixmap): Make XEmacs + alias obsolete as a generalized variable. + (face-stipple): New generalized variable. + * doc/misc/cl.texi (Setf Extensions): Refer to above new generalized + variable instead of the obsolete one. + +2022-08-23 Stefan Monnier + + * lisp/progmodes/elisp-mode.el (elisp--local-variables-1): Fix bug#50034 + + Don't burp if the arg list of a function is not actually a list. + +2022-08-23 Stefan Kangas + + Make Emacs 20 compat alias obsolete in eudcb-ldap.el + + * lisp/net/eudcb-ldap.el (eudc-ldap-get-host-parameter): Make + Emacs 20 compat alias obsolete. + +2022-08-23 Gerd Möllmann + + Fix pixel-scroll-precision in a corner case + + * lisp/pixel-scroll.el (pixel-scroll-precision-scroll-up-page): Handle + case that point cannot be found. + (pixel-scroll-precision-scroll-up): Handle case that window is one line high + (bug#57349) + +2022-08-23 Po Lu + + Make frame synchronization conditional on clock_gettime + + * src/xfns.c (x_set_parent_frame) + (x_set_use_frame_synchronization): + * src/xterm.c (x_update_begin, show_back_buffer, x_update_end) + (x_display_set_last_user_time, handle_one_xevent): + * src/xterm.h (struct x_output): Define out vsync code when + !HAVE_CLOCK_GETTIME. (bug#57346) + +2022-08-23 Po Lu + + Make frame synchronization conditional on clock_gettime + + * src/xfns.c (x_set_parent_frame) + (x_set_use_frame_synchronization): + * src/xterm.c (x_update_begin, show_back_buffer, x_update_end) + (x_display_set_last_user_time, handle_one_xevent): + * src/xterm.h (struct x_output): Define out vsync code when + !HAVE_CLOCK_GETTIME. + +2022-08-23 Lars Ingebrigtsen + + Disable a lisp-mode test that now fails + + * test/lisp/emacs-lisp/lisp-mode-tests.el + (test-lisp-current-defun-name): Comment-out now-failing tests. + +2022-08-23 Lars Ingebrigtsen + + Revert the changes to lisp-current-defun-name + + * lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Revert + back to the old version before bug#49592. The new approach just + doesn't work well enough -- we don't really have the data to know + that, say, `make-obsolete-variable' is about the second symbol and + not the first. + +2022-08-23 Lars Ingebrigtsen + + Don't mention obsolete generalized variables in *Help* + + * lisp/help-fns.el (help-fns--generalized-variable): Don't mention + obsolete ones. + +2022-08-23 Lars Ingebrigtsen + + Make buffer-local-value obsolete as a generalized variable + + * lisp/electric.el (electric-indent-local-mode) + (electric-layout-local-mode, electric-quote-local-mode): + * lisp/elec-pair.el (electric-pair-local-mode): Adjust usage. + * lisp/emacs-lisp/gv.el (make-obsolete-generalized-variable): Move + since we're using it earlier in the file. + (buffer-local-value): Make obsolete as a generalized variable + since the semantics are unclear (bug#26624). + +2022-08-23 Thierry Volpiatto + + Fix wdired with (dired '(dir f1 f2 ...)) + + * lisp/wdired.el (wdired-finish-edit): Fix wdired with (dired + '(dir f1 f2 ...)) (bug#57334). + +2022-08-23 Stefan Kangas + + Merge from origin/emacs-28 + + 1dd0a5c5db ; * doc/misc/htmlfontify.texi: Fix version. + +2022-08-22 Augusto Stoffel + + Fix completion-predicate of Python shell commands + + * lisp/progmodes/python.el: Change some completion predicates. + (python-shell--completion-predicate): New completion predicate + function. (Bug#57184) + +2022-08-22 Stefan Kangas + + Make point-at-eol and point-at-bol obsolete + + * lisp/subr.el (point-at-eol, point-at-bol): Make XEmacs compat + aliases obsolete in favor of `pos-bol'/'line-beginning-position' or + 'pos-eol'/'line-end-position'. Update callers. + Ref: https://lists.gnu.org/r/emacs-devel/2022-08/msg00853.html + +2022-08-22 Po Lu + + Allow disabling the input extension at runtime on GTK 3 + + * src/xterm.c (xi_check_toolkit): New function. + (x_term_init): Do not enable the input extension should that + fail. + +2022-08-22 Lars Ingebrigtsen + + Fix some no-X build warnings + + * lisp/cus-edit.el (fringe-bitmap-p): Autoload. + + * lisp/image.el (clear-image-cache): Declare. + + * lisp/mouse.el (dnd-begin-file-dram): Autoload. + + * lisp/thumbs.el (image-supported-file-p): Declare (bug#57342). + + * lisp/mail/rmailmm.el (rmail-mime-set-bulk-data): + * lisp/emacs-lisp/icons.el (icons--create): Avoid warnings on no-X + builds. + +2022-08-22 Michael Albinus + + auth-source: Fix wrong-type-argument when searching secret services + + `auth-source-search' can be called with an integer port number, + while the backend implementation doesn't allow non-string attributes. + + * doc/misc/auth.texi (Secret Service API): Attribute values are + stringified. + + * lisp/auth-source.el (auth-source-secrets-search): + Ensure attributes are string. (Bug#55199) + +2022-08-22 Lars Ingebrigtsen + + Link the "f" interactive spec to `read-file-name' in the manual + + * doc/lispref/commands.texi (Interactive Codes): Link to the + Reading File Names node. + +2022-08-22 Robert Pluim + + Use the attributes of frame's monitor for gamegrid + + * lisp/play/gamegrid.el (gamegrid-calculate-glyph-size): Use the + monitor where the current frame is displayed rather than the primary + monitor. + +2022-08-22 Stefan Kangas + + Prefer pos-bol and pos-eol in tabulated-list.el + + * lisp/emacs-lisp/tabulated-list.el (tabulated-list-print) + (tabulated-list-print-entry, tabulated-list-delete-entry) + (tabulated-list-set-col, tabulated-list-previous-column): Prefer + pos-bol and pos-eol. + +2022-08-22 Lars Ingebrigtsen + + Make ispell-find-hunspell-dictionaries more resilient + + * lisp/textmodes/ispell.el (ispell-find-hunspell-dictionaries): + Try harder to find the dictionary (bug#49982). + +2022-08-22 Lars Ingebrigtsen + + Fix indent-tabs-mode globality + + * lisp/simple.el (indent-tabs-mode): This is not a global mode, so + don't claim it is (bug#49971). + +2022-08-22 Lars Ingebrigtsen + + Make the size of elements the same in pgtk and X in tetris + + * lisp/play/gamegrid.el (gamegrid-glyph-height-mm): Decrease + height a bit (since it wasn't really that height). + (gamegrid-calculate-glyph-size): Change calculation to work on + both X and pgtk (bug#49937). + (gamegrid-make-glyph): Inhibit image scaling. + +2022-08-22 Lars Ingebrigtsen + + Remove probably debugging code in reb-fontify-string-re + + * lisp/emacs-lisp/re-builder.el (reb-fontify-string-re): Remove + code that looks like left-over debugging code. This fixes a + compilation warning. + +2022-08-22 Lars Ingebrigtsen + + Make start/end in libxml-parse-html-region optional + + * doc/lispref/text.texi (Parsing HTML/XML): Adjust. + + * src/xml.c (parse_region): Default start/end to point-min/point-max. + (Flibxml_parse_html_region, Flibxml_parse_xml_region): Make + start/end optional. + +2022-08-22 Lars Ingebrigtsen + + Fix defcustom type of auto-save-file-name-transforms + + * lisp/files.el (auto-save-file-name-transforms): Fix the + defcustom type (bug#57321). + +2022-08-22 Gerd Möllmann + + LLDB support: handle unsorted enum member lists + + * etc/emacs_lldb.py (enumerator_name): Handle the case that enum + member list is not sorted by value. + +2022-08-22 Andrea Corallo + + * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Fix some type spec + +2022-08-22 Stefan Kangas + + Merge from origin/emacs-28 + + 582ea6a1e9 Update to Org 9.5.4-19-g4dff42 + 7a3ae3cb62 ; * lisp/find-file.el (ff-other-file-alist): Fix typo. + c3087b59f0 ; * lisp/find-file.el (ff-other-file-alist): Another doc f... + 1e1263b00b * lisp/find-file.el (ff-other-file-alist): Doc fix. (Bug#... + +2022-08-21 Po Lu + + Fix child frame focus for MPX environments + + * src/xterm.c (handle_one_xevent): Set child frame click-to + focus on the pointer device's attachment. + +2022-08-21 Gonzalo Larumbe + + Fix more lexical-binding fallout in vhdl-speedbar-insert-hierarchy + + * lisp/progmodes/vhdl-mode.el (vhdl-speedbar-insert-hierarchy): + Check the input arguments, not the dynamically bound `end-arglist' + (bug#57327). + +2022-08-21 Lars Ingebrigtsen + + Make *Help* display info about generalized variables + + * lisp/help-fns.el (help-fns--generalized-variable): New function + to document generalized variables. + +2022-08-21 Lars Ingebrigtsen + + Revert "Make the generalized buffer-local-variable obsolete" + + This reverts commit bfe222288e02472bff0e1ab5ba7ef26af6a2769a. + + This led to the local modes not working. + +2022-08-21 Lars Ingebrigtsen + + Regenerated ldefs-boot.el + +2022-08-21 Lars Ingebrigtsen + + Make the generalized buffer-local-variable obsolete + + * lisp/paren.el (show-paren-local-mode): + * lisp/electric.el (electric-indent-local-mode) + (electric-layout-local-mode, electric-quote-local-mode): + * lisp/elec-pair.el (electric-pair-local-mode): Don't use it. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-warn-obsolete): Autoload. + + * lisp/emacs-lisp/gv.el (buffer-local-variable): Make obsolete + (bug#26624). + + * lisp/emacs-lisp/gv.el (make-obsolete-generalized-variable): Move + to allow usage. + +2022-08-21 Kyle Meyer + + Update to Org 9.5.4-19-g4dff42 + +2022-08-21 Gregory Heytings + + Minor improvements to locked narrowing. + + * lisp/subr.el (with-locked-narrowing): Add 'save-restriction' around + the macro body. Update docstring. + + * src/editfns.c (Fwiden, Fnarrowing_lock): Docstring improvements. + +2022-08-21 Lars Ingebrigtsen + + Adjust autorevert tests to recent change + + * test/lisp/autorevert-tests.el (auto-revert--wait-for-revert): + Adjust test to code change. + +2022-08-21 Lars Ingebrigtsen + + Make many seldom-used generalized variables obsolete + + The vast majority of these are unused in-tree, and many of them + perform actions that aren't obvious when reading the code. + + * lisp/server.el (server-ensure-safe-dir): Prefer with-file-modes + over letf-ing default-file-modes. + (server-start): Ditto. + + * lisp/winner.el (winner-set-conf): Don't use generalized variable + window-height. + + * lisp/emacs-lisp/gv.el: Make most little-used generalized + variables obsolete. + + * lisp/org/oc-basic.el (org-cite-basic--set-keymap): Adjust + buffer-substring generalized variable usage. + +2022-08-21 Lars Ingebrigtsen + + Make it possible to mark generalized variables as obsolete + + * doc/lispref/variables.texi (Adding Generalized Variables): + Document it. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-warn-obsolete): Alter + the interface so that it can also be used by generalized variable + warnings. + (byte-compile-function-warn): Adjust caller. + (byte-compile-check-variable): Adjust caller. + + * lisp/emacs-lisp/gv.el (gv-get): Warn about obsolete generalized + variables (bug#49730). + (make-obsolete-generalized-variable): New function. + +2022-08-21 Gregory Heytings + + Better way to protect redisplay routines from locked narrowings. + + * src/xdisp.c (reset_outermost_narrowing, + unwind_reset_outermost_narrowing): New functions. + (redisplay_internal): Use the new functions. + + * src/editfns.c (Fnarrow_to_region): Use the limits of the + locked restriction instead of the position arguments if necessary. + Update docstring. + (Fnarrowing_lock): Update docstring. + +2022-08-21 Gregory Heytings + + Revert 4f19e1a5d1 + +2022-08-21 Eli Zaretskii + + * lisp/find-file.el (ff-other-file-alist): Doc fix. (Bug#57325) + +2022-08-21 Lars Ingebrigtsen + + Mention delete-line in shortdoc + + * lisp/emacs-lisp/shortdoc.el (buffer): Mention delete-line. + +2022-08-21 Lars Ingebrigtsen + + Simplify `delete-line' + + * lisp/subr.el (delete-line): Simplify. + +2022-08-21 Stefan Kangas + + Prefer pos-bol and pos-eol in bookmark.el + + * lisp/bookmark.el (bookmark--set-fringe-mark) + (bookmark--remove-fringe-mark, bookmark-kill-line) + (bookmark--jump-via): Prefer pos-bol and pos-eol. + +2022-08-21 Lars Ingebrigtsen + + Remove a newline from the end of an error message + + * src/pdumper.c (dump_native_comp_unit): Remove newline from end + of error message. + +2022-08-21 Mattias Engdegård + + Fix eshell-pipe-broken signaling + + * lisp/eshell/esh-io.el (eshell-output-object-to-target): + Second argument to `signal` should be a list. + +2022-08-21 Stefan Kangas + + Mark another esh-proc test as unstable + + * test/lisp/eshell/esh-proc-tests.el + (esh-proc-test/pipeline-connection-type/middle): Mark test as unstable + as it fails quite a lot. + +2022-08-21 Stefan Kangas + + Prefer pos-bol and pos-eol in tests + + * test/lisp/calendar/todo-mode-tests.el + (todo-test-toggle-item-header02, todo-test-edit-item-date-month) + (todo-test-multiline-item-indentation-1) + (todo-test-multiline-item-indentation-2) + (todo-test-multiline-item-indentation-3): + * test/lisp/cedet/semantic-utest-ia.el (semantic-ia-utest-buffer) + (semantic-sr-utest-buffer-refs): + * test/lisp/cedet/semantic-utest.el (semantic-utest-kill-indicator) + (semantic-utest-unkill-indicator): + * test/lisp/dired-tests.el (dired-test-bug27968): + * test/lisp/emacs-lisp/backtrace-tests.el + (backtrace-tests--verify-single-and-multi-line): + * test/lisp/emacs-lisp/find-func-tests.el + (find-func-tests--find-library-verbose): + * test/lisp/erc/erc-tests.el (erc-ring-previous-command) + (erc-log-irc-protocol): + * test/lisp/gnus/message-tests.el (message-mode-propertize): + * test/lisp/info-xref-tests.el (info-xref-test-emacs-manuals): + * test/lisp/mail/footnote-tests.el (footnote-tests-same-place): + * test/lisp/progmodes/elisp-mode-tests.el + (elisp-shorthand-completion-at-point): + * test/lisp/progmodes/f90-tests.el (f90-test-bug38415): + * test/lisp/progmodes/python-tests.el + (python-indent-electric-comma-inside-multiline-string) + (python-indent-electric-comma-after-multiline-string) + (python-indent-electric-colon-1, python-indent-electric-colon-2) + (python-indent-electric-colon-3, python-indent-electric-colon-4) + (python-mark-defun-2, python-mark-defun-3, python-mark-defun-4) + (python-mark-defun-5, python-nav-end-of-defun-2) + (python-nav-end-of-statement-1, python-nav-end-of-block-1) + (python-indent-dedent-line-backspace-2) + (python-indent-dedent-line-backspace-3) + (python-eldoc--get-symbol-at-point-1) + (python-info-beginning-of-statement-p-1) + (python-info-beginning-of-statement-p-2): + * test/lisp/replace-tests.el (replace-occur-revert-bug32543) + (replace-occur-revert-bug32987): + * test/lisp/simple-tests.el (simple-delete-indentation-boundaries) + (simple-delete-indentation-region) + (line-number-at-pos-in-narrow-buffer) + (line-number-at-pos-keeps-restriction): + * test/lisp/textmodes/css-mode-tests.el (css-mode-test-selectors) + (scss-mode-test-selectors): + * test/lisp/textmodes/fill-tests.el (fill-test-unbreakable-paragraph) + (fill-test-breakable-paragraph): + * test/lisp/time-stamp-tests.el (time-stamp-custom-pattern): + * test/src/lread-tests.el (lread-tests--last-message): + * test/src/process-tests.el (set-process-filter-t): + * test/src/undo-tests.el (undo-test-skip-invalidated-markers): Prefer + pos-bol and pos-eol. + +2022-08-21 Stefan Kangas + + Don't end autorevert message with a period + + * lisp/autorevert.el (auto-revert-handler): Don't end message with + a period. + +2022-08-21 Lars Ingebrigtsen + + Tweak emacs-bug--system-description + + * lisp/mail/emacsbug.el (emacs-bug--system-description): Fill the + commonly-overlong Emacs version bit. + +2022-08-21 Mattias Engdegård + + Update function properties and optimizations + + * lisp/emacs-lisp/byte-opt.el (byte-opt--bool-value-form): + Recognize boolean identity in aset, put, function-put and puthash. + * lisp/emacs-lisp/byte-opt.el (byte-compile-trueconstp): + Mark more functions as non-nil-returning, including the new + pos-bol and pos-eol. + * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): + Mark pos-bol and pos-eol as side-effect-free. + +2022-08-21 Mattias Engdegård + + * lisp/emacs-lisp/shortdoc.el (buffer): Add missing functions + + Add preceding-char and char-before because following-char and + char-after were already there. + +2022-08-21 Gerd Möllmann + + Fix src-depending-on-lisp target + + * Makefile.in (src-depending-on-lisp): Pass BIN_DESTDIR and + ELN_DESTDIR to make -C src (bug#57309). + +2022-08-21 Lars Ingebrigtsen + + Mark esh-proc test as unstable + + * test/lisp/eshell/esh-proc-tests.el + (esh-proc-test/pipeline-connection-type/last): Mark test as + unstable as it fails quite a lot. + +2022-08-21 Lars Ingebrigtsen + + Rename newly-added eol/bol functions to pos-eol/pos-bol + + * lisp/emacs-lisp/shortdoc.el (buffer): + * doc/lispref/positions.texi (Text Lines): Adjust. + * src/editfns.c (Fpos_bol): Rename from Fpos. + (Fpos_eol): Rename from Feol. + +2022-08-21 Gregory Heytings + + Fix mode line redisplay bug when locked narrowing is in effect. + + * src/xdisp.c (decode_mode_spec): Use the actual narrowing bounds when + redisplay is called while a locked narrowing is in effect. + +2022-08-21 Po Lu + + Minor optimization to x_query_pointer_1 + + * src/xterm.c (x_query_pointer_1): Clear client pointer if it + disappeared. + +2022-08-20 Gregory Heytings + + Fix user narrowing handling. + + * src/editfns.c (syms_of_editfns): New 'outermost-narrowing' internal + variable. + (Fwiden, Fnarrow_to_region): Set and reset the variable. + (Fnarrowing_lock): Use it. + +2022-08-20 Gregory Heytings + + Improved locked narrowing. + + * src/editfns.c (Fnarrowing_lock, Fnarrowing_unlock, + narrow_to_region_locked, unwind_narrow_to_region_locked): + New functions. + (Fnarrow_to_region, Fwiden): Adapt, and make it possible to use + these functions within the bounds of the locked narrowing. + (syms_of_editfns): Change the name of the variable, make it + buffer-local, and add the two Snarrowing_lock and Snarrowing_unlock + subroutines. + + * src/lisp.h: Prototype of 'narrow_to_region_locked'. + + * src/xdisp.c (handle_fontified_prop): + * src/keyboard.c (safe_run_hooks_maybe_narrowed): Use + 'narrow_to_region_locked'. + + * lisp/subr.el (with-locked-narrowing): New macro. + +2022-08-20 Philip Kaludercic + + * package-vc.el (package-vc-unpack): Ignore dir files + +2022-08-20 Lars Ingebrigtsen + + Don't use the system-file-manager icon in the toolbar + + * lisp/term/x-win.el (x-gtk-stock-map): + * lisp/term/pgtk-win.el (x-gtk-stock-map): Don't use + n:system-file-manager, because it's larger than the other Gtk + icons in some themes (bug#56627). + +2022-08-20 Lars Ingebrigtsen + + Make conf-javaprop-mode only claim that # lines are comments + + * lisp/textmodes/conf-mode.el (conf-javaprop-mode-syntax-table): + Make obsolete and remove syntax entries for // and /* (bug#49077), + because only # are comments in javaprop files. + (conf-javaprop-mode): Adjust doc string to just mention # + comments. + +2022-08-20 Lars Ingebrigtsen + + Tweak admin/emacs output + +2022-08-20 Michael Albinus + + Improve Tramp's manual + + * doc/misc/tramp.texi (Frequently Asked Questions): + Improve recommendations for speeding up. + +2022-08-20 Protesilaos Stavrou + + Fix typos in modus-themes.org + + * modus-themes.org (Option for inhibiting theme reload) + (Option for completion framework aesthetics, Advanced customization) + (Remap face with local value, Cycle through arbitrary colors) + (Custom Org emphasis faces, Note on git-gutter in Doom Emacs): Fix + typographic errors. + +2022-08-19 Po Lu + + Fix crash when the keymap changes + + * src/xterm.c (handle_one_xevent): Call + XkbRefreshKeyboardMapping first before trying to update the map. + +2022-08-19 Mattias Engdegård + + Move `while` syntax check from optimizer to macroexpand + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-while): Move check... + * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): ...here. + +2022-08-19 Philip Kaludercic + + * package-vc.el (package-vc-unpack): Mark packages as selected + +2022-08-19 Stefan Kangas + + Fix return value of help--key-description-fontified + + This fixes a bug with warning about obsolete commands in + `command-execute', where we incorrectly showed empty parenthesis + instead of the empty string when there was no keybinding for the new + command. + + * lisp/help.el (help--key-description-fontified): Return nil instead + of the empty string if KEYS argument is nil. + * test/lisp/help-tests.el (help--key-description-fontified): New test. + (with-substitute-command-keys-test): Fix indentation. + +2022-08-19 Stefan Kangas + + Display new keybinding in obsolete command warning + + * lisp/emacs-lisp/macroexp.el (macroexp--obsolete-warning): + * lisp/simple.el (command-execute): When warning about an obsolete + command, display the keybinding for the new command. + +2022-08-19 Stefan Kangas + + * lisp/bookmark.el (bookmark-menu-heading): Delete face. + +2022-08-19 Stefan Kangas + + Ignore variable Info-fontify, deleted in 22.1 + + * lisp/info.el (Info-mode-hook): Don't obey variable Info-fontify, + deleted in Emacs 22.1. + +2022-08-19 Stefan Kangas + + Make two compat aliases obsolete in cc-defs.el + + * lisp/progmodes/cc-defs.el (c-regexp-opt, c-regexp-opt-depth): + Make compat alias obsolete. + +2022-08-19 Stefan Kangas + + Delete two functions obsolete since Emacs 23 + + These were announced as removed in Emacs 28.1 NEWS, but apparently + never actually deleted: only their obsoletion warning was removed. + So the warnings were reintroduced in Emacs 28.2, and we now actually + delete them here instead. + + * src/process.c (Fset_process_filter_multibyte) + (Fprocess_filter_multibyte_p): Delete functions obsolete since + Emacs 23. + (syms_of_process): Delete corresponding defsubrs. + * lisp/subr.el (process-filter-multibyte-p) + (set-process-filter-multibyte): Delete obsoletion. + * lisp/erc/erc-dcc.el (erc-dcc-server): Don't use obsolete functions. + +2022-08-19 Stefan Kangas + + Merge from origin/emacs-28 + + f2c0fb2615 Resurrect obsoletion warning for two functions + 9c0eec4ed8 * src/window.c (select_window): Fix assert for buffer = no... + 16dfe04be2 Find libgccjit on macOS with Homebrew differently + + # Conflicts: + # etc/NEWS + +2022-08-19 Stefan Kangas + + Resurrect obsoletion warning for two functions + + These were supposed to have been deleted, but never were. Resurrect + their obsoletion warning and let's delete them in Emacs 29 instead. + + * lisp/subr.el (process-filter-multibyte-p) + (set-process-filter-multibyte): Resurrect obsoletion warning. + * etc/NEWS: Don't announce their deletion. + +2022-08-19 Alan Mackenzie + + * src/window.c (select_window): Fix assert for buffer = non-active minibuffer + +2022-08-19 Stefan Kangas + + Prefer defvar-keymap in doc-view.el + + * lisp/doc-view.el (doc-view-mode-map, doc-view-minor-mode-map) + (doc-view-presentation-mode-map): Prefer defvar-keymap. + +2022-08-19 Robert Pluim + + Improve 'ns-read-file-name' docstring + + * src/nsfns.m (Fns_read_file_name): Use '-' instead of '_' when naming + args. + +2022-08-19 Robert Pluim + + Mark only VS-16 as emoji + + * admin/unidata/blocks.awk: Only mark U+FE0F as belonging to the + 'emoji' script. (Bug#57072) + +2022-08-19 Lars Ingebrigtsen + + Fix underscores in argument names in ns-win + + * lisp/term/ns-win.el (x-file-dialog): Don't use underscores in + argument names. + +2022-08-19 Augusto Stoffel + + python.el: Add completion-predicate symbol property to commands + + * lisp/progmodes/python.el: Add a completion-predicate property to + most commands defined in this file; some are only useful in + python-mode, others in inferior-python mode as well. (Bug#53913) + (python-skeleton-define, python-define-auxiliary-skeleton): Add + appropriate completion-predicate properties. + (python--completion-predicate): New function. + +2022-08-19 Lars Ingebrigtsen + + Add new functions eol and bol + + * doc/lispref/positions.texi (Text Lines): Document them + * lisp/emacs-lisp/shortdoc.el: Mention them, and also the + buffer/line predicates. + + * src/editfns.c (bol): New function. + (Fbol): New defun. + (Fline_beginning_position): Use `bol'. + (eol): New function. + (Feol): New defun. + (Fline_end_position): Use `eol'. + +2022-08-19 Augusto Stoffel + + python-mode: Remove special outline-heading-end-regexp + + It doesn't work well with the new type annotation syntax introduced in + Python 3.5. + + * lisp/progmodes/python.el (python-mode): Remove buffer-local setting + of outline-heading-end-regexp. (Bug#53913) + +2022-08-19 Augusto Stoffel + + python.el: Adjustments to Flymake backend + + * lisp/progmodes/python.el (python-flymake-command): Advertise + possibility to use pylint. + (python-flymake-command-output-pattern): Make compatible with recent + versions of pyflakes. (Bug#53913) + +2022-08-19 Augusto Stoffel + + python-check-command: Don't use absolute file names + + Absolute executable file names are incompatible with Tramp and + packages that switch between virtualenvs. + + * lisp/progmodes/python.el (python-check-command): Don't use absolute + file names. (Bug#53913) + +2022-08-19 Paul A. Patience (tiny change) + + Fix mis-spelling of c-awk-old-ByLL and really make it buffer-local + + * lisp/progmodes/cc-awk.el (c-awk-old-ByLL): Make the + correct variable buffer-local (bug#57294). + +2022-08-19 Mattias Engdegård + + * lisp/edmacro.el (edmacro-sanitize-for-string): Fix condition. + + This is of little consequence in practice since the input is always a + vector of keys representing a prefix, where bit 7 isn't likely to be + set when higher bits are set, but it silences a (justified) warning. + +2022-08-19 Lars Ingebrigtsen + + Fix region-extract-function compilation warning + + * lisp/simple.el (region-extract-function): Clean up the logic + slightly to avoid a warning. + +2022-08-19 Lars Ingebrigtsen + + Fix ns-win.el (x-file-dialog) declaration + + * lisp/term/ns-win.el (x-file-dialog): Give the function the same + signature here as other definitions. + +2022-08-19 Protesilaos Stavrou + + Update the modus-themes to their 2.6.0 version + + * doc/misc/modus-themes.org (Sample configuration with and without + use-package): Add missing parenthesis to the manual. + (Option for completion framework aesthetics) + (Custom Org emphasis faces): Minor rewording. + (Custom hl-todo colors): Add instructions on how to add user-level + support for the 'solaire' package, as the modus-themes no longer + support it. + (Full support for packages or face groups): Remove 'solaire' from the + list of supported packages. + (Note on git-gutter in Doom Emacs) + (Note on php-mode multiline comments) + (Note on highlight-parentheses.el): Clarify need to re-load the + theme for changes to take effect. + (Acknowledgements): Update acknowledgements. + + * etc/themes/modus-themes.el (modus-themes-faces): Fix typo. + (modus-themes--version): Reword docstring and update to current value. + (modus-themes--weight): Stop using deprecated alias of symbol. + + * etc/themes/modus-operandi-theme.el: + * etc/themes/modus-vivendi-theme.el: Bump version number. + + Detailed release notes: + . + +2022-08-19 Gerd Möllmann + + Find libgccjit on macOS with Homebrew differently + + * configure.ac (MAC_LIBS): Find libgccjit's directory slightly + differently for brew installations. + +2022-08-19 Andrea Corallo + + * src/pdumper.c (dump_native_comp_unit): Error if CU is not fixed-up + + * src/alloc.c (pure_alloc): Warn for pure space overflow + + * src/pdumper.c (Fdump_emacs_portable): Check and warn for pure space overflow + +2022-08-19 Yuan Fu + + Remove treesit manual entries for deleted functions + + * doc/lispref/parsing.texi: Remove documentation for + treesit-get-parser-create and treesit-get-parser. + +2022-08-19 John Wiegley + + Revert "Remove use-package-font-lock-keywords" + + This reverts commit 4938167bfffcf08279445827d2eaae78c9557675. + +2022-08-19 Morgan Smith + + Speed up image-dired-display-image + + * lisp/image-dired.el (image-dired-display-image): Open file literally + so we don't run image-mode twice. (Bug#57281) + +2022-08-19 Stefan Kangas + + Merge from origin/emacs-28 + + e64d811b51 Improve image-mode-as-hex docstring + +2022-08-18 Po Lu + + Fix more calls to XQueryPointer for MPX + + * src/xterm.c (x_dnd_begin_drag_and_drop): Set DND devices to -1 + if XI2 is not supported on the given display. + (x_query_pointer): Make wrapper around x_query_pointer_1. + (x_query_pointer_1): Split off most of x_query_pointer to this + function. Allow a specific client pointer to be specified. + (x_dnd_update_tooltip_now, x_dnd_update_state): Use + x_query_pointer_1 with the right device instead of + XQueryPointer. + +2022-08-18 John Wiegley + + Merge pull request from belak/remove-extra-font-lock-keywords + + GitHub-reference: https://github.com/jwiegley/use-package/issues/859 + +2022-08-18 Stefan Kangas + + Improve obsoletion of image-transform-fit-to-{height,width} + + * lisp/image-mode.el (image-transform-fit-to-height) + (image-transform-fit-to-width): Change obsoletion to refer to new + command 'image-transform-fit-to-window'. + +2022-08-18 Andrea Corallo + + * Rename `comp--typeof-builtin-types' + + * lisp/emacs-lisp/comp-cstr.el (comp--typeof-builtin-types): Rename. + (comp-normalize-valset, comp-common-supertype-2): Update. + +2022-08-18 Andrea Corallo + + * lisp/emacs-lisp/comp-cstr.el (comp--all-builtin-types): Remove + +2022-08-18 Arash Esbati + + Adjust the environment name for the minted package + + * lisp/textmodes/reftex-vars.el (reftex-label-alist-builtin): Fix + the name of the environment which can contain a \label macro. + +2022-08-18 Stefan Kangas + + Improve image-mode-as-hex docstring + + * lisp/image-mode.el: Fix typos. + (image-mode-as-hex): Doc fix; say that it uses 'hexl-mode' and reflow. + +2022-08-18 Stefan Kangas + + Do interactive mode tagging in image-mode.el + + * lisp/image-mode.el (image-forward-hscroll) + (image-backward-hscroll, image-next-line, image-previous-line) + (image-scroll-up, image-scroll-down, image-scroll-left) + (image-scroll-right, image-bol, image-eol, image-bob, image-eob) + (image-mode-fit-frame, image-kill-buffer, image-next-file) + (image-previous-file, image-mode-copy-file-name-as-kill) + (image-mode-mark-file, image-mode-unmark-file) + (image-transform-set-percent, image-transform-set-scale) + (image-transform-fit-to-height, image-transform-fit-to-width) + (image-transform-fit-both, image-transform-fit-to-window) + (image-transform-set-rotation, image-transform-set-smoothing) + (image-transform-original, image-transform-reset): Add interactive tag + for image-mode. + +2022-08-18 Stefan Kangas + + Make toggling between image, hex and text more consistent + + * lisp/image-mode.el (image-toggle-hex-display, image-toggle-display): + Ensure commands work correctly also in `hexl-mode'. + (image-mode-to-text): + (image-mode-as-hex, image-mode-as-text): Enable image-minor-mode also + in hexl-mode, which adds the "C-c C-x" keybinding for easier toggling. + +2022-08-18 Stefan Kangas + + New command image-transform-set-percent + + * lisp/image-mode.el (image-transform-set-percent): New command. + (image-mode-map): Bind above new command to "s p". + * doc/emacs/files.texi (Image Mode): Document it. + +2022-08-18 Stefan Kangas + + Prefer defvar-keymap in image-mode.el + + * lisp/image-mode.el (image-mode-map, image-minor-mode-map): + Prefer defvar-keymap. + +2022-08-18 Stefan Kangas + + Merge from origin/emacs-28 + + ef1e68f11d * lisp/image-mode.el (image-mode-as-hex): Fix toggle instr... + dc0fce3a7d ; lisp/image-mode.el: Fix typo. + 254ba1d3e5 * lisp/image-mode.el: Improve commentary. + ac43ac1af9 cl-reduce doc string improvement + +2022-08-18 Stefan Kangas + + * lisp/image-mode.el (image-mode-as-hex): Fix toggle instructions. + +2022-08-18 Michael Albinus + + Fix encoding problem in tramp-sh.el + + * lisp/net/tramp-sh.el (tramp-sh-handle-file-local-copy): + Compute inline coding only if needed. + +2022-08-18 Stefan Monnier + + * doc/misc/cl.texi (Macro Bindings): Fix bug#57263 + + Update `cl-symbol-macrolet` according to the change in response to bug#26073. + +2022-08-18 Stefan Kangas + + * lisp/image-mode.el: Improve commentary. + +2022-08-18 Mattias Engdegård + + Fix string-to-syntax signature in comp-known-type-specifiers + + * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): + `string-to-syntax` can return nil. + +2022-08-18 Andrea Corallo + + * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Fix some type + +2022-08-18 Mattias Engdegård + + More non-nil-returning functions in source optimization + + This change was partially generated and mechanically cross-validated + with function type information from comp-known-type-specifiers in + comp.el. + + * lisp/emacs-lisp/byte-opt.el (byte-compile-trueconstp): + Extend list of functions and fix a typo (logxor). + +2022-08-18 Mattias Engdegård + + Copy-edit doc strings and comments wrt bignum and fixnum + + Don't say that a value is a fixnum if small enough and a bignum + otherwise, because that is now how Lisp integers always work, + and we generally don't expose the fixnum/bignum difference to the user + unless really necessary. + + * src/charset.c (Fencode_char): + * src/editfns.c (Fuser_uid, Fuser_real_uid, Fgroup_gid) + (Fgroup_real_gid, Femacs_pid): + * src/font.c (Ffont_variation_glyphs): + * src/process.c (Fprocess_id): + Edit doc strings. + * src/pgtkselect.c: + * src/xselect.c: Edit comments. + +2022-08-18 kobarity + + Fix Python indentation of block continuation + + * lisp/progmodes/python.el (python-indent--calculate-indentation): + Fix indentation of :after-backslash-block-continuation. + + * test/lisp/progmodes/python-tests.el + (python-indent-after-backslash-6): New test (bug#57262). + +2022-08-18 Lars Ingebrigtsen + + Make GEN message from loaddefs-generate nicer + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Shorten the + informational GEN file relative to the stated directory + (bug#57265). This makes the message nicer for ELPA packages. + +2022-08-18 Colin Woodbury + + cl-reduce doc string improvement + + * lisp/emacs-lisp/cl-seq.el (cl-reduce): Explain what happens when + using :from-end (bug#57273). + +2022-08-18 Gerd Möllmann + + Rebuild the Emacs executable if loaddefs.el has changed + + * Makefile.in (src-depending-on-lisp): Ensure that we check + whether we need to rebuild the Emacs executable if loaddefs.el has + been updated. + +2022-08-18 Stefan Kangas + + Improve update-directory-autoloads deprecation message + + * lisp/obsolete/autoload.el (update-directory-autoloads): Improve + deprecation message. (Bug#57276) + +2022-08-18 Stefan Kangas + + Improve cryptic syntax switch message in re-builder + + * lisp/emacs-lisp/re-builder.el (reb-restart-font-lock): Move message + from here... + * lisp/emacs-lisp/re-builder.el (reb-change-syntax): ...to here. + Change it to be less cryptic. + +2022-08-18 Andrea Corallo + + * lisp/loadup.el: Always fix-up all loaded compilation units + +2022-08-18 Andrea Corallo + + * Expose `comp-loaded-comp-units-h' + + * src/comp.c : remove 'all_loaded_comp_units_h'. + (syms_of_comp): Define `comp-loaded-comp-units-h'. + (register_native_comp_unit, Fnative_elisp_load): Use it. + +2022-08-18 Yuan Fu + + Add treesit-parser-delete + + * src/treesit.c (ts_record_change): Replace CHECK_TS_PARSER with + ts_check_parser. + (make_ts_parser): Initialize deleted field. + (Ftreesit_parser_delete): Replace CHECK_TS_PARSER with + ts_check_parser. Set deleted field. + (Ftreesit_parser_buffer, Ftreesit_parser_language): Replace + CHECK_TS_PARSER with ts_check_parser. + (ts_check_parser): New function. + (Ftreesit_parser_root_node, Ftreesit_parser_set_included_ranges) + (Ftreesit_parser_included_ranges): Replace CHECK_TS_PARSER with + ts_check_parser. + (Qtreesit_parser_deleted): New symbol. + (Qtreesit_parser_deleted): New error. + * src/treesit.h (Lisp_TS_Parser): New field 'deleted'. + +2022-08-18 Philip Kaludercic + + Merge remote-tracking branch 'origin/master' into feature/package+vc + +2022-08-18 Po Lu + + Fix the MS-DOS build + + * config.bat: Generate stdckdint.in.h + * msdos/sedlibmk.inp (STDCKDINT_H) + (GL_GENERATE_STDCKDINT_H_CONDITION): Update these variables too. + +2022-08-18 Paul Eggert + + Fix broken build on Solaris 10 emacs_spawn + + * src/callproc.c (emacs_spawn) [SETUP_SLAVE_TTY]: + pty_flag no longer exists. Use pty_in && std_in >= 0, + which at least compiles. + +2022-08-17 Paul Eggert + + Update from Gnulib by running admin/merge-gnulib + +2022-08-17 Andrea Corallo + + * lisp/emacs-lisp/bytecomp.el (byte-compile-log-1): Create buffer if necessary + +2022-08-17 Alan Mackenzie + + * lisp/progmodes/cc-defs.el (c-safe-scan-lists): Evaluate LIMIT just once + +2022-08-17 Basil L. Contovounesios + + Fix Linux APM BIOS flag testing in battery.el + + Original sin detected by recent byte-compiler improvements; see: + https://lists.gnu.org/r/emacs-devel/2022-08/msg00611.html + + * lisp/battery.el (battery-linux-proc-apm): Treat result of logand + as a number, not boolean. + +2022-08-17 Stefan Kangas + + Shorten new manual section "Shell Command Guessing" + + * doc/emacs/dired.texi (Shell Command Guessing): Don't document + unimportant details, and improve wording to be shorter. + +2022-08-17 Stefan Kangas + + Assume dired-guess is now always available + + * lisp/dired-aux.el (dired-read-shell-command): Use + dired-guess-shell-command unconditionally, as it is now always + available. + (dired-do-shell-command): Doc fix; dired-guess is always available. + * lisp/dired.el (dired-do-man): Don't require dired-x. + +2022-08-17 Stefan Kangas + + Move dired-guess commands from dired-x to dired + + * lisp/dired-x.el (dired-shell-command-history) + (dired-guess-shell-alist-default, dired-guess-default) + (dired-guess-shell-command): Move from here... + * lisp/dired-aux.el (dired-shell-command-history) + (dired-guess-shell-alist-default, dired-guess-default) + (dired-guess-shell-command): ...to here. (Bug#21981) + + * lisp/dired-x.el (dired-guess-shell-gnutar) + (dired-guess-shell-gzip-quiet, dired-guess-shell-znew-switches) + (dired-guess-shell-case-fold-search, dired-guess-shell-alist-user): + Move from here... + * lisp/dired.el (dired-guess-shell-gnutar) + (dired-guess-shell-gzip-quiet, dired-guess-shell-znew-switches) + (dired-guess-shell-case-fold-search, dired-guess-shell-alist-user): + ...to here. Change :group to dired-guess. + (dired-guess): New defgroup. + + * test/lisp/dired-x-tests.el (dired-guess-default): Move from here... + * test/lisp/dired-aux-tests.el (dired-guess-default): ...to here. + + * doc/misc/dired-x.texi (Features, Technical Details, Installation): + Delete any mention of shell command guessing. + (Shell Command Guessing): Move from here... + * doc/emacs/dired.texi (Shell Command Guessing): ...to here. Adapt to + better fit the Emacs Manual conventions. + * lisp/dired-aux.el (dired-do-shell-command): Doc fix to adjust for + above changes. + * etc/NEWS: Announce the above change. + +2022-08-17 Stefan Kangas + + Make compat function cperl-putback-char obsolete + + * lisp/progmodes/cperl-mode.el (cperl-putback-char): Make + obsolete. Update callers. + +2022-08-17 Stefan Kangas + + * lisp/progmodes/cperl-mode.el: Improve commentary. + +2022-08-17 Stefan Kangas + + Don't check if autoloaded functions are fboundp + + * lisp/progmodes/cperl-mode.el (cperl-menu, cperl-init-faces): + Assume some autoloaded ps-print.el functions are always there. + +2022-08-17 Brendan O'Dea + + em-unix.el: only pass -H option to grep + + * lisp/eshell/em-unix.el (eshell-grep): Don't add -H, because that + breaks agrep/glimpse etc (bug#57247). + (eshell/grep, eshell/egrep, eshell/fgrep): Instead add it here. + +2022-08-17 kobarity + + Enhance Python font-lock to support multilines + + * test/lisp/progmodes/python-tests.el + (python-tests-assert-faces-after-change): New helper function. + (python-font-lock-keywords-level-1-3) + (python-font-lock-assignment-statement-multiline-*): New tests. + + * lisp/progmodes/python.el (python-rx): Add `sp-nl' to represent + space or newline (with/without backslash). + (python-font-lock-keywords-level-1) + (python-font-lock-keywords-maximum-decoration): Allow newlines + where appropriate. + (python-font-lock-extend-region): New function. + (python-mode): Set `python-font-lock-extend-region' to + `font-lock-extend-after-change-region-function'. + +2022-08-17 Lars Ingebrigtsen + + Revert "Add Python blocks support for hideshow" + + This reverts commit af4cfb519415ed3c1d6d036aac908e4f9ee383eb. + + This led to test failures. + +2022-08-17 Stefan Kangas + + Fix some recently introduced byte-compiler warnings + + * lisp/emulation/viper-util.el (viper-key-to-character): + * lisp/vc/vc-svn.el (vc-svn-dir-extra-headers): Fix warnings. + * lisp/net/eudc-export.el (eudc-batch-export-records-to-bbdb): + Fix buglet. + +2022-08-17 kobarity + + Add Python blocks support for hideshow + + * lisp/progmodes/python.el (python-nav-beginning-of-block-regexp): + New variable. + (python-hideshow-forward-sexp-function): Change to call + `python-nav-end-of-block'. + (python-hideshow-find-next-block): New function to be used as + FIND-NEXT-BLOCK-FUNC in `hs-special-modes-alist'. + (python-info-looking-at-beginning-of-block): New function to be + used as LOOKING-AT-BLOCK-START-P-FUNC in `hs-special-modes-alist'. + (python-mode): Change settings of `hs-special-modes-alist'. + + * test/lisp/progmodes/python-tests.el + (python-hideshow-hide-levels-1): Fix to keep empty lines. + (python-info-looking-at-beginning-of-block-1) + (python-hideshow-hide-levels-3, python-hideshow-hide-levels-4) + (python-hideshow-hide-all-1, python-hideshow-hide-all-2) + (python-hideshow-hide-all-3, python-hideshow-hide-block-1): New + tests (bug#56635). + +2022-08-17 Stefan Kangas + + Merge from origin/emacs-28 + + a4078fa628 ; * lisp/vc/ediff.el: Improve wording in last change. + dd077ebded Revert "; * doc/lispintro/emacs-lisp-intro.texi: Fix typo." + 362c9ab879 * doc/misc/gnus.texi (Article Washing): Fix Links URL. + +2022-08-16 Po Lu + + Avoid disabling device multiple times while handling XI attachment events + + * src/xterm.c (handle_one_xevent): Avoid disabling devices if we + notice it has been disabled while handling XISlaveDetached or + XISlaveAttached. + +2022-08-16 Stefan Monnier + + * src/buffer.c (Frename_buffer): Fix bug#56693 + +2022-08-16 Mattias Engdegård + + * lisp/dired.el (dired-mark-if): Evaluate MSG once to avoid warning. + +2022-08-16 Mattias Engdegård + + Improved `null` (alias `not`) optimization + + Take static boolean information of the argument into account. + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-not): New. + +2022-08-16 Mattias Engdegård + + Improved `and` and `or` optimization + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-and, byte-optimize-or): + Rewrite. Avoid branching on arguments statically known to be true or + false, and hoist code out to an unconditional prefix when possible. + +2022-08-16 Mattias Engdegård + + Improved `if` and `while` optimization + + Recognize some more special cases: + + (if X nil t) -> (not X) + (if X t) -> (not (not X)) + (if X t nil) -> (not (not X)) + (if VAR VAR X...) -> (or VAR (progn X...)) + + * lisp/emacs-lisp/byte-opt.el (byte-opt-negate): New. + (byte-optimize-if): Add transformations above and refactor. + (byte-optimize-while): Better static nil-detection. + +2022-08-16 Mattias Engdegård + + Improved static detection of nil and non-nil expressions + + * lisp/emacs-lisp/byte-opt.el (byte-opt--bool-value-form): New. + (byte-compile-trueconstp, byte-compile-nilconstp): Determine a static + nil or non-nil result in more cases. These functions have grown and + are no longer defsubst. + +2022-08-16 Michael Albinus + + Fix autoload in tramp.el + +2022-08-16 Michael Albinus + + Handle root permissions on remote files + + * lisp/net/tramp.el (tramp-check-cached-permissions): Check also + for remote uid/gid being 0. (Bug#57238) + + * lisp/net/tramp-sh.el (tramp-do-file-attributes-with-ls): + Convert numeric uid/gid strings into real strings. + (tramp-sh-get-signal-strings): Use `zerop'. + + * lisp/net/tramp.el (tramp-root-id-string, tramp-root-id-integer): + New defconsts. + (tramp-handle-find-backup-file-name, tramp-handle-lock-file) + (tramp-local-host-p, tramp-handle-make-auto-save-file-name) + * lisp/net/tramp-sh.el (tramp-default-method-alist) + (ramp-default-user-alist, tramp-find-shell): + * lisp/net/tramp-sudoedit.el (tramp-default-user-alist): Use them. + +2022-08-16 Lars Ingebrigtsen + + dired-do-shell-command doc string clarification + + * lisp/dired-aux.el (dired-do-shell-command): Clarify doc string + (bug#57228). + +2022-08-16 Stefan Kangas + + Advertise obsolete library pgg.el less + + * doc/misc/gnus-faq.texi (FAQ 8-2): + * doc/misc/gnus.texi (Security): + * doc/misc/message.texi (Using OpenPGP, PGP Compatibility): + * doc/misc/mh-e.texi (Reading PGP, Sending PGP): + * lisp/gnus/mml2015.el (mml2015-use): + * lisp/info-look.el (mapc): + * lisp/mh-e/mh-e.el (mh-mml-method-default): Advertise obsolete + library pgg.el less. + + * lisp/mh-e/mh-identity.el (mh-identity-pgg-default-user-id): Rename + from 'mh-identity-gpg-default-user-id', and make the old name into + obsolete variable alias. Update all uses. + +2022-08-16 Po Lu + + Fix XInput hierarchy events not being delivered in daemon mode + + * src/xfns.c (setup_xi_event_mask): Stop selecting for device + hierarchy events. + + * src/xterm.c (xi_select_hierarchy_events, x_term_init): Select + those here instead, on the default root window. + +2022-08-16 Lars Ingebrigtsen + + Make message-delete-line obsolete + + * lisp/gnus/message.el (message-delete-line): Make obsolete. + (message-change-subject, message-cross-post-insert-note) + (message-reduce-to-to-cc, message-indent-citation) + (message-send-mail-with-mh, message-generate-headers) + (message-fill-field-general): Adjust callers. + +2022-08-16 Lars Ingebrigtsen + + Fix buffer-start cleanup in message-indent-citation + + * lisp/gnus/message.el (message-indent-citation): Fix thinko in loop. + +2022-08-16 Eli Zaretskii + + Don't look for long lines beyond the narrowed region + + * src/xdisp.c (redisplay_window): Don't scan for newlines outside + the current buffer's restriction. + +2022-08-16 Stefan Kangas + + Revert "; * doc/lispintro/emacs-lisp-intro.texi: Fix typo." + + This reverts commit 9d0dba44da7ac83d018fff3c26d33dac12ebd806. + + This was not a typo, but incorrectly matching parens in Info-mode. + +2022-08-16 Stefan Kangas + + Modernize spam section in Gnus manual slightly + + * doc/misc/gnus.texi (The problem of spam): Don't explain what + spam is; there is no need for that in 2022. Don't explain + limitations of obsolete software TMDA; it's website has stopped + working but seems to have been updated last in 2007. + (Thwarting Email Spam, Anti-Spam Basics) + (Spam Package Configuration Examples): Prefer "spam" to "UCE". + (The problem of spam): Use example.org in example. + (SpamAssassin, Hashcash): Improve wording. + +2022-08-16 Stefan Kangas + + * doc/misc/gnus.texi (Article Washing): Fix Links URL. + +2022-08-16 Stefan Kangas + + Delete implicit XEmacs references from Gnus manual + + * doc/misc/gnus.texi (Group Buffer Format, Summary Buffer, RSS): + Delete some implicit references to XEmacs. + (RSS): Fix default value. + +2022-08-16 Jim Porter + + Make the bookmark fringe icon look like a bookmark + + * src/fringe.c (large_circle_bits): New variable. + (standard_bitmaps): Add large_circle_bits. + + * lisp/fringe.el (fringe-bitmaps): Add 'large-circle'. + (fringe-custom-set-bitmap): New function. + + * lisp/cus-edit.el (widget-fringe-bitmap-prompt-value-history): New + variable. + (fringe-bitmap): New widget. + + * lisp/bookmark.el (bookmark-set-fringe-mark): Obsolete in favor of... + (bookmark-fringe-mark): ... this. + (bookmark-fringe-mark): Rename this fringe bitmap to... + (bookmark-mark): ... and change it to look like a bookmark. + (bookmark-face): Don't set the ':background' of the face. Instead, + set ':distant-foreground'. + (bookmark--set-fringe-mark, bookmark--remove-fringe-mark) + (bookmark-store, bookmark--jump-via): Consult the + 'bookmark-fringe-mark' option. + + * doc/lispref/customize.texi (Simple Types): Document 'fringe-bitmap' + type. + + * doc/lispref/display.texi (Fringe Bitmaps): Mention 'large-circle'. + + * etc/NEWS: Announce this change (bug#56896). + +2022-08-15 Jim Porter + + Fix non-interactive use of conditionals in Eshell + + * lisp/eshell/esh-cmd.el (eshell-rewrite-if-command): Fix misplaced + 't' symbol; it should be passed to 'eshell-invokify-arg'. + (eshell-do-eval): Pass 'synchronous-p' to recursive calls in some + missing cases. + + * test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/if-statement, + (esh-cmd-test/if-else-statement) + (esh-cmd-test/if-else-statement-lisp-form) + (esh-cmd-test/if-else-statement-lisp-form-2) + (esh-cmd-test/if-else-statement-ext-cmd) + (esh-cmd-test/unless-statement) + (esh-cmd-test/unless-else-statement) + (esh-cmd-test/unless-else-statement-lisp-form) + (esh-cmd-test/unless-else-statement-ext-cmd): Use + 'eshell-command-result-equal'. + +2022-08-15 Jim Porter + + Add 'eshell-command-result-equal' with an ERT explainer + + * test/lisp/eshell/eshell-tests-helpers.el + (eshell-command-result--equal, eshell-command-result--equal-explainer) + (eshell-command-result-equal): New functions. + + * test/lisp/eshell/em-basic-tests.el + * test/lisp/eshell/em-dirs-tests.el + * test/lisp/eshell/esh-cmd-tests.el + * test/lisp/eshell/esh-proc-tests.el + * test/lisp/eshell/esh-var-tests.el + * test/lisp/eshell/eshell-tests.el: Use 'eshell-command-result-equal'. + +2022-08-15 Jim Porter + + Provide ERT explainer for 'eshell-match-command-output' + + This was formerly named 'eshell-command-result-p', but "result" isn't + quite the right terminology, since this function specifically tested + the output of a command, not its Lisp result (as + 'eshell-command-result' would return). + + * test/lisp/eshell/eshell-tests-helpers.el (eshell-insert-command): + Provide a more-complete docstring. + (eshell-match-result): Rename to... + (eshell-match-output): ... this. + (eshell-match-output--explainer): New function. + (eshell-command-result-p): Rename to... + (eshell-match-command-output): ... this. + + * test/lisp/eshell/em-alias-tests.el + * test/lisp/eshell/em-dirs-tests.el + * test/lisp/eshell/em-extpipe-tests.el + * test/lisp/eshell/em-script-tests.el + * test/lisp/eshell/esh-cmd-tests.el + * test/lisp/eshell/esh-proc-tests.el + * test/lisp/eshell/esh-var-tests.el + * test/lisp/eshell/eshell-tests-helpers.el + * test/lisp/eshell/eshell-tests.el: Use 'eshell-match-command-output'. + +2022-08-15 Po Lu + + Avoid lowering child frames below scroll bars on X + + * src/xterm.c (x_lower_frame_1): New function. + (x_lower_frame): Avoid calling XLowerFrame when there is a + parent with scroll bars. + +2022-08-15 Stefan Kangas + + * doc/misc/gnus.texi (Troubleshooting): Update section. + +2022-08-15 Stefan Monnier + + * doc/lispref/functions.texi (What Is a Function): Improve further + +2022-08-15 John Wiegley + + Merge pull request from realcomplex/override-global-mode-fix + + GitHub-reference: https://github.com/jwiegley/use-package/issues/993 + +2022-08-15 Eli Zaretskii + + Produce TAGS in 'lib' as well and include them in src/TAGS + + * src/Makefile.in (TAGS): Include ../lib/TAGS. + ($(lib)/TAGS): New target. + (tags): Depend on $(lib)/TAGS. + +2022-08-15 Michael Albinus + + Fix tmpdir handling in Tramp for Android sshd + + * doc/misc/tramp.texi (Android shell setup): Rework. + + * lisp/net/tramp.el (tramp-get-remote-tmpdir): Cache result in + temporary connection property. + +2022-08-15 Lars Ingebrigtsen + + Clean up message-sort-headers code slightly + + * lisp/gnus/message.el (message-sort-headers): Simplify code by + removing always-true `if' statement. + +2022-08-15 kobarity + + Fix `python-nav-forward-block' moving backward under certain conditions + + * lisp/progmodes/python.el (python-nav-forward-block): Add check + for not moving backward (bug#57223). + +2022-08-15 Lars Ingebrigtsen + + Fix fix_command for non-symbol functions + + * src/callint.c (fix_command): Don't bug out on commands that + aren't symbols (like lambdas, for instance). + +2022-08-15 Alan Mackenzie + + Enhance safe_run_hooks_1 and safe_run_hook_funcall to handle more arguments + + This fixes bug #57179. + + * src/keyboard.c (safe_run_hooks_1, safe_run_hook_funcall): Enhance these + functions so that nargs == 3 or 4 is handled as well as nargs == 2. This + allows them to be used to call hooks with 1 or 2 arguments. + +2022-08-15 Yury Kholodkov (tiny change) + + Fix variable types in warnings-suppress + + * lisp/emacs-lisp/warnings.el (warnings-suppress): The type of + these user options is a list of lists of symbols, not a list of + symbols (bug#57183). + +2022-08-15 Lars Ingebrigtsen + + Make eshell-mode more resilient towards `mode-line-format' + + * lisp/eshell/esh-mode.el (eshell-mode): `mode-line-format' can be + a string (bug#57185). In that case, don't alter anything. + +2022-08-15 Matt Armstrong + + Pacify warnings from gcc 12 in encode_coding_object + + * src/coding.c (encode_coding_object): Mark saved_pt_byte with UNINIT + to silence a false alarm from -Wmaybe-uninitialized. This was already + done in decode_coding_object. The fix is correct because saved_pt is + used as a sentinel before saved_pt_byte is used (bug#57219). + +2022-08-15 Lars Ingebrigtsen + + Fix up the exclusion logic in loaddefs-generate + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Allow + excluding files completely (bug#57144). + +2022-08-15 Lars Ingebrigtsen + + Tweak autoloads of defsubsts containing spaces/control chars + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--print-form): + Escape control chars in bodies so that we don't end up with + trailing spaces if we're autoloading a defsubst containing + "\\`[ \t\n\r]*\\'". + +2022-08-15 Lars Ingebrigtsen + + Regenerated ldefs-boot.el + +2022-08-15 Lars Ingebrigtsen + + Remove Gnus Compatibility manual section + + * doc/misc/gnus.texi (Compatibility): Remove outdated section + (bug#57178). + +2022-08-15 Lars Ingebrigtsen + + Further lisp-current-defun-name tweaks + + * lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Further + tweaks to make (autoload 'foo) work again. Perhaps this should + all be reverted to the original version and then given a new rething. + +2022-08-15 Lars Ingebrigtsen + + Make update-directory-autoloads available by default again + + * lisp/subr.el (make-directory-autoloads) + (update-directory-autoloads): Make available by default again + (bug#57200). + + * lisp/obsolete/autoload.el (make-directory-autoloads): Add + obsoletion form. + (batch-update-autoloads): Fix warning. + +2022-08-15 Stefan Kangas + + Merge from origin/emacs-28 + + 9d0dba44da ; * doc/lispintro/emacs-lisp-intro.texi: Fix typo. + 0e336fa51f ; Improve documentation of minibuffer history wrt completion + +2022-08-14 Po Lu + + Fix uninitialized variable false-positives + + * src/xterm.c (xm_setup_dnd_targets): + (x_dnd_free_toplevels): Mark dpy and recs UNINIT, since GCC + thinks they can be used uninitialized. (bug#57208) + +2022-08-14 Stefan Kangas + + Make message-mark-active-p obsolete in favor of mark-active + + * lisp/gnus/message.el (message-mark-active-p): Make obsolete in + favor of 'mark-active'. Update callers. + +2022-08-14 Stefan Kangas + + Make gnus-uu-view-with-metamail obsolete + + The metamail package was last released in 1994, and has been removed + from most GNU/Linux distributions due to being buggy and unmaintained. + + * lisp/gnus/gnus-uu.el (gnus-uu-view-with-metamail): Make obsolete. + * doc/misc/gnus.texi (Other Decode Variables): Don't document + above obsolete variable. + +2022-08-14 Stefan Kangas + + Don't use obsolete library as example in Elisp Intro + + * doc/lispintro/emacs-lisp-intro.texi (Several files recursively) + (Sorting, Files List): Don't use obsolete library makesum.el as + example. + +2022-08-14 Stefan Kangas + + Make gnus-iswitchb-completing-read obsolete + + * lisp/gnus/gnus-util.el (gnus-iswitchb-completing-read): Make + obsolete. It depends on the obsolete library iswitchb.el. + (gnus-completing-read-function): Don't advertise above obsolete + function. + +2022-08-14 Stefan Kangas + + Don't advertise obsolete library html2text.el + + * doc/misc/emacs-mime.texi (Display Customization): + * doc/misc/gnus-faq.texi (FAQ 4-7): + * doc/misc/gnus.texi (Article Washing): + * doc/misc/mh-e.texi (HTML): + * lisp/gnus/mm-decode.el (mm-text-html-renderer): Don't advertise + obsolete library html2text.el. + +2022-08-14 Paul Eggert + + Improve timefns speed on integers + + * src/timefns.c (decode_lisp_time) [FASTER_TIMEFNS]: + Speed up when SPECIFIED_TIME is an integer. + (time_cmp) [FASTER_TIMEFNS]: Speed up when comparing integers. + +2022-08-14 Paul Eggert + + Decode time conses before floats + + * src/timefns.c (decode_lisp_time): Test for conses before floats, + as conses are more common. + +2022-08-14 Paul Eggert + + Work around Bug#57211 + + * src/buffer.c (Fgenerate_new_buffer_name): Allocate a bigger buffer. + +2022-08-14 Paul Eggert + + * doc/lispref/functions.texi: Fix capitalization. + +2022-08-14 Paul Eggert + + Fix selection preservation bug when USE_XCB + + * src/xterm.c (x_preserve_selections) [USE_XCB]: Fix bug: use of + wrong ‘tem’ value. Found by GCC -Wanalyzer-use-of-uninitialized-value. + Move decl of local to make the (former) bug more obvious. + +2022-08-14 Stefan Monnier + + * lisp/emacs-lisp/ring.el (ring): Define as a type + +2022-08-14 Stefan Monnier + + (compiled-function-p): New function (bug#56648) + + * lisp/subr.el (compiled-function-p): New function. + + * test/lisp/international/ucs-normalize-tests.el (ucs-normalize-part1): + * lisp/gnus/gnus.el (gnus): + * lisp/mh-e/mh-e.el (mh-version): + * lisp/emacs-lisp/macroexp.el (emacs-startup-hook): + * lisp/emacs-lisp/cl-macs.el (compiled-function): + * lisp/emacs-lisp/bytecomp.el (byte-compile-fdefinition) + (byte-compile, display-call-tree): + * lisp/emacs-lisp/byte-opt.el (): + * lisp/emacs-lisp/advice.el (ad-compiled-p): + * lisp/cedet/semantic/bovine.el (semantic-bovinate-stream): + * lisp/loadup.el (macroexpand-all): + * admin/unidata/unidata-gen.el (unidata--ensure-compiled): Use it. + + * lisp/emacs-lisp/pcase.el (pcase-mutually-exclusive-predicates): + Add entries for it. + (pcase--split-pred): Use it. + + * lisp/help-fns.el (help-fns-function-description-header): Use `functionp`. + (help-fns--var-safe-local): Use `compiled-function-p`. + +2022-08-14 Michael Albinus + + Tramp code cleanup + + * lisp/net/tramp-adb.el + (tramp-adb-handle-directory-files-and-attributes): Use it. + + * lisp/net/tramp-compat.el (tramp-compat-replace-regexp-in-region): + New defalias. + + * lisp/net/tramp-crypt.el (tramp-crypt-do-encrypt-or-decrypt-file-name): + Fix root filename for cache. + + * lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file): + Adapt check for proper remote command. + + * lisp/net/tramp-sh.el (tramp-open-shell): Add sanity check for + shell prompt. + (tramp-get-ls-command): Check, that argument "--color=never" has + the intended effect. + +2022-08-14 Stefan Monnier + + * lisp/cedet/ede/emacs.el (ede-emacs-load): Delete obsolete name arg + + * lisp/calendar/time-date.el (seconds-to-time): Use the original arg list + +2022-08-14 Stefan Kangas + + * src/Makefile.in (elnlisp): Delete autoload.eln from list. + +2022-08-14 Stefan Kangas + + Make Gnus FAQ more contemporary + + * doc/misc/gnus-faq.texi (FAQ - Introduction): Fix timeline. + (FAQ - Changes): Delete outdated section. + (FAQ 5-5): Update to reflect that ispell.el and flyspell.el is + distributed with Emacs. + (FAQ 4-1, FAQ 4-7, FAQ 4-8, FAQ 4-14, FAQ 5-8, FAQ 5-10, FAQ 6-3) + (FAQ 7-2): Delete references to ancient versions of Gnus. + (FAQ 6-3): Delete reference to obsolete library nnir.el. + (FAQ - Glossary): Remove "Emacs" entry. This is self-explanatory, and + risks causing confusion; our docs never mean anything but "GNU Emacs" + when we say "Emacs". + +2022-08-14 Mattias Engdegård + + Strength-reduce apply with (list ...) as tail argument + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-apply): + Transform (apply F ... (list X ...)) -> (funcall F ... X ...) + +2022-08-14 Mattias Engdegård + + Simplify code using take, ntake and butlast + + * lisp/calc/calc-vec.el (calcFunc-rhead): + * lisp/calc/calc.el (calc-top-list, calc-pop): + * lisp/emacs-lisp/ert.el (ert-summarize-tests-batch-and-exit): + Simplify. + +2022-08-14 Eli Zaretskii + + Further speedups of redisplay of long and truncated lines + + * src/xdisp.c (mode_line_update_needed, redisplay_window) + (decode_mode_spec): Don't avoid calling current_column, as it is + now fast enough. + (redisplay_window) : Don't call 'move_it_to' + if its result will not be used. + (Flong_line_optimizations_p): New primitive. + * src/indent.c (Fcurrent_column): Doc fix. + (current_column, scan_for_column): When in a buffer with long + and/or truncated lines, quickly return an approximate value. + * src/window.c (Frecenter): Use the old text-mode code when the + buffer has very long lines. + + * lisp/simple.el (line-move): Avoid costly calls to + 'line-move-partial' and 'line-move-visual' when lines are + truncated and/or very long. + (move-beginning-of-line): Call 'line-beginning-position' instead + of the slower 'skip-chars-backward'. + + * etc/NEWS: Announce 'long-line-optimizations-p'. + +2022-08-13 Po Lu + + More fixes to MPX drag-and-drop interaction + + * src/xterm.c (x_dnd_begin_drag_and_drop): Also initialize the + keyboard device used for drag-and-drop. + (handle_one_xevent): Verify deviceid in more places; also test + keyboard device before swallowing F1. + +2022-08-13 Basil L. Contovounesios + + Document time-convert FORM argument as mandatory + + This is a followup to commit b70369c557 of 2022-08-05 + "time-convert): Deprecate calls without an explicit FORM arg". + + * doc/lispref/os.texi (Time Conversion): + * src/timefns.c (Ftime_convert): Describe FORM argument as required + as per the advertised calling convention. + +2022-08-13 Stefan Kangas + + Improve time-convert docstring formatting for readability + + * src/timefns.c (Ftime_convert): Doc fix; improve formatting for + readability. + +2022-08-13 Stefan Monnier + + nadvice.el: Avoid exponential blow up in interactive-form recursion + + * lisp/emacs-lisp/nadvice.el (advice--interactive-form): Sink the call + to `commandp` into the autoloaded function case since it's redundant in + the other branch. + (advice--make-interactive-form): Take just the interactive forms rather + than the actual functions as arguments. + (oclosure-interactive-form): Use `advice--interactive-form` rather than + `commandp` since we'd call `advice--interactive-form` afterwards anyway. + +2022-08-13 Stefan Kangas + + Update Gnus Installation FAQ + + * doc/misc/gnus-faq.texi (FAQ 1-1, FAQ 1-2, FAQ 1-3, FAQ 1-4) + (FAQ 1-5): Update to reflect that Gnus is no longer released + separately from Emacs. Delete FAQ on Gnus 5.10, released in May 2003. + +2022-08-13 Stefan Kangas + + Make many gnus version variables obsolete + + Many haven't been bumped since 1997, others not since 2004. + * lisp/gnus/deuglify.el (gnus-outlook-deuglify-version): + * lisp/gnus/gnus-diary.el (gnus-diary-version): + * lisp/gnus/nnagent.el (nnagent-version): + * lisp/gnus/nnbabyl.el (nnbabyl-version): + * lisp/gnus/nndiary.el (nndiary-version): + * lisp/gnus/nndir.el (nndir-version): + * lisp/gnus/nndoc.el (nndoc-version): + * lisp/gnus/nndraft.el (nndraft-version): + * lisp/gnus/nneething.el (nneething-version): + * lisp/gnus/nnfolder.el (nnfolder-version): + * lisp/gnus/nnmaildir.el (nnmaildir-version): + * lisp/gnus/nnmbox.el (nnmbox-version): + * lisp/gnus/nnmh.el (nnmh-version): + * lisp/gnus/nnml.el (nnml-version): + * lisp/gnus/nnrss.el (nnrss-version): + * lisp/gnus/nnspool.el (nnspool-version): + * lisp/gnus/nntp.el (nntp-version): + * lisp/gnus/nnvirtual.el (nnvirtual-version): Make obsolete in + favor of emacs-version. + +2022-08-13 Stefan Monnier + + js.el: Tweak last change + + * lisp/progmodes/js.el (js-json-mode): Use a function as value of + `syntax-propertize-function`. + +2022-08-13 Eli Zaretskii + + Speed up display of long lines under 'truncate-lines' + + * src/xdisp.c (partial_line_height): Return zero for long and + truncated lines. + (fast_move_it_horizontally): New function. + (hscroll_window_tree, display_line): Use + 'fast_move_it_horizontally' in preference to + 'move_it_in_display_line_to', when dealing with long and truncated + lines. + (redisplay_internal): Optimize "optimization 3" for long and + truncated lines. + * src/buffer.c (syms_of_buffer) : New + variable. + + * etc/NEWS: Announce 'large-hscroll-threshold'. + +2022-08-13 Po Lu + + Add new value `dont-save' to `deactivate-mark' + + * etc/NEWS: Announce new value of `deactivate-mark'. + + * lisp/simple.el (deactivate-mark): Handle new value. + (bug#57147) + + * src/keyboard.c (syms_of_keyboard): Update doc string of + `deactivate-mark'. + +2022-08-13 Lars Ingebrigtsen + + Tweak outline symbol icons + + * lisp/outline.el (outline-close, outline-open): Use icons of the + same size in Symbola. + +2022-08-13 Lars Ingebrigtsen + + Allow EXCLUDED-FILES in loaddefs-generate to be relative + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Allow the + excluded files to be relative (bug#57144). + +2022-08-13 Lars Ingebrigtsen + + Don't hide final dump in admin/emake + +2022-08-13 Stefan Kangas + + Make ps-mode-version variable obsolete + + * lisp/progmodes/ps-mode.el (ps-mode-version): Make obsolete. + (ps-mode-show-version, ps-mode-submit-bug-report): Don't use above + obsolete variable. + +2022-08-13 Stefan Kangas + + Make htmlfontify-version variable obsolete + + * lisp/htmlfontify.el (htmlfontify-version): Make obsolete. + (hfy-meta-tags): Don't use above obsolete variable. + +2022-08-13 Stefan Kangas + + Delete many references to Emacs 23 or older from docs + + * doc/emacs/glossary.texi (Glossary): + * doc/emacs/msdos.texi (Windows Fonts): + * doc/lispref/loading.texi (Library Search): + * doc/lispref/processes.texi (Accepting Output): + * doc/misc/auth.texi (GnuPG and EasyPG Assistant Configuration): + * doc/misc/efaq-w32.texi (Font names): + * doc/misc/efaq.texi (Turning on syntax highlighting) + (Escape sequences in shell output): + * doc/misc/eshell.texi (Bugs and ideas): + * doc/misc/gnus.texi (nnmairix requirements): + * doc/misc/gnus-faq.texi (FAQ 1-5): + * doc/misc/idlwave.texi (Troubleshooting): + * doc/misc/message.texi (Using S/MIME): + * doc/misc/mh-e.texi (Preface, Incorporating Mail): + * doc/misc/viper.texi (Viper Specials): Delete references to Emacs 23 + or older. + +2022-08-13 Po Lu + + Prevent selection converter from signaling if buffer is narrowed + + * lisp/select.el (xselect-convert-to-string): If positions are + outside the accessible portion of the buffer, don't return + anything. + +2022-08-13 Eli Zaretskii + + Fix a recently-added Eshell test on MS-Windows + + * test/lisp/eshell/esh-var-tests.el + (esh-var-test/last-result-var-ext-cmd): Fix the test on + MS-Windows by making sure the internal 'format' command + is invoked. (Bug#57129) + +2022-08-13 Jim Porter + + Make '$?' and '$$' variables more consistent in Eshell + + Previously, '$?' (last exit code) was only useful for external + commands, and '$$' (last result) was only useful for Lisp commands. + + * lisp/eshell/esh-cmd.el (eshell-lisp-form-nil-is-failure): New + option. + (eshell-lisp-command): Set last exit code to 1 when the command + signals an error, and 2 if it returns nil (for Lisp forms only). + + * lisp/eshell/esh-proc.el (eshell-sentinel): Set last result to t if + the command succeeded. + + * test/lisp/eshell/esh-cmd-tests.el + (esh-cmd-test/while-loop-lisp-form, esh-cmd-test/until-loop-lisp-form) + (esh-cmd-test/if-else-statement-lisp-form) + (esh-cmd-test/if-else-statement-lisp-form-2) + (esh-cmd-test/unless-else-statement-lisp-form): New tests. + + * test/lisp/eshell/esh-var-tests.el + (esh-var-test/last-status-var-lisp-command) + (esh-var-test/last-status-var-lisp-form) + (esh-var-test/last-status-var-lisp-form-2) + (esh-var-test/last-status-var-ext-cmd) + (esh-var-test/last-status-var-ext-cmd): New tests. + (esh-var-test/last-result-var2): Rename from this... + ( esh-var-test/last-result-var-twice): ... to this. + + * doc/misc/eshell.texi (Variables): Update documentation about '$?' + and '$$'. + (Control Flow): Mention that '(lisp forms)' can be used as + conditionals. + + * etc/NEWS: Announce this change (bug#57129). + +2022-08-13 Jim Porter + + Allow using dollar expansions in Eshell conditionals + + * lisp/eshell/esh-cmd.el (eshell-structure-basic-command): Forms + beginning with 'eshell-escape-arg' are "data-wise". + + * test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/while-loop) + (esh-cmd-test/until-loop, esh-cmd-test/if-statement) + (esh-cmd-test/if-else-statement, esh-cmd-test/unless-statement) + (esh-cmd-test/unless-else-statement): Use variable interpolation. + (esh-cmd-test/while-loop-ext-cmd, esh-cmd-test/until-loop-ext-cmd) + (esh-cmd-test/if-else-statement-ext-cmd) + (esh-cmd-test/unless-else-statement-ext-cmd): New tests, adapted from + the existing ones. + + * doc/misc/eshell.texi (Control Flow): Update documentation for + conditionals (bug#57129). + +2022-08-13 Jim Porter + + Only set Eshell execution result metavariables when non-nil + + This simplifies usage of 'eshell-close-handles' in several places and + makes it work more like the docstring indicated it would. + + * lisp/eshell/esh-io.el (eshell-close-handles): Only store EXIT-CODE + and RESULT if they're non-nil. Also, use 'dotimes' and 'dolist' to + simplify the implementation. + + * lisp/eshell/em-alias.el (eshell-write-aliases-list): + * lisp/eshell/esh-cmd.el (eshell-rewrite-for-command) + (eshell-structure-basic-command): Adapt calls to + 'eshell-close-handles'. + + * test/lisp/eshell/eshell-tests.el (eshell-test/simple-command-result) + (eshell-test/lisp-command, eshell-test/lisp-command-with-quote) + (eshell-test/for-loop, eshell-test/for-name-loop) + (eshell-test/for-name-shadow-loop, eshell-test/lisp-command-args) + (eshell-test/subcommand, eshell-test/subcommand-args) + (eshell-test/subcommand-lisp): Move from here... + + * test/lisp/eshell/esh-cmd-tests.el + (esh-cmd-test/simple-command-result, esh-cmd-test/lisp-command) + (esh-cmd-test/lisp-command-with-quote, esh-cmd-test/for-loop) + (esh-cmd-test/for-name-loop, esh-cmd-test/for-name-shadow-loop) + (esh-cmd-test/lisp-command-args, esh-cmd-test/subcommand) + (esh-cmd-test/subcommand-args, esh-cmd-test/subcommand-lisp): ... to + here. + (esh-cmd-test/and-operator, esh-cmd-test/or-operator) + (esh-cmd-test/for-loop-list, esh-cmd-test/for-loop-multiple-args) + (esh-cmd-test/while-loop, esh-cmd-test/until-loop) + (esh-cmd-test/if-statement, esh-cmd-test/if-else-statement) + (esh-cmd-test/unless-statement, esh-cmd-test/unless-else-statement): + New tests. + + * doc/misc/eshell.texi (Invocation): Explain '&&' and '||'. + (for loop): Move from here... + (Control Flow): ... to here, and add documentation for other control + flow forms. + +2022-08-13 Stefan Kangas + + Merge from origin/emacs-28 + + 72fc7258bf Delete references to deleted library hilit19.el + e746fc2e7b Delete stale comments from Lisp Intro manual + 77613b9217 ; Delete redundant installation instructions from ebnf2ps.el + +2022-08-12 Po Lu + + Improve MPX interaction with drag-and-drop + + * src/xfns.c (Fx_set_mouse_absolute_pixel_position): Use + internal client pointer record. + * src/xterm.c (x_dnd_cancel_dnd_early): New function. Only used + on XI2 builds so far. + (x_dnd_begin_drag_and_drop): Set the pointer device used for DND + events. + (xi_disable_devices): Cancel the drag-and-drop operation if that + device is disabled. + (x_send_scroll_bar_event): Update outdated comment. + (handle_one_xevent): Only accept DND events from that device. + (frame_set_mouse_pixel_position): Use internal client pointer + record. + +2022-08-12 Stefan Kangas + + Hide local variable section in emacs-news-modes + + * lisp/textmodes/emacs-authors-mode.el + (emacs-authors-mode--hide-local-variables): Move from here... + * lisp/emacs-lisp/subr-x.el (emacs-etc--hide-local-variables): + ...to here. + + * lisp/textmodes/emacs-authors-mode.el (subr-x): Require. + (emacs-authors-mode): Use above renamed function. + + * lisp/textmodes/emacs-news-mode.el (subr-x): Require. + (emacs-news--mode-common): Call 'emacs-etc--hide-local-variables' + to hide local variables section. + +2022-08-12 Lars Ingebrigtsen + + Don't update loaddefs.el timestamps uselessly in loaddefs-generate + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Don't + re-write the loaddefs.el file when there's no reason to. + +2022-08-12 Stefan Kangas + + Support imenu in emacs-authors-mode + + * lisp/textmodes/emacs-authors-mode.el + (emacs-authors-imenu-generic-expression): New variable. + (emacs-authors-mode): Add imenu support. + +2022-08-12 Stefan Kangas + + Rename etc-authors-mode to emacs-authors-mode + + * emacs-authors-mode.el: Rename all symbols from 'etc-authors-*' to + 'emacs-authors-*'. Make most old names into obsolete compat aliases. + * admin/authors.el: (Bug#57105) + * etc/AUTHORS: Use 'emacs-authors' instead of 'etc-authors'. + +2022-08-12 Stefan Kangas + + Rename etc-authors-mode.el to emacs-authors-mode.el + + * lisp/textmodes/etc-authors-mode.el: Move from here... + * lisp/textmodes/emacs-authors-mode.el: ...to here. (Bug#57105) + +2022-08-12 Stefan Kangas + + Delete references to deleted library hilit19.el + + * doc/misc/gnus.texi (Compatibility): + * lisp/progmodes/f90.el: + * lisp/ps-print.el: + * lisp/vc/ediff.el: Delete references to hilit19.el. + +2022-08-12 Lars Ingebrigtsen + + Fix emacs-news-view-mode-map inheritance + + * lisp/textmodes/emacs-news-mode.el (emacs-news-view-mode-map): + Fix inheritance from `special-mode-map' (bug#57100). + +2022-08-12 Lars Ingebrigtsen + + Clarify bookmark-set prompt + + * lisp/bookmark.el (bookmark-set): Clarify prompt further + (bug#57128). + +2022-08-12 Harald Jörg + + gud.el: invoke 'perldb' with '-E' instead of '-e' + + * lisp/progmodes/gud.el (gud-perldb-massage-args): Allow '-E' switch + and use it as a default in favor of '-e' + + * etc/NEWS ('perldb' now recognizes '-E') New entry in section 'Gud' + +2022-08-12 Lars Ingebrigtsen + + Remove some more outdated Gnus manual stuff + + * doc/misc/gnus.texi (Mail Source Customization): Remove more + outdated text (bug#57156). + +2022-08-12 Lars Ingebrigtsen + + Remove (gnus) Gnus Development manual section + + * doc/misc/gnus.texi (Gnus Development): Remove outdated section + (bug#57156). + +2022-08-12 Philip Kaludercic + + * package-vc.el (package-vc-fetch): Autoload it + +2022-08-12 Stefan Kangas + + * doc/misc/gnus.texi (Emacsen): Delete section. + +2022-08-12 Stefan Kangas + + Make some more cedet version variables obsolete + + * lisp/cedet/ede.el (ede-version): + * lisp/cedet/semantic.el (semantic-version): + * lisp/cedet/srecode.el (srecode-version): Make obsolete. + * lisp/cedet/semantic/db-file.el (semanticdb-file-version): Don't + use above obsolete variable semantic-version. + +2022-08-12 Philip Kaludercic + + Merge remote-tracking branch 'origin/master' into feature/package+vc + +2022-08-12 Stefan Kangas + + Delete stale comments from Lisp Intro manual + + * doc/lispintro/emacs-lisp-intro.texi (Args as Variable or List) + (print-elements-of-list, Miscellaneous): Delete some references to + Emacs 22. + +2022-08-12 Lars Ingebrigtsen + + Clarify face-at-point doc string and add (thing-at-point 'face) + + * lisp/faces.el (face-at-point): Say what this function does. + + * lisp/thingatpt.el (thing-at-point-face-at-point): Add `face' + type (bug#57087). + (thing-at-point-provider-alist, thing-at-point): Mention it in the + doc strings. + +2022-08-12 Lars Ingebrigtsen + + Further seq-uniq speed-ups for lists + + * lisp/emacs-lisp/seq.el (seq-uniq): Speed up more for long lists + (bug#57079). + +2022-08-12 Stefan Kangas + + Make finder-mode inherit special-mode + + * lisp/finder.el (finder-mode): Inherit special-mode. + (finder-mode-map): Inherit special-mode-map. + +2022-08-12 Stefan Kangas + + * lisp/finder.el (finder-summary): Improve formatting. + +2022-08-12 Stefan Kangas + + Use help-key-binding face in package list help + + * lisp/emacs-lisp/package.el (package--prettify-quick-help-key): + Use help-key-binding face. + +2022-08-12 Stefan Kangas + + Make cedet version variables obsolete + + * lisp/cedet/cedet.el (cedet-version, cedet-packages): Make + obsolete. + +2022-08-12 Lars Ingebrigtsen + + Default outline-minor-mode-use-buttons to only happen in *Help* + + * lisp/outline.el (outline-minor-mode-use-buttons): Change the + default to only use buttons in the *Help* buffer (for now), + because it's too disruptive in other modes. This will probably be + changed again to have some other mechanism to opt in in certain + modes, but it's not clear what that mechanism should look like. + +2022-08-12 Stephen Berman + + Reverse the outline arrows + + * lisp/outline.el (outline-open): Reverse the arrows to match + arrows in Customize (bug#57082). + +2022-08-12 Stefan Kangas + + Merge from origin/emacs-28 + + 9419bc904d ; * lisp/printing.el: Delete outdated download instructions. + 31af0f4eb7 Don't list Emacs as requirement for built-in package + ae348b719e Fix wrong metrics for bitmap-only fonts with HarfBuzz 5 + +2022-08-11 Po Lu + + Prevent SelectionNotify etc from reaching GTK 3 + + * src/xterm.c (handle_one_xevent): Prevent selection events from + reaching GTK if they are destined for an Emacs window. + +2022-08-11 Alan Mackenzie + + New debugging facility: backtraces from errors in Lisp called from redisplay + + Setting backtrace-on-redisplay-error to non-nil enables the generation of a + Lisp backtrace in buffer *Redisplay-trace* following an error in Lisp called + from redisplay. + + * doc/lispref/debugging.texi (Debugging Redisplay): New subsection. + (Error Debugging): Reference to the new subsection. + + * etc/NEWS: New entry for the new facility. + + * src/eval.c (redisplay_deep_handler): New variable. + (init_eval): Initialize redisplay_deep_handler. + (call_debugger): Don't throw to top-level after calling debug-early + (internal_condition_case_n): "Bind" redisplay_deep_handler to the current + handler. + (backtrace_yet): New boolean variable. + (signal_or_quit): New code section to handle Lisp errors occurring in + redisplay. + (syms_of_eval): New DEFVAR_BOOL backtrace-on-redisplay-error. + + * src/keyboard.c (command_loop_1): Set backtrace_yet to false each time around + the loop. + (safe_run_hooks_error): Allow args to be up to four Lisp_Objects long. + (safe_run_hooks_2): New function. + + * src/lisp.h (top level): declare as externs backtrace_yet and + safe_run_hooks_2. + + * src/xdisp.c (run_window_scroll_functions): Replace a call to + run_hook_with_args_2 with one to safe_run_hooks_2. + +2022-08-11 Axel Svensson (tiny change) + + Support the full range of variation selectors + + * lisp/international/characters.el: Provide acronyms for variation + selectors. + (update-glyphless-char-display): Update display of the full range + of variation selectors. + (glyphless-char-display-control): Update doc string. (Bug#57072) + + * doc/lispref/display.texi (Glyphless Chars): Document more + variation selectors. + +2022-08-11 Stefan Kangas + + Make ad-version variable obsolete + + * lisp/emacs-lisp/advice.el (ad-version): Make obsolete in favor + of emacs-version. It has not been bumped since 1994. + +2022-08-11 Stefan Kangas + + Make ebnf-version variable obsolete + + * lisp/progmodes/ebnf2ps.el (ebnf-version): Make obsolete. + (ebnf-setup, ebnf-begin-file, ebnf-eps-finish-and-write): Don't + use above obsolete variable. + +2022-08-11 Stefan Kangas + + Make ps-print-version variable obsolete + + * lisp/ps-print.el (ps-print-version): Make obsolete. + (ps-setup, ps-begin-file): + * lisp/progmodes/ebnf2ps.el: + * lisp/printing.el: + (pr-help-message, pr-interface-help-message) + (pr-create-interface): Don't use above obsolete variable. + +2022-08-11 Stefan Kangas + + Make pr-version variable obsolete + + * lisp/printing.el (pr-version): Make obsolete. + (pr-help-message, pr-interface-help-message, pr-setup) + (pr-create-interface): Don't use above obsolete variable. + +2022-08-11 Stefan Kangas + + Don't list Emacs as requirement for built-in package + + * doc/misc/htmlfontify.texi (Requirements): Don't list Emacs as + requirement for built-in package. + +2022-08-11 Stefan Kangas + + Don't show status message in Helper-describe-bindings + + * lisp/emacs-lisp/helper.el (Helper-describe-bindings): Don't show + status message. + +2022-08-11 Philip Kaludercic + + Add "send patches" note to package-vc TODO section + + * package.el (describe-package-1): Add news if available + + * package.el (package--get-activatable-pkg): Prefer source packages + +2022-08-11 Ulf Jasper + + newsticker: fix bug#57045 + + * lisp/net/newst-treeview.el + (newsticker--treeview-list-items-with-age) (newsticker-treeview-update): + Fix issues with changing sort order in virtual feed 'all' (Bug#57045). + +2022-08-11 Philip Kaludercic + + Allow updating source packages + + * lisp/emacs-lisp/package-vc.el (package-vc-update): Add new function. + * lisp/emacs-lisp/package.el (package-update): Use 'package-vc-update'. + +2022-08-11 Stefan Kangas + + * lisp/vc/emerge.el (emerge-show-file-name): Make obsolete. + +2022-08-11 Stefan Kangas + + Make emerge-define-key-if-possible obsolete + + * lisp/vc/emerge.el (emerge-define-key-if-possible): Make unused + function obsolete. + +2022-08-11 Philip Kaludercic + + Ignore files in .elpaignore during byte compilation + + * package.el (package--parse-elpaignore): Add new function. + (package--compile): Bind 'byte-compile-ignore-files' to the result of + 'package--parse-elpaignore'. + +2022-08-11 Philip Kaludercic + + * package-vc.el (package-vc-unpack): Detect TeXinfo manuals + +2022-08-11 Michael Albinus + + * test/lisp/net/tramp-tests.el (tramp--test-utf8): Adapt test. + +2022-08-11 Philip Kaludercic + + Allow ignoring files during byte compilation + + * bytecomp.el (byte-compile-ignore-files): Add new variable. + (byte-recompile-directory): Respect 'byte-compile-ignore-files'. + +2022-08-11 YAMAMOTO Mitsuharu + + Fix wrong metrics for bitmap-only fonts with HarfBuzz 5 + + * src/ftcrfont.c (ftcrhbfont_begin_hb_font): Always use the standard + position unit value on HarfBuzz 5 and later regardless of whether the + font is bitmap-only or not. (Bug#57066) + +2022-08-11 Philip Kaludercic + + Guess Git repositories from the URL header + + * package-vc.el (package-vc-probable-repository-regexp): Add new user option. + (package-vc-sourced-packages-list): Add new function using + 'package-vc-probable-repository-regexp'. + (package-vc-fetch): Use 'package-vc-sourced-packages-list'. + +2022-08-11 realcomplex (tiny change) + + Go back to making `override-global-mode` non-global + +2022-08-11 Stefan Kangas + + Merge from origin/emacs-28 + + 648acc8848 ; Fix @setfilename in calc.texi + +2022-08-10 Po Lu + + Adjust client pointer upon help event + + * src/xterm.c (handle_one_xevent): Keep track of the device that + set do_help and make it the client pointer so that tooltips show + up under the right pointer. + +2022-08-10 Eli Zaretskii + + Fix 'describe-char' in "C" locale + + * lisp/descr-text.el (describe-char): Avoid assertions if + 'buffer-file-coding-system' is nil. (Bug#57066) + +2022-08-10 Visuwesh + + Improve the bengali-probhat input method + + * lisp/leim/quail/indian.el ("bengali-probhat"): Set KBD-TRANSLATE + and SHOW-LAYOUT flags non-nil. This makes the IM usable with Dvorak + keyboard and also shows more useful help. Reported by Akib Azmain + Turja . + +2022-08-10 Po Lu + + Fix some undesirable frame focus changes + + * src/xterm.c (handle_one_xevent): Only detach upon actual + device tree change. + +2022-08-10 Stefan Kangas + + Make gdb-pad-string obsolete in favor of string-pad + + * lisp/progmodes/gdb-mi.el (subr-x): Require. + (gdb-pad-string): Make obsolete in favor of 'string-pad'. Update + callers. + +2022-08-10 Mattias Engdegård + + Extend LAP optimizations to more operations + + Extend the set of eligible opcodes for certain peephole + transformations, which then provide further optimization + opportunities. + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): + Optimize empty save-current-buffer in the same way as we already + do for save-excursion and save-restriction. This is safe + because (save-current-buffer) is a no-op. + (byte-compile-side-effect-and-error-free-ops): Add list3, list4 and + listN. These were all apparent oversights as list1 and list2 were + already included. + (byte-after-unbind-ops): Add stack-ref, stack-set, discard, list3, + list4 and listN. Stack manipulation is safe because unbind cannot + read or modify stack entries. + +2022-08-10 Lars Ingebrigtsen + + Fix compilation warning in wisent/comp.el + + * lisp/cedet/semantic/wisent/comp.el (require): string-pad is used + run-time. + +2022-08-10 Stefan Kangas + + Prefer defvar-keymap in vc/*.el + + * lisp/vc/add-log.el (change-log-mode-map): + * lisp/vc/ediff-mult.el (ediff-dir-diffs-buffer-map): + * lisp/vc/vc-annotate.el (vc-annotate-mode-map): + * lisp/vc/vc-bzr.el (vc-bzr-shelve-map): + * lisp/vc/vc-dir.el (vc-dir-status-mouse-map) + (vc-dir-filename-mouse-map): + * lisp/vc/vc-git.el (vc-git-stash-shared-map, vc-git-stash-map) + (vc-git-stash-button-map, vc-git-log-edit-mode-map): + * lisp/vc/vc-hg.el (vc-hg-log-edit-mode-map) + (vc-hg-extra-menu-map): + * lisp/vc/vc-hooks.el (vc-prefix-map): Prefer defvar-keymap. + +2022-08-10 Koen van Greevenbroek (tiny change) + + Make sure that bind-key's `override-global-mode` is initially on + + In 4004dde the arguments to `define-minor-mode` were changed + erroneously. Whereas the `override-global-mode` was initially defined + as `(define-minor-mode override-global-mode "..." t "")`, the two + latter arguments where changed to `:global t :lighter ""`. However, + the two original arguments corresponded to the keywords `:init-value` + and `:lighter`, respectively. + + With `:init-value t` now missing, the minor mode isn't enabled by + default, and `bind-key*` appears not to work. + +2022-08-10 Stefan Kangas + + Delete dead code in checkdoc.el + + * lisp/emacs-lisp/checkdoc.el: Delete code commented out since + 1997. + +2022-08-10 Stefan Kangas + + Fix namespacing issues in array.el + + * lisp/array.el (array--limit-index, array-current-line) + (array-move-to-column-untabify, array--untabify-backward): Rename + from 'limit-index', 'current-line', 'move-to-column-untabify', and + 'untabify-backward'. Update callers. + +2022-08-10 Stefan Kangas + + Merge from origin/emacs-28 + + 14833cd9df Improve wording when documenting other TRAMP syntaxes + 628df15da5 ; * doc/misc/viper.texi (Rudimentary Changes): Avoid alias. + 85de996bbb * lisp/vc/diff-mode.el: Don't mention XEmacs. + +2022-08-09 Po Lu + + Improve MPX interaction with xwidgets and drag-and-drop + + * src/xterm.c (handle_one_xevent): Handle focus interaction in + more places. + +2022-08-09 Dmitry Gutov + + js--font-lock-keywords-2: Remove the 'for each' matcher + + * lisp/progmodes/js.el (js--font-lock-keywords-2): + Remove the 'for each' matcher. First, because it was slow + (bug#56682), and second: the 'for each' syntax was only present in + Mozilla's dialect of JavaScript (added in version 1.5), and has + been deprecated for a decade now. + +2022-08-09 Stefan Kangas + + Make wisent-pad-string obsolete in favor of string-pad + + * lisp/cedet/semantic/wisent/comp.el (wisent-pad-string): Make + obsolete in favor of 'string-pad'. Update callers. + (subr-x): Require when compiling. + +2022-08-09 Stefan Kangas + + Make unused function filesets-ormap obsolete + + * lisp/filesets.el (filesets-ormap): Simplify and make obsolete in + favor of 'seq-drop-while'. + +2022-08-09 Stefan Kangas + + Make filesets-filter-list obsolete in favor of seq-filter + + * lisp/filesets.el (filesets-filter-list): Make obsolete in favor + of 'seq-filter'. Update callers. + +2022-08-09 Lars Ingebrigtsen + + Avoid having language environments interpreted as sections + +2022-08-09 Stefan Kangas + + Make rng-collapse-space obsolete + + * lisp/nxml/rng-util.el (rng-collapse-space): Make obsolete in favor + of 'string-clean-whitespace'. Update callers. + Suggested by Lars Ingebrigtsen . + +2022-08-09 Stefan Kangas + + Improve wording when documenting other TRAMP syntaxes + + * doc/misc/tramp.texi (Change file name syntax): Improve wording. + (Bug#57061) + +2022-08-09 Stefan Kangas + + Avoid using aliases for color functions + + * lisp/emulation/viper-init.el (viper-has-face-support-p): + * lisp/emulation/viper-util.el (viper-save-cursor-color) + (viper-change-cursor-color): + * lisp/faces.el (read-color): + * lisp/net/dictionary.el (dictionary-color-support): + * lisp/obsolete/gs.el (gs-set-ghostview-colors-window-prop): + * lisp/progmodes/cperl-mode.el (cperl-choose-color): + * lisp/woman.el (woman-fontify): Avoid using aliases for + color-defined-p, display-color-p, and color-values. + +2022-08-09 Stefan Kangas + + Remove some compat code from ps-print.el + + * lisp/ps-print.el (ps-print-color-p): Assume color-values is + fboundp; it always is. + +2022-08-09 Stefan Kangas + + * lisp/vc/pcvs-util.el (cvs-partition): Simplify. + + * lisp/nxml/rng-util.el (rng-collapse-space): Simplify. + +2022-08-09 Stefan Kangas + + Make rng-blank-p obsolete in favor of string-blank-p + + * lisp/nxml/rng-util.el (rng-blank-p): Make obsolete in favor of + string-blank-p. Update callers. + +2022-08-09 Stefan Kangas + + Autoload string-blank-p + + * lisp/eshell/em-hist.el (subr-x): + * lisp/net/eudc.el (subr-x): Don't require. + * lisp/emacs-lisp/subr-x.el (string-blank-p): Autoload. + +2022-08-09 Stefan Kangas + + * lisp/ibuf-ext.el (ibuffer-remove-alist): Simplify. + +2022-08-09 Lars Ingebrigtsen + + Use new convenience functions in replace-string + + * lisp/replace.el (replace-string): Use new convenience functions. + +2022-08-09 Lars Ingebrigtsen + + Add use-region-beginning and use-region-end + + * lisp/simple.el (use-region-beginning, use-region-end): New functions. + (use-region-p): Mention them in the doc strings (bug#45607). + +2022-08-09 Juri Linkov + + * lisp/replace.el (replace-highlight): Optimize for large buffers (bug#56815) + + Let-bind isearch-lazy-count and lazy-highlight-buffer to nil to avoid + revisiting all matches in the whole buffer after every replacement. + +2022-08-09 Andrea Greselin + + Add new user option electric-quote-replace-consecutive + + * lisp/electric.el (electric-quote-replace-consecutive): New user + option (bug#57057). + (electric-quote-post-self-insert-function): Use it. + +2022-08-09 Stephen Berman + + Make outline buttons work in NEWS + + * lisp/outline.el (outline-minor-mode-highlight-buffer): Fix + button insertion. + (outline-minor-mode): Ditto. + (outline--insert-open-button): Don't mark buffer as modified when + inserting buttons. + (outline--insert-close-button): Ditto. + + * lisp/textmodes/emacs-news-mode.el (emacs-news--mode-common): + Adjust outline regexp. + +2022-08-09 Eli Zaretskii + + Revert "Make compat alias check-ispell-version obsolete" + + This reverts commit 24795e45e5fab6e2f699582662f9be7c5c6e25f8. + + That alias is in no way obsolete, and was added for a different + reason. + +2022-08-09 Lars Ingebrigtsen + + Further lisp-current-defun-name tweaks + + * lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Tweak so + that cl-defmethod and friends work again. + +2022-08-09 Lars Ingebrigtsen + + Add a faster seq-uniq for lists + + * lisp/emacs-lisp/seq.el (seq-uniq): Add a faster method for lists + (bug#57079). + +2022-08-09 Laurence Warne + + Fix python escape code fontification for multi-line literals + + * lisp/progmodes/python.el (python--string-bytes-literal-matcher): Go + backward one char after a match so that consecutive escape codes are + highlighted + (python--not-raw-string-literal-start-regexp): Make regular expression + more comprehensive, so multi-line bytes literals are not caught + (python-rx): Accept one to three octal digits in octal escape codes + instead of always three + +2022-08-09 Stefan Kangas + + Make ibuffer-aif obsolete in favor of if-let + + * lisp/ibuf-macs.el (ibuffer-aif): Make obsolete in favor of 'if-let'. + * lisp/ibuffer.el (ibuffer-mouse-toggle-mark) + (ibuffer-mark-interactive, ibuffer-compile-format, process): + Prefer 'if-let' to above obsolete macro. + (ibuffer-toggle-marks, ibuffer-map-lines): Prefer 'when-let' + to above obsolete macro. + +2022-08-09 Michael Albinus + + Further Tramp fixes for Android 12 + + * lisp/net/tramp-adb.el (tramp-adb-handle-file-attributes) + (tramp-adb-handle-directory-files-and-attributes) + (tramp-adb-handle-file-name-all-completions): Pipe "ls" output + through "cat", in order to avoid quoting special characters. + (tramp-adb-sh-fix-ls-output): Remove fix for file names with spaces. + + * test/lisp/net/tramp-tests.el (tramp-test22-file-times): Adapt test. + +2022-08-09 Stefan Kangas + + Improve message regarding missing LEIM + + * lisp/international/ja-dic-utl.el (skkdic-lookup-key): + * lisp/international/mule-diag.el (list-input-methods-1): + * lisp/international/quail.el (quail-use-package): Explain that LEIM + is installed together with Emacs. + +2022-08-09 Stefan Kangas + + Improve readability of list-input-methods + + * lisp/international/mule-diag.el: Make screen more readable by + improving the formatting. + +2022-08-09 Stefan Kangas + + Replace utility functions with seq-uniq + + * lisp/gnus/gnus-util.el (gnus-delete-duplicates): + * lisp/ibuf-ext.el (ibuffer-remove-duplicates): Redefine as + obsolete function alias for 'seq-uniq'. Update callers. + +2022-08-09 Lars Ingebrigtsen + + Make the loaddefs.el file slightly shorter + + * lisp/emacs-lisp/loaddefs-gen.el + (loaddefs-generate--shorten-autoload): New function. + (loaddefs-generate--make-autoload): Use it to drop optional nil + values from the `autoloads' forms. This makes the loaddefs.el + file about 12K shorter. + +2022-08-09 Stefan Kangas + + Make ibuffer-awhen obsolete in favor of when-let + + * lisp/ibuf-macs.el (ibuffer-awhen): Make obsolete in favor of + 'when-let'. Update callers. + +2022-08-09 Stefan Kangas + + Make ibuffer-split-list obsolete in favor of seq-group-by + + * lisp/ibuf-ext.el (ibuffer-split-list): Make obsolete in favor of + 'seq-group-by'. + (ibuffer-generate-filter-groups): Don't use above obsolete + function. + +2022-08-09 Stefan Kangas + + Make compat alias check-ispell-version obsolete + + * lisp/textmodes/ispell.el (check-ispell-version): Make compat + alias obsolete. + +2022-08-09 Stefan Kangas + + * lisp/ibuffer.el (ibuffer): Use substitute-command-keys for help. + +2022-08-09 Stefan Kangas + + Make compat alias image-refresh obsolete + + * lisp/image.el (image-refresh): Make compat alias obsolete. + Update callers. + +2022-08-09 Stefan Kangas + + Make compat aliases obsolete in fortran.el + + * lisp/progmodes/fortran.el (fortran-indent-new-line) + (fortran-auto-fill-mode): Make compat aliases obsolete; update + callers. + +2022-08-09 Stefan Kangas + + * lisp/isearch.el (isearch-mode-help): Make compat alias obsolete. + +2022-08-09 Alan Mackenzie + + CC Mode: Allow the insertion of long strings of letters in reasonable time + + This fix allows M-: (insert (make-string 1000000 ?y)) to work fast when + inserted between C++ raw string delimiters after (setq long-line-threshold + nil). + + * lisp/progmodes/cc-langs.el (c-symbol-key): Replace a "*" by "\\{,1000\\}" in + a regexp. + +2022-08-09 Po Lu + + Factor out some duplicate code from handle_one_xevent + + * src/xterm.c (xi_disable_devices): New function. + (handle_one_xevent): Use that to disable an array of device IDs + instead of copypasting the same block of code over and over + again. + +2022-08-09 Stefan Kangas + + Merge from origin/emacs-28 + + d91ffdbec2 Don't mention XEmacs toolbar in ediff manual + +2022-08-08 Po Lu + + Fix handling of XI_DeviceChanged events + + * src/xterm.c (xi_get_scroll_valuator): New function. + (xi_handle_device_changed): New function. + (handle_one_xevent): Factor out most of the device changed code + to that function, and make it specifically query for the device + information. (bug#57020) + +2022-08-08 Michael Heerdegen + + Another lisp-current-defun-name tweak + + * lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Avoid error + when edebug spec is the symbol t. + +2022-08-08 Dmitry Gutov + + Add separate tiny major mode for JSON + + * lisp/progmodes/js.el (js-json-mode): New major mode. + + * lisp/files.el (auto-mode-alist): Use it for JSON (bug#56682). + + * lisp/progmodes/js.el (js--class-decl-matcher): + Skip work if there are no frameworks enabled. + +2022-08-08 John Wiegley + + Merge pull request from tarsiiformes/quote-quote + + GitHub-reference: https://github.com/jwiegley/use-package/issues/990 + +2022-08-08 Jonas Bernoulli + + Quote single quotes in docstrings or use different quoting + + The byte-compiler started pointing this out: + Warning: docstring has wrong usage of unescaped single + quotes (use \= or different quoting) + +2022-08-08 Stefan Kangas + + * lisp/vc/diff-mode.el: Don't mention XEmacs. + +2022-08-08 Stefan Kangas + + Don't mention XEmacs toolbar in ediff manual + + * doc/misc/ediff.texi (Other Session Commands): Don't mention XEmacs + specific toolbar support for now. This can be changed back once the + toolbar is ported to Emacs. + +2022-08-08 John Wiegley + + Merge pull request from tarsiiformes/cleanup-manual + + GitHub-reference: https://github.com/jwiegley/use-package/issues/968 + +2022-08-08 Stefan Kangas + + * lisp/progmodes/antlr-mode.el: Remove remnants of XEmacs support. + +2022-08-08 Stefan Kangas + + Remove XEmacs specific symbol from gnus-user-agent + + * lisp/gnus/gnus.el (gnus-user-agent): Remove XEmacs specific + 'codename' symbol. + +2022-08-08 Stefan Kangas + + Remove some XEmacs compat code from mh-alias.el + + * lisp/mh-e/mh-alias.el (crm): Don't require for autoloaded + function. + (multi-prompt): Don't require XEmacs specific library. + +2022-08-08 Lars Ingebrigtsen + + Clean up fix_command code slightly + + * src/callint.c (fix_command): Remove superfluous check. + +2022-08-08 Lars Ingebrigtsen + + select-active-regions doc string improvement + + * src/keyboard.c (syms_of_keyboard): Mention + post-select-region-hook. + +2022-08-08 Lars Ingebrigtsen + + Do some NEWS tagging + +2022-08-08 Stefan Kangas + + * lisp/obsolete/makesum.el: Add "Obsolete-since" header. + +2022-08-08 Stefan Kangas + + Make makesum.el obsolete + + * lisp/makesum.el: Move from here... + * lisp/obsolete/makesum.el: ...to here. (Bug#56979) + + * test/lisp/makesum-tests.el: Move from here... + * test/lisp/obsolete/makesum-tests.el: ...to here. + +2022-08-08 Mattias Engdegård + + * src/print.c (struct print_buffer): Revert gratuitous format change. + +2022-08-08 Lars Ingebrigtsen + + Add NEWS note about interactive-args + +2022-08-08 Lars Ingebrigtsen + + Update TODO about fix_command + + * etc/TODO: Remove bit about fix_command, which has now been fixed. + +2022-08-08 Arash Esbati + + Improve collecting of citation keys + + * lisp/textmodes/reftex-cite.el (reftex-all-used-citation-keys): + Improve regexp for matching various cite commands incl. optional + arguments. + Recognize comments more robustly and don't interpret the control + symbol \% as a comment starter. (bug#56655) + + * test/lisp/textmodes/reftex-tests.el + (reftex-all-used-citation-keys): New test. + +2022-08-08 Lars Ingebrigtsen + + Clean up fix_command slightly + + * src/callint.c (fix_command): Remove now-unused parameter. + (Fcall_interactively): Ditto. + +2022-08-08 Lars Ingebrigtsen + + Further lisp-current-defun-name tweaks + + * lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Further + tweaks to finding the symbol being defined (defalias). + +2022-08-08 Lars Ingebrigtsen + + Allow specifying how args are to be stored in `command-history' + + * doc/lispref/functions.texi (Declare Form): Document + `interactive-args' + * lisp/replace.el (replace-string): Store the correct interactive + arguments (bug#45607). + + * lisp/emacs-lisp/byte-run.el (byte-run--set-interactive-args): + New function. + (defun-declarations-alist): Use it. + + * src/callint.c (fix_command): Remove the old hack (which now + longer works since interactive specs are byte-compiled) and + instead rely on `interactive-args'. + +2022-08-08 Lars Ingebrigtsen + + Make which-func-mode output less junk + + * lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Use + edebug specs to find the name (if they exist), and default to + returning the top-level symbol if there isn't a define-like form + (bug#49592). + +2022-08-08 Stefan Kangas + + * test/lisp/emacs-lisp/nadvice-tests.el: Re-add no-byte-compile. + +2022-08-08 Stefan Kangas + + Remove redundant local variables in tests + + * test/lisp/calc/calc-tests.el: + * test/lisp/progmodes/python-tests.el: Remove redundant local + variables. + * test/src/coding-tests.el: Pacify byte-compiler without using local + variable. + +2022-08-08 Stefan Kangas + + Revert "Don't autoload obsolete library tpu-extras.el" + + This reverts commit 77bf50cb330807039cc84138fb84870bd6d532e2. + +2022-08-08 Jonas Bernoulli + + manual: Regenerate texi file + +2022-08-08 Mattias Engdegård + + Group print buffer state in a struct + + * src/print.c (print_buffer, print_buffer_size, print_buffer_pos) + (print_buffer_pos_byte): Replace with... + (struct print_buffer, print_buffer): ...this. + * src/print.c: (print_free_buffer, print_unwind) + (print_prepare, print_finish, printchar, strout): Adapt users. + +2022-08-08 Mattias Engdegård + + Turn large macros in print.c to functions + + This is easier to read and maintain, and makes the state explicit. + It is a pure refactoring; the compiled code should be equivalent. + + * src/print.c (PRINTPREPARE, PRINTFINISH): Replace with... + (struct print_context, print_prepare, print_finish): ...these new + functions and explicit state in a struct. + (Fwrite_char, write_string, Fterpri, Fprin1, Fprin1_to_string) + (Fprinc, Fprint): Adapt callers. + +2022-08-08 Stefan Kangas + + Remove no-byte-compile cookie from some libraries + + This gives us back byte-compiler warnings for these files. + * lisp/mh-e/mh-acros.el: + * test/lisp/comint-tests.el: + * test/lisp/emacs-lisp/nadvice-tests.el: + * test/lisp/emacs-lisp/syntax-tests.el: + * test/lisp/xml-tests.el: + * test/src/font-tests.el: Remove no-byte-compile cookie. + * test/src/font-tests.el (font-parse-explain): Fix warning. + +2022-08-08 Stefan Kangas + + Don't autoload obsolete library tpu-extras.el + + * lisp/obsolete/tpu-edt.el: Remove autoloads of obsolete library + tpu-extras.el. + * lisp/obsolete/tpu-extras.el: Don't set generated-autoload-file + to tpu-edt.el. + +2022-08-08 Stefan Kangas + + Clean up some local variable sections + + * lisp/filesets.el: + * lisp/mh-e/mh-*.el: + * lisp/progmodes/python.el (python): Don't set options that are + already set in .dir-locals.el. + * lisp/textmodes/ispell.el: Remove redundant local variables. + * lisp/gnus/nnmaildir.el: Remove local variables that conflicts with + Emacs defaults. + +2022-08-07 Po Lu + + Fix warnings outside XI2 builds + + * src/xterm.c (x_query_pointer): Juggle some definitions around. + +2022-08-07 Po Lu + + Improve handling of pointer focus under the input extension + + * src/xfns.c (x_relative_mouse_position) + (Fx_mouse_absolute_pixel_position, compute_tip_xy): Use + x_query_pointer instead of XQueryPointer. + * src/xterm.c (xi_populate_device_from_info): Set new attachment + field. + (xi_handle_focus_change): Set client pointer. + (xi_focus_handle_for_device, xi_handle_interaction): Use + attached keyboard device to handle focus. + (x_query_pointer): New function. + (XTmouse_position, x_scroll_bar_report_motion) + (x_horizontal_scroll_bar_report_motion, handle_one_xevent): Use + x_query_pointer instead of XQueryPointer. + (x_term_init): Initialize client pointer device. + * src/xterm.h (struct xi_device_t): New field `attachment'. + (struct x_display_info): New field `client_pointer_device'. + +2022-08-07 Stefan Kangas + + Minor cleanups in ediff-*.el + + * lisp/vc/ediff-init.el (ediff-window-visible-p): + (ediff-nonempty-string-p): Simplify. + (stipple-pixmap): Don't try XEmacs specific(?) variable. + (ediff-frame-unsplittable-p): Make obsolete. Update callers. + (ediff-has-gutter-support-p): Redefine as obsolete function alias for + 'ignore'. + (ediff-mouse-event-p): Redefine as obsolete function alias for + 'mouse-event-p'. Update callers. + * lisp/vc/ediff-util.el (ediff-submit-report): Simplify. + (ediff-filename-magic-p): Make obsolete. Update callers. + (ediff-activate-mark): Make obsolete. Update callers. + * lisp/vc/ediff-help.el: + * lisp/vc/ediff-hook.el: + * lisp/vc/ediff-util.el: + * lisp/vc/ediff-wind.el: Remove superfluous defvars. + +2022-08-07 John Wiegley + + Merge pull request from conao3/fix-declare-style + + GitHub-reference: https://github.com/jwiegley/use-package/issues/760 + +2022-08-07 John Wiegley + + Merge pull request from waymondo/ensure-system-packages-use-package-as-one + + GitHub-reference: https://github.com/jwiegley/use-package/issues/774 + +2022-08-07 John Wiegley + + Merge pull request from waymondo/use-package-hook-handler-flatten-mode-symbols + + GitHub-reference: https://github.com/jwiegley/use-package/issues/775 + +2022-08-07 John Wiegley + + Merge pull request from waymondo/use-package-chords-autoloading-and-mapping-improvements + + GitHub-reference: https://github.com/jwiegley/use-package/issues/778 + +2022-08-07 John Wiegley + + Merge pull request from matzebond/master + + GitHub-reference: https://github.com/jwiegley/use-package/issues/787 + +2022-08-07 John Wiegley + + Merge pull request from wcy123/master + + GitHub-reference: https://github.com/jwiegley/use-package/issues/822 + +2022-08-07 Stefan Kangas + + Make ediff-window-display-p obsolete + + * lisp/vc/ediff-init.el (ediff-window-display-p): Redefine as + obsolete function alias for 'display-graphic-p'. + +2022-08-07 John Wiegley + + Merge pull request from phst/lex + + GitHub-reference: https://github.com/jwiegley/use-package/issues/848 + +2022-08-07 John Wiegley + + Merge pull request from phst/flet + + GitHub-reference: https://github.com/jwiegley/use-package/issues/849 + +2022-08-07 John Wiegley + + Merge pull request from conao3/add-custom-face-description + + GitHub-reference: https://github.com/jwiegley/use-package/issues/863 + +2022-08-07 John Wiegley + + Merge pull request from iaeerfung/master + + GitHub-reference: https://github.com/jwiegley/use-package/issues/912 + +2022-08-07 John Wiegley + + Merge pull request from wyuenho/set-default-use-package-enable-imenu-support + + GitHub-reference: https://github.com/jwiegley/use-package/issues/920 + +2022-08-07 John Wiegley + + Merge pull request from wyuenho/statistics-sorting + + GitHub-reference: https://github.com/jwiegley/use-package/issues/921 + +2022-08-07 John Wiegley + + Merge pull request from Hugo-Heagren/bind-keys-repeat-map + + GitHub-reference: https://github.com/jwiegley/use-package/issues/974 + +2022-08-07 John Wiegley + + Merge pull request from danielpza/add-update-custom-package + + GitHub-reference: https://github.com/jwiegley/use-package/issues/930 + +2022-08-07 John Wiegley + + Merge pull request from tarsiiformes/silencio + + GitHub-reference: https://github.com/jwiegley/use-package/issues/936 + +2022-08-07 Lars Ingebrigtsen + + Pacify a gcc warning in xi_handle_focus_change + + * src/xterm.c (xi_handle_focus_change): Pacify a wrong warning on + gcc (Debian 10.2.1-6). + + xterm.c: In function ‘xi_handle_focus_change’: + xterm.c:12564:25: warning: ‘source’ may be used uninitialized in + this function [-Wmaybe-uninitialized] + 12564 | ie.device = source->name; + | ~~~~~~^~~~~~ + +2022-08-07 John Wiegley + + Merge pull request from DamienCassou/update-texi + + GitHub-reference: https://github.com/jwiegley/use-package/issues/979 + +2022-08-07 John Wiegley + + Merge pull request from skangas/fix-typo + + GitHub-reference: https://github.com/jwiegley/use-package/issues/987 + +2022-08-07 Michael Albinus + + Improve Tramp error message + + * lisp/net/tramp-sh.el (tramp-sh-handle-file-local-copy): + Simplify for empty files. Better error message. (Bug#56879) + +2022-08-07 kobarity + + Fix blank/comment line handling in python-nav-beginning-of-block + + * lisp/progmodes/python.el (python-nav-beginning-of-block): Fix + handling of blank/comment line right after block start (bug#57038). + +2022-08-07 Eli Zaretskii + + Fix 'vertical-motion' in bidi-reordered text + + * src/xdisp.c (move_it_vertically_backward): Fix the case of long + bidi-reordered lines when starting from its last (top-most) screen + line. + (move_it_by_lines): Fix logic of detection when going by lines + overshoots. + +2022-08-07 Stefan Kangas + + Make ediff-file-remote-p obsolete in favor of file-remote-p + + * lisp/vc/ediff-init.el (ediff-file-remote-p): Make into obsolete + function alias for file-remote-p. Update callers. + +2022-08-07 Stefan Kangas + + Declare unused function ediff-user-grabbed-mouse obsolete + + * lisp/vc/ediff-init.el (ediff-user-grabbed-mouse): Declare unused + function obsolete. As far as I can tell, this has been unused + since 1996. + + * lisp/vc/ediff-wind.el (ediff-mouse-pixel-position): Make + variable obsolete. It is only used in the above obsolete funct + * lisp/vc/ediff-mult.el (ediff-filegroup-action) + (ediff-registry-action): + * lisp/vc/ediff-util.el (ediff-setup): Don't set above unused + variable. + + * lisp/vc/ediff-init.el (ediff-spy-after-mouse): Make obsolete. + * lisp/vc/ediff-util.el (ediff-setup): Don't add above obsolete + function to pre-command-hook. + +2022-08-07 Stefan Kangas + + Make compat function custom-reset-variables obsolete + + * lisp/custom.el (custom-reset-variables): Make unused XEmacs compat + function obsolete. + +2022-08-07 Stefan Kangas + + Remove workaround for XEmacs bug in ediff-util.el + + * lisp/vc/ediff-util.el (ediff-make-empty-tmp-file): Remove + workaround for XEmacs bug. + +2022-08-07 Stefan Kangas + + * lib-src/etags.c: Remove XEmacs support. + +2022-08-07 Lars Ingebrigtsen + + Clarify lisp/Makefile.in comment + + * lisp/Makefile.in: Clarify comment. + +2022-08-07 Alan Mackenzie + + CC Mode: Fix looping in patch from yesterday + + * lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings) + (c-after-change-mark-abnormal-strings): Check (eobp) in loops advancing over + escaped newlines. + +2022-08-07 Lars Ingebrigtsen + + Tweak autoloads lisp/Makefile.in dependencies + + * lisp/Makefile.in (autoloads): Adjust the dependencies to what + they were before, and update the comments. + +2022-08-07 Stefan Kangas + + Improve how url-http displays status messages + + * lisp/url/url-util.el (url-display-message): New function. + (url-display-percentage): Make obsolete in favor of + url-display-message. + + * lisp/url/url-http.el + (url-http-content-length-after-change-function): + Prefer 'url-display-message' to 'url-display-percentage'. + (url-http-content-length-after-change-function) + (url-http-chunked-encoding-after-change-function): + Remove ineffectual calls to 'url-display-percentage'. + +2022-08-07 Stefan Kangas + + Merge from origin/emacs-28 + + 7ffcba4213 * etc/PROBLEMS: Problems with Alacritty and Emoji. (Bug#5... + df95118e83 Link from (emacs)Init Syntax to (elisp)Introduction + 7793cf0c3d Don't mention removed XEmacs support in reftex manual + 3d1cf1b47a Don't mention removed XEmacs support in idlwave manual + 7ff60c62a9 ; * admin/make-tarball.txt: Fix last change. + 2fd5590d0c ; * lisp/play/fortune.el (fortune-ask-file): Doc fix. + +2022-08-07 Mattias Engdegård + + Cease emitting negative file offsets for user variables + + 'User variables' were made obsolete in Emacs 24 along with + user-variable-p; the sign of the position in (#$ . POS) hasn't + mattered since. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-output-docform): + Don't emit negative position when doc string starts with `*`. + * src/lread.c (get_lazy_string): Explain. + +2022-08-07 Mattias Engdegård + + Use struct for saved strings in the reader + + * src/lread.c (saved_doc_string, saved_doc_string_size) + (saved_doc_string_length, saved_doc_string_position) + (prev_saved_doc_string, prev_saved_doc_string_size) + (prev_saved_doc_string_length, prev_saved_doc_string_position): + Replace with... + (struct saved_string, saved_strings): ...this. + * src/lread.c (Fload, skip_lazy_string, get_lazy_string): + Adapt code. + +2022-08-07 Mattias Engdegård + + Make force-load-doc-strings work again + + When load-force-doc-strings is true, read (#$ . POS) as the (unibyte) + string referred to. This feature was lost by mistake in the recent + nonrecursive reader rewrite. + + Noticed by Stefan Monnier. + + * src/lread.c (get_lazy_string): New function (code mostly recycled + from an old version). + (read0): Detect (#$ . FIXNUM) and retrieve the string if appropriate. + * test/src/lread-resources/lazydoc.el: + * test/src/lread-tests.el (lread-force-load-doc-strings): + New test. + +2022-08-06 Po Lu + + Revert "Improve X event timestamp tracking" + + This reverts commit 4b98a79a508ebdc719abfcf51ee6de32e46d0e1c. + + This change was installed without answering several important + questions. + +2022-08-06 Daniel Colascione + + Improve X event timestamp tracking + + Fix two problems with our handling of X timestamps + + 1) We're not properly updating the X interaction timestamp after + receiving certain input events, and + + 2) X events sent in response to emacsclient commands get stale + timestamps because the timestamp tracking doesn't take into account + that interactions with the user can occur outside the X input + event channel. + + * src/xterm.c: + (x_display_set_last_user_time_1): New function. + (x_display_set_last_user_time): Call it. + (x_ewmh_activate_frame): Refactor. + (x_focus_frame): Don't call XSetInputFocus if we can use EWMH activation. + (server_timestamp_predicate): New function. + (x_get_server_time): New function. + (x_note_oob_interaction): New function. + (x_create_terminal): Register new function as terminal hook. + + * src/termhooks.h: New hook: note_oob_interaction_hook. + + * src/gtkutil.h: + (xg_set_user_timestamp): Declare. + + * src/gtkutil.c: + (xg_set_user_timestamp): New function. + + * src/frame.c: + (Fframe_note_oob_interaction): New function. + (syms_of_frame): Register it. + + * lisp/server.el: + (server-switch-buffer): Call frame-note-oob-interaction when user + requests frame be raised. + +2022-08-06 Po Lu + + Correctly set user time on GTK+ for key press events + + * src/xterm.c (x_set_gtk_user_time): New function. + (handle_one_xevent): Call that after key press event on GTK+. + +2022-08-06 Jonas Bernoulli + + * lisp/transient.el: Update to package version v0.3.7-158-gc09b34e + +2022-08-06 Alan Mackenzie + + CC Mode: Optimize font-locking stanzas for long raw strings. + + Also replace some regexp searches which had caused regexp engine stack + overflows with simple end-of-line calls. + + * lisp/progmodes/cc-fonts.el (c-make-syntactic-matcher) + (c-make-font-lock-search-form): Start the generated functions with a skipping + of comments and strings. + (c-make-font-lock-BO-decl-search-function): Start the generated function with + a (fast) movement to the start of any literal. + + * lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings) + (c-after-change-mark-abnormal-strings): Replace complicated regexp searches + for end of logical line with basic Lisp functions. + +2022-08-06 Stefan Kangas + + Finish up obsoletion of mh-compat.el + + * lisp/obsolete/mh-compat.el: Add "Obsolete-since" header. + * lisp/mh-e/mh-e.el (mh-compat): Don't require. + * lisp/mh-e/mh-utils.el (mailabbrev): Require. + +2022-08-06 Stefan Kangas + + Make mh-compat.el obsolete + + This used to be for XEmacs and old version compatibility, but nowadays + everything in this file is obsolete. + + * lisp/mh-e/mh-compat.el: Move from here... + * lisp/obsolete/mh-compat.el: ...to here. + +2022-08-06 Stefan Kangas + + Move mh-flet macro to mh-acros.el + + * lisp/mh-e/mh-compat.el (mh-flet): Move from here... + * lisp/mh-e/mh-acros.el (mh-flet): ...to here. + +2022-08-06 Stefan Kangas + + Make compat macro mh-display-completion-list obsolete + + * lisp/mh-e/mh-compat.el (mh-display-completion-list): Make compat + macro obsolete. Update callers. + +2022-08-06 Eli Zaretskii + + * etc/PROBLEMS: Problems with Alacritty and Emoji. (Bug#56952) + +2022-08-06 Michael Albinus + + Adapt Tramp for Android 12 + + * lisp/net/tramp-adb.el (tramp-methods): Use "%d". + (tramp-adb-handle-directory-files-and-attributes): Fix "." and + ".." in listing. + (tramp-adb-sh-fix-ls-output): Fix file names with spaces. + (tramp-adb-maybe-open-connection): Compute args from `tramp-login-args'. + + * lisp/net/tramp.el (tramp-methods): Adapt docstring. + (tramp-handle-make-process): Check for adb device if indicated. + + * test/lisp/net/tramp-tests.el (tramp-test17-insert-directory) + (tramp-test22-file-times): Adapt tests. + +2022-08-06 Stefan Kangas + + Fix namespacing problem in allout.el + + * lisp/allout.el (allout-outlinify-sticky): Rename from + 'outlineify-sticky'. Make old name into obsolete alias. + (outlinify-sticky): Make into obsolete function alias for + 'allout-outlinify-sticky'. + (allout-mode): Doc fix. + +2022-08-06 Stefan Kangas + + Fix defvar-keymap example in elisp manual + + * lisp/textmodes/text-mode.el (text-mode-map): Convert to + defvar-keymap. + * doc/lispref/modes.texi (Example Major Modes): Fix example to + match code. + +2022-08-06 Stefan Kangas + + Make indented-text-mode alias obsolete + + * lisp/textmodes/text-mode.el (indented-text-mode): Make compat + alias obsolete. + * lisp/allout.el (allout-use-hanging-indents): + * lisp/emulation/viper.el (viper-vi-state-mode-list): + * lisp/textmodes/remember.el (remember-mode): + * lisp/textmodes/text-mode.el (text-mode-map): + * lisp/vc/ediff-util.el (ediff-choose-syntax-table): Don't mention or + use above obsolete alias. + +2022-08-06 Stefan Kangas + + Make {close,replace}-rectangle compat aliases obsolete + + * lisp/rect.el (close-rectangle, replace-rectangle): Make compat + aliases obsolete. + +2022-08-06 Stefan Kangas + + Don't mention test failures on Ubuntu 16.04 in PROBLEMS + + Ubuntu 16.04 LTS reached end of life on April 30th, 2021. + Furthermore, test failures don't seem significant enough to warrant an + entry. It's rather cosmetic. + * etc/PROBLEMS: Delete entry on test failures on Ubuntu 16.04. + +2022-08-06 Eli Zaretskii + + New function 'composition-sort-rules' + + * src/composite.c (Fcomposition_sort_rules) + (compare_composition_rules): New functions. + +2022-08-06 Jonas Bernoulli + + * doc/misc/transient.texi: Update to transient v0.3.7-156-ga5562cb + + Eventually we want to be able to generate "transient.texi" from + "transient.org", without having to either give up on idiomatic texinfo + or making it much more painful to maintain the org file. + + We are much closer to that now, but there are still a few areas where + additional work is needed. This was mostly accomplished by using Org + macros. + + The most significant outstanding issue is that the generated + references don't yet look like an experienced texinfo author like Eli + would like them to look. Additionally it is not yet possible to use a + macro that produces @dots{} in the places Eli added them, and in Org + code blocks it is not possible to use macros, so we cannot have + @var{...} appear in "@lisp ... @end lisp". The last issue probably + cannot be changed on Org's side, but since there are only two such + code blocks, this might be a situation where the compromise has to + come from the texinfo side. There are also three other very minor + and inconsequential differences. + + For now I have regenerated the texinfo file from the org file and then + discarded the differences mentioned in the previous paragraph. + + The process of merging (1) Eli's changes to the texinfo file + (including, but certainly not limited to markup), (2) changes to the + org source (updated content, formatting changes backported earlier, + fixes for formatting changes Eli did not fix, etc.) and (3) changes to + the code that converts the org source to texinfo, was very laborious + and painful. In essence, this amounted to a (at least) three-way + merge across three different languages and three repositories. + + I tried very hard to not waste any of the effort Eli had put into + fixing up the generated texinfo file. I.e., I went back and forth + making improvements to the org source, implementing org macros, + regenerating the texinfo and comparing the remaining difference, and + creating commits on both sides. This resulted in a dozen commits on + both sides and took me well over a day. I could have put in even more + effort to absolutely ensure nothing at all is lost in the process, but + I think that would have amounted to a colossal waste of my time. + + Going forward, if you find unidiomatic texinfo, then please don't fix + each instance. Instead write me an email, explaining what the problem + is. You are welcome to make limited fixes to the content or fix + one-of markup issue in the texinfo file; those are relatively simple + to backport in comparison. + +2022-08-06 Eli Zaretskii + + Speed up display of Arabic + + * lisp/language/misc-lang.el (composition-function-table): Move + some of the Arabic composition rules to ZWJ and ZWNJ cells. This + speeds up display of Arabic by a factor of 2. (Bug#56682) + +2022-08-06 Eli Zaretskii + + Fix C-n/C-p inside bidirectional text + + * src/xdisp.c (move_it_by_lines, try_cursor_movement): Handle + glyph rows whose direction of increasing buffer positions is + reverse of the normal: going down in the window makes buffer + positions higher. + * src/indent.c (Fvertical_motion): When looking for the last glyph + row occupied by point, take into account the bidi iteration + direction. + +2022-08-06 YugaEgo + + Link from (emacs)Init Syntax to (elisp)Introduction + + * doc/emacs/custom.texi (Init Syntax): Link to the ELisp manual (Bug#56870) + +2022-08-06 lWarne + + Fontify python escape sequences in literals + + * lisp/progmodes/python.el (python-rx): Add regular expressions + matching escape codes in string and byte literals + (python--string-bytes-literal-matcher): new function + (python--not-raw-bytes-literal-start-regexp): new constant + (python--not-raw-string-literal-start-regexp): new constant + * test/lisp/progmodes/python-tests.el: Add tests for new + fontification (bug#57004). + +2022-08-06 Lars Ingebrigtsen + + Fix mh-e.texi syntax (from previous change) + + * doc/misc/mh-e.texi (Viewing): Add closing brace to @footnote. + +2022-08-06 Stefan Kangas + + * etc/PROBLEMS: Delete entry on 20+ years old version of X-Symbol. + + * admin/check-doc-strings: Remove XEmacs support. + +2022-08-06 Stefan Kangas + + Don't mention removed XEmacs support in reftex manual + + * doc/misc/reftex.texi (Installation, Imprint): Don't mention + removed XEmacs support. + +2022-08-06 Stefan Kangas + + Don't mention removed XEmacs support in mh-e manual + + * doc/misc/mh-e.texi (Preface, Incorporating Mail, Viewing) + (Tool Bar, Tool Bar): Remove any reference to XEmacs. + +2022-08-06 Stefan Kangas + + Make alias widget-visibility-value-create obsolete + + * lisp/wid-edit.el (widget-visibility-value-create): Make compat + alias obsolete. + +2022-08-06 Stefan Kangas + + Make an rmail compat alias obsolete + + * lisp/mail/rmailsum.el (rmail-summary-output-to-rmail-file): Make + compat alias obsolete. + +2022-08-06 Stefan Kangas + + Make compat alias ede-toplevel-project-or-nil obsolete + + * lisp/cedet/ede/files.el (ede-toplevel-project-or-nil): Make + compat alias obsolete. + +2022-08-06 Stefan Kangas + + Drop support for XEmacs package func-menu from idlwave + + * lisp/progmodes/idlwave.el (idlwave-function-menu): Make into + obsolete alias for imenu. Update callers. + * doc/misc/idlwave.texi (Introduction, Motion Commands): Remove + any mention of func-menu. + +2022-08-06 Stefan Kangas + + Make face-doc-string aliases obsolete + + * lisp/faces.el (face-doc-string, set-face-doc-string): Make + aliases obsolete. + +2022-08-06 Stefan Kangas + + * admin/update_autogen: Fix generating ldefs-boot.el. + + * admin/update_autogen: Fix refreshing grammar-wy.el. + +2022-08-06 Lars Ingebrigtsen + + Put no-byte-compile cookie back in ldefs-boot.el + +2022-08-06 Stefan Kangas + + Don't mention removed XEmacs support in idlwave manual + + * doc/misc/idlwave.texi (Lesson I---Development Cycle) + (Syntax Highlighting, Windows and macOS, Troubleshooting): Delete + most references to XEmacs. Support for it was deleted in 28.1. + +2022-08-06 Po Lu + + Correctly initialize values after a new device is enabled + + * src/xterm.c (handle_one_xevent): Initialize new device to + zero. (bug#57011) + +2022-08-06 Eli Zaretskii + + * src/puresize.h (BASE_PURESIZE): Bump the value. (Bug#57007) + +2022-08-06 Stefan Kangas + + Merge from origin/emacs-28 + + f3b9bccb45 * lisp/play/fortune.el: Doc fixes. + +2022-08-05 Po Lu + + Improve XI focus handling for entry and exit events + + * src/xterm.c (handle_one_xevent): Skip useless + x_detect_focus_change calls in more cases. + +2022-08-05 Po Lu + + * src/callproc.c (emacs_spawn): Fix Mac OS X build. + +2022-08-05 Po Lu + + Fix signature of `seconds-to-time' + + * lisp/calendar/time-date.el (seconds-to-time): Fix after change + to time-convert. + +2022-08-05 Po Lu + + Improve XI focus handling + + * src/xterm.c (handle_one_xevent): Skip useless + x_detect_focus_change calls in some cases. + +2022-08-05 Jim Porter + + Add STREAM argument to 'process-tty-name' + + * src/process.c (process-tty-name): Add STREAM argument. + + * lisp/eshell/esh-io.el (eshell-close-target): Only call + 'process-send-eof' once if the process's stdin is a pipe. + + * test/src/process-tests.el (make-process/test-connection-type): Check + behavior of 'process-tty-name'. + + * doc/lispref/processes.texi (Process Information): Document the new + argument. + + * etc/NEWS: Announce this change. + +2022-08-05 Jim Porter + + Allow creating processes where only one of stdin or stdout is a PTY + + * src/lisp.h (emacs_spawn): + * src/callproc.c (emacs_spawn): Add PTY_IN and PTY_OUT arguments to + specify which streams should be set up as a PTY. + (call_process): Adjust call to 'emacs_spawn'. + + * src/process.h (Lisp_Process): Replace 'pty_flag' with 'pty_in' and + 'pty_out'. + + * src/process.c (is_pty_from_symbol): New function. + (make-process): Allow :connection-type to be a cons cell, and allow + using a stderr process with a PTY for stdin/stdout. + (create_process): Handle creating a process where only one of stdin or + stdout is a PTY. + + * lisp/eshell/esh-proc.el (eshell-needs-pipe, eshell-needs-pipe-p): + Remove. + (eshell-gather-process-output): Use 'make-process' and set + ':connection-type' as needed by the value of 'eshell-in-pipeline-p'. + + * lisp/net/tramp.el (tramp-handle-make-process): + * lisp/net/tramp-adb.el (tramp-adb-handle-make-process): + * lisp/net/tramp-sh.el (tramp-sh-handle-make-process): Don't signal an + error when ':connection-type' is a cons cell. + + * test/src/process-tests.el + (process-test-sentinel-wait-function-working-p): Allow passing PROC + in, and rework into... + (process-test-wait-for-sentinel): ... this. + (process-test-sentinel-accept-process-output) + (process-test-sentinel-sit-for, process-test-quoted-batfile) + (process-test-stderr-filter): Use 'process-test-wait-for-sentinel'. + (make/process/test-connection-type): New function. + (make-process/connection-type/pty, make-process/connection-type/pty-2) + (make-process/connection-type/pipe) + (make-process/connection-type/pipe-2) + (make-process/connection-type/in-pty) + (make-process/connection-type/out-pty) + (make-process/connection-type/pty-with-stderr-buffer) + (make-process/connection-type/out-pty-with-stderr-buffer): New tests. + + * test/lisp/eshell/esh-proc-tests.el (esh-proc-test--detect-pty-cmd): + New variable. + (esh-proc-test/pipeline-connection-type/no-pipeline) + (esh-proc-test/pipeline-connection-type/first) + (esh-proc-test/pipeline-connection-type/middle) + (esh-proc-test/pipeline-connection-type/last): New tests. + + * doc/lispref/processes.texi (Asynchronous Processes): Document new + ':connection-type' behavior. + (Output from Processes): Remove caveat about ':stderr' forcing + 'make-process' to use pipes. + + * etc/NEWS: Announce this change (bug#56025). + +2022-08-05 Stefan Monnier + + time-convert): Deprecate calls without an explicit FORM arg + + * lisp/subr.el (time-convert): Deprecate calls without an explicit FORM arg. + + * doc/lispref/os.texi (Time Conversion): Adjust doc accordingly. + + * lisp/calendar/time-date.el (days-to-time): + * lisp/emacs-lisp/timer.el (timer-next-integral-multiple-of-time): + * lisp/gnus/nnrss.el (nnrss-normalize-date): + * lisp/epa-ks.el (epa-ks--parse-buffer): Silence corresponding warnings. + +2022-08-05 Lars Ingebrigtsen + + Ensure that leim-list.el is built + + * lisp/Makefile.in: Ensure that leim-list.el is built (bug#56998). + +2022-08-05 Stefan Kangas + + Allow newline after def*-form for definition-prefix + + * lisp/emacs-lisp/loaddefs-gen.el (autoload-ignored-definitions): + Add another semantic function. + (loaddefs-generate--compute-prefixes): Allow newline after the "(def*" + form. (Bug#57000) + +2022-08-05 Filipp Gunbin + + Add variable end-of-defun-moves-to-eol + + * lisp/emacs-lisp/lisp.el (end-of-defun-moves-to-eol): New variable. + (end-of-defun): Use it. + +2022-08-05 Stefan Monnier + + * src/keyboard.c (timer_check_2): Replace redundant test with assertion + +2022-08-05 Stefan Monnier + + timer.el: Avoid repeated timers + + https://mail.gnu.org/archive/html/emacs-devel/2022-07/msg01127.html + points out that end-users can get bitten by this, accidentally + calling `timer-activate` on an already activated timer. + + * lisp/emacs-lisp/timer.el (timer--activate): Signal an error if we try + to re-add a timer that's already on the timer-list. + +2022-08-05 Stefan Monnier + + bytecomp.el: Update comments referring to `make-docfile` + +2022-08-05 Eli Zaretskii + + Avoid assertion violations in 'back_to_previous_visible_line_start' + + * src/xdisp.c (init_iterator): Always initialize narrowed_begv to + zero, since SET_WITH_NARROWED_BEGV depends on it being non-zero as + an indication that long-line optimizations are in use. + (back_to_previous_visible_line_start): When long-line + optimizations are in effect, we may end up not on a newline. + +2022-08-05 Stefan Monnier + + bytecomp.el: Further simplifications enabled by commit 59732a83c8875c + + * lisp/emacs-lisp/bytecomp.el (byte-compile-output-docform): Don't + insert a \n before the #@ docstrings since make-docfile doesn't scan + .elc files any more. + +2022-08-05 Lars Ingebrigtsen + + Fix lisp/Makefile.in autoloads dependency + + * lisp/Makefile.in (autoloads): Ensure that loaddefs-gen.elc + exists before making autoloads. + +2022-08-05 Stefan Kangas + + Make ange-ftp-re-read-dir compat alias obsolete + + * lisp/net/ange-ftp.el (ange-ftp-re-read-dir): Make alias obsolete. + Update callers. + +2022-08-05 Lars Ingebrigtsen + + Make loaddefs.el dependencies more explicit in src/Makefile.in + + * src/Makefile.in (LC_ALL): Add loaddefs.el as a dependency, too, + since that file may be deleted, but the loaddefs.elc file still + exists. This causes problems in nativecomp builds. + +2022-08-05 Stefan Kangas + + Rename object-sort-list to srecode-object-sort-list + + * lisp/cedet/srecode/table.el (srecode-object-sort-list): Rename + from 'object-sort-list'. Retain old name as an obsolete alias. + +2022-08-05 Stefan Kangas + + Fix namespace problems in viper.el + + * lisp/emulation/viper.el + (viper-this-major-mode-requires-vi-state): Rename from + 'this-major-mode-requires-vi-state'. Retain old name as an + obsolete alias. + (viper-set-state-in-major-mode): Rename from + 'set-viper-state-in-major-mode'. Retain old name as an obsolete + alias. + +2022-08-05 Stefan Kangas + + Fix namespace problems in xscheme.el + + * lisp/progmodes/xscheme.el (xscheme-default-runlight): Rename + from 'default-xscheme-runlight'. Retain old name as an obsolete + alias. + (xscheme-verify-buffer): Rename from 'verify-xscheme-buffer'. + Retain old name as an obsolete alias. + +2022-08-05 Stefan Kangas + + Fix namespace problem in saveplace.el + + * lisp/saveplace.el (save-place-load-alist-from-file): Rename from + 'load-save-place-alist-from-file'. Retain old name as an obsolete + alias. Update callers. + +2022-08-05 Stefan Kangas + + Make two perl-mode aliases obsolete + + * lisp/progmodes/perl-mode.el (indent-perl-exp) + (mark-perl-function): Make obsolete. + +2022-08-05 Stefan Kangas + + Fix namespace problem in ede/custom.el + + * lisp/cedet/ede/custom.el (ede-eieio-old-variables): Rename from + 'ede-eieio-old-variables'. Retain old name as an obsolete alias. + +2022-08-05 Stefan Kangas + + * test/lisp/env-tests.el: New file. + + * lisp/play/fortune.el: Doc fixes. + +2022-08-05 Po Lu + + Fix oldXMenu grab handling + + * src/xmenu.c (x_menu_translate_generic_event, pop_down_menu): + Clear grab correctly on individual XI2 devices. + +2022-08-05 Po Lu + + Improve C-x C-q in emacs-news-mode + + * lisp/textmodes/emacs-news-mode.el (emacs-news-mode-map) + (emacs-news-view-mode-map): Make C-x C-q switch to the + appropriate mode for editing, and vice versa. + (emacs-news-mode): Disable button-mode and make buffer + read-write. + +2022-08-05 Po Lu + + Improve multi-pointer X support + + * etc/TODO: Document that MPX support still needs work. + * src/xterm.c (xi_handle_interaction): New function. + (handle_one_xevent): Call it in the appropriate places. + +2022-08-05 Stefan Kangas + + Merge from origin/emacs-28 + + f484da5fcb * doc/lispref/loading.texi (Autoload by Prefix): Fix typo. + +2022-08-04 Po Lu + + Improve input extension focus handling with multiple master devices + + * src/xterm.c (x_cache_xi_devices): Initialize device fields to + 0. + (xi_handle_focus_change, xi_focus_handle_for_device) + (xi_handle_delete_frame): New functions; store focus information + per-device instead. + (x_detect_focus_change): Handle GenericEvents that way instead. + (handle_one_xevent): Don't cache XI devices on DeviceChanged. + (x_free_frame_resources): Clear any frame focus information. + + * src/xterm.h (struct xi_device_t): New fields for focus + tracking. Add comments describing fields. + +2022-08-04 Stefan Kangas + + Prefer defvar-keymap in mail/*.el + + * lisp/mail/mspools.el (mspools-mode-map): + * lisp/mail/rmailedit.el (rmail-edit-map): + * lisp/mail/rmailsum.el (rmail-summary-edit-map): + * lisp/mail/supercite.el (sc-T-keymap, sc-mode-map) + (sc-electric-mode-map, sc-minibuffer-local-completion-map) + (sc-minibuffer-local-map): Prefer defvar-keymap. + +2022-08-04 Stefan Kangas + + Whitespace fix in gdb-mi.el + + * lisp/progmodes/gdb-mi.el (gdb-memory-next-page) + (gdb-memory-prev-page): Change tab after "defvar" to space, to avoid + potential bugs in tooling. + +2022-08-04 Stefan Kangas + + Be more lax when picking up prefixes for loaddefs + + * lisp/emacs-lisp/loaddefs-gen.el + (loaddefs-generate--compute-prefixes): Allow tabs and spaces before + symbol name, so that "(defvar\tfoo-bar nil)" is properly picked up. + Before this change, such a definition would be wrongly picked up as + the symbol "nil". + +2022-08-04 Andreas Schwab + + * lisp/Makefile.in (distclean): Also remove loaddefs.elc. + +2022-08-04 Gregory Heytings + + Merge branch 'feature/long-lines-improvements' + +2022-08-04 Peder O. Klingenberg + + * lisp/org/org.el: Fix load of compiled or compressed org-loaddefs + + * lisp/org/org.el (eq): Fix load of compiled or compressed + org-loaddefs (bug#56982). + +2022-08-04 Michael Albinus + + Adapt Tramp for backward compatibility + + * lisp/net/tramp-compat.el (tramp-compat-auth-source-netrc-parse-all): + New defalias. + + * lisp/net/tramp.el (tramp-parse-netrc): Use it. (Bug#56976) + +2022-08-04 Lars Ingebrigtsen + + Ensure that updated loaddefs files are byte-compiled + + * lisp/Makefile.in: Add autoloads as an ordering-only dependency + to compile-main so that newly updated loaddefs files are byte-compiled. + +2022-08-04 Michael Albinus + + Fix last Tramp change, especially for bug#56963 + + * lisp/net/tramp-adb.el (tramp-adb-handle-write-region): + Add missing space. + + * lisp/net/tramp-sh.el (tramp-sh-handle-write-region): Use "cat", + "echo -n" isn't portable. (Bug#56963) + + * lisp/net/tramp.el (tramp-file-name-unify): Unquote file name in time. + +2022-08-04 Lars Ingebrigtsen + + Suppress compilation warnings in netrc.el + + * lisp/obsolete/netrc.el (netrc-machine-user-or-password) + (netrc-credentials): Suppress some warnings. + +2022-08-04 Stefan Kangas + + Document obsoletion of netrc-parse better + + * lisp/obsolete/netrc.el (netrc-parse): Add 'obsolete' declaration + pointing to 'auth-source-netrc-parse-all' for documentation purposes. + +2022-08-04 Stefan Kangas + + Clean up output of make-command-summary slightly + + * lisp/makesum.el (make-command-summary): Don't print today's date + or status messages. + +2022-08-04 Lars Ingebrigtsen + + Move netrc tests to auth-source-tests.el + +2022-08-04 Lars Ingebrigtsen + + Add obsolete-since header to netrc.el + + * lisp/obsolete/netrc.el: Add obsolete-since header (bug#56976). + +2022-08-04 Lars Ingebrigtsen + + Move netrc.el to lisp/obsolete/ + +2022-08-04 Lars Ingebrigtsen + + Use auth-source in tramp-parse-netrc + + * lisp/auth-source.el (auth-source-netrc-parse-all): Autoload. + + * lisp/net/tramp.el (tramp-parse-netrc): Don't use netrc-parse, + because it's going to be made obsolete (bug#56976). + +2022-08-04 Lars Ingebrigtsen + + Add obsolete-since line to autoload.el and adjust comments + + * lisp/obsolete/autoload.el: Add obsolete-since line. + +2022-08-04 Lars Ingebrigtsen + + Move autoload.el to lisp/obsolete/ + +2022-08-04 Lars Ingebrigtsen + + Adjust autoload require in cus-dep.el + + * lisp/cus-dep.el (loaddefs-gen): Don't require autoload, because + none of the functions are used. + +2022-08-04 Lars Ingebrigtsen + + Don't require netrc in nnimap.el + + * lisp/gnus/nnimap.el (netrc): Don't require, since it's not used. + +2022-08-04 Lars Ingebrigtsen + + Add new function auth-source-netrc-parse-all + + * lisp/auth-source.el (auth-source-netrc-parse-all): New function + (bug#56976). + (auth-source-netrc-parse): Partially revert behavior in previous + change -- require :allow-null to match. + +2022-08-04 Lars Ingebrigtsen + + Minor cleanups in autoload.el/loaddefs-gen.el + + * lisp/subr.el (package--builtin-versions): Adjust comments. + + * lisp/emacs-lisp/loaddefs-gen.el (no-update-autoloads): Moved + here from autoload.el. + * lisp/emacs-lisp/loaddefs-gen.el: Removed now that it's no longer + used. + + * lisp/emacs-lisp/package.el + (package-autoload-ensure-default-file): Don't warn about + soon-to-be obsolete function. + +2022-08-04 Lars Ingebrigtsen + + Minor checkdoc.el clean up + + * lisp/emacs-lisp/checkdoc.el (generate-autoload-cookie): This is + no longer used, so remove reference. + +2022-08-04 Lars Ingebrigtsen + + Adjust admin/emacs for new autoloads + + * admin/emake: Adjust for new autoloads. + +2022-08-04 Lars Ingebrigtsen + + Allow auth-source-netrc-parse to return all lines + + * lisp/auth-source.el (auth-source-netrc-parse): If host/user/port + is nil, don't require those to match. + +2022-08-04 Lars Ingebrigtsen + + Clean up nntp-send-authinfo after removing obsolete variable + + * lisp/gnus/nntp.el (netrc-parse, netrc-machine, netrc-get): + Remove declarations. + (nntp-send-authinfo): Now that `nntp-authinfo-file' is removed, + don't parse the .authinfo file twice, but just rely on the + auth-source functions (bug#56972). + +2022-08-04 Lars Ingebrigtsen + + Add define-keymap to autoload-ignored-definitions + + * lisp/emacs-lisp/loaddefs-gen.el (autoload-ignored-definitions): + Ignore `define-keymap', too (bug#56973). + +2022-08-04 Stefan Kangas + + Add define-key-after to autoload-ignored-definitions + + * lisp/emacs-lisp/loaddefs-gen.el (autoload-ignored-definitions): + Add define-key-after and define-ibuffer-sorter. + +2022-08-04 Stefan Kangas + + * doc/lispref/loading.texi (Autoload by Prefix): Fix typo. + +2022-08-04 Stefan Kangas + + Fix namespace problem in meta-mode.el + + * lisp/progmodes/meta-mode.el + (meta-font-lock-match-declaration-item-and-skip-to-next): Rename + from 'font-lock-match-meta-declaration-item-and-skip-to-next'. + Retain old name as an obsolete alias. + +2022-08-04 Stefan Kangas + + Add more autoload-ignored-definitions + + * lisp/emacs-lisp/loaddefs-gen.el (autoload-ignored-definitions): + Add define-ibuffer-column. + +2022-08-04 Philip Kaludercic + + * eww.el (eww-browse): Raise error if there are no arguments + +2022-08-04 Stefan Kangas + + * lisp/find-dired.el (lookfor-dired): Make obsolete. + +2022-08-04 Gregory Heytings + + Merge branch 'master' into feature/long-lines-improvements + +2022-08-04 Stefan Kangas + + Rename recently added macro to follow conventions + + * lisp/eshell/em-extpipe.el (eshell-extpipe--or-with-catch): + Rename from 'em-extpipe--or-with-catch'. + +2022-08-04 Stefan Kangas + + Fix namespace problem in dired-aux.el + + * lisp/dired-aux.el (dired-minibuffer-default-add-shell-commands): + Rename from 'minibuffer-default-add-dired-shell-commands'. Retain + old name as an obsolete alias. + +2022-08-04 Michael Albinus + + Fix Tramp test + + * test/lisp/net/tramp-tests.el (tramp-test48-unload): + Ignore autoload functions in `tramp-file-name' structure tests, + since `tramp-file-name-handler' is also autoloaded. + +2022-08-04 Stefan Kangas + + Rename timep to type-break-timep + + * lisp/type-break.el (type-break-timep): Rename from 'timep'. + Retain old name as an obsolete alias. + +2022-08-04 Stefan Kangas + + Fix namespace problem in mpc.el + + * lisp/mpc.el (mpc-tag-browser-tagtypes): Rename from + 'tag-browser-tagtypes'. Retain old name as an obsolete alias. + +2022-08-04 Stefan Kangas + + Rename set-woman-file-regexp to woman-set-file-regexp + + * lisp/woman.el (woman-set-file-regexp): Rename from + 'set-woman-file-regexp'. Retain old name as an obsolete alias. + +2022-08-04 Stefan Kangas + + Rename alphabetp to hangul-alphabetp + + * lisp/leim/quail/hangul.el (hangul-alphabetp): Rename from + 'alphabetp'. Retain old name as an obsolete alias. + +2022-08-04 Stefan Kangas + + Make trivial convenience defsubst notzerop obsolete + + * lisp/leim/quail/hangul.el (notzerop): Make obsolete. Adjust + callers. + +2022-08-04 Lars Ingebrigtsen + + Regenerate ldefs-boot.el + +2022-08-04 Lars Ingebrigtsen + + Add more autoload-ignored-definitions defs + + * lisp/emacs-lisp/loaddefs-gen.el (autoload-ignored-definitions): + Add more definition forms that shouldn't trigger prefix + registration (bug#56970). + +2022-08-04 Lars Ingebrigtsen + + url-about.el: Add obsolete-since + + * lisp/obsolete/url-about.el: Add obsolete-since. + +2022-08-04 Lars Ingebrigtsen + + Make url-about.el obsolete (bug#56885) + +2022-08-04 Lars Ingebrigtsen + + Revert "Fix about:protocols in EWW" + + This reverts commit b49c1740105dd3715315aa433674c95f44aaeac4. + + We're making this obsolete instead. + +2022-08-04 Gregory Heytings + + Improve Bidi with long lines. + + * src/composite.c (composition_compute_stop_pos): Use an 'endpos' that + is not too far away. + (find_automatic_composition): Use a 'head' that is not too far away. + Also make sure that this code path is not taken when long line + optimizations are disabled. + + * src/dispextern.h (struct composition_it): Add a field that points + to the parent iterator. + + * src/xdisp.c (init_iterator): Set it. + +2022-08-04 Lars Ingebrigtsen + + Fix eww--download-directory naming + + * lisp/net/eww.el (eww--download-directory): + (eww-download-directory): Rename function that was mistakenly + named "erc--" (bug#56969). + +2022-08-04 Lars Ingebrigtsen + + Fix up some prefix registration problems in doc strings + + * lisp/uniquify.el (uniquify-buffer-name-style): + * lisp/org/ob-core.el (org-src-sha): + * lisp/emacs-lisp/cl-macs.el (cl--optimize): + * lisp/battery.el (battery-update-functions): Avoid triggering the + `register-definition-prefixes' in doc strings (bug#56968). + +2022-08-04 Lars Ingebrigtsen + + Fix double-encoding attachment headers in single-part rfc2047 + + * lisp/mail/rfc2047.el (rfc2047-header-encoding-alist): Don't + double-encode Content-Disposition in mails with no other body + (bug#56906). + +2022-08-04 Stefan Kangas + + Rename make-doctor-variables to doctor-make-variables + + * lisp/play/doctor.el (doctor-make-variables): Rename from + 'make-doctor-variables'. Retain old name as an obsolete function + alias. + +2022-08-04 Stefan Kangas + + Rename nil-blank-string to eshell-nil-blank-string + + * lisp/eshell/em-unix.el (eshell-nil-blank-string): Rename from + 'nil-blank-string'. Retain old name as an obsolete function alias. + +2022-08-04 Stefan Kangas + + Rename pod2man-program to cperl-pod2man-program + + * lisp/progmodes/cperl-mode.el (cperl-pod2man-program): Rename + from 'pod2man-program'. Retain old name as an obsolete + variable alias. + +2022-08-04 Po Lu + + Fix about:protocols in EWW + + * lisp/net/eww.el (eww--dwim-expand-url): Handle `about: ' URLs. + (bug#56885) + * lisp/url/url-about.el (url-about): Return correct content type + for HTML data. + * lisp/url/url-http.el (url-http--get-referer): Refrain from + looking for a referrer if the lastloc had no host. + +2022-08-04 Po Lu + + Correctly implement refresh synchronization fences + + * configure.ac (HAVE_XSYNC): Also check for XSyncTriggerFence. + + * src/xfns.c (Fx_create_frame): Create fences. + * src/xterm.c (x_atom_refs): New atom. + (x_sync_trigger_fence, x_sync_init_fences, x_sync_free_fences): + New functions. + (x_sync_update_finish): Trigger the appropriate fence. + (x_free_frame_resources): Free fences. + * src/xterm.h (struct x_display_info): New atom + `_NET_WM_SYNC_FENCES'. + (struct x_output): New field `sync_fences'. + +2022-08-04 Kira Bruneau + + Fix ignored-local-variable-values for non-primitive values + + * lisp/files.el (hack-local-variables-filter): Fix + `ignored-local-variable-values' for non-primitive values (bug#56957). + +2022-08-04 Lars Ingebrigtsen + + Make flyspell-check-word-p work better with delete-selection-mode + + * lisp/textmodes/flyspell.el (flyspell-check-word-p): Deactivate + the region immediately (bug#53773). + +2022-08-04 Lars Ingebrigtsen + + Adjust documentation for make-docfile + + * doc/lispref/loading.texi (Autoload): We're no longer using + make-docfile for loaddefs.el, but we're retaining the format. + Adjust the documentation. + * lisp/loadup.el: Adjust commentary. + +2022-08-04 Lars Ingebrigtsen + + Remove outdated TODO item about make-docfile and .el files + + * etc/TODO: Remove outdated item about make-docfile and .el files. + +2022-08-04 Lars Ingebrigtsen + + Adjust src/Makefile.in comments about make-docfile + + * src/Makefile.in ($(etc)/DOC): Remove comment about make-docfile + being run twice (because it no longer is). + +2022-08-04 Po Lu + + Reduce code duplication in XI scroll bar code + + * src/xterm.c (xi_select_scroll_bar_events): New function. + (x_create_toolkit_scroll_bar) + (x_create_horizontal_toolkit_scroll_bar, x_scroll_bar_create): + Factor out input extension code there. + +2022-08-04 Lars Ingebrigtsen + + Adjust loaddefs-generate--print-form comments + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--print-form): + Adjust doc string and comments now that make-docfile doesn't scan + this. + +2022-08-04 Lars Ingebrigtsen + + Remove read_string_literal purify doc string hack + + * src/lread.c (read_string_literal): Since we're now + byte-compiling the loaddefs files (so doc strings come from the + .elc files), remove the hack that make this return 0 when the + string starts with "\\n". + +2022-08-04 Lars Ingebrigtsen + + Remove VCSWITNESS dependency, since we're always rescanning now + + * Makefile.in (VCSWITNESS): Remove, since we're always rescanning + for loaddefs. + * src/Makefile.in ($(lispsource)/loaddefs.el): Remove VCSWITNESS + dependency. + +2022-08-04 Lars Ingebrigtsen + + Regenerate ldefs-boot.el + +2022-08-04 Lars Ingebrigtsen + + Still mark ldefs-boot.el as non-byte-compilable + + * lisp/Makefile.in (ldefs-boot.el): Mark ldefs-boot.el as + non-byte-compiled. + +2022-08-03 Po Lu + + Avoid redundant calls to XFlush in x_make_frame_visible + + * src/xterm.c (x_make_frame_visible): Keep track of whether or + not the output buffer was implicitly flushed before issuing + XFlush. + +2022-08-03 Stefan Monnier + + Revert "Revert part of 59732a83c8 to fix bug#52969" + + This reverts commit 460f35e96df1c39ce2ba0f424b36365a2f9e9825. + + Re-remove the code that scans .el files for docstrings, now + that even `lisp/loaddefs.el` is compiled. + + * lib-src/make-docfile.c (scan_file): Don't call `scan_lisp_file`. + (scan_lisp_file, skip_white, read_lisp_symbol, search_lisp_doc_at_eol): + Delete functions. + +2022-08-03 Philip Kaludercic + + Only suggest packages with VC metadata + + * package-vc.el (package-vc-fetch): Filter out packages without :vc + information in the interactive specification. + +2022-08-03 Stefan Kangas + + * lisp/help.el (describe-map-tree, describe-map): Simplify. + +2022-08-03 Michael Albinus + + Reorganize Tramp + + * lisp/net/tramp-adb.el (tramp-adb-handle-write-region): Handle special + case that START is "". + (tramp-adb-handle-set-file-modes) + (tramp-adb-handle-set-file-times): + Use `tramp-skeleton-set-file-modes-times-uid-gid'. + (tramp-adb-handle-make-process): + Use `with-tramp-saved-connection-properties'. + + * lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist): + Use `tramp-archive-handle-file-exists-p'. + (tramp-archive-handle-file-exists-p): New defun. + (tramp-archive-file-name-handler): Add ;;;###tramp-autoload cookie. + + * lisp/net/tramp-cache.el (tramp-compat, tramp-loaddefs) + (time-stamp): Require. + (tramp-get-file-property, tramp-set-file-property) + (tramp-flush-file-property, tramp-flush-file-upper-properties) + (tramp-flush-file-properties): Use `tramp-file-name-unify'. Adapt + message. + (tramp-flush-directory-properties): Simplify. + (tramp-flush-file-function): Add ;;;###tramp-autoload cookie. + Don't use `with-parsed-tramp-file-name', it isn't exposed. + (with-tramp-file-property, with-tramp-connection-property) + (with-tramp-saved-connection-property): Macros moved from tramp.el. + (with-tramp-saved-file-property) + (with-tramp-saved-file-properties) + (with-tramp-saved-connection-properties): New defmacros. + + * lisp/net/tramp-cmds.el (tramp-cleanup-connection): Flush "/". + + * lisp/net/tramp-crypt.el (tramp-crypt-handle-set-file-modes) + (tramp-crypt-handle-set-file-times) + (tramp-crypt-handle-set-file-uid-gid): + Use `tramp-skeleton-set-file-modes-times-uid-gid'. + + * lisp/net/tramp-ftp.el (tramp-archive-file-name-handler): + Don't declare. + + * lisp/net/tramp-gvfs.el (tramp-gvfs-info): New defun. + (tramp-gvfs-do-copy-or-rename-file) + (tramp-gvfs-handle-delete-directory) + (tramp-gvfs-handle-delete-file, tramp-gvfs-get-root-attributes) + (tramp-gvfs-handle-make-directory): Use it. + (tramp-gvfs-handle-set-file-modes) + (tramp-gvfs-handle-set-file-times) + (tramp-gvfs-handle-set-file-uid-gid): + Use `tramp-skeleton-set-file-modes-times-uid-gid'. + + * lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link): + Expand TARGET when flushing file properties. + (tramp-sh-handle-set-file-modes, tramp-sh-handle-set-file-times) + (tramp-sh-handle-set-file-uid-gid): + Use `tramp-skeleton-set-file-modes-times-uid-gid'. + (tramp-sh-handle-file-name-all-completions): Protect, when + connection is not established yet. + (tramp-do-copy-or-rename-file-directly): Flush file properties of + NEWNAME when constructing a new remote file name. + (tramp-do-copy-or-rename-file-out-of-band, tramp-sh-handle-make-process): + Use `with-tramp-saved-connection-properties'. + (tramp-sh-handle-delete-file): Flush file properties only after + deleting, otherwise we get a false alarm. + (tramp-sh-handle-process-file): Flush "/". + (tramp-sh-handle-write-region): Handle special case that START is "". + + * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory) + (tramp-smb-handle-file-acl, tramp-smb-handle-process-file) + (tramp-smb-handle-set-file-acl) + (tramp-smb-handle-start-file-process): + Use `with-tramp-saved-connection-properties'. + (tramp-smb-remote-acl-p): New defun. + (tramp-smb-handle-file-acl, tramp-smb-handle-set-file-acl): Use it. + (tramp-smb-handle-set-file-modes): + Use `tramp-skeleton-set-file-modes-times-uid-gid'. + (tramp-smb-handle-process-file, tramp-smb-maybe-open-connection): + Flush "/". + + * lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file): Flush "/". + (tramp-sshfs-handle-set-file-modes) + (tramp-sshfs-handle-set-file-times): + Use `tramp-skeleton-set-file-modes-times-uid-gid'. + + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-set-file-modes) + (tramp-sudoedit-handle-set-file-times) + (tramp-sudoedit-handle-set-file-uid-gid): + Use `tramp-skeleton-set-file-modes-times-uid-gid'. + + * lisp/net/tramp.el (tramp-archive-file-name-handler): Don't declare. + (tramp-verbose, tramp-file-name-unify, tramp-tramp-file-p) + (tramp-file-local-name, tramp-dissect-file-name) + (tramp-make-tramp-file-name, tramp-get-connection-buffer) + (tramp-get-buffer-string, tramp-debug-message) + (tramp-inhibit-progress-reporter, tramp-message): + Add ;;;###tramp-autoload cookie. + (tramp-file-name): Expose defstruct to tramp-loaddefs.el + (tramp-file-name-unify): New optional arg FILE. + (tramp-get-default-directory, tramp-get-buffer-string) + (tramp-message, tramp-backtrace, tramp-error-with-buffer) + (tramp-with-demoted-errors, tramp-barf-if-file-missing) + (tramp-skeleton-copy-directory, tramp-skeleton-delete-directory) + (tramp-skeleton-directory-files) + (tramp-skeleton-directory-files-and-attributes) + (tramp-skeleton-file-local-copy, tramp-skeleton-write-region): + Remove `tramp-suppress-trace' property, it isn't needed for + defmacros and defsubsts. + (with-tramp-file-property, with-tramp-connection-property) + (with-tramp-saved-connection-property): Move macros to tramp-cache.el. + (tramp-skeleton-directory-files-and-attributes): Fix implementation. + (tramp-skeleton-file-local-copy): Fix docstring. + (tramp-skeleton-set-file-modes-times-uid-gid): New defmacro. + (tramp-skeleton-write-region): Set "file-exists-p" cache property. + (tramp-handle-file-exists-p): Use cached value. + (tramp-process-sentinel): Flush "/". + (tramp-make-tramp-temp-file): Suppress also `tramp-smb-remote-acl-p'. + (tramp-get-connection-buffer): + + * test/lisp/net/tramp-tests.el (tramp-test10-write-region) + (tramp-test20-file-modes, tramp-test22-file-times): Extend tests. + +2022-08-03 Stefan Kangas + + Mark keys in apropos.el for substitute-command-keys + + * lisp/apropos.el (apropos-symbol, apropos-function) + (apropos-macro, apropos-command, apropos-variable) + (apropos-user-option, apropos-face, apropos-group) + (apropos-widget, apropos-plist, apropos-library): Mark keys for + 'substitute-command-keys'. + +2022-08-03 Stefan Kangas + + Add face to mouse buttons in command substitutions + + * lisp/help.el (substitute-command-keys): Add help-key-binding face to + mouse buttons in literal key substitutions. + * test/lisp/help-tests.el + (help-tests-substitute-command-keys/literal-key-sequence): Expand + test for above change. + +2022-08-03 Eli Zaretskii + + Teach 'symbol-file' about .eln natively-compiled files + + * lisp/subr.el (locate-eln-file): New function. + (symbol-file): Accept an optional 3rd argument NATIVE-P, and, if + non-nil, try to locate and report the .eln file where SYMBOL was + defined. + + * etc/NEWS: + * doc/lispref/loading.texi (Where Defined): Document the new + optional argument of 'symbol-file'. + +2022-08-03 Stefan Kangas + + Do interactive mode tagging in apropos.el + + * lisp/apropos.el (apropos-follow, apropos-next-symbol) + (apropos-previous-symbol): Tag for 'apropos-mode'. + +2022-08-03 Stefan Kangas + + Remove superfluous autoloads from url-util.el + + * lisp/url/url-util.el (timezone-parse-date) + (timezone-make-date-arpa-standard): Remove superfluous autoloads. + +2022-08-03 Philip Kaludercic + + * package-vc.el (package-vc-unpack): Delete using package--delete-directory + +2022-08-03 Lars Ingebrigtsen + + Byte-compile the in-tree loaddefs.el files + + * lisp/Makefile.in (all): Add "autoloads", which now otherwise + won't be done. + ($(lisp)/loaddefs.el): Remove this target, since it's always done, + and would then trigger a re-compilation of loaddefs.elc. + + * lisp/loadup.el: Load loaddefs.elc (if it exists). + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Don't + include no-byte-compile cookies in the Emacs build. + + * src/Makefile.in ($(pdmp)): Depend on loaddefs.elc to ensure that + it's built by this point. + ($(etc)/DOC): Don't scan loaddefs.el for doc strings, since they + are now picked up from the .elc file (bug#53024). + +2022-08-03 Po Lu + + Fix crash on setting frame background color + + * src/xfns.c (x_set_background_color): Stop setting scroll bar + window background, since this is now taken care of + automatically. + +2022-08-03 Philip Kaludercic + + Add TODO section for package-vc + +2022-08-03 Protesilaos Stavrou + + Update modus-themes to their version 2.5.0 + + * doc/misc/modus-themes.org (Debian 11 Bullseye): Clarify that the + Debian package as it is long outdated. + (Option for inhibiting theme reload): Fix typo + (Option for completion framework aesthetics): Remove reference to + obsolete package. + (Option for line highlighting): Mention 'lin' package from GNU ELPA. + (Option for the headings' overall style): Document support for + headings level 0. + (Advanced customization): Fix typo. + (Override colors): Remove obsolete entries. Add link to new section. + (Override colors through blending): Add section with a complete + technology demonstration of overriding the color values. + (Font configurations for Org and others): Mention the 'fontaine' + package from GNU ELPA. + (Custom Org emphasis faces): Fix typo. + (Full support for packages or face groups, Indirectly covered + packages): Update list of supported packages. + (Note on vc-annotate-background-mode): Remove note.:(Are these color + schemes?): Fix typo. + (Acknowledgements): Update acknowledgements. + * etc/themes/modus-operandi-theme.el + * etc/themes/modus-vivendi-theme.el: Update version header. + + * etc/themes/modus-themes.el (modus-themes--version): Update version. + (modus-themes-special-cold, modus-themes-special-mild) + (modus-themes-special-warm, modus-themes-special-calm) + (modus-themes-diff-added, modus-themes-diff-changed) + (modus-themes-diff-removed, modus-themes-diff-refine-added) + (modus-themes-diff-refine-changed, modus-themes-diff-refine-removed) + (modus-themes-diff-focus-added, modus-themes-diff-focus-changed) + (modus-themes-diff-focus-removed, modus-themes-mark-symbol) + (modus-themes-inhibit-reload, modus-themes-mode-line) + (modus-themes--paren): Fix doc string warning about quotes. + (modus-themes-operandi-color-overrides) + (modus-themes-vivendi-color-overrides): Fix ":link" to the Info + manual's relevant node. + (modus-themes-headings): Add support for headings level 0. + (modus-themes-org-agenda): Tweak spacing in the doc string. + (modus-themes--syntax-comment): Tweak combination of properties. + (modus-themes--list-colors-render, modus-themes-list-colors): Refine + how the command works to preview colors in the buffer. + (modus-themes-faces): Edit supported faces. + (modus-themes-custom-variables): Edit supported variables. + + Release notes: . + +2022-08-03 Lars Ingebrigtsen + + Fix #' quoting in uniquify-buffer-name-style doc string + + * lisp/uniquify.el (uniquify-buffer-name-style): Fix wrong quoting. + +2022-08-03 Lars Ingebrigtsen + + Check for mis-quoted #' in doc strings during byte-compile + + * lisp/emacs-lisp/bytecomp.el (byte-compile-docstring-style-warn): + Check for mis-quoted #' in doc strings, too. + +2022-08-03 Lars Ingebrigtsen + + Fix quoting of #' in some doc strings + + * lisp/org/ox.el (org-export-to-file): + * lisp/eshell/esh-arg.el (eshell-concat): + * lisp/emacs-lisp/edebug.el (edebug-read-special): + * lisp/dired-aux.el (dired-split): Fix quoting of #' in doc strings. + +2022-08-03 Jonas Bernoulli + + * lisp/transient.el: Update to package version v0.3.7-143-g1b0a8a7 + +2022-08-03 Stefan Kangas + + Improve obsoletion of trimming functions in url-util.el + + * lisp/url/url-util.el (url-eat-trailing-space): Redefine as + obsolete function alias for 'string-trim-right'. + (url-strip-leading-spaces): Redefine as obsolete function alias + for 'string-trim-left'. + +2022-08-03 Stefan Kangas + + Use string-trim in newsticker--remove-whitespace + + * lisp/net/newst-backend.el (newsticker--remove-whitespace): Use + string-trim. + +2022-08-03 Stefan Kangas + + Remove some spurious references to XEmacs + + * lisp/desktop.el (desktop--emacs-pid-running-p): + * lisp/emacs-lisp/checkdoc.el (checkdoc-ispell-lisp-words): Don't + mention XEmacs. + +2022-08-03 Stefan Kangas + + Remove XEmacs compat code from reftex-ref.el + + * lisp/textmodes/reftex-ref.el (reftex-latin1-to-ascii): Remove + XEmacs compat code. + +2022-08-03 Stefan Kangas + + Remove more XEmacs compat code from viper-util.el + + * lisp/emulation/viper-util.el (viper-check-version): Remove + XEmacs compat code. + (viper-get-visible-buffer-window): Make obsolete. Update caller. + (viper-key-press-events-to-chars): Make obsolete. + +2022-08-03 Stefan Monnier + + CEDET: Try and (re)fix bug#56902, in a better way + + * lisp/cedet/semantic/complete.el (semantic-displayer-abstract): + Move definition before first use (in `semantic-displayer-focus-abstract`). + +2022-08-03 Stefan Monnier + + Revert "; Fix last change (bug#56902)" + + This reverts commit 99bbc1fa23c3a54f1cbd2c56c57773dd471b3ef3. + +2022-08-03 Stefan Kangas + + Remove some XEmacs compat code from url-util.el + + These functions only exist in the XEmacs GTK support. + * lisp/url/url-util.el (url-display-percentage): Remove XEmacs + compat code. + +2022-08-03 Stefan Kangas + + Make url-util space trimming functions obsolete + + * lisp/url/url-util.el (url-eat-trailing-space) + (url-strip-leading-spaces): Make obsolete in favor of + 'string-trim'. Update caller. + +2022-08-03 Stefan Kangas + + Merge from origin/emacs-28 + + f23d456039 * lisp/term.el: Doc fix; don't mention rlogin. + f522d2d90b ; * admin/make-tarball.txt: Minor tweaks. + +2022-08-03 Po Lu + + Improve X server time computation + + * src/xterm.c (x_sync_get_monotonic_time): Use that if + available. + (x_display_set_last_user_time): Compute an offset between the + monotonic time and the X server time if they are not identical. + * src/xterm.h (struct x_display_info): New field + `server_time_offset'. + +2022-08-02 Po Lu + + Prevent GC threshold from exceeding fixnum limit during precision scrolling + + * lisp/pixel-scroll.el (pixel-scroll-start-momentum): Prevent GC + threshold from exceeding most-positive-fixnum. + +2022-08-02 Po Lu + + Add preparations for animation frame timing support + + * src/xterm.c (x_sync_get_monotonic_time) + (x_sync_current_monotonic_time, x_sync_note_frame_times): New + functions. + (x_sync_wait_for_frame_drawn_event, x_sync_update_begin) + (x_sync_handle_frame_drawn): Note frame times. + (x_display_set_last_user_time): Check if the X server time is + probably the same as CLOCK_MONOTONIC. + + * src/xterm.h (struct x_display_info, struct x_output): New + fields and flags for clock handling and frame times. + +2022-08-02 Po Lu + + Fix window iconification, raising and lowering frames, etc + + * src/xterm.c (XFlush): Remove define to 0. + (x_clear_frame, x_scroll_run, x_draw_window_cursor) + (x_free_frame_resources): Remove calls to XFlush where it is not + really necessary. Leave the calls that actually are intact. + +2022-08-02 Stefan Kangas + + Avoid cl-cXXXr compat aliases + + * lisp/emacs-lisp/cl-lib.el (cl-third, cl-fourth): + * lisp/emacs-lisp/cl-macs.el (cl--do-&aux, cl--do-arglist) + (cl--parse-loop-clause, cl--loop-let, cl--loop-build-ands) + (cl--do-proclaim, cl-defstruct): Prefer using cXXXr functions + directly, instead of cl-cXXXr prefixed compat aliases. + +2022-08-02 Stefan Kangas + + * doc/misc/vtable.texi (Commands): Fix typo. (Bug#56899) + +2022-08-02 Stefan Kangas + + Prefer defvar-keymap in footnote.el + + * lisp/mail/footnote.el (footnote-mode-map) + (footnote-minor-mode-map): Prefer defvar-keymap. + +2022-08-02 Stefan Kangas + + Obsolete unused variable footnote-use-message-mode + + * lisp/mail/footnote.el (footnote-use-message-mode): Make + obsolete. + +2022-08-02 Lars Ingebrigtsen + + Improve sendmail-program doc string + + * lisp/mail/sendmail.el (sendmail-program): Document that the + program shouldn't output text (bug#56855). + +2022-08-02 Stefan Monnier + + * src/xdisp.c (redisplay_window): Use BEG rather than hard coding 1 + +2022-08-02 Stefan Monnier + + CEDET: Remove left-over uses of obsolete -child-p predicates + + Those predicates were still sometimes used in a few places, notably via + `:type ... -child` which was never technically correct. + + * lisp/cedet/ede/config.el (ede-extra-config, ede-project-with-config): + * lisp/cedet/ede/base.el (ede-project-placeholder): Avoid pseudo-type + `-child`. + + * lisp/cedet/semantic/complete.el (semantic-displayer-focus-abstract): + Move before use of `cl-typep` on it. + (semantic-complete-current-match): + * lisp/cedet/ede/speedbar.el (ede-speedbar-menu): Use `cl-typep` + instead of `-child-p`. + + * lisp/cedet/semantic/db.el (semanticdb-get-buffer): + Use `cl-defgeneric` for the main/default definition. + (semantic-tag-parent-buffer): Add method. + + * lisp/cedet/semantic/tag-file.el (semantic-tag-parent-buffer): + New generic function extracted from `semantic-go-to-tag`. + This allows us to keep the semanticdb-table part in semantic/db and + thus break a cyclic dependency. + (semantic-go-to-tag): Use it. + Demote to a plain `defun` since it's not overloaded anywhere. + + * lisp/cedet/semantic/util.el (semanticdb-abstract-table-child-p): + Remove unused declaration. + + * lisp/cedet/srecode/compile.el (srecode-template-inserter-newline-child-p): + Remove unused declaration. + (srecord-compile-inserter-newline-p): New generic function, so we can + move the `srecode-template-inserter-newline` case to `srecode/insert.el`, + to avoid a cyclic dependency. + + * lisp/cedet/srecode/insert.el (srecord-compile-inserter-newline-p): + New method. + +2022-08-02 Philip Kaludercic + + Have VC ignore auto generated files + + * package-vc.el (package-vc-unpack): Generate autoloads and ignore + have the VCS ignore them (along with package description file). + +2022-08-02 Stefan Kangas + + Delete obsolete variable nntp-authinfo-file + + * lisp/gnus/nntp.el (nntp-authinfo-file): Delete variable obsolete + since 24.1. + +2022-08-02 Stefan Kangas + + * lisp/textmodes/sgml-mode.el (html-tag-alist): Add https. + + * lisp/term.el: Doc fix; don't mention rlogin. + +2022-08-02 Philip Kaludercic + + Assume VC data is directly usable in 'package-archive-contents' + + * package-vc.el (package-vc-fetch): Remove string parsing and + translation code. + +2022-08-02 Philip Kaludercic + + * package-vc.el (vc-clone): Remove superfluous declaration + +2022-08-02 Robert Pluim + + Signal error on duplicate key definitions + + * lisp/keymap.el (define-keymap, defvar-keymap): Signal error if the + same key is specified twice. (Bug#56873) + + * doc/lispref/keymaps.texi (Creating Keymaps): Document error + signaling behavior. + + * test/src/keymap-tests.el (keymap-test-duplicate-definitions): Test + duplicate definition detection. + +2022-08-02 Robert Pluim + + Remove duplicate key definitions from keymaps + + * lisp/gnus/gnus-srvr.el (gnus-browse-mode-map): Remove binding for + 'gnus-browse-prev-map'. + * lisp/gnus/gnus-sum.el (gnus-summary-mode-map): Remove + 'gnus-summary-down-thread' binding, and by symmetry + 'gnus-summary-up-thread' (it's still available on "T-u"). + * lisp/ibuffer.el (ibuffer-mode-map): Remove binding for + 'ibuffer-mark-for-delete'. + * lisp/wdired.el (wdired-perm-mode-map): Remove duplicate binding of + "s" to 'wdired-set-bit'. + + * etc/NEWS: Announce 'gnus-summary-up-thread' change. + +2022-08-02 Stefan Kangas + + url-about: Ignore missing directories in load-path + + * lisp/url/url-about.el (url-probe-protocols): Ignore missing + directories in load-path. + +2022-08-02 Lars Ingebrigtsen + + Fix find-dired over tramp + + * lisp/find-dired.el (find-dired-with-command): Set the + filter/sentinel immediately -- scheduling may make process output + (and exit) happen before these are set otherwise (bug#56865). + (find-dired-sort-by-filename): Don't bug out on error messages + from find. + +2022-08-02 Stefan Kangas + + Delete function alias x-selection obsolete since 23.3 + + * lisp/select.el (x-selection): Delete function alias obsolete since + 23.3. + +2022-08-02 Stefan Kangas + + * lisp/mail/binhex.el: Improve commentary. + +2022-08-02 Matt Armstrong + + Consider built-in packages to be installed + + * lisp/emacs-lisp/package.el (package-installed-p): Check for built-in + packages before initialization. (bug#56877). + +2022-08-02 Lars Ingebrigtsen + + Don't disable eldoc when doing edebug + + * lisp/emacs-lisp/eldoc.el + (eldoc-display-message-no-interference-p): Don't disable eldoc + when edebugging (bug#56459). There should be no interference in + that case, because edebug messaging is done after stepping, and + eldoc messaging is done after other movements. + +2022-08-02 Lars Ingebrigtsen + + Fix url-dired obsoletion warning + + * lisp/url/url-file.el (url-file): Don't use obsolete url-dired + function. + +2022-08-02 Stefan Kangas + + Make url-dired.el obsolete (part 2/2) + + * lisp/obsolete/url-dired.el: Add "Obsolete-since" header. + (url-dired-minor-mode-map): Minor fix. + * lisp/url/url-file.el (url-dired): Don't require. + * etc/NEWS: Announce its obsoletion. + +2022-08-02 Stefan Kangas + + Make url-dired.el obsolete (part 1/2) + + It doesn't have any real effect since 2007. + Ref: https://lists.gnu.org/r/emacs-devel/2022-07/msg01156.html + + * lisp/url/url-dired.el: Move from here... + * lisp/obsolete/url-dired.el: ...to here. + +2022-08-02 Stefan Kangas + + Make gnus-url-unhex into alias for url-unhex + + * lisp/gnus/gnus-util.el (gnus-url-unhex): Make into obsolete function + alias for url-unhex; they are identical. Update callers. + +2022-08-02 Stefan Kangas + + Add tests for url-{hexify,unhex}-string + + * test/lisp/url/url-util-tests.el (url-unhex-string-tests) + (url-hexify-string-tests): New tests. + +2022-08-02 Stefan Kangas + + Remove extraneous defvars from edmacro.el + + * lisp/edmacro.el (edmacro-fix-menu-commands): Remove extraneous + defvars; they are already declared above. + +2022-08-02 Po Lu + + Further reduce monitor change event duplication + + * src/xterm.c (handle_one_xevent): Also don't store duplicate + events for ConfigureNotify events bound for the root window. + +2022-08-02 Stefan Kangas + + Merge from origin/emacs-28 + + e6af4968f9 ; Update ChangeLog and AUTHORS + +2022-08-01 Po Lu + + Avoid extra consing on monitor configuration change + + * src/xterm.c (x_find_monitors_changed_event): New function. + (x_monitors_changed_cb, handle_one_xevent): Look through the + entire event queue to skip delivering monitor change events. + +2022-08-01 Lars Ingebrigtsen + + Fix compilation warning in spam.el + + * lisp/gnus/spam.el (spam-check-blackholes): Adjust now that + query-dig is obsolete. + +2022-08-01 Juri Linkov + + Wrap around the search on typing a letter (bug#56535) + + * doc/emacs/search.texi (Repeat Isearch): Improve values no/no-ding. + + * lisp/isearch.el (isearch-search-and-update): Try to repeat the search + on an error when isearch-wrap-pause is no/no-ding. + +2022-08-01 Gregory Heytings + + Fix the bytecode incompatibility due to the change to 'narrow-to-region'. + + * src/editfns.c (narrow_to_region_internal): New function, which + contains the body previously in 'Fnarrow_to_region' but accepts + a third argument. + (Fnarrow_to_region): Use the new function. Update the docstring. + (Fwiden): Update the docstring. + + * src/lisp.h: Prototype of the new function. + + * src/xdisp.c (handle_fontified_prop): Use the new function instead + of 'Fnarrow_to_region'. + + * src/process.c (Finternal_default_process_filter): + * src/lread.c (readevalloop): Remove the third argument to + 'Fnarrow_to_region'. + + * src/bytecode.c (exec_byte_code): + * lisp/emacs-lisp/comp.el (comp-limplify-lap-inst): + * lisp/emacs-lisp/bytecomp.el: Restore the statu quo ante. + + * etc/NEWS: Remove the entry about the new optional argument. + + * doc/lispref/positions.texi (Narrowing): Update the documentation. + +2022-08-01 Stefan Kangas + + Don't bind non-existent command in picture-mode-map + + * lisp/textmodes/picture.el (picture-mode-map): Remove ineffectual + binding of non-existent command. + +2022-08-01 Eli Zaretskii + + * src/eval.c (Fdefvaralias): Clarify error messages. (Bug#56863) + +2022-08-01 Stefan Kangas + + Prefer command remapping to substitute-key-definition + + * lisp/textmodes/reftex-index.el (reftex-index-mode-map): + * lisp/textmodes/reftex-sel.el (reftex-select-shared-map): + * lisp/textmodes/reftex-toc.el (reftex-toc-mode-map): Prefer command + remapping to 'substitute-key-definition'. + +2022-08-01 Eli Zaretskii + + * src/xdisp.c (get_visually_first_element): Fix a typo. + +2022-08-01 Gregory Heytings + + Various improvements to long lines handling. + + * src/xdisp.c (get_visually_first_element, + (move_it_vertically_backward): Do not go back too far with bidi. + (get_narrowed_begv): Do not return 0 anymore instead of BEGV. + (handle_fontified_prop): Simplify accordingly. + + * src/keyboard.c (safe_run_hooks_maybe_narrowed): Simplify accordingly. + + * src/composite.c (find_automatic_composition): Ditto. + +2022-08-01 Gregory Heytings + + Fix forgotten initialization for long line optimizations. + + * src/xdisp.c (init_iterator): Initialize the 'narrowed_begv' + field. + + * src/buffer.c (syms_of_buffer): Docstring clarification. + +2022-08-01 Lars Ingebrigtsen + + Fix loaddefs quirk w.r.t. pinyin-convert + + * lisp/international/titdic-cnv.el (pinyin-convert): Use + `generate-lisp-file' for the file. This avoids having it scanned + by loaddefs-gen, which will trigger re-compilation of Emacs since + pinyin.el is generated after Emacs is built. + +2022-08-01 Stefan Kangas + + * lisp/net/dig.el: Improve Commentary. + +2022-08-01 Stefan Kangas + + Doc fix in eudc-hotlist.el + + * lisp/net/eudc-hotlist.el (eudc-hotlist-mode): Doc fix; use command + substitution. + +2022-08-01 Stefan Kangas + + Fix namespacing issue in dig.el + + * lisp/net/dig.el (dig-query): Rename from 'query-dig'. + (query-dig): Make into obsolete function alias for 'dig-query'. + +2022-08-01 Po Lu + + Improve handling of xsettings events + + * src/xsettings.c (xft_settings_event): + * src/xsettings.h: Return if the event was handled. + * src/xterm.c (handle_one_xevent): If it was, don't handle the + event any further. + +2022-08-01 Paul Eggert + + Improve GCC pacification in xterm.c + + * src/xterm.c (x_dnd_free_toplevels, x_composite_image): + Use UNINIT for initialization needed only to pacify GCC. + (x_dnd_free_toplevels): Add an eassume to pacify GCC 12.1 x86-64 + -Wanalyzer-null-dereference. + + 2022-07-31 Paul Eggert + +2022-08-01 Paul Eggert + + Fix time comparison in primitive-undo + + * lisp/simple.el (primitive-undo): Fix time comparison. + The old code was a circa-2013 mistranslation of what used to be in + src/undo.c’s Fprimitive_undo. + +2022-08-01 Paul Eggert + + Use list-form timestamps in .nnmh-articles + + * lisp/gnus/nnmh.el (nnmh-update-gnus-unreads): Store list form + timestamps into .nnmh-articles, even if current-time-list is nil. + That way, older Emacs versions can read them. + +2022-08-01 Paul Eggert + + Prefer ‘time-equal-p’ to ‘equal’ on timestamps + + This is more robust since timestamps can have multiple forms. + * lisp/auth-source.el (auth-source-netrc-parse): + * lisp/bookmark.el (bookmark--watch-file-already-queried-p) + (bookmark-maybe-load-default-file): + * lisp/cedet/semantic/db.el (semanticdb-needs-refresh-p): + * lisp/dired.el (dired-directory-changed-p): + * lisp/files.el (dir-locals-find-file): + * lisp/gnus/gnus-util.el (gnus-cache-file-contents): + * lisp/gnus/nneething.el (nneething-create-mapping): + * lisp/gnus/nnfolder.el (nnfolder-read-folder): + * lisp/gnus/nnmaildir.el (nnmaildir--update-nov) + (nnmaildir--scan, nnmaildir-request-scan) + (nnmaildir-request-update-info): + * lisp/gnus/nnmh.el (nnmh-update-gnus-unreads): + * lisp/gnus/spam-stat.el (spam-stat-load): + * lisp/mail/mailabbrev.el (mail-abbrevs-sync-aliases): + * lisp/mail/sendmail.el (sendmail-sync-aliases): + * lisp/net/netrc.el (netrc-parse): + * lisp/nxml/rng-loc.el (rng-get-parsed-schema-locating-file): + * lisp/play/cookie1.el (cookie-snarf): + * lisp/vc/vc-cvs.el (vc-cvs-state-heuristic): + * lisp/vc/vc-hg.el (vc-hg--ignore-patterns-valid-p) + (vc-hg--cached-dirstate-search): + * lisp/vc/vc-hooks.el (vc-after-save): + Prefer ‘time-equal-p’ to ‘equal’ when comparing + timestamps for equality. + +2022-08-01 Paul Eggert + + Simplify a few timestamps + + * lisp/calendar/time-date.el (safe-date-to-time): + * lisp/calendar/timeclock.el (timeclock-generate-report): + * lisp/epg.el (epg--start): + * lisp/gnus/gnus-demon.el (gnus-demon-nntp-close-connection): + * lisp/gnus/gnus-util.el (gnus-date-get-time): + * lisp/gnus/nnheader.el (nnheader-last-message-time): + * lisp/gnus/nnrss.el (nnrss-request-expire-articles): + * lisp/vc/ediff-util.el (ediff-command-begin-time) + (ediff-calc-command-time, ediff-profile): + Prefer an integer like 0 to a timestamp list like (0 0) + where either will do. + +2022-08-01 Paul Eggert + + Omit some (current-time) calls + + * lisp/emacs-lisp/ert.el (ert-write-junit-test-summary-report): + * lisp/emacs-lisp/shortdoc.el (file): + * lisp/find-lisp.el (find-lisp-find-dired-insert-file): + * lisp/progmodes/hideif.el (hide-ifdefs): + * lisp/tar-mode.el (tar-subfile-save-buffer): + Prefer nil or omitted arg to (current-time) where this is better + or more-efficient. + +2022-08-01 Paul Eggert + + * lisp/vc/vc.el: Remove stray comment hyphen. + +2022-08-01 Paul Eggert + + Fix "cons up a storm" issue in type-break + + * lisp/type-break.el (type-break-time-last-command) + (type-break-mode, type-break, type-break-check) + (type-break-time-sum, type-break-keystroke-reset): + Use integer timestamps; that’s good enough for this module. + +2022-08-01 Paul Eggert + + Fix year-285428751 bug in hanoi-unix-64 + + * lisp/play/hanoi.el (hanoi-move-period, hanoi, hanoi-unix) + (hanoi-unix-64): Use integers, not floating point, to avoid + rounding errors for timestamps greater than 2**53. + +2022-08-01 Paul Eggert + + * src/timefns.c (Ffloat_time): Fix doc string. + +2022-08-01 Paul Eggert + + Improve time-equal-p etc. performance + + * src/timefns.c (time_cmp): Return EMACS_INT, not int; no need to + change callers. Compare (X . Z) to (Y . Z) quickly if X and Y are + fixnums. + +2022-08-01 Paul Eggert + + Improve float-time etc. performance + + * src/timefns.c (decode_float_time): Assume T is finite. + All callers changed. + (decode_time_components): Assume FORM is not TIMEFORM_FLOAT. + All callers changed. + (decode_lisp_time): If the specified time is a float, + signal an error if it is not finite. + (Ffloat_time): If the specified time is a float, + simply return it. + +2022-08-01 Paul Eggert + + Make time arithmetic more like comparison + + Since time comparison says X == X, have time arithmetic behave + similarly for X - X. This should also be a bit faster due to not + having to test for floats and NaNs. + * src/timefns.c (time_arith, time_cmp): + Simplify by not worrying about NaNs, which are not time values. + (time_arith): Simplify by not worrying about subtracting nil from + nil; the caller now handles this. + (Ftime_subtract): Handle subtracting X from X specially. + +2022-08-01 Paul Eggert + + Fix get-internal-runtime precision + + * src/sysdep.c (make_lisp_s_us): Also define if HAVE_GETRUSAGE. + (Fget_internal_run_time): Don’t generate more precision than the + underlying primitives. + +2022-08-01 Paul Eggert + + (time-equal-p nil X) returns nil + + * src/timefns.c (Ftime_equal_p): nil compares unequal to non-nil. + +2022-08-01 Paul Eggert + + Tune blv_found + + * src/lisp.h (blv_found): Prefer BASE_EQ to EQ where either will do. + +2022-08-01 Po Lu + + Improve frame synchronization support on Haiku + + * src/ftcrfont.c (ftcrfont_draw): + * src/haikufns.c (haiku_set_background_color): + * src/haikuterm.c (haiku_clip_to_string): + (haiku_clip_to_string_exactly): + (haiku_clear_frame_area): + (haiku_clear_frame): + (haiku_draw_box_rect): + (haiku_draw_relief_rect): + (haiku_draw_underwave): + (haiku_draw_text_decoration): + (haiku_draw_plain_background): + (haiku_draw_stipple_background): + (haiku_draw_glyph_string_foreground): + (haiku_draw_glyphless_glyph_string_foreground): + (haiku_draw_stretch_glyph_string): + (haiku_start_clip): + (haiku_end_clip): + (haiku_clip_to_row): + (haiku_draw_composite_glyph_string_foreground): + (haiku_draw_image_glyph_string): + (haiku_draw_glyph_string): + (haiku_after_update_window_line): + (haiku_draw_hollow_cursor): + (haiku_draw_bar_cursor): + (haiku_draw_vertical_window_border): + (haiku_draw_window_divider): + (haiku_scroll_bar_create): + (haiku_set_horizontal_scroll_bar): + (haiku_set_vertical_scroll_bar): + (haiku_draw_fringe_bitmap): + (haiku_scroll_run): + (haiku_read_socket): + (haiku_flash): + (haiku_clear_under_internal_border): + (haiku_scroll_bar_remove): + * src/haikuterm.h (MAKE_FRAME_DIRTY): + (FRAME_CR_CONTEXT): Don't dirty frames if not necessary. + +2022-08-01 Po Lu + + Implement primitive frame synchronization on Haiku + + Instead of relying on a compositor to do the work, we simply + wait for VBLANK and hope that the update finishes soon enough. + + * doc/lispref/frames.texi (Management Parameters): Document that + frame synchronization is now supported on Haiku. + + * src/haiku_support.cc (class EmacsView): New field + `use_frame_synchronization'. + (FlipBuffers): Wait for vertical blanking period. + (be_set_use_frame_synchronization): New function. + * src/haiku_support.h: Update prototypes. + * src/haikufns.c (haiku_create_frame): Set + `use-frame-synchronization'. + + (haiku_set_use_frame_synchronization) + (haiku_frame_parm_handlers): New param handler. + +2022-08-01 Po Lu + + * lisp/cedet/ede/base.el (ede-project): Fix warning when loading EDE. + +2022-08-01 Stefan Kangas + + Update publicsuffix.txt from upstream + + * etc/publicsuffix.txt: Update from + https://publicsuffix.org/list/public_suffix_list.dat + dated 2022-07-28 15:23:34 UTC. + +2022-07-31 Po Lu + + Make frame synchronization a frame parameter + + * doc/lispref/frames.texi (Management Parameters): Document + `use-frame-synchronization'. + * etc/NEWS: Update entry. + + * src/frame.c (frame_parms): New frame parameter + `use-frame-synchronization'. + (syms_of_frame): New defsym. + * src/haikufns.c (haiku_frame_parm_handlers): + * src/nsfns.m (ns_frame_parm_handlers): + * src/pgtkfns.c (pgtk_frame_parm_handlers): + * src/w32fns.c (w32_frame_parm_handlers): Update frame param + handlers correctly. + * src/xfns.c (x_set_use_frame_synchronization): New function. + (Fx_create_frame): Set default value of said parameter. + (x_frame_parm_handlers): Add handler. + + * src/xterm.c (x_sync_wait_for_frame_drawn_event): Clear + parameter if sync fails. + +2022-07-31 Gregory Heytings + + Move the computation of narrowing bounds for long line optimizations. + + * src/xdisp.c (init_iterator): Move the computation from here... + (reseat): ... to here. Also recompute the position in certain cases. + +2022-07-31 Gregory Heytings + + Add locked narrowing around pre- and post-command-hook + + * src/keyboard.c (safe_run_hooks_maybe_narrowed): New function. + (command_loop_1): Use it for 'pre-command-hook' and 'post-command-hook'. + (syms_of_keyboard): Update docstrings of 'pre-command-hook' and + 'post-command-hook'. + + * src/lisp.h: Prototype of the new function. + +2022-07-31 Philip Kaludercic + + Extract package-fetch and related functionality + + Note that the "package kind" was renamed from "source" to "vc". + + * package-vc.el: (package-vc-commit): Copy from package.el + (package-vc-version): Add new function + (package-vc-generate-description-file): Add new function. + (package-vc-unpack): Add new function. + (package-vc-fetch): Copy from package.el + (package-checkout): Add alias for package-vc-fetch + * package.el (package-devel-dir): Remove option. The checkouts are + stored in package-user-dir + (package-desc): Handle (vc . VERS) version strings + (package-desc-full-name): Return the plain name for vc packages + (package-devel-commit): Move function to package-vc + (package-load-descriptor): Refactor according to other changes + (package-load-all-descriptors): Remove package-devel-dir + (package-unpack): Remove vc package handling + (package-generate-description-file): Remove special handling for vc + packages + (package-install-from-archive): Remove special handling for vc + packages + (package-fetch): Move function to package-vc + (package-desc-status): Use "vc" instead of "source" + (package--remove-hidden): Use "vc" instead of "source" + (package-menu--print-info-simple): Refactor according to other changes + +2022-07-31 Lars Ingebrigtsen + + Regenerate ldefs-boot.el + +2022-07-31 Lars Ingebrigtsen + + Allow specifying that loaddefs files shouldn't not be compiled + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--rubric): + Allow specifying that we shouldn't include a no-compile cookie + (bug#53024). + +2022-07-31 Mattias Engdegård + + Declare `key-valid-p` and `readablep` as error-free + + * lisp/keymap.el (key-valid-p): + * lisp/subr.el (readablep): These functions are effect-free; declare + them correspondingly. Note that readablep is not pure since its + return value depends on ambient state. + +2022-07-31 Stefan Kangas + + Make ps-def.el obsolete (part 2/2) + + * lisp/obsolete/ps-def.el: Add "Obsolete-since". + * lisp/ps-print.el (ps-def): Don't require. + +2022-07-31 Stefan Kangas + + Make ps-def.el obsolete (part 1/2) + + This file was created to maintain Emacs/XEmacs compat code more + easily, and no longer serves any purpose. It currently contains only + obsolete function and variable aliases. + + * lisp/ps-def.el: Move from here... + * lisp/obsolete/ps-def.el: ...to here. + +2022-07-31 Lars Ingebrigtsen + + Don't make a custom-save-icons section if there's nothing to save + + * lisp/cus-edit.el (custom-save-icons): Only make an entry when + there's something to save (bug#56860). Also autoload. + +2022-07-31 Stefan Kangas + + Move some definitions from ps-def.el to ps-print.el + + * lisp/ps-def.el (ps-face-bold-p, ps-face-italic-p) + (ps-face-strikeout-p, ps-face-overline-p, ps-face-box-p) + (ps-color-format, ps-float-format) + (ps-generate-postscript-with-faces1): Move from here... + * lisp/ps-print.el (ps-face-bold-p, ps-face-italic-p) + (ps-face-strikeout-p, ps-face-overline-p, ps-face-box-p) + (ps-color-format, ps-float-format) + (ps-generate-postscript-with-faces1): ...to here. + +2022-07-31 Stefan Kangas + + Remove some leftover compat code from ps-print + + * lisp/ps-def.el (ps-mark-active-p): Make obsolete in favor of + 'mark-active'. Update callers. + (ps-face-foreground-name): Make obsolete in favor of + 'face-foreground'. Update callers. + (ps-face-background-name): Make obsolete in favor of + 'face-background'. Update callers. + (ps-color-device): Make into obsolete function alias for + 'display-color-p'. Update callers. + +2022-07-31 Michael Albinus + + Declare Tramp function for backward compatibility + + * lisp/net/tramp.el (tramp-archive-file-name-handler): + * lisp/net/tramp-ftp.el (tramp-archive-file-name-handler): Declare. + +2022-07-31 Philip Kaludercic + + Merge remote-tracking branch 'origin/master' into feature/package+vc + +2022-07-31 Mattias Engdegård + + Reduce internal rx autoloads + + * lisp/emacs-lisp/rx.el (rx--to-expr, rx--pcase-transform): + Don't autoload. + (rx--pcase-macroexpander): Extract body into... + (rx--pcase-expand): ...a separate function, which is autoloaded. + +2022-07-31 Philip Kaludercic + + Fix electric paring in rcirc buffers + + * rcirc.el (rcirc--electric-pair-inhibit): Add new predicate function. + (rcirc-mode): Use rcirc--electric-pair-inhibit. + +2022-07-31 Stefan Kangas + + * lisp/emacs-lisp/eieio-base.el (eieio-persistent-read): Simplify. + +2022-07-31 Lars Ingebrigtsen + + Fix compilation warnings in tramp-loaddefs.el + + * lisp/files.el (file-name-quoted-p): Autoload because it's + referred to from tramp-loaddefs. + * lisp/net/tramp.el (defvar): Put the entire form into the + loaddefs file instead of eval-and-compile -- this fixes a + dependency problem when byte-compiling the loaddefs file. + (tramp-methods, tramp-default-method-alist) + (tramp-default-user-alist, tramp-default-host-alist) + (tramp-local-host-regexp, tramp-terminal-type) + (tramp-foreign-file-name-handler-alist): Autoload to avoid + compilation warnings. Also put (require 'cl-lib) into the + loaddefs file for the same reason. + (tramp-ensure-dissected-file-name) + (tramp-set-completion-function) + (tramp-register-foreign-file-name-handler): Autoload. + +2022-07-31 Lars Ingebrigtsen + + Fix org.el byte-compile warning in org-loaddefs.el + + * lisp/org/org.el (org-dynamic-block-define): Autoload because + it's referred to in org-loaddefs.el. + +2022-07-31 Lars Ingebrigtsen + + Fix ede byte-compile warnings in loaddefs.el + + * lisp/emacs-lisp/eieio.el (make-instance): + * lisp/cedet/ede/auto.el (ede-add-project-autoload): Autoload + functions referred to by ede/loaddefs.el. + +2022-07-31 Lars Ingebrigtsen + + Remove loaddefs debug code + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--rubric): + Remove code inadvertently checked in. + +2022-07-31 Lars Ingebrigtsen + + Fix cl byte-compile warning in cl-loaddefs.el + + * lisp/emacs-lisp/cl-macs.el (cl--optimize) + (cl-struct-sequence-type, cl-struct-slot-offset): Autoload since + they are referred to by code in cl-loaddefs.el. + +2022-07-31 Stefan Kangas + + Delete additional items obsolete since 20, 21 and 22 + + * lisp/font-lock.el (font-lock-reference-face): Delete variable + alias obsolete since 20.3. + * lisp/progmodes/cc-cmds.el (c-toggle-auto-state): Delete alias + obsolete since 22.1. + * lisp/replace.el (query-replace-regexp-eval): Delete function + obsolete since 22.1. + (replace-count, replace-re-search-function): Doc fixes; adjust for + above deleted function. + +2022-07-31 Lars Ingebrigtsen + + Fix remaining byte-compile warnings in loaddefs.el + + * lisp/progmodes/compile.el (compilation--default-buffer-name): + * lisp/kmacro.el (kmacro-name-last-macro): + * lisp/emacs-lisp/package.el (package--activate-all): Autoload to + avoid byte-compilation warnings when byte-compiling loaddefs.el. + +2022-07-31 Lars Ingebrigtsen + + Fix rx.el byte-compile warning in loaddefs.el + + * lisp/emacs-lisp/rx.el (rx--to-expr, rx--pcase-transform): + Autoload to avoid warning when byte-compiling loaddefs.el. + +2022-07-31 Lars Ingebrigtsen + + Fix sendmail.el byte-compile warning in loaddefs.el + + * lisp/mail/sendmail.el (mail-send-and-exit): Autoload since it's + referred to by autoloaded code in loaddefs.el. + +2022-07-31 Lars Ingebrigtsen + + tramp fixes for byte-compiling loaddefs.el + + * lisp/net/tramp-archive.el (tramp-archive-file-name-handler): + Move to the main loaddefs file since it's referred to by functions + there. + * lisp/net/tramp.el (tramp-file-name-handler): Autoload to avoid + warning when byte-compiling loaddefs.el. + +2022-07-31 Lars Ingebrigtsen + + Fix further package.el loaddefs byte-compile warnings + + * lisp/emacs-lisp/package.el (package-directory-list) + (package-quickstart-file): Specify group to avoid warning when + byte-compiling loaddefs.el. + (package-activated-list): Autoload since we're assigning the + variable from a function completely autoloaded. + +2022-07-31 Lars Ingebrigtsen + + Fix loaddefs byte-compile warnings from grep.el + + * lisp/progmodes/grep.el (grep-highlight-matches) + (grep-match-face): Autoload to avoid byte-compile warnings from + loaddefs.el. + +2022-07-31 Lars Ingebrigtsen + + Fix loaddefs byte-compile warning from package.el + + * lisp/emacs-lisp/package.el (package-user-dir): :group has to be + explicit for autoloaded defcustoms. + +2022-07-31 Lars Ingebrigtsen + + Reformulate compile-command condition + + * lisp/progmodes/compile.el: Reformulate to avoid a byte-compile + warning when compiling loaddefs.el. + +2022-07-31 Stefan Kangas + + Delete aliases obsolete since 21.1 and 22.1 + + * lisp/ls-lisp.el (ls-lisp-dired-ignore-case): + * lisp/files.el (find-file-not-found-hooks): Delete variable aliases, + obsolete since 21.1 and 22.1 respectively. + +2022-07-31 Eli Zaretskii + + Support keyboard input and display of U+1E9E + + * lisp/international/latin1-disp.el (latin1-display): + * lisp/international/iso-transl.el (iso-transl-char-map) + (iso-transl-language-alist): Add U+1E9E capital sharp S. + +2022-07-31 Stefan Kangas + + Merge from origin/emacs-28 + + eb11dae499 Improve documentation of column-related functions + c95a34c960 * src/macfont.m (macfont_open): Initialize font->space_wid... + 31a6a37d45 Improve indexing of keymap variables + +2022-07-30 Po Lu + + Fix NS unexec build + + * nextstep/Makefile.in (all): Only build Emacs.pdmp on pdumper + builds. + + * src/sheap.h: Make STATIC_HEAP_SIZE bigger, otherwise I get: + static heap exhausted: avail 67108864 used 67101824 failed + request 20480 + +2022-07-30 Po Lu + + Fix frame synchronization with scroll bar movement + + * src/xfns.c (x_set_inhibit_double_buffering): Stop condeming + scroll bars. + + * src/xterm.c (x_scroll_bar_create): Create an InputOnly window. + Update event masks accordingly and stop allocating back buffer. + (x_scroll_bar_remove): Stop deallocating back buffer. + (XTset_vertical_scroll_bar, x_scroll_bar_set_handle): Draw onto + the edit window so they can be synchronized with buffer flips. + (x_scroll_bar_clear): Redraw scroll bars instead of just + clearing them. + (x_scroll_bar_handle_expose, x_scroll_bar_redraw): New + functions. + (x_scroll_bar_expose, x_scroll_bar_end_update): Delete + functions. + (handle_one_xevent): Update exposure logic accordingly. + + * src/xterm.h (struct scroll_bar): Remove `x_drawable' field. + +2022-07-30 Stefan Kangas + + Delete redisplay-end-trigger-functions and related defuns + + This variable and related functions have been obsolete since 23.1. + The last things to depend on this (fast-lock.el and lazy-lock.el) were + recently removed. + + * src/dispextern.h (struct it): Delete field + 'redisplay_end_trigger_charpos'. + * src/window.c (Fwindow_redisplay_end_trigger) + (Fset_window_redisplay_end_trigger): Delete defuns and corresponding + defsubrs for functions obsolete since 23.1. + * src/window.h (wset_redisplay_end_trigger): Delete function. + (GCALIGNED_STRUCT): Delete 'redisplay_end_trigger'. + * src/xdisp.c (run_redisplay_end_trigger_hook): Delete function. + (syms_of_xdisp) : Delete + variable obsolete since 23.1. + (init_iterator, next_element_from_buffer): Don't run or set above + deleted hook variable. + + * lisp/subr.el: Delete obsoletion definitions for above deleted + defuns and variable. + * doc/lispref/hooks.texi (Standard Hooks): + * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): + * lisp/loadhist.el (unload-feature-special-hooks): Don't mention + above deleted variable. + * admin/coccinelle/window.cocci: Adjust for above changes. + +2022-07-30 Eli Zaretskii + + Improve documentation of column-related functions + + * doc/lispref/text.texi (Primitive Indent, Columns): + * src/indent.c (Fcurrent_indentation, Fmove_to_column): Document + that column counting ignores invisible text. (Bug#56837) + +2022-07-30 Gerd Möllmann + + Fix native compiler handling of narrow-to-region + + * lisp/emacs-lisp/comp.el (comp-limplify-lap-inst): Use auto for + byte-narrow-to-region. + +2022-07-30 Lars Ingebrigtsen + + Tweak icons.el emoji detection + + * lisp/emacs-lisp/icons.el (icons--create): Choose another + character that's unlikely to appear in non-Emoji fonts. (Comment + left in place since this should be fixed in a less breakable way.) + +2022-07-30 Lars Ingebrigtsen + + Make the symbol icons in outline.el more logical + + * lisp/outline.el (outline-open, outline-close): Use symbols from + the same series so that it's more likely that they match up (bug#56823). + +2022-07-30 Eli Zaretskii + + Make sure to preserve point across locked narrowing + + * src/editfns.c (Fnarrow_to_region): Save the position of point + when locking the restriction, since this function can move point. + +2022-07-30 Gregory Heytings + + Handle the optional argument of 'narrow-to-region' in byte-compiled code. + + * lisp/emacs-lisp/bytecomp.el: Adapt the specifications. + + * src/bytecode.c (exec_byte_code): Get the optional argument. + +2022-07-30 Lars Ingebrigtsen + + Clarify mail-header address parsing doc strings + + * lisp/mail/mail-parse.el (mail-header-parse-address-lax): + * lisp/mail/ietf-drums.el (ietf-drums-parse-address): Clarify what + these functions do (bug#56824). + +2022-07-30 Lars Ingebrigtsen + + Fix outline-minor-mode-use-buttons defcustom type + + * lisp/outline.el (outline-minor-mode-use-buttons): Fix wrong type. + +2022-07-30 Lars Ingebrigtsen + + buffer-match-p doc string clarification + + * lisp/subr.el (buffer-match-p): Actually say that nil is a valid + value. + +2022-07-30 Lars Ingebrigtsen + + Adjust outline--use-buttons-p to buffer-match-p change + + * lisp/outline.el (outline-minor-mode-use-buttons): Adjust doc string. + (outline--use-buttons-p): No longer any need to special-case t/nil. + +2022-07-30 Lars Ingebrigtsen + + Move a test from subr-tests to print-tests + +2022-07-30 Stefan Kangas + + * lisp/apropos.el (apropos-documentation): Simplify. + +2022-07-30 Stefan Kangas + + Avoid leaving temp buffers in bib-mode and refbib + + * lisp/textmodes/bib-mode.el (bib-capitalize-title): + * lisp/textmodes/refbib.el (r2b-capitalize-title): Use + with-temp-buffer. + +2022-07-30 Stefan Kangas + + Prefer defvar-keymap in dns-mode-map + + * lisp/textmodes/dns-mode.el (dns-mode-map): Prefer defvar-keymap. + +2022-07-30 Stefan Kangas + + Prefer defvar-keymap in nroff-mode-map + + * lisp/textmodes/nroff-mode.el (nroff-mode-map): Prefer defvar-keymap. + +2022-07-30 Stefan Kangas + + Fix namespace use in bib-mode.el + + * lisp/textmodes/bib-mode.el (bib-unread-file, bib-add) + (bib-return-key, bib-mark, bib-unread): Rename from + 'unread-bib-file', 'addbib', 'return-key-bib', 'mark-bib', and + 'unread-bib' respectively. Maintain old names as obsolete aliases and + update uses. + (bib-mode-map): Prefer defvar-keymap. + +2022-07-30 Stefan Kangas + + Make ffap-newfile-prompt obsolete + + * lisp/ffap.el (ffap-newfile-prompt): Obsolete in favor of + 'find-file-not-found-functions'. + +2022-07-30 Stefan Kangas + + * lisp/ffap.el (ffap-url-regexp): Add gemini. + +2022-07-30 Stefan Kangas + + Make outline-view-change-hook obsolete + + According to a comment, this hook "Seems only used by lazy-lock. + I.e. obsolete." But lazy-lock has been deleted. + * lisp/outline.el (outline-view-change-hook): Make obsolete. + +2022-07-30 YAMAMOTO Mitsuharu + + * src/macfont.m (macfont_open): Initialize font->space_width. (Bug#56808) + +2022-07-30 Eli Zaretskii + + Improve indexing of keymap variables + + * doc/lispref/maps.texi (Standard Keymaps): + * doc/lispref/display.texi (Button Buffer Commands) + (Button Properties): + * doc/lispref/keymaps.texi (Translation Keymaps): Improve indexing + of keymaps. (Bug#56816) + +2022-07-30 Stefan Kangas + + Merge from origin/emacs-28 + + e0f54c62ec CC Mode: fontify variables/functions after line comments e... + 2c6a94c5b8 ; Correct the meaning of "cf." in tips.texi + +2022-07-29 Po Lu + + Minor improvements to precision scroll interpolation + + * lisp/pixel-scroll.el (pixel-scroll-start-momentum): Bump GC + cons threshold temporarily. This leads to a very noticeable + improvement to animation speed. + +2022-07-29 Po Lu + + Fix failure caused by misreading the frame synchronization spec + + * src/xterm.c (x_sync_update_begin): Ensure value % 4 is 1. + (x_sync_update_finish): Then, add 3. + +2022-07-29 Po Lu + + Don't freeze if the compositing manager crashes + + * src/xterm.c (x_if_event): New function, like XIfEvent but with + a timeout. + (x_sync_wait_for_frame_drawn_event): Disable frame + synchronization if x_if_event times out after 1 second. + +2022-07-29 Alan Mackenzie + + CC Mode: fontify variables/functions after line comments ending in spaces + + * lisp/progmodes/cc-engine.el (c-forward-comment-minus-1): Take account of + spaces preceding a linefeed when scanning a putative line comment end. + +2022-07-29 Gregory Heytings + + Improve narrowing when iterator has moved outside of narrowing bounds. + + * src/xdisp.c (get_narrowed_begv, get_narrowed_zv): Add 'pos' + parameter. + (init_iterator): Add arguments to 'get_narrowed_begv' and + 'get_narrowed_zv'. + (handle_fontified_prop): Recompute the narrowing when iterator + has moved outside of narrowing bounds. + + * src/dispextern.h (get_narrowed_begv, get_narrowed_zv): Adapt + prototypes. + + * src/composite.c (find_automatic_composition): Add argument + to 'get_narrowed_begv'. + +2022-07-29 Philip Kaludercic + + * subr.el (buffer-match-p): Add t as trivial a condition + +2022-07-29 Gregory Heytings + + Improvement for long line optimizations. + + * src/xdisp.c (handle_fontified_prop): Also apply the forced + narrowing at BOB. + +2022-07-29 Gerd Möllmann + + Adapt native compiler to change in narrow-to-region + + * lisp/emacs-lisp/comp.el (comp-limplify-lap-inst): Add third + argument nil for narrow-to-region. + +2022-07-29 Po Lu + + Fix handling of extended frame resize synchronization + + * src/xterm.c (x_sync_wait_for_frame_drawn_event): Don't wait if + the frame is invisible. If it is mapped again the compositing + manager is obliged to send us another event, so we can wait in + that case. + (x_sync_update_begin, x_sync_update_finish): Handle extended + resize synchronization here. + (XTframe_up_to_date, handle_one_xevent): Save stuff here. + + * src/xterm.h (struct x_output): New field + `resize_counter_value'. + +2022-07-29 Lars Ingebrigtsen + + Fix outline byte compilation warning from previous change + + * lisp/outline.el (outline--use-buttons-p): Move around to fix + byte compilation warning. + +2022-07-29 Lars Ingebrigtsen + + Fix up the outline minor mode button logic + + * lisp/outline.el (outline-minor-mode-highlight-buffer): Factor + out... (bug#56820). + (outline--use-buttons-p): ... to here. + (outline-hide-subtree, outline--fix-up-all-buttons) + (outline-show-subtree): Use it. + +2022-07-29 Po Lu + + Minor additions to last change + + * doc/emacs/xresources.texi (Table of Resources): Update + description of `extended'. + * etc/NEWS: Announce frame tearing reduction. + + * src/xterm.c (x_sync_update_finish, x_sync_update_begin) + (x_update_begin, x_update_end, show_back_buffer, x_flip_and_flush) + (XTframe_up_to_date, handle_one_xevent): Minor redesign of frame + synchronization feature. Fix crash with overflow and checking. + +2022-07-29 Po Lu + + Implement monitor refresh rate synchronization on X + + * src/xfns.c (x_set_parent_frame, Fx_create_frame): Disable + vsync on child and embedded frames. + * src/xmenu.c (x_menu_show): Fix XMenu position calculation in + child frames. + + * src/xterm.c (x_sync_is_frame_drawn_event) + (x_sync_wait_for_frame_drawn_event): New functions. + (x_sync_update_begin): Wait for frame to be drawn if not double + buffered. + (x_sync_update_finish): Set FRAME_X_WAITING_FOR_DRAW (f). + (show_back_buffer): Wait for frame to be drawn before flipping + buffers. + (XTframe_up_to_date): Set FRAME_X_WAITING_FOR_DRAW if bumped. + (handle_one_xevent): Handle frame drawn events. + + * src/xterm.h (struct x_output): New fields for frame dirtiness + and vsync. + +2022-07-29 Gregory Heytings + + Merge branch 'feature/long-lines-and-font-locking' + +2022-07-29 Gregory Heytings + + Further minor improvements of documentation + + * src/xdisp.c (syms_of_xdisp) : + * etc/NEWS: Further minor wording improvements. + +2022-07-29 Eli Zaretskii + + Minor improvements of recent documentation changes + + * src/editfns.c (Fwiden): + * doc/lispref/display.texi (Auto Faces): + * src/xdisp.c (syms_of_xdisp) : + * etc/NEWS: Clarify and improve wording of documentation changes. + +2022-07-29 Po Lu + + Also update after buffer flip caused by flush_frame + + * src/xterm.c (x_flip_and_flush): Mark the end of a sync frame. + +2022-07-28 Po Lu + + Implement extended frame synchronization + + * src/xterm.c (x_atom_refs): New atom _NET_WM_FRAME_TIMINGS. + (x_sync_update_finish, x_sync_update_begin): New frame. + (x_update_begin, x_update_end, XTframe_up_to_date): Begin and + end frames accordingly if extended frame synchronization is + enabled. + (handle_one_xevent): Ignore timing and frame drawn events. + + * src/xterm.h (struct x_display_info): New atom. + (FRAME_X_COUNTER_VALUE): New macro. + +2022-07-28 Po Lu + + Don't offer meaningless selection targets during drag-and-drop + + * lisp/select.el (xselect-dnd-target-available-p): New function. + (selection-converter-alist): Register it as the availability + function for DND specific targets. + +2022-07-28 Gregory Heytings + + Final documentation tweaks. + + * etc/NEWS: Update the NEWS entry. + + * src/xdisp.c (syms_of_xdisp): Mention the fact that restrictions + may be locked around 'fontification-functions'. + +2022-07-28 Gregory Heytings + + Add an optional 'lock' parameter to 'narrow-to-region' + + * src/editfns.c (Fnarrow_to_region): Add the parameter to the + function, and handle it. Update docstring. + (unwind_locked_begv, unwind_locked_zv): New functions. + (Fwiden): Do nothing when restrictions are locked. Update + docstring. + (syms_of_editfns): Replace the 'inhibit-widen' symbol and variable + with a 'restrictions-locked' symbol and variable. Update docstring. + + * src/xdisp.c (handle_fontified_prop): Use Fnarrow_to_region with + the new parameter. + (unwind_narrowed_zv): Remove function. + + * src/process.c (Finternal_default_process_filter): Add a third + argument to Fnarrow_to_region. + + * src/lread.c (readevalloop): Add a third argument to + Fnarrow_to_region. + + * src/bytecode.c (exec_byte_code): Add a third argument to + Fnarrow_to_region. + + * etc/NEWS (like): Mention the new parameter of 'narrow-to-region'. + + * doc/lispref/positions.texi (Narrowing): Document it. + +2022-07-28 Juri Linkov + + * lisp/tab-bar.el (tab-prefix-map): Fix key broken by conversion. + +2022-07-28 Sam Steingold + + Cleanup `string-equal-ignore-case' declarations. + + Also, a minor declaration cleanup for other `compare-strings' thin wrappers. + * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Remove + `string-equal-ignore-case', `string-prefix-p', `string-suffix-p'. + (side-effect-and-error-free-fns): Add `proper-list-p' (it already + was in `pure-fns'). + (pure-fns): Remove `string-prefix-p', `string-suffix-p' + (`string-equal-ignore-case' was missing here). + * lisp/subr.el (proper-list-p): Remove partially duplicate `put's from here. + (string-equal-ignore-case, string-prefix-p, string-suffix-p): Add + `pure' and `side-effect-free' declarations. + (string-equal-ignore-case): Make inline. + +2022-07-28 Sam Steingold + + a couple more `string-equal-ignore-case' test cases + +2022-07-28 Lars Ingebrigtsen + + Comment fixes for recent icon code + + * lisp/cus-edit.el (custom-icon-state): Add comment. + + * lisp/emacs-lisp/icons.el: Remove comment. + +2022-07-28 Stefan Kangas + + Delete fast-lock.el and lazy-lock.el + + The 'font-lock-support-mode' is occasionally useful for debugging + purposes, so it remains as a defvar. + Ref: https://lists.gnu.org/r/emacs-devel/2020-08/msg00125.html + + * lisp/obsolete/fast-lock.el: + * lisp/obsolete/lazy-lock.el: Delete libraries obsolete since + 22.1. (Bug#56560) + + * lisp/font-lock.el (font-lock-support-mode): Make into a defvar and + delete any mention of 'lazy-lock-mode' and 'fast-lock-mode'. + (font-lock-turn-on-thing-lock, font-lock-turn-off-thing-lock): + Drop support for obsolete modes lazy-lock and fast-lock. + (font-lock-after-fontify-buffer) + (font-lock-after-unfontify-buffer): Make into obsolete function + aliases for 'ignore'. Adjust callers. + (font-lock-keywords, font-lock-inhibit-thing-lock): Adjust + documentation to not mention lazy-lock and fast-lock. + * lisp/font-core.el (font-lock-defaults): Adjust documentation to + not mention 'font-lock-inhibit-thing-lock'. + * lisp/mail/rmail.el (rmail-variables): Don't inhibit obsolete + lazy-lock-mode and fast-lock-mode. + +2022-07-28 Po Lu + + Fix grab view persisting on Haiku after popup menu closes + + * src/haiku_support.cc (BasicMouseUp): Improve handling of + wait_for_release_message. + (be_clear_grab_view): New function. + * src/haiku_support.h: Update prototypes. + * src/haikumenu.c (haiku_menu_show): Call it here. + +2022-07-28 Stefan Kangas + + Convert ffap comments to tests + + * test/lisp/ffap-tests.el (ffap-file-remote-p, ffap-machine-p): + New tests. + +2022-07-28 Stefan Kangas + + Merge from origin/emacs-28 + + ba54f7e39c ; * doc/lispref/windows.texi (Window Sizes): Another typo.... + 7990d0c36a ; * doc/lispref/windows.texi (Window Sizes): Fix a typo. ... + +2022-07-28 Stefan Kangas + + Merge from origin/emacs-28 + + 92e77873ad Update ChangeLog and AUTHORS for 28.1.91 pretest + 093214402b ; * admin/authors.el (authors-aliases): Update. + +2022-07-28 Stefan Kangas + + Merge from origin/emacs-28 + + 23112f89f9 ; Improve documentation of 'file-name-with-extension' + 4be938169d Release the desktop lock in 'kill-emacs-hook' + 4ea1f6c7f8 ; * doc/lispref/tips.texi (Documentation Tips): Fix typos.... + + # Conflicts: + # doc/lispref/tips.texi + +2022-07-28 Lars Ingebrigtsen + + Use icons in warnings buffers + + * lisp/emacs-lisp/warnings.el (warning-suppress-action) + (warning-suppress-log-action): Removed. + New icon. + (warnings-suppress): New helper function. + (display-warning): Use it (bug#46025). + +2022-07-28 Lars Ingebrigtsen + + Use icons in outline + + * lisp/help.el (describe-bindings): Don't force buttons on + (bug#56691). + + * lisp/outline.el (outline-minor-mode-use-buttons): Default + buttons on in special-mode buffers. + * lisp/outline.el (outline-minor-mode-buttons): Remove. + (outline-open, outline-close): New icons. + (outline-minor-mode-highlight-buffer): Use the new predicate to + switch on/off. + (outline--make-button): Remove. + (outline--make-button-overlay): Use icons.el instantiation. + (outline--valid-emoji-p): Remove. + (outline--valid-char-p): Remove. + (outline--insert-open-button, outline--insert-close-button): Make + point movement better in *Help* buffers. + +2022-07-28 Lars Ingebrigtsen + + Add support for user-customizable icons + + * doc/emacs/custom.texi (Specific Customization): Mention it. + + * doc/emacs/display.texi (Icons): New node. + + * doc/lispref/display.texi (Icons): New node. + + * lisp/button.el (buttonize): + (button--properties, buttonize-region): Allow not overriding faces. + + * lisp/cus-edit.el (custom-save-all): Save icons. + (custom-icon): New widget. + (custom-icon-value-create, custom-toggle-hide-icon) + (custom--icons-widget-value, custom-icon-set): Helper functions + for the widget. + (customize-icon): Main command. + (custom-icon-state-set, custom-icon-state): Helper functions. + (custom-theme-set-icons): Function to be used by theme writers. + (custom-set-icons): Function to be used in .emacs. + (custom-save-icons): New function. + + * lisp/custom.el (custom-push-theme): Add icons. + + * lisp/emacs-lisp/icons.el: New file. + + * test/lisp/emacs-lisp/icons-tests.el: Add some tests. + +2022-07-28 Po Lu + + Correctly set marker position after specpdl is unwound during printing + + * src/print.c (PRINTFINISH): Don't call set_marker_both with the + wrong current_buffer. Reported by Lars Ingebrigtsen + . + +2022-07-28 Stefan Kangas + + Make quickurl.el obsolete (part 2/2) + + * lisp/obsolete/quickurl.el: Add "Obsolete-since" header. + * lisp/info.el (Info-file-list-for-emacs): Delete quickurl entry. + * doc/misc/autotype.texi (QuickURL): Delete section. + +2022-07-28 Stefan Kangas + + Make net/quickurl.el obsolete (part 1/2) + + * lisp/net/quickurl.el: Move from here... + * lisp/obsolete/quickurl.el: ...to here. + +2022-07-28 Lars Ingebrigtsen + + Don't export print--unreadable-callback-buffer to lisp + + * src/print.c (syms_of_print): Don't export + `print--unreadable-callback-buffer' to lisp. + +2022-07-28 Lars Ingebrigtsen + + Ensure that we don't call print-unreadable-function from " prin1" + + * src/print.c (PRINTPREPARE): Bind the current buffer so that we + can retrieve it later. + (print_vectorlike): Use it (bug#56773). + (syms_of_print): New internal `print--unreadable-callback-buffer' + variable. + +2022-07-28 Stefan Kangas + + Bump Emacs version to 28.1.91 + + * README: + * configure.ac: + * msdos/sed2v2.inp: + * nt/README.W32: Bump Emacs version to 28.1.91. + +2022-07-28 Stefan Kangas + + Update ChangeLog and AUTHORS for 28.1.91 pretest + + * ChangeLog.3: + * etc/AUTHORS: Update. + +2022-07-28 Stefan Kangas + + Doc fixes: don't mention EFS + + * doc/misc/ede.texi (ede-project): + * doc/misc/gnus.texi (Directory Groups, Various Various): + * lisp/cedet/ede/base.el (ede-project): + * lisp/gnus/mml.el (mml-attach-external): + * lisp/org/org.el (org-file-apps): + * lisp/url/url-file.el (url-file-find-possibly-compressed-file): + Doc fixes; don't mention XEmacs specific library EFS. + +2022-07-28 Eli Zaretskii + + Minor update of truncate-line optimization + + * src/xdisp.c (forward_to_next_line_start): Look into display and + overlay strings only when lines are truncated on display. + +2022-07-28 Stefan Kangas + + New test ffap-replace-file-component + + * test/lisp/ffap-tests.el (ffap-replace-file-component): New test. + +2022-07-28 Stefan Kangas + + Minor doc fixes in ffap.el + + * lisp/ffap.el: + (ffap-url-fetcher): Minor doc fixes. Adapt to new default; don't + mention defunct/missing library ffap-url.el. + +2022-07-28 Po Lu + + Fix minor problem with scroll bar grabs on Haiku + + * haiku_support.cc (class EmacsScrollBar, EmacsScrollBar) + (MouseDown, MouseUp): Keep a counter of the mouse down events + received. + +2022-07-28 Po Lu + + Fix race conditions in mouse button handling on Haiku + + * src/haiku_support.cc (class EmacsView): New field + `grabbed_buttons'. Remove `previous_buttons'. + (BasicMouseDown, BasicMouseUp): Accept new parameter `message'. + Use data from that message instead. + (MouseDown, MouseUp): Pass the current message to BasicMouseUp + and BasicMouseDown. + +2022-07-28 Paul Pogonyshev + + Release the desktop lock in 'kill-emacs-hook' + + * lisp/desktop.el: Run 'desktop--on-kill' in 'kill-emacs-hook'. + (desktop--on-kill): New function, refactored from 'desktop-kill'. + (desktop-kill): Call 'desktop--on-kill'. (Bug#56800) + +2022-07-27 Po Lu + + * src/xterm.c (x_set_offset): Respect x-no-window-manager. + +2022-07-27 Po Lu + + Remove excessive synchronization from x_sync_with_move + + * src/xterm.c (x_sync_with_move): Remove redundant XSync. The X + server always handles requests in order. + +2022-07-27 Stefan Kangas + + Drop support for obsolete "Lisp Code Directory" from ffap + + Ref: https://flex.phys.tohoku.ac.jp/texi/faq/faq_146.html + Note also that the host "archive.cis.ohio-state.edu" is unknown. + * lisp/ffap.el (ffap-alist): Drop support for obsolete "Lisp Code + Directory". + (ffap-lcd): Make obsolete. + +2022-07-27 Stefan Kangas + + Drop support for XEmacs package EFS + + EFS is a long defunct XEmacs-specific fork of Ange FTP that is + superseded by TRAMP. + * lisp/ffap.el (ffap-ftp-default-user) + (ffap-replace-file-component, ffap-host-to-filename): + * lisp/gnus/mml.el (mml-parse-file-name): + * lisp/gnus/nnheader.el (nnheader-re-read-dir): + * lisp/net/browse-url.el (browse-url-filename-alist): + * lisp/speedbar.el (speedbar-check-vc): Drop support for XEmacs + package EFS. + +2022-07-27 Stefan Kangas + + Make ffap-file-suffix obsolete + + * lisp/ffap.el (ffap-file-suffix): Make obsolete in favor of + file-name-extension. Update callers. + +2022-07-27 Michael Albinus + + Remove Tramp instrumentation + + * lisp/net/tramp.el (tramp-handle-shell-command): Modify sentinel handling. + +2022-07-27 Eli Zaretskii + + Speed up Isearch in very long lines under line truncation + + * src/xdisp.c (strings_with_newlines): New function. + (forward_to_next_line_start): Call 'strings_with_newlines' in + buffers with very long lines, to avoid falling back on slow + iteration. (Bug#56682) + +2022-07-27 Michael Albinus + + Further Tramp instrumentation + +2022-07-27 F. Jason Park + + Add compat from GNU ELPA as a soft dependency in ERC + + * lisp/erc/erc-backend.el (erc-parse-server-response, + erc--parse-isupport-value): Remove sub-28 compat code involving + `string-search'. + + * lisp/erc/erc-compat.el: Require compat package, but don't error + when absent. + + * lisp/erc/erc-dcc.el (erc-dcc-member): Remove `string-search' compat + code. + (erc-dcc-unquote-filename): Remove `string-replace' compat code. + + * lisp/erc/erc-speedbar.el (erc-speedbar-expand-server, + erc-speedbar-expand-channel, erc-speedbar-expand-user): Remove + `string-search' compat code. + + * lisp/erc/erc.el: Add compat version 28.1.2.0 to Package-Requires + header and require `erc-compat' after other libraries. + (erc--valid-local-channel-p): Remove `string-search' compat code. + (erc-update-mode-line-buffer): Remove `string-replace' compat code. + (erc-message-english-PART): Remove `string-replace' compat code. + +2022-07-27 F. Jason Park + + Avoid mutating default value of erc-server-last-peers + + * lisp/erc/erc-backend.el (erc-server-last-peers): Leave default as + nil instead of a quoted constant. + (erc-server-connect): Initialize `erc-server-last-peers' to a new + value local to a server buffer. + (erc-message): Operate on server's local `erc-server-last-peers' value + instead of the global default. Prefer replacing value instead of + mutating CDR to make for easier testing. + (erc-server-PRIVMSG): Create a new `erc-server-last-peers' for easier + testing. (Bug#56449) + +2022-07-27 F. Jason Park + + Ensure erc-dcc-chat-setup runs in the right buffer + + * lisp/erc/erc-dcc.el (erc-dcc-chat-setup): Ensure initialization runs + in the intended buffer regardless of the value of `erc-join-buffer'. + (erc-dcc--send-final-turbo-ack, erc-dcc-get-filter): Rename internal + variable formerly known as `erc-dcc--X-send-final-turbo-ack'. + +2022-07-27 F. Jason Park + + Fix CTCP regression in erc-server-PRIVMSG + + * lisp/erc/erc-backend.el (erc-server-PRIVMSG): Don't create a query + buffer for non-ACTION CTCP messages. + + * test/lisp/erc/erc-scenarios-misc.el (erc-scenarios-dcc-chat-accept): + Add test for basic DCC CHAT accept dialog. + + * test/lisp/erc/resources/dcc/chat/accept-dcc.eld: New file. + * test/lisp/erc/resources/dcc/chat/accept.eld: New file. + +2022-07-27 F. Jason Park + + Allow non-IRC line delimiters with ERC test server + + * test/lisp/erc/resources/erc-d/erc-d.el (erc-d-server-fqdn, + erc-d--initialize-client, erc-d--log, erc-d--send, erc-d--filter, + erc-d-run): Add new variable and use it. Also optionally accept + keyword arguments in `erc-d-run'. + + * test/lisp/erc/resources/erc-d/erc-d-tests.el + (erc-d-run-direct-foreign-protocol): Add test demoing newline-only + line-wise protocol. + + * test/lisp/erc/resources/erc-d/resources/foreign.eld: New file. + +2022-07-27 Po Lu + + Fix thinko in last change + + * src/print.c (PRINTPREPARE): Also remove `print_free_buffer'. + Record unwind protect instead. + (PRINTFINISH): Stop freeing the print buffer. (bug#56773) + +2022-07-27 Michael Albinus + + In Tramp, use `string-empty-p' and `string-equal-ignore-case' consequently + + * lisp/net/tramp.el (tramp-find-method): + * lisp/net/tramp-cmds.el (tramp-change-syntax): + * lisp/net/tramp-sh.el (tramp-sh-get-signal-strings) + (tramp-open-connection-setup-interactive-shell): Use `string-empty-p'. + + * lisp/net/tramp-compat.el (tramp-compat-string-equal-ignore-case): + New defalias. + * lisp/net/tramp-gvfs.el (tramp-gvfs-handler-mounted-unmounted): Use it. + +2022-07-27 Lars Ingebrigtsen + + Update test-print-unreadable-function after fix + + * test/lisp/subr-tests.el (test-print-unreadable-function): Update + test after fix. + +2022-07-27 YugaEgo + + Improve 'diff-whitespace-style' user option declaration + + * lisp/vc/diff-mode.el (diff-whitespace-style): + Use ':require'. Minor docstring fix. + (top level): Do not require 'whitespace. + (whitespace-style, whitespace-trailing-regexp): + Add defvars (rollback recent removal). + * etc/NEWS: Extend 'diff-whitespace-style' introduction. + (Bug#56679) (bug#56679). + +2022-07-27 Po Lu + + Fix invalid current buffer after print-unreadable-function signals + + * src/print.c (PRINTPREPARE): Remove `old' and + record_unwind_current_buffer instead. + (PRINTFINISH): Stop restoring `old'. (bug#56773) + +2022-07-27 Lars Ingebrigtsen + + Add a test for python-mode comment/else problem + + Based on a patch from kobarity + +2022-07-27 Stephen Berman + + Fix comment/else indentation problem in python-mode + + * lisp/progmodes/python.el + (python-info-dedenter-opening-block-positions): Fix indentation of + "else" after a comment (bug#56742). + +2022-07-27 Po Lu + + Fix frame determination for XI touch events + + * src/xterm.c (handle_one_xevent): Find touchscreen event + windows using x_window_to_frame. + +2022-07-27 Po Lu + + Remove workaround for some input method problems + + * src/xterm.c (handle_one_xevent): Remove modifier key + workaround for some input method problems, since they cause more + problems than they fix. (bug#56782) + +2022-07-26 Po Lu + + Fix NS stretch glyph display + + * src/nsterm.m (ns_draw_window_cursor): Just draw hollow cursor. + There is no need to draw the phys cursor glyph. + (ns_dumpglyphs_stretch): Delete function. + (ns_draw_glyph_string): New function. Port code from X and use + it instead. (bug#56787) + +2022-07-26 Alan Mackenzie + + CC Mode: correct the calculation and handling of c-use-category. + + This fixes bug #56629. The use of c-use-category was inconsistent, with the + result that it would be nil at compilation time, but t at run time. This + resulted in wrongly writing syntax-table text properties to s, yet + testing for category properties on them. + + * lisp/progmodes/cc-defs.el (c-use-category): Move to after the definition of + c-<-as-paren-syntax and c->-as-paren-syntax so as correctly to be able to use + their values. Put an eval-when-compile around the calculation of its value, + to reduce the chances of future failure. + (c-mark-<-as-paren, c-mark->-as-paren, c-unmark-<->-as-paren, c-sc-scan-lists) + (c-sc-parse-partial-sexp): Wrap c-use-category in (eval-when-compile ...) as + an optimization, preventing the XEmacs code also being generated. + +2022-07-26 Lars Ingebrigtsen + + Add missing @end defun to strings.texi + + * doc/lispref/strings.texi (Text Comparison): Add missing @end defun. + +2022-07-26 Sam Steingold + + restore and obsolete `gnus-string-equal' and `bibtex-string=' + + * lisp/gnus/gnus-util.el (gnus-string-equal): Restore and declare obsolete. + * lisp/textmodes/bibtex.el (bibtex-string=): Likewise. + +2022-07-26 Sam Steingold + + avoid error when message-fetch-field returns nil + + * gnus-art.el (article-hide-boring-headers): Use "" when + `message-fetch-field' returns `nil' + +2022-07-26 Sam Steingold + + string-equal-ignore-case: new function + + * lisp/cedet/semantic/complete.el (semantic-collector-calculate-completions): + Use `string-prefix-p' instead of explicit `compare-strings'. + * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): + Add `string-equal-ignore-case'. + * lisp/emacs-lisp/cl-extra.el (cl-equalp): Use `string-equal-ignore-case'. + * lisp/emacs-lisp/shadow.el (load-path-shadows-find): Likewise. + * lisp/emacs-lisp/shortdoc.el (string): Add `string-equal-ignore-case'. + * lisp/files.el (file-truename): Use `string-equal-ignore-case'. + (file-relative-name): Likewise. + * lisp/gnus/gnus-art.el (article-hide-boring-headers): + Use `string-equal-ignore-case' instead of `gnus-string-equal'. + * lisp/gnus/gnus-util.el (gnus-string-equal): + Remove, use `string-equal-ignore-case' instead. + * lisp/international/mule-cmds.el (describe-language-environment): + Use `string-equal-ignore-case'. + (locale-charset-match-p): Likewise. + * lisp/man.el (Man-softhyphen-to-minus): Use `string-prefix-p'. + * lisp/minibuffer.el (completion--string-equal-p): + Remove, use `string-equal-ignore-case' instead. + (completion--twq-all): Use `string-equal-ignore-case'. + (completion--do-completion): Likewise. + * lisp/net/browse-url.el (browse-url-default-windows-browser): + Use `string-prefix-p' instead of explicit `compare-strings'. + * lisp/org/ob-core.el (org-babel-results-keyword): + Use `string-equal-ignore-case' instead of explicit `compare-strings'. + (org-babel-insert-result): Likewise. + * lisp/org/org-compat.el (string-equal-ignore-case): + Define unless defined already. + (org-mode-flyspell-verify): Use `string-equal-ignore-case'. + * lisp/org/org-lint.el (org-lint-duplicate-custom-id): Likewise. + * lisp/org/ox.el (org-export-resolve-radio-link): Use + `string-equal-ignore-case' and `string-clean-whitespace'. + * lisp/progmodes/flymake-proc.el + (flymake-proc--check-patch-master-file-buffer): + Use `string-prefix-p' instead of explicit `compare-strings'. + * lisp/progmodes/idlwave.el (idlwave-class-or-superclass-with-tag): + Use `string-equal-ignore-case' instead of explicit `compare-strings'. + * lisp/subr.el (member-ignore-case): Use `string-equal-ignore-case'. + (string-equal-ignore-case): Compare strings ignoring case. + * lisp/textmodes/bibtex.el (bibtex-string=): Remove. + (bibtex-format-entry, bibtex-font-lock-url, bibtex-autofill-entry) + (bibtex-print-help-message, bibtex-validate, bibtex-validate-globally) + (bibtex-clean-entry, bibtex-completion-at-point-function, (bibtex-url): + Use `string-equal-ignore-case' instead of `bibtex-string='. + * lisp/textmodes/sgml-mode.el (sgml-get-context): + Use `string-equal-ignore-case' instead of explicit `compare-strings'. + (sgml-calculate-indent): Likewise + * test/lisp/subr-tests.el (string-comparison-test): + Add tests for `string-equal-ignore-case'. + +2022-07-26 Christian Garbs + João Távora + + Add out-of-box support for perl lsp server + + * eglot.el (eglot-server-programs): Support Perl lsp. + * README.md: Update. + * NEWS.md: Update. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/952 + +2022-07-26 Lars Ingebrigtsen + + Don't bind `M-X' when doing general completion + + * lisp/minibuffer.el (minibuffer-local-must-match-map): Remove the + M-X binding here, because it's nonsensical outside + read-extended-command (bug#56741). + + * lisp/simple.el (read-extended-command-mode-map) + (read-extended-command-mode): New minor mode to bind `M-X' in + read-extended-command. + (read-extended-command-1): Use it. + +2022-07-26 Lars Ingebrigtsen + + Add a test for print-unreadable-function + + * test/lisp/subr-tests.el (test-print-unreadable-function): Add + failing test (bug#56773). + +2022-07-26 Mattias Engdegård + + Add duplicate-dwim (bug#56418) + + Like duplicate-line but duplicates the region instead if active. + Rectangular regions are duplicated on the right-hand side. + The region remains active afterwards, to facilitate further + duplication or other operations on the same text. + + * lisp/rect.el (rectangle--duplicate-right): + * lisp/misc.el (duplicate-dwim): New. + * test/lisp/misc-tests.el (misc--duplicate-dwim): New test. + * etc/NEWS: Announce. + +2022-07-26 Robert Pluim + + Teach 'network-lookup-address-info' to validate numeric addresses + + * src/process.c (Fnetwork_lookup_address_info): Add optional 'hints' + argument, pass AI_NUMERICHOST to 'getaddrinfo' if it's 'numeric'. + (syms_of_process): Add 'numeric' symbol. + * doc/lispref/processes.texi (Misc Network): Expunge passive voice. + Update 'network-lookup-address-info' description. + * test/src/process-tests.el (lookup-hints-specification): + (lookup-hints-values): Test new functionality. + * etc/NEWS: Announce change. + +2022-07-26 Michael Albinus + + Fix regression in last Tramp change + + * lisp/net/tramp-sh.el (tramp-readlink-file-truename): Remove. + (tramp-sh-handle-file-truename): Revert implementation. (Bug#56774) + +2022-07-26 Po Lu + + Fix flicker when moving tooltips between frames during mouse drag-and-drop + + * src/haikufns.c (Fx_show_tip): + * src/nsfns.m (Fx_show_tip): Allow sharing existing tooltip + frames between any two frames. + * src/xfns.c (Fx_show_tip): Allow that but only between frames + on the same X display. + +2022-07-26 Po Lu + + Handle modifiers during Haiku DND wheel movement + + * lisp/term/haiku-win.el (haiku-dnd-modifier-mask) + (haiku-dnd-wheel-modifier-type): New functions. + (haiku-handle-drag-wheel): Use them. + * lisp/x-dnd.el (x-dnd-modifier-mask): Remove outdated comment. + * src/haikuselect.c (haiku_note_drag_wheel): Pass modifiers to + wheel function. + (syms_of_haikuselect): Update doc strings. + +2022-07-26 Stefan Kangas + + Merge from origin/emacs-28 + + 970190b844 Avoid infloop in 'recenter' + a866674b2a Fix inaccuracies in "lax search" documentation + +2022-07-25 Po Lu + + Remove some redundant checks in the DND code + + * src/xterm.c (handle_one_xevent): Don't check tab_bar_p or + tool_bar_p before clearing last items during drag-and-drop. + +2022-07-25 Gregory Heytings + + Improvement for long lines in buffers with font locking. + + * src/xdisp.c (get_narrowed_width): Factored out from 'get_narrowed_len'. + (get_narrowed_len): Updated to use 'get_narrowed_width'. + (get_closer_narrowed_begv): New function. + (SET_WITH_NARROWED_BEGV): Add parameter to the macro. + (back_to_previous_line_start): Use the new function. + (get_visually_first_element, move_it_vertically_backward): Update the + calls to the macro. + + * src/dispextern.h: Prototype of 'get_closer_narrowed_begv'. + Fix the prototypes of 'get_narrowed_begv' and 'get_narrowed_zv'. + +2022-07-25 Paul Eggert + + Note guideline for doc string expressions + + * doc/lispref/tips.texi (Documentation Tips): + Mention \\=' and \\=` and say that expressions like + (NAME TYPE RANGE) should not be quoted. + +2022-07-25 Eli Zaretskii + + Avoid infloop in 'recenter' + + * src/window.c (Frecenter): Avoid infinite loop in the minibuffer + under 'fido-vertical-mode'. (Bug#56765) + +2022-07-25 Michael Albinus + + Fix regexp in tramp-tests.el + + * test/lisp/net/tramp-tests.el (tramp--test-enabled): Fix regexp + for Tramp test files. + +2022-07-25 Robert Pluim + + Make package-archives URL treatment slightly laxer + + 'package-archives' URLs are expected to end in '/', but we can + cater for people typoing that by using 'url-expand-file-name'. + + * lisp/emacs-lisp/package.el (package--with-response-buffer-1): Use + 'url-expand-file-name' instead of 'concat'. + +2022-07-25 João Távora + + Clean up more robustly in compile.el + + * lisp/progmodes/compile.el (compilation-sentinel): Use + unwind-protect. + +2022-07-25 Eli Zaretskii + + Fix inaccuracies in "lax search" documentation + + * doc/emacs/search.texi (Lax Search): Update the examples of + character folding in search. (Bug#56747) + +2022-07-25 Po Lu + + Fix mouse face handling during frame reentry on Haiku + + * src/haikuterm.c (haiku_read_socket): Clear + last_mouse_glyph_frame like on X. + +2022-07-25 Stefan Kangas + + Merge from origin/emacs-28 + + ba70d0f77c Update to Org 9.5.4-17-g6e991f + +2022-07-24 Po Lu + + Fix typo in x-dnd-tests.el + + * test/lisp/x-dnd-tests.el (x-begin-drag): Avoid extra leading / + in file names. (bug#56712) + +2022-07-24 Po Lu + + Fix mouse face handling with tooltips + + * src/xterm.c (handle_one_xevent): Clear last_mouse_motion_frame + and last_mouse_glyph_frame on LeaveNotify. Otherwise, mouse + face will be restored by gui_redo_mouse_highlight and will not + be restored if an EnterNotify is later sent on top of the same + glyph. + +2022-07-24 Kyle Meyer + + Update to Org 9.5.4-17-g6e991f + +2022-07-24 João Távora + + Merge commit '7738854e09' to fix fallout of force-push in gnu elpa + +2022-07-24 Mike Kupfer + + Fix the prompt for mh-mime-save-parts (SF#500) + + * mh-mime.el (mh-mime-save-parts): Use the default argument to + read-directory-name; don't use format-prompt. + +2022-07-24 Mike Kupfer + + * mh-mime.el (mh-mime-save-parts): Restore default-directory (SF#498) + +2022-07-24 Michael Albinus + + Refactor Tramp + + * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist): + Use `tramp-adb-handle-get-remote-gid' and + `tramp-adb-handle-get-remote-uid'. + (tramp-adb-handle-file-attributes): Use `tramp-convert-file-attributes'. + (tramp-do-parse-file-attributes-with-ls): Remove ID-FORMAT. + (tramp-adb-handle-directory-files-and-attributes): + Use `tramp-skeleton-directory-files-and-attributes'. + (tramp-adb-handle-file-local-copy): Use `tramp-skeleton-file-local-copy'. + (tramp-adb-handle-copy-file, tramp-adb-handle-rename-file): + Use `tramp-barf-if-file-missing'. + (tramp-adb-handle-get-remote-uid) + (tramp-adb-handle-get-remote-gid): New defuns. + + * lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist): + Use `tramp-archive-handle-directory-files'. + (tramp-archive-handle-directory-files): New defun. + + * lisp/net/tramp-cache.el (tramp-file-property-p): New defun. + + * lisp/net/tramp-compat.el (tramp-compat-take): New defalias. + + * lisp/net/tramp-crypt.el (tramp-crypt-do-copy-or-rename-file): + Use `tramp-barf-if-file-missing'. + (tramp-crypt-handle-directory-files): + Use `tramp-skeleton-directory-files'. + + * lisp/net/tramp-fuse.el (tramp-fuse-handle-directory-files): + Use `tramp-skeleton-directory-files'. + + * lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file): + Use `tramp-barf-if-file-missing'. + + * lisp/net/tramp-rclone.el (tramp-rclone-do-copy-or-rename-file): + Use `tramp-barf-if-file-missing'. + + * lisp/net/tramp-sh.el (tramp-readlink-file-truename) + (tramp-stat-file-attributes) + (tramp-stat-directory-files-and-attributes): New defconsts. + (tramp-perl-file-attributes) + (tramp-perl-directory-files-and-attributes): Adapt. + (tramp-sh-handle-make-symbolic-link): Flush TARGET file properties. + (tramp-sh-handle-file-truename): Use `tramp-readlink-file-truename' + (tramp-sh-handle-file-exists-p) + (tramp-sh-handle-file-executable-p) + (tramp-sh-handle-file-readable-p) + (tramp-sh-handle-file-directory-p) + (tramp-sh-handle-file-writable-p): Adapt check of file properties. + (tramp-sh-handle-file-attributes): Simplify. + (tramp-do-file-attributes-with-ls): Remove ID-FORMAT. Combine two + remote commands. Compute both versions of uid and gid together. + (tramp-do-file-attributes-with-perl) + (tramp-do-directory-files-and-attributes-with-perl): + Remove ID-FORMAT. + (tramp-do-file-attributes-with-stat): Remove ID-FORMAT. Use + `tramp-stat-file-attributes'. + (tramp-sh-handle-directory-files-and-attributes): + Use `tramp-skeleton-directory-files-and-attributes'. + (tramp-do-directory-files-and-attributes-with-stat): + Remove ID-FORMAT. Use `tramp-stat-directory-files-and-attributes'. + (tramp-sh-handle-copy-directory): Use `tramp-skeleton-copy-directory'. + (tramp-do-copy-or-rename-file): Use `tramp-barf-if-file-missing'. + (tramp-sh-handle-file-local-copy): Use `tramp-skeleton-file-local-copy'. + (tramp-sh-handle-write-region): Combine two remote commands. + (tramp-sh-gio-monitor-process-filter): Simplify `cond' call. + (tramp-expand-script): Extend for ls, readling and stat. + (tramp-open-connection-setup-interactive-shell): Do not set + `tramp-end-of-output'. + (tramp-open-connection-setup-interactive-shell): Do not send + prompt formatting command, it's superfluous. + (tramp-send-command-and-check): Rearrange in order to accept also + heredoc scripts. + (tramp-convert-file-attributes): Move function to tramp.el. + (tramp-get-remote-id): Set connection property. + (tramp-get-remote-uid-with-id): Use it. + (tramp-get-remote-python): Don't check for python2 anymore. + + * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist): + Use `tramp-handle-directory-files'. + (tramp-smb-handle-copy-directory): Use `tramp-skeleton-copy-directory'. + (tramp-smb-handle-directory-files): Remove. + (tramp-smb-handle-file-attributes): Use `tramp-convert-file-attributes'. + (tramp-smb-do-file-attributes-with-stat): Remove ID-FORMAT. + (tramp-smb-handle-file-local-copy): Use `tramp-skeleton-file-local-copy'. + + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-do-copy-or-rename-file): + Use `tramp-barf-if-file-missing'. + (tramp-sudoedit-file-attributes): New defconst. + (tramp-sudoedit-handle-file-attributes): Simplify code. + + * lisp/net/tramp.el (tramp-setup-debug-buffer): Set debug buffer + as not modified. + (tramp-barf-if-file-missing, tramp-skeleton-copy-directory) + (tramp-skeleton-directory-files) + (tramp-skeleton-directory-files-and-attributes) + (tramp-skeleton-file-local-copy): New macros. + (tramp-handle-copy-directory): Use `tramp-skeleton-copy-directory'. + (tramp-handle-directory-files): Use `tramp-skeleton-directory-files'. + (tramp-handle-file-local-copy): Use `tramp-skeleton-file-local-copy'. + (tramp-handle-insert-file-contents): Use `tramp-barf-if-file-missing'. + (tramp-get-process-attributes, tramp-action-out-of-band): + Simplify `cond' call. + (tramp-check-cached-permissions): Simplify. + (tramp-make-tramp-temp-file): Reimplement. + + * test/lisp/net/tramp-archive-tests.el (tramp-copy-size-limit): + Don't set. + + * test/lisp/net/tramp-tests.el (tramp--test-enabled): + Remove superfluous test files. + (tramp-test21-file-links): Protect file name deletion. + +2022-07-24 Po Lu + + Throw errors in XDS handler directly + + * lisp/x-dnd.el (x-dnd-xds-testing): New defvar. + (x-dnd-handle-direct-save): Signal errors directly if it is + true. + * test/lisp/x-dnd-tests.el (x-dnd-xds-testing): New defvar. + (x-dnd-tests-do-direct-save-internal): Bind it to t around + x-begin-drag. (bug#56712) + +2022-07-24 Paul Pogonyshev + + Don't exclude current dir in `package--reload-previously-loaded' + + * lisp/emacs-lisp/package.el (package--reload-previously-loaded): + Don't exclude the current directory (bug#56614). + +2022-07-24 YugaEgo + + Add new user option 'diff-whitespace-style' + + * lisp/vc/diff-mode.el (diff-whitespace-style): New user option. + (diff-setup-whitespace): Use it (Bug#56679). + (top level): require 'whitespace. + (whitespace-style, whitespace-trailing-regexp): Remove defvars. + +2022-07-24 Stefan Kangas + + Merge from origin/emacs-28 + + b4067394dc Set `default-directory' of Tramp archive connection buffer + 2529e82002 ; * doc/lispref/functions.texi (Declare Form): Fix typo. + 54c4ceb009 Update the documentation of 'declare' forms + 7263631dca Fix bookmark support for Help functions in native-compilat... + + # Conflicts: + # lisp/help.el + +2022-07-23 Po Lu + + Prevent exposing tooltip frames to Lisp code during drag-and-drop + + * src/xterm.c (x_dnd_compute_toplevels): Ignore tooltip frames. + (x_tooltip_window_to_frame): Allow unrelated_tooltip_p to be + NULL. + (handle_one_xevent): Ignore DND events to tooltip frames. + +2022-07-23 Dmitry Gutov + + * lisp/progmodes/xref.el: Bump the version. + +2022-07-23 Michael Albinus + + Set `default-directory' of Tramp archive connection buffer + + * lisp/net/tramp-archive.el (tramp-archive-file-name-handler): + Set `default-directory' of Tramp connection buffer. (Bug#56628) + +2022-07-23 Mattias Engdegård + + Fix `lsh` warning shortcomings (bug#56641) + + Reported by Basil Contovounesios. + + * etc/NEWS: Mention how to suppress the warning. + * lisp/emacs-lisp/byte-run.el (with-suppressed-warnings): Amend doc string. + * lisp/subr.el: Use `macroexp-warn-and-return` to delay the warning + until codegen time (which makes it suppressible) and to prevent + repeated warnings. + * test/lisp/international/ccl-tests.el (shift): + * test/src/data-tests.el (data-tests-ash-lsh): + Suppress warning in tests of `lsh` itself. + +2022-07-23 Eli Zaretskii + + Improve display of columns on mode-line + + * src/xdisp.c (decode_mode_spec): A better representation for + "unknown column number". + +2022-07-23 Eli Zaretskii + + Optimize 'set_vertical_scroll_bar' for long lines + + * src/xdisp.c (set_vertical_scroll_bar): Don't bother + being accurate about window_end_pos if long-line shortcuts + are in effect in the current buffer. + +2022-07-23 Eli Zaretskii + + Avoid calling 'current_column' in buffers with long lines. + + * src/xdisp.c (decode_mode_spec, redisplay_window) + (mode_line_update_needed): + * src/indent.c (Fcurrent_column): In a buffer with long-line + optimizations enabled, avoid calling 'current_column', which is + very slow in that case. + +2022-07-23 Basil L. Contovounesios + + Update pdumper.c after recent long lines changes + + For discussion, see: + https://lists.gnu.org/r/emacs-devel/2022-07/msg00761.html + + * src/pdumper.c (dump_buffer): Dump new field + long_line_optimizations_p introduced in commit e7b5912b23 of + 2022-07-16 "Improvements to long lines handling." + (dump_buffer) [CHECK_STRUCTS]: Update hash accordingly + for --enable-checking=structs. + +2022-07-23 Eli Zaretskii + + Speed up redisplay of long truncated lines + + * src/xdisp.c (forward_to_next_line_start): Fix logic of + interpreting the result of Fnext_single_property_change. + (reseat_at_next_visible_line_start): When ON_NEWLINE_P is zero, + pass NULL to 'forward_to_next_line_start', to avoid costly bidi + iteration when none is needed. This speeds up redisplay of very + long lines under 'truncate-lines'. + +2022-07-23 Mattias Engdegård + + Correct symbol in error for failed CHECK_INTEGER (bug#56723) + + Reported by Jeronimo Pellegrini. + + * src/lisp.h (CHECK_INTEGER): Use integerp, not numberp. + +2022-07-23 Dmitry Gutov + + Support new "binary file matches" format in Ripgrep 13 + + * lisp/progmodes/xref.el (xref-matches-in-files): + Support new "binary file matches" format in Ripgrep 13 + (bug#56624). + +2022-07-23 Po Lu + + Remove macOS region color code + + * lisp/faces.el (region): Remove macOS specific definition. + Equivalent functionality is no longer available on free + operating systems. + +2022-07-23 Mattias Engdegård + + Use `ash` instead of `lsh` in verilog-mode (bug#56641) + + * lisp/progmodes/verilog-mode.el (verilog-simplify-range-expression): + Use `ash`; the result will be the same because the first argument is + nonnegative. + +2022-07-23 Mattias Engdegård + + Warn about calls to `lsh` (bug#56641) + + * lisp/subr.el (lsh): Warn when compiled; recommend `ash`. + * etc/NEWS: Add note. + +2022-07-23 Eli Zaretskii + + Update the documentation of 'declare' forms + + * doc/lispref/compile.texi (Native-Compilation Variables): Mention + the 'declare' alternative for 'native-comp-speed'. + * doc/lispref/functions.texi (Declare Form): Document 'declare' + forms that were previously undocumented. + +2022-07-23 Po Lu + + Undo C parts of "Don't use the Gtk region face" + + This reverts commit a24f710395f9777cb9f8b000300e5e9c892d7794, apart + from the change to faces.el and NEWS. + +2022-07-23 Lars Ingebrigtsen + + Don't use the Gtk region face + + * lisp/faces.el (region): Don't use the Gtk region face, because + it produces low contrast combinations (bug#46493). + * src/gtkutil.h: + * src/gtkutil.c (xg_check_special_colors): Remove. + + * src/xfns.c (x_defined_color): + * src/pgtkterm.c (pgtk_defined_color): Don't call. + +2022-07-23 kobarity + + Fix Python navigation problem with a line continuation using backslash + + * lisp/progmodes/python.el (python-nav--beginning-of-defun): Fix + line continuation using backslash in nested defun (bug#56615). + +2022-07-23 Eli Zaretskii + + Fix bookmark support for Help functions in native-compilation builds + + * lisp/help.el (describe-key--helper, describe-function--helper): + New helper functions. + (describe-key): Call 'describe-key--helper' instead of a + lambda-function. + * lisp/help-fns.el (describe-function): Call + 'describe-function--helper' instead of a lambda-function. + (Bug#56643) + +2022-07-23 Lars Ingebrigtsen + + Fix wdired entry when there are hidden subdirs + + * lisp/dired.el (dired--unhide): Allow `C-c C-q' to work when + there are hidden inserted subdirs (bug#56698). + +2022-07-23 Visuwesh + + New user option to disable deleting current input in comint mouse-2 + + * etc/NEWS: Announce the user option (bug#56646). + * lisp/comint.el (comint-delete-old-input): New user option to disable + deleting current input when insert an old input using mouse-2. + (comint-insert-input): Use it. + +2022-07-23 Lars Ingebrigtsen + + Use special-mode in eldoc--doc-buffer + + * lisp/emacs-lisp/eldoc.el (eldoc--format-doc-buffer): Use + `special-mode' to allow normal customizations of the buffer + (bug#56659). + +2022-07-23 Po Lu + + Fix PGTK DND after a source leaves without dropping anything + + * lisp/pgtk-dnd.el (pgtk-dnd-clear-data-on-motion): New flag. + (pgtk-dnd-handle-gdk): Set flag upon drag-leave. Clear state + upon drag-motion if it is set. + +2022-07-23 Lars Ingebrigtsen + + Fix off-by-one error in string-truncate-left + + * lisp/emacs-lisp/subr-x.el (string-truncate-left): Fix off-by-one + error (bug#56685). + +2022-07-23 Po Lu + + Handle text scale and global text scale during DND wheel movement + + * lisp/x-dnd.el (x-dnd-mwheel-scroll): Handle `text-scale' and + `global-text-scale' mwheel actions. + +2022-07-23 Miha Rihtaršič + + Fix mode line mouse-1 binding when showing only column numbers + + * lisp/bindings.el (mode-line-position): Fix the mouse-1 binding + when showing only column numbers (bug#56694). + +2022-07-23 Lars Ingebrigtsen + + Don't bug out in src when there's no srcset + + * lisp/net/shr.el (shr--preferred-image): Don't bug out when + there's no srcset. + +2022-07-23 Lars Ingebrigtsen + + Fix srcset parsing in shr + + * lisp/net/shr.el (shr--preferred-image): Factor out srcset + parsing for easier testing. + (shr--parse-srcset): Don't misparse URLs with commas in them. + +2022-07-22 Po Lu + + Improve efficiency of DND tooltip movement + + * src/xterm.c (x_dnd_begin_drag_and_drop): Clear new flag. + (x_dnd_update_tooltip_position): Save last tooltip X and Y + somewhere, so we don't move it upon client lists being updated. + +2022-07-22 Stefan Kangas + + Merge from origin/emacs-28 + + ae1ace1cf4 Adjust help-fns.el tests for recent change + 04bdcf4aaa * src/terminal.c (Fframe_terminal): Use active voice + 7fa491a9e9 Improve 'terminal-live-p' docstring some more + b9ac8c29ae Improve terminal-live-p docstring + 0b4c81a152 * lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-event-vector): F... + 8f8373170f * lisp/progmodes/cperl-mode.el: Don't mention obsolete arc... + 25bc330a6d Make 'describe-function' say "byte-compiled" when appropriate + 2b31e667be ;Improve documentation of locale-specific string comparison + +2022-07-22 Stefan Kangas + + Adjust help-fns.el tests for recent change + + * test/lisp/help-fns-tests.el (help-fns-test-lisp-defun) + (help-fns-test-lisp-defsubst): Adjust tests for recent change. + +2022-07-22 Lars Ingebrigtsen + + Fix typo in error message in native-compile-prune-cache + + * lisp/emacs-lisp/comp.el (native-compile-prune-cache): Fix typo + (bug#56713). + +2022-07-22 Lars Ingebrigtsen + + Fix spacing in *Help* buttons + + * lisp/help-mode.el (help-xref--navigation-buttons): Fix spacing + before single [forward] button. + +2022-07-22 Lars Ingebrigtsen + + Give a better error message in native-compile-prune-cache + + * lisp/emacs-lisp/comp.el (native-compile-prune-cache): Give a + better error message in non-nativecomp builds. + +2022-07-22 Eli Zaretskii + + Avoid assertion violations in 'handle_fontified_prop' + + * src/xdisp.c (handle_fontified_prop): Avoid assertion violations + due to automatic narrowing. (Bug#56682) + +2022-07-22 Eli Zaretskii + + Fix display of scroll-bar in mini-windows + + * src/xdisp.c (set_vertical_scroll_bar): Ensure current_buffer is + set correctly when displaying scroll bar of a mini-window. + (Bug#56692) + +2022-07-22 Robert Pluim + + * src/terminal.c (Fframe_terminal): Use active voice + +2022-07-22 Robert Pluim + + Improve 'terminal-live-p' docstring some more + + * terminal.c (Fterminal_live_p): Improve description of arguments and + return value. + +2022-07-22 Po Lu + + Fix bug#56692 questionably + + * src/xdisp.c (set_vertical_scroll_bar): Don't recompute window + end of a mini window. (bug#56692) + +2022-07-22 Gregory Heytings + + Improve font locking in buffers with long lines (bug#56682). + + * src/dispextern.h (struct it): New 'narrowed_zv' field. + + * src/xdisp.c (init_iterator): Set the field. + (get_narrowed_zv): New function to set the field. + (handle_fontified_prop): Use the field, together with 'narrowed_begv', + to narrow the portion of the buffer that 'Vfontification_functions' + will see. Also bind 'inhibit-widen'. + (get_narrowed_len): New function, factored out of 'get_narrowed_begv'. + (unwind_narrowed_zv): New function. + + * src/editfns.c (syms_of_editfns): New variable and symbol 'inhibit-widen'. + (Fwiden): Do nothing when 'inhibit-widen' is non-nil. + +2022-07-22 Robert Pluim + + Explain how to override Author with VC + + * CONTRIBUTE: Describe how to use Author header line and + 'log-edit-setup-add-author'. + +2022-07-22 Robert Pluim + + Improve terminal-live-p docstring + + * src/terminal.c (Fterminal_live_p): Explain what happens when the + argument is nil. + +2022-07-22 Robert Pluim + + * lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-event-vector): Fix grammar + +2022-07-22 Po Lu + + Fix handling hscroll during drag-and-drop + + * lisp/x-dnd.el (x-dnd-hscroll-flags): Delete function. + (x-dnd-get-modifiers, x-dnd-wheel-modifier-type): New functions. + (x-dnd-mwheel-scroll): Use that to determine hscroll instead. + * src/window.c (set_window_hscroll): Mark window as needing + redisplay if the hscroll really changed. + +2022-07-21 Po Lu + + Fix posn-timestamp of scroll bar events on GTK + + * src/xterm.c (x_get_last_toolkit_time): New function. + (x_scroll_bar_to_input_event) + (x_horizontal_scroll_bar_to_input_event): Use it to retrieve + toolkit time. + (xg_scroll_callback, xg_end_scroll_callback): Set last user time + if possible. + +2022-07-21 João Távora + + Always default eglot-strict-mode to nil + + it's mostly useful for developers/debugger. It's better to have the + latter remember to set it than users being hindered by it. + + See https://github.com/joaotavora/eglot/issues/131#issuecomment-1191997167 + + * eglot.el (eglot-strict-mode): default to nil. + +2022-07-21 Stefan Monnier + + * lisp/help-mode.el (help-news): Use `view-file` + + * lisp/vc/vc-dispatcher.el (vc-log-edit): Un-quote the lambda + + * lisp/progmodes/verilog-mode.el (verilog-surelint-off): Silence warning + +2022-07-21 Stefan Monnier + + (compilation-parse-errors-function): Remove obsolete var + + * lisp/progmodes/compile.el (compilation-parse-errors-function): Remove. + (compilation--parse-region): Simplify accordingly. + (compilation--compat-parse-errors): Remove function, not used any more. + (compilation-error-list, compilation-parsing-end) + (compilation-old-error-list): Remove vars, not used any more. + (compilation-last-buffer): Mark as obsolete (sadly, forgot to do that + back in Emacs-22). + + * lisp/textmodes/tex-mode.el: Remove old code that was needed for + Emacs<24. + + * lisp/progmodes/prolog.el (prolog-consult-compile): Remove long-dead code. + (compilation-parse-errors-function): Remove declaration, not used any more. + (prolog-parse-sicstus-compilation-errors): Remove function, not used any more. + +2022-07-21 Stefan Kangas + + image-dired: Don't end messages with "." + + * lisp/image-dired.el (image-dired-toggle-dired-display-properties) + (image-dired--on-file-in-dired-buffer) + (image-dired-thumbnail-set-image-description) + (image-dired-mark-tagged-files) + (image-dired-dired-edit-comment-and-tags) + (image-dired-modify-mark-on-thumb-original-file): Don't end messages + with "." to better comply with '(elisp) Programming Tips'. + +2022-07-21 Eli Zaretskii + + Fix reference to 'x-max-tooltip-size' in complete.el + + * lisp/cedet/semantic/complete.el: Don't assume that + x-max-tooltip-size is a cons cell. + +2022-07-21 Gregory Heytings + + Merge branch 'feature/fix-the-long-lines-display-bug' + +2022-07-21 Eli Zaretskii + + Update buffer's chars-modified tick when inserting from gap + + * src/insdel.c (insert_from_gap): Update buffer's chars-modified + tick. (Bug#56393) + + * test/src/buffer-tests.el (test-buffer-chars-modified-ticks): New + test. + +2022-07-21 Stefan Kangas + + * lisp/progmodes/cperl-mode.el: Don't mention obsolete archive. + +2022-07-21 Po Lu + + Apply tooltip assertions to all instances of x-show-tip + + * src/haikufns.c (Fx_show_tip): + (syms_of_haikufns): + * src/nsfns.m (Fx_show_tip): + (syms_of_nsfns): + * src/pgtkfns.c (Fx_show_tip): + (syms_of_pgtkfns): + * src/xfns.c (Fx_show_tip): + (syms_of_xfns): Add assertion and adjust default values. + +2022-07-21 Stefan Kangas + + Minor doc fix in search-forward-help-for-help + + * lisp/help.el (search-forward-help-for-help): Use command + substitution. + +2022-07-21 Stefan Kangas + + Make bs-help obsolete in favor of describe-mode + + * lisp/bs.el (bs-help): Make obsolete in favor of describe-mode. + Update uses. + +2022-07-21 Stefan Kangas + + Make dictionary-help obsolete in favor of describe-mode + + * lisp/net/dictionary.el (dictionary-help): Make obsolete in favor + of describe-mode. Update uses. + +2022-07-21 Stefan Kangas + + Don't list obsolete in "other commands" help section + + * lisp/help-fns.el (help-fns--list-local-commands): Don't list + obsolete commands. + +2022-07-21 Eli Zaretskii + + Make 'describe-function' say "byte-compiled" when appropriate + + * lisp/help-fns.el (help-fns-function-description-header): Say + "byte-compiled" when describing byte-compiled functions. + +2022-07-21 Eli Zaretskii + + Make sure we don't unknowingly truncate tooltip text + + * src/w32fns.c (Fx_show_tip): Add assertion when the default + tooltip dimension limits are insufficient. (Bug#56561) + +2022-07-21 Po Lu + + Avoid wasting bandwidth to set user time + + * src/xterm.c (x_display_set_last_user_time): Don't change the + user time property if nothing actually changed. + +2022-07-21 Eli Zaretskii + + ;Improve documentation of locale-specific string comparison + + * doc/lispref/strings.texi (Text Comparison): Mention the Unicode + collation rules and buffer-local case-tables. + +2022-07-21 Stefan Kangas + + Make bubbles-quit obsolete in favor of quit-window + + * lisp/play/bubbles.el (bubbles-quit): Make obsolete in favor of + quit-window. Update uses. + +2022-07-21 Stefan Kangas + + Remove superfluous installation instructions + + These functions are already autoloaded. + * lisp/mail/mspools.el: + * lisp/progmodes/opascal.el: + * lisp/textmodes/remember.el: + * lisp/woman.el: Remove superfluous installation instructions. + +2022-07-21 Stefan Kangas + + Merge from origin/emacs-28 + + ea44d7ddfc ; * lisp/mail/smtpmail.el (smtpmail-via-smtp): Explain with... + +2022-07-20 Po Lu + + Improve handling screen resizes when built without RandR + + * src/xterm.c (handle_one_xevent): Update DND tooltip position + upon ConfigureNotify for root window. + +2022-07-20 Po Lu + + Revert "Prefer defvar-keymap in xwidget.el" + + This reverts commit daf2c3e23a45bff14f9d444d2d07455376d4b6da. + +2022-07-20 Stefan Kangas + + Prefer defvar-keymap in xwidget.el + + * lisp/xwidget.el (xwidget-webkit-mode-map) + (xwidget-webkit-edit-mode-map): Prefer defvar-keymap. + +2022-07-20 Gregory Heytings + + * src/xdisp.c (redisplay_window): Small optimization. + +2022-07-20 Gregory Heytings + + Further tweaks to long lines handling. + + * src/xdisp.c (redisplay_window): Increase the threshold above which + long lines detection is performed in the buffer. This should avoid + triggering that detection for most simple editing operations. + + * src/lisp.h (modiff_incr): Explain why the counter is incremented + logarithmically. + + * src/buffer.h (struct buffer_text): Adapt the comment about the + 'modiff' field accordingly. + + * src/buffer.c (modify_overlay): Increase the counter by 1 instead of + the size of the buffer section on which the overlay is placed. + + * etc/NEWS: Small improvement. + +2022-07-20 Po Lu + + Fix mouse wheel DND scroll direction on Haiku + + * lisp/term/haiku-win.el (haiku-handle-drag-wheel): Record the + last wheel direction. If it differs, clear the click counter. + +2022-07-20 Eli Zaretskii + + Fix error during startup in -nw sessions + + * lisp/startup.el (normal-top-level, command-line-1): Don't mess + with fonts in a text-mode session. (Bug#56660) + +2022-07-20 Mattias Engdegård + + Gently discourage use of `lsh` (bug#56641) + + * lisp/subr.el (lsh): Note the general preference for `ash`. + * lisp/emacs-lisp/shortdoc.el (number): Remove entry for `lsh`. + It was identical to that for `ash` which is misleading. + Shortdoc is very helpful for finding the right function to use, + and `lsh` is just for compatibility at this point. + +2022-07-20 Po Lu + + Fix calculation of default highlightForeground in the lucid menu bar + + * lwlib/xlwmenu.c (xlwMenuResources, display_menu_item) + (make_drawing_gcs, make_shadow_gcs, openXftFont, XlwMenuRealize) + (XlwMenuSetValues): Use -1 as the default for + highlight_foreground. Replace that with the normal foreground + when creating GCs. Reported by Colin Baxter + . + +2022-07-20 Stefan Kangas + + Merge from origin/emacs-28 + + cb911febc6 ; Fix typos + + # Conflicts: + # test/lisp/net/tramp-tests.el + +2022-07-20 Po Lu + + Implement wheel movement during DND on Haiku + + * lisp/term/haiku-win.el (haiku-dnd-wheel-count): New defvar. + (haiku-note-wheel-click, haiku-handle-drag-wheel): New + functions. + + * src/haiku_support.cc (EmacsWindow): Get rid of window ID + logic. + (MessageReceived, MouseMoved, be_drag_message): Use thread ID to + identify windows instead of window ID. + + * src/haikuselect.c (Fhaiku_drag_message): Record whether or not + the DND frame is a valid drop target. + (haiku_note_drag_wheel): New function. + (syms_of_haikuselect): New defvar. + + * src/haikuterm.c (haiku_read_socket): Call + `haiku_note_drag_wheel' when appropriate. + * src/haikuterm.h: Update prototypes. + +2022-07-20 Stefan Kangas + + Prefer defvar-keymap in some trivial cases + + * lisp/calendar/diary-lib.el (diary-fancy-overriding-map): + * lisp/emacs-lisp/chart.el (chart-mode-map): + * lisp/emulation/cua-base.el (cua-global-keymap) + (cua--cua-keys-keymap, cua--prefix-override-keymap) + (cua--prefix-repeat-keymap, cua--global-mark-keymap) + (cua--rectangle-keymap, cua--region-keymap): + * lisp/emulation/viper-keym.el (viper-vi-intercept-map) + (viper-insert-intercept-map, viper-emacs-intercept-map) + (viper-vi-global-user-map, viper-vi-basic-map, viper-vi-kbd-map) + (viper-vi-diehard-map, viper-insert-global-user-map) + (viper-insert-basic-map, viper-insert-diehard-map) + (viper-insert-kbd-map, viper-replace-map) + (viper-emacs-global-user-map, viper-emacs-kbd-map) + (viper-empty-keymap, viper-mode-map, viper-minibuffer-map) + (viper-ex-cmd-map, ex-read-filename-map) + (viper-slash-and-colon-map, viper-comint-mode-modifier-map) + (viper-dired-modifier-map, viper-gnus-modifier-map): + * lisp/gnus/gnus-sum.el (gnus-summary-generic-mark-map): + * lisp/menu-bar.el (global-buffers-menu-map) + (menu-bar-preferences-menu): + * lisp/mh-e/mh-e.el (mh-folder-mode-map, mh-inc-spool-map) + (mh-search-mode-map, mh-show-mode-map): + * lisp/play/dunnet.el (dungeon-batch-map): + * lisp/progmodes/autoconf.el (autoconf-mode-map): + * lisp/tool-bar.el (tool-bar-map): + * lisp/vc/ediff-help.el (ediff-help-region-map): + * lisp/vc/ediff-hook.el (menu-bar-epatch-menu) + (menu-bar-ediff-merge-menu, menu-bar-ediff-menu): + * lisp/windmove.el (windmove-mode-map): + * lisp/xwidget.el (xwidget-webkit-isearch-mode-map) + (xwidget-webkit-edit-mode-map): Prefer defvar-keymap. + +2022-07-19 Po Lu + + Fix setting user time upon scrolling self during DND + + * src/xterm.c (handle_one_xevent): Set user time for emulated + scroll wheel events if Emacs ends up scrolled during DND. + +2022-07-19 João Távora + + Make eldoc-echo-area-prefer-doc-buffer consider all frames + + Previously, it considered only windows on 'visible' frames (according + to get-buffer-window). This seemed correct at first, but it's not + much use for multiple TTY frames and not particularly reliable on GUI + frames either. There's no reliable way to tell what is actually + visible, so it's best to assume that users setup frames that are + indeed visible when using this parameter. + + * lisp/emacs-lisp/eldoc.el (eldoc--echo-area-prefer-doc-buffer-p): + Consider all frames. + +2022-07-19 João Távora + + Ensure Eldoc buffer displays on interactive M-x eldoc + + * lisp/emacs-lisp/eldoc.el (eldoc-display-in-buffer): Call + eldoc-doc-buffer with interactive set to t. + (Version): Bump to 1.13.0. + +2022-07-19 Gregory Heytings + + Simplified and improved heuristic for long lines detection. + + * src/lisp.h (modiff_incr): Add a parameter to 'modiff_incr' to record + the extent of the modification. + + * src/insdel.c (insert_1_both, insert_from_string_1, insert_from_gap, + insert_from_buffer_1, adjust_after_replace, replace_range, + replace_range_2, del_range_2, modify_text): Add an argument to each + call to 'modiff_incr'. + + * src/textprop.c (modify_text_properties): Add an argument to the call + to 'modiff_incr'. + + * src/buffer.c (Frestore_buffer_modified_p, Fbuffer_swap_text, + modify_overlay): Add an argument to each call to 'modiff_incr'. + + * src/xdisp.c (redisplay_window): Use the improved version of 'MODIFF' + for the heuristic. + +2022-07-19 Gregory Heytings + + Revert commits 1ff69cc744 and 9a894206f6. + +2022-07-19 João Távora + + Fix embarrassing paren-matching blunder in eglot.el + + * eglot.el (eglot-handle-request workspace/applyEdit): Fix parens. + +2022-07-19 João Távora + + Reply more reasonably to server's workspace/applyedit + + * eglot.el (eglot-handle-request): Return non-nil + (eglot--apply-workspace-edit): Signal jsonrpc-error, not error. + +2022-07-19 João Távora + + Appease byte-compiler warnings about wrong use of quotes + + * eglot.el (eglot-stay-out-of, eglot--code-action): Just give it + what it wants. + +2022-07-19 João Távora + + Eglot-workspace-configuration can be a function + + * README.md (Workspace configuration): Renamed from per-project + configuration. Rework. + + * NEWS.md: Mention change. + + * eglot.el (eglot-workspace-configuration): Overhaul. + (eglot-signal-didChangeConfiguration): Use new + eglot-workspace-configuration. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/967 + +2022-07-19 Philip Kaludercic + + * eudc.texi: Unquote setopt option names + +2022-07-19 Gregory Heytings + + Improve the heuristic for long lines detection again. + + * src/xdisp.c (redisplay_window): Improve the heuristic again. + +2022-07-19 Mattias Engdegård + + Use `ash` instead of `lsh` + + * lisp/files.el (file-modes-number-to-symbolic): + * lisp/image/exif.el (exif--direct-ascii-value): + * lisp/term/haiku-win.el (defun): + * lisp/x-dnd.el (x-dnd-handle-xdnd, x-dnd-handle-motif): + `lsh` is slower and has confusing semantics; avoid. + +2022-07-19 Stefan Kangas + + Prefer defvar-keymap in bindings.el + + * lisp/bindings.el (narrow-map, undo-repeat-map) + (next-error-repeat-map, goto-map, search-map, ctl-x-r-map) + (page-navigation-repeat-map, abbrev-map, ctl-x-x-map): Prefer + defvar-keymap. + (mode-specific-map): Minor doc fix. + +2022-07-19 Mattias Engdegård + + Speed up `butlast` + + * lisp/subr.el (butlast): Don't duplicate the removed part. + * test/lisp/subr-tests.el (subr-tests--butlast-ref, subr-butlast): + Add test. + +2022-07-19 Stefan Kangas + + Merge from origin/emacs-28 + + 282dde887d ; Fix typo missed in previous change + 62c47ffd5f ; * lisp/net/tramp-crypt.el: Improve commentary + cba30431ff Merge branch 'emacs-28' of git.savannah.gnu.org:/srv/git/e... + 8f9993bb3f ; * src/buffer.c (syms_of_buffer) : Doc ... + fec4bb89f9 ; Fix typos (Bug#56550) + +2022-07-18 Po Lu + + Document workaround for bug#56627 + + * etc/PROBLEMS: Document problems with GTK tool bar icons on + some icon themes. (bug#56627) + +2022-07-18 Stefan Monnier + + (help-fns--first-release): Try and avoid false positives + + We used to use a very "optimistic" regexp which worked well for + longish symbol names but suffered from too many false positives on + short names. Use a more restrictive regexp, which should make the + recent "weed out" change unnecessary. + + This in turn requires the use of '...' more consistently in etc/NEWS* files. + + * lisp/help-fns.el (help-fns--first-release-regexp): New function. + (help-fns--first-release): Use it. Fix minor issue with the Emacs + version regexp. + (help-fns--mention-first-release): Undo last change. + + * etc/NEWS*: Replace `...' with '...'. Indent code examples by at + least 2 spaces. Add previously missing '...' quotes around many of + the variables and functions described. + +2022-07-18 Po Lu + + Fix timestamp specified in wheel movement XDND events + + * src/xterm.c (handle_one_xevent): Use the time of the wheel + event in XDND events sent in response to wheel movement. + +2022-07-18 Po Lu + + Make drag-and-drop wheel movement work locally too on X + + This is provided by the XDND protocol, so it isn't fair for it + to not work with local drag-and-drop. + + * lisp/x-dnd.el (x-dnd-note-wheel-movement): New function. Set + it as the `x-dnd-wheel-function'. + * src/xterm.c (x_dnd_cleanup_drag_and_drop): Clear new flags. + (x_dnd_note_self_wheel): New function. Set some flags. + (x_dnd_process_quit, x_dnd_begin_drag_and_drop, handle_one_xevent) + (x_connection_closed, x_delete_terminal, mark_xterm): Handle and + set new wheel movement flags + (syms_of_xterm): New variable `x-dnd-wheel-function'. + +2022-07-18 Eli Zaretskii + + * src/xdisp.c (set_vertical_scroll_bar): Remove stale comment. + +2022-07-18 Eli Zaretskii + + Fix calculation of the vertical scroll bar's thumb + + * src/xdisp.c (set_vertical_scroll_bar): Compute window's end + position "by hand" if w->window_end_pos cannot be relied upon. + +2022-07-18 Gregory Heytings + + * etc/PROBLEMS: Remove the entry which is no longer relevant. + +2022-07-18 Michael Albinus + + Use ntake also in tramp-adb.el + + * lisp/net/tramp-adb.el (tramp-adb-handle-directory-files-and-attributes): + Use `tramp-compat-ntake'. + +2022-07-18 Alexander Adolf + + Additional query and results attributes in eudcb-macos-contacts.el + + * lisp/net/eudcb-macos-contacts.el: wider set of attributes for + queries, and in query results + * lisp/net/eudc-vars.el (eudc-inline-expansion-format): update + docstring to explain how to use the function eudc-translate-query to + translate to generic attribute names in the user supplied formatting + function + * etc/NEWS: announce wider query/result attribute set + * doc/misc/eudc.texi: more details on eudcb-mab.el's limitations + +2022-07-18 Gregory Heytings + + Improve the heuristic for long lines detection. + + * src/buffer.h (struct buffer_text): New 'unchanged_size' field. + (BUF_UNCHANGED_SIZE): New macro to access the field. + + * src/buffer.c (Fget_buffer_create): Initialize the field. + (Fbuffer_swap_text): Handle it. + + * src/xdisp.c (mark_window_display_accurate_1): Set the field. + (redisplay_window): Use the field for long lines detection. + +2022-07-18 Gregory Heytings + + Shorter and safer fix for the segfault. + + * src/xdisp.c (get_visually_first_element): Shorter and safer fix for + the segfault. Improves the fix introduced in cc7f37b2a4. + +2022-07-18 Michael Albinus + + Adapt Tramp new test macros + + * test/lisp/net/tramp-tests.el (tramp--test-deftest-with-stat) + (tramp--test-deftest-with-perl, tramp--test-deftest-with-ls): + Skip for all methods but those from tramp-sh.el. + +2022-07-18 Michael Albinus + + Use ntake in Tramp + + * lisp/net/tramp-compat.el (tramp-compat-ntake): New defalias. + + * lisp/net/tramp.el (tramp-handle-directory-files): + * lisp/net/tramp-crypt.el (tramp-crypt-handle-directory-files): + * lisp/net/tramp-sh.el (tramp-sh-handle-directory-files-and-attributes): + * lisp/net/tramp-smb.el (tramp-smb-handle-directory-files): Use it. + +2022-07-18 Stefan Kangas + + * lisp/rect.el (rectangle-mark-mode-map): Prefer defvar-keymap. + +2022-07-18 Gregory Heytings + + Fix typo in NEWS title. + +2022-07-18 Mattias Engdegård + + Clarify `take` and `ntake` documentation (bug#56521) + + * doc/lispref/lists.texi (List Elements): Describe `ntake` better. + * src/fns.c (Ftake, Fntake): Rephrase doc strings. + +2022-07-18 Mattias Engdegård + + Speed up `seq-subseq` for lists (bug#56521) + + * lisp/emacs-lisp/seq.el (seq-subseq): + Make faster by using `take` instead of a lisp loop, + and more importantly by not front-loading the error text formatting. + * test/lisp/emacs-lisp/seq-tests.el (seq-tests--list-subseq-ref) + (test-seq-subseq): Test `seq-subseq` for lists more thoroughly. + +2022-07-18 Mattias Engdegård + + Use `take` where clearly safe to do so (bug#56521) + + * lisp/emacs-lisp/seq.el (seq-take): + * lisp/auth-source.el (auth-source-secrets-search) + (auth-source-plstore-search): + * lisp/gnus/message.el (message-insert-formatted-citation-line): + * lisp/net/dbus.el (dbus-unregister-object): + * lisp/replace.el (occur-context-lines): + * test/src/print-tests.el (print-circular): Replace hand-written loop + or `butlast` call with `take` for clarity, performance and validation. + We have the equivalence + (take N LIST) = (butlast LIST (- (length LIST) N)). + +2022-07-18 Gregory Heytings + + Further improvements to long lines handling. + + * src/xdisp.c (get_visually_first_element): Fix segfault. + (get_narrowed_begv): Specific improvement for character-only terminals. + +2022-07-18 Juri Linkov + + * lisp/minibuffer.el (minibuffer-complete-history): Define sorting by metadata + + (minibuffer-complete-history, minibuffer-complete-defaults): + Use completion metadata to disable sorting of the completion table + (bug#56613) + +2022-07-18 Po Lu + + Implement last change on Haiku as well + + * lisp/term/haiku-win.el (haiku-dnd-drag-handler): Stop + redisplaying here. + * src/haikuselect.c (haiku_note_drag_motion): Use + redisplay_preserve_echo_area. + +2022-07-18 Po Lu + + Preserve echo area message when running DND mouse movement function + + * lisp/term/x-win.el (x-dnd-movement): Stop redisplaying here. + * src/xterm.c (x_dnd_begin_drag_and_drop): Redisplay with the + echo area preserved. + +2022-07-17 Richard Hansen + + Derive `Info-mode' from `special-mode' + + * lisp/info.el (Info-mode): Derive `Info-mode' from `special-mode'. + This makes it easier to exclude it from globalized minor modes that + don't apply to special modes (such as `global-whitespace-mode' and + `global-display-fill-column-indicator-mode'). + +2022-07-17 Richard Hansen + + info-edit: Delay `ibuffer' var change until after `ibuffer' loads + + * lisp/obsolete/info-edit.el: Delay the addition of `Info-edit-mode' + to the `ibuffer-help-buffer-modes' list until after `ibuffer' is + loaded. This fixes a "(void-variable ibuffer-help-buffer-modes)" + error when `info-edit' is loaded before `ibuffer'. + +2022-07-17 Po Lu + + Handle virtual modifiers in the DND scrolling code + + * lisp/x-dnd.el (x-dnd-modifier-mask): Handle virtual modifiers. + * src/xfns.c (Fx_get_modifier_masks): New function. + (syms_of_xfns): Define new subr. + * src/xterm.c (x_get_keyboard_modifiers): New function. + * src/xterm.h: Update prototypes. + +2022-07-17 Stefan Monnier + + * lisp/minibuffer.el (minibuffer-complete-history): Ensure a list of strings + +2022-07-17 Juri Linkov + + * lisp/subr.el (read-char-from-minibuffer, y-or-n-p): Simplify to use HIST=t. + +2022-07-17 Juri Linkov + + * lisp/minibuffer.el (minibuffer-complete-history): Check for history=t. + + Signal a user error when the history is not a list (bug#56613). + +2022-07-17 Mattias Engdegård + + Add `take` and `ntake` (bug#56521) + + These are useful list primitives, complementary to `nthcdr`. + + * src/fns.c (Ftake, Fntake): New. + (syms_of_fns): Defsubr them. + * doc/lispref/lists.texi (List Elements): + * lisp/emacs-lisp/shortdoc.el (list): Document. + * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns, pure-fns): + Declare `take` pure and side-effect-free. + * test/src/fns-tests.el (fns-tests--take-ref, fns--take-ntake): + New test. + * etc/NEWS: Announce. + +2022-07-17 Eli Zaretskii + + Fix leaking of file descriptors due to pipe processes on MS-Windows + + * src/w32proc.c (reader_thread): Wait for 'sys_close' to finish + processing the pipe read descriptor, before trying to close it. + + * src/w32.c (sys_close): Attempt to detect when the reader thread + already exited, so that it would be possible to close descriptors + open by pipe processes for reading from the pipe. (Bug#56606) + +2022-07-17 Po Lu + + Improve handling of tilt scroll and flip options during DND + + * lisp/x-dnd.el (x-dnd-mwheel-scroll): New function. + (x-dnd-handle-xdnd): Use that instead of abusing mwheel.el. + +2022-07-17 Stefan Kangas + + Prefer defvar-keymap in mpc.el + + * lisp/mpc.el (mpc-mode-map, mpc-tagbrowser-dir-mode-map) + (mpc-volume-map, mpc-songs-mode-map): Prefer defvar-keymap. + +2022-07-17 Lars Ingebrigtsen + + Make `C' in over tramp work in archive mode + + * lisp/arc-mode.el (archive-copy-file): Make `C' in over tramp + work (bug#56574). + +2022-07-17 Eli Zaretskii + + Fix tab-bar resizing under 'auto-resize-tab-bars' = 'grow-only' + + * src/xdisp.c (redisplay_tab_bar): Compute the desired height of + the tab-bar before iterating over the tab-bar string, to detect + the required resizing earlier. Default 'change_p' to 'false'. + + * lisp/tab-bar.el (tab-bar--update-tab-bar-lines): Support + 'auto-resize-tab-bars' set to 'grow-only'. + +2022-07-17 Visuwesh + + Ensure that directories exist when copying files from archive + + * lisp/arc-mode.el (archive-copy-file): If the directory the file is + being extracted to does not exist, then create it (bug#56603). + +2022-07-17 Lars Ingebrigtsen + + Improve error messaging when parent archive buffers are missing + + * lisp/arc-mode.el (archive-write-file-member): + * lisp/tar-mode.el (tar-subfile-save-buffer): Give a better error + message when the parent buffer is dead (bug#56605). + +2022-07-17 Stefan Kangas + + Merge from origin/emacs-28 + + f5218385c0 Fix obsoletion of nntp-authinfo-file + 10b6919870 ; Fix typos + +2022-07-16 Po Lu + + Handle scrolling during XDND drag-and-drop + + * lisp/x-dnd.el (x-dnd-get-object-rectangle): Handle cases where + `posn-x-y' is nil. + (x-dnd-modifier-mask, x-dnd-hscroll-flags, x-dnd-note-click): + New functions. + (x-dnd-click-count): New defvar. + (x-dnd-handle-xdnd): Handle button press events. + + * src/xterm.c (x_dnd_send_position): Fix handling of mouse + rects. + +2022-07-16 Po Lu + + Fix drag-and-drop button button flags + + * src/xterm.c (x_dnd_send_position): Always send buttons + regardless of version. Fix bit indices. + (handle_one_xevent): Likewise. + +2022-07-16 Gregory Heytings + + Fix typo in e7b5912b23. + +2022-07-16 Gregory Heytings + + Improvements to long lines handling. + + * src/buffer.h (struct buffer): New field 'long_line_optimizations_p'. + + * src/buffer.c (syms_of_buffer): New variable 'long-line-threshold'. + (reset_buffer): Initialize the 'long_line_optimizations_p' field. + (Fbuffer_swap_text): Handle it. + + * src/xdisp.c (redisplay_window): Set 'long_line_optimizations_p' when + a buffer contains long lines. + (init_iterator): Use 'long_line_optimizations_p'. + (get_narrowed_begv): Update. + (SET_WITH_NARROWED_BEGV): New macro. + (unwind_narrowed_begv): New internal function used by the new macro. + (back_to_previous_line_start, get_visually_first_element, + move_it_vertically_backward): Use the new macro. + + * src/search.c (find_newline1): Make it externally visible. + + * src/lisp.h: Make 'find_newline1' externally visible. + + * src/dispextern.h (struct it): Update comment. Remove the + 'WITH_NARROWED_BEGV' macro. + + * etc/NEWS: Mention the 'long-line-threshold' variable. + +2022-07-16 kobarity + + Fix python navigation problem with an empty line in nested defun + + * lisp/progmodes/python.el (python-nav--beginning-of-defun): Fix + bug when point is on an empty line (bug#56600). + +2022-07-16 Lars Ingebrigtsen + + Fix xref links in `C-h o' + + * lisp/help-fns.el (describe-symbol): Make xref links happen in + all sections (bug#49587). + + * lisp/help-fns.el (describe-symbol): Add back/forward links. + + * lisp/help-mode.el (help-make-xrefs): Factor out links from + here... + (help-xref--navigation-buttons): To here. + +2022-07-16 Stefan Kangas + + New test for make_symbol_constant + + * test/src/data-tests.el (data-tests-make_symbol_constant): New + test. + +2022-07-16 Eli Zaretskii + + * src/composite.c (find_automatic_composition): Fix off-by-one error. + +2022-07-16 Po Lu + + Improve documentation of `posn-timestamp' + + * doc/lispref/commands.texi (Accessing Mouse): Improve + documentation of `posn-timestamp' by actually describing the + timestamp it returns. + +2022-07-16 Mattias Engdegård + + Update `eshell-variable-aliases-list` defcustom type + + * lisp/eshell/esh-var.el (eshell-variable-aliases-list): + Add type for SIMPLE-FUNCTION value. + +2022-07-16 Michael Albinus + + Comment docstrings in tramp-test macros + + * test/lisp/net/tramp-tests.el (tramp--test-deftest-with-stat) + (tramp--test-deftest-with-perl, tramp--test-deftest-with-ls) + (tramp--test-deftest-direct-async-process): Comment docstring, + it doesn't work this way. Use `tramp-test-vec' if appropriate. + +2022-07-16 Lars Ingebrigtsen + + Weed out some false positives in help-fns--mention-first-release + + * lisp/help-fns.el (help-fns--mention-first-release): Weed out + things that give too many false positives (bug#49062). + +2022-07-16 Manuel Giraud + + Colored menu highlight in Lucid backend + + * lwlib/xlwmenuP.h: + * lwlib/xlwmenu.h: + * lwlib/xlwmenu.c: Introduce resources to handle colored highlighting + of menu entries. + * doc/emacs/xresources.texi (Lucid Resources): Documentation. + +2022-07-16 Po Lu + + Decrease network traffic with some XDND programs + + * lisp/x-dnd.el (x-dnd-get-drop-width-height): + (x-dnd-get-drop-x-y): Remove functions. + + (x-dnd-get-window-rectangle, x-dnd-intersect-rectangles) + (x-dnd-get-object-rectangle, x-dnd-get-drop-rectangle): New + functions. + (x-dnd-handle-xdnd): Generate mouse rectangles consisting of the + object (glyph) under point. + +2022-07-16 Lars Ingebrigtsen + + Allow ;;;###autoloading transient-define-prefix + + * lisp/emacs-lisp/loaddefs-gen.el + (loaddefs-generate--make-autoload): Allow ;;;###autoloading + transient-define-prefix (bug#48694). + + * lisp/transient.el (transient-define-prefix): Autoload. + +2022-07-16 Mattias Engdegård + + Optimize `append` calls + + Add the transforms + + (append) -> nil + (append X) -> X + (append '(X) Y) -> (cons 'X Y) + (append (list X) Y) -> (cons X Y) + (append (list X...) nil) -> (list X...) + + and the argument transforms: + + (list X...) (list Y...) -> (list X... Y...) + nil -> ;nothing + CONST1 CONST2 -> CONST1++CONST2 + (list CONSTANTS...) -> '(CONSTANTS...) + + (the last three for non-tail arguments only) + + * lisp/emacs-lisp/byte-opt.el: New. + +2022-07-16 Mattias Engdegård + + Improved cons optimization + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-cons): + Add the transform + + (cons X (list Y...)) -> (list X Y...) + +2022-07-16 Mattias Engdegård + + Transform (list) -> nil in source optimizer + + This optimization is already done in the code generator but performing + it at this earlier stage is a useful normalizing step that uncovers + more opportunities. + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-list): New. + +2022-07-16 Stefan Kangas + + Delete obsolete variable gnus-secondary-servers + + * lisp/gnus/gnus.el (gnus-secondary-servers): Delete variable + obsolete since 24.1. + * lisp/gnus/gnus-group.el (gnus-group-browse-foreign-server): + * lisp/gnus/gnus-int.el (gnus-start-news-server): Don't use above + deleted variable. + +2022-07-16 Stefan Kangas + + Fix obsoletion of nntp-authinfo-file + + * lisp/gnus/nntp.el (nntp-authinfo-file): Fix obsoletion. + +2022-07-16 Stefan Kangas + + Merge from origin/emacs-28 + + db259d8fd3 Build Seccomp filter only if we have a 64-bit userspace (B... + +2022-07-15 Po Lu + + Handle XDND mouse rects synchronously + + * src/xterm.c (x_dnd_send_position): Record event X and Y for + consumption by the XdndStatus handler. Ignore mouse rects if + waiting for status. + (x_dnd_send_leave): Clear pending DND event. + (handle_one_xevent): When handling XdndStatus, check if the + pending event is contained in the new mouse rect. + +2022-07-15 Stefan Monnier + + * lisp/url/url-vars.el (url-mime-separator-chars): Fix last cosmetic change + +2022-07-15 Michael Albinus + + Extend tramp-tests + + * test/lisp/net/tramp-tests.el (tramp--test-deftest-with-stat) + (tramp--test-deftest-with-perl, tramp--test-deftest-with-ls): + New defmacros. + (tramp-test18-file-attributes-with-stat) + (tramp-test18-file-attributes-with-perl) + (tramp-test18-file-attributes-with-ls) + (tramp-test19-directory-files-and-attributes-with-stat) + (tramp-test19-directory-files-and-attributes-with-perl) + (tramp-test19-directory-files-and-attributes-with-ls): New tests. + (tramp-test21-file-links): Delete also `tmp-name2'. + (tramp--test-deftest-direct-async-process): Rename from + `tramp--test--deftest-direct-async-process'. Remove DOCSTRING. + Adapt callees. + (tramp--test-special-characters): Remove. Move body to ... + (tramp-test41-special-characters): ... here. + (tramp--test-utf8): Remove. Move body to ... + (tramp-test42-utf8): ... here. + (tramp-test41-special-characters-with-stat) + (tramp-test41-special-characters-with-perl) + (tramp-test41-special-characters-with-ls) + (tramp-test42-utf8-with-stat) + (tramp-test42-utf8-with-perl) + (tramp-test42-utf8-with-ls): Rewrite, using the new macros. + +2022-07-15 Stefan Kangas + + * lisp/tar-mode.el (tar-mode-map): Prefer defvar-keymap. + +2022-07-15 Philipp Stephani + + Build Seccomp filter only if we have a 64-bit userspace (Bug#56549) + + * configure.ac (SIZEOF_LONG): New variable. + * lib-src/Makefile.in (SIZEOF_LONG): New variable; added conditional. + +2022-07-15 Andreas Schwab + + Fix ASAN error with fringe bitmap on NS + + * src/nsterm.m (ns_define_fringe_bitmap): Correctly access fringe + bitmap data. (Bug#56553) + +2022-07-15 Po Lu + + Fix double unfocus during NS cursor display + + * src/nsterm.m (ns_draw_window_cursor): Unfocus around calls to + draw_phys_cursor_glyph, then focus again later. (bug#56559) + +2022-07-15 Po Lu + + Only preserve PRIMARY and CLIPBOARD selection ownership by default + + * lisp/cus-start.el (standard): Update defcustom type. + * src/xselect.c (x_should_preserve_selection): New function. + (x_clear_frame_selections): Use it to determine whether or not + to preserve a selection. + * src/xterm.c (x_preserve_selections): Fix tail initialization. + (syms_of_xterm): Update doc string of + `x-auto-preserve-selections'. + +2022-07-15 João Távora + + Be more conservative with the lsp identifier guess + + If the user is not requesting a prompt, opt for the safer approach + which is to get the location from textDocument/definition, not from + workspace/symbol. Because of things like function overloading, the + latter is not always successful in finding exactly the definition of + the thing one is invoking M-. on. + + This requires using an xref-internal symbol, which is kind of + unfortunate. + + * eglot.el (xref-backend-identifier-at-point): Rework. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/131 + GitHub-reference: per https://github.com/joaotavora/eglot/issues/314 + +2022-07-15 João Távora + + Guess the "lsp identifier at point" + + * eglot.el (eglot--workspace-symbols): New helper. + (xref-backend-identifier-completion-table): Rework. + (xref-backend-identifier-at-point): Rework. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/131 + GitHub-reference: per https://github.com/joaotavora/eglot/issues/314 + +2022-07-15 Eli Zaretskii + + Avoid infloop in redisplay when displaying a tooltip + + * src/xdisp.c (try_window): Ensure we fail if 'display_line' + indicates that the dimensions of the glyph matrix are + insufficient. (Bug#56561) + +2022-07-15 Lars Ingebrigtsen + + Tweak how dired-copy-filename-as-kill handles file names with spaces + + * lisp/dired.el (dired-copy-filename-as-kill): Quote files + containing spaces (bug#48657). + +2022-07-15 Lars Ingebrigtsen + + Adjust whitespace tests + +2022-07-15 Lars Ingebrigtsen + + Fix whitespace-mode display table restoration logic + + * lisp/whitespace.el (whitespace-display-char-on): Fix the saving + logic -- `whitespace-mode' is on by this point (bug#48583). + +2022-07-15 Visuwesh + + Fix mailcap-user-mime-data doc string + + * lisp/net/mailcap.el (mailcap-user-mime-data): Make the doc + string reflect the actual structure (bug#56568). + +2022-07-15 João Távora + + Tweak some details, fix some bugs + + eglot--recover-workspace-symbol-meta had a bug that still made it + choke on improper lists. + + Also, when simply M-. to the thing at point, let's not lose time on + iterating a potentially out-of-date eglot--workspace-symbols-cache. + So clear it early in the pre-command-hook. + + * eglot.el (eglot--workspace-symbols-cache): Move up. + (eglot--pre-command-hook): Clear eglot--workspace-symbols-cache here. + (eglot--recover-workspace-symbol-meta): Check for consp. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/131 + +2022-07-15 Po Lu + + Fix generated drag-and-drop mouse rectangles + + * lisp/x-dnd.el (x-dnd-get-drop-width-height): Handle window + width and height correctly. Remove unused parameter. + (x-dnd-after-move-frame): New function. + (move-frame-functions): Add new hook. + (x-dnd-compute-root-window-position): New function. + (x-dnd-get-drop-x-y): Use that instead of `left' and `top' + parameters, which include the title bar. + (x-dnd-handle-xdnd): Update accordingly. + * src/xfns.c (Fx_translate_coordinates): New function. + (syms_of_xfns): New defsym. + +2022-07-15 Gerd Möllmann + + Extend support for debugging Emacs with LLDB + + * etc/emacs_lldb.py: Handle case of Lisp_Object being a + struct (--enable-lisp-type-checking). Enable Emacs type category by + default. Expand children in type summary for Lisp_Object. + +2022-07-15 Stefan Kangas + + Merge from origin/emacs-28 + + 6a05715552 Update the Samaritan's contact details in M-x doctor + d19834dfda ; Fix typos + +2022-07-14 Po Lu + + Fix sending button presses if the drop target specified a mouse rectangle + + * src/xterm.c (x_dnd_send_position): Handle button presses + specially, ignoring mouse rectangles. + +2022-07-14 Sean Whitton + + Use notmuch thread:{} operator instead of performing two searches + + This also avoids some command line length limit problems (bug#56442). + + * gnus-search.el (gnus-search-run-search): Delete notmuch method. + (gnus-search-indexed-search-command): In the notmuch method, when + searching for threads, wrap whole query in thread:{} operator, and + always use --output=files, never --output=threads (bug#56442). + +2022-07-14 Lars Ingebrigtsen + + Fix --without-x build after previous image cache changes + + * src/alloc.c (garbage_collect): Fix --without-all --without-x build. + +2022-07-14 Lars Ingebrigtsen + + Restore how (read-from-minibuffer ... read-expression-map) worked + + * lisp/simple.el (read-expression-map): Don't override RET and C-j + here, since that leads to breakages of other usages of this map + (bug#56548). + (read--expression-map): New map. + (read--expression): Use it. + +2022-07-14 Visuwesh + + Make gnus display webp images inline + + * lisp/gnus/mm-decode.el (mm-inline-media-tests): Add webp handler. + * lisp/net/mailcap.el (mailcap-mime-extensions): Add webp mimetype + (bug#56552). + +2022-07-14 Lars Ingebrigtsen + + Make image-map commands work with inline image attachments in mm + + * lisp/gnus/mm-view.el (mm-inline-image): Use insert-image so that + point movement is more pleasant and so that image-map commands + work (bug#56554). + +2022-07-14 Visuwesh + + * lisp/image.el (put-image): Fix typo. + + * lisp/image.el (put-image): Actually use the image-map keymap + (bug#56554). + +2022-07-14 Visuwesh + + Use compose-mail in submit-emacs-patch + + * lisp/mail/emacsbug.el (submit-emacs-patch): Prefer + compose-mail-other-window over message-mail-other-window (bug#56555). + +2022-07-14 Stefan Kangas + + Make ps-print-ensure-fontified obsolete + + * lisp/ps-print.el (ps-print-ensure-fontified): Redefine as + obsolete function alias for font-lock-ensure. Update callers. + +2022-07-14 Lars Ingebrigtsen + + Prune animation cache when images are no longer reachable + + * lisp/image.el (image-animate-timeout): Eject cached animated + images that are no longer reachable (bug#56546). + + * src/image.c (Fclear_image_cache): Allow specifying a cached + animated image to eject. + (gif_load, webp_load): Adjust what to use as the caching key -- + the identity of the list itself is apparently changed by some + callers. + +2022-07-14 Lars Ingebrigtsen + + Make image-cache-size also include the animation cache + + * src/image.c (struct anim_cache, anim_create_cache): Store approx + cache size. + (gif_load, webp_load): Ditto. + (Fimage_cache_size): Also report animation cache size (bug#56546). + +2022-07-14 Lars Ingebrigtsen + + Prune the animation cache from gc + + * src/alloc.c (garbage_collect): Prune animation cache + (bug#56546). + +2022-07-14 Eli Zaretskii + + * src/gtkutil.c (xg_free_frame_widgets): Avoid compiler warning. + +2022-07-14 Stefan Kangas + + Update the Samaritan's contact details in M-x doctor + + * lisp/play/doctor.el (doctor-death): Update the Samaritans's contact + details; anon.twwells.com is no longer valid. Add link to Wikipedia. + +2022-07-14 João Távora + + Cosmetic decisions guaranteed to tick off someone somewhere (tm) + + The symbols returned by the LSP server must be converted to unique + strings if Emacs is to present them in a list. On the other hand, the + search operates on the pattern and is completely controlled by the + backend. There is not much Eglot, the LSP client, can do about this. + + Decided to present the unique string to the user, even though it could + be hidden. All the manner of :annotation-function, + :affixation-function, :group-funcion etc didn't seem to add much + value. + + Grouping was especially useless, since it makes sense to respect the + LSP server's account of sorting score, so that better results bubble + up to the top. + + * eglot.el (xref-backend-identifier-completion-table): Uniquify + symbols with containerName and kind. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/131 + +2022-07-14 João Távora + + Experiment with grouping in xref-backend-identifier-completion-table + + Doesn't look very good. + + * eglot.el (xref-backend-identifier-completion-table): Add stuff. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/131 + +2022-07-14 João Távora + + Make c-u m-. work half decently + + * NEWS.md: Mention change. + + * eglot.el (eglot--lsp-interface-alist): Add WorkspaceSymbol + (eglot--workspace-symbols-cache): New variable. + (eglot--recover-workspace-meta): New helper. + (xref-backend-identifier-completion-table): Complicate. + (xref-backend-definitions): Complicate. + (completion-category-overrides): Register a category and a style here. + (completion-styles-alist): Add eglot--lsp-backend-style style + (eglot--lsp-backend-style-call): New function. + (eglot--lsp-backend-style-all-completions): New function. + (eglot--lsp-backend-style-try-completion): New function. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/131 + +2022-07-14 Stefan Kangas + + Silence unused variable warning in a build --without-all + + * src/xfns.c (Fx_double_buffered_p): Silence unused variable warning + in a build --without-all. + +2022-07-14 Stefan Kangas + + Compress hashcash headers by default + + * lisp/mail/hashcash.el (hashcash-extra-generate-parameters): + Use compression by default. + +2022-07-14 Stefan Kangas + + Pacify -Wunused-macros in --without-all builds + + * src/image.c (IMAGE_TYPE_INIT): Make conditional on image support. + +2022-07-14 Stefan Kangas + + Update the 'etags' test suite + + * ETAGS_good_1: + * ETAGS_good_2: + * ETAGS_good_3: + * ETAGS_good_4: + * ETAGS_good_5: + * ETAGS_good_6: Adapt to recent changes in test sources. + +2022-07-14 Po Lu + + Try to restore the initial "daemon" frame when a display goes down + + * src/xterm.c (x_try_restore_frame): New function. + (x_connection_closed): Call it if selected_frame is nil. + +2022-07-14 Stefan Kangas + + Merge from origin/emacs-28 + + 76878ce6a0 * etc/PROBLEMS: Describe problems with remote files. (Bug... + +2022-07-14 Stefan Kangas + + Merge from origin/emacs-28 + + 9db6817d63 Remove uneffective test + 7af88de410 Mark async worker tmp file as utf-8-emacs-unix (bug#48029) + + # Conflicts: + # test/src/comp-resources/comp-test-45603.el + # test/src/comp-tests.el + +2022-07-14 Lars Ingebrigtsen + + Make clear-image-cache clear the animation cache + + * src/dispextern.h: Declare image_prune_animation_caches for use + in gc. + + * src/image.c (Fclear_image_cache): Clear animation cache. + (anim_prune_animation_cache, anim_get_animation_cache): Allow + clearing in addition to pruning. + (imagemagick_prune_animation_cache) + (imagemagick_get_animation_cache): Ditto. + (image_prune_animation_caches): New function (bug#56546). + +2022-07-14 Stefan Kangas + + Merge from origin/emacs-28 + + 5e47ec9511 ; * lisp/url/url-http.el (url-http-parse-headers): Fix typo. + ba0871bef1 ; Fix typos: prefer American spelling + e3e7f31faa Adapt Tramp doc + + # Conflicts: + # etc/NEWS + # etc/themes/modus-themes.el + # lisp/emacs-lisp/byte-opt.el + # test/lisp/so-long-tests/spelling-tests.el + +2022-07-14 Gerd Möllmann + + Improve support for debugging Emacs with LLDB + + * etc/emacs_lldb.py: Refactor and support more Lisp types. + +2022-07-14 Eli Zaretskii + + * etc/PROBLEMS: Describe problems with remote files. (Bug#56499) + +2022-07-14 Visuwesh + + Add new customizable phonetic Tamil input method + + * lisp/language/indian.el ("Tamil"): Change the default input method + of the Tamil language environment to the new input method. + + * lisp/leim/quail/indian.el + (quail-tamil-itrans-compute-syllable-table): New function extracted + from... + (quail-tamil-itrans-syllable-table): ... here. Use the above + function. + (quail-tamil-itrans--consonant-order): Auxiliary variable for the + above function. + (quail-tamil-itrans-compute-signs-table): Add new VARIOUS argument. + (quail-tamil-itrans-various-signs-and-digits-table) + (quail-tamil-itrans-various-signs-table): Adjust call to the above + function. + + ("tamil-phonetic"): Add new input method. + (tamil-input): New group for the input method. + (tamil-translation-rules): New defcustom for the input method to + change the translation rules. + + (tamil--syllable-table, tamil--signs-table, tamil--hashtables) + (tamil--vowel-signs): Internal variables used by the input method. + (tamil--setter, tamil--make-tables) + (tamil--update-quail-rules): Internal functions for the input method. + (bug#56323) + + * etc/NEWS: Announce the new input method. + +2022-07-13 Po Lu + + Fix killing Emacs upon display disconnect + + * src/xterm.c (x_connection_closed): On Xt builds terminals can + be left alive without any frames on them, so take that into + account. (bug#56528) + +2022-07-13 Stefan Kangas + + Prefer defvar-keymap in tab-bar.el + + * lisp/tab-bar.el: Prefer keymap-set. + (tab-bar-map, tab-switcher-mode-map) + (tab-bar-switch-repeat-map, tab-bar-move-repeat-map): Prefer + defvar-keymap. + +2022-07-13 Andrea Corallo + + Remove uneffective test + + * test/src/comp-tests.el (45603-1): Remove test. + * test/src/comp-resources/comp-test-45603.el: Delete. + +2022-07-13 Andrea Corallo + + Mark async worker tmp file as utf-8-emacs-unix (bug#48029) + + * lisp/emacs-lisp/comp.el (comp-final): Mark async worker tmp file + as utf-8. + * test/src/comp-tests.el (48029-1): New test. + * test/src/comp-resources/comp-test-funcs.el + (comp-test-48029-nonascii-žžž-f): New function. + +2022-07-13 Stefan Kangas + + * lisp/vc/vc-bzr.el (vc-bzr-program): Support breezy. + +2022-07-13 Lars Ingebrigtsen + + Make smtpmail try all auth methods + + * lisp/mail/smtpmail.el (smtpmail-try-auth-methods): Try all valid + methods, even if one fails (bug#48562). + +2022-07-13 Po Lu + + Fix recursive calls of x_connection_closed leading to dead terminal + + * src/xterm.c (x_connection_closed): Return if called again for + the current display. + (x_io_error_quitter): Fix attributes. (bug#56528) + +2022-07-13 Michael Albinus + + Adapt Tramp version integrated in Emacs 28.2 + + * lisp/net/trampver.el (customize-package-emacs-version-alist): + Adapt Tramp version integrated in Emacs 28.2. + +2022-07-13 Lars Ingebrigtsen + + Revert "Make mouse-2 respect delete-selection mode" + + This reverts commit 215a700751f88bba18989e340181361a484d5b3a. + + This leads to unintended consequences for cua-mode, among others (bug#56530). + +2022-07-13 Lars Ingebrigtsen + + Make bibtex-mode not signal errors when used programmatically + + * lisp/textmodes/bibtex.el (bibtex-mode): Ensure that the font + lock machinery is set up (bug#48447). + +2022-07-13 Michael Albinus + + Adapt Tramp doc + + * doc/misc/tramp.texi (Configuration): Mention enable-remote-dir-locals. + (Traces and Profiles): Fix tramp-verbose description. + + * lisp/net/tramp.el (tramp-verbose): Fix docstring. + +2022-07-13 Stefan Kangas + + Make the rsh command obsolete + + * lisp/net/telnet.el (rsh): Make obsolete. + (telnet-connect-command, telnet-mode): Adjust documentation for + above change. + +2022-07-13 Po Lu + + Implement TIMESTAMP target for Haiku selections + + * lisp/term/haiku-win.el (haiku-selection-targets): Fix return + values. + (gui-backend-get-selection): Handle TIMESTAMP specially. + * src/haiku_select.cc (be_get_clipboard_count): New function. + * src/haikuselect.c (Fhaiku_selection_timestamp): New function. + (syms_of_haikuselect): Add new defsubr. + * src/haikuselect.h: Update prototypes. + +2022-07-13 Stefan Kangas + + Merge from origin/emacs-28 + + a3dab1e621 Don't mention cl-cXXXr aliases in cl-lib manual + +2022-07-13 Po Lu + + New user option 'webjump-use-internal-browser' + + * lisp/net/webjump.el (webjump-use-internal-browser): New defcustom. + (webjump): Respect it. Reported by Youmu . + +2022-07-12 Po Lu + + Fix closing displays when preserving selections is enabled + + * src/frame.c (delete_frame): Bind `x-auto-preserve-selections' + to nil if deleting display. + * src/xselect.c (x_clear_frame_selections): Pass original frame + to that function. + * src/xterm.c (x_preserve_selections): Fix determining the new + owner. + (syms_of_xterm): New defsym `x-auto-preserve-selections'. + * src/xterm.h: Update prototypes. + +2022-07-12 Lars Ingebrigtsen + + Tweak image-converter-add-handler interface + + * doc/emacs/files.texi (Image Mode): Adjust documentation. + * lisp/image/image-converter.el (image-convert): Let the converter + know whether it's a file or not. + +2022-07-12 Lars Ingebrigtsen + + Autoload image-converter-add-handler + + * lisp/image/image-converter.el (image-converter-add-handler): + Autoload. + +2022-07-12 Lars Ingebrigtsen + + Add support for viewing "images" such as Krita (.kra) files + + * doc/emacs/files.texi (Image Mode): Document it. + + * lisp/image/image-converter.el (image-converter-add-handler): New + function (bug#48415). + (image-convert): Use it. + +2022-07-12 Stefan Kangas + + Drop obsolete rsh/rlogin from two user options + + * lisp/net/ange-ftp.el (ange-ftp-gateway-program): + * lisp/net/imap.el (imap-shell-program): Drop obsolete "rsh"/"rlogin". + +2022-07-12 Stefan Kangas + + Make pcomplete/{rsh,rlogin} into alias for pcomplete/ssh + + * lisp/pcmpl-unix.el (pcomplete/rlogin, pcomplete/rsh): Make into + aliases for 'pcomplete/ssh', as "rsh" and "rlogin" is more often than + not aliases for "ssh" on modern machines. + +2022-07-12 Michael Albinus + + Remove rsh from Tramp manual, Overview section + + * doc/misc/tramp.texi (Overview, Frequently Asked Questions): + Don't mention obsolete rsh and rcp. + +2022-07-12 Jim Porter + + Ensure Eshell variable aliases properly handle indexing + + * lisp/eshell/em-dirs.el (eshell-dirs-initialize): Properly handle + indexing for variable aliases. + + * lisp/eshell/esh-var.el (eshell-variable-aliases-list): Properly + handle indexing for variable aliases, and add SIMPLE-FUNCTION + entry for aliases. + (eshell-get-variable): Update how variable alias functions are called. + + * test/lisp/eshell/em-alias-tests.el + (em-alias-test/alias-arg-vars-indices) + (em-alias-test/alias-arg-vars-split-indices) + (em-alias-test/alias-all-args-var-split-indices): + * test/lisp/eshell/em-dirs-tests.el (em-dirs-test/pwd-var-indices) + (em-dirs-test/oldpwd-var-indices) + (em-dirs-test/directory-ring-var-indices): + * test/lisp/eshell/esh-var-tests.el + (esh-var-test/inside-emacs-var-split-indices) + (esh-var-test/last-result-var-split-indices): New tests. + (esh-var-test/last-arg-var-split-indices): Expand test to check + conversion behavior inside double quotes (bug#56509). + +2022-07-12 Jim Porter + + Allow Eshell variable aliases to point to other aliases + + In particular, this resolves an issue where '$+' referenced the real + environment variable '$PWD' instead of the Eshell variable alias of + the same name. This meant that changing directories in Eshell + wouldn't update the value of '$+'. + + * lisp/eshell/esh-var.el (eshell-get-variable): Allow Eshell variable + aliaes to point to other aliases. + + * test/lisp/eshell/em-dirs-tests.el (em-dirs-test/pwd-var) + (em-dirs-test/short-pwd-var): Adapt tests to check this case + (bug#56509). + +2022-07-12 Jim Porter + + Improve tests/organization for built-in variables + + * lisp/eshell/em-dirs.el (eshell-inside-emacs) + (eshell-dirs-initialize): Move 'INSIDE_EMACS' from here... + + * lisp/eshell/esh-var.el (eshell-inside-emacs) + (eshell-variable-aliases-alist): ... to here, and improve doc string. + + * test/lisp/eshell/eshell-tests.el (eshell-test/inside-emacs-var): + Move from here... + + * test/lisp/eshell/esh-var-tests.el (esh-var-test/inside-emacs-var): + ... to here. + (esh-var-test/last-arg-var-indices) + (esh-var-test/last-arg-var-split-indices): New tests. + + * test/lisp/eshell/em-alias-tests.el: + * test/lisp/eshell/em-dirs-tests.el: + * test/lisp/eshell-em-script-tests.el: New files. + + * doc/misc/eshell.texi (Built-ins): Fix 'cd' documentation; it works + with the directory ring, not the directory stack. Move built-in + variables documentation from here... + (Variables): ... to here, and add documentation for missing built-in + variables. + +2022-07-12 Lars Ingebrigtsen + + Fix buffer-stale-function fix + + * src/buffer.c (Fmake_indirect_buffer): Kill the local + buffer-stale-function variable instead of setting it + buffer-locally to the default value. This should have the same + effect, but is less confusing. + +2022-07-12 Po Lu + + Reduce syncing when fetching selection names during frame deletion + + * src/xterm.c (x_preserve_selections): Use XCB to asynchronously + fetch the selection owner. + +2022-07-12 Stefan Kangas + + Don't mention cl-cXXXr aliases in cl-lib manual + + * doc/misc/cl.texi (Lists, List Functions, Efficiency Concerns): Don't + mention 'cl-cXXXr' compatibility aliases for built-in 'cXXXr' + functions. They shouldn't be used in new code. + +2022-07-12 Stefan Kangas + + Make some rst.el compat aliases obsolete + + * lisp/textmodes/rst.el (rst-adjust-section-title) + (rst-display-adornments-hierarchy, rst-straighten-adornments) + (rst-toc-insert-update, rst-goto-section) + (rst-toc-mode-goto-section, rst-toc-mode-mouse-goto) + (rst-toc-mode-mouse-goto-kill, rst-toc-quit-window): Make + compatibility aliases obsolete. + +2022-07-12 Stefan Kangas + + Make remote-shell-program default to ssh only + + * lisp/files.el (remote-shell-program): Default to "ssh" only. The + other commands in this list have severe security issues, and it is + easy enough for users to customize them manually if they want to. + See also the discussion in: https://debbugs.gnu.org/56461 + +2022-07-12 Stefan Kangas + + Recognize gemini in thing-at-point + + * lisp/thingatpt.el (thing-at-point-uri-schemes): Recognize gemini. + +2022-07-12 Mattias Engdegård + + Better gomoku X color with bright background + + * lisp/play/gomoku.el (gomoku-X): Use blue rather than green for + crosses on bright background for better legibility. + (Red for naughts could be adjusted but seems just about bearable.) + +2022-07-12 Alan Mackenzie + + Expunge unused recompute-lucid-menubar, lucid-menu-bar-dirty-flag + + This fixes bug #56502. That function and these variables were manipulated by + the former file emacs-lisp/lmenu.el that was finally expunged from directory + obsolete/ by Stefan Kangas on 2020-05-15. There remain references to them in + the *.c, and *.m files. + + * src/keyboard.c (syms_of_keyboard): Remove declarations of the symbol and + variable. + + * src/haikumenu.c (set_frame_menu_bar) + * src/keyboard.c (command_loop_1) + * src/nsmenu.m (ns_update_menubar) + * src/pgtkmenu.c (set_frame_menubar) + * src/xdisp.c (update_menu_bar) + * src/xmenu.c (set_frame_menubar): Remove calls to Qrecompute_lucid_menubar + conditional on Vlucid_menu_bar_dirty_flag. + +2022-07-12 Po Lu + + Fix preserving selections if `x-lost-selection-functions' signals + + * src/xterm.c (x_preserve_selections): Get selection owner and + run lost selection hook separately. + +2022-07-12 Stefan Kangas + + Merge from origin/emacs-28 + + 9183d1672c ; * etc/PROBLEMS: Give a URL for bug#50666. + 1f508a8b6f etc/PROBLEMS: Describe issues with native compilation on C... + 84a5d47125 ; Fix last change + 0461021893 ; * lisp/emacs-lisp/comp.el (native-comp-speed): Explain t... + 876317271b * lisp/find-dired.el (find-dired): Doc fix; add crossrefer... + +2022-07-11 Po Lu + + Try to save selections from being disowned during frame deletion + + * lisp/cus-start.el (standard): Add + `x-auto-preserve-selections'. + * src/xselect.c (x_clear_frame_selections): Collect deleted + selections into a variable and preserve them. + * src/xterm.c (x_preserve_selections): New function. + (syms_of_xterm): New variable `x-auto-preserve-selections'. + * src/xterm.h: Update prototypes. + +2022-07-11 Stefan Kangas + + * lisp/mail/mail-utils.el (mail-string-delete): Make obsolete. + +2022-07-11 Ken Brown + + etc/PROBLEMS: Describe issues with native compilation on Cygwin + +2022-07-11 Stefan Kangas + + Prefer defvar-keymap in thumbs.el + + * lisp/thumbs.el (thumbs-mode-map, thumbs-view-image-mode-map): + Prefer defvar-keymap. + +2022-07-11 Mattias Engdegård + + Remove obsolete uses of obsolete functions + + * src/minibuf.c (minibuf_conform_representation): Remove. + (Ftry_completion): Don't call it. + (Ftest_completion): Don't use the obsolete Fstring_make_unibyte or + Fstring_make_multibyte; they don't serve any useful purpose here. + We don't try to equate unibyte and multibyte raw bytes in symbol + lookups elsewhere and there is no reason to do it here. + +2022-07-11 Stefan Kangas + + Remove dead branch from substitute-command-keys + + * lisp/help.el (substitute-command-keys): Remove dead branch; + where-is-internal will follow any remaps for us. Note also that the + test case for remapping still pass. + +2022-07-11 Lars Ingebrigtsen + + Make `g' in `vc-annotate' not bug out + + * lisp/vc/vc-annotate.el (vc-annotate): Don't bug out on `g' + (bug#48359). + +2022-07-11 Lars Ingebrigtsen + + Only reset buffer-local buffer-stale-function in make-indirect-buffer + + * src/buffer.c (Fmake_indirect_buffer): Don't set the global + buffer-stale-function (bug#48348). + +2022-07-11 Lars Ingebrigtsen + + Document the recent add-global-abbrev change + + * doc/emacs/abbrevs.texi (Defining Abbrevs): Document that you can + use the active region. + +2022-07-11 Lars Ingebrigtsen + + Make add-mode-abbrev use the active region + + * lisp/abbrev.el (add-mode-abbrev, add-global-abbrev): Document it. + (add-abbrev): If there's an active region, use that as the + expansion (bug#56496). + +2022-07-11 Stefan Kangas + + * lisp/obsolete/rlogin.el: Add "Obsolete-since" line. + +2022-07-11 Stefan Kangas + + Make net/rlogin.el obsolete + + * lisp/net/rlogin.el: Move from here... + * lisp/obsolete/rlogin.el: ...to here. (Bug#56461) + +2022-07-11 Stefan Kangas + + * src/.lldbinit: Fix copyright year. + +2022-07-11 Lars Ingebrigtsen + + Allow commands that call `yes-or-no-p' to be repeatable again + + * lisp/subr.el (y-or-n-p): Enable commands that call this function + to be repeatable (bug#45999). This stopped working after this + function started using read-from-minibuffer. + * src/fns.c (Fyes_or_no_p): Ditto. + +2022-07-11 Stefan Kangas + + Move EIEIO autoloads to the common loaddefs.el + + * lisp/emacs-lisp/eieio-core.el: + * lisp/emacs-lisp/eieio-custom.el: + * lisp/emacs-lisp/eieio-opt.el: + * lisp/obsolete/eieio-compat.el: Remove generated-autoload-file + setting and don't require eieio-loaddefs.el. + +2022-07-11 Gerd Möllmann + + Support for debugging Emacs with LLDB + + * (src/.lldbinit): New file. + * (etc/emacs_lldb.py): Module loaded from .lldbinit. + +2022-07-11 Stefan Kangas + + Don't create unused file rmail-loaddefs.el + + * lisp/mail/undigest.el: Remove 'generated-autoload-file' local + variable. (Bug#56491) + +2022-07-11 Mattias Engdegård + + Simplify str_to_multibyte and related code + + * src/character.h (str_to_multibyte): + * src/character.c (str_to_multibyte): Remove `nbytes` argument; return + it instead. Copy forwards. + * src/fns.c (concat_to_string, Fstring_make_multibyte): + Use str_to_multibyte. + (string_make_multibyte): Remove. + (string_to_multibyte): + * src/print.c (print_string): Adapt calls. + +2022-07-11 Stefan Kangas + + Doc fix; don't mention rlogin + + * doc/emacs/misc.texi (Remote Host): + * doc/misc/eshell.texi (Bugs and ideas): Don't mention + rlogin. (Bug#56461) + +2022-07-11 Po Lu + + Improve behavior of `lost-selection-mode' with multiple buffers + + * etc/NEWS: Announce new hook `post-select-region-hook'. + + * lisp/select.el (lost-selection-last-region-buffer): New + variable. + (lost-selection-post-select-region-function): New function. + Deactivate the mark if the buffer changed. + (lost-selection-mode): Add new hook. + + * src/keyboard.c (command_loop_1): Run that hook when + appropriate. + (syms_of_keyboard): New hook `post-select-region-hook'. + +2022-07-11 Lars Ingebrigtsen + + Fix crm.el compilation warning + + * lisp/emacs-lisp/crm.el (crm-default-separator): Move to avoid + compilation warning. + +2022-07-11 Lars Ingebrigtsen + + Don't call home from test/src/process-tests.el + + * test/src/process-tests.el (process-num-processors): Move from + here... + * test/manual/process-callout-tests.el: ... to here (bug#55858). + +2022-07-11 Visuwesh + + Make mouse-2 respect delete-selection mode + + * lisp/delsel.el: Make the mouse yank commands delete-selection-mode + aware (bug#56421). + +2022-07-11 Stefan Kangas + + * lisp/emacs-lisp/package.el (define-package): Make obsolete. + +2022-07-11 Po Lu + + Prevent setting user time if the WM doesn't support it + + * src/xterm.c (x_update_frame_user_time_window): Don't set + _NET_WM_USER_TIME if it's not supported by the window manager. + +2022-07-11 Mattias Engdegård + + Add test for the gradle-android compilation message pattern + + * etc/compilation.txt (symbol): Add example. + * test/lisp/progmodes/compile-tests.el (compile-tests--test-regexps-data): + (compile-test-error-regexps): Add test case (bug#56249). + +2022-07-11 Daniel Martín + + Fix memory leak in ns_draw_relief + + * src/nsterm.h (struct ns_output): New fields to store the relief + colors. + * src/nsterm.m (ns_setup_relief_colors): New function to keep the + relief colors as part of the ns_output structure. + (ns_draw_relief): Remove static local variables. Assigning them to + nil caused a memory leak of NSColor instances (bug#56462). Call + ns_setup_relief_colors instead. + +2022-07-11 Lars Ingebrigtsen + + Autoload named-let + + * lisp/emacs-lisp/subr-x.el (named-let): Autoload `named-let' for + easier use (bug#56473). + +2022-07-11 Lars Ingebrigtsen + + Fix `M-x lisp-fill-paragraph' + + * lisp/emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Fix filling + when called directly with `M-x lisp-fill-paragraph' instead of via + `M-q' (bug#56476). + +2022-07-11 Stefan Kangas + + Make crm-default-separator obsolete as per FIXME + + * lisp/emacs-lisp/crm.el (crm-default-separator): Make into + obsolete variable alias for crm-separator. + (crm-separator): Update docstring for above change. + +2022-07-11 Stefan Kangas + + * lisp/find-dired.el (find-dired): Doc fix; add crossreference. + +2022-07-11 Stefan Kangas + + Re-add comment on autoloading cookies in preloaded files + + This comment was removed in 2009, but it is useful to explain why + we are keeping these autoload cookies. + * lisp/bindings.el: + * lisp/font-core.el: + * lisp/format.el: + * lisp/international/mule-cmds.el: Re-add comment on autoloading. + * lisp/font-core.el (font-lock-defaults): Re-add autoload cookie, + despite the fact that this file is preloaded. + +2022-07-11 Stefan Kangas + + Prefer :risky defcustom keyword + + * lisp/align.el (align-region-separate, align-rules-list) + (align-exclude-rules-list, align-vhdl-rules-list): + * lisp/bindings.el (mode-line-percent-position): + * lisp/filesets.el (filesets-menu-cache-file, filesets-commands) + (filesets-external-viewers, filesets-ingroup-patterns) + (filesets-data): + * lisp/hi-lock.el (hi-lock-file-patterns-policy): + * lisp/mail/mailalias.el (mail-complete-alist) + (mail-directory-process, mail-directory-stream) + (mail-directory-parser): + * lisp/mail/rmail.el (rmail-confirm-expunge): + * lisp/mail/sendmail.el (mail-signature): + * lisp/mail/supercite.el (sc-cite-frame-alist) + (sc-uncite-frame-alist, sc-recite-frame-alist) + (sc-default-cite-frame, sc-default-uncite-frame) + (sc-default-recite-frame, sc-attrib-selection-list) + (sc-rewrite-header-list): + * lisp/progmodes/make-mode.el (makefile-special-targets-list): + * lisp/so-long.el (so-long-action-alist): + * lisp/textmodes/sgml-mode.el (sgml-tag-alist): Prefer defcustom + :risky keyword argument to directly setting the 'risky-local-variable' + symbol property. + +2022-07-11 Mattias Engdegård + + Simplify and speed up string-to-multibyte + + * src/character.h (str_to_multibyte): + * src/character.c (str_to_multibyte): Change signature and simplify; + the conversion is no longer done in-place. + * src/fns.c (string_to_multibyte): Drop temporary buffer and memcpy; + adapt to new str_to_multibyte signature. + * src/print.c (print_string): Drop memcpy; adapt call to str_to_multibyte. + * test/src/fns-tests.el (fns--string-to-unibyte): Rename to... + (fns--string-to-unibyte-multibyte): ... this and strengthen, so that + the test covers string-to-multibyte reasonably well. + +2022-07-11 Manuel Giraud + + Rename 'longlines-breakpoint-chars' to 'longlines-break-chars' + + * etc/NEWS: + * lisp/longlines.el (longlines-break-chars): Rename + 'longlines-breakpoint-chars' to 'longlines-break-chars' + (bug#56335). + +2022-07-10 Po Lu + + Handle errors sending selection decline events asynchronously + + * src/xselect.c (x_decline_selection_request): Handle errors + asynchronously. + * src/xterm.c (x_ignore_errors_for_next_request) + (x_stop_ignoring_errors): Export functions. + * src/xterm.h: Update prototypes. + +2022-07-10 Matthias Schmitt + + Add: 'local' keyword + +2022-07-10 Philip Kaludercic + + * time-date.el (decoded-time-period): Rename TIME in docstring + +2022-07-10 Stefan Kangas + + Remove some ineffectual calls to purecopy + + * lisp/dired.el (dired-chown-program, dired-trivial-filenames): + * lisp/emacs-lisp/shortdoc.el (shortdoc--display-function): + * lisp/help-fns.el (help-fns--mention-shortdoc-groups): + * lisp/mail/mail-extr.el (mail-extr-full-name-prefixes) + (mail-extr-all-letters-but-separators, mail-extr-all-letters) + (mail-extr-first-letters, mail-extr-last-letters) + (mail-extr-bad-dot-pattern, mail-extr-full-name-suffix-pattern) + (mail-extr-alternative-address-pattern) + (mail-extr-trailing-comment-start-pattern) + (mail-extr-name-pattern, mail-extr-telephone-extension-pattern) + (mail-extr-ham-call-sign-pattern, mail-extr-normal-name-pattern) + (mail-extr-two-name-pattern) + (mail-extr-listserv-list-name-pattern) + (mail-extr-stupid-vms-date-stamp-pattern) + (mail-extr-hz-embedded-gb-encoded-chinese-pattern) + (mail-extr-x400-encoded-address-pattern) + (mail-extr-x400-encoded-address-field-pattern-format) + (mail-extr-x400-encoded-address-surname-pattern) + (mail-extr-x400-encoded-address-given-name-pattern) + (mail-extr-x400-encoded-address-full-name-pattern): Remove + ineffectual calls to purecopy. + +2022-07-10 Stefan Kangas + + Rename new option to browse-url-default-scheme + + * lisp/net/browse-url.el (browse-url-default-scheme): Rename from + 'browse-url-guess-default-scheme'. Update caller. + Suggested by Eli Zaretskii . + +2022-07-10 Mattias Engdegård + + Speed up string-to-unibyte + + * src/character.h (str_to_unibyte): + * src/character.c (str_to_unibyte): Remove. + * src/fns.c (Fstring_to_unibyte): Ditch the call to str_to_unibyte and + the unnecessary heap allocation. Write new, faster code. + * test/src/fns-tests.el (fns--string-to-unibyte): New test. + +2022-07-10 Michael Albinus + + Fix Tramp test environment on hydra.nixos.org + + * lisp/emacs-lisp/ert-x.el (tramp-remote-path): Declare. Adapt + `tramp-remote-path' on hydra. (Bug#56424) + + * test/lisp/dnd-tests.el (dnd-tests-begin-drag-files): Remove instrumentation. + + * test/lisp/filenotify-tests.el: + * test/lisp/shadowfile-tests.el: + * test/lisp/net/tramp-tests.el: Do not adapt `tramp-remote-path'. + +2022-07-10 Stefan Kangas + + Don't use purecopy in dictionary.el + + * lisp/net/dictionary.el (dictionary-pre-buffer) + (dictionary-display-dictionary-line) + (dictionary-display-more-info, dictionary-display-strategy-line) + (dictionary-display-match-lines): Don't use purecopy; it has no + effect here. + +2022-07-10 Stefan Monnier + + * src/dired.c (directory_files_internal): Update comment + +2022-07-10 Stefan Monnier + + * src/dired.c (directory_files_internal): Fix bug#56469 + + Avoid concatenating encoded and decoded file names. + +2022-07-10 Stefan Kangas + + New user option browse-url-guess-default-scheme + + * lisp/net/browse-url.el (browse-url-guess-default-scheme): New + user option. + (browse-url-url-at-point): Use above new user option. + +2022-07-10 Michael Albinus + + * doc/misc/tramp.texi (Frequently Asked Questions): Fix formatting. + +2022-07-10 Po Lu + + Minor fixes to WM_DELETE_WINDOW handling + + * src/xterm.c (handle_one_xevent): Only handle WM_DELETE_WINDOW + to toplevel windows, and set event timestamp. + +2022-07-10 Stefan Kangas + + Make browse-url.el support for plain "mozilla" obsolete + + * lisp/net/browse-url.el (browse-url-mozilla-program) + (browse-url-mozilla-arguments) + (browse-url-mozilla-startup-arguments) + (browse-url-mozilla-new-window-is-tab, browse-url-mozilla) + (browse-url-mozilla-sentinel): Make obsolete. (Bug#56464) + (browse-url--browser-defcustom-type, browse-url-default-browser): + Don't refer to above obsolete function 'browse-url-mozilla'. + +2022-07-10 Stefan Kangas + + * lisp/net/browse-url.el: Improve commentary. + +2022-07-10 Eli Zaretskii + + Fix the startup.el behavior when 'face-font-rescale-alist' is non-nil + + * lisp/startup.el (command-line-1, normal-top-level): Reset the + default face's font only if 'face-font-rescale-alist' affects that + face's font. For the use case where it matters, see + https://lists.gnu.org/archive/html/emacs-devel/2022-07/msg00157.html. + Make the 'inhibit-startup-screen' and non-inhibit branches behave + the same in that case. + +2022-07-10 Po Lu + + Fix build with old sqlite libraries + + * src/sqlite.c (Fsqlite_open): Don't use SQLITE_OPEN_FULLMUTEX + if not defined. + +2022-07-10 Eli Zaretskii + + Speed up 'find_automatic_composition' + + * src/composite.c (find_automatic_composition): Limit search + backward in buffers to the first newline. Fix commentary. + +2022-07-10 Po Lu + + Don't sync for errors setting up DND targets and toplevels + + * src/xterm.c (xm_setup_dnd_targets, x_dnd_free_toplevels) + (x_dnd_compute_toplevels): Avoid catching errors synchronously. + +2022-07-10 Stefan Kangas + + Merge from origin/emacs-28 + + 115261b323 ; Improve wording of recently-changed doc strings. + +2022-07-09 Po Lu + + Make `x-no-window-manager' cover user time as well + + * src/xterm.c (x_update_frame_user_time_window): + (x_wm_supports_1): Respect `x-no-window-manager'. This makes + testing some features easier. + +2022-07-09 Glenn Morris + + * test/Makefile.in (WRITE_LOG): Always be verbose on hydra.nixos. + +2022-07-09 Stefan Monnier + + Make STRING_SET_MULTIBYTE an inline function + + * src/lisp.h (STRING_SET_MULTIBYTE): Make it into a function. + + * src/composite.c (Fcomposition_get_gstring): + Prefer `make_multibyte_string` over Fconcat+STRING_SET_MULTIBYTE. + +2022-07-09 Stefan Kangas + + Exclude platform specific browsers from custom type + + * lisp/net/browse-url.el (browse-url--browser-defcustom-type): + Don't include platform specific browsers on other platforms. + +2022-07-09 Stefan Kangas + + * lisp/net/eww.el (eww): Improve docstring. + +2022-07-09 Stefan Kangas + + Make browse-url-default-browser fall back to EWW + + * lisp/net/browse-url.el (browse-url-default-browser): Fall back + to EWW. + +2022-07-09 Stefan Kangas + + Drop support for the dead third-party w3 package + + The w3 package was removed from GNU ELPA in 2020 as it doesn't run on + a recent Emacs, and development had stopped over a decade before that. + If anyone wants to revive the w3 package, they should look this all + over, but it doesn't make sense for us to maintain this support code. + Ref: https://debbugs.gnu.org/25395 + + * lisp/net/browse-url.el (browse-url-w3): Make obsolete. + (browse-url--browser-defcustom-type) + (browse-url-default-browser): + * lisp/ffap.el (ffap-url-at-point, ffap-file-at-point): + * lisp/net/newst-plainview.el (newsticker--buffer-do-insert-text): + * lisp/net/newst-reader.el (newsticker-html-renderer) + (newsticker-show-news): + * lisp/net/newst-treeview.el (newsticker--treeview-render-text): + * lisp/org/ol.el (org-store-link): + * lisp/url/url.el (url-retrieve): Remove w3 support code and related + documentation and comments. (Bug#56435) + + * test/lisp/net/browse-url-tests.el + (browse-url-tests-browser-kind): Adjust test for above changes. + + * etc/TODO: Remove TODO to install W3. + * doc/misc/org.org (Handling Links): Don't mention W3. + * lisp/msb.el (msb--few-menus, msb--very-many-menus): Check for + eww-mode instead of w3-mode. + +2022-07-09 Stefan Kangas + + Improve introductory section of TRAMP manual + + * doc/misc/tramp.texi (Top, Overview): Explain what TRAMP is + without contrasting to Ange FTP. (Bug#56440) + (Frequently Asked Questions): Move information on Ange FTP here. + +2022-07-09 Stefan Kangas + + Prefer defvar-keymap in net/*.el + + * lisp/net/dictionary.el (dictionary-mode-map): + * lisp/net/dig.el (dig-mode-map): + * lisp/net/eudc-hotlist.el (eudc-hotlist-mode-map): + * lisp/net/eudc.el (eudc-mode-map): + * lisp/net/mairix.el (mairix-searches-mode-map): + * lisp/net/newst-treeview.el + (newsticker-treeview-list-sort-button-map) + (newsticker-treeview-mode-map): + * lisp/net/quickurl.el (quickurl-list-mode-map): + * lisp/net/rcirc.el (rcirc-mode-map) + (rcirc-multiline-minor-mode-map, rcirc-track-minor-mode-map): + * lisp/net/rlogin.el (rlogin-mode-map): + * lisp/net/secrets.el (secrets-mode-map): + * lisp/net/sieve-mode.el (sieve-mode-map): + * lisp/net/sieve.el (sieve-manage-mode-map): + * lisp/net/snmp-mode.el (snmp-mode-map): + * lisp/net/telnet.el (telnet-mode-map): Prefer defvar-keymap. + +2022-07-09 Po Lu + + Avoid extra sync and atom name query on ending Motif DND + + * src/xterm.c (handle_one_xevent): Use `x_dnd_action_symbol' to + set the Motif action instead. + +2022-07-09 Stefan Kangas + + Delete obsolete variable tooltip-use-echo-area + + * lisp/tooltip.el (tooltip-use-echo-area): Delete variable + obsolete since 24.1. + (tooltip-help-tips): + * lisp/progmodes/gud.el (gud-tooltip-process-output) + (gud-tooltip-tips): Don't use above deleted variable. + +2022-07-09 Stefan Kangas + + * lisp/woman.el (woman-fill-column): Increase default to 70. + + * lisp/mh-e/mh-mime.el (mh-small-show-buffer-p): Double value. + +2022-07-09 Stefan Kangas + + Delete obsolete variable font-lock-maximum-size + + * lisp/font-lock.el (font-lock-maximum-size): Delete variable + obsolete since 24.1. + (font-lock-initial-fontify): + * lisp/mail/rmail.el (rmail-variables): + * lisp/mh-e/mh-mime.el (mh-small-show-buffer-p): Don't use above + deleted variable. + * lisp/font-core.el (font-lock-mode): + * lisp/font-lock.el: + * lisp/info.el: Don't mention above deleted variable. + +2022-07-09 Eli Zaretskii + + Avoid assertion violations in 'back_to_previous_visible_line_start' + + * src/xdisp.c (back_to_previous_visible_line_start): Avoid + assertion violations when narrowed_begv is in effect. + +2022-07-09 Eli Zaretskii + + Fix segfault in composite.c + + * src/composite.c (find_automatic_composition): Don't use + narrowed_begv if it's zero. This avoids segfault in + BACKWARD_CHAR, since zero is not a valid buffer position. + +2022-07-09 Stefan Kangas + + New command emacs-news-toggle-tag + + * lisp/textmodes/emacs-news-mode.el (emacs-news-toggle-tag): New + command. + (emacs-news-mode-map): Bind above new command to "C-c C-t". + * test/lisp/textmodes/emacs-news-mode-resources/toggle-tag.erts: + * test/lisp/textmodes/emacs-news-mode-tests.el: New files. + +2022-07-09 Stefan Kangas + + Improve ert-test-erts-file documentation + + * lisp/emacs-lisp/ert.el (ert-test-erts-file): Improve docstring. + * doc/misc/ert.texi (erts files): Fix typo. + +2022-07-09 Stefan Kangas + + Bind M-G unconditionally in Dired + + * lisp/dired-x.el: Move dired-goto-subdir binding from here... + * lisp/dired.el (dired-mode-map): ...to here. (Bug#21981) + + * doc/misc/dired-x.texi (Miscellaneous Commands): Move + documentation of above command from here... + * doc/emacs/dired.texi (Subdirectory Motion): ...to here. + +2022-07-09 Stefan Kangas + + Move dired-buffer-more-recently-used-p to dired.el + + * lisp/dired-x.el (dired-buffer-more-recently-used-p): Move from + here... + * lisp/dired.el (dired-buffer-more-recently-used-p): ...to here. + +2022-07-09 Stefan Kangas + + Delete obsolete variable buffer-substring-filters + + * lisp/simple.el (buffer-substring-filters): Delete variable obsolete + since 24.1. + (buffer-substring--filter): Adjust for deleted variable. + * doc/lispref/text.texi (Buffer Contents): Adjust documentation + for deleted variable. + +2022-07-09 Po Lu + + Improve drag-and-drop emulation time handling + + * src/xselect.c (x_handle_selection_request): Use + display-specific pending DND time. + (x_set_pending_dnd_time): Delete function. + * src/xterm.c (x_dnd_do_unsupported_drop, handle_one_xevent): + Set dpyinfo->pending_dnd_time instead. + * src/xterm.h (struct x_display_info): New field + `pending_dnd_time'. Make handling pending drops + display-specific to avoid interference when there are multiple + displays. + +2022-07-09 Po Lu + + Fix race conditions handling selection clear events on Haiku + + * src/haiku_select.cc (be_handle_clipboard_changed_message): + Include current clipboard count. + (be_selection_outdated_p): New function. + * src/haikuselect.c (haiku_handle_selection_clear): Ignore + outdated events. + (haiku_selection_disowned): New argument `count'. Include it in + the timestamp field of the selection clear event. + * src/haikuselect.h: Update prototypes. + * src/systime.h: Define `Time' to an appropriate value on Haiku. + +2022-07-09 Stefan Kangas + + Merge from origin/emacs-28 + + 3442de2edd Doc fix; don't mention obsolete variable + c4e251103b ; * lisp/textmodes/rst.el: Update URLs. + +2022-07-08 Po Lu + + Fix redisplay after running selection hook on Haiku + + * src/haikuselect.c (haiku_handle_selection_clear): Call + redisplay_preserve_echo_area. + +2022-07-08 Po Lu + + Add new minor mode to deactivate the region once PRIMARY is lost + + * doc/emacs/killing.texi (Primary Selection): Document new minor + mode `lost-selection-mode'. + * etc/NEWS: Announce new minor mode. + * lisp/select.el (lost-selection-function): New function. + (lost-selection-mode): New global minor mode. + +2022-07-08 jgart <47760695+jgarte@users.noreply.github.com> (tiny change) + + Add support for jedi-language-server + + * eglot.el (eglot-server-programs): Add jedi-language-server + + * README.md: Mention jedi-language-server + + * NEWS.md: Mention jedi-language-server + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/961 + +2022-07-08 Po Lu + + Speed up querying for window manager support + + * src/xterm.c (handle_one_xevent): Clear net_supported_window if + it is destroyed. + (x_get_wm_check_window): New function. + (x_wm_supports_1): First try net_supported_window. If it still + exists, don't ask for _NET_SUPPORTING_WM_CHECK. + +2022-07-08 Gregory Heytings + + Fix typo in 1792cbaddc. + +2022-07-08 Gregory Heytings + + Actually fix the long lines display bug (bug#56393). + + * src/dispextern.h (struct it): New 'narrowed_begv' field. + + * src/dispextern.h (WITH_NARROWED_BEGV): New macro. + + * src/xdisp.c (get_narrowed_begv): New function. + (init_iterator): Initialize the 'narrowed_begv' field. + (back_to_previous_line_start, get_visually_first_element, + move_it_vertically_backward): Use the new macro. + + * src/dispextern.h: Prototype of 'get_narrowed_begv'. + + * src/window.c (window_body_height): Make it externally visible. + + * src/window.h: Prototype of 'window_body_height'. + + * src/composite.c (find_automatic_composition): Optimize display in buffers + with very long lines with 'get_narrowed_begv'. + + * lisp/obsolete/longlines.el: Reobsolete longlines-mode. + + * etc/NEWS: Announce the new minor mode, and remove the unobsoletion + indication for 'longlines-mode'. + + * doc/emacs/trouble.texi (Long Lines): Remove the section. + (Lossage): Remove the entry for the Long Lines section. + + * doc/emacs/emacs.texi (Top): Remove the entry for the Long Lines section. + +2022-07-08 Gregory Heytings + + Revert commit 38b3780f6e. + + Revert commits 9ea9533f17, c0c4600ece, 7b19ce51fc, 051d2a1e36 and eb6d2fb58d. + +2022-07-08 Alan Mackenzie + + Remove now unused parameter TRACK from do_switch_frame. + + * src/lisp.h (extern do_swith_frame declaration) + * src/frame.c (do_switch_frame): Remove parameter TRACK and its comment. + * src/frame.c (Fselect_frame, Fhandle_switch_frame, delete_frame) + * src/keyboard.c (quit_throw_to_read_char) + * src/minibuf.c (read_minibuf_unwind (twice)) + * src/window.c (Fset_window_configuration): Remove argument TRACK. + +2022-07-08 Stefan Kangas + + Doc fix; don't mention obsolete variable + + * src/window.c (Fset_window_hscroll): Doc fix; don't mention obsolete + variable. + +2022-07-08 Juri Linkov + + * lisp/isearch.el (isearch-search-fun-in-noncontiguous-region): New function. + + (isearch-search-fun-in-text-property): Refactor body to + 'search-within-boundaries', then call it (bug#14013). + (search-within-boundaries): New function refactored from + isearch-search-fun-in-text-property. + + * test/lisp/isearch-tests.el: Add tests for new search functions. + (isearch--test-search-within-boundaries): New function. + (isearch--test-search-fun-in-text-property) + (isearch--test-search-fun-in-noncontiguous-region): New tests. + +2022-07-08 Juri Linkov + + Display the number of invisible matches for isearch-lazy-count (bug#40808) + + * lisp/isearch.el (lazy-count-invisible-format): New variable. + (isearch-mode): Set isearch-lazy-count-invisible to nil. + (isearch-lazy-count-format): Use lazy-count-invisible-format and + isearch-lazy-count-invisible. + (isearch-range-invisible): Handle the value 'can-be-opened' of + 'search-invisible' and don't open overlays for it, just check + if these overlays can be opened. + (isearch-lazy-count-invisible): New variable. + (isearch-lazy-highlight-new-loop): Set isearch-lazy-count-invisible to nil. + (isearch-lazy-highlight-search): Let-bind search-invisible either to t + for non-nil isearch-lazy-count, or to 'can-be-opened'. + (isearch-lazy-highlight-match): Don't highlight matches intended + to be counted only, not highlighted. + (isearch-lazy-highlight-buffer-update): Separately count invisible + matches by isearch-lazy-count-invisible. + + * lisp/info.el (Info-isearch-filter): Check if search-invisible is t. + +2022-07-08 Stefan Kangas + + Don't mention moved variable in dired-x manual + + * doc/misc/dired-x.texi (Technical Details): Remove mention of + 'dired-clean-up-buffers-too'; it has been moved to dired.el. + +2022-07-08 Stefan Kangas + + Delete redundant defgroup dired-keys + + * lisp/dired-x.el (dired-keys): Delete defgroup. + (dired-bind-vm): Move to :group dired-x. + +2022-07-08 Stefan Kangas + + Move dired-do-relsymlink from dired-x.el to dired.el + + * lisp/dired-x.el (dired-do-relsymlink, dired-make-relative-symlink) + (dired-do-relsymlink-regexp): Move from here... + * lisp/dired-aux.el (dired-do-relsymlink, dired-make-relative-symlink) + (dired-do-relsymlink-regexp): ...to here. (Bug#21981) + + * lisp/dired-x.el: Move keybinding and menu binding from here... + * lisp/dired.el (dired-mode-map, dired-mode-regexp-menu): ...to + here. + + * lisp/dired-x.el (dired-keep-marker-relsymlink): Move from here... + * lisp/dired.el (dired-keep-marker-relsymlink): ...to here. Improve + docstring. + + * doc/misc/dired-x.texi (Miscellaneous Commands): Move + documentation of above commands from here... + * doc/emacs/dired.texi (Operating on Files) + (Transforming File Names): ...to here. + +2022-07-08 Juri Linkov + + * lisp/progmodes/ruby-mode.el (ruby-mode): Set outline-regexp, outline-level. + + Suggested by Yilkal Argaw . + +2022-07-08 Mattias Engdegård + + Remove unused member of internal struct + + * src/fns.c (struct textprop_rec, concat_to_string): Remove `from`. + +2022-07-08 Stefan Kangas + + * lisp/dired.el (dired-jump-map): Bind also "j" to dired-jump. + +2022-07-08 Po Lu + + Ensure correct position is returned after child frame movement + + * src/xterm.c (x_set_offset): Synchronize child frame movement + correctly. + +2022-07-08 Mattias Engdegård + + Fix file-name-case-insensitive-p in ffap (bug#56443) + + Don't crash if the file name argument to file-name-case-insensitive-p, + after expansion, doesn't have a parent directory. This occurs + when calling ffap on something that looks like an email address. + + * src/fileio.c (Ffile_name_case_insensitive_p): Return nil if no file + or parent directory could be found. + * test/src/fileio-tests.el (fileio-tests--identity-expand-handler) + (fileio--file-name-case-insensitive-p): New test. + +2022-07-08 Stefan Kangas + + Remove many items obsolete since 24.1 + + * lisp/allout.el (allout-abbreviate-flattened-numbering) + (allout-mode-deactivate-hook): + * lisp/ansi-color.el (ansi-color-unfontify-region): + * lisp/auth-source.el (auth-source-hide-passwords) + (auth-source-user-or-password) + (auth-source-forget-user-or-password): + * lisp/cedet/data-debug.el (data-debug-map): + * lisp/cedet/semantic/grammar.el (semantic-grammar-syntax-table) + (semantic-grammar-map): + * lisp/chistory.el (command-history-map): + * lisp/comint.el (comint-dynamic-complete) + (comint-dynamic-complete-as-filename) + (comint-dynamic-simple-complete): + * lisp/dired-x.el (read-filename-at-point) + (dired-x-submit-report): + * lisp/dos-fns.el (register-name-alist, make-register) + (register-value, set-register-value, intdos, mode25, mode4350): + * lisp/emacs-lisp/bytecomp.el (byte-compile-disable-print-circle): + * lisp/emacs-lisp/chart.el (chart-map): + * lisp/emacs-lisp/package.el (package-menu-view-commentary): + * lisp/emacs-lock.el (toggle-emacs-lock, emacs-lock-from-exiting): + * lisp/erc/erc.el (erc-complete-word): + * lisp/eshell/em-cmpl.el (eshell-cmpl-suffix-list): + * lisp/eshell/esh-util.el (eshell-for): + * lisp/files.el (inhibit-first-line-modes-regexps) + (inhibit-first-line-modes-suffixes): + * lisp/gnus/gnus-msg.el (gnus-outgoing-message-group) + (gnus-debug-files, gnus-debug-exclude-variables): + * lisp/gnus/gnus-registry.el (gnus-registry-user-format-function-M): + * lisp/gnus/gnus.el (gnus-local-domain, gnus-carpal): + * lisp/gnus/nnimap.el (nnimap-split-rule): + * lisp/iimage.el (turn-on-iimage-mode): + * lisp/image.el (image-extension-data, image-library-alist): + * lisp/mail/emacsbug.el (report-emacs-bug-pretest-address): + * lisp/mail/mail-utils.el (rmail-dont-reply-to): + * lisp/mail/mailalias.el (mail-complete-function) + (mail-completion-at-point-function): + * lisp/mail/rmail.el (rmail-dont-reply-to-names) + (rmail-default-dont-reply-to-names): + * lisp/mail/sendmail.el (mail-mailer-swallows-blank-line) + (mail-sent-via): + * lisp/menu-bar.el (menu-bar-kill-ring-save): + * lisp/minibuffer.el (completion-annotate-function) + (minibuffer-local-filename-must-match-map): + * lisp/msb.el (msb-after-load-hooks): + * lisp/obsolete/eieio-compat.el (eieio-defmethod) + (eieio-defgeneric): + * lisp/obsolete/info-edit.el (Info-edit-map): + * lisp/obsolete/starttls.el (starttls-any-program-available): + * lisp/progmodes/cfengine.el (cfengine-mode-abbrevs): + * lisp/progmodes/cwarn.el (turn-on-cwarn-mode): + * lisp/progmodes/make-mode.el (makefile-complete): + * lisp/progmodes/meta-mode.el (meta-complete-symbol) + (meta-mode-map): + * lisp/progmodes/pascal.el (pascal-toggle-completions) + (pascal-last-completions, pascal-show-completions): + * lisp/progmodes/prolog.el (prolog-char-quote-workaround): + * lisp/progmodes/which-func.el (which-func-mode): [FUNCTION] + * lisp/simple.el (count-lines-region, minibuffer-completing-symbol): + * lisp/speedbar.el (speedbar-syntax-table, speedbar-key-map): + * lisp/strokes.el (strokes-report-bug): + * lisp/subr.el (condition-case-no-debug): + * lisp/term/ns-win.el (ns-alternatives-map) + (ns-store-cut-buffer-internal): + * lisp/term/w32-win.el (w32-default-color-map): + * lisp/term/x-win.el (x-cut-buffer-or-selection-value): + * lisp/textmodes/bibtex.el (bibtex-complete) + (bibtex-entry-field-alist): + * lisp/textmodes/reftex-index.el (reftex-index-map) + (reftex-index-phrases-map): + * lisp/textmodes/reftex-sel.el (reftex-select-label-map) + (reftex-select-bib-map): + * lisp/textmodes/reftex-toc.el (reftex-toc-map): + * lisp/textmodes/rst.el (rst-block-face, rst-external-face) + (rst-definition-face, rst-directive-face, rst-comment-face) + (rst-emphasis1-face, rst-emphasis2-face, rst-literal-face) + (rst-reference-face): + * lisp/vc/vc-hooks.el (vc-toggle-read-only): + * lisp/view.el (view-return-to-alist) + (view-return-to-alist-update): Remove many functions and variables + obsolete since 24.1. + + * lisp/textmodes/bibtex.el (bibtex-entry-alist): Don't use above + removed variable 'bibtex-entry-field-alist'. + * lisp/cedet/data-debug.el (data-debug-edebug-expr) + (data-debug-eval-expression): + * lisp/emacs-lisp/trace.el (trace--read-args): + * lisp/files-x.el (read-file-local-variable-value): + * lisp/simple.el (read--expression): Don't use above removed variable + 'minibuffer-completing-symbol'. + * lisp/textmodes/rst.el (rst-font-lock-keywords): Don't use above + removed variables. + * src/w32fns.c (Fw32_default_color_map): Delete obsolete function. + (syms_of_w32fns): Delete defsubr for above defun. + * src/keyboard.c (syms_of_keyboard) + : Delete DEFVARs. + : Delete DEFSYM. + (syms_of_keyboard_for_pdumper): Adjust for above change. + (command_loop_1): Don't run deferred-action-function hook. + * lisp/subr.el (deferred-action-list, deferred-action-function): + Delete obsoletion statements. + * lisp/emacs-lisp/ert-x.el (ert-simulate-command): Don't run + 'deferred-action-list' hook. + * doc/lispref/hooks.texi (Standard Hooks): Delete + 'deferred-action-function'. + + * lisp/emacs-lisp/lisp.el (field-complete): + * lisp/eshell/em-cmpl.el (eshell-cmpl-initialize): + * lisp/gnus/gnus-msg.el (gnus-inews-insert-gcc): + * lisp/gnus/nnmail.el (nnmail-fancy-expiry-target): + * lisp/mail/mail-utils.el (mail-dont-reply-to): + * lisp/mail/sendmail.el (sendmail-send-it): + * lisp/mail/smtpmail.el (smtpmail-send-it): + * lisp/minibuffer.el (minibuffer-completion-help): + * lisp/progmodes/python.el: Don't use above removed items. + * lisp/emacs-lisp/eieio-core.el: + * lisp/mail/mailalias.el (mail-complete-alist): Doc fixes; don't refer + to above removed items. + +2022-07-08 Stefan Kangas + + Put safe-local-variable property on auto-insert + + * lisp/autoinsert.el (auto-insert): Put safe-local-variable + property to allow disabling auto-inserting without a warning. + +2022-07-08 Stefan Kangas + + Stop ffap-machine-at-point from pinging random hosts + + Having this on by default is highly problematic from a security and + privacy standpoint, as it risks having outgoing traffic that could + potentially reveal sensitive data (passwords, names, etc.). + + It also seems to be causing issues for users, see e.g. + https://github.com/emacs-helm/helm/issues/648 + + * lisp/ffap.el (ffap-machine-p-known): Change default to 'accept'. + +2022-07-08 Stefan Kangas + + Add :safe property to ffap-machine-p-* variables + + * lisp/ffap.el (ffap--accept-or-reject-p): New predicate defun. + (ffap-machine-p-local, ffap-machine-p-known) + (ffap-machine-p-unknown): Add :safe property using above new + predicate. + +2022-07-08 Stefan Kangas + + Add tests for mail-extr.el + + * test/lisp/mail/mail-extr-tests.el: New file. + +2022-07-08 Stefan Kangas + + Avoid obsolete initial-input argument in net-utils.el + + * lisp/net/net-utils.el (ping, nslookup-host, dns-lookup-host) + (run-dig, ftp, smbclient, smbclient-list-shares, finger) + (network-connection-to-service): Don't use obsolete initial-input + argument. Use 'format-prompt'. (Bug#56436) + +2022-07-08 Po Lu + + Improve behavior of sticky tooltips on Haiku + + * src/haiku_support.cc (class EmacsView, MouseMoved): Remove + `tooltip_position'. + (class EmacsMotionSuppressionView): New class. + (BView_set_and_show_sticky_tooltip): Rename to + `be_show_sticky_tooltip'. Add motion suppression view. + + * src/haiku_support.h: Update prototypes. + * src/haikufns.c (Fx_show_tip): Update for renamed function. + +2022-07-08 Po Lu + + Fix flickering system tooltips on Haiku + + * src/haiku_support.cc (class EmacsView, MouseMoved): Restore + sticky status and mouse relative position. + (BView_set_and_show_sticky_tooltip): + * src/haikufns.c (haiku_hide_tip): Fix coding style. + +2022-07-08 Eli Zaretskii + + * src/xdisp.c (set_vertical_scroll_bar): Remove stale comment. + +2022-07-08 Eli Zaretskii + + Fix calculation of the vertical scroll bar's thumb + + * src/xdisp.c (set_vertical_scroll_bar): Compute window's end + position "by hand" if w->window_end_pos cannot be relied upon. + +2022-07-08 Po Lu + + Reduce synchronization setting frame alpha + + * src/xterm.c (x_set_frame_alpha): Don't synchronize while + setting alpha property, and don't ask for the current value of + the opacity property, which is much more expensive than changing + it. + +2022-07-08 Stefan Kangas + + Merge from origin/emacs-28 + + 2ac0ddc4ac ; * lisp/net/net-utils.el: Minor doc fixes. + +2022-07-07 Po Lu + + Fix returned action symbol upon "xterm" drop + + * src/xterm.c (x_dnd_do_unsupported_drop): Set + x_dnd_action_symbol. + (x_dnd_begin_drag_and_drop): Don't clear it afterwards. + +2022-07-07 Stefan Kangas + + * lisp/emacs-lisp/ert.el (Commentary): Refer to the Info manual. + +2022-07-07 Stefan Kangas + + Prefer keymap inheritance in shr-image-map + + * lisp/net/shr.el (shr-image-map): Replace copy-keymap with + inheritance. + +2022-07-07 Lars Ingebrigtsen + + Make imenu--create-keymap more resilient + + * lisp/imenu.el (imenu--create-keymap): Ignore nil items in the + alist (bug#56430). + +2022-07-07 Eli Zaretskii + + Fix buffer-tests + + * test/src/buffer-tests.el (test-restore-buffer-modified-p): Don't + assume turning on auto-save-mode cannot auto-save immediately. + +2022-07-07 Mattias Engdegård + + Faster append and vconcat + + By separating the code paths for append and vconcat, each becomes + simpler and faster. + + * src/fns.c (concat_strings): Rename to... + (concat_to_string): ...this. + (concat): Split into concat_to_list and concat_to_vector. + (concat_to_list, concat_to_vector): New, specialized and + streamlined from earlier combined code. + (concat2, concat3, Fappend, Fconcat, Fvconcat): Adjust calls. + +2022-07-07 Alan Mackenzie + + Remove obscure, obsolete code from do_switch_frame + + This is relevant for bug #56305, and might solve that bug. The code being + removed went into Emacs between 1992 and 1994, and looks to have been a + workaround for switching frames, before the command 'other-frame' had been + written. Nowadays, that code has harmful effects, causing frames' focus to be + redirected at random, sometimes back to the frame itself. + + * src/frame.c (do_switch_frame): Remove 53 lines of code. + +2022-07-07 Stefan Kangas + + * lisp/net/dig.el (dig): Provide default. + +2022-07-07 Stefan Kangas + + Make net-utils-url at point funs obsolete in favor of ffap + + * lisp/net/net-utils.el (net-utils-machine-at-point) + (net-utils-url-at-point): Redefine as obsolete function alias for + 'ffap-machine-at-point' and 'ffap-url-at-point'. Update callers. + * lisp/ffap.el (ffap-machine-at-point, ffap-url-at-point): Autoload. + +2022-07-07 Po Lu + + Fix selection disowning upon frame deletion on Wayland + + * src/pgtkselect.c (pgtk_clear_frame_selections): Manually + disown cleared selections. (bug#56434) + +2022-07-07 Stefan Kangas + + * lisp/net/eww.el (eww-browse-url): Add 'browser-kind' property. + + * lisp/woman.el (woman): Fix comment; don't mention gnudoit. + +2022-07-07 Stefan Kangas + + Make two XEmacs related variables obsolete + + * lisp/net/browse-url.el (browse-url-gnudoit-program) + (browse-url-gnudoit-args): Make obsolete. The corresponding command + 'browse-url-w3-gnudoit' is already obsolete since 25.1. + +2022-07-07 Po Lu + + Fix GTK build + + * src/xterm.c (x_dnd_begin_drag_and_drop): Update GTK quitting + code for last change too. Reported by Norbert Koch + . + +2022-07-07 João Távora + + Prevent desktop.el from saving/restoring eglot--managed-mode + + Although desktop.el compatibility is Emacs bughttps://github.com/joaotavora/eglot/issues/56407, the optimal + solution agreed to there is a bit more work than what I have time to + right now. See e.g. + https://debbugs.gnu.org/cgi/bugreport.cgi?bug=bug%2356407https://github.com/joaotavora/eglot/issues/68. For + now, just use `with-eval-after-load' + + * eglot.el (Hacks desktop): Add eglot--managed-mode to + desktop-minor-mode-handlers + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/990 + +2022-07-07 João Távora + + Apply any additionaltextedits unconditionally + + * eglot.el (eglot-completion-at-point): Apply any + additionalTextEdits unconditionally. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/981 + +2022-07-07 Po Lu + + Fix quitting out of selection converters during drag and drop + + * src/xterm.c (x_dnd_process_quit): New function. + (x_dnd_begin_drag_and_drop): Use it instead. Also quit if + quit-flag is true immediately after a selection converter is + run. + +2022-07-07 Stefan Kangas + + Mark comint modes in net-utils.el as non-interactive + + * lisp/net/net-utils.el (net-utils-mode, nslookup-mode, ftp-mode) + (smbclient-mode, network-connection-mode): Mark as non-interactive. + (nslookup-mode-map, ftp-mode-map): Prefer defvar-keymap. + +2022-07-07 Stefan Kangas + + Make 'run-dig' command obsolete in favor of 'dig' + + * lisp/net/net-utils.el (run-dig): Redefine in terms of `dig' and make + obsolete. (Bug#56432). + (dig-program): Delete duplicate defcustom; it is also in dig.el. + (dig-program-options): Move from here... + * lisp/net/dig.el (dig-program-options): ...to here. + (dig-invoke): Respect 'dig-program-options'. + (dig): Prompt for DNS server when given double prefix argument. + +2022-07-07 Eli Zaretskii + + Fix undo of changes in cloned indirect buffers + + * lisp/simple.el (primitive-undo): If the visited-modtime of the + indirect buffer's file is bogus, use the modtime of the file + visited by its base buffer. + + * src/undo.c (record_first_change): Call + 'buffer_visited_file_modtime' with the correct buffer, instead of + always calling 'Fvisited_file_modtime', which returns possibly + bogus values for indirect buffers. + * src/fileio.c (Fset_visited_file_modtime): Signal a meaningful + error for indirect buffers. + (buffer_visited_file_modtime): New function, with implementation + taken from 'Fvisited_file_modtime'. + (Fvisited_file_modtime): Call 'buffer_visited_file_modtime'. + * src/lisp.h: Add prototype for 'buffer_visited_file_modtime'. + (Bug#56397) + +2022-07-07 Stefan Kangas + + * lisp/net/dig.el (dig-exit): Mark for 'dig-mode'. + +2022-07-07 Visuwesh + + Make the Indian itrans methods more phonetic + + The characters ऋ and ॠ are pronunced as ru in languages such as + Marathi, Gujarati, Telugu, etc. so add new translation rules that + reflects this sound. (bug#56414) + + * lisp/language/ind-util.el (indian-itrans-v5-table): Add new + translation rules to make the input method more phonetic. + (indian-tml-base-table, indian-tml-base-digits-table): Fix typo. + +2022-07-07 Juri Linkov + + Don't accumulate trailing newlines on every save of .dir-locals.el + + * lisp/files-x.el (modify-dir-local-variable): Insert a newline + only after creating a new file. + (dir-locals-to-string): Remove newline to not add more newlines + on every save. + +2022-07-07 Po Lu + + Fix `trace-function' default buffer + + * lisp/emacs-lisp/trace.el (trace--read-args): Don't use + format-prompt; instead, use DEF arg to read-buffer. + +2022-07-06 Sean Whitton + + gnus-advanced-body: Fix return value + + * gnus-logic.el (gnus-advanced-body): Return whether the search + succeeded, not the value of one of the cleanup forms. + +2022-07-06 Po Lu + + Fix NS build + + * src/keyboard.c (process_special_events): Don't define copy and + moved events on the wrong toolkit. + +2022-07-06 Po Lu + + Port `x-lost-selection-functions' to Haiku + + * src/haiku_io.c (haiku_len): Add `CLIPBOARD_CHANGED_EVENT'. + * src/haiku_select.cc (be_update_clipboard_count): Set ownership + flags. + (be_handle_clipboard_changed_message): + (be_start_watching_selection): New functions. + + * src/haiku_support.cc (class Emacs): Handle + B_CLIPBOARD_CHANGED. + + * src/haiku_support.h (enum haiku_event_type): New event + `CLIPBOARD_CHANGED_EVENT'. + (struct haiku_clipboard_changed_event): New struct. + + * src/haikuselect.c (haiku_handle_selection_clear) + (haiku_selection_disowned, haiku_start_watching_selections): New + functions. + (syms_of_haikuselect): New defsym and defvar. + + * src/haikuselect.h: Update prototypes. + * src/haikuterm.c (haiku_read_socket): Handle selection events. + (haiku_term_init): Start watching selections. + * src/haikuterm.h: Update prototypes. + * src/keyboard.c (kbd_buffer_get_event, process_special_events) + (mark_kboards): Handle SELECTON_CLEAR_EVENTs correctly on Haiku. + +2022-07-06 Po Lu + + Avoid excessive synchronization performing "xterm" drops + + * src/xterm.c (x_dnd_do_unsupported_drop): Asynchronously catch + errors around XSendEvent. + +2022-07-06 Stefan Kangas + + End new .dir-locals.el files with a newline + + * lisp/files-x.el (dir-locals-to-string): Add newline at the end of + newly created .dir-locals.el files. This avoids git complaining about + "No newline at end of file". + +2022-07-06 Stefan Kangas + + Autoload safe local property for plstore-encrypt-to + + * lisp/plstore.el (plstore-encrypt-to): Autoload 'safe-local-variable' + property for improved security. + +2022-07-06 Stefan Kangas + + Prefer defcustom :safe to putting 'safe-local-variable' + + * lisp/emacs-lisp/lisp-mode.el (lisp-indent-offset) + (lisp-body-indent, emacs-lisp-docstring-fill-column): + * lisp/files.el (version-control): + * lisp/progmodes/modula2.el (m2-indent): + * lisp/progmodes/octave.el (octave-block-offset): + * lisp/progmodes/sh-script.el (sh-basic-offset): + * lisp/progmodes/tcl.el (tcl-indent-level) + (tcl-continued-indent-level): + * lisp/simple.el (fill-prefix): + * lisp/textmodes/fill.el (colon-double-space): + * lisp/textmodes/paragraphs.el (paragraph-start) + (paragraph-separate, sentence-end-double-space) + (sentence-end-without-period, sentence-end-without-space) + (sentence-end, sentence-end-base, page-delimiter) + (paragraph-ignore-fill-prefix): + * lisp/textmodes/tex-mode.el (tex-fontify-script): + * lisp/vc/add-log.el (add-log-dont-create-changelog-file): + * lisp/vc/vc-hooks.el (vc-follow-symlinks): Prefer defcustom :safe to + putting 'safe-local-variable'. + +2022-07-06 Juri Linkov + + * lisp/repeat.el (describe-repeat-maps): Handle non-symbol keymap (bug#21634). + +2022-07-06 Juri Linkov + + Add new args MESSAGE and TIMEOUT to set-transient-map (bug#21634) + + * lisp/subr.el (set-transient-map): Add new args MESSAGE and TIMEOUT. + (set-transient-map-timeout, set-transient-map-timer): New variables. + + * lisp/international/emoji.el (emoji-zoom-increase): + * lisp/indent.el (indent-rigidly): + * lisp/face-remap.el (text-scale-adjust, global-text-scale-adjust): + Use the arg MESSAGE of set-transient-map. + + * doc/lispref/keymaps.texi (Controlling Active Maps): Mention new args + MESSAGE and TIMEOUT of set-transient-map. + +2022-07-06 Stefan Kangas + + Make some additional defcustom types more restrictive + + * lisp/desktop.el (desktop-lazy-idle-delay): + * lisp/files.el (dired-kept-versions) + (kept-old-versions, kept-new-versions): + * lisp/filesets.el (filesets-max-submenu-length) + (filesets-max-entry-length, filesets-tree-max-level) + (filesets-query-user-limit): + * lisp/hi-lock.el (hi-lock-file-patterns-range) + (hi-lock-highlight-range): + * lisp/ido.el (ido-max-work-directory-list): + * lisp/image/gravatar.el (gravatar-cache-ttl): + * lisp/imenu.el (imenu-auto-rescan-maxout, imenu-max-items): + * lisp/informat.el (Info-split-threshold): + * lisp/mail/hashcash.el (hashcash-default-payment) + (hashcash-default-accept-payment): + * lisp/mail/mail-hist.el (mail-hist-history-size): + * lisp/mail/smtpmail.el (smtpmail-retries): + * lisp/msb.el (msb-display-most-recently-used): + * lisp/nxml/rng-valid.el (rng-state-cache-distance) + (rng-validate-chunk-size): + * lisp/progmodes/gdb-mi.el (gdb-max-source-window-count): + * lisp/recentf.el (recentf-arrange-by-rules-min-items): + * lisp/simple.el (kill-ring-max, mark-ring-max) + (global-mark-ring-max): + * lisp/tab-line.el (tab-line-tab-name-truncated-max): + * lisp/term.el (term-buffer-maximum-size, term-input-chunk-size): + * lisp/thumbs.el (thumbs-max-image-number) + (thumbs-thumbsdir-max-size, thumbs-relief, thumbs-margin) + (thumbs-image-resizing-step): + * lisp/type-break.el (type-break-interval) + (type-break-good-rest-interval, type-break-query-interval) + (type-break-warning-repeat): + * lisp/vc/compare-w.el (compare-windows-sync-string-size): + * lisp/woman.el (woman-fill-column): Use defcustom :type natnum. + + * lisp/emacs-lisp/backtrace.el (backtrace-line-length): + * lisp/doc-view.el (doc-view-conversion-refresh-interval): + Use defcustom :type natnum and allow the nil value. + + * lisp/gnus/spam-stat.el (spam-stat-process-directory-age): + Use defcustom :type integer. + +2022-07-06 Gregory Heytings + + Fix improvement of isearch in auto-narrow-mode. + + * lisp/files.el (auto-narrow--reset-isearch-lazy-highlight): New internal + function. + (auto-narrow-pre-command-function, auto-narrow-post-command-function): Use the + new internal function. + +2022-07-06 Stefan Kangas + + Fix missing :value with defcustom const :type + + * lisp/calendar/calendar.el (calendar-intermonth-header) + (calendar-intermonth-text, calendar-date-style): + * lisp/calendar/diary-lib.el (diary-face-attrs): + * lisp/emacs-lisp/package.el (package-check-signature): + * lisp/erc/erc-dcc.el (erc-dcc-get-default-directory): + * lisp/gnus/gnus-art.el (gnus-auto-select-part): + * lisp/gnus/gnus-cus.el (gnus-agent-parameters): + * lisp/gnus/gnus.el (gnus-user-agent): + * lisp/mail/rmail.el (rmail-retry-ignored-headers): + * lisp/progmodes/sh-script.el (sh-indent-after-continuation): + Fix missing :value with defcustom const :type. + +2022-07-06 Gregory Heytings + + Improve isearch in auto-narrow-mode. + + * lisp/isearch.el (isearch-search): Set isearch-lazy-highlight to nil before + widening in auto-narrow-mode. + + * lisp/files.el (auto-narrow--isearch-lazy-highlight): New internal variable. + (auto-narrow-pre-command-function, auto-narrow-post-command-function): Use it. + +2022-07-06 Po Lu + + Fix infinite looping around Haiku menus + + * src/haikumenu.c (haiku_menu_show): Block SIGIO around menu + event loop. + * src/haikuterm.c (haiku_read_socket): Flush tooltip frames + after resize. + +2022-07-06 Davide Masserut + + Send region to the subshell specified by the current file interpreter + + * sh-script.el (sh-execute-region): Send region to the subshell + specified by the current file interpreter (bug#56406). + +2022-07-06 Manuel Giraud + + Remove soft newlines in longlines-mode + + * lisp/longlines.el (longlines-mode, longlines-encode-string): Update + from `buffer-substring-filters' to `filter-buffer-substring-function'. + Remove soft newlines in substring (bug#56335). + +2022-07-06 Gregory Heytings + + Various improvements to auto-narrow mode. + + * lisp/files.el (auto-narrow-display-length): Improve docstring. + (auto-narrow-widen-automatically): Add 'undo' to the command list. + (auto-narrow-hook): New defcustom. + (auto-narrow-pre-command-function, auto-narrow-post-command-function): + Move initialization code. + (auto-narrow-mode): Do not make the 'auto-narrow-mode' permanent local + anymore. + + * lisp/font-lock.el (turn-off-font-lock-mode): New convenience function. + + * src/xdisp.c (set_vertical_scroll_bar): Fix typo. + (redisplay_window): Use the new convenience function. + + * src/buffer.h (BUFFER_NEEDS_AUTO_NARROWING_P, + BUFFER_AUTO_NARROWED_NON_NARROWED_P): Two new convenience functions. + + * src/window.c (Frecenter): Do not recenter auto-narrowed buffers that + are not actually narrowed. + + * etc/NEWS: Improvement. + + * doc/emacs/display.texi (Auto-Narrowing): Improvement. + +2022-07-06 F. Jason Park + + * lisp/erc/erc-track.el (erc-track-minor-mode-map): Doc fix. + +2022-07-06 dickmao + + Use compatibility macro for ISUPPORT caching in ERC + + * lisp/erc/erc-backend.el (erc--with-memoization): Defalias was a + kung-fu I've never seen before. (Bug#56340) + +2022-07-06 Po Lu + + Stop synchronizing after sending XEmbed events + + * src/xterm.c (xembed_send_message): Don't sync and handle + errors, which is actually why the XSync call in the spec exists. + +2022-07-06 Martin Rudalics + + Fix 'fit-frame-to-buffer' (Bug#56102) + + * lisp/window.el (fit-frame-to-buffer-sizes): Fix doc-string. + Give calls to 'max' a second argument so they do something + useful. If ONLY equals 'vertically', call + 'window-text-pixel-size' with X-LIMIT nil (Bug#56102). For + minimum sizes of the window to fit, use 'window-safe-min-size' by + default. + * doc/lispref/windows.texi (Resizing Windows): Fix descriptions of + 'fit-frame-to-buffer' and 'fit-frame-to-buffer-sizes'. + +2022-07-06 Po Lu + + Fix the MS-DOS build + + * msdos/sedlibmk.inp: Define GL_GNULIB_RAWMEMCHR. + * src/process.c (Fsignal_names): Disable on MS-DOS and use + SIGNUM_BOUND, which is always provided by gnulib. + +2022-07-06 Po Lu + + Speed up interning XDS atoms + + * src/xselect.c (symbol_to_x_atom, x_atom_to_symbol) + (syms_of_xselect): Handle new atoms. + * src/xterm.c (x_atom_refs): + * src/xterm.h (struct x_display_info): New atoms + `XdndDirectSave0', `XdndActionDirectSave' and `text/plain'. + +2022-07-06 Paul Eggert + + Update from Gnulib by running admin/merge-gnulib + + * admin/merge-gnulib (AVOIDED_MODULES): Add chmod. + +2022-07-06 Stefan Kangas + + Merge from origin/emacs-28 + + 6b5d829d9d Add index entry for "ignore case" + 29e1459965 ; * lisp/files.el (remote-file-name-inhibit-cache): Minor ... + +2022-07-06 Paul Eggert + + Adjust better to Autoconf quoting style change + + * admin/gitmerge.el (gitmerge-emacs-version): + * admin/nt/dist-build/build-zips.sh (ACTUAL_VERSION): + * admin/quick-install-emacs (VERSION): + * lisp/cedet/ede/emacs.el (ede-emacs-version): + Adjust to change in configure.ac’s Autoconf quoting style. + * etc/srecode/ede-autoconf.srt: + * test/lisp/progmodes/autoconf-tests.el: + (autoconf-tests-current-defun-function-define) + (autoconf-tests-current-defun-function-subst): + Use better Autoconf quoting. + * make-dist (version): Simplify. + +2022-07-05 Po Lu + + Reduce duplicate code cleaning up DND processes + + * src/xterm.c (x_restore_events_after_dnd): New function. + (x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop): Use + that instead of manually cleaning up properties and events. + +2022-07-05 Po Lu + + Don't select for unnecessary properties during DND + + * src/xterm.c (x_dnd_begin_drag_and_drop): Don't select for + property changes when not using toplevels. + +2022-07-05 Po Lu + + Fix announcements of XDND mouse rectangles + + * lisp/x-dnd.el (x-dnd-handle-xdnd): Use correct meaning of "2", + which isn't well documented. + * src/xterm.c (handle_one_xevent): Likewise. Also fix unpacking + of mouse rects. + +2022-07-05 Gregory Heytings + + Actually fix the long lines display bug (bug#56393). + + * lisp/files.el (auto-narrow-mode): New minor mode. + (auto-narrow-pre-command-function, auto-narrow-post-command-function): + New auxiliary functions for the minor mode. + (auto-narrow-display-length, auto-narrow-widen-automatically): New + defcustoms for the minor mode. + (auto-narrow--widen-automatically, auto-narrow--isearch-widen-automatically, + auto-narrow--initialized): New internal variables for the minor mode. + + * src/buffer.h (struct buffer): New internal variable for the minor mode. + (bset_auto_narrow__narrowing_state, BUFFER_AUTO_NARROWED_P): New + auxiliary functions. + + * src/buffer.c (init_buffer_once, syms_of_buffer): New internal variable + for the minor mode. Update the docstring of mode-line-format. + + * src/fileio.c (Finsert_file_contents): Detect whether the minor mode should + be entered when the buffer is displayed. + (syms_of_fileio): New defcustom for the minor mode. + + * src/keyboard.c (syms_of_keyboard): New hook functions for the minor mode. + (command_loop_1): Execute the hook functions. + + * src/xdisp.c (redisplay_window): Enter the minor mode when the buffer is + displayed. + (decode_mode_spec): Indicate when the minor mode is active + in the modeline. Indicate the buffer position relative to the whole buffer. + (set_vertical_scroll_bar): Indicate the buffer position relative to the + whole buffer. + (syms_of_xdisp): Two new symbols. + + * lisp/isearch.el (isearch-widen-automatically): New defcustom. + (isearch-search): Use the new defcustom. + + * lisp/bindings.el (mode-line-modes): Do not propertize the indication + in the modeline when the new minor mode is active. + + * etc/NEWS: Announce the new minor mode, and remove the unobsoletion + indication for 'longlines-mode'. + + * lisp/longlines.el: Reobsolete longlines-mode. + + * doc/emacs/display.texi (Auto-Narrowing): New section, describing the new + minor mode. + (Display): Entry for the new section. + + * doc/emacs/trouble.texi (Long Lines): Remove the section. + (Lossage): Remove the entry for the Long Lines section. + + * doc/emacs/emacs.texi (Top): Remove the entry for the Long Lines section. + +2022-07-05 Glenn Morris + + * make-dist: Fix after recent configure.ac quoting changes. + +2022-07-05 Lars Ingebrigtsen + + Fix custom-initialize-reset bootstrap error + + * lisp/custom.el (custom-initialize-reset): Fix bootstrap problem + by avoiding when-let. + +2022-07-05 Lars Ingebrigtsen + + Fix rcirc buffer name collisions + + * lisp/net/rcirc.el (rcirc-handler-NICK): Avoid naming collisions + when renaming buffers (bug#45872). + +2022-07-05 Michael Albinus + + Mention remote-file-name-inhibit-auto-save-visited in Tramp manual + + * doc/misc/tramp.texi (Auto-save File Lock and Backup): + Explain remote-file-name-inhibit-auto-save-visited. + +2022-07-05 Stefan Kangas + + Add index entry for "ignore case" + + * doc/emacs/glossary.texi (Glossary): Add index entry for "ignore + case" pointing to "Case Folding". + +2022-07-05 Stefan Kangas + + Rename new option to remote-file-name-inhibit-auto-save-visited + + * lisp/files.el (remote-file-name-inhibit-auto-save-visited): + Rename from 'auto-save-visited-remote-files' and invert logic. + (auto-save-visited-mode): Adjust accordingly. (Bug#41333) + Suggested by Michael Albinus . + +2022-07-05 Lars Ingebrigtsen + + Regenerate ldefs-boot.el + +2022-07-05 Lars Ingebrigtsen + + Give a warning if setopt has been used with an invalid value + + * lisp/cus-edit.el (setopt--set): Mark the variable for checking. + + * lisp/custom.el (custom-initialize-reset): Give a warning if the + type is wrong (bug#56400). + + * lisp/wid-edit.el (widget-convert): Autoload. + +2022-07-05 Stefan Kangas + + Re-fix narrowing problem in tramp-debug-buffer-command-completion-p + + * lisp/net/tramp.el (tramp-debug-buffer-command-completion-p): + Respect narrowing also for end of substring. (Bug#56225) + +2022-07-05 Stefan Kangas + + Make some defcustom types more restrictive + + * lisp/abbrev.el (abbrev-suggest-hint-threshold): + * lisp/bookmark.el (bookmark-bmenu-file-column) + (bookmark-menu-length): + * lisp/buff-menu.el (Buffer-menu-size-width) + (Buffer-menu-mode-width): + * lisp/calendar/calendar.el (calendar-week-start-day) + (calendar-intermonth-spacing, calendar-column-width) + (calendar-day-digit-width): + * lisp/calc/calc.el (calc-undo-length): + * lisp/calendar/timeclock.el (timeclock-workday): + * lisp/comint.el (comint-buffer-maximum-size) + (comint-input-ring-size): + * lisp/doc-view.el (doc-view-resolution, doc-view-image-width): + * lisp/emacs-lisp/bytecomp.el (byte-compile-docstring-max-column): + * lisp/emacs-lisp/comp.el (native-comp-debug) + (native-comp-verbose, native-comp-async-jobs-number): + * lisp/emacs-lisp/package.el (package-name-column-width) + (package-version-column-width, package-status-column-width) + (package-archive-column-width): + * lisp/eshell/esh-mode.el (eshell-buffer-maximum-lines): + * lisp/frame.el (blink-cursor-blinks): + * lisp/info.el (Info-breadcrumbs-depth): + * lisp/jit-lock.el (jit-lock-chunk-size): + * lisp/kmacro.el (kmacro-ring-max): + * lisp/menu-bar.el (yank-menu-length, yank-menu-max-items): + * lisp/midnight.el (clean-buffer-list-delay-general) + (clean-buffer-list-delay-special): + * lisp/net/dictionary.el (dictionary-port) + (dictionary-proxy-port): + * lisp/net/ldap.el (ldap-default-port): + * lisp/net/pop3.el (pop3-port, pop3-stream-length): + * lisp/net/rcirc.el (rcirc-default-port): + * lisp/net/sieve-manage.el (sieve-manage-default-port): + * lisp/play/spook.el (spook-phrase-default-count): + * lisp/play/tetris.el (tetris-buffer-width) + (tetris-buffer-height, tetris-width, tetris-height) + (tetris-top-left-x, tetris-top-left-y): + * lisp/profiler.el (profiler-sampling-interval): + * lisp/progmodes/sql.el (sql-port): + * lisp/recentf.el (recentf-max-menu-items): + * lisp/strokes.el (strokes-grid-resolution): + * lisp/tab-bar.el (tab-bar-tab-name-truncated-max): + * lisp/term/xterm.el (xterm-max-cut-length): + * lisp/time.el (display-time-interval, world-clock-timer-second): + * lisp/url/url-cache.el (url-cache-expire-time): + * lisp/url/url-cookie.el (url-cookie-save-interval): + * lisp/url/url-history.el (url-history-save-interval): + * lisp/url/url-queue.el (url-queue-parallel-processes) + (url-queue-timeout): + * lisp/url/url-vars.el (url-max-password-attempts) + (url-max-redirections): + * lisp/vc/emerge.el (emerge-min-visible-lines): + * lisp/vc/vc.el (vc-log-show-limit): + * lisp/window.el (window-min-height, window-min-width): + * lisp/winner.el (winner-ring-size): Use :type natnum. + + * lisp/savehist.el (savehist-file-modes): Fix setting to nil value and + use :type natnum. + +2022-07-05 Lars Ingebrigtsen + + Don't hard-code `M-c' in `read-regexp' + + * lisp/replace.el (read-regexp-map): New map. + (read-regexp--case-fold, read-regexp-toggle-case-folding) + (read-regexp): Factor out to avoid hard-coding `M-c'. + +2022-07-05 Lars Ingebrigtsen + + Document left/right mwheel events + + * doc/lispref/commands.texi (Misc Events): Document left/right + mwheel events (bug#41722). + +2022-07-05 Lars Ingebrigtsen + + Mention byte order marks in string-limit doc string + + * lisp/emacs-lisp/subr-x.el (string-limit): Mention byte order + marks (bug#48324). + +2022-07-05 Stefan Kangas + + New user option auto-save-visited-remote-files + + * lisp/files.el (auto-save-visited-remote-files): New user option. + (auto-save-visited-mode): Use above new variable to decide whether + or not to save remote files. (Bug#41333) + +2022-07-05 Stefan Kangas + + New user option auto-save-visited-mode-predicate + + * lisp/files.el (auto-save-visited-mode-predicate): New defcustom. + (auto-save-visited-mode): Use above new variable as a predicate to + decide whether or not to save a buffer. + +2022-07-05 Stefan Kangas + + Shorten name of recently added command to emacs-news-open-line + + * lisp/textmodes/emacs-news-mode.el (emacs-news-open-line): Rename + from 'emacs-news-mode-open-line'. + +2022-07-05 Po Lu + + Fix manually disowning Emacs drag atoms + + * src/xterm.c (handle_one_xevent): Disown Motif drag atom if + eventp->time is CurrentTime as well. This can happen with some + synthetic events. + +2022-07-05 Lars Ingebrigtsen + + Remove the interactive prefix from emoji-insert + + * lisp/international/emoji.el (emoji-insert): Remove the prefix + action from this command, since the same is already available on + `C-x 8 e s', and we're considering using the prefix to copy to the + kill ring. + +2022-07-05 Po Lu + + Allow immediately saving XDS drops + + This fixes things with programs that have a very timeout, such + as Chromium, within which it isn't practical for the user to + confirm the default file name. + + * lisp/x-dnd.el (x-dnd-direct-save-function): Add new choices to + defcustom. + (x-dnd-init-frame): Use fast protocol requests. + (x-dnd-save-direct-immediately): New function. + (x-dnd-handle-xds-drop): Fix nil values of selected file name. + +2022-07-05 Paul Eggert + + Quote configure.ac arguments more consistently + + This should help avoid further Autoconf portability gotchas such as + the one recently fixed in 2022-06-27T04:26:01Z!meyering@fb.com. + * autogen.sh (autoconf_min): Adjust pattern to match + updated configure.ac. + * configure.ac: Quote arguments more consistently, + as per the Autoconf manual. + +2022-07-05 Paul Eggert + + Don’t mishandle preset emacs_cv_lesstif + + * configure.ac: Restore CFLAGS etc. correctly even when + emacs_cv_lesstif is already set on the command line. + +2022-07-05 Stefan Kangas + + Merge from origin/emacs-28 + + d5e1424174 Expand docstrings related to auto-saving + +2022-07-04 Po Lu + + Don't take XCB socket every time we want the no of the next request + + * src/xterm.c (x_ignore_errors_for_next_request, x_uncatch_errors) + (x_check_errors, x_had_errors_p): Don't call XNextRequest + redundantly. Use NextRequest if it was immediately preceded by + XNextRequest, which updates dpy->request. + +2022-07-04 Stefan Kangas + + New command emacs-news-mode-open-line + + * lisp/textmodes/emacs-news-mode.el + (emacs-news-mode-open-line): New command. + (emacs-news-mode-map): Remap 'open-line' to above new command. + +2022-07-04 Po Lu + + Improve support for remote files in XDS + + * lisp/x-dnd.el (x-dnd-direct-save-function): Remove "local file + name" from documentation. + (x-dnd-save-direct): Handle remote file names normally. + (x-dnd-handle-xds-drop): Handle remote file names in URI. + +2022-07-04 Po Lu + + Don't overestimate supported input extension version on GTK 3 + + * src/xterm.c (x_term_init): If minor > original_minor (the + maximum version supported by libXi), set it back to + original_minor. + +2022-07-04 Alexander Adolf + + Add reverse mapping for EUDC attribute names + + * lisp/net/eudc.el (eudc-translate-query): new optional parameter to + reverse the mapping direction + (eudc-translate-attribute-list): new optional parameter to + reverse the mapping direction + +2022-07-04 Stefan Monnier + + (gnus-inverse-list-range-intersection): Update alias + + * lisp/gnus/gnus-range.el (gnus-inverse-list-range-intersection): + Don't alias to an obsolete alias. + +2022-07-04 Stefan Kangas + + Expand docstrings related to auto-saving + + * lisp/files.el (auto-save-visited-mode): + * lisp/simple.el (auto-save-mode): Expand docstring. + +2022-07-04 Paul Eggert + + Fix core dump with x-get-local-selection + + * src/xselect.c (Fx_get_local_selection): Check that VALUE has 4 + elements, since x_get_local_selection can dump core otherwise. + This pacifies gcc -Wanalyzer-null-dereference, which found the + problem. + +2022-07-04 Stefan Kangas + + Add quit-window entry to list-timers menu + + * lisp/emacs-lisp/timer-list.el (timer-list-mode-map): Add + quit-window entry to menu. + +2022-07-04 Stefan Kangas + + Prefer defvar-keymap in emacs-lisp/*.el + + * lisp/emacs-lisp/backtrace.el (backtrace-mode-map): + * lisp/emacs-lisp/bytecomp.el (emacs-lisp-compilation-mode-map): + * lisp/emacs-lisp/checkdoc.el (checkdoc-minor-mode-map): + * lisp/emacs-lisp/crm.el (crm-local-completion-map) + (crm-local-must-match-map): + * lisp/emacs-lisp/debug.el (debugger-mode-map): + * lisp/emacs-lisp/edebug.el (edebug-mode-map, edebug-global-map) + (edebug-eval-mode-map): + * lisp/emacs-lisp/eieio-custom.el (eieio-custom-mode-map): + * lisp/emacs-lisp/elp.el (elp-results-symname-map): + * lisp/emacs-lisp/lisp-mode.el (lisp-mode-shared-map): + * lisp/emacs-lisp/re-builder.el (reb-mode-map) + (reb-lisp-mode-map, reb-subexp-mode-map): + * lisp/emacs-lisp/tabulated-list.el (tabulated-list-mode-map) + (tabulated-list-sort-button-map): + * lisp/emacs-lisp/timer-list.el (timer-list-mode-map): + +2022-07-04 Stefan Kangas + + Document using make-composed-keymap with defvar-keymap + + * doc/lispref/keymaps.texi (Inheritance and Keymaps): Document + using 'make-composed-keymap' with 'defvar-keymap'. + + * lisp/help-mode.el (help-mode-map): Use defvar-keymap to make this + code match the above documentation change. + +2022-07-04 Stefan Kangas + + Doc fix; quote keys in face-remap.el + + * lisp/face-remap.el (text-scale-adjust, global-text-scale-adjust): + Doc fix; quote keys. + +2022-07-04 Stefan Kangas + + Inherit instead of copying keymap in bookmark.el + + * lisp/bookmark.el (bookmark-rename): Inherit instead of copying + keymap. + +2022-07-04 Stefan Kangas + + * src/keymap.c (Fcopy_keymap): Document using defvar-keymap. + +2022-07-04 Stefan Kangas + + Use substitute-command-keys in Helper-help + + * lisp/emacs-lisp/helper.el (Helper-help-scroller) + (Helper-help-options, Helper-help): Use substitute-command-keys. + (Helper-help-map): Prefer defvar-keymap. + +2022-07-04 Po Lu + + Avoid code duplication converting XI event state in toolkit menu code + + * src/xmenu.c (x_menu_translate_generic_event): + (popup_get_selection): Use `xi_convert_event_state' instead. + * src/xterm.c (xi_convert_event_state): Export on non-GTK + builds. + * src/xterm.h: Update prototypes. + +2022-07-04 Stefan Kangas + + Fix scrolling backwards in Helper-help + + * lisp/emacs-lisp/helper.el (Helper-help-scroller): Fix scrolling + backwards. + +2022-07-04 Mattias Engdegård + + Remove some useless `eval-when-compile` + + * lisp/cedet/semantic/java.el (semantic-java-number-regexp): + * lisp/cedet/semantic/lex.el (semantic-lex-number-expression): + * lisp/emacs-lisp/cl-indent.el (common-lisp-indent-function-1): + * lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression) + (lisp--el-match-keyword, lisp-string-in-doc-position-p): + * lisp/emacs-lisp/shorthands.el (shorthands-font-lock-shorthands): + * lisp/net/socks.el (socks-send-command): + * lisp/progmodes/meta-mode.el (meta-font-lock-keywords): + * lisp/shell.el (shell--parse-pcomplete-arguments): + * lisp/textmodes/sgml-mode.el (sgml-mode): + * lisp/textmodes/tex-mode.el (tex--guess-mode) + (tex-common-initialization, tex-input-files-re): + * lisp/textmodes/tildify.el (tildify-mode): + * lisp/xdg.el (xdg-line-regexp): + Eliminate `eval-when-compile` when the argument would be evaluated by + the compiler anyway. + +2022-07-04 Mattias Engdegård + + Replace lisp-mode-symbol-regexp with (rx lisp-mode-symbol) + + This is shorter, simplifies use inside rx expressions, and removes + need for eval-when-compile elsewhere (for later exploitation). + + * lisp/emacs-lisp/lisp-mode.el (lisp-mode-symbol): New rx-define. + (lisp-mode-symbol-regexp): Redefine using lisp-mode-symbol. + (lisp-imenu-generic-expression, lisp--el-match-keyword) + (lisp-fdefs, lisp-string-in-doc-position-p): + * lisp/emacs-lisp/checkdoc.el (checkdoc--error-bad-format-p): + * lisp/emacs-lisp/shorthands.el (shorthands-font-lock-shorthands): + Use lisp-mode-symbol instead of lisp-mode-symbol-regexp. + +2022-07-04 Stefan Kangas + + * lisp/progmodes/ebrowse.el (ebrowse-tree-mode): Fix typo. + +2022-07-04 Stefan Kangas + + Remove remaining Helper-help support from view-mode + + * lisp/view.el (view-old-Helper-return-blurb): Make obsolete. + (view--enable, view--disable): Delete remaining Helper-help support + code; view-mode stopped using it in 1995. + +2022-07-04 Daanturo + + Add file-parent-directory function + + * doc/lispref/files.texi: Document the function. + * etc/NEWS: Add its entry. + * lisp/emacs-lisp/shortdoc.el: Add it to 'file-name' group. + * lisp/files.el: implementation (bug#56355). + +2022-07-04 Benjamin Riefenstahl + + lisp/thumbs.el: Fix calling the "convert" command + + * lisp/thumbs.el (thumbs-call-convert): Pass 'action-prefix' and + 'action' as a combined parameter. Do not pass 'arg' if it is nil. + (thumbs-modify-image): Do not pass "" as 'arg' to + 'thumbs-call-convert' (bug#56375). + + Some time in the past this was converted from using the shell to + passing the parameters directly, but the fallout was not handled + correctly. + +2022-07-04 Lars Ingebrigtsen + + Preserve in the Emacs manuals + + * admin/admin.el (manual-html-fix-headers): Preserve the <title> + element (bug#48334). + +2022-07-04 Lars Ingebrigtsen <larsi@gnus.org> + + Don't bug out in manual-html-fix-index-2 on newer makeinfo versions + + * admin/admin.el (manual-html-fix-index-2): Don't bug out if the + makeinfo version doesn't include <ul>. + +2022-07-04 Visuwesh <visuweshm@gmail.com> + + Exclude radio buttons when suggesting URI in eww + + * lisp/net/eww.el (eww-links-at-point): Exclude radio links. + (bug#56366). + +2022-07-04 Stefan Kangas <stefan@marxist.se> + + New command help-fns-edit-mode-cancel + + * lisp/help-fns.el (help-fns-edit-mode-cancel): New command. + (help-fns--edit-value-mode-map): Bind it to 'C-c C-k'. + (help-fns-edit-variable): Advertise it in help text. + +2022-07-04 Po Lu <luangruo@yahoo.com> + + Handle errors caused by ignoring errors with GDK's trap installed + + * src/xterm.c (x_ignore_errors_for_next_request) + (x_stop_ignoring_errors): Also tell GDK to ignore errors from + the following requests. (bug#56372) + +2022-07-04 Po Lu <luangruo@yahoo.com> + + Always wait for XdndStatus before sending XdndDrop + + * src/xterm.c (x_dnd_do_drop): New function. + (x_dnd_begin_drag_and_drop): Clear new flag. + (handle_one_xevent): Use that function; send drops upon receipt + of pending XdndStatus, to avoid race conditions where we don't + yet know the selected action. + +2022-07-04 Po Lu <luangruo@yahoo.com> + + Fix accessing dpyinfo after it is deallocated + + * src/xterm.c (x_connection_closed): Print disconnect error for + the last terminal before freeing it. + +2022-07-04 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 41472f3b6c Document 'jit-lock-debug-mode' + +2022-07-03 Po Lu <luangruo@yahoo.com> + + Display list of traps and handlers when crashing due to an X error + + * src/xterm.c (x_connection_closed): Print list of installed + error handlers if not crashing due to an IO error. + (NO_INLINE): Include error serial in error message. + +2022-07-03 Florian Rommel <mail@florommel.de> + + Add support for fullscreen values fullheight and fullwidth on PGTK + + * src/pgtkterm.c (window_state_event): Support values fullheight and + fullwidth for the fullscreen frame-parameter + * doc/lispref/frames.texi (Size Parameters): Document inability to + actively set hullheight/fullwidth for PGTK frames + * configure.ac: Bump GTK version for PGTK + * etc/NEWS: Change GTK version in PGTK announcement + +2022-07-03 Po Lu <luangruo@yahoo.com> + + Add some more error checking code to `x_stop_ignoring_errors' + + * src/xterm.c (x_stop_ignoring_errors): Abort if no request was + actually made, making the state inconsistent. + +2022-07-03 Stefan Kangas <stefan@marxist.se> + + Simplify lisp-el-font-lock-keywords-2 definition slightly + + * lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2): + Simplify slightly. + +2022-07-03 Stefan Kangas <stefan@marxist.se> + + Quote some literal keys to get help-key-binding face + + * lisp/align.el (align): + * lisp/bindings.el (undo-repeat-map): + * lisp/calc/calc-embed.el (calc-do-embedded): + * lisp/calc/calc-prog.el (calc-user-define-invocation): + * lisp/calc/calc-yank.el (calc--edit-mode): + * lisp/comint.el (comint-history-isearch) + * lisp/dired.el (dired-mode): + * lisp/emulation/viper.el (viper-mode): + * lisp/erc/erc-button.el (erc-button-face): + * lisp/erc/erc-track.el (erc-track-enable-keybindings): + * lisp/gnus/gnus-art.el (gnus-article-button-face): + * lisp/gnus/gnus-eform.el (gnus-edit-form): + * lisp/gnus/gnus-sum.el (gnus-summary-stop-at-end-of-message) + (gnus-summary-goto-unread): + * lisp/icomplete.el (icomplete-show-matches-on-no-input): + * lisp/image-mode.el (image-scroll-up): + * lisp/international/iso-transl.el (iso-transl-set-language): + * lisp/isearch.el (isearch-forward-regexp): + * lisp/misc.el (butterfly): + * lisp/outline.el (outline-minor-mode-cycle-filter) + (outline-minor-mode-cycle): + * lisp/progmodes/grep.el (rgrep): + * lisp/progmodes/gud.el (gud-gdb-repeat-map, gud-sdb-repeat-map) + (gud-dbx-repeat-map, gud-xdb-repeat-map, gud-perldb-repeat-map) + (gud-pdb-repeat-map, gud-guiler-repeat-map, gud-jdb-repeat-map): + * lisp/progmodes/idlw-shell.el (idlwave-shell-graphics-window-size) + (idlwave-shell-mode): + * lisp/progmodes/idlwave.el (idlwave-shell-debug-modifiers) + (idlwave-list-shell-load-path-shadows): + * lisp/progmodes/python.el (python-shell-get-process-or-error): + * lisp/repeat.el (repeat-check-key): + * lisp/replace.el (query-replace, query-replace-regexp) + (read-regexp): + * lisp/simple.el (read-extended-command-predicate): + * lisp/tab-bar.el (tab-bar-switch-repeat-map) + (tab-bar-move-repeat-map): + * lisp/term.el (ansi-term): + * lisp/textmodes/reftex-index.el (reftex-index-phrases-set-macro-key): + * lisp/vc/emerge.el (emerge-scroll-left, emerge-scroll-right): + * lisp/windmove.el: + * lisp/winner.el (winner-mode): Quote literal keys to get + 'help-key-binding' face. + * lisp/comint.el (comint-insert-previous-argument): Use regular + quotes. + +2022-07-03 Stefan Kangas <stefan@marxist.se> + + Use command substitutions instead of literal keys in some places + + * lisp/emulation/viper-macs.el (ex-map, viper-set-register-macro): + * lisp/minibuffer.el (minibuffer-beginning-of-buffer-movement): + * lisp/speedbar.el (speedbar-frame-mode): + * lisp/subr.el (kbd): + * lisp/textmodes/page-ext.el (pages-directory) + (pages-directory-for-addresses): + * lisp/textmodes/reftex-toc.el: Use command substitutions instead of + literal keys. + +2022-07-03 Stefan Kangas <stefan@marxist.se> + + Normalize definition of erc-track-minor-mode-map + + * lisp/erc/erc-track.el (erc-track-minor-mode-map): Normalize keymap + definition. + +2022-07-03 Stefan Kangas <stefan@marxist.se> + + Use substitute-command-keys in reftex-toc-show-help + + * lisp/textmodes/reftex-toc.el (reftex-toc-help) + (reftex-toc-show-help): Use substitute-command-keys. + +2022-07-03 Stefan Kangas <stefan@marxist.se> + + Font lock \\<> and \\{} command substitutions in docstrings + + * lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2): + Support \\<> and \\{} command substitutions. + +2022-07-03 Stefan Kangas <stefan@marxist.se> + + Fix warning in last commit + + * lisp/calc/calc-misc.el (calc-dispatch-help): Fix warning. + +2022-07-03 Juri Linkov <juri@linkov.net> + + Use more help-key-binding faces in repeat-mode message + + * lisp/repeat.el (repeat-echo-message-string): Use + substitute-command-keys for repeat-exit-key as well. + +2022-07-03 Juri Linkov <juri@linkov.net> + + * lisp/mwheel.el: More fixes for global-text-scale (bug#48307) + + (mouse-wheel-global-text-scale): Move down closer to mouse-wheel-text-scale. + (mouse-wheel-scroll-amount): Add :value global-text-scale and mention it + in the docstring. + (mouse-wheel-global-text-scale, mouse-wheel--setup-bindings): + Add mouse-wheel-down-alternate-event and mouse-wheel-up-alternate-event. + Allow a list of modifiers for 'text-scale'. + +2022-07-03 Stefan Kangas <stefan@marxist.se> + + Improve calc-dispatch-help docstring + + * lisp/calc/calc-misc.el (calc-dispatch-help): Use command + substitutions. + +2022-07-03 Michael Albinus <michael.albinus@gmx.de> + + Tramp code cleanup + + * lisp/net/tramp-cache.el (tramp-get-file-property) + (tramp-get-connection-property): Make DEFAULT optional. Adapt callees. + + * lisp/net/tramp.el: + * lisp/net/tramp-adb.el: + * lisp/net/tramp-cmds.el: + * lisp/net/tramp-compat.el: + * lisp/net/tramp-crypt.el: + * lisp/net/tramp-ftp.el: + * lisp/net/tramp-fuse.el: + * lisp/net/tramp-gvfs.el: + * lisp/net/tramp-integration.el: + * lisp/net/tramp-sh.el: + * lisp/net/tramp-smb.el: + * lisp/net/tramp-sshfs.el: + * lisp/net/trampver.el: Code cleanup. + + * test/lisp/net/tramp-tests.el (tramp--test-sh-no-ls--dired-p) + (tramp--test-with-proper-process-name-and-buffer): Code cleanup. + +2022-07-03 Florian Rommel <mail@florommel.de> + + abort-redisplay: Add missing unbind_to in 'recenter' + + * src/window.c (recenter): Add ubind_to before early return. + (Bug#56369) + +2022-07-03 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/elec-pair.el: Simplify last change + + * lisp/elec-pair.el (electric-pair--with-syntax): + Rename from `electric-pair--with-text-syntax`. + Make `start` mandatory. Run `body` in the normal syntax if `start` is nil. + (electric-pair--with-syntax-1): New function, extracted from + `electric-pair--with-text-syntax`. + (electric-pair-syntax-info, electric-pair--balance-info): + Adjust calls accordingly. + +2022-07-03 Stefan Kangas <stefan@marxist.se> + + Fix dired-goto-subdir prompt + + * lisp/dired-aux.el (dired-goto-subdir): Fix prompt and improve + docstring. Add interactive mode tag for dired-mode. + +2022-07-03 Stefan Kangas <stefan@marxist.se> + + Fix warnings in my last commit + + * lisp/textmodes/emacs-news-mode.el (outline): Require. + +2022-07-03 Stefan Kangas <stefan@marxist.se> + + Improve navigation keybindings in emacs-news-mode + + * lisp/textmodes/emacs-news-mode.el (emacs-news-common-map): New + defvar-keymap. Bind navigation commands as in 'org-mode' and + 'outline-minor-mode'. + (emacs-news-mode-map): Inherit from 'emacs-news-common-map'. + (emacs-news-view-mode-map): New defvar-keymap; inherit from + 'emacs-news-common-map'. + +2022-07-03 Eli Zaretskii <eliz@gnu.org> + + Fix implementation of 'reset' face values + + * src/xfaces.c (Finternal_merge_in_global_face) + (gui_supports_face_attributes_p): Only modify local copy of face + attributes when replacing 'reset' pseudo-values with real values. + (Bug#38771) + +2022-07-03 Stefan Kangas <stefan@marxist.se> + + Move dired-clean-up-buffers-too to dired.el + + * lisp/dired-x.el (dired-clean-up-buffers-too) + (dired-clean-confirm-killing-deleted-buffers): Move from here... + * lisp/dired.el (dired-clean-up-buffers-too) + (dired-clean-confirm-killing-deleted-buffers): ...to + here. (Bug#21981) + (dired-clean-up-after-deletion): Adjust documentation. + * etc/NEWS: Announce the change. + +2022-07-03 kobarity <kobarity@gmail.com> + + Fix `python-nav-beginning-of-defun' line continuation using backslash + + * lisp/progmodes/python.el (python-nav--beginning-of-defun): Allow + line continuation using backslash in defuns (bug#55702). + (python-info-looking-at-beginning-of-defun): Add CHECK-STATEMENT + argument. + +2022-07-03 Stefan Kangas <stefan@marxist.se> + + * lisp/dired-x.el (dired-omit-size-limit): Increase value. + +2022-07-03 Lars Ingebrigtsen <larsi@gnus.org> + + Make string-limit with encoding return complete glyphs + + * lisp/emacs-lisp/subr-x.el (string-limit): Return more correct + results in the CODING-SYSTEM case for coding systems with BOM and + charset designations (bug#48324). Also amend the algorithm to + return complete glyphs, not just complete code points. + +2022-07-03 Po Lu <luangruo@yahoo.com> + + Improve performance when rejecting XI touch event + + * src/xterm.c (handle_one_xevent): Avoid sync handling simple + error. + +2022-07-03 Lars Ingebrigtsen <larsi@gnus.org> + + Fix streaming problems in nnimap-retrieve-headers + + * lisp/gnus/nnimap.el (nnimap-retrieve-headers): Don't stream the + UID FETCH commands, since the server may return the results + out-of-order (bug#56332). + +2022-07-03 Lars Ingebrigtsen <larsi@gnus.org> + + Add new function `seq-split' + + * doc/lispref/sequences.texi (Sequence Functions): Document it. + + * lisp/emacs-lisp/seq.el (seq-split): New function. + + * lisp/emacs-lisp/shortdoc.el (sequence): Mention it. + +2022-07-03 Allen Li <darkfeline@felesatra.moe> + + elec-pair: Fix bug incorrectly hiding syntax-propertize-function + + * lisp/elec-pair.el (electric-pair--with-text-syntax): New macro. + (electric-pair-syntax-info): + (electric-pair--balance-info): + (electric-pair--syntax-ppss, electric-pair--balance-info): Use it. + (electric-pair--with-uncached-syntax): Remove (bug#49629). + + The main bug that this is fixing is `syntax-propertize-function' being + hidden in `electric-pair--balance-info' when the original syntax table + is to be used, not `electric-pair-text-syntax-table'. + + Notably, this causes `electric-pair-mode' to often misbehave in HTML + files when pairing angle brackets. + + This commit also flushes the cache before installing + `electric-pair-text-syntax-table', to prevent cached syntax for the + original table from affecting things. + +2022-07-03 Po Lu <luangruo@yahoo.com> + + Improve efficiency of `x_frame_highlight' and `x_frame_unhighlight' + + * src/xterm.c (x_frame_highlight, x_frame_unhighlight): Don't + sync catching errors. + +2022-07-03 Stefan Kangas <stefan@marxist.se> + + * lisp/dired.el (dired-do-eww): New command. + +2022-07-03 Stefan Kangas <stefan@marxist.se> + + Improve dired-do-{info,man} error handling + + * lisp/dired.el (dired-do-man, dired-do-info): Use + 'dired-get-file-for-visit' to get better error handling. + Interactive mode tagging. + +2022-07-03 Eli Zaretskii <eliz@gnu.org> + + Implement pseudo-value 'reset' of face attributes + + * doc/lispref/display.texi (Face Attributes): + * etc/NEWS: Document the new pseudo-value 'reset'. + + * src/xfaces.c (realize_named_face, lookup_derived_face) + (gui_supports_face_attributes_p, lookup_named_face) + (Finternal_merge_in_global_face, merge_named_face, merge_faces): + Handle the 'reset' pseudo-value of a face's attribute. + (syms_of_xfaces): New symbol 'reset'. + (RESET_P): New macro. + (check_lface_attrs, Finternal_set_lisp_face_attribute): Allow + 'reset' as a value of any attribute except ':inherit'. + (Bug#38771) + +2022-07-03 James Thomas <jimjoe@gmx.net> + + * lisp/leim/quail/indian.el ("malayalam-mozhi"): Set DETERMINISTIC. + +2022-07-03 Po Lu <luangruo@yahoo.com> + + Fix deadlocks with very old versions of libXi + + * src/xfns.c (setup_xi_event_mask, Fx_create_frame): Set + `xi_mask' ourselves if the version of libXi is too old to have + working XIGetSelectedEvents. + * src/xterm.c (x_destroy_window): Free `xi_mask' with xfree in + that case. + +2022-07-03 Eli Zaretskii <eliz@gnu.org> + + Document 'jit-lock-debug-mode' + + * doc/lispref/modes.texi (Other Font Lock Variables): Document + 'jit-lock-debug-mode'. + +2022-07-03 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + dc3d01a5af CC Mode: Fix a c-backward-token-2 call wrongly jumping bac... + e390396e68 Doc fixes; don't use obsolete names + c85f7c2e8a Don't refer to obsolete alias for insert-char + 60ad45c5d2 Don't use obsolete face name in manoj-dark-theme + +2022-07-02 Po Lu <luangruo@yahoo.com> + + Speed up receiving drops over slow connections + + * lisp/x-dnd.el (x-dnd-debug-errors): New variable. + (x-dnd-handle-drag-n-drop-event): Bind + `x-fast-protocol-requests' to t if that is off. + + * src/xfns.c (Fx_change_window_property): + (Fx_delete_window_property): + * src/xselect.c (Fx_send_client_message, x_send_client_event): + Don't sync to check for errors if fast protocol requests are + enabled. + + * src/xterm.c (x_catch_errors_for_lisp, x_check_errors_for_lisp) + (x_uncatch_errors_for_lisp): New functions. + (syms_of_xterm): New variable `x-fast-protocol-requests'. + * src/xterm.h: Update prototypes. + +2022-07-02 Lars Ingebrigtsen <larsi@gnus.org> + + REQUIRE-MATCH doc string clarification + + * src/minibuf.c (Fcompleting_read): + * lisp/minibuffer.el (read-file-name): Clarify what the return + value is in the REQUIRE-MATCH function case. + +2022-07-02 Lars Ingebrigtsen <larsi@gnus.org> + + Fix some typos in NEWS + +2022-07-02 Lars Ingebrigtsen <larsi@gnus.org> + + Add sanity check for Emacsen distributed without .el files + + * src/lread.c (maybe_swap_for_eln): Add sanity check for Emacsen + distributed without .el files (bug#48342). + +2022-07-02 Alan Mackenzie <acm@muc.de> + + CC Mode: Fix a c-backward-token-2 call wrongly jumping back over macros. + + This fixes bug #56256. + + * lisp/progmodes/cc-fonts.el (c-font-lock-c++-lambda-captures): Replace a + c-backward-token-2, which could jump back too far leading to an infinite + loop, with a save-excursion to remember the point we've got to go back to. + +2022-07-02 Lars Ingebrigtsen <larsi@gnus.org> + + Filter out nul bytes when killing from a *grep* buffer + + * lisp/progmodes/grep.el (grep-mode): Filter out the nul bytes + (bug#48321). + +2022-07-02 Manuel Giraud <manuel@ledu-giraud.fr> + + Add more separators to longlines-mode + + * lisp/obsolete/longlines.el (longlines-breakpoint-chars): New + custom to have multiple breakpoint chars. + (longlines-set-breakpoint): Add a target-column parameter and use + `longlines-breakpoint-chars'. + (longlines-find-break-backward, longlines-find-break-foreward): + Use `longlines-breakpoint-chars'. + (longlines-wrap-line): Do not insert space upon merging, just + remove the soft newline. Fix "space before tab" in indent. + (longlines-merge-lines-p): Use the new target-column parameter to + find out if the next line could be merged with the current one. + (longlines-encode-region): Do not replace a soft newline with a + space, just remove it. + * etc/NEWS: New user option 'longlines-breakpoint-chars' + +2022-07-02 Lars Ingebrigtsen <larsi@gnus.org> + + Unobsolete longlines-mode (bug#18589) + +2022-07-02 Stefan Kangas <stefan@marxist.se> + + Use help-key-binding face in text scale adjust messages + + * lisp/face-remap.el (text-scale-adjust) + (global-text-scale-adjust): Use substitute-command-keys. + +2022-07-02 Stefan Kangas <stefan@marxist.se> + + Use help-key-binding face in repeat-mode message + + * lisp/repeat.el (repeat-echo-message-string): Use + substitute-command-keys. + +2022-07-02 Stefan Kangas <stefan@marxist.se> + + Make dired-jump repeatable in repeat-mode + + * lisp/dired.el (dired-jump-map): New variable. + (dired-jump): Put 'repeat-map' property with 'dired-jump-map'. + +2022-07-02 Stefan Kangas <stefan@marxist.se> + + Move dired-info and dired-man from dired-x to dired + + * lisp/dired-x.el (dired-bind-man, dired-bind-info): Change into + defvars and make obsolete. + (dired-extra-startup): Doc fix. + (dired-info, dired-man): Move from here... + * lisp/dired.el (dired-do-info, dired-do-man): ...to here and + rename. (Bug#21981) + + * lisp/dired.el (dired-mode-map): Bind 'I' and 'N' to 'dired-do-info' + and 'dired-do-man'. + + * doc/misc/dired-x.texi (Miscellaneous Commands): Remove documentation + of 'dired-info' and 'dired-man'. + * doc/emacs/dired.texi (Dired Enter): Document 'dired-do-info' and + 'dired-do-man'. + * etc/NEWS: Announce the above changes. + +2022-07-02 Stefan Kangas <stefan@marxist.se> + + Prefer defvar-keymap in nxml/*.el + + * lisp/nxml/nxml-mode.el (nxml-mode-map): + * lisp/nxml/nxml-outln.el (nxml-outline-prefix-map) + (nxml-outline-show-map, nxml-outline-hiding-tag-map) + (nxml-outline-showing-tag-map): Prefer defvar-keymap. + +2022-07-02 Po Lu <luangruo@yahoo.com> + + Fix error handling for XCB Xlib + + * src/xterm.c (xm_send_drop_message) + (xm_send_top_level_enter_message, xm_send_drag_motion_message) + (xm_send_top_level_leave_message, x_dnd_compute_toplevels) + (x_dnd_send_enter, x_dnd_send_position, x_dnd_send_leave) + (x_dnd_send_drop, handle_one_xevent, x_catch_errors_with_handler) + (x_request_can_fail, x_clean_failable_requests) + (x_ignore_errors_for_next_request, x_stop_ignoring_errors) + (x_uncatch_errors, x_check_errors, x_had_errors_p, x_error_handler) + (frame_set_mouse_pixel_position, x_focus_frame): Record serial + sequences instead of simply the next request when ignoring a + single request. Use XNextRequest instead of NextRequest, since + the latter is unreliable when using Xlib built with XCB. + + * src/xterm.h (struct x_failable_request): New struct.. + (struct x_display_info): Make failable request variables the + right type. + +2022-07-02 Po Lu <luangruo@yahoo.com> + + Fix display disconnect when tooltip frame is alive + + * src/xterm.c (x_connection_closed): Don't dereference nil when + loop finds a tooltip frame. + +2022-07-02 Gregory Heytings <gregory@heytings.org> + + Command for global adjustments to the default face + + * lisp/face-remap.el (global-text-scale-adjust): New command. + (text-scale-adjust): Refer to the new related command. + (global-text-scale-adjust-resizes-frames): New user option. + + * lisp/mwheel.el (mouse-wheel-scroll-amount): Add the new command + to the mouse wheel scrolling events. + (mouse-wheel-global-text-scale): New function. + (mouse-wheel-mode): Use the new function with mouse-wheel-mode. + + * doc/emacs/display.texi (Text Scale): Document the new command and + the new user option. + + * etc/NEWS: Mention the new command and its bindings, and the new + user option. + +2022-07-02 Lars Ingebrigtsen <larsi@gnus.org> + + Add a comment about buffer_local_value/find_symbol_value + + * src/data.c: Note that buffer_local_value is very similar + (bug#48281). + +2022-07-02 Lars Ingebrigtsen <larsi@gnus.org> + + Allow NUL characters in JSON input + + * src/json.c (Fjson_parse_string, Fjson_parse_buffer): Allow NUL + characters in JSON (bug#48274). + +2022-07-02 Lars Ingebrigtsen <larsi@gnus.org> + + Make comint-watch-for-password-prompt more resilient + + * lisp/comint.el (comint-watch-for-password-prompt): Don't try to + send commands to the process after it's exited (bug#56336). (This + commonly happens when invoked via `M-&'.) + +2022-07-02 Michael Albinus <michael.albinus@gmx.de> + + Preserve connection-local settings in dired + + * lisp/dired-aux.el (dired-shell-command): + Preserve connection-local settings. (Bug#56333) + +2022-07-02 Lars Ingebrigtsen <larsi@gnus.org> + + Add native-compile-prune-cache command + + * lisp/emacs-lisp/comp.el (native-compile-prune-cache): New + command (bug#48108). + +2022-07-02 Lars Ingebrigtsen <larsi@gnus.org> + + native-comp-eln-load-path doc string fix + + * src/comp.c (syms_of_comp): Fix grammar in doc string. + +2022-07-02 Stefan Kangas <stefan@marxist.se> + + Doc fixes; don't use obsolete names + + * etc/compilation.txt: + * lisp/mh-e/mh-funcs.el (mh-kill-folder): Don't use obsolete + names. + +2022-07-02 Stefan Kangas <stefan@marxist.se> + + Don't refer to obsolete alias for insert-char + + * lisp/leim/quail/persian.el: Don't refer to obsolete alias for + insert-char. + +2022-07-02 Stefan Kangas <stefan@marxist.se> + + Don't use obsolete face name in manoj-dark-theme + + * etc/themes/manoj-dark-theme.el (change-log-acknowledgment): Don't + use obsolete/non-existent face name. + +2022-07-02 Eli Zaretskii <eliz@gnu.org> + + * src/sheap.h (STATIC_HEAP_SIZE): Double the size of static heap. + +2022-07-02 Po Lu <luangruo@yahoo.com> + + Completely get rid of races during Motif drag window creation + + * src/xterm.c (x_special_window_exists_p): New function. + (xm_get_drag_window_1): Rework workflow and display grabbing. + +2022-07-02 Stefan Kangas <stefan@marxist.se> + + * src/xfns.c (Fx_server_input_extension_version): Fix typo. + +2022-07-02 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 1c3d107cb5 Fix "C-u C-x =" for SPC + 7e33618bbc ; * src/fns.c (Frequire): Fix a typo in the doc string. (... + 6908309827 Doc fixes: don't refer to some obsolete items + dc3cb749f3 Remove obsolete cust-print from elisp index + 9ffbbddf8e * admin/make-tarball.txt: Minor clarifications. + f5421104e9 Fix external image conversion on MS-Windows + 6f22631a63 * doc/emacs/buffers.texi (Indirect Buffers): Mention modif... + + # Conflicts: + # doc/emacs/buffers.texi + # lisp/emacs-lisp/nadvice.el + # lisp/image/image-converter.el + +2022-07-02 Lele Gaifax <lele@metapensiero.it> (tiny change) + + Fix repeated "the" + + * configure.ac (EMACS_CONFIG_FEATURES): + * etc/NEWS: + * lisp/dnd.el (dnd-begin-text-drag): + * src/pgtkfns.c (Fx_display_mm_height, Fx_display_mm_width): + (Fx_display_backing_store, Fx_display_visual_class): + * src/xterm.c: Fix repeated "the". (Bug#56341) + +2022-07-02 Visuwesh <visuweshm@gmail.com> + + Fix fallout from bug#50143 + + * lisp/language/ind-util.el (indian-tml-base-table) + (indian-tml-base-digits-table): Add TAMIL OM sign and more Sanskrit + consonants to the table (bug#50143) (bug#56323). + +2022-07-02 Omar Polo <op@omarpolo.com> + + Improve rcirc's CertFP documentation + + * doc/misc/rcirc.texi: Clarify meaning of key and password + * lisp/net/rcirc.el (rcirc-authinfo): Add example + +2022-07-02 Po Lu <luangruo@yahoo.com> + + Fix drag-and-drop from Chromium family browsers + + * lisp/x-dnd.el (x-dnd-copy-types): New defcustom. + (x-dnd-default-test-function): Check if data type warrants using + `copy'. + (x-dnd-do-direct-save): Offer application/octet-stream as well. + +2022-07-02 Stefan Kangas <stefan@marxist.se> + + * lisp/ruler-mode.el (ruler-mode-map): Use defvar-keymap. + + * lisp/epa-mail.el (epa-mail-mode-map): Use defvar-keymap. + +2022-07-01 Stefan Kangas <stefan@marxist.se> + + Font lock \\`' command substitutions in docstrings + + * lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2): + Support \\`' command substitutions. + +2022-07-01 Po Lu <luangruo@yahoo.com> + + Add interactive XDS test + + * test/lisp/dnd-tests.el (dnd-tests-direct-save): New test. + +2022-07-01 Stefan Monnier <monnier@iro.umontreal.ca> + + * editfns.c (Fbyte_to_string): Use `make_unibyte_string` + +2022-07-01 Po Lu <luangruo@yahoo.com> + + Return the correct action from the Lisp side of drag-and-drop + + * lisp/x-dnd.el (x-dnd-handle-drag-n-drop-event): Select + `window' when handling internal DND events. + (x-dnd-handle-unsupported-drop): Return an appropriate action. + * src/keyboard.c (kbd_buffer_get_event): + * src/termhooks.h (enum event_kind): Delete + `UNSUPPORTED_DROP_EVENT'. + * src/xterm.c (x_dnd_send_unsupported_drop): Set flags instead + of recording input event. + (x_clear_dnd_monitors): Rename to `x_clear_dnd_variables'. Also + clear unsupported drop data. + (x_dnd_begin_drag_and_drop): Run unsupported drop function + inline (and safely), and use its return value if it returned a + symbol. + (syms_of_xterm): Update doc string of + `x-dnd-unsupported-drop-function'. + + * src/xterm.h: Update declarations. + +2022-07-01 Stefan Kangas <stefan@marxist.se> + + Use command substitution in kmacro.el + + * lisp/kmacro.el (kmacro-bind-to-key, kmacro-view-macro-repeat): + Use command substitution. + +2022-07-01 Stefan Kangas <stefan@marxist.se> + + * doc/misc/erc.texi (Connecting): Fix typo. + +2022-07-01 Eli Zaretskii <eliz@gnu.org> + + Fix "C-u C-x =" for SPC + + * lisp/descr-text.el (describe-char): Don't report 'nobreak-space' + face for SPC. (Bug#56337) + +2022-07-01 Eli Zaretskii <eliz@gnu.org> + + Fix quoting of file names in 'ctags' + + * lib-src/etags.c (main) [WINDOWSNT || MSDOS]: Quote file names + according to the rules of the system shells. + +2022-07-01 Lars Ingebrigtsen <larsi@gnus.org> + + Add support for <mark> in shr + + * lisp/net/shr.el (shr-mark): New face (bug#48211). + (shr-tag-mark): New function + +2022-07-01 Lars Ingebrigtsen <larsi@gnus.org> + + Fix elisp-byte-compile-buffer requirements + + * lisp/progmodes/elisp-mode.el (elisp-byte-compile-buffer): + Require bytecomp so that byte-compile-dest-file-function is + defined. (The byte compiler didn't catch this, because it's + defined in bytecomp.) + +2022-07-01 dick r. chiang <dick.r.chiang@gmail.com> + + Fix typo in Property Search manual entry + + * doc/lispref/text.texi (Property Search): Fix typo (bug#56329). + +2022-07-01 Lars Ingebrigtsen <larsi@gnus.org> + + Make time-stamp-tests.el work in a Norwegian language environment + + The short version of names for days/month is not necessary the same as + limiting the string with a #n operator. For instance: + + (format-time-string "%^A" time) + => "FREDAG" + + (format-time-string "%^a" time) + => "FR." + + (time-stamp-string "%#3a" time) + => "FRE" + +2022-07-01 Po Lu <luangruo@yahoo.com> + + Document XDS stuff + + * doc/emacs/frames.texi (Drag and Drop): + * doc/lispref/frames.texi (Drag and Drop): Add documentation + about XDS features. + * etc/NEWS: Tag entry. + +2022-07-01 Lars Ingebrigtsen <larsi@gnus.org> + + Make it easier to debug nnimap-retrieve-headers + + * lisp/gnus/nnimap.el (nnimap--max-retrieve-headers): New variable + to ease debugging. + (nnimap-retrieve-headers): Use it. + +2022-07-01 Lars Ingebrigtsen <larsi@gnus.org> + + Make the emoji-zoom commands use a transient map for repetition + + * lisp/international/emoji.el (emoji-zoom-increase) + (emoji-zoom-decrease): Use a transient map for convenience. + +2022-07-01 Po Lu <luangruo@yahoo.com> + + Expand file names read from XDS functions + + * lisp/x-dnd.el (x-dnd-handle-xds-drop): Expand file names + before use. Some GUI dialogs read un-expanded file names. + +2022-07-01 Po Lu <luangruo@yahoo.com> + + Prevent XdndPosition messages from rarely being sent out of band + + * src/xterm.c (handle_one_xevent): Don't clear + `x_dnd_waiting_for_status_window' if a pending position message + was sent in reply to an XdndStatus event. + +2022-07-01 Po Lu <luangruo@yahoo.com> + + Support receiving XDS drops correctly + + * etc/NEWS: Announce new feature. It is not yet documented. + * lisp/x-dnd.el (x-dnd-known-types): Add XdndDirectSave0. + (x-dnd-direct-save-function): New defcustom. + (x-dnd-xdnd-to-action): Add `direct-save'. + (x-dnd-maybe-call-test-function): If XDS is present, use `direct-save'. + (x-dnd-find-type): New function. + (x-dnd-handle-xdnd): Handle XDS position and drop messages. + (x-dnd-handle-direct-save): Don't use local-file-uri if nil. + (x-dnd-save-direct): New function. + (x-dnd-handle-octet-stream-for-drop): + (x-dnd-handle-xds-drop): New functions. + +2022-07-01 Stefan Kangas <stefan@marxist.se> + + Update publicsuffix.txt from upstream + + * etc/publicsuffix.txt: Update from + https://publicsuffix.org/list/public_suffix_list.dat + dated 2022-06-29 19:13:08 UTC. + +2022-06-30 Po Lu <luangruo@yahoo.com> + + Add tests for XDS protocol support + + * test/lisp/x-dnd-tests.el (x-dnd-tests-xds-property-value): New + variable. + (x-window-property): Handle new kind of window property. + (x-dnd-tests-xds-target-dir, x-dnd-tests-xds-name) + (x-dnd-tests-xds-include-hostname): New variables. + (x-dnd-tests-call-xds-converter): New function. + (x-begin-drag, x-change-window-property): + (x-delete-window-property): New replacement functions. + (x-dnd-tests-do-direct-save-internal): New function. + (x-dnd-tests-do-direct-save): New test. + +2022-06-30 Po Lu <luangruo@yahoo.com> + + Fix `clipboard-yank' inserting off the kill ring instead of CLIPBOARD + + * lisp/select.el (gui-last-cut-in-clipboard) + (gui-last-cut-in-primary): New variables. + (gui-select-text): Set those variables. + (gui--selection-value-internal, gui-selection-value): Don't + return nil if the last cut did not own the chosen + selection. (bug#56325) + +2022-06-30 Po Lu <luangruo@yahoo.com> + + Disable middle click selection emulation during XDS + + * doc/lispref/frames.texi (Drag and Drop): Document new + variable. + * lisp/x-dnd.el (x-dnd-do-direct-save): Disable drop emulation + during XDS drag-and-drop. + + * src/keyboard.c (kbd_buffer_get_event): Handle recorded value. + * src/xterm.c (x_dnd_do_unsupported_drop): Return if new + variable is nil. + (x_dnd_send_unsupported_drop): Record value of new variable in + events. + (x_dnd_begin_drag_and_drop): Handle recorded value. + (syms_of_xterm): New variable `x-dnd-use-unsupported-drop'. + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Update ERC's Info doc with network-ID related changes + + * doc/misc/erc.texi: Update the `erc' and `erc-tls' entry-point + sections with the new :id keyword parameter. Expand the auth-info + related information in the passwords section. Remove all mention of + the variable `erc-rename-buffers', whose "on" behavior has been made + permanent. + + * etc/ERC-NEWS: Add new section for future 5.5 release. + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Optionally prevent sending multiline input in ERC + + * lisp/erc/erc.el (erc-inhibit-multiline-input): Add option to cap the + number of lines to be sent before admonishing the user. + (erc-ask-about-multiline-input): Add option to ask instead of warning + user when `erc-inhibit-multiline-input' is reached. + (erc--check-prompt-input-for-excess-lines): Add validator to possibly + warn when too many lines are submitted for transmission. + + * test/lisp/erc/erc-tests.el + (erc--check-prompt-input-for-excess-lines): Add test. + (Bug#54536) + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Improve ERC's handling of multiline prompt input + + * lisp/erc/erc.el (erc--pre-send-split-functions): Add new internal + hook allowing members to revise individual lines before sending. This + was created with an eye toward possibly exporting it publicly as a + customizable option. + (erc-last-input-time): Tweak meaning of variable to match likely + original intent, which is that it's only updated on successful calls + to `erc-send-current-line'. + (erc--discard-trailing-multiline-nulls): Conditionally truncate list + of lines to be sent, skipping trailing blanks. This constitutes a + behavioral change. But, considering the nature of the bug being + fixed, it is thought to be justified. + (erc--input-split): Add new internal struct containing split input + lines and flag for command detection. + (erc--input-line-delim-regexp): Add regex var for splitting multiline + prompt input. + (erc--blank-in-multiline-p): Add helper for detecting blank lines. + (erc--check-prompt-input-for-multiline-blanks, + erc--check-prompt-input-for-point-in-bounds, + erc--check-prompt-input-for-running-process): New functions to + encapsulate logic for various pre-flight idiot checks. + (erc--check-prompt-input-functions): Add new hook for validating + prompt input prior to clearing it, internal for now. + (erc-send-current-line): Pre-screen for blank lines and bail out if + necessary. + (erc-send-input): Add optional param to skip checking for blank lines. + Call hook `erc--pre-send-split-functions'. + + * test/lisp/erc/erc-tests.el (erc-ring-previous-command): Use new test + helper. + (erc--input-line-delim-regexp, + erc--blank-in-multiline-input-p): Add tests. + (erc-tests--send-prep, erc-tests--set-fake-server-process, + erc-tests--with-process-input-spy): Add test helpers. + (erc--check-prompt-input-functions, erc-send-current-line, + erc-send-whitespace-lines): Add tests. + (Bug#54536) + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Fix regression in erc-send-input-line + + * lisp/erc/erc.el (erc-send-input-line): Restore remedial single-space + padding to ensure empty messages typed at the prompt without an + explicit /msg aren't rejected by the server. This behavior is only + noticeable when `erc-send-whitespace-lines' is active. + + * test/lisp/erc/erc-tests.el (erc-process-input-line): Add trailing + newline to more correctly simulate how it's actually called by + `erc-send-input'. (Bug#50008) + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Standardize auth-source queries in ERC + + * lisp/erc/erc.el (erc-password): Deprecate variable only used by + `erc-select-read-args'. Server passwords are primarily used as + surrogates for other forms of authentication. Such use is common but + nonstandard and often discouraged in favor of the de facto standard, + SASL. Folks in the habit of invoking `erc(-tls)' interactively should + be encouraged to use auth-source instead. + (erc-select-read-args): Before this change, `erc-select-read-args' + offered to use the value of a non-nil `erc-password' as the :password + argument for `erc' and `erc-tls', referring to it as the "default" + password. And when `erc-prompt-for-password' was nil and + `erc-password' wasn't, the latter was passed along unconditionally. + This only further complicated an already confusing situation for new + users, who in most cases shouldn't be worried about sending a PASS + command at all. Until SASL arrives, they should provide server + passwords manually or learn to use auth-source. + (erc-auth-source-server-function, erc-auth-source-join-function): New + user options for retrieving a password externally, ostensibly by + calling `auth-source-search'. + (erc--auth-source-determine-params-defaults): New helper for + `erc--auth-source-search' with potential for exporting publicly in the + future. Favors :host and :port fields above others. Prioritizes + network IDs over announced servers and dialed endpoints. + (erc--auth-source-determine-params-merge): Add new function for + merging contextual and default parameters. This is another contender + for possible exporting. + (erc--auth-source-search): New function for consulting auth-source and + sorting the result as filtered and prioritized by the previously + mentioned helpers. + (erc-auth-source-search): New function to serve as default + value for auth-source query-function options. + (erc-server-join-channel): Use user option for consulting auth-source + facility. Also accept nil for first argument (instead of server). + (erc-cmd-JOIN): Use above-mentioned facilities when joining new + channel. Omit server when calling `erc-server-join-channel'. Don't + filter target buffers twice. Don't call `switch-to-buffer', which + would create phantom buffers with names like target/server that were + never used. IOW, only switch to existing target buffers. + (erc--compute-server-password): Add new helper function for + determining password. + (erc-open, erc-determine-parameters): Move password figuring from the + first to the latter. + + * lisp/erc/erc-services.el + (erc-auth-source-services-function): Add new option for consulting + auth-source in a NickServ context. + (erc-nickserv-get-password): Pass network-context ID, when looking up + password in `erc-nickserv-passwords' and when formatting prompt for + user input. + (erc-nickserv-passwords): Add comment to custom option definition type + tag. + + * test/lisp/erc/erc-services-tests.el: Add new test file for above + changes. For now, stash auth-source-related tests here until a + suitable home can be found. + + * lisp/erc/erc-join.el (erc-autojoin--join): Don't pass session-like + entity from `erc-autojoin-channels-alist' match to + `erc-server-join-channel'. Allow that function to decide for itself + which host to look up if necessary. + + * test/lisp/erc/resources/base/auth-source/foonet.eld: New file. + * test/lisp/erc/resources/base/auth-source/nopass.eld: New file. + * test/lisp/erc/resources/erc-scenarios-common.el: New file. + * test/lisp/erc/resources/services/auth-source/libera.eld: New file. + * test/lisp/erc/erc-scenarios-auth-source.el: New file. + * test/lisp/erc/erc-scenarios-base-reuse-buffers.el: New file. + * test/lisp/erc/erc-scenarios-join-auth-source.el: New file. + * test/lisp/erc/resources/base/reuse-buffers/channel/barnet.eld: New file. + * test/lisp/erc/resources/base/reuse-buffers/channel/foonet.eld: New file. + * test/lisp/erc/resources/join/auth-source/foonet.eld: New file. + (Bug#48598) + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Favor network identities in erc-join + + * lisp/erc/erc-join.el (erc-autojoin-server-match): Favor network + identities, falling back on old definition. + (erc-autojoin--join): Add new helper containing common code from + hookees `erc-autojoin-after-ident' and `erc-autojoin-channels'. + (erc-autojoin-after-ident, erc-autojoin-channels): No longer make a + point of returning nil because the hooks they're registered on, + `erc-nickserv-identified-hook' and `erc-after-connect', don't stop on + success. + (erc-autojoin--mutate): Add helper for `erc-autojoin-add' and + `erc-autojoin-remove'. + (erc-autojoin-add, erc-autojoin-remove): Favor given network + identities, over networks, when matching keys for + `erc-autojoin-channels-alist'. + + * test/lisp/erc/erc-scenarios-base-reconnect.el: New file. + * test/lisp/erc/erc-scenarios-join-netid-newcmd-id.el: New file. + * test/lisp/erc/erc-scenarios-join-netid-newcmd.el: New file. + * test/lisp/erc/erc-scenarios-join-netid-recon-id.el: New file. + * test/lisp/erc/erc-scenarios-join-netid-recon.el: New file. + * test/lisp/erc/resources/erc-scenarios-common.el: New file. + * test/lisp/erc/resources/join/legacy/foonet.eld: New file. + * test/lisp/erc/resources/join/network-id/barnet.eld: New file. + * test/lisp/erc/resources/join/network-id/foonet-again.eld: New file. + * test/lisp/erc/resources/join/network-id/foonet.eld: New file. + * test/lisp/erc/resources/join/reconnect/foonet-again.eld: New file. + * test/lisp/erc/resources/join/reconnect/foonet.eld: New file. + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Don't call erc-auto-query twice on PRIVMSG + + * lisp/erc/erc-backend.el (erc-server-JOIN): Use `erc--open-target' + instead of `erc-join'. + (erc-server-PRIVMSG): Don't call `erc-auto-query' at all, and instead + borrow the portion of its logic that detects when a query buffer + should be created instead of a channel buffer. + + * lisp/erc/erc.el (erc-cmd-QUERY): Update the mode line explicitly + after calling `erc-query' in case it's needed after `erc-setup-buffer' + runs. Simplify. + (erc-query, erc--open-target): Replace uses of `erc-query' + with `erc--open-target' and make the former obsolete. Don't call + `erc-update-mode-line' because `erc-open' already does that. + (erc-auto-query): Make this function obsolete. It was previously only + used in erc-backend.el and only sewed confusion. + (erc-query-on-unjoined-chan-privmsg): Add note questioning its role. + It was previously only used by the now deprecated `erc-auto-query'. + + * test/lisp/erc/erc-scenarios-misc.el + (erc-scenarios-base-mask-target-routing): Add test for server masks. + * test/lisp/erc/resources/base/mask-target-routing/foonet.eld: New file. + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Register erc-kill-buffer-function locally + + * lisp/erc/erc.el (erc-kill-buffer-function): Don't add hook when + loading file. Move to major-mode setup and make buffer-local instead. + Depends on tests in bug#48598. + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Add user-oriented test scenarios for ERC + + * test/lisp/erc/erc-scenarios-base-association-nick.el: New file. + * test/lisp/erc/erc-scenarios-base-association-samenet.el: New file. + * test/lisp/erc/erc-scenarios-base-association.el: New file. + * test/lisp/erc/erc-scenarios-base-compat-rename-bouncer.el: New file. + * test/lisp/erc/erc-scenarios-base-misc-regressions.el: New file. + * test/lisp/erc/erc-scenarios-base-netid-bouncer-id.el: New file. + * test/lisp/erc/erc-scenarios-base-netid-bouncer-recon-base.el: New file. + * test/lisp/erc/erc-scenarios-base-netid-bouncer-recon-both.el: New file. + * test/lisp/erc/erc-scenarios-base-netid-bouncer-recon-id.el: New file. + * test/lisp/erc/erc-scenarios-base-netid-bouncer.el: New file. + * test/lisp/erc/erc-scenarios-base-netid-samenet.el: New file. + * test/lisp/erc/erc-scenarios-base-reconnect.el: New file. + * test/lisp/erc/erc-scenarios-base-renick.el: New file. + * test/lisp/erc/erc-scenarios-base-reuse-buffers.el: New file. + * test/lisp/erc/erc-scenarios-base-unstable.el: New file. + * test/lisp/erc/erc-scenarios-base-upstream-recon-soju.el: New file. + * test/lisp/erc/erc-scenarios-base-upstream-recon-znc.el: New file. + * test/lisp/erc/erc-scenarios-misc.el: New file. + * test/lisp/erc/erc-scenarios-services-misc.el: New file. + * test/lisp/erc/resources/base/assoc/bouncer-history/barnet.eld: New file. + * test/lisp/erc/resources/base/assoc/bouncer-history/foonet.eld: New file. + * test/lisp/erc/resources/base/assoc/bumped/again.eld: New file. + * test/lisp/erc/resources/base/assoc/bumped/foisted.eld: New file. + * test/lisp/erc/resources/base/assoc/bumped/refoisted.eld: New file. + * test/lisp/erc/resources/base/assoc/bumped/renicked.eld: New file. + * test/lisp/erc/resources/base/assoc/multi-net/barnet.eld: New file. + * test/lisp/erc/resources/base/assoc/multi-net/foonet.eld: New file. + * test/lisp/erc/resources/base/assoc/reconplay/again.eld: New file. + * test/lisp/erc/resources/base/assoc/reconplay/foonet.eld: New file. + * test/lisp/erc/resources/base/assoc/samenet/chester.eld: New file. + * test/lisp/erc/resources/base/assoc/samenet/tester.eld: New file. + * test/lisp/erc/resources/base/assoc/samenet/tester2.eld: New file. + * test/lisp/erc/resources/base/channel-buffer-revival/foonet.eld: New file. + * test/lisp/erc/resources/base/flood/soju.eld: New file. + * test/lisp/erc/resources/base/gapless-connect/barnet.eld: New file. + * test/lisp/erc/resources/base/gapless-connect/foonet.eld: New file. + * test/lisp/erc/resources/base/gapless-connect/pass-stub.eld: New file. + * test/lisp/erc/resources/base/netid/bouncer/barnet-again.eld: New file. + * test/lisp/erc/resources/base/netid/bouncer/barnet-drop.eld: New file. + * test/lisp/erc/resources/base/netid/bouncer/barnet.eld: New file. + * test/lisp/erc/resources/base/netid/bouncer/foonet-again.eld: New file. + * test/lisp/erc/resources/base/netid/bouncer/foonet-drop.eld: New file. + * test/lisp/erc/resources/base/netid/bouncer/foonet.eld: New file. + * test/lisp/erc/resources/base/netid/bouncer/stub-again.eld: New file. + * test/lisp/erc/resources/base/netid/samenet/chester.eld: New file. + * test/lisp/erc/resources/base/netid/samenet/tester.eld: New file. + * test/lisp/erc/resources/base/reconnect/aborted-dupe.eld: New file. + * test/lisp/erc/resources/base/reconnect/aborted.eld: New file. + * test/lisp/erc/resources/base/reconnect/options-again.eld: New file. + * test/lisp/erc/resources/base/reconnect/options.eld: New file. + * test/lisp/erc/resources/base/reconnect/timer-last.eld: New file. + * test/lisp/erc/resources/base/reconnect/timer.eld: New file. + * test/lisp/erc/resources/base/renick/queries/bouncer-barnet.eld: New file. + * test/lisp/erc/resources/base/renick/queries/bouncer-foonet.eld: New file. + * test/lisp/erc/resources/base/renick/queries/solo.eld: New file. + * test/lisp/erc/resources/base/renick/self/auto.eld: New file. + * test/lisp/erc/resources/base/renick/self/manual.eld: New file. + * test/lisp/erc/resources/base/renick/self/qual-chester.eld: New file. + * test/lisp/erc/resources/base/renick/self/qual-tester.eld: New file. + * test/lisp/erc/resources/base/reuse-buffers/server/barnet.eld: New file. + * test/lisp/erc/resources/base/reuse-buffers/server/foonet.eld: New file. + * test/lisp/erc/resources/base/upstream-reconnect/soju-barnet.eld: New file. + * test/lisp/erc/resources/base/upstream-reconnect/soju-foonet.eld: New file. + * test/lisp/erc/resources/base/upstream-reconnect/znc-barnet.eld: New file. + * test/lisp/erc/resources/base/upstream-reconnect/znc-foonet.eld: New file. + * test/lisp/erc/resources/erc-scenarios-common.el: New file. + * test/lisp/erc/resources/networks/announced-missing/foonet.eld: New file. + * test/lisp/erc/resources/services/password/libera.eld: New file. + + Add test cases for locking down fundamental client behavior, much of + it involving the relationship between buffers and connections. Also + add accompanying resources subdir containing canned dialog scripts and + common code needed by various tests. For test cases demoing the + problematic behavior originally described in the initial report, see + update #4 on the bug tracker thread for bug#48598. Most reside in a + file named test/lisp/erc/erc-scenarios-48598.el introduced by the + patch "Add user-oriented test scenarios for ERC". + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Address long-standing ERC buffer-naming issues + + * lisp/erc/erc-backend.el (erc-server-connected): Revise doc string. + (erc-server-reconnect, erc-server-JOIN): Reuse original ID param from + the first connection when calling `erc-open'. + (erc-server-NICK): Apply same name generation process used by + `erc-open'; except here, do so for the purpose of "re-nicking". + Update network identifier and maybe buffer names after a user's own + nick changes. + + * lisp/erc/erc-networks.el (erc-networks--id, erc-networks--id-fixed, + erc-networks--id-qualifying): Define new set of structs to contain all + info relevant to specifying a unique identifier for a network context. + Add a new variable `erc-networks--id' to store a local reference to a + `erc-networks--id' object, shared among all buffers in a logical + session. + (erc-networks--id-given, erc-networks--id-create, + erc-networks--id-on-connect, erc-networks--id--equal-p, + erc-networks--id-qualifying-init-parts, + erc-networks--id-qualifying-init-symbol, + erc-networks--id-qualifying-grow-id, + erc-networks--id-qualifying-reset-id, + erc-networks--id-qualifying-prefix-length, + erc-networks--id-qualifying-update, erc-networks--id-reload, + erc-networks--id-ensure-comparable, erc-networks--id-sort-buffers): + Add new functions to support management of `erc-networks--id' struct + instances. + (erc-networks--id-sep): New variable for to help when formatting + buffer names. + (erc-obsolete-var): Define new generic context rewriter. + (erc-networks-shrink-ids-and-buffer-names, + erc-networks--refresh-buffer-names, + erc-networks--shrink-ids-and-buffer-names-any): Add functions to + reassess all network IDs and shrink them if necessary along with + affected buffer names. Also add function to rename buffers so that + their names are unique. Register these on all three of ERC's + kill-buffer hooks because an orphaned target buffer is enough to keep + its session alive. + (erc-networks-rename-surviving-target-buffer): Add new function that + renames a target buffer when it becomes the sole bearer of a name + based on a target that has become unique across all sessions and, in + most cases, all networks. IOW, remove the @NETWORK-ID suffix from the + last remaining channel or query buffer after its namesakes have all + been killed off. Register this function with ERC's target-related + kill-buffer hooks. + (erc-networks--examine-targets): Add new utility function that visits + all ERC buffers and runs callbacks when a buffer-name collision is + encountered. + (erc-networks--qualified-sep): Add constant to hold separator between + target and suffix. + (erc-networks--construct-target-buffer-name, + erc-networks--ensure-unique-target-buffer-name, + erc-networks--ensure-unique-server-buffer-name, + erc-networks--maybe-update-buffer-name): Add helpers to support + `erc-networks--reconcile-buffer-names' and friends. + (erc-networks--reconcile-buffer-names): Add new buffer-naming strategy + function and helper for `erc-generate-new-buffer-name' that only run + in target buffers. + (erc-determine-network, erc-networks--determine): Deprecate former and + partially replace with latter, which demotes RPL_ISUPPORT-derived + NETWORK name to fallback in favor of known `erc-networks-alist' + members as part of shift to network-based connection-identity policy. + Return sentinel on failure. Expect `erc-server-announced-name' to be + set, and signal when it's not. + (erc-networks--name-missing-sentinel): Value returned when new + function `erc-networks--determine' fails to find network name. The + rationale for not making this customizable is that the value signifies + the pathological case where a user of an uncommon IRC setup has not + yet set a mapping from announced- to network name. And the chances of + there being multiple unknown networks is low. + (erc-set-network-name, erc-networks--set-name): Deprecate former and + partially replace with latter. Ding with helpful message, and don't + set `erc-network' when network name is not found. + (erc-networks--ensure-announced): Add new fallback function to ensure + `erc-server-announced-name' is set. Register with post-MOTD hooks. + (erc-unset-network-name): Deprecate function unused internally. + (erc-networks--insert-transplanted-content, + erc-networks--reclaim-orphaned-target-buffers, + erc-networks--copy-over-server-buffer-contents, + erc--update-server-identity): Add helpers for + `erc-networks--rename-server-buffer'. The first re-associates all + existing target buffers that ought to be owned by the new server + process. The second grabs buffer text from an old, dead server buffer + before killing it. It then inserts that text above everything in the + current, replacement server buffer. The other two massage the IDs of + related sessions, possibly renaming them as well. They may also + uniquify the current session's network ID. + (erc-networks--init-identity): Add new function to perform one-time + session-related setup. This could be combined with + `erc-set-network-name'. + (erc-networks--rename-server-buffer): Add new function to replace + `erc-unset-network-name' as default `erc-disconnected-hook' member; + renames server buffers once network is discovered; added to/removed + from `erc-after-connect' hook on `erc-networks' minor mode. + (erc-networks--bouncer-targets): Add constant to hold target symbols + of well known bouncer-configuration bots. + (erc-networks-on-MOTD-end): Add primary network-context handler to run + on 376/422 functions, just before logical connection is officially + established. + (erc-networks-enable, erc-networks-mode): Register main network-setup + handler with 376/422 hooks. + + * lisp/erc/erc.el (erc-rename-buffers): Change this option's default + to t, remove the only instance where it's actually used, and make it + an obsolete variable. + (erc-reuse-buffers): Make this an obsolete variable, but take pains to + ensure its pre-28.1 behavior is preserved. That is, undo the + regression involving unwanted automatic reassociation of channel + buffers during joins, which arrived in ERC 5.4 and effectively + inverted the meaning of this variable, when nil, for channel buffers, + all without accompanying documentation or announcement. + (erc-generate-new-buffer-name): Replace current policy of appending a + slash and the invocation host name. Favor instead temporary names for + server buffers and network-based uniquifying suffixes for channels and + query buffers. Fall back to the TCP host:port<n> convention when + necessary. Accept additional optional params after the others. + (erc-get-buffer-create): Don't generate a new name when reconnecting, + just return the same buffer. `erc-open' starts from a clean slate + anyway, so this just keeps things simple. Also add optional params. + (erc-open): Add new ID param to for a network identifier explicitly + passed to an entry-point command. This is stored in the `given' slot + of the `erc-network--id' object. Also initialize the latter in new + connections and otherwise copy it over. As part of the push to recast + erc-networks.el as an essential library, set `erc-network' explicitly, + when known, rather than via hooks. + (erc, erc-tls): Add new ID keyword parameter and pass it to + `erc-open'. + (erc-log-irc-protocol): Use `erc--network-id' instead of the function + `erc-network' to determine preferred peer name. + (erc-format-target-and/or-network): This is called frequently from + mode-line updates, so renaming buffers here is not ideal. Instead, do + so in `erc-networks--rename-server-buffer'. + (erc-kill-server-hook): Add `erc-networks-shrink-ids-and-buffer-names' + as default member. + (erc-kill-channel-hook, erc-kill-buffer-hook): Add + `erc-networks-shrink-ids-and-buffer-names' and + `erc-networks-rename-surviving-target-buffer' as default member. + + * test/lisp/erc/erc-tests.el (erc-log-irc-protocol): Use network-ID + focused internal API. + + * test/lisp/erc/erc-networks-tests.el: Add new file that includes + tests for the above network-ID focused functions. + + See bug#48598 for background on all of the above. + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Add ERC test server and related resources + + * test/lisp/erc/resources/erc-d/erc-d.el: New file. + * test/lisp/erc/resources/erc-d/erc-d-u.el: New file. + * test/lisp/erc/resources/erc-d/erc-d-i.el: New file. + * test/lisp/erc/resources/erc-d/erc-d-t.el: New file. + * test/lisp/erc/resources/erc-d/erc-d-tests.el: New file. + + * test/lisp/erc/erc-scenarios-internal.el: New file to serve as + discoverable proxy for erc-d-tests. + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Discourage ill-defined use of buffer targets in ERC + + * lisp/erc/erc.el (erc-default-recipients, erc-default-target): + Explain that the variable has fallen out of favor and that the + function may have been used historically by third-party code for + detecting channel subscription status, even though that's never been + the case internally since at least the adoption of version control. + Recommend newer alternatives. + + (erc--current-buffer-joined-p): Add possibly temporary predicate for + detecting whether a buffer's target is a joined channel. The existing + means are inconsistent, as discussed in bug#48598. The mere fact that + they are disparate is unfriendly to new contributors. For example, in + the function `erc-autojoin-channels', the `process-status' of the + `erc-server-process' is used to detect whether a buffer needs joining. + That's fine in that specific situation, but it won't work elsewhere. + And neither will checking whether `erc-default-target' is nil, so + long as `erc-delete-default-channel' and friends remain in play. + + (erc-add-default-channel, erc-delete-default-channel, erc-add-query, + erc-delete-query): Deprecate these helpers, which rely on an unused + usage variant of `erc-default-recipients'. + + * lisp/erc/erc-services.el: remove stray `erc-default-recipients' + declaration. + + * lisp/erc/erc-backend.el (erc-server-NICK, erc-server-JOIN, + erc-server-KICK, erc-server-PART): wrap deprecated helpers to suppress + warnings. + + * lisp/erc/erc-join.el (erc-autojoin-channels): Use helper to detect + whether a buffer needs joining. Prefer this to server liveliness, as + explained above. + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Add eventual replacement for erc-default-recipients + + * lisp/erc/erc.el (erc--target, erc--target-channel, + erc--target-channel-local): Add new structs to hold info on a buffer's + target; stored in a local variable of the same name. + (erc--target-from-string): Add standalone constructor for + `erc--target'. + (erc--default-target): Add temporary internal getter to ease + transition to `erc--target' everywhere. + (erc-open): Create above items in non-server buffers. + + * lisp/erc/erc-backend.el (erc-server-NICK): Recreate `erc--target' + when necessary. + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Add helper to determine local channels in ERC + + * lisp/erc/erc.el (erc--valid-local-channel-p): Add internal helper to + determine whether an IRC channel is local according to its network's + CHANTYPES ISUPPORT parameter. + + * test/lisp/erc/erc-tests.el (erc--valid-local-channel-p): Add test + for this helper. + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Make ERC respect spaces in server passwords + + * lisp/erc/erc.el (erc-login): Also known as connection passwords, + these are sent as the sole arg to the PASS command, which is nowadays + often overloaded with other semantics imposed by various entities to + convey things like bouncer or services creds. + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Recognize ASCII and strict CASEMAPPINGs in ERC + + * lisp/erc/erc.el (erc-downcase, erc--casemapping-rfc1459-strict, + erc--casemapping-rfc1459): Add new translation tables for the latter + two mappings and use them in `erc-downcase'. + + * test/lisp/erc/erc-tests.el: Add test for `erc-downcase'. + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Update ISUPPORT handling in ERC + + * lisp/erc/erc-backend.el (erc--isupport-params): Add new variable to + hold a hashmap of parsed `erc-server-parameters' in a more useful + format. But keep `erc-server-parameters' around for public use. We + currently lack dedicated local variables for certain discovered IRC + session properties, such as what prefix characters are supported for + channels, etc. And the truth of this needs querying many times per + second at various points. As such, caching here seems justified but + can be easily removed if deemed otherwise because all ingredients are + internal. + (erc--parse-isupport-value): Add helper function that parses an + ISUPPORT value and returns the component parts with backslash-x hex + escapes removed. This can probably use some streamlining. + (erc--with-memoization): Add compat alias for use in internal ISUPPORT + getter. Should be moved to `erc-compat.el' when that library is fully + reincorporated. + (erc--get-isupport-entry): Add internal getter to look up ISUPPORT + items. + (erc-server-005): Treat `erc-server-response' "command args" field as + read-only. Previously, this field was set to nil after processing, + which was unhelpful to other parts of the library. Also call above + mentioned helper to parse values. And add some bookkeeping to handle + negation. + + * lisp/erc/erc-capab.el (erc-capab-identify-send-messages): Use + internal ISUPPORT getter. + + * lisp/erc/erc.el (erc-cmd-NICK, erc-parse-prefix, + erc-nickname-in-use): Use internal ISUPPORT getter. + + * test/lisp/erc/erc-tests.el: Add tests for the above mentioned + changes in erc-backend.el. + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Require erc-networks in erc.el + + * lisp/erc/erc.el: Require erc-networks.el, which ERC can't run + without these days. To sidestep the circular dependency, require it + last, just after erc-goodies. Remove the `declare-function' for + `erc-network-name' because it's not currently needed at load time. + (erc-log-irc-protocol, erc-hide-current-message-p): Remove `fboundp' + guard logic from `erc-network-name' invocations but preserve meaning + by interpreting `erc-network' being unset to mean module isn't loaded + or authoritative network detection has failed. + (erc-format-network): Likewise here. At the moment, this function + always returns the empty string because the function + `erc-network-name' always returns non-nil, perhaps from the + fallback/failure sentinel "Unknown", perhaps from the printed form of + nil. + + * lisp/erc/erc-networks.el (erc-network): This is called throughout + erc.el but was previously cumbersome to use on account of being + guarded by `fboundp'. It now relies on the fact that its namesake + variable is set in target buffers as well. + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Don't set erc-server-announced-name unless known + + * lisp/erc/erc.el (erc-open): whenever this function is called, the + variable `erc-server-announced-name' may be set locally in the calling + server buffer. However, if that buffer's dialed server matches that + of the one being created, the announced name is copied over on faith. + But there's no guarantee that the name will match the one ultimately + emitted by the server during its introductory burst. Beyond + potentially causing confusion in protocol logs, this behavior may + complicate debugging efforts. Setting the variable to nil helps + ensure a consistent environment when preparing a buffer for all newly + dialed connections. This commit also simplifies the setting of + `erc-server-connected', which is always nil when connecting and + vice-versa. + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Allow exemption from flood penalty in erc-backend + + * lisp/erc/erc-backend.el (erc-server-send, erc-server-PING): Change name + of param `forcep' in `erc-server-send' to `force' and change its type + to the union of the symbol `no-penalty' and the set of all other + non-nil values. In `erc-server-PING', use this exemption when calling + `erc-server-send'. This fix was fast tracked and summarily + incorporated into bug#48598 because users of the soju bouncer are all + affected. See update #5 in the bug's email thread under the section + entitled "Riders" for an explanation. + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Customize displaying of ERC buffers on reconnect + + * lisp/erc/erc-backend.el (erc--server-last-reconnect-count): + Add variable to record last reconnect tally. + + * lisp/erc/erc.el (erc-reconnect-display): Add new option to specify + channel-buffer display behavior on reconnect. + (erc-setup-buffer): Use option `erc-reconnect-display' if warranted. + (erc-cmd-JOIN): Forget last reconnect count when issuing a manual + /JOIN command. + (erc-connection-established): Record reconnect count in internal var + before resetting. + (Bug#51753) + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Remove duplicate ERC prompt on reconnect + + * lisp/erc/erc-backend.el (erc--unhide-prompt, erc--hide-prompt, + erc--unhide-prompt-on-self-insert): Add functions to ensure prompt is + hidden on disconnect and shown when a user types /reconnect in a + disconnected server buffer. + (erc-process-sentinel): Register aforementioned function with + `pre-command-hook' when prompt is deleted after disconnecting. + (erc-server-PRIVMSG): Ensure prompt is showing when a new message + arrives from target. + + * lisp/erc/erc.el (erc-hide-prompt): Repurpose unused option by + changing meaning slightly to mean "selectively hide prompt when + disconnected." Also delete obsolete, commented-out code that at some + point used this option in its prior incarnation. + (erc-prompt-hidden): Add new option to specify look of prompt when + hidden. + (erc-unhide-query-prompt): Add option to force-reveal query prompts on + reconnect. + (erc-open): Augment earlier reconnect-detection semantics by + incorporating `erc--server-reconnecting'. In existing buffers, remove + prompt-related hooks and reveal prompt, if necessary. + (erc-cmd-RECONNECT): Allow a user to reconnect when already + connected (by first disconnecting). + (erc-connection-established): Possibly unhide query prompts. + (Bug#54826) + + * test/lisp/erc/erc-tests.el (erc-tests--test-prep, + erc-tests--set-fake-server-process): Factor out some common + buffer-prep boilerplate involving user input and the server process. + Shared with bug#54536. + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Accept user keyword arg in ERC entry-point commands + + * lisp/erc/erc-backend.el (erc-server-reconnect): Reuse the username + argument from the previous session's USER command when reconnecting. + Also pass the existing client certificate, fixing an issue related to + bug#47788. + (erc-session-user-full-name): Move variable here from erc.el. + (erc-session-username): Add new local variable to store entry point + parameter. + + * lisp/erc/erc.el (erc-session-user-full-name): Move variable to + erc-backend. + (erc-open, erc-determine-parameters, erc, erc-tls): Accept new + optional user parameter. + (erc-query): Preserve current `erc-session-username' when calling + `erc-open'. + (erc-login): Use `erc-session-username' instead of deriving it. + (erc-compute-user): Add new function to determine user name from + explicit argument or user options. + (Bug#54824) + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Initialize erc-server-filter-data in erc-backend + + * lisp/erc/erc-backend.el (erc-server-connect): Set + `erc-server-filter-data' to nil upon (re)connecting. + + * lisp/erc/erc.el (erc-open): For the sake of clarity, don't + initialize `erc-server-filter-data' here because non-connect + invocations merely set up a target buffer and have no business + touching this variable. + +2022-06-30 F. Jason Park <jp@neverwas.me> + + Rework mutual dependency between erc and erc-backend + + * lisp/erc/erc.el: Declare needed variables exported by erc-backend.el + as special near the top of the file, and only require `erc-backend' + after providing `erc' as a feature at the very end. + + * lisp/erc/erc-backend.el: Don't preemptively provide `erc-backend'. + + * test/lisp/erc/erc-tests.el (erc--meta--backend-dependencies): Add + utility test to scrape for unused vars that may accumulate over time. + (Bug#54825) + +2022-06-30 Stefan Kangas <stefan@marxist.se> + + Doc fixes: don't refer to some obsolete items + + * admin/notes/multi-tty: + * lisp/chistory.el (command-history): + * lisp/emacs-lisp/nadvice.el: + * lisp/vc/diff-mode.el: Doc fix; don't refer to obsolete variables and + functions. + +2022-06-30 Stefan Kangas <stefan@marxist.se> + + Remove obsolete cust-print from elisp index + + * doc/lispref/edebug.texi (Printing in Edebug): Remove obsolete + library "cust-print" from index. + +2022-06-30 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerate ldefs-boot.el + +2022-06-30 Lars Ingebrigtsen <larsi@gnus.org> + + Fix define-obsolete-function-alias formatting in loaddefs-gen.el + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--print-form): + Fix formatting of define-obsolete-function-alias statements + (bug#56292). + +2022-06-30 Stefan Monnier <monnier@iro.umontreal.ca> + + (syntax-wholeline-max): New var + + Try and reduce the pain caused by font-lock and syntax-propertize's + wholeline-based operation in buffers made up of a few very long lines + (bug#45898). + + * lisp/emacs-lisp/syntax.el (syntax-wholeline-max): New var. + (syntax--lbp): New function. + (syntax-propertize-wholelines): Use it. + + * lisp/jit-lock.el (jit-lock--antiblink-post-command): Use `syntax--lbp`. + + * lisp/font-lock.el (font-lock-extend-region-wholelines): Rewrite, + using `syntax-propertize-wholelines`. + +2022-06-30 Stefan Kangas <stefan@marxist.se> + + * admin/make-tarball.txt: Minor clarifications. + +2022-06-30 Mattias Engdegård <mattiase@acm.org> + + Don't say that macro-expansion error is a warning + + * lisp/emacs-lisp/gv.el: + * lisp/emacs-lisp/macroexp.el (internal-macroexpand-for-load): Since + eager macro-expansion errors are no longer warnings, don't say so. + +2022-06-30 Stefan Kangas <stefan@marxist.se> + + * lisp/eshell/em-term.el (eshell-visual-commands): Add vim. + +2022-06-30 Lars Ingebrigtsen <larsi@gnus.org> + + Also add elisp-eval/byte-compile-buffer to lisp-interaction-mode + + * lisp/progmodes/elisp-mode.el (lisp-interaction-mode-map): Also + add elisp-eval-buffer and elisp-byte-compile-buffer to this map. + +2022-06-30 Mattias Engdegård <mattiase@acm.org> + + Don't change indentation rules for `>=` and `=` + + * lisp/emacs-lisp/rx.el: `>=` and `=` are much more likely functions + than RX constructs and the indentation machinery currently has + no way to tell them apart. + Suggested by Michael Herdeegen. + +2022-06-30 Lars Ingebrigtsen <larsi@gnus.org> + + Fix typo in previous elisp-byte-compile-buffer change + + * lisp/progmodes/elisp-mode.el (elisp-byte-compile-buffer): Make + warnings point to the correct place. + +2022-06-30 Lars Ingebrigtsen <larsi@gnus.org> + + Fix up warning links in elisp-byte-compile-buffer + + * lisp/progmodes/elisp-mode.el (elisp-byte-compile-buffer): Make + warnings point to the correct place. + +2022-06-30 Stefan Kangas <stefan@marxist.se> + + New hook save-place-after-find-file-hook + + This is intended for use in Org mode, where we currently use advise. + * lisp/saveplace.el (save-place-after-find-file-hook): New hook. + (save-place-find-file-hook): Run new hook. + +2022-06-30 Lars Ingebrigtsen <larsi@gnus.org> + + Make "eager macro-expansion" warning into an error + + * doc/lispref/loading.texi (How Programs Do Loading): Update + documentation. + + * lisp/emacs-lisp/macroexp.el: + (internal-macroexpand-for-load): We've been warning about eager + macro expansion for many years, so finally change that into an + error (bug#18154). + +2022-06-30 Lars Ingebrigtsen <larsi@gnus.org> + + Do NEWS tagging + +2022-06-30 Eli Zaretskii <eliz@gnu.org> + + Fix external image conversion on MS-Windows + + * lisp/image/image-converter.el (image-converter--convert-magick) + (image-converter--convert): Force encoding/decoding to avoid any + text or EOL conversions, since we are reading/writing binary + data. (Bug#56317) + +2022-06-30 Lars Ingebrigtsen <larsi@gnus.org> + + Add find-function-setup-keys bindings for find-library commands + + * lisp/emacs-lisp/find-func.el (find-function-setup-keys): Add `L' + bindings for the find-library family of commands (bug#51240). + +2022-06-30 Lars Ingebrigtsen <larsi@gnus.org> + + Restore temp-buffer-resize-mode behavior wrt. [back] buttons + + * lisp/help.el (help--window-setup): If temp-buffer-resize-mode, do + the window setup after adding [back] buttons (bug#56306). + +2022-06-30 Lars Ingebrigtsen <larsi@gnus.org> + + Fix typo in previous server.el change + + * lisp/server.el (server-process-filter): Fix typo in previous change. + +2022-06-30 Michael Shields <shields@msrl.com> + + Don't ignore emacsclient's --frame-parameters option when -t + + * lisp/server.el (server-process-filter): Add part of patch that + was mistakenly missed when the patch was applied (bug#24147). + This also fixes bug#56309. + +2022-06-30 Lars Ingebrigtsen <larsi@gnus.org> + + Add new commands to elisp mode for eval/compilation + + * lisp/progmodes/elisp-mode.el (emacs-lisp-mode-map): Add new + keystrokes. + (elisp-eval-buffer, elisp-byte-compile-file) + (elisp-byte-compile-buffer): New commands. + +2022-06-30 Mike Kupfer <mkupfer@alum.berkeley.edu> + + Clarify `version-control' in the Emacs manual + + * doc/emacs/files.texi (Backup Names): Rephrase for greater + clarity (bug#56291). + +2022-06-30 Lars Ingebrigtsen <larsi@gnus.org> + + Recognize Gradle error messages in compile-mode + + * lisp/progmodes/compile.el + (compilation-error-regexp-alist-alist): Recognize Gradle errors + (bug#56249). + +2022-06-30 Lars Ingebrigtsen <larsi@gnus.org> + + Add provide to testcover + + * lisp/emacs-lisp/testcover.el (testcover): Provide (bug#55388). + +2022-06-30 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerated ldefs-boot.el + +2022-06-30 Lars Ingebrigtsen <larsi@gnus.org> + + Add new commands to zoom emojis + + * lisp/international/emoji.el (emoji-zoom-map) + (emoji-zoom-increase, emoji-zoom-decrease): New commands. + + * lisp/international/mule-cmds.el (ctl-x-map): Bind them. + +2022-06-30 Po Lu <luangruo@yahoo.com> + + Disable unrelated drag-and-drop protocols during XDS drop + + * doc/lispref/frames.texi (Drag and Drop): Document variables + used to control drag-and-drop protocols. + * lisp/x-dnd.el (x-dnd-do-direct-save): Disable irrelevant DND + protocols. + + * src/xterm.c (x_dnd_get_target_window_1): + (x_dnd_get_target_window): + (handle_one_xevent): Respect new variable. + (syms_of_xterm): New variable `x-dnd-disable-motif-protocol'. + +2022-06-30 jicksaw <jicksaw@pm.me> (tiny change) + + Reduce eldoc noise from hover messages + + Also close https://github.com/joaotavora/eglot/issues/985 + + Only echo hover response content, without response range. + + LSP specification says the range is meant to visualize a hover. + Maybe echoing the range is useful for some, but it seems + non-standard behavior. + + Example issue: haskell-language-server responds with range set to + whole file when hovering a comment -> Large, useless eldoc + + * eglot.el (eglot--hover-info): Remove text selected by range from + output + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/514 + +2022-06-30 Po Lu <luangruo@yahoo.com> + + Improve compliance with the XDS and XDND protocols + + * lisp/select.el (xselect-convert-to-text-uri-list): Return a + type of `text/uri-list' instead of STRING or C_STRING. + + * lisp/x-dnd.el (x-dnd-xds-performed): New defvar. + (x-dnd-handle-direct-save): Set it to t and handle URIs with + hostnames correctly. Also return errors correctly. + (x-dnd-handle-octet-stream): New function. + (x-dnd-do-direct-save): Handle application/octet-stream, check + results. + +2022-06-29 Thomas Fitzsimmons <fitzsim@fitzsim.org> + + EUDC: Use "Surname" instead of "Name" in prompts + + * lisp/net/eudc-vars.el (eudc-user-attribute-names-alist): Add + name/"Surname" association. + * lisp/net/eudc.el (eudc-get-email): Prompt for surname. + * lisp/net/eudc.el (eudc-get-phone): Likewise. + +2022-06-29 Po Lu <luangruo@yahoo.com> + + Fix preservation of the original value of PRIMARY after dropping on xterm + + * src/xselect.c (x_own_selection): New arg `dnd_data'. Record + it. + (x_get_local_selection, x_handle_selection_request) + (x_convert_selection): Convert the DND data instead if the + situation warrants. + (Fx_own_selection_internal, Fx_get_selection_internal) + (Fx_get_local_selection): Update calls to x_get_local_selection. + + * src/xterm.c (x_dnd_do_unsupported_drop): If obtaining + selection ownership failed, return. Record DND value and + preserve the current value of PRIMARY, if it exists. + + * src/xterm.h: Update prototypes. + +2022-06-29 Thomas Fitzsimmons <fitzsim@fitzsim.org> + + EUDC: Prevent field overlap when query form is reset + + * lisp/net/eudc.el (eudc-query-form): Delete all overlays before + erasing buffer. Remove widget-after-change from + after-change-functions. + +2022-06-29 Stefan Monnier <monnier@iro.umontreal.ca> + + * doc/emacs/buffers.texi (Indirect Buffers): Mention modification hook quirk + +2022-06-29 Eli Zaretskii <eliz@gnu.org> + + Fix hscrolling of :align-to when display-line-numbers is in effect + + * src/dispextern.h (struct it): Rename 'tab_offset' member to + 'stretch_adjust'. + * src/xdisp.c (gui_produce_glyphs, produce_stretch_glyph) + (display_line): All users of 'tab_offset' changed. + (produce_stretch_glyph): Fix calculation of ':align-to' when + line numbers are displayed and the window is hscrolled. + (calc_pixel_width_or_height): Fix calculation of width of 'space' + display property when 'display-line-numbers' is turned on, but the + line number was not yet produced for the current glyph row. + (Bug#56176) + +2022-06-29 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/vc/diff-mode.el (diff--font-lock-prettify): Fix `diff-buffers` case + +2022-06-29 Mattias Engdegård <mattiase@acm.org> + + More robust `gnu` pattern (bug#56249) + + * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): + Don't allow spaces in the file names, to avoid false matches. + Don't allow ad-hoc spaces preceding the program name either. + +2022-06-29 Mattias Engdegård <mattiase@acm.org> + + Complete transition to rx for compilation `gnu` pattern + + * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): + Change from a mixture of traditional regexp syntax and rx, + to make intentions clearer. + +2022-06-29 Mattias Engdegård <mattiase@acm.org> + + * lisp/emacs-lisp/rx.el: Indent some rx constructs correctly. + + This includes group-n, submatch-n, =, >=, ** and repeat, whose first 1 + or 2 arguments are special. + +2022-06-29 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 6c26f089a7 Update ChangeLog and AUTHORS for 28.1.90 pretest + + # Conflicts: + # ChangeLog.3 + # etc/AUTHORS + +2022-06-29 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + bf137fdbd2 ; * admin/make-tarball.txt: Small clarification. + +2022-06-29 Po Lu <luangruo@yahoo.com> + + Fix handling invalidated selection requests + + * src/xselect.c (x_handle_selection_request): Correctly punt + when !dpyinfo. + +2022-06-29 Stefan Kangas <stefan@marxist.se> + + Bump Emacs version to 28.1.90 + + * README: + * configure.ac: + * msdos/sed2v2.inp: + * nt/README.W32: Bump Emacs version to 28.1.90. + +2022-06-29 Stefan Kangas <stefan@marxist.se> + + Update ChangeLog and AUTHORS for 28.1.90 pretest + + * ChangeLog.3: + * etc/AUTHORS: Update. + +2022-06-29 Po Lu <luangruo@yahoo.com> + + Fix some bugs found while testing drag-and-drop + + * lisp/x-dnd.el (x-dnd-get-drop-width-height): + (x-dnd-get-drop-x-y): Fix doc string. + (x-dnd-handle-xdnd): Don't set update rect if + `dnd-indicate-insertion-point'. Bug found testing with "JX + Application Framework". + +2022-06-29 Stefan Monnier <monnier@iro.umontreal.ca> + + (cl--generic-compiler): Revert last change + + That change (introduced to circumvent an error now that `seq.el` is + preloaded) caused all dispatchers to be left uncompiled, which slows down + method dispatch very significantly. Fix the problem in the old way, + i.e. by adding an explicit call to `cl--generic-prefill-dispatchers`. + + * lisp/emacs-lisp/cl-generic.el (cl--generic-compiler): Revert last change. + Add (cl--generic-prefill-dispatchers 1 integer) instead to handle + the new dispatchers needed for `seq.el`. + (cl--generic-prefill-generalizer-sample): New function. + (cl--generic-get-dispatcher): Use it to signal an error giving precise + instructions for what to do if we're about the load the byte-compiler + during the preload. + (cl--generic-oclosure-generalizer): Rename from + `cl-generic--oclosure-generalizer` for consistency with all + other generalizers. + +2022-06-29 Po Lu <luangruo@yahoo.com> + + Update dnd-tests.el to make sure remote files are removed when Emacs quits + + * test/lisp/dnd-tests.el (dnd-tests-begin-drag-files) + (dnd-tests-begin-file-drag): Test value of `kill-emacs-hook'. + +2022-06-29 Po Lu <luangruo@yahoo.com> + + Implement starting X Direct Save (XDS) drops + + * doc/lispref/frames.texi (Drag and Drop): Document new function + `dnd-direct-save'. + * etc/NEWS: Likewise. + + * lisp/dnd.el (dnd-direct-save-remote-files): New defcustom. + (dnd-begin-file-drag): Implement defucstom. + (dnd-begin-drag-files): Add kill-emacs-hook after saving remote + file. + (dnd-direct-save): New function. + * lisp/x-dnd.el (x-dnd-known-types): Fix coding style. + (x-dnd-handle-drag-n-drop-event): Handle local value with + self-originating DND events. + (x-dnd-xds-current-file, x-dnd-xds-source-frame): New defvars. + (x-dnd-handle-direct-save, x-dnd-do-direct-save): New functions. + + * src/xfns.c (Fx_begin_drag): Allow any atom to be used as a DND + action. + * src/xselect.c (symbol_to_x_atom): Make public. + * src/xterm.c (x_dnd_note_self_drop): Include selection local + value. + (x_ignore_errors_for_next_request): Don't assume x_error_message + is set. + * src/xterm.h: Update prototypes. + +2022-06-29 Stefan Kangas <stefan@marxist.se> + + Make two text-property-search tests easier to read + + * test/lisp/emacs-lisp/text-property-search-tests.el + (text-property-search-forward/point-at-beginning) + (text-property-search-backward/point-at-end): Rewrite to make tests + easier to read. + +2022-06-29 Stefan Kangas <stefan@marxist.se> + + Minor cleanup in dired-x-bind-find-file + + * lisp/dired-x.el (dired-x-bind-find-file): Use 'format-message' + and 'keymap-set'. + +2022-06-29 Lars Ingebrigtsen <larsi@gnus.org> + + Improve the eval-defun doc string + + * lisp/progmodes/elisp-mode.el (eval-defun): Document what the + command actually does w.r.t. finding a form to evaluate + (bug#47747). + +2022-06-29 Lars Ingebrigtsen <larsi@gnus.org> + + Ensure that In-Reply-To is saved in drafts in Message + + * lisp/gnus/message.el (message-hidden-headers): Hide In-Reply-To + now that we pre-generate it. + (message-setup-1): Pre-generate In-Reply-To so that it'll be saved + in drafts (bug#47639). + +2022-06-29 Tom Gillespie <tgbugs@gmail.com> + + test/lisp/progmodes/python-tests.el: add test for nav end of block + + Add test for python-nav-end-of-block to prevent regression of bug#56271. + +2022-06-29 Tom Gillespie <tgbugs@gmail.com> + + lisp/progmodes/python.el (python-nav-end-of-block): prevent infinite loop + + lisp/progmodes/python.el (python-nav-end-of-block): Fix a bad + assumption that python-nav-end-of-statement always makes forward + progress by testing that it actually does. If this check is not made + then it is possible for python-nav-end-of-block to enter an infinite + loop. (bug#56271) + +2022-06-29 Lars Ingebrigtsen <larsi@gnus.org> + + Fix compilation-mode parsing of file names in Gradle errors + + * lisp/progmodes/compile.el + (compilation-error-regexp-alist-alist): Fix parsing of file names + in Gradle output (bug#56249). + +2022-06-29 Po Lu <luangruo@yahoo.com> + + * lisp/pgtk-dnd.el (pgtk-dnd-use-offix-drop): Remove extra variable. + +2022-06-29 Po Lu <luangruo@yahoo.com> + + Clean up failable requests in more places + + * lisp/term/haiku-win.el (haiku-get-numeric-enum): Fix build. + + * src/xterm.c (x_clean_failable_requests): Avoid redundant + memcpy if first == last. + (x_ignore_errors_for_next_request): Fix check for last request. + (x_check_errors, x_had_errors_p): Clean up failable requests + here. + +2022-06-29 Po Lu <luangruo@yahoo.com> + + Handle be:actions field in Haiku DND messages + + * lisp/term/haiku-win.el (haiku-get-numeric-enum): New function. + (haiku-numeric-enum): New macro. + (haiku-select-encode-xstring, haiku-select-encode-utf-8-string): + Replace hard-coded numeric enumerators. + (haiku-parse-drag-actions): New function. + (haiku-drag-and-drop): Use action returned by that function. + (x-begin-drag): Replace hard-coded enumerator. + +2022-06-29 Gerd Möllmann <gerd@gnu.org> + + Ensure correct toggle menu item display + + * lisp/menu-bar.el (menu-bar-make-toggle-command): Call + force-mode-line-update. (Bug#56155) + +2022-06-29 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 2eba8cad20 Tramp shall not trap unrelated D-Bus errors + a8e72eb0e2 ; * etc/NEWS: Fix file name quotations. + 091b22cb12 Fix hash table function return values in manual + + # Conflicts: + # etc/NEWS + +2022-06-28 Po Lu <luangruo@yahoo.com> + + Fix reported problem with drag-and-drop inside VirtualBox + + * lisp/x-dnd.el (x-dnd-handle-old-kde, x-dnd-handle-offix) + (x-dnd-handle-motif): Select window before handling drop, like + on Xdnd. + (x-dnd-convert-to-offix, x-dnd-do-offix-drop) + (x-dnd-handle-unsupported-drop): Accept local selection data and + use that instead. + + * src/keyboard.c (kbd_buffer_get_event): Call unsupported drop + function with local selection data as 8th arg. + * src/xselect.c (x_get_local_selection): Accept new arg + `local_value'. All callers changed. + (Fx_get_local_selection): New function. + (syms_of_xselect): Update defsubrs. + + * src/xterm.c (x_dnd_lose_ownership): New function. + (x_dnd_begin_drag_and_drop): Unless new variable is true, disown + XdndSelection after returning. This supposedly makes + drag-and-drop from guest to host work in VirtualBox without + causing pointer motion to become choppy afterwards. + (syms_of_xterm): New variable `x_dnd_preserve_selection_data' + and update doc string of `x-dnd-unsupported-drop-function'. + + * test/lisp/dnd-tests.el (dnd-tests-begin-text-drag) + (dnd-tests-begin-file-drag, dnd-tests-begin-drag-files): Set new + variable to nil during tests. + +2022-06-28 Lars Ingebrigtsen <larsi@gnus.org> + + Fix typo in previous maintaining.texi change + + * doc/emacs/maintaining.texi (Looking Up Identifiers): Fix typo. + +2022-06-28 Juri Linkov <juri@linkov.net> + + * lisp/isearch.el (isearch-delete-char): Improve fix for bug#52248. + + When reaching the top of the stack where isearch-other-end is nil, + still close unnecessary overlays for the previous position. + (isearch-close-unnecessary-overlays): Rename arg BEG for consistency. + +2022-06-28 Visuwesh <visuweshm@gmail.com> + + trouble.texi (Long Lines): Fix typo. + + * doc/emacs/trouble.texi (Long Lines): Fix typo (bug#56283). + +2022-06-28 Lars Ingebrigtsen <larsi@gnus.org> + + Put the obsoletion earlier in the *Help* buffer + + * lisp/help-fns.el (help-fns--obsolete): Remove indentation and fill. + (help-fns--var-obsolete): Ditto. + (describe-function-1): Output the obsoletion info first since it's + vital information. + (describe-variable): Ditto (bug#56251). + +2022-06-28 Lars Ingebrigtsen <larsi@gnus.org> + + Improve sxhash-equal documentation + + * doc/lispref/hash.texi (Defining Hash): Explain more about what + sxhash-equal is for and what the caveats are. + * src/fns.c (Fsxhash_eql, Fsxhash_equal): Clarify doc string. + +2022-06-28 Lars Ingebrigtsen <larsi@gnus.org> + + Allow using define-short-documentation-group without loading shortdoc + + * lisp/emacs-lisp/shortdoc.el (define-short-documentation-group): + Allow using without loading shortdoc.el (bug#56260). + +2022-06-28 Michael Albinus <michael.albinus@gmx.de> + + Tramp shall not trap unrelated D-Bus errors + + * lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-event-vector): Declare. + (tramp-gvfs-file-name-handler): Let-bind it. + (tramp-gvfs-dbus-event-vector): Fix docstring. + (tramp-gvfs-maybe-open-connection): Do not set it globally. (Bug#56162) + +2022-06-28 Lars Ingebrigtsen <larsi@gnus.org> + + Clarify Looking Up Identifiers in the manual + + * doc/emacs/maintaining.texi (Looking Up Identifiers): Clarify the + text about C-M-, (bug#56261). + +2022-06-28 Zachary Kanfer <zkanfer@gmail.com> + + Add new command `rename-visited-file' + + * doc/emacs/files.texi (Save Commands): Document it. + + * lisp/files.el (rename-visited-file): New command (bug#56229). + +2022-06-28 Jim Meyering <meyering@fb.com> (tiny change) + + Fix configure.ac quoting of AC_CHECK_LIB's 2nd arg + + Running an autoconf-head-generated configure, would fail like this: + /emacs/configure: line 18002: syntax error near unexpected token `;;' + /emacs/configure: line 18002: ` ;;' + That is due to under-quoting of AC_CHECK_LIB's second argument, which led to + the comma in an embedded string being interpreted as paramater-delimiting. + * configure.ac: Quote the second arg of each AC_CHECK_LIB invocation. + (Bug#56272) + +2022-06-28 Po Lu <luangruo@yahoo.com> + + Adjust x-clipboard-yank for recent selection ownership changes + + * lisp/term/x-win.el (x-clipboard-yank): Don't own CLIPBOARD + inside kill-new. + +2022-06-28 Po Lu <luangruo@yahoo.com> + + Clean up Fx_begin_drag + + * src/xfns.c (Fx_begin_drag): Use FOR_EACH_TAIL instead of + iterating manually. + +2022-06-28 Po Lu <luangruo@yahoo.com> + + Automatically detect cyclic lists in some Haiku functions + + * src/haikuselect.c (haiku_lisp_to_message): Use FOR_EACH_TAIL + to iterate over message data. + +2022-06-28 Basil L. Contovounesios <contovob@tcd.ie> + + Fix hash table function return values in manual + + * doc/lispref/hash.texi (Hash Access): Reconcile documented return + values of puthash and clrhash with their respective + docstrings (bug#55562). + +2022-06-28 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + a280df4cab ; Mention in NEWS the need to use --bindir + + # Conflicts: + # etc/NEWS + +2022-06-27 Po Lu <luangruo@yahoo.com> + + Fix handling "C-S-u" and such when using XKB + + * src/xterm.c (handle_one_xevent): Don't rely on XKB for + consumed modifiers. + +2022-06-27 Po Lu <luangruo@yahoo.com> + + Always use XKB to translate keysyms when no input method is available + + * src/xterm.c (handle_one_xevent) [HAVE_XKB]: Also use XKB to + handle core KeyPress events. + +2022-06-27 Basil L. Contovounesios <contovob@tcd.ie> + + * lisp/subr.el (plistp): Simplify (bug#47427). + +2022-06-27 Paul Eggert <eggert@cs.ucla.edu> + + "make clean" etc. problem now fixed on Solaris. + +2022-06-27 Gerd Möllmann <gerd@gnu.org> + + Prevent regexp cache entries from being GC'ed in more cases + + * src/search.c (string_match_1, fast_string_match_internal) + (fast_c_string_match_ignore_case): Use freeze_pattern. + (Bug#56108) + +2022-06-27 Eli Zaretskii <eliz@gnu.org> + + Fix deletion of composed text + + * lisp/composite.el (lgstring-glyph-boundary): New function. + * lisp/simple.el (delete-forward-char): Call + 'lgstring-glyph-boundary' to find where to end the deletion inside + an automatic composition. (Bug#56237) + +2022-06-27 Lars Ingebrigtsen <larsi@gnus.org> + + Fix some missed Fplist_put adjustments in src/w32.c + + * src/w32.c (serial_configure): Adjust some missed Fplist_put renames. + +2022-06-27 Lars Ingebrigtsen <larsi@gnus.org> + + Add new type predicate plistp + + * lisp/subr.el (plistp): New type predicate (bug#47427). This + referred to in the error message from plist-put: "Debugger + entered--Lisp error: (wrong-type-argument plistp (a b c))". + +2022-06-27 Lars Ingebrigtsen <larsi@gnus.org> + + Adjust plist calls in .m files + + * src/nsterm.m (mod_of_kind): + * src/nsimage.m (ns_load_image): Adjust plist calls in .m files. + +2022-06-27 Lars Ingebrigtsen <larsi@gnus.org> + + Allow plist-get/plist-put/plist-member to take a comparison function + + * doc/lispref/lists.texi (Plist Access): Document it. + + * lisp/filesets.el (filesets-reset-fileset) + (filesets-ingroup-cache-get): + (filesets-ingroup-cache-put): + (filesets-build-menu-now): Don't use lax-plist functions. + + * lisp/simple.el (lax-plist-put, lax-plist-get): Moved here from + fns.c and make obsolete. + + * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Don't mark + plist functions as side-effect-free or pure. + + * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Adjust type. + + * lisp/emacs-lisp/shortdoc.el (list): Don't document deprecated + functions. + + * src/xdisp.c (build_desired_tool_bar_string): + (display_mode_element): + (store_mode_line_string): + (display_string): + (produce_stretch_glyph): + (note_mode_line_or_margin_highlight): + (note_mouse_highlight): + * src/w32.c (serial_configure): + * src/sysdep.c (serial_configure): + * src/sound.c (parse_sound): + * src/process.c (Fset_process_buffer): + (Fset_process_sentinel): + (Fprocess_contact): + (Fmake_process): + (Fmake_pipe_process): + (Fset_network_process_option): + (Fserial_process_configure): + (Fmake_serial_process): + (set_network_socket_coding_system): + (finish_after_tls_connection): + (connect_network_socket): + (Fmake_network_process): + (server_accept_connection): + * src/lread.c (ADDPARAM): + (hash_table_from_plist): + * src/keyboard.c (make_lispy_position): + * src/indent.c (check_display_width): + * src/image.c (postprocess_image): + * src/gnutls.c (gnutls_verify_boot): + (Fgnutls_boot): + (gnutls_symmetric): + (Fgnutls_hash_mac): + (Fgnutls_hash_digest): + * src/dired.c (filter): + * src/data.c (add_to_function_history): + * src/coding.c (Fcoding_system_put): Adjust callers from + Fplist_put (etc) to plist_put. + + * src/fns.c (plist_get): + (plist_put): + (plist_member): New functions (without optional third parameter) + to be used in C code. + + * src/fns.c (Fplist_get, Fplist_put, Fplist_member): Take an + optional predicate parameter (bug#47425). + + * src/lisp.h: Declare new plist_put, plist_get and plist_member + functions. + + * test/lisp/json-tests.el (test-json-add-to-plist): Use plist-get. + + * test/src/fns-tests.el (test-cycle-lax-plist-get): + (test-cycle-lax-plist-put): + (lax-plist-get/odd-number-of-elements): + (test-plist): Remove lax-plist tests, since semantics have changed + (they no longer error out on cycles). + +2022-06-27 Lars Ingebrigtsen <larsi@gnus.org> + + Add NEWS entry about C-h v font locking + +2022-06-27 hokomo <hokomo@airmail.cc> (tiny change) + + Fix detecting dotted pairs in icalendar-export-region + + * lisp/calendar/icalendar.el (icalendar-export-region): Fix detecting + dotted pairs (bug#56241). + +2022-06-27 Allen Li <darkfeline@felesatra.moe> + + find-dired: Add find-dired-with-command + + Add a command that runs and sets up the find-dired buffer with an + arbitrary find command. Also rewrite the existing find-dired commands + using it. + + The set of commands possible with find-dired is limited; the new + command allows users to run the full set of commands, but also leaves + the responsibility to the user to construct the command manually. + + * lisp/find-dired.el (find-command-history): New var. + (find-dired-with-command): New command. + (find-dired): Rewritten with new command. + +2022-06-27 Allen Li <darkfeline@felesatra.moe> + + find-dired: Factor out find-dired--escaped-ls-option + + Deduplicate this logic for other future find-dired commands. + + * lisp/find-dired.el (find-dired--escaped-ls-option): New function. + (find-dired): Use find-dired--escaped-ls-option. + +2022-06-27 Lars Ingebrigtsen <larsi@gnus.org> + + Fix off-by-one error in Fsignal_names + + * src/process.c (Fsignal_names): Fix off-by-one error. + +2022-06-27 Po Lu <luangruo@yahoo.com> + + Use correct background for image mask color on Haiku + + * src/haikuterm.c (haiku_draw_image_glyph_string): Use adjusted + background for image mask. + +2022-06-27 Po Lu <luangruo@yahoo.com> + + Implement stipples for images on Haiku + + * src/haiku_draw_support.cc (be_draw_bitmap_with_mask): New + function. + * src/haiku_support.h: Add prototype. + + * src/haikuterm.c (haiku_draw_image_glyph_string): Draw stipple + correctly. + (haiku_draw_glyph_string): Fix conditions under which + row->stipple_p is set. + +2022-06-27 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 48bda83d35 Update to Org 9.5.4-3-g6dc785 + c66b90a534 Mention Solaris 10 'make clean' and 'make check' + ade34cf821 Mention further crashes on Solaris 10 + +2022-06-27 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + a9d338818a ; elec-pair: Fix docstring typo (bug#56233) + +2022-06-26 Kyle Meyer <kyle@kyleam.com> + + Update to Org 9.5.4-3-g6dc785 + +2022-06-26 Po Lu <luangruo@yahoo.com> + + Correctly convert event state in more places + + * src/xterm.c (handle_one_xevent): Use `xi_convert_event_state' + to handle synthetic and xwidget button events. + +2022-06-26 Paul Eggert <eggert@cs.ucla.edu> + + Mention Solaris 10 'make clean' and 'make check' + + Mention further crashes on Solaris 10 + +2022-06-26 Lars Ingebrigtsen <larsi@gnus.org> + + Minor clean up of previous Fsignal_names patch + + * src/process.c (Fsignal_names): Clean up code slightly. + +2022-06-26 Lars Ingebrigtsen <larsi@gnus.org> + + Make `signal-process' allow completing over signal names + + * lisp/simple.el (read-signal-name): New function. + * src/process.c (Fsignal_process): Use it to allow completing over + the signal names (bug#56239). + (Fsignal_names): New function. + +2022-06-26 Lars Ingebrigtsen <larsi@gnus.org> + + Font-lock variable values in *Help* + + * lisp/help-fns.el (describe-variable): Font-lock the variable + value (bug#47363). + +2022-06-26 Mattias Engdegård <mattiase@acm.org> + + Optimize away functions in for-effect context + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): + Turn functions into nil when compiled for-effect since they have no + side-effects on their own. This may enable further improvements such + as the elimination of variable bindings. + `unwind-protect` forms can be treated as plain function call at this + point. In particular, their unwind function argument should be + not optimized for effect since it's a function. + +2022-06-26 Stefan Monnier <monnier@iro.umontreal.ca> + + (oclosure-test-limits): Fix test failure when interpreted + + * test/lisp/emacs-lisp/oclosure-tests.el (oclosure-test-limits): + Make sure we bind `byte-compile-debug` dynamically. + +2022-06-26 Eli Zaretskii <eliz@gnu.org> + + Fix re-composition under 'composition-break-at-point' + + * src/xdisp.c (try_window_id): Disable this optimization if + 'composition-break-at-point' is non-nil. + +2022-06-26 Eli Zaretskii <eliz@gnu.org> + + * lisp/simple.el (delete-forward-char): Fix bug #56237. + +2022-06-26 Jim Porter <jporterbugs@gmail.com> + + When closing an Eshell process target, send EOF three times + + * lisp/eshell/esh-io.el (eshell-close-target): Send EOF 3 times. + + * test/lisp/eshell/em-extpipe-tests.el (em-extpipe-tests--deftest): + Re-enable these tests on EMBA. + + This patch is adapted by one from Ken Brown, who uncovered the reason + for this bug (bug#56025). + +2022-06-26 Kjartan Óli Ágústsson <kjartanoli@outlook.com> + + Reconvert EPUB buffers when user CSS is changed + + * lisp/doc-view.el (doc-view-epub-user-stylesheet): Add + `doc-view-custom-set-mutool-user-stylesheet' as setter, change name. + (doc-view-custom-set-epub-font-size): Factor reconvert logic out + (doc-view--epub-reconvert): Add defun + (doc-view--epub-stylesheet-watcher): Add defvar + (doc-view-custom-set-epub-user-stylesheet): Add defun (bug#55825). + +2022-06-26 Visuwesh <visuweshm@gmail.com> + + Make <mouse-2> in mode line more careful as well + + * lisp/mouse.el (mouse-delete-other-windows): Only delete other + windows if the user didn't move the cursor off the + mode-line (bug#56198). + +2022-06-26 Visuwesh <visuweshm@gmail.com> + + Make <mouse-3> in the mode line more careful + + * lisp/mouse.el (mouse-delete-window): Only delete the window if + the user hasn't moved point out of the mode line before releasing + the button (bug#56198). + +2022-06-26 Jonas Bernoulli <jonas@bernoul.li> + + Avoid positional arguments to define-minor-mode + + Back in Emacs-21.1, `define-minor-mode' grew keyword arguments to + replace its old positional arguments. Starting with Emacs-28.1 + a warning will be omitted if positional arguments are still used. + +2022-06-26 Jim Porter <jporterbugs@gmail.com> + + Make Eshell globs ending in "/" match directories only + + * lisp/eshell/em-glob.el (eshell-glob-convert): Return whether to + match directories only. + (eshell-glob-entries): Add ONLY-DIRS argument. + + * test/lisp/eshell/em-glob-tests.el + (em-glob-test/match-any-directory): New test. + (em-glob-test/match-recursive) + (em-glob-test/match-recursive-follow-symlinks): Add test cases for + when "**/" or "***/" are the last components in a glob. + + * etc/NEWS: Announce this change (bug#56227). + +2022-06-26 Jim Porter <jporterbugs@gmail.com> + + Convert Eshell globs ahead of time instead of doing it repeatedly + + * lisp/eshell/em-glob.el (eshell-glob-recursive): New variable. + (eshell-glob-convert-1, eshell-glob-convert): New functions. + (eshell-extended-glob): Use 'eshell-glob-convert'. + (eshell-glob-entries): Adapt function to use pre-converted globs. + + * test/lisp/eshell-em-glob-tests.el (em-glob-test/match-dot-files): + New test. + +2022-06-26 Jim Porter <jporterbugs@gmail.com> + + Optionally signal an error if an Eshell predicate fails to match anything + + * lisp/eshell/em-pred.el (eshell-error-if-no-glob): Declare it. + (eshell-apply-modifiers): Add STRING-DESC argument and signal an error + if there are no matches and 'eshell-error-if-no-glob' is set. + (eshell-parse-arg-modifier): Pass modifier string to + 'eshell-apply-modifiers'. + + * test/lisp/eshell/em-pred-tests.el (eshell-eval-predicate): Simplify. + (em-pred-test/no-matches): New test. + + * doc/misc/eshell.texi (Bugs and ideas): Remove todo entry about this + change. + +2022-06-26 Daniel Martín <mardani29@yahoo.es> + + Fix typo in signal-process-functions + + * doc/lispref/processes.texi (Signals to Processes): Update reference + to correct default variable in the ELisp manual. + * etc/NEWS: The same for the NEWS entry (bug#56234). + +2022-06-26 Lars Ingebrigtsen <larsi@gnus.org> + + Update term-char-mode doc string + + * lisp/term.el (term-char-mode): Update doc string. + +2022-06-26 Michael Heerdegen <michael_heerdegen@web.de> + + Fix Bug#56110 (switching from line-mode to char-mode) + + * lisp/term.el (term-char-mode): Make `add-function' override the + correct place (the buffer local variable `term-input-sender'). + +2022-06-26 Lars Ingebrigtsen <larsi@gnus.org> + + Fix a recent Lisp mode filling test failure + + * lisp/emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Restore the + "fill first line separately" logic. + +2022-06-26 Stefan Kangas <stefan@marxist.se> + + Fix typo in use-package docstring + +2022-06-26 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/syntax.el: Rework the handling of nested calls. + + Nested calls to `syntax-ppss` and `syntax-propertize` can easily + happen unexpectedly via ondemand propertizing or `forward-sexp`. + Refine the handling of nested calls so we detect them more reliably + (e.g. also within `syntax-propertize-extend-region-functions`) + and so that the `syntax-ppss` cache is automatically flushed in case + it might have been filled with data that's become obsolete since. + + (syntax-propertize--inhibit-flush): Delete var. + (syntax-propertize--in-process-p): New function to replace it. + (syntax-ppss-flush-cache): Use it. + (syntax-ppss--updated-cache): New var. + (syntax-propertize): Make `syntax-propertize--done` binding apply to + `syntax-propertize-extend-region-functions` as well, as intended (fixes + bug#46713). Use `syntax-ppss--updated-cache` to flush + syntax-ppss cache at the end when needed. + Don't bind `syntax-propertize--inhibit-flush` any more. + (syntax-ppss): Set `syntax-ppss--updated-cache` when applicable. + +2022-06-26 Lars Ingebrigtsen <larsi@gnus.org> + + Don't create HOME if it doesn't exist + + * lisp/files.el (locate-user-emacs-file): Don't create HOME if it + doesn't exist (bug#47298). This returns us to Emacs 26.3 + behavior here. + +2022-06-26 Michael Albinus <michael.albinus@gmx.de> + + Fix narrowing problem in tramp-debug-buffer-command-completion-p + + * lisp/net/tramp.el (tramp-debug-buffer-command-completion-p): + Respect narrowing. (Bug#56225) + +2022-06-26 Po Lu <luangruo@yahoo.com> + + Add some more common predefined atoms + + * src/xterm.c (x_intern_cached_atom, x_get_atom_name): Add + DRAWABLE, BITMAP, COLORMAP, CURSOR and FONT. + +2022-06-26 Eli Zaretskii <eliz@gnu.org> + + Fix ispell-word on colorless TTY frames + + * lisp/textmodes/ispell.el + (ispell-highlight-spelling-error-generic): Keep marker position of + END intact, deletion of text notwithstanding. (Bug#56219) + +2022-06-26 Po Lu <luangruo@yahoo.com> + + Stop catching errors for some requests + + * src/xterm.c (x_dnd_compute_toplevels) + (frame_set_mouse_pixel_position, x_focus_frame): Use + `x_ignore_errors_for_next_request'. This results in a healthy + ~30% speedup for the involved requests. + +2022-06-25 Po Lu <luangruo@yahoo.com> + + Handle errors while sending client events asynchronously + + * src/xterm.c (xm_send_drop_message) + (xm_send_top_level_enter_message, xm_send_drag_motion_message) + (xm_send_top_level_leave_message, x_dnd_send_enter) + (x_dnd_send_position, x_dnd_send_leave, x_dnd_send_drop): Avoid + sync to check for errors while sending client events. + (x_dnd_begin_drag_and_drop, handle_one_xevent, XTread_socket): + Clean up failable requests. + (x_request_can_fail): New functions. + (x_clean_failable_requests, x_ignore_errors_for_next_request) + (x_uncatch_errors): Clean up failable requests. + (x_error_handler): If a request is allowed to fail, just return. + (x_term_init): Set up new pointer. + * src/xterm.h (N_FAILABLE_REQUESTS): New macro. + (struct x_display_info): New field `failable_requests' and + associated next pointer. + +2022-06-25 Paul Eggert <eggert@cs.ucla.edu> + + Port ‘make clean’ to Solaris 10 + + * test/Makefile.in (CLEAN_XML_FILES): New macro. + (clean): Use it. + +2022-06-25 Paul Eggert <eggert@cs.ucla.edu> + + Port distribution tarball to Solaris 10 + + * make-dist (taropt): Use 'tar -H ustar' to generate a portable + tar file format instead of a GNU-specific format. Needed now that + Emacs tarballs contain file names longer than 100 bytes, e.g.: + emacs-28.1/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/C072AF82DCCCB9A7F1B85FFA10B802DC4ED16703.key + emacs-28.1/test/lisp/emacs-lisp/bytecomp-resources/error-lexical-var-with-run-hook-with-args-until-success.el + Without this patch, extracting a tarball on Solaris 10 fails with + many diagnostics like “tar: ././@LongLink: typeflag 'L' not + recognized, converting to regular file”. + +2022-06-25 Paul Eggert <eggert@cs.ucla.edu> + + Port test SUBDIRS to Solaris 10 + + * test/Makefile.in (SUBDIRS): Port to traditional ‘find’, which + lacks -path. + +2022-06-25 Paul Eggert <eggert@cs.ucla.edu> + + Pacify Oracle Studio re xterm.c + + * src/xterm.c (xErrorHandler, xIOErrorHandler): + New typedefs. + (xm_get_drag_window_1, x_connection_closed): Use them instead of + void *, since the C standard frowns on converting function + pointers to and from void *. This pacifies Oracle Studio + diagnostics like “warning: assignment type mismatch: pointer to + void "=" pointer to function(pointer to struct _XDisplay {})\ + returning int”. + (x_detect_pending_selection_requests, x_had_errors_p): Do not rely + on implicit conversion of a pointer to a bool return value; use !! + instead. This pacifies Oracle Studio’s “warning: improper + pointer/integer combination: op "="”. + (xim_open_dpy) [HAVE_X11R6 && !HAVE_X11R6_XIM]: Do not use + xim_destroy_callback; configure.ac says “inoue@ainet.or.jp says + Solaris has a bug related to X11R6-style ## XIM support” and + Oracle Studio complains “warning: assignment type mismatch: + pointer to function(pointer to struct _XIC {}, pointer to char, + pointer\ to char) returning void "=" pointer to function(pointer + to struct _XIM {}, pointer to char, pointer to char) returning + void”. + +2022-06-25 Paul Eggert <eggert@cs.ucla.edu> + + Pacify Oracle Studio re print_vectorlike + + * src/print.c (print_vectorlike): Use explicit cast of function + pointer to void *, to pacify Oracle Studio 12.6’s “warning: + assignment type mismatch: pointer to void "=" pointer to + function(pointer to void) returning void”. Admittedly this is + not strictly conforming C code even with the cast. + +2022-06-25 Paul Eggert <eggert@cs.ucla.edu> + + Pacify Oracle Studio re Time_to_position + + * src/keyboard.c (Time_to_position): Use no-op position_to_Time to + pacify Oracle Studio 12.6’s “warning: initializer will be + sign-extended”. + +2022-06-25 Lars Ingebrigtsen <larsi@gnus.org> + + Make `M-q' work on the first line of a multi-line string again + + * lisp/emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Exclude the + quote marks from the region so that filling works (bug#56197). + +2022-06-25 Po Lu <luangruo@yahoo.com> + + Update input_pending after deferring selection requests + + * src/xterm.c (x_defer_selection_requests): If kbd_fetch_ptr + moved, update input_pending. Bug found calling + `input-pending-p' inside the DND movement function. + +2022-06-25 Stefan Kangas <stefan@marxist.se> + + New command recentf-open + + * lisp/recentf.el (recentf-open): New command. (Bug#56148) + (recentf): New alias. + (recentf, recentf-mode): Update documentation to focus more on the + list of recently opened files and ways of accessing it, instead of + focusing on the menu bar only. + (recentf-list, recentf-enabled-p): Minor doc fixes. + + * doc/emacs/files.texi (File Conveniences): Update documentation. + +2022-06-25 Lars Ingebrigtsen <larsi@gnus.org> + + Fix subr-x fix that was missed when re-reverting + + * lisp/replace.el (require): Fix subr-x build warning. + +2022-06-25 Stefan Kangas <stefan@marxist.se> + + Don't error out on invalid literal key substitutions + + It would be backwards-incompatible to error out on invalid literal key + substitutions. Consider this docstring fragment, where "\\`" should + have been escaped but wasn't: + + "Example value: \"\\(?:\\`[#.]\\)\\|\\(?:[#~]\\'\\)\"." + + If we error out, we can't display this docstring at all. However, it + is clearly better to display something in such cases, even if + suboptimal, than refusing to display anything at all. + + * lisp/help.el (substitute-command-keys): Don't error out on invalid + literal key substitutions: just ignore them instead. + * test/lisp/help-tests.el + (help-tests-substitute-command-keys/literal-key-sequence-errors): + Delete test. + (help-tests-substitute-command-keys/literal-key-sequence-ignore-invalid): + New test. + +2022-06-25 Lars Ingebrigtsen <larsi@gnus.org> + + Re-fix build warnings about subr-x defsubsts + + * lisp/term/haiku-win.el (require): + * lisp/progmodes/elisp-mode.el (require): + * lisp/isearch.el (require): Require subr-x at compile time, since + these use defsubsts/macros from there. + + * lisp/emacs-lisp/subr-x.el (string-empty-p): Move from here... + * lisp/simple.el (string-empty-p): ... to here. This is to help + with a build problem where files.el is using the defsubst, but + requiring subr-x.el at compile time leads to load errors. + +2022-06-25 Manuel Giraud <manuel@ledu-giraud.fr> + + Avoid recording passwords' chars + + * lisp/cus-start.el (standard): New user custom `record-all-keys'. + * src/keyboard.c (syms_of_keyboard): Un-obsolete + `inhibit--record-char'. + * lisp/subr.el (read-passwd): Use `inhibit--record-char' to + inhibit passwords recording. + +2022-06-25 Eli Zaretskii <eliz@gnu.org> + + Minor optimization of the "abort redisplay" feature + + * src/xdisp.c (init_iterator, set_iterator_to_next) + (redisplay_internal): + * src/syntax.c (scan_sexps_forward): + * src/regex-emacs.c (re_match_2_internal): + * src/bidi.c (bidi_fetch_char, bidi_paragraph_init) + (bidi_find_bracket_pairs, bidi_find_other_level_edge): Don't call + 'update_redisplay_ticks' if aborting too-long redisplay is + disabled. (Bug#45898) + +2022-06-25 Po Lu <luangruo@yahoo.com> + + Implement image transform smoothing on Haiku + + * src/dispextern.h (struct image): New field + `use_bilinear_filtering'. + * src/haiku_draw_support.cc (BView_DrawBitmap): Accept it. + * src/haiku_support.h: Update prototypes. + * src/haikuterm.c (haiku_draw_image_glyph_string): + * src/image.c (image_set_transform): Set it. + +2022-06-25 Eli Zaretskii <eliz@gnu.org> + + Fix false positive due to 'max-redisplay-ticks' feature + + * src/xdisp.c (redisplay_internal): Reset the tick count at end of + redisplay cycle. (Bug#45898) + +2022-06-25 Po Lu <luangruo@yahoo.com> + + Fix non-XI2 build + + * src/xterm.c (handle_one_xevent): Don't make `event' const when + passing it to RandR functions. Also, update out of date + comment. + +2022-06-25 Po Lu <luangruo@yahoo.com> + + Implement "flip" image transforms on Haiku + + * src/dispextern.h (struct image): New field `transform', + `original_width' and `original_height'. + * src/haiku_draw_support.cc (BView_DrawMask): Rename to + `be_draw_image_mask' and fix coding style. + (rotate_bitmap_270, BBitmap_transform_bitmap, rotate_bitmap_90): + Delete functions. + (be_apply_affine_transform): New function. + (be_apply_inverse_transform): New function. + + * src/haiku_support.h: Update prototypes. + + * src/haikuterm.c (haiku_translate_transform): New function. + (haiku_draw_image_glyph_string): Use affine transforms to + implement images. + + * src/image.c (image_set_transform): Implement using affine + transforms on Haiku too. + +2022-06-25 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 1f6750b53a Avoid treating number as an enum in the org manual + +2022-06-24 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "Fix some byte-compilation warnings about subr-x" + + This reverts commit cd479aa8bd498da4d7980a7fe7a37e238761482f. + + This led to build failures when doing bootstraps. + +2022-06-24 Lars Ingebrigtsen <larsi@gnus.org> + + Allow toggling completion modes for `M-x' with `M-X' + + * doc/lispref/commands.texi (Interactive Call): Document it. + * lisp/minibuffer.el (minibuffer-local-must-match-map): Bind 'M-X'. + + * lisp/simple.el (execute-extended-command-cycle): New command. + (read-extended-command): Use it to allow toggling (bug#47215). + (read-extended-command-1): Renamed from `read-extended-command'. + (execute-extended-command-for-buffer): Factored out most of the + code... + (command-completion--command-for-this-buffer-function): ... to + here. + (extended-command-versions): New variable. + + This code is based on a patch by Felician Nemeth + <felician.nemeth@gmail.com>. + +2022-06-24 Lars Ingebrigtsen <larsi@gnus.org> + + Make ido sorting respect ido-case-fold + + * lisp/ido.el (ido-file-lessp): + (ido-file-extension-lessp): Respect ido-case-fold (bug#47127). + +2022-06-24 Stefan Kangas <stefan@marxist.se> + + Avoid treating number as an enum in the org manual + + * doc/misc/org.org (The Agenda Dispatcher): Avoid treating number as + enum. + +2022-06-24 Michael Albinus <michael.albinus@gmx.de> + + Make url-tramp-convert-tramp-to-url more robust + + * lisp/url/url-tramp.el (url-tramp-convert-tramp-to-url): + Prevent errors from not existing Tramp methods. + +2022-06-24 Platon Pronko <platon7pronko@gmail.com> (tiny change) + + Fix logic error in Tramp, setting file ownership + + * lisp/net/tramp.el (tramp-skeleton-write-region): Fix logic in + changing file ownership. (Bug#56180) + +2022-06-24 Timo Taipalus <timo@taipalus.cc> + + Add support for image flipping + + * lisp/image.el (image-map): Keybindings for flipping functions. + (image-flip-horizontally): New function that toggles image flipping + property. + (image-flip-vertically): New function that toggles image flipping + property and rotates image 180 degrees. + * src/image.c (syms_of_image): Add property. + (image_set_transform): Modify image rotation code to also horizontally + flip the image when the property is set. + * etc/NEWS: Add description. + * doc/lispref/display.texi (Image Descriptors): Document :flip + (bug#47095). + +2022-06-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix some byte-compilation warnings about subr-x + + * lisp/term/haiku-win.el (require): + * lisp/replace.el (require): + * lisp/progmodes/elisp-mode.el (require): + * lisp/isearch.el (require): + * lisp/files.el (require): Require subr-x when compiling. + +2022-06-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix imenu popup syntax + + * lisp/imenu.el (imenu--create-keymap): Fix menu syntax + (bug#56185). + +2022-06-24 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + a772c0b852 ; Fix typos: prefer US spelling. + + # Conflicts: + # doc/misc/modus-themes.org + +2022-06-24 Eli Zaretskii <eliz@gnu.org> + + Fix assertion violation when 'max-redisplay-ticks' is set too low + + * src/xdisp.c (update_redisplay_ticks): Disable 'scrolling_window' + optimization in 'update_window' when redisplay of a window is + aborted. (Bug#56184) + +2022-06-24 Lars Ingebrigtsen <larsi@gnus.org> + + Add NEWS entry about kill-buffer change + +2022-06-24 Mattias Engdegård <mattiase@acm.org> + + Bytecode opcode comments update + + This is a cosmetic change only; there is no change in behavior. + + * lisp/emacs-lisp/bytecomp.el: + * src/bytecode.c (BYTE_CODES, exec_byte_code): + Update and/or remove incorrect, outdated or useless comments. + Clarify. Reorder where appropriate. Rename Bsave_current_buffer to + Bsave_current_buffer_OBSOLETE and Bsave_current_buffer_1 to + Bsave_current_buffer, reflecting the state since 1996. + +2022-06-24 Basil L. Contovounesios <contovob@tcd.ie> + + Reduce memory footprint of eglot--{} + + * eglot.el (eglot--{}): Specify smallest hash table :size, to spare + ~1KiB according to memory-report-object-size. + + See also https://github.com/joaotavora/eglot/pull/315. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/978 + +2022-06-24 Lars Ingebrigtsen <larsi@gnus.org> + + Update seq.el comment + + * lisp/emacs-lisp/seq.el: Update comment. + +2022-06-24 Lars Ingebrigtsen <larsi@gnus.org> + + Allow `kill-buffer' query to save the buffer first + + * lisp/loadup.el ("emacs-lisp/rmc"): Preload. + + * lisp/simple.el (kill-buffer--possibly-save): New function to + offer to save the buffer before killing (bug#47075). + + * src/buffer.c (Fkill_buffer): Call the new function to query the + user. + (syms_of_buffer): Define symbol. + +2022-06-24 Lars Ingebrigtsen <larsi@gnus.org> + + Preload seq + + * lisp/loadup.el ("emacs-lisp/seq"): Preload seq since it's now + almost impossible to do anything in Emacs that doesn't result in + seq being loaded -- for instance, visiting a .txt file or an .el + file, so this will speed up Emacs usage for basically everybody. + +2022-06-24 Lars Ingebrigtsen <larsi@gnus.org> + + Allow read-multiple-choice to do long-form answers + + * doc/lispref/commands.texi (Reading One Event): Document it. + + * lisp/emacs-lisp/rmc.el (read-multiple-choice): Allow using + long-form answers instead of single character ones. + (read-multiple-choice--long-answers): New function. + (read-multiple-choice--short-answers): Refactored out from the + main function. + +2022-06-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix cl-generic bootstrap problems + + * lisp/sqlite-mode.el (require): + * lisp/net/eudc.el (require): + * lisp/arc-mode.el (require): Require subr-x, since these files + are using macros from there. + * lisp/emacs-lisp/subr-x.el (with-memoization): Move from here... + * lisp/subr.el (with-memoization): ... to here, as it's used from + the preloaded cl-generic.el file. + + * lisp/emacs-lisp/cl-generic.el (cl--generic-compiler): Don't use + the autoloaded `byte-compile' function during bootstrap. + (cl--generic-get-dispatcher): Don't require subr-x, either. + + cl-generic has been preloaded since 2015, and most usages of it (in + preloaded files) work fine. In particular, using `cl-defgeneric' is + unproblematic. However, `cl-defmethod' would end up pulling in the + byte compiler (at load time), which would make it impossible to use + `cl-defmethod' in pre-loaded files, and this change fixes that (but + possibly not in the most self-evidently correct way). + +2022-06-24 Lars Ingebrigtsen <larsi@gnus.org> + + Make warning about require/autoload while bootstrapping not error out + + * src/fns.c (Frequire): + * src/eval.c (Fautoload_do_load): Avoid further errors while + outputting the error about not being able to autoload/require + while bootstrapping. + +2022-06-24 Lars Ingebrigtsen <larsi@gnus.org> + + Make debug-early-backtrace more resilient + + * lisp/emacs-lisp/debug-early.el (debug-early-backtrace): Allow + outputting backtraces during bootstrap. + +2022-06-24 Po Lu <luangruo@yahoo.com> + + Fix handling of mouse motion across screens during drag-and-drop + + * src/xterm.c (x_dnd_fill_empty_target): New function. + (handle_one_xevent): Fill empty target if the event didn't come + from the same screen. + +2022-06-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix previous nnimap header fetching change + + * lisp/gnus/nnimap.el (nnimap-retrieve-headers): Ensure that the + splitting works. + +2022-06-24 Eli Zaretskii <eliz@gnu.org> + + Merge branch 'abort-redisplay' + + This allows abandoning the redisplay of a window + that takes too long to complete. Bug#45898 + * src/xdisp.c (update_redisplay_ticks): New function. + (init_iterator, set_iterator_to_next): Call + 'update_redisplay_ticks'. + (syms_of_xdisp) <max_redisplay_ticks>: New variable. + <list_of_error>: Remove 'void-variable': it is no longer needed, + since 'calc_pixel_width_or_height' can no longer signal a + void-variable error, and it gets in the way of aborting + redisplay via 'redisplay_window_error'. + * src/keyboard.c (command_loop_1): Reinitialize the tick count + before executing each command in the loop. + * src/syntax.c (scan_sexps_forward): Call 'update_redisplay_ticks' + after finishing the loop. + * src/dispnew.c (make_current): Make sure enabled rows of the + current matrix have a valid hash, even if redisplay of a window + was aborted due to slowness. This avoids assertion violations in + 'scrolling_window' due to the wrong hash value. + * src/xdisp.c (display_working_on_window_p): New global variable. + (unwind_display_working_on_window): New function. + * src/keyboard.c (command_loop_1): Reset + 'display_working_on_window_p' before and after executing commands. + * src/window.c (Frecenter, window_scroll, displayed_window_lines): + * src/indent.c (Fvertical_motion): Set + 'display_working_on_window_p' before calling 'start_display'. + * src/syntax.c (scan_sexps_forward): Call 'update_redisplay_ticks' + after finishing the loop. + * src/regex-emacs.c (re_match_2_internal): + * src/bidi.c (bidi_find_bracket_pairs, bidi_fetch_char) + (bidi_paragraph_init, bidi_find_other_level_edge): Update the + redisplay tick count as appropriate, when moving the iterator by + one character position actually requires to examine many more + positions. + * src/xdisp.c (redisplay_window_error): Show messages about + aborted redisplay of a window as delayed-warnings. + + * doc/emacs/trouble.texi (DEL Does Not Delete): Move to the end of + the chapter. This issue is no longer frequent or important as it + was back in Emacs 20 days. + (Long Lines): Document 'max-redisplay-ticks'. + * doc/emacs/emacs.texi (Top): Update the detailed menu. + + * etc/NEWS: Announce 'max-redisplay-ticks'. + +2022-06-23 Po Lu <luangruo@yahoo.com> + + Improve grabbing detection with multiple master devices (MPX) + + * src/frame.c (gui_mouse_grabbed): Respect any_grab_hook. + * src/termhooks.h (GCALIGNED_STRUCT): New hook `any_grab_hook'. + * src/xterm.c (x_have_any_grab): New function. + (x_create_terminal): Define hook on XI2 builds. + +2022-06-23 Po Lu <luangruo@yahoo.com> + + Simplify XI event state conversion + + * src/xterm.c (xi_convert_button_state, xi_convert_event_state): + New functions. + (handle_one_xevent): Reduce duplicate code for converting XI + state and button state into X state. + +2022-06-23 Stefan Kangas <stefan@marxist.se> + + * lisp/net/browse-url.el: Doc fix; recommend keymap-* functions. + + * lisp/recentf.el (recentf-auto-cleanup): Clarify docstring. + +2022-06-23 Mattias Engdegård <mattiase@acm.org> + + Remove unused function in bytecomp.el + + * lisp/emacs-lisp/bytecomp.el (byte-compile-delete-first): Remove. + +2022-06-23 Gerd Moellmann <gerd.moellmann@gmail.com> + + Save desktop-save-mode when changed from menu + + * lisp/menu-bar.el (menu-bar-options-save): Save desktop-save-mode + (bug#56156). + +2022-06-23 Stefan Kangas <stefan@marxist.se> + + Tag shortcut commands for recentf-dialog-mode + + * lisp/recentf.el (recentf--shortcuts-keymap): Add interactive mode + tags for 'recentf-dialog-mode' specific commands. + +2022-06-23 Stefan Kangas <stefan@marxist.se> + + Prefer defvar-keymap and keymap-set in recentf.el + + * lisp/recentf.el (recentf-mode-map): Prefer defvar-keymap. + (recentf--shortcuts-keymap): Prefer keymap-set. + +2022-06-23 Stefan Kangas <stefan@marxist.se> + + Use shortened filenames in recentf-mode + + * lisp/recentf.el (recentf-filename-handlers): Set to + 'abbreviate-file-name' to get shortened names by default. (Bug#56123) + +2022-06-23 Stefan Kangas <stefan@marxist.se> + + Revert "Allow shortening filenames in recentf-mode menu" + + This reverts commit 32906819addde1aa952d4718699d332d3a58b004. + +2022-06-23 Stefan Kangas <stefan@marxist.se> + + Revert "Use short file names by default in recentf menu" + + This reverts commit ec9228eb81c0a89b18480dfff18cc9afdc3d0884. + +2022-06-23 Lars Ingebrigtsen <larsi@gnus.org> + + Ensure that nnimap doesn't send too long lines to the server + + * lisp/gnus/nnimap.el (nnimap-retrieve-headers): Don't send + too-long lines to the server (bug#56138). + +2022-06-23 Po Lu <luangruo@yahoo.com> + + Minor fixes to last change + + * src/pgtkselect.c (pgtk_get_window_property): Add 1 to xdata + when it is GdkAtom. + * src/pgtkterm.c (drag_leave): Initialize inev.ie. + +2022-06-23 Po Lu <luangruo@yahoo.com> + + Make DND from other GTK programs work on Wayland + + * lisp/pgtk-dnd.el (pgtk-dnd-handle-gdk): Try to keep the + selection contents in extra-data during a motion event. + +2022-06-23 Po Lu <luangruo@yahoo.com> + + Allow dropping more data types on PGTK + + * lisp/loadup.el (featurep): Load `pgtk-dnd'. + * lisp/pgtk-dnd.el: New file. + (pgtk-dnd-test-function, pgtk-dnd-types-alist) + (pgtk-dnd-known-types, pgtk-dnd-use-offix-drop) + (pgtk-dnd-current-state, pgtk-get-selection-internal) + (pgtk-register-dnd-targets, pgtk-dnd-empty-state) + (pgtk-dnd-init-frame, pgtk-dnd-get-state-cons-for-frame) + (pgtk-dnd-get-state-for-frame, pgtk-dnd-default-test-function) + (pgtk-dnd-current-type, pgtk-dnd-forget-drop) + (pgtk-dnd-maybe-call-test-function, pgtk-dnd-save-state) + (pgtk-dnd-handle-moz-url, pgtk-dnd-insert-utf8-text) + (pgtk-dnd-insert-utf16-text, pgtk-dnd-insert-ctext) + (pgtk-dnd-handle-uri-list, pgtk-dnd-handle-file-name) + (pgtk-dnd-choose-type, pgtk-dnd-drop-data) + (pgtk-dnd-handle-drag-n-drop-event, pgtk-update-drop-status) + (pgtk-drop-finish, pgtk-dnd-handle-gdk, pgtk-dnd): New variables + and functions and library. + + * lisp/term/pgtk-win.el (special-event-map): Load + `drag-n-drop-event'. + (after-make-frame-functions): Register DND after make frame + functions. + + * src/emacs.c (main): Stop calling empty init_pgtkterm function. + + * src/pgtkselect.c (Fpgtk_register_dnd_targets, Fpgtk_drop_finish) + (Fpgtk_update_drop_status): New functions. + (syms_of_pgtkselect): Register new functions. + * src/pgtkterm.c (struct event_queue_t): Fix coding style of + definition. + (symbol_to_drag_action, drag_action_to_symbol) + (pgtk_update_drop_status, pgtk_finish_drop): New functions. + (drag_data_received): Delete function. + (pgtk_set_event_handler): Register for DND correctly. + (syms_of_pgtkterm): New defsyms for DND types. + (init_pgtkterm): Delete function. + + * src/pgtkterm.h: Update prototypes, fix prototype coding style. + +2022-06-23 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + a3f294b37f Improve last change in autotype.texi + +2022-06-22 Po Lu <luangruo@yahoo.com> + + Don't send XdndPosition before XdndStatus arrives + + * src/xterm.c (x_dnd_send_position): Set pending DND message if + target is right. + (x_dnd_send_leave): Clear pending status target. + (x_dnd_begin_drag_and_drop): Clear new flags. + (handle_one_xevent): Respect those flags. + +2022-06-22 Po Lu <luangruo@yahoo.com> + + Update device-specific grab during drag-and-drop + + * src/xterm.c (x_detect_focus_change): Fix typo. + (handle_one_xevent): Set device if DND is in progress and update + device->grab. + +2022-06-22 Stefan Kangas <stefan@marxist.se> + + Make recentf-elements obsolete + + * lisp/recentf.el (recentf-elements): Make obsolete. Update + callers. + +2022-06-22 Stefan Kangas <stefan@marxist.se> + + Convert several defsubst to defun in recentf.el + + * lisp/recentf.el (recentf-enabled-p, recentf-string-equal) + (recentf-string-lessp, recentf-push, recentf-expand-file-name) + (recentf-add-file, recentf-remove-if-non-kept) + (recentf-digit-shortcut-command-name, recentf-elements) + (recentf-menu-bar, recentf-sort-ascending) + (recentf-sort-descending, recentf-sort-basenames-ascending) + (recentf-sort-basenames-descending) + (recentf-sort-directories-ascending) + (recentf-sort-directories-descending) + (recentf-show-basenames-ascending) + (recentf-show-basenames-descending): Change from defsubst to + defun. + +2022-06-22 Stefan Kangas <stefan@marxist.se> + + Bind C-c C-c and C-c C-k in recentf-dialog-mode + + * lisp/recentf.el (recentf-dialog-mode-map): Prefer defvar-keymap. + Bind `C-c C-c' and `C-c C-k' to confirm/cancel the dialog. + (recentf-cancel-dialog, recentf-edit-list-validate): Add + interactive mode tags for 'recentf-dialog-mode'. + (recentf-dialog-mode): Mark as non-interactive. + (recentf-edit-list): Display key binding. + +2022-06-22 Michael Albinus <michael.albinus@gmx.de> + + Fix dnd-tests-open-remote-url on EMBA + + * test/lisp/dnd-tests.el (dnd-tests-open-remote-url): Check for + ftp client. + +2022-06-22 Mattias Engdegård <mattiase@acm.org> + + duplicate-line: fix optional argument and add test (bug#46621) + + The test assumes that the current semantics are intended and desired, + which may or may not be true, but it's better than not having any at + all. + + * lisp/misc.el (duplicate-line): Don't crash if called with no argument. + * test/lisp/misc-tests.el (misc--duplicate-line): New test. + +2022-06-22 Richard Hansen <rhansen@rhansen.org> + + bindat (strz): Null terminate fixed-length strings if there is room + + * lisp/emacs-lisp/bindat.el (bindat--pack-strz): For fixed-length strz + fields, explicitly write a null terminator after the packed string if + there is room (bug#56048). + * doc/lispref/processes.texi (Bindat Types): Update documentation. + * test/lisp/emacs-lisp/bindat-tests.el (bindat-test--str-strz-prealloc): + Update tests. + +2022-06-22 Gerd Moellmann <gerd.moellmann@gmail.com> + + Prevent GC of window referenced from EmacsScroller + + * src/nsterm.m (EmacsScroller.mark, mark_nsterm): New functions. + * src/nsterm.h (EmacsScroller.mark, mark_nsterm): Declare. + * src/alloc.c (garbage_collect) [MAVE_NS]: Call mark_nsterm. + (Bug#56095) + +2022-06-22 Eli Zaretskii <eliz@gnu.org> + + Improve last change in autotype.texi + + * doc/misc/autotype.texi (Autoinserting): Fix wording. Suggested + by Richard Stallman <rms@gnu.org>. + +2022-06-22 Stefan Kangas <stefan@marxist.se> + + Prefer Emacs mouse button event names to XEmacs names + + * lisp/mwheel.el: + * lisp/vc/ediff-mult.el (ediff-meta-buffer-verbose-message) + (ediff-draw-dir-diffs, ediff-redraw-registry-buffer): Prefer Emacs + mouse button event names to XEmacs names. + +2022-06-22 Stefan Kangas <stefan@marxist.se> + + * lisp/bs.el (bs-mode-map): Prefer defvar-keymap. + +2022-06-22 Po Lu <luangruo@yahoo.com> + + Fix non-system-malloc build + + * src/xterm.c (x_gc_free_ext_data_private): New function. + (x_gc_get_ext_data): Set it as the private data free function. + +2022-06-22 Stefan Kangas <stefan@marxist.se> + + Do interactive mode tagging in edmacro.el + + * lisp/edmacro.el (edmacro-finish-edit, edmacro-insert-key): + Add interactive mode tag for edmacro-mode. + +2022-06-22 Stefan Kangas <stefan@marxist.se> + + Use short file names by default in recentf menu + + * lisp/recentf.el (recentf-menu-filter): Set the default to + 'recentf-show-abbreviated' to get short file names. (Bug#56123) + +2022-06-22 Sean Whitton <spwhitton@spwhitton.name> + + Don't drop existing escape char in eshell + + * lisp/eshell/em-term.el (eshell-exec-visual): Don't drop existing + escape char. + +2022-06-22 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (x_scroll_bar_note_movement): Fix no-toolkit build. + +2022-06-21 Lars Ingebrigtsen <larsi@gnus.org> + + Mention the new Tetris user option + +2022-06-21 Po Lu <luangruo@yahoo.com> + + Port x-selection-timeout to PGTK + + * src/pgtkselect.c (pgtk_own_selection): Fix comment. + (wait_for_property_change, pgtk_get_foreign_selection): Respect + selection timeout. + (syms_of_pgtkselect): New variable `pgtk-selection-timeout'. + +2022-06-21 Po Lu <luangruo@yahoo.com> + + Fix setting user time for mouse movement events + + * src/xterm.c (x_note_mouse_movement, XTmouse_position) + (x_scroll_bar_note_movement, handle_one_xevent): Record whether + or not mouse movement was send_event before using the mouse + movement time. + + * src/xterm.h (struct x_display_info): New field + `last_mouse_movement_time_send_event'. + +2022-06-21 Sam Steingold <sds@gnu.org> + + A trivial optimization and a formatting fix + + * lisp/subr.el (internal--compiler-macro-cXXr): Reuse `head' for `n'. + Fix indentation and line length. + +2022-06-21 Tassilo Horn <tsdh@gnu.org> + + Merge from origin/emacs-28 + + f3acc09377 ; Revert "Use file-in-directory-p instead of obsolete dire... + 5082d74cfd ; * lisp/recentf.el: Fix typo. + 3f66e2a903 * lisp/repeat.el (repeat-mode): Fix message format. + 137539c125 Clarify autotype.texi text slightly + +2022-06-21 Lars Ingebrigtsen <larsi@gnus.org> + + Fix logic in previous Tetris change + + * lisp/play/tetris.el (tetris-new-shape): Fix logic in previous + change. + +2022-06-21 Timothee Denizou <timothee.denizou@epita.fr> (tiny change) + + Allow different randomization of shapes in Tetris + + * lisp/play/tetris.el (tetris-allow-repetitions): New user option. + (tetris--shuffle, tetris--seven-bag): New functions. + (tetris-new-shape): Use the option. + + * Added 7 bag randomizer for tetris + A piece is selected from the bag and removed each time we want a piece + When the bag is empty, refill the bag with the seven piece and shuffle it + +2022-06-21 Lars Ingebrigtsen <larsi@gnus.org> + + Fix shr--set-target-ids test for empty buffer + + * lisp/net/shr.el (shr--set-target-ids): Fix the check for an + empty buffer (which may be narrowed). + +2022-06-21 Michael Heerdegen <michael_heerdegen@web.de> + + Fix autoload generation of iter-defun forms + + This fixes Bug#54648. + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload): + Add `iter-defun' and `cl-iter-defun' to the list of "complex cases" + that are macro-expanded and recursed on. + +2022-06-21 Philipp Stephani <phst@google.com> + + Document and test 'no-byte-compile' behavior. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Document behavior + if 'no-byte-compile' is set. + * test/lisp/emacs-lisp/bytecomp-tests.el + (byte-compile-file/no-byte-compile): New unit test. + * test/lisp/emacs-lisp/bytecomp-resources/no-byte-compile.el: New test + file. + +2022-06-21 Lars Ingebrigtsen <larsi@gnus.org> + + Fix too-long ediff defface doc strings + + * lisp/vc/ediff-init.el (ediff-fine-diff-Ancestor): + (ediff-even-diff-Ancestor): + (ediff-odd-diff-Ancestor): Fix too-long doc strings. + +2022-06-21 Lars Ingebrigtsen <larsi@gnus.org> + + Check defface doc strings + + * lisp/emacs-lisp/bytecomp.el + (byte-compile-file-form-custom-declare-variable): We already warn + about missing groups from byte-compile-normal-call, so this would + be a double warning. + (custom-declare-face) + (byte-compile-file-form-custom-declare-face): Add doc string + checking for defface. + +2022-06-21 Lars Ingebrigtsen <larsi@gnus.org> + + Untabify doc strings before displaying in Customize + + * lisp/cus-edit.el (custom-variable-documentation): Untabify the + doc string since we'll be indenting it when displaying it (which + makes the tabs not align properly). + +2022-06-21 Manuel Giraud <manuel@ledu-giraud.fr> + + Two typos captured on OpenBSD/clang + +2022-06-21 Po Lu <luangruo@yahoo.com> + + Fix recent change to xlwmenu.c + + * lwlib/xlwmenu.c (ungrab_all): Ungrab keyboard if it was + grabbed. This handles `lucid--menu-grab-keyboard' changing + while the menu is open. + + (XlwMenuDestroy): + (pop_up_menu): Record if the keyboard was grabbed. + +2022-06-21 Po Lu <luangruo@yahoo.com> + + Rewrite PGTK selection code from scratch + + * src/frame.c (delete_frame): Clear selections and swallow + special events. + + * src/keyboard.c (kbd_buffer_get_event, process_special_events): + Also handle selection events on PGTK. + + * src/keyboard.h (union buffered_input_event): Include selection + events on PGTK. + + * src/pgtkselect.c (symbol_to_gtk_clipboard, LOCAL_SELECTION): + New functions and macros. + (selection_type_to_quarks, get_func, clear_func): Delete + functions. + (pgtk_selection_init, pgtk_selection_lost): + (pgtk_selection_usable): New functions. + (Fpgtk_own_selection_internal, Fpgtk_disown_selection_internal) + (Fpgtk_selection_exists_p, Fpgtk_selection_owner_p) + (Fpgtk_get_selection_internal): Complete rewrite. + (syms_of_pgtkselect): Update defsyms and add more hooks. + + * src/pgtkselect.h: Delete file. + + * src/pgtkterm.c (evq_enqueue): Set last user time based on the + event. + (pgtk_any_window_to_frame, button_event): Fix coding style. + (pgtk_set_event_handler): Add selection events. + (pgtk_find_selection_owner, pgtk_selection_event): New + functions. + (pgtk_term_init): Remove call to `pgtk_selection_init'. + + * src/pgtkterm.h (struct pgtk_display_info): New field + `display'. + (enum selection_input_event): New struct. New macros for + accessing its fields. + +2022-06-21 Lars Ingebrigtsen <larsi@gnus.org> + + Fix previous -batch change for gc-cons-percentage + + * src/emacs.c (main): Reset the default for gc-cons-percentage in + interactive Emacs. + +2022-06-21 Lars Ingebrigtsen <larsi@gnus.org> + + Increase gc-cons-percentage in -batch Emacs + + * doc/lispref/os.texi (Batch Mode): Document it. + + * src/emacs.c (main): Use a gc-cons-percentage of 1.0 in + noninteractive Emacsen. + +2022-06-21 Michael Albinus <michael.albinus@gmx.de> + + Tramp code cleanup + + * lisp/net/tramp-adb.el (tramp-adb-handle-make-process): + * lisp/net/tramp-sh.el (tramp-sh-handle-make-process): + Improve handling of "process-name" and "process-buffer" connection + properties. + +2022-06-21 Stefan Kangas <stefan@marxist.se> + + Allow shortening filenames in recentf-mode menu + + * lisp/recentf.el (recentf-show-abbreviated): New function. + (recentf--filter-names): New helper function. + (recentf-show-basenames): Use above new helper function. + (recentf-menu-filter): Allow setting user option to new value + 'recentf-show-abbreviated'. + +2022-06-21 Stefan Kangas <stefan@marxist.se> + + * lisp/repeat.el (repeat-mode): Fix message format. + +2022-06-21 kobarity <kobarity@gmail.com> + + Fix nested defuns handling in `python-nav-beginning-of-defun' + + * lisp/progmodes/python.el (python-nav--beginning-of-defun): Fix + handling of nested defuns (bug#56105). + +2022-06-21 Lars Ingebrigtsen <larsi@gnus.org> + + Fix previous describe-key change + + * lisp/help.el (describe-function-orig-buffer): Ensure we bind + dynamically. + +2022-06-21 Lars Ingebrigtsen <larsi@gnus.org> + + Make describe-key do doc string command key substitution again + + * lisp/help.el (describe-key): Do doc string command key + substitution (bug#56106). + +2022-06-21 Lars Ingebrigtsen <larsi@gnus.org> + + Fix fontification in describe-key + + * lisp/help.el (describe-key): Use insert instead of princ so that + text properties on the key descriptions survive. + +2022-06-21 Kevin Brubeck Unhammer <unhammer@fsfe.org> + + Speed up mail-extr in some configurations + + * lisp/mail/mail-extr.el (mail-extract-address-components): + (mail-extract-address-components): The buffer is already in + fundamental-mode, so don't re-enable it (bug#56113). + +2022-06-21 Earl Hyatt <okamsn@protonmail.com> + + Clarify autotype.texi text slightly + + * doc/misc/autotype.texi (Autoinserting): Make text slightly + clearer (bug#56118). + +2022-06-21 Lars Ingebrigtsen <larsi@gnus.org> + + Rename recently-introduced dired-omit-line-regexp user option + + * lisp/dired-x.el (dired-omit-lines, dired-omit-mode): Rename + dired-omit-line-regexp to dired-omit-lines for consistency. + +2022-06-21 Lars Ingebrigtsen <larsi@gnus.org> + + Make Lucid menus work from the keyboard also when uninstalled + + * lwlib/xlwmenu.c (ungrab_all, pop_up_menu): Use it. + + * src/keyboard.c (syms_of_keyboard): New variable (bug#46990). + +2022-06-21 Po Lu <luangruo@yahoo.com> + + Allow toggling antialiasing inside the Haiku font dialog + + * src/haiku_support.cc (struct font_selection_dialog_message): + New field `disable_antialias'. + (MessageReceived): Handle new message SET_DISABLE_ANTIALIASING. + (class DualLayoutView): Rename to `TripleLayoutView'. + (class TripleLayoutView): Rename from `DualLayoutView'. + (MinSize): Update computations for three views. + + (class EmacsFontSelectionDialog, UpdatePreview) + (EmacsFontSelectionDialog): Add an antialiasing checkbox to + control antialiasing. + (be_select_font): New arguments `initial_antialias' and + `disable_antialias'. + + * src/haiku_support.h: Update prototypes. + + * src/haikufont.c (haikufont_pattern_from_object): Set + FSPEC_ANTIALIAS. + (Fx_select_font): Update accordingly. + +2022-06-21 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 2eb738f2b8 Support builds configured with a separate --bindir + cf4c204df8 * doc/misc/eww.texi (Overview, Basics): Fix typos. + +2022-06-20 Po Lu <luangruo@yahoo.com> + + Add test for bug#56078 fix + + * test/lisp/dnd-tests.el (dnd-tests-open-remote-url): New test. + +2022-06-20 Po Lu <luangruo@yahoo.com> + + Remove selection requests on the keyboard buffer when closing display + + * src/xterm.c (X_NEXT_KBD_EVENT): New macro. + (x_defer_selection_requests): Set input_pending if the kbd + buffer was modified. + (x_delete_selection_requests): New function. + (x_delete_display): Call that. Bug found when a display died + while the clipboard manager was sending an unreasonably high + number of requests. + +2022-06-20 Po Lu <luangruo@yahoo.com> + + Move selection delayed message to a better location + + * lisp/term/x-win.el (gui-backend-get-selection): Remove + `with-delayed-message' here. + * src/xselect.c (x_display_selection_waiting_message) + (x_cancel_atimer): New functions. + (x_get_foreign_selection): Add an atimer that displays the + message after a while. + +2022-06-20 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/edmacro.el: Add missing (require 'seq). + +2022-06-20 Sean Whitton <spwhitton@spwhitton.name> + + term-set-escape-char: Remove old binding from term-raw-escape-map + + * lisp/term.el (term-set-escape-char): When replacing the escape char, + remove the binding of the old escape char in term-raw-escape-map. + +2022-06-20 Alan Mackenzie <acm@muc.de> + + Fix potential (goto-char nil) in byte-compile-warning-prefix + + * lisp/emacs-lisp/bytecomp.el (byte-compile-warning-prefix): Replace a wrong + 'or' form involving OFFSET with simply OFFSET. This prevents OFFSET from + possibly being nil in the first branch of the containing `if' form. + +2022-06-20 Eli Zaretskii <eliz@gnu.org> + + Support builds configured with a separate --bindir + + * src/emacs.c (load_pdump): Don't overwrite the leading + directories of the Emacs executable just because the pdumper file + was not found in the expected directory relative to the binary. + This is needed to support builds with a separate --bindir + configure-time option and native-compilation. (Bug#55741) + +2022-06-20 Lars Ingebrigtsen <larsi@gnus.org> + + Issue a message if getting a selection takes a long time + + * lisp/term/x-win.el (gui-backend-get-selection): If getting the + selection takes a long time, issue a message after one second + (bug#46935). + +2022-06-20 Michael Albinus <michael.albinus@gmx.de> + + Adapt url-tramp-tests + + * test/lisp/url/url-tramp-tests.el (url-tramp-test-convert-url-to-tramp) + (url-tramp-test-convert-tramp-to-url): Adapt tests. + +2022-06-20 Po Lu <luangruo@yahoo.com> + + Fix x-selection-timeout if some keyboard input arrives while waiting + + * src/process.c (wait_reading_process_output): Don't allow + skipping calls to select if detect_input_pending when just + waiting for a cell. (bug#46935) + + * src/xselect.c (x_get_foreign_selection): Add more debugging + code. + +2022-06-20 Stefan Kangas <stefan@marxist.se> + + Prefer defvar-keymap in hi-lock.el + + * lisp/hi-lock.el: Prefer keymap-set in documentation. + (hi-lock-map): Prefer defvar-keymap. + +2022-06-20 Po Lu <luangruo@yahoo.com> + + Fix ns-reg-to-script definition + + * src/nsfont.m (syms_of_nsfont): Fix definition. + +2022-06-20 Po Lu <luangruo@yahoo.com> + + Fix running temacs on Haiku + + * src/emacs.c (main): Run init_haiku_select at the right place. + +2022-06-20 Po Lu <luangruo@yahoo.com> + + Fix initialization of Haiku font driver + + * src/font.c (register_font_driver): Fix comment. + + * src/haikufont.c (haikufont_booleans): New list. + (haikufont_filter_properties): New function. + (haikufont_driver): Register new hook. + (syms_of_haikufont_for_pdumper): Register font driver globally. + (syms_of_haikufont): Call it in a pdumper hook. + +2022-06-20 Michael Albinus <michael.albinus@gmx.de> + + Fix problems with Tramp FTP and URL handler mode + + * lisp/net/tramp-archive.el (tramp-archive-run-real-handler): + Add ;;;###tramp-autoload cookie. + + * lisp/net/tramp-ftp.el (tramp-ftp-file-name-handler): Prevent invocation + of `tramp-archive-file-name-handler'. (Bug#56078) + + * lisp/url/url-tramp.el (url-tramp-convert-url-to-tramp) + (url-tramp-convert-tramp-to-url): Make them more robust. + +2022-06-20 Po Lu <luangruo@yahoo.com> + + Ignore pinch events from the wrong window + + * src/xterm.c (handle_one_xevent): Use x_window_to_frame to find + frames for pinch events. + +2022-06-20 David Ponce <da_vid@orange.fr> + + Make images found through `find-image' be handled like `create-image' + + * lisp/image.el (find-image): Use `create-image' so that we get + auto-scaling of images (bug#40978). + +2022-06-20 Lars Ingebrigtsen <larsi@gnus.org> + + Allow using :width/:height as normal with xbm images + + * doc/lispref/display.texi (XBM Images): Adjust the documentation. + * src/image.c (enum xbm_keyword_index): Add :data-width and + :data-height. + (xbm_format): Ditto. + (xbm_image_p): Allow passing in :width/:height for display. + (xbm_load): Use :data-width/:data-height. + +2022-06-20 Stefan Kangas <stefan@marxist.se> + + * doc/misc/eww.texi (Overview, Basics): Fix typos. + +2022-06-20 Richard Hansen <rhansen@rhansen.org> + + whitespace: Redraw if indentation or line length changes + + * lisp/whitespace.el (whitespace-color-on): Convert the indentation + matcher from a static regular expression to a function so that changes + to `indent-tabs-mode' and `tab-width' are picked up the next time + `font-lock-flush' runs. + (whitespace--indentation-matcher): The new function matcher. + (whitespace--variable-watcher): New variable watcher that calls + `font-lock-flush' if `whitespace-mode' is enabled for the buffer. + (whitespace--watched-vars): List of variables to watch. + (whitespace-unload-function): Un-watch the variables. (bug#56103). + +2022-06-19 Po Lu <luangruo@yahoo.com> + + Respect `:antialias' on Haiku + + * src/haiku_font_support.cc (BFont_find): Pass through + FSPEC_ANTIALIAS. + (be_set_font_antialiasing): New function. + + * src/haiku_support.h (enum haiku_font_specification): New enum + FSPEC_ANTIALIAS. + (struct haiku_font_pattern): New field `use_antialiasing'. + + * src/haikufont.c (haikufont_pattern_to_entity) + (haikufont_spec_or_entity_to_pattern, haikufont_open): Respect + antialiasing. + (syms_of_haikufont): New defsym `:indices'. + +2022-06-19 Yuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64> + + * src/treesit.c (make_ts_parser): Initialize timestamp field. + +2022-06-19 Po Lu <luangruo@yahoo.com> + + Don't generate superfluous wheel events during drag and drop + + * src/xterm.c (handle_one_xevent): Only set user time and don't + create wheel events if DND is in progress. + +2022-06-19 Po Lu <luangruo@yahoo.com> + + Fix earlier change in xfaces.c for antialiasing in the mode line + + * src/xfaces.c (realize_gui_face): Don't put QCantialias in + empty spec if it doesn't exist in the original. + +2022-06-19 Miha Rihtaršič <miha@kamnitnik.top> + + xref-goto-xref: Set input focus in addition to selecting window + + * lisp/progmodes/xref.el (xref--show-location): Set input focus in + addition to selecting displayed window (Bug#55983). + +2022-06-19 Lars Ingebrigtsen <larsi@gnus.org> + + Allow removing quotes around links in *Help* buffers + + * doc/emacs/help.texi (Help Mode): Document it. + * lisp/help-mode.el (help-clean-buttons): New user option + (help-xref-button): Use it. + +2022-06-19 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak quoting in help-fns--compiler-macro + + * lisp/help-fns.el (help-fns--compiler-macro): Fix quotes in help + text. + +2022-06-19 Pip Cet <pipcet@gmail.com> + + Fix bytecompiler infloop compiling infloops + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): Don't apply + optimization if we can't change anything (bug#46906). + +2022-06-19 Drew Adams <drew.adams@oracle.com> + + Let `dired-omit-mode' match lines, as well as file names + + * lisp/dired-aux.el (dired-do-kill-lines): Adjust to use it. + + * lisp/dired-x.el (dired-omit-line-regexp): New user option + (bug#46882). + (dired-omit-mode, dired-omit-expunge): Use the new user option. + +2022-06-19 Stefan Kangas <stefan@marxist.se> + + Update font scaling documentation to not talk about "face height" + + * lisp/play/gamegrid.el (gamegrid-init-buffer): + * lisp/mwheel.el (mouse-wheel-scroll-amount): + (mouse-wheel-text-scale): + * lisp/faces.el (set-face-attribute): + * lisp/face-remap.el (text-scale-mode-step): + (text-scale-increase): + (text-scale-adjust): + * lisp/cus-face.el (custom-face-attributes): + * doc/emacs/frames.texi (Mouse Commands): + * doc/emacs/display.texi (Text Scale): Talk about font sized instead + of "face height" (bug#46853). + +2022-06-19 Lars Ingebrigtsen <larsi@gnus.org> + + Allow appending to the kill ring with mouse selections + + * lisp/bindings.el (ignore-preserving-kill-region): New function. + (global-map): Use it. + + * lisp/mouse.el (mouse-set-region, mouse-drag-region) + (mouse-drag-track): Allow appending to kill ring with mouse + selections (bug#32747). + +2022-06-19 Michael Albinus <michael.albinus@gmx.de> + + Fix last change in tramp-adb-handle-make-process + + * lisp/net/tramp-adb.el (tramp-adb-handle-make-process): + Fix process buffer management. + +2022-06-19 Stefan Kangas <stefan@marxist.se> + + Fix starting eshell with missing/invalid modules defined + + * lisp/eshell/esh-mode.el (eshell-mode): Warn instead of failing to + start when 'eshell-modules-list' has invalid entries. (Bug#54976) + +2022-06-19 Lars Ingebrigtsen <larsi@gnus.org> + + Make describe-repeat-maps fontify key bindings + + * lisp/repeat.el (describe-repeat-maps): Fontify key bindings as + key bindings. + +2022-06-19 Eli Zaretskii <eliz@gnu.org> + + Show warnings about aborted redisplay + + * src/xdisp.c (redisplay_window_error): Show messages about + aborted redisplay of a window as delayed-warnings. + +2022-06-19 Po Lu <luangruo@yahoo.com> + + More conservative fix for bug#37473 + + * src/xfaces.c (realize_gui_face): Add more conservative fix, + since the last change makes C-x C-+ lead to weight weirdness on + my machine. + +2022-06-19 Lars Ingebrigtsen <larsi@gnus.org> + + Make M-S-x output better in mode that have bindings for `undefined' + + * lisp/simple.el (command-completion-using-modes-p): Speed up case + when there's no command modes. + (execute-extended-command-for-buffer): Make M-S-x output better + (bug#46665). + +2022-06-19 Lars Ingebrigtsen <larsi@gnus.org> + + Recognize \' as a quoted quote in MySQL + + * lisp/progmodes/sql.el (sql-mode): Recognize \' as a quoted quote + in MySQL (bug#38302). + +2022-06-19 Lars Ingebrigtsen <larsi@gnus.org> + + Don't handle reverseVideo X resource specially + + * lisp/term/x-win.el (window-system-initialization): Don't handle + reverseVideo specially (bug#32921). + +2022-06-19 Sébastien Miquel <sebastien.miquel@posteo.eu> + + Small fix in font-lock-extend-region-multiline + + * lisp/font-lock.el (font-lock-extend-region-multiline): Do not + extend the region if `font-lock-multiline' starts at + `font-lock-end' (bug#46558). + +2022-06-19 Lars Ingebrigtsen <larsi@gnus.org> + + Don't lose antialiasing info when hitting `C-x C-+' + + * src/xfaces.c (realize_gui_face): Don't lose antialiasing info + when hitting `C-x C-+' (bug#37473). + +2022-06-19 Po Lu <luangruo@yahoo.com> + + Fix setting last user time during drag-and-drop + + * src/xterm.c (handle_one_xevent): Set the last user time if a + button press happens during drag and drop. Mysterious problems + were other seen with sending selections to a clipboard + immediately afterwards on Irix 6.5. + +2022-06-19 Stefan Kangas <stefan@marxist.se> + + Add rudimentary font-locking to edmacro-mode + + * lisp/edmacro.el (edmacro-label): New face. + (edmacro-mode-font-lock-keywords): New variable. + (edit-kbd-macro): Use font-lock in 'edmacro-mode'. Minor + improvement to command substitution. + +2022-06-19 Stefan Kangas <stefan@marxist.se> + + * lisp/obsolete/eieio-compat.el: Add missing Obsolete-since line. + +2022-06-19 Stefan Kangas <stefan@marxist.se> + + Prefer defvar-keymap in kmacro.el + + * lisp/kmacro.el (kmacro-keymap, kmacro-step-edit-map): Prefer + defvar-keymap. + +2022-06-19 Lars Ingebrigtsen <larsi@gnus.org> + + Fix edebug parsing of ., + + * lisp/emacs-lisp/edebug.el (edebug-next-token-class): Parse ., + correctly (bug#37653). + +2022-06-19 Michael Heerdegen <michael_heerdegen@web.de> + + Tune when to show "Quick Help" in Ediff mode-line + + * lisp/vc/ediff-wind.el (ediff-refresh-mode-lines): Decide whether to + display "Quick Help" in the mode-line based on the value of + `ediff-use-long-help-message' instead of checking + `ediff-window-setup-function' (Bug#12840). + +2022-06-19 Lars Ingebrigtsen <larsi@gnus.org> + + Make checkdoc-defun-info parsing slightly less wrong + + * lisp/emacs-lisp/checkdoc.el (checkdoc-defun-info): Disregard + `interactive' in nested parts of the defun (bug#56052). + +2022-06-19 Eli Zaretskii <eliz@gnu.org> + + Update redisplay ticks for more operations, and misc modifications + + * src/xdisp.c (update_redisplay_ticks): Don't disable redisplay of + mini-windows. + * src/regex-emacs.c (re_match_2_internal): + * src/bidi.c (bidi_find_bracket_pairs, bidi_fetch_char) + (bidi_paragraph_init, bidi_find_other_level_edge): Update the + redisplay tick count as appropriate, when moving the iterator by + one character position actually requires to examine many more + positions. + + * doc/emacs/trouble.texi (Long Lines): + * src/xdisp.c (syms_of_xdisp) <max_redisplay_ticks>: Update + recommended non-zero values. + +2022-06-19 Lars Ingebrigtsen <larsi@gnus.org> + + Add mechanism for gradually phasing in new byte compilation warnings + + * lisp/Makefile.in (BYTE_COMPILE_FLAGS): Enable all byte + compilation warnings. + * lisp/emacs-lisp/bytecomp.el (byte-compile-warning-types): Add + docstrings-non-ascii-quotes and document new semantics for `all' + and t. + (byte-compile--emacs-build-warning-types): New constant. + (byte-compile-warning-enabled-p): Implement the new semantics. + (byte-compile-docstring-style-warn): Reinstate the Unicode quote + warning. + +2022-06-19 Po Lu <luangruo@yahoo.com> + + Ignore emulated mouse clicks during drag-and-drop + + * src/xterm.c (handle_one_xevent): Don't set dpyinfo->grab and + last mouse frame for emulated mouse events during a + drag-and-drop operation. + +2022-06-19 Po Lu <luangruo@yahoo.com> + + Fix crashes when the _EMACS_DRAG_ATOM is the wrong type + + * src/xterm.c (xm_get_drag_atom_1): Don't use PropModeAppend if + rc != Success. + +2022-06-19 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 422f958030 Fix invalid defcustom :group when :predicate is used + +2022-06-19 Po Lu <luangruo@yahoo.com> + + Fix XDND from Firefox again + + * lisp/x-dnd.el (x-dnd-handle-xdnd): Prevent nil from appearing + in format 32 list. + (x-dnd-handle-motif): Send reply if the user quit out of the + drop handler as well. + +2022-06-18 Po Lu <luangruo@yahoo.com> + + Cache the Motif drag window to avoid fetching it every time + + * src/xterm.c (xm_get_drag_window_1): New function. + (xm_get_drag_window): Cache the window. If it already exists, + just return it. + (xm_setup_dnd_targets): If a BadWindow error occurs, re-create + the Motif drag window. + + * src/xterm.h (struct x_display_info): New field + `motif_drag_window'. + +2022-06-18 Po Lu <luangruo@yahoo.com> + + Fix timestamps recorded in Motif DND top level leave messages + + * src/xterm.c (xm_send_top_level_leave_message): Use X_SHRT_MAX + since Motif treats x and y as signed. + (handle_one_xevent): Use correct time for lmsg.timestamp sent in + response to entering the return-frame. + +2022-06-18 Stefan Kangas <stefan@marxist.se> + + Prefer defvar-keymap in edmacro.el + + * lisp/edmacro.el (edmacro-mode-map): Prefer defvar-keymap. + +2022-06-18 Stefan Kangas <stefan@marxist.se> + + Respect no-face argument in literal key substitutions + + * lisp/help.el (substitute-command-keys): Respect 'no-face' argument + also in literal key substitutions. + * test/lisp/help-tests.el + (help-tests-substitute-key-bindings/help-key-binding-face): Rename + from help-tests-substitute-key-bindings/face-help-key-binding. + (help-tests-substitute-key-bindings/help-key-binding-no-face): New test. + +2022-06-18 Basil L. Contovounesios <contovob@tcd.ie> + + Fix last tty-select-active-regions change + + * lisp/frame.el (tty-select-active-regions): Pacify warning about + missing defcustom :group by specifying the same group as + select-active-regions, as well as the frames group. + * src/keyboard.c (command_loop_1, syms_of_keyboard): Rename last + occurrences of xterm-select-active-regions to + tty-select-active-regions (bug#55883). + +2022-06-18 Alan Mackenzie <acm@muc.de> + + CC Mode: Add accurate handling for backslash in C line and block comments + + This is needed to handle the idiosyncratic meaning of backslash in comments in + the C and C++ standards. + + * lisp/progmodes/cc-engine.el: Correct a spelling error. + + * lisp/progmodes/cc-mode.el (c-before-change-fix-comment-escapes) + (c-after-change-fix-comment-escapes): New functions. + + * lisp/progmodes/cc-langs.el (c-get-state-before-change-functions): Add + c-before-change-fix-comment-escapes to the C/Objc and C++ values. + (c-before-font-lock-functions): Add c-after-change-fix-comment-escapes to the + C/Objc and C++ values. + +2022-06-18 Eli Zaretskii <eliz@gnu.org> + + Fix test failures due to 'xterm-select-active-regions' + + * lisp/frame.el (tty-select-active-regions): Rename from + xterm-select-active-regions and move here from xterm.c. + (display-selections-p): Adjust to the above. (Bug#55883) + +2022-06-18 Mattias Engdegård <mattiase@acm.org> + + More aggressive bytecode split between top-level forms (bug#55972) + + * lisp/emacs-lisp/bytecomp.el (byte-compile-keep-pending): + Allow bytecode split between all kinds of top-level forms, not just + those with chunk handlers, to prevent individual chunks from growing + too large. In particular this helps compilation of + package-quickstart.el. + +2022-06-18 Lars Ingebrigtsen <larsi@gnus.org> + + Fix checkdoc--fix-y-or-n-p query + + * lisp/emacs-lisp/checkdoc.el (checkdoc--fix-y-or-n-p): Fix the + query to match what's done (bug#56053). + +2022-06-18 Richard Hansen <rhansen@rhansen.org> + + Fix invalid defcustom :group when :predicate is used + + * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Fix + invalid `:group' argument for the `-modes' defcustom that is created + when `:predicate' is used (bug#56049). + +2022-06-18 Lars Ingebrigtsen <larsi@gnus.org> + + Filter out NS non-key events from `where-is-internal' + + * doc/lispref/keymaps.texi (Scanning Keymaps): Document it. + * lisp/keymap.el (make-non-key-event): New function. + + * lisp/term/common-win.el (x-setup-function-keys): Mark ns events + as not being keys (bug#55940). + + * src/keymap.c (Fwhere_is_internal): Filter out key sequences that + are marked as being non-keys. + +2022-06-18 Po Lu <luangruo@yahoo.com> + + Remove unnecessary clearing of internal border on Haiku + + * src/haikuterm.c (haiku_new_font): Don't clear internal border. + +2022-06-18 Lars Ingebrigtsen <larsi@gnus.org> + + Allow pretty-printing results from `C-x C-e' in edebug + + * doc/lispref/edebug.texi (Edebug Eval): Document it. + + * lisp/emacs-lisp/edebug.el (edebug-eval-expression): Allow + displaying the full value in a different buffer. + +2022-06-18 Alan Mackenzie <acm@muc.de> + + CC Mode: Fix infinite loop in noise macro near end of buffer + + This fixes bug #55771. Also fix an inaccuracy in c-defun-name-1 with the same + cause. + + * lisp/progmodes/cc-cmds.el (c-defun-name-1) + * lisp/progmodes/cc-engine.el (c-forward-noise-clause): Check the return + value of c-forward-token-2 and act upon it when not zero. + +2022-06-18 Duncan Findlay <duncf@google.com> + + Support `select-active-regions' with xterm + + This allows Emacs to save the active region to the user's + primary selection on supported terminals. The behavior follows + the existing `select-active-regions' variable and requires + `xterm-select-active-regions' to be non-nil. + + * src/keyboard.c (command_loop_1): + * lisp/frame.el (display-selections-p): On text terminals, check + terminal parameter `xterm--set-selections' and variable + `xterm-select-active-regions' when deciding whether to update + primary selection. (bug#55883) + * lisp/term/xterm.el (xterm-select-active-regions): New + defcustom. + +2022-06-18 Eli Zaretskii <eliz@gnu.org> + + Update documentation + + * doc/emacs/trouble.texi (DEL Does Not Delete): Move to the end of + the chapter. This issue is no longer frequent or important as it + was back in Emacs 20 days. + (Long Lines): Document 'max-redisplay-ticks'. + * doc/emacs/emacs.texi (Top): Update the detailed menu. + + * etc/NEWS: Announce 'max-redisplay-ticks'. + +2022-06-18 Eli Zaretskii <eliz@gnu.org> + + Don't count ticks too eagerly in syntax.c + + * src/syntax.c (scan_sexps_forward): Don't increment redisplay + tick count of the loop didn't advance at all. + +2022-06-18 Eli Zaretskii <eliz@gnu.org> + + Allow aborting redisplay stuck in 'parse-partial-sexp' + + * src/xdisp.c (display_working_on_window_p): New global variable. + (unwind_display_working_on_window): New function. + * src/keyboard.c (command_loop_1): Reset + 'display_working_on_window_p' before and after executing commands. + * src/window.c (Frecenter, window_scroll, displayed_window_lines): + * src/indent.c (Fvertical_motion): Set + 'display_working_on_window_p' before calling 'start_display'. + * src/syntax.c (scan_sexps_forward): Call 'update_redisplay_ticks' + after finishing the loop. + +2022-06-18 Mattias Engdegård <mattiase@acm.org> + + Avoid "control-control-KEY" (bug#55738) + + Constructs such as ?\C-^@ or ?\C-\C-m literally apply a Control + modifier twice which doesn't make sense at all. What is really meant + is a C0 base character with the Control modifier bit set. + This change is only stylistic in nature. + + * lisp/edmacro.el (edmacro-format-keys): + * lisp/keymap.el (key-parse): + * lisp/subr.el (event-modifiers, event-basic-type): + * test/lisp/subr-tests.el (subr-test-kbd): + Use \0 and \r instead of ^@ and \C-m to represent NUL and RET + when combined with other modifiers. + +2022-06-18 Stefan Kangas <stefan@marxist.se> + + Prefer URL commentary header in two files + + * lisp/transient.el: + * test/lisp/progmodes/cperl-mode-tests.el: Prefer URL commentary + header. + +2022-06-18 Stefan Kangas <stefan@marxist.se> + + Define docstring element for more forms in scheme-mode + + * lisp/progmodes/scheme.el: Define docstring element for more + forms. (Bug#33117) + +2022-06-18 Po Lu <luangruo@yahoo.com> + + Remove unused Haiku code + + * src/haiku_select.cc (be_get_clipboard_targets_1) + (be_get_clipboard_targets): Delete functions. + (init_haiku_select): Rename to `be_clipboard_init'. Avoid + duplicate definition with haikuterm.h. + + * src/haikuselect.c (init_haiku_select): New function. + * src/haikuselect.h: Update prototypes. + +2022-06-18 Po Lu <luangruo@yahoo.com> + + Fix type mixup in haikuselect.c + + * src/haikuselect.c (haiku_lisp_to_message): Fix variable mixup. + Found with --enable-check-lisp-object-type. + +2022-06-18 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 024bbcb35e Prune the Gnus FAQ of some outdated data + +2022-06-18 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + d671cd57c4 Update cl-struct-sequence-type doc string + 017bdb1611 Fix a tagging problem in tramp.texi + e0bac17bbc Mention face quirks after the final line in the lispref ma... + ad74677cf3 Delete reference to obsolete library complete.el + +2022-06-17 Po Lu <luangruo@yahoo.com> + + Prevent Lisp code or synthetic events from ruining the user time + + * src/xterm.c (x_display_set_last_user_time): New parameter + `send_event'. Make sure user time is newer unless !send_event. + + (x_set_last_user_time_from_lisp): Remove redundant check. + (XTmouse_position): + (handle_one_xevent): Pass `send_event' whenever appropriate. + +2022-06-17 Po Lu <luangruo@yahoo.com> + + Fix specifying named action lists in `x-begin-drag' + + * src/xfns.c (Fx_begin_drag): Record original value of `targets' + separately. Pass that as the selection targets list instead. + + * src/xterm.c (x_dnd_delete_action_list): New function. + (x_dnd_begin_drag_and_drop): Bind it if there are multiple + actions. + +2022-06-17 Yuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64> + + Fix double-free in treesit.c + + * src/treesit.c (Ftreesit_query_capture): Remove free at the end. + +2022-06-17 Lars Ingebrigtsen <larsi@gnus.org> + + Extend 'e' in edebug to pretty-print the values + + * doc/lispref/edebug.texi (Edebug Eval): Document it. + + * lisp/emacs-lisp/edebug.el (edebug-eval-expression): Allow + displaying the full value in a different buffer. + +2022-06-17 Lars Ingebrigtsen <larsi@gnus.org> + + Prune the Gnus FAQ of some outdated data + + * doc/misc/gnus-faq.texi (FAQ 9-2): Remove some outdated advice + (bug#56042). + +2022-06-17 Stefan Kangas <stefan@marxist.se> + + Delete another library obsolete since 24.1 + + This file was missed in the last commit to delete libraries obsolete + since Emacs 24.3 or older. + * lisp/obsolete/pc-mode.el: Delete file. This library has been + obsolete since Emacs 24.1. (Bug#50999) + +2022-06-17 Lars Ingebrigtsen <larsi@gnus.org> + + Add hacek variations to `C-x 8' + + * lisp/international/iso-transl.el (iso-transl-char-map): Add + hacek characters on `C-x 8 ^ ^'. + +2022-06-17 Stefan Kangas <stefan@marxist.se> + + image-dired: Use full name for bookmark handler type + + * lisp/image-dired.el (image-dired-bookmark-jump): Use full mode name + for bookmark handler type. + +2022-06-17 Stefan Kangas <stefan@marxist.se> + + Set bookmark handler type for Eshell + + * lisp/eshell/esh-mode.el (eshell-bookmark-jump): Set bookmark handler + type. + +2022-06-17 Stefan Kangas <stefan@marxist.se> + + Update bookmark tests for recent change + + * test/lisp/bookmark-tests.el (bookmark-tests-set/bookmark-use-annotations-t) + (bookmark-tests-edit-annotation) + (bookmark-test-bmenu-send-edited-annotation) + (bookmark-test-bmenu-send-edited-annotation/restore-focus): Update for + recent change. + +2022-06-17 Lars Ingebrigtsen <larsi@gnus.org> + + Fix copy-from-above-command doc string type + + * lisp/misc.el (copy-from-above-command): Fix doc string typo. + +2022-06-17 Lars Ingebrigtsen <larsi@gnus.org> + + Add new command `duplicate-line' + + * lisp/misc.el (copy-from-above-command): Mention it. + (duplicate-line): New command (bug#46621). + +2022-06-17 Mattias Engdegård <mattiase@acm.org> + + Slightly faster hash-table-keys and hash-table-values + + * lisp/emacs-lisp/subr-x.el (hash-table-keys, hash-table-values): + Omit the reversal of the returned list. It is not ordered anyway. + * test/lisp/emacs-lisp/subr-x-tests.el + (subr-x--hash-table-keys-and-values): New test. + +2022-06-17 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerate ldefs-boot.el + +2022-06-17 Lars Ingebrigtsen <larsi@gnus.org> + + Don't quote numbers in byte-run--set-* + + * lisp/emacs-lisp/byte-run.el (byte-run--set-doc-string) + (byte-run--set-indent): Don't quote numbers (bug#48145). + +2022-06-17 Michael Albinus <michael.albinus@gmx.de> + + Fix handling of "process-*" properties in Tramp + + * lisp/net/tramp.el (tramp-local-host-regexp): Add "localhost4". + (with-tramp-saved-connection-property): New defmacro. + + * lisp/net/tramp-adb.el (tramp-adb-handle-make-process): + * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band) + (tramp-sh-handle-make-process): + * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory): + (tramp-smb-handle-file-acl, tramp-smb-handle-process-file) + (tramp-smb-handle-set-file-acl) + (tramp-smb-handle-start-file-process): Use it. (Bug#55832) + +2022-06-17 Lars Ingebrigtsen <larsi@gnus.org> + + Fix some declare-after-interactive functions + + * lisp/progmodes/opascal.el (opascal-new-comment-line): + * lisp/image-mode.el (image-transform-fit-to-height): + * lisp/help-fns.el (help-fns-edit-variable): + * lisp/gnus/gnus-salt.el (gnus-pick-start-reading): + * lisp/eshell/esh-util.el (eshell-for): + * lisp/ldefs-boot.el (view-return-to-alist-update): Fix warnings + about declare after interactive. + +2022-06-17 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerate ldefs-boot.el + +2022-06-17 Lars Ingebrigtsen <larsi@gnus.org> + + Don't quote the `when' form in obsoletions + + * lisp/emacs-lisp/byte-run.el (byte-run--set-obsolete): The `when' + is a string (or nil), so don't quote it (bug#48145). + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--print-form): + Adjust folding. + +2022-06-17 Mattias Engdegård <mattiase@acm.org> + + Warn about misplaced or duplicated function/macro declarations + + Doc strings, `declare` and `interactive` forms must appear in that + order and at most once each. Complain if they don't, instead of + silently ignoring the problem (bug#55905). + + * lisp/emacs-lisp/byte-run.el (byte-run--parse-body) + (byte-run--parse-declarations): New. + (defmacro, defun): Check for declaration well-formedness as + described above. Clarify doc strings. Refactor some common code. + * test/lisp/emacs-lisp/bytecomp-resources/fun-attr-warn.el: + * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-fun-attr-warn): + New test. + +2022-06-17 Eli Zaretskii <eliz@gnu.org> + + Handle too long syntactic fontifications + + * src/syntax.c (scan_sexps_forward): Call 'update_redisplay_ticks' + after finishing the loop. + + * src/dispnew.c (make_current): Make sure enabled rows of the + current matrix have a valid hash, even if redisplay of a window + was aborted due to slowness. This avoids assertion violations in + 'scrolling_window' due to the wrong hash value. + +2022-06-17 Lars Ingebrigtsen <larsi@gnus.org> + + Fix efaq-w32.texi build warning + + * doc/misc/efaq-w32.texi (Other useful ports): Fix ordering to + match nodes (or should the nodes be moved instead?). + +2022-06-17 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerated ldefs-boot.el + +2022-06-17 Lars Ingebrigtsen <larsi@gnus.org> + + Update cl-struct-sequence-type doc string + + * lisp/emacs-lisp/cl-macs.el (cl-struct-sequence-type): Fix doc + string to reflect what it does (bug#46523). + +2022-06-17 Stefan Kangas <stefan@marxist.se> + + Fix some command substitutions + + * lisp/net/rcirc.el (rcirc-edit-multiline): + * lisp/textmodes/reftex-index.el (reftex-index-phrases-mode) + (reftex-index-phrase-selection-or-word): + * lisp/textmodes/remember.el (remember): Fix command substitutions. + +2022-06-17 Stefan Kangas <stefan@marxist.se> + + Rename command to bookmark-edit-annotation-confirm + + * lisp/bookmark.el (bookmark-edit-annotation-confirm): Rename from + 'bookmark-send-edited-annotation' to be more consistent with + 'bookmark-edit-annotation-cancel'. Make the old name into an + obsolete function alias. + +2022-06-17 Stefan Kangas <stefan@marxist.se> + + Improve help-enable-variable-value-editing help + + * lisp/help-fns.el (help-enable-variable-value-editing): Expand + docstring to better explain what effect it has. + (help-fns-edit-variable): Use command substitution. + +2022-06-17 Stefan Kangas <stefan@marxist.se> + + Fix command substitution in emacsbug.el + + * lisp/mail/emacsbug.el: Minor doc fix. + (submit-emacs-patch, report-emacs-bug): Fix command substitution. + Prefer keymap-set to define-key. + +2022-06-17 Lars Ingebrigtsen <larsi@gnus.org> + + Allow editing all symbols in help-fns--editable-variable + + * lisp/help-fns.el (help-fns--editable-variable): Allow editing + all symbols (bug#56038). + +2022-06-17 Lars Ingebrigtsen <larsi@gnus.org> + + Improve time parsing documentation + + * doc/lispref/os.texi (Time Parsing): Clarify which functions + take/return timestamps and which ones take decoded time structures. + * src/timefns.c (Fdecode_time): Clarify TIME argument (bug#46505). + +2022-06-17 Lars Ingebrigtsen <larsi@gnus.org> + + Make uce.el obsolete (bug#46472) + +2022-06-17 Lars Ingebrigtsen <larsi@gnus.org> + + Fix wdired marking of unsuccessfully renamed files + + * lisp/wdired.el (wdired-finish-edit): Don't mark non-renamed + files as renamed (bug#46438). + +2022-06-17 Dmitry Gutov <dgutov@yandex.ru> + + buffer-match-p: Resolve backward compat concerns + + * doc/lispref/buffers.texi (Buffer List): Document 'major-mode' + and 'derived-mode' predicates. Fix some typos. + + * lisp/subr.el (buffer-match-p): Use the structure initially + pioneered by project-kill-buffer-conditions as-is (bug#54296). + + * lisp/progmodes/project.el (project-kill-buffer-conditions) + (project--buffer-check): Revert the latest change. + (project--buffer-check): Add support for lambda predicates. + +2022-06-17 Lars Ingebrigtsen <larsi@gnus.org> + + Fix a tagging problem in tramp.texi + + * doc/misc/tramp.texi (Frequently Asked Questions): Restore an + @end lisp removed by accident. + +2022-06-17 Po Lu <luangruo@yahoo.com> + + Reduce code duplication when setting user time window + + * src/xterm.c (x_make_frame_visible): Use + `x_update_frame_user_time_window'. + +2022-06-17 Lars Ingebrigtsen <larsi@gnus.org> + + Mention face quirks after the final line in the lispref manual + + * doc/lispref/display.texi (Face Attributes): Mention the quirks + about point after the final line (bug#56011). + +2022-06-17 Lars Ingebrigtsen <larsi@gnus.org> + + Speed up shr-string-pixel-width + + * lisp/net/eww.el (eww-update-header-line-format): Use + string-pixel-width (since we don't care about shr-use-fonts here). + * lisp/net/shr.el (shr-string-pixel-width): Use + `string-pixel-width', which should be faster. + +2022-06-17 Stefan Kangas <stefan@marxist.se> + + Cancel editing bookmark annotations with C-c C-k + + * lisp/bookmark.el (bookmark-edit-annotation-cancel): New command. + (bookmark-edit-annotation-mode): Document it. + (bookmark-edit-annotation-mode-map): Bind it to 'C-c C-k'. + (bookmark-default-annotation-text): Announce it when editing + annotations. + (bookmark-edit-annotation--maybe-display-list): New macro. + (bookmark-send-edited-annotation): Use above new macro. + +2022-06-17 Stefan Kangas <stefan@marxist.se> + + Use command substitution in bookmark-edit-annotation + + * lisp/bookmark.el (bookmark-default-annotation-text): Use command + substitution. + (bookmark-edit-annotation): Enter mode before inserting annotation + to get the correct command substitution. + +2022-06-17 Stefan Kangas <stefan@marxist.se> + + * lisp/edmacro.el (edit-kbd-macro): Use command substitution. + +2022-06-17 Stefan Kangas <stefan@marxist.se> + + Delete most libraries obsolete since 24.1 and 24.3 + + Emacs 24.3 was released 10 years ago. + * lisp/obsolete/abbrevlist.el: + * lisp/obsolete/assoc.el: + * lisp/obsolete/complete.el: + * lisp/obsolete/cust-print.el: + * lisp/obsolete/erc-hecomplete.el: + * lisp/obsolete/mailpost.el: + * lisp/obsolete/mouse-sel.el: + * lisp/obsolete/old-emacs-lock.el: + * lisp/obsolete/patcomp.el: + * lisp/obsolete/pc-select.el: + * lisp/obsolete/s-region.el: Delete files. These libraries have been + obsolete since Emacs 24.1 or 24.3. (Bug#50999) + * etc/NEWS: Announce their deletion. + + * lisp/minibuffer.el (minibuffer-confirm-exit-commands): + * lisp/textmodes/rst.el: Remove references to above obsolete + libraries. + +2022-06-17 Po Lu <luangruo@yahoo.com> + + Clarify doc of `x-display-set-last-user-time' + + * src/xfns.c (Fx_display_last_user_time): Explain in more detail + the meaning of TERMINAL. + +2022-06-17 Stefan Kangas <stefan@marxist.se> + + Delete reference to obsolete library complete.el + + * doc/misc/tramp.texi (Frequently Asked Questions): Delete reference + to obsolete library complete.el. + +2022-06-17 Mattias Engdegård <mattiase@acm.org> + + * src/fns.c (Fmapconcat): Better empty-string-or-nil detection. + +2022-06-17 Stefan Kangas <stefan@marxist.se> + + Fix misplaced interactive spec + + * test/lisp/progmodes/cperl-mode-tests.el (cperl-test-bug-10483): + * test/lisp/cedet/srecode/document-tests.el + (srecode-document-function-comment-extract-test): + * test/lisp/obsolete/inversion-tests.el (inversion-unit-test): + * test/lisp/cedet/cedet-files-tests.el (cedet-files-utest): Remove + misplaced interactive spec. + (cedet-files-utest-list): Minor doc fix; improve formatting. + +2022-06-17 Po Lu <luangruo@yahoo.com> + + Improve compatibility when receiving drops from early XDND programs + + * lisp/x-dnd.el (x-dnd-handle-xdnd): Save version in state. + If version is less than 5, don't put action and success in + XdndFinished events. If less than 2, always use `copy' as + the selected action. + +2022-06-17 Po Lu <luangruo@yahoo.com> + + Fix computation of screen width and height on Haiku + + * src/haiku_support.cc (be_get_screen_dimensions): Use correct + macros to extract width and height. + +2022-06-17 Po Lu <luangruo@yahoo.com> + + Fix instances of not using a usable Motif drag atom + + * src/xterm.c (xm_get_drag_atom_1): If another frame owns an + atom, use it anyway. + +2022-06-17 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + f419de6eca * lisp/textmodes/artist.el: Minor doc fixes. + 5ddd0f1a35 * lisp/net/tramp.el (tramp-methods): Fix quoting in docstr... + b0c5accb99 Update MS Windows FAQ for MinGW64-w64/MSYS2 + +2022-06-16 Po Lu <luangruo@yahoo.com> + + Improve window manager user time reporting mode switching + + * src/xterm.c (x_display_set_last_user_time): Stop periodically + checking for user time window support. + (x_update_frame_user_time_window): New function. + (handle_one_xevent): Call it on toplevel ReparentNotify if the + frame has been visible at least once. + + * src/xterm.h (struct x_display_info): Remove + `last_user_check_time'. + +2022-06-16 Po Lu <luangruo@yahoo.com> + + Update last event time during DND operations + + * lisp/x-dnd.el (x-dnd-handle-xdnd, x-dnd-handle-motif): Set + last user time to provided timestamp. + * src/xfns.c (Fx_display_last_user_time): New function. + (syms_of_xfns): New defsubr. + + * src/xterm.c (x_set_last_user_time_from_lisp): New function. + * src/xterm.h: Update prototypes. + +2022-06-16 Yuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64> + + Change treesit-parser-list from variable to function + + Effectively making the list internal. Now Emacs user cannot shoot + themselves in the foot by removing a parser from the list, make + chaanges to buffer and add that parser back to the list. + + * doc/lispref/parsing.texi (Language Definitions, Using Parser) + (Retrieving Node, Multiple Languages): Change variable to function. + * lisp/treesit.el (treesit-language-at, treesit-node-on) + (treesit-buffer-root-node, treesit-indent, treesit-check-indent) + (treesit-search-forward, treesit-search-beginning) + (treesit-end-of-defun, treesit-inspect-mode): Change variable to + function. + * src/buffer.c (bset_ts_parser_list, reset_buffer, init_buffer_once): + Add ts_parser_list. + * src/buffer.h (struct buffer): Add ts_parser_list. + * src/treesit.c (ts_record_change, Ftreesit_parser_create): Use the + buffer field instead of the old buffer local variable. + (Ftreesit_parser_delete, Ftreesit_parser_list): New functions. + (syms_of_treesit): Remove treesit-parser-list. + * test/src/treesit-tests.el (treesit-basic-parsing): Use the new + function. + +2022-06-16 Stefan Kangas <stefan@marxist.se> + + * lisp/textmodes/artist.el: Minor doc fixes. + +2022-06-16 Stefan Monnier <monnier@iro.umontreal.ca> + + * src/fns.c (Fmapconcat): Optimize the case where separator=="" + +2022-06-16 Yuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64> + + Add treesit test for previous change + + * test/src/treesit-tests.el (treesit-cross-boundary): New test. + +2022-06-16 Yuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64> + + Consolidate treesit parser create functions + + Merge treesit-parser-create, treesit-get-parser, + treesit-get-parser-create into one: treesit-parser-create. + + * src/treesit.c (Ftreesit_parser_language): make BUFFER parameter + optional, add new parameter NO-REUSE. Optionally reuse parser. + * test/src/treesit-tests.el: Change all parser creation to use + treesit-parser-create. Remove tests for the removed functions. + * lisp/treesit.el (treesit-get-parser, treesit-get-parser-create): + Remove. + * lisp/treesit.el (treesit-set-ranges, treesit-get-ranges) + (treesit-buffer-root-node, treesit-query-string) + (treesit-font-lock-fontify-region, treesit-search-forward) + (treesit-query-validate): Change to use treesit-parser-create. + +2022-06-16 Yuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64> + + Fix treesit function ts_record_change and friends + + In ts_record_change, the way we calculate tree-sitter change was + wrong: + + ptrdiff_t affected_start = + max (visible_beg, start_byte) - visible_beg; + ptrdiff_t affected_old_end = + min (visible_end, affected_start + bytes_del); + ptrdiff_t affected_new_end = + affected_start + bytes_ins; + + I changed it to below (also renamed variables) + + ptrdiff_t start_offset = + min (visible_end, + max (visible_beg, start_byte)) - visible_beg; + ptrdiff_t old_end_offset = + min (visible_end, + max (visible_beg, old_end_byte)) - visible_beg; + ptrdiff_t new_end_offset = + min (visible_end, + max (visible_beg, new_end_byte)) - visible_beg; + + Also previously only visible_end is changed (in a wrong way) + + XTS_PARSER (lisp_parser)->visible_end = affected_new_end; + + Now we have a whole new bunch of code that makes the right change. + + * src/treesit.c (ts_tree_edit_1): Add assertion. + (ts_record_change): See above. + (ts_ensure_position_synced): Add assertion. + (ts_ensure_parsed): Only free if non-NULL. + (make_ts_parser): Add assertion. + (Ftreesit_parser_set_included_ranges): Ensure parsed before setting ranges. + (Ftreesit_parser_included_ranges): Add assertion. + +2022-06-16 Michael Albinus <michael.albinus@gmx.de> + + Fix Tramp test + + * test/lisp/net/tramp-tests.el (tramp-test03-file-name-method-rules): + Remove superfluous checks. + +2022-06-16 Eli Zaretskii <eliz@gnu.org> + + Fix disruption of windows' display by shr.el + + * src/window.c (struct saved_window): New member 'vscroll'. + (Fset_window_configuration, save_window_save): Save and restore + the window's vscroll value. + + * lisp/net/shr.el (shr-insert-document): Restore the original + window's hscroll, in case we are rendering in a window other than + where the document will be eventually displayed. This avoids + resetting hscroll of windows we use temporarily for shr's + rendering job. (Bug#56008) + +2022-06-16 Michael Heerdegen <michael_heerdegen@web.de> + + Allow number register insertion in Calc (Bug#55943) + + * lisp/calc/calc-yank.el (calc-get-register): Convert number values to + strings. + +2022-06-16 Mattias Engdegård <mattiase@acm.org> + + * src/fns.c (mapcar1): Test types in rough order of likelihood. + +2022-06-16 Mattias Engdegård <mattiase@acm.org> + + Use BASE_EQ instead of EQ where obviously safe + + * src/alloc.c (deadp): + * src/buffer.c (reset_buffer_local_variables, candidate_buffer) + (Fkill_buffer, Fbuffer_swap_text, Fmake_overlay, Fmove_overlay): + * src/callint.c (Fcall_interactively): + * src/coding.c (decode_coding_object, encode_coding_object) + (code_convert_region, Ffind_operation_coding_system): + * src/comp.c (Fcomp_el_to_eln_rel_filename): + * src/conf_post.h (RE_TRANSLATE_P): + * src/data.c (Fkill_local_variable, Fash, expt_integer): + * src/dired.c (file_name_completion): + * src/dispnew.c (set_window_cursor_after_update, update_frame_1) + (Fframe_or_buffer_changed_p): + * src/doc.c (Fdocumentation, Fdocumentation_property) + (default_to_grave_quoting_style): + * src/editfns.c (Fconstrain_to_field, save_excursion_save) + (save_excursion_restore, Fngettext): + * src/eval.c (Fautoload, un_autoload, specbind): + * src/fileio.c (Fmake_temp_file_internal): + * src/fns.c (string_char_to_byte, string_byte_to_char) + (Fnthcdr, Fnreverse): + * src/indent.c (vmotion): + * src/inotify.c (add_watch): + * src/keyboard.c (command_loop_1, read_char) + (read_char_minibuf_menu_prompt): + * src/lread.c (oblookup): + * src/macfont.m (macfont_descriptor_entity, macfont_open): + * src/minibuf.c (Finnermost_minibuffer_p, Ftry_completion) + (Ftest_completion): + * src/nsfns.m (ns_set_icon_name): + * src/pdumper.c (dump_queue_dequeue): + * src/pgtkfns.c (pgtk_set_icon_type, pgtk_set_icon_name): + * src/process.c (Faccept_process_output): + * src/textprop.c (set_text_properties): + * src/w32fns.c (w32_set_icon_type, w32_set_icon_name): + * src/w32select.c (validate_coding_system): + * src/window.c (decode_next_window_args, window_loop) + (save_window_save): + * src/xdisp.c (wset_redisplay): + * src/xfaces.c (Fx_family_fonts, resolve_face_name) + (gui_supports_face_attributes_p): + * src/xfns.c (x_set_icon_type, x_set_icon_name): + * src/xselect.c (clean_local_selection_data): + Use BASE_EQ instead of EQ where it is obvious that neither argument + can be a symbol with properties or at least one argument is a + non-symbol. + +2022-06-16 Lars Ingebrigtsen <larsi@gnus.org> + + Make package-recompile delete all .elc files first + + * lisp/emacs-lisp/package.el (package-recompile): Delete all .elc + files under the package directory. + +2022-06-16 Lars Ingebrigtsen <larsi@gnus.org> + + Add new package.el commands for recompilation + + * doc/emacs/package.texi (Package Installation): Document them. + + * lisp/emacs-lisp/package.el (package-recompile): + (package-recompile-all): New commands (bug#27253). + +2022-06-16 Michael Albinus <michael.albinus@gmx.de> + + * lisp/net/tramp.el (tramp-methods): Fix quoting in docstring. + +2022-06-16 Eli Zaretskii <eliz@gnu.org> + + Speed up Org to Texinfo generation + + * doc/misc/Makefile.in ($(1:.org=.texi)): Use a higher GC + threshold, to speed up .org=.texi conversion. Patch by Ihor + Radchenko <yantar92@gmail.com>. + +2022-06-16 Stefan Kangas <stefan@marxist.se> + + Make artist-version variable obsolete + + * lisp/textmodes/artist.el (artist-version): Make obsolete. This has + not been updated in nearly two decades; use the Emacs version instead. + (artist-submit-bug-report): Don't use above obsolete variable. + +2022-06-16 Stefan Kangas <stefan@marxist.se> + + Prefer defvar-keymap for artist-mode-map + + * lisp/textmodes/artist.el (artist-mode-map): Prefer + defvar-keymap. + +2022-06-16 Ihor Radchenko <yantar92@gmail.com> + + org-cite-list-citations: Cache footnote-definition searches + + * lisp/org/oc.el (org-cite-list-citations): Avoid quadratic complexity. + Pre-calculate list of all footnote definitions and cache the footnote + label search hits. Do not make `org-element-map' accumulate unused + result. + +2022-06-16 Ihor Radchenko <yantar92@gmail.com> + + org-element-map: Avoid repetitive `plist-get' call + + * lisp/org/org-element.el (org-element-map): Do not call `(plist-get info + :ignore-list)' on every iteration. + +2022-06-16 Ihor Radchenko <yantar92@gmail.com> + + org-export-data: Concatenate strings in temporary buffer for performance + + * lisp/org/ox.el (org-export-data): Use temporary buffer to collect export + data instead of `mapconcat'. Using buffer puts less load on garbage + collector. + +2022-06-16 Ihor Radchenko <yantar92@gmail.com> + + org-export-as: Do not update buffer settings when not modified + + * lisp/org/ox.el (org-export-as): Use `buffer-chars-modified-tick' and + avoid extra invocations of `org-set-regexps-and-options' and + `org-update-radio-target-regexp' when the buffer is not changed. + Also, disable folding checks. Folding is irrelevant inside export + buffer. + +2022-06-16 Ihor Radchenko <yantar92@gmail.com> + + org-export-resolve-id-link: Pre-cache all the ids in the parse tree + + * lisp/org/ox.el (org-export-resolve-id-link): Pre-cache all the ids in + the parse tree for faster lookup. + +2022-06-16 Po Lu <luangruo@yahoo.com> + + Fix Motif drag-and-drop timestamps + + * lisp/x-dnd.el (x-dnd-handle-motif): Pass timestamp when + retrieving DND selection value. Bug found on Solaris 2.6. + +2022-06-16 Ihor Radchenko <yantar92@gmail.com> + + org-export-resolve-fuzyy-link: Pre-cache all possible search cells + + * lisp/org/ox.el (org-export-resolve-fuzzy-link): Before matching LINK, + pre-process and cache all the non-nil search cells in the parse tree. + When matching, use the pre-processed info. Fix the :test function for + the cache hash table. + +2022-06-16 Ihor Radchenko <yantar92@gmail.com> + + org-export-get-footnote-definition: Pre-cache references in parse tree + + * lisp/org/ox.el (org-export-get-footnote-definition): Pre-process parse + tree once to filter out all non-footnote elements. This speeds up + subsequent footnote definition searches. + +2022-06-16 Robert Pluim <rpluim@gmail.com> + + Fix check for window system with toolkit scrollbars + + * configure.ac (USE_TOOLKIT_SCROLL_BARS): Add missing 'test' to + condition. (Bug#55970) + +2022-06-16 Po Lu <luangruo@yahoo.com> + + Fix byte-swapping of Motif DND tables + + * src/xterm.c (xm_read_targets_table_rec): Swap nitems first + before checking the length. + +2022-06-16 Arash Esbati <arash@gnu.org> + + Update MS Windows FAQ for MinGW64-w64/MSYS2 + + * doc/misc/efaq-w32.texi (Compiling, Debugging): Mention + MinGW64-w64/MSYS2 as the preferred way for building Emacs on + capable systems. + (Attachments with Gnus): Catch up with emacs-mime.texi in the + example given. + (Spell check): Add the availability of GNU Aspell and Hunspell + in MSYS2 distribution. + (Other useful ports): Add an entry for MinGW64-w64/MSYS2. + Fix link for MinGW homepage. + Remove entry for defunct UWIN project. (Bug#55930) + +2022-06-16 Richard Hansen <rhansen@rhansen.org> + + bindat (strz): Write null terminator after variable length string + + * lisp/emacs-lisp/bindat.el (bindat--pack-strz): Explicitly write a + null byte after packing a variable-length string to ensure proper + termination when packing to a pre-allocated string. + * doc/lispref/processes.texi (Bindat Types): Update documentation. + * test/lisp/emacs-lisp/bindat-tests.el (bindat-test--str-strz-prealloc): + Update tests. + +2022-06-16 Po Lu <luangruo@yahoo.com> + + Fix defcustom in last change + + * lisp/x-dnd.el (x-dnd-use-offix-drop): Fix defcustom. + +2022-06-16 Po Lu <luangruo@yahoo.com> + + Improve handling of fallback drop protocols + + * lisp/x-dnd.el (x-dnd-use-offix-drop): New value `files', which + means to only drop files using the OffiX protocol. Make it the + default. + (x-dnd-handle-old-kde): Handle other data types correctly. + (x-dnd-offix-old-kde-to-name): New variable. + (x-dnd-offix-id-to-name): Fix typo in doc string. + (x-dnd-handle-unsupported-drop): Implement new value. + +2022-06-16 Po Lu <luangruo@yahoo.com> + + Fix Motif DND after atom ownership is lost due to frame destruction + + * src/xterm.c (xm_get_drag_atom_1): Record owner. + (x_free_frame_resources): Clear drag atom if owner was freed. + * src/xterm.h (struct x_display_info): New field + `motif_drag_atom_owner'. + +2022-06-16 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 4d7a936ac2 ; * src/fileio.c (Fset_file_modes): Improve previous change + 32cff740e2 Describe 'set-file-modes' argument prompting + +2022-06-16 Po Lu <luangruo@yahoo.com> + + Improve drag atom computation + + * src/xterm.c (xm_get_drag_window): Avoid leak if error occurred + creating drag window. Also use StructureNotifyMask instead of + ButtonPressMask. + (xm_get_drag_atom_1): Update. Make EMACS_DRAG_ATOM a list of + atoms and use the first one that isn't currently owned. + (xm_get_drag_atom): Stop owning selection here. + (xm_setup_drag_info): Record chosen atom. + (x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop) + (x_dnd_update_state, handle_one_xevent, x_connection_closed): + Use chosen atom. + * src/xterm.h (struct x_display_info): New field + `motif_drag_atom_time'. + +2022-06-16 Paul Eggert <eggert@cs.ucla.edu> + + Streamline time decoding and conversion + + * src/lisp.h (lisp_h_BASE2_EQ, BASE2_EQ): New macros and functions. + * src/timefns.c (tzlookup, Fdecode_time): Use them. + (Ftime_convert): Convert to symbol once, instead of many times. + +2022-06-16 Paul Eggert <eggert@cs.ucla.edu> + + Don’t test time functions for NaNs, INF + + * test/src/timefns-tests.el (decode-then-encode-time) + (time-equal-p-NaN-NaN, time-arith-tests): + Don’t test time functions with infinities and NaNs, + which are not Lisp time values. + +2022-06-16 Paul Eggert <eggert@cs.ucla.edu> + + Prefer BASE_EQ in time-sensitive ops + + * src/timefns.c (tzlookup, lisp_time_hz_ticks) + (decode_time_components, lisp_to_timespec, lispint_arith) + (time_arith, time_cmp, Fdecode_time, Fencode_time) + (Ftime_convert): Prefer BASE_EQ to EQ where either will do. + +2022-06-16 Paul Eggert <eggert@cs.ucla.edu> + + icalendar-tests no longer assumes TZ = wall + + Do not assume that the TZ environment variable is either unset or + agrees with /etc/localtime. I ran into this test bug while + running ‘TZ=America/Chicago make check’ on a platform where + /etc/localtime was America/Los_Angeles. + * test/lisp/calendar/icalendar-tests.el: + (icalendar-tests--decode-isodatetime): Don’t use + set-time-zone-rule, whose doc string says “Instead of calling this + function, you typically want something else” for a reason. + Instead, pass the zone arg to icalendar-test--format. + +2022-06-15 Po Lu <luangruo@yahoo.com> + + Handle OffiX drop of multiple files + + * lisp/x-dnd.el (x-dnd-types-alist): Register DndTypeFiles. + (x-dnd-offix-id-to-name): Fix typo. + (x-dnd-handle-offix-files): New function. + (x-dnd-convert-to-offix): Fix conversion to DndTypeFiles. + +2022-06-15 Po Lu <luangruo@yahoo.com> + + Comply with the Motif requirement for unique drag atoms + + * src/xselect.c (x_handle_selection_request) + (Fx_get_selection_internal, syms_of_xselect): New variable + `x-selection-alias-alist'. Respect that alist of aliases. + + * src/xterm.c (x_atom_refs): Intern _EMACS_DRAG_ATOM. + (xm_get_drag_atom_1, xm_get_drag_atom): New functions. + (xm_setup_drag_info, x_dnd_cleanup_drag_and_drop) + (x_dnd_begin_drag_and_drop, x_dnd_update_state, handle_one_xevent) + (x_connection_closed, x_intern_cached_atom): Alias the drag atom + to XdndSelection. Use it instead of XdndSelection to set the + Motif index atom. + (x_get_atom_name): Handle new atoms. + (syms_of_xterm): New defsym. + * src/xterm.h (struct x_display_info): New fields for new atoms + and their names. + +2022-06-15 Sean Whitton <spwhitton@spwhitton.name> + + * .dir-locals.el: Set emacs-lisp-docstring-fill-column. + +2022-06-15 Yuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64> + + * src/treesit.c (ts_check_range_argument): Check for point-min/max. + +2022-06-15 Lars Ingebrigtsen <larsi@gnus.org> + + Adjust ibuffer test + + * test/lisp/ibuffer-tests.el (ibuffer-format-qualifier): Adjust + test after recent formatting changes. + +2022-06-15 Lars Ingebrigtsen <larsi@gnus.org> + + Allow completing tags, parameters and values in html-mode + + * lisp/textmodes/sgml-mode.el (html-mode--complete-at-point): + Allow completing tags, parameters and values (bug#29057). + +2022-06-15 Manuel Giraud <manuel@ledu-giraud.fr> + + Do not display 'nil for 0-ary filter qualifier in ibuf + + * lisp/ibuf-ext.el (ibuffer-format-qualifier-1): Do not display + nil in header for 0-ary filter qualifier. + * lisp/ibuf-macs.el (define-ibuffer-filter): Also fix the message. + +2022-06-15 Stefan Kangas <stefan@marxist.se> + + Prefer defvar-keymap in ibuffer.el + + * lisp/ibuffer.el (ibuffer--filter-map, ibuffer-name-map) + (ibuffer-filename/process-header-map, ibuffer-mode-name-map) + (ibuffer-name-header-map, ibuffer-size-header-map) + (ibuffer-mode-header-map, ibuffer-mode-filter-group-map): Prefer + defvar-keymap. + +2022-06-15 Po Lu <luangruo@yahoo.com> + + Implement using the OffiX protocol for dropping + + * lisp/x-dnd.el (x-dnd-use-offix-drop): New user option. + (x-dnd-handle-unsupported-drop): Return t if the OffiX protocol + was used. + (x-treat-local-requests-remotely): New defvar. + (x-dnd-convert-to-offix, x-dnd-do-offix-drop): New functions. + + * src/xterm.c: Update commentary. + (x_term_init): Extend number of DND atoms allocated by default. + +2022-06-15 Robert Pluim <rpluim@gmail.com> + + Describe 'set-file-modes' argument prompting + + * src/fileio.c (Fset_file_modes): Document that FILENAME is prompted + for. (Bug#55984) + +2022-06-15 Miha Rihtaršič <miha@kamnitnik.top> + + whitespace.el: New whitespace style `lines-char' + + * lisp/whitespace.el (whitespace-style): + (whitespace-style-value-list): + (whitespace-toggle-option-alist): + (global-whitespace-toggle-options): + (whitespace-help-text): + (whitespace-interactive-char): + (whitespace-style-face-p): + (whitespace-color-on): + (whitespace-lines-regexp): New whitespace style `lines-char', which + highlights only the first character over the whitespace-line-column + limit (bug#55980). + +2022-06-15 Po Lu <luangruo@yahoo.com> + + Handle receiving new OffiX protocol during drag-and-drop + + * lisp/x-dnd.el (x-dnd-types-alist, x-dnd-known-types): Add + DndTypeFile and DndTypeText. + (x-dnd-init-frame): Add _DND_PROTOCOL. + (x-dnd-handle-drag-n-drop-event): Handle _DND_PROTOCOL events. + (x-dnd-handle-old-kde): Drop event if proto is too new. + (x-dnd-offix-id-to-name): New list. + (x-dnd-handle-offix-file, x-dnd-handle-offix): New functions. + +2022-06-15 Lars Ingebrigtsen <larsi@gnus.org> + + Fix ;;;###autoload scanning from (some) packages + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--parse-file): + Fix autoloads scanning from packages. + +2022-06-15 Michael Albinus <michael.albinus@gmx.de> + + Fix file name quoting in tramp-smb.el + + * lisp/net/tramp-smb.el (tramp-smb-shell-quote-localname): New defun. + (tramp-smb-handle-add-name-to-file, tramp-smb-handle-copy-file) + (tramp-smb-handle-delete-directory) + (tramp-smb-handle-delete-file) + (tramp-smb-do-file-attributes-with-stat) + (tramp-smb-handle-file-local-copy) + (tramp-smb-handle-file-system-info) + (tramp-smb-handle-make-directory-internal) + (tramp-smb-handle-make-symbolic-link) + (tramp-smb-handle-process-file, tramp-smb-handle-rename-file) + (tramp-smb-handle-set-file-modes) + (tramp-smb-handle-start-file-process) + (tramp-smb-handle-write-region, tramp-smb-get-file-entries) + (tramp-smb-get-stat-capability): Use it. + (tramp-smb-get-localname): Remove superfluous test. (Bug#55855) + +2022-06-15 Michael Albinus <michael.albinus@gmx.de> + + Improve Tramp debugging + + * lisp/net/tramp-cache.el (tramp-list-connections): Fix docstring. + + * lisp/net/tramp.el (tramp-backtrace): New optional arg FORCE. + +2022-06-15 Juri Linkov <juri@linkov.net> + + Update args of isearch-search-fun-in-text-property (bug#14013) + + * lisp/isearch.el (isearch-search-fun-in-text-property): Swap signature args. + * lisp/dired-aux.el (dired-isearch-search-filenames): Update the call. + +2022-06-15 Visuwesh <visuweshm@gmail.com> + + repeat-mode: Don't echo unset keys in help message + + * repeat.el (repeat-echo-message-string): Check if the key is set. + (bug#55977) + +2022-06-15 Po Lu <luangruo@yahoo.com> + + Handle coordinates for the old KDE drop protocol + + * src/xterm.c (x_atom_refs): Add DndProtocol and _DND_PROTOCOL. + (x_coords_from_dnd_message): Handle the old KDE protocol. + * src/xterm.h (struct x_display_info): New atoms. + +2022-06-15 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 850050ca5c Revert "Clarify what a Calc registeri in in calc-insert-re... + +2022-06-15 Yuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64> + + Fix compile warnings and errors in treesit.c + + * src/treesit.c (ts_initialize): Fix. + (Ftreesit_parser_set_included_ranges): Fix. + (Ftreesit_query_compile): Fix. + +2022-06-14 Po Lu <luangruo@yahoo.com> + + Fix link action handling with Motif DND + + * src/xterm.c (enum xm_drag_operation): New alternate + definition. + (XM_DRAG_OPERATION_IS_LINK): New macro. + (handle_one_xevent): Use it instead. + +2022-06-14 Po Lu <luangruo@yahoo.com> + + Handle coordinates from XM_DRAG_REASON_DRAG_MOTION replies + + * src/xterm.c (struct xm_drag_motion_reply): New struct. + (xm_read_drag_motion_reply): New function. + (x_coords_from_dnd_message): Handle those messages as well. + +2022-06-14 Yuan Fu <casouri@gmail.com> + + Merge remote-tracking branch 'savannah/master' into feature/tree-sitter + + Merge branch 'feature/tree-sitter-depth-control' into feature/tree-sitter + +2022-06-14 Yuan Fu <casouri@gmail.com> + + Add manual for treesit-traverse-forward and friends + + * doc/lispref/parsing.texi (Retrieving Node): Add manual entry for + treesit-traverse-depth-first, treesit-traverse-breadth-first, + treesit-traverse-forward. + * lisp/treesit.el (treesit-traverse-forward): Fix docstring. + +2022-06-14 Yuan Fu <casouri@gmail.com> + + Change treesit-check-query and mention it in documentation + + * doc/lispref/parsing.texi (Pattern Matching): Mention it. + * lisp/treesit.el (treesit-check-query): Rename to + treesit-query-validate. + * src/treesit.c (Ftreesit_query_capture, Ftreesit_query_compile): + Mention it. + +2022-06-14 Yuan Fu <casouri@gmail.com> + + Add treesit-query-compile to manual + + * doc/lispref/parsing.texi: Add treesit-query-compile. + +2022-06-14 Yuan Fu <casouri@gmail.com> + + Add test for treesit-query-compile + + * test/src/treesit-tests.el (treesit-query-api): Rename pattern to + query, and add treesit-query-compile into the mix. + +2022-06-14 Sean Whitton <spwhitton@spwhitton.name> + + Add abbrev tables for minibuffer-mode and minibuffer-inactive-mode + + * lisp/minibuffer.el (minibuffer-mode, minibuffer-inactive-mode): Add + an abbrev table for each of these modes (bug#55946). + +2022-06-14 Eli Zaretskii <eliz@gnu.org> + + Support callers which sometimes run unrelated to display code + + * src/xdisp.c (update_redisplay_ticks): Don't abort callers + with w == NULL if we are called outside of display engine code, + and don't update the tick count in that case. + +2022-06-14 Yuan Fu <casouri@gmail.com> + + Support compiled queries in treesit-query-capture + + Last commit added this new type, this commit adds functionalities. + treesit.el only has documentation changes. + + * lisp/treesit.el (treesit-query-in, treesit-font-lock-settings, + treesit-defun-query): Update docstring. + * src/treesit.c (make_ts_query): New function. + (Ftreesit_query_compile): New function. + (Ftreesit_query_capture): Remove code that creates a query object and + instead either use make_ts_query or use the give compiled query. Free + the query object conditionally. + (syms_of_treesit): New symbol. + +2022-06-14 Yuan Fu <casouri@gmail.com> + + * src/treesit.c (Ftreesit_query_p): New function. + +2022-06-14 Yuan Fu <casouri@gmail.com> + + Add new type treesit-compiled-query + + No integration/interaction with the new type, just adding it. + + * lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Add new type. + * src/alloc.c (cleanup_vector): Add gc for the new type. + * src/data.c (Ftype_of): Add switch case for the new type. + (syms_of_data): Add symbols for the new type. + * src/lisp.h (DEFINE_GDB_SYMBOL_BEGIN): Add new type. + * src/treesit.c (Ftreesit_compiled_query_p): New function. + (syms_of_treesit): Add symbol for the new type. + * src/treesit.h (struct Lisp_TS_Query): New struct. + (TS_COMPILED_QUERY_P, XTS_COMPILED_QUERY, CHECK_TS_COMPILED_QUERY): + New macros. + * src/print.c (print_vectorlike): Add printing for the new type. + +2022-06-14 Mattias Engdegård <mattiase@acm.org> + + Simplify byte-compiler assuming cconv normalisations + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker) + (byte-optimize-let-form, byte-optimize-letX): + * lisp/emacs-lisp/bytecomp.el (byte-compile-unwind-protect): + Simplify source optimization and codegen code that can now rely on + normalized let/let* and unwind-protect forms. + +2022-06-14 Mattias Engdegård <mattiase@acm.org> + + Run cconv for dynbound code as well + + Make cconv work for dynamically bound code and always run it. + This allows later stages to benefit from transformations and + normalisations in cconv. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-preprocess): Always run + cconv. + * lisp/emacs-lisp/cconv.el (cconv--analyze-function) + (cconv-analyze-form): In dynbound code, treat all variable bindings + as dynamic (lambda, let, let* and condition-case). + +2022-06-14 Mattias Engdegård <mattiase@acm.org> + + Normalize setq during macro-expansion + + Early normalization of setq during macroexpand-all allows later + stages, cconv, byte-opt and codegen, to be simplified and duplicated + checks to be eliminated. + + * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): + Normalize all setq forms to a sequence of (setq VAR EXPR). + Emit warnings if necessary. + * lisp/emacs-lisp/cconv.el (cconv-convert, cconv-analyze-form): + * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): + * lisp/emacs-lisp/bytecomp.el (byte-compile-setq): + Simplify. + * test/lisp/emacs-lisp/bytecomp-tests.el: Adapt and add tests. + * test/lisp/emacs-lisp/bytecomp-resources/warn-variable-setq-nonvariable.el; + * test/lisp/emacs-lisp/bytecomp-resources/warn-variable-setq-odd.el: + New files. + +2022-06-14 Eli Zaretskii <eliz@gnu.org> + + Handle W = NULL in 'update_redisplay_ticks' + + * src/xdisp.c (update_redisplay_ticks): If W == NULL, assume we + are iterating the current buffer. + +2022-06-14 Juri Linkov <juri@linkov.net> + + * lisp/replace.el (read-regexp): Use minibuffer-message in the minibuffer. + +2022-06-14 Eli Zaretskii <eliz@gnu.org> + + Restart tick counting every command + + * src/keyboard.c (command_loop_1): Reinitialize the tick count + before executing each command in the loop. + * src/xdisp.c (update_redisplay_ticks): Be more defensive to W + being NULL and to its buffer being nil. Set + 'windows_or_buffers_changed' to avoid trusting stale window data + like w->window_end_valid. + +2022-06-14 Robert Pluim <rpluim@gmail.com> + + Add more characters with macron in C-x 8 map and latin input methods + + * lisp/international/iso-transl.el (iso-transl-char-map): Add + sequences for {AE,ae,G,g} with macron. + * lisp/leim/quail/latin-post.el ("latin-postfix"): Add missing entries + for {AE,ae,G,g} with macron. + * lisp/leim/quail/latin-pre.el ("latin-prefix"): Add entries for + 'letter with macron' for {A,a,E,e,AE,ae,I,I,O,o,U,u,Y,y} with macron. + + (Bug#55668) + +2022-06-14 Stephen Berman <stephen.berman@gmx.net> + + Fix errors when aligning text in find-dired + + * lisp/find-dired.el (find-dired-filter): Don't error out while + trying to align the text (by just removing that code) (bug#46218). + +2022-06-14 Lars Ingebrigtsen <larsi@gnus.org> + + Make flymake-proc--delete-temp-directory slightly safer + + * lisp/progmodes/flymake-proc.el + (flymake-proc--delete-temp-directory): Temp dir name may be + abbreviatated, so expand it first (bug#46203). + +2022-06-14 Lars Ingebrigtsen <larsi@gnus.org> + + Fix .dir-local.el caching for symlinks + + * lisp/files.el (dir-locals-read-from-dir): We want the time stamp + of the actual file, not the time stamp of the symlink (if + .dir-locals.el is a symlink) (bug#46122). + +2022-06-14 Lars Ingebrigtsen <larsi@gnus.org> + + Leave the contents on the *Backtrace* buffer on `q' + + * lisp/emacs-lisp/debug.el (debug): Don't clear the contents of + the buffer on `q' (bug#55863). + +2022-06-14 Lars Ingebrigtsen <larsi@gnus.org> + + Fix gud parsing of empty jdb classpaths + + * lisp/progmodes/gud.el (gud-jdb-marker-filter): Parse empty + classpaths (like classpath: []) correctly (bug#55957). + +2022-06-14 Daniel Martín <mardani29@yahoo.es> + + Bind Cmd-t to menu-set-font on macOS + + * lisp/term/ns-win.el (global-map): set-frame-font asks for a font + using the minibuffer, but the former ns-popup-font-panel always showed + the graphical font panel on macOS. To preserve the same behavior, + bind it to menu-set-font, which is also called by Options, Set Default + Font (bug#55967). + +2022-06-14 Lars Ingebrigtsen <larsi@gnus.org> + + Allow using alists in ido completion and hitting TAB + + * lisp/ido.el (ido-completion-help): Allow using an alist + COMPLETIONS (bug#46091). + +2022-06-14 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "Clarify what a Calc registeri in in calc-insert-register" + + This reverts commit 73400e4002ce8fca060093548e6791b3a784eeaa. + + This has been fixed in Emacs 29 by making it possible to use regular registers in calc. + +2022-06-14 Lars Ingebrigtsen <larsi@gnus.org> + + Mention how to only get syntactic font locking in the manual + + * doc/lispref/modes.texi (Syntactic Font Lock): Note how to only + get syntactic font locking (bug#46039). + +2022-06-14 Michael Albinus <michael.albinus@gmx.de> + + Fix Tramp problem with non-essential + + * lisp/net/tramp.el (tramp-run-real-handler): + Handle also functions which use a `tramp-file-name' for the file + name handler. (Bug#55832) + (tramp-get-home-directory, tramp-get-remote-uid) + (tramp-get-remote-gid): VEC can also be nil. + +2022-06-14 Po Lu <luangruo@yahoo.com> + + Fix mishandling of dnd-scroll-margin with scroll bar motion + + * lisp/dnd.el (dnd-handle-movement): Ignore posns inside scroll + bars for now. + +2022-06-14 Juri Linkov <juri@linkov.net> + + * lisp/minibuffer.el (minibuffer-complete-history): New command. + + (minibuffer-complete-defaults): New command. + https://lists.gnu.org/archive/html/emacs-devel/2022-06/msg00498.html + +2022-06-14 Juri Linkov <juri@linkov.net> + + * lisp/simple.el (completion-auto-wrap): Rename from completion-wrap-movement. + + (next-completion): Use completion-auto-wrap. + https://lists.gnu.org/archive/html/emacs-devel/2022-06/msg00139.html + +2022-06-14 Po Lu <luangruo@yahoo.com> + + Fix out of date parts in NS doc and keyboard bindings + + * doc/emacs/macos.texi (Mac / GNUstep Events): Remove + `ns-drag-n-drop' which doesn't exist anymore. Add events to + concept index and document `ns-show-prefs'. (bug#55940) + * lisp/term/ns-win.el (global-map): Remove ns-popup-font-panel. + +2022-06-14 Po Lu <luangruo@yahoo.com> + + Handle coordinates of Motif drop start messages + + * src/xterm.c (xm_read_drop_start_message): New function. + (xm_read_drag_motion_message): Check that the originator is + correct. + (x_coords_from_dnd_message): Read drop start messages as well. + +2022-06-14 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 73400e4002 Clarify what a Calc registeri in in calc-insert-register + +2022-06-13 Po Lu <luangruo@yahoo.com> + + Handle coordinate extraction for more event types + + * src/xterm.c (xm_read_drag_motion_message): New function. + (x_coords_from_dnd_message): Handle XM_DRAG_REASON_DRAG_MOTION. + +2022-06-13 Po Lu <luangruo@yahoo.com> + + Use coordinates provided by DND messages if available + + This avoids an extra sync, which matters when dropping onto + Emacs running over a slow connection. + + * src/xselect.c (x_handle_dnd_message): New args + `root_window_coords', `root_x' and `root_y'. + * src/xterm.c (x_coords_from_dnd_message): New function. + (handle_one_xevent): Pass root window coordinates to + x_handle_dnd_message. + * src/xterm.h: Update prototypes. + +2022-06-13 Dmitry Gutov <dgutov@yandex.ru> + + project--git-submodules: Parse more strictly + + * lisp/progmodes/project.el (project--git-submodules): + Don't mistake 'load-path' for 'path' (bug#55396). + +2022-06-13 Paul Eggert <eggert@cs.ucla.edu> + + Default decoded-time dst slot to -1 + + * lisp/simple.el (decoded-time): Default dst slot to -1. + Improve related doc strings. + +2022-06-13 Yuan Fu <casouri@gmail.com> + + Use the up-only parameter in treesit navigation functions + + * lisp/treesit.el(treesit-inspect-node-at-point, + treesit-end-of-defun): Set up-only to t. + +2022-06-13 Yuan Fu <casouri@gmail.com> + + Add depth control for treesit traverse functions + + * lisp/treesit.el (treesit-traverse-depth-first, + treesit-traverse-forward): Add depth parameter. + (treesit-search-forward, treesit-search-beginning, + treesit-search-end): Add up-only parameter. + +2022-06-13 Yuan Fu <casouri@gmail.com> + + Fix treesit-search-forward + + Move the check for movement + + (if (> arg 0) + ;; Make sure we moved forward. + (> (funcall pos-fn node) starting-point) + ;; Make sure we moved backward. + (< (funcall pos-fn node) starting-point)) + + into cl-loop: + + if (treesit-node-eq cap-node node) + + becomes + + if (and (treesit-node-eq cap-node node) + (if (> arg 0) + ;; Make sure we moved forward. + (> (funcall pos-fn node) + starting-point) + ;; Make sure we moved backward. + (< (funcall pos-fn node) + starting-point))) + + * lisp/treesit.el (treesit-search-forward): Move the check. + +2022-06-13 Paul Eggert <eggert@cs.ucla.edu> + + Pacify GCC 12.1.1 -Wanalyzer-use-of-uninitialized-value + + * src/xfont.c (xfont_list_pattern): Initialize a local. + Although I’m not sure this is needed, it doesn’t change + behavior (except possibly to make undefined behavior defined). + +2022-06-13 Paul Eggert <eggert@cs.ucla.edu> + + Pacify GCC 12.1.1 in default developer build + + * src/pdumper.c (pdumper_load): Use explicit memset to work around + GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105961>. + +2022-06-13 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/grep.el (grep-read-files): Combine files with aliases. + + Use completion-table-merge to combine completions of files from + read-file-name-internal with a list of defaults from grep-files-aliases + (bug#55800). + +2022-06-13 Lars Ingebrigtsen <larsi@gnus.org> + + Mention \`M-x ...' in the lispref manual + + * doc/lispref/help.texi (Keys in Documentation): Note \`M-x ...' + syntax. + +2022-06-13 Lars Ingebrigtsen <larsi@gnus.org> + + Clarify what a Calc registeri in in calc-insert-register + + * lisp/calc/calc-yank.el (calc-insert-register): Note that these + aren't normal registers (bug#55943). + +2022-06-13 Lars Ingebrigtsen <larsi@gnus.org> + + Allow saying \\=`M-x ...' in a doc string + + * lisp/help.el (substitute-command-keys): Allow saying \\=`M-x + foo' in doc strings (and have it be fontified as a key binding). + +2022-06-13 Lars Ingebrigtsen <larsi@gnus.org> + + Massage In-Reply-To data in message-mail + + * lisp/gnus/message.el (message-mail): Fix up Message-IDs from + Firefox (bug#55926). + +2022-06-13 Lassi Kortela <lassi@lassi.io> (tiny change) + + Match complete words in dns-mode + + * lisp/textmodes/dns-mode.el (dns-mode-font-lock-keywords): Match + complete words like SOA and not all words that contain the string + SOA (bug#55944). + +2022-06-13 Lars Ingebrigtsen <larsi@gnus.org> + + Allow `query-replace' to do exact replacement of the current item + + * doc/emacs/search.texi (Query Replace): Document it. + + * lisp/replace.el (query-replace-help): Amend help text. + (query-replace-map): Bind `E' to the exact case replacement. + (perform-replace): Allow editing a replacement with exact case + (bug#8504). + +2022-06-13 Lars Ingebrigtsen <larsi@gnus.org> + + Add to mode cedilla characters to iso-transl-char-map + + * lisp/international/iso-transl.el (iso-transl-char-map): Add some + more cedilla characters. + +2022-06-13 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add support for the Meetei Mayek script + + * lisp/language/indian.el ("Meetei Mayek"): New language environment. + Add composition rules for Meetei Mayek. Add sample text and input method. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Meetei Mayek. + * lisp/leim/quail/indian.el ("meetei-mayek"): New input method. + + * etc/HELLO: Add a Meetei Mayek greeting. + * etc/NEWS: Announce the new language environment. + +2022-06-13 Lars Ingebrigtsen <larsi@gnus.org> + + Make the ediff control panel mode line prettier + + * lisp/vc/ediff-wind.el (ediff-refresh-mode-lines): Don't include + "Quick Help" in the mode line in the plain version (bug#12840). + (ediff-make-wide-control-buffer-id): Make the informative part of + the mode line bold. (Code from Michael Heerdegen.) + +2022-06-13 Lars Ingebrigtsen <larsi@gnus.org> + + Allow rgrep users to indicate case folding easier + + * lisp/progmodes/grep.el (rgrep): Allow the user to toggle case + sensitivity interactively (bug#16913). + +2022-06-13 Lars Ingebrigtsen <larsi@gnus.org> + + Add a `M-c' command to `read-regexp' + + * doc/lispref/minibuf.texi (Text from Minibuffer): Document it. + + * lisp/replace.el (read-regexp): Add a `M-c' command to indicate + case folding (bug#16913). + +2022-06-13 Richard Hansen <rhansen@rhansen.org> + + bindat (strz): Error on null byte if packing variable-length string + + * lisp/emacs-lisp/bindat.el (strz): Signal an error if a null byte is + encountered while packing a string to a variable-length strz field. + * test/lisp/emacs-lisp/bindat-tests.el (strz): Add tests (bug#55938). + +2022-06-13 Stefan Monnier <monnier@iro.umontreal.ca> + + * files.el (auto-mode-alist): Add entry to `.eld` files + +2022-06-13 Lars Ingebrigtsen <larsi@gnus.org> + + Make `/ a' in *Package* filter by name + + * lisp/emacs-lisp/package.el (package-menu-filter-by-archive): + Filter by package name instead of by regexp, so that if the user + types "gnu", they won't get "nongnu", too (bug#55919). + +2022-06-13 Visuwesh <visuweshm@gmail.com> + + * lisp/find-dired.el (find-dired): Make directory clickable. + + * lisp/find-dired.el (find-dired): Make the directory line + clickable (bug#55906). + +2022-06-13 Po Lu <luangruo@yahoo.com> + + Respect test function when performing local drag-and-drop + + * lisp/x-dnd.el (x-dnd-test-function): Fix doc string to + describe what is actually accepted. + (x-dnd-known-types, x-dnd-targets-list): Fix coding style. + (x-dnd-handle-native-drop): New function. + + * src/xselect.c (x_atom_to_symbol): Export. + + * src/xterm.c (x_dnd_note_self_drop): Call new variable to + determine what action to return. + (x_clear_dnd_action): New function. + (x_dnd_begin_drag_and_drop): Respect new variable. + (syms_of_xterm): New defvar `x-dnd-native-test-function'. + * src/xterm.h: Update prototypes. + +2022-06-13 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + d6f080d3de ; * doc/man/etags.1: Bump man page date. + +2022-06-13 Po Lu <luangruo@yahoo.com> + + Improve DND tooltip updating + + * src/xterm.c (x_dnd_update_tooltip_now): Add missing part of + last change. + (x_monitors_changed_cb, handle_one_xevent): Only update if a + change in monitor configuration really happened. + +2022-06-12 Po Lu <luangruo@yahoo.com> + + Keep tooltip position in sync with monitor changes + + * src/xterm.c (x_dnd_update_tooltip_now): New function. + (x_monitors_changed_cb): + (handle_one_xevent): Call that function on monitor change. + +2022-06-12 Po Lu <luangruo@yahoo.com> + + Fix special DND event coordinates + + * src/xterm.c (x_dnd_note_self_drop): Set DND action to + XdndActionPrivate. + (x_dnd_begin_drag_and_drop): Don't return XdndPrivate specially + here. + (handle_one_xevent): Fix order of arguments to + x_dnd_note_self_drop. + +2022-06-12 Juri Linkov <juri@linkov.net> + + * lisp/icomplete.el: Consider a list in minibuffer-default (bug#55800) + + * lisp/icomplete.el (icomplete--sorted-completions): Handle a string value + in the first element of the list of default values in minibuffer-default. + +2022-06-12 Eli Zaretskii <eliz@gnu.org> + + Change the API of 'update_redisplay_ticks' + + * src/xdisp.c (update_redisplay_ticks): Change the 2nd argument + to be 'struct window'; all callers changed. + +2022-06-12 Juri Linkov <juri@linkov.net> + + * lisp/isearch.el (isearch-search-fun-in-text-property): Handle ^/$ specially. + + When the regexp contains ^ or $ then use a temporary buffer to find matches + at the beginning/end of the region with the given text property (bug#14013). + +2022-06-12 Eli Zaretskii <eliz@gnu.org> + + Fix a typo in a doc string. + +2022-06-12 Eli Zaretskii <eliz@gnu.org> + + Initial implementation of "abort-redisplay" feature + + * src/xdisp.c (update_redisplay_ticks): New function. + (init_iterator, set_iterator_to_next): Call + 'update_redisplay_ticks'. + (syms_of_xdisp) <max_redisplay_ticks>: New variable. + <list_of_error>: Remove 'void-variable': it is no longer needed, + since 'calc_pixel_width_or_height' can no longer signal a + void-variable error, and it gets in the way of aborting + redisplay via 'redisplay_window_error'. + +2022-06-12 Po Lu <luangruo@yahoo.com> + + Fix encoding of multibyte ToolTalk filenames + + * lisp/select.el (xselect-convert-to-dt-netfile): Encode file + name before computing its tooltalk name, since the indices work + on bytes. + + * test/lisp/dnd-tests.el (dnd-tests-begin-file-drag): Add test. + +2022-06-12 Po Lu <luangruo@yahoo.com> + + Fix handling of scroll bar clicks on Haiku + + * src/haiku_support.cc (class EmacsView, BasicMouseDown) + (BasicMouseUp): Move MouseDown and MouseUp here. New parameter + `scroll_bar'. + (MouseDown, MouseUp): Call basic variants. + + (class EmacsScrollBar): New field `parent'. + (BScrollBar_make_for_view): Rename to + `be_create_scroll_bar_for_view'. + * src/haiku_support.h (struct haiku_button_event): New field + `scroll_bar'. + * src/haikuterm.c (haiku_scroll_bar_from_widget): Handle NULL + widget. + (haiku_scroll_bar_create): Update calls. + (haiku_mouse_position): Fix scroll bar part. + (haiku_read_socket): Handle button events on scroll bars as + scroll bar click events. + +2022-06-12 Mattias Engdegård <mattiase@acm.org> + + Use BASE_EQ when comparing with Qunbound + + Qunbound is uninterned and can therefore never be EQ to any symbol + with position. + + * src/buffer.c (Fbuffer_local_value, buffer_lisp_local_variables) + (buffer_local_variables_1): + * src/bytecode.c (exec_byte_code): + * src/comp.c (compile_function, Fcomp__compile_ctxt_to_file): + * src/composite.c (composition_gstring_cache_clear_font): + * src/data.c (Fboundp, Fsymbol_value, set_internal) + (Fdefault_boundp, Fdefault_value, Fmake_variable_buffer_local): + * src/emacs-module.c (module_global_reference_p): + * src/eval.c (Fdefault_toplevel_value, defvar) + (run_hook_with_args): + * src/fns.c (hash_put, Fmaphash): + * src/font.c (font_put_extra): + * src/frame.c (gui_set_frame_parameters) + (gui_frame_get_and_record_arg, gui_default_parameter) + (gui_figure_window_size): + * src/haikufns.c (get_geometry_from_preferences) + (haiku_create_frame, haiku_create_tip_frame): + * src/haikuterm.c (haiku_draw_text_decoration) + (haiku_default_font_parameter): + * src/json.c (lisp_to_json_nonscalar_1): + * src/keymap.c (access_keymap_1, access_keymap, current_minor_maps): + * src/lread.c (readevalloop, define_symbol): + * src/minibuf.c (read_minibuf, Ftry_completion): + (Fall_completions, Ftest_completion): + * src/pgtkfns.c (pgtk_default_font_parameter, Fx_create_frame) + (x_create_tip_frame): + * src/pgtkselect.c (Fpgtk_own_selection_internal): + * src/print.c (print): + * src/profiler.c (evict_lower_half, record_backtrace): + * src/terminal.c (create_terminal): + * src/textprop.c (set_properties): + * src/w32fns.c (my_create_window, w32_icon) + (w32_default_font_parameter, Fx_create_frame) + (w32_create_tip_frame): + * src/w32term.c (w32_draw_glyph_string): + * src/xdisp.c (handle_single_display_spec) + (cursor_row_fully_visible_p, calc_pixel_width_or_height): + * src/xfns.c (x_default_scroll_bar_color_parameter, x_icon_verify) + (x_icon, x_default_font_parameter, Fx_create_frame) + (x_create_tip_frame): + * src/xselect.c (x_handle_selection_request): + * src/xterm.c (x_draw_glyph_string, x_term_init): + Use BASE_EQ instead of EQ when comparing with Qunbound. + +2022-06-12 Lars Ingebrigtsen <larsi@gnus.org> + + Make find-sibling-file-search non-private + + * lisp/files.el (find-sibling-file-search): Rename to be non-private. + (find-sibling-file): Adjust call. + +2022-06-12 Yuan Fu <casouri@gmail.com> + + Update docstring of eglot-events-buffer-size + + * eglot.el (eglot-events-buffer-size): Mention that you need to + restart the connection for 'eglot-events-buffer-size' to take effect. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/974 + GitHub-reference: close https://github.com/joaotavora/eglot/issues/776 + +2022-06-12 Eli Zaretskii <eliz@gnu.org> + + Fix "C-x C-d" with wildcard arguments + + * lisp/files.el (list-directory): Make sure 'default-directory' is + set to a valid value if the argument DIRNAME included wildcards. + (Bug#55877) + +2022-06-12 Po Lu <luangruo@yahoo.com> + + Fix phantom drag-and-drop targets showing up in some programs + + * src/xterm.c (x_dnd_cleanup_drag_and_drop) + (x_dnd_begin_drag_and_drop): Delete XdndTypeList if it was set + after the DND operation completes. Some programs apparently + think its presence on the drag source means there are more than + 3 targets. + +2022-06-12 Richard Hansen <rhansen@rhansen.org> + + bindat (str, strz): Reject non-ASCII, non-`eight-bit' characters + + * lisp/emacs-lisp/bindat.el (str) (strz): Signal an error if the user + attempts to pack a multibyte string containing characters other than + ASCII and `eight-bit' characters (bug#55897). + * doc/lispref/processes.texi (Bindat Types): Update documentation. + * test/lisp/emacs-lisp/bindat-tests.el (str) (strz): Add tests. + +2022-06-12 Po Lu <luangruo@yahoo.com> + + Don't repetitively initialize type lists during DND + + * src/xterm.c (x_dnd_send_enter): Only set XdndTypeList once. + (x_dnd_begin_drag_and_drop): Clear type list flag. + +2022-06-12 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + cbd2c87a5d ; Fix last change in whitespace.el. + 52ad2b53cb Fix doc strings in whitespace.el + +2022-06-11 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/find-func.el (find-function-advised-original): Simplify + +2022-06-11 Yuan Fu <casouri@gmail.com> + + * configure.ac (HAVE_TREE_SITTER): Not set TREE_SITTER_LIBS. + +2022-06-11 Yuan Fu <casouri@gmail.com> + + Rename treesit-traverse-forward-depth-first + + * lisp/treesit.el (treesit-traverse-forward): Rename to + 'treesit-traverse-forward'. + (treesit-traverse-forward, treesit-search-forward): Use + the new name. + +2022-06-11 Po Lu <luangruo@yahoo.com> + + Use cached monitor info during DND if available + + * src/xterm.c (x_dnd_begin_drag_and_drop): Use previously cached + monitor attributes if they exist. + +2022-06-11 Po Lu <luangruo@yahoo.com> + + * src/nsfns.m (ns_move_tooltip_to_mouse_location): Handle invisible frames. + +2022-06-11 Po Lu <luangruo@yahoo.com> + + Don't rely on XdndAware on frames for dropping to work + + * src/xterm.c (x_dnd_get_target_window): New parameter + WAS_FRAME. If toplevel is a frame, set it and clear proto and + motif. + (x_dnd_send_enter, x_dnd_send_position, x_dnd_send_leave) + (x_dnd_send_drop): Remove special-cased self dropping code. + (x_dnd_note_self_position, x_dnd_note_self_drop): New functions. + + (x_dnd_begin_drag_and_drop, x_dnd_update_state): + (handle_one_xevent): Handle our own frames using those functions + instead. + +2022-06-11 Mattias Engdegård <mattiase@acm.org> + + * src/fns.c (internal_equal): Use BASE_EQ where possible. + +2022-06-11 Basil L. Contovounesios <contovob@tcd.ie> + + Recognize processes as a CL type again + + For discussion, see: + https://lists.gnu.org/r/emacs-devel/2022-06/msg00567.html + + * lisp/emacs-lisp/cl-macs.el (cl-deftype-satisfies): Include process + as a type, to avoid cl-typep complaining about process objects. + +2022-06-11 Lars Ingebrigtsen <larsi@gnus.org> + + Make new fileio test more reliable + + * test/src/fileio-tests.el: Use a unibyte buffer to avoid length + confusion. + +2022-06-11 Lars Ingebrigtsen <larsi@gnus.org> + + Bump sh-imenu-generic-expression defcustom version + + * lisp/progmodes/sh-script.el (sh-imenu-generic-expression): Bump + the :version since we changed the value. + +2022-06-11 Lars Ingebrigtsen <larsi@gnus.org> + + Fix loaddefs installation of packages with no autoloads + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Always + generate an output file if we have EXTRA-DATA. This fixes package + installation of packages with no ;;;###autoload forms. + +2022-06-11 Stefan Monnier <monnier@iro.umontreal.ca> + + fileio-tests.el (test-non-regular-insert): Fix thinko + + * test/src/fileio-tests.el (fileio-tests--non-regular-insert): Rename + from `test-non-regular-insert` and make it into a test rather than + a broken function. Oh, and make it work while at it. + +2022-06-11 Stefan Monnier <monnier@iro.umontreal.ca> + + Bindat: Document `sint`; add `le` arg to `uint`; deprecate `uintr` + + * lisp/emacs-lisp/bindat.el (bindat--type) <uint>: Add `le` optional arg. + (bindat--type) <uintr>: Delete method. + (uintr): Re-define as a bindat-macro instead. + (bindat-type): Update docstring accordingly. + (bindat--primitives): Update. + (sint): Simplify. + + * doc/lispref/processes.texi (Bindat Types): Update `uint`, add `sint`, + and remove `uintr`. + + * test/lisp/emacs-lisp/bindat-tests.el (data-bindat-spec): Use the new + `le` arg of `uint` instead of `uintr`. + +2022-06-11 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Improve Lepcha composition rules and rename its native name + + * lisp/language/indian.el ("Lepcha"): Rename lepcha script + native name and improve composition rules. (Bug#55869) + + * etc/HELLO: Rename Lepcha script native name. + +2022-06-11 Po Lu <luangruo@yahoo.com> + + Fix timestamp of special drop events + + * src/xterm.c (x_dnd_send_drop): Set special event timestamp + to the timestamp of the drop instead of CurrentTime. + +2022-06-11 Lars Ingebrigtsen <larsi@gnus.org> + + Allow inserting parts of /dev/urandom with insert-file-contents + + * doc/lispref/files.texi (Reading from Files): Document it. + * src/fileio.c (Finsert_file_contents): Allow specifying END for + special files (bug#18370). + +2022-06-11 Po Lu <luangruo@yahoo.com> + + Fix some drag-and-drop handling on Haiku + + * lisp/term/haiku-win.el (haiku-drag-and-drop): Don't raise + frame for some types of drags. + + * src/haikuselect.c (haiku_unwind_drag_message): Don't hide + tooltip here. + (Fhaiku_drag_message): Only clear grab and hide tooltip if the + drag was successful. + +2022-06-11 Po Lu <luangruo@yahoo.com> + + Fix initializers for Haiku scroll bars + + * src/haiku_support.cc (class Emacs): + (class EmacsScrollBar): Fix initializers. + +2022-06-11 Visuwesh <visuweshm@gmail.com> + + Support mksh-specific function names in imenu + + * lisp/progmodes/sh-script.el (sh-imenu-generic-expression): Add + mksh-specific function names to imenu-generic-expression + (bug#55889). + +2022-06-11 Lars Ingebrigtsen <larsi@gnus.org> + + Further tweaks to how remapped commands are described + + * lisp/help.el (describe-map): Rework how remapped commands are + output to avoid repetitions. + + They're now shown as: + + C-x 4 C-o ido-display-buffer + (Remapped via <remap> <display-buffer>) + C-x 5 C-o ido-display-buffer-other-frame + (Remapped via <remap> <display-buffer-other-frame>) + C-x x i ido-insert-buffer + (Remapped via <remap> <insert-buffer>) + +2022-06-11 Eli Zaretskii <eliz@gnu.org> + + Fix doc strings in whitespace.el + + * lisp/whitespace.el (whitespace-style, whitespace-action): + Untabify the doc strings. (Bug#55904) + +2022-06-11 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add support for the Lepcha script (bug#55869) + + * lisp/language/indian.el ("Lepcha"): New language environment. + Add composition rules for Lepcha. Add sample text and input method. + * lisp/language/misc-lang.el ("Kharoshthi"): Fix whitespace. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Lepcha. + * lisp/leim/quail/indian.el ("lepcha"): New input method. + + * etc/HELLO: Add a Lepcha greeting. + * etc/NEWS: Announce the new language environment. + +2022-06-11 Po Lu <luangruo@yahoo.com> + + Fix queuing already-present selection requests + + * src/xterm.c (x_defer_selection_requests): Move kbd_fetch_ptr + if possible and fix counter increment order. + +2022-06-11 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 0705705ebf Improve documentation of "etags -I" + 0ad8cd40ce Merge branch 'emacs-28' of git.savannah.gnu.org:/srv/git/e... + 22a832ad82 Mention the #f syntax from cl-prin1 + 3fd0854378 Fix file name quoting in tramp-smb.el (do not merge) + +2022-06-10 Po Lu <luangruo@yahoo.com> + + Handle allocation errors when interning large amounts of atoms + + * src/xfns.c (Fx_begin_drag): Catch BadAlloc errors around + XInternAtoms. + +2022-06-10 Po Lu <luangruo@yahoo.com> + + Prevent crash handling keyboard input from non-frame windows + + * src/xterm.c (handle_one_xevent): Use `dpyinfo' to access xkb + desc. (bug#55890) + +2022-06-10 Po Lu <luangruo@yahoo.com> + + Fix canceling DND upon a regular X error + + * src/xterm.c (x_connection_closed): The display isn't dead upon + a non-IO error, so don't avoid sending messages to clean stuff + up. + +2022-06-10 Dmitry Gutov <dgutov@yandex.ru> + + elisp-completion-at-point: Replace last usage of 'read' + + * lisp/progmodes/elisp-mode.el (elisp-completion-at-point): + Replace the last remaining usage of 'read' (bug#55491). + +2022-06-10 Juri Linkov <juri@linkov.net> + + New function isearch-search-fun-in-text-property (bug#14013). + + * lisp/dired-aux.el (dired-isearch-search-filenames): Move most of the body + to the new function isearch-search-fun-in-text-property. + + * lisp/isearch.el (isearch-search-fun-in-text-property): + New function refactored from dired-isearch-search-filenames. + +2022-06-10 Jim Porter <jporterbugs@gmail.com> + + Don't use 'list' command in Eshell command forms + + When executed like a command, 'list' looks for external programs named + 'list' first before falling back to the Lisp function of the same + name. This causes unexpected behavior, since the Lisp function is + what we want in these tests. + + * test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-cmd-indices) + (esh-var-test/quoted-interp-cmd-indices): Use 'listify' instead of + 'list'. + +2022-06-10 Po Lu <luangruo@yahoo.com> + + Remove extra call to XTranslateCoordinates when performing "xterm" drop + + * src/xterm.c (x_dnd_do_unsupported_drop): Signal error when + XdndSelection is lost, set subwindow, and simplify + XTranslateCoordinates loop. + +2022-06-10 Taiju HIGASHI <higashi@taiju.info> + + Don't reduce vocabulary in ja-dic.el by default + + * configure.ac: Add the "--with-small-ja-dic" configure option. + * leim/Makefile.in (${leimdir}/ja-dic/ja-dic.el): Change the build + method depending on whether or not the --with-small-ja-dic option + is specified. + * lisp/international/ja-dic-cnv.el (skkdic-convert-okuri-nasi): Add + the "no-reduction" optional argument. When it is specified, then + generate a Japanese dictionary without reduced vocabulary. + (skkdic-convert): Add the "no-reduction" optional argument. + (batch-skkdic-convert): Add the "--no-reduction" command line argument. + +2022-06-10 Richard Hansen <rhansen@rhansen.org> + + bindat (strz): Fix documentation for strz with pre-allocated string + + * doc/lispref/processes.texi (Bindat Types): Document that a null + terminator is not written if `bindat-pack' is given a pre-allocated + string. + +2022-06-10 Lars Ingebrigtsen <larsi@gnus.org> + + Link find-sibling-file to ff-find-related-file in manual + + * doc/emacs/files.texi (Visiting): Link to ff-find-related-file + documentation. + +2022-06-10 Lars Ingebrigtsen <larsi@gnus.org> + + Fix find-sibling-file doc string + + * lisp/files.el (find-sibling-file): Remove incorrect statement + from doc string (bug#55879). + +2022-06-10 Lars Ingebrigtsen <larsi@gnus.org> + + Make describe-prefix-bindings say when there are no matches + + * lisp/help.el (describe-prefix-bindings): Say when there are no + bindings under a prefix (bug#55875), for instance in `C-c C-h' in + a buffer with no `C-c' commands. + +2022-06-10 Ignacio Casso <ignaciocasso@hotmail.com> + + Fix issues with loading autoloaded defcustoms while bound + + * doc/lispref/customize.texi (Variable Definitions) + (Variable Definitions): Update documentation. + + * lisp/custom.el (custom-initialize-set) + (custom-initialize-reset): Update doc string. + (custom-initialize-changed): Use set-default-toplevel-value. This + fixes issues with (let ((custom-variable ...)) (autoload-function ...)). + (custom-set-default): Ditto. + + * src/data.c (Fdefault_boundp): Update doc string. + +2022-06-10 Lars Ingebrigtsen <larsi@gnus.org> + + Don't put trailing optional nil values into `command-history' + + * src/callint.c (fix_command): Don't put trailing optional nil + values into `command-history' (bug#45333). + +2022-06-10 Mattias Engdegård <mattiase@acm.org> + + Fix macOS parallel bootstrap error (bug#55846) + + * nextstep/Makefile.in (${ns_appdir}): + Change to a single-target rule to avoid the same actions being + executed in parallel. + +2022-06-10 Lars Ingebrigtsen <larsi@gnus.org> + + Mention the REQUIRE-MATCH extension in NEWS + +2022-06-10 Lars Ingebrigtsen <larsi@gnus.org> + + Allow specifying a wildcard argument to list-directory again + + * lisp/files.el (list-directory): Allow specifying a wildcard + argument interactively again (bug#55877). + +2022-06-10 Lars Ingebrigtsen <larsi@gnus.org> + + Allow REQUIRE-MATCH to be a function + + * doc/lispref/minibuf.texi (Minibuffer Completion): Document it. + + * lisp/minibuffer.el (completion--complete-and-exit): Allow + REQUIRE-MATCH to be a function. + (read-file-name): Mention it. + + * src/minibuf.c (Fcompleting_read): Mention it. + +2022-06-10 Po Lu <luangruo@yahoo.com> + + Fix receiving drops from drop-only Motif programs + + * lisp/x-dnd.el (x-dnd-xm-read-targets-table): Fix doc string. + (x-dnd-handle-motif): Recompute types and state on XmDROP_START + if no state already exists. + +2022-06-10 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of "etags -I" + + * doc/man/etags.1: + * doc/emacs/maintaining.texi (Create Tags Table): Elaborate on the + importance of the '-I' option to 'etags'. (Bug#45246) + +2022-06-10 Po Lu <luangruo@yahoo.com> + + Eliminate extra call to XTranslateCoordinates looking for drop target + + * src/xterm.c (x_dnd_get_target_window): Translate coordinates + starting from the root window and avoid extra sync. + +2022-06-10 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 22a832ad82 Mention the #f syntax from cl-prin1 + +2022-06-10 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + d02c94090c Fix error reporting in process-async-https-with-delay + 9a4862a973 * doc/misc/org.org: Remove spurious markup. + 768ed1476a Make Tramp version check more robust + 7f778c6943 Fix debugging with GDB when a breakpoint has multiple loca... + 25e53e9391 ; * lisp/files.el (file-expand-wildcards): Doc fix. + 3ea9357d10 Update documentation of 'aset' and 'store-substring' + + # Conflicts: + # lisp/files.el + +2022-06-10 Po Lu <luangruo@yahoo.com> + + Add tests for x-dnd Motif value parsing logic + + * test/lisp/x-dnd-tests.el: New file. + +2022-06-09 Po Lu <luangruo@yahoo.com> + + Don't rely on TARGETS to read selection targets for Motif DND + + * lisp/x-dnd.el (x-dnd-types-alist): + (x-dnd-known-types): Fix formatting. + (x-dnd-xm-unpack-targets-table-header): + (x-dnd-xm-read-single-rec): + (x-dnd-xm-read-targets-table): + (x-dnd-xm-read-targets): New functions. + (x-dnd-handle-motif): Read targets from the targets table + of the drag window instead of the selection's TARGET target. + +2022-06-09 Po Lu <luangruo@yahoo.com> + + Fix crashes in x_tooltip_window_to_frame on GTK + + * src/xterm.c (x_tooltip_window_to_frame): Ignore all non-X + frames instead of trying to get their tooltip window. + +2022-06-09 Po Lu <luangruo@yahoo.com> + + * src/haikuselect.c (haiku_note_drag_motion): Only handle visible tip_f. + +2022-06-09 Po Lu <luangruo@yahoo.com> + + Fix DND tooltip handling with tooltip-reuse-hidden-frame + + * src/xterm.c (x_dnd_update_tooltip_position): Don't move window + if tip_f is not visible. + +2022-06-09 Eli Zaretskii <eliz@gnu.org> + + Update the 'etags' test suite + + * ETAGS_good_1: + * ETAGS_good_2: + * ETAGS_good_3: + * ETAGS_good_4: + * ETAGS_good_5: + * ETAGS_good_6: Adapt to recent changes in test sources. + + * lib-src/etags.c (C_entries): Add commentary for resetting + bracelev. (Bug#45246) + +2022-06-09 Lars Ingebrigtsen <larsi@gnus.org> + + Adjust browse-url test after previous browse-url change + +2022-06-09 Lars Ingebrigtsen <larsi@gnus.org> + + Make browse-url-encode-url encode even less + + * lisp/net/browse-url.el (browse-url-encode-url): Don't encode + dollar signs, because that's out of spec (bug#55873). + +2022-06-09 Lars Ingebrigtsen <larsi@gnus.org> + + Improve `C-h b' output for remapped commands. + + * lisp/help.el (describe-map): Include the bindings of the + remapped commands (bug#14084). + + This will result in output like this, instead of just listing the + remapped commands: + + <remap> <display-buffer> ido-display-buffer + C-x 4 C-o display-buffer + <remap> <display-buffer-other-frame> ido-display-buffer-other-frame + C-x 5 C-o display-buffer-other-frame + <remap> <insert-buffer> ido-insert-buffer + C-x x i insert-buffer + <remap> <kill-buffer> ido-kill-buffer + C-x k kill-buffer + <remap> <switch-to-buffer> ido-switch-buffer + C-x b switch-to-buffer + <remap> <switch-to-buffer-other-frame> ido-switch-buffer-other-frame + C-x 5 b switch-to-buffer-other-frame + <remap> <switch-to-buffer-other-window> ido-switch-buffer-other-window + C-x 4 b switch-to-buffer-other-window + +2022-06-09 Lars Ingebrigtsen <larsi@gnus.org> + + New setting for mouse-drag-copy-region to not put "" onto kill ring + + * doc/emacs/frames.texi (Mouse Commands): Document it. + * lisp/mouse.el (mouse-drag-copy-region): Add value (bug#17211) + for not putting "" strings onto the kill ring. + (mouse-set-region, mouse-save-then-kill): Use the new value. + +2022-06-09 Po Lu <luangruo@yahoo.com> + + Fix recalculation of `icon-title-format' after a frame is iconified + + Previously it would only happen upon the next mode line + redisplay, meaning that just pressing C-z would not update the + implicit title, since C-z doesn't cause a redisplay. + + * src/dispextern.h: Update prototypes. + * src/frame.h (SET_FRAME_ICONIFIED): De-slugify. Call + `gui_consider_frame_title', since `icon-title-format' might be + different from the current frame title. + * src/xdisp.c (gui_consider_frame_title): Export (also in + dispextern.h). (bug#55850) + +2022-06-09 Lars Ingebrigtsen <larsi@gnus.org> + + Mention the #f syntax from cl-prin1 + + * doc/lispref/objects.texi (Special Read Syntax): Mention #f, + which is in cl-prin1 output (bug#55853). + +2022-06-09 Lars Ingebrigtsen <larsi@gnus.org> + + Make `line-number-at-pos' work more like in earlier Emacs versions + + * src/fns.c (Fline_number_at_pos): Allow calling with position + outside the region if called with ABSOLUTE non-nil (bug#55847). + This isn't announced in the doc string, but makes function + compatible with the version in earlier Emacs versions. + +2022-06-09 Po Lu <luangruo@yahoo.com> + + Never return tooltip frames from ns-begin-drag + + * src/nsterm.m ([EmacsWindow draggedImage:movedTo:]): + ([EmacsWindow beginDrag:forPasteboard...]): Don't return frame + if tooltip. + +2022-06-09 Po Lu <luangruo@yahoo.com> + + Handle monitor attribute updates during drag-and-drop + + * src/xterm.c (x_monitors_changed_cb): + (handle_one_xevent): Set x_dnd_monitors during monitor changes. + +2022-06-09 Stefan Baums <baums@stefanbaums.com> + + Add support for the Kharoshthi script + + * etc/NEWS: Announce the new language environment and script. + * etc/HELLO: Add Kharoshthi greeting. + + * lisp/leim/quail/misc-lang.el ("kharoshthi"): New input method. + * lisp/language/misc-lang.el ("Kharoshthi"): New language + environment. Set up composition rules for Kharoshthi. + (Bug#55539) + +2022-06-09 Po Lu <luangruo@yahoo.com> + + Satisfy GCC warnings on the GNUstep build + + * src/nsfns.m (ns_move_tooltip_to_mouse_location): + * src/nsterm.m ([EmacsWindow draggedImage:movedTo:]): Pacify GCC. + +2022-06-09 Po Lu <luangruo@yahoo.com> + + Disable tooltip timeouts for drag-and-drop tooltips + + * lisp/mouse.el (mouse-drag-and-drop-region-display-tooltip): + Don't time out the created tooltip. + +2022-06-09 Po Lu <luangruo@yahoo.com> + + Implement `follow-tooltip' on NS as well + + * lisp/term/ns-win.el (x-begin-drag): Pass `follow-tooltip'. + * src/nsfns.m (Fx_show_tip): Record last dx and dy. + (syms_of_nsfns): New staticpros. + * src/nsmenu.m ([EmacsTooltip moveTo:]): New method. + + * src/nsselect.m (Fns_begin_drag): New parameter + `follow-tooltip'. + + * src/nsterm.h (@interface EmacsWindow): + (EmacsTooltip): Update prototypes. + * src/nsterm.m ([EmacsWindow draggedImage:movedTo:]): Move any + tooltip to the right location. + ([EmacsWindow beginDrag:forPasteboard...]): New parameter + `followTooltip'. + +2022-06-09 Po Lu <luangruo@yahoo.com> + + Note caveats of `follow-tooltip' with system tooltips + + * lisp/mouse.el (mouse-drag-and-drop-region): Turn off system + tooltips inside. + * src/xfns.c (Fx_begin_drag): Say that follow-tooltip doesn't + work with system tooltips. + +2022-06-09 Richard Hansen <rhansen@rhansen.org> + + bindat: Improve str, strz documentation + + * doc/lispref/processes.texi (Bindat Types): Expand the documentation + for the `str' and `strz' types to clarify expectations and explain + edge case behavior. + +2022-06-09 Po Lu <luangruo@yahoo.com> + + Implement `follow-tooltip' for DND on Haiku + + * lisp/term/haiku-win.el (x-begin-drag): Implement + `follow-tooltip'. + * src/haikufns.c (Fx_show_tip): Record last dx and dy. + (syms_of_haikufns): New staticpros. + + * src/haikuselect.c (haiku_unwind_drag_message): Clear new flag. + (Fhaiku_drag_message): New argument `follow-tooltip'. Set new + flag. + (haiku_dnd_compute_tip_xy): New function. + (haiku_note_drag_motion): Move tooltip if flag is true. + + * src/haikuterm.c (haiku_read_socket): Don't generate help event + if mouse moves onto a tooltip during DND. + * src/haikuterm.h: Update prototypes. + +2022-06-09 Jim Porter <jporterbugs@gmail.com> + + Account for remapped faces in $COLUMNS and $LINES in Eshell + + * src/window.h (window_body_unit): New enum... + (window_body_width): ... use it. + + * src/window.c (window_body_unit_from_symbol): New function. + (window_body_height, window_body_width): Make PIXELWISE a + 'window_body_unit'. + (window-body-height, window-body-width): Accept 'remap' for PIXELWISE. + (window-lines-pixel-dimensions, window_change_record_windows) + (run_window_change_functions, resize_frame_windows, grow_mini_window) + (shrink_mini_window, scroll-left, scroll-right): Update calls to + 'window_body_height' and 'window_body_width'. + + * src/indent.c (compute_motion): Update calls to 'window_body_width'. + + * lisp/eshell/em-ls.el (eshell-ls-find-column-widths) + (eshell-ls-find-column-lengths): Use 'window-body-width'. + + * lisp/eshell/esh-var.el (eshell-variable-aliases-list): Use + 'window-body-width' and 'window-body-height'. + + * test/lisp/eshell/esh-var-tests.el (esh-var-test/window-height) + (esh-var-test/window-width): Rename to... + (esh-var-test/lines-var, esh-var-test/columns-var): ... and update + expected value. + + * doc/lispref/windows.texi (Window Sizes): Document new behavior of + PIXELWISE argument for 'window-body-width' and 'window-body-height'. + + * etc/NEWS: Announce this change (bug#55696). + +2022-06-09 Eli Zaretskii <eliz@gnu.org> + + Revert "* src/comp.c (Fcomp_el_to_eln_filename): Update error message." + + This reverts commit ec987e3e1786d06ffd306e5717b4d7fd118f05ac. + This change was installed on the emacs-28 branch instead. + +2022-06-09 Juri Linkov <juri@linkov.net> + + Allow C-x 4 4, C-x 5 5, C-x t t to handle commands that use switch-to-buffer + + * lisp/window.el (display-buffer-override-next-command): + Temporarily set switch-to-buffer-obey-display-actions to t, + and revert back to the original value afterwards. + This allows other-window-prefix, other-frame-prefix, other-tab-prefix, + windmove-display-in-direction to override the default behavior of + commands that use switch-to-buffer. + https://lists.gnu.org/archive/html/emacs-devel/2022-06/msg00483.html + +2022-06-09 Jeff Walsh <fejfighter@gmail.com> + + * src/comp.c (Fcomp_el_to_eln_filename): Update error message. + +2022-06-09 Jeff Walsh <fejfighter@gmail.com> + + Update error message to reflect variable rename + + * src/comp.c (Fcomp_el_to_eln_filename): Update error message. (Bug#55861) + +2022-06-09 Po Lu <luangruo@yahoo.com> + + Also show mouse DND tooltip contents during interprogram drag-and-drop + + * doc/lispref/frames.texi (Drag and Drop): Document new + parameter to `x-begin-drag'. + * lisp/mouse.el (mouse-drag-and-drop-region): Don't hide tooltip + when initiating interprogram drag-and-drop. + * lisp/term/haiku-win.el (x-begin-drag): + * lisp/term/ns-win.el (x-begin-drag): Add stubs for new + parameter. + * src/xfns.c (Fx_begin_drag): New parameter `follow-tooltip'. + (Fx_show_tip, syms_of_xfns): Add records of the last dx and dy + given to `x-show-tip'. + * src/xterm.c (x_clear_dnd_monitors): New function. + (x_dnd_begin_drag_and_drop): Save monitor attributes list if + appropriate. + (x_dnd_compute_tip_xy, x_dnd_update_tooltip_position): New + function. + (x_dnd_update_state, handle_one_xevent): Update tooltip position + during DND mouse movement. + (syms_of_xterm): Update staticpros. + * src/xterm.h: Update prototypes. + +2022-06-08 Po Lu <luangruo@yahoo.com> + + Fix dnd-tests on builds without X + + * test/lisp/dnd-tests.el (x-get-selection-internal): New + function declaration. + +2022-06-08 Po Lu <luangruo@yahoo.com> + + Ignore tooltip frames when looking for DND target + + * src/xterm.c (x_dnd_get_target_window): When not using client + lists, look beneath any tooltip frame. + +2022-06-08 Po Lu <luangruo@yahoo.com> + + Make use of faster atom intern functions in xselect.c + + * src/xselect.c (symbol_to_x_atom): + (x_atom_to_symbol): Use x_get_atom_name and + x_intern_cached_atom. + +2022-06-08 Ken Brown <kbrown@cornell.edu> + + Fix error reporting in process-async-https-with-delay + + * test/src/process-tests.el (process-async-https-with-delay): Use + 'plist-get' instead of 'assq' in testing for a connection error. + The 'status' variable is a plist, not an alist. (Bug#55849) + +2022-06-08 Juri Linkov <juri@linkov.net> + + * lisp/rect.el: Return correct positions of region-beginning/end (bug#55234) + + (rectangle-mark-mode): Add advices for region-beginning and region-end. + (rectangle--region-beginning, rectangle--region-end): New advices. + (rectangle--extract-region): Let-bind rectangle-mark-mode around + region-beginning and region-end to use the original functions. + +2022-06-08 Robert Pluim <rpluim@gmail.com> + + Add more super and subscript characters to latin input methods + + * lisp/leim/quail/latin-post.el ("latin-postfix", "latin-prefix"): Add + missing super and subscript characters. (Bug#55722) + +2022-06-08 Robert Pluim <rpluim@gmail.com> + + Add fractions to latin-post input method + + * lisp/leim/quail/latin-post.el ("latin-postfix"): Add fractions. + +2022-06-08 Robert Pluim <rpluim@gmail.com> + + Add more ways to enter trade mark and registered sign + + * lisp/international/iso-transl.el (iso-transl-char-map): Add sequence + for TRADE MARK. + * lisp/leim/quail/latin-post.el ("latin-postfix"): Add REGISTERED SIGN + and TRADE MARK. + * lisp/leim/quail/latin-pre.el ("latin-prefix"): Add TRADE MARK. + +2022-06-08 Po Lu <luangruo@yahoo.com> + + Allow running some DND tests interactively + + * src/xselect.c (x_get_local_selection): Respect new variable. + (syms_of_xselect): New variable + `x-treat-local-requests-remotely'. + + * test/lisp/dnd-tests.el (x-begin-drag, gui-set-selection): + Don't redefine these functions under X. + (dnd-tests-verify-selection-data): Use + `x-get-selection-internal' under X. + (dnd-tests-extract-selection-data): New function. + (dnd-tests-begin-text-drag): Update accordingly. + (dnd-tests-begin-file-drag, dnd-tests-begin-drag-files): + Temporarily skip these tests under X. + +2022-06-08 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "Give ,@ a prefix syntax in elisp-mode" + + This reverts commit d003848b5e3ad2dfbe84cc62b99776fdc6734325. + + This leads to hangs in edebug-tests. + +2022-06-08 Jim Porter <jporterbugs@gmail.com> + + Don't split Eshell expansions by line when using split-subscript operator + + * lisp/eshell/esh-var.el (eshell-apply-indices): Use + 'eshell-convert-to-number' instead of 'eshell-convert'. + + * test/lisp/eshell/esh-var-tests.el + (esh-var-test/interp-convert-var-split-indices): Expand test + (bug#55838). + +2022-06-08 Nicholas Vollmer <iarchivedmywholelife@gmail.com> + + * doc/man/emacs.1.in: Add --init-directory. + + * doc/man/emacs.1.in: Document --init-directory (bug#55839). + +2022-06-08 Po Lu <luangruo@yahoo.com> + + Simplify XDND toplevel freeing code + + * src/xterm.c (x_free_dnd_toplevels): New function. + (x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop): Record + an unwind function to free DND toplevels instead of doing that + manually everywhere. + +2022-06-08 Manuel Giraud <manuel@ledu-giraud.fr> + + Fix last-modified meaning in bookmark.el + + * lisp/bookmark.el (bookmark-update-last-modified): New function + to update the last-modified field. + (bookmark-send-edited-annotation, bookmark-relocate) + (bookmark-rename): Use `bookmark-update-last-modified' in + annotations editing, relocation and renaming. + +2022-06-08 Lars Ingebrigtsen <larsi@gnus.org> + + icomplete-in-buffer doc fix + + * lisp/icomplete.el (icomplete-in-buffer): dabbrev now uses + icomplete-in-buffer (bug#45764). + +2022-06-08 Stefan Kangas <stefan@marxist.se> + + * doc/misc/org.org: Remove spurious markup. + +2022-06-08 Michael Albinus <michael.albinus@gmx.de> + + Make Tramp version check more robust + + * lisp/net/trampver.el (tramp-repository-branch) + (tramp-repository-version): Check for "git" executable. + +2022-06-08 Michael Albinus <michael.albinus@gmx.de> + + Factor out test configuration for remote files + + * lisp/emacs-lisp/ert-x.el (tramp-methods) + (tramp-default-host-alist): Declare. + (ert-remote-temporary-file-directory): New defconst. + + * test/README: Mention dnd-tests.el. + + * test/lisp/autorevert-tests.el + (auto-revert-test-remote-temporary-file-directory): Remove. + Replace all uses by `ert-remote-temporary-file-directory'. + + * test/lisp/dnd-tests.el (ert-x): Require. + (dnd-tests-temporary-file-directory): Remove. Replace all uses by + `ert-remote-temporary-file-directory'. + + * test/lisp/filenotify-tests.el + (file-notify-test-remote-temporary-file-directory): Remove. + Replace all uses by `ert-remote-temporary-file-directory'. + + * test/lisp/shadowfile-tests.el (ert-x): Require. + (shadow-test-remote-temporary-file-directory): Remove. Replace + all uses by `ert-remote-temporary-file-directory'. + + * test/lisp/net/tramp-tests.el: Don't require ert. + (ert-remote-temporary-file-directory): Define if it doesn't exist. + (tramp-test-temporary-file-directory): Remove. Replace all uses + by `ert-remote-temporary-file-directory'. + +2022-06-08 Mattias Engdegård <mattiase@acm.org> + + Preserve doc string in `byte-compile` (bug#55830) + + * lisp/emacs-lisp/bytecomp.el (byte-compile--reify-function): + Don't transpose doc string and interactive spec, which must come + in this order. + * test/lisp/emacs-lisp/bytecomp-tests.el + (bytecomp-function-attributes): New test. + +2022-06-08 Po Lu <luangruo@yahoo.com> + + Make responding to selection requests work inside popups + + * src/xfns.c (Fx_file_dialog): + * src/xmenu.c (x_menu_wait_for_event, create_and_show_popup_menu) + (create_and_show_dialog, x_menu_show): Defer selection requests. + * src/xselect.c (x_get_foreign_selection) + (x_handle_selection_notify): Add some more info to selection + trace. + + * src/xterm.c (x_defer_selection_requests): Make non-static. + (x_release_selection_requests_and_flush): New function. + (x_dnd_begin_drag_and_drop): Use DEFER_SELECTIONS instead. + (x_wait_for_cell_change): Fix initial value of rc for pushed + back events. + (handle_one_xevent): Allow GTK to respond to selections in its + windows too. + + * src/xterm.h (DEFER_SELECTIONS): New slug of code. + +2022-06-08 Po Lu <luangruo@yahoo.com> + + Fix quitting in one go out of `mouse-drag-and-drop-region' + + * src/xterm.c (x_dnd_begin_drag_and_drop): Make sure + handle_interrupt is called inside the nested event loop upon a + quit event. + +2022-06-07 Po Lu <luangruo@yahoo.com> + + Fix crash with outdated selection requests + + * src/xselect.c (x_handle_selection_request): Don't store into + stack if it wasn't previously pushed. + +2022-06-07 Po Lu <luangruo@yahoo.com> + + Improve drag-and-drop tests + + * lisp/dnd.el (dnd-begin-file-drag, dnd-begin-drag-files): Fix + type of `x-xdnd-username'. + * lisp/select.el (selection-converter-alist): Fix declaration of + _DT_NETFILE converter. + + * test/lisp/dnd-tests.el (dnd-tests-verify-selection-data): + Handle "compound" selection converters. + (dnd-tests-parse-tt-netfile): New function. + (dnd-tests-begin-file-drag, dnd-tests-begin-drag-files): Verify + validity of file selection data. + +2022-06-07 Po Lu <luangruo@yahoo.com> + + More fixes to mouse event reporting during drag-and-drop + + * src/xterm.c (x_dnd_begin_drag_and_drop): Don't reset + dpyinfo->grabbed when quitting. + (handle_one_xevent): Keep track of dpyinfo->grabbed as well + inside the drag-and-drop event loop. + +2022-06-07 Dmitry Gutov <dgutov@yandex.ru> + + pcomplete-parse-arguments: Fix last change + + * lisp/pcomplete.el (pcomplete-parse-arguments): + Throw the previous value of 'pcomplete-stub' (a list) rather than + the newly constructed one (bug#50470). + +2022-06-07 Juri Linkov <juri@linkov.net> + + * doc/emacs/vc1-xtra.texi (Customizing VC): Remove deprecated Mtn. + +2022-06-07 Lars Ingebrigtsen <larsi@gnus.org> + + Give ,@ a prefix syntax in elisp-mode + + * lisp/progmodes/elisp-mode.el (elisp-mode-syntax-propertize): + Give ,@ a prefix syntax so that we can properly identify symbols + that follow it, i.e., ,@foo (bug#44418). + +2022-06-07 Lars Ingebrigtsen <larsi@gnus.org> + + Demote extended attribute errors in basic-save-buffer-2 + + * lisp/files.el (basic-save-buffer-2): Give demoted errors when + reading extended attributes that fail (bug#43723). + +2022-06-07 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerated ldefs-boot.el + + This is the first check-in after the loaddefs-gen.el rewrite. + +2022-06-07 Lars Ingebrigtsen <larsi@gnus.org> + + Remove Mtn from vc-handled-backends + + * lisp/vc/vc-hooks.el (vc-handled-backends): Remove the deprecate + vc-mtn backend. + +2022-06-07 Lars Ingebrigtsen <larsi@gnus.org> + + Fix loaddefs-generate--rubric recorded name + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--rubric): Fix + the name that's recorded in the file -- this is only used by + loaddefs-gen now, I think. + +2022-06-07 Lars Ingebrigtsen <larsi@gnus.org> + + Make artist-mode work in zoomed buffers + + * lisp/textmodes/artist.el (artist-mouse-draw-continously): + (artist-mouse-draw-continously): + (artist-mouse-draw-poly): + (artist-mouse-draw-1point): + (artist-mouse-draw-2points): + (artist-mouse-draw-2points): Work better when the window is zoomed + (bug#46035). + +2022-06-07 Lars Ingebrigtsen <larsi@gnus.org> + + Allow posn-col-row to return data on a per-window basis + + * doc/lispref/commands.texi (Accessing Mouse): Document it. + * lisp/subr.el (posn-col-row): Extend to use window data. + +2022-06-07 Lars Ingebrigtsen <larsi@gnus.org> + + Allow hooks to alter the process in prolog-ensure-process + + * lisp/progmodes/prolog.el (prolog-ensure-process): Start the mode + after starting the process, so that the mode hook can talk to the + process (bug#46003). + +2022-06-07 Stefan Monnier <monnier@iro.umontreal.ca> + + find-func.el: Fix bug#41104 + + * lisp/emacs-lisp/find-func.el (find-function-advised-original): Look + at the actual function definition rather than + `advice--symbol-function` which sometimes returns only the advice. + + * test/lisp/emacs-lisp/find-func-tests.el + (find-func-tests--find-library-verbose): Add test. + +2022-06-07 Po Lu <luangruo@yahoo.com> + + Add selection stuff to DND tests + + * test/lisp/dnd-tests.el (dnd-tests-selection-table): New + defvar. + (gui-set-selection): Actually implement in a way that validates + the local value and stores it for future use. + (dnd-tests-verify-selection-data): New function. + (dnd-tests-begin-text-drag): Add tests for the contents of + various selections. + +2022-06-07 Eli Zaretskii <eliz@gnu.org> + + Fix debugging with GDB when a breakpoint has multiple locations + + * lisp/progmodes/gdb-mi.el (gdb-breakpoints--add-breakpoint-row): + New function, extracted from 'gdb-breakpoints-list-handler-custom'. + Don't print "in <unknown>" for header-rows of breakpoints with + multiple locations that don't have a function name attached. + (gdb-breakpoints-list-handler-custom): Add to the breakpoint table + also any locations in multiple-location breakpoints, which are + supported since GDB 6.8. + +2022-06-07 Po Lu <luangruo@yahoo.com> + + Fix coding style of some Haiku files + + * src/haiku_support.cc: (FrameResized): + (class EmacsView, AfterResize): Fix coding and initializer + style. + + * src/haiku_support.h (struct haiku_resize_event): Rename + confusingly named fields. + * src/haikuterm.c (haiku_read_socket): Update accordingly. + +2022-06-07 Lars Ingebrigtsen <larsi@gnus.org> + + Simplify mode line for vc-print-root-log + + * lisp/vc/vc.el (vc-print-root-log): Don't display "from <file>" + (bug#45007). + +2022-06-07 Po Lu <luangruo@yahoo.com> + + Fix more bugs with DND selection handling + + * src/xterm.c (x_defer_selection_requests) + (x_release_selection_requests): New functions. + (x_dnd_begin_drag_and_drop): Use those functions to defer + selections instead. Fix error signaled when ownership of + XdndSelection is lost. + (handle_one_xevent): Likewise. + +2022-06-07 Lars Ingebrigtsen <larsi@gnus.org> + + Clarify highlight-changes-rotate-faces doc string + + * lisp/hilit-chg.el (highlight-changes-rotate-faces): Doc string + clarification (bug#44150). + +2022-06-07 Po Lu <luangruo@yahoo.com> + + Remove mentions of GNOME MediaKeys from dbus documentation examples + + * doc/misc/dbus.texi (Properties and Annotations): + * lisp/net/dbus.el (dbus-get-all-managed-objects): Remove + mentions of obsolete GNOME APIs from example text. + +2022-06-07 Po Lu <luangruo@yahoo.com> + + Improve compatibility with some clients of the Motif drop protocol + + * lisp/select.el (x-dnd-targets-list): New defvar. + (xselect-convert-to-targets): Convert XdndSelection based on the + DND targets list. + * src/xfns.c (Fx_begin_drag): Pass new argument. + * src/xselect.c (struct x_selection_request): New struct. + (x_push_current_selection_request): + (x_pop_current_selection_request): New functions. + (x_selection_request_lisp_error, x_reply_selection_request) + (x_handle_selection_request, x_convert_selection) + (syms_of_xselect_for_pdumper): Correctly handle recursive + requests for MULTIPLE by maintaining a stack of selection + requests, converted selections, and other data. + * src/xterm.c (x_dnd_begin_drag_and_drop): New argument + `selection_target_list'. Bind it to the DND targets list. + (syms_of_xterm): New defvar and associated defsym. + * src/xterm.h: Update prototypes. + +2022-06-07 Po Lu <luangruo@yahoo.com> + + Add new drag-and-drop test + + * test/lisp/dnd-tests.el (dnd-tests-get-local-file-uri): New + test. + +2022-06-07 Po Lu <luangruo@yahoo.com> + + Fix leak of event data on GTK+ 2.x + + * src/xterm.c (handle_one_xevent): Fix goto XI_OTHER for + valuator motion events generated on scroll bars. + +2022-06-06 Po Lu <luangruo@yahoo.com> + + Update Haiku drag-and-drop code + + * lisp/term/haiku-win.el (haiku-drag-and-drop): Don't allow + dropping on places other than the text area (it doesn't work). + Also respect mouse-yank-at-point. + +2022-06-06 Po Lu <luangruo@yahoo.com> + + Don't allow dropping on invalid drop sites + + * lisp/x-dnd.el (x-dnd-drop-data): If dropping on something + other than the text area, don't set point. + (x-dnd-handle-xdnd, x-dnd-handle-motif): Don't pretend dropping + on the mode line is ok. + +2022-06-06 Po Lu <luangruo@yahoo.com> + + Don't display mouse face during mouse drag-and-drop + + * lisp/mouse.el (mouse-drag-and-drop-region): Don't display + mouse face, since it leads to a lot of flicker. + +2022-06-06 Po Lu <luangruo@yahoo.com> + + Prevent crashes with very large Motif targets tables + + * src/xterm.c (xm_setup_dnd_targets): Catch errors around + xm_write_targets_table lest we get a BadAlloc error. + +2022-06-06 Po Lu <luangruo@yahoo.com> + + Fix two crashes when a display connection is lost + + This fixes errors caused by invalid error traps being left on + the error handler stack if an IO error causes a non-local exit + out of the protected code, and another crash caused by + delete_frame trying to read async input. + + * src/eval.c (unwind_to_catch, push_handler_nosignal): Save and + restore the X error handler stack. + * src/lisp.h (struct handler): [HAVE_X_WINDOWS]: New field + `x_error_handler_depth'. + + * src/xterm.c (struct x_error_message_stack): Make string a + regular string. + (x_unwind_errors_to): New function. + (x_error_catcher, x_catch_errors_with_handler) + (x_uncatch_errors_after_check, x_uncatch_errors): Update the + stack depth. + (x_check_errors): Stop manually unwinding since unwind_to_catch + now does that for us. + (x_had_errors_p, x_clear_errors): Update for new type of + `string'. + (x_connection_closed): Block input between just before + delete_frame to when the terminal is unlinked. + + * src/xterm.h: Update prototypes. + +2022-06-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix execute-extended-command help text for remapped commands + + * lisp/simple.el (execute-extended-command): Don't provide + misleading help text for remapped commands (bug#23543). + +2022-06-06 Stephen Berman <stephen.berman@gmx.net> + + Allow using xref buttons in non-*Help* buffers + + * lisp/help-mode.el (help-buffer): Allow using the xref buttons in + non-*Help* buffers (bug#8147) (but display the result in a *Help* + buffer). + +2022-06-06 Lars Ingebrigtsen <larsi@gnus.org> + + Make find-file-noselect not pick buffers with broken symlinks + + * lisp/files.el (find-buffer-visiting): Improve doc string. + (find-file-noselect): Don't pick buffers with broken symlinks, + because that's too confusing (bug#41414). + +2022-06-06 Lars Ingebrigtsen <larsi@gnus.org> + + Improve scheme-mode syntax-rules indentation + + * lisp/progmodes/scheme.el (syntax-rules): Indent syntax-rules + with a parameter better (bug#40869). + +2022-06-06 Lars Ingebrigtsen <larsi@gnus.org> + + Improve find-sibling-file error reporting + + * lisp/files.el (find-sibling-file): Improve error reporting. + +2022-06-06 Po Lu <luangruo@yahoo.com> + + Update comments in X error handling code + + * src/xterm.c (struct x_error_message_stack, x_error_message) + (x_error_catcher, x_catch_errors, x_had_errors_p) + (x_clear_errors): Long-overdue comment update. Describe the + fields of the error message stack, and the fact that + `x_error_message' is a stack, not a pointer to a string (which + has been true since 2006). Also describe the updated conditions + used to find an applicable error handler and to call + x_uncatch_errors_after_check. + +2022-06-06 Po Lu <luangruo@yahoo.com> + + Add drag-and-drop API tests + + * test/lisp/dnd-tests.el: New file. + (dnd-tests-begin-text-drag): + (dnd-tests-begin-file-drag): + (dnd-tests-begin-drag-files): New tests. + +2022-06-06 Po Lu <luangruo@yahoo.com> + + Improve handling of remote files during drag-and-drop + + * lisp/dnd.el (dnd-begin-drag-files): Don't fail if one remote + file couldn't be downloaded. + +2022-06-06 Mattias Engdegård <mattiase@acm.org> + + Test warning suppressions with lexical binding + + * test/lisp/emacs-lisp/bytecomp-tests.el + (test-byte-comp-compile-and-load): Add lexical cookie to file being + compiled as part of the test. + (bytecomp-test--with-suppressed-warnings): Comment out the test + for suppressing warnings when attempting to let-bind `nil`, + as that (1) doesn't work and (2) is a silly thing to do anyway. + +2022-06-06 Po Lu <luangruo@yahoo.com> + + Fix several more issues with running Lisp during drag-and-drop + + * src/xterm.c (handle_one_xevent): Fix _NET_WM_PING cycle again + and set mouse_moved flags during drag-and-drop so reading mouse + events from Lisp continues to work. + +2022-06-06 Po Lu <luangruo@yahoo.com> + + Signal an error XdndSelection was lost during drag-and-drop + + * src/xselect.c (x_handle_selection_clear): Signal an error if + ownership of XdndSelection was lost during drag-and-drop. + +2022-06-06 Po Lu <luangruo@yahoo.com> + + Make mouse input work properly inside the debugger during DND + + * src/xterm.c (x_dnd_begin_drag_and_drop): Set + `x_dnd_recursion_depth'. + (handle_one_xevent): If the recursive edit level is higher than + when DND started, handle mouse events normally. + +2022-06-06 Stefan Monnier <monnier@iro.umontreal.ca> + + cl-typep: Emit warning when using a type not known to be a type + + `cl-typep` has used a heuristic that if there's a `<foo>-p` function, + then <foo> can be used as a type. This made sense in the past where + most types were not officially declared to be (cl-)types, but nowadays + this just encourages abuses such as using `cl-typecase` with + "types" like `fbound`. It's also a problem for EIEIO objects, where + for historical reasons `<foo>-p` tests if the object is of type + exactly `<foo>` whereas (cl-typep OBJ <foo>) should instead test + if OBJ is a *subtype* of `<foo>`. + + So we change `cl-typep` to emit a warning whenever this "-p" heuristic + is used, to discourage abuses, encourage the use of explicit + `cl-deftype` declarations, and try and detect some misuses of + `<foo>-p` for EIEIO objects. + + * lisp/emacs-lisp/eieio.el (defclass): Define as type not only at + run-time but also for the current compilation unit. + + * lisp/emacs-lisp/eieio-core.el (class, eieio-object): Define as types. + + * lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Don't abuse the + "-p" heuristic. + + * lisp/emacs-lisp/cl-macs.el (cl-deftype-satisfies): + Add entries for frames, windows, markers, and overlays. + (cl-typep): Emit a warning when using a predicate that is not known to + correspond to a type. + + * lisp/files.el (file-relative-name): Fix error that can trigger if + there's an(other) error between loading `files.el` and loading + `minibuffer.el`. + +2022-06-05 Po Lu <luangruo@yahoo.com> + + Rework X selections to make it safe to run the debugger inside converters + + * src/keyboard.c (prev_kbd_event): Delete function. + (readable_events): Return 1 if + x_detect_pending_selection_requests returns true. + (kbd_buffer_unget_event): Also delete function, since nested + selection requests are really handled correctly. + (kbd_buffer_get_event): Handle events from the special X + deferred selection queue as well. + + * src/keyboard.h: Update prototypes. + + * src/xselect.c (struct selection_event_queue) + (selection_input_event_equal, x_queue_event) + (x_start_queuing_selection_requests) + (x_stop_queuing_selection_requests): Delete structs, since they + are no longer required. + (x_handle_selection_request, x_handle_selection_event): Allow + nested selection events. + + * src/xterm.c (struct x_selection_request_event): New struct. + (x_handle_pending_selection_requests_1) + (x_handle_pending_selection_requests): Handle all events in the + new selection event queue. + (x_push_selection_request, x_detect_pending_selection_requests): + New functions. + (x_dnd_begin_drag_and_drop): Drain the selection queue here as + well. + (handle_one_xevent): When inside a nested event loop, just push + selections to that queue. + (XTread_socket): Allow reading X events if x_dnd_unwind_flag is + true, even though DND is in progress. + (x_delete_display): Delete pending selection events for the + display that is going away. + + * src/xterm.h: Update prototypes. + +2022-06-05 Stefan Monnier <monnier@iro.umontreal.ca> + + pcomplete.el: Fix part of bug#50470 + + Try and handle the case where `pcomplete-parse-arguments-function` + directly returns a list of completions. + + * lisp/pcomplete.el (pcomplete-parse-arguments): Don't modify the + buffer if we're not allowed to. Instead use the buffer's current + content as the "pattern to be completed" and return the list + of completions as is. Also, use `try-completions` to simplify the + previous code. + +2022-06-05 Lars Ingebrigtsen <larsi@gnus.org> + + Add nohandle-guide images for tree-widget + + These are copies of the guide.* files + +2022-06-05 Lars Ingebrigtsen <larsi@gnus.org> + + Re-re-fix previous describe-function change + + * lisp/help-fns.el (describe-function): Put back binding removed + by mistake in previous change. + +2022-06-05 Lars Ingebrigtsen <larsi@gnus.org> + + Fix key binding buffer issue in describe-function better + + * lisp/help-fns.el (describe-function): Revert previous change here. + (describe-function-1): Just use describe-function-orig-buffer + instead of the key-buffer binding -- this will also make the + rendering results correct when hitting `g' and `l'. + +2022-06-05 Lars Ingebrigtsen <larsi@gnus.org> + + Clarify syntax-ppss doc string + + * lisp/emacs-lisp/syntax.el (syntax-ppss): Clarify doc string. + +2022-06-05 Lars Ingebrigtsen <larsi@gnus.org> + + Simplify set-goal-column + + * lisp/simple.el (set-goal-column): Simplify the code. + +2022-06-05 Lars Ingebrigtsen <larsi@gnus.org> + + Make `C-h f' look up key bindings in the current buffer again + + * lisp/help-fns.el (describe-function): Pass in the correct buffer + to look up key bindings in. + (describe-function-1): Use it. + +2022-06-05 Lars Ingebrigtsen <larsi@gnus.org> + + Make the goal column work for the scrolling commands, too + + * doc/emacs/basic.texi (Moving Point): Document it. + * lisp/simple.el (set-goal-column): Update doc string. + + * lisp/window.el (scroll-up-command, scroll-down-command): Make + the goal column take effect for these commands, too (bug#17346). + +2022-06-05 Lars Ingebrigtsen <larsi@gnus.org> + + Move two more variables from autoload.el to loaddefs-gen.el + + * lisp/emacs-lisp/loaddefs-gen.el (generated-autoload-file) + (generated-autoload-load-name): Move the remaining two autoload.el + variables used by loaddefs-gen.el from autoload.el. + +2022-06-05 Lars Ingebrigtsen <larsi@gnus.org> + + Make finder/cus-dep scraping use generate-lisp-file functions + + * lisp/finder.el (finder-compile-keywords): + * lisp/cus-dep.el (custom-make-dependencies): Use + generate-lisp-file functions directly instead of piggy-backing on + the autoload.el functions. (This is part of making autoload.el obsolete.) + +2022-06-05 Stefan Kangas <stefan@marxist.se> + + Don't generate separate autoload file for htmlfontify + + * lisp/hfy-cmap.el: Update file local to no longer put htmlfontify + autoloads in htmlfontify-loaddefs.el. + * lisp/htmlfontify.el (htmlfontify-loaddefs): Don't require. + * test/lisp/htmlfontify-tests.el (htmlfontify-autoload): Delete + test (bug#52400). + +2022-06-05 Lars Ingebrigtsen <larsi@gnus.org> + + Rename generate-file to generate-lisp-file + + * lisp/url/url-cookie.el (url-cookie-write-file): + * lisp/international/titdic-cnv.el (tit-process-header) + (miscdic-convert): + * lisp/international/ja-dic-cnv.el (skkdic-convert): + * lisp/international/emoji.el (emoji--generate-file): + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--rubric): + * admin/unidata/unidata-gen.el (unidata-gen-file) + (unidata-gen-charprop): Adjust callers. + + * lisp/emacs-lisp/generate-lisp-file.el: Renamed from + generate-file.el. Also rename some keyword parameters and require + a generator function. + +2022-06-05 Lars Ingebrigtsen <larsi@gnus.org> + + Add convenience functions for generating Emacs Lisp files + + * lisp/url/url-cookie.el (url-cookie-write-file): + * lisp/international/titdic-cnv.el (tit-process-header): + * lisp/international/ja-dic-cnv.el (skkdic-convert): + * lisp/international/emoji.el (emoji--generate-file): + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--rubric) + + * admin/unidata/unidata-gen.el (unidata-gen-file) + (unidata-gen-charprop): Use the new functions. + + * lisp/emacs-lisp/generate-file.el: New file to provide + convenience functions for generated files. It's not always + trivial to know which parts of the trailer that has to be + obfuscated to avoid not getting byte-compiled etc, and some parts + of the headers/trailers are usually forgotten when hand-coding + these. + +2022-06-05 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add a fallback font for Tamil Supplement characters + + * lisp/international/fontset.el (setup-default-fontset): Add + and entry for "Noto Sans Tamil Supplement". (Bug#55807) + +2022-06-05 JD Smith <jdtsmith@gmail.com> (tiny change) + + Make the Unicode tree widget prettier + + * lisp/tree-widget.el (tree-widget-nohandle-guide): New widget: + "One small change is needed to accommodate this + style. `tree-widget-guide’ specifies a single vertical bar “guide” + widget. In the unicode tree, two separate vertical bars are needed + — one “plain” (│), and one which connects to the horizontal + “handle” preceding the node (├)." + (tree-widget--cursors): + (tree-widget): + (tree-widget-value-create): Use it. + +2022-06-05 Lars Ingebrigtsen <larsi@gnus.org> + + Add new command find-sibling-file + + * doc/emacs/files.texi (Visiting): Document it. + * lisp/files.el (file-expand-wildcards): Fix up the regexp expansion. + (find-sibling-rules, find-sibling-file): New user option and command. + (find-sibling-file--search): New helper function. + +2022-06-05 Po Lu <luangruo@yahoo.com> + + Fix file name encoding of Motif drop protocol file selections + + * lisp/select.el (xselect-convert-to-filename): + (xselect-convert-to-dt-netfile): Encode in the file name coding + system instead of `raw-text-unix'. + +2022-06-05 Lars Ingebrigtsen <larsi@gnus.org> + + Extend file-expand-wildcards to allow regexps + + * doc/lispref/files.texi (Contents of Directories): Document it. + * lisp/files.el (file-expand-wildcards): Extend to allow regexps. + + * lisp/emacs-lisp/shortdoc.el (file): Expand the + file-expand-wildcards example. + +2022-06-05 Eli Zaretskii <eliz@gnu.org> + + Update documentation of 'aset' and 'store-substring' + + * doc/lispref/strings.texi (Modifying Strings): Adjust to + implementation changes: it is possible for the modified string to + have fewer or more bytes than the original. Add recommendations + regarding unibyte vs multibyte strings and characters. (Bug#55801) + +2022-06-05 Po Lu <luangruo@yahoo.com> + + Fix drag-and-drop of files with multibyte filenames + + * lisp/dired.el (dired-mouse-drag): Fix re-signalling of errors. + + * lisp/select.el (xselect-convert-to-filename): + (xselect-convert-to-text-uri-list): + (xselect-convert-to-dt-netfile): Encode in raw-text-unix. + + * src/xgselect.c (suppress_xg_select, release_xg_select): New + functions. + (xg_select): Respect xg_select suppression by delegating to + pselect. + * src/xgselect.h: Update prototypes. + + * src/xterm.c (x_dnd_begin_drag_and_drop): Suppress xg_select + during the nested event loop. + (handle_one_xevent): Handle cases where hold_quit is nil inside + a selection event handler during DND. + +2022-06-05 Eli Zaretskii <eliz@gnu.org> + + Fix sorting in ls-lisp.el under -v + + * lisp/ls-lisp.el (ls-lisp-version-lessp): Handle correctly the + case where strings begin with numerical parts. More faithful + implementation of the 'strverscmp' spec for fractional parts. + (Bug#55787) + + * test/lisp/ls-lisp-tests.el (ls-lisp-test-bug55787): New test. + +2022-06-05 Po Lu <luangruo@yahoo.com> + + Fix bug#55779 + + * src/xterm.c (x_update_opaque_region): Don't make GTK reset the + opaque region if F is a child frame. + +2022-06-05 Po Lu <luangruo@yahoo.com> + + Better respect window manager stacking order + + * src/xfns.c (x_frame_list_z_order, Fx_frame_list_z_order): Use + _NET_CLIENT_LIST_STACKING if supported. + * src/xterm.c (x_wm_supports_1): New function. Accept dpyinfo + instead of frame. + (x_wm_supports): Use that function instead. + + * src/xterm.h: Update prototypes. + +2022-06-05 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 1b8719835a Update to Org 9.5.4 + 92c5faafd7 Clarify documentation of 'string-to-unibyte' + 2848512654 ; * lisp/files.el (find-file): Avoid too short lines in do... + 672f9f787f Improve keystrokes in doc strings in some find-file functions + ef5651cc77 Fix segfaults when starting on 80x26 TTY frames + bfa647972f ; Fix doc string of 'delete-selection-repeat-replace-region' + a95d46e00f Make it explicit that a couple of _s in lispref are unders... + 5c74c25123 Remove from FAQ the MS-Windows info about BDF fonts + edb48646f2 Fix Display Property manual example + +2022-06-04 Po Lu <luangruo@yahoo.com> + + Fix positioning of non-system tooltips on GTK builds + + * src/xfns.c (compute_tip_xy): Fix coding style. + * src/xterm.c (handle_one_xevent): Set tooltip size immediately + on GTK builds. + +2022-06-04 Po Lu <luangruo@yahoo.com> + + Adjust last change for GTK+ 2.x + + * src/xterm.c (x_tooltip_window_to_frame): Fix build on GTK 2.x. + +2022-06-04 Po Lu <luangruo@yahoo.com> + + Make `mouse-position' work correctly with GTK tooltips + + * src/xterm.c (x_tooltip_window_to_frame): New parameter + `unrelated_tooltip_p'. + (XTmouse_position): Pass that, and if it turns out to be true, + look beneath the tooltip window. + +2022-06-04 Kyle Meyer <kyle@kyleam.com> + + Update to Org 9.5.4 + +2022-06-04 Lars Ingebrigtsen <larsi@gnus.org> + + Make loaddefs-generate--parse-file more robust + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--parse-file): + Ensure that we don't have an autoload cookie on the first column + inside a string. + +2022-06-04 Lars Ingebrigtsen <larsi@gnus.org> + + Make skkdic-convert replacements literal + + * lisp/international/ja-dic-cnv.el (skkdic-convert): The + replacement is literal and fixed-case. (The build on EMBA is + failing mysteriously with "Match data clobbered by buffer + modification hooks", so this is mainly a stab in the dark at + fixing that, but it's also generally correct.) + +2022-06-04 Lars Ingebrigtsen <larsi@gnus.org> + + Make vc-mtn obsolete + + * lisp/obsolete/vc-mtn.el: Make obsolete (bug#6513). + +2022-06-04 Lars Ingebrigtsen <larsi@gnus.org> + + Fix failing shortdoc test + + * lisp/emacs-lisp/shortdoc.el (string): Each example section is + supposed to contain only examples of using the function in + question (as policed by the FAILED shortdoc-examples test). + +2022-06-04 Po Lu <luangruo@yahoo.com> + + Fix error during DND from both Emacs and GTK at the same time + + * src/xterm.c (x_dnd_get_target_window): Make mapping and + releasing the COW atomic. This is to fix a rare bug when + MPX (multi-pointer X) is in use and the user tries to drag + from both GTK and Emacs at the same time using multiple seats. + +2022-06-04 Lars Ingebrigtsen <larsi@gnus.org> + + Further raise-sexp doc string improvement + + * lisp/emacs-lisp/lisp.el (raise-sexp): Fix the key binding syntax + in the doc string. + +2022-06-04 Lars Ingebrigtsen <larsi@gnus.org> + + Improve the raise-sexp doc string + + * lisp/emacs-lisp/lisp.el (raise-sexp): Try to explain what the + command does (bug#55788). + +2022-06-04 Lars Ingebrigtsen <larsi@gnus.org> + + Fix warnings introduced by the lisp-mode-autoload-regexp change + + * lisp/emacs-lisp/lisp-mode.el (lisp-fdefs): The package name bit + in ###;;;foo-autoload may be missing, so do a lax match (bug#55784). + +2022-06-04 Lars Ingebrigtsen <larsi@gnus.org> + + Add a face to \\= doc string escapes + + * lisp/emacs-lisp/lisp-mode.el (lisp-fdefs): Add a face to \\= doc + string escapes (bug#55783). + +2022-06-04 Lars Ingebrigtsen <larsi@gnus.org> + + Further notes about quotation marks in the manual + + * doc/lispref/tips.texi (Documentation Tips): Note that we + previously recommended using single quotation marks (bug#55780). + +2022-06-04 Po Lu <luangruo@yahoo.com> + + Allow keyboard modifiers to control the action taken during dired DND + + * doc/emacs/dired.texi (Misc Dired Features): Update + documentation. + * lisp/dired.el (dired-mouse-drag-files): Update defcustom for + new values. + (dired-mouse-drag): Recognize more values of + `dired-mouse-drag-files' and keyboard modifiers. + (dired-mouse-drag-files-map): Add C-down-mouse-1, M-down-mouse-1 + and S-down-mouse-1. + +2022-06-04 Michael Albinus <michael.albinus@gmx.de> + + * lisp/emacs-lisp/shortdoc.el (string): Add `string-collate-lessp'. + +2022-06-04 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add support for the Grantha script (bug#55782) + + * lisp/language/indian.el ("Grantha"): New language environment. + Add composition rules for Grantha. Add sample text and input method. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Grantha. + * lisp/leim/quail/indian.el ("grantha"): New input method. + + * etc/HELLO: Add two Grantha greetings. + * etc/NEWS: Announce the new language environment. + +2022-06-04 Po Lu <luangruo@yahoo.com> + + Fix file drag-and-drop on GNUstep + + * src/nsselect.m (ns_decode_data_to_pasteboard): Convert URL to + path names when we're using NSFilenamesPboardType. + * src/nsterm.m: ([EmacsView performDragOperation:]): Handle + cases where plist is a string. + +2022-06-04 Po Lu <luangruo@yahoo.com> + + Support dragging multiple files on NS + + This has to use a deprecated pasteboard type, since Emacs uses + the "old" (but not deprecated) dragImage: method for + drag-and-drop, which can't drop file URLs. + + * lisp/term/ns-win.el (x-begin-drag): Update accordingly. + * src/nsselect.m (ns_decode_data_to_pasteboard): + (Fns_begin_drag): Allow files to be a list of filenames as well. + +2022-06-04 Po Lu <luangruo@yahoo.com> + + Fix splurious drag-mouse-1 events after NS drag-and-drop + + * src/nsterm.m ([EmacsWindow beginDrag:...]): Clear + dpyinfo->grabbed. + +2022-06-04 Po Lu <luangruo@yahoo.com> + + Clear mouse face during drag-and-drop + + * src/xterm.c (handle_one_xevent): Clear mouse face during drag + and drop, since note_mouse_highlight isn't called. + +2022-06-04 Eli Zaretskii <eliz@gnu.org> + + Clarify documentation of 'string-to-unibyte' + + * doc/lispref/nonascii.texi (Converting Representations): Clarify + what 'string-to-unibyte' does. Reported by Richard Hansen + <rhansen@rhansen.org>. (Bug#55777) + +2022-06-04 Eli Zaretskii <eliz@gnu.org> + + Another attempt to void compiler warnings on macOS (bug#55595) + + * configure.ac (WERROR_CFLAGS): Use "-Wno-unknown-pragmas" with + Clang. + +2022-06-04 Po Lu <luangruo@yahoo.com> + + Improve doc of `mouse-drag-mode-line-buffer' + + * doc/emacs/frames.texi (Mouse Commands): Document + `mouse-drag-mode-line-buffer'. + * etc/NEWS: Explain where that option is supported. + * lisp/mouse.el (mouse-drag-mode-line-buffer): Likewise. + +2022-06-04 Po Lu <luangruo@yahoo.com> + + Make XTmouse_position faster during dragging with lots of frames + + * src/xterm.c (x_tooltip_window_to_frame): New function. + (XTmouse_position): Use that to find tooltip frames underneath + the pointer instead. + +2022-06-03 Po Lu <luangruo@yahoo.com> + + Fix leak of toplevel data + + * src/xterm.c (x_dnd_compute_toplevels): Make sure to free + `data'. + +2022-06-03 Po Lu <luangruo@yahoo.com> + + Fix leak of DND toplevels when return-frame is non-nil + + * src/xterm.c (x_dnd_free_toplevels): Don't leak DND toplevels + if returning a frame. + (x_dnd_begin_drag_and_drop): Make this function reentrant from + the IO error handler. + +2022-06-03 Dmitry Gutov <dgutov@yandex.ru> + + Post-review additions + + * lisp/progmodes/project.el (project-vc-include-untracked): + Add :version. + (project--vc-list-files): Use 'and' instead of 'when'. + +2022-06-03 Jan Synáček <jan.synacek@gmail.com> + + Add new user option project-vc-include-untracked + + * doc/emacs/maintaining.texi (Projects): Document it. + * lisp/progmodes/project.el (project--vc-list-files): Use it. + +2022-06-03 Dmitry Gutov <dgutov@yandex.ru> + + project-query-replace-regexp: Filter out non-regular files + + * lisp/progmodes/project.el (project-query-replace-regexp): + Filter out non-regular files (bug#55382). + +2022-06-03 Michael Albinus <michael.albinus@gmx.de> + + Fix Tramp test + + * test/lisp/net/tramp-tests.el (tramp-test31-signal-process): + Skip on MS Windows. + +2022-06-03 Michael Albinus <michael.albinus@gmx.de> + + Add remote file functions to shortdoc + + * lisp/net/tramp-integration.el (shortdoc-add-function) + (shortdoc--groups): Declare. + (shortdoc): Configure shortdoc.el to recognize file name functions + for remote access. + +2022-06-03 Po Lu <luangruo@yahoo.com> + + Fix dired drag and drop actions + + * lisp/dired.el (dired-mouse-drag): Make `link' values work + again. + +2022-06-03 Po Lu <luangruo@yahoo.com> + + Handle dragging multiple files on Haiku + + * lisp/term/haiku-win.el (haiku-dnd-selection-converters) + (haiku-dnd-convert-file-name, x-begin-drag): Handle vector + values of selection data. + +2022-06-03 Po Lu <luangruo@yahoo.com> + + Allow dragging multiple files from a Dired buffer + + * doc/lispref/frames.texi (Drag and Drop): Document new function + `dnd-begin-drag-files'. + * lisp/dired.el (dired-mouse-drag-files): Update doc string. + (dired-map-over-marks): Accept a new value of ARG `marked', + meaning to not fall back to the current file if no marks were + found. + (dired-mouse-drag): Handle marked files in an intuitive way. + + * lisp/dnd.el (dnd-last-dragged-remote-file): Allow list values + as well. + (dnd-remove-last-dragged-remote-file): Handle list values. + (dnd-begin-file-drag): Fix file name expansion. + (dnd-begin-drag-files): New function. + * lisp/select.el (xselect-convert-to-filename): Handle multiple + files + (a vector of file names):. + +2022-06-03 Lars Ingebrigtsen <larsi@gnus.org> + + Don't issue warnings for Unicode quotes for now + + * lisp/emacs-lisp/bytecomp.el (byte-compile-docstring-style-warn): + Remove warning for "Unicode quotes" for now (bug#55780). + +2022-06-03 Lars Ingebrigtsen <larsi@gnus.org> + + Revert the `...' documentation back to actual usage + + * doc/lispref/tips.texi (Documentation Tips): Document how `...' + is really used now (bug#55780). ‘...’ is not really used in the + Emacs sources. + +2022-06-03 Mattias Engdegård <mattiase@acm.org> + + Let ?\LF signal an error (bug#55738) + + As suggested by Stefan Monnier. + + * src/lread.c (read_escape): + Signal an error for ?\LF since it cannot reasonably be intended. + * test/src/lread-tests.el (lread-escaped-lf): Update test. + * etc/NEWS: Announce. + +2022-06-03 Mattias Engdegård <mattiase@acm.org> + + Fix wrong value in idlwave-comment-indent-char + + * lisp/progmodes/idlwave.el (idlwave-comment-indent-char): + Use a space since that is clearly what was meant. + ?\ at the end of a line (ie, ?\LF) never was well-defined and produced + -1 most of the time, but will soon raise an error (bug#55738). + This doesn't matter much because this variable is unused. + +2022-06-03 Po Lu <luangruo@yahoo.com> + + Add new user option `mouse-drag-mode-line-buffer' + + * etc/NEWS: Announce new option. Also add missing entries for + an earlier change. + * lisp/mouse.el (mouse-drag-mode-line-buffer): New user option. + (mouse-drag-mode-line): Implement that option. + +2022-06-03 Po Lu <luangruo@yahoo.com> + + Add easier-to-use interfaces for initiating drag-and-drop + + The previous interface required that users know intricacies of + the data types used to transfer data on each platform Emacs + supports. + + * doc/lispref/frames.texi (Drag and Drop): Document new + functions. + * lisp/dired.el (dired-last-dragged-remote-file) + (dired-remove-last-dragged-local-file): Delete functions. + (dired-mouse-drag): Use `dnd-begin-file-drag'. + * lisp/dnd.el (dnd-last-dragged-remote-file) + (dnd-remove-last-dragged-remote-file): New variables and + functions. + (dnd-begin-text-drag, dnd-begin-file-drag): New functions. + * src/xterm.c (x_dnd_begin_drag_and_drop): Add porting note. + +2022-06-02 Lars Ingebrigtsen <larsi@gnus.org> + + Add a new user option battery-update-functions + + * doc/emacs/display.texi (Optional Mode Line): Document it. + * lisp/battery.el (battery-update-functions): New user option + (bug#55770). + (battery-update): Use it. + +2022-06-02 Lars Ingebrigtsen <larsi@gnus.org> + + Remove window-max-characters-per-line + + * doc/lispref/windows.texi (Window Sizes): + * doc/lispref/display.texi (Size of Displayed Text): Remove + documentation. + * lisp/fringe.el (fringe-mode): Point to the right function. + + * lisp/window.el (window-char-pixel-width) + (window-char-pixel-height, window-max-characters-per-line): Remove + functions -- this was already added as window-max-chars-per-line. + + * src/window.c (Fwindow_body_width): Adjust doc string. + +2022-06-02 Po Lu <luangruo@yahoo.com> + + Fix GTK build + + * src/xterm.c (x_dnd_begin_drag_and_drop) [USE_GTK]: Adjust call + to x_dnd_free_toplevels as well. + +2022-06-02 Po Lu <luangruo@yahoo.com> + + Don't call XSelectInput on a dying display when canceling drag-and-drop + + * src/xterm.c (x_dnd_free_toplevels): New argument + `display_alive'. + (x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop) + (handle_one_xevent): Change calls to `x_dnd_free_toplevels'. + (x_connection_closed, x_delete_terminal): Set it to false. + +2022-06-02 Lars Ingebrigtsen <larsi@gnus.org> + + Make checkdoc-file-comments-engine match more ;;;### forms + + * lisp/emacs-lisp/checkdoc.el (checkdoc-file-comments-engine): Use + the more general lisp-mode-autoload-regexp instead of + generate-autoload-cookie (i.e., also match ;;;###tramp-autoload). + +2022-06-02 Lars Ingebrigtsen <larsi@gnus.org> + + Make `M-x grep' work better with "git grep" + + * lisp/progmodes/compile.el (compilation-start): Bind PAGER to "" + to avoid errors in output from "git grep" and similar commands + (bug#4359). + +2022-06-02 Mattias Engdegård <mattiase@acm.org> + + Make ?\LF generate 10, not -1 (bug#55738) + + The old -1 value was an artifact of the reader implementation. + + * src/lread.c (read_escape): Remove the `stringp` argument; assume + character literal syntax. Never return -1. + (read_string_literal): Handle string-specific escape semantics here + and simplify. + * test/src/lread-tests.el (lread-escaped-lf): New test. + +2022-06-02 Mattias Engdegård <mattiase@acm.org> + + * src/lread.c (skip_lazy_string): Fix uninitialized variable. + +2022-06-02 Stefan Kangas <stefan@marxist.se> + + * lisp/play/morse.el: Doc fixes. + +2022-06-02 Ikumi Keita <ikumi@ikumi.que.jp> (tiny change) + + Improve keystrokes in doc strings in some find-file functions + + * lisp/files.el (find-file): + (find-file-other-window): + (find-file-other-frame): Include the correct keymap so that + keystrokes are displayed better (bug#55761). + +2022-06-02 Po Lu <luangruo@yahoo.com> + + More gracefully handle errors during Motif drag window creation + + * src/xterm.c (xm_drag_window_error_handler): Store whether or + not an error happened. + (xm_get_drag_window): Handle errors during XCreateWindow and + XChangeProperty without leaking anything. + (x_error_handler): Fix coding style. + +2022-06-02 Lars Ingebrigtsen <larsi@gnus.org> + + Fix out-of-tree build problems with loaddefs.el + + * lisp/Makefile.in ($(lisp)/loaddefs.el): Use the new function. + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Pass in + whether to inhibit a partial build (to make the code more general). + (loaddefs-generate--emacs-batch): Add a new function specially for + the Emacs build that has the special rules needed. (This also + fixes out-of-tree builds.) + loaddefs-generate-batch can be used in general for packages etc. + (loaddefs-generate-batch): Remove the special code for Emacs builds. + +2022-06-02 Eli Zaretskii <eliz@gnu.org> + + Fix segfaults when starting on 80x26 TTY frames + + * src/dispnew.c (adjust_frame_glyphs_for_frame_redisplay): Make + sure we have valid frame glyph matrices for the interactive + session. (Bug#55760) + (adjust_frame_glyphs): Add assertions for when we fail to allocate + valid frame glyph matrices for a TTY frame. + +2022-06-02 Lars Ingebrigtsen <larsi@gnus.org> + + Reinstate the Qload file name handler + + * src/lread.c (Fload): Reinstate the Qload file name handler + (bug#12598). This makes loading non-ASCII elc.gz files work. + +2022-06-02 Frédéric Giquel <frederic.giquel@laposte.net> (tiny change) + + Use `read-process-output-max' when creating pipes on GNU/Linux + + * src/process.c (syms_of_process): Note max size. + (create_process): Set the pipe size from `read-process-output-max' + (bug#55737). + +2022-06-02 yilkalargaw <yilkalargawworkneh@gmail.com> + + Fix usage of absolute :height in manoj-dark-theme + + * etc/themes/manoj-dark-theme.el (manoj-dark): Avoid using + absolute heights (bug#55759). + +2022-06-02 Lars Ingebrigtsen <larsi@gnus.org> + + Speed up loaddefs-generate on slow disks + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Make file + update comparisons faster. + +2022-06-02 Po Lu <luangruo@yahoo.com> + + Fix rare crash when async input happens while creating xm drag window + + * src/xterm.c (xm_get_drag_window): Work around XCloseDisplay + freezing upon being interrupted by a signal. + +2022-06-02 Po Lu <luangruo@yahoo.com> + + Fix macOS build + + * src/nsterm.m (ns_mouse_position): Fix typos. + +2022-06-02 Po Lu <luangruo@yahoo.com> + + Fix potential NULL pointer dereference on NS + + * src/nsterm.m (ns_mouse_position): Don't test f's tooltip-ness + if it's NULL. + +2022-06-02 Po Lu <luangruo@yahoo.com> + + Fix flickering tooltips with mouse DND without interprogram drag + + * src/haikuterm.c (haiku_read_socket): + * src/nsterm.m (ns_mouse_position): + * src/xterm.c (XTmouse_position, handle_one_xevent): Apply + special tooltip treatment to `dropping' as well as + `drag-source'. + +2022-06-02 Po Lu <luangruo@yahoo.com> + + Fix tooltip frames leaking into mouse position on NS + + * src/nsterm.m (ns_mouse_position): Avoid tooltip frames and + look underneath them when `drag-source'. + + ([EmacsView mouseDown:]): + ([EmacsView mouseMoved:]): Ignore events from tip frames. + +2022-06-02 Po Lu <luangruo@yahoo.com> + + Handle dropping text/uri-list on Haiku + + * lisp/term/haiku-win.el (window-system-initialization): Remove + extra whitespace. + (haiku-drag-and-drop): Handle "text/uri-list". + +2022-06-02 Po Lu <luangruo@yahoo.com> + + Fix help-echo tooltips interfering with mouse drag-and-drop + + * lisp/mouse.el (mouse-drag-and-drop-region): Disable + tooltip-mode while mouse drag-and-drop is in progress. Also + restore state correctly in some more cases. + +2022-06-02 Po Lu <luangruo@yahoo.com> + + Fix flicker during mouse DND on Haiku as well + + * src/haikuterm.c (haiku_read_socket): Don't clear tooltips on + crossing if track-mouse is drag-source and the display is + grabbed. + +2022-06-02 Po Lu <luangruo@yahoo.com> + + Fix typos in last change + + * src/xterm.c (handle_one_xevent): Fix typos. + +2022-06-02 Po Lu <luangruo@yahoo.com> + + Fix tooltips flickering on X during `mouse-drag-and-drop-region' + + * src/xterm.c (x_get_window_below): New function. + (XTmouse_position): If track-mouse is drag-source and a window + is a tooltip, look below it. + (handle_one_xevent): Don't generate a nil help-echo event on + LeaveNotify if the display is grabbed and track-mouse is + drag-source. + +2022-06-01 Richard Hansen <rhansen@rhansen.org> + + bindat (strz): Fix wrong-type-argument error when unpacking + + * lisp/emacs-lisp/bindat.el (strz): Fix (wrong-type-argument + number-or-marker-p nil) error when unpacking a strz with + unspecified (variable) length. + * test/lisp/emacs-lisp/bindat-tests.el (strz): Mark test as passing. + +2022-06-01 Richard Hansen <rhansen@rhansen.org> + + bindat (strz): Fix off-by-one bug in computed length + + * lisp/emacs-lisp/bindat.el (strz): Include null terminator when + computing packed string length. + * test/lisp/emacs-lisp/bindat-tests.el (strz): Mark tests as passing. + +2022-06-01 Po Lu <luangruo@yahoo.com> + + Clean up Motif drag-and-drop code + + * src/xterm.c (enum xm_drag_operation, enum xm_drag_action) + (enum xm_drag_reason, enum xm_drag_originator, enum xm_drag_style) + (enum xm_drop_site_status): Turn macros into enums. + (x_next_event_from_any_display): Fix initial value of rc. + +2022-06-01 Po Lu <luangruo@yahoo.com> + + Fix decoding of XdndStatus rectangles on 64-bit systems + + * src/xterm.c (handle_one_xevent): Make data.l[2] and data.l[3] + unsigned. + +2022-06-01 Mattias Engdegård <mattiase@acm.org> + + Revert "Fix reader char escape bugs (bug#55738)" + + This reverts commit c50718dcfa54293b695f8a3fa5cd4d77848ee084. + + It may have caused bootstrap problems. Sorry about that. + +2022-06-01 Juri Linkov <juri@linkov.net> + + * lisp/simple.el (completion-setup-function): Use file-name-directory. + + Replace file-name-as-directory with file-name-directory, + because file-name-as-directory returns a nonexistent dir + e.g. "/dir/prefix/" when completing "/dir/prefix". + OTOH, file-name-directory returns "/dir/" in such cases (bug#55743). + +2022-06-01 Eli Zaretskii <eliz@gnu.org> + + Avoid segfaults on MS-Windows when invoked with --version + + * src/emacs.c (main): If invoked with --version, call + 'init_bignum' before calling 'format-time-string', as that is + needed for safe manipulation of bignums in timefns.c. + +2022-06-01 Mattias Engdegård <mattiase@acm.org> + + Fix reader char escape bugs (bug#55738) + + Make the character literal ?\LF (linefeed) generate 10, not -1. + + Ensure that Control escape sequences in character literals are + idempotent: ?\C-\C-a and ?\^\^a mean the same thing as ?\C-a and ?\^a, + generating the control character with value 1. "\C-\C-a" no longer + signals an error. + + * src/lread.c (read_escape): Make nonrecursive and only combine + the base char with modifiers at the end, creating control chars + if applicable. Remove the `stringp` argument; assume character + literal syntax. Never return -1. + (read_string_literal): Handle string-specific escape semantics here + and simplify. + * test/src/lread-tests.el (lread-misc-2): New test. + +2022-06-01 Michael Albinus <michael.albinus@gmx.de> + + Make files-tests.el more robust + + * test/lisp/files-tests.el (files-tests--with-temp-non-special) + (files-tests--with-temp-non-special-and-file-name-handler): Make + it more robust wrt parallel test jobs. (Bug#55706) + +2022-06-01 Visuwesh <visuweshm@gmail.com> + + delete-selection-mode: Add user option to delete temporary regions only + + * lisp/delsel.el (delete-selection-temporary-region): Add new + user option. + (delete-selection-pre-hook): Respect it. + * doc/emacs/mark.texi (Using Region): Document the new user option. + * etc/NEWS: Announce the new user option. (bug#55692) + +2022-06-01 Lars Ingebrigtsen <larsi@gnus.org> + + Make it explicit that a couple of _s in lispref are underscores + + * doc/lispref/strings.texi (Custom Format Strings): + * doc/lispref/control.texi (pcase Macro): Make it explicit that + it's an underscore (bug#55742). + +2022-06-01 Lars Ingebrigtsen <larsi@gnus.org> + + Add a comment to lisp/Makefile.in + + * lisp/Makefile.in: Add FIXME comment. + +2022-06-01 Manuel Giraud <manuel@ledu-giraud.fr> + + Place bookmarks without last-modified at the end + + * lisp/bookmark.el (bookmark-sort-flag): Typo fix in doc string. + (bookmark-maybe-sort-alist): Fix sorting when there's no last + modified. + +2022-06-01 Po Lu <luangruo@yahoo.com> + + Improve documentation of Lisp-level drag-and-drop features + + * doc/lispref/frames.texi (Drag and Drop): Don't conflate X + Windows specific implementation details with general + drag-and-drop functionality, document what `dnd-protocol-alist' + actually means, and improve documentation on DND data types. + +2022-06-01 Stefan Kangas <stefan@marxist.se> + + Make XEmacs compat code in gamegrid.el obsolete + + * lisp/play/gamegrid.el (gamegrid-make-glyph): Warn on using obsolete + XEmacs style glyph. (This is currently unused in the Emacs tree.) + (gamegrid-make-image-from-vector): Make obsolete. + +2022-06-01 Lars Ingebrigtsen <larsi@gnus.org> + + Ensure that loaddefs-gen.elc is build before loaddefs.el is generated + + * lisp/Makefile.in ($(lisp)/loaddefs.el): Make loaddefs.el depend + on loaddefs-gen.elc to ensure that it's built. + +2022-06-01 Po Lu <luangruo@yahoo.com> + + Minor fixes to x_next_event_from_any_display + + * src/xterm.c (x_next_event_from_any_display): Don't call + XPending unless there is input to be read on the connection, and + don't call ConnectionNumber twice. + +2022-06-01 Lars Ingebrigtsen <larsi@gnus.org> + + Fix up the loaddefs-gen updating logic + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Only do the + updating logic if we're really updating. + +2022-06-01 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "Fix loaddefs generation" + + This reverts commit 28358db93007456a1e0a6d9118823d4ddea4ba39. + + This has been fixed in a different way. + +2022-06-01 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add support for the Hanifi Rohingya script (bug#55745) + + * lisp/language/misc-lang.el ("Hanifi Rohingya"): + New language environment. + Add composition rules for Hanifi Rohingya. + Add sample text and input method. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Hanifi Rohingya. + * lisp/leim/quail/misc-lang.el ("hanifi-rohingya"): + New input method. + + * etc/HELLO: Add a Hanifi Rohingya greeting. + * etc/NEWS: Announce the new language environment. + +2022-06-01 Lars Ingebrigtsen <larsi@gnus.org> + + Start the org -> texi conversion while doing byte compilation + + * lisp/Makefile.in (MAIN_FIRST): Compile stuff needed for org -> + texi generation. + (all): Add org-manuals. + (org-manuals): Start org -> texi conversion while we're doing byte + compilation to make things more parallel. This shaves off about + ten seconds of a "make -j8" build. + +2022-06-01 Protesilaos Stavrou <info@protesilaos.com> + + Update modus-themes to their latest version + + * admin/MAINTAINERS: Update link to the Git repository of the + modus-themes; point to the new mailing list; include command for + sending a bug report. + + * doc/misc/modus-themes.org (Install from the archives): Minor + rewording. + (Dealing with byte compilation errors): Clarify that occasional bugs + are not always a fault of the themes. + (Custom hl-todo colors): Add note about package.:(Full support for + packages or face groups, Indirectly covered packages): Update lists of + supported packages. + (Note on avy hints): Remove obsolete node. + (Note on git-gutter in Doom Emacs): Note problem with custom bitmaps, + which is not the fault of the themes. + (Note on display-fill-column-indicator-mode): Show how to use a + thicker indicator.:(Why are colors mostly variants of blue, magenta, + cyan?): Minor rewording. + (Sources of the themes): Update official theme sources. + (Issues you can help with) + (Patches require copyright assignment to the FSF): Update the + information on potential contributions. + (Acknowledgements): Update list of contributors in the form of code or + ideas/feedback. + (Meta, Other notes about the project): Rename section and include more + links to development-related blog posts. + + * etc/themes/modus-themes.el (seq): Stop requiring 'seq'. + (modus-themes--version): Use internal variable for the themes' + version. + (modus-themes-operandi-colors, modus-themes-vivendi-colors): Make + minor tweaks to the color palettes. + (modus-themes-variable-pitch): Remove obsolete symbol from doc string. + (modus-themes--alist-or-seq): Update function to not rely on 'seq'. + (modus-themes--current-theme): Make stylistic tweaks. + (modus-themes--markup): Use correct order of inheritance for faces. + (modus-themes--paren, modus-themes--heading) + (modus-themes--agenda-structure, modus-themes--agenda-date) + (modus-themes--agenda-habit, modus-themes--mode-line-attrs) + (modus-themes--mode-line-padded-box, modus-themes--button): Update to + use 'modus-themes--property-lookup' instead of the previous function + that depended on 'seq'. + (modus-themes--diff): Make it combine as expected with the user option + 'modus-themes-deuteranopia'. + (modus-themes-faces): Update list of faces. + (modus-themes-custom-variables): Expand support for face rotation in + 'highlight-changes'. + + * etc/themes/modus-operandi-theme.el: + * etc/themes/modus-vivendi-theme.el: Bump version number to 2.4.1. + + Release notes: <https://protesilaos.com/codelog/2022-06-01-modus-themes-2-4-0/>. + +2022-06-01 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak how loaddefs-gen decides whether to do a full update + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Do a + complete build more often to avoid problems with going from old + loaddefs.el files to new ones. + +2022-06-01 Po Lu <luangruo@yahoo.com> + + Fix Motif DND return value upon transfer failure + + * src/xterm.c (handle_one_xevent): Make XmTRANSFER_FAILURE clear + DND action. + +2022-06-01 Po Lu <luangruo@yahoo.com> + + Fix loaddefs generation + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Prevent + one kind of string match error. + +2022-06-01 Po Lu <luangruo@yahoo.com> + + Adjust last change to Haiku as well + + * lisp/term/haiku-win.el (haiku-dnd-selection-converters): Add + text/uri-list. + (haiku-dnd-convert-text-uri-list): New function. + (x-begin-drag): Handle alternative data specified in selection + local values. + +2022-06-01 Po Lu <luangruo@yahoo.com> + + Clean up text/uri-list mess inside the Dired drag-and-drop code + + * doc/lispref/frames.texi (Window System Selections): + * etc/NEWS: Document new changes to `gui-get-selection'. + * lisp/dired.el (dired-mouse-drag): Specify text/uri-list value + explicitly. + * lisp/select.el (gui-set-selection): Update doc string. + (xselect-convert-to-text-uri-list): Update to handle either a + single URL (as a string) or a vector of URLs, instead of file + names. + (xselect-uri-list-available-p): Likewise. + * src/xselect.c (x_get_local_selection): Look in tem's text + properties (if it is a string) for a local value before using + tem itself. + +2022-06-01 Po Lu <luangruo@yahoo.com> + + Fix hangs when explicitly moving frames with input blocked + + * src/xterm.c (x_check_expected_move): Fix indent. + (x_sync_with_move): Use pselect to wait the 0.5 seconds instead + of wait_reading_process_output if input is blocked. + +2022-06-01 Po Lu <luangruo@yahoo.com> + + Implement `allow-same-frame' for NS drag-and-drop + + * lisp/term/ns-win.el (x-begin-drag): Implement + `allow-same-frame'. + * src/nsselect.m (Fns_begin_drag): New parameter + `allow-same-frame'. + * src/nsterm.h (@interface EmacsWindow): Update prototypes. + * src/nsterm.m ([EmacsView draggingEntered:]): + ([EmacsView prepareForDragOperation:]): + ([EmacsView performDragOperation:]): Respect new parameter. + ([EmacsWindow beginDrag:forPasteboard:withMode:returnFrameTo:]): + Likewise. + +2022-06-01 Po Lu <luangruo@yahoo.com> + + Fix creation of menu items without help text on Haiku + + * src/haiku_support.cc (EmacsMenuItem): Don't mistakenly assume + help is non-NULL. + +2022-06-01 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak MAIN_FIRST/ja-dic compilation + + * lisp/Makefile.in (MAIN_FIRST): ja-dic-utl isn't used in the + conversion process, to don't compile it early. + +2022-06-01 Po Lu <luangruo@yahoo.com> + + Fix pselect usage mistakes + + * src/xterm.c (x_next_event_from_any_display): + (x_wait_for_cell_change): Fix calls to pselect and tests against + return value. + +2022-06-01 Lars Ingebrigtsen <larsi@gnus.org> + + Don't do OKURI-NASI until the conversion files have been compiled + + * lisp/Makefile.in (generate-ja-dic): Byte-compile the ja-dic.el + file, too. + +2022-06-01 Lars Ingebrigtsen <larsi@gnus.org> + + Compile ja-dic files to speed OKURI-NASI up + + * lisp/Makefile.in (MAIN_FIRST): Also compile ja-dic utils to + speed generation up. + +2022-06-01 Stefan Kangas <stefan@marxist.se> + + Update publicsuffix.txt from upstream + + * etc/publicsuffix.txt: Update from + https://publicsuffix.org/list/public_suffix_list.dat + dated 2022-05-18 19:45:52 UTC. + +2022-05-31 Lars Ingebrigtsen <larsi@gnus.org> + + Ensure byte compilation of the ja-dic.el file + + * lisp/Makefile.in (generate-ja-dic): Byte-compile the ja-dic.el + file, too. + +2022-05-31 Lars Ingebrigtsen <larsi@gnus.org> + + Reshuffle the generation of the OKURO-NASI entries to speed up build + + * leim/Makefile.in (all): Remove the ja-dic target from all -- we + don't need this file generated before we generate the .elc files. + (generate-ja-dic): Add new target. + + * lisp/Makefile.in (.PHONY, generate-ja-dic): Add new target. + (all): Make all depend on the new generate-ja-dic target so that + the OKURO-NASI entries are computed while the .elc files are + compiled. On a AMD Ryzen 9 5950X 16-Core Processor this brings + compilation time on a "make -j32 bootstrap" down from 1m52s to 1m34s. + +2022-05-31 Po Lu <luangruo@yahoo.com> + + Fix the GTK build + + * src/xterm.c (x_wait_for_cell_change): Don't initialize rfds + on GTK. + +2022-05-31 Po Lu <luangruo@yahoo.com> + + Improve x_wait_for_cell_change + + * src/xterm.c (x_wait_for_cell_change): Keep processing events + while still XPending. + +2022-05-31 Lars Ingebrigtsen <larsi@gnus.org> + + Note changes in ;;;### parsing + +2022-05-31 Lars Ingebrigtsen <larsi@gnus.org> + + Fix the loaddefs updating logic + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Fix the + logic of updating -- we update per loaddefs file. + +2022-05-31 Lars Ingebrigtsen <larsi@gnus.org> + + Fix yank-in-context--transform after recent reversion + + * lisp/simple.el (yank-in-context--transform): Fix call to + comment-region-default-1 after recent reverted patch. + +2022-05-31 Manuel Giraud <manuel@ledu-giraud.fr> + + Add a last-modified field when a bookmark is set + + * test/lisp/bookmark-tests.el (bookmark-tests-make-record) + (bookmark-tests-make-record-list, bookmark-tests-set): fix tests + to not consider last-modified in bookmark equality. + * lisp/bookmark.el (bookmark-make-record-default): add a + last-modified field. + (bookmark-sort-flag): add the 'last-modified choice. + (bookmark-get-last-modified): new function to get last-modified + bookmark field. + (bookmark-maybe-sort-alist): sort in last-modified first order. + (bookmark-completing-read): use `bookmark-maybe-sort-alist'. + +2022-05-31 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "Allow commenting out white space lines in latex-mode" + + This reverts commit 0870ebb3cbfcb097d85eea5eacaf992dd88ed204. + + This was the wrong way to try to fix this -- see bug#55716. + +2022-05-31 Lars Ingebrigtsen <larsi@gnus.org> + + Make partial loaddefs updates work again + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Only update + the loaddefs section for the files that have changed. This makes + "git pull" (when few/no Lisp files have changed much faster). + +2022-05-31 Juri Linkov <juri@linkov.net> + + Fix handling of windows/buffers for non-nil completion-auto-select (bug#55712) + + * lisp/minibuffer.el (completion--in-region-1): When completion-auto-select + is `second-tab', call switch-to-completions outside of `with-current-buffer'. + For the case of completion-auto-select customized to t, + move switch-to-completions from completion-setup-function + where it was called inside of with-current-buffer-window. + + * lisp/simple.el (completion-setup-function): Move switch-to-completions + for completion-auto-select=t to completion--in-region-1 where it's + handled together with the case of `second-tab'. + (next-completion): Add check for the minibuffer to support in-buffer + inline completions. + +2022-05-31 Eli Zaretskii <eliz@gnu.org> + + Remove unused w32-* variables + + * src/w32fns.c (syms_of_w32fns) <w32-bdf-filename-alist> + <w32-strict-fontnames>: Remove unused variables. + +2022-05-31 Eli Zaretskii <eliz@gnu.org> + + Remove from FAQ the MS-Windows info about BDF fonts + + * doc/misc/efaq.texi (How to add fonts): Remove the MS-Windows + specific steps, as BDF fonts are no longer supported on + MS-Windows. (Bug#55740) + +2022-05-31 Lars Ingebrigtsen <larsi@gnus.org> + + Speed up generation of loaddefs files + + * doc/lispref/loading.texi (Autoload, Autoload by Prefix): Refer + to loaddefs-generate instead of update-file-autoloads. + + * lisp/Makefile.in (LOADDEFS): Remove, because all the loaddefs + files are created in one go now. + (COMPILE_FIRST): Add loaddefs-gen/radix-tree, and drop autoload. + ($(lisp)/loaddefs.el): Use loaddefs-gen. + (MH_E_DIR, $(TRAMP_DIR)/tramp-loaddefs.el) + ($(MH_E_DIR)/mh-loaddefs.el, $(CAL_DIR)/cal-loaddefs.el) + ($(CAL_DIR)/diary-loaddefs.el, $(CAL_DIR)/hol-loaddefs.el): Remove. + + * lisp/generic-x.el: Inhibit computing prefixes, because the + namespace here is all wonky. + + * lisp/w32-fns.el (w32-batch-update-autoloads): Removed -- unused + function. + + * lisp/calendar/holidays.el ("holiday-loaddefs"): Renamed from + hol-loaddefs to have a more regular name. + + * lisp/cedet/ede/proj-elisp.el (ede-emacs-cedet-autogen-compiler): + Refer to loaddefs-gen instead of autoload. + + * lisp/emacs-lisp/autoload.el (make-autoload, autoload-rubric) + (autoload-insert-section-header): Made into aliases of + loaddefs-gen functions. + (autoload--make-defs-autoload): Ditto. + (autoload-ignored-definitions, autoload-compute-prefixes): Moved + to loaddefs-gen. + + * lisp/emacs-lisp/lisp-mode.el (lisp-mode-autoload-regexp): New + constant. + (lisp-fdefs, lisp-mode-variables, lisp-outline-level): Use it to + recognize all ;;;###autoload forms. + + * lisp/emacs-lisp/loaddefs-gen.el: New file. + + * lisp/emacs-lisp/package.el: Use loaddefs-generate instead of + make-directory-autoloads. + + * test/lisp/vc/vc-bzr-tests.el (vc-bzr-test-faulty-bzr-autoloads): + Use loaddefs instead of autoloads. + +2022-05-31 Po Lu <luangruo@yahoo.com> + + Convert FILE_NAME to refs on Haiku instead of text/uri-list + + * lisp/term/haiku-win.el (haiku-dnd-selection-converters): Use + more appropriate target for file names. + (haiku-dnd-convert-uri-list): Delete function. + (haiku-dnd-convert-file-name): New function. Also handle remote + file names. + +2022-05-31 Po Lu <luangruo@yahoo.com> + + Add missing part of recent changes to NS DND support + + * lisp/term/ns-win.el (x-begin-drag): Implement `return-frame' + argument. + +2022-05-31 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add support for the Makasar and Lontara scripts (bug#55734) + + * lisp/language/indonesian.el ("Makasar") ("Buginese"): + New language environment. Add composition rules for Makasar + and Lontara. Add sample texts and input methods. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Makasar and Buginese. + * lisp/leim/quail/indonesian.el ("makasar") ("lontara"): + New input methods. + + * etc/HELLO: Add Makasar and Buginese greetings. + * etc/NEWS: Announce the new language environments. + +2022-05-31 Po Lu <luangruo@yahoo.com> + + Slightly optimize x_check_errors as well + + * src/xterm.c (x_check_errors): Don't sync if no requests were + made since the error trap was installed. + +2022-05-31 Stefan Kangas <stefan@marxist.se> + + * lisp/play/handwrite.el: Minor doc fixes. + +2022-05-31 Antonio Ruiz <antonioruiz.math@gmail.com> (tiny change) + + Make handwrite.el printing use more of the ps-print setup + + * lisp/play/handwrite.el (handwrite): Allow ps-lpr-printer to be + computed at runtime (bug#55733). + +2022-05-31 Ikumi Keita <ikumi@ikumi.que.jp> (tiny change) + + Fix Display Property manual example + + * doc/lispref/display.texi (Display Property): Fix syntax of + example (bug#55736). + +2022-05-31 Po Lu <luangruo@yahoo.com> + + Fix replying to _NET_WM_PING during drag-and-drop + + * src/xterm.c (handle_one_xevent): Test client window against + root window instead of using nonstandard event mask. + +2022-05-31 Po Lu <luangruo@yahoo.com> + + Implement `return-frame' for DND on NS + + * src/nsselect.m (Fns_begin_drag): New argument `return-frame'. + (syms_of_nsselect): New defsym. + * src/nsterm.h (EmacsWindow): New fields. + * src/nsterm.m (ns_read_socket): Split parts off to + ns_read_socket_1. + (ns_read_socket_1): New function. + (ns_flush_display): Use that function instead. + + ([EmacsWindow beginDrag:forPasteboard:]): Update for + return-frame. + +2022-05-31 Po Lu <luangruo@yahoo.com> + + Fix autorelease pool "straddling" during DND on NS + + * src/nsterm.m (ns_mouse_position): Implement `drag-source' + on NS. + ([EmacsView draggingUpdated:]): Add autorelease pool around + callbacks. + ([EmacsWindow beginDrag:forPasteboard:]): Block input around + dragImage. + +2022-05-31 Paul Eggert <eggert@cs.ucla.edu> + + Pacify GCC 12 in x_get_current_wm_state + + * src/xterm.c (x_get_current_wm_state): When lint checking, + initialize reply_data to a non-null dummy value instead of to a + null one. This pacifies GCC 12 -Wanalyzer-null-dereference. + +2022-05-31 Paul Eggert <eggert@cs.ucla.edu> + + Pacify GCC 12 in dump_queue_enqueue + + * src/pdumper.c (dump_queue_enqueue): Use BASE_EQ, not EQ. + This pacifies GCC 12 -Wanalyzer-null-dereference. + +2022-05-31 Paul Eggert <eggert@cs.ucla.edu> + + Be more robust if doc file is corrupted + + * src/doc.c (Fsnarf_documentation): Don’t dump core on a corrupted + doc file. Problem found by GCC 12 -Wanalyzer-null-argument. + +2022-05-31 Paul Eggert <eggert@cs.ucla.edu> + + Pacify GCC 12 in Fmove_overlay + + * src/buffer.c (Fmove_overlay): Use BASE_EQ, not EQ. + This pacifies GCC 12 -Wanalyzer-null-dereference. + +2022-05-31 Paul Eggert <eggert@cs.ucla.edu> + + Pacify GCC 12 in Fx_show_tip + + * src/xfns.c (Fx_show_tip): Use BASE_EQ, not EQ. + This pacifies GCC 12 -Wanalyzer-null-dereference. + +2022-05-31 Paul Eggert <eggert@cs.ucla.edu> + + Pacify GCC 12 in xrdb.c + + * src/xrdb.c (x_get_resource): Simply assign the return value. + This pacifies GCC 12 -Wanalyzer-use-of-uninitialized-value. + +2022-05-31 Paul Eggert <eggert@cs.ucla.edu> + + Pacify GCC 12 false positive in ccl.c + + * src/ccl.c: Suppress -Wanalyzer-use-of-uninitialized-value + in GCC 12 or later. + +2022-05-31 Paul Eggert <eggert@cs.ucla.edu> + + Simplify CHAR_TABLE_REF_ASCII + + * src/lisp.h (CHAR_TABLE_REF_ASCII): Refactor as a straightforward + for-loop. Redo an if-then-else to be an (!if)-else-then as this + is a bit cleaner, and it also works around GCC bug 105755. + +2022-05-31 Paul Eggert <eggert@cs.ucla.edu> + + Avoid undefined behavior in detect_coding routines + + * src/coding.c (detect_coding): Always initialize all + components of detect_info, so that detect_coding_utf_8 etc. + do not have undefined behavior when they read detect_info.checked. + This bug is not likely to cause problems on real systems. + Problem found by GCC 12 -fanalyzer. + (detect_coding_system): Use consistent style with detect_coding + initialization. + +2022-05-31 Paul Eggert <eggert@cs.ucla.edu> + + Pacify GCC 12 -fanalyzer in x_popup_menu_1 + + * src/menu.c (x_popup_menu_1): Rework to avoid unnecessary + initialization and test. This also pacifies GCC 12. + +2022-05-31 Paul Eggert <eggert@cs.ucla.edu> + + Pacify GCC 12 -Wanalyzer-use-of-uninitialized-value + + * lib-src/etags.c (readline_internal): Do not copy a pointer to + freed storage, as that has undefined behavior even if the pointer + is not dereferenced. + (relative_filename): Avoid a backward scan by remembering where + the last slash was. This is a bit faster, and pacifies a GCC + false alarm. + +2022-05-31 Po Lu <luangruo@yahoo.com> + + Fix crashes displaying menu help text on NS + + * src/nsterm.m (ns_flush_display): Run event loop manually, + avoiding a double free of an autorelease pool. + +2022-05-31 Po Lu <luangruo@yahoo.com> + + Fix processing of DND events on GTK + + * src/xterm.c (x_dnd_begin_drag_and_drop): Clear `current_count' + and `current_hold_quit' after calling gtk_main_iteration. + +2022-05-30 Po Lu <luangruo@yahoo.com> + + Fix unused variables on GTK + + * src/xterm.c (x_wait_for_cell_change): Fix unused variables + on GTK builds. + +2022-05-30 Po Lu <luangruo@yahoo.com> + + Fix initialization of `hold_quit' during DND + + * src/xterm.c (x_dnd_begin_drag_and_drop): Use `EVENT_INIT' + instead of just setting type to NO_EVENT. + +2022-05-30 Po Lu <luangruo@yahoo.com> + + Prevent events from being lost waiting for selections on GTK + + * src/xterm.c (x_wait_for_cell_change): Use GTK to iterate the + main loop so events reach the toolkit. + +2022-05-30 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerated ldefs-boot.el + +2022-05-30 Eli Zaretskii <eliz@gnu.org> + + Fix 'debug-timer-check' on MS-Windows + + * src/w32proc.c (w32_raise): New function. + * src/atimer.c (raise) [WINDOWSNT]: Redirect to 'w32_raise'. + +2022-05-30 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/project.el: Improve file-reading history and default values. + + (project-find-file): Use relative file name of the + currently visited file as an alternative default value. + (project-find-file-in, project-find-dir): Use 'file-name-history' (bug#55267). + +2022-05-30 Mattias Engdegård <mattiase@acm.org> + + Nonrecursive Lisp reader (bug#55676) + + Restructure the reader to be nonrecursive so that it is not limited by + the C stack or crashes Emacs when reading deeply nested data. + This also improves performance. + A few minor bugs were fixed: + + - (a .{NBSP}b) where {NBSP} is a non-breaking space (U+00A0) is now + the dotted pair (a . b), not the 3-element list (a \. b), since U+00A0 + is treated as whitespace everywhere else. + - #_ with no symbol following is now equivalent to ## (empty interned + symbol), not #: (empty uninterned symbol). + + * src/alloc.c (garbage_collect): Call mark_lread. + * src/lread.c (readevalloop): Use read0 instead of read_list. + (stackbufsize): Increase to 1024, now that read0 isn't recursive. + (invalid_radix_integer): Buffer overflow check. + (read1, read_list, read_vector): Remove. + (read_char_literal, read_string_literal) + (hash_table_from_plist, record_from_list, vector_from_rev_list) + (bytecode_from_rev_list, char_table_from_rev_list) + (sub_char_table_from_rev_list, string_props_from_rev_list) + (read_bool_vector, skip_lazy_string, symbol_char_span) + (skip_space_and_comments) + (enum read_entry_type, struct read_stack_entry, struct read_stack) + (rdstack, mark_lread, read_stack_top, read_stack_pop) + (read_stack_empty_p, grow_read_stack, read_stack_push): New. + (read0): Rewrite to be nonrecursive. + * test/src/lread-tests.el (lread-deeply-nested, lread-misc): New tests. + +2022-05-30 Mattias Engdegård <mattiase@acm.org> + + Fix atimer setting and overdue expiration (bug#55628) + + * src/atimer.c (set_alarm): If the atimer has already expired, signal + it right away instead of postponing it further. Previously this could + occur repeatedly, blocking atimers indefinitely. + Also only use `alarm` as fallback if `setitimer` is unavailable, not + both at the same time (which makes no sense, and they both typically + use the same mechanism behind the curtains). + + * test/src/eval-tests.el (eval-tests/funcall-with-delayed-message): + New test, verifying proper functioning of funcall-with-delayed-message + which also serves as test for this bug (which also caused + debug-timer-check to fail, but that test is only run when Emacs is + built with enable-checking). + +2022-05-30 Eli Zaretskii <eliz@gnu.org> + + Add more subscript and superscript characters to "C-x 8" + + * lisp/international/iso-transl.el (iso-transl-char-map): Add more + numerical superscript and subscript characters. (Bug#55722) + +2022-05-30 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add support for the Rejang script (bug#55718) + + * lisp/language/indonesian.el ("Rejang"): New language environment. + Add composition rules for Rejang. Add sample text and input + method. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Rejang. + * lisp/leim/quail/indonesian.el ("rejang"): New input method. + + * etc/HELLO: Add a Rejang greeting. + * etc/NEWS: Announce the new language environment. + +2022-05-30 Po Lu <luangruo@yahoo.com> + + Get rid of `defvar-keymap' in flymake.el + + * lisp/progmodes/flymake.el (flymake-mode-map) + (flymake-diagnostics-buffer-mode-map): Stop using + `defvar-keymap', since Flymake only requires Emacs 26.1. + +2022-05-30 Po Lu <luangruo@yahoo.com> + + Fix `dnd-indicate-insertion-point' on Mac OS + + * lisp/term/ns-win.el (ns-handle-drag-motion): Remove debugging + code. + + * src/nsterm.m ([EmacsView draggingUpdated:]): Redisplay here + instead. + +2022-05-30 Po Lu <luangruo@yahoo.com> + + Update frame positions on Haiku after changing Z group + + * src/haiku_support.cc (EmacsScreenChangeMonitor): Fix comment. + * src/haikufns.c (haiku_set_z_group): Ask for a position update, + since changing the Z group might change the feel of the window. + +2022-05-30 Po Lu <luangruo@yahoo.com> + + Fix cursor flushing inside minibuffers on NS + + * src/nsterm.m (EV_TRAILER): Fix coding style. + (ns_flush_display): New function. + (ns_redisplay_interface): Register `flush_display'. + +2022-05-30 Po Lu <luangruo@yahoo.com> + + Fix hangs when x-get-selection is called inside a popup menu + + * src/xselect.c (wait_for_property_change): + (x_get_foreign_selection): Use `x_wait_for_cell_change' if input + is blocked. (bug#22214) + * src/xterm.c (x_wait_for_cell_change): New function. + * src/xterm.h: Update prototypes. + +2022-05-30 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 1b7b69e764 Some Tramp cleanup on MS Windows + +2022-05-29 Po Lu <luangruo@yahoo.com> + + Try to implement `dnd-indicate-insertion-point' on macOS + + * lisp/term/ns-win.el (ns-handle-drag-motion): New function. + * src/nsterm.m ([EmacsView draggingUpdated:]): Call that + function instead. + (syms_of_nsterm): Clean up old style defvars and add new + defvar for the DND drag function. + +2022-05-29 Po Lu <luangruo@yahoo.com> + + Further clean up DND target handling + + * src/xfns.c (Fx_begin_drag): Alloca target list. + + * src/xterm.c (x_set_dnd_targets): Copy the given targets list. + (x_dnd_begin_drag_and_drop): Record freeing the targets list on + the specpdl. + (handle_one_xevent, x_dnd_cleanup_drag_and_drop) + (x_connection_closed, x_delete_terminal): Stop calling + `x_set_dnd_targets' manually to free the targets list. + +2022-05-29 Po Lu <luangruo@yahoo.com> + + Fix crash when loading Postscript images + + * src/xterm.c (handle_one_xevent): Catch errors around + `x_kill_gs_process'. + +2022-05-29 Po Lu <luangruo@yahoo.com> + + Use XDrawPoint to clear relief rect corners + + * xterm.c (x_clear_point): New function. + (x_draw_relief_rect): Use that instead. + +2022-05-29 Paul Eggert <eggert@cs.ucla.edu> + + Document decoded-time-string issue on 6-elt args + + * lisp/simple.el: Document problematic use of decoded-time-dst on + 6-element args. + +2022-05-29 Paul Eggert <eggert@cs.ucla.edu> + + ISO 8601 strings sans "Z" don’t specify DST flag + + * lisp/calendar/iso8601.el (iso8601--zone-dst): New function. + (iso8601-parse, iso8601-parse-time): Use it. + (iso8601--decoded-time): Default dst to -1, not nil. + * test/lisp/calendar/iso8601-tests.el (test-iso8601-combined) + (standard-test-time-of-day-zone): Adjust to new behavior. + +2022-05-29 Paul Eggert <eggert@cs.ucla.edu> + + Doc fix for dst flag + + * doc/lispref/os.texi (Time Conversion): Note Common Lisp dst differs. + +2022-05-29 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/shell.el (shell): Fix last change + + Wrap the file-name prompt within `with-connection-local-variables` as + it was before the previous change. + While at it, make sure we set the `default-directory` of + the actual shell buffer after querying the user. + +2022-05-29 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add support for the Batak script (bug #55694) + + * lisp/language/indonesian.el ("Batak"): New language environment. + Add composition rules for Batak. Add sample text and input + method. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Batak. + * lisp/leim/quail/indonesian.el ("batak"): New input method. + Rename TITLE of balinese, javanese and sundanese in + ("quail-define-package"). + + * etc/HELLO: Add a Batak greeting. + * etc/NEWS: Announce the new language environment and its + input method. + +2022-05-29 Lars Ingebrigtsen <larsi@gnus.org> + + Fix hfy-etags-cmd type + + * lisp/htmlfontify.el (hfy-etags-cmd): Fix the type -- this + variable usually ends up being nil. + +2022-05-29 Daniel Martín <mardani29@yahoo.es> + + Fix reference to help-enable-variable-value-editing + + * lisp/help-mode.el (help-mode): Fix docstring to reference the + correct variable name. + * lisp/ldefs-boot.el (help-mode): Ditto (bug#55705). + +2022-05-29 Po Lu <luangruo@yahoo.com> + + * etc/tutorials/TUTORIAL.cn (INSTALLING PACKAGES): Translate + from English. + +2022-05-29 Michael Albinus <michael.albinus@gmx.de> + + Some Tramp cleanup on MS Windows + + * lisp/net/tramp.el (tramp-restricted-shell-hosts-alist): Do not add + localhost when `tramp-encoding-shell' is a POSIX shell. + + * test/lisp/net/tramp-tests.el (tramp-test31-interrupt-process): + Skip on MS Windows. + +2022-05-29 Mattias Engdegård <mattiase@acm.org> + + Traverse record literals in byte-compile--first-symbol-with-pos + + * lisp/emacs-lisp/bytecomp.el (byte-compile--first-symbol-with-pos): + Traverse record literals as well as vectors. Either is rather + pointless but there were some strong feelings about it. + +2022-05-29 Po Lu <luangruo@yahoo.com> + + * admin/alloc-colors.c: Fix missing declaration. + +2022-05-29 Manuel Giraud <manuel@ledu-giraud.fr> + + Make `count-words' count sentences. + + * lisp/textmodes/paragraphs.el (count-sentences): New function. + * lisp/simple.el (count-words--format): Update format for showing + sentences. + (count-words): Also count sentences. + + * lisp/simple.el (count-words): + * etc/NEWS: + * doc/emacs/basic.texi (Position Info): Update documentation for + sentence counting. + +2022-05-29 Po Lu <luangruo@yahoo.com> + + Keep display mm width and height up to date after changes + + * src/xfns.c (Fx_display_mm_width, Fx_display_mm_height): Use + new fields if they are set. + * src/xterm.c (handle_one_xevent): Set new fields on RRNotify if + the screen is correct. + * src/xterm.h (struct x_display_info): New fields + `screen_mm_width', `screen_mm_height'. + +2022-05-29 Po Lu <luangruo@yahoo.com> + + Make DND target list lifecycle a little clearer + + * src/xfns.c (Fx_begin_drag): Pass target atoms and ntargets to + x_dnd_begin_drag_and_drop instead. + * src/xterm.c (x_set_dnd_targets): Make static. + (x_clear_dnd_targets): Delete function. + (x_dnd_begin_drag_and_drop): Adjust to set targets here instead. + * src/xterm.h: Update prototypes. + +2022-05-29 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + f9ee83bfb9 do_switch_frame: before leaving mini-window, check other (... + 908e2e09d0 Fix commands used to produce on-line HTML docs + fff770fb97 Fix a bad cross-reference in elisp.pdf + ebea3415b0 Fix documentation of 'string-pad' + +2022-05-28 Po Lu <luangruo@yahoo.com> + + Fix pending window changes in haiku_set_window_size + + * src/haikuterm.c (haiku_set_window_size): Wait for + FRAME_RESIZED events, then call `do_pending_window_change'. + (haiku_read_socket): Allow waiting for FRAME_RESIZED events. + +2022-05-28 Po Lu <luangruo@yahoo.com> + + Improve error trapping on X + + * xterm.c (x_uncatch_errors, x_had_errors_p): Don't sync if no + request was made since the error trap was installed. + +2022-05-28 kobarity <kobarity@gmail.com> + + Fix Python Hideshow problem with backslash escaped newlines + + * lisp/progmodes/python.el (python-rx) + (python-nav-beginning-of-defun-regexp): Allow + python-nav-*-defun to handle backslash escaped newlines + (bug#55690). + +2022-05-28 Visuwesh <visuweshm@gmail.com> + + pp--insert-lisp: Don't bug out on certain forms at beginning of buffer + + * pp.el (pp--insert): Check if point is in beginning of buffer before + calling `looking-back' (bug#55677). + +2022-05-28 Stefan Monnier <monnier@iro.umontreal.ca> + + with-connection-local-variables: Avoid code duplication + + Move the bulk of the code of `with-connection-local-variables` into + a separate function, which both avoids duplicating that code but also + avoids duplicating the code passed as the body of + a `with-connection-local-variables`. Also makes it easier to + debug the code, or change the implementation of + `with-connection-local-variables` without having to recompile all + the users. + + * lisp/files-x.el (with-connection-local-variables-1): New function, + extracted from `with-connection-local-variables`. + (with-connection-local-variables): Use it. + +2022-05-28 Alan Mackenzie <acm@muc.de> + + do_switch_frame: before leaving mini-window, check other (mru) window is live + + This fixes bug#55684. There, with a minibuffer-only frame at start up, + Emacs tried to switch to this frame, whose selected window was the + mini-window. There is no other active window in this frame, so the + attempt to switch to another window failed. + + * src/frame.c (do_switch_frame): On switching to a frame whose selected + window is as above, before selecting the most recently used window, check + this ostensible window is an actual live window. Otherwise leave the + mini-window selected. + +2022-05-28 Eli Zaretskii <eliz@gnu.org> + + Fix commands used to produce on-line HTML docs + + * admin/admin.el (manual-meta-string): Only include the first + line, and move the rest... + (manual-links-string): ...to this new string. + (manual-html-fix-headers): Don't remove the '<meta name=' elements + produced by makeinfo, especially not the 'name="viewport"' one, + which is essential for viewing the docs on mobile devices. + Reported by "Facundo Lander via RT" <webmasters-comment@gnu.org>, + see gnu.org ticket #1840138. + +2022-05-28 Valenoern <valenoern@distributary.network> (tiny change) + + Support html template tag in shr + + * lisp/net/shr.el: Add shr-tag-template as a dummy tag. + +2022-05-28 Lars Ingebrigtsen <larsi@gnus.org> + + Fix native-comp of trampolines after previous change + + * lisp/emacs-lisp/comp.el (comp--native-compile): Don't delete the + explicitly specified output file, just temp files. + +2022-05-28 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add support for the Sundanese script (bug#55686) + + * lisp/language/indonesian.el ("Sundanese"): New language environment. + Add composition rules for Sundanese. Add sample text and input + method. + Improve composition rules for Balinese and Javanese. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Sundanese. + * lisp/leim/quail/indonesian.el ("sundanese"): New input method. + + * etc/HELLO: Add a Sundanese greeting. + * etc/NEWS: Announce the new language environment and its + input method. + +2022-05-28 Eli Zaretskii <eliz@gnu.org> + + Fix a bad cross-reference in elisp.pdf + + * doc/lispref/control.texi (pcase Macro): Fix a conditional + cross-reference (bug#55689). + +2022-05-28 Po Lu <luangruo@yahoo.com> + + Fix dired drag-and-drop for certain Motif programs + + * lisp/dired.el (dired-mouse-drag): Announce _DT_NETFILE in + targets list as well. + * lisp/select.el (xselect--encode-string): New arg + `prefer-string-to-c-string'. + (xselect-convert-to-filename): Convert to TEXT instead of + C_STRING, but use STRING if the type would otherwise be + C_STRING. + (xselect-dt-netfile-available-p, xselect-tt-net-file) + (xselect-convert-to-dt-netfile): New functions. + (selection-converter-alist): New selection converter. + +2022-05-28 Eli Zaretskii <eliz@gnu.org> + + Fix documentation of 'string-pad' + + * doc/lispref/strings.texi (Creating Strings): Fix description of + 'string-pad'. (Bug#55688) + +2022-05-28 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + d3cde28b03 Fix more occurrences of renamed kmacro-keymap command + bd5c95a90d Mention "unspecified-fg" and "unspecified-bg" in some doc ... + +2022-05-28 Po Lu <luangruo@yahoo.com> + + Add more cursor bitmaps on Haiku + + * src/haikufns.c (cursor_bitmaps_for_id): Add hourglass cursor. + +2022-05-27 Po Lu <luangruo@yahoo.com> + + Improve documentation on what callers of `x-begin-drag' should do + + * doc/lispref/frames.texi (Drag and Drop): + * src/xfns.c (Fx_begin_drag): Improve documentation of how the + chosen action should be performed. + +2022-05-27 Po Lu <luangruo@yahoo.com> + + Improve documentation of `x-begin-drag' + + * src/xfns.c (Fx_begin_drag): Fix typos and improve wording. + +2022-05-27 Po Lu <luangruo@yahoo.com> + + Improve safety of various DND callbacks + + * src/xterm.c (x_dnd_begin_drag_and_drop): Restore selection + events if DND is no longer in progress and don't call + x-dnd-movement-function. + +2022-05-27 Po Lu <luangruo@yahoo.com> + + Fix frame destruction issues and misuse of x_get_atom_name + + * src/frame.c (delete_frame): Prevent deleting the dnd frame + while waiting for finish as well. + * src/xselect.c (Fx_get_atom_name): Clean up code and fix + uninitialized use of need_sync. + * src/xterm.c (x_dnd_send_unsupported_drop, x_dnd_send_drop) + (handle_one_xevent): Clean up usage of x_get_atom_name. + (x_get_atom_name): Accept NULL for need_sync. + + * src/xterm.h: Update declarations. + +2022-05-27 Po Lu <luangruo@yahoo.com> + + Fix build on earlier versions of Mac OS X + + * src/nsselect.m (ns_decode_data_to_pasteboard): Respect + NS_USE_NSPasteboardTypeFileUrl. + +2022-05-27 Po Lu <luangruo@yahoo.com> + + Add file dragging support to NS port + + * lisp/dired.el (dired-mouse-drag-files): Document that + `dired-mouse-drag-files' now works on NS. + + * lisp/term/ns-win.el (x-begin-drag): Handle FILE_NAME. + * src/nsselect.m (ns_decode_data_to_pasteboard): Handle file URL + type. + (ns_lisp_to_pasteboard, Fns_begin_drag): Handle new type `file'. + +2022-05-27 Po Lu <luangruo@yahoo.com> + + Improve DND documentation + + * doc/lispref/frames.texi (Drag and Drop): + * src/xfns.c (Fx_begin_drag): Document that x-begin-drag may + return immediately if no mouse buttons are held down. + +2022-05-27 Po Lu <luangruo@yahoo.com> + + Fix x_dnd_movement_frame detection on GTK builds + + * src/xterm.c (x_dnd_begin_drag_and_drop): Make sure movement + frame is on the correct display. + +2022-05-27 Paul Eggert <eggert@cs.ucla.edu> + + Remove stray decl of nonexistent var + + * src/lisp.h (symbols_with_pos_enabled): Remove decl. + +2022-05-27 Paul Eggert <eggert@cs.ucla.edu> + + decoded-time-set-defaults now leaves DST alone + + * lisp/calendar/time-date.el (decoded-time-set-defaults): + Don’t mess with decoded-time-dst (Bug#55635). + +2022-05-27 Paul Eggert <eggert@cs.ucla.edu> + + Fix unlikely null pointer dereference + + * src/xselect.c (Fx_get_atom_name): Fix unlikely core dump when + build_string is called on a null pointer. Found by GCC -fanalyzer. + +2022-05-27 Paul Eggert <eggert@cs.ucla.edu> + + Add ATTRIBUTE_DEALLOC to extern functions + + This can help static checking. It’s not as important for static + functions, where GCC can figure this stuff out own its own. + * src/sysstdio.h (emacs_fopen): Add ATTRIBUTE_DEALLOC (fclose, 1). + * src/tparam.h (tparam): Add ATTRIBUTE_DEALLOC_FREE. + Include stdlib.h so that ‘free’ is declared. + * src/xterm.h (x_get_atom_name): Add ATTRIBUTE_DEALLOC_FREE. + +2022-05-27 Paul Eggert <eggert@cs.ucla.edu> + + Pacify gcc -Wsuggest-attribute-malloc + + * src/xterm.h (x_get_atom_name): Add ATTRIBUTE_MALLOC. + +2022-05-27 Juri Linkov <juri@linkov.net> + + Fix navigation in the *Completions* buffer and enable more tests (bug#54374) + + * lisp/ido.el: Use first-completion instead of next-completion. + + * lisp/minibuffer.el (completion--insert): Put completion--string + text property on prefix and suffix as well. + + * lisp/simple.el (first-completion, last-completion): New commands. + (next-completion): Rewrite to fix many bugs reported in + bug#54374, bug#55289, bug#55430. + (choose-completion): Use the text property completion--string that + allows to select a completion when point is on its prefix or suffix. + (switch-to-completions): Use first-completion instead of next-completion, + and last-completion instead of previous-completion. + + * test/lisp/minibuffer-tests.el (completion-auto-select-test) + (completion-auto-wrap-test, completions-header-format-test) + (completions-affixation-navigation-test): Uncomment fixed lines. + +2022-05-27 Eli Zaretskii <eliz@gnu.org> + + Extend 'C-x 8 =' to produce characters with macron + + * lisp/international/iso-transl.el (iso-transl-char-map): Add + several new sequences for characters with macron. (Bug#55668) + +2022-05-27 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/shell.el (shell): Query shell file name from `interactive` + + This avoids the use of the brittle `called-interactively-p` + and makes it easier to start a shell buffer running another shell than + your usual one. + +2022-05-27 Eli Zaretskii <eliz@gnu.org> + + Improve font selection on MS-Windows + + The Arial Unicode MS font claims in its USB (Unicode Subset + Bitfields) values support for several scripts for which it + doesn't actually have glyphs. This sometimes caused Emacs to + decide to use Arial Unicode MS for some script, only to + discover later that there are no glyphs for that script's + characters. This change fixes the USB values according to + actual font coverage, as determined by BabelMap. + * src/w32font.c (add_font_entity_to_list): Fix USB values of Arial + Unicode MS font according to its actual coverage of scripts. + +2022-05-27 Lars Ingebrigtsen <larsi@gnus.org> + + Make make-decoded-time use -1 for dst unless given + + * lisp/calendar/time-date.el (make-decoded-time): DST -1 is the + value for "doesn't know", not nil (bug#55635). + +2022-05-27 Lars Ingebrigtsen <larsi@gnus.org> + + Make package-update-all also refresh the list + + * lisp/emacs-lisp/package.el (package-update-all): Also refresh + package list. + +2022-05-27 Po Lu <luangruo@yahoo.com> + + Fix GNUstep build + + * src/nsterm.h (NSPasteboardNameGeneral): Fix definition. + +2022-05-27 Po Lu <luangruo@yahoo.com> + + Fix NS drag and drop on macOS + + * lisp/term/ns-win.el (gui-backend-set-selection): + * src/nsselect.m (Fns_begin_drag): Fix deprecation warnings and + selection/value mixup. + +2022-05-27 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into x-window-xwidget + +2022-05-27 Po Lu <luangruo@yahoo.com> + + Implement some drag and drop functions on NS + + * lisp/term/ns-win.el (ns-selection-exists-p): + (gui-backend-set-selection): + (x-begin-drag): New functions and selection types. + * src/nsfns.m (Fns_get_resource): + (Fns_set_resource): + (Fx_server_max_request_size): Fix coding style. + * src/nsselect.m (ns_decode_data_to_pasteboard): + (ns_lisp_to_pasteboard): + (ns_dnd_action_to_operation): + (ns_dnd_action_from_operation): + (Fns_begin_drag): New functions. + (syms_of_nsselect): New subrs. + * src/nsterm.h (EmacsWindow): New fields and messages. + (NSPasteboardNameGeneral): New define. + * src/nsterm.m ([EmacsView mouseDown:]): Store last mouse event. + ([EmacsWindow initWithEmacsFrame:fullscreen:screen:]): Clear that event. + ([EmacsWindow dealloc]): Free last mouse event. + +2022-05-27 Stefan Kangas <stefan@marxist.se> + + * lisp/progmodes/asm-mode.el: Minor doc fixes. + +2022-05-27 Stefan Kangas <stefan@marxist.se> + + Prefer defvar-keymap in some progmodes + + * lisp/progmodes/asm-mode.el (asm-mode-map): + * lisp/progmodes/bug-reference.el (bug-reference-map): + * lisp/progmodes/erts-mode.el (erts-mode-map): + * lisp/progmodes/flymake.el (flymake-mode-map) + (flymake-diagnostics-buffer-mode-map): + * lisp/progmodes/icon.el (icon-mode-map): + * lisp/progmodes/js.el (js-mode-map): + * lisp/progmodes/m4-mode.el (m4-mode-map): + * lisp/progmodes/mixal-mode.el (mixal-mode-map): + * lisp/progmodes/scheme.el (scheme-mode-map): Prefer defvar-keymap. + +2022-05-27 Stefan Kangas <stefan@marxist.se> + + Silence byte-compiler warning about x-pointer-invisible + + * lisp/avoid.el (x-pointer-invisible): Declare to silence + byte-compiler. + +2022-05-27 Juri Linkov <juri@linkov.net> + + Fix more occurrences of renamed kmacro-keymap command + + * doc/emacs/kmacro.texi (Basic Keyboard Macro): Fix documentation + after recent kmacro-redisplay command name change. + +2022-05-27 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add support for the Javanese script (bug#55667) + + * lisp/language/indonesian.el ("Javanese"): New language environment. + Add composition rules for Javanese. Add sample text and input + method. + * lisp/international/fontset.el (script-representative-chars): + Support Javanese. + * lisp/leim/quail/indonesian.el ("javanese"): New input method. + + * etc/NEWS: Announce the new language environment and its + input method. + +2022-05-27 Po Lu <luangruo@yahoo.com> + + * etc/PROBLEMS: Document problems with PGTK input methods. + +2022-05-27 Po Lu <luangruo@yahoo.com> + + Update comments in some X code + + * src/xterm.c (x_parse_color): Update comment. + (syms_of_xterm): Add new debugging option too. + +2022-05-27 Eli Zaretskii <eliz@gnu.org> + + Mention "unspecified-fg" and "unspecified-bg" in some doc strings + + * lisp/faces.el (face-foreground, face-background) + (foreground-color-at-point, background-color-at-point): + * lisp/color.el (color-name-to-rgb): Mention "unspecified-fg" and + "unspecified-bg" pseudo-colors on TTY frames. (Bug#55623) + +2022-05-27 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 9283508fb2 Fix format specifiers in tramp-adb.el + a9f17ccce3 ; Fix some doc typos and minor language issues + +2022-05-26 Po Lu <luangruo@yahoo.com> + + Fix XI scroll valuator reset on X Toolkit builds + + * src/xterm.c (handle_one_xevent): Reset valuators on XI_Leave + if leave->event is an edit widget as well. + +2022-05-26 Po Lu <luangruo@yahoo.com> + + Improve lookup efficiency of color cache and prevent leaking + + * src/xterm.c (x_parse_color): Move recently used colors to the + start of the cache and free unused entries when there are too + many. + (x_term_init, x_delete_display): Initialize and free new fields. + * src/xterm.h (struct x_display_info): New field + `color_names_length'. + +2022-05-26 Po Lu <luangruo@yahoo.com> + + Handle allocation errors when creating menu items on Haiku + + * src/haiku_support.cc (class EmacsMenuItem): Don't abort on + failed strdup. + +2022-05-26 Po Lu <luangruo@yahoo.com> + + Fix longjmp/siglongjmp mixup + + * src/xterm.c (xm_drag_window_io_error_handler) + (x_dnd_io_error_handler): Use `siglongjmp'. Reported by Ken + Brown <kbrown@cornell.edu>. + +2022-05-26 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerated ldefs-boot.el + +2022-05-26 Stefan Monnier <monnier@iro.umontreal.ca> + + package-activate-all: Use the quickstart more conservatively + + * lisp/emacs-lisp/package.el (package-activate-all): Don't use the + quickstart file if some packages have already been activated. + +2022-05-26 Sam Steingold <sds@gnu.org> + + Avoid duplicates in `package-activated-list' + + * lisp/emacs-lisp/package.el (package-quickstart-refresh): Calling + `package-activate-all' twice leads to duplicates in + `package-activated-list' - avoid that. + +2022-05-26 Juri Linkov <juri@linkov.net> + + Test suite for Completions UI (bug#54374) + + * test/lisp/minibuffer-tests.el (completing-read-with-minibuffer-setup): + New macro based on xdisp-tests--in-minibuffer. + (completion-auto-help-test, completion-auto-select-test) + (completion-auto-wrap-test, completions-header-format-test) + (completions-affixation-navigation-test): New tests. + +2022-05-26 Stefan Monnier <monnier@iro.umontreal.ca> + + eval.c: New functions `defvar-1` and `defconst-1` (bug#55156) + + The bytecode interpreter can't directly call special forms, so + the byte-compiler usually converts special forms into some sequence of + byte codes (basically, providing a duplicate definition of the special + form). There are still two exceptions to this: `defconst` and `defvar`, + where the compiler instead generates a convoluted chunk of code like: + + (funcall '(lambda (x) (defvar <sym> x <doc>)) <value>) + + where the quote makes sure we keep the function non-compiled, so as + to end up running the special form at run time. + + Get rid of this workaround by introducing `defvar-1` and `defconst-1` + which provide a *functional* interface to the functionality of the + corresponding special form. + + * src/eval.c (defvar, Fdefvar_1, Fdefconst_1): New functions, extracted from + `Fdefvar` and `Fdefconst`. + (Fdefvar, Fdefconst): Use them. + (syms_of_eval): `defsubr` the new functions. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-tmp-var): Delete const. + (byte-compile-defvar): Simplify using the new functions. + + * doc/lispref/variables.texi (Defining Variables): Adjust the doc of + `defvar` to reflect the actual semantics implemented. + +2022-05-26 Stefan Monnier <monnier@iro.umontreal.ca> + + * test/lisp/files-resources/compile-utf8.el: Use lexical-binding + + * etc/themes/leuven-dark-theme.el: Use lexical-binding + +2022-05-26 Hayden Shenk <hayden.shenk@zetier.com> (tiny change) + + Fix format specifiers in tramp-adb.el + + * lisp/net/tramp-adb.el (tramp-adb-get-device): Fix format + specifiers for port. (Bug#55651) + +2022-05-26 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add support for the Balinese script (bug#55648) + + * lisp/language/indonesian.el ("Balinese"): New language environment. + Add composition rules for Balinese. Add sample text and input + method. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Balinese. + * lisp/leim/quail/indonesian.el ("balinese"): New input method. + * lisp/loadup.el: Preload lisp/language/indonesian.el. + + * etc/HELLO: Add a Balinese greeting. + * etc/NEWS: Announce the new language environment and its + input method. + +2022-05-26 Mattias Engdegård <mattiase@acm.org> + + Faster and less recursive byte-compile--first-symbol-with-pos + + * lisp/emacs-lisp/bytecomp.el (byte-compile--first-symbol-with-pos) + (byte-compile--warning-source-offset): + Remove recursion for cdr-traversal of lists, and optimize (bug#55414). + +2022-05-26 Po Lu <luangruo@yahoo.com> + + Handle alternate actions for Motif drop targets + + * src/xterm.c (xm_side_effect_from_action): Handle + `XdndActionAsk'. + (xm_operations_from_actions): New function. + (xm_send_top_level_leave_message, x_dnd_cleanup_drag_and_drop) + (x_dnd_update_state, handle_one_xevent, x_connection_closed): + Use those actions when building a side effect. + (x_dnd_begin_drag_and_drop): Keep track of the set of + alternative drag-and-drop actions. + +2022-05-26 Lars Ingebrigtsen <larsi@gnus.org> + + Make comp--native-compile delete the temp file it creates + + * lisp/emacs-lisp/comp.el (comp--native-compile): Delete the + temporary files we create (bug#55611). + +2022-05-26 Lars Ingebrigtsen <larsi@gnus.org> + + Make memory-report not bug out with symbols with positions + + * lisp/emacs-lisp/memory-report.el (memory-report--object-size-1): + Don't bug out when there are symbols with positions. + +2022-05-26 Po Lu <luangruo@yahoo.com> + + Fix the `x_trace_wire' option + + * src/xterm.c (x_trace_wire): + (x_term_init): Fix debugging code for modern C and Xlib. + +2022-05-26 Po Lu <luangruo@yahoo.com> + + Use x_get_atom_name for some more things + + * src/xterm.c (x_dnd_send_unsupported_drop, x_dnd_send_drop): + Use x_get_atom_name instead of XGetAtomName. + +2022-05-25 Po Lu <luangruo@yahoo.com> + + * src/xselect.c (Fx_register_dnd_atom): Use x_intern_cached_atom. + +2022-05-25 Po Lu <luangruo@yahoo.com> + + Make X error checking more asynchronous + + This makes some operations (such as x-get-atom-name and + x-change-window-property) up to 2600x faster by avoiding calls + to XSync when setting up an error handler, and when checking for + or uncatching errors if all requests were already processed. + + * src/xterm.c (X_COMPARE_SERIALS): New macro. + (struct x_error_message_stack): Add new field `first_request'. + (x_find_error_handler): New function. + (x_error_catcher): New parameter `stack'. Use it instead. + (x_catch_errors_with_handler): Keep a record of the next + protocol request serial inside the stack entry. + (x_uncatch_errors, x_check_errors, x_had_errors_p, x_clear_errors) + (x_error_handler): Avoid XSync if all requests were processed by + the X server and look for the error handler matching the display + and request serial when processing errors. + +2022-05-25 Po Lu <luangruo@yahoo.com> + + Improve x_get_atom_name for some predefined atoms + + * src/xterm.c (x_get_atom_name): Handle XSETTINGS and cm atoms. + +2022-05-25 Po Lu <luangruo@yahoo.com> + + Fix 32-bit warnings again + + * src/print.c (struct print_stack_entry): Make + u.list.tortoise_idx intmax_t. + +2022-05-25 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add support for the Limbu script (bug#55621) + + * lisp/language/indian.el ("Limbu"): New language environment. + Add composition rules for Limbu. Add sample text and input + method. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Limbu. + * lisp/leim/quail/indian.el ("limbu"): New input method. + + * etc/HELLO: Add a Limbu greeting. + * etc/NEWS: Announce the new language environment and its + input method. + +2022-05-25 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + 86b49d5865 ; * etc/NEWS: Announce changes in 'desktop-kill'. (Bug#55... + d5ccf2621a ; Fix last change + f1c1fd7184 Improve documentation of mail-user-agent. + b05d1e9b98 ; * lisp/desktop.el: Update the commentary. (Bug#55560) + 139bfa1a08 More fixes in abbrev.el doc strings + d80dea6036 Add note about Tramp completion to completion-styles doc s... + 9e7c0cf57d Remove mention of removed nnimap-nov-is-evil variable + 90aae0bca2 Improve documentation strings and prompts in abbrev.el + dfa3e6f424 Restore the Fselect_window call in gui_consider_frame_title. + de35e9728f Advise against settings in the MS-Windows system registry + 3ffa3d3403 ; Minor addition to make-tarball.txt + 7dc026f9ea Fix kmacro-keymap binding after previous change + 4f0fd54bc4 Add glossary entries for "interactively" + af1c05a3c4 Fix the name of a kmacro command. + + # Conflicts: + # etc/NEWS + # lisp/abbrev.el + +2022-05-25 Juri Linkov <juri@linkov.net> + + * lisp/subr.el (insert-for-yank): Add nil to run-hook-wrapped to keep looping. + +2022-05-25 Po Lu <luangruo@yahoo.com> + + Lower the roundtrip overhead of x-get-atom-name by 50% for common atoms + + * src/xselect.c (Fx_get_atom_name): + * src/xterm.c (x_dnd_begin_drag_and_drop): Use that instead. Don't + sync to handle errors if using `x_get_atom_name' resulted in no + protocol request being made. + (x_get_atom_name): New function. + * src/xterm.h: Update prototypes. + +2022-05-25 Lars Ingebrigtsen <larsi@gnus.org> + + Make yank-transform-functions into defvar + + * doc/lispref/text.texi (Yanking): Adjust. + * lisp/simple.el (yank-transform-functions): Make into defvar + because it's not that useful as a user option. + +2022-05-25 Jim Porter <jporterbugs@gmail.com> + + Reset 'eshell-in-pipeline-p' when interpolating commands + + * lisp/eshell/esh-cmd.el (eshell-subcommand-bindings) + (eshell-command-to-value): Set 'eshell-in-pipeline-p' to nil. + + * test/lisp/eshell/eshell-tests.el + (eshell-test/subcommand-reset-in-pipeline) + (eshell-test/lisp-reset-in-pipeline): New tests (bug#55620). + +2022-05-25 Paul W. Rankin <pwr@bydasein.com> + + Change variable which-func-unknown to "n/a" + + * lisp/progmodes/which-func.el (which-func-unknown): Change string + displayed in mode-line from "???" to "n/a"; the former appears to + indicate an error whereas the latter is more indicative that the + current function is not known. + +2022-05-25 Po Lu <luangruo@yahoo.com> + + Add more predefined atoms for the benefit of DND code + + * src/xterm.c (x_intern_cached_atom): Handle `CARDINAL' and + `WINDOW' as well. + +2022-05-25 Stefan Kangas <stefan@marxist.se> + + Prefer defvar-keymap in url/*.el + + * lisp/url/url-cookie.el (url-cookie-mode-map): + * lisp/url/url-dired.el (url-dired-minor-mode-map): Prefer + defvar-keymap. + +2022-05-25 Stefan Kangas <stefan@marxist.se> + + Remove some ancient Emacs compat code + + * lisp/url/url-util.el (url-percentage): Remove Emacs 19 compat + code. + + * lisp/erc/erc-backend.el (erc-server-coding-system): + * lisp/gnus/mm-util.el (mm-iso-8859-x-to-15-table): Remove Emacs + 19 compat code; coding-system-p is fboundp. + + * lisp/progmodes/cfengine.el (cfengine-fill-paragraph): Remove Emacs + 21 compat code. + +2022-05-25 Po Lu <luangruo@yahoo.com> + + Improve atom interning in `x-change-window-property' + + * src/xfns.c (Fx_change_window_property): Improve doc string and + use `x_intern_cached_atom'. + * src/xterm.c (x_intern_cached_atom): New argument + `predefined_only'. All callers changed. + * src/xterm.h: Update prototypes. + +2022-05-24 Po Lu <luangruo@yahoo.com> + + Fix cursor color adjustment on Haiku + + * src/haikufns.c (haiku_set_foreground_color): Maybe set cursor + color correctly if it was equal to the old foreground color. + +2022-05-24 Lars Ingebrigtsen <larsi@gnus.org> + + Don't have edebug bug out if C-x is rebound + + * lisp/emacs-lisp/edebug.el (edebug-global-prefix): Don't bug out + if C-x has been rebound (bug#55607). + +2022-05-24 Po Lu <luangruo@yahoo.com> + + Add more atoms that don't need a roundtrip to intern + + * src/xterm.c (x_intern_cached_atom): Handle dpyinfo atoms that + depend on the screen number and common selection atoms. + +2022-05-24 Lars Ingebrigtsen <larsi@gnus.org> + + Update edebug comments + + * lisp/emacs-lisp/edebug.el: Update function name in comments + (bug#55607). + +2022-05-24 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerated ldefs-boot.el + +2022-05-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix ert-run-tests-batch-and-exit doc string typo + + * lisp/emacs-lisp/ert.el (ert-run-tests-batch-and-exit): Fix doc + string typo. + +2022-05-24 Lars Ingebrigtsen <larsi@gnus.org> + + Autoload package-update-all + + * lisp/emacs-lisp/package.el (package-update-all): Autoload and + tweak querying so that -f works. + +2022-05-24 Po Lu <luangruo@yahoo.com> + + Fix compilation on GTK when Xrandr is not present + + * src/xterm.c (x_term_init): Make term always present on GTK. + +2022-05-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix comp-mvar doc string quoting + + * lisp/emacs-lisp/comp.el (comp-mvar): Fix quoting of symbol in + doc string. + +2022-05-24 Mattias Engdegård <mattiase@acm.org> + + Remove f90-mode regexp ambiguity (bug#17222) + + * lisp/progmodes/f90.el (f90-font-lock-keywords-2): + Modify regexp to be better-behaved. + +2022-05-24 Lars Ingebrigtsen <larsi@gnus.org> + + Don't use `format-message' to make doc strings in erc-backend + + * lisp/erc/erc-backend.el (define-erc-response-handler): Use + `format' here instead of `format-message' since Emacs will expand + the doc string later when the user asks for help about the symbols + defined. + +2022-05-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix a byte compilation warning in electric.el + + * lisp/electric.el (electric-quote-mode): Quote a naked ‘ character. + +2022-05-24 Lars Ingebrigtsen <larsi@gnus.org> + + Make byte compilation warn about wrong quoting in doc strings + + * lisp/emacs-lisp/bytecomp.el + (byte-compile-docstring-length-warn): Made into obsolete alias. + (byte-compile-docstring-style-warn): Also warn about other + stylistic issues. + (byte-compile-file-form-autoload, byte-compile-file-form-defvar) + (byte-compile-file-form-defvar-function, byte-compile-lambda) + (byte-compile-defvar, byte-compile-file-form-defalias): Adjust callers. + +2022-05-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix the final divergent single quote usages in doc strings + + * lisp/view.el (view-mode-map): + * lisp/repeat.el (repeat-is-really-this-command): + * lisp/help.el (substitute-command-keys): + * lisp/electric.el (electric-quote-mode): + * lisp/cedet/srecode/texi.el (srecode-texi-texify-docstring): + * lisp/cedet/semantic/sort.el + (semantic-orphaned-member-metaparent-type): Audit usages of single + quotes in doc strings. + +2022-05-24 Alan Mackenzie <acm@muc.de> + + CC Mode: Fix interplay between string fences and electric-pair-mode. + + This is an amendment to the fix for bug #55230. + + * lisp/progmodes/cc-defs.el: (c-with-string-fences): Add an edebug spec. + + * lisp/progmodes/cc-cmds.el: (c-electric-pound, c-electric-brace) + (c-electric-slash, c-electric-star, c-electric-semi&comma, c-electric-colon) + (c-electric-lt-gt, c-electric-paren): Put the final + c--call-post-self-insert-hook-more-safely outside of the functions' + c-with-string-fences. + (c-electric-brace, c-electric-lt-gt, c-electric-paren): Put the calls to + electric-pair-post-self-insert-function outside of c-with-string-fences. + +2022-05-24 Stefan Monnier <monnier@iro.umontreal.ca> + + Make `yank-transform-functions` a proper hook + + * lisp/subr.el (insert-for-yank): Use `run-hook-wrapped` to run + `yank-transform-functions`. + * lisp/simple.el (yank-transform-functions): Adjust accordingly. + +2022-05-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix issue with nativecomp tests leaving files behind in /tmp + + * test/src/comp-tests.el (comp-deftest): Ensure that no files are left + behind (bug#55611). + +2022-05-24 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add support for the Buhid and Tagbanwa scripts (bug#55610) + + * lisp/language/philippine.el ("Buhid"): New language environment. + ("Tagbanwa"): New language environment. + Add input methods for Buhid and Tagbanwa. + Add sample text for Tagbanwa. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Buhid and Tagbanwa. + * lisp/leim/quail/philippine.el ("buhid"): New input method. + ("tagbanwa"): New input method. + + * etc/HELLO: Add a Tagbanwa greeting. + * etc/NEWS: Announce the new language environments and their + input methods. + +2022-05-24 Lars Ingebrigtsen <larsi@gnus.org> + + Clean up a test file in /tmp + + * test/src/buffer-tests.el (test-restore-buffer-modified-p): Clean + up autosave file in /tmp. + +2022-05-24 Po Lu <luangruo@yahoo.com> + + Add more error checking to some X functions + + * src/xfns.c (Fx_change_window_property, Fx_delete_window_property) + (Fx_window_property, Fx_window_property_attributes): Check for + errors in case the window is invalid. Also use better function + for interning prop names. + + * src/xterm.c (struct x_atom_ref): New structure. + (x_atom_refs): New list. Extract from x_term_init. + (x_intern_cached_atom): New function. Use it in several places + to avoid interning common atoms. + (x_term_init): Adjust accordingly. + + * src/xterm.h: Update prototypes. + +2022-05-24 Po Lu <luangruo@yahoo.com> + + Prevent errors when Lisp code asks for props of invalid windows + + * src/xfns.c (Fx_window_property): + (Fx_window_property_attributes): Catch X errors. + +2022-05-24 Po Lu <luangruo@yahoo.com> + + Handle invalid NEWS files during describe-function + + * src/help-fns.el (help-fns--first-release): Don't error if + searching for a heading fails. + +2022-05-24 Jim Porter <jporterbugs@gmail.com> + + Keep subcommands in pipelines from clobbering the head/tail processes + + * lisp/eshell/esh-cmd.el (eshell-execute-pipeline): Use 'make-symbol' + for headproc and tailproc. + (eshell-do-pipelines, eshell-do-pipelines-synchronously): Adapt to the + above. + + * test/lisp/eshell/eshell-tests.el (eshell-test/pipe-subcommand) + (eshell-test/pipe-subcommand-with-pipe): New test. + + * doc/misc/eshell.texi (Bugs and ideas): Remove item about piping to + process from loop; this commit fixes it (bug#55590). + +2022-05-24 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak remapping fix for set-transient-map + + * lisp/subr.el (set-transient-map): The remapping doesn't have to + be in this map. + +2022-05-24 Štěpán Němec <stepnem@gmail.com> + + Add elisp-eldoc-var-docstring-with-value function + + * lisp/progmodes/elisp-mode.el + (elisp-eldoc-var-docstring-with-value): New function (bug#55096). + +2022-05-24 Lars Ingebrigtsen <larsi@gnus.org> + + Make the nativecomp test eln directory more reliably be removed + + * lisp/startup.el (startup-redirect-eln-cache, normal-top-level): + Don't create the nativecomp directory here, because this led to + brittle deletions of the directory -- there would be several + instances of the directory left over after a test run. + + * lisp/emacs-lisp/ert.el (ert-run-tests-batch-and-exit): Create + the nativecomp directory. + +2022-05-24 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerated ldefs-boot.el + +2022-05-24 Lars Ingebrigtsen <larsi@gnus.org> + + Further audits of single quotes in Lisp doc strings + + * test/manual/etags/el-src/emacs/lisp/progmodes/etags.el + (tags-apropos-additional-actions): + * lisp/window.el (delete-window-choose-selected): + * lisp/vc/ediff-merg.el (ediff-combination-pattern): + * lisp/vc/diff.el (diff-no-select): + * lisp/tab-bar.el (tab-bar-new-tab-choice): + * lisp/simple.el (next-error-message-highlight): + (backward-delete-char-untabify): + * lisp/ses.el (ses-jump-cell-name-function): + * lisp/org/org.el (org-latex-to-html-convert-command): + * lisp/org/org-agenda.el (org-agenda-sorting-strategy): + * lisp/net/tramp.el (tramp-default-file-modes): + * lisp/net/newst-treeview.el + (newsticker-treeview-use-feed-name-from-url-list-in-treeview): + * lisp/net/eww.el (eww-auto-rename-buffer): + * lisp/mwheel.el (mouse-wheel-scroll-amount): + * lisp/mail/rmail.el (rmail-re-abbrevs): + * lisp/info.el (Info-history-forward-menu): + * lisp/gnus/nnselect.el (nnselect-retrieve-headers-override-function): + * lisp/gnus/gnus-start.el (gnus-subscribe-hierarchical-interactive): + * lisp/fringe.el (fboundp): + * lisp/eshell/esh-var.el (eshell-variable-aliases-list): + * lisp/emacs-lisp/checkdoc.el (checkdoc-column-zero-backslash-before-paren): + * lisp/dired-aux.el (dired-confirm-shell-command): + * lisp/calendar/calendar.el (calendar-time-zone-style): + * lisp/ansi-color.el (ansi-color-faces-vector): + (ansi-color-names-vector): Audit use of various single quotes in + Lisp doc strings. + +2022-05-24 Lars Ingebrigtsen <larsi@gnus.org> + + Audit symbol quoting in Lisp doc strings + + * lisp/vc/vc-svn.el (vc-svn-dir-status-files): + * lisp/so-long.el (so-long-mode-maintain-preserved-variables): + * lisp/help-fns.el (help-fns--most-relevant-active-keymap): + * lisp/gnus/nnselect.el (nnselect-get-artlist): + (nnselect-store-artlist): + * lisp/forms.el (forms-enumerate): + * lisp/ffap.el (ffap-string-at-point): + * lisp/emacs-lisp/byte-run.el (define-obsolete-variable-alias): + Audit symbol quoting in Lisp doc strings. + +2022-05-24 Michael Albinus <michael.albinus@gmx.de> + + Add ".epub" to Tramp archive file suffixes. + + * doc/misc/tramp.texi (Archive file names): + * lisp/net/tramp-archive.el (tramp-archive-suffixes): Add ".epub". + +2022-05-24 Lars Ingebrigtsen <larsi@gnus.org> + + Audit quoting symbols in C doc strings + + * test/manual/etags/c-src/emacs/src/keyboard.c (Frecursive_edit): + * src/xfns.c (syms_of_xfns): + * src/xdisp.c (Fwindow_text_pixel_size): + (syms_of_xdisp): + * src/w32notify.c (Fw32notify_add_watch): + (Fw32notify_add_watch): + * src/frame.c (Fframe_child_frame_border_width): + * src/comp.c (Fcomp__subr_signature): + * src/alloc.c (Fgarbage_collect): + * lib-src/make-docfile.c (scan_c_stream): Audit quoting symbols in C + doc strings. + +2022-05-24 Po Lu <luangruo@yahoo.com> + + Allow the user to fix `x-mouse-click-focus-ignore-position' on some systems + + * src/xterm.c (handle_one_xevent): Apply that variable instead. + (syms_of_xterm): Update doc string and add new option to adjust + the focus click timeout. + +2022-05-24 Po Lu <luangruo@yahoo.com> + + Fix use of wrong event structure handling XI_Enter events + + * src/xterm.c (handle_one_xevent): Use `enter' instead of `xev' + to set the mouse click timeout. + +2022-05-23 Po Lu <luangruo@yahoo.com> + + * src/nsmenu.m (ns_menu_show): Use SAFE_ALLOCA. + +2022-05-23 Po Lu <luangruo@yahoo.com> + + Minor fixes to cursor color handling on Haiku + + * src/haikufns.c (haiku_decode_color): New function. + (haiku_set_foreground_color, haiku_set_background_color) + (haiku_set_cursor_color, haiku_set_mouse_color): Use that + function to decode colors instead. Also set cursor GC + foreground when setting background color. + + * src/haikuterm.c (haiku_merge_cursor_foreground): Fix color + equality test. + +2022-05-23 Po Lu <luangruo@yahoo.com> + + Only send fallback MONITORS_CHANGED_EVENT when dimensions really changed + + * src/xterm.c (handle_one_xevent): Test that root window + configure width and height are not the same as the previously + recorded ones. + +2022-05-23 Eli Zaretskii <eliz@gnu.org> + + Avoid compiler warnings on macOS (bug#55595) + + * configure.ac: Don't use -Wunknown-pragmas with Clang. + + * src/comp.c (load_comp_unit): Avoid Clang compilation warning. + +2022-05-23 Mattias Engdegård <mattiase@acm.org> + + Less wrong printed circular list tail index (bug#55395) + + When printing a circular list and `print-circle` is nil, use a + somewhat more meaningful ". #N" tail index. The previous method for + calculating that index was based on Floyd circularity detection being + used so it had been broken ever since the change to Brent's algorithm. + + The new index is correct with respect to the start of the list itself + which is what it used to be before being completely broken. + It does not take into account the nesting depth of the list context. + + * src/print.c (struct print_stack_entry, print_object): + Keep track of the tortoise index (which is cheap) instead of trying + to derive it from the printed element index. + * test/src/print-tests.el (print-test-rho, print-circular): + New test. + +2022-05-23 Eli Zaretskii <eliz@gnu.org> + + * src/w32menu.c (w32_menu_show): Use SAFE_ALLOCA. (Bug#55068) + +2022-05-23 Eli Zaretskii <eliz@gnu.org> + + Fix saveplace.el when desktop.el restores non-ASCII buffers + + * lisp/saveplace.el (load-save-place-alist-from-file): Bind + 'coding-system-for-read' to nil, so that the 'coding:' cookie in + the save-place file takes effect. (Bug#55592) + +2022-05-23 Tino Calancha <tino.calancha@gmail.com> + + zap-to-char: Fix interactive specification + + * lisp/simple.el (zap-to-char): Include t in the list. + +2022-05-23 Po Lu <luangruo@yahoo.com> + + Adapt last change to Haiku as well + + * src/haikumenu.c (digest_menu_items, haiku_menu_show): Use + SAFE_ALLOCA for various temporary buffers. + +2022-05-23 Po Lu <luangruo@yahoo.com> + + Fix stack overflows with large popup menus + + * src/xmenu.c (x_menu_show): Allocate various stacks with + SAFE_ALLOCA. + +2022-05-23 Po Lu <luangruo@yahoo.com> + + Fix default child-frame-border-width on PGTK + + * src/pgtkfns.c (Fx_create_frame): Make default + `child-frame-border-width' nil. (bug#55588) + +2022-05-23 Lars Ingebrigtsen <larsi@gnus.org> + + Improve command-error-function discoverability + + * lisp/subr.el (error, user-error): Point to command-error-function. + + * src/keyboard.c (syms_of_keyboard): Add an example (bug#40750). + +2022-05-23 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add support for the Hanunoo script (bug#55581) + + * lisp/language/philippine.el ("Hanunoo"): New language environment. + Add composition rules for Hanunoo. Add sample text and input + method. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Hanunoo. + * lisp/leim/quail/philippine.el ("hanunoo"): New input method. + + * etc/HELLO: Add a Hanunoo greeting. + * etc/NEWS: Announce the new language environment and its + input method. + +2022-05-23 Lars Ingebrigtsen <larsi@gnus.org> + + Make remapped keys work in set-transient-map + + * lisp/subr.el (set-transient-map): Make remapped keys work in + transient maps (bug#40096). + +2022-05-23 Po Lu <luangruo@yahoo.com> + + Fix coding style of recent change + + * src/emacs.c (main): Fix coding style by putting the = operator + on the right row. + +2022-05-23 Po Lu <luangruo@yahoo.com> + + Implement monitor change functions on Haiku + + * src/haiku_io.c (haiku_len): Handle new event type. + * src/haiku_support.cc (class EmacsScreenChangeMonitor): New + class. + (class Emacs, Emacs): Create new screen change monitor. + (DispatchMessage): Update fullscreen state if the screen + changed. + (SetFullscreen): Don't punt if fullscreen mode is identical. + + * src/haiku_support.h (enum haiku_event_type): New event + `SCREEN_CHANGE_EVENT'. + (struct haiku_screen_changed_event): New struct. + + * src/haikuterm.c (haiku_read_socket): Handle new event. + +2022-05-23 Lars Ingebrigtsen <larsi@gnus.org> + + Make `d' in Dired skip dot files + + * lisp/dired.el (dired-mark): Skip dot files (bug#38729). This + makes `C-u 10 d' (etc) consistent with marking the next ten lines + with the mouse and then hitting `d'. + +2022-05-23 Lars Ingebrigtsen <larsi@gnus.org> + + Include development data in --version output + + * src/emacs.c (main): Include development into in --version output + (bug#38657). + +2022-05-23 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el (switch-to-buffer-other-tab): Use pop-to-buffer (bug#55582). + + Replace display-buffer with pop-to-buffer that sets the current buffer + explicitly. + +2022-05-23 Lars Ingebrigtsen <larsi@gnus.org> + + Allow extending 'save-some-buffers' + + * lisp/abbrev.el (abbrev--possibly-save): Separated out from + `save-some-buffers'. + (save-some-buffers-functions): Add to the save function. + + * lisp/files.el (save-some-buffers-functions): New variable. + (save-some-buffers): Use it. + (save-buffers-kill-emacs): Also use it to see if we have something + to save (bug#55579). + +2022-05-23 Lars Ingebrigtsen <larsi@gnus.org> + + Make bootstrap remove more generated files + + * Makefile.in (bootstrap-clean): Remove lisp/leim/ja-dic/. + +2022-05-23 Lars Ingebrigtsen <larsi@gnus.org> + + Make bootstrap remove the native-lisp/ directory + + * Makefile.in (bootstrap-clean): Remove the native-lisp/ directory. + +2022-05-23 Po Lu <luangruo@yahoo.com> + + Minor fixes to PGTK child frames + + * src/gtkutil.c (xg_check_special_colors): Handle child frames + correctly. + * src/pgtkfns.c (pgtk_set_child_frame_border_width): Synchronize + code from X. (bug#55588) + * src/pgtkmenu.c (pgtk_menu_show, pgtk_dialog_show): Allow in + child frames. There are no problems here. + * src/pgtkterm.c (pgtk_mouse_position): Clean up coding style. + +2022-05-22 Po Lu <luangruo@yahoo.com> + + Implement monitor change functions on GNUstep + + * src/nsfns.m (Fns_display_monitor_attributes_list): Fix coding + style. + * src/nsterm.m (nstrace_leave, nstrace_restore_global_trace_state) + (nstrace_fullscreen_type_name): Fix coding style. + (ns_displays_reconfigured, ns_term_init): Make a record of the + previous display attributes list and avoid storing duplicate + events. + ([EmacsApp init]): Listen for + NSApplicationDidChangeScreenParametersNotification. + ([EmacsApp updateMonitors:]): New method. + (syms_of_nsterm): New staticpro. + +2022-05-22 Po Lu <luangruo@yahoo.com> + + Handle screen size changes if the RandR library isn't available + + * src/xterm.c (handle_one_xevent): [!HAVE_XRANDR]: Store + MONITORS_CHANGED_EVENT upon root window reconfiguration. + +2022-05-22 Po Lu <luangruo@yahoo.com> + + Fix `gui-backend-selection-owner-p' on Haiku + + * src/haiku_select.cc (be_update_clipboard_count): New function. + (be_set_clipboard_data): Update clipboard counts. + (BClipboard_owns_clipboard, clipboard_owner_p) + (BClipboard_owns_primary, primary_owner_p) + (BClipboard_owns_secondary, secondary_owner_p): Rename functions + somewhat. + (be_clipboard_owner_p): New function. + * src/haikuselect.c (Fhaiku_selection_put) + (Fhaiku_selection_owner_p): Update selection counts as well. + * src/haikuselect.h: Update prototypes. + +2022-05-22 Po Lu <luangruo@yahoo.com> + + Use GDK for handling monitor changes when built with GTK + + * src/xterm.c (x_monitors_changed_cb): New function. + (handle_one_xevent): Don't handle RRNotify and + RRScreenChangeNotify on GTK. + (x_term_init): Connect to GdkScreen::monitors-changed instead of + selecting for RRNotify events. + (mark_xterm): Also mark `last_monitor_attributes_list' on GTK. + * src/xterm.h (struct x_display_info): Enable + `last_monitor_attributes_list' on GTK builds as well. + +2022-05-22 F. Jason Park <jp@neverwas.me> + + Recognize DCC SSEND when receiving files in erc-dcc + + * lisp/erc/erc-dcc.el (erc-dcc-open-network-stream): Use TLS + for new connections when :secure flag is set. + (erc-dcc-do-GET-command): Set secure flag when user explicitly passes + an "-s" option. + (erc-dcc-do-LIST-command): Show an "s" to indicate a secure connection + when applicable. + (erc-dcc-query-handler-alist): Add extra items for "SSEND", etc. + (erc-dcc-handle-ctcp-send): Set secure flag when a leading "S" appears + in the command type. + +2022-05-22 F. Jason Park <jp@neverwas.me> + + Accommodate nonstandard turbo file senders in erc-dcc + + * lisp/erc/erc-dcc.el (erc-dcc-list): Document optional :turbo item. + (erc-message-english-dcc-list-{head,line,item}): Adjust format strings + to make room for "(T)" turbo indicator. + (erc-dcc-do-GET-command): Optionally set :turbo in `erc-dcc-list' + entry when passed "-t" in the "/DCC GET" slash command. Also add + switch to command line in front-matter Commentary, but refrain from + publicizing further because our implementation is only defensive and + only for receiving. + (erc-dcc-do-LIST): Print message with new format specifier for turbo + status. + (erc-dcc-ctcp-query-send-regexp): Account for T- and S-prefixed + commands. Receiving from an SSEND-capable sender will be added in a + subsequent commit. + (erc-dcc-handle-ctcp-send): Set :turbo item in `erc-dcc-list' member + when new match group is nonempty. + (erc-dcc--X-send-final-turbo-ack): New internal variable and potential + future option for extreme corner cases involving maverick turbo + senders, like WeeChat, who don't use the TSEND command variant. + (erc-dcc-get-filter): Don't send when turbo is active. + + * test/lisp/erc/erc-dcc-tests.el: Add new file. + (Bug#54458) + +2022-05-22 F. Jason Park <jp@neverwas.me> + + Allow matching against string values in erc-dcc-member + + * lisp/erc/erc-dcc.el (erc-dcc-member): Be more tolerant in the + catch-all case by testing for equality instead of identity. + (erc-dcc-do-GET-command): Pass file name when querying + `erc-dcc-member'. (Bug#54458) + +2022-05-22 F. Jason Park <jp@neverwas.me> + + Don't send reports in erc-dcc-get-filter when nested + + * lisp/erc/erc-dcc.el (erc-dcc-get-filter): Don't bother sending a + "received so far" receipt if another attempt is still ongoing. + (Bug#54458) + +2022-05-22 F. Jason Park <jp@neverwas.me> + + Summarize failed transfers in erc-dcc + + * lisp/erc/erc-dcc.el (erc-dcc-get-sentinel): Display error when total + byte count received is lower than expected. + (erc-message-english-dcc-get-failed): Add `dcc-get-failed' to the + English messages catalog. + (erc-dcc-get-file): Tweak initialization of `erc-dcc-entry-data'. + (Bug#54458) + +2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/cedet/semantic/fw.el: Fix typo + +2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca> + + mode-local: Revert the deprecation of buffer-local overrides + + Obviously, I did not understand how the <foo>--install-parser was invoked. + + Revert "mode-local: Deprecate buffer-local overrides" + Revert "semantic-install-function-overrides: Declare obsolete" + Revert "wisent.el: Prefer `define-mode-local-override`" + + This reverts commits 91bc24c46768aab4a851c87edaea05c7476ff779, + d2e0d1452b976a51579cf044257326850804c562, and + 3294ad44ebcd024b4ada68d00bedca33acc52de6. + +2022-05-22 Lars Ingebrigtsen <larsi@gnus.org> + + Fix bytecomp-test--with-suppressed-warnings test + + * test/lisp/emacs-lisp/bytecomp-tests.el + (bytecomp-test--with-suppressed-warnings): Adjust test to change + in warning message. + +2022-05-22 Lars Ingebrigtsen <larsi@gnus.org> + + Fix previous warning suppression change + + * lisp/emacs-lisp/bytecomp.el (byte-compile-emit-callargs-warn) + (byte-compile-subr-wrong-args): + * lisp/emacs-lisp/byte-run.el (with-suppressed-warnings): + * lisp/cedet/semantic/fw.el (semantic-install-function-overrides): + The `wrong-args' warning is really called `callargs'. + +2022-05-22 Lars Ingebrigtsen <larsi@gnus.org> + + Fix compilation warning in semantic-install-function-overrides + + * lisp/cedet/semantic/fw.el (semantic-install-function-overrides): + Suppress message about wrong number of arguments. + +2022-05-22 Lars Ingebrigtsen <larsi@gnus.org> + + Allow suppressing messages about the wrong number of arguments + + * lisp/emacs-lisp/byte-run.el (with-suppressed-warnings): Add + `wrong-args'. + * lisp/emacs-lisp/bytecomp.el (byte-compile-emit-callargs-warn) + (byte-compile-subr-wrong-args): Allow suppressing wrong number of + arguments. + +2022-05-22 Juri Linkov <juri@linkov.net> + + Enable keys M-down, M-up, M-RET for in-buffer completion + + * lisp/minibuffer.el (completion-in-region-mode-map): Add keybindings M-<up> + for minibuffer-previous-completion, M-<down> for minibuffer-next-completion, + M-RET for minibuffer-choose-completion. + (completion-in-region-mode): Set buffer-local + 'minibuffer-completion-auto-choose' to nil. + (minibuffer-next-completion): Get the value of + 'minibuffer-completion-auto-choose' from the minibuffer. + (minibuffer-previous-completion): Simplify by delegating to + 'minibuffer-next-completion'. + + * doc/emacs/programs.texi (Symbol Completion): Add description of keys + M-down, M-up, M-RET. + + https://lists.gnu.org/archive/html/emacs-devel/2022-05/msg00916.html + +2022-05-22 Alan Mackenzie <acm@muc.de> + + CC Mode: Restore string fence properties at each relevant external entry point + + This fixes bug #55230. + + * lisp/progmodes/cc-defs.el (c-string-fences-set-flag, c-with-string-fences): + New variable and macro. + + * lisp/progmodes/cc-mode.el (c-called-from-text-property-change-p): Add + remove-text-properties to the list of accepted functions. + (c-clear-string-fences, c-restore-string-fences): Surround the functions' + innards with c-save-buffer-state to prevent text property changes causing + change functions to be called. + (c-before-change, c-after-change, c-font-lock-fontify-region): Replace the + explicit calls to c-restore-string-fences and c-clear-string-fences with + invocations of the new macro c-with-string-fences. + + * lisp/progmodes/cc-awk.el (c-awk-extend-and-syntax-tablify-region) + (c-awk-end-of-defun) + * lisp/progmodes/cc-cmds.el (c-show-syntactic-information) + (c-electric-backspace, c-hungry-delete-backwards, c-electric-delete-forward) + (c-hungry-delete-forward, c-electric-pound, c-electric-brace) + (c-electric-slash, c-electric-star, c-electric-semi&comma, c-electric-colon) + (c-electric-lt-gt, c-electric-paren, c-beginning-of-defun, c-end-of-defun) + (c-display-defun-name, c-mark-function, c-beginning-of-statement) + (c-end-of-statement, c-indent-command, c-indent-exp, c-indent-defun) + (c-indent-line-or-region, c-fill-paragraph, c-indent-new-comment-line) + (c-context-line-break) + * lisp/progmodes/cc-guess.el (c-guess-region-no-install): These are all + "boundary" functions to CC Mode. Surround each by c-with-string-fences. + +2022-05-22 kobarity <kobarity@gmail.com> + + Don't font-lock invalid invalid class/function names + + * lisp/progmodes/python.el (python-font-lock-keywords-level-1): + Don't font-lock invalid invalid class/function names (bug#55573). + +2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca> + + mode-local: Deprecate buffer-local overrides + + * lisp/cedet/mode-local.el (mode-local-bind): Make all args mandatory. + Deprecate the use of a nil `mode` argument. + +2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca> + + semantic-install-function-overrides: Declare obsolete + + * lisp/cedet/semantic/fw.el (semantic-install-function-overrides): + Declare obsolete. + +2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca> + + wisent.el: Prefer `define-mode-local-override` + + * lisp/cedet/semantic/wisent.el (wisent--parse-stream): Rename from + `wisent-parse-stream` and mark the old name obsolete. + (semantic-parse-stream): Override with `define-mode-local-override`. + + * lisp/cedet/semantic/wisent/grammar.el + (semantic-grammar-setupcode-builder): Don't override + `semantic-parse-stream` manually here via + `semantic-install-function-overrides`. + + * lisp/cedet/semantic/grm-wy-boot.el: Refresh. + +2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca> + + wisent/grammar.el: Prefer `define-mode-local-override` + + * lisp/cedet/semantic/wisent/grammar.el + (semantic-grammar-parsetable-builder, semantic-grammar-setupcode-builder): + Override with `define-mode-local-override`. + (wisent-grammar-mode): Don't override them with + `semantic-install-function-overrides`. + +2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca> + + cedet/html.el: Prefer `define-mode-local-override` + + * lisp/cedet/semantic/html.el (semantic-tag-components): Override via + `define-mode-local-override`. + (semantic-default-html-setup): Don't override via + `semantic-install-function-overrides`. + +2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca> + + bovine/grammar.el: Prefer `define-mode-local-override` + + * lisp/cedet/semantic/bovine/grammar.el + (semantic-grammar-parsetable-builder, semantic-grammar-setupcode-builder): + Override with `define-mode-local-override`. + (bovine-grammar-mode): Don't override them with + `semantic-install-function-overrides`. + +2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca> + + cedet/texi.el: prefer `define-mode-local-override` + + * lisp/cedet/semantic/texi.el (semantic-parse-region) + (semantic-parse-changes): Override with `define-mode-local-override`. + (semantic-default-texi-setup): Don't override them with + `semantic-install-function-overrides`. + +2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca> + + comp.el: Cosmetic changes + + * lisp/emacs-lisp/comp.el (comp-run-async-workers): Tweak code. + (comp-run-async-workers): Don't set `buffer-read-only` directly. + (native--compile-async): Fix misuse of "path". + +2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca> + + Run `minibuffer-exit-hook` in the right buffer + + * src/minibuf.c (run_exit_minibuf_hook): Take the minibuffer as arg + and run the hook in that buffer. + (read_minibuf): Adjust accordingly. + +2022-05-22 Michael Albinus <michael.albinus@gmx.de> + + * lisp/window.el (display-buffer-avoid-small-windows): Fix :type. + +2022-05-22 Po Lu <luangruo@yahoo.com> + + Clean up Haiku code + + * src/haiku_support.cc (movement_locker, class EmacsWindow) + (MouseMoved): Delete `movement_locker' and associated hack, + since it's superseded by some code in haiku_read_socket. + (key_map, key_chars, dpy_color_space, popup_track_message) + (alert_popup_value, grab_view, grab_view_locker) + (drag_and_drop_in_progress): Write comments and fix + initializers. + + * src/haikuterm.c (haiku_read_socket): Update comment. + +2022-05-22 kobarity <kobarity@gmail.com> + + Fix two typos in comments in python.el + + * lisp/progmodes/python.el + (python-font-lock-keywords-maximum-decoration): Fix typos in + comments (bug#55557). + +2022-05-22 Damien Cassou <damien@cassou.me> + + Fix submit-emacs-patch + + submit-emacs-patch creates a new message and immediately inserts new + lines without first moving the point to the message body. This + doesn't work with notmuch (and its notmuch-user-agent symbol) because + the point starts in the headers and nothing in Emacs specifies that + the mua should move point to the body automatically. + + * lisp/mail/emacsbug.el (submit-emacs-patch): Make sure point is in + the body before inserting new lines (bug#55571). + +2022-05-22 Lele Gaifax <lele@metapensiero.it> + + Properly indent Python PEP634 match/case blocks + + Python 3.10 introduced the "structural pattern matching" syntax, and + commit 139042eb8629e6fd49b2c3002a8fc4d1aabd174d told font-lock about the + new keywords. This adds them also as block-start statements, to enable + proper indentation of such blocks. + + * lisp/progmodes/python.el (python-rx): Add "match" and "case" as + block-start keywords. + * test/lisp/progmodes/python-tests.el (python-indent-after-match-block, + python-indent-after-case-block): New tests to verify indentation of + "match" and "case" blocks (bug#55572). + +2022-05-22 Po Lu <luangruo@yahoo.com> + + Implement `display-monitors-changed-functions' on MS Windows + + * src/w32term.c (w32_read_socket): Handle WM_DISPLAYCHANGE by + sending monitor change events. + +2022-05-22 Damien Cassou <damien@cassou.me> + + Improve documentation of mail-user-agent. + + * doc/emacs/sending.texi (Mail Methods): + * lisp/simple.el (mail-user-agent): Mention additional options + of non-bundled MUA. (Bug#5569) + +2022-05-22 Po Lu <luangruo@yahoo.com> + + Fix uninitialized use of xm drag receiver data + + * src/xterm.c (xm_read_drag_receiver_info): Just return if the + protocol is invalid. Reported by Jashank Jeremy + <jashank@rulingia.com.au>. + +2022-05-22 Po Lu <luangruo@yahoo.com> + + Fix build with --enable-check-lisp-object-type + + * src/xterm.c (handle_one_xevent): Fix use of Fequal. Reported + by Jashank Jeremy <jashank@rulingia.com.au>. + +2022-05-22 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add support for the Tagalog script + + * lisp/language/philippine.el ("Tagalog"): New language environment. + Add composition rules for Tagalog. Add sample text and input + method. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Tagalog. + * lisp/leim/quail/philippine.el ("tagalog"): New input method. + * lisp/loadup.el: Preload lisp/language/philippine.el. + + * etc/HELLO: Add a Tagalog greeting. + * etc/NEWS: Announce the new language environment and its + input method. + (Bug#55529) + +2022-05-22 Po Lu <luangruo@yahoo.com> + + Fix use-after-free in x_destroy_window + + * src/xterm.c (x_destroy_window): Fix use after free of the + dpyinfo. + +2022-05-22 Po Lu <luangruo@yahoo.com> + + Fix focus redirection to/from surrogate minibuffer frames on Haiku + + * src/haikuterm.c (haiku_get_focus_frame): New function. + (haiku_create_terminal): Register new hook. + +2022-05-21 Po Lu <luangruo@yahoo.com> + + Fix GNUstep build + + * src/nsfns.m (ns_implicitly_set_icon_type): Don't use UTType if + GNUstep. + +2022-05-21 Po Lu <luangruo@yahoo.com> + + Fix compiler warnings on Mac OS X 10.12 + + * configure.ac: Check for Mac OS X 12 and link with + UniformTypeIdentifiers.framework. + + * src/nsfns.m (IOMasterPort): Define to `IOMainPort' on Mac OS X + 12. + (ns_implicitly_set_icon_type, Fns_read_file_name): + * src/nsxwidget.m: ([XwWebView + initWithFrame:configuration:xwidget:]): Fix uses of obsolete + things. + +2022-05-21 Po Lu <luangruo@yahoo.com> + + Set display size upon RRScreenChangeNotify + + * src/xterm.c (handle_one_xevent): Handle RRScreenChangeNotify + correctly. + +2022-05-21 Po Lu <luangruo@yahoo.com> + + Don't unnecessarily call monitor change functions + + * src/xterm.c (handle_one_xevent): If monitor attributes didn't + change, don't send monitor change event. + (x_term_init, mark_xterm): Mark and init new field. + * src/xterm.h (struct x_display_info): New field + `last_monitor_attributes_list'. + +2022-05-21 Eli Zaretskii <eliz@gnu.org> + + More fixes in abbrev.el doc strings + + * lisp/abbrev.el (inverse-add-global-abbrev, inverse-add-mode-abbrev): + Document the effect of negative ARG. (Bug#55527) + +2022-05-21 Michael Albinus <michael.albinus@gmx.de> + + Some cleanups in tramp-tests.el + + * test/lisp/net/tramp-tests.el (tramp-fuse-remove-hidden-files): Declare. + (tramp-test16-directory-files) + (tramp-test16-file-expand-wildcards) + (tramp-test26-file-name-completion, tramp--test-check-files): Use it. + (tramp--test-check-files): Delete directory recursively. + (tramp-test43-file-system-info): Make test more robust. + +2022-05-21 kobarity <kobarity@gmail.com> + + Fix recently introduced Python font lock breakage of chained assignments + + * lisp/progmodes/python.el (python-font-lock-assignment-matcher): + Fix fontification of chained assignments (bug#54992). + +2022-05-21 Michael Albinus <michael.albinus@gmx.de> + + Merge from origin/emacs-28 + + f836ed098f Some minor Tramp fixes + +2022-05-21 Lars Ingebrigtsen <larsi@gnus.org> + + Add new hooks when enabling and disabling themes + + * lisp/custom.el (enable-theme-hook, disable-theme-hook): New + hooks (bug#37802). + (enable-theme, disable-theme): Call them. + +2022-05-21 Lars Ingebrigtsen <larsi@gnus.org> + + Add note about Tramp completion to completion-styles doc string + + * lisp/minibuffer.el (completion-styles): Add note about Tramp + completion (bug#37954). + +2022-05-21 Arash Esbati <arash@gnu.org> + + Remove mention of removed nnimap-nov-is-evil variable + + * doc/misc/gnus.texi (Slow/Expensive Connection): Remove mention + of removed nnimap-nov-is-evil variable (bug#55556). + +2022-05-21 Tino Calancha <tino.calancha@gmail.com> + + zap-to-char: case sensitive for upper-case characters + + In interactive calls, behave case-sensitively if the given char + is an upper-case character. Same for zap-up-to-char (Bug#54804). + + This is analog to what the user-level incremental search feature does. + + * lisp/misc.el (zap-up-to-char): Add an optional arg INTERACTIVE. + Perform a case-sensitive search when INTERACTIVE is non-nil and + CHAR is an upper-case character. + * lisp/simple.el (zap-to-char): Same. + + * etc/NEWS (Editing Changes in Emacs 29.1): Announce this change. + * test/lisp/misc-tests.el (misc-test-zap-up-to-char): Add test cases. + * test/lisp/simple-tests.el (with-zap-to-char-test): Add helper macro. + (simple-tests-zap-to-char): Add a test. + +2022-05-21 Po Lu <luangruo@yahoo.com> + + Improve doc for `display-monitors-changed-functions' + + * doc/lispref/frames.texi (Multiple Terminals): Describe how to + retrieve the new monitor configuration inside + `display-monitor-attributes-list'. + +2022-05-21 Eli Zaretskii <eliz@gnu.org> + + Improve documentation strings and prompts in abbrev.el + + * lisp/abbrev.el (abbrev-file-name, only-global-abbrevs) + (copy-abbrev-table, insert-abbrevs, list-abbrevs) + (abbrev-table-name, edit-abbrevs, define-abbrevs) + (read-abbrev-file, quietly-read-abbrev-file, write-abbrev-file) + (abbrev-edit-save-to-file, abbrev-edit-save-buffer) + (add-mode-abbrev, add-global-abbrev, inverse-add-mode-abbrev) + (inverse-add-global-abbrev, abbrev-prefix-mark) + (expand-region-abbrevs, abbrev-table-get, abbrev-table-put) + (abbrev-get, abbrev-minor-mode-table-alist, abbrevs-changed) + (abbrev-all-caps, last-abbrev-text, last-abbrev-location) + (clear-abbrev-table, define-abbrev, define-global-abbrev) + (define-mode-abbrev, abbrev--active-tables, abbrev--symbol) + (abbrev-symbol, abbrev-expansion, abbrev-insert) + (abbrev-expand-function, abbrev--suggest-above-threshold) + (abbrev--suggest-saved-recommendations) + (abbrev--suggest-shortest-abbrev, abbrev--suggest-get-totals) + (insert-abbrev-table-description, define-abbrev-table) + (abbrev-table-menu): Fix doc strings: wording, punctuation, + clarity. + (add-abbrev, inverse-add-abbrev): Improve the prompt text. + (Bug#55527) + +2022-05-21 Po Lu <luangruo@yahoo.com> + + Fix compiler warnings in printer code on 32-bit systems + + * print.c (enum print_entry_type, struct print_stack_entry): + Clean up coding style. + (struct print_stack): Make print_stack_entry.list.idx intmax_t, + like it was before the nonrecursive printing was installed. + Also clarify what "Brent cycle detection" means in the comments. + +2022-05-21 Po Lu <luangruo@yahoo.com> + + Compute frame workareas on Haiku + + * lisp/frame.el (display-monitor-attributes-list): Implement + specially on Haiku as well. + * src/haiku_support.cc (get_zoom_rect): New function. Extract + CalculateZoomRect here. + (class EmacsWindow, SetFullscreen): Use that instead of + CalculateZoomRect. + (be_get_explicit_workarea): New function. + * src/haiku_support.h: Update prototypes. + * src/haikufns.c (Fhaiku_display_monitor_attributes_list): New + function. + (syms_of_haikufns): Register new subr. + +2022-05-20 Po Lu <luangruo@yahoo.com> + + Implement monitor change hooks on NS + + This hasn't been tested with anything more complicated than + removing an emulated monitor. + + * nsterm.m (ns_displays_reconfigured): New function. + (ns_term_init): Register display reconfiguration callbacks. + +2022-05-20 Po Lu <luangruo@yahoo.com> + + Call XRRUpdateConfiguration when the root window geometry changes + + * src/xterm.c (handle_one_xevent): Call XRRUpdateConfiguration + on RRScreenChangeNotify and upon ConfigureNotify events for the + root window. + +2022-05-20 Po Lu <luangruo@yahoo.com> + + Implement `display-monitors-changed-hook' on PGTK + + * src/pgtkterm.c (pgtk_draw_glyphless_glyph_string_foreground): + Pacify GCC 12. + (pgtk_monitors_changed_cb): New function. + (pgtk_term_init): Attach new signal handler. + +2022-05-20 Po Lu <luangruo@yahoo.com> + + Add a hook run upon monitor configuration changes + + * doc/lispref/frames.texi (Multiple Terminals): Document new + hook `display-monitors-changed-functions'. + * etc/NEWS: Announce new abnormal hook. + + * src/keyboard.c (kbd_buffer_get_event): Handle + MONITORS_CHANGED_EVENT. + (syms_of_keyboard): New hook and defsyms. + * src/termhooks.h (enum event_kind): Add new event + `MONITORS_CHANGED_EVENT'. + + * src/xterm.c (handle_one_xevent): Handle RRNotify and + RRScreenChangeNotify events. + (x_term_init): Select for RRScreenChange, RRCrtcChange and + RROutputChange. + * src/xterm.h (struct x_display_info): Improve RandR version + detection. + +2022-05-20 Alan Mackenzie <acm@muc.de> + + Restore the Fselect_window call in gui_consider_frame_title. + + This fixes bug #55412. The call to Fselect_window was removed on 2021-03-21 + in the commit "Prevent open minibuffers getting lost when their frame gets + deleted". This call is actually needed to determine current elements of the + pertinent window and frame when these are used in the frame title. + + * src/frame.c (do_switch_frame): When the selected window in the target frame + is the mini-window, switch away from this window unless there is a valid + minibuffer there. + + * src/frame.h (struct frame): Add an incidental comment about the element + selected_window. + + * src/minibuf.c (move_minibuffers_onto_frame): No longer set the selected + window of the source frame. This action is now performed later, on returning + to that frame, in do_switch_frame when needed (see above). + + * src/xdisp.c (gui_consider_frame_title): Replace the Fselect_window call and + associated ancillary settings. + +2022-05-20 Stefan Kangas <stefan@marxist.se> + + Remove compat code; assume imenu.el exists + + * lisp/progmodes/antlr-mode.el (antlr-mode): + * lisp/progmodes/cperl-mode.el (cperl-menu): + * lisp/progmodes/f90.el (f90-mode-map): + * lisp/progmodes/fortran.el (fortran-menu): + * lisp/speedbar.el (speedbar-use-imenu-flag): Remove compat code; + assume imenu.el exists. + +2022-05-20 Eli Zaretskii <eliz@gnu.org> + + Advise against settings in the MS-Windows system registry + + * doc/emacs/cmdargs.texi (MS-Windows Registry): Advise against + setting environment variables in the system registry. (Bug#16429) + +2022-05-20 Po Lu <luangruo@yahoo.com> + + Check for allocation errors when setting XdndActionDescription + + * src/xterm.c (x_dnd_begin_drag_and_drop): Check for BadAlloc + when setting action descriptions. + +2022-05-20 Eli Zaretskii <eliz@gnu.org> + + Document 'enriched-toggle-markup' + + * etc/enriched.txt: Document the new 'enriched-toggle-markup' + command. (Bug#33855) + +2022-05-20 Lars Ingebrigtsen <larsi@gnus.org> + + Add new user option display-buffer-avoid-small-windows + + * doc/lispref/windows.texi (Choosing Window Options): Document it. + * lisp/window.el (display-buffer-avoid-small-windows): New user + option (bug#10186). + (get-lru-window): Use it. + +2022-05-20 Lars Ingebrigtsen <larsi@gnus.org> + + Clarify select-active-regions doc string + + * src/keyboard.c (syms_of_keyboard): Clarify doc string (bug#29889). + +2022-05-20 Po Lu <luangruo@yahoo.com> + + Fix race conditions processing zoom events on Haiku + + * src/haiku_support.cc (Zoom): + * src/haiku_support.h (struct haiku_zoom_event): Include the + current fullscreen mode in the event. + + * src/haikuterm.c (haiku_read_socket): Use that instead of the + current frame's fullscreen mode. + +2022-05-20 Lars Ingebrigtsen <larsi@gnus.org> + + Re-fix previous `&' dired change + + * lisp/dired-aux.el (dired-shell-stuff-it): Re-fix the previous + change -- the &wait was in the wrong place (bug#36331). + +2022-05-20 Philip Kaludercic <philipk@posteo.net> + + Add option to kill a shell buffer when the process ends + + * shell.el (shell-kill-buffer-on-quit): Add new option (bug#55426). + (shell): Respect 'shell-kill-buffer-on-quit'. + * NEWS: Mention 'shell-kill-buffer-on-quit'. + +2022-05-20 Po Lu <luangruo@yahoo.com> + + Fix NS port warnings with GCC 12 + + * src/nsterm.m (ns_draw_glyphless_glyph_string_foreground): + Clear s->char2b after function returns. + +2022-05-20 Po Lu <luangruo@yahoo.com> + + Remove flickering when toggling between different fullscreen states on Haiku + + * src/haiku_support.cc (FrameMoved): Don't allow moving the + frame along the "filled" axis when fullwidth or fullheight. + (ClearFullscreen): New argument `mode'. Return the previous + rect but don't revert the frame to it if the target mode is not + NONE. + (SetFullscreen): Use rect provided by ClearFullscreen instead. + +2022-05-19 Po Lu <luangruo@yahoo.com> + + Minor cleanups to X drag-and-drop code + + * src/xterm.c (struct x_client_list_window): Write comments + describing the meaning of each field. + (XM_DRAG_PROTOCOL_VERSION, xm_setup_dnd_targets) + (xm_setup_drag_info, xm_read_drag_receiver_info) + (x_dnd_compute_toplevels): Don't hard-code the supported Motif + protocol version. + +2022-05-19 Po Lu <luangruo@yahoo.com> + + Implement `cross-disabled-images' on Haiku + + * src/haiku_draw_support.cc (be_draw_cross_on_pixmap_1) + (be_draw_cross_on_pixmap): New functions. + + * src/haiku_support.h: Update prototypes. + + * src/image.c (image_pixmap_draw_cross, image_disable_image): + Implement drawing cross on Haiku. + +2022-05-19 Lars Ingebrigtsen <larsi@gnus.org> + + Rename compare-window-configurations and update doc + + * doc/lispref/windows.texi (Window Configurations): Update name. + * lisp/strokes.el (strokes-window-configuration-changed-p): + * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Update + callers and references. + + * lisp/subr.el (compare-window-configurations): Make into obsolete + alias. + + * src/window.c (Fwindow_configuration_equal_p): Rename (bug#14964). + +2022-05-19 Theodor Thornhill <theo@thornhill.no> + + Fix typo and argument in treesit-beginning-of-defun, etc + + * lisp/treesit.el (treesit-beginning-of-defun, treesit-end-of-defun): + Fix typo, add shield for argument. + +2022-05-19 Lars Ingebrigtsen <larsi@gnus.org> + + Don't have the tutorial ask to save if we haven't moved + + * lisp/tutorial.el (tutorial--save-on-kill): Don't ask if the user + hasn't moved point (bug#37326). + (help-with-tutorial): Set the start point. + +2022-05-19 Po Lu <luangruo@yahoo.com> + + Implement more data type conversions for Haiku selections + + * src/haikuselect.c (haiku_message_to_lisp): + (lisp_to_type_code): + (haiku_lisp_to_message): + (Fhaiku_drag_message): Recognize `double' and `float' types. + (syms_of_haikuselect): New defsyms. + +2022-05-19 Lars Ingebrigtsen <larsi@gnus.org> + + Fix font-locking of (defun foo (function ...)) + + * lisp/emacs-lisp/lisp-mode.el (lisp--el-funcall-position-p): + Don't colorize the `function' in (defun foo (function ...)) as a + special form (bug#37074). + +2022-05-19 Lars Ingebrigtsen <larsi@gnus.org> + + Make diff--font-lock-prettify do less if we don't have a left fringe + + * lisp/vc/diff-mode.el (diff--font-lock-prettify): Don't remove + insert/deletions from the buffer if we don't have a left fringe + (bug#37019). + +2022-05-19 Lars Ingebrigtsen <larsi@gnus.org> + + Add a new command 'yank-in-context' + + * lisp/simple.el (escaped-string-quote): New variable. + (yank-in-context): New command. + (yank-in-context--transform): Helper function. + + * lisp/progmodes/sh-script.el (sh-mode): Set up an + escaped-string-quote function. + * lisp/progmodes/sql.el (sql-mode): Define escaped-string-quote. + +2022-05-19 Po Lu <luangruo@yahoo.com> + + Fix session management detection of the first X display + + * src/xterm.c (x_term_init): Check that there is no other + display in the chain instead of testing the terminal ID. + +2022-05-19 Lars Ingebrigtsen <larsi@gnus.org> + + Clarify yank-transform-functions doc string + + * lisp/simple.el (yank-transform-functions): Clarify calling + convention. + +2022-05-19 Lars Ingebrigtsen <larsi@gnus.org> + + Make completion in emacs-lisp-mode intern fewer symbols + + * lisp/progmodes/elisp-mode.el (elisp-completion-at-point): Don't + intern the string before point just to check whether we're looking + at `ignore-error' (bug#55491). + +2022-05-19 Lars Ingebrigtsen <larsi@gnus.org> + + Make `&' in dired be more consistent wrt. user input + + * lisp/dired-aux.el (dired-do-async-shell-command): Mention that + commands here don't accept input. + +2022-05-19 Lars Ingebrigtsen <larsi@gnus.org> + + Add new command 'enriched-toggle-markup' + + * lisp/textmodes/enriched.el (enriched-toggle-markup): New command + (bug#33855). + +2022-05-19 Lars Ingebrigtsen <larsi@gnus.org> + + Add new user option 'yank-transform-functions' + + * doc/lispref/text.texi (Yanking): Mention it. + (Yanking): Document it. + + * lisp/simple.el (yank-transform-functions): New user option. + (yank): Mention it. + + * lisp/subr.el (insert-for-yank): Use it. + +2022-05-19 Eli Zaretskii <eliz@gnu.org> + + Provide Oriya language-environment alongside Odia + + * lisp/language/indian.el ("Oriya"): Add another name for the Odia + language-environment. (Bug#55493) + +2022-05-19 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Rename Oriya to Odia, and more + + Due to "The Orissa (Alteration of Name) Act, 2011" + (https://legislative.gov.in/sites/default/files/A2011-15.pdf) + Oriya has been renamed to Odia. + + * lisp/language/indian.el (set-language-info-alist): Rename + Oriya to Odia. Improve Oriya composition rules. + * lisp/leim/quail/indian.el ("odia"): New input method. + * lisp/erc/erc-lang.el: Obsolete the iso-638-languages variable + (which was a typo) and replace it with iso-639-1-languages. + + * etc/HELLO: Rename Oriya to Odia. + Replace the old Odia greeting with the new one. + Add a Hindi greeting separate from the Devanagari one. + (Bug#55493) + +2022-05-19 Po Lu <luangruo@yahoo.com> + + Whitelist some incorrectly labeled "color" fonts under Xft + + * etc/PROBLEMS: Document problem with fonts incorrectly labeled + as color fonts under Xft. + + * src/ftfont.c (xft_color_font_whitelisted_p): New function. + (ftfont_spec_pattern, ftfont_list): Respect whitelisting of + "color" fonts under Xft. + * src/xftfont.c (syms_of_xftfont): New variable + `xft-color-font-whitelist'. + +2022-05-19 Po Lu <luangruo@yahoo.com> + + Fix tooltip buffer flipping inside popup menus + + * src/xterm.c (x_flip_and_flush): Don't ignore if + `inhibit-redisplay' but F is a tooltip frame. (bug#55519) + +2022-05-19 Po Lu <luangruo@yahoo.com> + + Fix error handling when allowing touch events + + * src/xterm.c (handle_one_xevent): Catch errors correctly when + linking touch points. + +2022-05-19 João Távora <joaotavora@gmail.com> + + Don't ignore flymake-no-changes-timeout + + Also per https://github.com/joaotavora/eglot/issues/957. + + Only actually and eagerly report LSP diagnostics if the user has + Flymake starting automatically on a timer (flymake-no-changes-timeout + is a number). + + By contrast, if flymake-no-changes-timeout is nil, the user starts the + diagnostic collection process on-demand via 'M-x flymake-start'. + + Since the control of such collection is impossible with LSP, we should + just hold on to whatever diagnostics we have (which are presumably + up-to-date) until the next invocation of 'eglot-flymake-backend'. + + For now, this doesn't affect Flymake "list-only" diagnostics. Those + are reported via the 'flymake-list-only-diagonstics' variable and + are always communicated immediately to it. + + * eglot.el: (eglot-handle-notification + textDocument/publishDiagnostics): Consult flymake-no-changes-timeout. + + Suggested-by: Jim Davis <jim.jd.davis@gmail.com> + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/508 + +2022-05-19 Eli Zaretskii <eliz@gnu.org> + + Fix Flymake diagnostics reporting in non-UTF-8 locales + + * lisp/progmodes/elisp-mode.el (elisp-flymake-byte-compile) + (elisp-flymake--batch-compile-for-flymake): Bind I/O encoding to + UTF-8, instead of relying on the locale's defaults. This is + needed because ELisp files use UTF-8 by default, but Flymake + doesn't know about that, since it isn't specific to ELisp. + +2022-05-19 Po Lu <luangruo@yahoo.com> + + Fix specifying terminal names to some functions on Haiku + + * src/haikufns.c (haiku_display_info_for_name): Implement + correctly. + +2022-05-19 Po Lu <luangruo@yahoo.com> + + Satisfy Valgrind when iconifying frames + + * src/xterm.c (x_iconify_frame): Set the rest of data in the + WM_CHANGE_STATE message to 0 instead of leaving it + uninitialized. + +2022-05-18 Po Lu <luangruo@yahoo.com> + + Fix race conditions processing frame fullscreen state on Haiku + + * doc/lispref/frames.texi (Size Parameters): Remove note saying + Haiku doesn't support `fullwidth' and `fullboth'. + + * src/haiku_support.cc (subset_windows, class EmacsWindow) + (Unparent, ParentTo): Stop calling old fullscreen functions. + (ClearFullscreen, FullscreenRectForMode, SetFullscreen): New + functions. Completely rewrite old zoom and fullscreen handling + code. + (Zoom): Send a ZOOM_EVENT and don't actually zoom. + (BWindow_zoom, EmacsWindow_make_fullscreen, EmacsWindow_unzoom): + Delete functions. + (be_set_window_fullscreen_mode): New function. + + * src/haiku_support.h (struct haiku_zoom_event): Remove + `zoomed_p' parameter. + (enum haiku_fullscreen_mode): New enum. Update prototypes. + + * src/haikufns.c (Fx_display_pixel_height): Return height + instead of width. + + * src/haikuterm.c (haiku_make_fullscreen_consistent) + (haiku_read_socket, haiku_fullscreen): Adjust to always set zoom + and fullscreen in the main thread instead of the UI threads. + + * src/haikuterm.h (struct haiku_output): Remove flag `zoomed_p' + and add field `fullscreen_mode'. + +2022-05-18 Po Lu <luangruo@yahoo.com> + + Respond to changes to the size of the root window + + * src/xterm.c (x_display_pixel_height, x_display_pixel_width): + Move here instead. + (handle_one_xevent): Handle ConfigureNotify for the root window. + (x_term_init): Select for structure events on the root window. + + * src/xterm.h (struct x_display_info): New fields `screen_width' + and `screen_height'. + (x_display_pixel_height, x_display_pixel_width): Make + prototypes. + +2022-05-18 Stefan Kangas <stefan@marxist.se> + + Delete entry on SPC completes file names from FAQ + + * doc/misc/efaq.texi (SPC no longer completes file names): Delete + node: this is about a change that took place over 15 years ago and is + not likely to be a FAQ these days. + +2022-05-18 Stefan Kangas <stefan@marxist.se> + + Don't refer to obsolete Ultrix support in FAQ + + * doc/misc/efaq.texi (Meta key does not work in xterm): Delete + reference to Ultrix; that platform support was removed in Emacs 23.1. + +2022-05-18 Paul Eggert <eggert@day> + + Avoid formatting twice in flymake + + * lisp/progmodes/flymake.el (flymake-error): Don't format a + message twice, as that can translate quotes we don't want + translated. + +2022-05-18 Augusto Stoffel <arstoffel@gmail.com> + + Fix last change in minibuffer-lazy-highlight-setup + + * lisp/isearch.el (minibuffer-lazy-highlight-setup): Apply advices + buffer-locally. + +2022-05-18 Lars Ingebrigtsen <larsi@gnus.org> + + Add a new display-buffer-full-frame display action + + * doc/lispref/windows.texi (Buffer Display Action Functions): + Document it. + + * lisp/window.el (display-buffer-full-frame): New display action + (bug#34169). + (display-buffer--action-function-custom-type): Add. + (display-buffer): Mention it. + +2022-05-18 Lars Ingebrigtsen <larsi@gnus.org> + + Mention next-error-function in flymake-mode doc string + + * lisp/progmodes/flymake.el (flymake-mode): Note that you can set + next-error-function (bug#32322). + +2022-05-18 Po Lu <luangruo@yahoo.com> + + Implement gamma-correction on Haiku + + * src/dispextern.h: Add `gamma_correct' prototype on Haiku as + well. + * src/haikufns.c (gamma_correct): New function. + * src/haikuterm.c (haiku_defined_color): Gamma-correct colors if + their pixels are being allocated. + +2022-05-18 Lars Ingebrigtsen <larsi@gnus.org> + + Improve previous apropos-documentation-check-elc-file change + + * lisp/apropos.el (apropos-documentation-check-elc-file): Add + comment to explain what's going on and expand to lisp-directory + (bug#55492). + +2022-05-18 Alan Mackenzie <acm@muc.de> + + Fix M-x compile-defun when an interactive form is (list ...) + + This is for when lexical-binding is nil. The problem fixed was M-x + compile-defun leaving symbols with position in the compiled function's arglist + and interactive form. This fixes bug #55323. Also ensure the doc string is + correctly stripped when lexical-binding is t. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): For a (list ...) + interactive form when lexical-binding is nil, strip the positions from the + symbols in the form. Also strip the position from the symbols in the arglist. + (byte-compile-make-closure): (Twice) strip symbols from positions in the doc + string expression. Add comments. + +2022-05-18 Martin Rudalics <rudalics@gmx.at> + + Clean up and simplify 'quit-restore-window' code + + * lisp/window.el (window--quit-restore-select-window): New internal + name for 'quit-restore-select-window'. + (quit-restore-window): Use 'window--quit-restore-select-window' + instead of 'quit-restore-select-window'. Simplify code. + +2022-05-18 Mattias Engdegård <mattiase@acm.org> + + Make printing mostly non-recursive (bug#55481) + + Introduce explicit stacks for traversing common data types during + printing: conses, vectors, records, byte-code, hash-tables and + char-tables, all previously traversed using recursion in C. This + greatly reduces the risk of crashing Emacs from C stack overflow + when printing deeply nested data. + + * src/print.c (Fprinc, print, PRINT_CIRCLE_CANDIDATE_P): + Special-case Fprinc with a plain string argument to eliminate the need + for keeping track of print_depth during the preprocessing phase. + This also improves performance. + (struct print_pp_entry, struct print_pp_stack, ppstack) + (grow_pp_stack, pp_stack_push_value, pp_stack_push_values) + (pp_stack_empty_p, pp_stack_pop): + New stack for preprocessing. + (print_preprocess): + Make mostly nonrecursive, except for string properties. + (enum print_entry_type, struct print_stack_entry) + (struct print_stack, prstack, grow_print_stack) + (print_stack_push, print_stack_push_vector): + New stack for printing. + (print_vectorlike, print_object): + Make mostly nonrecursive, except for string properties and some less + heavily used types. + * test/src/print-tests.el (print-deeply-nested): + New test. + +2022-05-18 Po Lu <luangruo@yahoo.com> + + Avoid dismissing GTK+ popup menus upon wheel movement + + * src/xterm.c (handle_one_xevent): Don't forward XI button + events for wheel buttons to GTK+ when a popup menu is active. + +2022-05-18 Po Lu <luangruo@yahoo.com> + + Fix race conditions when calculating Haiku frame geometry + + * src/haiku_support.cc (be_lock_window, be_unlock_window): New + functions. + * src/haiku_support.h: Update prototypes. + + * src/haikufns.c (frame_geometry): Lock window before asking for + its dimensions and frame. + +2022-05-17 Po Lu <luangruo@yahoo.com> + + Don't allow moving fullscreen frames on Haiku + + * src/haikuterm.c (haiku_set_window_size): Fix typo in comment. + (haiku_set_offset): Prevent offset from changing in fullboth + frames. + +2022-05-17 Po Lu <luangruo@yahoo.com> + + Fix a crash when an X connection is dropped in some situations + + * src/xterm.c (x_flip_and_flush): Don't try to flush if + `inhibit-redisplay' is t. + +2022-05-17 Lars Ingebrigtsen <larsi@gnus.org> + + Fix apropos-documentation with universal argument + + * lisp/apropos.el (apropos-documentation-check-elc-file): Look up + .elc files in the load path (and don't bug out on deleted .elc + files) (bug#55492). + +2022-05-17 Stefan Kangas <stefan@marxist.se> + + Recommend Wikipedia over Usenet in FAQ + + * doc/misc/efaq.texi (Origin of the term Emacs): Recommend + Wikipedia over Usenet to find out more about TECO. + +2022-05-17 Stefan Kangas <stefan@marxist.se> + + Remove some ancient Emacs compat code + + * lisp/cedet/mode-local.el (mode-local-describe-bindings-1): + * lisp/cedet/semantic/senator.el (senator-copy-tag-to-register): + * lisp/gnus/nnrss.el (nnrss-opml-export): + * lisp/net/newst-backend.el (newsticker-opml-export): + * lisp/textmodes/reftex.el (reftex-mode-menu): + * lisp/woman.el (woman-menu): Remove some ancient Emacs compat code. + +2022-05-17 Matthias Meulien <orontee@gmail.com> + + Update comment about comint-osc-handlers + + * lisp/comint.el: Update comment about comint-osc-handlers. + +2022-05-17 Lars Ingebrigtsen <larsi@gnus.org> + + Allow running several commands in compilation-start + + * lisp/progmodes/compile.el (compilation-start): Allow not erasing + the contents of the buffer (bug#28892). + +2022-05-17 Protesilaos Stavrou <info@protesilaos.com> + + Use better word for "buffer" in Greek TUTORIAL (bug#55332) + + * TUTORIAL.el_GR: Replace all instances of "αποσβεστήρας" with the + more accurate "ενταμιευτής". + +2022-05-17 Lars Ingebrigtsen <larsi@gnus.org> + + Fix bogus future history entries for `M-x grep' + + * lisp/net/mailcap.el (mailcap-file-default-commands): If we have + no matching MIME types, don't iterate over (nil) (bug#27236). + + This fixes things like: + + (mailcap-file-default-commands '("grep --color=auto -nH --null '' ")) + => ("/usr/bin/emacs -nw") + +2022-05-17 Lars Ingebrigtsen <larsi@gnus.org> + + Fix kmacro-keymap binding after previous change + + * lisp/kmacro.el (kmacro-keymap): Fix binding after + kmacro-redisplay command name change. + +2022-05-17 Lars Ingebrigtsen <larsi@gnus.org> + + Explain more about jit-lock-mode calling conventions + + * lisp/jit-lock.el (jit-lock-mode): Explicitly explain ARG + (bug#55451). + +2022-05-17 Lars Ingebrigtsen <larsi@gnus.org> + + Add glossary entries for "interactively" + + * doc/emacs/glossary.texi (Glossary): Mention "interactively" and + how it relates to the "command" concept (bug#55461). + +2022-05-17 Lars Ingebrigtsen <larsi@gnus.org> + + Fix pp-emacs-lisp-code printing of cons cells + + * lisp/emacs-lisp/pp.el (pp--insert-lisp): Fix printing of cons + cells (bug#55478). + +2022-05-17 Robert Pluim <rpluim@gmail.com> + + Correct cycle-spacing-actions type + + * lisp/simple.el (cycle-spacing-actions): Fix type for predefined + action with fixed numeric arg case. + +2022-05-17 Robert Pluim <rpluim@gmail.com> + + Clarify 'cycle-spacing-actions' docstring + + * lisp/simple.el (cycle-spacing-actions): Clarify docstring. + +2022-05-17 Po Lu <luangruo@yahoo.com> + + Avoid race conditions when computing real frame positions on Haiku + + * src/haiku_support.cc (DispatchMessage): Accept + SEND_MOVE_FRAME_EVENT. + (class EmacsWindow, FrameMoved): Include decorator frame in + MOVE_EVENT events. + (be_send_move_frame_event): New function. + * src/haiku_support.h (struct haiku_move_event): Include + decorator dimensions. Update prototypes. + + * src/haikufns.c (haiku_update_after_decoration_change): Ask for + a move frame event and don't do anything if configurable is not yet + complete. + + * src/haikuterm.c (haiku_read_socket): Adjust accordingly. + +2022-05-17 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add support for the Modi script + + * lisp/language/indian.el ("Modi"): New language environment. + Add composition rules for Modi. Add sample text and input + method. + Add sample text to various scripts. + Rename Punjabi to Gurmukhi. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Modi. + * lisp/leim/quail/indian.el ("modi"): New input method. + (Bug#55439) + + * etc/HELLO: Add a Modi greeting. + Rename Hindi to Devanagari. + Add a Gurmukhi greeting. + Replace Odia greeting. + * etc/NEWS: Announce the new language environment and its + input method. + +2022-05-17 Eli Zaretskii <eliz@gnu.org> + + Fix the name of a kmacro command. + + * lisp/kmacro.el (kmacro-redisplay): Rename from + 'kdb-macro-redisplay' (which was wrong and included a typo). + + * etc/NEWS: Announce the change. (Bug#55471) + +2022-05-17 Alan Mackenzie <acm@muc.de> + + CC Mode: Correct a rare error in the state cache + + * lisp/progmodes/cc-engine.el (c-append-lower-brace-pair-to-state-cache): Do + not record a position in a macro as the starting position in + c-state-brace-pair-desert. Instead record the position at the beginning of + that macro. + +2022-05-17 Alan Mackenzie <acm@muc.de> + + Correct indentation of opening brace in xdisp.c, which isn't at start of defun + + * xdisp.c (calc_pixel_width_or_height): indent the opening brace of a + substatement correctly. It's previous position, in column 0, caused + indentation errors in C Mode. + +2022-05-17 Po Lu <luangruo@yahoo.com> + + Fix unused function warning on X + + * src/xsettings.c (xg_settings_key_valid_p): Surround with + HAVE_PGTK and HAVE_GSETTINGS. + +2022-05-17 Pieter van Prooijen <pieter.van.prooijen@teloden.nl> + + Fix font options compilation with gsettings disabled + + * src/xsettings.c (xsettings_get_font_options): Return a font_options + even if gsettings is not enabled. + +2022-05-17 Po Lu <luangruo@yahoo.com> + + Rewrite Haiku frame geometry code to handle decorator frames + + * doc/lispref/frames.texi (Frame Layout): Document changes to + Haiku frame layout. + + * src/haiku_support.cc (class EmacsWindow, MoveToIncludingFrame) + (EmacsMoveTo, MakeFullscreen): Move to an offset including the + decorator frames. + (be_get_window_decorator_dimensions): + (be_get_window_decorator_frame): New functions. + + * src/haiku_support.h: Update prototypes. + + * src/haikufns.c (haiku_update_after_decoration_change): New + function. + (haiku_create_frame, haiku_set_undecorated) + (haiku_set_override_redirect): Call that function. + (frame_geometry): Actually calculate frame geometry based on + decorator and frame sizes. + + * src/haikuterm.c (haiku_coords_from_parent): Use frame width + instead. + (haiku_read_socket): Set left and top positions based on + decorator width and height. + * src/haikuterm.h (struct haiku_output): New field `frame_x' and + `frame_y'. + +2022-05-17 Lars Ingebrigtsen <larsi@gnus.org> + + Fix package-quickstart breakage + + * lisp/emacs-lisp/package.el (package-quickstart-refresh): Work + around syntax-ppss now clobbering match data (but it's not clear + whether that's supposed to be allowed) (bug#55447). + +2022-05-17 Lars Ingebrigtsen <larsi@gnus.org> + + Improve Finternal__define_uninitialized_variable erroring + + * src/eval.c (Finternal__define_uninitialized_variable): Say what + symbol we're bugging out on for easier debugging. + +2022-05-17 Lars Ingebrigtsen <larsi@gnus.org> + + Fix edebug-tests test failure after prin1 change + + * lisp/emacs-lisp/ert-x.el (ert--make-print-advice): Fix test + failures in edebug-tests. + +2022-05-17 Michael Albinus <michael.albinus@gmx.de> + + Some minor Tramp fixes + + * lisp/net/tramp-cmds.el (tramp-list-tramp-buffers) + (tramp-list-remote-buffers): Add ;;;###tramp-autoload cookie. + + * lisp/net/tramp-fuse.el (tramp-fuse-remove-hidden-files): New defvar. + (tramp-fuse-remove-hidden-files): Use it. + + * lisp/net/tramp-gvfs.el (tramp-gvfs-handler-askquestion): + Keep regression tests running. + +2022-05-16 Po Lu <luangruo@yahoo.com> + + Remove extra EmacsPopUpMenu class + + * src/haiku_support.cc (class EmacsPopUpMenu): Delete class that + does nothing. + (BPopUpMenu_new): Use BPopUpMenu directly. + (BMenu_add_title): Clean up coding style. + +2022-05-16 Po Lu <luangruo@yahoo.com> + + Add more cursor bitmaps on Haiku + + * src/haikufns.c (cursor_bitmaps_for_id): Add vertd, horizd and + hand bitmaps. + +2022-05-16 Po Lu <luangruo@yahoo.com> + + Let XTread_socket read events for all non-DND displays + + * src/xterm.c (XTread_socket): Allow reading events from + displays other than the DND display during drag-and-drop. + +2022-05-16 Po Lu <luangruo@yahoo.com> + + Fix byte swapping of some drag-and-drop messages + + * src/xterm.c (SWAPCARD16, SWAPCARD32): Actually swap the data + instead of just calling bswap_32/bswap_16. + +2022-05-16 Po Lu <luangruo@yahoo.com> + + Fix detection of wheel movement during drag-and-drop + + * src/xterm.c (x_dnd_send_position): Don't treat Button8 as the + mouse wheel. + +2022-05-16 kobarity <kobarity@gmail.com> + + Fix Python highlighting of some assignment statements + + * lisp/progmodes/python.el (python-rx): Limit not-simple-operator + to a single line (bug#51362). + +2022-05-16 Lars Ingebrigtsen <larsi@gnus.org> + + Add new user option compilation-hidden-output + + * doc/emacs/building.texi (Compilation Mode): Document it. + * lisp/progmodes/compile.el (compilation-hidden-output): New user + option. + (compilation-filter): Use it. + (compilation--hide-output): New function. + +2022-05-16 Lars Ingebrigtsen <larsi@gnus.org> + + Don't expose Vprint_variable_mapping to Lisp + + * src/print.c: Don't expose Vprint_variable_mapping to the Lisp + world, because it really should be immutable. + (print_create_variable_mapping): Initialization moved here from + syms_of_print. + (print_bind_overrides): Call it. + (syms_of_print): Protect the mapping variable. + +2022-05-16 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "Make TAB work in makefile mode when transient mark mode is on" + + This reverts commit a4c96147d1875d359db8d7fda3489954046a5db8. + + This change made hitting RET after an assignment insert a TAB character + (bug#55446). + +2022-05-16 Lars Ingebrigtsen <larsi@gnus.org> + + Improve newsticker file name handling and printing + + * lisp/net/newst-backend.el (newsticker--images-dir) + (newsticker--icons-dir, newsticker--cache-dir): Don't use concat + to construct file names. + (newsticker-download-images, newsticker-download-enclosures): Ditto. + (newsticker--cache-save-feed): Bind print-level etc when printing. + + * lisp/net/newst-treeview.el (newsticker-treeview-save): Ditto. + + This patch was mostly written by mailj2@protonmail.com, but was then + rewritten by me, and has some contributions from Xavier Capaldi (which + doesn't need copyright assignment). + +2022-05-16 Po Lu <luangruo@yahoo.com> + + Document recent tooltip changes on NS + + * doc/emacs/frames.texi (Tooltips): + * etc/NEWS: Announce that non-system tooltips are now available + on Nextstep. + +2022-05-16 Po Lu <luangruo@yahoo.com> + + Improve error checking in `haiku-roster-launch' + + * src/haikuselect.c (Fhaiku_roster_launch): Signal error if + FILE-OR-TYPE doesn't exist or ARGS does not apply. + +2022-05-16 Tassilo Horn <tsdh@gnu.org> + + Improve cycle-spacing and bind it to M-SPC by default + + * lisp/bindings.el (esc-map): Bind M-SPC to cycle-spacing instead of + just-one-space. + * lisp/simple.el (delete-space--internal): New function. + (delete-horizontal-space): Use it. + (delete-all-space): New command. + (just-one-space): Implement on its own instead of calling + cycle-spacing with a special flag. + (cycle-spacing--context): Make it a plist instead of a list. Adapt + docstring accordingly. + (cycle-spacing-actions): New user option. + (cycle-spacing): Rewrite so that it performs the actions in + cycle-spacing-actions instead of the hard-coded ones. + * doc/emacs/killing.texi (characters): Mention and add a variable + index entry for cycle-spacing-actions. + * etc/NEWS: Document that M-SPC is now cycle-spacing instead of + just-one-space. + +2022-05-16 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + f928330fa8 Update to Org 9.5.3-6-gef41f3 + 007bf9a34c Hide temporary FUSE files in Tramp + 5dbaddc729 ; Fix some typos + +2022-05-16 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 48201ce8de ; * lisp/electric.el (electric-indent-mode): Fix a typo. + +2022-05-15 Po Lu <luangruo@yahoo.com> + + Improve safety of handling unsupported drop events on X + + * src/keyboard.c (kbd_buffer_get_event): + * src/xterm.c (handle_one_xevent): Check that the event frame is + still live after calling arbitrary Lisp code. + +2022-05-15 Po Lu <luangruo@yahoo.com> + + Clean up Haiku code after file panel changes + + * src/haiku_support.cc: + * src/haiku_support.h: Stop including pthread.h and specpdl_ref. + + * src/haikumenu.c (run_menu_bar_help_event): Ignore invalid help + events instead of aborting. + +2022-05-15 Po Lu <luangruo@yahoo.com> + + Handle pointer axes changing along with scroll valuators + + * xterm.c (x_get_scroll_valuator_delta): Set valuator_return to + NULL if no valuator was found. + (handle_one_xevent): Assume pointer axes might've changed if no + scroll valuator was found but valuators were set when handling + motion events. + +2022-05-15 Kyle Meyer <kyle@kyleam.com> + + Update to Org 9.5.3-6-gef41f3 + +2022-05-15 Stefan Kangas <stefan@marxist.se> + + Minor clarification of package-update-all docstring + + * lisp/emacs-lisp/package.el (package-update-all): Clarify + docstring slightly. (Bug#55408) + +2022-05-15 Augusto Stoffel <arstoffel@gmail.com> + + Make minibuffer lazy highlight setup buffer-local where appropriate + + * lisp/isearch.el (minibuffer-lazy-highlight-setup): Modify hooks + buffer-locally, so that recursive minibuffers are not affected by the + special behavior of lazy-highlight. Also make + 'isearch-filter-predicate' buffer-local, so that isearch in the + minibuffer is not affected by the region filter (bug#55110). + +2022-05-15 Simen Heggestøyl <simenheg@runbox.com> + + Recognize some more SCSS selectors + + * lisp/textmodes/css-mode.el (css--selector-regexp): Recognize some + more SCSS selectors. + + * test/lisp/textmodes/css-mode-resources/scss-selectors.txt: Add tests + for them. + +2022-05-15 Simen Heggestøyl <simenheg@runbox.com> + + Fix warning suppression in (S)CSS mode tests + + * test/lisp/textmodes/css-mode-tests.el (css-mode-test-selectors) + (scss-mode-test-selectors): Fix warning suppression. + +2022-05-15 Lars Ingebrigtsen <larsi@gnus.org> + + Fix native-comp type of prin1-to-string + + * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Fix type + of prin1-to-string. + +2022-05-15 Lars Ingebrigtsen <larsi@gnus.org> + + Adjust more prin1-to-string callers + + * src/w32.c (check_windows_init_file): + * src/comp.c (Lisp_Object): + (emit_lisp_obj_reloc_lval): + (emit_lisp_obj_rval): + (emit_mvar_rval): + (emit_limple_insn): + (emit_static_object): Adjust prin1-to-string callers. + +2022-05-15 Lars Ingebrigtsen <larsi@gnus.org> + + Add OVERRIDES argument to prin1/prin1-to-string + + * doc/lispref/streams.texi (Output Functions): Document it. + (Output Overrides): New node. + + * src/process.c (Faccept_process_output): + * src/print.c (debug_print, print_error_message): + * src/pdumper.c (print_paths_to_root_1, decode_emacs_reloc): + * src/lread.c (readevalloop): + * src/eval.c (internal_lisp_condition_case): + * src/editfns.c (styled_format): Adjust prin1/prin1-to-string + callers. + + * src/print.c (Fprin1): Take an OVERRIDES parameter. + (print_bind_overrides, print_bind_all_defaults): New functions. + (Fprin1_to_string): Take an OVERRIDES parameter. + +2022-05-15 Michael Albinus <michael.albinus@gmx.de> + + Hide temporary FUSE files in Tramp + + * lisp/net/tramp-fuse.el (tramp-fuse-remove-hidden-files): New defsubst. + (tramp-fuse-handle-directory-files) + (tramp-fuse-handle-file-name-all-completions): Use it. + +2022-05-15 Po Lu <luangruo@yahoo.com> + + Make Haiku stipple display slightly faster + + * src/haikuterm.c (haiku_draw_stipple_background): Draw tiled + bitmap to end of stipple instead of the end of the frame. + +2022-05-15 Lars Ingebrigtsen <larsi@gnus.org> + + Don't freeze Emacs on color codes in sccs-mode + + * lisp/textmodes/css-mode.el (css--font-lock-keywords): Don't + freeze Emacs on #ffffff #ffffff, and be more strict in parsing + selectors (bug#53203). + +2022-05-15 Simen Heggestøyl <simenheg@runbox.com> + + Update CSS Multi-column Layout Module properties + + * lisp/textmodes/css-mode.el (css-property-alist): Update CSS + Multi-column Layout Module properties. + +2022-05-15 Simen Heggestøyl <simenheg@runbox.com> + + Update CSS Box Alignment Module properties + + * lisp/textmodes/css-mode.el (css-property-alist): Update properties. + +2022-05-15 Simen Heggestøyl <simenheg@runbox.com> + + Add `all` to CSS property list + + * lisp/textmodes/css-mode.el (css-property-alist): Add new property + `all` from the CSS Cascading and Inheritance Level 3 module. + +2022-05-15 Po Lu <luangruo@yahoo.com> + + Fix use of more invalid keys in PGTK GSettings code + + * src/xsettings.c (apply_gsettings_font_hinting): + (apply_gsettings_font_rgba_order): Test for key existence before + using it. + +2022-05-15 Po Lu <luangruo@yahoo.com> + + Improve return value of `haiku-roster-launch' + + * src/haikuselect.c (Fhaiku_roster_launch): Return + `already-running' if no PID is available since the target + application is already running. + (syms_of_haikuselect): New defsym. + +2022-05-15 Po Lu <luangruo@yahoo.com> + + Simplify Haiku cursor management code + + * src/haiku_support.cc (BCursor_create_default) + (BCursor_create_modeline, BCursor_from_id, BCursor_create_i_beam) + (BCursor_create_progress_cursor, BCursor_create_grab) + (BCursor_delete): Delete specialized cursor creation functions. + (be_delete_cursor, be_create_cursor_from_id): New functions. + (BView_set_view_cursor): Fix coding style. + * src/haiku_support.h (enum haiku_cursor): Add all cursor IDs. + * src/haikufns.c (haiku_free_custom_cursors): + (haiku_set_mouse_color): + * src/haikuterm.c (haiku_term_init): Adjust accordingly. + +2022-05-15 Eli Zaretskii <eliz@gnu.org> + + Fix database related to some scripts + + * lisp/international/fontset.el (script-representative-chars): Add + tai-le and tai-lue scripts. + (otf-script-alist): Fix the name of tai-le. + + * src/w32font.c (syms_of_w32font): Fix typos in some script symbol + names. + +2022-05-15 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add support for the Syloti Nagri script + + * lisp/language/indian.el ("Syloti Nagri"): New language environment. + Add composition rules for Syloti Nagri. Add sample text and input + method. + Improve composition rules for Kaithi, Tirhuta, Sharada and Siddham. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Syloti Nagri. + * lisp/leim/quail/indian.el ("syloti-nagri"): New input method. + + * etc/HELLO: Add two Syloti Nagri greetings. + * etc/NEWS: Announce the new language environment and its + input method. + +2022-05-15 Visuwesh <visuweshm@gmail.com> + + describe-keymap: Suggest symbol at point + + * lisp/help-fns.el (describe-keymap): Suggest symbol at point + if it is a keymap. (Bug#55393) + * etc/NEWS: Announce change in behavior of 'describe-keymap'. + +2022-05-15 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 8370caa835 ; * lisp/electric.el (electric-indent-mode): Clarify doc (... + +2022-05-14 Po Lu <luangruo@yahoo.com> + + Allocate some buffers used during event handling safely + + * src/xterm.c (handle_one_xevent): Allocate string lookup and + device disable data safely since they can potentially become + very large. + +2022-05-14 Po Lu <luangruo@yahoo.com> + + Prevent crashes trying to access nonexistent key + + * src/xsettings.c (xg_settings_key_valid_p): New function. + (apply_gsettings_font_antialias): Test that `font-aliasing' is + actually available. (bug#55416) + +2022-05-14 Po Lu <luangruo@yahoo.com> + + Fix scroll event translation for legacy button events + + * src/xterm.c (handle_one_xevent): Don't treat emulated Button8 + as a wheel event. + +2022-05-14 Stefan Kangas <stefan@marxist.se> + + Remove some XEmacs compat code for display-graphic-p + + * lisp/dframe.el (dframe-have-timer-flag): + * lisp/emacs-lisp/chart.el (chart-face-pixmap-list): + * lisp/speedbar.el (speedbar-easymenu-definition-base): Remove + XEmacs compat code; assume display-graphic-p is fboundp. + + * lisp/progmodes/cperl-mode.el (cperl-tags-hier-init): Remove XEmacs + compat code. + +2022-05-14 Stefan Kangas <stefan@marxist.se> + + Delete some compat code for very old Emacs versions + + * lisp/apropos.el (apropos-local-value): + * lisp/ido.el (ido-buffer-internal): + * lisp/leim/quail/ipa.el (ipa-x-sampa-prepend-to-keymap-entry): + * lisp/obsolete/iswitchb.el (iswitchb-possible-new-buffer): + * lisp/speedbar.el (speedbar-create-tag-hierarchy): Delete compat code + for very old versions of Emacs. + * lisp/gnus/nnmail.el (nnmail-fancy-expiry-target): Avoid using + obsolete name. + +2022-05-14 Stefan Monnier <monnier@iro.umontreal.ca> + + src/lisp.h (FOR_EACH_TAIL_SAFE): Typo + +2022-05-14 Eli Zaretskii <eliz@gnu.org> + + Make 'check-declare-directory' more portable + + * lisp/emacs-lisp/check-declare.el (check-declare-directory): Use + 'directory-files-recursively' instead of running Find and Grep in + a subprocess. (Bug#55386) + +2022-05-14 Stefan Kangas <stefan@marxist.se> + + Drop ancient OEmacs support from vcursor.el + + * lisp/vcursor.el (vcursor-bind-keys, vcursor-key-bindings) + (vcursor-other-window): Drop OEmacs support. OEmacs was "a + version of GNU Emacs V19.19" that worked "under plain MSDOS, + Windows, or DESQview/X". + +2022-05-14 Stefan Kangas <stefan@marxist.se> + + Remove Emacs 22 compat code from htmlfontify.el + + * lisp/htmlfontify.el (hfy-prop-invisible-p): Redefine as obsolete + function alias for invisible-p. Update all callers. + +2022-05-14 Stefan Kangas <stefan@marxist.se> + + Remove some XEmacs compat code from org-mode + + * lisp/org/org-clock.el (org-clock-select-task): Remove XEmacs + compat code. + +2022-05-14 Po Lu <luangruo@yahoo.com> + + Minor fixes for popup dialogs on macOS + + * nsmenu.m (pop_down_menu): Restore old hack for macOS. + ([EmacsDialogPanel initWithTitle:isQuestion:]): Set command + title correctly. + +2022-05-14 Po Lu <luangruo@yahoo.com> + + Fix processing of dialog box items on NS + + * src/nsmenu.m (pop_down_menu): Remove old hack and discard menu + items. + (ns_popup_dialog): + ([EmacsDialogPanel initWithContentRect:styleMask:backing:defer:]): + ([EmacsDialogPanel windowShouldClose:]): + ([EmacsDialogPanel dealloc]): + ([EmacsDialogPanel processdialog:]): + ([EmacsDialogPanel addButton:value:row:]): + ([EmacsDialogPanel addString:row:]): + ([EmacsDialogPanel clicked:]): + ([EmacsDialogPanel initFromContents:isQuestion:]): + ([EmacsDialogPanel timeouthandler:]): + ([EmacsDialogPanel runDialogAt:]): Use the regular menu item + machinery to parse dialog items instead of the incorrect ad-hoc + code used previously. + + * src/nsterm.h: Update prototypes. + +2022-05-14 Po Lu <luangruo@yahoo.com> + + Avoid unsafe alloca when looking up toplevels + + * src/xterm.c (x_dnd_compute_toplevels): Use SAFE_ALLOCA, since + alloca isn't safe when there are lots of toplevels or the window + manager is broken. + +2022-05-14 Eli Zaretskii <eliz@gnu.org> + + Fix undigest-tests on MS-Windows + + * lisp/emacs-lisp/ert-x.el (ert-with-temp-file): Accept a new + keyword argument :coding CODING to use as the encoding when + writing initial text to the temporary file. + + * test/lisp/mail/undigest-tests.el (rmail-undigest-test-rfc934-digest) + (rmail-undigest-test-rfc1153-digest-strict) + (rmail-undigest-test-rfc1153-less-strict-digest) + (rmail-undigest-test-rfc1153-sloppy-digest) + (rmail-undigest-test-rfc1521-mime-digest) + (rmail-undigest-test-multipart-mixed-digest): Force the temporary + mbox files to have Unix-style EOL format. + +2022-05-14 Martin Rudalics <rudalics@gmx.at> + + 2022-05-14 Martin Rudalics <rudalics@gmx.at> + + * lisp/window.el (quit-restore-select-window): New function. + (quit-restore-window): Call 'quit-restore-select-window' to avoid + selecting inactive minibuffer window (Bug#55403). + +2022-05-14 Po Lu <luangruo@yahoo.com> + + Try to restore valuator values when a device is enabled + + * src/xterm.c (struct xi_known_valuator): New struct. + (xi_populate_device_from_info): Figure out all the values of the + valuators and set the scroll valuators's current_value to it. + +2022-05-14 Po Lu <luangruo@yahoo.com> + + Better fix for disappearing menu items on NS + + * src/frame.c (delete_frame): Revert last change. + * src/nsmenu.m (free_frame_menubar): Only free if that frame's + menu bar is actually being displayed. + (ns_update_menubar): Note the last frame to have updated the + menu bar. + +2022-05-14 Po Lu <luangruo@yahoo.com> + + Add more cursor bitmaps on Haiku + + * src/haikufns.c (cursor_bitmaps): Register new cursor bitmaps. + * src/haikugui.h (hand_ptr_bits, hand_ptrmask_bits) + (horizd_ptr_bits, horizd_ptrmask_bits, vertd_ptr_bits) + (vertd_ptrmask_bits, hourglass_bits, hourglass_mask_bits): New + cursor bitmaps. + +2022-05-14 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + a769cbfcfb Fix lexical-binding fallout in vhdl-mode.el + +2022-05-14 Po Lu <luangruo@yahoo.com> + + Work around deleting tooltip frames clearing menubars on NS + + * src/frame.c (delete_frame): Update menu bars if a tooltip + frame was deleted on NS. + +2022-05-13 Po Lu <luangruo@yahoo.com> + + Implement non-system tooltips on NS + + * src/nsfns.m (unwind_create_frame): Return Lisp_Object like on + X. + (do_unwind_create_frame): New function. + (Fx_create_frame): Adjust accordingly. + (compute_tip_xy): Fix coding style. + (unwind_create_tip_frame, ns_create_tip_frame): New functions. + (x_hide_tip, Fx_show_tip, Fx_hide_tip): Create and hide actual + tooltip frames. + (syms_of_nsfns): New defvar `x-max-tooltip-size' and staticpros. + + * src/nsterm.m (ns_set_window_size): Clean up coding style. + ([EmacsWindow initWithEmacsFrame:]): + ([EmacsWindow initWithEmacsFrame:fullscreen:screen:]): Handle + tooltip frames. + +2022-05-13 Lars Ingebrigtsen <larsi@gnus.org> + + Put help-fns--compiler-macro last in the *Help* buffer + + * lisp/help-fns.el (help-fns-describe-function-functions): Make + help-fns--compiler-macro the last entry (because it's not the most + interesting information). + +2022-05-13 Po Lu <luangruo@yahoo.com> + + Fix display class of tooltip frames on Haiku + + * haikufns.c (haiku_create_tip_frame): Set up frame display + class. + (syms_of_haikufns): New symbols `mono', `grayscale' and `color'. + +2022-05-13 Lars Ingebrigtsen <larsi@gnus.org> + + Restore `with-help-window' return code + + * lisp/help.el (help--window-setup): Return the correct thing. + +2022-05-13 Lars Ingebrigtsen <larsi@gnus.org> + + Improve the *Help* output for compiler macros and the like + + * doc/lispref/functions.texi (Advice and Byte Code): New node. + + * lisp/help-fns.el (help-fns--compiler-macro): Also output data on + other byte compilation things, and link to the manual (bug#23264). + +2022-05-13 Po Lu <luangruo@yahoo.com> + + Reenable frame sync for child frames after they're unparented + + * src/xfns.c (x_set_parent_frame, Fx_create_frame): Use correct + boolean constants. + * src/xterm.c (handle_one_xevent): Enable frame synchronization + upon receiving a sync request event. + +2022-05-13 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak querying in package-update-all + + * lisp/emacs-lisp/package.el (package-update-all): Reverse the + QUERY logic to make calling more regular. + +2022-05-13 Yuan Fu <casouri@gmail.com> + + Extract out treesit-search-forward + + * lisp/treesit.el (treesit-search-forward, treesit-search-beginning, + treesit-search-end): New functions. + (treesit-traverse-defun): Remove function. + (treesit-beginning-of-defun, treesit-end-of-defun): Replace + 'treesit-traverse-defun' with 'treesit-search-forward' and fiends. + * test/src/treesit-tests.el: Add reminder for tests. + +2022-05-13 Yuan Fu <casouri@gmail.com> + + * lisp/treesit.el (treesit-node-at): Add check for nil node. + +2022-05-13 Yuan Fu <casouri@gmail.com> + + Add defun navigation + + * lisp/treesit.el (treesit-defun-query): New variable. + (treesit-traverse-defun, treesit-beginning-of-defun, + treesit-end-of-defun): New functions. + * test/src/treesit-tests.el: Add reminders for tests. + +2022-05-13 Yuan Fu <casouri@gmail.com> + + New node traversal functions + + * lisp/treesit.el (treesit-traverse-parent): New alias. + (treesit-traverse-depth-first, treesit--traverse-breadth-first-1, + treesit-traverse-breadth-first, treesit-next-sibling-or-up, + treesit-traverse-forward-depth-first): New functions. + * test/src/treesit-tests.el (treesit-node-supplemental): Add reminders + for tests. + +2022-05-13 Yuan Fu <casouri@gmail.com> + + Redefine treesit-node-at + + The old 'treesit-node-at' becomes 'treesit-node-on'. The new + 'treesit-node-at' has slightly different semantics. Now + 'treesit-node-on' gets the smallest node covering a range and + 'treesit-node-at' gets the smallest node after a position. + + The reason of change can be found in the docstring of + 'treesit-node-on' (the BEWARE part): its result can be sometimes + surprising/unexpected. + + * doc/lispref/parsing.texi (Retrieving Node): Update manual. + * lisp/treesit.el (treesit-node-at): Change to new definition. + (treesit-node-on): Inherits the old definition of + 'treesit-node-at'. Parameter END is now mandatory. + (treesit-language-at, treesit-node-field-name): Use the new '-on' + function. + (treesit-font-lock-fontify-region, treesit-simple-indent-presets, + treesit-indent): Use the new '-at' function. + * test/src/treesit-tests.el (treesit-node-supplemental): Update tests. + +2022-05-13 Stefan Kangas <stefan@marxist.se> + + Use ert-with-temp-file in undigest-tests.el + + * test/lisp/mail/undigest-tests.el (ert-x): Require. + (rmail-undigest-test-rfc934-digest) + (rmail-undigest-test-rfc1153-digest-strict) + (rmail-undigest-test-rfc1153-less-strict-digest) + (rmail-undigest-test-rfc1153-sloppy-digest) + (rmail-undigest-test-rfc1521-mime-digest) + (rmail-undigest-test-multipart-mixed-digest): Use ert-with-temp-file. + +2022-05-13 Stefan Kangas <stefan@marxist.se> + + Don't use obsolete yow library + + * lisp/erc/erc.el (erc-quit-reason-zippy, erc-part-reason-zippy): + Don't use obsolete yow library. + +2022-05-13 Stefan Kangas <stefan@marxist.se> + + Remove some XEmacs compat code from flyspell.el + + * lisp/textmodes/flyspell.el (flyspell-display-next-corrections): + Remove XEmacs compat code. + +2022-05-13 Stefan Kangas <stefan@marxist.se> + + Remove some XEmacs compat code from org-mode + + * lisp/org/ol-eww.el (org-eww-copy-for-org-mode): + * lisp/org/ol-w3m.el (org-w3m-copy-for-org-mode): + * lisp/org/org-refile.el (org-refile): + * lisp/org/org.el (org-change-tag-in-region): Remove XEmacs compat + code. + +2022-05-13 Stefan Kangas <stefan@marxist.se> + + Remove some XEmacs compat code from eudc-bob.el + + * lisp/net/eudc-bob.el (eudc-bob-can-display-inline-images): Make + into obsolete alias for display-graphic-p. Update all callers. + (eudc-bob-display-jpeg): Remove XEmacs compat code. + +2022-05-13 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerate ldefs-boot.el + +2022-05-13 Lars Ingebrigtsen <larsi@gnus.org> + + Add new minor mode `header-line-indent-mode' + + This is mostly factored out from tabulated-list.el (with bugs fixed). + + * doc/lispref/modes.texi (Header Lines): Document it. + * lisp/display-line-numbers.el (header-line-indent): New variable. + (header-line-indent--line-number-width) + (header-line-indent--watch-line-number-width) + (header-line-indent--window-scroll-function): New helper functions. + (header-line-indent-mode): New minor mode. + + * lisp/display-line-numbers.el (header-line-indent-width): New + variable. + + * lisp/emacs-lisp/tabulated-list.el (tabulated-list-line-number-width) + (tabulated-list-watch-line-number-width) + (tabulated-list-window-scroll-function): Make into obsolete aliases. + (tabulated-list-mode): Use 'header-line-indent-mode'. + + * lisp/emacs-lisp/tabulated-list.el (tabulated-list-init-header): + Adjust the header line format and computation. + + * src/buffer.c (syms_of_buffer): Mention header-line-indent-mode. + +2022-05-13 Lars Ingebrigtsen <larsi@gnus.org> + + Revert mistaken change in help-mode-setup + + * lisp/help-mode.el (help-mode-setup): Revert mistakenly applied + change from cd87a5c7a. + +2022-05-13 Lars Ingebrigtsen <larsi@gnus.org> + + Don't overwrite variables set by callback in help--window-setup + + * lisp/help.el (help--window-setup): Initialize the buffer in the + correct order to avoid resetting variables set by the callback. + +2022-05-13 Lars Ingebrigtsen <larsi@gnus.org> + + Don't clear out local variables in `with-help-window' + + * lisp/help-mode.el (help-mode-setup): Declare obsolete. + (help-mode-finish): Ditto. + + * lisp/help.el (with-help-window): Don't be a wrapper around + `with-temp-buffer-window', because that made the macro big and + difficult to understand. + (help--window-setup): Implement the relevant bits from + `with-temp-buffer-window'. Also don't clear out local variables, + because that makes things like `text-scale-mode' not work (bug#25979). + +2022-05-13 Stefan Monnier <monnier@iro.umontreal.ca> + + * doc/lispref/help.texi (Keys in Documentation): Typo in last change + +2022-05-13 Lars Ingebrigtsen <larsi@gnus.org> + + Allow substitute-command-keys to include menus in \{...} output + + * doc/lispref/help.texi (Keys in Documentation): Document it. + * lisp/help.el (substitute-command-keys): Add an argument to + include menus in the \{...-map} output (bug#24236). + +2022-05-13 Lars Ingebrigtsen <larsi@gnus.org> + + Include the number of dependencies in the install prompt + + * lisp/emacs-lisp/package.el (package-menu--list-to-prompt): Add + the info to the prompt (bug#23346). + (package--dependencies): New function. + +2022-05-13 Lars Ingebrigtsen <larsi@gnus.org> + + Allow calling package-update-all from the command line + + * lisp/emacs-lisp/package.el (package-update-all): Allow calling from + the command line with -f package-update-all without any queries. + +2022-05-13 Pieter van Prooijen <pieter.van.prooijen@teloden.nl> + + Use gsettings font rendering entries for pgtk builds + + If present, apply the gsettings font hinting and antialiasing + entries when creating a font in cairo. Do this at + initialization and when the entries change, re-rendering the + frames. + + * src/ftcrfont.c (ftcrfont_open): Use the font_options derived + from gsettings when opening a font. + (ftcrfont_cached_font_ok): Report a cached font as invalid if + its font options differ from the current options inside + gsettings. + * src/xsettings.c (apply_gsettings_font_hinting) + (apply_gsettings_font_alias, apply_gsettings_font_rgba_order): + Convert the settings from GSettings to the cairo_font_options_t + object. + (init_gsettings, something_changed_gsettingsCB): Invoke the + apply functions if the relevant settings changed. + (store_font_options_changed): Store an event to re-render the + fonts. + (xsetting_get_font_options) + * src/xsettings.h (xsettings_get_font_options): New function. + +2022-05-13 Lars Ingebrigtsen <larsi@gnus.org> + + Add a provide in epa-ks + + * lisp/epa-ks.el (epa-ks): Add a provide (bug#55388). + +2022-05-13 Stefan Kangas <stefan@marxist.se> + + Remove some XEmacs compat code from pascal.el + + * lisp/progmodes/pascal.el (pascal-outline-map): Remove XEmacs compat + code. + +2022-05-13 Stefan Kangas <stefan@marxist.se> + + * lisp/language/thai-util.el (thai-word-mode-map): Prefer defvar-keymap. + +2022-05-13 Lars Ingebrigtsen <larsi@gnus.org> + + Fix dabbrev expansion after recent file-name buffer addition + + * lisp/dabbrev.el (dabbrev--find-expansion): Remove the now-dead + file name buffer from dabbrev--friend-buffer-list, so that we + don't trip over the killed buffer later (bug introduced in 2d0085f756). + +2022-05-13 Lars Ingebrigtsen <larsi@gnus.org> + + Make imenu-flush-cache into a function + + * doc/emacs/programs.texi (Imenu): Remove documentation. + + * lisp/imenu.el (imenu-flush-cache): Make into a function, since + this isn't supposed to be used interactively. + +2022-05-13 Eli Zaretskii <eliz@gnu.org> + + Fix lexical-binding fallout in vhdl-mode.el + + * lisp/progmodes/vhdl-mode.el (arch-alist, pack-alist) + (file-alist, unit-alist, rule-alist): Defvar them, since vhdl-aput + expects them to be dynamically bound. (Bug#55389) + (vhdl-speedbar-insert-hierarchy): Rename the PACK-ALIST argument + to PACKAGE-ALIST, to avoid shadowing the global variable. + +2022-05-13 Po Lu <luangruo@yahoo.com> + + Allow changing the face used for text and frame colors in tooltips + + * etc/NEWS: Announce new arguments to `tooltip-show'. + * lisp/tooltip.el (tooltip-show): Accept new arguments + `text-face' and `frame-face'. Use them to display text and + determine the foreground, background and border colors of the + tooltip frame respectively. + +2022-05-13 Po Lu <luangruo@yahoo.com> + + Rely solely on device scaling for fonts on PGTK + + * src/pgtkterm.c (pgtk_get_text_scaling_factor): Delete + function. + (pgtk_term_init): Stop multiplying dpi by text scale. + (bug#55394) + +2022-05-13 Po Lu <luangruo@yahoo.com> + + Fix display of image reliefs for tab bars on NS + + * src/nsterm.m (ns_draw_image_relief): New function. + Synchronize code with X. + (ns_dumpglyphs_image): Use that function instead, as on X. + +2022-05-13 Po Lu <luangruo@yahoo.com> + + Minor cleanups to PGTK code + + * src/pgtkterm.c (pgtk_text_scaling_factor): Rename to + `pgtk_get_text_scaling_factor', clean up coding style, and fix + leak of GSettings object. + (pgtk_term_init): Clean up coding style and fix scroll + increments. + +2022-05-13 Po Lu <luangruo@yahoo.com> + + Improve test for empty help-echo on NS menu bar items + + * src/nsmenu.m ([EmacsMenu menu:willHighlightItem:]): Also check + if idx is valid. + +2022-05-13 Po Lu <luangruo@yahoo.com> + + Display help-echo for popup menus on NS + + * src/nsmenu.m ([EmacsMenu menu:willHighlightItem:]): Display + help echo for ordinary popup menus as well. + +2022-05-13 Po Lu <luangruo@yahoo.com> + + Fix extraneous quit events processing GTK native input inside popups + + * src/gtkutil.c (xg_widget_key_press_event_cb): Return + immediately if a popup is active. + * src/xterm.c (x_filter_event): Clear `xg_pending_quit_event' if + a popup is active. + +2022-05-13 Po Lu <luangruo@yahoo.com> + + Add more cursor bitmaps on Haiku + + * src/haikufns.c (cursor_bitmaps, cursor_bitmaps_for_id): + Register crosshair and xterm cursors. + + * src/haikugui.h (cross_ptr_bits, cross_ptrmask_bits) + (ibeam_ptr_bits, ibeam_ptrmask_bits): New cursor bitmaps. + +2022-05-13 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + f03c5d81bd Fix ControlPath quoting in Tramp + +2022-05-13 Po Lu <luangruo@yahoo.com> + + Fix disabling frame synchronization on child frames + + * src/xfns.c (Fx_create_frame): Disable GTK 3's own frame + synchronization on child frames, since the CM doesn't send + synchronization events to them. + +2022-05-13 Po Lu <luangruo@yahoo.com> + + Allow setting cursor colors for custom cursors on Haiku + + * src/haikufns.c: (struct user_cursor_bitmap_info): + (cursor_bitmaps): Fix hotspot for left arrow pointer. + (cursor_bitmaps_for_id): New array. + (haiku_set_mouse_color): If a color was specified, consult + `cursor_bitmaps_for_id' for user-specified cursors. + +2022-05-12 Po Lu <luangruo@yahoo.com> + + Allow actually setting cursor colors on Haiku + + * src/haiku_support.cc (be_create_pixmap_cursor): New function. + * src/haiku_support.h: Update prototypes. + + * src/haikufns.c (haiku_create_frame): Change default cursor + color to "font-color". + (haiku_create_tip_frame): Likewise. + + (struct user_cursor_bitmap_info): New struct. + (cursor_bitmaps): New list of bitmaps corresponding to cursors. + (haiku_create_colored_cursor): New function. + (haiku_free_custom_cursors): Set current cursor to the default + cursor before freeing the original value. + (haiku_set_mouse_color): Actually recolor cursors based on + built-in bitmaps. + + * src/haikuterm.c (haiku_defined_color): Clean up coding style. + +2022-05-12 Po Lu <luangruo@yahoo.com> + + Fix quitting during drag-and-drop when GTK native input is on + + * src/xterm.c (x_dnd_begin_drag_and_drop): Also look in + `xg_pending_quit_event' when GTK native input is on. + +2022-05-12 Paul Eggert <eggert@cs.ucla.edu> + + Update from gnulib + +2022-05-12 Paul Eggert <eggert@cs.ucla.edu> + + Pacify GCC 12 in default developer build + + This lets ‘./configure; make’ work on Fedora 36 x86-64 from a Git + checkout without generating false-alarm warnings. + * lib-src/etags.c (main): There appeared to be false alarm with + GCC 12. However, the code was wrong anyway, as it mishandled file + names containing "'" so fix that bug. This pacifies GCC. + (mercury_decl): Omit tests ‘s + pos != NULL’ that were apparently + intended to be ‘s[pos] != '\0'’ but which were miscoded to always + be true and which were mostly not needed anyway. In one place, + though, a test was needed, so fix that by using strchr instead. + * src/alloc.c (lisp_free) [!GC_MALLOC_CHECK]: + * src/term.c (Fsuspend_tty): Don’t look at a pointer after freeing + it, even just to test it for equality with some other pointer, as + this has undefined behavior in C and GCC 12 diagnoses this. + * src/dbusbind.c (xd_read_message_1): Rework the code a bit + so that it has fewer tests. This pacifies GCC 12 which was + complaining incorrectly about dereferencing a null pointer. + * src/intervals.c (copy_properties): Remove an eassume that should + no longer be needed even to pacify older GCCs, due to ... + * src/intervals.h (split_interval_left): ... this addition of + ATTRIBUTE_RETURNS_NONNULL to pacify a GCC 12 warning about + dereferencing a null pointer. + * src/regex-emacs.c (EXTEND_BUFFER): Use negative values rather + than auxiliary booleans to indicate null pointers. This pacifies + GCC 12 false alarms about using uninitialized variables. + * src/xdisp.c (clear_position): New function. + (append_space_for_newline, extend_face_to_end_of_line): + Use it to work around false alarms from GCC 12. + (display_and_set_cursor): Add an UNINIT to pacify GCC 12. + * src/xterm.c (x_draw_glyphless_glyph_string_foreground): + Defend against hypothetical bad code elsewhere; + this also pacifies GCC 12. + (x_term_init): Use fixed-size auto array rather than alloca, + as the array is small; this also pacifies GCC 12. + +2022-05-12 Lars Ingebrigtsen <larsi@gnus.org> + + Add new user option 'sh-indent-statement-after-and' + + * lisp/progmodes/sh-script.el (sh-indent-statement-after-and): New + user option (bug#22645). + (sh-smie-sh-rules): Use it. + +2022-05-12 Michael Albinus <michael.albinus@gmx.de> + + Fix ControlPath quoting in Tramp + + * lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options): + Adapt docstring. Do not quote ControlPath. Reported by Daniel + Kessler <kesslerd@umich.edu>. + +2022-05-12 Po Lu <luangruo@yahoo.com> + + Remove unused RIF method + + * src/haikuterm.c (haiku_update_window_end): Delete function. + (haiku_redisplay_interface): Remove RIF method. + +2022-05-12 Lars Ingebrigtsen <larsi@gnus.org> + + Make prompt read-only in inferior-scheme-mode + + * lisp/cmuscheme.el (inferior-scheme-mode): Make the prompt + read-only to be more consistent with other inferior modes + (bug#21118). + +2022-05-12 Lars Ingebrigtsen <larsi@gnus.org> + + Fix retrieving images that contain ) characters in shr + + * lisp/net/shr.el (shr-save-contents, shr-get-image-data): Don't call. + (shr-encode-url): Make obsolete. (This function makes no sense.) + (shr-tag-img): Don't call. + +2022-05-12 Lars Ingebrigtsen <larsi@gnus.org> + + Improve url-http debugging + + * lisp/url/url-http.el (url-http-parse-headers): Output the + headers we receive in the debug output. + * lisp/url/url-vars.el (url-extensions-header): Remove useless header. + +2022-05-12 Po Lu <luangruo@yahoo.com> + + Fix build on Mac OS X 10.11 + + * src/nsterm.h (NSButtonTypeMomentaryPushIn): New define. + +2022-05-12 Stefan Kangas <stefan@marxist.se> + + * lisp/array.el (array-mode-map): Prefer defvar-keymap. + +2022-05-12 Po Lu <luangruo@yahoo.com> + + Fix searching the bitmap file path on Haiku + + * src/image.c (image_create_bitmap_from_file): [HAVE_HAIKU]: + Look for the bitmap inside `x-bitmap-file-path' as well. + +2022-05-12 Michael Albinus <michael.albinus@gmx.de> + + Improve Tramp's write-region + + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist): + Use `tramp-handle-write-region'. + (tramp-sudoedit-handle-write-region): Remove. + + * lisp/net/tramp.el (tramp-skeleton-write-region): + Set extended attributes. + +2022-05-12 Po Lu <luangruo@yahoo.com> + + Fix merging of anonymous faces with an `:extend' property on unexec + + * src/emacs.c (main): Unconditionally call `init_xfaces'. + * src/lisp.h: Enable `init_xfaces' on unexec builds too. + * src/xfaces.c (init_xfaces): Move fix for bug#34226 into + pdumper-specific section leaving the initialization of + `face_attr_sym' intact. + +2022-05-12 Po Lu <luangruo@yahoo.com> + + Improve mouse dragging + + * lisp/mouse.el (mouse-drag-and-drop-region-display-tooltip): + Respect foreground and background parameters. + (mouse-drag-and-drop-region): Enable fine grained tracking. + +2022-05-12 Po Lu <luangruo@yahoo.com> + + Make cursor display on Haiku consistent with X + + * src/haikuterm.c (haiku_draw_image_glyph_string): Merge cursor + foregrounds correctly. + (haiku_draw_hollow_cursor, haiku_draw_bar_cursor): New + functions. Port code from X. + (haiku_draw_window_cursor): Port code from X so bar cursors on + top of images are treated right. + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Fix cperl-file-style defcustom type + + * lisp/progmodes/cperl-mode.el (cperl-file-style): Fix the type. + +2022-05-11 Po Lu <luangruo@yahoo.com> + + Clean up Haiku display opening code + + * src/haikufns.c (Fx_open_connection): + (Fhaiku_frame_list_z_order): Improve error messages and fix + coding style. + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Add new command 'imenu-flush-cache' + + * lisp/imenu.el (imenu-flush-cache): New command (bug#20589). + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + New command 'package-update-all' + + * lisp/emacs-lisp/package.el (package-update-all): New function + (bug#19146). + (package--updateable-packages): Factored out... + (package-update): ... from here. + +2022-05-11 Po Lu <luangruo@yahoo.com> + + Port some stuff to XCB to avoid confusing Xlib behavior + + * src/xterm.c (x_set_frame_alpha, handle_one_xevent): Port + retrieving the opacity property to XCB. + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Add new user option switch-to-prev-buffer-skip-regexp + + * doc/lispref/windows.texi (Window History): Document it. + * lisp/window.el (switch-to-prev-buffer-skip): Mention it. + (switch-to-prev-buffer-skip-regexp): New user option (bug#19070). + (switch-to-prev-buffer-skip-p): Use it. + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Bind TAB in indent-rigidly-map as a convenience + + * lisp/indent.el (indent-rigidly): Mention it. + (indent-rigidly-map): Bind TAB so that `C-x TAB TAB...' does the + logical thing. + +2022-05-11 Po Lu <luangruo@yahoo.com> + + Only handle SelectionRequest events from the DND display during DND + + * src/xterm.c (handle_one_xevent): Handle only SelectionRequest + events from the DND frame's display via hold_quit. + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Make message load eudc-capf more lazily + + * lisp/gnus/message.el (eudc-capf): Remove require, because all + the relevant eudc-capf functions are autoloaded, apparently. + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Make anchored regexps work in image-dired-mark-tagged-files + + * lisp/image-dired.el (image-dired-mark-tagged-files): Make + anchored regexps work (bug#55375). + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Fix non-variable widgets in the 'H' command in Cus-mode + + * lisp/cus-edit.el (custom-mode-map): + (custom-commands): Adjust. + (custom-toggle-hide-all-widgets): Rename and work for all widget + types, not just variables. + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Adjust restore-buffer-modified-p autosaved logic + + * doc/lispref/buffers.texi (Buffer Modification): Adjust + documentation. + + * src/buffer.c (Frestore_buffer_modified_p): Fix up the logic + around `autosaved': It means "the buffer is modified, and also + autosaved". + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Make C-u M-x apropos-user-option include buttons + + * lisp/apropos.el (apropos-user-option): Include buttons in the + output always (bug#55376). + (apropos-print-doc): Don't insert three spaces in the + non-apropos-multi-type case. + +2022-05-11 Stefan Monnier <monnier@iro.umontreal.ca> + + (byte-compile-eval): Avoid some false positive "noruntime" warnings + + * lisp/emacs-lisp/bytecomp.el (byte-compile-eval): Loosen the check + before refraining from adding a function to noruntime. + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Fix regression in edmacro-finish-edit when parsing "none" + + * lisp/edmacro.el (edmacro-finish-edit): Use `kbd' here because + we're comparing the result to a string (bug#55372). + +2022-05-11 Paul Eggert <eggert@cs.ucla.edu> + + functionp doc improvement + + * doc/lispref/eval.texi, doc/lispref/functions.texi, src/eval.c: + Document functionp a bit more carefully. It can return t + on non-functions. + +2022-05-11 Tino Calancha <tino.calancha@gmail.com> + + char-uppercase-p: New predicate + + Return non-nil if its argument is an uppercase character. + + Suggested in Bug#54804. + + * lisp/subr.el (char-uppercase-p): New defun. + * etc/NEWS (Lisp Changes in Emacs 29.1): Announce it + * doc/lispref/display.texi (Size of Displayed Text): Document it. + * test/lisp/subr-tests.el (test-char-uppercase-p): Add a test. + +2022-05-11 Michael Albinus <michael.albinus@gmx.de> + + Improve handling of `tramp-set-file-uid-gid' + + * lisp/net/tramp.el (tramp-skeleton-write-region): + Call `tramp-set-file-uid-gid' properly. + (tramp-set-file-uid-gid): Handle also `tramp-crypt-file-name-handler'. + + * test/lisp/net/tramp-tests.el (tramp-test27-load): Adapt test. + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Clarify precedence rules in Active Display Table manual node + + * doc/lispref/display.texi (Active Display Table): Say what "takes + precedence" means here (bug#18546). + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Allow giving switches to the program in `M-x term' + + * lisp/term.el (term, ansi-term): Allow giving switches to the + program (bug#18105). + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Fix previous cperl-file-style change + + * lisp/progmodes/cperl-mode.el (cperl--set-file-style): New function. + (cperl-mode): Add it to hack-local-variables-hook to really set + the cperl style. + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerated ldefs-boot.el + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Add new user option 'cperl-file-style' + + * lisp/progmodes/cperl-mode.el (cperl-file-style): New user option + (bug#17948). + (cperl-mode): Mention it. + (cperl-style-alist): Mention it. + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Fix fontification of multi-line declarations in f90-mode + + * lisp/progmodes/f90.el (f90-font-lock-keywords-2): Fontify + multi-line declarations (bug#17222). + +2022-05-11 Stefan Kangas <stefan@marxist.se> + + * etc/NEWS: Improve some entries. + + * lisp/net/browse-url.el (browse-url-button-map): Prefer defvar-keymap. + + * lisp/scroll-lock.el (scroll-lock-mode-map): Prefer defvar-keymap. + + * lisp/iimage.el (iimage-mode-map): Prefer defvar-keymap. + + * lisp/calendar/diary-lib.el (diary-mode-map): Prefer defvar-keymap. + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Add grep-files-aliases entry for .am files + + * lisp/progmodes/grep.el (grep-files-aliases): Add an alias for + .am files (bug#16921). + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Make recent nicknames erc change more backwards-compatible + + * lisp/erc/erc-button.el (erc-button-add-buttons): Make the + nicknames change more backwards-compatible (bug#16271). + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Add new command 'vc-dir-mark-by-regexp' + + * doc/emacs/maintaining.texi (VC Directory Commands): Document it. + * lisp/vc/vc-dir.el (vc-dir-mode-map): Bind it to `%'. + (vc-dir-mark-by-regexp): New command (bug#16460). + +2022-05-11 Po Lu <luangruo@yahoo.com> + + Add support for changing pointer types on Haiku + + * doc/lispref/frames.texi (Pointer Shape): Document that the + pointer shape can now be changed on some window systems other + than X. + + * lisp/term/haiku-win.el (x-pointer-X-cursor, x-pointer-arrow) + (x-pointer-bottom-left-corner, x-pointer-bottom-right-corner) + (x-pointer-bottom-side, x-pointer-clock, x-pointer-cross) + (x-pointer-cross-reverse, x-pointer-crosshair) + (x-pointer-diamond-cross, x-pointer-hand1, x-pointer-hand2) + (x-pointer-left-side, x-pointer-right-side) + (x-pointer-sb-down-arrow, x-pointer-sb-left-arrow) + (x-pointer-sb-right-arrow, x-pointer-sb-up-arrow, x-pointer-target) + (x-pointer-top-left-corner, x-pointer-top-right-corner) + (x-pointer-top-side, x-pointer-watch, x-pointer-invisible): New + pointer constants. + + * src/haiku_support.cc (BCursor_from_id): Accept int instead of + enum. + * src/haiku_support.h: Update prototypes. + + * src/haikufns.c (haiku_create_frame): Stop manually assigning + cursors and set default value of the mouse color property. + (haiku_free_frame_resources): Free custom cursors too. + (struct user_cursor_info, INIT_USER_CURSOR): New struct. + (haiku_free_custom_cursors): New function. + (haiku_set_mouse_color): New param handler. + (haiku_frame_parm_handlers): Add param handler. + (syms_of_haikufns): New cursor shape variables from X. + + * src/haikuterm.h: Update prototypes. + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Fix compilation warning in gdb-mi.el + + * lisp/progmodes/gdb-mi.el (gud-go): Fix compilation warning + introduced by previous change. + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Bind gud-go and allow the prefix to enter arguments + + * lisp/progmodes/gdb-mi.el (gdb): Bind gud-go to `C-c C-v' and + allow a prefix to enter arguments (bug#10106). + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Don't signal errors in check-declare-directory + + * lisp/emacs-lisp/check-declare.el (check-declare-directory): Don't + bug out if we don't find any files with declare-function:(bug#55354) + because this is a predicate function, and that's inconvenient. + +2022-05-11 Yoav Marco <yoavm448@gmail.com> (tiny change) + + (sqlite-mode--column-names): Support nested parens + + * lisp/sqlite-mode.el (sqlite-mode--column-names): Make parsing + more resilient (bug#55363). + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "Add meta navigation keys to outline-minor-mode-cycle-map" + + This reverts commit 2e949031160d769bbac941c064b825a5c578afc5. + + These key bindings are too intrusive. + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Don't try to toggle untogglable widgets in custom-toggle-hide-all-variables + + * lisp/cus-edit.el (custom-toggle-hide-all-variables): Only toggle + the widgets that can be toggled. + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Warn about quoted symbols in defcustom choice/other forms + + * lisp/emacs-lisp/bytecomp.el + (byte-compile--suspicious-defcustom-choice): New function (bug#16271). + (byte-compile-nogroup-warn): Use it to warn about forms like + (choice (const :tag "foo" 'bar)). + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Use `nicknames' instead if `'nicknames' in erc-button-alist + + * lisp/erc/erc-button.el (erc-button-alist): Use "nicknames" + instead of "'nicknames" to enable automatic syntax checking + (bug#16271). + (erc-button-add-buttons): Adjust usage. + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerated ldefs-boot.el + +2022-05-11 Lars Ingebrigtsen <larsi@gnus.org> + + Fix more defcustom :type errors + + * lisp/vc/vc-src.el (vc-src-master-templates): + * lisp/vc/vc-rcs.el (vc-rcs-master-templates): Remove quote + characters inserted by mistake. + +2022-05-11 Mattias Engdegård <mattiase@acm.org> + + Remedy ineffective backslashes and fix regexps + + * lisp/info.el (Info-read-node-name-2): Double backslash for intended + escaping effect. + * lisp/term.el (term-send-function-key): Remove redundant `+`. + * lisp/leim/quail/indian.el: + * lisp/simple.el (scratch-buffer, get-scratch-buffer-create): + Remove ineffective backslashes. + +2022-05-11 Mattias Engdegård <mattiase@acm.org> + + * src/lisp.h (FOR_EACH_TAIL_INTERNAL): Faster node comparison. + +2022-05-11 Po Lu <luangruo@yahoo.com> + + Fix mouse pointer avoidance in some configurations + + * lisp/avoid.el (mouse-avoidance-random-shape): Ignore invisible + pointer. + (mouse-avoidance-ignore-p): Adjust for interprogram DND. + * lisp/term/x-win.el (x-pointer-invisible): Make value larger + than the maximum possible glyph. + + * src/xfns.c (x_set_mouse_color): Use function that handles + `x-pointer-invisible' too. + * src/xterm.c (x_create_font_cursor): New function. Handle + invisible cursors. + * src/xterm.h: Update prototypes. + +2022-05-11 Juri Linkov <juri@linkov.net> + + * lisp/textmodes/string-edit.el: Improvements for pop-to-buffer (bug#33007) + + * lisp/textmodes/string-edit.el (string-edit): Use pop-to-buffer + with fit-window-to-buffer after the buffer is filled with text. + (string-edit-done, string-edit-abort): Use (quit-window 'kill). + +2022-05-11 Po Lu <luangruo@yahoo.com> + + Make Haiku event buffer non-static + + * src/haikuterm.c (haiku_read_socket): Don't make `buf' static + in case thread yielding happens inside. + +2022-05-11 Po Lu <luangruo@yahoo.com> + + Fix event memory leak on Haiku + + * src/haikuterm.c (haiku_read_socket): Allocate event buffer on + the stack. + +2022-05-10 Po Lu <luangruo@yahoo.com> + + Fix frame invalidation on Haiku + + * src/haiku_support.cc (FlipBuffers): Only set view bitmap if it + actually changed. + + * src/haikuterm.c (haiku_clip_to_string_exactly) + (haiku_draw_window_cursor, haiku_draw_fringe_bitmap): Fix region + invalidation. + +2022-05-10 Po Lu <luangruo@yahoo.com> + + Try to preserve font styles in the Haiku font dialog + + * haiku_support.cc (class EmacsFontSelectionDialog) + (UpdateStylesForIndex): If a style was previously selected and + exists in the new family as well, select it after adding the new + items. + +2022-05-10 Po Lu <luangruo@yahoo.com> + + Make reliefs on Haiku more like X + + * src/haikuterm.c (haiku_draw_relief_rect): Use frame background + (normal GC) for corners. + +2022-05-10 Po Lu <luangruo@yahoo.com> + + Clean up some MAYBE_UNUSED functions + + * src/xterm.c (x_clear_area1): Wrap in the conditions where it + will actually be used. + +2022-05-10 Paul Eggert <eggert@cs.ucla.edu> + + * src/eval.c (Ffunctionp): Clarify "function" in doc string. + + * src/floatfns.c: Update comment. + +2022-05-10 Paul Eggert <eggert@cs.ucla.edu> + + Port libm configure-time test to Solaris 11.4 + + * configure.ac (LIB_MATH): Check all the math.h functions + that Emacs uses, not just sqrt (Bug#55294). + +2022-05-10 Alexander Adolf <alexander.adolf@condition-alpha.com> + + EUDC: Add completion-at-point support + + * lisp/net/eudc-capf.el: New file. + * lisp/gnus/message.el (message-mode): Add `eudc-capf-complete' to + `completion-at-point-functions' when a `message-mode' buffer is + created. + * doc/misc/eudc.texi (Inline Query Expansion): Add a new subsection, + describing the new `completion-at-point' mechanism in `message-mode'. + * etc/NEWS (EUDC): Describe the new `completion-at-point' method. + +2022-05-10 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add support for the Siddham script + + * lisp/language/indian.el ("Siddham"): New language environment. + Add composition rules for Siddham. Add sample text and input + method. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Siddham. + * lisp/leim/quail/indian.el ("siddham"): New input method. + + * etc/HELLO: Add a Siddham greeting. + * etc/NEWS: Announce the new language environment and its + input method. (Bug#55350) + +2022-05-10 Lars Ingebrigtsen <larsi@gnus.org> + + Fix some quoting problems in defcustom :type + + * lisp/progmodes/gdb-mi.el + (gdb-restore-window-configuration-after-quit): + * lisp/gnus/gnus.el (large-newsgroup-initial): + * lisp/eshell/em-hist.el (eshell-hist-ignoredups): Fix invalid + quoting in :type. + +2022-05-10 Lars Ingebrigtsen <larsi@gnus.org> + + Add new command to toggle hiding all widgets in a Customize buffer + + * lisp/cus-edit.el (custom-commands): Add menu entry. + (custom-toggle-hide-all-variables): New command (bug#15748). + +2022-05-10 Lars Ingebrigtsen <larsi@gnus.org> + + Use fields on log-edit headers (which changes `C-a' behavior) + + * lisp/vc/log-edit.el (log-edit-insert-message-template): Fieldify + headers so that `C-a' takes us to the start of the string, not the + line (bug#15645). + +2022-05-10 Lars Ingebrigtsen <larsi@gnus.org> + + Make ispell-region/buffer push the mark of the final word + + * lisp/textmodes/ispell.el (ispell-region): Push the mark of the + final location. + (ispell-process-line): Change the return value to include the + position of the final word. + +2022-05-10 Lars Ingebrigtsen <larsi@gnus.org> + + Fix markup in read-number doc string + + * lisp/subr.el (read-number): Fix markup for the letter. + +2022-05-10 Lars Ingebrigtsen <larsi@gnus.org> + + Allow packages to alter menu entries in the Buffers menu + + * lisp/menu-bar.el (menu-bar-update-buffers): Use it. + (menu-bar-buffers-menu-command-entries): Put the entries into the + defvar so that packages can modify it (bug#14244). + +2022-05-10 Po Lu <luangruo@yahoo.com> + + Improve display of relief rectangles on NS + + * src/nsterm.m (ns_draw_relief): Respect cursor color and draw + corners like X. + +2022-05-10 Po Lu <luangruo@yahoo.com> + + Respect `alpha-background' drawing relief corners + + * src/xterm.c (x_draw_relief_rect): Respect background alpha for + corner rects. + +2022-05-10 Lars Ingebrigtsen <larsi@gnus.org> + + Make `apropos-variable' include values in output + + * lisp/apropos.el (apropos-print): Include variable values in the + output (bug#13842). + +2022-05-10 Po Lu <luangruo@yahoo.com> + + Fix display of depressed buttons + + * src/xterm.c (x_draw_relief_rect): Fix typo. + +2022-05-10 Po Lu <luangruo@yahoo.com> + + Improve relief rect handling on Haiku + + * haikuterm.c (haiku_calculate_relief_colors): Calculate + backgrounds for image glyphs like on X. + (haiku_draw_relief_rect): Remove extra parameter. + (haiku_draw_string_box, haiku_draw_image_relief): Adjust + accordingly. + +2022-05-10 Po Lu <luangruo@yahoo.com> + + Fix X11 relief background clearning when hwidth is larger than vwidth + + * src/xterm.c (x_fill_triangle, x_make_point, x_inside_rect_p): + New functions. + (x_draw_relief_rect): Complete rewrite. Use more sensible + primitives. + +2022-05-10 Po Lu <luangruo@yahoo.com> + + Improve display of reliefs on NS + + * src/nsfont.m (nsfont_draw): Don't compensate for left box + twice. + * src/nsterm.m (ns_draw_relief): Draw outer edges of box like on + X. + +2022-05-10 Po Lu <luangruo@yahoo.com> + + Handle deletion of opacity property too + + * src/xterm.c (handle_one_xevent): Clear `alpha' frame parameter + when opacity prop is gone or invalid. + +2022-05-10 Po Lu <luangruo@yahoo.com> + + Work around some broken programs when reading opacity prop + + * src/xterm.c (handle_one_xevent): Accept some other types that + property is set to by thoughtless programs. + +2022-05-10 Lars Ingebrigtsen <larsi@gnus.org> + + Fix bibtex-map-entries regression at bobp + + * lisp/textmodes/bibtex.el (bibtex-map-entries): Fix regression + introduced by c32e8b33f (bug#55342) -- don't fail when the first + entry is at bobp. + +2022-05-10 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 7b4bdf7b9b Remove the AUCTeX subsection from MS-Windows FAQ + d2a5631552 Update AUCTeX FAQ entry + 177718bc6d Update string-to-number documentation to bignum Emacs + 74cc3b525f Fix doc string references to tags-loop-continue + +2022-05-10 Po Lu <luangruo@yahoo.com> + + Simplify Haiku selection code + + * src/haiku_select.cc (get_clipboard_object): New function. + (BClipboard_find_data, BClipboard_get_targets, BClipboard_set_data) + (BClipboard_find_system_data) + (BClipboard_find_primary_selection_data) + (BClipboard_find_secondary_selection_data) + (BClipboard_set_system_data, BClipboard_set_primary_selection_data) + (BClipboard_set_secondary_selection_data, BClipboard_free_data) + (BClipboard_system_targets, BClipboard_primary_targets) + (BClipboard_secondary_targets): Delete functions. + (be_find_clipboard_data_1, be_set_clipboard_data_1) + (be_get_clipboard_targets_1, be_find_clipboard_data) + (be_set_clipboard_data, be_get_clipboard_targets): New + functions. + (be_lock_clipboard_message, be_unlock_clipboard): Use + `get_clipboard_object' to get clipboard from ID. + + * src/haikuselect.c (haiku_get_clipboard_name): New function. + (Fhaiku_selection_data, Fhaiku_selection_put) + (Fhaiku_selection_owner_p): Adjust to use new simplified + functions. + + * src/haikuselect.h: Update prototypes. + +2022-05-09 Lars Ingebrigtsen <larsi@gnus.org> + + Add more compilation-auto-jump-to-first-error options + + * doc/emacs/building.texi (Compilation Mode): Document it. + * lisp/progmodes/compile.el + (compilation-auto-jump-to-first-error): Extend type. + (compilation--file-known-p): New function. + (compilation-auto-jump): Use it to support the new values + (bug#8228). + (compilation-find-file-1): Factored out into own function. + (compilation-find-file): Factored out from here. + +2022-05-09 Lars Ingebrigtsen <larsi@gnus.org> + + Make dabbrev use the buffer's file name as a source for completions + + * lisp/dabbrev.el (dabbrev--find-expansion): Include the buffer's + file name in the completions (bug#8163). + +2022-05-09 Lars Ingebrigtsen <larsi@gnus.org> + + Make imenu find defalias entries + + * lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression): + Also find defalias (bug#7855). + +2022-05-09 Po Lu <luangruo@yahoo.com> + + Simplify XDND code + + * src/xfns.c (Fx_begin_drag): Use SAFE_ALLOCA_STRING and encode + strings in the right coding system. + +2022-05-09 Sean Whitton <spwhitton@spwhitton.name> + + Factor out *scratch* initialization + + * lisp/simple.el (get-scratch-buffer-create): New function, factored + out of scratch-buffer, and additionally clearing the modification flag + and calling substitute-command-keys (bug#55257). + (scratch-buffer): + * lisp/server.el (server-execute): + * lisp/startup.el (normal-no-mouse-startup-screen, command-line-1): + * lisp/window.el (last-buffer, window-normalize-buffer-to-switch-to): + * src/buffer.c (Fother_buffer, other_buffer_safely): Use it. + (syms_of_buffer): Add Qget_scratch_buffer_create. + * lisp/startup.el (startup--get-buffer-create-scratch): Delete + now-unused function. + * doc/lispref/os.texi (Summary: Sequence of Actions at Startup): + * NEWS (Incompatible changes in Emacs 29.1): Document the change. + +2022-05-09 Lars Ingebrigtsen <larsi@gnus.org> + + Add NEWS entries for recent autosaved buffer modification status + + * doc/lispref/buffers.texi (Buffer Modification): Note 'autosaved' + value. + +2022-05-09 Lars Ingebrigtsen <larsi@gnus.org> + + Reimplement recent with-silent-modifications auto-save changes + + * doc/lispref/buffers.texi (Buffer Modification): Document + buffer-modified-p returning `autosaved'. + * lisp/subr.el (with-silent-modifications): Use + restore-buffer-modified-p instead of altering the buffer modiff + (since this has other side effects like not updating after async + `display' changes. + + * src/buffer.c (Fbuffer_modified_p): Allow returning whether the + buffer has been autosaved after changes. + (Frestore_buffer_modified_p): Allow adjusting whether the buffer + has been autosaved after changes. + + * src/fileio.c (Fdo_auto_save): Refill the doc string. + +2022-05-09 Andrea Corallo <akrl@sdf.org> + + Fix syntax descriptor comparison in python-indent-region + + * lisp/progmodes/python.el (python-indent-region): Compare raw + syntax descriptors with equal (bug#45328) (because comparing them with + eq will always be false). + +2022-05-09 Po Lu <luangruo@yahoo.com> + + Update alpha frame parameter when the window manager changes it + + * src/xfns.c (x_set_alpha): New function. Set + `alpha_identical_p' flag. + (x_frame_parm_handlers): Use it to handle `alpha' instead. + + * src/xterm.c (x_set_frame_alpha): Make tests against current + alpha safer. + (handle_one_xevent): Set frame alpha when alpha property + changes. + * src/xterm.h (struct x_output): New flag `alpha_identical_p'. + +2022-05-09 Yuan Fu <casouri@gmail.com> + + Fix compilation warnings + + * src/treesit.c: Add static keywords, remove unused variables, add + const qualifier. + +2022-05-09 Yuan Fu <casouri@gmail.com> + + Remove call to nconc to improve performance + + * src/treesit.c (struct capture_range): New struct. + (ts_predicate_capture_name_to_text, ts_predicate_equal, + ts_predicate_match, ts_eval_predicates): Replace capture list with + capture_range. + (Ftreesit_query_capture): Remove call to nconc. + +2022-05-09 Theodor Thornhill <theo@thornhill.no> + + Use format string instead of concat + + * eglot.el (eglot-handle-notification): Because diagnostics code can + be integer or string, and integer fails the sequencep test, use format + to create this string. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/948 + +2022-05-09 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add support for the Sharada script + + * lisp/language/indian.el ("Sharada"): New language environment. + Add composition rules for Sharada. Add sample text and input + method. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Sharada. + * lisp/leim/quail/indian.el ("sharada"): New input method. + + * etc/HELLO: Add a Sharada greeting. + * etc/NEWS: Announce the new language environment and its + input method. (Bug#55328) + +2022-05-09 Michael Albinus <michael.albinus@gmx.de> + + Improve Tramp tests + + * lisp/net/tramp-smb.el (tramp-smb-handle-copy-file): + Handle compressed files. + + * lisp/net/tramp.el (tramp-skeleton-write-region): + Handle encrypted VISIT file. + (tramp-get-process-attributes): Add backward compatibility. + + * test/lisp/net/tramp-tests.el (with-connection-local-variables): + Declare. + (auto-save-file-name-transforms): Don't declare. + (ert-resource-directory-format) + (ert-resource-directory-trim-left-regexp) + (ert-resource-directory-trim-right-regexp, ert-resource-directory) + (ert-resource-file): Define if they don't exist. + (tramp-test10-write-region-file-precious-flag) + (tramp-test10-write-region-other-file-name-handler) + (tramp-test31-interrupt-process, tramp-test31-signal-process) + (tramp--test-async-shell-command) + (tramp-test34-connection-local-variables) + (tramp-test39-make-lock-file-name) + (tramp-test39-detect-external-change): Extend tests. + +2022-05-09 Eli Zaretskii <eliz@gnu.org> + + Remove the AUCTeX subsection from MS-Windows FAQ + + * doc/misc/efaq-w32.texi (AUCTeX): Remove the subsection, it is no + longer useful. (Bug#55330) + +2022-05-09 Protesilaos Stavrou <info@protesilaos.com> + + Shorten note about didactic space in TUTORIAL.el_GR (bug#55332) + +2022-05-09 Po Lu <luangruo@yahoo.com> + + * src/haikuterm.c (haiku_draw_fringe_bitmap): Set stipple flag. + +2022-05-09 Po Lu <luangruo@yahoo.com> + + Fix reading faces with a default value that is a symbol + + * lisp/faces.el (read-face-name): Don't try to intern face if it + is already a symbol. + +2022-05-09 Po Lu <luangruo@yahoo.com> + + Fix scroll optimizations being enabled for some rows with stipples + + * src/dispnew.c (update_text_area): New parameter `partial_p'. + Set it if not enough glyphs were drawn to determine if a row + doesn't have a stipple. + (update_window_line): Preserve current_row->stipple_p in that + case, after making the desired row current. + + * src/xterm.c (x_draw_fringe_bitmap): Set row->stipple. + +2022-05-09 Lars Ingebrigtsen <larsi@gnus.org> + + Make ediff-show-diff-output work better on unsaved buffers + + * lisp/vc/ediff-util.el (ediff-show-diff-output): Make the `D' + command work on unsaved buffers without a prefix (bug#45016). + +2022-05-09 João Távora <joaotavora@gmail.com> + + Allow non-interactive use of eldoc-doc-buffer + + * lisp/emacs-lisp/eldoc.el (eldoc-doc-buffer): Allow + non-interactive use. + (Version): Bump minor. + +2022-05-09 Lars Ingebrigtsen <larsi@gnus.org> + + Copy edits for the regexp sections in the manuals + + * doc/lispref/searching.texi (Regexp Backslash): + * doc/emacs/search.texi (Regexps, Regexp Backslash): Copy edits + from Jay Bingham (bug#41970). + +2022-05-09 Po Lu <luangruo@yahoo.com> + + Respect display scale factor drawing underwaves on Haiku + + * src/haikuterm.c (haiku_get_scale_factor): New function. + (haiku_draw_underwave): Apply said factor. + +2022-05-09 Lars Ingebrigtsen <larsi@gnus.org> + + Add meta navigation keys to outline-minor-mode-cycle-map + + * lisp/outline.el (outline-minor-mode-cycle-map): Add meta + navigate keys (bug#41129). + +2022-05-09 Arash Esbati <arash@gnu.org> + + Update AUCTeX FAQ entry + + * doc/misc/efaq-w32.texi (AUCTeX): AUCTeX project isn't providing + pre-compiled versions for Windows anymore (bug#55330). + +2022-05-09 Vladimir Nikishkin <for.emacs-table.el-environment-patch_2022-05-09@lockywolf.net> + + Add new user option table-latex-environment + + * lisp/textmodes/table.el (table-latex-environment): New user + option (bug#55333). + (table--generate-source-prologue): Use it. + +2022-05-09 Lars Ingebrigtsen <larsi@gnus.org> + + Update string-to-number documentation to bignum Emacs + + * doc/lispref/strings.texi (String Conversion): string-to-number + no longer converts integers to floating point numbers (bug#55334). + +2022-05-09 Lars Ingebrigtsen <larsi@gnus.org> + + Fix doc string references to tags-loop-continue + + * lisp/vc/vc-dir.el (vc-dir-search, vc-dir-query-replace-regexp): + Fix reference to obsolete tags-loop-continue (bug#55311). + +2022-05-09 Po Lu <luangruo@yahoo.com> + + Fix file-based launching on Haiku + + * src/haikuselect.c (Fhaiku_roster_launch): Canonicalize file + names before using them. + +2022-05-09 Po Lu <luangruo@yahoo.com> + + Use default external browser by default on Haiku + + * lisp/net/browse-url.el (browse-url-default-browser): Use that + by default on Haiku. + (browse-url-default-haiku-browser): New function. + * src/haiku_support.cc (be_roster_launch): + * src/haiku_support.h: New function. Update prototypes. + * src/haikuselect.c (haiku_message_to_lisp): Encode and decode + files correctly. + (haiku_lisp_to_message): Encode and decode files correctly. + (Fhaiku_roster_launch): New function. + (syms_of_haikuselect): Update defsubrs. + +2022-05-09 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 1d012e0a62 Linux console: don't translate ESC TAB to `backtab' in inp... + +2022-05-08 Po Lu <luangruo@yahoo.com> + + Fix stipple bitmap caching on Haiku + + * src/image.c (image_create_bitmap_from_file): Set file name on + the bitmap rec on Haiku. + +2022-05-08 Po Lu <luangruo@yahoo.com> + + Allow disabling Motif drag protocol + + * lisp/cus-start.el (standard): Add new variable. + * src/xterm.c (x_dnd_update_state, handle_one_xevent): Respect + new variable. + (syms_of_xterm): New variable `x-dnd-disable-motif-drag'. + +2022-05-08 Po Lu <luangruo@yahoo.com> + + Allow precision-scrolling nonselected windows when the minibuffer is resized + + * doc/lispref/windows.texi (Vertical Scrolling): Document new + `preserve-vscroll-p' parameter of `set-window-vscroll'. + * etc/NEWS: Announce new parameter. + + * lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down-page) + (pixel-scroll-precision-scroll-up-page): Use that parameter when + setting the vscroll. + + * src/window.c (window_scroll_pixel_based, Fset_window_vscroll): + Adjust for new parameter. + * src/window.h (struct window): New flag `preserve_vscroll_p'. + + * src/xdisp.c (redisplay_window): Preserve the vscroll inside + force_start on frozen windows with that flag set. (bug#55312) + +2022-05-08 Po Lu <luangruo@yahoo.com> + + Fix race conditions in handling of unsupported drops on X + + * lisp/x-dnd.el (x-dnd-handle-unsupported-drop): Adjust for new + parameters. + + * src/keyboard.c (kbd_buffer, kbd_fetch_ptr, kbd_store_ptr): + Export variables. + (kbd_buffer_get_event): Ignore already handled unsupported + drops. + * src/keyboard.h: Update prototypes. + + * src/termhooks.h (enum event_kind): Document meaning of + `modifiers' in UNSUPPORTED_DROP_EVENTs. + + * src/xterm.c (x_dnd_send_unsupported_drop): Set event modifiers + to current level. + (x_toggle_visible_pointer): Fix fixes fallback. + (x_dnd_begin_drag_and_drop): Handle UNSUPPORTED_DROP_EVENTs + already in the keyboard buffer before starting DND. + (syms_of_xterm): Give timestamp to unsupported drop function. + + * src/xterm.h: Update prototypes. + +2022-05-08 João Távora <joaotavora@gmail.com> + + Fix egregious thinko in eglot--uri-to-path + + One shouldn't unhex the URI before parsing it. Just consider a + filename with a # character in it. The character is encoded as C%23, + after unhexing the file name becomes. + + /tmp/C#/Program.cs + + Now, parsing this as the URL will fail completely as the # mean + "anchor" in URLs. + + * eglot.el (eglot--uri-to-path): Fix thinko. + +2022-05-08 João Távora <joaotavora@gmail.com> + + Consider diagnostic.code when generating flymake diagnostics + + Not sure this will please everybody, can almost guess someone is going + to ask for a custom switch. + + Instead this info (and the source) should be passed on to Flymake. + That's where the custom switch for controlling formatting of + diagnostic messages should exist. But that's too much work right now. + + * eglot.el (eglot-handle-notification): Consider Diagnostic.code. + +2022-05-08 Sean Whitton <spwhitton@spwhitton.name> + + remember-notes: Use pop-to-buffer-same-window not switch-to-buffer + + * lisp/textmodes/remember.el (remember-notes): Use + pop-to-buffer-same-window rather than switch-to-buffer, to allow + customization via display-buffer-alist. + +2022-05-08 Juri Linkov <juri@linkov.net> + + Minor documentation improvements for completions commands and options + + * doc/emacs/mini.texi (Completion Commands): Mention prefix argument + of choose-completion. + (Completion Options): Improve documentation of completions-format + and completions-sort. + +2022-05-08 Protesilaos Stavrou <info@protesilaos.com> + + Add Greek translation of the tutorial + + * etc/tutorials/TUTORIAL.el_GR: Add tutorial in Greek. It is a + faithful translation of the TUTORIAL. + * etc/tutorials/TUTORIAL.translators (Author): Mention myself as + the author and the maintainer. + * etc/NEWS: Announce it. (Bug#55314) + + * lisp/language/greek.el (set-language-info-alist): Link to the + tutorial and include sample text. + +2022-05-08 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add support for the Tirhuta script + + * lisp/language/indian.el ("Tirhuta"): New language environment. + Add composition rules for Tirhuta. Add sample text and input + method. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Tirhuta. + * lisp/leim/quail/indian.el ("tirhuta"): New input method. + + * etc/HELLO: Add a Tirhuta greeting. + * etc/NEWS: Announce the new language environment and its + input method. + +2022-05-08 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/oclosure.el (oclosure-define): Fix empty case + +2022-05-08 Lars Ingebrigtsen <larsi@gnus.org> + + Don't hang on trying to rename FIFOs between file systems + + * src/fileio.c (Frename_file): Don't hang on trying to move FIFOs + (bug#34069). + +2022-05-08 Visuwesh <visuweshm@gmail.com> + + dired-do-query-replace-regexp doc string fix + + * lisp/dired-aux.el (dired-do-query-replace-regexp): Refer + 'fileloop-continue' instead of the obsolete command + 'tags-loop-continue'. (Bug#55311) + + (cherry picked from commit 4c505203f9171886f47638779326e257a95a1d79) + +2022-05-08 Po Lu <luangruo@yahoo.com> + + Fix display of fringes with stipples on X + + * src/xterm.c (x_draw_fringe_bitmap): Set fill style and use + fill function correctly. + +2022-05-08 Po Lu <luangruo@yahoo.com> + + Fix display of fringes with stipples on Haiku + + * haikuterm.c (haiku_after_update_window_line): Fix coding + style. + (haiku_draw_fringe_bitmap): Handle display of stipples if + present. + +2022-05-08 Alan Mackenzie <acm@muc.de> + + CC Mode: Fix bug in c-parse-state. Fixes bug #55181. + + * lisp/progmodes/cc-engine.el (c-state-cache-lower-good-pos): When in a + literal, return the start of that literal as a "good pos", not the parameter + POS. + +2022-05-08 Po Lu <luangruo@yahoo.com> + + Set stipple flag on PGTK as well + + * pgtkterm.c (pgtk_draw_glyph_string_background): + (pgtk_draw_glyph_string): Set stipple flag on string row. + (pgtk_draw_fringe_bitmap): + (pgtk_defined_color): Fix coding style. + +2022-05-08 Lars Ingebrigtsen <larsi@gnus.org> + + Allow term-mode to send function keys to the underlying shell + + * lisp/term.el (term-bind-function-keys): New user option. + (term-raw-map): Bind f keys. + (term-send-function-key): Send the function key to the underlying + shell (bug#29920). + +2022-05-08 Po Lu <luangruo@yahoo.com> + + Set stipple flags on Haiku as well + + * src/haikuterm.c (haiku_draw_glyph_string): Set stipple flag + where stipples are actually drawn. (This is different from X.) + +2022-05-08 Po Lu <luangruo@yahoo.com> + + Disable scrolling optimizations when a stipple is present + + * src/dispextern.h (struct glyph_row): New field `stippled_p'. + We cannot just use the contents of the glyph row, since it has + to be set in `gui_clear_end_of_line' and is more convenient to + set inside the various draw_glyph_string functions. + + * src/dispnew.c (scrolling_window): Disable if a row in the + current matrix has the stipple_p flag set. + + * src/xdisp.c (gui_clear_end_of_line): + * src/xterm.c (x_draw_image_glyph_string) + (x_draw_stretch_glyph_string, x_draw_glyph_string): Set + `stipple_p' if a stipple pattern was drawn. + +2022-05-08 Alan Mackenzie <acm@muc.de> + + Linux console: don't translate ESC TAB to `backtab' in input-decode-map. + + This translation happened after the terminfo entry for <shift>TAB in the linux + section was changed to kcbt=\E^I in ncurses version 6.3. + + * lisp/term/linux.el (terminal-init-linux): Add a define-key form to remove + the entry for "\e\t" from input-decode-map. + + * etc/PROBLEMS: Add a new section under "character terminals" about S-TAB + wrongly doing the same thing as M-TAB, giving tips about amending the Linux + keyboard layout. + +2022-05-08 Visuwesh <visuweshm@gmail.com> + + dired-do-query-replace-regexp doc string fix + + * lisp/dired-aux.el (dired-do-query-replace-regexp): Refer + 'fileloop-continue' instead of the obsolete command + 'tags-loop-continue'. + +2022-05-08 Po Lu <luangruo@yahoo.com> + + Fix crashes on ordinary menus on macOS + + * src/nsmenu.m ([EmacsMenu runMenuAt:forFrame:keymaps:]): Fix + coding style. + ([EmacsMenu menu:willHighlightItem:]): Ignore if this is a + context menu. + +2022-05-08 Po Lu <luangruo@yahoo.com> + + Fix bug in `pixel-scroll-precision-mode' on nonselected windows + + * src/window.c (Fset_window_vscroll): Mark window for redisplay. + (bug#55299) + +2022-05-08 Michael Albinus <michael.albinus@gmx.de> + + Handle changed scp protocol in Tramp + + * lisp/net/tramp-sh.el (tramp-scp-force-scp-protocol): New defvar. + (tramp-scp-force-scp-protocol): New defun. + (tramp-do-copy-or-rename-file-out-of-band): Use it. + (tramp-scp-direct-remote-copying, tramp-methods) <scp, scpx>: Use "%z". + + * lisp/net/tramp.el (tramp-methods): Adapt docstring. + +2022-05-08 Po Lu <luangruo@yahoo.com> + + Improve handling of invisible cursor alloc failures + + * src/xterm.c (x_toggle_visible_pointer): Use Xfixes if cursor + allocation really fails. This happens when the X server has a + limit on the number of cursors that can be created. + +2022-05-08 Po Lu <luangruo@yahoo.com> + + Fix file-based stipple on NS + + * src/image.c (image_create_bitmap_from_file) [HAVE_NS]: Fix + loading XBM data from file. + +2022-05-08 Eli Zaretskii <eliz@gnu.org> + + Fix selection dialog display on MS-Windows + + * src/w32fns.c (w32_wnd_proc) <WM_PAINT>: Update the frame from + the back buffer when double-buffering is in effect and a selection + dialog is open. + (w32_dialog_in_progress): Indicate to 'w32_wnd_proc' that a + selection dialog is open. (Bug#55208) + +2022-05-08 Po Lu <luangruo@yahoo.com> + + Fix display of hollow box cursor on NS + + * src/nsterm.m (ns_draw_window_cursor): Fix verbatim + translations from X. + +2022-05-08 Po Lu <luangruo@yahoo.com> + + Fix setting stipple via `set-face-stipple' + + * lisp/faces.el (face-valid-attribute-values): Return results + for `:stipple' in correct format. + +2022-05-08 Po Lu <luangruo@yahoo.com> + + Implement stipples for stretch glyphs + + * src/haikuterm.c (haiku_draw_stipple_background): Accept new + arguments for specifying the color explicitly. All callers + changed. + (haiku_draw_stretch_glyph_string): Draw stipple correctly. + (haiku_draw_glyph_string): Handle stipple correctly when drawing + neighbors. + +2022-05-08 Po Lu <luangruo@yahoo.com> + + Fully implement stipples for text on Haiku + + * src/haikufont.c (haikufont_draw): Use + `haiku_draw_background_rect' instead. + + * src/haikuterm.c (haiku_draw_plain_background): Change + arguments to accept rect manually. + (haiku_get_bitmap): Delete function. + (haiku_get_bitmap_rec): New function. + (haiku_draw_stipple_background): Accept rect instead of box + sizes. + (haiku_draw_background_rect): New function. + (haiku_maybe_draw_background): Use that instead. + (haiku_draw_image_glyph_string): Add notice. + (haiku_draw_glyph_string): Set `stippled_p' correctly. + + * src/haikuterm.h (struct haiku_bitmap_record): New fields for + keeping track of stipple state. + * src/image.c (image_create_bitmap_from_data) + (image_create_bitmap_from_file, free_bitmap_record): Free and + set them accordingly. + +2022-05-07 Po Lu <luangruo@yahoo.com> + + Implement bitmap loading for faces on Haiku + + Stipples don't completely work yet. + + * lisp/faces.el (face-valid-attribute-values): Enable `:stipple' + on Haiku. + * src/haiku_draw_support.cc (BView_DrawBitmap) + (BView_DrawBitmapWithEraseOp, BView_DrawMask): Don't push and + pop states. + (BView_DrawBitmapTiled): New function. + + * src/haiku_support.cc (BBitmap_import_mono_bits): Delete + function. + * src/haiku_support.h: Update prototypes. + * src/haikuterm.c (get_string_resource): Fix coding style. + (haiku_get_bitmap, haiku_draw_stipple_background): Implement + partially. + (haiku_set_scroll_bar_default_width) + (haiku_set_scroll_bar_default_height, haiku_scroll_bar_create) + (haiku_set_horizontal_scroll_bar, haiku_set_vertical_scroll_bar) + (haiku_create_terminal, haiku_scroll_bar_remove): Fix coding + style. + + * src/image.c (image_create_bitmap_from_data) + (image_create_bitmap_from_file): Implement on Haiku. + +2022-05-07 Po Lu <luangruo@yahoo.com> + + Use correct event structures to fetch time on XI2 + + * src/xterm.c (handle_one_xevent): Don't use generic `xi_event' + to access the event time. + +2022-05-07 Paul Eggert <eggert@cs.ucla.edu> + + * src/fns.c: Fix IDs in comments to match code. + +2022-05-07 Eli Zaretskii <eliz@gnu.org> + + Fix Bengali composition rules + + * lisp/language/indian.el (bengali-composable-pattern): Fix + composition rules for U+09F0 and U+09FE. Patch from + समीर सिंह Sameer Singh <lumarzeli30@gmail.com>. (Bug#55303) + +2022-05-07 Lars Ingebrigtsen <larsi@gnus.org> + + Make 'delete-process' into a command + + * doc/lispref/processes.texi (Deleting Processes): Document + missing PROCESS value. + * src/process.c (Fdelete_process): Allow calling interactively + (bug#10107). + +2022-05-07 Eli Zaretskii <eliz@gnu.org> + + Improve Devanagari character composition rules + + * lisp/language/indian.el (devanagari-composable-pattern): Add + rules for Vedic accents. Suggested by Madhu <enometh@meer.net>. + +2022-05-07 Stefan Monnier <monnier@iro.umontreal.ca> + + (dabbrev-completion): Fix bug#45768 + + Make `dabbrev-completion` go through `completion-at-point` so that + it interacts correctly with Icomplete. Export a new + `completion-capf` function while we're at it, since it can be useful + elsewhere. + + * lisp/dabbrev.el (dabbrev-capf): New function, + extracted from `dabbrev-completion`. + (dabbrev-completion): Use it. + +2022-05-07 Po Lu <luangruo@yahoo.com> + + Clean up some variables in the Haiku code + + * src/haikuterm.c: Add comments to some variables and clean up + initializers. + * src/haikuterm.h (haiku_frame_param_handlers): Move here + instead. + +2022-05-07 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Add support for the Kaithi script + + * lisp/language/indian.el ("Kaithi"): New language environment. + Add composition rules for Kaithi. Add sample text and input + method. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Kaithi. + * lisp/leim/quail/indian.el ("kaithi"): New input method. + + * etc/HELLO: Add a Kaithi greeting. + * etc/NEWS: Announce the new language environment and its + input method. + +2022-05-07 Lars Ingebrigtsen <larsi@gnus.org> + + Explain better what the interactive prefix does in scroll-down/up + + * lisp/window.el (scroll-up-command, scroll-down-command): + * lisp/image-mode.el (image-scroll-up, image-scroll-down): + Actually explain what the interactive prefix does (bug#44503). + +2022-05-07 Lars Ingebrigtsen <larsi@gnus.org> + + Document the `x' DWIM action in the manual + + * doc/emacs/package.texi (Package Menu): Mention the DWIM action + of the `x' command. + +2022-05-07 Lars Ingebrigtsen <larsi@gnus.org> + + Remove tar-mode dabbrev-ignored-buffer-modes + + * lisp/dabbrev.el (dabbrev-ignored-buffer-modes): Remove tar-mode + from the default, because it isn't really a binary mode. + +2022-05-07 Lars Ingebrigtsen <larsi@gnus.org> + + Make `x' in package-menu-mode more DWIM + + * lisp/emacs-lisp/package.el (package-menu-mode): Make the doc + string more helpful. + (package-menu-execute): Make `x' when no files are installed DWIM. + +2022-05-07 Lars Ingebrigtsen <larsi@gnus.org> + + Improve inferior-python-mode scroll behavior + + * lisp/progmodes/python.el (inferior-python-mode): Use + scroll-convervatively instead of trying to do this with a comint + filter (which produces flickering) (bug#31115). + +2022-05-07 Lars Ingebrigtsen <larsi@gnus.org> + + Fix compilation warnings in newer subr tests + + * test/lisp/subr-tests.el (test-local-set-state): Fix compilation + warnings. + +2022-05-07 Lars Ingebrigtsen <larsi@gnus.org> + + Allow dabbrev to ignore binary buffers + + * doc/emacs/abbrevs.texi (Dynamic Abbrevs): Document it. + * lisp/dabbrev.el (dabbrev-ignored-buffer-names) + (dabbrev-ignored-buffer-regexps): Link to it. + (dabbrev-ignored-buffer-modes): New user option (bug#19392). + (dabbrev--filter-buffer-modes): New function. + (dabbrev--select-buffers, dabbrev--make-friend-buffer-list): Use it. + +2022-05-07 Po Lu <luangruo@yahoo.com> + + Fix mouse face dismissal in some widget popups + + * src/xterm.c (handle_one_xevent): Accept XINotifyUngrab as + well. + +2022-05-07 Lars Ingebrigtsen <larsi@gnus.org> + + Allow inhibiting linkification in *Help* buffers + + * doc/lispref/help.texi (Keys in Documentation): Document it. + lisp/help-mode.el (help-make-xrefs): Implement a new \+ syntax to + inhibit buttonification. + +2022-05-07 Lars Ingebrigtsen <larsi@gnus.org> + + Make the icomplete-in-buffer doc string document more + + * lisp/icomplete.el (icomplete-in-buffer): Note what this variable + does and doesn't do (bug#45768). + +2022-05-07 Lars Ingebrigtsen <larsi@gnus.org> + + Avoid having font locking triggering unnecessary auto-saving + + * lisp/subr.el (with-silent-modifications): Use it to restore the + ticks (bug#11303). + + * src/buffer.c (Finternal__set_buffer_modified_tick): New function. + +2022-05-07 Po Lu <luangruo@yahoo.com> + + Cache color lookup failures as well + + * src/xterm.c (x_parse_color): Cache color lookup failures too. + * src/xterm.h (struct color_name_cache_entry): New field + `valid'. + +2022-05-07 Yuan Fu <casouri@gmail.com> + + Add tree-sitter integration + + * configure.ac (HAVE_TREE_SITTER, TREE_SITTER_OBJ): New variables. + (DYNAMIC_LIB_SUFFIX): new variable, I copied code from MODULES_SUFFIX + so the diff looks this way. + * doc/lispref/elisp.texi (Top): Add tree-sitter manual. + * doc/lispref/modes.texi (Font Lock Mode): mention tree-sitter. + (Parser-based Font Lock): New section. + (Auto-Indentation): Mention tree-sitter. + (Parser-based Indentation): New section. + * doc/lispref/parsing.texi (Parsing Program Source): New chapter. + * lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Add + treesit-parser and treesit-node type. + * lisp/treesit.el: New file. + * src/Makefile.in (TREE_SITTER_LIBS, TREE_SITTER_FLAGS, + TREE_SITTER_OBJ): New variables. + * src/alloc.c: + (cleanup_vector): Add cleanup code for treesit-parser and + treesit-node. + * src/casefiddle.c (casify_region): Notify tree-sitter parser of + buffer change. + * src/data.c (Ftype_of): Add treesit-parser and treesit-node type + (Qtreesit_parser, Qtreesit_node): New symbol. + * src/emacs.c (main): Add symbols in treesit.c. + * src/eval.c (define_error): Move the function to here. + * src/insdel.c (insert_1_both, insert_from_string_1, insert_from_gap, + insert_from_buffer_1, replace_range, del_range_2): Notify tree-sitter + parser of buffer change. + * src/json.c (define_error): Move this function out. + * src/lisp.h (DEFINE_GDB_SYMBOL_BEGIN): Add treesit-parser and + treesit-node. + * src/lread.c (Vdynamic_library_suffixes): New variable. + * src/print.c (print_vectorlike): Add code for printing + treesit-parser and treesit-node. + * src/treesit.c: New file. + * src/treesit.h: New file. + * test/src/treesit-tests.el: New file. + +2022-05-07 Po Lu <luangruo@yahoo.com> + + Fix 32-bit Haiku build + + * src/haiku_support.cc (MessageReceived): Fix type of + `old_what'. + +2022-05-07 Po Lu <luangruo@yahoo.com> + + Implement `sticky' frame parameter on Haiku + + * src/haiku_support.cc (BWindow_set_sticky): New function. + * src/haiku_support.h: Update prototypes. + * src/haikufns.c (haiku_set_sticky, haiku_frame_parm_handlers): + New frame param handler. + +2022-05-07 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + afdf72eeb2 Fix bug#55274 + 5bfac7c774 Provide reference for OTF tags in the ELisp manual + +2022-05-06 Po Lu <luangruo@yahoo.com> + + Fix race conditions in the Haiku file dialog + + * src/haiku_support.cc (current_file_panel_port): Delete + variable. + (class EmacsWindow, MessageReceived): Stop handling file panel + events here. + (class EmacsFilePanelCallbackLooper): New class. + (be_popup_file_dialog): Use a separate looper to handle file + panel events. + +2022-05-06 Po Lu <luangruo@yahoo.com> + + Fix freezes with some oddball menus + + * src/xmenu.c (x_activate_menubar): Clear flag if dispatching + the event failed. + * src/xterm.c (handle_one_xevent): Check for sensitive + CascadeButton instead of row column type. + +2022-05-06 Stefan Monnier <monnier@iro.umontreal.ca> + + (icomplete-exhibit): Fix use in-buffer + + Also prefer #' to quote function names and remove redundant :group args. + + * lisp/icomplete.el (icomplete-exhibit): Don't presume the completion + field ends at `point-max`. + +2022-05-06 Lars Ingebrigtsen <larsi@gnus.org> + + Make elisp-mode-syntax-propertize tighter to reflect syntax + + * lisp/progmodes/elisp-mode.el (elisp-mode-syntax-propertize): ?\N + and #s are case sensitive, so don't case-fold. (And adjust regexps.) + +2022-05-06 Lars Ingebrigtsen <larsi@gnus.org> + + Make down-list signal an error if called inside a string + + * lisp/emacs-lisp/lisp.el (down-list): Signal an error inside a + string (bug#5588). + +2022-05-06 Juri Linkov <juri@linkov.net> + + Add char-folding of double quotes in isearch-fold-quotes-mode (bug#24510) + + * lisp/isearch.el (isearch-fold-quotes-mode): Add char-folding of + double quotation marks. + + * test/lisp/subr-tests.el (test-local-set-state): Test values + after setting state. + +2022-05-06 Eric Abrahamsen <eric@ericabrahamsen.net> + + Fix handling of IMAP search strings + + * lisp/gnus/gnus-search.el (gnus-search-imap-handle-string): This was + a misunderstanding of what `multibyte-string-p' means. The check was + actually supposed to be whether the string was non-ascii or not. + +2022-05-06 Lars Ingebrigtsen <larsi@gnus.org> + + Further log-view-file-next fix-ups + + * doc/emacs/maintaining.texi (VC Change Log): Remove the entries + for commands now removed from most VCs. + * lisp/vc/log-view.el (log-view-mode-menu): Disable menu entries + (bug#14531). + +2022-05-06 Eric Abrahamsen <eric@ericabrahamsen.net> + + Don't force Gnus cache usage in nnvirtual + + * lisp/gnus/nnvirtual.el (nnvirtual-retrieve-headers): We're not sure + why this was happening, but it shouldn't be necessary. Simply calling + `gnus-retrieve-headers' directly will use the cache if the user has + configured it. + +2022-05-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix forward-sexp for Unicode names in Emacs Lisp mode + + * lisp/progmodes/elisp-mode.el (elisp-mode-syntax-propertize): + Make forward-sexp work for Unicode character names (bug#23354). + +2022-05-06 Noam Postavsky <npostavs@gmail.com> + + Handle elisp #-syntax better in Emacs Lisp mode + + * elisp-mode.el (elisp-mode-syntax-propertize): New function. + (emacs-lisp-mode): Set it as syntax-propertize-function (bug#15998). + +2022-05-06 Michael Albinus <michael.albinus@gmx.de> + + Fix bug#55274 + + * lisp/dired-aux.el (dired-do-compress-to): Use `file-local-name' + for shell out-file. (Bug#55274) + +2022-05-06 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/smie.el (smie-auto-fill): Fix bug#19342 + +2022-05-06 Lars Ingebrigtsen <larsi@gnus.org> + + Respect help-window-keep-selected in shortdoc buttons + + * lisp/help-fns.el (help-fns--mention-shortdoc-groups): Respect + help-window-keep-selected. + + * lisp/emacs-lisp/shortdoc.el (shortdoc-display-group): Allow + reusing the window. + +2022-05-06 Lars Ingebrigtsen <larsi@gnus.org> + + Move buffer-local-set-state to subr because it's used at runtime + + * lisp/subr.el (buffer-local-set-state) + (buffer-local-set-state--get, buffer-local-restore-state): Moved + from easy-mmode.el because they have to be available run-time. + +2022-05-06 Lars Ingebrigtsen <larsi@gnus.org> + + Make compilation-parse-errors more resilient + + * lisp/progmodes/compile.el (compilation-parse-errors): Be more + resilient in the presence of regexp alist not being completely set + up (bug#55282). + +2022-05-06 Po Lu <luangruo@yahoo.com> + + Improve font specs generated by the Haiku font dialog + + * src/haikufont.c (Fx_select_font): Use `nil' instead of + `unspecified' to be consistent with other font dialogs. + +2022-05-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix inhibiting reading the user init file with "emacs -x" + + * lisp/startup.el (command-line): Really inhibit loading the user + init file with "emacs -x". + +2022-05-06 Lars Ingebrigtsen <larsi@gnus.org> + + Remove the P/N/M-p/M-n bindings from the general log-view map + + * lisp/vc/log-view.el (log-view-mode-map): Remove the P/N/M-p/M-n + bindings (that are only usable in some VCs). + * lisp/vc/vc-sccs.el (vc-sccs-log-view-mode): + * lisp/vc/vc-rcs.el (vc-rcs-log-view-mode): + * lisp/vc/vc-cvs.el (vc-cvs-log-view-mode): New modes that bind + the P/N/M-p/M-n commands (bug#14531). + +2022-05-06 Lars Ingebrigtsen <larsi@gnus.org> + + Don't override search-default-mode set by user in info/help + + * lisp/info.el (Info-mode): + * lisp/help-mode.el (help-mode): Don't override isearch mode set + by the user. + +2022-05-06 Lars Ingebrigtsen <larsi@gnus.org> + + Char-fold quotation characters in *info* and *Help* + + * lisp/info.el (Info-mode): + * lisp/help-mode.el (help-mode): Use it. + * lisp/isearch.el (isearch-fold-quotes-mode): New minor mode + (bug#24510). + +2022-05-06 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerate ldefs-boot.el + +2022-05-06 Lars Ingebrigtsen <larsi@gnus.org> + + Autoload the buffer-local-set* things + + * lisp/emacs-lisp/easy-mmode.el (buffer-local-set-state--get) + (buffer-local-restore-state): Autoload. Perhaps it would be + better to move these functions to subr.el or something... + +2022-05-06 Lars Ingebrigtsen <larsi@gnus.org> + + Add new helper macros for minor modes to restore variables + + * doc/lispref/modes.texi (Defining Minor Modes): Document it. + + * lisp/emacs-lisp/easy-mmode.el (buffer-local-set-state): New macro. + (buffer-local-set-state--get): Helper function. + (buffer-local-restore-state): New function. + + * lisp/textmodes/word-wrap-mode.el (word-wrap-whitespace-mode): + Use it to simplify code. + +2022-05-06 Michael Albinus <michael.albinus@gmx.de> + + Fix thinko in tramp-skeleton-write-region + + * lisp/net/tramp.el (tramp-skeleton-write-region): Fix typos. + Flush cache in time. (Bug#55247) + (tramp-handle-lock-file): Suppress messages in `write-region'. + +2022-05-06 Po Lu <luangruo@yahoo.com> + + Fix calculation of display resolution on Haiku + + * src/haiku_support.cc (BScreen_px_dim): Rename to + `be_get_screen_dimensions'. + (BScreen_res): Rename to `be_get_display_resolution' and fix + resolution computation. + * src/haiku_support.h: Update prototypes. + + * src/haikufns.c (compute_tip_xy, Fx_display_pixel_width) + (Fx_display_pixel_height, Fx_display_mm_height) + (Fx_display_mm_width): Update accordingly. + + * src/haikuterm.c (haiku_term_init): Likewise. + +2022-05-06 Eli Zaretskii <eliz@gnu.org> + + Provide reference for OTF tags in the ELisp manual + + * doc/lispref/display.texi (Low-Level Font): Provide the canonical + reference URL for OTF tags. + +2022-05-06 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 69c56cbe6e ; * src/w32notify.c: Fix a typo in a comment. + 3b9e60ba2f ; * src/window.c (Fset_window_start): Mention the effect o... + +2022-05-06 Po Lu <luangruo@yahoo.com> + + Fix more problems with display of composite glyph strings on Haiku + + * src/haikuterm.c + (haiku_draw_composite_glyph_string_foreground): Fix pen size of + placeholder rectangle. + +2022-05-05 Po Lu <luangruo@yahoo.com> + + Fix mouse face persisting inside Lucid menus on XI2 + + * src/xmenu.c (create_and_show_popup_menu): Call `x_mouse_leave' + on Lucid as well when the input extension is being used. + + * src/xterm.c (x_mouse_leave): Enable on Lucid XI2 builds. + * src/xterm.h: Update prototypes. + +2022-05-05 Po Lu <luangruo@yahoo.com> + + * lwlib/lwlib.c (lw_separator_p): Fix empty strings being separators. + +2022-05-05 Po Lu <luangruo@yahoo.com> + + Fix menu dismissal problems on Xt builds with XI2 + + * src/xmenu.c (prepare_for_entry_into_toolkit_menu) + (leave_toolkit_menu): New functions. + (create_and_show_popup_menu): Replace some of the grab logic + with resetting the XI event mask instead. + +2022-05-05 Po Lu <luangruo@yahoo.com> + + Fix more issues with DND state on multiple displays + + * src/xterm.c (handle_one_xevent): Don't update DND state on the + wrong display. + +2022-05-05 Po Lu <luangruo@yahoo.com> + + Improve safety of DND when Emacs is connected to multiple displays + + * src/xterm.c (x_dnd_begin_drag_and_drop): Don't check movement + frame unless we know it comes from the right display. + +2022-05-05 Paul Eggert <eggert@cs.ucla.edu> + + Gnulib update via admin/merge-gnulib + +2022-05-05 James N. V. Cash <james.nvc@gmail.com> + + * lisp/emacs-lisp/crm.el: Set completion-list-insert-choice-function. + + * lisp/emacs-lisp/crm.el (completing-read-multiple): Set buffer-local + completion-list-insert-choice-function that handles string values of args. + https://lists.gnu.org/archive/html/emacs-devel/2022-05/msg00017.html + +2022-05-05 Juri Linkov <juri@linkov.net> + + * lisp/desktop.el: Enable tab-bar-mode after restoring frames with a tab bar. + + (desktop-restore-frameset): Enable tab-bar-mode when a restored frame + contains the frame parameter tab-bar-lines (bug#55070). + +2022-05-05 Paul Eggert <eggert@cs.ucla.edu> + + timestamp doc minor improvements + + * doc/lispref/os.texi (Time of Day, Time Conversion) + (Time Calculations): Fix some confusion about decoded times, + timestamps, and time values. Exclude floating-point infinities + and NaNs from timestamps, as the code doesn’t always follow + IEEE-754 rules for them and whatever the code does, doesn’t matter + for timestamps anyway. + +2022-05-05 Glenn Morris <rgm@gnu.org> + + * doc/emacs/misc.texi (Interactive Shell): Fix paren typo. + +2022-05-05 Lars Ingebrigtsen <larsi@gnus.org> + + Fix a mistaken test case in test-undo-region + + * test/lisp/simple-tests.el (test-undo-region): Fix failing cases + (bug#21523) -- the crossing-region case shouldn't be included, + either. + +2022-05-05 Lars Ingebrigtsen <larsi@gnus.org> + + Advertise OSC directory tracking more + + * doc/emacs/misc.texi (Interactive Shell): Document OSC directory + tracking more. + * lisp/shell.el (shell-dirtrack-mode): Link to the OSC directory + tracking function. + +2022-05-05 Po Lu <luangruo@yahoo.com> + + Set GC line width on more GCs + + * src/xterm.c (x_set_cursor_gc, x_set_mouse_face_gc) + (x_draw_bar_cursor): Make created scratch GCs have a line-width + of 1. + +2022-05-05 Lars Ingebrigtsen <larsi@gnus.org> + + Sort completions in Info references/menu correctly + + * lisp/info.el (Info-follow-reference): Sort completions in the + order they appear in the buffer (bug#54175). + (Info-menu-update): Ditto. + +2022-05-05 Lars Ingebrigtsen <larsi@gnus.org> + + Be more resilient towards errors during error handling + + * src/print.c (print_error_message): Avoid infinite recursion if + `substitute-command-keys' bugs out (bug#55269). + +2022-05-05 Philip Kaludercic <philipk@posteo.net> + + Avoid resizing mini buffer when displaying page numbers + + * doc-view.el (doc-view-goto-page): Do not insert a newline at the end + of the "current info" if not necessary. + +2022-05-05 Lars Ingebrigtsen <larsi@gnus.org> + + Describe kmacro registers better + + * lisp/kmacro.el (register-val-describe): Allow describing macros + that contain mouse events (bug#55266). + +2022-05-05 Po Lu <luangruo@yahoo.com> + + Speed up opening fonts on Haiku + + * src/font.h (font_property_index): Note that some font drivers + use the extra data in a font entity to store driver-specific + information. + + * src/haiku_font_support.cc (BFont_find): Set font indices. + (be_open_font_at_index): New function. + (BFont_open_pattern): Clean up coding style. + * src/haiku_support.h (enum haiku_font_specification) + (struct haiku_font_pattern): New fields and specifications for + indices. + * src/haikufont.c (haikufont_pattern_to_entity, haikufont_open): + Use indices to open fonts if available in the extra data. + +2022-05-05 Po Lu <luangruo@yahoo.com> + + Fix font weight reporting on macOS + + * src/macfont.m (macfont_store_descriptor_attributes): Fix + numeric values for the addition of `medium'. + + * src/nsterm.m (ns_font_desc_to_font_spec): Adjust accordingly. + (ns_create_font_panel_buttons): Try to fix button width. + +2022-05-05 Po Lu <luangruo@yahoo.com> + + Improve appearance of macOS font panel buttons + + * src/nsterm.m (ns_create_font_panel_buttons): + ([EmacsView noteUserCancelledSelection]): New functions. + ([EmacsView showFontPanel]): Use those buttons instead. + +2022-05-05 Michael Albinus <michael.albinus@gmx.de> + + Add Tramp test + + * test/lisp/net/tramp-tests.el (tar-mode): Require. + (tramp-test10-write-region-other-file-name-handler): New test. + (tramp-test31-interrupt-process, tramp-test31-signal-process): + Tag them :unstable unconditionally. + + * test/lisp/net/tramp-resources/foo.tar.gz: New resource file. + +2022-05-05 Po Lu <luangruo@yahoo.com> + + Fix min size reporting of style pane in Haiku font dialogs + + * src/haiku_support.cc (class DualLayoutView): + (MinSize): Implement correctly with both views. + +2022-05-05 Po Lu <luangruo@yahoo.com> + + Use bswap_32 and bswap_16 in Motif DND code + + * src/xterm.c (SWAPCARD32, SAPCARD16): Use glibc/gnulib + byte-swapping functions if checking is disabled. + +2022-05-05 Po Lu <luangruo@yahoo.com> + + Take size into account when previewing fonts on Haiku + + * src/haiku_support.cc (MessageReceived): Decode size sent and + handle `UPDATE_PREVIEW_DIALOG' message. + (UpdatePreview): Add current size. + (EmacsFontSelectionDialog): Assign correct modification messages + to the size entry. + +2022-05-04 Po Lu <luangruo@yahoo.com> + + Allow displaying font preview on Haiku + + * src/haiku_support.cc (class EmacsFontPreviewDialog) + (class DualLayoutView): New classes. + (class EmacsFontSelectionDialog): Add field for preview, + checkbox and layout view. + (MessageReceived): Handle new font preview messages. + (EmacsFontSelectionDialog): New constructor. + (FrameResized): Resize the layout view instead. + +2022-05-04 Po Lu <luangruo@yahoo.com> + + Fix device reporting from scroll bar events on X + + * src/xterm.c (x_scroll_bar_handle_click): New argument + `device'. + (handle_one_xevent): Set it appropriately as long as required. + +2022-05-04 dickmao <dick.r.chiang@gmail.com> + + Transcription error + + * lisp/gnus/gnus-topic.el (gnus-topic-display-missing-topic): + Indent. + (gnus-topic-update-topic-line): Insert missing fourth argument. + +2022-05-04 Sean Whitton <spwhitton@spwhitton.name> + + Revert "server-execute: Initialize the *scratch* buffer" + + This reverts commit f2d2fe6fc8ef0b6087c4a8a69d05a4e521b23047. + + To be replaced with factoring out *scratch* buffer initialization. + +2022-05-04 Glenn Morris <rgm@gnu.org> + + Stop esh-var-tests leaving temp files behind + + * test/lisp/eshell/esh-var-tests.el + (esh-var-test/quoted-interp-temp-cmd): Don't leave temporary files. + +2022-05-04 Eric Abrahamsen <eric@ericabrahamsen.net> + + Remove bogus mode check from gnus topic update functions + + * lisp/gnus/gnus-topic.el (gnus-topic-update-topics-containing-group): + (gnus-topic-update-topic): These functions originally checked to see + if we were in group mode, but later that check was changed to + 'gnus-topic-mode, which never passes because 'gnus-topic-mode isn't a + major mode. Revert to checking for 'gnus-group-mode, and use + `derived-mode-p' while we're at it. + +2022-05-04 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el: Use pixel-based alignment (bug#55207) + + * lisp/tab-bar.el (tab-bar-format-align-right): Use string-pixel-width + on the string with tab-bar face to get the width in pixels to align. + (tab-bar-format-global): Remove string-trim-right to keep padding-right. + +2022-05-04 Basil L. Contovounesios <contovob@tcd.ie> + + Remove unused lexvar in subr-x-tests.el + + * test/lisp/emacs-lisp/subr-x-tests.el + (test-with-buffer-unmodified-if-unchanged): Pacify unused lexvar + byte-compiler warning. Simplify slightly and reindent. + +2022-05-04 Glenn Morris <rgm@gnu.org> + + * src/xterm.c (handle_one_xevent): Fix int/Lisp_Object mix-up. + +2022-05-04 Robert Pluim <rpluim@gmail.com> + + * etc/NEWS: Improve some NEWS entries + +2022-05-04 Robert Pluim <rpluim@gmail.com> + + * doc/emacs/killing.texi: Fix typos + + * doc/emacs/killing.texi (Clipboard): Fix wording in description of + 'save-interprogram-paste-before-kill'. Ensure the reference to + "Yanking Media" is not split over two lines. + +2022-05-04 Eli Zaretskii <eliz@gnu.org> + + Fix restoring desktop from TTY-saved sessions + + * lisp/frameset.el (frameset-restore): Don't override/fix position + of the restored frames for which we have geometry information + saved by a past GUI session. (Bug#55070) + +2022-05-04 Po Lu <luangruo@yahoo.com> + + Turn on XInput 2 support by default + + The support doesn't interfere with compatibility, since Emacs + built with XInput 2 support transparently falls back to Core + Input when a suitable version of the input extension is not + available. It also matured much sooner than expected, so + enabling this by default will lead to new features being + available to more users. + + * INSTALL: + * configure.ac: + * etc/NEWS: Enable XInput 2 support by default. + +2022-05-04 Eli Zaretskii <eliz@gnu.org> + + Clarify the doc string of 'with-buffer-unmodified-if-unchanged' + + * lisp/emacs-lisp/subr-x.el (with-buffer-unmodified-if-unchanged): + Describe better what is meant by "buffer changes". (Bug#4587) + +2022-05-04 Po Lu <luangruo@yahoo.com> + + Remove unused variable in Haiku selection code + + * src/haiku_select.cc (selection_state_flag): + * src/haikuselect.h: Remove variable. + +2022-05-04 Eli Zaretskii <eliz@gnu.org> + + Fix 'bidi-class' property of unassigned codepoints + + * admin/unidata/unidata-gen.el (unidata-file-alist): Update the + default values of 'bidi-class' according to the latest Unicode + Standard. + + * admin/notes/unicode: Mention possible changes in + DerivedBidiClass.txt that need to be reflected in unidata-gen.el. + + * lisp/international/characters.el (#xfb50, #xfdf0): Fix the + Arabic block characters. (Bug#55256) + +2022-05-04 Lars Ingebrigtsen <larsi@gnus.org> + + Flush the tool bar cache on all terminals when adding new entries + + * lisp/tool-bar.el (tool-bar--flush-cache): Flush the cache for + the current tool bar on all terminals. + +2022-05-04 Po Lu <luangruo@yahoo.com> + + Correctly encode and decode filenames on NS + + * src/nsfns.m (Fns_read_file_name): Run dir through ENCODE_FILE + and fname through DECODE_FILE. + +2022-05-04 Po Lu <luangruo@yahoo.com> + + Fix file name encoding on Haiku file dialogs + + * src/haikufns.c (Fhaiku_read_file_name): Use ENCODE_FILE and + DECODE_FILE correctly. + +2022-05-04 Po Lu <luangruo@yahoo.com> + + Set initial size in the Haiku font dialog + + * src/haiku_support.cc (class EmacsFontSelectionDialog) + (EmacsFontSelectionDialog): New argument `initial_size'. + (be_select_font): Likewise. + * src/haiku_support.h: Update prototypes. + * src/haikufont.c (Fx_select_font): Set font dialog size to the + pixel size of the current font. + +2022-05-03 Po Lu <luangruo@yahoo.com> + + Encode and decode filenames correctly on Haiku + + * src/haikufns.c (Fhaiku_read_file_name): Decode file names + correctly. + +2022-05-03 Po Lu <luangruo@yahoo.com> + + Clean up Haiku file panel code + + * lisp/term/haiku-win.el (x-file-dialog): Fix nil values of + `default-filename'. + * src/haiku_io.c (haiku_len): Remove `FILE_PANEL_EVENT'. + (record_c_unwind_protect_from_cxx, c_specpdl_idx_from_cxx) + (c_unbind_to_nil_from_cxx): Delete functions. + * src/haiku_support.cc (MessageReceived): Write pointer to + buffer to file panel port instead. + (struct popup_file_dialog_data): Delete strict. + (unwind_popup_file_dialog): Delete functions. + (be_popup_file_dialog): Accept a pointer to + `process_pending_signals' and run nested event loop as usual. + + * src/haiku_support.h (enum haiku_event_type): Remove + `FILE_PANEL_EVENT'. + (struct haiku_file_panel_event): Delete struct. + * src/haikufns.c (unwind_popup): Delete function. + (Fhaiku_read_file_name): Update and quit on invalid filename. + + * src/haikuterm.c (struct unhandled_event): Delete struct. + (haiku_read_socket): Remove "unhandled events". + +2022-05-03 Po Lu <luangruo@yahoo.com> + + * src/haikufns.c (haiku_create_frame): Improve default border width. + +2022-05-03 Sean Whitton <spwhitton@spwhitton.name> + + server-execute: Initialize the *scratch* buffer + + * lisp/server.el: Require subr-x when compiling. + (server-execute): Initialize the *scratch* buffer in the same way that + the scratch-buffer command does, for consistency. + +2022-05-03 Po Lu <luangruo@yahoo.com> + + Fix display of placeholder composite string on Haiku + + * src/haikuterm.c + (haiku_draw_composite_glyph_string_foreground): Correct + translation of XDrawRectangle. + +2022-05-03 Po Lu <luangruo@yahoo.com> + + Fix event mask and source indication of _NET_WM_STATE messages + + * src/xselect.c (x_send_client_event): Make static. + * src/xterm.c (set_wm_state): Send event with correct mask and + source indication set. + * src/xterm.h: Update prototypes. + +2022-05-03 Lars Ingebrigtsen <larsi@gnus.org> + + Make some recently added tests actually run + +2022-05-03 Lars Ingebrigtsen <larsi@gnus.org> + + Make with-buffer-unmodified-if-unchanged more efficient + + * lisp/emacs-lisp/subr-x.el (with-buffer-unmodified-if-unchanged): + Make more efficient. + +2022-05-03 Lars Ingebrigtsen <larsi@gnus.org> + + Make with-buffer-unmodified-if-unchanged more resilient + + * lisp/emacs-lisp/subr-x.el (with-buffer-unmodified-if-unchanged): + Make more resilient. + +2022-05-03 Stefan Monnier <monnier@iro.umontreal.ca> + + with-buffer-unmodified-if-unchanged: Tweak the implementation + + * lisp/emacs-lisp/subr-x.el (with-buffer-unmodified-if-unchanged): + Skip the hash if the buffer was not modified at all. + Use `restore-buffer-modified-p`. + Also mention that it's imperative that the current buffer is preserved. + +2022-05-03 Lars Ingebrigtsen <larsi@gnus.org> + + Add NEWS entry about incompatible sorting command behaviors + +2022-05-03 Lars Ingebrigtsen <larsi@gnus.org> + + Make sorting not change buffer modification status always + + * lisp/sort.el (sort-subr): Don't mark buffer modified if the + sorting didn't change anything (bug#4587). + +2022-05-03 Lars Ingebrigtsen <larsi@gnus.org> + + Add new macro with-buffer-unmodified-if-unchanged + + * lisp/emacs-lisp/subr-x.el (with-buffer-unmodified-if-unchanged): + New macro. + * lisp/textmodes/fill.el (fill-paragraph): Macro code copied from + here. Adjust and use the macro. + +2022-05-03 Lars Ingebrigtsen <larsi@gnus.org> + + Fix thinko in recent tool bar caching logic + + * lisp/tool-bar.el (tool-bar--cache-key): New function. + (tool-bar--flush-cache, tool-bar-make-keymap): Use it. + +2022-05-03 Lars Ingebrigtsen <larsi@gnus.org> + + Make tool bar caching more sensible + + * lisp/tool-bar.el (tool-bar-keymap-cache): Make into a non-weak + EQ hash table, which should be faster and not lose the contents + after a GC (bug#43397). + (tool-bar--flush-cache, tool-bar-make-keymap): Use the terminal + only as the key. + (tool-bar-local-item, tool-bar-local-item-from-menu): Flush the + cache after altering the tool bar. + +2022-05-03 Eli Zaretskii <eliz@gnu.org> + + Allow desktop to restore frames and windows on TTY frames + + * lisp/frameset.el (frameset-persistent-filter-alist): Add 'top', + 'left', 'bottom', and 'right' to frame parameters that are shelved + and unshelved when switching from GUI to TTY frames and vice + versa. + (frameset--restore-frame): Accept two optional arguments DX and + DY, and offset by them each frame restored from TTY desktop, to + make such restored frames more prominently visible. Force such + frames to be visible on GUI display, since the visibility + parameter is meaningless for TTY frames. + (frameset-restore): Pass DX and DY offsets to + 'frameset--restore-frame', when restoring TTY frames on GUI + display. + * lisp/desktop.el (desktop-restore-frameset): Pass the + :force-onscreen argument of 'frameset-restore' as nil when + restoring frames on text-mode display. + (desktop-restore-forces-onscreen): Document that this option has + no real effect on restoring frames on text-mode display. + (desktop-restoring-frameset-p): Allow restoring frames in non-GUI + sessions, but disallow that when the selected frame is the + daemon's initial frame. (Bug#55070) + +2022-05-03 Jim Porter <jporterbugs@gmail.com> + + Improve the behavior of concatenating parts of Eshell arguments + + Previously, concatenating a list to a string would first convert the + list to a string. Now, the string is concatenated with the last + element of the list. + + * lisp/eshell/esh-util.el (eshell-to-flat-string): Make obsolete. + + * lisp/eshell/esh-arg.el (eshell-concat, eshell-concat-1): New + functions. + (eshell-resolve-current-argument): Use 'eshell-concat'. + + * test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-concat-cmd): + Add check for concatenation of multiline output of subcommands. + (esh-var-test/quoted-interp-concat-cmd): New test. + + * test/lisp/eshell/em-extpipe-tests.el (em-extpipe-test-13): Use + 'eshell-concat'. + + * doc/misc/eshell.texi (Expansion): Document this behavior. + + * etc/NEWS: Announce the change (bug#55236). + +2022-05-03 Jim Porter <jporterbugs@gmail.com> + + Return a list of numbers if all lines of an Eshell subcommand are numeric + + * lisp/eshell/esh-util.el (eshell-convertible-to-number-p) + (eshell-convert-to-number): New functions... + (eshell-convert): ... use them. + + * test/lisp/eshell/esh-var-tests.el + (esh-var-test/interp-convert-cmd-string-newline): Add checks for + numeric output. + + * doc/misc/eshell.texi (Dollars Expansion): Document the new behavior. + + * etc/NEWS: Announce the change (bug#55236). + +2022-05-03 Jim Porter <jporterbugs@gmail.com> + + Eshell variable expansion should always return strings inside quotes + + This is closer in behavior to regular shells, and gives Eshell users + greater flexibility in how variables are expanded. + + * lisp/eshell/esh-util.el (eshell-convert): Add TO-STRING argument. + + * lisp/eshell/esh-var.el (eshell-parse-variable-ref): Add MODIFIER-P + argument and adjust how 'eshell-convert' and 'eshell-apply-indices' + are called. + (eshell-get-variable, eshell-apply-indices): Add QUOTED argument. + + * test/lisp/eshell/esh-var-tests.el (eshell-test-value): New defvar. + (esh-var-test/interp-convert-var-number) + (esh-var-test/interp-convert-var-split-indices) + (esh-var-test/interp-convert-quoted-var-number) + (esh-var-test/interp-convert-quoted-var-split-indices) + (esh-var-test/interp-convert-cmd-string-newline) + (esh-var-test/interp-convert-cmd-multiline) + (esh-var-test/interp-convert-cmd-number) + (esh-var-test/interp-convert-cmd-split-indices) + (esh-var-test/quoted-interp-convert-var-number) + (esh-var-test/quoted-interp-convert-var-split-indices) + (esh-var-test/quoted-interp-convert-quoted-var-number) + (esh-var-test/quoted-interp-convert-quoted-var-split-indices) + (esh-var-test/quoted-interp-convert-cmd-string-newline) + (esh-var-test/quoted-interp-convert-cmd-multiline) + (esh-var-test/quoted-interp-convert-cmd-number) + (esh-var-test/quoted-interp-convert-cmd-split-indices): New tests. + + * doc/misc/eshell.texi (Arguments): Expand this section, and document + the new behavior. + (Dollars Expansion): Provide more detail about '$(lisp)' and + '${command}' forms. + + * etc/NEWS (Eshell): Announce this change (bug#55236). + +2022-05-03 Lars Ingebrigtsen <larsi@gnus.org> + + Make adding things to the tool bar show up on next redisplay + + * lisp/tool-bar.el (tool-bar--flush-cache): New function. + (tool-bar-add-item): Flush the cache (bug#43397). + +2022-05-03 Lars Ingebrigtsen <larsi@gnus.org> + + Add new command 'package-update' + + * doc/emacs/package.texi (Package Installation): Mention it. + * lisp/emacs-lisp/package.el (package-update): New command + (bug#18790). + +2022-05-03 Lars Ingebrigtsen <larsi@gnus.org> + + Fix key-parse problem with C-x ( ... sequences + + * lisp/keymap.el (key-parse): Move the read-kbd-macro compat code + from here... + * lisp/subr.el (kbd): ... to here. (And fix the logic, too.) + This allows `key-parse' to have a less puzzling result while + maintaining backwards compatibility (bug#38775). + +2022-05-03 Lars Ingebrigtsen <larsi@gnus.org> + + Make TAB work in makefile mode when transient mark mode is on + + * lisp/progmodes/make-mode.el (makefile-mode): Insert a tab + instead of removing it (bug#37087). + +2022-05-03 Michael Albinus <michael.albinus@gmx.de> + + Handle file name handler in write-region's VISIT arg + + * lisp/net/tramp.el (tramp-skeleton-delete-directory): Move up. + (tramp-skeleton-write-region): New defmacro. Handle also file + name handler in VISIT. (Bug#55166) + (tramp-handle-write-region): + * lisp/net/tramp-adb.el (tramp-adb-handle-write-region): + * lisp/net/tramp-sh.el (tramp-sh-handle-write-region): + * lisp/net/tramp-smb.el (tramp-smb-handle-write-region): + * lisp/net/tramp-sshfs.el (tramp-sshfs-handle-write-region): Use it. + +2022-05-03 Filipp Gunbin <fgunbin@fastmail.fm> + + Rewrite sql-interactive-remove-continuation-prompt + + * lisp/progmodes/sql.el (sql-starts-with-prompt-re): Remove. + (sql-ends-with-prompt-re): Remove + (sql-interactive-remove-continuation-prompt): Delete prompts from + anywhere in the process output, not just at the beginning of current + string. Streamline logic, describe it in docstring. + * test/lisp/progmodes/sql-tests.el: Add tests + +2022-05-03 Lars Ingebrigtsen <larsi@gnus.org> + + Make more buttons in *Help* respect `help-window-keep-selected' + + * lisp/help-mode.el (help-function-cmacro, help-variable-def) + (help-face-def): Also respect `help-window-keep-selected' like the + other commands. + +2022-05-03 rbrtb <104695105+rbrtb@users.noreply.github.com> (tiny change) + + Ensure exit-function of eglot-c-at-point runs on exact match + + When the completion is exact match, exit-function should still run. + + Say one is using auto-imports feature of pyright. One types foo, and + triggers the completion. There are two candidates: foo and foo_bar. If + one chooses foo, the status would be 'exact' instead of 'finished', thus + exit-function is not executed, foo is not auto-imported. + + * eglot.el (eglot-completion-at-point): Consider 'exact status. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/941 + +2022-05-03 Lars Ingebrigtsen <larsi@gnus.org> + + Further mm-base64-line-p bug fixes + + * lisp/gnus/mm-bodies.el (mm-base64-line-p): Fix parsing error + introduced by d90f54d. + +2022-05-03 Lars Ingebrigtsen <larsi@gnus.org> + + Fix mm-base64-line-p logic + + * lisp/gnus/mm-bodies.el (mm-base64-line-p): Don't claim that an + empty line is base64. + +2022-05-03 Po Lu <luangruo@yahoo.com> + + * src/haiku_support.cc (DrawContent): Use right UI color. + +2022-05-03 Po Lu <luangruo@yahoo.com> + + Make menu bar help text work on macOS as well + + * lisp/tooltip.el (tooltip-show-help): Resort to displaying + messages in the echo area on NS. + + * src/nsmenu.m ([EmacsMenu menu:willHighlightItem:]): Call + `show_help_echo' instead of storing an event into the keyboard + buffer. + +2022-05-03 Po Lu <luangruo@yahoo.com> + + Fix default font in macOS font dialogs + + * src/nsterm.m ([EmacsView noteUserSelectedFont]): Use current + font if none was selected. + +2022-05-03 Po Lu <luangruo@yahoo.com> + + Fix some font parsing problems on NS + + * src/nsterm.m (ns_font_desc_to_font_spec): Fix processing of + condensed width. + +2022-05-03 Po Lu <luangruo@yahoo.com> + + Handle GraphicsExpose events on scroll bars + + * src/xterm.c (x_scroll_bar_expose): Handle GraphicsExpose + events. + (handle_one_xevent): Give graphics exposures to scroll bars. + +2022-05-02 Po Lu <luangruo@yahoo.com> + + Make sure rectangles are drawn correctly on X + + * src/xfaces.c (prepare_face_for_display): Always use line-width + of 1. + * src/xfns.c (x_make_gc): Likewise. + * src/xterm.c (x_scroll_bar_expose): Comment out obsolete code. + +2022-05-02 Po Lu <luangruo@yahoo.com> + + Fix glyphless glyph display on Haiku + + * src/haikuterm.c + (haiku_draw_glyphless_glyph_string_foreground): Fix rectangle + width. + +2022-05-02 Po Lu <luangruo@yahoo.com> + + Fix font matching of "Fira Code Retina" and "Fira Code Regular" on Haiku + + * src/haiku_font_support.cc (font_family_style_matches_p): Don't + allow matches on fonts with an adstyle if none was specified in + the input pattern. + +2022-05-02 Glenn Morris <rgm@gnu.org> + + Don't leave temp files behind from undigest-tests + + Sadly the "temp" in with-temp-file refers to a buffer, not a file. + * test/lisp/mail/undigest-tests.el (rmail-undigest-test-rfc934-digest) + (rmail-undigest-test-rfc1153-digest-strict) + (rmail-undigest-test-rfc1153-less-strict-digest) + (rmail-undigest-test-rfc1153-sloppy-digest) + (rmail-undigest-test-rfc1521-mime-digest) + (rmail-undigest-test-multipart-mixed-digest): + Delete temporary files at end. + +2022-05-02 Po Lu <luangruo@yahoo.com> + + Clean up X11 double buffering code + + This fixes several latent bugs where code went down the path + with double buffering enabled when it wasn't, and vice versa. + + * src/xfns.c (x_set_inhibit_double_buffering): Improve + commentary and only define when HAVE_XDBE. + (x_mark_frame_dirty): Only set buffer flip flag when HAVE_XDBE. + (initial_set_up_x_back_buffer): Clean up coding style and remove + unnecessary block_input pair. + (Fx_double_buffered_p): Always return nil if !HAVE_XDBE. + (x_frame_parm_handlers): Don't set double buffering handler if + !HAVE_XDBE. + + * src/xftfont.c (xftfont_drop_xrender_surfaces, xftfont_driver): + Only define when XDBE is available. + + * src/xterm.c (x_drop_xrender_surfaces): Likewise. + (x_clear_window): Don't test double buffering flags when + !HAVE_XDBE. + (show_back_buffer): Only define when HAVE_XDBE. + (x_flip_and_flush): Don't try to flip when !HAVE_XDBE. + (XTframe_up_to_date): Likewise. + (XTbuffer_flipping_unblocked_hook): Only define when Xdbe is + available. + (x_clear_area): Don't test double buffering flags when Xdbe is + not available. + (flush_dirty_back_buffer_on): Don't define if there's no DBE. + (handle_one_xevent, x_create_terminal): Likewise. + + * src/xterm.h (FRAME_X_DRAWABLE): Fix coding style. + +2022-05-02 Eli Zaretskii <eliz@gnu.org> + + Fix punctuation in the Eshell manual + + * doc/misc/eshell.texi (Argument Predication and Modification): + Fix whitespace. + +2022-05-02 Arash Esbati <arash@gnu.org> + + Load multiple bibliographies with multibib package + + * lisp/textmodes/reftex-parse.el (reftex-using-biblatex-p): + Recognize 'multibib' which allows multiple bibliography loading + macro calls. + (reftex-locate-bibliography-files): Prevent possible duplications + in bibliography database files. + +2022-05-02 Po Lu <luangruo@yahoo.com> + + Wait for events from all displays in Xm dialogs even on XI2 + + * src/xfns.c (Fx_file_dialog): Always process events from all + displays. + +2022-05-02 Lars Ingebrigtsen <larsi@gnus.org> + + Make the eval-in-debug error message prettier in non-recursive errors + + * lisp/emacs-lisp/debug.el (debugger-eval-expression): Make the + error message (when recursive debugging is off) prettier. + +2022-05-02 Lars Ingebrigtsen <larsi@gnus.org> + + Make non-recursive error messages in edebug prettier + + * lisp/emacs-lisp/edebug.el (edebug-eval-expression): Make the + error message (when recursive debugging is off) prettier. + +2022-05-02 Lars Ingebrigtsen <larsi@gnus.org> + + Fix eldoc interaction with `when' and `unless' + + * lisp/subr.el (when, unless): Remove the (fn...) bits from the + doc string, because the advertised calling convention is correct + the way it is (bug#27229). This also makes eldoc highlight the + arguments correctly. + +2022-05-02 Lars Ingebrigtsen <larsi@gnus.org> + + Add a command to recreate the *scratch* buffer + + * doc/emacs/building.texi (Lisp Interaction): Mention it. + * lisp/simple.el (scratch-buffer): New command. + +2022-05-02 Stefan Kangas <stefankangas@gmail.com> + + Fix handling double-click-time nil or t + + * lisp/mouse.el (mouse-double-click-time): New function to always + return a number for `double-click-time'. + * lisp/emulation/viper-mous.el (viper-multiclick-timeout): + * lisp/foldout.el (foldout-mouse-swallow-events): + * lisp/help.el (help--read-key-sequence): + * lisp/org/org-mouse.el (org-mouse-show-context-menu): Use + 'mouse-double-click-time' instead of 'double-click-time'. + * src/keyboard.c (syms_of_keyboard): Mention + 'mouse-double-click-time' in doc string of 'double-click-time'. + * test/lisp/mouse-tests.el (mouse-test-mouse-double-click-time): + New test. + +2022-05-02 Lars Ingebrigtsen <larsi@gnus.org> + + Re-fix Gcc header tokenization in Gnus + + * lisp/gnus/gnus-msg.el (gnus-inews-do-gcc): Split the Gcc header + on commas, but allow group names to contain spaces (bug#55217). + +2022-05-02 Lars Ingebrigtsen <larsi@gnus.org> + + Allow reusing the *Help* window with `i'/`s/ commands + + * doc/emacs/help.texi (Help): Document it. + + * lisp/help-mode.el (help-function-def--button-function): Use it. + * lisp/help-mode.el (help-goto-info): Use it. + + * lisp/help.el (help-window-select): Mention it. + (help-window-keep-selected): New user option (bug#9054). + + * lisp/info-look.el (info-lookup-symbol): + (info-lookup): Allow keeping the same window. + +2022-05-02 Po Lu <luangruo@yahoo.com> + + Fix inconsistencies in Haiku font selection dialog + + * src/haiku_font_support.cc (font_family_style_matches_p): Fix + coding style. + * src/haikufont.c (haikufont_pattern_from_object): Set slant and + width using correct object. + +2022-05-02 Lars Ingebrigtsen <larsi@gnus.org> + + Allow show-paren to show matching parentheses inside comments + + * lisp/paren.el (show-paren--default): Improve blinking when + inside a comment (bug#5410). + +2022-05-02 Po Lu <luangruo@yahoo.com> + + Fix handling of some weights in the Haiku font driver + + * src/haiku_font_support.cc (font_style_to_flags): + * src/haiku_support.h (enum haiku_font_weight): + * src/haikufont.c (haikufont_weight_to_lisp) + (haikufont_lisp_to_weight): Make `ultralight' and `extralight' + mean the same thing. + +2022-05-02 Lars Ingebrigtsen <larsi@gnus.org> + + Use xref-goto-xref as the xref mouse binding + + * lisp/progmodes/xref.el (xref--button-map): Keep the + xref-goto-xref binding instead of select-and-show to be more + similar to grep buffers. + +2022-05-02 Lars Ingebrigtsen <larsi@gnus.org> + + Fix the OMIT-NULLS + "" case in string-lines + + * lisp/subr.el (string-lines): Respect OMIT-NULLS when given an + empty string. + +2022-05-02 Po Lu <luangruo@yahoo.com> + + Improve font dialog on macOS + + * src/nsterm.m ([EmacsView changeFont:]): Don't exit loop here + on macOS. + ([EmacsView noteUserSelectedFont]): New function. + ([EmacsView showFontPanel]): Add explicit "OK" button on macOS. + +2022-05-02 Po Lu <luangruo@yahoo.com> + + Default to currently selected font in Haiku font dialogs + + * src/haiku_font_support.cc (be_find_font_indices): New + function. + * src/haiku_support.cc (class EmacsFontSelectionDialog) + (UpdateStylesForIndex, EmacsFontSelectionDialog): Allow + specifying an initial font family and style. + (be_select_font): New parameters `initial_family' and + `initial_style'. + * src/haiku_support.h: Update prototypes. + + * src/haikufont.c (haikufont_lisp_to_weight) + (haikufont_lisp_to_slant, haikufont_lisp_to_width): Handle + `regular'. + (haikufont_pattern_from_object): New function. + (haikufont_spec_or_entity_to_pattern): Fix coding style. + (Fx_select_font): Compute indices based on currently selected + font. + (syms_of_haikufont): New defsyms. + +2022-05-02 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/gnus/gnus-util.el (gnus-byte-compile): Use `lexical-binding` + +2022-05-01 Po Lu <luangruo@yahoo.com> + + Fix race conditions with async input in some Haiku dialogs + + * src/haikufns.c (Fhaiku_save_session_reply): + * src/haikufont.c (Fx_select_font): Block sigio around system + calls. + +2022-05-01 Po Lu <luangruo@yahoo.com> + + Fix the macOS build + + * src/nsterm.m (ns_font_desc_to_font_spec, syms_of_nsterm): + Define missing symbols that are only on GNUstep. + +2022-05-01 Po Lu <luangruo@yahoo.com> + + Make the NS font dialog return more correct values + + * src/nsfns.m (Fx_select_font): Update doc string. + * src/nsterm.m (ns_font_desc_to_font_spec): New + function. + ([EmacsView showFontPanel]): Return selected font as a + font spec instead. + +2022-05-01 Po Lu <luangruo@yahoo.com> + + Fix devices staying disabled in some cases + + * src/xterm.c (handle_one_xevent): Process queued disables + before handling an XIDeviceEnabled situation. + +2022-05-01 Lars Ingebrigtsen <larsi@gnus.org> + + Fix string-lines return for "" + + * lisp/subr.el (string-lines): Return the correct result on "" + (bug#55213). + +2022-05-01 Lars Ingebrigtsen <larsi@gnus.org> + + Change string-lines semantics slightly + + * lisp/subr.el (string-lines): Change the semantics slightly -- + don't return an empty string for a trailing newline. + +2022-05-01 Jim Porter <jporterbugs@gmail.com> + + Handle escaped characters in Eshell special references (e.g. buffers) + + * lisp/eshell/esh-arg.el (eshell-parse-special-reference): Unescape + escaped characters. + + * test/lisp/eshell/eshell-tests-helpers.el (with-temp-eshell): Restore + current buffer after evaluating BODY. + + * test/lisp/eshell/eshell-tests.el (eshell-test/redirect-buffer) + (eshell-test/redirect-buffer-escaped): New tests (bug#55204). + +2022-05-01 Jim Porter <jporterbugs@gmail.com> + + Handle escaped characters in Eshell argument predicates/modifiers + + * lisp/eshell/em-pred.el (eshell-get-delimited-modifier-argument): + Unescape escaped characters. + + * test/lisp/eshell/em-pred-tests.el (em-pred-test/predicate-escaping): + New test (bug#55204). + +2022-05-01 Jim Porter <jporterbugs@gmail.com> + + Use a common set of string delimiters for all Eshell predicates/modifiers + + * lisp/eshell/em-pred.el (eshell-pred-delimiter-pairs): New variable. + (eshell-get-comparison-modifier-argument) + (eshell-get-numeric-modifier-argument) + (eshell-get-delimited-modifier-argument): New functions... + (eshell-pred-user-or-group, eshell-pred-file-time) + (eshell-pred-file-links, eshell-pred-file-size) + (eshell-pred-substitute, eshell-join-memebers, eshell-split-members): + ... and use them here. + (eshell-include-members): Pass 'mod-char' and use + 'eshell-get-delimited-modifier-argument'. + (eshell-pred-file-type, eshell-pred-file-mode): Use 'when-let'. + (eshell-modifier-alist): Pass modifier char to + 'eshell-include-members'. + + * test/lisp/eshell/em-pred-tests.el + (em-pred-test/predicate-delimiters): New test. + (em-pred-test/predicate-uid, em-pred-test/predicate-gid, + em-pred-test/modifier-include, em-pred-test/modifier-exclude): Remove + cases covered by 'em-pred-test/predicate-delimiters'. + (em-pred-test/modifier-substitute): Add test cases for new delimiter + styles. + + * doc/misc/eshell.texi (Argument Predication and Modification): + Explain how string parameters are delimited. + (Argument Modifiers): Document some special delimiter behavior with + the 's/PATTERN/REPLACE/' modifier (bug#55204). + + * etc/NEWS: Announce this change, and move the + 'eshell-eval-using-options' entry to the Eshell section. + +2022-05-01 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/minibuffer.el (completion--replace): Fix bug#55205 + +2022-05-01 Po Lu <luangruo@yahoo.com> + + Replace NS code that implemented font panels in a different way + + * doc/emacs/macos.texi (Mac / GNUstep Events): Document removal + of `ns-change-font' event. The font panels are now implemented + normally, via `x-select-font'. + + * lisp/term/common-win.el (x-setup-function-keys): Likewise. + + * lisp/term/ns-win.el (global-map, ns-popup-font-panel): Remove. + (x-select-font, mouse-set-font, ns-input-font): + (ns-input-fontsize): Remove. + (ns-respond-to-change-font): Delete function. + + * src/nsfns.m (Fns_popup_font_panel): Delete function. + (Fx_select_font): New function. + (syms_of_nsfns): Update subrs. + * src/nsterm.h (@interface EmacsView): + * src/nsterm.m (ns_select_1): New function. + (ns_select): Wrap around that instead. + ([EmacsView changeFont:]): Exit nested event loop + ([EmacsView showFontPanel:]): New function. + +2022-05-01 Lars Ingebrigtsen <larsi@gnus.org> + + Don't enter the debugger from *Backtrace* or edebug on eval errors + + * doc/lispref/debugging.texi (Error Debugging): Document it. + + * doc/lispref/edebug.texi (Edebug Eval): Mention it. + * lisp/emacs-lisp/debug.el (debug-allow-recursive-debug): New user + option (bug#36145). + (debugger-eval-expression): Use it. + + * lisp/emacs-lisp/edebug.el (edebug-eval-expression): Ditto. + + This patch is based on a patch by Noam Postavsky. + +2022-05-01 Lars Ingebrigtsen <larsi@gnus.org> + + Correct Using Debugger lispref node + + * doc/lispref/debugging.texi (Using Debugger): Make documentation + reflect reality (bug#36145). + +2022-05-01 Lars Ingebrigtsen <larsi@gnus.org> + + Make scroll-other-window respect target window remappings + + * lisp/window.el (scroll-other-window, scroll-other-window-down): + Moved from window.c and change implementation so that they respect + command remappings in the target window (bug#20236). + +2022-05-01 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of 'malloc-trim' + + * src/alloc.c (Fmalloc_trim): Fix the doc string. + + * etc/NEWS: Document which systems support 'malloc-trim'. + +2022-05-01 Lars Ingebrigtsen <larsi@gnus.org> + + Add new function `malloc-trim' + + * configure.ac (PGTK_LIBS): Check for malloc_trim. + + * src/alloc.c (Fmalloc_trim): Add new function (bug#45200). + +2022-05-01 Po Lu <luangruo@yahoo.com> + + Fix specifying zero as a size for fonts on Haiku + + * src/haiku_support.cc (MessageReceived): Set `size_specified' + correctly. + +2022-05-01 Po Lu <luangruo@yahoo.com> + + Improve display of Haiku font dialog + + * src/haiku_support.cc (EmacsFontSelectionDialog) + (class EmacsFontSelectionDialog, FrameResized): Set minimum size + based on individual view dimensions and add label to size + control. + (BWindow_set_min_size): Delete function. + * src/haiku_support.h: Update prototypes. + * src/haikuterm.c (haiku_update_size_hints): Stop setting min + size, since that doesn't work correctly on Haiku. + +2022-05-01 Lars Ingebrigtsen <larsi@gnus.org> + + Fix the mm-decode-content-transfer-encoding overflow better + + * lisp/gnus/mm-bodies.el (mm-decode-content-transfer-encoding): + Use it. + (mm-base64-line-p): New function. + +2022-05-01 Po Lu <luangruo@yahoo.com> + + * lisp/menu-bar.el (menu-bar-search-menu): Remove extra separator. + +2022-05-01 Eli Zaretskii <eliz@gnu.org> + + Document 'help-window-select' + + * etc/NEWS: + * doc/emacs/help.texi (Apropos, Help): Document + 'help-window-select'; improve indexing. (Bug#46034) + +2022-05-01 Po Lu <luangruo@yahoo.com> + + Allow specifying font size in the Haiku font selection dialog + + * src/haiku_support.cc (struct font_selection_dialog_message): + New fields `size' and `size_specified'. + (class EmacsFontSelectionDialog): New `size_entry' control. + (MessageReceived): Set size from that control if available. + (EmacsFontSelectionDialog): Initialize that control. + (FrameResized): Handle layout for that control. + (be_select_font): New field `size'. + * src/haiku_support.h: Update prototypes. + * src/haikufont.c (Fx_select_font): Populate font spec with + size. + +2022-05-01 Stefan Kangas <stefan@marxist.se> + + Update publicsuffix.txt from upstream + + * etc/publicsuffix.txt: Update from + https://publicsuffix.org/list/public_suffix_list.dat + dated 2022-04-30 19:52:14 UTC. + +2022-04-30 Po Lu <luangruo@yahoo.com> + + Allow quitting inside font selection dialogs on Haiku + + * src/haiku_support.cc (WaitForChoice): Accept new function for + checking quit flag. + (be_select_font): Pass that function. + * src/haiku_support.h: Update prototypes. + * src/haikufont.c (haikufont_should_quit_popup): New function. + (Fx_select_font): Give said function to `be_select_font'. + +2022-04-30 Po Lu <luangruo@yahoo.com> + + Allow invoking fonts in the Haiku font dialog + + * src/haiku_support.cc (MessageReceived): Handle invocations. + (EmacsFontSelectionDialog): Set style panel invocation message. + +2022-04-30 Po Lu <luangruo@yahoo.com> + + Improvements to the Haiku font dialog + + * src/haiku_support.cc (class EmacsFontSelectionDialog) + (EmacsFontSelectionDialog, FrameResized): Fix colors and respect + monospace only. + (be_select_font): New parameter `allow_monospace_only'. + * src/haiku_support.h: Update prototype. + * src/haikufont.c (Fx_select_font): Respect + `exclude-proportional'. + +2022-04-30 Po Lu <luangruo@yahoo.com> + + Also fix some compiler warnings in xterm.c that didn't show up + + * src/xterm.c (x_dnd_begin_drag_and_drop): Don't define unused + variable on GTK builds. + +2022-04-30 Po Lu <luangruo@yahoo.com> + + Fix the GTK build + + * src/xterm.c (x_dnd_begin_drag_and_drop): Let GTK handle events + again. + +2022-04-30 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (x_dnd_begin_drag_and_drop): Fix typo. + +2022-04-30 Po Lu <luangruo@yahoo.com> + + Fix processing events from multiple displays during DND + + * src/xterm.c (x_next_event_from_any_display): New function. + Only used on no-toolkit builds. + (x_dnd_begin_drag_and_drop): Compute correct dpyinfo for + handle_one_xevent. + +2022-04-30 Po Lu <luangruo@yahoo.com> + + Clean up X Windows tooltip code + + * src/xfns.c (x_hide_tip): Remove "bloodcurdling hack". + * src/xterm.c (handle_one_xevent): Add a better version here + instead. The code is unlikely to be hit as well, since tooltip + frames are typically deleted, not just hidden. + +2022-04-30 Po Lu <luangruo@yahoo.com> + + Implement font selection dialog on Haiku + + * src/haiku_font_support.cc (font_style_to_flags): Handle style + allocation failures. + (be_font_style_to_flags): New function. + + * src/haiku_support.cc (struct font_selection_dialog_message): + New struct. + (class EmacsFontSelectionDialog): New class. + (be_select_font): New function. + + * src/haiku_support.h: Update prototypes. + * src/haikufont.c (Fx_select_font): New function. + (syms_of_haikufont): Define new subr. + +2022-04-30 Basil L. Contovounesios <contovob@tcd.ie> + + Fix failing image test on nox builds + + * test/lisp/image-tests.el (image-supported-file-p/built-in): Skip + test in --without-x builds. + +2022-04-30 Lars Ingebrigtsen <larsi@gnus.org> + + Make `M-x apropos' respect help-window-select + + * lisp/apropos.el (apropos-print): Respect help-window-select. + (apropos): Mention it (bug#46034). + +2022-04-30 Lars Ingebrigtsen <larsi@gnus.org> + + Make load-path-shadows-mode a special mode + + * lisp/emacs-lisp/shadow.el (load-path-shadows-mode): Make the + mode inherit from special-mode so that the `q' command works. + +2022-04-30 Lars Ingebrigtsen <larsi@gnus.org> + + Fix compilation-max-output-line-length type + + * lisp/progmodes/compile.el (compilation-max-output-line-length): + Fix the type. + +2022-04-30 Lars Ingebrigtsen <larsi@gnus.org> + + Avoid regexp overflow in mm-decode-content-transfer-encoding + + * lisp/gnus/mm-bodies.el (mm-decode-content-transfer-encoding): + The base64 may be huge, so avoid backtracking (bug#55195). + +2022-04-30 Lars Ingebrigtsen <larsi@gnus.org> + + Fix Vx_show_tooltip_timeout in ns build, too + + * src/nsfns.m (Fx_show_tip): Respect Vx_show_tooltip_timeout here, + too. + +2022-04-30 Lars Ingebrigtsen <larsi@gnus.org> + + Fix compilation after recent x-show-tooltip-timeout changes + + * src/dispnew.c (syms_of_display): Move x-show-tooltip-timeout to + a common file to avoid breaking other systems. + +2022-04-30 Lars Ingebrigtsen <larsi@gnus.org> + + Remove the "retro" Gnus/Message tool bars + + * doc/misc/gnus.texi (Gravatars): Remove documentation. + * lisp/gnus/gmm-utils.el (gmm-tool-bar-style): Obsoleted. + + * lisp/gnus/gnus-group.el (gnus-group-tool-bar): Use the "Gnome" + definition. + (gnus-group-tool-bar-gnome, gnus-group-tool-bar-retro) + (gnus-group-tool-bar-zap-list): Obsolete. + + * lisp/gnus/gnus-sum.el (gnus-summary-tool-bar): Use the "Gnome" + definition. + (gnus-summary-tool-bar-gnome, gnus-summary-tool-bar-retro) + (gnus-summary-tool-bar-zap-list): Obsolete. + + * lisp/gnus/message.el (message-tool-bar): Use the "Gnome" + definition. + (message-tool-bar-gnome, message-tool-bar-retro) + (message-tool-bar-zap-list): Obsolete. + +2022-04-30 Andreas Schwab <schwab@linux-m68k.org> + + * lisp/gnus/deuglify.el (gnus-article-outlook-rearrange-citation): Add autoload cookie. + +2022-04-30 Lars Ingebrigtsen <larsi@gnus.org> + + Use x-show-tooltip-timeout in all the implementations + + * src/haikufns.c (Fx_show_tip): Use the timeout variable. + * src/pgtkfns.c (Fx_show_tip): Ditto. + + * src/w32fns.c (Fx_show_tip): Ditto. + + * src/xfns.c (Fx_show_tip): Doc fix. + +2022-04-30 Lars Ingebrigtsen <larsi@gnus.org> + + Don't hard code the default x-show-tip timeout + + * src/xfns.c (Fx_show_tip): Use it. + (syms_of_xfns): Add a new x-show-tooltip-timeout variable + (bug#23341). + +2022-04-30 Lars Ingebrigtsen <larsi@gnus.org> + + Move the when-let family of macros to subr.el + + * lisp/subr.el (internal--build-binding) + (internal--build-bindings): Moved from subr-x.el and rewritten to + not use the threading macro. + (if-let*, when-let*, and-let*, if-let, when-let): Moved from + subr-x.el. This avoids breaking the build every time somebody + uses these macros in functions that end up being called during + bootstrap. + +2022-04-30 Lars Ingebrigtsen <larsi@gnus.org> + + Avoid using if-let in subr.el + + * lisp/subr.el (string-lines): Avoid using if-let (from subr-x) in + subr (bug#55194). + +2022-04-30 Lars Ingebrigtsen <larsi@gnus.org> + + Make the xref--button-map more regular + + * lisp/progmodes/xref.el (xref--button-map): Remove the mouse-1 + binding (bug#35353). + +2022-04-30 Jin Choi <jsc@alum.mit.edu> (tiny change) + + Make Python evaluation work more reliably + + * lisp/progmodes/python.el (python-shell-buffer-substring): Make + more regions valid Python code (bug#55174). + +2022-04-30 Po Lu <luangruo@yahoo.com> + + Fix some cases of flicker on MS Windows + + * src/w32term.c (w32_read_socket): Fix typo in check before + flipping buffers. + +2022-04-30 Lars Ingebrigtsen <larsi@gnus.org> + + Truncate output from grep + + * doc/emacs/building.texi (Compilation): Document it. + * lisp/progmodes/compile.el (compilation-max-output-line-length): + New user option (bug#44983). + (compilation-filter): Use it. + (compilation--insert-abbreviated-line): New function. + +2022-04-30 Lars Ingebrigtsen <larsi@gnus.org> + + Make grep-mode-font-lock-keywords more efficient + + * lisp/progmodes/grep.el (grep-mode-font-lock-keywords): Make the + regexp less greedy so that long lines don't take forever to + font-lock (bug#44983). + +2022-04-30 Lars Ingebrigtsen <larsi@gnus.org> + + Add a KEEP-NEWLINES argument to string-lines + + * doc/lispref/strings.texi (Creating Strings): Document it. + + * lisp/subr.el (string-lines): Add a KEEP-NEWLINES argument. + +2022-04-30 Po Lu <luangruo@yahoo.com> + + Fix display updating inside the minibuffer on MS Windows + + * src/minibuf.c (read_minibuf): Call `w32_flip_buffers_if_dirty' + after changing the cursor position and redisplaying instead of + `flush_frame'. (bug#55193) + + * src/w32term.c (w32_flip_buffers_if_dirty): New function. + * src/w32term.h: Update prototypes. + +2022-04-30 Po Lu <luangruo@yahoo.com> + + Avoid server roundtrip on wheel events from scroll bars on XI2 + + * src/xterm.c (handle_one_xevent): Translate coordinates for + scroll bars correctly when handling XI2 wheel events. + +2022-04-30 Po Lu <luangruo@yahoo.com> + + * admin/CPP-DEFINES: Update for new features. + +2022-04-30 Po Lu <luangruo@yahoo.com> + + Process editres events not for frames correctly + + * src/xterm.c (handle_one_xevent): Dispatch Editres events to + interested widgets. + +2022-04-30 Po Lu <luangruo@yahoo.com> + + Adjustments to double buffering on MS Windows + + * src/w32fns.c (w32_set_inhibit_double_buffering): Add comment + describing double buffering. + (w32_wnd_proc): Respect `w32-disable-double-buffering'. + (globals_of_w32fns): New variable + `w32-disable-double-buffering'. + + * src/w32term.c (w32_show_back_buffer): Return immediately if + double buffering is disabled on the frame. + (w32_scroll_run): Use old scrolling code if + `w32-disable-double-buffering' is enabled. + (w32_scroll_bar_clear): Document why we don't clear scroll bars + when double buffering is enabled. + (w32_read_socket): Respect `w32-disable-double-buffering' and + clean up some code. + + * src/w32xfns.c (get_frame_dc): Respect + `w32-disable-double-buffering'. + +2022-04-30 Eli Zaretskii <eliz@gnu.org> + + Fix use of kp-decimal in 'vhdl-stutter-mode' + + * lisp/progmodes/vhdl-mode.el (vhdl-electric-period): Avoid + signaling an error when the user presses the kp-decimal key on the + numeric pad in 'vhdl-stutter-mode'. (Bug#55079) + +2022-04-30 Po Lu <luangruo@yahoo.com> + + Handle exposure in the widget's expose proc on X + + * src/widget.c (emacsFrameClassRec): Don't inherit expose proc. + (get_default_char_pixel_size): + (pixel_to_char_size): + (char_to_pixel_size): + (round_size_to_char): + (EmacsFrameInitialize): + (EmacsFrameRealize): + (EmacsFrameResize): Clean up coding style. + (EmacsFrameExpose): New function. Expose the frame here to + satisfy the toolkit when it calls the expose proc by hand. + + * src/xterm.c (handle_one_xevent): Handle exposure through the + widget instead. + +2022-04-30 Po Lu <luangruo@yahoo.com> + + Fix releasing the mouse on top of the tool bar on MS Windows + + * src/w32term.c (w32_read_socket): Don't handle tool bar clicks + specially for button up events if no tool bar item was + previously pressed. + +2022-04-29 Po Lu <luangruo@yahoo.com> + + Fix palette freeing on MS Windows with double buffering + + * src/w32term.c (w32_release_paint_buffer): Also release target + DC palette. + +2022-04-29 Po Lu <luangruo@yahoo.com> + + Implement double buffering on MS Windows + + * etc/NEWS: Announce changes. + * src/w32fns.c (w32_set_inhibit_double_buffering): New function. + (w32_wnd_proc): + (Fx_create_frame): + (w32_create_tip_frame): Set `inhibit-double-buffering' parameter. + (w32_frame_parm_handlers): Add new handler. + + * src/w32term.c (w32_show_back_buffer): + (w32_release_paint_buffer): New functions. + (w32_frame_up_to_date): Show back buffer if applicable. + (w32_buffer_flipping_unblocked_hook): New hook. + (w32_scroll_run): Use BitBlt to scroll instead of window + scrolling functions. + (w32_scroll_bar_clear): Don't clear scroll bars when double + buffered. + (w32_read_socket): Flip buffers after reading input events in + some cases. + (w32_free_frame_resources): Free back buffer. + (w32_create_terminal): Add new hook. + + * src/w32term.h (struct w32_output): New fields for handling + back buffers. + * src/w32xfns.c (select_palette): Fix indentation. + (get_frame_dc, release_frame_dc): Return back buffer when + appropriate and set dirty flag. + +2022-04-29 Po Lu <luangruo@yahoo.com> + + Prevent cursors from being set on tooltip frames on Haiku + + * src/haikuterm.c (haiku_show_hourglass, haiku_hide_hourglass) + (haiku_define_frame_cursor, haiku_toggle_invisible_pointer): + Ignore tooltip frames. Otherwise, the cursor changes every time + a tooltip is mapped. + +2022-04-29 Stefan Monnier <monnier@iro.umontreal.ca> + + debug-early: Print bytecode in a more manageable way + + * lisp/emacs-lisp/debug-early.el (debug-early-backtrace): + Escape newlines to and bytecodes to make backtraces slightly more + readable. Use `cl-prin1` when available. + +2022-04-29 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Add `symbol-with-pos` + +2022-04-29 Po Lu <luangruo@yahoo.com> + + Fix focus reversion of Motif menus on XI2 + + * src/xmenu.c (create_and_show_popup_menu): Stop setting input + focus on the menu window. + +2022-04-29 Po Lu <luangruo@yahoo.com> + + Fix mouse face bugs on Motif + + * src/xterm.c (handle_one_xevent): Fix handling LeaveNotify + events from Motif menus. + +2022-04-29 Po Lu <luangruo@yahoo.com> + + Check display when handling XdndFinished events + + * src/xterm.c (handle_one_xevent): Check that the display is + actually the one we want before finishing DND. + +2022-04-29 Stefan Monnier <monnier@iro.umontreal.ca> + + CL types: Accept both `byte-code-function` and `compiled-function` + + `type-of` returns `compiled-function` for bytecode functions, but the + predicate for those objects is called `byte-code-function-p`, + So accept both `compiled-function` and `byte-code-function` as type + names for those objects. + + * lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): + Add `byte-code-function`. + * lisp/emacs-lisp/cl-macs.el (byte-code-function, compiled-function, subr): + New types. + +2022-04-29 Juri Linkov <juri@linkov.net> + + * test/lisp/replace-tests.el (query-replace-tests): Add more tests (bug#54733) + + (perform-replace-tests): New tests. + (perform-replace--run-tests): New function. + (perform-replace-tests): New test function. + +2022-04-29 Lars Ingebrigtsen <larsi@gnus.org> + + Simplify window-char-pixel-* code slightly + + * lisp/window.el (window-char-pixel-width) + (window-char-pixel-height): Simplify code slightly. + +2022-04-29 Lars Ingebrigtsen <larsi@gnus.org> + + Explain effects of setting a zero-width fringe + + * lisp/fringe.el (fringe-mode): Not non-obvious effects of setting + a fringe to zero width. + +2022-04-29 Titus von der Malsburg <malsburg@posteo.de> + + Add new functions for computing character metrics for windows + + * doc/lispref/display.texi (Size of Displayed Text): Document the + char functions. + * doc/lispref/windows.texi (Window Sizes): Document + window-max-characters-per-line. + + * lisp/window.el (window-char-pixel-width) + (window-char-pixel-height) + (window-max-characters-per-line): New functions (bug#19395). + +2022-04-29 Pip Cet <pipcet@gmail.com> + + Make timer_check even more resilient + + * src/keyboard.c (timer_check): Inhibit atimers while making the + copy of the timer list (bug#21380). This prevents an extremely + unlikely segfault. + +2022-04-29 Lars Ingebrigtsen <larsi@gnus.org> + + Avoid binding mouse-1 in xref when mouse-1 doesn't follow links + + * lisp/progmodes/xref.el (xref--button-map): Avoid binding mouse-1 + when `mouse-1-click-follows-link' is nil (bug#35353). + +2022-04-29 Po Lu <luangruo@yahoo.com> + + Fix colorspace calculations on Haiku + + * src/haiku_support.cc (be_get_display_planes) + (be_get_display_color_cells): Handle grayscale basic colorspaces + correctly. + (be_is_display_grayscale): New function. + + * src/haiku_support.h: Update prototypes. + + * src/haikufns.c (haiku_set_no_accept_focus, haiku_iconify_frame) + (Fxw_display_color_p, Fxw_color_values, Fx_display_grayscale_p): + Actually handle grayscale colorspaces. + (Fx_display_pixel_width, Fx_display_pixel_height) + (Fx_display_mm_height, Fx_display_mm_width): Clean up coding + style. + (Fx_display_visual_class): Handle grayscale colorspaces. + (syms_of_haikufns): New defsyms. + +2022-04-29 Lars Ingebrigtsen <larsi@gnus.org> + + Add helper function to remove title bar when maximizing frames + + * lisp/frame.el (toggle-frame-maximized): Mention it. + (frame-hide-title-bar-when-maximized): New function (bug#31968). + Adapted from code by Jonathan Kyle Mitchell. + + * src/window.c (syms_of_window): Mention it. + +2022-04-29 Po Lu <luangruo@yahoo.com> + + Handle IO errors when creating Motif drag window + + * src/xterm.c (xm_drag_window_io_error_handler): New function. + (xm_get_drag_window): Use that as the IO error handler when the + temporary display is open. + +2022-04-29 Po Lu <luangruo@yahoo.com> + + Fix file name selection conversion on Haiku + + * lisp/term/haiku-win.el (haiku-normal-selection-encoders): + Register new encoder. + (haiku-select-encode-file-name): New function. + +2022-04-28 Po Lu <luangruo@yahoo.com> + + Remove some unneeded tests from the X double buffering code + + * src/xterm.c (x_flip_and_flush): Fix coding style. + (flush_dirty_back_buffer_on): Avoid testing for impossible + situations. + +2022-04-28 Po Lu <luangruo@yahoo.com> + + Cancel DND correctly during display disconnect on a different display + + * src/xterm.c (x_dnd_io_error_handler): New function. + (x_connection_closed): Send the messages to cancel DND if a + different display was disconnected. + +2022-04-28 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (XTflash): Check return value of pselect. + +2022-04-28 Eugene Ha <eha@posteo.de> (tiny change) + + Find libgccjit.dylib on Homebrew Macos + + * configure.ac: Also find libggcjit on Homebrew (bug#55173). + +2022-04-28 Paul Eggert <eggert@cs.ucla.edu> + + Pacify byte compiler etc. on org-compat, org-macs + + Byte-compiler problem reported by Lars Ingebrigtsen in: + https://lists.gnu.org/r/emacs-devel/2022-04/msg01256.html + * lisp/org/org-compat.el (org-at-table.el-p): + Now declared in org-table, not org. + (org-string-collate-lessp): Define the ersatz + org-string-collate-lessp with the same API as the primary form, to + pacify check-declare-file when run on org-macs. + * lisp/org/org-macs.el (org-time-convert-to-integer): Declare. + +2022-04-28 Paul Eggert <eggert@cs.ucla.edu> + + Change current-time back to list form + + Change current-time and related functions back to using the + traditional list form. Also, add a new boolean variable + current-time-list that lets people try out (TICKS . HZ) form, + with the goal of smoothing the transition. + * src/timefns.c (CURRENT_TIME_LIST): Change default back to true. + (current-time-list): New boolean Lisp variable, which defaults to + CURRENT_TIME_LIST. All uses of CURRENT_TIME_LIST changed to + use current_time_list, and all documentation changed. + +2022-04-28 Paul Eggert <eggert@cs.ucla.edu> + + Document \807 etc. in raw byte display + + * doc/emacs/display.texi (Display Custom): Mention potential + confusion in raw byte display. + +2022-04-28 Lars Ingebrigtsen <larsi@gnus.org> + + Kill off more Gnus buffers on Gnus exit + + * lisp/gnus/gnus.el (gnus-kill-buffer): Make into function; + there's no reason this should be a macro. + + * lisp/gnus/nntp.el (nntp-make-process-buffer): Ensure that we + kill these buffers on Gnus exit (bug#55167). + +2022-04-28 Sam Steingold <sds@gnu.org> + + Add Sefirot to Omer counting + + * lisp/calendar/cal-hebrew.el (diary-hebrew-omer-sefirot): New variable. + (diary-hebrew-omer): Use it to show the sefirot. + +2022-04-28 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + # Conflicts: + # lisp/progmodes/xref.el + +2022-04-28 Stefan Kangas <stefan@marxist.se> + + Add tests for image-supported-file-p + + * test/lisp/image-tests.el (image-type-from-file-name): Suppress + obsoletion warnings for test. + (image-supported-file-p/built-in) + (image-supported-file-p/optional) + (image-supported-file-p/unsupported-returns-nil): New tests. + +2022-04-28 Stefan Kangas <stefan@marxist.se> + + * lisp/finder.el (finder-mode-map): Use defvar-keymap. + +2022-04-28 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of font- and face-related attribute functions + + * lisp/faces.el (face-attribute): + * src/xfaces.c (Fx_family_fonts): + * src/font.c (Ffont_get, Ffont_put): Improve and clarify the doc + strings. + + * doc/lispref/display.texi (Low-Level Font): Document the :type + attribute of a font. Improve documentation of 'font-get' and + 'font-put'. + (Attribute Functions): Add cross-reference to the description of + face attributes. + +2022-04-28 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/nadvice.el: Fix bug#55149 + +2022-04-28 Lars Ingebrigtsen <larsi@gnus.org> + + Allow inserting and selecting binary blobs from sqlite + + * doc/lispref/text.texi (Database): Document how to insert binary + data. + * src/sqlite.c (bind_values): Bind BLOB columns correctly (bug#54591). + +2022-04-28 Po Lu <luangruo@yahoo.com> + + Simplify buffer flipping code on Haiku + + * src/haikuterm.c (flush_dirty_back_buffers): Delete function. + (haiku_flush_dirty_back_buffer_on): New function. + (haiku_read_socket): Use that instead of looping over each frame + at the end. + +2022-04-28 Lars Ingebrigtsen <larsi@gnus.org> + + Document dired-keep-marker-copy more + + * doc/emacs/dired.texi (Operating on Files): Mention + dired-keep-marker-copy. + +2022-04-28 Lars Ingebrigtsen <larsi@gnus.org> + + Improve dired-do-copy doc string + + * lisp/dired-aux.el (dired-do-copy): Mention the + `dired-keep-marker-copy' variable in the doc string (bug#21746). + +2022-04-28 Lars Ingebrigtsen <larsi@gnus.org> + + Document the non-effect of narrowing on get-text-property + + * doc/lispref/text.texi (Examining Properties): Document + surprising non-effect of narrowing (bug#16413). + + * src/textprop.c (Ftext_properties_at, Fget_text_property): + Mention narrowing. + +2022-04-28 Lars Ingebrigtsen <larsi@gnus.org> + + Add comment to linum-mode about being old + + * lisp/linum.el (linum-mode): Link to display-line-numbers-mode + (bug#34639). + +2022-04-28 Lars Ingebrigtsen <larsi@gnus.org> + + Fix `g' in *grep* after `A' in Dired + + * lisp/dired-aux.el (dired-do-find-regexp): Allow `g' to work in + the resulting grep buffer by not being destructive (bug#55157). + +2022-04-28 Lars Ingebrigtsen <larsi@gnus.org> + + Fix another help-fns--insert-menu-bindings parsing problem + + * lisp/help-fns.el (help-fns--insert-menu-bindings): Fix keymap + traversal when elements are symbols. + +2022-04-28 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (x_term_init): Fix the non-GTK3 XI2 build. + +2022-04-28 Michael Albinus <michael.albinus@gmx.de> + + Revert previous change in test/Makefile.in + + * test/Makefile.in (test_template): Revert previous change, it isn't needed. + +2022-04-28 Eli Zaretskii <eliz@gnu.org> + + Fix handling of proportional fonts on MS-Windows + + * src/xfaces.c (Fx_family_fonts): Consider fonts whose :spacing + value is numeric, but still indicates that they are proportional, + to be proportional. + + * lisp/textmodes/artist.el (artist-mode): Fix test for monospaced + fonts. + +2022-04-28 Po Lu <luangruo@yahoo.com> + + Fix GTK build + + * src/xrdb.c (x_load_resources): Fix definitions of `helv'. + +2022-04-27 Po Lu <luangruo@yahoo.com> + + Stop overriding default Motif colors with our own + + * src/xrdb.c (x_load_resources): Instead of specifying the Motif + defaults manually, let Motif set them itself. This makes + palettes provided by color servers work again. + +2022-04-27 Po Lu <luangruo@yahoo.com> + + Handle display disconnects during DND + + * src/xterm.c (handle_one_xevent): Keep track of the display the + drop target is on during DND finish. + (x_connection_closed, x_delete_terminal): Handle display + disconnects during DND correctly. + +2022-04-27 Po Lu <luangruo@yahoo.com> + + Fix target display checks during Motif DND + + * src/xterm.c (handle_one_xevent): Check that the Motif DND + completion message is actually from the right display before + proceeding. + +2022-04-27 Stefan Monnier <monnier@iro.umontreal.ca> + + src/xdisp.c: Use same test in `redisplay_window` and `prepare_menu_bars` + + This consolidates the test made in those two functions so as to make + sure they agree whether a window needs to be redisplayed. + At the same time, change this test so it uses the window's point + rather than the buffer's point when comparing to `w->last_point`. + + * src/xdisp.c (needs_no_redisplay): New function, extracted from + `redisplay_window`. + (redisplay_window, prepare_menu_bars): Use it. + + * src/window.c (window_point): New function, extracted from `Fwindow_point`. + (Fwindow_point): Use it. + * src/window.h (window_point): Declare it. + +2022-04-27 Sean Whitton <spwhitton@spwhitton.name> + + New user option 'calc-kill-line-numbering' + + * lisp/calc/calc.el (calc-kill-line-numbering): New defcustom. + * lisp/calc/calc-yank.el (calc-kill): Unless calc-kill-line-numbering + is non-nil, do not include line numbering in copied text (bug#55133). + * etc/NEWS: + * doc/misc/calc.texi (Killing from the Stack): Document the change. + +2022-04-27 Alan Mackenzie <acm@muc.de> + + CC Mode: "linux" style: set indent-tabs-mode to t + + * lisp/progmodes/cc-styles.el (c-style-alist): Add the setting of + indent-tabs-mode to "linux" style. + +2022-04-27 Michael Albinus <michael.albinus@gmx.de> + + Improve tramp-test46-read-password + + * test/lisp/net/tramp-tests.el (tramp-test46-read-password): Add a + further check. + +2022-04-27 Eli Zaretskii <eliz@gnu.org> + + Emulate 'clock' for MS-Windows + + * src/w32.c (sys_clock): New function. (Bug#44674) + * nt/inc/ms-w32.h (clock): Redirect to sys_clock. + +2022-04-27 Lars Ingebrigtsen <larsi@gnus.org> + + Make `C-M-x' use the original value of print-length while evalling + + * lisp/progmodes/elisp-mode.el (elisp--eval-defun): Eval the form + with the original values of print-level and print-length + (bug#135). + +2022-04-27 Ken Brown <kbrown@cornell.edu> + + Implement system_process_attributes on Cygwin + + * src/sysdep.c (system_process_attributes) [CYGWIN]: Implement, + using the /proc filesystem. The code is identical to the + GNU/Linux code except for the 'ttname' attribute. (Bug#55153) + + * etc/NEWS: Mention the change. + +2022-04-27 Stefan Monnier <monnier@iro.umontreal.ca> + + Add new function current-cpu-time + + * doc/lispref/os.texi (Time of Day): Document it. + * src/timefns.c (Fcurrent_cpu_time): New function (bug#44674). + +2022-04-27 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerated ldefs-boot.el + +2022-04-27 Lars Ingebrigtsen <larsi@gnus.org> + + Change parameter order for string-edit functions + + * lisp/textmodes/string-edit.el (string-edit) + (read-string-from-buffer): Rework the function arguments so that + they're more similar to `read-string'. Rename symbols throughout + the file from help-text to prompt. + +2022-04-27 Lars Ingebrigtsen <larsi@gnus.org> + + Add autoload cookies to string-edit + + * lisp/textmodes/string-edit.el (string-edit) + (read-string-from-buffer): Autoload. + +2022-04-27 Lars Ingebrigtsen <larsi@gnus.org> + + Fix some typos in the recent holidays change + + * lisp/calendar/holidays.el (holiday-available-holiday-lists): Fix + typos. + +2022-04-27 Lars Ingebrigtsen <larsi@gnus.org> + + Give better error message in dired-toggle-read-only on nonexisting dirs + + * lisp/dired.el (dired-toggle-read-only): Refuse to edit + non-existent directories (bug#23276). + +2022-04-27 Lars Ingebrigtsen <larsi@gnus.org> + + Rename holiday-lists to holiday-available-holyday-lists + + * lisp/calendar/holidays.el (holiday-available-holyday-lists): + Give holiday-lists a better name. + +2022-04-27 Lars Ingebrigtsen <larsi@gnus.org> + + Separate out the holiday lists into its own function + + * lisp/calendar/holidays.el (holiday-lists): Separated out into + its own function so that it can be altered (bug#55140). + (list-holidays): Use it. + +2022-04-27 Michael Albinus <michael.albinus@gmx.de> + + Make test/Makefile more robust + + * test/Makefile.in (test_template): Do not fails if corresponding + source file doesn't exist. + +2022-04-27 Lars Ingebrigtsen <larsi@gnus.org> + + Add an instruction header line to string-edit + + * lisp/textmodes/string-edit.el (string-edit): Add a header line + with instructions. + +2022-04-27 Lars Ingebrigtsen <larsi@gnus.org> + + Make isearch respond to 'mouse-yank-at-point' + + * doc/emacs/killing.texi (Secondary Selection): Document it. + * lisp/isearch.el (isearch-mouse-2): Make isearch respond to + mouse-yank-at-point (bug#7787). + + * lisp/mouse.el (mouse-yank-at-point): Mention it. + +2022-04-27 Tomasz Hołubowicz <45176912+alternateved@users.noreply.github.com> (tiny change) + + Add out-of-box support for purescript lsp server + + * eglot.el (eglot-server-programs): Support purescript lsp. + * README.md: Update. + * NEWS.md: Update. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/905 + +2022-04-27 Po Lu <luangruo@yahoo.com> + + Cleanups to PGTK code + + * src/pgtkfns.c (pgtk_explicitly_set_name, pgtk_set_tab_bar_lines) + (pgtk_change_tab_bar_height, pgtk_set_child_frame_border_width) + (pgtk_set_internal_border_width, pgtk_set_cursor_type) + (pgtk_set_mouse_color, pgtk_set_override_redirect, xg_set_icon) + (pgtk_frame_parm_handlers, Fpgtk_set_monitor_scale_factor) + (pgtk_set_scroll_bar_default_width, pgtk_get_focus_frame) + (pgtk_hide_tip, Fx_show_tip, Fx_hide_tip, frame_geometry) + (syms_of_pgtkfns): Clean up coding style and delete incorrect + comments that mostly duplicate what is in xfns.c, and fix + comment coding style. Also rename functions from `x_' to + `pgtk_'. + + * src/pgtkterm.c (pgtk_setup_relief_colors): Fix relief caching + with new flag. + (pgtk_draw_relief_rect, flip_cr_context, pgtk_wait_for_map_event) + (pgtk_make_frame_visible, pgtk_make_frame_invisible) + (pgtk_set_parent_frame, pgtk_draw_glyph_string_foreground) + (pgtk_draw_composite_glyph_string_foreground) + (pgtk_draw_glyphless_glyph_string_foreground) + (pgtk_set_clip_rectangles, pgtk_draw_glyph_string_bg_rect) + (pgtk_draw_image_foreground, pgtk_draw_image_glyph_string) + (pgtk_draw_stretch_glyph_string, pgtk_draw_glyph_string) + (pgtk_copy_bits, pgtk_bitmap_icon, pgtk_define_fringe_bitmap) + (pgtk_show_hourglass, pgtk_flash, pgtk_send_scroll_bar_event) + (pgtk_free_pixmap, set_opacity_recursively, frame_highlight) + (frame_unhighlight, pgtk_toggle_invisible_pointer) + (pgtk_create_terminal, pgtk_window_is_of_frame_recursive) + (pgtk_window_is_of_frame, pgtk_any_window_to_frame) + (pgtk_handle_draw, size_allocate, pgtk_enqueue_string) + (key_press_event, motion_notify_event): Fix coding style and + some minor bugs. + + * src/pgtkterm.h (struct pgtk_output): New field for tracking + relief color status, update prototypes. + +2022-04-27 João Távora <joaotavora@gmail.com> + + Ensure non-null :settings param in didchangeconfiguration notif + + * eglot.el (eglot-signal-didChangeConfiguration): Use eglot--{} + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/936 + +2022-04-27 Po Lu <luangruo@yahoo.com> + + Remove some unnecessary code + + * src/haiku_support.cc (class EmacsView, AfterResize) + (SetUpDoubleBuffering): Remove `cspace' field since it's always + RGBA32. + +2022-04-27 Juri Linkov <juri@linkov.net> + + * lisp/help-fns.el (help-fns--insert-menu-bindings): Don't highlight heading. + +2022-04-27 Paul Eggert <eggert@cs.ucla.edu> + + Use org-time-convert-to-integer instead of by hand + + * lisp/org/org-macs.el (org-file-newer-than-p): + Don’t assume list-format timestamps, by using + org-time-convert-to-integer instead of doing it by hand. + +2022-04-27 Po Lu <luangruo@yahoo.com> + + Fix quitting application from the Deskbar on Haiku + + * lisp/term/haiku-win.el (handle-save-session): Kill Emacs + afterwards. + +2022-04-27 Po Lu <luangruo@yahoo.com> + + Add simple session management support to Haiku + + * lisp/term/common-win.el (emacs-save-session-functions): Move + from x-win.el to common-win.el. + * lisp/term/haiku-win.el (haiku-save-session-reply) + (emacs-session-save, handle-save-session): New functions. + * lisp/term/x-win.el (emacs-save-session-functions): Delete. + + * src/haiku_font_support.cc (font_style_to_flags): + * src/haiku_support.h (enum haiku_font_weight): Turn weight + macros into enum. + (struct haiku_font_pattern): Likewise. + (struct haiku_session_manager_reply): New struct. + * src/haiku_io.c (haiku_io_init): Create sm port. + * src/haiku_support.cc (QuitRequested): Wait for reply from sm + port. + * src/haikufns.c (Fhaiku_save_session_reply): New function. + (syms_of_haikufns): Define new subr. + * src/haikuterm.c (haiku_read_socket): Send session management + events. + (haiku_term_init): Check new port. + +2022-04-27 Paul Eggert <eggert@cs.ucla.edu> + + Avoid change to desktop file format + + * lisp/desktop.el (desktop--get-file-modtime): New function. + (desktop-save, desktop-read): Use it. + +2022-04-26 Paul Eggert <eggert@cs.ucla.edu> + + Be more compatible with older desktops + + * lisp/desktop.el (desktop-save): When comparing timestamps use + time-equal-p instead of ‘equal’. + +2022-04-26 Po Lu <luangruo@yahoo.com> + + Clean up pointer blanking code + + * src/xterm.c (XTtoggle_invisible_pointer): Dispatch to correct + function directly. + (x_probe_xfixes_extension): Return directly based on dpyinfo. + (xfixes_toggle_visible_pointer): Make conditional on + `HAVE_XFIXES'. + (make_invisible_cursor): Initialize `c' correctly. + (x_toggle_visible_pointer): Handle cursor allocation failures. + (x_free_frame_resources): Dispatch with + XTtoggle_visible_pointer. + (x_setup_pointer_blanking): Delete function. + (x_term_init): Initialize blank cursor here instead. + * src/xterm.h (struct x_display_info): New field + `fixes_pointer_blanking'. + +2022-04-26 Stefan Monnier <monnier@iro.umontreal.ca> + + nadvice.el: Auto-generate the doc describing the "how" arg + + * lisp/emacs-lisp/nadvice.el (advice--make-how-alist): New macro. + (advice--how-alist): Use it. + (nadvice--make-docstring): New function. + (add-function, advice-add): Use it to auto-generate the table + describing the accepted values for `how`. + +2022-04-26 Stefan Monnier <monnier@iro.umontreal.ca> + + nadvice.el: Use OClosures + + * lisp/emacs-lisp/nadvice.el (advice): New OClosure type. + (advice--how-alist): Make it hold prototype OClosures rather + than bytecode strings. + (advice--bytecodes): Delete var. + (advice--where): Make it an obsolete alias of new `advice--how`. + (oclosure-interactive-form, cl-print-object) <advice>: New methods. + (advice--make-1): Delete function. + (advice--make): Use `advice-copy` and `advice-cons`. + (advice--tweak): Use `advice-cons`. + (add-function, advice-add): Rename `where` arg to `how`. + + * lisp/emacs-lisp/cl-print.el (cl-print-object) <:extra "nadvice">: + Remove now-redundant ad-hoc method. + + * test/lisp/emacs-lisp/nadvice-tests.el (advice-test-print): New test. + +2022-04-26 Stefan Monnier <monnier@iro.umontreal.ca> + + nadvice.el: Rename "where" to "how" + + * lisp/emacs-lisp/nadvice.el (advice--how-alist): Rename from + `advice--where-alist`. + (advice--how): Rename from `advice--where` and keep obsolete alias. + (add-function, advice-add): Rename `where` arg to `how`. + * lisp/emacs-lisp/cl-print.el (cl-print-object): Use `advice--how` name. + +2022-04-26 Stefan Monnier <monnier@iro.umontreal.ca> + + Use `advice--cd*r` where applicable + + * lisp/emacs-lisp/bytecomp.el (byte-compile--function-signature): + * lisp/emacs-lisp/advice.el (ad-get-orig-definition): + * lisp/help.el (help-function-arglist): Use `advice--cd*r`. + +2022-04-26 Stefan Monnier <monnier@iro.umontreal.ca> + + Pretty print OClosure slot accessors + + * lisp/emacs-lisp/oclosure.el (oclosure--accessor-cl-print): New function. + * lisp/emacs-lisp/cl-print.el (cl-print-object) <accessor>: New method. + * test/lisp/emacs-lisp/nadvice-tests.el (advice-test-call-interactively): + Avoid `defun` within a function. + +2022-04-26 Paul Eggert <eggert@cs.ucla.edu> + + Fix gnus-html-image-cache-ttl FIXME + + * lisp/gnus/gnus-html.el (gnus-html-image-cache-ttl): + Make it a seconds count. + +2022-04-26 Alex Schroeder <alex@gnu.org> + + Fix error in rcirc for IRC tags without values + + * src/lisp/net/rcirc.el (rcirc-process-server-response-1): If the + optional value for a tag is not present, do not call + replace-regexp-in-string on it. If (match-string 2 tag) is + nil, the STRING argument for the replace-regexp-in-string is nil, + which results in an error. + +2022-04-26 Stefan Monnier <monnier@iro.umontreal.ca> + + New generic function `oclosure-interactive-form` + + It's used by `interactive-form` when it encounters an OClosure. + This lets one compute the `interactive-form` of OClosures + dynamically by adding appropriate methods. + This does not include support for `command-modes` for Oclosures. + + * lisp/simple.el (oclosure-interactive-form): New generic function. + + * src/data.c (Finteractive_form): Delegate to + `oclosure-interactive-form` if the arg is an OClosure. + (syms_of_data): New symbol `Qoclosure_interactive_form`. + * src/eval.c (Fcommandp): Delegate to `interactive-form` if the arg is + an OClosure. + + * src/lisp.h (VALID_DOCSTRING_P): New function, extracted from + `store_function_docstring`. + * src/doc.c (store_function_docstring): Use it. + + * lisp/kmacro.el (kmacro): Don't carry any interactive form. + (oclosure-interactive-form) <kmacro>: New method, instead. + + * test/lisp/emacs-lisp/oclosure-tests.el (oclosure-interactive-form) + <oclosure-test>: New method. + (oclosure-test-interactive-form): New test. + + * doc/lispref/commands.texi (Using Interactive): + Document `oclosure-interactive-form`. + +2022-04-26 Lars Ingebrigtsen <larsi@gnus.org> + + Mention caveats in the map-delete doc string + + * lisp/emacs-lisp/map.el (map-delete): Mention how this has to be + used for lists (bug#25929). + +2022-04-26 Po Lu <luangruo@yahoo.com> + + Fix EWMH window activation + + * src/xterm.c (x_ewmh_activate_frame): Add missing fields of + message. (bug#55122) + +2022-04-26 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak interactive use of delete-windows-on + + * lisp/window.el (delete-windows-on): Make prompting better, and + allow specifying only the current frame interactively (bug#34749). + +2022-04-26 Lars Ingebrigtsen <larsi@gnus.org> + + Make `C RET' work in archive-mode + + * lisp/arc-mode.el (archive-copy-file): Fix the default value + (when the user hits RET) (bug#55123). + +2022-04-26 Lars Ingebrigtsen <larsi@gnus.org> + + Make new menu *Help* output be more resilient + + * lisp/help-fns.el (help-fns--insert-menu-bindings): Only insert + the heading if it turns out that we actually find the menu. + (help-fns--insert-bindings): Tweak calling convention. + +2022-04-26 Lars Ingebrigtsen <larsi@gnus.org> + + Add new user option flymake-mode-line-lighter + + * doc/misc/flymake.texi (Customizable variables): Document it. + + * lisp/progmodes/flymake.el (flymake-mode-line-lighter): New user + option (bug#55115). + (flymake--mode-line-title): Use it. + +2022-04-26 Lars Ingebrigtsen <larsi@gnus.org> + + Improve documentation for t value for reusable-frames + + * doc/lispref/windows.texi (Buffer Display Action Alists): Note + that the t value is rarely a good one (bug#55103). + +2022-04-26 Po Lu <luangruo@yahoo.com> + + Fix event mask of activation client message + + * src/xterm.c (x_alloc_lighter_color): + (x_get_scale_factor): Minor formatting fixes. + (x_ewmh_activate_frame): Fix event mask used to send message to + the root window. + +2022-04-25 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (x_scroll_run): Only flush GC if really necessary. + +2022-04-25 Dmitry Gutov <dgutov@yandex.ru> + + Fix Ruby indentation with double splat as first block param + + * lisp/progmodes/ruby-mode.el (ruby-smie--forward-token) + (ruby-smie--backward-token): Tokenize "**" separately from "|". + Problem reported at https://github.com/dgutov/robe/issues/136. + +2022-04-25 Po Lu <luangruo@yahoo.com> + + Cache relief colors on Haiku since their computation is expensive + + * src/haikufns.c (haiku_create_frame, haiku_create_tip_frame): + Clear `relief_background'. + * src/haikuterm.c (haiku_calculate_relief_colors): Cache relief + colors for each frame. + * src/haikuterm.h (struct haiku_output): New fields for caching + the last relief color. + +2022-04-25 Paul Eggert <eggert@cs.ucla.edu> + + Pacify misc/test-custom-opts + + * lisp/gnus/gnus-html.el (gnus-html-image-cache-ttl): + Also allow it to be a cons of integers. + +2022-04-25 Stefan Monnier <monnier@iro.umontreal.ca> + + cl-generic.el: Upcase formal args in `C-h o` + + Try and improve the display of methods in `C-h o` by moving + the qualifiers to a separate line and upcasing the formal args. + It still needs love, tho. + + * lisp/emacs-lisp/cl-generic.el: Upcase formal args in `C-h o` + (cl--generic-upcase-formal-args): New function. + (cl--generic-describe): Use it. + +2022-04-25 Paul Eggert <eggert@cs.ucla.edu> + + Use (TICKS . HZ) for current-time etc. + + * src/timefns.c (CURRENT_TIME_LIST): Change default to false. + All documentation changed. + +2022-04-25 Paul Eggert <eggert@cs.ucla.edu> + + Support (encode-time (list s m h D M Y)) + + * src/timefns.c (Fencode_time): Add support for a 6-elt list arg. + Requested by Max Nikulin for Org (bug#54764). + * test/src/timefns-tests.el (encode-time-alternate-apis): New test. + +2022-04-25 Lars Ingebrigtsen <larsi@gnus.org> + + Change the display of menu bindings in *Help* + + * lisp/help-fns.el (help-fns--insert-menu-bindings): New function + to describe menu entries more fully (bug#52870). + (help-fns--key-bindings): Use it. + +2022-04-25 Glenn Morris <rgm@gnu.org> + + Fix type of word-wrap-whitespace-characters + + * lisp/textmodes/word-wrap-mode.el (word-wrap-whitespace-characters): + Fix type. + +2022-04-25 Alan Third <alan@idiocy.org> + Po Lu <luangruo@yahoo.com> + + Fix nsmenu compilation under macOS 10.6 + + * src/nsmenu.m ([EmacsMenu fillWithWidgetValue:]): Replace modern + shorthand dictionary and array definitions. + * src/nsterm.h (NSTextAlignmentRight): Redefine if necessary. + * src/macfont.m (mac_font_create_preferred_family_for_attributes): + isOperatingSystemAtLeastVersion is new in macOS 10.10, so it's + probably wrong to use it to check whether we're below 10.9. + (mac_font_copy_default_descriptors_for_language): + (mac_font_copy_default_name_for_charset_and_languages): It seems these + functions are only used on macOS 10.8 and below. + * src/nsterm.m ([NSColor colorUsingDefaultColorSpace]): Use the + generic colorspace. + (ns_parent_window_rect): + (ns_frame_scale_factor): + ([EmacsWindow setParentChildRelationships]): Fix macOS version stuff. + +2022-04-25 Karl Fogel <kfogel@red-bean.com> + + Update bookmark sort indicator at proper time + + This follows up to my commit 8b071c77b0d7 of 2022-04-24. Thanks to + Manuel Giraud <manuel@ledu-giraud.fr> for reporting the buglet. + +2022-04-25 Po Lu <luangruo@yahoo.com> + + Make default Haiku tool bar color match system preferences + + * lisp/faces.el (tool-bar): Use system bar color as the default + tool-bar background color on Haiku. + +2022-04-25 Lars Ingebrigtsen <larsi@gnus.org> + + Move the Incremental Search menu one menu up + + * lisp/menu-bar.el (menu-bar-search-menu): Move the Incremental + Search from the Search menu... + (menu-bar-edit-menu): ... one step up (bug#43308). + +2022-04-25 Lars Ingebrigtsen <larsi@gnus.org> + + Protect against the host name containing an alpha character + + * src/filelock.c (lock_file_1, current_lock_owner): Protect + against the unlikely case that the host name contains an alpha + character (bug#14250). + +2022-04-25 Michael Albinus <michael.albinus@gmx.de> + + Add test for Tramp password handling + + * lisp/net/tramp.el (tramp-error-show-message-timeout): New defvar. + (tramp-error-with-buffer, tramp-user-error): Use it. + + * test/lisp/net/tramp-tests.el (tramp-error-show-message-timeout): + Set it to nil. + (tramp-test46-read-password): New test. + (tramp-test47-auto-load, tramp-test47-delay-load) + (tramp-test47-recursive-load, tramp-test47-remote-load-path) + (tramp-test48-unload): + * test/lisp/net/tramp-archive-tests.el (tramp-archive-test47-auto-load) + (tramp-archive-test47-delay-load): Rename. + +2022-04-25 Lars Ingebrigtsen <larsi@gnus.org> + + Make flymake-show-buffer-diagnostics error out in non-Flymake buffers + + * lisp/progmodes/flymake.el (flymake-show-buffer-diagnostics): + Signal an error if run outside of a buffer with Flymake enabled + (bug#55097). + +2022-04-25 Lars Ingebrigtsen <larsi@gnus.org> + + Fix up some string-edit.el strings + + * lisp/textmodes/string-edit.el (string-edit) + (read-string-from-buffer): Make doc strings use dynamic key + bindings. + (string-edit): Fix message at the end. + +2022-04-25 Po Lu <luangruo@yahoo.com> + + Delete some unused functions on Haiku + + * src/haiku_support.cc (haiku_current_workspace) + (BWindow_workspaces): + * src/haiku_support.h: Remove unused functions and prototypes. + +2022-04-25 Po Lu <luangruo@yahoo.com> + + Get rid of autorelease warnings during building on GNUstep + + * src/emacs.c (decode_env_path): + * src/nsfns.m (ns_appkit_version_str): + * src/nsterm.m (ns_term_shutdown): Setup autorelease when + objects might be autoreleased during building. + +2022-04-25 Po Lu <luangruo@yahoo.com> + + * src/nsfns.m (Fns_list_colors): Fix autoreleasing. + +2022-04-24 Kyle Meyer <kyle@kyleam.com> + + Update to Org 9.5.3-3-gd54104 + +2022-04-24 Po Lu <luangruo@yahoo.com> + + Set last user time during drag-and-drop + + * src/xterm.c (XTmouse_position): Set last user time if + track-mouse is drag-source or dropping. + +2022-04-24 Po Lu <luangruo@yahoo.com> + + Fix 32-bit Haiku build + + * src/haiku_support.h (be_get_ui_color): Fix prototype. + +2022-04-24 Eli Zaretskii <eliz@gnu.org> + + Improve indexing in "Programmed Completion" + + * doc/lispref/minibuf.texi (Programmed Completion): Improve + indexing. (Bug#55095) + +2022-04-24 Karl Fogel <kfogel@red-bean.com> + + Improve sorting in the bookmark list buffer + + - Ensure that the bookmark bmenu buffer sorts when it should. + - Sort case-insensitively and by locale-dependent collation order. + - Rename "Bookmark" column to "Bookmark Name". + - Coordinate that column's sort toggle and `bookmark-sort-flag'. + - Document the new behavior. + + * lisp/bookmark.el (bookmark-bmenu--name-predicate, + bookmark-bmenu--type-predicate, bookmark-bmenu--file-predicate): Use + `string-collate-lessp' with IGNORE-CASE argument, instead of plain + `string<'. + (bookmark-bmenu--revert): Sort based on `bookmark-sort-flag'. + (bookmark-bmenu-mode): Document the new behavior. Rename the + "Bookmark" column to "Bookmark Name" for clarity & documentabilty. + +2022-04-24 Aleksandr Vityazev <avityazev@posteo.org> + + Fix typo in cl.texi example + + * doc/misc/cl.texi (Argument Lists): Fix typo (bug#55092). + +2022-04-24 Lars Ingebrigtsen <larsi@gnus.org> + + Use `C-c C-k' instead of `C-c C-d' to abort in string-edit + + * lisp/textmodes/string-edit.el (string-edit-mode-map): Use `C-c + C-k' to abort. + +2022-04-24 Lars Ingebrigtsen <larsi@gnus.org> + + Further help-fns--editable-variable fixes + + * lisp/help-fns.el (help-fns--editable-variable): Don't bug out on + non-symbols. + +2022-04-24 Lars Ingebrigtsen <larsi@gnus.org> + + Provide help when doing (shell-command "... &") on buffer collisions + + * lisp/simple.el (shell-command--same-buffer-confirm): New + function (bug#13649). + (shell-command): Use it to provide fuller help. + +2022-04-24 Lars Ingebrigtsen <larsi@gnus.org> + + Add new function `read-string-from-buffer'. + + * doc/lispref/minibuf.texi (Text from Minibuffer): Document it. + * lisp/textmodes/string-edit.el: New file. + +2022-04-24 Lars Ingebrigtsen <larsi@gnus.org> + + Allow 'C-u C-h .' to describe button/widgets + + * doc/emacs/help.texi (Help Summary): Document it. + * lisp/help-at-pt.el (display-local-help): Display button/widget + help (bug#54963). + +2022-04-24 Lars Ingebrigtsen <larsi@gnus.org> + + Ensure that the global sql-buffer variable is set + + * lisp/progmodes/sql.el (sql-product-interactive): Set the + expected global value of sql-buffer (bug#55088). + +2022-04-24 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of 'set-fontset-font' + + * doc/lispref/display.texi (Fontsets): + * src/fontset.c (Fset_fontset_font): Improve and clarify the + documentation of 'set-fontset-font'. Rename the arguments to be + more self-explanatory. (Bug#55086) + +2022-04-24 Po Lu <luangruo@yahoo.com> + + * lisp/term/haiku-win.el (x-colors): Also update with system colors. + +2022-04-24 Po Lu <luangruo@yahoo.com> + + Allow looking up window system colors on Haiku + + * lisp/help-fns.el (help-fns--editable-variable): Fix describing + variables which don't have symbol values. + * lisp/term/haiku-win.el (haiku-allowed-ui-colors): Set list of + allowed UI colors. + * src/haiku_support.cc (be_get_ui_color): New function. + * src/haiku_support.h: Update prototypes. + * src/haikufns.c (haiku_get_color): Look for defined UI color. + (syms_of_haikufns): New defvar `haiku-allowed-ui-colors'. + * src/haikuterm.c (haiku_term_init): Fix coding style. + +2022-04-23 Po Lu <luangruo@yahoo.com> + + Fix disabling double buffering on Haiku + + * src/haikufns.c (haiku_set_inhibit_double_buffering): Garbage + frame correctly after changing double buffering. + * src/haikuterm.c (haiku_calculate_relief_colors) + (haiku_draw_relief_rect, haiku_draw_underwave): Clean up coding + style. + +2022-04-23 Po Lu <luangruo@yahoo.com> + + Speed up color cache lookup on X + + * src/xterm.c (x_hash_string_ignore_case): New function. + (x_parse_color): Turn color cache into a hash table. + (x_term_init): Allocate color cache. + (x_delete_display): Free color cache correctly. + * src/xterm.h (struct x_display_info): Turn color cache into a + hash table and add appropriate fields. + +2022-04-23 Alan Mackenzie <acm@muc.de> + + CC Mode: New alignment function c-lineup-argcont-+ + + This fixes bug #21409. + + * lisp/progmodes/cc-align.el (c-lineup-argcont-1): New function, mainly + extracted from c-lineup-argcont. + (c-lineup-argcont): Refactored to use the new function above. + (c-lineup-argcont-+): New function. + + * doc/misc/cc-mode.texi (Operator Line-Up): Add a new piece for + c-lineup-argcont-+. + +2022-04-23 Lars Ingebrigtsen <larsi@gnus.org> + + NEWS copy editing + + Fix elc.gz loading test some more + +2022-04-23 Lars Ingebrigtsen <larsi@gnus.org> + + Add a failing test case for bug#12598 + + Author: + +2022-04-23 Juri Linkov <juri@linkov.net> + + Allow not clearing the echo area + + * doc/lispref/display.texi (Displaying Messages): Document it. + * lisp/minibuffer.el (clear-minibuffer-message): Return nil. + + * src/xdisp.c (clear_message): Respect the dont-clear-message + value. + +2022-04-23 Lars Ingebrigtsen <larsi@gnus.org> + + Don't have help-fns--editable-variable override link buttons + + * lisp/help-fns.el (help-fns--editable-variable): Don't override + link buttons (bug#40774). + +2022-04-23 Lars Ingebrigtsen <larsi@gnus.org> + + Mention the case of the result in the try-completion doc string + + * src/minibuf.c (Ftry_completion): Mention the case of the results + (bug#39484). + +2022-04-23 Lars Ingebrigtsen <larsi@gnus.org> + + Make elisp-flymake-byte-compile clean up on failures + + * lisp/progmodes/elisp-mode.el (elisp-flymake-byte-compile): Clean + up no matter what the exit status of the process is (bug#55056). + +2022-04-23 Lars Ingebrigtsen <larsi@gnus.org> + + Don't make a header if the user hasn't specified columns in vtable + + * lisp/emacs-lisp/vtable.el (vtable): + (make-vtable): Store whether the user has specified the columns. + (vtable-insert): Don't insert a header line or a header if the + user hasn't specified the columns (bug#55075). + +2022-04-23 Filipp Gunbin <fgunbin@fastmail.fm> + + Fix prompts in sql-get-login again + + * lisp/progmodes/sql.el (sql-get-login-ext): Use prompt-def + everywhere. + (sql-get-login): Revert previous fix (bug#52546). + +2022-04-23 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerated ldefs-boot.el + +2022-04-23 Lars Ingebrigtsen <larsi@gnus.org> + + Add new minor mode word-wrap-whitespace-mode + + * doc/emacs/display.texi (Visual Line Mode): Document it. + * lisp/textmodes/word-wrap-mode.el: New minor mode. + +2022-04-23 Po Lu <luangruo@yahoo.com> + + Fix key navigation of Lucid menus on XI2 + + * src/xmenu.c (popup_get_selection): Fix cookie claiming of + input extension events. + (Fx_menu_bar_open_internal): Use right timestamps on XI2. + * src/xterm.c (handle_one_xevent): Dispatch XI2 key events via + Xt when popup is active. + +2022-04-23 Michael Albinus <michael.albinus@gmx.de> + + Fix problem with Solaris ls in Tramp + + * lisp/net/tramp-sh.el (tramp-sunos-unames): Move up. + (tramp-sh--quoting-style-options): Handle erroneous Solaris ls. + +2022-04-22 Po Lu <luangruo@yahoo.com> + + Avoid unnecessary calculations when handling button events during DND + + * src/xterm.c (handle_one_xevent): Only calculate DND grab for + button release events. + +2022-04-22 Po Lu <luangruo@yahoo.com> + + Avoid clearing splash screen message during DND on Haiku + + * src/haikuterm.c (haiku_read_socket): Respect any_help_event_p + when sending help events for DND. + +2022-04-22 Alan Mackenzie <acm@muc.de> + + Byte compiler: Prevent special forms' symbols being replaced by bare symbols + + These are symbols with position from source code, which should not be replaced + by bare symbols in, e.g., optimization functions. + + * lisp/Makefile.in: (BYTE_COMPILE_FLAGS, compile-first case): Set + max-specpdl-size to 5000 for the benefit of lisp/emacs-lisp/comp.el. + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker) + (byte-optimize--rename-var, byte-optimize-if, byte-optimize-letX) + * lisp/emacs-lisp/bytecomp.el (byte-compile-recurse-toplevel) + (byte-compile-lambda) + * lisp/emacs-lisp/cconv.el (cconv-convert) + * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Preserve, e.g., (car + form) in the byte compiler, when this form's car is a symbol with position of + a special form, rather than replacing the symbol with a bare symbol, e.g. + 'cond. + +2022-04-22 Alan Mackenzie <acm@muc.de> + + Byte compiler: correct output warning message positions (part 2) + + A supplementary commit to that on 2022-04-18: + + * lisp/emacs-lisp/bytecomp.el (byte-compile--first-symbol-with-pos): Handle + vectors and records correctly. + + * lisp/emacs-lisp/byte-run.el (byte-run--ssp-seen): Correct the doc string. + +2022-04-22 Lars Ingebrigtsen <larsi@gnus.org> + + Further doc string quoting fixes + + * test/lisp/progmodes/cperl-mode-tests.el (cperl--run-test-cases): + * lisp/simple.el (undo-equiv-table): + * lisp/shell.el (shell-mode): + (shell-mode): + * lisp/recentf.el (recentf-mode): + * lisp/org/ob-table.el (org-sbe): + * lisp/net/eudc.el (eudc-rfc5322-cctext-token): + * lisp/mail/ietf-drums-date.el (ietf-drums-date--slot-ranges): + * lisp/faces.el (color-luminance-dark-limit): + * lisp/erc/erc.el (erc-tls): + * lisp/emacs-lisp/pcase.el (pcase-setq): Further quoting fixes in + doc strings. + +2022-04-22 Lars Ingebrigtsen <larsi@gnus.org> + + Audit quoting the quote character in doc strings + + * test/src/regex-emacs-tests.el (regex-tests-compare): + (regex-tests-compare): + (regex-tests-match): + * test/lisp/xml-tests.el (xml-parse-tests--qnames): + * test/lisp/mh-e/mh-thread-tests.el (mh-thread-tests-before-from): + * test/lisp/cedet/srecode-utest-template.el (srecode-utest-map-reset): + * test/lisp/calc/calc-tests.el (calc-tests-equal): + * lisp/window.el (get-lru-window): + (get-mru-window): + (get-largest-window): + (quit-restore-window): + (display-buffer): + * lisp/vc/vc-rcs.el (vc-rcs-consult-headers): + * lisp/url/url-auth.el (url-digest-auth-build-response): + * lisp/tutorial.el (tutorial--find-changed-keys): + * lisp/transient.el (transient-suffix-object): + * lisp/textmodes/rst.el (rst-insert-list-new-item): + * lisp/textmodes/bibtex.el (bibtex-clean-entry): + * lisp/tab-bar.el (tab-bar--key-to-number): + (toggle-frame-tab-bar): + * lisp/ses.el (ses-recalculate-cell): + (ses-define-local-printer): + (ses-prin1): + * lisp/progmodes/xref.el (xref--find-ignores-arguments): + * lisp/progmodes/verilog-mode.el (verilog-single-declaration-end): + * lisp/progmodes/tcl.el (tcl-mode-hook): + * lisp/progmodes/gdb-mi.el (gdb-get-buffer-create): + * lisp/progmodes/elisp-mode.el (elisp--xref-make-xref): + * lisp/play/dunnet.el (dun-room-objects): + * lisp/outline.el (outline--cycle-state): + * lisp/org/ox-publish.el (org-publish-find-property): + * lisp/org/ox-html.el (org-html--unlabel-latex-environment): + * lisp/org/org-table.el (org-table-collapse-header): + * lisp/org/org-plot.el (org--plot/prime-factors): + * lisp/org/org-agenda.el (org-agenda--mark-blocked-entry): + (org-agenda-set-restriction-lock): + * lisp/org/ob-lua.el (org-babel-lua-read-string): + * lisp/org/ob-julia.el (org-babel-julia-evaluate-external-process): + (org-babel-julia-evaluate-session): + * lisp/org/ob-core.el (org-babel-default-header-args): + * lisp/obsolete/mouse-sel.el (mouse-select): + (mouse-select-secondary): + * lisp/net/tramp.el (tramp-methods): + * lisp/net/eww.el (eww-accept-content-types): + * lisp/net/dictionary-connection.el (dictionary-connection-status): + * lisp/minibuffer.el (completion-flex--make-flex-pattern): + * lisp/mh-e/mh-mime.el (mh-have-file-command): + * lisp/mh-e/mh-limit.el (mh-subject-to-sequence): + (mh-subject-to-sequence-threaded): + (mh-subject-to-sequence-unthreaded): + * lisp/mail/feedmail.el (feedmail-queue-buffer-file-name): + (feedmail-vm-mail-mode): + * lisp/ls-lisp.el (ls-lisp--sanitize-switches): + * lisp/keymap.el (key-valid-p): + * lisp/international/ccl.el (ccl-compile-branch-blocks): + * lisp/image/image-converter.el (image-convert): + * lisp/gnus/spam.el (spam-backend-check): + * lisp/gnus/nnselect.el (nnselect-generate-artlist): + * lisp/gnus/nnmairix.el (nnmairix-widget-other): + * lisp/gnus/message.el (message-mailto): + * lisp/gnus/gnus-sum.el (gnus-collect-urls-from-article): + * lisp/gnus/gnus-search.el (gnus-search-prepare-query): + * lisp/frame.el (frame-size-history): + * lisp/eshell/esh-var.el (eshell-parse-variable-ref): + * lisp/eshell/em-dirs.el (eshell-expand-multiple-dots): + * lisp/erc/erc-backend.el (erc-bounds-of-word-at-point): + * lisp/emulation/cua-rect.el (cua--rectangle-operation): + * lisp/emacs-lisp/text-property-search.el (text-property-search-forward): + * lisp/emacs-lisp/package.el (package-desc-suffix): + * lisp/emacs-lisp/faceup.el (faceup-test-explain): + * lisp/emacs-lisp/comp.el (comp-curr-allocation-class): + (comp-alloc-class-to-container): + (comp-add-cstrs): + (comp-remove-type-hints-func): + (batch-byte+native-compile): + * lisp/emacs-lisp/cl-macs.el (cl--optimize): + * lisp/elec-pair.el (electric-pair--syntax-ppss): + * lisp/doc-view.el (doc-view-doc-type): + * lisp/cedet/semantic/symref.el (semantic-symref-tool-alist): + (semantic-symref-hit-to-tag-via-db): + (semantic-symref-hit-to-tag-via-buffer): + * lisp/cedet/semantic/lex-spp.el (semantic-lex-spp-get-overlay): + * lisp/cedet/semantic/java.el (semantic-java-doc-keywords-map): + * lisp/cedet/semantic/find.el (semantic-brute-find-tag-by-function): + * lisp/cedet/semantic/db.el (semanticdb-project-predicate-functions): + * lisp/cedet/semantic.el (semantic-working-type): + * lisp/cedet/ede/files.el (ede-flush-directory-hash): + * lisp/calc/calc.el (calc--header-line): + * lisp/auth-source.el (auth-source-pick-first-password): + (auth-source--decode-octal-string): + * etc/themes/modus-themes.el (modus-themes--paren): + (modus-themes--agenda-habit): + * admin/cus-test.el (cus-test-vars-with-changed-state): Fix + quoting in doc strings. In code examples, the ' character is + quoted with \\=, and regularize 'foo to `foo', and quote strings + like "foo" instead of 'foo'. + +2022-04-22 Lars Ingebrigtsen <larsi@gnus.org> + + Fix map-into doc string example + + * lisp/emacs-lisp/map.el (map-into): Fix quote quoting in example. + +2022-04-22 Lars Ingebrigtsen <larsi@gnus.org> + + Make `C-u C-x =' be more verbose about invisible characters + + * lisp/descr-text.el (describe-text-properties-1): Note confusing + bits about invisible characters (bug#3400). + +2022-04-22 Lars Ingebrigtsen <larsi@gnus.org> + + Allow completion-ignore-case to be buffer-local + + * lisp/minibuffer.el (completing-read-default): Use the value of + completion-ignore-case from the current buffer (bug#12615). + +2022-04-22 Lars Ingebrigtsen <larsi@gnus.org> + + Fix problem with (narrow-to-page 1) with point at point-max + + * lisp/textmodes/page.el (forward-page): Make this work more + consistently if point is on bol (bug#20663). + +2022-04-22 Po Lu <luangruo@yahoo.com> + + Don't transfer window attributes trying to find the XM drag window + + * src/xterm.c (xm_get_drag_window): Select for impossible event + mask instead of asking for the window attributes. + +2022-04-22 Eli Zaretskii <eliz@gnu.org> + + Another fix for non-ASCII 'overlay-arrow-string' + + * src/xdisp.c (get_overlay_arrow_glyph_row): Fix yet another place + that assumed each character is a single byte. + +2022-04-22 Po Lu <luangruo@yahoo.com> + + Fix default frame name on Haiku + + * src/haikufns.c (haiku_set_background_color) + (haiku_set_cursor_color, haiku_get_pixel, haiku_put_pixel) + (haiku_set_internal_border_width) + (haiku_set_inhibit_double_buffering) + (Fhaiku_mouse_absolute_pixel_position, Fxw_color_defined_p) + (Fxw_color_values, Fx_double_buffered_p) + (Fx_display_backing_store): Clean up coding style. + (haiku_set_name): Use correct default name and don't cons extra + string all the time. + + * src/haikuterm.c (haiku_read_socket): Remove unused variable. + (haiku_term_init): Set default name. + (mark_haiku_display): Mark new field. + + * src/haikuterm.h (struct haiku_display_info): New field + `default_name'. + +2022-04-21 Po Lu <luangruo@yahoo.com> + + Add an option to disable XI2 for debugging purposes + + * src/xterm.c (handle_one_xevent): Accept resource + `disableInputExtension', which means to skip setting up the X + input extension. + +2022-04-21 Thomas Fitzsimmons <fitzsim@fitzsim.org> + + EUDC: Handle nil BOB button label + + * lisp/net/eudc-bob.el (eudc-bob-make-button): Do not throw error + when label is nil. + +2022-04-21 Eli Zaretskii <eliz@gnu.org> + + Avoid a redisplay loop when 'overlay-arrow-string' is non-ASCII + + * src/xdisp.c (get_overlay_arrow_glyph_row): Don't assume every + character in 'overlay-arrow-string' is one byte long. Reported by + Yuri D'Elia <wavexx@thregr.org>. + +2022-04-21 Sean Whitton <spwhitton@spwhitton.name> + + New electric forward slash Eshell module + + * lisp/eshell/em-elecslash.el: New file. + * etc/NEWS: + * doc/misc/eshell.texi (Electric forward slash): Document the module. + (Make / electric): Retitle to "Make / more electric", update, add + "@noindent", and standardize terminology. + +2022-04-21 Sean Whitton <spwhitton@spwhitton.name> + + Bind 'imenu' to 'M-g i' globally + + Another candidate was 'M-s i'. Discussion on emacs-devel has led me + to conclude that most people will find 'M-g i' more intuitive and thus + easier to memorize. + + * lisp/bindings.el (goto-map): Bind 'imenu' to 'M-g i' globally. + * etc/NEWS: Document the change. + * doc/emacs/programs.texi (Imenu): + * lisp/progmodes/cperl-mode.el: Replace 'M-x imenu' with 'M-g i'. + +2022-04-21 Tino Calancha <tino.calancha@gmail.com> + + Respect user-emacs-directory-warning in startup + + * lisp/startup.el (command-line): If user-emacs-directory is not + accessible, delay to show a warning until all command line args + are processed (bug#25163). + +2022-04-21 Lars Ingebrigtsen <larsi@gnus.org> + + Allow searching for regexps with a prefix + + * doc/misc/info.texi (Search Index): Mention it. + + * lisp/info.el (Info-find-node): Allow not signaling errors. + (Info-apropos-matches): Allow taking a regexp. + (info-apropos): Prefix now means looking for a regexp. + +2022-04-21 Lars Ingebrigtsen <larsi@gnus.org> + + Fix indentation in copy-region-as-kill + + * lisp/simple.el (copy-region-as-kill): Fix indentation. + +2022-04-21 Lars Ingebrigtsen <larsi@gnus.org> + + Clarify cl-incf/decf doc strings + + * lisp/emacs-lisp/cl-lib.el (cl-incf): + (cl-decf): Clarify that nil isn't a valid value for X (bug#31715). + +2022-04-21 Po Lu <luangruo@yahoo.com> + + * src/haiku_support.cc (gui_abort): Get rid of extern "C" declarations. + +2022-04-21 Eli Zaretskii <eliz@gnu.org> + + Add minimum instructions to 'query-replace' commands + + * lisp/vc/vc-dir.el (vc-dir-query-replace-regexp): + * lisp/textmodes/reftex-global.el (reftex-query-replace-document): + * lisp/progmodes/project.el (project-query-replace-regexp): + * lisp/progmodes/etags.el (tags-query-replace): + * lisp/progmodes/ebrowse.el (ebrowse-tags-query-replace): + * lisp/isearch.el (isearch-query-replace, isearch-occur): + * lisp/emulation/viper-cmd.el (viper-query-replace): + * lisp/dired-aux.el (dired-do-query-replace-regexp) + (dired-do-find-regexp-and-replace): + * lisp/progmodes/xref.el (xref-query-replace-in-results): + * lisp/replace.el (query-replace, query-replace-regexp) + (query-replace-regexp-eval, map-query-replace-regexp): Add minimal + instructions for dealing with matches, with a link to the command + that shows the full instructions. (Bug#55050) + +2022-04-21 Lars Ingebrigtsen <larsi@gnus.org> + + Link dired-do-find-regexp-and-replace to query-replace + + * lisp/dired-aux.el (dired-do-find-regexp-and-replace): Link to + `query-replace' (bug#55050). + +2022-04-21 Eli Zaretskii <eliz@gnu.org> + + Unbreak build with MinGW64. + + * src/w32.c (CONSOLE_FONT_INFO): Define only when _WIN32_WINNT is + less than _WIN32_WINNT_WINXP, i.e. for building with mingw.org's + MinGW. + +2022-04-21 Andreas Schwab <schwab@linux-m68k.org> + + gnus: fix %a in topic line + + * lisp/gnus/gnus-topic.el (gnus-topic-insert-topic-line): Also + bind `entries'. + +2022-04-21 Po Lu <luangruo@yahoo.com> + + Clean up PGTK code some more + + * src/pgtkterm.c (x_alloc_lighter_color): Simplify. Do not try + to "allocate" colors, remove unused flag and impossible return + value. + (pgtk_clear_frame): Remove unused code from NS port and remove + incorrect workaround for now-fixed double buffering. + (pgtk_make_frame_visible_wait_for_map_event_cb) + (x_clear_glyph_string_rect, x_draw_glyph_string_background) + (x_draw_glyph_string_foreground) + (x_draw_composite_glyph_string_foreground) + (x_draw_glyphless_glyph_string_foreground) + (x_fill_trapezoid_for_relief, x_erase_corners_for_relief) + (pgtk_setup_relief_color, x_draw_relief_rect, x_draw_box_rect) + (x_draw_glyph_string_box, x_get_scale_factor) + (x_draw_horizontal_wave, pgtk_draw_horizontal_wave) + (x_draw_underwave, x_draw_image_relief) + (x_draw_glyph_string_bg_rect, x_cr_draw_image) + (x_draw_image_foreground, x_draw_image_glyph_string) + (x_draw_stretch_glyph_string, pgtk_draw_glyph_string) + (x_draw_hollow_cursor, x_draw_bar_cursor, pgtk_draw_window_cursor) + (pgtk_cr_draw_image, pgtk_draw_fringe_bitmap, hourglass_cb) + (pgtk_show_hourglass, pgtk_redraw_scroll_bars, pgtk_flash) + (x_create_toolkit_scroll_bar) + (x_create_horizontal_toolkit_scroll_bar, x_scroll_bar_create) + (x_scroll_bar_remove, pgtk_set_vertical_scroll_bar) + (pgtk_set_horizontal_scroll_bar, pgtk_judge_scroll_bars) + (x_new_focus_frame, x_focus_changed, enter_notify_event) + (leave_notify_event, focus_in_event, focus_out_event) + (pgtk_cr_accumulate_data): Clean up coding style, rename + functions copied over from X and modified, and remove duplicate + definition of at least one function. + +2022-04-21 Po Lu <luangruo@yahoo.com> + + Don't leave xm drag initiator info around + + * src/xterm.c (x_cleanup_drag_and_drop) + (x_begin_drag_and_drop): Don't confuse GTK+ 2.x by leaving drag + initiator info around after DND completes. + +2022-04-21 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + dbb2dd6939 ; Fix wording of "File Notifications" in the ELisp manual + +2022-04-20 Po Lu <luangruo@yahoo.com> + + Use a cache on Haiku to avoid constantly reading fonts during font lookup + + * src/haiku_font_support.cc (struct font_object_cache_bucket): + New struct. + (language_code_points): Make `int'. + (hash_string): New function. + (cache_font_object_data, lookup_font_object_data) + (font_object_has_chars): New functions. + (font_check_wanted_chars, font_check_one_of) + (font_check_language): Lookup in cached font object instead. + (be_init_font_data, be_evict_font_cache): New functions. + + * src/haiku_support.h (struct haiku_font_pattern): Make + `uint32_t's ints instead. + * src/haikufont.c (haikufont_apply_registry, syms_of_haikufont): + Adjust for those changes. + + * src/haikuterm.c (haiku_frame_up_to_date): Clear font lookup + cache every 50 updates. + +2022-04-20 Po Lu <luangruo@yahoo.com> + + Make some frame params work on Haiku tooltip frames + + * src/haiku_support.cc (RecomputeFeel): Handle tooltips. + (BWindow_set_tooltip_decoration): Use RecomputeFeel instead of + setting window feel by hand. + +2022-04-20 Paul Eggert <eggert@cs.ucla.edu> + + More encode-time pitfall doc fixes + + * doc/lispref/os.texi (Time Conversion): Improve discussion of + encode-time pitfalls based on comments by Max Nikulin (Bug#54764#63). + +2022-04-20 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of 'scheme-indent-function' property + + * lisp/progmodes/scheme.el: Extend and clarify the commentary + regarding the 'scheme-indent-function' property of special forms. + +2022-04-20 Jean Abou Samra <jean@abou-samra.fr> (tiny change) + + Define indentation behavior for a few more special Scheme forms + + * lisp/progmodes/scheme.el: Define 'scheme-indent-function' + property for 'and-let*', 'with-syntax', 'eval-when;, and + pattern matching macros. (Bug#55033) + +2022-04-20 Po Lu <luangruo@yahoo.com> + + Implement `below' z-group on Haiku + + * src/haiku_support.cc (BWindow_set_z_group): Handle + Z_GROUP_BELOW by setting the B_AVOID_FRONT flag. + +2022-04-20 Lars Ingebrigtsen <larsi@gnus.org> + + Ensure forward progress in bibtex-map-entries + + * lisp/textmodes/bibtex.el (bibtex-map-entries): Ensure forward + progress (bug#55036). + +2022-04-20 Lars Ingebrigtsen <larsi@gnus.org> + + Fix the outline level in the Emacs NEWS modes + + * lisp/textmodes/emacs-news-mode.el (emacs-news--mode-common): Fix + the outline level (bug#54993). + +2022-04-20 Basil L. Contovounesios <contovob@tcd.ie> + + Fix build for --enable-checking=structs + + * src/pdumper.c (dump_subr): Update Lisp_Subr hash after last change + of 2022-04-18 "Port struct Lisp_Subr to C99". + +2022-04-20 Po Lu <luangruo@yahoo.com> + + Reset Motif DND protocol numbers when writing targets table + + * src/xterm.c (xm_setup_dnd_targets): Set header.protocol to 0 + when writing table. + +2022-04-20 Po Lu <luangruo@yahoo.com> + + Implement `above' z-group on Haiku + + * src/haiku_support.cc (class EmacsWindow): New field `z_group'. + (RecomputeFeel): New function. + (ParentTo, BWindow_set_override_redirect): Use that instead + instead of manually juggling the window feel around. + (BWindow_set_z_group): New function. + + * src/haiku_support.h (enum haiku_z_group): New enum. + * src/haikufns.c (haiku_set_parent_frame): Clean up coding + style. + (haiku_set_z_group): New function. + (haiku_create_frame): Always set z group after window creation, + like on X. + (haiku_frame_parm_handlers): Add `haiku_set_z_group'. + +2022-04-19 Po Lu <luangruo@yahoo.com> + + Fix enabling menu bar multiple times on Haiku + + * src/haiku_support.cc (FrameResized): Adjust width and height + appropriately when sending menu bar resize event. + * src/haikufns.c (haiku_set_menu_bar_lines): Don't always reset + FRAME_MENU_BAR_LINES and FRAME_MENU_BAR_HEIGHT. + * src/haikumenu.c (free_frame_menubar): Clear Haiku menu bar. + (set_frame_menubar): Fix coding style. + * src/haikuterm.c (haiku_read_socket): Don't adjust height here + anymore. + +2022-04-19 Paul Eggert <eggert@cs.ucla.edu> + + Update from gnulib + +2022-04-19 Paul Eggert <eggert@cs.ucla.edu> + + Pacify gcc -std=c99 with printf %p + + * src/print.c (print_vectorlike): Assign pointer-to-function + to void * before printing it with %p, as the C standard + doesn’t bless printing function pointers with %p. + +2022-04-19 Paul Eggert <eggert@cs.ucla.edu> + + Pacify gcc -std=c99 + + * src/sysdep.c (system_process_attributes): Use %llu instead of + %Lu for sscanf, as %llu is standard and %Lu is not, and the latter + can provoke warnings if gcc is used pedantically. + +2022-04-19 Po Lu <luangruo@yahoo.com> + + Check for integer overflow when writing Motif targets tables + + * src/xterm.c (xm_setup_dnd_targets): Check for integer overflow + when adding list to target table. + +2022-04-19 Lars Ingebrigtsen <larsi@gnus.org> + + Fix previous description of fallback order + + * doc/emacs/custom.texi (Specifying File Variables): Document + fallback mode order. + +2022-04-19 Lars Ingebrigtsen <larsi@gnus.org> + + Document how to specify fallback modes + + * doc/emacs/custom.texi (Specifying File Variables): Document + fallback mode order. + +2022-04-19 Lars Ingebrigtsen <larsi@gnus.org> + + Fix regression with multiple mode: entries in the prop line + + * lisp/files.el (hack-local-variables--find-variables): Use the + final mode: line (which is the same as having several mode: bits + in the header line. + +2022-04-19 Lars Ingebrigtsen <larsi@gnus.org> + + Allow several mode: elements in the local variable section + + * etc/NEWS (mode): Fall back on outline-mode in older Emacsen. + * lisp/files.el (hack-local-variables--find-variables): Use the + final mode: line (which is the same as having several mode: bits + in the header line. + +2022-04-19 Stefan Monnier <monnier@iro.umontreal.ca> + + Fix GCC warnings when CHECK_LISP_OBJECT_TYPE + + * src/lisp.h (lisp_h_Qni): New macro. + (DEFUN): Use it. + * src/alloc.c (syms_of_alloc): Use it. + + * src/bytecode.c (Fbyte_code): Fix Lisp_Object/int mixup. + +2022-04-19 Lars Ingebrigtsen <larsi@gnus.org> + + Revert prompting changes in viper-cmd + + * lisp/emulation/viper-cmd.el (viper-quote-region) + (viper-read-string-with-history, viper-query-replace): Revert + prompting changes done in 50512e3 -- the way viper prompts in + command mode is special (bug#55007). + +2022-04-19 Lars Ingebrigtsen <larsi@gnus.org> + + Be more resilient against invalid headers in mml-generate-mime + + * lisp/gnus/mml.el (mml-generate-mime): Don't bug out when called + with invalid headers (bug#55014). + +2022-04-19 Philip Kaludercic <philipk@posteo.net> + + Fix handling of intspecs as string by rcirc-define-command + + * rcirc.el (rcirc-define-command): Check if an interactive + specification is a string, in which case it was to be wrapped in a + list so that the result of its interpretation is passed as the first + argument of the command resulting from the macro expansion. + +2022-04-19 Po Lu <luangruo@yahoo.com> + + Fix `x-mouse-click-focus-ignore-position' for odd coincidences across displays + + * src/xterm.c (handle_one_xevent): Save the display alongside + the next mouse click timeout. + (x_delete_display): Clear that display here if applicable. + (x_initialize): Likewise. + +2022-04-19 Eli Zaretskii <eliz@gnu.org> + + Fix dimensions of console window of restarted Emacs on MS-Windows + + * src/w32.c (get_console_font_size): New function. + (w32_reexec_emacs): Call 'get_console_font_size' to set up the + dimensions of the restarted Emacs's console window to the same + values as that of the original Emacs. + +2022-04-19 Po Lu <luangruo@yahoo.com> + + Deal with Motif drag window related races + + * src/xterm.c (xm_drag_window_error_handler): New function. + (xm_get_drag_window): If a drag window was created and we have + the temp display grabbed, use that instead. + +2022-04-19 Po Lu <luangruo@yahoo.com> + + Minor cleanups to Haiku menu code + + * src/haiku_draw_support.cc (BView_SetHighColorForVisibleBell): + Delete function. + * src/haiku_font_support.cc (BFont_dat): Rename to + `BFont_metrics'. + * src/haiku_support.cc (DrawContent): Use correct UI color for + control text. + * src/haiku_support.h (HAIKU_MODIFIER_ALT): Turn into enum. + (enum haiku_modifier_specification): New enum. + * src/haikufont.c (haikufont_open, haikufont_close): Fix coding + style. + +2022-04-18 Po Lu <luangruo@yahoo.com> + + Fix last change for GTK 2 + + * src/xfns.c (x_set_alpha_background): + * src/xterm.c (x_update_opaque_region): Move some ifdefs around. + +2022-04-18 Po Lu <luangruo@yahoo.com> + + Fix opaque region treatment on GTK 3 + + * src/xfns.c (x_set_alpha_background): + * src/xterm.c (x_update_opaque_region): Update opaque region for + tooltip frames the correct way on GTK. + +2022-04-18 Paul Eggert <eggert@cs.ucla.edu> + + Port struct Lisp_Subr to C99 + + * src/lisp.h (struct Lisp_Subr): Don’t use an anonymous union, + a feature missing from C99 and not supported by older OS X. + All uses changed. + +2022-04-18 Paul Eggert <eggert@cs.ucla.edu> + + Port module_bignum_count_max to strict C + + * src/emacs-module.c (module_bignum_count_max): Make + this a macro, not an enum, since it might not fit into + int as C99 requires. + +2022-04-18 Sean Whitton <spwhitton@spwhitton.name> + + Tell those using exclusively X not to use the PGTK port + + * INSTALL (Alternative window systems): Tell those using exclusively X + not to use the PGTK port. + +2022-04-18 Po Lu <luangruo@yahoo.com> + + Fix display of glyphless characters on Haiku + + * src/haikuterm.c (haiku_draw_glyph_string_foreground): Fix pen + size when drawing composite string w/o font. + (haiku_draw_glyphless_glyph_string_foreground): Correctly + display glyphless character rectangle. + +2022-04-18 Paul Eggert <eggert@cs.ucla.edu> + + Use "@code{nil}" in documentation + +2022-04-18 Paul Eggert <eggert@cs.ucla.edu> + + Remove obsolete footnote + + Emacs no longer warns about timestamps like (1 . 1000). + +2022-04-18 Alan Third <alan@idiocy.org> + + Fix glyphless glyph display on NS (bug#54970) + + * src/nsterm.m (ns_draw_glyphless_glyph_string_foreground): New + function. + (ns_draw_glyph_string): Use the new function. + * src/nsfont.m (nsfont_draw): Fix the location the glyphs are drawn, + and also which glyphs are drawn. + (ns_glyph_metrics): Reverse ascent and descent. + +2022-04-18 Eli Zaretskii <eliz@gnu.org> + + Minor improvements in 'restart-emacs' on MS-Windows + + * src/w32.c (w32_reexec_emacs): Explicitly request a new console + for the restarted Emacs -nw, and specify its dimensions. Specify + NULL instead of security attributes, per examples on the Internet. + * src/w32console.c (initialize_w32_display): Check errors in call + to GetConsoleCursorInfo. + +2022-04-18 Alan Mackenzie <acm@muc.de> + + Byte compiler: correct output warning message positions + + Correct the algorithm for determining the warning position to get the first + symbol-with-position in byte-compile--form-stack. + + * lisp/emacs-lisp/bytecomp.el (byte-compile--first-symbol-with-pos): Function + renamed and amended from byte-compile--first-symbol. + (byte-compile--warning-source-offset): Call the new function above rather than + the old one. + +2022-04-18 Lars Ingebrigtsen <larsi@gnus.org> + + Make isearch-lax-whitespace a user option + + * lisp/isearch.el (isearch-lax-whitespace): Make into a defcustom + (bug#20351). + +2022-04-18 Lars Ingebrigtsen <larsi@gnus.org> + + Avoid hangs in python-mode with debug-on-error set + + * lisp/progmodes/python.el (python-nav-end-of-statement): Avoid + using cl-assert here, because this is called from the font-lock + machinery, and if debug-on-error is set here, we'll hang Emacs + (bug#54996). + +2022-04-18 Lars Ingebrigtsen <larsi@gnus.org> + + Make it easier to use Emacs as a script interpreter + + * doc/emacs/cmdargs.texi (Initial Options): Document -x. + * lisp/startup.el (command-line-1): Add new -scripteval. + (command-line--eval-script): New function. + + * src/emacs.c (main): Transform -x to -scripteval. + (standard_args): Add -x (bug#20682). + +2022-04-18 Po Lu <luangruo@yahoo.com> + + Add missing Motif atoms + + * src/xselect.c (symbol_to_x_atom): + (x_atom_to_symbol): + (syms_of_xselect): Optimize for XmTRANSFER_SUCCESS and + XmTRANSFER_FAILURE as well. + +2022-04-18 Alan Mackenzie <acm@muc.de> + + Byte compiler: remove symbol positions from byte-switch tables + + This fixes bug #54990. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode): Remove positions from + symbols with positions in byte-switch tables, by temporarily removing the + entries from the table, and reinserting them amended. + +2022-04-18 Lars Ingebrigtsen <larsi@gnus.org> + + Clean up view-emacs-news code + + * lisp/help.el (view-emacs-news): Remove workaround after fixing + mode: cookie error. + +2022-04-18 Nacho Barrientos <nacho.barrientos@cern.ch> (tiny change) + + Unify local variable initialization in url-http + + * lisp/url/url-http.el (url-http-chunked-last-crlf-missing): Treat + url-http-chunked-last-crlf-missing as any other buffer variable by + declaring and initializing it the same way as the other related + ones (bug#54989). + +2022-04-18 Lars Ingebrigtsen <larsi@gnus.org> + + Make `restart-emacs' work when Emacs is started with --chdir + + * src/emacs.c (find_emacs_executable): Rename from + load_pdump_find_executable and always define. + (load_pdump): Return the executable. + (main): Store the executable. + (Fkill_emacs): Use the stored executable so that --chdir works + with relative executable names, and so that we attempt to restart + the same executable and not some other Emacs from PATH. + +2022-04-18 Lars Ingebrigtsen <larsi@gnus.org> + + Improve `restart-emacs' error reporting + + * src/emacs.c (Fkill_emacs): Do better error reporting on restarting. + +2022-04-18 Lars Ingebrigtsen <larsi@gnus.org> + + Make "restart" erroring slightly more reliable + + * src/emacs.c (Fkill_emacs): Use emacs_perror for the "restart" + errors -- we've already shut down Emacs at this point, so the + normal erroring machinery isn't reliable. + +2022-04-18 Lars Ingebrigtsen <larsi@gnus.org> + + Fix major-mode setting regression when there's a mode: cookie + + * lisp/files.el (hack-local-variables): Fix regression in setting + the major mode when there are mode: cookies in the file (bug#54993). + +2022-04-18 Po Lu <luangruo@yahoo.com> + + Stop skipping ShapeNotify events during DND on GTK+ + + * src/xterm.c (handle_one_xevent): Don't skip ShapeNotify events + because we can't send these events back to GDK manually. + +2022-04-18 Po Lu <luangruo@yahoo.com> + + Clarify computation of header line vpos + + * src/dispnew.c (update_text_area): Test vpos is more than 1 + only if is both a tab and header line. Reported by Eli + Zaretskii <eliz@gnu.org>. + +2022-04-18 Eli Zaretskii <eliz@gnu.org> + + Fix 'restart-emacs' in -nw mode on MS-Windows + + * src/w32.c (openat): #ifdef away: not used. + (w32_reexec_emacs): Kludgey solution for restarting Emacs in the + "-nw" mode. + +2022-04-18 Po Lu <luangruo@yahoo.com> + + Fix glyph skipping optimization when a tab line is enabled + + * src/dispnew.c (update_text_area): Compute vpos of header line + correctly when window has tab line. + +2022-04-17 Po Lu <luangruo@yahoo.com> + + Minor cleanups to PGTK code + + * src/gtkutil.c (xg_set_geometry): + (xg_frame_set_char_size): + (x_wm_set_size_hint): Rename to `xg_wm_set_size_hint'. All + callers changed. + * src/gtkutil.h: Update prototypes. + * src/pgtkfns.c (unwind_create_frame): + (Fx_create_frame): + (compute_tip_xy): + * src/pgtkterm.c (x_free_frame_resources): + (x_destroy_window): + (x_calc_absolute_position): + (x_set_offset): + (pgtk_set_window_size): + (x_display_pixel_height): + (x_display_pixel_width): + (x_set_parent_frame): Rename `x_foo' functions to `pgtk_foo'. + Get rid of some copy-pasted code from various places. + (pgtk_create_terminal): Clean up coding style. + * src/pgtkterm.h: Update prototypes. + +2022-04-17 Paul Eggert <eggert@cs.ucla.edu> + + Port sqlite.c to OS X 10.6.8 with Xcode 3.2.6 + + Problem reported by Keith David Bershatsky in: + https://lists.gnu.org/r/emacs-devel/2022-04/msg00923.html + * src/sqlite.c (Fsqlite_open): Don’t assume SQLITE_OPEN_MEMORY + is defined. + +2022-04-17 Po Lu <luangruo@yahoo.com> + + Fix Haiku menu bars when redisplay happens immediately after activation + + * src/haiku_support.cc (MessageReceived): Make `REPLAY_MENU_BAR' + messages synchronous. + (be_replay_menu_bar_event): Return whether or not the menu bar + really opened. + * src/haiku_support.h: Update prototypes. + * src/haikumenu.c (haiku_activate_menubar): Immediately activate + menu bar after replaying event. + +2022-04-17 Po Lu <luangruo@yahoo.com> + + Some minor fixes to Motif DND support + + * src/xterm.c (xm_write_drag_initiator_info): Swap cardinal + values if wrong byteorder. + (xm_setup_dnd_targets): Read LONG_MAX amount of drag targets. + +2022-04-17 Paul Eggert <eggert@cs.ucla.edu> + + Merge from origin/emacs-28 + + 65c04e7115 Update to Org 9.5.2-38-g682ccd + +2022-04-17 Paul Eggert <eggert@cs.ucla.edu> + + Merge from origin/emacs-28 + + 3cccf0a910 Don’t assume openat + +2022-04-17 Jim Porter <jporterbugs@gmail.com> + + Fix Eshell predicate tests when running from 'make check' + + * test/lisp/eshell/em-pred-tests.el (eshell-partial-let-func): Get + original function after macro-expansion. + +2022-04-17 Kyle Meyer <kyle@kyleam.com> + + Update to Org 9.5.2-38-g682ccd + +2022-04-17 Lars Ingebrigtsen <larsi@gnus.org> + + Make desktop.el use local-minor-modes when saving + + * lisp/desktop.el (desktop-buffer-info): Use a more reliable way + to get minor modes (bug#29972). + +2022-04-17 Paul Eggert <eggert@cs.ucla.edu> + + Don’t assume openat + + Use openat only on platforms with O_PATH. + This ports to OS X 10.9 and earlier. + Problem reported by Keith David Bershatsky in: + https://lists.gnu.org/r/emacs-devel/2022-04/msg00805.html + * lib-src/emacsclient.c (local_sockname): Use open, not openat. + * src/sysdep.c (sys_openat): New static function, + which uses openat only if O_PATH is defined. + (emacs_openat): Use it instead of openat. + (emacs_openat_noquit): Remove. + (emacs_open_noquit): Reimplement as per the old emacs_openat_noquit, + but use plain 'open'. + +2022-04-17 Eli Zaretskii <eliz@gnu.org> + + Improve the support for the Brahmi script + + * lisp/leim/quail/indian.el ("brahmi"): New input method. + * lisp/language/indian.el ("Brahmi"): Add sample-text and + input-method. (Bug#54914) + + * etc/NEWS: Mention the brahmi input method. + * etc/HELLO: Add a Brahmi greeting. + +2022-04-17 kobarity <kobarity@gmail.com> (tiny change) + + Fix fontifying type hints in python-mode + + * lisp/progmodes/python.el + (python-font-lock-keywords-maximum-decoration): Avoid fontifying + type hints as variable names (bug#54992). + +2022-04-17 Lars Ingebrigtsen <larsi@gnus.org> + + Allow editing variable values in *Help* buffers + + * lisp/help-fns.el (help-enable-variable-value-editing): New user + option. + (describe-variable): Tag values for editing. + (help-fns--editable-variable, help-fns-edit-variable): New + functions (bug#36826). + (help-fns--edit-value-mode-map, help-fns--edit-value-mode) + (help-fns-edit-mode-done): New mode and commands. + +2022-04-17 Lars Ingebrigtsen <larsi@gnus.org> + + Make :filters run in the correct buffer in describe-buffer-bindings + + * lisp/help.el (describe-map-tree): Take an optional buffer parameter. + (describe-map): Ditto, and use it to run `lookup-key' in the + correct buffer. This fixes problems of filters being run in the + wrong buffer (bug#39149). + + * src/keymap.c (Fdescribe_buffer_bindings): Pass in BUFFER to + describe-map-tree. + +2022-04-17 Eli Zaretskii <eliz@gnu.org> + + Fix 'restart-emacs' on MS-Windows + + * src/w32.c (w32_reexec_emacs): New function, emulation of + 'execvp' on Posix systems. + * src/w32.h (w32_reexec_emacs): Add prototype. + * src/emacs.c (main) [WINDOWSNT]: Save the original command line + and working directory. + (Fkill_emacs) [WINDOWSNT]: Call 'w32_reexec_emacs' instead of + 'execvp'. (Bug#17036) + +2022-04-17 Lars Ingebrigtsen <larsi@gnus.org> + + Add a `restart-emacs' sanity check + + * src/emacs.c (Fkill_emacs): Add a sanity check for argv. + +2022-04-17 Po Lu <luangruo@yahoo.com> + + Handle bad actual actions during DND + + * src/xterm.c (x_dnd_begin_drag_and_drop): Behave correctly when + the target gives us a bad atom. + +2022-04-17 Lars Ingebrigtsen <larsi@gnus.org> + + Check whether we can restart in Fkill_emacs + + * src/emacs.c (Fkill_emacs): Report an error if we can't restart. + +2022-04-17 Lars Ingebrigtsen <larsi@gnus.org> + + Explain what "pending" means in isearch + + * doc/emacs/search.texi (Regexp Search): Explain what "Pending" + usually means (bug#10148). + +2022-04-17 Philip Kaludercic <philipk@posteo.net> + + Handle connection errors in rcirc-keepalive + + * rcirc.el (rcirc-reconnect-delay): Declare variable before it is + defined. + (rcirc-keepalive): Handle rcirc-closed-connection, respecting + rcirc-reconnect-delay. + (rcirc-closed-connection): Add new error type. + (rcirc-send-string): Throw rcirc-closed-connection instead of a + generic error. + +2022-04-17 Lars Ingebrigtsen <larsi@gnus.org> + + Add new function `flush-standard-output'. + + * doc/lispref/streams.texi (Output Functions): Document it. + * src/print.c (Fflush_standard_output): New function (bug#15180). + +2022-04-17 Philip Kaludercic <philipk@posteo.net> + + Further improve buffer-match-p related documentation + + * doc/lispref/buffers.texi (Buffer List): Add entries for + buffer-match-p and match-buffers. + * etc/NEWS: Give examples for buffer-match-p conditions. + * lisp/window.el (display-buffer-assq-regexp): Mention what happens + when no entry in the alist satisfies a condition. + +2022-04-17 Lars Ingebrigtsen <larsi@gnus.org> + + Add a new command `restart-emacs' + + * doc/lispref/os.texi (Killing Emacs): Document it. + + * lisp/files.el (save-buffers-kill-emacs): Add new RESTART parameter. + (restart-emacs): New function. + + * src/emacs.c (terminate_due_to_signal, Fkill_emacs): Take an + optional RESTART parameter. + + * test/lisp/files-tests.el + (files-tests-save-buffers-kill-emacs--confirm-kill-processes): + * src/xterm.c (x_connection_closed): + * src/xsmfns.c (Fhandle_save_session): + * src/keyboard.c (Fcommand_error_default_function, command_loop) + (command_loop_1, read_menu_command, read_event_from_main_queue) + (read_key_sequence, quit_throw_to_read_char): + * src/eval.c (process_quit_flag): Adjust Fkill_emacs callers. + +2022-04-17 Nacho Barrientos <nacho.barrientos@cern.ch> (tiny change) + + Fix chunked encoding connections in url-http + + * lisp/url/url-http.el + (url-http-chunked-encoding-after-change-function): Ensure that chunked + encoding is interpreted correctly (bug#54989). + + As per [0], the last chunk of 0 bytes is always accompanied by a last + CRLF that signals the end of the message: + + chunked-body = *chunk + last-chunk + trailer-part + CRLF + ^ this one + + chunk = chunk-size [ chunk-ext ] CRLF + chunk-data CRLF + chunk-size = 1*HEXDIG + last-chunk = 1*("0") [ chunk-ext ] CRLF + + chunk-data = 1*OCTET ; a sequence of chunk-size octets + + `url-http-chunked-encoding-after-change-function' is able to process + (and remove) that terminator IF AVAILABLE in the buffer when + processing the response, however it won't wait for it if it's not yet + there. + + In other words: + + | Bottom of the response buffer | Bottom of the full response | + | (visible to url-http) | (to be delivered to Emacs) | + | ------------------------------+-----------------------------| + | 0\r\n | 0\r\n | + | | \r\n | + + If the last chunk is processed when the bottom of the response buffer + is as above (note that the whole response has not yet been delivered + to Emacs), url-http will call the user callback without waiting for + the final terminator to be read from the socket. + + This is normally not an issue when doing one-shot requests, but it's + problematic when the connection is reused immediately. As there are 2 + bytes from the request N that have not been dealt with, they'll be + considered as part of the response of the request N+1. On top, it + turns out that when processing the headers of request N+1, + `url-http-wait-for-headers-change-function' will consider the request + a "headerless malformed response" delivering it broken to the caller. + + The proposed fix implements a state in which + `url-http-chunked-encoding-after-change-function` properly waits for + the very last element of the message preventing the problem explained + above from happening. + + For additional context, this bug was found when debugging + magit/ghub (see [1] for details). + + [0] https://datatracker.ietf.org/doc/html/rfc7230#section-4.1 + [1] https://github.com/magit/ghub/issues/81 + +2022-04-17 Oleh Krehel <ohwoeowho@gmail.com> + + Remove duplicates from Info-read-node-name-2 + + * lisp/info.el (Info-read-node-name-2): Remove duplicates from + completions (bug#20365). + +2022-04-17 Lars Ingebrigtsen <larsi@gnus.org> + + Fix instructions on how to enable password-store + + * doc/misc/auth.texi (Help for users): Give the correct + instructions on how to enable password store (bug#30900). + +2022-04-17 Lars Ingebrigtsen <larsi@gnus.org> + + Clarify setopt NEWS entry + + Do some NEWS tagging + +2022-04-17 Lars Ingebrigtsen <larsi@gnus.org> + + Add a doc string to xref-current-item + + * lisp/progmodes/xref.el (xref-after-jump-hook): Link to it. + (xref-current-item): Add a doc string to the now-public variable. + +2022-04-17 Lars Ingebrigtsen <larsi@gnus.org> + + Clarify emacs-news--heading-p logic + + * lisp/textmodes/emacs-news-mode.el (emacs-news--heading-p): + Clarify the logic. + +2022-04-17 Lars Ingebrigtsen <larsi@gnus.org> + + Move some entries around in the NEWS file + + Fix up the NEWS entry for emacs-news*-mode + +2022-04-17 Paul Eggert <eggert@cs.ucla.edu> + + * src/filelock.c (Fcreate_lockfiles): Doc string fix. + +2022-04-17 Paul Eggert <eggert@cs.ucla.edu> + + Merge from origin/emacs-28 + + 4641bc1c55 Fix GC bug in filelock.c + +2022-04-17 Po Lu <luangruo@yahoo.com> + + Fix race conditions waiting for menu bar resize events on Haiku + + * src/haikufns.c (haiku_create_frame, haiku_create_tip_frame): + Clear `wait_for_event_type'. + (haiku_set_menu_bar_lines): Clean up coding style. + * src/haikuterm.c (haiku_wait_for_event): New function. + (haiku_read_socket): Implement waiting for MENU_BAR_RESIZE + events. + * src/haikuterm.h (struct haiku_output): New field + `wait_for_event_type'. + +2022-04-17 Po Lu <luangruo@yahoo.com> + + Fix race conditions waiting for menu bar resize events on Haiku + + * src/haikufns.c (haiku_create_frame, haiku_create_tip_frame) + (haiku_set_menu_bar_lines): Clear `wait_for_event_type'. + * src/haikumenu.c (set_frame_menubar): Wait for menu bar resize + event. + * src/haikuterm.c (haiku_wait_for_event): New function. + (haiku_read_socket): Handle waiting for MENU_BAR_RESIZE. + * src/haikuterm.h (struct haiku_output): New field + `wait_for_event_type'. + +2022-04-17 Po Lu <luangruo@yahoo.com> + + Get rid of unused flags on Haiku + + * src/haikufns.c (haiku_free_frame_resources): Syntax fixes. + * src/haikumenu.c (set_frame_menubar, run_menu_bar_help_event): + * src/haikuterm.c (haiku_read_socket): Stop setting and + consulting `menu_up_to_date_p'. + * src/haikuterm.h (struct haiku_output): Delete + `menu_up_to_date_p'. + +2022-04-17 Po Lu <luangruo@yahoo.com> + + * src/haikufns.c (haiku_free_frame_resources): Free saved menu event. + +2022-04-17 Po Lu <luangruo@yahoo.com> + + Fix hangs when clicking on Haiku menu bar to activate frame + + * src/haiku_io.c (haiku_len): Handle new event `MENU_BAR_CLICK'. + * src/haiku_support.cc (class EmacsWindow): Remove most of the + menu bar cv stuff. + (MessageReceived): Handle REPLAY_MENU_BAR message. + (EmacsWindow_signal_menu_update_complete): Delete function. + (be_replay_menu_bar_event): New function. + + * src/haiku_support.h (enum haiku_event_type): New event type + `MENU_BAR_CLICK'. + (struct haiku_menu_bar_click_event): New struct. + + * src/haikumenu.c (haiku_activate_menubar): New function. + * src/haikuterm.c (haiku_read_socket): Save a + MENU_BAR_ACTIVATE_EVENT and the menu bar click event instead of + handling the menu bar update synchronously. + (haiku_create_terminal): Set `activate_menubar_hook'. + (syms_of_haikuterm): Remove extraneous newline. + + * src/haikuterm.h (struct haiku_output): New field + `saved_menu_event'. + +2022-04-17 Paul Eggert <eggert@cs.ucla.edu> + + Fix GC bug in filelock.c + + Fix a bug where if GC occurred at the wrong moment when locking a + file, the lock file’s name was trashed so file locking did not work. + This bug was introduced in Emacs 28.1. The bug sometimes caused + filelock-tests-detect-external-change test failures on Fedora 35 + x86-64 in an en_US.utf8 locale. + * src/filelock.c (lock_file_1, current_lock_owner, lock_if_free) + (lock_file, unlock_file, Ffile_locked_p): + Use Lisp_Object, not char *, for string, so that GC doesn’t trash + string contents. + (make_lock_file_name): Return the encoded name, not the original. + All callers changed. + +2022-04-17 Jim Porter <jporterbugs@gmail.com> + + Add 'G' argument predicate in Eshell + + * lisp/eshell/em-pred.el (eshell-predicate-alist): Add 'G' predicate. + (eshell-predicate-help-string): Document it. (Bug#54470) + + * test/lisp/eshell/em-pred-tests.el + (em-pred-test/predicate-effective-gid): New test. + + * doc/misc/eshell.texi (Argument Predication): Document 'G' predicate. + +2022-04-17 Jim Porter <jporterbugs@gmail.com> + + Add unit tests and documentation for Eshell predicates/modifiers + + * lisp/eshell/esh-cmd.el (eshell-eval-argument): New function. + * lisp/eshell/esh-util.el (eshell-file-attributes): Pass original + value of FILE to 'file-attributes'. + * lisp/eshell/em-pred.el (eshell-predicate-alist): Change socket char + to '=', since 's' conflicts with setuid. + (eshell-modifier-alist): Fix 'E' (eval) modifier by using + 'eshell-eval-argument'. Also improve performance of 'O' (reversed + sort) modifier. + (eshell-modifier-help-string): Fix documentation of global + substitution modifier. + (eshell-pred-substitute): Fix infinite loop in some global + substitutions. + (eshell-join-members): Fix joining with implicit " " delimiter. + (Bug#54470) + + * test/lisp/eshell/em-pred-tests.el: New file. + + * doc/misc/eshell.texi (Argument Predication): New section. + +2022-04-17 Jim Porter <jporterbugs@gmail.com> + + Add unit tests and documentation for Eshell pattern-based globs + + * lisp/eshell/em-glob.el (eshell-extended-glob): Fix docstring. + (eshell-glob-entries): Refer to '**/' in error (technically, '**' can + end a glob, but it means the same thing as '*'). (Bug#54470) + + * test/lisp/eshell/em-glob-tests.el: New file. + + * doc/misc/eshell.texi (Globbing): Document pattern-based globs. + +2022-04-17 Po Lu <luangruo@yahoo.com> + + Make sure the ftcr font driver is used on Haiku when Cairo is enabled + + * src/haikufont.c (syms_of_haikufont): [USE_BE_CAIRO]: Make sure + `ftcr' supersedes `haiku'. + +2022-04-16 Paul Eggert <eggert@cs.ucla.edu> + + Document encode-time caveats + + * doc/lispref/os.texi (Time of Day, Time Conversion): + Move the warnings about DST being -1 to closer to where DST is + discussed, and reword and improve the discussions and warnings. + Be more precise about years before 1969 (possible west of UTC) vs the + Epoch. Mention some problems due to leap seconds, leap years, + daylight saving transitions, and time zone changes. Modernize + discussion of OS timestamp range. Prefer secular ‘BCE’ to religious + ‘BC’. Omit discussion of decoded-time-add and make-decoded-time, as + they are in a library and are not always available; instead, mention + the library. Warn about common mistakes when doing simple date + arithmetic. + * src/timefns.c (Fencode_time): In doc string, mention date + arithmetic and tighten up the wording a bit. + +2022-04-16 Max Nikulin <manikulin@gmail.com> + + Stress difference of new and old ways to call `encode-time' + + * doc/lispref/os.texi (Time Conversion): Add a warning that blind + changing of code calling `encode-time' to use single list instead of + multiple values may cause deferred bugs since it is common to use nil + for ignored arguments such as DST in the old calling convention. + * src/timefns.c (encode-time): Mention the warning added to the elisp + reference in the docstring. + + Refactoring related to `encode-time' caused (bug#54731), so it is better + to make apparent the difference between the recommended and the + obsolescent ways to call the function. More details concerning the + purpose and limitations of the DST field are added after discussion with + Paul Eggert in (bug#54764). + +2022-04-16 Po Lu <luangruo@yahoo.com> + + Restore pending_signals at a point in the DND event loop + + * src/xterm.c (x_dnd_begin_drag_and_drop): Restore + pending_signals after unblock_input. + +2022-04-16 Earl Hyatt <okamsn@protonmail.com> + + Add basic Texinfo support for Flymake. + + * lisp/textmodes/texinfo.el (texinfo-flymake, texinfo--flymake-proc) + (texinfo-mode): + Add the functions texinfo-flymake and process variable + texinfo--flymake-proc. Modify texinfo-mode to automatically add this + function to the hook flymake-diagnostic-functions. + +2022-04-16 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + d53c999b4a Further vcs-cvs/rcs-responsible-p updates from master + dc3d1628ec ; * src/sysdep.c: Fix mistake in previous commit + 855e15dbf1 Fix builds on older versions of macOS + 9da744e450 Fix documentation of Outline minor mode options + a8bb12ab05 Improve discoverability of 'insert-directory-program' + 3f166bdf44 ; * etc/PROBLEMS: Describe MS-Windows issues with fonts. ... + 803ac857ee Fix cursor motion under truncate-lines with Flymake fringe... + + # Conflicts: + # etc/PROBLEMS + # lisp/outline.el + # src/sysdep.c + +2022-04-16 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + b201823f63 Describe problems with invoking Python on MS-Windows + 880f2734c9 A better fix for bug#54800 + 5ee959aa87 Add a comment about cl-concatenate + ab2b822b9b Revert "Make cl-concatenate an alias of seq-concatenate" + +2022-04-16 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + 5e47d6284b * lisp/gnus/mm-encode.el (mm-default-file-encoding): Fix "... + e71c7a7c60 Fix default-directory of buffers visiting files in renamed... + cccaa9c31d Fix a kill-append regression + 33828e4818 * doc/misc/eww.texi (Advanced): Correct outdated info (bug... + e8d2f40f41 Clean up the MSDOS port + 338eda09d8 Fix typo in next-error-find-buffer-function + + # Conflicts: + # doc/misc/eww.texi + +2022-04-16 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + 84a2857722 Fix scrolling of the stack window in Calc + 9dd44505b1 ; * src/window.c (Fset_window_start): Clarify the effect o... + 24a6c7c8c0 Update and fix instructions and scripts for updating the W... + 886339747b Extend tramp-archive-test45-auto-load + ff997ad786 Ensure local `default-directory' in Tramp when needed + 4f27588a16 Clarify "idleness" in the ELisp manual + +2022-04-16 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + aab36e1895 Fix error in tramp-archive-autoload-file-name-handler + 11a1f7817e Merge branch 'emacs-28' of git.sv.gnu.org:/srv/git/emacs i... + 93974198b6 Commit missing file from previous commit + +2022-04-16 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + 8c71ac606e Fix fallout from lexical-binding in vhdl-mode.el + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerated ldefs-boot.el + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Don't leave `C-h N' in a text-mode derived mode + + * lisp/help.el (view-emacs-news): Use emacs-news-view-mode. + * lisp/textmodes/emacs-news-mode.el (emacs-news-view-mode): Split + into own mode to avoid confusion. + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Fix button-buffer-map binding error + + * lisp/button.el (button-buffer-map): Fix error in map rewriting + in previous commit. + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Add new commands to go to headings/sections in the NEWS file + + * lisp/textmodes/emacs-news-mode.el (emacs-news-find-heading) + (emacs-news-goto-section): New commands. + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Add emacs-news-previous-untagged-entry command + + * lisp/textmodes/emacs-news-mode.el + (emacs-news-next-untagged-entry): Allow searching backward. + (emacs-news-previous-untagged-entry): New command and keystroke. + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Fold some too-long NEWS lines + + Do some NEWS tagging + + Do some NEWS tagging + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Improve exif-field discoverability + + * lisp/image/exif.el (exif-parse-file, exif-parse-buffer): Link to + `exif-field'. + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Do some NEWS tagging + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Document project-kill-buffers-display-buffer-list + + * doc/emacs/maintaining.texi (Project Buffer Commands): Mention + project-kill-buffers-display-buffer-list. + + * lisp/progmodes/project.el (project-kill-buffers): Link to + project-kill-buffers-display-buffer-list. + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Document prefix to project-find-file + + * doc/emacs/maintaining.texi (Project File Commands): Mention the + prefix in the project-find-file command. + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Fix glyphless-display-mode indexing + + * doc/lispref/display.texi (Glyphless Chars): Fix indexing. + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Document completions-sort + + * doc/emacs/mini.texi (Completion Options): Document completions-sort. + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Mention completion-wrap-movement in relevant commands + + * lisp/simple.el (previous-completion, next-completion): Mention + `completion-wrap-movement'. + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Document minibuffer-completion-auto-choose/M-up/M-down + + * doc/emacs/mini.texi (Completion Commands): Document + minibuffer-completion-auto-choose/M-up/M-down. + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Further IDNA/proxy url fixes + + * lisp/url/url-http.el (url-http-create-request): Puny-encode + domains (bug#54921). + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Crosslink some buttonize function doc strings + + * lisp/button.el (buttonize-region, buttonize): Crosslink doc + strings for discoverability. + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Improve completion in `C-h R' + + * lisp/info.el (info-display-manual): Use it (bug#54961). + (info--filter-manual-names): Filter away duplicates and irrelevant + files. + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Clarify when mode tagging is used + + * etc/NEWS: Clarify when mode tagging is used (bug#54964). + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Further vcs-cvs/rcs-responsible-p updates from master + + * lisp/vc/vc-bzr.el (vc-bzr-responsible-p): + * lisp/vc/vc-sccs.el (vc-sccs-responsible-p): + * lisp/vc/vc-dav.el (vc-dav-responsible-p): Update doc string. + + * lisp/vc/vc-rcs.el (vc-rcs-responsible-p): + * lisp/vc/vc-cvs.el (vc-cvs-responsible-p): Further fixes from + master. + + * lisp/vc/vc-src.el (vc-src-responsible-p): Return the directory. + + * lisp/vc/vc.el: Update comments. + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Make emacs-news-next-untagged-entry push the mark + + * lisp/textmodes/emacs-news-mode.el + (emacs-news-next-untagged-entry): Push the mark for easier + navigation back to where we were. + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Fix NEWS tag commands + + * lisp/textmodes/emacs-news-mode.el + (emacs-news-next-untagged-entry): Fix logic. + (emacs-news-count-untagged-entries): Add new command and keystroke. + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Clean up emacs-news--buttonize + + * lisp/textmodes/emacs-news-mode.el (emacs-news--buttonize): + Remove unnecessary check left over from previous version. + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Bind TAB and <backtab> on buttons + + * lisp/button.el (button-map): Inherit from 'button-buffer-map'. + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerated ldefs-boot.el + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Add a new mode for editing and viewing the Emacs NEWS file + + * etc/NEWS (mode): Use emacs-news-mode. + * lisp/help.el (view-emacs-news): Use emacs-news-mode. + + * lisp/textmodes/emacs-news-mode.el: New mode for editing and + viewing the Emacs NEWS file. + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Add new function buttonize-region + + * lisp/button.el (buttonize-region): New function. + (button--properties): Factored out. + (buttonize): Use it. + +2022-04-16 Po Lu <luangruo@yahoo.com> + + Prevent race conditions with async input during drag-and-drop + + * src/xterm.c (XTread_socket): Don't read events here during + drag-and-drop, otherwise the right hold_quit might not be used + for selection events. + +2022-04-16 Mattias Engdegård <mattiase@acm.org> + + Fix builds on older versions of macOS + + This adds back macOS-specific code replaced earlier (bug#48548), + specifically to fix build errors on macOS 10.7.5. See discussion at + https://lists.gnu.org/archive/html/emacs-devel/2022-04/msg00779.html . + + * src/sysdep.c (HAVE_RUSAGE_INFO_CURRENT, HAVE_PROC_PIDINFO): New. + (system_process_attributes): Use alternative code or exclude features + when building on older macOS versions. + + (cherry picked from commit 855e15dbf10a6aac42b860fdb28711f979e2bf22) + +2022-04-16 Eli Zaretskii <eliz@gnu.org> + + Improve support for the Brahmi script + + * lisp/language/indian.el ("Brahmi"): New language environment. + Add composition rules for Brahmi. + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Support Brahmi. (Bug#54914) + + * etc/NEWS: Announce the new language environment. + +2022-04-16 Mattias Engdegård <mattiase@acm.org> + + Fix builds on older versions of macOS + + This adds back macOS-specific code replaced earlier (bug#48548), + specifically to fix build errors on macOS 10.7.5. See discussion at + https://lists.gnu.org/archive/html/emacs-devel/2022-04/msg00779.html . + + * src/sysdep.c (HAVE_RUSAGE_INFO_CURRENT, HAVE_PROC_PIDINFO): New. + (system_process_attributes): Use alternative code or exclude features + when building on older macOS versions. + +2022-04-16 Mattias Engdegård <mattiase@acm.org> + + Disable annoying Clang warnings + + * configure.ac (CHECK_LISP_OBJECT_TYPE): Disable + -Wimplicit-const-int-float-conversion and -Wint-in-bool-context, which + currently only have false positives. + +2022-04-16 Lars Ingebrigtsen <larsi@gnus.org> + + Fix ODF file detection in doc-view-mode + + * lisp/doc-view.el (doc-view-set-doc-type): Fix ODF file detection + (bug#54947). + +2022-04-16 Po Lu <luangruo@yahoo.com> + + Fix build with toolkit scroll bars without XI2 + + * src/xterm.c (mark_xterm): Fix up ifdefs slightly. + +2022-04-16 Po Lu <luangruo@yahoo.com> + + Protect windows from garbage collection when a ClientMessage is pending + + * src/xterm.c (x_protect_window_for_callback) + (x_unprotect_window_for_callback): New functions. + (x_send_scroll_bar_event): Protect windows from garbage + collection before sending event containing pointer to window. + (handle_one_xevent): Unprotect after such a ClientMessage is + received and the window put in the keyboard buffer. + (x_term_init): Initialize protected windows list. + (x_delete_display): Free that list. + (mark_xterm): Mark the windows in that list. + * src/xterm.h (struct x_display_info): New fields for recording + a list of protected windows. + +2022-04-16 Eli Zaretskii <eliz@gnu.org> + + Fix documentation of Outline minor mode options + + * lisp/outline.el (outline-minor-mode-cycle-filter) + (outline-minor-mode-cycle, outline-minor-mode-highlight) + (outline-cycle, outline-cycle-buffer): Doc fixes. (Bug#54967) + +2022-04-16 Po Lu <luangruo@yahoo.com> + + Add some missing multilingual keys to Haiku + + * src/haiku_support.cc (keysym_from_raw_char): Support keys + found on some East Asian keyboards. + +2022-04-15 Po Lu <luangruo@yahoo.com> + + Handle errors getting selection ownership when starting DND + + * src/xterm.c (x_clear_dnd_targets): New function. + (x_dnd_begin_drag_and_drop): Handle errors in `x_own_selection'. + +2022-04-15 Eli Zaretskii <eliz@gnu.org> + + Improve discoverability of 'insert-directory-program' + + * lisp/files.el (insert-directory-program): Mention 'dired' in the + doc string. + * lisp/dired.el (dired): Mention 'insert-directory-program' in the + doc string. (Bug#54962) + +2022-04-15 Philip Kaludercic <philipk@posteo.net> + + Improve buffer-match-p documentation + + * doc/lispref/windows.texi (Choosing Window): Document that + buffer-match-p is used by display-buffer-alist. + * etc/NEWS: Mention buffer-match-p and match-buffers. + * lisp/window.el (display-buffer-alist): Update documentation as for + display-buffer-assq-regexp. + (display-buffer-assq-regexp): Rename buffer-name to buffer-or-name. + (display-buffer): Pass the buffer directly to + display-buffer-assq-regexp,. + +2022-04-15 Troels Henriksen <athas@sigkill.dk> (tiny change) + + Add out-of-box support for futhark lsp server + + * eglot.el (eglot-server-programs): Support futhark lsp. + * README.md: Update. + * NEWS.md: Update. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/922 + +2022-04-15 Philip Kaludercic <philipk@posteo.net> + + Add rcirc-cycle-completion-flag + + * doc/misc/rcirc.texi: Document new option. + * lisp/net/rcirc.el (rcirc-cycle-completion-flag): Add new option. + (rcirc-mode): Respect new option. + +2022-04-15 Po Lu <luangruo@yahoo.com> + + Fix default registry of Haiku font backend + + * src/haiku_support.h (struct haiku_zoom_event): Fix coding + style. + (enum haiku_font_specification): Move FSPECs over here. + * src/haikufont.c (haikufont_apply_registry) + (haikufont_get_fallback_entity, haikufont_pattern_to_entity) + (haikufont_spec_or_entity_to_pattern, haikufont_list): Use + `iso10646-1' as the default registry instead of `utf8', which is + not a registry. + +2022-04-15 Lars Ingebrigtsen <larsi@gnus.org> + + Enable dragging resizing final column in vtable + + * lisp/emacs-lisp/vtable.el (vtable--insert-line): Insert the + divider after the final column, too, so that the size can be + dragged. + +2022-04-15 Po Lu <luangruo@yahoo.com> + + Clean up keysyms from Haiku headers + + * src/haiku_support.cc (keysym_from_raw_char): Add keysym + numbers here and use those instead. + * src/haiku_support.h: Delete all the X11 keysym definitions. + +2022-04-15 Lars Ingebrigtsen <larsi@gnus.org> + + Add some mouse-face bits to vtable + + * lisp/emacs-lisp/vtable.el (make-vtable) + (vtable--insert-header-line): Put mouse-face on draggable bits. + +2022-04-15 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak sorting indicator placement in vtable + + * lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Tweak + sorting indicator position. + +2022-04-15 Lars Ingebrigtsen <larsi@gnus.org> + + Make the sorting indicator prettier in vtable + + * lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Place + the sorting indicator flush right in the heading. + +2022-04-15 Po Lu <luangruo@yahoo.com> + + Fix dismissal of tooltips on Haiku + + * src/haikuterm.c (haiku_mouse_or_wdesc_frame): New argument + `accept_tooltip'. + (haiku_read_socket): Use it when handling MOUSE_MOTION events. + +2022-04-15 Lars Ingebrigtsen <larsi@gnus.org> + + Allow using faces for colors in vtable + + * doc/misc/vtable.texi (Making A Table): Adjust color documentation. + * lisp/emacs-lisp/vtable.el (make-vtable): Mix more. + (vtable--compute-colors): Mix both foreground and background colors. + (vtable--make-color-face, vtable--face-blend): New functions. + (vtable--insert-line): Adjust usage. + +2022-04-15 Lars Ingebrigtsen <larsi@gnus.org> + + Allow dragging the divider in vtable + + * lisp/emacs-lisp/vtable.el (vtable): Add a keymap cache. + (make-vtable): Allow dragging the divider. + (vtable-insert): Don't put the table keymap over the entire line + -- avoid the divider, which has its own keymap. + (vtable--drag-resize-column): Adjust to the in-buffer divider + dragging. + +2022-04-15 Lars Ingebrigtsen <larsi@gnus.org> + + Fix off-by-one error in text-property-search-backward + + * lisp/emacs-lisp/text-property-search.el + (text-property-search-backward): Fix off-by-one error -- this + would result in not finding the previous (non-)match when at the + first character in a field. + +2022-04-15 Eli Zaretskii <eliz@gnu.org> + + Fix cursor motion under truncate-lines with Flymake fringe indicator + + * src/indent.c (Fvertical_motion): Don't consider fringe bitmaps + as "images" for the purpose of vertical-motion logic dealing with + overshooting buffer positions. (Bug#54946) + +2022-04-15 Po Lu <luangruo@yahoo.com> + + More PGTK related cleanup + + * src/pgtkfns.c (x_set_foreground_color, x_set_background_color) + (x_set_border_color, x_set_cursor_color, x_set_title) + (x_set_menu_bar_lines, x_set_tab_bar_lines, x_set_tool_bar_lines) + (x_set_child_frame_border_width, x_set_internal_border_width) + (x_set_icon_type, x_set_icon_name, x_set_cursor_type) + (x_set_mouse_color, x_set_undecorated, x_set_skip_taskbar) + (x_set_override_redirect, pgtk_frame_parm_handlers) + (Fx_create_frame): Rename most `x_' functions to `pgtk_' ones. + All callers changed. + * src/pgtkmenu.c (Fx_menu_bar_open_internal): Remove duplicate + doc string definition. + * src/pgtkterm.c (x_set_offset, pgtk_iconify_frame) + (x_set_parent_frame, x_set_no_focus_on_map, x_set_no_accept_focus) + (x_set_z_group, x_set_cursor_gc, x_set_mouse_face_gc) + (x_set_mode_line_face_gc, x_set_glyph_string_gc) + (x_set_glyph_string_clipping, x_set_glyph_string_clipping_exactly) + (x_setup_relief_color, x_setup_relief_colors) + (x_set_clip_rectangles, x_draw_relief_rect, x_draw_box_rect) + (x_draw_glyph_string_box, x_draw_image_relief) + (x_draw_image_foreground, x_draw_stretch_glyph_string) + (pgtk_draw_glyph_string, x_set_toolkit_scroll_bar_thumb) + (x_set_toolkit_horizontal_scroll_bar_thumb) + (pgtk_set_vertical_scroll_bar, pgtk_set_horizontal_scroll_bar) + (x_set_frame_alpha, frame_highlight, frame_unhighlight) + (pgtk_create_terminal, map_event): Rename most `x_' functions to + `pgtk_' ones. All callers changed. + * src/pgtkterm.h: Update prototypes. + +2022-04-15 Po Lu <luangruo@yahoo.com> + + Clean up some extraneous stuff in pgtkfns.c + + * src/pgtkfns.c (Fx_gtk_debug): Fix doc string and remove extra + version check. + (syms_of_pgtkfns): Delete left over defvar from NS port. + +2022-04-15 Philip Kaludercic <philipk@posteo.net> + + Update project-kill-buffer-conditions to match buffer-match-p + + * project.el (project-kill-buffer-conditions): Document the + deprecation of the use of derived-mode + (project--buffer-check): Have `major-mode' behave like `derived-mode' + did previously, and issue a warning of `derived-mode' is used. + +2022-04-15 Philip Kaludercic <philipk@posteo.net> + + * window.el (display-buffer-assq-regexp): Use buffer-match + +2022-04-15 Philip Kaludercic <philipk@posteo.net> + + Generalize buffer matching from project.el + + * subr.el (buffer-match): Add function to check if a buffer satisfies + a condition. + (match-buffers): Returns all buffers that satisfy a condition. + +2022-04-15 Po Lu <luangruo@yahoo.com> + + Fix core string lookup with modifiers on XI2 + + * src/xterm.c (handle_one_xevent): Clean modifiers from + xkey.state before giving it to XLookupString. + +2022-04-15 Po Lu <luangruo@yahoo.com> + + Clean up various bits of Haiku code + + * src/haiku_font_support.cc (BFont_string_width): Delete unused + function. + * src/haiku_support.cc (BWindow_new): Clean up type of `view'. + (BWindow_quit): Clean up coding style. + (BView_mouse_down, BView_mouse_up, BView_mouse_moved): Delete + unused functions. + (unwind_popup_file_dialog): Clean up coding style. + (be_popup_file_dialog_safe_set_target): Delete function. + (be_popup_file_dialog): Improve code clarity. + * src/haiku_support.h: Fix coding style. + * src/haikufns.c (haiku_get_color, haiku_display_info_for_name) + (check_haiku_display_info, Fhaiku_read_file_name) + (Fx_display_save_under, Fhaiku_frame_restack): Remove references + to "Be displays" and replace them with "Haiku displays". + * src/haikuselect.h: Clean up coding style. + * src/haikuterm.c (haiku_read_socket): Clean up coding style and + fix a few latent bugs. + +2022-04-15 Po Lu <luangruo@yahoo.com> + + Add missing extern declarations to headers + + * src/xterm.h (xi_device_from_id, xi_frame_selected_for): Add + `extern' declaration. + +2022-04-14 Po Lu <luangruo@yahoo.com> + + Make Haiku scroll bar behave more like other programs + + * haiku_support.cc (class EmacsScrollBar): New field + `repeater_start'. + (Pulse): Wait for time to pass repeater_delay. + (MouseDown): Set it to the current time + the system repeater + delay. + +2022-04-14 Paul Eggert <eggert@cs.ucla.edu> + + Port new tests to leap seconds or (TICKS . HZ) + + * test/lisp/mail/ietf-drums-date-tests.el (ietf-drums-date-tests): + Don’t assume leap seconds are ignored, or that timestamps are in + (HI LO) format. + +2022-04-14 Paul Eggert <eggert@cs.ucla.edu> + + New time-equal-p test + + * test/src/timefns-tests.el (time-equal-p-NaN-NaN): New test. + +2022-04-14 Po Lu <luangruo@yahoo.com> + + Properly wait for app thread exit on Haiku + + * src/haiku_support.cc (MessageReceived): Handle + QUIT_APPLICATION. + (start_running_application): Clean up code a little. + (wait_for_exit_of_app_thread): New function. + (BApplication_setup): Add atexit handler to clean up app thread. + (be_app_quit): Delete function. + * src/haikuterm.c (haiku_delete_terminal): Un-implement + function. + * src/haikuterm.h: Update prototypes. + +2022-04-14 Po Lu <luangruo@yahoo.com> + + Fix calls to XKB functions without testing for server support + + * src/xterm.c (x_dnd_cleanup_drag_and_drop): + (x_dnd_begin_drag_and_drop): Never call XkbSelectEvents if the + X server doesn't have XKB. + +2022-04-14 Lars Ingebrigtsen <larsi@gnus.org> + + Allow dragging dividers in vtable + + * lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Allow + dragging dividers. + (vtable--drag-resize-column): Adjust function. + +2022-04-14 Eli Zaretskii <eliz@gnu.org> + + Fix mouse clicks in hscrolled window with variable-height fonts + + * src/xdisp.c (move_it_in_display_line_to): Fix calculation of + height of a screen-line that is completely hscrolled out of view. + Reported by Yasushi SHOJI <yasushi.shoji@gmail.com>. + +2022-04-14 Lars Ingebrigtsen <larsi@gnus.org> + + Allow resizing vtable columns by dragging + + * lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Allow + resizing by dragging headers. + (vtable--drag-resize-column): New function. + (vtable-narrow-current-column): Refactor out common bits. + (vtable--alter-column-width): To here. + (vtable-widen-current-column): Rewrite to use + vtable-narrow-current-column. + +2022-04-14 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/gnus/gnus.el (toplevel autoloads): Fix file name + + `score-mode` does not define `gnus-score-edit-all-score`, it's defined + in `gnus-score` instead. + +2022-04-14 Philip Kaludercic <philipk@posteo.net> + + Have submit-emacs-patch prompt for patch file before subject + + * emacsbug.el (submit-emacs-patch): Prompt for patch file and use that + to guess the subject. + +2022-04-14 Philip Kaludercic <philipk@posteo.net> + + Avoid possibly unnecessary lisp_time_struct call + + * timefns.c (time_cmp): Defer the calculation of the time struct, in + case A and B are eq to one another. + +2022-04-14 Lars Ingebrigtsen <larsi@gnus.org> + + Handle non-ASCII domains correctly in url-https-proxy-connect + + * lisp/url/url-http.el (url-https-proxy-connect) + (url-https-proxy-after-change-function): Handle IDNA domains + correctly. + +2022-04-14 Lars Ingebrigtsen <larsi@gnus.org> + + Make vtable remember user-altered column widths + + * lisp/emacs-lisp/vtable.el (vtable-narrow-current-column) + (vtable-widen-current-column): Store the size to that it's + respected on `g'. + +2022-04-14 Lars Ingebrigtsen <larsi@gnus.org> + + Ensure that commands like { work on all frames in vtable + + * lisp/emacs-lisp/vtable.el (vtable--recompute-cache) + (vtable--ensure-cache): New functions. + (vtable-insert): Use it. + (vtable--widths): Ditto. + +2022-04-14 Filipp Gunbin <fgunbin@fastmail.fm> + + ldap-search-internal cleanup + + * lisp/net/ldap.el (ldap-ldapsearch-args): Change -LL to -LLL to + suppress ldif version output. + (ldap-search-internal): Remove skipping of version output. Remove + redundant ws skipping. + +2022-04-14 Filipp Gunbin <fgunbin@fastmail.fm> + + Fix eudc-get-attribute-list + + * lisp/net/eudc-vars.el (eudc-ldap-no-wildcard-attributes): New + defcustom. + * doc/misc/eudc.texi (LDAP Configuration): Mention it. + * lisp/net/eudcb-ldap.el (eudc-ldap-format-query-as-rfc1558): Use it. + (eudc-ldap-get-field-list): Set scope and sizelimit, instead of + overriding the whole ldap-host-parameters-alist. + * lisp/net/ldap.el (ldap-search-internal): Allow "size limit exceeded" + exit code. Allow empty attribute values. + +2022-04-14 Nobuyoshi Nakada <nobu.nakada@gmail.com> + + Fix electric-help-map problem when help-char has meta-prefix + + * lisp/ehelp.el (electric-help-map): Fix problem when help-char + has meta-prefix (bug#54932). + +2022-04-14 Lars Ingebrigtsen <larsi@gnus.org> + + Make all vc-*-responsible-p functions return a string + + * lisp/vc/vc-sccs.el (vc-sccs-responsible-p): + * lisp/vc/vc-rcs.el (vc-rcs-responsible-p): + * lisp/vc/vc-dav.el (vc-dav-responsible-p): + * lisp/vc/vc-cvs.el (vc-cvs-responsible-p): Return a file name + instead of t when we get a match (which is what + vc-backend-for-registration expects) (bug#51800). + + This fixes the regression reported in bug#54935. + + Do not merge to master. + +2022-04-14 Po Lu <luangruo@yahoo.com> + + Fix races with child frame locks on Haiku + + * src/haiku_support.cc + (CHILD_FRAME_LOCK_INSIDE_LOOPER_CALLBACK): New macro. + (FrameMoved, WorkspacesChanged): Lock child frame data with that + macro instead. + +2022-04-14 Po Lu <luangruo@yahoo.com> + + Keep track of keyboard state during drag and drop + + * src/xterm.c (x_dnd_cleanup_drag_and_drop): Deselect for + keyboard state changes. + (x_dnd_begin_drag_and_drop): Select for keyboard state changes + when XKB is available. + (x_dnd_update_state, handle_one_xevent): Use current XKB state + if it is available. + (x_term_init): Reformat code a little. + +2022-04-14 Po Lu <luangruo@yahoo.com> + + Minor fixes to menus on XI2 + + * src/xfns.c (Fx_create_frame): Populate `xi_masks'. + * src/xmenu.c (x_activate_menubar) + (create_and_show_popup_menu, x_menu_show): Only clear input + extension grabs if we (or the toolkit) actually selected for + XI_ButtonPress events. + * src/xterm.c (xi_frame_selected_for): New function. + (xi_populate_device_from_info, handle_one_xevent): Store device + use instead of just whether or not it's a master device. + (x_dnd_begin_drag_and_drop): Clean up block_input stuff. + * src/xterm.h: Update prototypes. + (struct xi_device_t): Rename `master_p' to `use'. + +2022-04-14 Eli Zaretskii <eliz@gnu.org> + + Describe problems with invoking Python on MS-Windows + + * etc/PROBLEMS: Describe problems with running an inferior Python + interpreter due to the MS-Windows "App Execution Aliases" feature. + (Bug#54860) + +2022-04-13 Po Lu <luangruo@yahoo.com> + + Ignore XdndPosition events triggered by the wrong mouse button + + * src/xterm.c (x_dnd_send_position): Don't send if button is set + but not a scroll wheel button. + +2022-04-13 Po Lu <luangruo@yahoo.com> + + Add support for Xdnd features introduced after version 5 + + * src/xterm.c (x_dnd_send_position, x_dnd_update_state) + (handle_one_xevent): Add support for sending button and keyboard + state during DND. + +2022-04-13 Lars Ingebrigtsen <larsi@gnus.org> + + Fix describe-mode--minor-modes formatting issue + + * lisp/help-fns.el (describe-mode--minor-modes): Fix multi-line + local-minor paragraph. + +2022-04-13 Lars Ingebrigtsen <larsi@gnus.org> + + Make vtable narrow/widen functions take a prefix + + * lisp/emacs-lisp/vtable.el (vtable-narrow-current-column) + (vtable-widen-current-column): Allow using the prefix to say how + much to narrow/widen the columns. + +2022-04-13 Lars Ingebrigtsen <larsi@gnus.org> + + Copy edit make-vtable code + + * lisp/emacs-lisp/vtable.el (make-vtable): Clean up code slightly. + +2022-04-13 Lars Ingebrigtsen <larsi@gnus.org> + + Edit some vtable doc strings + + * lisp/emacs-lisp/vtable.el (make-vtable, vtable): Improve doc + strings. + +2022-04-13 Lars Ingebrigtsen <larsi@gnus.org> + + Further divider fixes for vtable + + * lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Don't + insert the divider at the end. + (vtable-narrow-current-column, vtable-widen-current-column): Don't + error out when being called on the divider. + +2022-04-13 Lars Ingebrigtsen <larsi@gnus.org> + + Restore vtable.texi lines removed by accident + + * doc/misc/vtable.texi (Introduction): Restore lines inadvertently + removed. + +2022-04-13 Lars Ingebrigtsen <larsi@gnus.org> + + Fix dividers in vtable header lines + + * lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Put the + divider in the correct place in the header line. + +2022-04-13 Lars Ingebrigtsen <larsi@gnus.org> + + Allow having dividers between columns in vtable + + * doc/misc/vtable.texi (Making A Table): Document it. + * lisp/emacs-lisp/vtable.el (vtable): Add a divider slot. + (make-vtable): Accept :divider and :divider-width arguments. + (vtable--insert-line, vtable--insert-header-line): Display the + divider. + +2022-04-13 Sean Whitton <spwhitton@spwhitton.name> + + Document additions of cl-with-gensyms and cl-once-only + + * NEWS: Document additions of cl-with-gensyms and cl-once-only. + * doc/misc/cl.texi (Macro-Writing Macros): New section. + (Creating Symbols): Add to the concept index under the name "gensym". + (Obsolete Setf Customization): Use cl-once-only rather than + macroexp-let2, and fix a quotation bug in one example. + +2022-04-13 Lars Ingebrigtsen <larsi@gnus.org> + + Allow putting alternating colors on vtable rows + + * doc/misc/vtable.texi (Making A Table): Document it. + * lisp/emacs-lisp/vtable.el (vtable): Add :row-colors. + (make-vtable): Ditto. + (vtable--compute-colors, vtable--color-blend): New functions. + (vtable--insert-line): Take a line number argument and adjust + callers. + +2022-04-13 Lars Ingebrigtsen <larsi@gnus.org> + + Make `C-h m' actually output the documentation for the major mode + + * lisp/help-fns.el (describe-mode): Get the documentation for the + correct major mode. + +2022-04-13 Lars Ingebrigtsen <larsi@gnus.org> + + Add a new `vtable' face + + * doc/misc/vtable.texi (Introduction): Document it. + + * lisp/emacs-lisp/vtable.el (vtable): Add a new face. + +2022-04-13 Juri Linkov <juri@linkov.net> + + * lisp/comint.el (comint-dynamic-list-input-ring): Keep replaced text props. + + * lisp/minibuffer.el (completions-header-format): Remove unused text prop. + +2022-04-13 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerated ldefs-boot.el + +2022-04-13 Michael Albinus <michael.albinus@gmx.de> + + Adapt Tramp manual + + * doc/misc/tramp.texi (Ssh setup): New subsection "Using ssh + config include for host name completion". (Bug#54885) + Precise, that list-system-processes and process-attributes are + about system processes. + +2022-04-13 Lars Ingebrigtsen <larsi@gnus.org> + + Add support for column background colors in vtable + + * doc/misc/vtable.texi (Making A Table): Document it. + + * lisp/emacs-lisp/vtable.el (vtable): Add a column color element. + (make-vtable): Use it. + (vtable--insert-line): Insert the colors here. + +2022-04-13 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + +2022-04-13 Lars Ingebrigtsen <larsi@gnus.org> + + Fix format-seconds error in previous change + + * lisp/calendar/time-date.el (format-seconds): Fix zero elision + when using fractional seconds. + +2022-04-13 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + # Conflicts: + # etc/NEWS + # lisp/desktop.el + # lisp/dired.el + +2022-04-13 Lars Ingebrigtsen <larsi@gnus.org> + + Make list-times not include zero elements + + * doc/lispref/os.texi (Time Parsing): Mention %x. + * lisp/calendar/time-date.el (format-seconds): Accept a new %x + spec that removes trailing zeros (bug#54904). + + * lisp/emacs-lisp/timer-list.el (list-timers): Don't display + trailing zero bits. + +2022-04-13 Eli Zaretskii <eliz@gnu.org> + + A better fix for bug#54800 + + * lisp/calc/calc.el (calc-align-stack-window): Improve scrolling + when windows have non-integral dimensions. + +2022-04-13 Po Lu <luangruo@yahoo.com> + + Move raw event selection on GTK+ 2 to a more appropriate place + + * src/xfns.c (setup_xi_event_mask): Stop selecting for + RawKeyPress on the root window. + * src/xterm.c (x_new_focus_frame): Select here instead, once a + frame becomes focused. + +2022-04-13 Po Lu <luangruo@yahoo.com> + + Fix marking upgrades for packages from ELPA or NonGNU ELPA + + * lisp/emacs-lisp/package.el (package-menu--find-upgrades): Look + inside ``external'' packages as well when searching for + upgrades. (bug#54117) + +2022-04-13 Po Lu <luangruo@yahoo.com> + + Fix input availability detection during visible-bell + + * src/xterm.c (XTflash): Exit pselect loop also if input becomes + available on f's display connection. + +2022-04-13 Po Lu <luangruo@yahoo.com> + + Minor cleanups to Haiku windowing + + * src/haikufns.c (haiku_create_frame, haiku_create_tip_frame): + * src/haikuterm.h (struct haiku_output, struct scroll_bar) + (XSCROLL_BAR): Remove used fields of various structs. + + * src/haikuterm.c (haiku_flash): Make input detection actually + work. + +2022-04-13 Po Lu <luangruo@yahoo.com> + + Fix zoom rect computation for some deskbar positions on Haiku + + * src/haiku_support.cc (CalculateZoomRect): Fix computation for + left top and right bottom. + +2022-04-13 Lars Ingebrigtsen <larsi@gnus.org> + + Add a comment about cl-concatenate + + * lisp/emacs-lisp/cl-extra.el (cl-concatenate): Add a comment. + +2022-04-13 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "Make cl-concatenate an alias of seq-concatenate" + + This reverts commit 78f76fe16e2737b40694f82af28d17a90a21ed7b. + + The commit made calls to cl-concatenate bug out, since + autoloading defaliases doesn't work very well (bug#54901). + +2022-04-12 Po Lu <luangruo@yahoo.com> + + Fix last change in configure.ac + + * configure.ac: Test window system against "x11", not "x". + +2022-04-12 Po Lu <luangruo@yahoo.com> + + Bump minimum GTK for PGTK builds + + * configure.ac: Require GTK 3.20 or later if building with PGTK. + It has already been required for some time now, but the + requirement was not reflected in the configure script. + + * src/pgtkterm.c (pgtk_any_window_to_frame): Remove version + check. + +2022-04-12 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak how `M-q' in emacs-lisp-mode works + + * lisp/emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Only fill as + strings inside strings (bug#31656). + (lisp--fill-line-simple): New function to do simple sexp-based + filling. + +2022-04-12 Po Lu <luangruo@yahoo.com> + + Clean up PGTK code more + + * src/pgtkterm.c (STORE_KEYSYM_FOR_DEBUG): Delete macro. + (x_find_modifier_meanings): Delete function. + (get_modifier_values, pgtk_gtk_to_emacs_modifiers) + (pgtk_emacs_to_gtk_modifiers): Use GDK's own modifier mask + constants instead of detecting our own from the keymap. This + does mean a specific "meta" key will no longer be detected on X + Windows, but that interface doesn't exist on Wayland, and X + users should use the X port anyway. + (key_press_event): Avoid decoding input text. + (pgtk_term_init): Stop computing modifiers. + (syms_of_pgtkterm): Delete obsolete comment. + * src/pgtkterm.h (struct pgtk_display_info): Delete modifier + masks. + +2022-04-12 Po Lu <luangruo@yahoo.com> + + Remove unused flag on Haiku + + * src/haikufns.c (haiku_create_frame, haiku_create_tip_frame): + * src/haikuterm.h (struct haiku_output): Delete mentions of + `explicit_parent'. + +2022-04-12 Po Lu <luangruo@yahoo.com> + + Fix bit rot in the XEmbed code + + * src/xterm.c (x_term_init): Delete unused atom. + (handle_one_xevent): + (x_make_frame_visible): Handle embedded frame visibility + correctly. + * src/xterm.h (struct x_display_info): Delete unused atom. + +2022-04-12 Lars Ingebrigtsen <larsi@gnus.org> + + Add NEWS entry for `C-h m' change + +2022-04-12 Lars Ingebrigtsen <larsi@gnus.org> + + Redo `C-h m' output + + * lisp/help-fns.el (describe-mode--minor-modes): New function + (bug#2473). + (describe-mode): Rewritten to include local minor mode links first, + then the major mode, and then global minor mode links, and then + all the minor modes. + +2022-04-12 Lars Ingebrigtsen <larsi@gnus.org> + + Make `describe-mode' include a link to the major mode function + + * lisp/help-fns.el (describe-mode): Add a link to the mode + function so that the user can go to the manual more easily + (bug#575). + +2022-04-12 Po Lu <luangruo@yahoo.com> + + Fix freezes when trying to accelerate menu bar on Haiku + + * src/haiku_support.cc (class EmacsWindow): New field + `menus_begun'. + (MenusBeginning): Don't send menu bar open events when that is + set, instead set it to true. + (BMenuBar_start_tracking): Stop locking the menu bar here and + send a special BE_MENU_BAR_OPEN event instead. + * src/haiku_support.h (struct haiku_menu_bar_state_event): + Delete field `no_lock'. + * src/haikumenu.c (Fhaiku_menu_bar_open): + * src/haikuterm.c (haiku_read_socket): Update accordingly. + +2022-04-12 Lars Ingebrigtsen <larsi@gnus.org> + + Provide a useful default to smime-CA-file + + * lisp/gnus/smime.el (smime-CA-file): Use `gnutls-trustfiles' to + provide a default so that this will work automatically on many + systems (bug#20960). + +2022-04-12 Lars Ingebrigtsen <larsi@gnus.org> + + Make the SVG error message less verbose + + * src/image.c (svg_load_image): Don't include the spec in the + error message, because this is commonly the entire SVG string, and + this will fill up the *Messages* buffer quickly. + +2022-04-12 Lars Ingebrigtsen <larsi@gnus.org> + + Mention animated WebP images + +2022-04-12 Sean Whitton <spwhitton@spwhitton.name> + + Fix eager macroexpansion cycle in cl-once-only + + * lisp/emacs-lisp/cl-macs.el (cl-once-only): Use different cl-loop + syntax, with no functional change, but such that the loop does not + expand into cl-psetq. + +2022-04-12 Lars Ingebrigtsen <larsi@gnus.org> + + Improve DISPOSE_PREVIOUS in gif_load slightly + + * src/image.c (gif_load): Tweak how DISPOSE_PREVIOUS is handled. + It's still not right, but it's less glaringly wrong. + +2022-04-12 Eli Zaretskii <eliz@gnu.org> + + Fix 'window-text-pixel-size' when starting from a display property + + * src/xdisp.c (Fwindow_text_pixel_size): Handle the case where + there's a display property at START and 'move_it_to' overshoots. + (Bug#54862) + +2022-04-12 Lars Ingebrigtsen <larsi@gnus.org> + + Fix webp_load data lifetime issues + + * src/image.c (webp_load): Take care of lifetime issues of the + image data we're iterating over for animated images. + +2022-04-12 Eli Zaretskii <eliz@gnu.org> + + Fix 'window-text-pixel-width' when starting from display property + + * src/xdisp.c (Fwindow_text_pixel_size): Handle the case where + there's a display property at START, and move_it_to overshoots. + Do not merge to master. (Bug#54862) + +2022-04-12 Po Lu <luangruo@yahoo.com> + + Fix keyboard event device attribution on GTK+ 2 + + * src/xfns.c (setup_xi_event_mask): Select for raw keypress + events on GTK 2. + * src/xterm.c (handle_one_xevent): Set pending keystroke time + when a raw event is received. + * src/xterm.h (struct x_display_info): New flag + `pending_keystroke_time_special_p'. + +2022-04-12 Po Lu <luangruo@yahoo.com> + + Fix detection of Meta key in some cases + + * src/xterm.c (x_find_modifier_meanings): Set found_meta_p + correctly. + +2022-04-12 Lars Ingebrigtsen <larsi@gnus.org> + + Fix check for whether frames fit into gif images + + * src/image.c (gif_load): Really check all frames that they fit. + +2022-04-12 Po Lu <luangruo@yahoo.com> + + Fix some confusing names in xterm.c + + * src/xterm.c (enum xm_targets_table_byte_order): Rename to + `xm_byte_order'. All uses changed. + +2022-04-12 Lars Ingebrigtsen <larsi@gnus.org> + + Store less data in the gif animation cache + + * src/image.c (gif_load): Only start a cache if we're have an + :index entry (which means that we're trying to animate something). + +2022-04-12 Po Lu <luangruo@yahoo.com> + + Fix clicking on files in Dired when drag is enabled + + * lisp/dired.el (dired-mouse-drag): Don't drag if the mouse + didn't move far enough. + +2022-04-12 Lars Ingebrigtsen <larsi@gnus.org> + + Release resources in gif_load on errors + + * src/image.c (webp_load): Clean up code slightly. + (gif_load): Really release resources on GIF parsing errors. + +2022-04-12 Lars Ingebrigtsen <larsi@gnus.org> + + Animate GIF images that don't have an explicit delay setting + + * src/image.c (gif_load): Use the default delay for GIF images + that don't explicitly state a delay. + +2022-04-12 Olaf Trygve Berglihn <olafb@pvv.org> (tiny change) + + Add biblatex alias entry types for compatibility with bibtex + + * lisp/textmodes/bibtex.el (bibtex-biblatex-entry-alist): Add + biblatex alias entry types for compatibility with bibtex (bug#54877). + +2022-04-12 Lars Ingebrigtsen <larsi@gnus.org> + + Fix thinko in the anim cache + + * src/image.c (gif_load): Fix resetting the cache when we're out + of sync. + (anim_create_cache): Start from zero, not 1. + +2022-04-12 Po Lu <luangruo@yahoo.com> + + Disallow drag and drop inside a menu-entry + + * src/xterm.c (x_dnd_cleanup_drag_and_drop): Always free DND + targets even if waiting for finish. + (x_dnd_begin_drag_and_drop): Free targets correctly when + signaling error and prevent activating drag-and-drop inside a + menu or popup. (It doesn't work.) + +2022-04-12 Michael Albinus <michael.albinus@gmx.de> + + Adapt macOS defaults in Tramp's process-attributes implementation + + * doc/misc/tramp.texi (Remote processes): + Mention tramp-connection-local-darwin-ps-* constants. + + * lisp/net/tramp-integration.el + (tramp-connection-local-darwin-ps-variables): Fix docstring. + (top): Simplify setting local profiles. + + * test/lisp/net/tramp-tests.el (tramp-test31-list-system-processes) + (tramp-test31-process-attributes): New tests. + +2022-04-12 Filipp Gunbin <fgunbin@fastmail.fm> + + process-attributes-ps-args / process-attributes-ps-format for Darwin + + * lisp/net/tramp-integration.el + (tramp-darwin-process-attributes-ps-args) + (tramp-darwin-process-attributes-ps-format) + (tramp-connection-local-darwin-ps-variables): New defconsts. Add + them to connection-local variables. Preset default "ps" profile + for Darwin. + +2022-04-12 Sean Whitton <spwhitton@spwhitton.name> + + Add two classic Common Lisp macro-writing macros + + * lisp/emacs-lisp/cl-macs.el (cl-with-gensyms, cl-once-only): New macros. + +2022-04-12 Po Lu <luangruo@yahoo.com> + + Fix some DISPLAY variable related bugs on PGTK + + * src/callproc.c (getenv_internal, make_environment_block): + Don't set DISPLAY on non-X GDK backends. (bug#54844) + +2022-04-12 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (frame_set_mouse_pixel_position): Avoid server grab. + +2022-04-11 Po Lu <luangruo@yahoo.com> + + Don't use native image APIs for some types on Haiku + + * src/haikuimage.c (haiku_can_use_native_image_api): Ignore + types with animations when their respective libraries are + present. + +2022-04-11 Po Lu <luangruo@yahoo.com> + + Fix last tool bar bug on Haiku as well + + * src/haikuterm.c (haiku_read_socket): Adapt last change to + Haiku. + +2022-04-11 Po Lu <luangruo@yahoo.com> + + Fix selecting text and releasing the mouse buttons above the toolbar + + * src/xterm.c (handle_one_xevent): Don't send ButtonRelease + events to tool bars if there is no selected tool bar item. + +2022-04-11 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/macroexp.el (macroexp-let2*): Allow common shorthand + + * lisp/gnus/mm-encode.el (mm-default-file-encoding): Fix "when" arg + +2022-04-11 Paul Eggert <eggert@cs.ucla.edu> + + Use preferred chars among duplicates as per UTR#25 §25. + +2022-04-11 Juri Linkov <juri@linkov.net> + + * lisp/minibuffer.el (minibuffer-completion-auto-choose): New defcustom. + + (minibuffer-choose-previous-completion) + (minibuffer-choose-next-completion): Remove commands. + (minibuffer-local-completion-map): Remove keybindings of + minibuffer-choose-next-completion and minibuffer-choose-previous-completion. + Use them for minibuffer-next-completion and minibuffer-previous-completion. + * lisp/simple.el (minibuffer-local-shell-command-map): Idem. + +2022-04-11 Lars Ingebrigtsen <larsi@gnus.org> + + Make normal image caching actually work when doing animated images + + * src/image.c (filter_image_spec): New function. + (uncache_image): Use it. + (lookup_image): Ditto. + (syms_of_image): Define some keywords. + +2022-04-11 Lars Ingebrigtsen <larsi@gnus.org> + + Make more IPV6 domains non-suspicious in textsec + + * lisp/international/textsec.el (textsec--ipvx-address-p): Make + more IPV6 domains non-suspicious. + +2022-04-11 Lars Ingebrigtsen <larsi@gnus.org> + + Make gif_load work across architectures again + + * src/image.c (gif_load): Invert the way animated pixmaps are + created: Work on the cached computed-so-far pixmap, and then copy + the entire thing to the ximg with PUT_PIXEL at the end. This + should work across platforms, which the previous version didn't. + +2022-04-11 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "; * src/image.c (gif_load): Fix compilation error on MS-Windows." + + This reverts commit a715f2fbe70bb4cbb961e82af95e2965030b4513. + + This is fixed in a different way in a subsequent commit. + +2022-04-11 Mattias Engdegård <mattiase@acm.org> + + Recognize hybrid IPv6/IPv4 addresses in textsec (bug#54624) + + * lisp/international/textsec.el (textsec--ipvx-address-p): + Recognize hybrid addresses like "::ffff:129.55.2.201". + Combine to a single regexp and translate to rx. + Remove some regexp ambiguity (relint complaint). + * test/lisp/international/textsec-tests.el (test-suspiction-domain): + Add test cases. + +2022-04-11 Lars Ingebrigtsen <larsi@gnus.org> + + Fix anim_cache garbage collection + + * src/image.c (struct anim_cache): Move earlier. + (mark_image_cache): Mark the Lisp_Object in the anim cache. + +2022-04-11 Lars Ingebrigtsen <larsi@gnus.org> + + Fix compilation errors when HAVE_GIF and not HAVE_WEBP + + * src/image.c: Enable the cache functions when HAVE_GIF, too + +2022-04-11 Lars Ingebrigtsen <larsi@gnus.org> + + Speed up GIF animations + + * src/image.c (anim_prune_animation_cache): Tweak the destructor + API. + (gif_destroy): New function. + (gif_load): Use a cache to avoid quadratic CPU usage for animated + images (bug#45224). + (webp_destroy): New function. + (webp_load): Use it. + +2022-04-11 Lars Ingebrigtsen <larsi@gnus.org> + + Refactor the webp cache code to allow usage by gif_load, too + + * src/image.c (struct anim_cache, anim_create_cache) + (anim_prune_animation_cache, anim_get_animation_cache): Rename + from webp_cache (etc) to prepare for usage in the gif animation + implementation, too. + (webp_load): Adjust cache usage. + +2022-04-11 Eli Zaretskii <eliz@gnu.org> + + Fix default-directory of buffers visiting files in renamed directories + + * lisp/dired-aux.el (dired-rename-file): Take note of whether FILE + is a directory before it is renamed, which makes it impossible to + determine if it was a directory. + (dired-rename-subdir, dired-rename-subdir-1): Revert to using + dired-in-this-tree-p instead of file-in-directory-p, for the + benefit of files that were renamed/removed, because + file-in-directory-p returns nil in those cases. (Bug#54838) + +2022-04-11 Po Lu <luangruo@yahoo.com> + + Fix event source attribution for GTK input methods + + * src/gtkutil.c (xg_im_context_commit): Use pending keystroke + source if it exists. + +2022-04-11 Lars Ingebrigtsen <larsi@gnus.org> + + Fix a kill-append regression + + * lisp/simple.el (kill-append): Fix a regression when + kill-ring-max is zero (bug#54842). + +2022-04-11 Lars Ingebrigtsen <larsi@gnus.org> + + Improve gif_load error messages + + * src/image.c (gif_load): Improve error reporting (bug#54848). + +2022-04-11 Lars Ingebrigtsen <larsi@gnus.org> + + Ensure shell.el loading properly + + * lisp/shell.el (subr-x): Require for string-chop-newline + (bug#54834). + +2022-04-11 Po Lu <luangruo@yahoo.com> + + Always cascade from toplevel frames on Haiku + + * src/haikufns.c (haiku_create_frame): Cascade from toplevel + frames, since otherwise the positions are wrong anyway, and it + doesn't make sense to cascade from a frame that disappears when + it becomes deactivated. + +2022-04-11 Po Lu <luangruo@yahoo.com> + + Fix IM event source attribution on GTK + + * src/xterm.c (handle_one_xevent): Set pending times on GTK as + well. + * src/gtkutil.c (xg_widget_key_press_event_cb): Respect pending + keystroke time on XI2. + +2022-04-10 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (handle_one_event): Make event attribution more accurate. + +2022-04-10 Augusto Stoffel <arstoffel@gmail.com> + + Add lazy highlight when reading 'query-replace' arguments + + * lisp/replace.el (query-replace-read-args): Use + 'minibuffer-lazy-highlight-setup' to highlight the text to be replaced + in the original buffer (and a match count, if applicable). + (replace--region-filter): New function for code that + used to be inlined in perform-replace but is useful elsewhere. + (perform-replace): Use 'replace--region-filter'. + +2022-04-10 Augusto Stoffel <arstoffel@gmail.com> + + Rewrite the minibuffer lazy highlight feature + + The new API was discussed in bug#53126. It's more robust and easier + to use in complex cases like that of 'query-replace'. + + * etc/NEWS: Amend the feature announcement + * lisp/isearch.el (isearch-edit-string): Use new API. + (minibuffer-lazy-highlight-transform, + minibuffer-lazy-highlight--overlay, minibuffer-lazy-highlight--count, + minibuffer-lazy-highlight--after-change, + minibuffer-lazy-highlight--exit) Remove helper functions, which are + now kept together with the lazy highlight configuration variables + within a closure. + (minibuffer-lazy-highlight-setup): This function now takes the lazy + highlighting configuration variables as argument, and returns a + closure that is intended to run as part of the minibuffer setup. + +2022-04-10 Eli Zaretskii <eliz@gnu.org> + + * doc/misc/eww.texi (Advanced): Correct outdated info (bug#54839). + +2022-04-10 Lars Ingebrigtsen <larsi@gnus.org> + + Fix markup in Drag and Drop + + * doc/emacs/frames.texi (Drag and Drop): Fix markup. + +2022-04-10 Eli Zaretskii <eliz@gnu.org> + + Fix WebP image support on MS-Windows + + * src/image.c (init_webp_functions) [WINDOWSNT]: Load Demux + functions from the WebPDemux DLL. Load internal functions where + the public APIs are inline functions defined in the WebP headers. + (WebPAnimDecoderOptionsInit) [WINDOWSNT]: Define to call + 'WebPAnimDecoderOptionsInitInternal'. + (WebPDemux): Define to call 'WebPDemuxInternal'. + (WebPAnimDecoderNew): Define to call + 'WebPAnimDecoderNewInternal'. + (syms_of_image) <webpdemux>: New symbol. + + * lisp/term/w32-win.el (dynamic-library-alist): Add a member for + 'webpdemux'. + +2022-04-10 Eli Zaretskii <eliz@gnu.org> + + Clean up the MSDOS port + + * src/msdos.h (tcdrain): Redirect to '_dos_commit'. + (openat, fchmodat, futimens, utimensat): Add prototypes. + + * msdos/sed1v2.inp (MAKE_PDUMPER_FINGERPRINT): Fix indentation, so + that Make won't consider this line a command. + ($(etc)/DOC): Chdir back to ../src, since "make-docfile -d" leaves + us in a wrong directory. + * msdos/sedlibmk.inp (GL_GNULIB_GETRANDOM, GL_GNULIB_MEMMEM) + (GL_GNULIB_SIGDESCR_NP): Define to 1, to get the prototypes from + Gnulib headers. + +2022-04-10 Kévin Le Gouguec <kevin.legouguec@gmail.com> + + Fix a ja-dic compilation warning + + * leim/Makefile.in (${leimdir}/ja-dic/ja-dic.el): Increase + specpdl-size to avoid a compilation warning (bug#54816). + +2022-04-10 Daniel Martín <mardani29@yahoo.es> + + Fix typo in next-error-find-buffer-function + + * lisp/simple.el (next-error-find-buffer-function): Fix typo + (bug#54830). + +2022-04-10 Alan Mackenzie <acm@muc.de> + + CC Mode: Fix unwanted fontification of function call as function declaration + + This happens when the enclosing function's return type is a struct, etc. This + fixes bug #54743; + + * lisp/progmodes/cc-engine.el (c-update-brace-stack): Replace "(" by ")" in a + `member' call. + +2022-04-10 Kaushal Modi <kaushal.modi@gmail.com> + + Update docstrings for shortdoc.el FUNC lisp form API + + * lisp/emacs-lisp/shortdoc.el (define-short-documentation-group): + Updated docstrings. + +2022-04-10 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "Make shell-resync-dirs handle whitespace in directory names" + + This reverts commit 90e65c826fab2092ad2099d7763538194c93e021. + + This change led to hangs (bug#54776). + + Do not merge to master; it has been fixed in a more encompassing way there. + +2022-04-10 Po Lu <luangruo@yahoo.com> + + Attribute filtered events to the right source device + + * src/xterm.c (handle_one_xevent): Attribute core events sent by + input methods like I-Bus to the extension device that caused + them to be sent. + * src/xterm.h (struct x_display_info): New fields + `pending_keystroke_time' and `pending_keystroke_source'. + +2022-04-10 Lars Ingebrigtsen <larsi@gnus.org> + + Add support for animated webp images + + * configure.ac (HAVE_RSVG): Also include the webpdemux library. + It was new in version 0.4.4, and we require 0.6.0, so it should be + safe. + * src/image.c: Include demux.h. + (enum webp_keyword_index, webp_format): Include :index for + animations. + (init_webp_functions): Add Windows LOAD_DLLs. + (struct webp_cache, webp_create_cache) + (webp_prune_animation_cache, webp_get_animation_cache): New + functions. + (webp_load): Support animated webp images (bug#54242). + +2022-04-10 Juri Linkov <juri@linkov.net> + + Allow non-interactive uses of minibuffer-next-completion + + * lisp/minibuffer.el (minibuffer-previous-completion) + (minibuffer-next-completion): Use 1 for n by default. + +2022-04-10 Po Lu <luangruo@yahoo.com> + + Add missing details to filter event on XI2 + + * src/xterm.c (handle_one_xevent): Pass coordinates when + translating XI2 key events to core key events. + +2022-04-09 Po Lu <luangruo@yahoo.com> + + Update XI2 device use on slave attachment and detachment + + * src/xterm.c (handle_one_xevent): Update whether device is a + master device when it's detached or attached. + +2022-04-09 Po Lu <luangruo@yahoo.com> + + Try harder to own DND selections + + * src/xterm.c (x_dnd_do_unsupported_drop): Fix computation of + local value. + (x_dnd_begin_drag_and_drop): Try to own the selection if we do + have a local value. + +2022-04-09 Lars Ingebrigtsen <larsi@gnus.org> + + Fix mode-line doc string + + * lisp/faces.el (mode-line): Fix doc string. + +2022-04-09 Vincent Belaïche <vincentb1@users.sourceforge.net> + + ses-test Prefix used symbols by ses-- + + * test/lisp/ses-tests.el: Rename cell symbols of renamed cells so + that they are in the SES namespace, as recommended by Stefan. + +2022-04-09 Eli Zaretskii <eliz@gnu.org> + + Fix scrolling of the stack window in Calc + + * lisp/calc/calc.el (calc-align-stack-window): Fix off-by-one + error in computing the window-start point. (Bug#54800) + +2022-04-09 Lars Ingebrigtsen <larsi@gnus.org> + + Fix sql-mode comment-end parsing + + * lisp/progmodes/sql.el (sql-mode): Fix /* ... -*/ parsing + (bug#54769). + +2022-04-09 Po Lu <luangruo@yahoo.com> + + Avoid sync when allowing touch events in handle_one_xevent + + * src/xterm.c (handle_one_xevent): Don't catch errors around + XIAllowTouchEvents. + (x_error_handler): Ignore Device errors here instead. + +2022-04-09 Po Lu <luangruo@yahoo.com> + + Handle hierarchy events for updating scroll valuators correctly + + * src/keyboard.c (gen_help_event, kbd_buffer_store_help_event): + Make sure to initialize the event buffer correctly. + + * src/xterm.c (xi_populate_device_from_info): New function. + (x_init_master_valuators): Factor out most of the valuator + tracking code to that function. + (handle_one_xevent): Handle device enable and disable events in + a more detailed fashion. + +2022-04-08 Po Lu <luangruo@yahoo.com> + + Fix DND leave events not being sent to toplevel after returning frame + + * src/xterm.c (x_dnd_update_state, handle_one_xevent): Make sure + to send leave events to the previous toplevel when canceling to + return a frame. + +2022-04-08 Po Lu <luangruo@yahoo.com> + + Use right frame when computing mouse movement device + + * src/keyboard.c (kbd_buffer_get_event): Use the frame on which + the mouse actually moved to compute the last mouse device. + +2022-04-08 Po Lu <luangruo@yahoo.com> + + Minor cleanups in X Windows drag-and-drop code + + * src/keyboard.c (kbd_buffer_get_event): Don't dereference f if + nil when generating mouse motion event. + * src/xterm.c (x_dnd_send_enter, x_dnd_send_position) + (x_dnd_send_leave, x_dnd_send_drop, x_send_scroll_bar_event): + Use NoEventMask instead of 0. + +2022-04-08 Po Lu <luangruo@yahoo.com> + + Fix source reporting for focus in and focus out events + + * src/xterm.c (handle_one_xevent): Report source name for + FocusIn and FocusOut events. + +2022-04-08 Po Lu <luangruo@yahoo.com> + + Clean up XI2 scroll valuator tracking code + + * src/xterm.c (x_get_scroll_valuator_delta): Accept a pointer to + a device instead of the device id. + (handle_one_xevent): Pass the previously found device. + +2022-04-08 Po Lu <luangruo@yahoo.com> + + * src/pgtkterm.c (pgtk_set_cr_source_with_color): Fix default operator. + +2022-04-08 Po Lu <luangruo@yahoo.com> + + Fix subpixel AA with alpha-background on Cairo on X + + * xterm.c (x_set_cr_source_with_gc_foreground) + (x_set_cr_source_with_gc_background): Set operator back to OVER + if alpha-background isn't to be respected. + +2022-04-08 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2022-04-08 Paul Eggert <eggert@cs.ucla.edu> + + Pacify clang -Wunused-variable + + * src/coding.c (detect_coding_utf_8): + * src/process.c (Finternal_default_process_filter): + Remove unused local vars. + +2022-04-08 Paul Eggert <eggert@cs.ucla.edu> + + ebrowse dumping need not return int + + * lib-src/ebrowse.c (dump_members, dump_tree): Return void, not + int, since callers never actually use returned value. All uses + changed. + +2022-04-08 Alan Third <alan@idiocy.org> + + Fix scrollbars on macOS 10.13 and below (bug#54623) + + Make any build on macOS 10.13 and below follow the same drawing path + as the GNUstep port. macOS 10.14 and above will use EmacsLayer. + + * src/nsterm.h (EmacsLayer): + * src/nsterm.m ([EmacsView makeBackingLayer]): + ([EmacsView unlockFocus]): + ([EmacsView windowDidChangeBackingProperties:]): + ([EmacsView copyRect:to:]): Remove any code required for macOS 10.13 + and below, and fix the #if's to enforce strict separation of the + drawing paths. + (ns_update_end): + (ns_unfocus): Fix #ifs so that flushWindow is called on old macOS + versions as well as GNUstep. + +2022-04-08 Eli Zaretskii <eliz@gnu.org> + + Update and fix instructions and scripts for updating the Web pages + + * admin/admin.el (manual-html-fix-index-2): Support Texinfo 6.8 + and later by not converting TOC menus into tables. (Bug#49719) + * admin/upload-manuals (New directory): Invoke "cvs add" in + $webdir, to pick up the correct CVSROOT. + * admin/make-tarball.txt: Update the section about the Emacs Web + pages. + + * etc/refcards/Makefile (pl-refcard.dvi): If mex.fmt cannot be + found, invoke 'mex' instead of 'tex'. + +2022-04-08 Paul Eggert <eggert@cs.ucla.edu> + + Fix pacifying gcc -Wanalyzer-null-dereference + + * src/xterm.c (handle_one_xevent): Use eassume not eassert. + eassert (X)’s suppress_checking does not let GCC assume X. + +2022-04-08 Mattias Engdegård <mattiase@acm.org> + + Rename mark_stack to mark_c_stack + + This is the function that marks the C stack. Avoid confusion with the + new mark stack, a stack used in the GC mark phase. + + * src/alloc.c (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK) + (mark_stack, mark_c_stack): + * src/lisp.h: + * src/thread.c (mark_one_thread): Rename mark_stack to mark_c_stack. + +2022-04-08 Mattias Engdegård <mattiase@acm.org> + + Enable warnings when building as a developer with Clang + + The configure-script logic that automatically enables warnings when + building in a development tree didn't work for Clang because it was + identified as an old GCC version. + + * configure.ac: Don't test Clang version as if it were GCC. + +2022-04-08 Lars Ingebrigtsen <larsi@gnus.org> + + Improve package.el error messages on too-old Emacsen + + * lisp/emacs-lisp/package.el (package-compute-transaction): Give a + better error message on too-old Emacs versions (bug#54747). + +2022-04-08 Po Lu <luangruo@yahoo.com> + + Recommend that the user turn off memory overcommit + + * doc/emacs/trouble.texi (Memory Full): Tell the user that Emacs + behaves best with overcommit off, and how to turn it off. + +2022-04-08 Michael Albinus <michael.albinus@gmx.de> + + Extend tramp-archive-test45-auto-load + + * test/lisp/net/tramp-archive-tests.el (tramp-archive-test45-auto-load): + Extend test. + +2022-04-08 Michael Albinus <michael.albinus@gmx.de> + + Ensure local `default-directory' in Tramp when needed + + * lisp/net/tramp.el (tramp-process-running-p): Ensure local + `default-directory' when calling `list-system-processes' and + `process-attributes'. + +2022-04-08 Po Lu <luangruo@yahoo.com> + + Interpolate scrolls coming from mice by default + + * lisp/pixel-scroll.el + (pixel-scroll-precision-interpolate-mice): New + user option. + (pixel-scroll-precision): If the class of the last event device + is `mouse', interpolate the next scroll. + +2022-04-08 Michael Albinus <michael.albinus@gmx.de> + + Ensure local `default-directory' when calling `process-attributes'. + + * lisp/server.el (server-running-p): + * lisp/subr.el (memory-limit): Ensure local `default-directory' + when calling `process-attributes'. + +2022-04-08 Po Lu <luangruo@yahoo.com> + + Fix GC marking of input events with devices + + * src/keyboard.c (mark_kboards): + * src/pgtkterm.c (mark_pgtkterm): Mark `device' as well. + +2022-04-08 Eli Zaretskii <eliz@gnu.org> + + Clarify "idleness" in the ELisp manual + + * doc/lispref/os.texi (Idle Timers): Clarify that waiting for + input with timeout doesn't make Emacs idle. Suggested by Ignacio + <ignaciocasso@hotmail.com>. (Bug#54371) + +2022-04-08 Po Lu <luangruo@yahoo.com> + + Implement support for reporting device names on PGTK + + * lisp/frame.el (device-class): Add new function. + * lisp/term/pgtk-win.el (pgtk-device-class): New function. + * src/pgtkterm.c (pgtk_device_added_or_removal_cb) + (pgtk_seat_added_cb, pgtk_seat_removed_cb) + (pgtk_enumerate_devices) + (pgtk_free_devices, pgtk_regenerate_devices) + (pgtk_get_device_for_event): New functions. + (mark_pgtkterm): Mark device data. + (pgtk_delete_terminal): Delete device data. + (pgtk_handle_event, key_press_event, note_mouse_movement) + (construct_mouse_click, button_event, scroll_event) + (drag_data_received): Set device correctly. + (pgtk_term_init): Initialize device data and seat tracking. + (pgtk_delete_display): Delete device data. + * src/pgtkterm.h (struct pgtk_device_t): New struct. + (struct pgtk_display_info): New field `devices'. Delete lots of + unused macros and reformat comments. + +2022-04-08 Po Lu <luangruo@yahoo.com> + + * lisp/term/x-win.el (x-device-class): Detect more keyboards. + +2022-04-07 Po Lu <luangruo@yahoo.com> + + Ignore input extension errors caused by grabbing + + * src/xterm.c (x_error_handler): Ignore GrabDevice and + UngrabDevice errors. + +2022-04-07 Po Lu <luangruo@yahoo.com> + + * lisp/term/x-win.el (x-device-class): Detect "USB USB Keykoard"s. + +2022-04-07 Po Lu <luangruo@yahoo.com> + + Add code for determining the type of an input device + + * doc/lispref/commands.texi (Command Loop Info): + * etc/NEWS: Update documentation and announce `device-class'. + + * lisp/frame.el (x-device-class): + (device-class): + * lisp/term/x-win.el (x-device-class): New functions. + +2022-04-07 Po Lu <luangruo@yahoo.com> + + Fix reporting of last-event-device for synthetic events + + * src/keyboard.c (read_char): Clear `last-event-device' earlier. + +2022-04-07 Po Lu <luangruo@yahoo.com> + + Make device reporting work for tool bar clicks + + * src/dispextern.h: Update prototyupes. + * src/xdisp.c (handle_tool_bar_click): Pass Qt to that function + instead. + (handle_tool_bar_click_with_device): New function. + * src/xterm.c (handle_one_xevent): Pass device to tool bar click + logic. + +2022-04-07 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (handle_one_xevent): Fix build warning on non-GTK builds. + +2022-04-07 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/simple.el: Use #' in new code + + * lisp/simple.el (minibuffer-local-shell-command-map): Use #' to quote + function names. + +2022-04-07 Matthias Meulien <orontee@gmail.com> + + Display file mode information when diff font lock prettify enabled + + * lisp/vc/diff-mode.el (diff--font-lock-prettify): Make regexp capture + file mode information. + +2022-04-07 Stefan Monnier <monnier@iro.umontreal.ca> + + OClosure: New function `function-documentation` + + As mentioned in the original OClosure commit, OClosures (ab)use the + bytecode's docstring slot to hold the OClosure's type. This currently + prevents OClosures from having their own docstring. + + Introduce a new generic function `function-documentation` to fetch the + docstring of a function, which can then be implemented in various + different ways depending on the OClosure's type. + + * lisp/simple.el (function-documentation): New generic function. + (bad-package-check): Strength-reduce `eval` to `symbol-value`. + * src/doc.c (Fdocumentation): Use it. + + * lisp/emacs-lisp/oclosure.el (oclosure--accessor-docstring): New function. + * test/lisp/emacs-lisp/oclosure-tests.el (oclosure-test): + Add test for accessor's docstrings. + +2022-04-07 Po Lu <luangruo@yahoo.com> + + Expose the name of an event's input device to Lisp + + This name can be used to identify the device for special + treatment, i.e. only interpolating scrolls coming from mice and + not touchpads inside pixel-scroll-precision-mode. + + * doc/lispref/commands.texi (Command Loop Info): Document new + variable `last-event-device'. + * etc/NEWS: Announce new variable `last-event-device'. + * src/frame.h (struct frame): New field `last_mouse_device'. + * src/keyboard.c (read_char): Clear last-event-device. + (kbd_buffer_get_event): Set last-event-device to the event's + recorded device. + (init_keyboard): Clear last-event-device. + (syms_of_keyboard): New defvar `last-event-device'. + * src/termhooks.h (struct input_event): New field `device'. + (EVENT_INIT): Set it to the special value `Qt' by default. + * src/xterm.c (x_init_master_valuators): Record the device's + name. + (x_dnd_begin_drag_and_drop): Only preserve last event device if + the mouse ended up in the source frame. + (x_note_mouse_movement): New argument `source'. + (handle_one_xevent): Set input event sources whenever + appropriate. + (mark_xterm): Mark device names. + + * src/xterm.h (struct xi_device_t): New field `name'. + +2022-04-07 Po Lu <luangruo@yahoo.com> + + Fix xwidget smooth scrolling when the default pointer is not a touchpad + + * xwidget.c (find_suitable_pointer): New argument + `need_smooth'. Try to find a touchpad if that is set. + (xwidget_button_1, xwidget_button, xwidget_motion_notify) + (xwidget_scroll, xwidget_pinch, xw_notify_virtual_upwards_until) + (xw_notify_virtual_downwards_until): + (xw_maybe_synthesize_crossing): + (xwidget_motion_or_crossing, synthesize_focus_in_event): Set + parameter accordingly. + +2022-04-07 Lars Ingebrigtsen <larsi@gnus.org> + + Clarify read-answer-short/use-short-answers action + + * lisp/emacs-lisp/map-ynp.el (read-answer-short): Clarify what + this variable affects (bug#54754). + + * src/fns.c (Fyes_or_no_p): Mention `use-short-answers'. + +2022-04-07 Andrew G Cohen <cohen@andy.bu.edu> + + Encrypt some parameters in auth-source plstore backend + + The auth-source plstore backend allows a list of extra parameters but + currently stores them all unencrypted. This allows a plist with + :unencrypted and :encrypted keys to specify which extra parameters to + encrypt in the plstore file. + + * lisp/auth-source.el (auth-source-plstore-create): Allow specifying + both unencrypted and encrypted extra parameters. + +2022-04-07 Jai Flack <jflack@disroot.org> + + Add a mu backend for gnus-search + + * lisp/gnus-search.el (gnus-search-mu-program): New defcustom + (gnus-search-mu-switches): New defcustom + (gnus-search-mu-remove-prefix): New defcustom + (gnus-search-mu-config-directory): New defcustom + (gnus-search-mu-raw-queries-p): New defcustom + (gnus-search-mu): New subclass of gnus-search-indexed + (gnus-search-transform-expression): New method + (gnus-search-mu-handle-date): New function + (gnus-search-mu-handle-flag): New function + (gnus-search-indexed-extract): New method + (gnus-search-indexed-search-command): New method (bug#54662). + +2022-04-07 Jürgen Hötzel <juergen@archlinux.org> + + Use correct signal oldset in posix_spawn implementation + + posix_spawn was restoring the wrong signal set, which still had + SIGCHLD and SIGINT masked, causing problems with child processes that + spawned child processes. (Bug#54667) + + See the thread ending at + https://lists.gnu.org/archive/html/emacs-devel/2022-03/msg00067.html + for more details. + + * src/callproc.c (emacs_spawn): Pass oldset parameter. + (emacs_posix_spawn_init_attributes): Use correct oldset. + (emacs_posix_spawn_init): Remove intermediate function. + + (cherry picked from commit 8103b060d89ac63a12c439087bd46c30da72cd97) + +2022-04-07 Michael Albinus <michael.albinus@gmx.de> + + * lisp/net/tramp-integration.el: Don't require files-x. + +2022-04-07 Felix Dietrich <felix.dietrich@sperrhaken.name> (tiny change) + + Fix error in tramp-archive-autoload-file-name-handler + + * lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-handler): + Always call `tramp-autoload-file-name'. Otherwise, when + `tramp-archive-enabled’ is nil and + `tramp-archive-autoload-file-name-handler’ is in the + `file-name-handler-alist’ results in an error “Invalid handler in + `file-name-handler-alist” once Emacs calls + `tramp-archive-autoload-file-name-handler’ with a handler that + does not expect nil. Always returning nil is also false in + general. + +2022-04-07 Michael Albinus <michael.albinus@gmx.de> + + Commit missing file from previous commit (Do not merge with master) + + Commit missing file from previous commit + +2022-04-07 Michael Albinus <michael.albinus@gmx.de> + + Merge with Tramp 2.5.2.3 (Do not merge with master) + + * doc/misc/tramp.texi (Archive file names): Explicitly say how to + open an archive with Tramp (Bug#25076). + + * doc/misc/trampver.texi: + * lisp/net/trampver.el: Change version to "2.5.3-pre". + + * lisp/net/tramp-adb.el (tramp-adb-handle-process-file) + * lisp/net/tramp-sh.el (tramp-sh-handle-process-file): + * lisp/net/tramp-smb.el (tramp-smb-handle-process-file): + * lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file): + Improve implementation. (Bug#53854) + + * lisp/net/tramp-adb.el (tramp-adb-tolerate-tilde): + * lisp/net/tramp-sshfs.el (tramp-sshfs-tolerate-tilde): + New defuns. Advice `shell-mode' with them. + + * lisp/net/tramp.el (tramp-register-autoload-file-name-handlers): + * lisp/net/tramp-archive.el (tramp-register-archive-file-name-handler): + Check, whether the real file name handler is already registered. + rules. (Bug#54542) + + * lisp/net/tramp.el (tramp-autoload-file-name-handler) + (tramp-register-autoload-file-name-handlers) + (tramp-unload-file-name-handlers, tramp-unload-tramp): + * lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-regexp) + (tramp-archive-autoload-file-name-handler) + (tramp-register-archive-file-name-handler): + Add `tramp-autoload' property. + + * lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist): + * lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist): + * lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist): + Use `tramp-handle-file-notify-add-watch', + `tramp-handle-file-notify-rm-watch' and + `tramp-handle-file-notify-valid-p'. + + * lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist): + Use `tramp-handle-insert-file-contents'. + + * lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection): + * lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection): + * lisp/net/lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection): + * tramp-sudoedit.el (tramp-sudoedit-maybe-open-connection): Do not + set "lock-pid" connection-property. + (tramp-sudoedit-handle-delete-file): Use "rm -f". + + * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-executable-p): + * lisp/net/tramp-sh.el (tramp-sh-handle-file-executable-p): + Check also for setuid/setgid bit. + (tramp-gvfs-handle-expand-file-name): + Respect `tramp-tolerate-tilde'. + + * lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): + * lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory): + Do not modify disk space information when + `dired--insert-disk-space' is available. (Bug#54512) + + * lisp/net/tramp-sh.el (tramp-maybe-open-connection): Extend suppression + (tramp-get-remote-dev-tty): New defun. + (tramp-sh-handle-make-process): Use it. + + * lisp/net/tramp-sshfs.el (tramp-methods) <sshfs>: + Add "-t -t" to `tramp-login-args'. + Add "-o dir_cache=no" to `tramp-mount-args'. (Bug#54126) + Add "-o transform_symlinks" to `tramp-mount-args'. + (tramp-sshfs-file-name-handler-alist): + Use `tramp-sshfs-handle-file-writable-p'. + (tramp-sshfs-handle-file-writable-p): New defun. (Bug#54130) + (tramp-sshfs-handle-write-region): Set file modification time. + (Bug#54016) + (tramp-sshfs-file-name-handler-alist): + Use `tramp-sshfs-handle-set-file-times'. + (tramp-sshfs-handle-set-file-times): New defun. + + * test/lisp/net/tramp-tests.el (tramp--test-expensive-test-p): + Rename from `tramp--test-expensive-test'. Make it a defun. Adapt + all callees. + (tramp-test07-file-exists-p, tramp-test14-delete-directory) + (tramp-test18-file-attributes, tramp-test20-file-modes) + (tramp-test28-process-file, tramp-test29-start-file-process) + (tramp-test30-make-process, tramp-test32-shell-command) + (tramp-test33-environment-variables, tramp--test-check-files) + (tramp--test-special-characters, tramp-test46-unload): Adapt tests. + (tramp-test39-detect-external-change): New test. + (tramp-test29-start-file-process) + (tramp--test--deftest-direct-async-process) + (tramp-test30-make-process, tramp-test31-interrupt-process) + (tramp-test34-explicit-shell-file-name) + (tramp-test44-asynchronous-requests): + Add :tramp-asynchronous-processes tag. + (tramp--test-asynchronous-processes-p): New defun. + (tramp--test-hpux-p, tramp--test-macos-p): Protect against errors. + +2022-04-07 Po Lu <luangruo@yahoo.com> + + Fix error when calling DND movement tracking function + + * src/xterm.c (x_dnd_begin_drag_and_drop): Verify + x_dnd_movement_x and x_dnd_movement_y are wholenums before + calling posn-at-x-y. + +2022-04-07 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (xm_write_targets_table): Remove extra XGrabServer pair. + +2022-04-07 Po Lu <luangruo@yahoo.com> + + Fix DND bugs on GTK + + * src/xterm.c (handle_one_xevent): Don't let some client + messages reach the toolkit. + +2022-04-06 Po Lu <luangruo@yahoo.com> + + Remove more code mindlessly copied from NS + + * src/pgtkfns.c (Fx_open_connection): + * src/pgtkselect.c (nxatoms_of_pgtkselect): + * src/pgtkselect.h: + * src/pgtkterm.h: Delete `nxatoms_of_pgtkselect'. + +2022-04-06 Po Lu <luangruo@yahoo.com> + + Fix sending unsupported drops when there is no target but a toplevel + + * src/xterm.c (handle_one_xevent): Send unsupported drops to + last seen toplevel if no target was found. + +2022-04-06 Po Lu <luangruo@yahoo.com> + + Improve doc of x-begin-drag + + * doc/lispref/frames.texi (Drag and Drop): Fix typos and clarify + meaning of XdndActionPrivate. + +2022-04-06 Po Lu <luangruo@yahoo.com> + + Return an appropriate action when performing unsupported drop + + * src/xterm.c (x_dnd_send_unsupported_drop): Set action to + XdndActionPrivate. + +2022-04-06 Po Lu <luangruo@yahoo.com> + + * src/xselect.c (x_atom_to_symbol): Add XdndSelection. + +2022-04-06 Vincent Belaïche <vincentb1@users.sourceforge.net> + + Fix ses-tests.el + + * lisp/ses.el (ses-jump-cell-name-function): Docstring typo. + + * test/lisp/ses-tests.el (ses--cells, foo, bar, B2, toto): Do not + do any outer defvar, but set the defvar only under the + with-suppressed-warnings directive to silence the byte-compiler. + +2022-04-06 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/ses.el: Fix 80-column-docstring warnings + + Also remove redundant `:group` args and prefer #' to quote function names. + +2022-04-06 Stefan Monnier <monnier@iro.umontreal.ca> + + cl-generic.el: Fix bug#46722 + + Fix longstanding bug due to unexpected interference via side-effect. + + * lisp/emacs-lisp/cl-generic.el (cl--generic-get-dispatcher): + Copy the `dispatch` arg before storing it into the hash-table. + + Backport from `master` (cherrypick from commit 61f8f7f68f). + +2022-04-06 João Távora <joaotavora@gmail.com> + + Solve flymake diagnostics synchronization problems + + A diagnostics-lazy server is one who doesn't re-report already + reported diagnostics when it received textDocument/didSave. + + Such is the case of Clangd, for example. Before this change, saving + an Eglot/Clang-managed buffer with some diagnostics caused the Flymake + indicator to display Wait[0 0] until some change was actually done to + the buffer. + + That is because Flymake, by default, wants diagnostics on buffer save, + per flymake-start-on-save-buffer. But it doesn't work to simply turn + that off. That's because if one types something and quickly saves, + and the LSP diagnostics do come in after the save (for some reason, + like server latency), then Flymake sometimes doesn't request any + diagnostics at all. + + The reason for the Flymake behavior wasn't investigated, but that + wasn't a very good solution either + + Rather this change makes it so that when such a Flymake request comes + in, it always gets served immediately with the latest information. + The latest information is now always stored in eglot--diagnostics, + with eglot--unreported-diagnotics being removed. The up-to-date list + is reported to Flymake whenever it requests it. It is updated + whenever the LSP server decides to. + + * eglot.el (eglot--last-reported-diagnostics): Delete. + (eglot--unreported-diagnostics): Delete. + (eglot--diagnostics): New variable.. + (eglot--maybe-activate-editing-mode): Use eglot--diagnostics. + (eglot-handle-notification): Set eglot--diaggnostics. + (eglot-flymake-backend): Read eglot--diagnostics. Always report. + (eglot--report-to-flymake): Set eglot--diagnostics. + +2022-04-06 Po Lu <luangruo@yahoo.com> + + Get rid of extra sync looking up window through XTranslateCoordinates + + * src/xterm.c (x_dnd_get_wm_state_and_proto): Return proxy as + well. + (x_dnd_get_target_window): Use that proxy. + +2022-04-06 Po Lu <luangruo@yahoo.com> + + Move some X11 drag and drop processing to Lisp + + * lisp/term/x-win.el: Set unsupported drop function. + * lisp/x-dnd.el (x-dnd-handle-unsupported-drop): New function. + * src/keyboard.c (kbd_buffer_get_event): Handle + UNSUPPORTED_DROP_EVENT. + * src/termhooks.h (enum event_kind): New event + `UNSUPPORTED_DROP_EVENT'. + * src/xterm.c (x_dnd_send_unsupported_drop): Send those events + instead. + (x_dnd_do_unsupported_drop): Move actual unsupported drop + handling here. + (syms_of_xterm): New variable `x-dnd-unsupported-drop-function'. + * src/xterm.h: Update prototypes. + +2022-04-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix minor-mode doc string quoting + + * lisp/emacs-lisp/easy-mmode.el (easy-mmode--mode-docstring): Fix + double quoting of things like (default-value 'electric-pair-mode) + (bug#54746). + +2022-04-06 Davide Masserut <dm@mssdvd.com> + + Make the Foot terminal an alias of xterm-256color + + * lisp/faces.el (term-file-aliases): Make the foot terminal an alias + of xterm-256color (bug#54739). + +2022-04-06 Kien Nguyen <kien.n.quang@gmail.com> + + Make file-name-split returns driver name as well in Windows + + * lisp/files.el (file-name-split): Returns driver name as well in + Windows. + * lisp/net/browse-url.el (browse-url-file-url): Don't hexify colon + character in file path for Windows (bug#54721). + +2022-04-06 Davide Masserut <dm@mssdvd.com> + + Add .bashrc detection to sh-mode + + * lisp/progmodes/sh-script.el (sh-mode): Add .bashrc string-match + (bug#54727). + +2022-04-06 Markus Kopp <markus.kopp@student.uibk.ac.at> + + Use CUA functions to scroll pages with pixel-scroll-scroll-mode + + * lisp/pixel-scroll.el (pixel-scroll-interpolate-down) + (pixel-scroll-interpolate-up): Use `cua-scroll-up' and + `cua-scroll-down' to scroll if + `pixel-scroll-precision-interpolate-page' is off. (bug#54696) + +2022-04-06 Po Lu <luangruo@yahoo.com> + + Prevent races when trying to set Motif drag window + + * src/xterm.c (xm_get_drag_window): Grab temp connection when + setting the drag window. + +2022-04-06 Michael Albinus <michael.albinus@gmx.de> + + Revert unneeded change in tramp-integration.el + + * lisp/net/tramp-integration.el: + Apply `connection-local-set-profiles' w/o retrieving old values. + +2022-04-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix URL-related typos in comments and messages + + * lisp/ffap.el (ffap-next): Fix typo in message. + * lisp/finder.el (finder-commentary): Fix typo in comment. + +2022-04-06 Po Lu <luangruo@yahoo.com> + + Improve safety of haiku-drag-message + + * lisp/term/haiku-win.el (haiku-drag-and-drop): Ignore + placeholder message. + * src/frame.c (delete_frame): Prevent deleting drop source frame + on Haiku. + * src/haiku_support.cc (RELEASE_NOW, CANCEL_DROP): New message + types. + (class EmacsView, MessageReceived): Handle new message types. + (be_drag_message): Drag CANCEL_DROP message on quit; also send + RELEASE_NOW to view if quitting. + + * src/haikuselect.c (syms_of_haikuselect) + (haiku_unwind_drag_message): Clear new frame variable. + (Fhaiku_drag_message): Set new frame variable. + * src/haikuterm.h: Update prototypes. + +2022-04-06 Po Lu <luangruo@yahoo.com> + + Clean up more PGTK code + + * lisp/term/pgtk-win.el (featurep): + (pgtk): + (pgtk-use-im-context): + (pgtk-handle-nxopen): + (pgtk-handle-nxopentemp): + (pgtk-ignore-1-arg): + ([C-drag-n-drop]): + ([M-drag-n-drop]): + ([C-M-drag-n-drop]): + (pgtk-alternate-modifier): + (pgtk-right-alternate-modifier): + (pgtk-right-command-modifier): + (pgtk-right-control-modifier): + (pgtk-do-hide-emacs): + (pgtk-hide-others): + (pgtk-do-hide-others): + (pgtk-emacs-info-panel): + (pgtk-do-emacs-info-panel): + (pgtk-next-frame): + (pgtk-prev-frame): + (after-make-frame-functions): + (tool-bar-mode): + (pgtk-toggle-toolbar): + (pgtk-print-buffer): + (scalable-fonts-allowed): + (pgtk-standard-fontset-spec): + (pgtk-store-cut-buffer-internal): + (pgtk-copy-including-secondary): + (pgtk-paste-secondary): + (pgtk-suspend-error): + (window-system-initialization): + (after-init-hook): Remove code mindlessly copied from ns-win.el, + delete unused custom group, write doc strings and rename + variables duplicated from X to their names on X. Also reformat + comments and code. + (pgtk-use-im-context-handler): New function. + + * src/pgtkfns.c (syms_of_pgtkfns): Delete useless + AppleScript (!) code copied from NS. + * src/pgtkselect.c: Write FIXME about selection API usage. + + * src/pgtkterm.c (get_keysym_name): Implement correctly instead + of sprintf'ing the numeric value of the keysym into a static + buffer. + (pgtk_set_window_size): + (xg_scroll_callback): Delete code that was #if 0'd out and + doesn't make sense on PGTK. + (pgtk_delete_terminal): Remove misleading comment. + +2022-04-05 Po Lu <luangruo@yahoo.com> + + * src/emacs.c (main): Improve accuracy of daemon warning message on PGTK. + + * src/xterm.c (x_dnd_send_unsupported_drop): Also handle TEXT target. + +2022-04-05 Po Lu <luangruo@yahoo.com> + + Preserve contents of PRIMARY when sending unsupported drop + + * src/xterm.c (x_dnd_send_unsupported_drop): Set local value of + PRIMARY to the preexisting selection value, if any. + +2022-04-05 Paul Eggert <eggert@cs.ucla.edu> + + Port Org encode-time usage back to Emacs 25 + + * lisp/org/ol.el (org-store-link): + * lisp/org/org-clock.el (org-clock-sum) + (org-clock-update-time-maybe): + * lisp/org/org-colview.el (org-colview-construct-allowed-dates): + * lisp/org/org-macro.el (org-macro--vc-modified-time): + * lisp/org/org-macs.el (org-2ft, org-matcher-time): + * lisp/org/org-table.el (org-table-eval-formula): + * lisp/org/org.el (org-read-date, org-display-custom-time) + (org-time-string-to-time, org-timestamp-change): + Don’t assume Emacs 27 encode-time, since standalone Org still + works with Emacs 25 and it’s easier if we minimize differences + from standalone Org. Problem reported by Max Nikulin (Bug#54731). + This reverts much of 2021-12-16T17:40:21Z!eggert@cs.ucla.edu. + +2022-04-05 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (handle_one_xevent): Assert that hold_quit is present instead. + +2022-04-05 Paul Eggert <eggert@cs.ucla.edu> + + Pacify gcc -Wanalyzer-null-dereference + + * src/xterm.c (handle_one_xevent): Don’t dereference HOLD_QUIT if + it’s null. Potential problem found with gcc 11.2.1 20220127 (Red + Hat 11.2.1-9), when configured with --enable-gcc-warnings. + +2022-04-05 Juri Linkov <juri@linkov.net> + + Allow completion wrapping in minibuffer completion navigation commands + + * lisp/minibuffer.el (minibuffer-previous-completion) + (minibuffer-next-completion): Don't set completion-wrap-movement. + +2022-04-05 Glenn Morris <rgm@gnu.org> + + * test/lisp/ses-tests.el: Require ert-x, for ert-simulate-keys. + +2022-04-05 Juri Linkov <juri@linkov.net> + + New commands for navigating completions from the minibuffer. + + * lisp/simple.el (minibuffer-local-shell-command-map): + * lisp/minibuffer.el (minibuffer-local-completion-map): + Bind "M-<up>" to minibuffer-choose-previous-completion, + "M-<down>" to minibuffer-choose-next-completion, + "M-S-<up>" to minibuffer-previous-completion, + "M-S-<down>" to minibuffer-next-completion, + "M-RET" to minibuffer-choose-completion. + (with-minibuffer-completions-window): New macro. + (minibuffer-previous-completion, minibuffer-next-completion) + (minibuffer-choose-previous-completion) + (minibuffer-choose-next-completion) + (minibuffer-choose-completion): New commands. + + https://lists.gnu.org/archive/html/emacs-devel/2022-03/msg00335.html + +2022-04-05 Juri Linkov <juri@linkov.net> + + Use base prefix and suffix instead of completion-base-position (bug#49931) + + * lisp/minibuffer.el (minibuffer-completion-help): + Set completion-base-affixes from base-prefix and base-suffix. + In completion-list-insert-choice-function handle + string values of start/end as prefix/suffix. + + * lisp/simple.el (completion-base-affixes) + (completion-use-base-affixes): New variables. + (choose-completion): Let-bind base-affixes to completion-base-affixes. + Use base-affixes when completion-use-base-affixes is non-nil. + (completion-setup-function): Sync values of base-affixes and + completion-base-affixes. + +2022-04-05 Juri Linkov <juri@linkov.net> + + Choosing a completion with a prefix argument doesn't exit the minibuffer + + * lisp/simple.el (choose-completion): New optional args NO-EXIT and NO-QUIT. + (bug#47417) + +2022-04-05 Eli Zaretskii <eliz@gnu.org> + + Fix fallout from lexical-binding in vhdl-mode.el + + * lisp/progmodes/vhdl-mode.el (vhdl-update-sensitivity-list): Fix + production of a list with embedded function calls. (Bug#54730) + +2022-04-05 Juri Linkov <juri@linkov.net> + + * test/lisp/replace-tests.el: New tests for query-replace (bug#54733) + + * test/lisp/replace-tests.el (query-replace-tests): New defconst. + (query-replace--perform-tests): New function. + (query-replace-tests, query-replace-search-function-tests): New ert-deftest. + +2022-04-05 Robert Pluim <rpluim@gmail.com> + + Reject invalid time-string in appt-add immediately + + * lisp/calendar/appt.el (appt-add): Check the provided time-string for + validity immediately after reading it rather than after reading all + the parameters. (Bug#54210) + +2022-04-05 Billy.Zheng <vil963@gmail.com> (tiny change) + João Távora + + Update invocation for out-of-box dart ls support + + * eglot.el (eglot-server-programs): Tweak dart-mode entry. + + * README.md: Tweak Dart entry. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/862 + +2022-04-05 Michael Albinus <michael.albinus@gmx.de> + + Handle remote system processes + + * doc/lispref/files.texi (Magic File Names): + Add list-system-processes and process-attributes. + + * doc/lispref/processes.texi (System Processes): Document changes + in list-system-processes and process-attributes. + + * doc/misc/tramp.texi (Customizing Completion): Use @ftable. + (Remote processes): Document changes in list-system-processes and + process-attributes. + + * etc/NEWS: Document changes in proced, list-system-processes and + process-attributes. + + * lisp/proced.el (proced-show-remote-processes): New defcustom. + (proced-remote-directory): Remove. + (proced-filter-alist): Use it. + (proced-user-name): New defun. + (proced-available): Set it to t. + (proced-mode): Adapt docstring. + (proced): Adapt docstring. Acknowledge prefix argument. + (proced-format): Change initialization of `standard-attributes'. + (proced-send-signal, proced-renice): Adapt docstring. Remove + special handling of prefix argument. + + * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist): + * lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist): + * lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist): + * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist): + * lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist): + * lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist): + * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist): + * lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist): + Add 'list-system-processes' and `process-attributes'. + + * lisp/net/tramp-integration.el (files-x): Require `files-x'. + (tramp-bsd-process-attributes-ps-args) + (tramp-bsd-process-attributes-ps-format) + (tramp-connection-local-bsd-ps-variables) + (tramp-busybox-process-attributes-ps-args) + (tramp-busybox-process-attributes-ps-format) + (tramp-connection-local-busybox-ps-variables): + * lisp/net/tramp-adb.el (tramp-adb-connection-local-default-ps-variables): + New defconsts. Add them to connection-local variables. + + * lisp/net/tramp.el (tramp-file-name-for-operation): + Add 'list-system-processes' and `process-attributes'. + (tramp-process-attributes-ps-args) + (tramp-process-attributes-ps-format): New defconsts. + (tramp-ps-time, tramp-get-process-attributes) + (tramp-handle-list-system-processes) + (tramp-handle-process-attributes): New defuns. + + * src/process.c (Flist_system_processes, Fprocess_attributes): + Support remote system processes. + (Qlist_system_processes, Qprocess_attributes): Declare symbols. + +2022-04-05 Po Lu <luangruo@yahoo.com> + + Mark some data during drag-and-drop + + It doesn't make sense to prevent the return frame or movement + frame from being deleted, but we should at least protect them + from garbage collection. + + * src/alloc.c (garbage_collect): Call mark_xterm. + * src/xterm.c (x_dnd_begin_drag_and_drop) + (x_dnd_cleanup_drag_and_drop): Clear movement and return frames + upon DND completion. + (mark_xterm): Mark those frames. + * src/xterm.h: Update prototypes. + +2022-04-05 Jimmy Aguilar Mena <spacibba@aol.com> + + Fix some details in completions + + * lisp/minibuffer.el (completion--insert-one-column) : Remove the extra + new-line at the end. + * lisp/simple.el (next-completion) : Fix behavior when + completion-wrap-movement and remove bobp and eobp. This removes the + extra tab ad the end of the list before wrapping or going to the + minibuffer and apparently also fixes bug#54374 + (switch-to-completions) : Simplify condition code and remove comment not + applicable anymore. + +2022-04-05 Po Lu <luangruo@yahoo.com> + + Allow dropping text to the root window + + * src/xterm.c (x_dnd_send_unsupported_drop): Allow dropping to + the root window. + (handle_one_xevent): Send unsupported drops to the last toplevel + instead of the target window. + +2022-04-04 Po Lu <luangruo@yahoo.com> + + Add support for dragging text onto windows that don't support any DND protocol + + * src/xselect.c (x_own_selection): Export function. + (x_handle_selection_request): Handle selection requests to the + pending DND time. + (x_set_pending_dnd_time): New function. + + * src/xterm.c (x_dnd_send_unsupported_drop): New function. + Implement according to the suggestions in the XDND protocol + specification. + (x_dnd_get_target_window): Return the toplevel window as well. + (x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop) + (x_dnd_update_state, handle_one_xevent): Send unsupported drops + and use last seen toplevel instead of target for `return_frame'. + * src/xterm.h: Update prototypes. + +2022-04-04 Po Lu <luangruo@yahoo.com> + + * configure.ac (HAVE_GIF): Respect --with-gif on PGTK. (bug#54633) + +2022-04-04 Po Lu <luangruo@yahoo.com> + + Respect new DND options when dragging to ourselves on Haiku + + * lisp/mouse.el (mouse-drag-and-drop-region): Allow dragging to + the current frame if we know `return-frame' doesn't work. + * lisp/term/haiku-win.el (haiku-dnd-drag-handler): New function. + * src/haiku_support.cc (MouseMoved): Don't send drag motion + events for the drag frame. + * src/haikuselect.c (haiku_note_drag_motion_1) + (haiku_note_drag_motion_2, haiku_note_drag_motion): New + functions. + (syms_of_haikuselect): New variable `haiku-drag-track-function'. + * src/haikuterm.c (haiku_read_socket): Note mouse motion in that + case.q + * src/haikuterm.h: Update prototypes. + +2022-04-04 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/progmodes/cc-cmds.el (indent-new-comment-line): Delete advice + + This piece of advice was effective only for Emacs<20.1 and old XEmacs + (at least older than Aug 2007). + +2022-04-04 Damien Cassou <damien.cassou@gmail.com> + + Update use-package.texi + +2022-04-04 Stefan Monnier <monnier@iro.umontreal.ca> + + OClosure: add support for `slot-value` + + * lisp/emacs-lisp/oclosure.el (oclosure--slot-index) + (oclosure--slot-value, oclosure--set-slot-value): New functions. + + * lisp/emacs-lisp/eieio-core.el (eieio-oset, eieio-oref): + Consolidate the type test. Use `oclosure--(set-)slot-value`. + (eieio--validate-slot-value, eieio--validate-class-slot-value): + Don't presume `class` is an EIEIO class. + (eieio--class): Fix bogus `:type` info. + (eieio--object-class): Simplify. + (eieio--known-slot-name-p): New function. + (eieio-oref, eieio-oref-default, eieio-oset-default): Use it. + + * test/lisp/emacs-lisp/oclosure-tests.el: Require `eieio`. + (oclosure-test): Make `name` field mutable. + (oclosure-test-slot-value): New test. + +2022-04-04 Vincent Belaïche <vincentb1@users.sourceforge.net> + + SES with case insensitive cell names for jumping. + + * doc/misc/ses.texi (The Basics): Document that ses-jump may be + customized. + (Customizing @acronym{SES}): Document new customisations for ses-jump. + + * lisp/ses.el (ses-jump-cell-name-function) + (ses-jump-prefix-function): New defcustoms. + (ses-jump-prefix): New defun. + (ses-jump): Make ses-jump use the new defcustoms. + + * test/lisp/ses-tests.el (ses-jump-B2-prefix-arg) + (ses-jump-B2-lowcase, ses-jump-B2-lowcase-keys) + (ses-jump-B2-symbol, ses-jump-B2-renamed): New tests. + +2022-04-04 Mattias Engdegård <mattiase@acm.org> + + Reduce GC mark-phase recursion by using explicit stack (bug#54698) + + An explicit stack of objects to be traversed for marking replaces + recursion for most common object types: conses, vectors, records, hash + tables, symbols, functions etc. Recursion is still used for other + types but those are less common and thus not as likely to cause a + problem. + + The stack grows dynamically as required which eliminates almost all C + stack overflow crashes in the GC. There is also a nontrivial GC + performance improvement. + + * src/alloc.c (GC_REMEMBER_LAST_MARKED, GC_CDR_COUNT): New. + (mark_char_table, struct mark_entry): + Remove (subsumed into process_mark_stack). + (struct mark_entry, struct mark_stack, mark_stk) + (mark_stack_empty_p, mark_stack_pop, grow_mark_stack) + (mark_stack_push_value, mark_stack_push_values) + (process_mark_stack): New. + (mark_object, mark_objects): + Just push the object(s) and let process_mark_stack do the work. + +2022-04-04 Jürgen Hötzel <juergen@archlinux.org> + + Use correct signal oldset in posix_spawn implementation + + posix_spawn was restoring the wrong signal set, which still had + SIGCHLD and SIGINT masked, causing problems with child processes that + spawned child processes. (Bug#54667) + + See the thread ending at + https://lists.gnu.org/archive/html/emacs-devel/2022-03/msg00067.html + for more details. + + * src/callproc.c (emacs_spawn): Pass oldset parameter. + (emacs_posix_spawn_init_attributes): Use correct oldset. + (emacs_posix_spawn_init): Remove intermediate function. + +2022-04-04 Stefan Monnier <monnier@iro.umontreal.ca> + + test/lisp/edmacro-tests.el: Adjust to recent changes + +2022-04-04 Stefan Monnier <monnier@iro.umontreal.ca> + + edmacro.el: Silence warnings due to kmacro changes + + * lisp/edmacro.el (edit-kbd-macro): Use `kmacro-p` and kmacro accessors. + (edmacro-finish-edit): Use `kmacro-p` and the new `kmacro` constructor. + +2022-04-04 Po Lu <luangruo@yahoo.com> + + Handle mouse movement correctly during DND from one of our own frames + + * lisp/dnd.el (dnd-handle-movement): Select the window specified + in posn. + * lisp/term/x-win.el (x-dnd-movement): New function. + (x-dnd-movement-function): Set it as the default. + * src/frame.c (delete_frame): Prevent deleting the drop source + frame. + * src/xterm.c (x_dnd_send_position): Set new mouse movement + flags if the target window is one of our own frames. + (x_dnd_begin_drag_and_drop): Call DND movement function whenever + appropriate. + (x_free_frame_resources): Remove useless code. + (syms_of_xterm): New defvar `x-dnd-movement-function'. + * src/xterm.h: Update prototypes. + +2022-04-04 Po Lu <luangruo@yahoo.com> + + Fix generation of extra DND events while dragging on Haiku + + * src/haiku_support.cc (be_drag_message): Set new DND flag. + (be_drag_and_drop_in_progress): New function. + * src/haiku_support.h: Update prototypes. + * src/haikuterm.c (haiku_read_socket): Don't store DND motion + events if DND is in progress. + +2022-04-04 Po Lu <luangruo@yahoo.com> + + * src/xterm.c: Explain meaning of drag-and-drop state variables. + +2022-04-04 Lars Ingebrigtsen <larsi@gnus.org> + + Further fixes for cl--generic-describe and (function ...) + + * lisp/emacs-lisp/cl-generic.el (cl--generic-describe): Fix the #' + problem for defmethods, too (bug#54628). + +2022-04-04 João Távora <joaotavora@gmail.com> + + Check textdocumentsync/willsave cap before sending it + + * eglot.el (eglot--guess-contact): Default language-id to educated + guess when eglot--lookup-mode returns nil. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/823 + +2022-04-04 João Távora <joaotavora@gmail.com> + + Guess language-id if manually entering server program + + * eglot.el (eglot--guess-contact): Default language-id to educated + guess when eglot--lookup-mode returns nil. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/837 + +2022-04-04 João Távora <joaotavora@gmail.com> + + Tweak eglot mode-line menus + + * eglot.el (eglot-manual): Rename from eglot-read-documentation + (eglot-customize): Delete. + (eglot-menu): Rename from eglot-menu-map. Rework. + (eglot--mode-line-format): Tweak. + (eglot-menu-string): Rename from eglot-mode-line-string. + (Flymake customization): New source section. + + * NEWS.md: Tweak. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/792 + +2022-04-04 Felicián Németh <felician.nemeth@gmail.com> + + Rework eglot's mode-line + + Mimic flymake by replacing the old menus of the mode-line with + "context menus". List all useful commands under the main menu + (eglot-menu-map), and commands related to LSP debugging under the + project menu (eglot-debug-map). + + * eglot.el (eglot-read-documentation, eglot-customize): New + commands. + (eglot-mode-line-string): New defcustom. + (eglot-menu-map, eglot-debug-map,): New variables. + (eglot--mode-line-props): Rework to use eglot-menu-map and + eglot-debug-map. + (eglot--mode-line-format): Use eglot-mode-line-string. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/792 + +2022-04-04 João Távora <joaotavora@gmail.com> + + Make eglot--plist-keys a simple (non-map.el) helper again + + This removes a nagging compilation warning when developing on Emacs + master. + + There's not much point in depending on map.el just for this util. And + there' snot much point in making eglot--plist-keys go through a + generic dispatching mechanism when we happen to know the thing + being dispatched + + * eglot.el (eglot--plist-keys): Define in helpers section. + +2022-04-04 Mattias Engdegård <mattiase@acm.org> + + Inline call0..8 + + Inlining these trivial functions gives a healthy speed boost to many + common functions such as `sort`, `mapcar` etc. + + * src/eval.c (call0, ..., call8): Move functions... + * src/lisp.h (call0, ..., call8): ...here and declare them inline. + +2022-04-04 Mattias Engdegård <mattiase@acm.org> + + Speed up comparisons between 2 fixnums + + Since <, <=, > and >= have their own byte-ops, the corresponding + functions are mostly used as arguments to higher-order functions. + This optimization is particularly beneficial for sorting, where the + comparison function is time-critical. + + * src/data.c (Flss, Fgtr, Fleq, Fgeq): + * src/fileio.c (Fcar_less_than_car): + Fast path for calls with 2 fixnum arguments. + +2022-04-04 Mattias Engdegård <mattiase@acm.org> + + Rewrite string-greaterp and string> using string-lessp + + Since string-lessp has its own byte-op, using it is much faster than + calling string-greaterp even with the need to bind a temporary + variable. + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-string-greaterp): New. + (string-greaterp, string>): Set byte-optimizer. + +2022-04-04 Mattias Engdegård <mattiase@acm.org> + + Faster `string-lessp` for unibyte arguments + + Since this function is commonly used as a sorting predicate + where it is time-critical, this is a useful optimization. + + * src/fns.c (Fstring_lessp): Add fast path for the common case + when both arguments are unibyte. + * test/src/fns-tests.el (fns-tests--string-lessp-cases) + (fns-tests-string-lessp): New test. + +2022-04-04 Po Lu <luangruo@yahoo.com> + + Respect frame extents during drag and drop + + * xterm.c (struct x_client_list_window): New fields for frame + extents. + (x_dnd_compute_toplevels): Set window frame extents. + (x_dnd_get_target_window_1): Return None if the mouse is in a + frame extent. + (x_dnd_get_target_window): Likewise. + +2022-04-04 Po Lu <luangruo@yahoo.com> + + Don't baselessly ignore frames after passing through the root window + + * src/xterm.c (x_dnd_begin_drag_and_drop): + (handle_one_xevent): Don't rely on target not being None to set + x_dnd_return_frame to 2. + +2022-04-04 Po Lu <luangruo@yahoo.com> + + Improve behavior of dragging text to windows on top of frames + + * doc/lispref/frames.texi (Drag and Drop): Document new meaning + of `return-frame' in `x-begin-drag'. + * lisp/mouse.el (mouse-drag-and-drop-region): Use `now' when + calling `x-begin-drag'. + * src/xfns.c (Fx_begin_drag): Update doc string. + * src/xterm.c (x_dnd_begin_drag_and_drop): Accept return_frame + as a Lisp_Object and handle Qnow correctly. + (XTmouse_position): Ignore tooltip frames when processing + `drag-source'. + (syms_of_xterm): New defsym `now'. + * src/xterm.h: Update prototypes. + +2022-04-03 Andrew G Cohen <cohen@andy.bu.edu> + + Replace list and vector sorting with TIMSORT algorithm + + * src/Makefile.in (base_obj): Add sort.o. + * src/deps.mk (fns.o): Add sort.c. + * src/lisp.h: Add prototypes for inorder, tim_sort. + * src/sort.c: New file providing tim_sort. + * src/fns.c: Remove prototypes for removed routines. + (merge_vectors, sort_vector_inplace, sort_vector_copy): Remove. + (sort_list, sort_vector): Use tim_sort. + * test/src/fns-tests.el (fns-tests-sort): New sorting unit tests. + +2022-04-03 Mattias Engdegård <mattiase@acm.org> + + Add optional GC marking function to specpdl unwind_ptr record + + Add a new `record_unwind_protect_ptr_mark` function for use with C data + structures that use the specpdl for clean-up but also contain possibly + unique references to Lisp objects. + + * src/eval.c (record_unwind_protect_ptr_mark): New. + (record_unwind_protect_module, set_unwind_protect_ptr): + Set the mark function to NULL. + (mark_specpdl): Call the mark function if present. + * src/lisp.h (unwind_ptr): Add a mark function pointer to the + SPECPDL_UNWIND_PTR case. + +2022-04-03 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (x_dnd_get_target_window): Look at root window proxies too. + +2022-04-03 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el (tab-bar-undo-close-tab): Update tab-bar-lines (bug#54684) + +2022-04-03 Po Lu <luangruo@yahoo.com> + + Fix various bugs with mouse dragging on Haiku + + * src/haikuterm.c (haiku_mouse_position): Rewrite so that + different track-mouse types can be handled more consistently. + +2022-04-03 Eli Zaretskii <eliz@gnu.org> + + Update logs and HISTORY for Emacs 28.1 + + * ChangeLog.3: + * etc/HISTORY: + * etc/AUTHORS: Update for Emacs 28.1 release. + +2022-04-03 Jim Porter <jporterbugs@gmail.com> + + Fix handling of '\\' inside double-quotes in Eshell + + Previously, Eshell would get confused and think the following command + was unterminated due to the second double-quote looking like it was + escaped: + + echo "\\" + + * lisp/eshell/esh-util.el (eshell-find-delimiter): Correct docstring + and treat '\' as an escapable character when using backslash escapes. + + * test/lisp/eshell/eshell-tests.el + (eshell-test/escape-special-quoted): Adapt test. + +2022-04-03 James Thomas <jimjoe@gmx.net> + + Ensure re-encoding after change in gnus-inews-do-gcc + + * lisp/gnus/gnus-msg.el (gnus-inews-do-gcc): Re-encode the message + body if it has been modified by gnus-gcc-pre-body-encode-hook + (bug#54687). + +2022-04-03 Lars Ingebrigtsen <larsi@gnus.org> + + Have global minor modes say so in the doc string + + * lisp/emacs-lisp/easy-mmode.el (easy-mmode--arg-docstring): Allow + saying whether it's a global minor mode or not. + (easy-mmode--mode-docstring): Use it. + (define-minor-mode): Pass in the data. + +2022-04-03 Po Lu <luangruo@yahoo.com> + + Implement `drag-source' values of `track-mouse' on PGTK. + + * src/frame.c (Fmouse_position, mouse_position) + (Fmouse_pixel_position): Fix crashes when mouse_position_hook + stores nil. + + * src/pgtkterm.c (pgtk_mouse_position): Behave appropriately. + +2022-04-03 Po Lu <luangruo@yahoo.com> + + Implement `drag-source' values of track-mouse on NS + + * src/nsterm.m (ns_mouse_position): Don't return frame when + appropriate. + +2022-04-03 Po Lu <luangruo@yahoo.com> + + Implement (sort of) `drag-source' on Haiku + + * src/haikuterm.c (haiku_mouse_or_wdesc_frame) + (haiku_mouse_position): Behave reasonably when track_mouse is + Qdrag_source. + +2022-04-03 Po Lu <luangruo@yahoo.com> + + Make dragging stuff to a window above a frame work + + * doc/lispref/frames.texi (Mouse Tracking): + * etc/NEWS: Announce new `drag-source' value of `track-mouse'. + * lisp/mouse.el (mouse-drag-and-drop-region): Use new value of + `track-mouse' during interprogram drag and drop. + + * src/keyboard.c (make_lispy_position): Handle nil values of f + correctly. + * src/xdisp.c (define_frame_cursor1): Ignore if `drag-source' as + well. + (syms_of_xdisp): New defsym `drag-source'. + * src/xterm.c (XTmouse_position): Implement `drag-source'. + (mouse_or_wdesc_frame): Likewise. + +2022-04-03 Po Lu <luangruo@yahoo.com> + + Don't touch WAYLAND_DISPLAY in browse-url + + * lisp/net/browse-url.el (browse-url): Don't touch + WAYLAND_DISPLAY. (bug#53969) + +2022-04-03 Po Lu <luangruo@yahoo.com> + + Look for DND proxies on the root window as well + + * src/xterm.c (x_dnd_get_target_window): If nothing was found on + the COW, look at the root window. + +2022-04-02 Po Lu <luangruo@yahoo.com> + + Implement new DND features on GNUstep + + * lisp/term/ns-win.el (ns-drag-n-drop): Handle special `lambda' + drag-n-drop events. + * src/nsterm.m: ([EmacsView wantsPeriodicDraggingUpdates]): + ([EmacsView draggingUpdated:]): New functions. + +2022-04-02 Po Lu <luangruo@yahoo.com> + + Implement new DND options on Haiku + + * lisp/term/haiku-win.el (haiku-drag-and-drop): Handle special + drag and drop motion events. + * src/haiku_support.cc (MouseMoved): Set `dnd_message' flag. + * src/haiku_support.h (struct haiku_mouse_motion_event): New + member `dnd_message'. + * src/haikuterm.c (haiku_read_socket): Create special DND events + when the mouse moves with a drop message. + +2022-04-02 Po Lu <luangruo@yahoo.com> + + Add user options to move point and scroll window during DND + + * doc/emacs/frames.texi (Drag and Drop): + * etc/NEWS: Document new options 'dnd-scroll-margin' and + 'dnd-indicate-insertion-point'. + * lisp/dnd.el (dnd-protocol-alist): + (dnd-open-remote-file-function): + (dnd-open-file-other-window): Add right group to defcustoms. + (dnd-scroll-margin, dnd-indicate-insertion-point): New user + options. + (dnd-handle-movement): New function. + * lisp/x-dnd.el (x-dnd-handle-xdnd): + (x-dnd-handle-motif): Call `dnd-handle-movement' when + appropriate. + +2022-04-02 Po Lu <luangruo@yahoo.com> + + Fix Motif drag-and-drop on servers without XI2 + + * src/xterm.c (handle_one_xevent): Pass right flags to the + receiver when handling drops for core button events. + +2022-04-02 Po Lu <luangruo@yahoo.com> + + Fix incorrect usage of XM_DRAG_SIDE_EFFECT + + * src/xterm.c (xm_send_top_level_leave_message) + (handle_one_xevent): Pass correct alt side effects and flags to + XM_DRAG_SIDE_EFFECT. + +2022-04-02 Lars Ingebrigtsen <larsi@gnus.org> + + Fix bootstrap errors after previous easy-mmode change + + * lisp/subr.el (ensure-empty-lines, string-lines): Moved from + subr-x so that they can be used in early bootstrap files. + + * lisp/emacs-lisp/easy-mmode.el (easy-mmode--mode-docstring): + Don't use string-empty-p because of bootstrap issues. + +2022-04-02 Lars Ingebrigtsen <larsi@gnus.org> + + Fix regression in tex alignment + + * lisp/align.el (align-rules-list): Make alignment in tex mode + work better again (bug#54663). + +2022-04-02 Sean Whitton <spwhitton@spwhitton.name> + + em-extpipe: Catch eshell-incomplete thrown while parsing + + * lisp/eshell/em-extpipe.el (em-extpipe--or-with-catch): New macro. + (eshell-parse-external-pipeline): Use new macro to treat + `eshell-incomplete' as a failure of the parse function to move us + forward (Bug#54603). Thanks to Jim Porter <jporterbugs@gmail.com> for + the report and for help isolating the problem. + + * test/lisp/eshell/eshell-tests.el + (eshell-test/lisp-command-with-quote): New test for Bug#54603, thanks + to Jim Porter <jporterbugs@gmail.com> (bug#54603). + +2022-04-02 August Feng <au.fengster@gmail.com> (tiny change) + + Add S-SPC key sequence to bookmark-bmenu-mode-map + + * lisp/bookmark.el (bookmark-bmenu-mode-map): Add an S-SPC binding + for symmetry (bug#54672). + +2022-04-02 Lars Ingebrigtsen <larsi@gnus.org> + + Put the define-minor-mode boilerplate at the end of the doc strings + + * lisp/emacs-lisp/easy-mmode.el (easy-mmode--mode-docstring): Put + the boilerplate at the end of the doc string. + +2022-04-02 Lars Ingebrigtsen <larsi@gnus.org> + + Further tweaks to cl--generic-describe + + * lisp/emacs-lisp/cl-generic.el (cl--generic-describe): Further + tweak the look of the implementation output. + +2022-04-02 Po Lu <luangruo@yahoo.com> + + * lisp/dired.el (dired-mouse-drag): Offer HOST_NAME as well. + +2022-04-02 Po Lu <luangruo@yahoo.com> + + Fix crash when retrieving window property with invalid atom data + + This happens when dropping files from dtfile, which somehow puts + non-atom stuff in window properties of type ATOM_PAIR. + + * src/xselect.c (x_atom_to_symbol): Catch errors around + XGetAtomName. + +2022-04-02 Po Lu <luangruo@yahoo.com> + + Compute size of structs with flexible arrays correctly in Motif DND code + + * src/xterm.c (xm_read_targets_table_rec, xm_setup_dnd_targets): + Use FLEXSIZEOF instead of sizeof on struct xm_targets_table_rec. + +2022-04-02 Po Lu <luangruo@yahoo.com> + + Fix error on mouse move over something not a window while dragging text + + * lisp/mouse.el (mouse-drag-and-drop-region): Handle non-window + values of `posn-window' correctly. + +2022-04-02 Po Lu <luangruo@yahoo.com> + + Add new option `mouse-drag-and-drop-region-scroll-margin' + + * etc/NEWS: Announce new user option. + * lisp/mouse.el (mouse-drag-and-drop-region-scroll-margin): New + user option. + (mouse-drag-and-drop-region): Implement "scroll margin" like + behavior during mouse movement. + +2022-04-02 Po Lu <luangruo@yahoo.com> + + Implement DELETE selection target for cross program drags + + * lisp/mouse.el (mouse-drag-and-drop-region): Make sure mark + stays deactivated if a "cut" operation was performed. + * lisp/select.el (xselect-convert-to-delete): Don't clear + selection contents if it's the XdndSelection. + +2022-04-01 Po Lu <luangruo@yahoo.com> + + Work around dynamic drag bugs in modern Motif + + * src/xterm.c (xm_send_top_level_leave_message): Send a motion + event with impossible coordinates by default. + (handle_one_xevent): Slightly update drop motion message + parameters. + (syms_of_xterm): New variable `x-dnd-fix-motif-leave'. + +2022-04-01 Po Lu <luangruo@yahoo.com> + + Make Motif drag work on window managers that don't support client lists + + * xterm.c (x_dnd_send_xm_leave_for_drop): New function. + (x_dnd_get_wm_state_and_proto): New field `motif_out'. + (x_dnd_get_target_window): Return Motif protocol style if + looking for windows via XTranslateCoordinates. + (x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop) + (x_dnd_update_state, handle_one_xevent): Send toplevel leave + along with drops. + +2022-04-01 Dmitry Gutov <dgutov@yandex.ru> + + * lisp/progmodes/xref.el (xref-search-program): Fix typo. + +2022-04-01 Manuel Uberti <manuel.uberti@inventati.org> + + Support ugrep in xref-search-program-alist + + * lisp/progmodes/xref.el + (xref-search-program-alist) + (xref-search-program): Add entries for ugrep (bug#54608). + +2022-04-01 Stefan Monnier <monnier@iro.umontreal.ca> + + kmacro: Represent it as an OClosure + + Merge the old lambda+list into a single OClosure object which plays + both roles at the same time. Take advantage of it to provide a + `cl-print-object` method so kmacro objects print nicely using the + `key-parse` syntax. + Also replace the old `kmacro-lambda-form` with a new `kmacro` constructor + which takes a `key-parse` syntax, so that the code inserted with + `insert-kbd-macro` is now more readable. + + * lisp/kmacro.el (kmacro): New OClosure type. + (kmacro-ring-head): Use `kmacro` constructor. + (kmacro-push-ring): Convert `elt` from old representation if needed. + (kmacro-split-ring-element, kmacro-view-ring-2nd, kmacro-view-macro): + Adapt to new representation. + (kmacro-exec-ring-item): Turn into obsolete alias. + (kmacro-call-ring-2nd, kmacro-end-or-call-macro): Adjust accordingly. + (kmacro-start-macro): Simplify call to `kmacro-push-ring`. + (kmacro): New constructor function. Replaces `kmacro-lambda-form`. + (kmacro-lambda-form): Use it and declare obsolete. + (kmacro-extract-lambda): Rewrite and declare obsolete. + (kmacro-p): Rewrite. + (cl-print-object): New method. + (kmacro-bind-to-key, kmacro-name-last-macro): Simplify. + + * lisp/macros.el (macro--string-to-vector): New function. + (insert-kbd-macro): Use it. Generate code using the `kmacro` constructor. + + * test/lisp/kmacro-tests.el (kmacro-tests-kmacro-bind-to-single-key): + Silence warning. + (kmacro-tests-name-last-macro-bind-and-rebind): Strengthen the test a bit. + (kmacro-tests--cl-print): New test. + +2022-04-01 Augusto Stoffel <arstoffel@gmail.com> + + New user option 'font-lock-ignore' + + * lisp/font-lock.el (font-lock-ignore): New defcustom. + (font-lock-compile-keywords): Call 'font-lock--filter-keywords'. + (font-lock--match-keyword, font-lock--filter-keywords): New functions, + implement the functionality described in 'font-lock-ignore'. + * doc/lispref/modes.texi: Describe 'font-lock-ignore'. + +2022-04-01 Stefan Monnier <monnier@iro.umontreal.ca> + + cl-generic: Rework obsolescence checks for defmethod + + * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Silence obsolescence + warnings in the included methods. + (cl-defmethod): Reuse standard obsolescence checks. + + * lisp/emacs-lisp/seq.el (seq-contains): Remove redundant + `with-suppressed-warnings`. + +2022-04-01 Ignacio <ignacio.decasso@imdea.org> + + Better check for when clipboard or primary selection have changed + + Previously it was done by just comparing new and old selection + text, now we use also selection timestamps for systems that + support it (only enabled in X for now). (bug#53894) + + * lisp/select.el: (gui--last-selection-timestamp-clipboard) + (gui--last-selection-timestamp-primary): New variables. + + (gui--set-last-clipboard-selection) + (gui--set-last-primary-selection) + (gui--clipboard-selection-unchanged-p) + (gui--primary-selection-unchanged-p): New functions. + +2022-04-01 Stefan Monnier <monnier@iro.umontreal.ca> + + OClosure: Add support for defmethod dispatch + + * lisp/emacs-lisp/oclosure.el (oclosure--class): Add slot `allparents`. + (oclosure--class-make): Add corresponding arg `allparents`. + (oclosure, oclosure--build-class): Pass the new arg to the constructor. + (oclosure--define): Make the predicate function understand subtyping. + + * lisp/emacs-lisp/cl-preloaded.el (cl--class-allparents): Move from + `cl-generic.el`. + + * lisp/emacs-lisp/cl-generic.el (cl--generic-class-parents): Move to + `cl-preloaded.el` and rename to `cl--class-allparents`. + Adjust all callers. + (cl--generic-oclosure-tag, cl-generic--oclosure-specializers): New functions. + (cl-generic-generalizers) <oclosure-struct>: New generalizer. + + * test/lisp/emacs-lisp/oclosure-tests.el (oclosure-test-gen): + New generic function. + (oclosure-test): Add test for dispatch on oclosure types. + +2022-04-01 Po Lu <luangruo@yahoo.com> + + Implement the Motif drag protocol + + * src/xterm.c (struct x_client_list_window): New field + `xm_protocol_style'. + (xm_top_level_enter_message, xm_drag_motion_message) + (xm_top_level_leave_message): New structures. + (xm_setup_drag_info, xm_send_top_level_enter_message) + (xm_send_drag_motion_message, xm_send_top_level_leave_message): + New functions. + (x_dnd_compute_toplevels): Compute `xm_protocol_style'. + (x_dnd_get_target_window_1, x_dnd_get_target_window): New + parameter `motif_out'. Place the xm protocol style in it if + necessary. + (x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop) + (x_dnd_update_state, handle_one_xevent): Handle Motif drag + protocol messages. + (x_free_frame_resources): Cancel Motif drag protocol operations + correctly. + +2022-04-01 Protesilaos Stavrou <info@protesilaos.com> + + Update modus-themes to their version 2.3.0 + + * doc/misc/modus-themes.org (Enable and load): Clarify wording. + (Sample configuration with and without use-package): Improve sample + code on how to set up the themes. + (Customization Options): Update sample configuration. + (Option for box buttons, Option for mode line presentation) + (Option for completion framework aesthetics) + (Option for Org agenda constructs) + (Option for the headings' overall style): Document how to optionally + pass number values as a cons cell. + (Option for mouseover effects): Document new boolean user option. + (More accurate colors in terminal emulators): Write about the color + range in terminal emulators and provide sample palette for XTerm. + (Override colors): Use American English. + (Near-monochrome syntax highlighting): Provide sample code on how to + achieve a monochrome style. + (Full support for packages or face groups) + (Indirectly covered packages): Update lists of supported packages. + (Note on display-fill-column-indicator-mode): Reword node. + (Note on prism.el): Use American English. + (Note on SHR colors): Clarify statement. + (Note on the Notmuch logo): Remark that the Notmuch logo can be + disabled. + (Port the Modus themes to other platforms?): Use American English. + (Sources of the themes): Fix capitalization of proper nouns. + (Acknowledgements): Update list of contributors to the project. + + * etc/themes/modus-operandi-theme.el: + * etc/themes/modus-vivendi-theme.el: Ensure that the theme is reified + as expected both at compile time and runtime. + + * etc/themes/modus-themes.el (require): Require 'cl-lib' and 'subr-x' + at compile time. + (seq): Require the 'seq' library. + (modus-themes-completion-standard-first-match) + (modus-themes-completion-standard-selected) + (modus-themes-completion-extra-selected): Use correct symbol for + deprecated faces. + (modus-themes-slanted-constructs): Provide it as an alias of + 'modus-themes-italic-constructs'. + (modus-themes-variable-pitch-headings): Remove obsolete user option. + (modus-themes-no-mixed-fonts): Remove obsolete user option alias. + (modus-themes-intense-mouseovers): Add new user option. + (modus-themes--headings-choice): Accept value as a cons cell. + (modus-themes-headings, modus-themes-org-agenda): Update user option + to accept number value as a cons cell. + (modus-themes-scale-headings, modus-themes-scale-1, modus-themes-scale-2) + (modus-themes-scale-3, modus-themes-scale-4, modus-themes-scale-title) + (modus-themes-scale-small): Remove obsolete user options. + (modus-themes-mode-line): Update user option to accept number values + as cons cells. + (modus-themes-mode-line-padding): Remove obsolete user option. + (modus-themes-completions): Add support for the 'text-also' property + and update it accordingly. + (modus-themes-success-deuteranopia): Remove obsolete user option. + (modus-themes-box-buttons): Update user option to accept number values + as cons cells. + (modus-themes--warn, modus-themes--list-or-warn) + (modus-themes--alist-or-seq): Add functions to check for correct value + in some user options. + (modus-themes--current-theme): Return the first Modus theme from + 'current-enable-themes' (bug#54598). + (modus-themes--lang-check, modus-themes--prompt, modus-themes--paren) + (modus-themes--syntax-foreground, modus-themes--syntax-extra) + (modus-themes--syntax-string, modus-themes--syntax-comment) + (modus-themes--heading, modus-themes--agenda-structure) + (modus-themes--agenda-date, modus-themes--mode-line-attrs) + (modus-themes--completion, modus-themes--link, modus-themes--link-color) + (modus-themes--region, modus-themes--hl-line, modus-themes--button): + Make private functions check for the desired value. Refine them where + necessary. + (modus-themes-faces, modus-themes-custom-variables): Update supported + faces and relevant variables. + +2022-04-01 Michael Albinus <michael.albinus@gmx.de> + + More robust checks for directory buffers in image-mode + + * lisp/image-mode.el (image-mode--directory-buffers): Apply more + robust checks for directory buffers. (Bug#54606) + +2022-04-01 Po Lu <luangruo@yahoo.com> + + Only read 16 bytes of motif drag receiver info + + * src/xterm.c (xm_drag_receiver_info): Only read 16 bytes of + receiver info. + (handle_one_xevent): Fix default XM drop action. + +2022-03-31 Po Lu <luangruo@yahoo.com> + + Simplify Haiku drag-and-drop implementation + + * lisp/term/haiku-win.el (x-begin-drag): Bind `mouse-highlight' + to nil. + + * src/haikuselect.c (haiku_unwind_drag_message) + (Fhaiku_drag_message): + * src/haikuterm.h (HAVE_CHAR_CACHE_MAX): + * src/xdisp.c (note_mouse_highlight): Delete + `haiku_dnd_in_progress' variable. + +2022-03-31 Po Lu <luangruo@yahoo.com> + + Support Motif DND help + + * src/xterm.c (x_dnd_xm_use_help): New state variable. + (x_dnd_begin_drag_and_drop): Clear new variable. + (handle_one_xevent): Set new variable if we get a key press + event F1 during the drag-and-drop session, and use help action + when dropping onto a Motif program if it is set. + +2022-03-31 Po Lu <luangruo@yahoo.com> + + Make dropping files on Motif programs work + + * lisp/dired.el (dired-mouse-drag): Announce "FILE" and + "FILE_NAME" as targets as well. + * lisp/select.el (xselect-convert-to-filename): Handle + XdndSelection specially. + (xselect-convert-to-xm-file): New function. + (selection-converter-alist): Add new converters. + +2022-03-31 Po Lu <luangruo@yahoo.com> + + Avoid extra sync if we didn't get the right wmstate + + * src/xterm.c (x_dnd_get_wm_state_and_proto): Always set proto + version. + (x_dnd_get_target_window): Optimize accordingly. + +2022-03-31 Po Lu <luangruo@yahoo.com> + + Fix a build warning on the non-XI2 build + + * src/xterm.c (xm_read_drop_start_reply): Take a const XEvent as + msg. + +2022-03-31 Eli Zaretskii <eliz@gnu.org> + + Fix a bug in configure.ac that failed the --without-x build + + * configure.ac (USE_TOOLKIT_SCROLL_BARS): Fix test for unsupported + scroll-bars configuration. (Bug#54629) + +2022-03-31 Po Lu <luangruo@yahoo.com> + + Fix Motif DND on window managers that don't support client lists + + * src/xterm.c (x_dnd_compute_toplevels): Fix usage of + `x_uncatch_errors_after_check'. + (x_dnd_get_wm_state_and_proto): New function. + (x_dnd_get_target_window): Also return first toplevel window + found. + +2022-03-31 Po Lu <luangruo@yahoo.com> + + Implement missing parts of the Motif drag and drop protocol + + * src/xterm.c (xm_drop_start_reply): New structure. + (xm_get_drag_window): Don't grab the server since this leads to + weird freezes when creating the drag window. + (xm_read_drop_start_reply): New function. + (x_dnd_begin_drag_and_drop): Set Motif finish flag to 0. + (handle_one_xevent): When starting a motif drop, set the finish + flag to 1. When the receiver replies to our drop message, set + the finish flag to 2 if the drop was accepted, and only clear + the waiting for finish flag when a selection request for + XmTRANSFER_SUCCESS or XmTRANSFER_FAILURE arrives. + (x_term_init): New atoms. + * src/xterm.h (struct x_display_info): New atoms. + +2022-03-31 João Távora <joaotavora@gmail.com> + + Protect against empty firsttriggercharacter strings + + Which some LS's like gopls like to send. + + * eglot.el (eglot--post-self-insert-hook): Beware of empty strings. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/906 + +2022-03-31 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak how functions are formatted in Implementation in *Help* + + * lisp/emacs-lisp/cl-generic.el (cl--generic-describe): Include + the function name in the implementations (bug#54628). This + clarifies what we're talking about here, and avoids getting + (function ...) translated into #'... + +2022-03-31 Po Lu <luangruo@yahoo.com> + + Minor fixes to treatment of `allow_current_frame' + + * src/xterm.c (x_dnd_send_drop): Don't send special event for + wrong frame. + (x_dnd_send_drop): Fix condition for returning + XdndActionPrivate. + +2022-03-31 Po Lu <luangruo@yahoo.com> + + Implement Motif drop protocol + + This is the second most widely implemented drag-and-drop + protocol on X Windows, but seems to have some unsolvable + problems (i.e. stuff will keep accumulating in the drag window + as long the target lists keep changing.) The implementation is + not yet complete and doesn't work with some programs. + + * lisp/select.el (xselect-convert-xm-special): New functions. + (selection-converter-alist): Add new converters. + * lisp/x-dnd.el (x-dnd-handle-motif): Ignore messages sent by + the receiver. + * src/xterm.c (xm_targets_table_byte_order): New enum; + (SWAPCARD32, SWAPCARD16): New macros. + (xm_targets_table_rec, xm_drop_start_message) + (xm_drag_initiator_info, xm_drag_receiver_info): New structures. + (XM_DRAG_SIDE_EFFECT, xm_read_targets_table_header) + (xm_read_targets_table_rec, xm_find_targets_table_idx) + (x_atoms_compare, xm_write_targets_table) + (xm_write_drag_initiator_info, xm_get_drag_window) + (xm_setup_dnd_targets, xm_send_drop_message) + (xm_read_drag_receiver_info): New functions. + (x_dnd_compute_toplevels): Correctly free some temp data. + (x_dnd_get_window_proxy, x_dnd_get_window_proto) + (x_set_frame_alpha): Likewise. + (handle_one_xevent): If the window has no XDND proto but has + motif drag receiver data, send a motif drop protocol request. + (x_term_init): New atoms for Motif DND support. + * src/xterm.h (struct x_display_info): Add new atoms. + +2022-03-30 Stefan Monnier <monnier@iro.umontreal.ca> + + cl-generic: Use OClosures for `cl--generic-isnot-nnm-p` + + Rewrite the handling of `cl-no-next-method` to get rid of the hideous + hack used in `cl--generic-isnot-nnm-p` and also to try and move + some of the cost to the construction of the effective method rather + than its invocation. This speeds up method calls measurably when + there's a `cl-call-next-method` in the body. + + * lisp/loadup.el ("emacs-lisp/oclosure"): Load. + + * lisp/emacs-lisp/oclosure.el (oclosure-define): Remove workaround now + that we're preloaded. + + * lisp/emacs-lisp/cl-generic.el (cl--generic-method): Rename `uses-cnm` + to `call-con` to reflect it's not a boolean any more. + (cl-defmethod): Adjust to the new name and new values. + (cl-generic-define-method): Adjust to the new name. + (cl--generic-lambda): Use the new `curried` calling convention. + (cl--generic-no-next-method-function): Delete function. + (cl--generic-nnm): New type. + (cl-generic-call-method): Rewrite to support the various + calling conventions. + (cl--generic-nnm-sample, cl--generic-cnm-sample): Delete consts. + (cl--generic-isnot-nnm-p): Rewrite using `oclosure-type`. + (cl--generic-method-info): Add support for new calling convention. + +2022-03-30 Stefan Monnier <monnier@iro.umontreal.ca> + + EIEIO tests: Fix failure when `eieio-core.el` is interpreted + + * lisp/emacs-lisp/eieio-core.el (eieio--validate-slot-value) + (eieio--slot-name-index): Use the `cl--class` accessor functions. + +2022-03-30 Andrea Corallo <akrl@sdf.org> + + * src/pdumper.c (dump_get_max_page_size): Rename from 'dump_get_page_size'. + + * src/pdumper.c: Remove getpagesize.h dependency. + +2022-03-30 Michael Albinus <michael.albinus@gmx.de> + + Extend signal-process and proced.el + + * doc/lispref/processes.texi (Signals to Processes): + Document changes in signal-process. + + * etc/NEWS: Mention changes in proced.el and signal-process. + + * lisp/proced.el (proced-signal-function): Declare it obsolete. + (proced-remote-directory): New user option. + (proced-mode): Adapt docstring. + (proced-send-signal, proced-renice): Handle interactive prefix argument. + + * lisp/net/tramp.el (tramp-signal-process): New defun. Add it to + `signal-process-functions'. + + * src/process.c (Finternal_default_signal_process): New defun, + providing the hitherto existing implementation of Fsignal_process. + (Fsignal_process): Loop through Vsignal_process_functions. + (Vsignal_process_functions): New defvar. + (Qinternal_default_signal_process, Qsignal_process_functions): + Declare symbols. + (Sinternal_default_signal_process): Declare subroutine. + + * test/lisp/net/tramp-tests.el (tramp-test31-signal-process): New test. + +2022-03-30 Po Lu <luangruo@yahoo.com> + + Remove local copies of remote files created for drag-and-drop + + * lisp/dired.el (dired-mouse-drag): Remove last dragged remote + file and save a record of any local copy created. + (dired-remove-last-dragged-local-file): New function. + +2022-03-30 Po Lu <luangruo@yahoo.com> + + Ignore mouse movement correctly on Haiku during drag and drop + + * src/haikuselect.c (haiku_unwind_drag_message): New function. + (Fhaiku_drag_message): Set `haiku_dnd_in_progress' to false. + * src/haikuterm.c (haiku_read_socket): Fix overriding of + need_flush when reading events from multiple frames. + * src/haikuterm.h (haiku_dnd_in_progress): New variable. + * src/xdisp.c (note_mouse_highlight): Ignore if said variable is + true. + +2022-03-30 Po Lu <luangruo@yahoo.com> + + Prevent signals when dragging nonexistent files on Haiku + + * lisp/term/haiku-win.el (x-begin-drag): Bind + `haiku-signal-invalid-refs' to nil. + * src/haiku_support.cc (MouseMoved): Send motion events while + dragging as well. + * src/haikuselect.c (haiku_lisp_to_message): Respect new + variable. + (syms_of_haikuselect): New variable `haiku-signal-invalid-refs'. + +2022-03-29 Po Lu <luangruo@yahoo.com> + + Disallow building with non-toolkit scroll bars on non-X systems + + * configure.ac: Prevent building without toolkit scroll bars on + non-X systems, where they're not implemented. (bug#54629) + +2022-03-29 Po Lu <luangruo@yahoo.com> + + Avoid calling XGetAtomName in a loop when fetching monitor attributes + + * src/xfns.c (x_get_monitor_attributes_xrandr): Avoid syncing on + each monitor when waiting for XGetAtomName when built with XCB. + +2022-03-29 Po Lu <luangruo@yahoo.com> + + Add some optimizations to ShapeNotify handling + + * src/xterm.c (handle_one_xevent): Do bounding rect + optimizations on ShapeNotify events as well. + +2022-03-29 Michael Albinus <michael.albinus@gmx.de> + + Handle process property `remote-command' in Tramp + + * doc/misc/tramp.texi (Remote processes): New subsection "Process + properties of asynchronous remote processes". + + * lisp/net/tramp.el (tramp-handle-make-process): + * lisp/net/tramp-adb.el (tramp-adb-handle-make-process): + * lisp/net/tramp-smb.el (tramp-smb-handle-start-file-process): + * lisp/net/tramp-sh.el (tramp-sh-handle-make-process) + Set `remote-command' process property. + (tramp-scp-direct-remote-copying): Rename connection property. + + * test/lisp/net/tramp-tests.el (tramp-test29-start-file-process) + (tramp-test30-make-process, tramp-test31-interrupt-process) + (tramp--test-async-shell-command): Check process property + `remote-command'. + +2022-03-29 Lars Ingebrigtsen <larsi@gnus.org> + + ipv6 addresses aren't suspicious + + * lisp/international/textsec.el (textsec--ipvx-address-p): New + function. + (textsec-domain-suspicious-p): Use it to say that ipv6 addresses + aren't suspicious (bug#54624). + +2022-03-29 Jim Porter <jporterbugs@gmail.com> + + Don't use 'eshell-convert' when all we want is a number + + * lisp/eshell/em-hist.el (eshell/history): Use 'string-to-number' + instead of 'eshell-convert'. + + * lisp/eshell/em-basic.el (eshell/umask): Simplify implementation and + be more careful about parsing numeric umasks to set. + +2022-03-29 Jim Porter <jporterbugs@gmail.com> + + Add tests for Eshell's umask command + + 'em-basic-test/umask-set' fails when passing an actual number to the + command, but this is fixed in the subsequent commit. + + test/lisp/eshell/em-basic-tests.el: New file. + +2022-03-29 Thomas Fitzsimmons <fitzsim@fitzsim.org> + + Fix eww bookmark writing + + * lisp/net/eww.el (eww-write-bookmarks): Ensure that the complete + bookmarks are written (bug#54612). + +2022-03-29 João Távora <joaotavora@gmail.com> + + Easier initializationoptions in eglot-server-programs + + Per https://github.com/joaotavora/eglot/issues/845. + + * NEWS.md: Update. + + * eglot.el (eglot-server-programs): Document new syntax. + (eglot-initialization-options): Can use initializationOptions from + server's saved initargs. + (eglot--connect): Allow a plist to be appended to a server + contact. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/901 + +2022-03-29 Po Lu <luangruo@yahoo.com> + + Rewrite desktop workarea computation to avoid too many calls to XSync + + * src/xfns.c (x_get_net_workarea): Rewrite using XCB without + using long_offset and long_length, since the data transfer is + usually negligible compared to the roundtrip delay. + +2022-03-29 Mattias Engdegård <mattiase@acm.org> + + Fix typo in ERC DCC code in verbose mode + + * lisp/erc/erc-dcc.el (erc-dcc-send-block): Typo causing incorrect + message when `erc-dcc-verbose` is set. + +2022-03-29 João Távora <joaotavora@gmail.com> + + Tweak on-type-formatting code + + * eglot.el (eglot--post-self-insert-hook): Tweak. + (eglot-format): Tweak docstring. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/899 + +2022-03-29 Felicián Németh <felician.nemeth@gmail.com> + + Implement on-type-formatting support + + * eglot.el (eglot-format): Add new optional argument `on-type-format' + to request :textDocument/onTypeFormatting, and ... + (eglot--post-self-insert-hook): ... call it from here when necessary. + + * eglot-tests.el (eglot--simulate-key-event): New helper defun. + (rust-on-type-formatting): New test. + + * NEWS.md: mention feature. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/899 + +2022-03-29 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/oclosure.el (oclosure--define): Autoload + +2022-03-29 Po Lu <luangruo@yahoo.com> + + Specially decode more selection types on Haiku + + * src/haiku_select.cc (be_get_point_data, be_add_point_data): + New functions. + * src/haikuselect.c (haiku_message_to_lisp, lisp_to_type_code) + (haiku_lisp_to_message): Accept new types `size_t', `ssize_t' + and `point'. + (Fhaiku_drag_message): Update doc string. + (syms_of_haikuselect): New defsyms. + * src/haikuselect.h: Update prototypes. + +2022-03-29 Po Lu <luangruo@yahoo.com> + + Temporarily fix the oclosure bootstrap + + * lisp/emacs-lisp/oclosure.el (oclosure-define): Load oclosure + from source if `oclosure--define' is not defined during byte + compilation. + +2022-03-28 Po Lu <luangruo@yahoo.com> + + Don't loop through useless region when searching for DND toplevel + + * src/xterm.c (x_dnd_compute_toplevels): Optimize for the + bounding rect being the window dimensions. + +2022-03-28 Juri Linkov <juri@linkov.net> + + Add search function to search within filenames in Dired and WDired (bug#14013) + + * lisp/dired-aux.el (dired-isearch-filenames-mode): Use + dired-isearch-search-filenames on isearch-search-fun-function + instead of dired-isearch-filter-filenames on isearch-filter-predicate. + (dired-isearch-filter-filenames): Remove function. + (dired-isearch-search-filenames): Add function. + + * lisp/isearch.el (isearch-message-prefix): Add isearch-search-fun-function + to the list of supported advice-functions along with isearch-filter-predicate. + + * lisp/replace.el (replace-search): Add comment. + + * lisp/wdired.el (wdired-search-replace-filenames): New defcustom. + (wdired-isearch-filter-read-only): Remove function. + (wdired-change-to-wdired-mode, wdired-change-to-dired-mode): + Add and remove dired-isearch-search-filenames on isearch-search-fun-function + instead of wdired-isearch-filter-read-only on isearch-filter-predicate. + Also set/unset replace-search-function and replace-re-search-function. + Remove and restore isearch-mode-hook with dired-isearch-filenames-setup. + The problem is that dired-isearch-filenames-setup adds + dired-isearch-filenames-end to isearch-mode-end-hook that removes + dired-isearch-search-filenames added to isearch-search-fun-function + in wdired-change-to-wdired-mode. Then replace-highlight can't use + dired-isearch-search-filenames. + +2022-03-28 Stefan Monnier <monnier@iro.umontreal.ca> + + Add OClosures, a cross between functions and structs + + We here just add the new type. It is not fully self-contained. + It requires cooperation from `cconv.el` on the one hand, and it + hijacks the docstring info to hold the type of OClosure objects. + This does imply that OClosures can't have docstrings, tho this + limitation will be lifted in subsequent patches. + + * lisp/emacs-lisp/oclosure.el: New file. + * test/lisp/emacs-lisp/oclosure-tests.el: New file. + * doc/lispref/functions.texi (OClosures): New section. + + * src/eval.c (Ffunction): Accept symbols instead of strings for docstrings. + * src/doc.c (store_function_docstring): Avoid overwriting an OClosure type. + * lisp/emacs-lisp/cconv.el (cconv--convert-function): Tweak ordering of + captured variables. + (cconv-convert): Add case for `oclosure--fix-type`. + +2022-03-28 Po Lu <luangruo@yahoo.com> + + Fix doc of `gui-get-selection' as to what is really valid as `data' + + * doc/lispref/frames.texi (Window System Selections): + * lisp/select.el (gui-set-selection): Don't say `data' can be a + cons or list of two integers, since that's not supported. + +2022-03-28 Po Lu <luangruo@yahoo.com> + + Minor fixes to Haiku selection support + + * lisp/term/haiku-win.el (haiku-selection-bounds): New function. + (haiku-dnd-convert-string, haiku-select-encode-xstring) + (haiku-select-encode-utf-8-string): Handle position pairs + correctly. + (gui-backend-set-selection): Adjust for new airity. + * src/haikuselect.c (Fhaiku_selection_put): Fix arity. + +2022-03-28 Po Lu <luangruo@yahoo.com> + + Improve portability of XCB configure checks + + * configure.ac: Look for xcb_aux_sync in -lxcb-aux if it's not + in -lxcb-util. + +2022-03-28 Michael Albinus <michael.albinus@gmx.de> + + Do not register Tramp file name handlers twice + + * lisp/net/tramp.el (tramp-register-autoload-file-name-handlers): + * lisp/net/tramp-archive.el (tramp-register-archive-file-name-handler): + Check, whether the real file name handler is already registered. + +2022-03-28 Po Lu <luangruo@yahoo.com> + + Avoid extra sync when fetching DND proxy window + + * src/xterm.c (x_dnd_get_proxy_proto): New function. + (x_dnd_get_target_window): Use it on XCB to determine window + proxy and proto for toplevel window. + +2022-03-27 Po Lu <luangruo@yahoo.com> + + Clean up some uses of XInternAtom + + * src/xfns.c (x_set_undecorated, x_set_no_focus_on_map, x_window) + (set_machine_and_pid_properties): Move calls to XInternAtom for + static string to use previously interned atoms. + (Fx_change_window_property): Use XCB if available to avoid extra + call to XSync. + * src/xterm.c (x_term_init): + * src/xterm.h (struct x_display_info): New atoms _MOTIF_WM_HINTS + and _NET_WM_PID. + +2022-03-27 Felicián Németh <felician.nemeth@gmail.com> + + Map more emacs variables to lsp formattingoptions fields + + * eglot.el (eglot-format): Map require-final-newline to + insertFinalNewline and delete-trailing-lines to trimFinalNewlines. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/900 + +2022-03-27 Po Lu <luangruo@yahoo.com> + + Store latin-1 content into the Haiku clipboard as well + + * lisp/term/haiku-win.el (haiku-normal-selection-encoders): New + variable. + (haiku-select-encode-utf-8-string, haiku-select-encode-xstring): + New functions. + (gui-backend-set-selection): Use new selection encoder functions + instead of hard-coding UTF-8. + (haiku-dnd-handle-drag-n-drop-event): Rename to + `haiku-drag-and-drop'. + + * src/haiku_select.cc (be_lock_clipboard_message): Accept new + argument `clear'. + (be_unlock_clipboard): Accept new argument `discard'. + + * src/haikuselect.c (Fhaiku_selection_data): Change calls to + `be_lock_clipboard_message' and `be_unlock_clipboard'. + (haiku_unwind_clipboard_lock): New function. + (Fhaiku_selection_put): Accept new meaning of `name' which means + to set the selection message. + + * src/haikuselect.h: Update prototypes. + +2022-03-27 Po Lu <luangruo@yahoo.com> + + Clean up PGTK cursor blanking code + + * src/pgtkterm.c (XTframe_rehighlight): Rename to + `pgtk_frame_rehighlight_hook'. All callers changed. + (x_toggle_visible_pointer): Rename to + `pgtk_toggle_visible_pointer'. All callers changed. + (x_setup_pointer_blanking, XTtoggle_invisible_pointer): Delete + functions. + (pgtk_create_terminal): Use new names for various hooks. + (pgtk_term_init): Set up blank cursor directly. + + * src/pgtkterm.h (struct pgtk_display_info): Remove + `toggle_visible_pointer'. + +2022-03-27 Po Lu <luangruo@yahoo.com> + + Don't wait for XdndFinished messages if the target did not send status + + * src/xterm.c (x_dnd_send_leave): Return if we should wait for a + XdndFinished message. + (handle_one_xevent): Use that value for + `x_dnd_waiting_for_finish'. + +2022-03-27 Augusto Stoffel <arstoffel@gmail.com> + + Always run 'isearch-lazy-count-update-hook' with point at match + + * lisp/isearch.el (isearch-lazy-highlight-buffer-update): Run + 'isearch-lazy-count-update-hook' outside of save-excursion, so point + is at the current match. + +2022-03-27 Po Lu <luangruo@yahoo.com> + + Fix processing of DND grab on non-XI2 builds + + * src/xterm.c (handle_one_xevent): Process DND grab flag + correctly. + +2022-03-27 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 1bef52ce73 * doc/emacs/anti.texi (Antinews): Unannounce removal of Mo... + +2022-03-26 Po Lu <luangruo@yahoo.com> + + Fix no-toolkit build + + * src/xterm.c (x_top_window_to_frame): Declare correctly on + no-toolkit builds. + +2022-03-26 Po Lu <luangruo@yahoo.com> + + Avoid excessive synchronization when handling ShapeNotify events + + * src/xterm.c (handle_one_xevent): Use XCB to handle ShapeNotify + events when we want both the bounding and input rects. + +2022-03-26 Marcus Swanson <marcus.swanson91@gmail.com> (tiny change) + + Add omnisharp support for c# + + * eglot.el (eglot-server-programs): Add omnisharp for C#. + * README.md: Document the above change. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/897 + +2022-03-26 Mattias Engdegård <mattiase@acm.org> + + Fix reader infinite recursion for circular mixed-type values + + Make sure that the value added to the `read_objects_completed` set is + the one we actually return; previously this wasn't the case for conses + because of an optimization (bug#54501). + + Also add a check for vacuous self-references such as #1=#1# instead of + returning a nonsense value from thin air. + + * src/lread.c (read1): Treat numbered conses correctly as described + above. Detect vacuous self-references. + * test/src/lread-tests.el (lread-test-read-and-print) + (lread-test-circle-cases, lread-circle): Add tests. + +2022-03-26 Po Lu <luangruo@yahoo.com> + + Enable the native display of BMP images on Haiku + + * src/image.c (syms_of_image): Also register `bmp' image type on + Haiku when native image APIs are enabled. + +2022-03-26 Po Lu <luangruo@yahoo.com> + + Fix crash when timer signals or throws inside a popup menu on Haiku + + * src/haikumenu.c (haiku_process_pending_signals_for_menu_1) + (haiku_process_pending_signals_for_menu_2): New functions. + (haiku_process_pending_signals_for_menu): Catch non local exits + around `timer_check'. + +2022-03-26 Po Lu <luangruo@yahoo.com> + + Fix processing of emacs:window_id inside DND messages if it already exists + + * src/haiku_support.cc (MessageReceived): Use DropPoint instead + of getting it manually. + (be_drag_message): Replace window_id if it already exists. + +2022-03-26 Michael Albinus <michael.albinus@gmx.de> + + Don't let Tramp block dired (Bug#54542) + + * lisp/dired.el (dired-find-buffer-nocreate): Avoid avoid hangs in + remote buffers with a blocked connection. (Bug#54542) + + * lisp/net/tramp-sh.el (tramp-maybe-open-connection): + Extend suppression rules. + +2022-03-26 Po Lu <luangruo@yahoo.com> + + Minor fixes to last change + + * src/Makefile.in: Add XSHAPE_LIBS and XSHAPE_CFLAGS. + (LIBES, EMACS_CFLAGS): Likewise. + + * src/xterm.c (x_dnd_compute_toplevels): Fix build without + HAVE_XCB_SHAPE. + +2022-03-26 Po Lu <luangruo@yahoo.com> + + Also fetch shapes via XCB for drag and drop + + * configure.ac: Also look for xcb-shape. + * src/xterm.c (HAVE_XCB_SHAPE_INPUT_RECTS): New define. + (x_dnd_compute_toplevels): Use XCB for input shapes if possible. + +2022-03-26 Eli Zaretskii <eliz@gnu.org> + + Use native image APIs on MS-Windows by default + + * src/w32term.c (syms_of_w32term) <w32-use-native-image-API>: Now + t by default on W2K and later systems, but only on WINDOWSNT + builds. + + * etc/NEWS: Announce the change. + +2022-03-26 Eli Zaretskii <eliz@gnu.org> + + Support display of BMP images on MS-Windows + + * src/w32image.c (w32_can_use_native_image_api): Support BMP + images. + * src/image.c (syms_of_image) <Qbmp>: New symbol. + [HAVE_NTGUI]: Add 'bmp' to list of supported image types. + + * doc/lispref/display.texi (Image Formats): Document built-in + support for BMP images. + + * etc/NEWS: Announce the change. + +2022-03-26 Eli Zaretskii <eliz@gnu.org> + + Improve 'desktop--emacs-pid-running-p' + + * lisp/desktop.el (desktop--emacs-pid-running-p): Avoid false + negatives on MS-Windows and with some symlinks to Emacs + executables. (Bug#1474) + +2022-03-26 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 4ec9f9edd1 Fix eshell-explicit-command-char doc string typo + +2022-03-26 Po Lu <luangruo@yahoo.com> + + Fix crash when windows are destroyed by faulty clients + + * src/xterm.c (x_dnd_compute_toplevels): Make sure + property_reply is non-NULL before testing its format and length. + +2022-03-26 Po Lu <luangruo@yahoo.com> + + Avoid excessive synchronization when initiating drag-and-drop + + * src/xterm.c (x_dnd_compute_toplevels): Use XCB to get WM + state, attributes, geometry and to translate coordinates. This + avoids 4 calls to XSync. + +2022-03-25 Po Lu <luangruo@yahoo.com> + + Fix compiler warning in x-dnd.el + + * lisp/x-dnd.el (x-dnd-xdnd-to-action): Move declaration + earlier. + +2022-03-25 Po Lu <luangruo@yahoo.com> + + Avoid ClientMessage overhead when dragging stuff to other frames + + * lisp/dired.el (dired-mouse-drag): Handle correctly dragging + from dired buffers in nonselected windows. + * lisp/x-dnd.el (x-dnd-handle-drag-n-drop-event): Understand new + client message type. + * src/xterm.c (x_dnd_send_enter, x_dnd_send_position) + (x_dnd_send_leave): Ignore if window is the top window of a + frame. + (x_dnd_send_drop): Send special DND event in that case. + +2022-03-25 Po Lu <luangruo@yahoo.com> + + Fix minor issues with dired-mouse-drag-files + + * lisp/dired.el (dired-mouse-drag-files): Update doc string and + add setter. + (dired-insert-set-properties): Don't insert misleading tooltip + if feature is not available. + +2022-03-25 Lars Ingebrigtsen <larsi@gnus.org> + + Fix (bounds-of-thing-at-point 'number) + + * lisp/thingatpt.el (number): Make (bounds-of-thing-at-point + 'number) work (bug#54555). + +2022-03-25 Lars Ingebrigtsen <larsi@gnus.org> + + Fix reporting of read error line/columns in the init file + + * src/lread.c (invalid_syntax_lisp): The comments here said that + we were supposed to be called with point in the readcharfun + buffer. This was not the case (at least) when reading the Emacs + init file, so the reported line/column was always wrong (1 and 0, + respectively) (bug#54550). + +2022-03-25 Lars Ingebrigtsen <larsi@gnus.org> + + Improve pp-last-sexp ergonomics + + * lisp/emacs-lisp/pp.el (pp-last-sexp): Ignore ,@? + before a sexp, because eval-ing that will always lead to an error + (bug#54537). + +2022-03-25 Po Lu <luangruo@yahoo.com> + + Implement new drag and drop parameter on Haiku + + * lisp/term/haiku-win.el (x-begin-drag): Implement + `allow-current-frame'. + * src/haiku_support.cc (be_drag_message): New argument + `allow_same_view'. + * src/haiku_support.h: Update prototypes. + * src/haikuselect.c (Fhaiku_drag_message): New parameter + `allow-same-frame'. + +2022-03-25 Po Lu <luangruo@yahoo.com> + + Allow dragging files from dired to windows on the same frame + + * doc/lispref/frames.texi (Drag and Drop): Document new + parameter to `x-begin-drag'. + * lisp/dired.el (dired-mouse-drag): Utilize new parameter. + * lisp/term/haiku-win.el (x-begin-drag): Add new parameter. + * src/xfns.c (Fx_begin_drag): New parameter + `allow-current-frame'. Fix typo and update doc string. + * src/xterm.c (x_dnd_get_window_proto): Respect + `x_dnd_allow_current_frame'. + (x_dnd_begin_drag_and_drop): New parameter + `allow_current_frame'. + * src/xterm.h: Update prototypes. + +2022-03-25 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of 'completion-auto-select' + + * lisp/simple.el (completion-auto-select): + * doc/emacs/mini.texi (Completion Options): Improve documentation + and description of customization options of 'completion-auto-select'. + +2022-03-25 Po Lu <luangruo@yahoo.com> + + Make it easier to select text inside dired when mouse dragging is on + + * lisp/dired.el (dired-insert-set-properties): Only set drag + keymap on the filename itself. + +2022-03-25 Michael Albinus <michael.albinus@gmx.de> + + * admin/notes/emba: Mention workflow rules for branches. + +2022-03-25 Po Lu <luangruo@yahoo.com> + + Fix quitting DND while waiting for finish + + * src/xterm.c (x_dnd_begin_drag_and_drop): Always clear finish + flag before quitting. + +2022-03-25 Po Lu <luangruo@yahoo.com> + + Take window shapes into account when processing drag and drop + + * configure.ac: Test for the Nonrectangular Window Shape + extension. + * msdos/sed1v2.inp: Update. + * src/xterm.c (struct x_client_list_window): New fields for + shapes. + (x_dnd_free_toplevels): Free shapes. + (x_dnd_compute_toplevels): Populate window shapes. + (x_dnd_get_target_window_2): New function. + (x_dnd_get_target_window_1): Test WM state of window before + taking it into account. + (x_dnd_begin_drag_and_drop): Use outer window as the initial + last seen window. + (x_dnd_update_state): Small fixes to frame tracking. + (handle_one_xevent): Handle ShapeNotify events correctly. + (x_term_init): Test for the Nonrectangular Window Shape + extension. + * src/xterm.h (struct x_display_info): New atom `WM_STATE'. + +2022-03-25 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + d3d6f1c9bd Clarify the description of "selected tags table" + +2022-03-24 Po Lu <luangruo@yahoo.com> + + Use _NET_CLIENT_LIST_STACKING to optimize drag and drop window discovery + + * src/xterm.c (struct x_client_list_window): New struct. + (x_dnd_free_toplevels, x_dnd_compute_toplevels) + (x_dnd_get_target_window_1): New functions. + (x_dnd_get_target_window): Search in the toplevel list if it + exists. + (x_dnd_cleanup_drag_and_drop): Clean up toplevel list. + (x_dnd_begin_drag_and_drop): Compute toplevel list if the + window manager supports it. + (handle_one_xevent): Update the toplevel list if prudent. + +2022-03-24 Philip Kaludercic <philipk@posteo.net> + + Fix wrapping of 'previous-completion' at the beginning of buffer + + * lisp/simple.el (next-completion): Prevent an error of + 'previous-completion' at the beginning of completions buffer. + Also fix 'previous-completion' to wrap to the last completion. + (bug#54374) + +2022-03-24 Juri Linkov <juri@linkov.net> + + Small fixes for the new feature 'second-tab' of 'completion-auto-select' + + * lisp/simple.el (completion-auto-select): Extend the docstring. + +2022-03-24 João Távora <joaotavora@gmail.com> + + Use bounds of thing at point when asking for code actions + + * eglot.el (eglot--region-bounds): Consider bounds of things at + point. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/895 + +2022-03-24 Augusto Stoffel <arstoffel@gmail.com> + João Távora <joaotavora@gmail.com> + + Handle invisible text in Eldoc when calculating size + + + * lisp/emacs-lisp/eldoc.el (eldoc--echo-area-substring, + eldoc-display-in-echo-area): Take invisible text into consideration + when counting lines to crop an echo-area message. + (Version): Bump. + +2022-03-24 Po Lu <luangruo@yahoo.com> + + Allow fetching events from other displays inside DND + + * src/xterm.c (x_dnd_begin_drag_and_drop): Get the next event + from the app connection instead on Xt. + +2022-03-24 Michael Albinus <michael.albinus@gmx.de> + + Adapt Tramp to dired--insert-disk-space assumptions + + * lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): + * lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory): + Do not modify disk space information when + `dired--insert-disk-space' is available. (Bug#54512) + +2022-03-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix autoinsert.el byte compilation warning + + * lisp/autoinsert.el (sgml-tag): Fix a byte compilation warning. + +2022-03-24 Jimmy Aguilar Mena <spacibba@aol.com> + + Merge 'completion-auto-select new value secont-tab' + + This includes the second-tab value for completion-auto-select and + documentation related. + +2022-03-24 Jimmy Aguilar Mena <spacibba@aol.com> + + Add documentation entries for completion-auto-select user option. + +2022-03-24 Jimmy Aguilar Mena <spacibba@aol.com> + + Add completion-auto-select second-tab value. + + * lisp/minibuffer.el (completion--in-region-1) : Change if with cond and + check if completion-auto-select. + * lisp/simple.el (completion-auto-select) : Move before first use. + (completion-setup-function) : Make a more precise check for when + completion-auto-select is t. + +2022-03-24 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/select.el (xselect-convert-to-targets): Use `delete-dups` and `delq` + + * lisp/autoinsert.el (auto-insert-alist): Expose lambdas as code + +2022-03-24 Stefan Monnier <monnier@iro.umontreal.ca> + + (archive-*-write-file-member): Fix relative file name + + * lisp/arc-mode.el (archive-*-write-file-member): Set the pwd + +2022-03-24 Lars Ingebrigtsen <larsi@gnus.org> + + Do some NEWS tagging + +2022-03-24 Po Lu <luangruo@yahoo.com> + + Avoid crashes if async input arrives when setting properties for DND + + * src/xterm.c (x_dnd_begin_drag_and_drop): Block input around + non-async signal safe functions. + +2022-03-24 Lars Ingebrigtsen <larsi@gnus.org> + + Mention frame-text-* function in frame-pixel-* doc strings + + * src/frame.c (Fframe_native_width, Fframe_native_height): Link to + `frame-text-*' functions. + +2022-03-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix image-mode-fit-frame some more + + * lisp/image-mode.el (image-mode-fit-frame): Use frame-text-width + and fit-frame-to-buffer instead of computing things ourselves + (bug#37630). This makes things work better across platforms. + +2022-03-24 Po Lu <luangruo@yahoo.com> + + Fix some bugs with drag and drop and Mozilla + + * src/xfns.c (Fx_begin_drag): Call maybe_quit when iterating + through potentially long lists. Also allow specifying + XdndActionAsk manually again, since it's useful for debugging. + * src/xterm.c (x_dnd_begin_drag_and_drop): Delete XdndActionList + and XdndActionDescription if they were not specified. + +2022-03-24 Stefan Kangas <stefankangas@gmail.com> + + Load desktop without prompting if process is dead + + * doc/emacs/misc.texi (Saving Emacs Sessions): Document the new + 'check' value. + * etc/NEWS: Announce the change (bug#1474). + * lisp/desktop.el (desktop-load-locked-desktop): Add new value 'check' + to load desktop file without prompting if locking Emacs process does + not exist on the local machine. (Bug#1474) + (desktop-read): Extract function from here... + (desktop--load-locked-desktop-p): ...to here. New function handles + the semantics of 'desktop-load-locked-desktop', including above new + value 'check'. + (desktop--emacs-pid-running-p): New function. + + * test/lisp/desktop-tests.el: New file with tests for the above. + +2022-03-24 Po Lu <luangruo@yahoo.com> + + Fix setter for hl-line-sticky-flag when hl-line is not loaded + + * lisp/hl-line.el (hl-line-sticky-flag): Wrap most of setter + around (featurep 'hl-line). Reported by Michael Heerdegen + <michael_heerdegen@web.de>. + +2022-03-24 Po Lu <luangruo@yahoo.com> + + Allow holding down scroll bar buttons on Haiku when overscrolling + + * src/haiku_support.cc (EmacsWindow): Set appropriate pulse + rate. + (class EmacsScrollBar, ValueChanged): Don't send any part events + here. + (MouseDown): Set dragging to a value larger than 1 if the scroll + bar is at the end. + (Pulse): New method. + +2022-03-23 Po Lu <luangruo@yahoo.com> + + Fix an infinite loop if the window manager pings Emacs during DND + + * src/xterm.c (handle_one_xevent): Work around _NET_WM_PING + infinite loop during drag and drop. + +2022-03-23 Po Lu <luangruo@yahoo.com> + + Fix copying font names around on Haiku + + * src/haiku_font_support.cc (font_style_to_flags) + (haiku_font_fill_pattern, BFont_open_pattern) + (BFont_populate_fixed_family, BFont_populate_plain_family): + * src/haiku_support.cc (be_get_version_string): + * src/haikufont.c (haikufont_spec_or_entity_to_pattern): Stop + assuming patterns were allocated by xzalloc. + +2022-03-23 Po Lu <luangruo@yahoo.com> + + Allow dragging and dropping multiple actions + + * doc/lispref/frames.texi (Drag and Drop): Document new meaning + of `action'. + * lisp/term/haiku-win.el (x-begin-drag): Correct for new meaning + of `action'. + * src/xfns.c (Fx_begin_drag): Handle new alist meaning of + `action'. + * src/xterm.c (x_dnd_begin_drag_and_drop): New parameters + `ask_action_list', `ask_action_names' and `n_ask_actions'. + * src/xterm.h: Update prototypes. + +2022-03-23 Augusto Stoffel <arstoffel@gmail.com> + + Fix regression in isearch-yank-char-in-minibuffer + + * lisp/isearch.el (isearch-yank-char-in-minibuffer): Select the + original window in order to restore point. This is needed when + minibuffer lazy highlight is in effect. + +2022-03-23 Mauro Aranda <maurooaranda@gmail.com> + + Make undigest work with multipart/mixed messages + + * test/lisp/mail/undigest.el: New test file (bug#12873). + * lisp/mail/undigest.el (rmail-digest-methods): Install + rmail-digest-parse-mixed-mime. + (rmail-content-type-boundary): New function, to get a specific + Content-type boundary. + (rmail-digest-parse-mixed-mime): New function, to search for a + multipart/digest message inside a multipart/mixed message. + +2022-03-23 Michael Albinus <michael.albinus@gmx.de> + + Make quoting of shell arguments in grep.el more robust + + * lisp/progmodes/grep.el (grep-apply-setting) + (grep-compute-defaults): Adapt docstring. + (grep-quoting-style): New variable. + (grep-compute-defaults, grep-default-command) + (grep-expand-keywords, lgrep, rgrep-default-command): Use it. + +2022-03-23 Glenn Morris <rgm@gnu.org> + + * doc/misc/eudc.texi (Inline Query Expansion): Unbreak it. + +2022-03-23 Michael Albinus <michael.albinus@gmx.de> + + Support changing remoteness of DIR in rgrep and lgrep + + * lisp/net/tramp-sh.el (tramp-get-remote-dev-tty): New defun. + (tramp-sh-handle-make-process): Use it. + + * lisp/progmodes/grep.el: Prefer #' to quote named functions. + (lgrep, rgrep): Recompute grep defaults when the remoteness of DIR + changes. + +2022-03-23 Po Lu <luangruo@yahoo.com> + + Improvements to Haiku selection handling + + * lisp/term/haiku-win.el (haiku-selection-targets): Implement in Lisp. + * src/haiku_select.cc (be_get_message_type): + (be_set_message_type): + (be_get_message_message): + (be_add_message_message): New functions. + + * src/haiku_support.cc (MessageReceived): Fix typo. + * src/haikuselect.c (haiku_selection_data_1) + (Fhaiku_selection_targets): Delete functions. + (haiku_message_to_lisp, lisp_to_type_code) + (haiku_lisp_to_message): Correctly decode and encode nested + messages, and fix encoding specially decoded types via numeric + names. Also store and decode message types inside Lisp + messages. + (Fhaiku_drag_message): Update doc string. + (syms_of_haikuselect): Update subrs. + * src/haikuselect.h: Update prototypes. + +2022-03-23 Lars Ingebrigtsen <larsi@gnus.org> + + Reinstate `C-M-<delete>' + + * lisp/bindings.el (global-map): Reinstate `C-M-<delete>' and + `C-M-<backspace>' (bug#29430). These used to kill X, but that + hasn't been the case in any common GNU/Linux distributions for + decades. + +2022-03-23 Lars Ingebrigtsen <larsi@gnus.org> + + Fix image-mode-fit-frame resizing + + * lisp/image-mode.el (image-mode-fit-frame): Use pixel sizes + instead of lines/columns to get more accurate resizing (bug#37630). + +2022-03-23 Andreas Schwab <schwab@linux-m68k.org> + + * lisp/term/pgtk-win.el: Update header comment. + +2022-03-23 Po Lu <luangruo@yahoo.com> + + Fix hl-line tests + + * lisp/hl-line.el (hl-line-mode): Restore old setter. + * test/lisp/hl-line-tests.el (hl-line-tests-verify): Don't rely + `cl-some' always returning t on success. + (hl-line-tests-sticky-across-frames): Use correct global variable. + +2022-03-23 Po Lu <luangruo@yahoo.com> + + * lisp/calendar/todo-mode.el: Restore old code. + +2022-03-23 Po Lu <luangruo@yahoo.com> + + Restore old hl-line code + + * lisp/hl-line.el: Restore old code to remove obsoletions. + (hl-line-overlay-priority): Make defcustom. + +2022-03-23 Po Lu <luangruo@yahoo.com> + + Allow retrieving some more kinds of clipboard data on Haiku + + * src/haiku_select.cc (BClipboard_find_data): Handle NULL + characters inside data correctly. + (be_lock_clipboard_message, be_unlock_clipboard): New functions. + * src/haikuselect.c (Fhaiku_selection_data): Return entire + clipboard contents as a message when clipboard is NULL. + (haiku_lisp_to_message): Allow quitting when iterating through + potentially large or circular lists. + * src/haikuselect.h (enum haiku_clipboard): New enum. + +2022-03-23 Po Lu <luangruo@yahoo.com> + + Fix crash in haiku_message_to_lisp + + * src/haikuselect.c (haiku_message_to_lisp): Block input around + `free'. + +2022-03-22 Po Lu <luangruo@yahoo.com> + + Handle quitting correctly during interprogram drag-and-drop + + * lisp/mouse.el (mouse-drag-and-drop-region): Handle quit + correctly by exiting the cross program drag and drop. + +2022-03-22 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (x_dnd_begin_drag_and_drop): Fix test against DND frame. + +2022-03-22 Po Lu <luangruo@yahoo.com> + + Don't allocate duplicate cursors for each frame on Haiku + + * src/haikufns.c (haiku_create_frame) + (haiku_free_frame_resources): Stop creating cursors. + * src/haikuterm.c (haiku_delete_terminal, haiku_term_init): + Create and free cursors here instead. + * src/haikuterm.h (struct haiku_display_info): New fields for + cursors. + +2022-03-22 Po Lu <luangruo@yahoo.com> + + Improve DND documentation + + * doc/lispref/frames.texi (Drag and Drop): + * src/xfns.c (Fx_begin_drag): Document meaning of + `XdndActionPrivate'. + +2022-03-22 Po Lu <luangruo@yahoo.com> + + Reported taken action correctly when dragging to another frame on X + + * src/xterm.c (x_dnd_cleanup_drag_and_drop, x_dnd_update_state) + (x_free_frame_resources, handle_one_xevent): Set + `x_dnd_end_window'. + (x_dnd_begin_drag_and_drop): Return `XdndActionPrivate' if the + drop landed on one of our own frames. + +2022-03-22 Andrew G Cohen <cohen@andy.bu.edu> + + Refactor gnus/nnselect artlist saving and getting + + * lisp/gnus/nnselect.el (nnselect-generate-run): New function that + replaces nnselect-run. + (nnselect-store-artlist): New function. + (nnselect-get-artlist): Update function. + (nnselect-request-group, nnselect-request-thread) + (nnselect-request-create-group, nnselect-request-group-scan): Use the + new functions. + * doc/misc/gnus.texi (Selection Groups): Document artlist storage and + retrieval. + +2022-03-22 Lars Ingebrigtsen <larsi@gnus.org> + + NEWS copy edits + +2022-03-22 Lars Ingebrigtsen <larsi@gnus.org> + + Mention highlight-confusing-reorderings in doc string + + * src/xdisp.c (Fbidi_find_overridden_directionality): Mention + highlight-confusing-reorderings. + +2022-03-22 Lars Ingebrigtsen <larsi@gnus.org> + + Mention the other-window-scroll-default user option + + * src/window.c (Fscroll_other_window): Link to + other-window-scroll-default in the doc string. + +2022-03-22 Lars Ingebrigtsen <larsi@gnus.org> + + Document outline-default-state + + * doc/emacs/text.texi (Outline Visibility): Mention + outline-default-state. + +2022-03-22 Lars Ingebrigtsen <larsi@gnus.org> + + Do some NEWS tagging + +2022-03-22 Lars Ingebrigtsen <larsi@gnus.org> + + Document sqlite-mode-open-file and do some NEWS tagging + + * doc/lispref/text.texi (Database): Mention sqlite-mode-open-file. + +2022-03-22 Alexander Adolf <alexander.adolf@condition-alpha.com> + + Enable Better Alignment of EUDC Inline Expansion With RFC5322 + + The format of EUDC inline expansion results is formatted according to + the variable eudc-inline-expansion-format, which previously defaulted + to '("%s %s <%s>" firstname name email). + + Since email address specifications need to comply with RFC 5322 in + order to be useful in messages, there was little headroom for users to + change this format anyway. Plus, if an EUDC back-end returned an empty + first and last name, the result was the email address in angle + brackets. Whilst this was standard with RFC 822, it is marked as + obsolete syntax by its successor RFC 5322. Also, the first and last + name part was never enclosed in double quotes, potentially producing + invalid address specifications, which may be rejected by a receiving + MTA. + + This commit updates the variable eudc-inline-expansion-format, so that + it can, in addition to the current ("format" attributes) list, now + alternatively be set to nil, or a formatting function. In both cases + the resulting email address is formatted using the new function + eudc-rfc5322-make-address, whose results fully comply with RFC 5322. + + If the value is nil (the new default value), eudc-rfc5322-make-address + will be called to produce any of the default formats + + ADDRESS + FIRST <ADDRESS> + LAST <ADDRESS> + FIRST LAST <ADDRESS> + + depending on whether a first and/or last name are returned by the + query, or not. + + If the value is a formatting function, that will be called to allow + the user to supply content for the phrase and comment parts of the + address (cf. RFC 5322). Thus one can produce any of the formats: + + ADDRESS + PHRASE <ADDRESS> + ADDRESS (COMMENT) + PHRASE <ADDRESS> (COMMENT) + + This can for example be used to get "last, first <address>" instead of + the default "first last <address>". + + In any case when using nil, or the formatting function, the phrase + part of the result will be enclosed in double quotes if needed, and + the comment part will be omitted if it contains characters not allowed + by RFC 5322. + + When eudc-inline-expansion-format remains set to a list as previously, + the old behavior is fully retained. + +2022-03-22 Lars Ingebrigtsen <larsi@gnus.org> + + Fix two no-X compilation warnings + + * lisp/mouse.el (x-hide-tip, x-show-tip): Declare to avoid no-X + build compilation warnings (bug#54524). + + * lisp/term/pgtk-win.el (window-system-initialization): Avoid no-X + compilation warning. + +2022-03-22 Lars Ingebrigtsen <larsi@gnus.org> + + Fix a keyboard.c no-X compilation warning + + * src/keyboard.c (make_lispy_position): Fix compilation warning in + a --without-x build. + +2022-03-22 Lars Ingebrigtsen <larsi@gnus.org> + + Make mail-header-parse-addresses-lax more lax + + * lisp/mail/mail-parse.el (mail-header-parse-addresses-lax): Be + more resilient (bug#54523). + +2022-03-22 Lars Ingebrigtsen <larsi@gnus.org> + + Fix Completion Options typo + + * doc/emacs/mini.texi (Completion Options): Fix typo. + +2022-03-22 Lars Ingebrigtsen <larsi@gnus.org> + + Add a shell-filter-ring-bell function + + * lisp/shell.el (shell-mode): Mention it. + (shell-filter-ring-bell): New function (bug#21652). + +2022-03-22 Eli Zaretskii <eliz@gnu.org> + + Fix documentation of the new completion-related features + + * etc/NEWS: + * lisp/minibuffer.el (completion-auto-help): + * doc/lispref/text.texi (Special Properties): + * doc/emacs/mini.texi (Completion Options): Fix wording of + recently added documentation and customization options. + +2022-03-22 Jimmy Aguilar Mena <spacibba@aol.com> + + Revert "Set cursor-face-highlight-nonselected-window in completions." + + This reverts commit 1641b5c04c383b5f53298d70776e3c18577b6f30. + + This fixes incorrect highlight in Completions. + +2022-03-22 Allen Li <darkfeline@felesatra.moe> + + Add user option for controlling dired-do-shell-command prompt + + * doc/emacs/dired.texi (Shell Commands in Dired): Document option + * lisp/dired-aux.el (dired-confirm-shell-command): Add option + (dired-do-shell-command): Check option before prompting + (bug#29465). + +2022-03-22 Lars Ingebrigtsen <larsi@gnus.org> + + Make eshell link faces more distinctive on 8-color displays + + * lisp/eshell/em-ls.el (eshell-ls-directory): + (eshell-ls-symlink): Make the faces be distinctive on 8-colour + displays (bug#43615). + +2022-03-22 dickmao <dick.r.chiang@gmail.com> + + Restore hl-line--buffer tracking + + * lisp/hl-line.el (hl-line-overlay, hl-line-overlay-buffer): + Correct replacement variable. + (hl-line--overlay): Clearer doc. + (hl-line--buffer): Nee hl-line-overlay-buffer + (hl-line-sticky-flag): Custom initialization is unfathomable. + (hl-line-mode, hl-line-unhighlight): Orthogonalize sticky. + (hl-line-highlight): Remove highlight from previous buffer. + * test/lisp/hl-line-tests.el (hl-line-sticky, hl-line-tests-verify): + (hl-line-tests-sticky-across-frames, hl-line-tests-sticky): + Test (bug#54481). + +2022-03-22 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "Fix dependency problem in hl-line-sticky-flag" + + This reverts commit 46daf70c4a7ce208ab0b3a7893c042fed5f022c2. + + This is fixed differently in a subsequent patch. + +2022-03-22 Lars Ingebrigtsen <larsi@gnus.org> + + Fix dependency problem in hl-line-sticky-flag + + * lisp/hl-line.el (hl-line-sticky-flag): Open-code + hl-line-unhighlight to avoid recursive dependencies (bug#54481). + +2022-03-22 Lars Ingebrigtsen <larsi@gnus.org> + + Fix color-lighten-hsl logic + + * lisp/color.el (color-lighten-hsl): Lighten by percentage, + instead of just adding the specified number to the luminance + element (bug#54514). + +2022-03-22 Lars Ingebrigtsen <larsi@gnus.org> + + Revert todo-mode tests failing after todo-mode reversion + +2022-03-22 Lars Ingebrigtsen <larsi@gnus.org> + + Add new function image-supported-file-p + + * lisp/image.el (image-type-from-file-name): Make obsolete. + (image-supported-file-p): New function that has a more sensible + value. + (image-type): Adjust caller. + + * lisp/thumbs.el (thumbs-file-size, thumbs-show-image-num): Adjust + callers. + + * lisp/mail/rmailmm.el (rmail-mime-set-bulk-data): Adjust caller + and logic. + +2022-03-22 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "Allow using image-convert to view .bmp images" + + This reverts commit ede8ad507d06a336ce8202927f214aecbaf15d6b. + + This leads to failures for usages of the function where + Emacs doesn't have support for the formats. + +2022-03-22 Po Lu <luangruo@yahoo.com> + + Simplify fullscreen management on Haiku + + * src/haiku_support.cc (class EmacsWindow, Zoom, UnZoom): Track + zoom state manually instead of guessing what the system + currently thinks it is. + (MakeFullscreen): Always unzoom first. + * src/haiku_support.h (struct haiku_zoom_event): Remove all + fields and add a single field `zoomed'. + * src/haikufns.c (haiku_create_frame, haiku_create_tip_frame): + Remove use of pending_zoom fields. + * src/haikuterm.c (haiku_read_socket): Simplify handling of zoom + events. + (haiku_fullscreen): Simplify handling of different zoom states. + * src/haikuterm.h (struct haiku_output): Remove all pending_zoom + fields since they are no longer required. + +2022-03-22 Michael Albinus <michael.albinus@gmx.de> + + Fix grep-like functions when running on a remote host + + * doc/lispref/processes.texi (Shell Arguments): + * etc/NEWS: Describe change in 'shell-quote-argument'. Fix typos. + + * lisp/subr.el (shell-quote-argument): New optional argument POSIX. + + * lisp/progmodes/grep.el (grep-compute-defaults) + (grep-default-command, grep-expand-keywords, lgrep) + (rgrep-default-command): Use POSIX argument in + `shell-quote-argument'. (Bug#54487) + +2022-03-22 Andrea Corallo <akrl@sdf.org> + + * src/comp.c: Few improvements following 71b8f1fc635. + + * src/comp.c (ABI_VERSION): Update. + (Fcomp__register_lambda, Fcomp__register_subr): Remove unnecessary + check. + * src/comp.c (Fcomp__register_lambda, Fcomp__register_subr): + Remove unnecessary change. + +2022-03-22 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (x_dnd_get_window_proto): Don't return huge protocols. + +2022-03-22 Juri Linkov <juri@linkov.net> + + Merge branch 'feature/completions-customs' + +2022-03-21 Po Lu <luangruo@yahoo.com> + + Fix starting Emacs with -mm or -fs on Haiku + + * src/haikuterm.c (haiku_set_window_size): Disallow setting the + window size if the frame is fullscreen, like most X window + managers. + +2022-03-21 Po Lu <luangruo@yahoo.com> + + Fix leak of saved menu event and output data + + * src/xterm.c (x_destroy_window, x_free_frame_resources): Free + output data and saved menu event even if display is closed. + +2022-03-21 Po Lu <luangruo@yahoo.com> + + Fix unloading the hl-line library + + * lisp/hl-line.el (hl-line-unload-function): Restore function. + +2022-03-21 Po Lu <luangruo@yahoo.com> + + Fix incompatible changes in hl-line + + * lisp/hl-line.el (hl-line-face): Rename back to hl-line. + (hl-line-face): Restore defcustom. + +2022-03-21 Juri Linkov <juri@linkov.net> + + Small fixes for new completions features + + * lisp/minibuffer.el (completions-header-format): + Rename from completion-header-format. + (completions-highlight, completions-highlight-face): + Move up before first use. + +2022-03-21 Lars Ingebrigtsen <larsi@gnus.org> + + Add new user option `diff-entire-buffers' + + * lisp/vc/diff.el (diff-entire-buffers): New user option (bug#54060). + (diff-file-local-copy): Use it. + (diff-buffers): Mention it in the doc string. + +2022-03-21 Lars Ingebrigtsen <larsi@gnus.org> + + Don't break autoload generation of `left-margin' isn't zero + + * lisp/emacs-lisp/autoload.el (make-directory-autoloads): Fix + autoload generation breakage is left-margin isn't zero (bug#54491). + +2022-03-21 Lars Ingebrigtsen <larsi@gnus.org> + + Make `n' in image-mode work more reliably with external formats + + * lisp/image-mode.el (image-mode): Init the external machinery so + that commands like `n' work for those files. + * lisp/image/image-converter.el (image-converter-initialize): + Factored out into own function. + (image-convert-p): Use it. + (image-convert): Ditto. + +2022-03-21 Lars Ingebrigtsen <larsi@gnus.org> + + Allow specifying the intermediate format + + * lisp/image/image-converter.el (image-convert-to-format): New + user format (bug#54494). + (image-convert, image-converter--convert-magick) + (image-converter--convert): Use it. + +2022-03-21 Lars Ingebrigtsen <larsi@gnus.org> + + Allow using image-convert to view .bmp images + + * lisp/image.el (image-type-from-file-name): Allow Emacs to fall + back on image-convert to display .bmp images (bug#54492). + +2022-03-21 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerated ldefs-boot.el + +2022-03-21 dickmao <dick.r.chiang@gmail.com> + + Rewrite hl-line-mode + + The fashion of dual global and minor modes, each managing a replica of + state, has long been outmoded by globalized minor modes (nee + easy-mmode-define-global-mode) around the turn of the century. + + * lisp/calendar/todo-mode.el (todo-toggle-item-highlighting, + todo-hl-line-range, todo-modes-set-2): Adapt to new + hl-line-highlight-hook. + * lisp/hl-line.el (hl-line-overlay): Rename hl-line--overlay. + (global-hl-line-overlay, global-hl-line-overlays, + global-hl-line-sticky-flag, hl-line-overlay-buffer, + hl-line-range-function): Obsolesce. + (hl-line--overlay): Erstwhile hl-line-overlay. + (hl-line, hl-line-face): Consolidate. + (hl-line-sticky-flag): Say less (Gen Z Hospital). + (hl-line-overlay-priority): Make this a custom. + (hl-line-highlight-hook): Prefer hook over specialized + hl-line-range-function. + (hl-line-mode): Say less (Gen Z Hospital). + (hl-line-make-overlay): Remove + (hl-line-highlight, hl-line-unhighlight): Rewrite. + (hl-line-maybe-unhighlight): Remove. + (hl-line-turn-on): Necessary for globalized minor mode. + (global-hl-line-mode, global-hl-line-highlight, + global-hl-line-highlight-all, global-hl-line-unhighlight, + global-hl-line-maybe-unhighlight, global-hl-line-unhighlight-all): + Prefer globalized minor mode. + (hl-line-move, hl-line-unload-function): Remove. + * test/lisp/calendar/todo-mode-tests.el (todo-test-item-highlighting, + todo-test-done-items-separator06-bol, + todo-test-done-items-separator06-eol, + todo-test-done-items-separator07): Adapt to consolidated face. + +2022-03-21 Lars Ingebrigtsen <larsi@gnus.org> + + Add a new face shr-code + + * lisp/net/shr.el (shr-code): New face (bug#54480). + (shr-tag-code): Use it. + +2022-03-21 Po Lu <luangruo@yahoo.com> + + Minor fixes to Haiku DND support + + * src/haiku_support.cc (MessageReceived): If source is remote, + don't test window ID. + (MouseMoved): Don't send mouse motion if dragging. + (be_drag_message): Return true if quit-flag. + * src/haiku_support.h: Update prototypes. + * src/haikuselect.c (haiku_should_quit_drag): New function. + (Fhaiku_drag_message): If rc is true, quit. + +2022-03-21 Jimmy Aguilar Mena <spacibba@aol.com> + + Set cursor-face-highlight-nonselected-window in completions. + + * lisp/simple.el (completion-setup-function) : Sets + cursor-face-highlight-nonselected-window to t in Completions. + +2022-03-21 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + f15922a57c Update to Org 9.5.2-25-gaf6f12 + 9fcdd5b63f Improve doc strings of read-char-from-minibuffer-insert-* ... + +2022-03-20 Po Lu <luangruo@yahoo.com> + + Improve handling of input methods during drag-and-drop + + * src/xterm.c (x_dnd_cleanup_drag_and_drop) + (x_dnd_begin_drag_and_drop): Stop removing IC and filter events + before dispatching them. + (x_filter_event): Actually filter events during DND. + (XTread_socket): Verify GenericEvents are actually input + extension events before ignoring them. + +2022-03-20 Po Lu <luangruo@yahoo.com> + + Make quitting work while DND is waitng for finish + + * src/xterm.c (x_dnd_cleanup_drag_and_drop): + (x_dnd_begin_drag_and_drop, handle_one_xevent) + (x_free_frame_resources): Clear waiting for finish flag. + (x_filter_event): Don't filter if waiting for DND finish as + well. + +2022-03-20 Dmitry Gutov <dgutov@yandex.ru> + + Support indentation of Ruby pattern matching expressions + + * lisp/progmodes/ruby-mode.el (ruby-smie-grammar, ruby-smie-rules) + (ruby-block-mid-keywords): Treat 'in' token similarly to 'when'. + + * test/lisp/progmodes/ruby-mode-resources/ruby.rb: + Add indentation example. + +2022-03-20 Andrew G Cohen <cohen@andy.bu.edu> + + Fix imap fetching multiple mailboxes (bug#54158) + + * lisp/gnus/mail-source.el (mail-source-fetch-imap): Variables + mailbox-source-string and remove should be reset for each mailbox. + +2022-03-20 Juri Linkov <juri@linkov.net> + + * etc/NEWS: Mention new hook 'minibuffer-lazy-highlight-setup'. + +2022-03-20 Augusto Stoffel <arstoffel@gmail.com> + + Add lazy highlight to 'isearch-edit-string' + + * lisp/isearch.el (isearch-edit-string): Activate lazy highlight and + lazy count, provided 'isearch-lazy-highlight' respectively + 'isearch-lazy-count' are non-nil. + +2022-03-20 Augusto Stoffel <arstoffel@gmail.com> + + Allow lazy highlight and match count while reading from minibuffer + + * lisp/isearch.el (minibuffer-lazy-highlight-setup): New function, can + be added to 'minibuffer-setup-hook' to enable lazy highlight and count + while reading from minibuffer. + (minibuffer-lazy-count-format, minibuffer-lazy-highlight-transform, + minibuffer-lazy-highlight--overlay, minibuffer-lazy-highlight--count, + minibuffer-lazy-highlight--after-change, + minibuffer-lazy-highlight--exit): Auxiliary variables and functions + implementing the lazy highlight functionality while reading from + minibuffer. + +2022-03-20 Augusto Stoffel <arstoffel@gmail.com> + + New hook, lazy-count-update-hook + + * lisp/isearch.el (lazy-count-update-hook): New hook allowing to + display the lazy count in special ways. + (isearch-lazy-highlight-new-loop, + isearch-lazy-highlight-buffer-update): Run `lazy-count-update-hook' at + appropriate times. + * lisp/comint.el (comint-history-isearch-setup, + comint-history-isearch-end): Make sure no lazy count is displayed. + * lisp/simple.el (minibuffer-history-isearch-setup): Make sure no lazy + count is displayed. + +2022-03-20 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el (tab-bar-new-tab-to): Don't funcall const values. + + Filter out the values 'clone' and 'window' of 'tab-bar-new-tab-choice' + from function call. + +2022-03-20 Michael Albinus <michael.albinus@gmx.de> + + Extend connection-local variables example in Elisp manual + + * doc/lispref/variables.texi (Connection Local Variables): + Explain, how to append variable settings to an existing profile. + +2022-03-20 Paul Eggert <eggert@cs.ucla.edu> + + Remove duplicate INLINE_HEADER_BEGIN + + * src/thread.h: Remove duplicate INLINE_HEADER_BEGIN. + Problem reportd by Mattias Engdegård. + +2022-03-20 Felicián Németh <felician.nemeth@gmail.com> + + Add simple support for workspacefolders + + Close https://github.com/joaotavora/eglot/issues/893. + + Clients can support workspaceFolders since LSP 3.6. rootUri and + rootPath are deprecated. Dynamic changes in folders are not + supported, i.e., this patch does not implement + workspace/didChangeWorkspaceFolders. + + * eglot.el (eglot-client-capabilities): Add capability + `workspaceFolders'. + (eglot-workspace-folders): New cl-defgeneric. + (eglot--connect): Add workspaceFolders to initializeParams. + (eglot-handle-request workspace/workspaceFolders): New cl-defmethod. + +2022-03-20 Po Lu <luangruo@yahoo.com> + + Fix confusion of wanted action with actual action on X + + * src/xterm.c (x_dnd_begin_drag_and_drop) + (x_dnd_update_state, handle_one_xevent): Differentiate between + wanted action and chosen action correctly. + +2022-03-20 Manuel Giraud <manuel@ledu-giraud.fr> + + Fix wrong password stored in Tramp + + * lisp/net/tramp.el (tramp-process-actions): + Unset `tramp-password-save-function'. + +2022-03-20 Po Lu <luangruo@yahoo.com> + + Make DND between frames work properly + + * src/xterm.c (handle_one_xevent): Don't wait for a finish event + when dropping on top of another Emacs frame. + +2022-03-20 Po Lu <luangruo@yahoo.com> + + Improve compliance with version 5 of the XDND specification + + * src/xterm.c (x_dnd_cleanup_drag_and_drop): New function. + (x_dnd_begin_drag_and_drop): Handle selection request events + immediately. + (handle_one_xevent): Wait for XdndFinished events and return the + action chosen there. + +2022-03-20 Po Lu <luangruo@yahoo.com> + + Fix some crashes in shut_down_emacs on Haiku + + * src/emacs.c (shut_down_emacs): Stop quitting be app, since + it's not always there. + +2022-03-20 Po Lu <luangruo@yahoo.com> + + Implement `haiku_delete_terminal' + + * src/haikuterm.c (haiku_delete_terminal): Actually delete the + terminal instead of aborting. + +2022-03-20 Po Lu <luangruo@yahoo.com> + + Check list tail properly in x-begin-drag + + * src/xfns.c (Fx_begin_drag): Check that TARGETS is actually a + proper list. + * src/xterm.c (x_dnd_update_state): Remove debugging code. + +2022-03-19 Po Lu <luangruo@yahoo.com> + + Fix crash on some compositing managers + + * src/xterm.c (x_dnd_get_target_window): Catch errors around + CompositeReleaseOverlayWindow. + +2022-03-19 Po Lu <luangruo@yahoo.com> + + Improve behavior of drag-n-drop during window manager operations + + * src/xterm.c (x_dnd_begin_drag_and_drop): Select for some + events on the root window. + (x_dnd_update_state): New function. + (handle_one_xevent): Call that function when we get some events + from the root window substructure or the window manager. + (x_term_init): New atom `_NET_CLIENT_LIST_STACKING'. + * src/xterm.h (struct x_display_info): New atom + `_NET_CLIENT_LIST_STACKING'. + +2022-03-19 Paul Eggert <eggert@cs.ucla.edu> + + Port to gcc -D EMACS_EXTERN_INLINE + + * src/comp.h, src/thread.h: Add INLINE_HEADER_BEGIN and + INLINE_HEADER_END, since it uses INLINE. + * src/emacs.c: Include these two files. + +2022-03-19 Paul Eggert <eggert@cs.ucla.edu> + + valid_sp inline fix + + * src/bytecode.c (valid_sp): static, not INLINE, as INLINE + should be used only in headers and between INLINE_HEADER_BEGIN + and INLINE_HEADER_END. No need for ‘inline’ here. + +2022-03-19 Paul Eggert <eggert@cs.ucla.edu> + + Simplify alloc.c static function decls + + * src/alloc.c: Omit unnecessary static function declarations. + Don’t use ‘inline static’ as the C standard says that keyword + order is obsolescent. Anyway, no need for ‘inline’ as compilers + inline without it well enough. + +2022-03-19 Paul Eggert <eggert@cs.ucla.edu> + + Make native helper functions static + + These don’t need to be extern, even with -flto, since + their addresses are taken. + * src/comp.c (helper_unwind_protect, helper_unbind_n) + (helper_save_restriction, helper_GET_SYMBOL_WITH_POSITION) + (helper_PSEUDOVECTOR_TYPEP_XUNTAG): Now static. + +2022-03-19 Paul Eggert <eggert@cs.ucla.edu> + + Remove unused fns/data and make fns static + + * src/comp.c (saved_sigset, helper_temp_output_buffer_setup): + Remove; unused. + * src/comp.c (logfile, helper_link_table): + * src/fns.c (hashfn_equal, hashfn_eql): + * src/frame.c (frame_windows_min_size): + * src/gnutls.c (emacs_gnutls_global_init): + * src/minibuf.c (Vcommand_loop_level_list): + * src/syntax.c (syntax_code_spec): + * src/timefns.c (time_overflow): + * src/xterm.c (x_xrender_color_from_gc_foreground) + (x_display_set_last_user_time): + Now static, since it’s not used elsewhere. + * src/xterm.c (x_xrender_color_from_gc_foreground) + (x_xrender_color_from_gc_background): Move earlier to avoid + forward use. + (x_xrender_color_from_gc_foreground): Do not define unless + !defined USE_CAIRO && (RENDER_MAJOR > 0 || RENDER_MINOR >= 2), + since it’s not used otherwise. + +2022-03-19 Paul Eggert <eggert@cs.ucla.edu> + + Use filenvercmp instead of doing it by hand + + * src/fns.c (Fstring_version_lessp): Use filenvercmp, + not string_version_cmp. + (string_version_cmp): Remove; no longer used. + +2022-03-19 Paul Eggert <eggert@cs.ucla.edu> + + Omit unnecessary code when !HAVE_NATIVE_COMP + + * src/decompress.c (MD5_BLOCKSIZE, acc_buf, acc_size) + (accumulate_and_process_md5, final_process_md5, md5_gz_stream): + * src/dynlib.c (dynlib_open_for_eln, dynlib_close) [!WINDOWSNT]: + * src/fileio.c (internal_delete_file_1, internal_delete_file): + Define only if HAVE_NATIVE_COMP && WINDOWSNT, + as they’re not used otherwise. + +2022-03-19 Paul Eggert <eggert@cs.ucla.edu> + + Remove internal_condition_case_[345] + + * src/comp.c (directory_files_matching) [WINDOWSNT]: New function. + (eln_load_path_final_clean_up) [WINDOWSNT]: Use it. + This removes the need for internal_condition_case_5. + * src/eval.c (internal_condition_case_3) + (internal_condition_case_4, internal_condition_case_5): Remove. + The first two were never used; the last only in now-removed code. + +2022-03-19 Paul Eggert <eggert@cs.ucla.edu> + + Remove sanitize_window_sizes + + * src/window.c (sanitize_window_sizes): Remove; no-longer-used. + A previous refactoring moved this to Lisp without removing the C code. + +2022-03-19 Lars Ingebrigtsen <larsi@gnus.org> + + Make `command-modes' work for (native-compiled) subrs, too + + * lisp/emacs-lisp/comp.el (comp-func): Add a command-modes slot. + (comp-spill-lap-function, comp-intern-func-in-ctxt): Fill it. + (comp-emit-for-top-level, comp-emit-lambda-for-top-level): Use it. + + * src/alloc.c (mark_object): Mark the command_modes slot. + + * src/comp.c (make_subr): Add a command_modes parameter. + (Fcomp__register_lambda): Use it. + (Fcomp__register_subr): Ditto. + + * src/data.c (Fcommand_modes): Output the command_modes data for subrs + (bug#54437). + + * src/lisp.h (GCALIGNED_STRUCT): Add a command_modes slot. + + * src/pdumper.c (dump_subr): Update hash. + (dump_subr): Dump the command_modes slot. + +2022-03-19 Po Lu <luangruo@yahoo.com> + + Improve protection against faulty clients during DND + + * src/xterm.c (x_dnd_send_enter, x_dnd_send_position) + (xdnd_send_leave, x_dnd_send_drop): Catch errors around call to + XSendEvent. The target window could be gone. + +2022-03-19 Guy Gastineau <strings.stringsandstrings@gmail.com> (tiny change) + + Remove redundant checks in erc--switch-to-buffer + + * lisp/erc/erc.el (erc--switch-to-buffer): Commit + f925fc93bac41d7622d1af927e33b0e738ff55b0 "Add `predicate' arg to + `read-buffer' and use it for erc-iswitchb" meant to remove this, but + it was left behind. (Bug#53617) + +2022-03-19 F. Jason Park <jp@neverwas.me> + + Add unit test for erc--switch-to-buffer + + * test/lisp/erc/erc-tests.el (erc--switch-to-buffer): Add new test. + (Bug#53617) + +2022-03-19 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + e059d7c Fix region highlight in non-selected windows + +2022-03-19 Po Lu <luangruo@yahoo.com> + + Ignore drag source frame on Haiku in line with documentation + + * src/haiku_support.cc (class EmacsWindow): New field + `window_id'. + (MessageReceived): Ignore dropped messages with same window id. + (be_drag_message): Add source frame's window ID to message. + +2022-03-19 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + c4596c8522 Fix a regression in 'decipher-digram-list' + +2022-03-18 Po Lu <luangruo@yahoo.com> + + Document dired-mouse-drag-files + + * doc/emacs/dired.texi (Misc Dired Features): Explain that + dragging files is now supported. + * etc/NEWS: Update documentation status. + * lisp/dired.el (dired-mouse-drag-files): Fix typo in doc + string. + +2022-03-18 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (XTread_socket): Don't filter GenericEvents. + +2022-03-18 Po Lu <luangruo@yahoo.com> + + Fix some glitches when dragging files from dired + + * lisp/dired.el (dired-mouse-drag-files): Fix initial values. + + (dired-mouse-drag): Clear mark if active and only make button + release events unread. + +2022-03-18 Po Lu <luangruo@yahoo.com> + + Handle composite overlay window during drag and drop sessions + + * configure.ac: Test for the composite extension and use it if + available. + * msdos/sed1v2.inp: Update. + * src/Makefile.in (XCOMPOSITE_LIBS, XCOMPOSITE_CFLAGS): New + variables. + (EMACS_CFLAGS, LIBES): Add new libs and cflags. + * src/xterm.c (x_dnd_get_target_window): Look for proxy on + composite overlay window if mapped. + (x_term_init): Test if the composite extension is available. + * src/xterm.h (struct x_display_info): New fields for composite + extension presence. + +2022-03-18 Po Lu <luangruo@yahoo.com> + + Fix some XIM servers getting confused during drag-and-drop + + * src/xterm.c (x_dnd_begin_drag_and_drop): Clear XIC while event + loop is in progress. + (x_filter_event): Return 0 if DND is in progress. + (xim_instantiate_callback): Likewise. + +2022-03-18 Jimmy Aguilar Mena <spacibba@aol.com> + + cursor-face-highlight-nonselected-window default to nil + + * lisp/simple.el (redisplay--update-cursor-face-highlight) : Use if-let* + and not check facep. + (cursor-face-highlight-nonselected-window) : default to nil + +2022-03-18 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/bytecomp.el (byte-compile-make-closure): Minor optimization + +2022-03-18 Stefan Monnier <monnier@iro.umontreal.ca> + + Pcomplete: Better obey `completion-at-point-functions` + + Functions on `completion-at-point-functions` should not modify + the buffer. Pcomplete itself mostly abides by this but Eshell's + use of it doesn't. Try and catch those cases. Also fix one of + those cases. + + * lisp/pcomplete.el (pcomplete-allow-modifications): New var. + (pcomplete-completions-at-point): Enforce it. + (pcomplete, pcomplete-expand-and-complete, pcomplete-expand): + Rebind it since these commands expect the extra side effects. + + * lisp/eshell/em-cmpl.el (eshell--pcomplete-insert-tab): New function, + extracted from `eshell-complete-parse-arguments`. + (eshell-complete-parse-arguments): Use it and obey + `pcomplete-allow-modifications`. + +2022-03-18 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/gnus/mail-source.el (mail-source-set-1): Fix indent and simplify + +2022-03-18 Mattias Engdegård <mattiase@acm.org> + + Speed up fixnum printing + + Use the new number-to-string code to speed up fixnum printing, with + similar results (often more than twice as fast as before). + + * src/data.c (Fnumber_to_string): Move fixnum conversion to... + (fixnum_to_string): ... this new function. + * src/lisp.h: (fixnum_to_string): External declaration. + * src/print.c (print_object): Use fixnum_to_string instead of sprintf. + +2022-03-18 Michael Albinus <michael.albinus@gmx.de> + + Make application configurable in 'with-connection-local-variables' + + * doc/lispref/variables.texi (Connection Local Variables): + Explain 'connection-local-default-application'. + + * etc/NEWS: Mention 'connection-local-default-application'. + + * lisp/files-x.el (connection-local-default-application): New variable. + (connection-local-criteria-for-default-directory): Use it. (Bug#54405) + + * test/lisp/files-x-tests.el + (files-x-test-with-connection-local-variables): Extend test. + +2022-03-18 João Távora <joaotavora@gmail.com> + + Defend against broken move-to-column in recent emacs + + * eglot.el (eglot-lsp-abiding-column): Use (min (point) (point-max)) + + This is a defensive fix for an Emacs/company-mode problem described + below. + + The problem can be reproduced in Eglot before this commit with: + + ~/Source/Emacs/emacs/src/emacs -Q -f package-initialize -L \ + ~/Source/Emacs/company-mode -l company -f global-company-mode -l \ + eglot.el ~/tmp/issue-860/args_out_of_range.c -f eglot -f \ + display-line-numbers-mode -f toggle-debug-on-error + + 1 // args_out_of_range.c + 2 struct Book { + 3 int id; + 4 char title[50] + 5 } book = { 1024, "C" }; + 6 + 7 int main(int argc, char *argv[]) + 8 { + 9 + 10 // Error when typing the dot to make "book." + 11 book + 12 return 0; + 13 } + + When one types the dot after the "book" on line 11, company-mode + displays a two-line overlay that visually encompasses line 12 after + "book", which has the "return 0;" statement. That line happens to + also hold a warning about incorrect syntax, one that starts at column + 2. + + Eglot uses 'move-to-column' to go that precise place. + + In Emacs 27.2, move-to-column is unaffected by previous company-mode + overlays, even if the current line is being co-used visually by the + overlay. It moves to the right buffer position. + + In Emacs master, this isn't true. It seems to be confounded by the + company-mode overlay and moves to eob, which eventually breaks Eglot + with a backtrace such as this one: + + Debugger entered--Lisp error: (args-out-of-range #<buffer args_out_of_range.c> 110 124) + encode-coding-region(110 124 utf-16 t) + (length (encode-coding-region (or lbp (line-beginning-position)) (point) 'utf-16 t)) + (- (length (encode-coding-region (or lbp (line-beginning-position)) (point) 'utf-16 t)) 2) + (/ (- (length (encode-coding-region (or lbp (line-beginning-position)) (point) 'utf-16 t)) 2) 2) + eglot-lsp-abiding-column(110) + (- column (eglot-lsp-abiding-column lbp)) + (setq diff (- column (eglot-lsp-abiding-column lbp))) + (progn (setq diff (- column (eglot-lsp-abiding-column lbp))) (not (= 0 diff))) + (while (progn (setq diff (- column (eglot-lsp-abiding-column lbp))) (not (= 0 diff))) (condition-case eob-err (forward-char (/ (if (> diff 0) (1+ diff) (1- diff)) 2)) (end-of-buffer (throw '--cl-block-nil-- eob-err))) (setq --cl-var-- nil)) + (let* ((lbp (line-beginning-position)) (diff nil) (--cl-var-- t)) (narrow-to-region lbp (line-end-position)) (move-to-column column) (while (progn (setq diff (- column (eglot-lsp-abiding-column lbp))) (not (= 0 diff))) (condition-case eob-err (forward-char (/ (if (> diff 0) (1+ diff) (1- diff)) 2)) (end-of-buffer (throw '--cl-block-nil-- eob-err))) (setq --cl-var-- nil)) nil) + (catch '--cl-block-nil-- (let* ((lbp (line-beginning-position)) (diff nil) (--cl-var-- t)) (narrow-to-region lbp (line-end-position)) (move-to-column column) (while (progn (setq diff (- column (eglot-lsp-abiding-column lbp))) (not (= 0 diff))) (condition-case eob-err (forward-char (/ (if (> diff 0) (1+ diff) (1- diff)) 2)) (end-of-buffer (throw '--cl-block-nil-- eob-err))) (setq --cl-var-- nil)) nil)) + (save-restriction (catch '--cl-block-nil-- (let* ((lbp (line-beginning-position)) (diff nil) (--cl-var-- t)) (narrow-to-region lbp (line-end-position)) (move-to-column column) (while (progn (setq diff (- column (eglot-lsp-abiding-column lbp))) (not (= 0 diff))) (condition-case eob-err (forward-char (/ (if ... ... ...) 2)) (end-of-buffer (throw '--cl-block-nil-- eob-err))) (setq --cl-var-- nil)) nil))) + eglot-move-to-lsp-abiding-column(2) + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/860 + +2022-03-18 Mattias Engdegård <mattiase@acm.org> + + Speed up number-to-string for fixnums + + Do the binary-to-decimal conversion by hand for fixnums instead of + calling sprintf. This results in a noticeable speed increase (on my + machine, 2.2× faster excluding GC). + + * src/data.c (Fnumber_to_string): Don't use sprintf for fixnums. + +2022-03-18 Po Lu <luangruo@yahoo.com> + + Implement drag-and-drop of files on Haiku + + * lisp/term/haiku-win.el (haiku-dnd-selection-converters): Add + new selection converter. + (haiku-dnd-convert-uri-list): New function. + (x-begin-drag): Allow selection converters to change message + field type. + + * src/haikuselect.c (haiku_lisp_to_message): Perform more error + checking. + +2022-03-18 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 530c3491e8 Improve documentation of bookmark default sorting + 11492259b1 ; * doc/lispref/display.texi (Overlay Arrow): More accurat... + +2022-03-18 Po Lu <luangruo@yahoo.com> + + Allow dragging messages with file names on Haiku + + * src/haiku_select.cc (be_add_refs_data): New function. + * src/haikuselect.c (haiku_lisp_to_message): Handle `ref' type + correctly. + * src/haikuselect.h: Update prototypes. + +2022-03-18 Po Lu <luangruo@yahoo.com> + + Allow dragging files from Dired to other programs + + * etc/NEWS: Announce new user option `dired-mouse-drag-files'. + * lisp/dired.el (dired-mouse-drag-files): New user option. + (dired-mouse-drag): New command. + (dired-mouse-drag-files-map): New variable. + (dired-insert-set-properties): Add additional keymap if mouse + dragging is enabled. + + * lisp/select.el (xselect-convert-to-targets): Handle new + form of selection converters. + (xselect-convert-to-username): + (xselect-convert-to-text-uri-list): + (xselect-uri-list-available-p): New functions. + (selection-converter-alist): Add them as selection converters. + + * src/xselect.c (x_get_local_selection): Handle new form of + selection converters. + (syms_of_xselect): Update doc strings. + +2022-03-17 Po Lu <luangruo@yahoo.com> + + Minor fixes to DND support + + * src/xterm.c (x_dnd_begin_drag_and_drop): Free targets + afterwards. + (handle_one_xevent): Only calculate dnd_grab if DND is in + progress. + +2022-03-17 Stefan Monnier <monnier@iro.umontreal.ca> + + Remove some early-bootstrap dependencies for `advice` + + The dependencies between `advice`, cl-generic`, `bytecomp`, `cl-lib`, + `simple`, `help`, ... were becoming unmanageable. + Break the reliance on `advice` (which includes making sure the + compiler is not needed during the early bootstrap). + + * lisp/simple.el (pre-redisplay-function): Set without using `add-function`. + + * lisp/loadup.el (advice, simple): Move to after `cl-generic`. + + * lisp/help.el (command-error-function): Set without using `add-function`. + (help-command-error-confusable-suggestions): Explicitly call + `command-error-default-function` instead. + + * lisp/emacs-lisp/cl-macs.el (pcase--mutually-exclusive-p): Don't + optimize during early-bootstrap. + + * lisp/emacs-lisp/cl-generic.el (cl--generic-lambda): Tiny simplification. + (cl-defmethod): Label the obsolescence warning as it should. + (cl--generic-compiler): New variable. + (cl--generic-get-dispatcher): Use it. + (cl--generic-prefill-dispatchers): Make freshly made dispatchers. + +2022-03-17 Jimmy Aguilar Mena <spacibba@aol.com> + + Add new variable cursor-face-highlight-nonselected-window + + * lisp/simple.el (cursor-face-highlight-nonselected-window) : New + custom default to cursor-in-non-selected-windows. + (redisplay--update-cursor-face-highlight) : Extend highlight condition + to consider the new variable. + +2022-03-17 Mattias Engdegård <mattiase@acm.org> + + Put bytecode stack frame metadata in a struct + + Using a plain C struct instead of type-punning Lisp_Object stack slots + makes the bytecode interpreter code more type-safe and potentially + faster (from better alias analysis), and the special-purpose accessors + are no longer needed. It also reduces the stack requirements when + using 64-bit Lisp_Object on 32-bit platforms. + + * src/bytecode.c (enum stack_frame_index) + (sf_get_ptr, sf_set_ptr, sf_get_lisp_ptr, sf_set_lisp_ptr, + sf_get_saved_pc, sf_set_saved_pc): Remove. + (BC_STACK_SIZE): Now in bytes, not Lisp words. + (struct bc_frame): New. + (init_bc_thread, mark_bytecode, Finternal_stack_stats, valid_sp) + (exec_byte_code): + * src/lisp.h (struct handler, get_act_rec, set_act_rec): + Adapt to new struct bc_frame. + +2022-03-17 Lars Ingebrigtsen <larsi@gnus.org> + + Restore HOME after mailcap-parsing-and-mailcap-mime-info + + * test/lisp/net/mailcap-tests.el + (mailcap-parsing-and-mailcap-mime-info): Restore HOME after the + test (bug#54435). + +2022-03-17 Michael Albinus <michael.albinus@gmx.de> + + Enable Tramp reloading + + * lisp/net/tramp.el (tramp-file-name): Add ;;;###tramp-autoload + cookie. (Bug#50869) + + * test/lisp/net/tramp-tests.el (tramp-test47-unload): Do not skip. + Test reload. + +2022-03-17 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Warn suspicious args + +2022-03-17 Lars Ingebrigtsen <larsi@gnus.org> + + Avoid repeated prompts in `M-x shell' if using ~/.emacs_bash + + * lisp/shell.el (shell): Use `shell-eval-command' to avoid + repeated prompts (bug#9961). + +2022-03-17 Lars Ingebrigtsen <larsi@gnus.org> + + Make shell-resync-dirs work with zsh + + * lisp/shell.el (shell-resync-dirs): Use shell-eval-command to + avoid getting confused by zsh (bug#54384). + (shell-eval-command): New function. + +2022-03-17 Stefan Monnier <monnier@iro.umontreal.ca> + + (seq-contains-p): Refine the non-nil returned value + + * lisp/emacs-lisp/seq.el (seq-contains-p): Like `cl-some` return the + value returned by the test function rather than t. + +2022-03-17 Philipp Stephani <phst@google.com> + + Fix a use of 'cl-defgeneric'. + + * lisp/progmodes/xref.el (xref-match-length): Use 'cl-defmethod' + instead of 'cl-defgeneric'. + +2022-03-17 Lars Ingebrigtsen <larsi@gnus.org> + + Make `?' work again in read-multiple-choice + + * lisp/emacs-lisp/rmc.el (read-multiple-choice): Make the `?' key + work again to show the help text. + +2022-03-17 Felician Nemeth <felician.nemeth@gmail.com> + + Format long help texts better in read-multiple-choice + + * lisp/emacs-lisp/rmc.el (rmc--show-help): Format long help texts + better (bug#54430). + +2022-03-17 Andrew G Cohen <cohen@andy.bu.edu> + + Improve propagation of gnus/nnselect group info + + * lisp/gnus/nnselect.el (nnselect-push-info): Speed up pushing the + nnselect info back to the originating groups. + +2022-03-17 Andrew G Cohen <cohen@andy.bu.edu> + + Fix bug in nnselect fetching new articles in a thread + + * lisp/gnus/nnselect.el (nnselect-request-thread): Ignore the + Retrieval Status Value in comparing whether articles are the same. + +2022-03-17 Sean Whitton <spwhitton@spwhitton.name> + + Don't use the original sender's address as the envelope-from + + * lisp/gnus/message.el (message-resend): Avoid setting the + envelope-from to the original sender's address rather than the + resender's (bug#54429). + +2022-03-17 Arash Esbati <arash@gnu.org> + + Improve LaTeX symbol prettification + + * lisp/textmodes/tex-mode.el (tex--prettify-symbols-alist): + Support macros which used to be part of textcomp package. + +2022-03-17 Po Lu <luangruo@yahoo.com> + + Prevent invisible frames from acting as drag sources + + * src/xterm.c (x_dnd_begin_drag_and_drop): Error out if f is + invisible. It makes no sense for an invisible frame to be a + drag source, so the function just hangs. + +2022-03-17 Po Lu <luangruo@yahoo.com> + + * src/haikuselect.c (Fhaiku_drag_message): Clear display grab after drag ends. + +2022-03-17 Po Lu <luangruo@yahoo.com> + + Fix creating frames with an initial value of `fullscreen' on Haiku + + * src/haikufns.c (haiku_create_frame): Set configury_done and do + pending fullscreen change if any. + * src/haikuterm.c (haiku_fullscreen): Defer actually setting + fullscreen until configury_done is set. + * src/haikuterm.h (struct haiku_output): New field + `configury_done'. + +2022-03-17 Michael Albinus <michael.albinus@gmx.de> + + Do not cache directories with Tramp sshfs + + * lisp/net/tramp-sshfs.el (tramp-methods) <sshfs>: + Add "-o dir_cache=no" to `tramp-mount-args'. (Bug#54126) + +2022-03-17 Po Lu <luangruo@yahoo.com> + + Fix mouse movement on Haiku + + * src/haiku_support.cc (MouseMoved): Make sure grab view exists + before comparing against it. + +2022-03-17 Po Lu <luangruo@yahoo.com> + + Display drag-and-drop messages in echo area on non-graphics displays + + * lisp/mouse.el (mouse-drag-and-drop-region-display-tooltip) + (mouse-drag-and-drop-region-hide-tooltip): New functions. + (mouse-drag-and-drop-region): Use them instead of calling + `x-hide-tip' and `x-show-tip' directly. + +2022-03-17 Eli Zaretskii <eliz@gnu.org> + + Fix compilation error of xterm.c + + * src/xterm.c (x_dnd_begin_drag_and_drop): Use current_count only + if defined. Reported by Tassilo Horn <tsdh@gnu.org>. + +2022-03-17 Po Lu <luangruo@yahoo.com> + + Prevent delivery of duplicate events when window is grabbed on Haiku + + * src/haiku_support.cc (grab_view, grab_view_locker): New + variables. + (MouseMoved, MouseDown, MouseUp): Keep track of the grab and + don't deliver motion events to any other view. + +2022-03-17 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (x_dnd_begin_drag_and_drop): Always initialize hold_quit. + +2022-03-16 Po Lu <luangruo@yahoo.com> + + Restore old PGTK scrolling code + + * src/pgtkterm.c (pgtk_copy_bits): Restore old code using + cairo_surface_create_similar. (bug#54040) + +2022-03-16 Po Lu <luangruo@yahoo.com> + + Make GTK inspector available on PGTK + + * src/pgtkfns.c (Fx_gtk_debug): New function. + (syms_of_pgtkfns): Define new subr. + +2022-03-16 Po Lu <luangruo@yahoo.com> + + * lisp/term/haiku-win.el (x-begin-drag): Fix type code of B_MIME_TYPE. + +2022-03-16 Po Lu <luangruo@yahoo.com> + + Implement cross-program drag-and-drop on Haiku + + * doc/lispref/frames.texi (Drag and Drop): Fix documentation of + `x-begin-drag' to match actual function arity. + * lisp/term/haiku-win.el (haiku-dnd-selection-value): New + variable. + (haiku-dnd-selection-converters): New variable. + (haiku-dnd-convert-string): New function. + (gui-backend-get-selection, gui-backend-set-selection): Handle + XdndSelection specially. + (x-begin-drag): New function. + + * src/haiku_select.cc (be_create_simple_message) + (be_add_message_data): New functions. + * src/haiku_support.cc (WAIT_FOR_RELEASE): New message type. + (class EmacsView, MouseUp): If waiting for release, reply and + drop event. + (be_drag_message, be_drag_message_thread_entry): New functions. + * src/haiku_support.h: Update prototypes. + + * src/haikuselect.c (lisp_to_type_code, haiku_lisp_to_message) + (Fhaiku_drag_message): New functions. + (syms_of_haikuselect): Define new subr. + + * src/haikuselect.h: Update prototypes. + +2022-03-16 Po Lu <luangruo@yahoo.com> + + Improve GTK support for X11 drag-n-drop + + * src/xterm.c (x_dnd_begin_drag_and_drop): Run nested GTK event + loop instead, so GTK gets the correct events. + +2022-03-16 Paul Eggert <eggert@cs.ucla.edu> + + Simplify generate-new-buffer-name randomness + + * src/buffer.c (Fgenerate_new_buffer_name): + Simplify by calling get_random instead of Frandom; + that’s random enough here. + +2022-03-16 Paul Eggert <eggert@cs.ucla.edu> + + Improve random bignum generation + + * src/bignum.c (get_random_limb, get_random_limb_lim) + (get_random_bignum): New functions, for more-efficient + generation of random bignums without using Frem etc. + * src/fns.c (get_random_fixnum): New function. + (Frandom): Use it, and get_random_bignum. + Be consistent about signaling nonpositive integer arguments; + since zero is invalid, Qnatnump is not quite right here. + * src/sysdep.c (get_random_ulong): New function. + +2022-03-16 Alan Mackenzie <acm@muc.de> + + Strip positions from symbols before the eval in eval-{when,and}-compile. + + This fixes bug #54079. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment): Change + the position of 'byte-run-strip-symbol-positions' in the eval-when-compile + entry. Add a call to `byte-run-strip-symbol-positions' in the + eval-and-compile entry. + +2022-03-16 Robert Pluim <rpluim@gmail.com> + + Report buffer-name when local mode-line is invalid + + * lisp/files.el (hack-local-variables-prop-line): Add '(buffer-name)' + to the message reporting the malformed mode-line. + +2022-03-16 Robert Pluim <rpluim@gmail.com> + + Guard against custom entries that can contain NULs + + There are custom entries that contain lambda's as values by default, + which can result in them containing embedded NULs after + byte-compilation, which wreaks havoc when they are saved to .emacs and + later read in. (Bug#52554) + + * lisp/cus-edit.el (custom-save-all): Bind + print-escape-control-characters to t. + * lisp/startup.el (startup--load-user-init-file): Bind + inhibit-null-byte-detection to t. + +2022-03-16 Robert Pluim <rpluim@gmail.com> + + Improve error message for 'not running' processes + + The current error message is simply 'not running', but + 'status_message' can give information about why the process is in that + state, such as network errors, so return that as well. (Bug#53762) + + * src/process.c (send_process, Fprocess_send_eof): Add the output of + 'status_message' to the error string. + +2022-03-16 Manuel Giraud <manuel@ledu-giraud.fr> + + * lisp/net/tramp-sh.el (tramp-find-file-exists-command): Fix comment. + +2022-03-16 Robert Pluim <rpluim@gmail.com> + + Link with libdl when using pgtk + + * configure.ac: Define LIBMODULES on GNU/Linux when using pgtk, even + when not using modules, since pgtkterm.c uses dlsym. (Bug#54378) + +2022-03-16 Po Lu <luangruo@yahoo.com> + + * doc/lispref/frames.texi (x-begin-drag): Improve wording. + +2022-03-16 Po Lu <luangruo@yahoo.com> + + Fix 32-bit Haiku build + + * src/haikuselect.h (be_enum_message): Fix declaration for + 32-bit types. + +2022-03-16 Po Lu <luangruo@yahoo.com> + + Add support for dropping plain text on Haiku + + * haiku-win.el (haiku-dnd-handle-drag-n-drop-event): Handle + `text/plain'. + +2022-03-16 Po Lu <luangruo@yahoo.com> + + Redo Haiku DND support + + * lisp/term/haiku-win.el (haiku-dnd-handle-drag-n-drop-event): + Update for new DND event format. + * src/haiku_io.c (haiku_len): Handle DRAG_AND_DROP_EVENTs. + * src/haiku_select.cc (be_enum_message, be_get_refs_data) + (be_get_message_data): New function. + * src/haiku_support.cc (class Emacs): Remove `RefsReceived'. + (MessageReceived): Generate new kind of drag-n-drop events. + * src/haiku_support.h (enum haiku_event_type): Rename + `REFS_EVENT' to `DRAG_AND_DROP_EVENT'. + (struct haiku_refs_event): Delete struct. + (struct haiku_drag_and_drop_event): New struct. + * src/haikuselect.c (haiku_message_to_lisp): New function. + (syms_of_haikuselect): New symbols. + * src/haikuselect.h: Update prototypes. + * src/haikuterm.c (haiku_read_socket): Handle new type of + drag-and-drop events by serializing drop message to Lisp and + letting Lisp code do the processing. + * src/haikuterm.h: Update prototypes. + +2022-03-16 Eli Zaretskii <eliz@gnu.org> + + Fix last change in frames.texi + + * doc/lispref/frames.texi (Drag and Drop): Improve and clarify the + wording. + +2022-03-16 Po Lu <luangruo@yahoo.com> + + Pacify compiler warning in handle_one_xevent + + * src/xterm.c (x_dnd_get_target_window): Set proto_out even if + it won't be used because target is None. Reported by Lars + Ingebrigtsen <larsi@gnus.org>. + +2022-03-16 Po Lu <luangruo@yahoo.com> + + Correct last change for return-frame drags + + * src/xterm.c (handle_one_xevent): Use `x_any_window_to_frame' + to determine `x_dnd_return_frame_object'. + +2022-03-16 Po Lu <luangruo@yahoo.com> + + Fix minor bugs with XDND support + + * lisp/mouse.el (mouse-drag-and-drop-region): Report more + selection targets for the benefit of Qt and Mozilla. + * lisp/select.el (xselect--encode-string) + (selection-converter-alist): Add new selection targets. + + * src/xterm.c (x_dnd_get_window_proxy): New function. + (x_dnd_get_target_window): New argument proto_out, and return + first window with XdndAware instead of bottommost window. + (handle_one_xevent): Use new argument `proto_out'. + +2022-03-16 Po Lu <luangruo@yahoo.com> + + Fix XI 2.0 build + + * src/xterm.c (handle_one_xevent): Move declaration of dummy out + of HAVE_XINPUT2_1. + +2022-03-16 Po Lu <luangruo@yahoo.com> + + Fix tooltip text properties showing up in dragged text + + * lisp/mouse.el (mouse-drag-and-drop-region): Directly call + x-show-tip and x-hide-tip instead of going through tooltip-show. + +2022-03-16 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 62e830c3d9 * doc/misc/transient.texi: Fix @dircategory to "Emacs misc... + +2022-03-16 Po Lu <luangruo@yahoo.com> + + Better handle drag-and-drop from one Emacs frame to another + + * doc/lispref/frames.texi (Drag and Drop): Document new + parameter `return-frame' to `x-begin-drag'. + * lisp/mouse.el (mouse-drag-and-drop-region): Utilize new + feature. + + * src/xfns.c (Fx_begin_drag): New parameter `return-frame'. + * src/xterm.c (x_dnd_begin_drag_and_drop): New parameter + return_frame_p. + (handle_one_xevent): Set new flags and return frame whenever + appropriate. + * src/xterm.h: Update prototypes. + +2022-03-15 Po Lu <luangruo@yahoo.com> + + * src/xfns.c (Fx_begin_drag): Improve doc string. + +2022-03-15 Po Lu <luangruo@yahoo.com> + + Add support for dragging text from Emacs to other programs + + This still probably needs some more protection from + malfunctioning clients which delete windows at random, but I + don't know if that's a problem in practice. + + * doc/emacs/frames.texi (Drag and Drop): + * doc/lispref/frames.texi (Drag and Drop): Document new + features. + + * etc/NEWS: Announce new function `x-begin-drag' and new user + option `mouse-drag-and-drop-region-cross-program'. + + * lisp/mouse.el (mouse-drag-and-drop-region-cross-program): New + user option. + (x-begin-drag): New variable declaration. + (mouse-drag-and-drop-region): If the mouse moves out of an Emacs + frame, begin a window system drag. + * lisp/x-dnd.el (x-dnd-handle-xdnd): Remove left-over debugging + code. + + * src/xfns.c (Fx_set_mouse_absolute_pixel_position): Fix + indentation of opening paren. + (Fx_begin_drag): New function. + (syms_of_xfns): Define new subr. + * src/xselect.c (x_timestamp_for_selection): New function. + + * src/xterm.c (X_DND_SUPPORTED_VERSION): New preprocessor + declaration. + (x_dnd_get_window_proto, x_dnd_send_enter, x_dnd_send_position) + (x_dnd_send_leave, x_dnd_send_drop, x_set_dnd_targets) + (x_dnd_begin_drag_and_drop): New functions. + (handle_one_xevent): Handle drag-and-drop motion and button + events when active. + (x_free_frame_resources): If f is the DND source, stop + drag-and-drop. + (x_term_init): Intern new atoms. + (syms_of_xterm): New symbol QXdndSelection. + + * src/xterm.h (struct x_display_info): New atoms + Xatom_XdndAware, Xatom_XdndSelection, Xatom_XdndTypeList, + Xatom_XdndActionCopy, Xatom_XdndActionMove, + Xatom_XdndActionLink, Xatom_XdndActionAsk, + Xatom_XdndActionPrivate, Xatom_XdndActionList, + Xatom_XdndActionDescription, Xatom_XdndProxy, Xatom_XdndEnter, + Xatom_XdndPosition, Xatom_XdndStatus, Xatom_XdndLeave, + Xatom_XdndDrop, and Xatom_XdndFinished. + +2022-03-15 Po Lu <luangruo@yahoo.com> + + Fix build with GTK 3.18.0 or earlier + + * src/gtkutil.c (xg_update_scroll_bar_pos) + (xg_update_horizontal_scrollbar_pos): Avoid + gtk_widget_queue_allocate on older GTK versions. + +2022-03-15 Eli Zaretskii <eliz@gnu.org> + + Clean up implementation of N0 per UAX#9 + + * src/bidi.c (bidi_resolve_brackets): Instead of requiring + prev_for_neutral's type to be known, fall back on SOS, per + the UBA. + +2022-03-15 Sam Steingold <sds@gnu.org> + + Extract `gnus-collect-urls-from-article' from `gnus-summary-browse-url' + + * lisp/gnus-sum.el (gnus-collect-urls-from-article): + New function, extracted from `gnus-summary-browse-url'. + (gnus-summary-browse-url): Use it. + +2022-03-15 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/url/url-vars.el: Cosmetic changes + + (url-mime-separator-chars): Simplify. + (url-interactive-p): Tweak docstring. + +2022-03-15 Stefan Monnier <monnier@iro.umontreal.ca> + + doctex-mode: Try and fix bug#35140 + + * lisp/textmodes/tex-mode.el (doctex-syntax-propertize-rules): + Add support for the new ^^X and consider the first ^ of ^^A to be the + closing char for the previous comment. + (doctex-font-lock-^^A): Simplify accordingly. + +2022-03-15 Lars Ingebrigtsen <larsi@gnus.org> + + Fix byte-code button in help--describe-command + + * lisp/help.el (help--describe-command): Fix byte-code button + (bug#24235). + +2022-03-15 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "New command `gnus-summary-browse-all-urls' bound to "v"" + + This reverts commit f52dcfd03ad542704d9a43faab0c33be09ab442e. + + It was never agreed that this should be added. + +2022-03-15 João Távora <joaotavora@gmail.com> + + Don't advertise didchangewatchedfiles on tramp + + * eglot.el (eglot--trampish-p): New helper. + (eglot-client-capabilities): Use it. + (eglot--uri-to-path): Use it. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/883 + +2022-03-15 Po Lu <luangruo@yahoo.com> + + Fix some minor glitches with Haiku scroll bars + + * src/haiku_support.cc (MouseDown): Don't start overscroll if + dragging started inside a button. + +2022-03-15 Po Lu <luangruo@yahoo.com> + + Fix crashes when trying to pop up a menu on GTK 2 + + * src/xterm.c (handle_one_xevent): Respect finish when + dispatching copy. + +2022-03-15 Po Lu <luangruo@yahoo.com> + + Fix some issues with input on GTK 2 builds + + * src/xfns.c (setup_xi_event_mask): Don't ask for XI key press + on GTK 2. + +2022-03-14 Po Lu <luangruo@yahoo.com> + + Fix extraneous ifdef in xwidgets code + + * xterm.c (handle_one_xevent): Pass GesturePinchEnd events to + xwidgets regardless of no-longer-present define. + +2022-03-14 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (handle_one_xevent): Fix use of wrong motion structure. + +2022-03-14 Po Lu <luangruo@yahoo.com> + + Stop relying on dynlib for PGTK interrupt input + + * src/pgtkterm.c (pgtk_term_init): Use dlopen and dlsym directly + instead of dynlib functions. (bug#54378) + +2022-03-14 Thomas Fitzsimmons <fitzsim@fitzsim.org> + + EUDC: Fix a bug and some docstrings + + * lisp/net/eudc.el (eudc-register-protocol): Add doc string. + (eudc-expand-inline): Add TRY-ALL-SERVERS to docstring. + (eudc-query-with-words): Fix early-return bug reported by + Alexander Adolf. + (eudc-menu): Add doc string. + (eudc-install-menu): Likewise. + +2022-03-14 Paul Eggert <eggert@cs.ucla.edu> + + Another fix for the no-toolkit build + + This should be better in the long run. + * oldXMenu/Activate.c (XMenuActivate): Revert previous change, + eliminating the goto it introduced. + * oldXMenu/XMenuInt.h: Include <attribute.h>, for FALLTHROUGH. + +2022-03-14 Paul Eggert <eggert@cs.ucla.edu> + + Prefer CALLN + + * src/bytecode.c (Fbyte_code): + * src/composite.c (Fclear_composition_cache): + Prefer CALLN to doing it by hand. + * src/fns.c (ccall2): Remove. All uses replaced by CALLN. + +2022-03-14 Sam Steingold <sds@gnu.org> + + New command `gnus-summary-browse-all-urls' bound to "v" + + * lisp/gnus-sum.el (gnus-collect-urls-from-article): New function, + extracted from `gnus-summary-browse-url'. + (gnus-summary-browse-url): Use it; also use `browse-url-button-open-url' + to handle the prefix argument. + (gnus-summary-browse-all-urls): New command. + (gnus-summary-mode-map): Bind `gnus-summary-browse-all-urls' to "v". + +2022-03-14 Po Lu <luangruo@yahoo.com> + + Fix the no toolkit build + + * Activate.c (XMenuActivate): Stop relying on fallthroughs + inside switch statement. (bug#54382) + +2022-03-14 Lars Ingebrigtsen <larsi@gnus.org> + + Fix RFC2047 encoding of Disposition-Notification-To + + * lisp/mail/rfc2047.el (rfc2047-header-encoding-alist): Encode + Disposition-Notification-To as an address header (bug#54383). + +2022-03-14 Po Lu <luangruo@yahoo.com> + + Handle position specification hints on X toolkit builds + + * src/xterm.c (x_wm_set_size_hint): Set PPosition and USPosition + independently of Xt. + +2022-03-14 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Simplify Edebug spec + + * lisp/simple.el (cursor-face-highlight-mode): Fix copy&paste + +2022-03-14 Lars Ingebrigtsen <larsi@gnus.org> + + Improve the execute-kbd-macro doc string + + * src/macros.c (Fexecute_kbd_macro): Improve the doc string + (bug#14206). + +2022-03-14 Philipp Stephani <phst@google.com> + + Make Edebug specification for 'cl-defstruct' more lenient. + + For example, 'xref-item' uses the list form of ':noinline'. + + * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Accept ':noinline' and + ':named' with an argument. + * test/lisp/emacs-lisp/cl-macs-tests.el (cl-defstruct/edebug): New + unit test. + +2022-03-14 Lars Ingebrigtsen <larsi@gnus.org> + + Don't always escape "." and "?" in `prin1' + + * src/print.c (print_object): Only escape "." and "?" when + appearing as the first character in a symbol (bug#23130). + +2022-03-14 Martin Rudalics <rudalics@gmx.at> + + Init 'rest' in 'balance-windows-2' (Bug#54380) + + * lisp/window.el (balance-windows-2): Give 'rest' an initial + value (Bug#54380). + +2022-03-14 Jimmy Aguilar Mena <spacibba@aol.com> + + Add local to remove-hook in cursor-face-highlight-mode + + Add LOCAL flag in remove-hook and reword the dock string. + + Thanks to Stefan Monnier for this + +2022-03-14 Po Lu <luangruo@yahoo.com> + + Clean up some Haiku toolkit code + + * src/haiku_io.c (haiku_read_with_timeout): Accept `bigtime_t' + instead of `time_t' for values which are cast to bigtime_t + anyway. + * src/haiku_support.cc (BMenu_run): Read all help events instead + of just one. + * src/haiku_support.h: Update prototypes. + +2022-03-14 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 1ec4063017 ; * admin/make-tarball.txt: Minor updates. + +2022-03-13 Po Lu <luangruo@yahoo.com> + + Fix extraneous overscroll activation on Haiku + + * src/haiku_support.cc (class EmacsScrollBar): New field + `maybe_overscroll'. + (MouseDown): Set that field. + (MouseUp): Clear that field. + (MouseMoved): Also test `maybe_overscroll' to ensure that a grab + started inside the scroll bar. + +2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com> + + Improve cursor-face-highlight-mode a bit more. + + Add the hook locally to the buffer only when needed to avoid even + calling the function redisplay--update-cursor-face-highlight when the + mode is enabled. + + * lisp/simple.el (redisplay--update-cursor-face-highlight) : Remove + unneeded condition. + (cursor-face-highlight-mode) : Conditionally add or remove + redisplay--update-cursor-face-highlight to pre-redisplay-functions with + buffer local flag. + +2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com> + + Improve the cursor-face feature. + + Use a minor mode to reduce potential performance issues. + + * lisp/simple.el (cursor-face-highlight-mode) : New minor mode + (completion-setup-function) : Use the new minor mode + cursor-face-highlight-mode in completions. + (redisplay--unhighlight-overlay-function) : Add -- to the name + (redisplay--highlight-overlay-function) : Make the face parameter + optional and add -- in the name. + +2022-03-13 Po Lu <luangruo@yahoo.com> + + Fix tool-bar highlight persisting after mouse moves onto WM frame + + * src/xterm.c (handle_one_xevent): Always report MotionNotify + coordinates in terms of the edit widget. + +2022-03-13 Glenn Morris <rgm@gnu.org> + + * src/bytecode.c: Include sysstdio.h, for fprint, stderr. + +2022-03-13 Po Lu <luangruo@yahoo.com> + + Enable overscroll on Haiku horizontal scroll bars + + * src/haiku_support.cc (MouseMoved): Handle horizontal + directions correctly. + * src/haikuterm.c (haiku_set_horizontal_scroll_bar_thumb): + Enable overscrolling on scroll bar widget. + +2022-03-13 Po Lu <luangruo@yahoo.com> + + Fix scroll bar movement right before overscroll begins on Haiku + + * src/haikuterm.c (haiku_set_scroll_bar_thumb): Make sure value + and size are within bounds even if portion adjustment is off. + +2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com> + + Make the completion-header-format info more precise. + +2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com> + + Simplify unneeded condition. + + * lisp/minibuffer.el (display-completion-list) : The function + completion--insert-string already has a condition for when completions + is nil. + +2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com> + + Rename hook + + * lisp/simple.el (redisplay--update-cursor-property-highlight) : Renamed + to redisplay--update-cursor-property-highlight + +2022-03-13 Lars Ingebrigtsen <larsi@gnus.org> + + Really fix find-func for defgeneric + + * lisp/emacs-lisp/find-func.el (find-function-regexp): Really add + defgeneric. + +2022-03-13 Lars Ingebrigtsen <larsi@gnus.org> + + Make vtable sorting stable + + * lisp/emacs-lisp/vtable.el (vtable--sort): Make the sorting + stable. + +2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com> + + Extend completion-auto-help 'always and 'visible. + + Make them behave the same also with exact but not single completion. + +2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com> + + Use the new cursor-face feature to highlight completions. + + * lisp/minibuffer.el (completions-highlight-face) : New custom. + (completions-highlight-mode) : Removed + +2022-03-13 Paul Eggert <eggert@cs.ucla.edu> + + Clang debug notes + + * etc/DEBUG: Don’t imply Clang works as well as GCC when + debugging Emacs. Mention a coverage problem with Clang. + +2022-03-13 Jim Porter <jporterbugs@gmail.com> + + Fix evaluation of negated argument predicates in Eshell + + * lisp/eshell/em-pred.el (eshell-add-pred-func): Let-bind 'pred' so + the lambdas see the original value (bug#54369). + +2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com> + + Rename completion-header-string to completion-header-format + + And use a propertized default value. + +2022-03-13 Mattias Engdegård <mattiase@acm.org> + + * src/bytecode.c (sf_set_ptr): Cast pointer to type of right size. + +2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com> + + Add new special text attribute cursor-face + + Reuse the functions for highlight region. + * lisp/simple.el (redisplay-unhighlight-overlay-function) : + (redisplay-highlight-overlay-function) : New functions from previous + lambda + (redisplay-unhighlight-region-function) : + (redisplay-highlight-region-function) : Redefined with the new functions. + (redisplay--update-cursor-property-highlight) : New function for + pre-redisplay-functions. + +2022-03-13 Mattias Engdegård <mattiase@acm.org> + + Separate bytecode stack + + Use a dedicated stack for bytecode, instead of using the C stack. + Stack frames are managed explicitly and we stay in the same + exec_byte_code activation throughout bytecode function calls and + returns. In other words, exec_byte_code no longer uses recursion + for calling bytecode functions. + + This results in better performance, and bytecode recursion is no + longer limited by the size of the C stack. The bytecode stack is + currently of fixed size but overflow is handled gracefully by + signaling a Lisp error instead of the hard crash that we get now. + + In addition, GC marking of the stack is now faster and more precise. + Full precision could be attained if desired. + + * src/alloc.c (ATTRIBUTE_NO_SANITIZE_ADDRESS): Make non-static. + * src/bytecode.c (enum stack_frame_index, BC_STACK_SIZE) + (sf_get_ptr, sf_set_ptr, sf_get_lisp_ptr, sf_set_lisp_ptr) + (sf_get_saved_pc, sf_set_saved_pc, init_bc_thread, free_bc_thread) + (mark_bytecode, Finternal_stack_stats, valid_sp): New. + (exec_byte_code): Adapt to use the new bytecode stack. + (syms_of_bytecode): Add defsubr. + * src/eval.c (unwind_to_catch): Restore saved stack frame. + (push_handler_nosignal): Save stack frame. + * src/lisp.h (struct handler): Add act_rec member. + (get_act_rec, set_act_rec): New. + * src/thread.c (mark_one_thread): Call mark_bytecode. + (finalize_one_thread): Free bytecode thread state. + (Fmake_thread, init_threads): Set up bytecode thread state. + * src/thread.h (struct bc_thread_state): New. + (struct thread_state): Add bytecode thread state. + +2022-03-13 Mattias Engdegård <mattiase@acm.org> + + Simplify exec_byte_code arguments + + Pass the function object and encoded arity, not the other components. + This speeds up several call paths and is necessary for improvements to + come. + + * src/bytecode.c (Fbyte_code): Make a new byte code object for + execution. This is slower but performance isn't critical here. + (exec_byte_code): Retrieve components from the passed function. + * src/eval.c (fetch_and_exec_byte_code): + * src/lisp.h (exec_byte_code): Update signature. + +2022-03-13 Michael Albinus <michael.albinus@gmx.de> + + * lisp/net/ange-ftp.el (ange-ftp-ls): Make a loop when sanitizing LSARGS. + +2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com> + + Make minibuffer-hide-completions interactive. + + Mainly to find a binding for it. + +2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com> + + Add completion-header-string. + + * doc/emacs/mini.texi (completion-header-string): Remove + completion-header-text-property-list and completion-lazy-count. + (completion-header-string): Substitutes the removed variable. + +2022-03-13 Lars Ingebrigtsen <larsi@gnus.org> + + Add cl-defgeneric to find-func, too + + * lisp/emacs-lisp/find-func.el (find-function-regexp): Add + cl-defgeneric, too (bug#54343). + +2022-03-13 Po Lu <luangruo@yahoo.com> + + Allow overscrolling on Haiku scroll bars that are full + + * src/haiku_support.cc (MouseMoved): Allow overscrolling even if + portion is less than 1.0. + +2022-03-13 Po Lu <luangruo@yahoo.com> + + Fix pointer event tracking on top of Haiku scroll bars + + * src/haiku_support.cc (MouseDown): Set correct mouse event mask + in case the scroll bar widget decides to not do that. + +2022-03-13 Po Lu <luangruo@yahoo.com> + + Fix splurious button events being generated on Haiku + + * src/haiku_support.cc (MouseDown, MouseUp): Don't process if + the grab is not appropriate for the buttons that were pressed. + +2022-03-13 Po Lu <luangruo@yahoo.com> + + Fix setting IM spot after key press events + + * src/xterm.c (handle_one_xevent): Check f is not NULL before + trying to set its status area and set preedit spot location + after KeyPress events. + +2022-03-13 Mattias Engdegård <mattiase@acm.org> + + Fix esh-proc-tests on macOS + + * test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill-pipeline): + Add pattern matching output when killing a process on macOS (and + possibly other BSDs). + +2022-03-13 Visuwesh <visuweshm@gmail.com> (tiny change) + + * quail.el (quail-define-package): Describe VAR form in DOCSTRING better. + + Bug#50143 + +2022-03-13 Visuwesh <visuweshm@gmail.com> (tiny change) + + Follow contemporary practices in the Tamil input methods + + * lisp/language/ind-util.el (indian-tml-base-digits-table): New table + to translate digits. + (indian-tml-base-table): Don't translate digits. + (indian-tml-itrans-digits-v5-hash): Hashtable that translates digits. + + * lisp/leim/quail/indian.el (quail-tamil-itrans-compute-signs-table) + (quail-tamil-itrans-various-signs-table) + (quail-tamil-itrans-various-signs-and-digits-table): Separate out the + digits from the signs table using the function + 'quail-tamil-itrans-compute-signs-table'. + (tamil-itrans-digits, tamil-inscript-digits): New input methods that + translates digits. + (tamil-itrans, tamil-inscript): Fix table inclusion. + + * etc/NEWS: Announce the change. + + Fixes bug#50143. + +2022-03-13 Po Lu <luangruo@yahoo.com> + + Fix small regression for horizontal scroll bars + + * src/haikuterm.c (haiku_read_socket): Restore previous + horizontal scrollbar code, since the change it was intended for + was never made. + +2022-03-13 Po Lu <luangruo@yahoo.com> + + Improve overscrolling support on Haiku + + * src/haiku_support.cc (class EmacsScrollBar): New field + `real_max_value'. + (MessageReceived): Set real max value. + (MouseMoved): Get rid of magic numbers by using real max value + instead. + +2022-03-13 Po Lu <luangruo@yahoo.com> + + Allow dragging scroll bar for overscroll on Haiku + + * src/haiku_support.cc (class EmacsScrollBar): New fields + `in_overscroll', `can_overscroll', `last_overscroll', + `last_reported_overscroll_value' and `max_value'. + (ValueChanged): Make very sure extraneous value are not + generated. + (MouseUp): Clear overscroll if enabled. + (MouseMoved): If overscroll is enabled and dragging downwards + fails to dislodge the maximum value, enable overscrolling. + (BView_scroll_bar_update): New parameter `can_overscroll' + * src/haiku_support.h: Update prototypes. + * src/haikuterm.c (haiku_set_scroll_bar_thumb) + (haiku_set_horizontal_scroll_bar_thumb): Adjust parameters to + scroll bar update functions. + (haiku_read_socket): Take ceiling of bar position if + horizontal. + +2022-03-13 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + e5b191465d ; * admin/authors.el (authors-canonical-file-name): Remove... + 6b0fdf73cf ; Fix data structures in authors.el + +2022-03-12 Stefan Monnier <monnier@iro.umontreal.ca> + + Flocate_file_internal: Protect from `.eln` remapping + + Don't use `openp`s functionality to remap `.elc` files to `.eln` files + since `locate-file` is not specific to ELisp files. + This should be not just simpler but more robust than the current + hack which tries to undo the damage after the fact. + + * src/lread.c (Flocate_file_internal): Don't map `.elc` to `.eln`. + * lisp/files.el (locate-file): Simplify accordingly. + +2022-03-12 Po Lu <luangruo@yahoo.com> + + Improve reliaibility of scroll bar dimensions adjustment on GTK 3 + + * src/gtkutil.c (xg_scroll_bar_size_allocate_cb): New function. + (xg_finish_scroll_bar_creation): Attach new signal. + (xg_update_scrollbar_pos) + (xg_update_horizontal_scrollbar_pos): Also set window dimensions + for the event box. + * src/xterm.c (x_scroll_bar_configure): New function. + * src/xterm.h: Update prototypes. + +2022-03-12 Lars Ingebrigtsen <larsi@gnus.org> + + Further locate-file fixes on nativecomp + + * lisp/files.el (locate-file): Fix up previous locate-file change + -- don't unconditionally return .elc on nativecomp. + +2022-03-12 Lars Ingebrigtsen <larsi@gnus.org> + + Disable esh-proc-test/kill-pipeline on EMBA + + Test esh-proc-test/kill-pipeline condition: + (ert-test-failed + ((should + (string-match-p + (rx ...) + (buffer-substring-no-properties output-start ...))) + :form + (string-match-p "\\(?:\\(?:interrupt\\|killed\\)\n\\)" "") + +2022-03-12 Lars Ingebrigtsen <larsi@gnus.org> + + Fix EMBA failure for ert-test-record-backtrace + + * test/lisp/emacs-lisp/ert-tests.el (ert-test-record-backtrace): Make + this work with AOT. + +2022-03-12 Lars Ingebrigtsen <larsi@gnus.org> + + Return the same file from locate-file in nativecomp and non + + * lisp/files.el (locate-file): Return the .elc file (if it exists) + in nativecomp, too, to mimic the behavior from non-nativecomp + builds (bug#51308). + +2022-03-12 Lars Ingebrigtsen <larsi@gnus.org> + + Make find-function-regexp also find cl-defun/defmethod + + * lisp/emacs-lisp/find-func.el (find-function-regexp): Also find + cl-defun and cl-defmethod (bug#54343). + +2022-03-12 Colin Woodbury <colin@fosskers.ca> + + * lisp/progmodes/python.el: Account for new keywords. + + * lisp/progmodes/python.el (python-font-lock-keywords-level-2): As + of Python 3.10, Python has structured pattern matching. This adds + two new keywords which need to be highlighted (bug#54345). + +2022-03-12 Alexander Adolf <alexander.adolf@condition-alpha.com> + + Facilitate Customization of Message-Mode Header Completion Behavior + + * lisp/gnus/message.el (message-email-recipient-header-regexp): + New user option. + (message-completion-alist): Use it here. + +2022-03-12 Lars Ingebrigtsen <larsi@gnus.org> + + Mark tramp-test30-make-process unstable on EMBA + + * test/lisp/net/tramp-tests.el (tramp-test30-make-process): This times + out on EMBA. + +2022-03-12 Mattias Engdegård <mattiase@acm.org> + + Remove never-used relative jump opcodes + + * src/bytecode.c (BYTE_CODES, exec_byte_code): + Remove relative jump opcodes that seem to have been a short-lived + experiment, never used in a release. + +2022-03-12 Mattias Engdegård <mattiase@acm.org> + + Remove debug code for opcodes long gone + + * src/bytecode.c (BYTE_CODES, enum byte_code_op, exec_byte_code): + Don't display custom messages in debug mode for Bscan_buffer and + Bset_mark which were removed long ago. + +2022-03-12 Mattias Engdegård <mattiase@acm.org> + + Faster bytecode immediate argument fetching + + * src/bytecode.c (FETCH2): + Use `|` instead of `+` to combine the bytes forming a 16-bit immediate + argument so that GCC (prior to version 12) recognizes the idiom and + generates a 16-bit load. This applies for little-endian machines with + cheap unaligned accesses such as x86[-64], arm64 and power64le. + + This 1-character change results in a measurable speed gain on many + kinds of Lisp code, as 16-bit immediates are used by all jump + instructions. + + Clang performs this optimization for both `+` and `|` from version 10. + +2022-03-12 Mattias Engdegård <mattiase@acm.org> + + Maintain end of specpdl instead of size + + Keep track of the end of specpdl explicitly since that is what we are + comparing against on critical code paths. + + * src/eval.c (init_eval_once_for_pdumper, signal_or_quit) + (grow_specpdl_allocation): + * src/fileio.c (Fdo_auto_save): + * src/lisp.h (grow_specpdl): + * src/thread.c (run_thread, Fmake_thread): + * src/thread.h (struct thread_state): + Replace specpdl_size with specpdl_end, according to the equation + specpdl_end = specpdl + specpdl_size. + +2022-03-12 Mattias Engdegård <mattiase@acm.org> + + Inline record_in_backtrace + + It's critical in several function call paths. + + * src/eval.c (grow_specpdl_allocation): Make non-static. + (grow_specpdl, record_in_backtrace): Move from here... + * src/lisp.h (grow_specpdl, record_in_backtrace): ... to here, + and declare inline. + +2022-03-12 Po Lu <luangruo@yahoo.com> + + Fix the PGTK build + + * src/gtkutil.c (xg_finish_scroll_bar_creation): Fix ifdefs + preventing x_window from being correctly set. + (xg_get_scroll_id_for_window): Ifdef out unused function. + +2022-03-12 Po Lu <luangruo@yahoo.com> + + Try really hard to make GTK 3 scroll bars fit + + * src/gtkutil.c (xg_get_widget_from_map): New argument DISPLAY. + All callers changed. + (find_scrollbar_cb): New function. + (xg_finish_scroll_bar_creation, xg_remove_scroll_bar) + (xg_update_scrollbar_pos, xg_update_horizontal_scrollbar_pos) + (xg_set_toolkit_scroll_bar_thumb) + (xg_set_toolkit_horizontal_scroll_bar_thumb, xg_initialize): + Stop using id_to_widget_map on X builds with GTK 3 and set the + event box as the x_window instead. + * src/xterm.c (x_window_to_scroll_bar): Don't look for ID on GTK + 3. + (handle_one_xevent): If a ConfigureNotify event is found for a + scroll bar and the dimensions are wrong, resize the X window to + the right ones. + +2022-03-12 Felicián Németh <felician.nemeth@gmail.com> + + Change capability 'documentchanges' to t + + Eglot does support woskspaceEdit/documentChanges, but failed to + advertise this fact. + + Per https://github.com/joaotavora/eglot/issues/873. + + * eglot.el (eglot-client-capabilities): Set documentChanges to t. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/853 + +2022-03-12 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + dbe6a3ecf7 Fix regression in 'custom-prompt-customize-unsaved-options' + a9920473f6 Improve documentation of 'map-charset-chars' + +2022-03-12 Po Lu <luangruo@yahoo.com> + + Fix some issues with input methods that depend on button state + + * src/xterm.c (handle_one_xevent): Translate button state before + filtering events. + +2022-03-11 Po Lu <luangruo@yahoo.com> + + Fix horizontal scroll bar updating on Haiku + + * src/haikuterm.c (haiku_set_horizontal_scroll_bar_thumb): Just + take portion and position without adjustments. + +2022-03-11 Po Lu <luangruo@yahoo.com> + + Use more reasonable default timeouts in Haiku menu loop + + * src/haiku_support.cc (BMenu_run): Set default timeout to 10 + seconds. + +2022-03-11 Po Lu <luangruo@yahoo.com> + + Make C-mouse-3 on scroll bars work on Haiku + + * src/haiku_support.cc (class EmacsScrollBar): New field + `handle_button'. + (MouseDown, MouseUp): Pass button events with ControlMask to + parent view. + +2022-03-11 Po Lu <luangruo@yahoo.com> + + Slightly improve scrollbar position accounting on Haiku + + * src/haiku_support.cc (MessageReceived): Use floats for + calculating portion and subtract proportion directly. + * src/haikuterm.c (haiku_set_scroll_bar_thumb): Take ceiling of + value instead of rounding it. + +2022-03-11 Jimmy Aguilar Mena <spacibba@aol.com> + + Add two new options for completions. + + * doc/emacs/mini.texi (completion-lazy-count): + (completion-header-text-property-list) : New customs + + Updated NEWS and manual. + +2022-03-11 Thomas Fitzsimmons <fitzsim@fitzsim.org> + + EUDC: Support querying all servers + + * lisp/net/eudc.el (eudc-expand-try-all): New command. + (eudc-expand-inline): Add `try-all-servers' optional argument. + Update `eudc-query-with-words' call. + (eudc-query-with-words): Add `try-all-servers' optional argument. + Move response formatting into main query loop. Query next server + if `try-all-servers' is non-nil. + (eudc-tail-menu): Add "Expand Inline Query Trying All Servers" + menu item. + * doc/misc/eudc.texi (Installation): Recommend + eudc-expand-try-all. + (Emacs-only Configuration): Likewise. + (Inline Query Expansion, Inline Query Expansion): Likewise. + Document `eudc-expand-try-all'. + * etc/NEWS (EUDC): Describe new 'eudc-expand-try-all' command. + +2022-03-11 Thomas Fitzsimmons <fitzsim@fitzsim.org> + + EUDC: Update save-query-as-kill name and docstring + + * lisp/net/eudc-vars.el (eudc-server): Fix quoting for checkdoc. + (eudc-expansion-save-query-as-kill): Rename from + `eudc-expansion-overwrites-query'. Define obsolete variable + alias. Update comment and documentation. + * lisp/net/eudc.el (eudc-expand-inline): Rename `replace' argument + to `save-query-as-kill'. Update argument documentation. + * doc/misc/eudc.texi (Inline Query Expansion): Rename + `eudc-expand-inline' argument. + * etc/NEWS (EUDC): Document `eudc-expansion-overwrites-query' + rename to `eudc-expansion-save-query-as-kill'. + +2022-03-11 Manuel Uberti <manuel.uberti@inventati.org> + + Use new jdtls script for eclipse jdt + + Per https://github.com/joaotavora/eglot/issues/864. + + * eglot.el (eglot-server-programs): use new jdtls + (eglot--eclipse-jdt-contact, eglot--eclipse-jdt). Remove. + (eglot-execute-command eglot-eclipse-jdt): Remove. + (eglot-initialization-options eglot-eclipse-jdt): Remove. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/863 + +2022-03-11 Po Lu <luangruo@yahoo.com> + + Fix a crash inside Haiku popup menus + + * src/haiku_support.cc (BMenu_run): Handle B_WOULD_BLOCK from + wait_for_objects loop. + +2022-03-11 Po Lu <luangruo@yahoo.com> + + Fix initial values of scroll bar foreground and background on GTK 3 + + * src/gtkutil.c (xg_create_frame_widgets): Stop creating + scrollbar stylesheet providers. + * src/xfns.c (Fx_create_frame): Create scroll bar stylesheet + providers here instead. + (x_set_scroll_bar_background): + (x_set_scroll_bar_foreground): Ignore tooltip frames. + +2022-03-11 Po Lu <luangruo@yahoo.com> + + Implement customization of scroll bar colors on GTK 3 + + * src/gtkutil.c (xg_create_frame_widgets): Create CSS providers + for scroll bars. + (xg_finish_scroll_bar_creation): Attach created CSS providers. + * src/xfns.c (x_set_scroll_bar_foreground): + (x_set_scroll_bar_background): Put appropriate content into CSS + providers. + * src/xterm.c (x_free_frame_resources): Free CSS providers. + * src/xterm.h (struct x_output): New fields for scroll bar + stylesheet providers. + +2022-03-11 Po Lu <luangruo@yahoo.com> + + * src/frame.c (scroll_bar_adjust_thumb_portion_p): Adjust doc string. + +2022-03-11 Po Lu <luangruo@yahoo.com> + + Improve scroll bar treatment on Haiku + + * src/haiku_support.cc (MessageReceived): Subtract portion from + range of scroll bar. + * src/haikuterm.c (BE_SB_MAX): Adjust values for better + rounding. + (haiku_set_scroll_bar_thumb): Round values instead of + truncating them. + +2022-03-11 Po Lu <luangruo@yahoo.com> + + Fix inconsistent thumb position on Haiku scroll bars + + * src/haikuterm.c (haiku_set_scroll_bar_thumb): If + scroll_bar_adjust_thumb_portion is nil, directly calculate thumb + portions without setting page_size. + +2022-03-11 Po Lu <luangruo@yahoo.com> + + Handle Wayland displays correctly in browse-url + + * lisp/net/browse-url.el (browse-url-process-environment): Use + WAYLAND_DISPLAY as the display environment variable on + PGTK. (bug#54333) + +2022-03-11 Po Lu <luangruo@yahoo.com> + + Allow C-mouse-2 to split windows on XInput 2 builds + + * src/xterm.c (handle_one_xevent): Use x_scroll_bar_handle_click + if ControlMask is set. + +2022-03-10 Po Lu <luangruo@yahoo.com> + + Fix scroll bar portion on Haiku scroll bars + + * src/haiku_support.cc (EmacsScrollBar): Set steps to + appropriate value. + (ValueChanged): Test new value against old value before sending + value event. + (MessageReceived): Handle portion and range. + (BView_scroll_bar_update): New argument for portion. + * src/haiku_support.h: Update prototypes. + * src/haikuterm.c (haiku_set_scroll_bar_thumb): + (haiku_set_horizontal_scroll_bar_thumb): New functions. + (haiku_set_horizontal_scroll_bar): + (haiku_set_vertical_scroll_bar): Use those functions to set + scroll bar values. + (haiku_read_socket): Handle new meanings of scroll bar values. + * src/haikuterm.h (struct scroll_bar): + +2022-03-10 Alan Third <alan@idiocy.org> + + Fix NS toolbar identifier (bug#54326) + + * src/nsterm.m ([EmacsWindow createToolbar:]): Set the identifier to + something that will always be unique to that frame. + +2022-03-10 Juri Linkov <juri@linkov.net> + + Fix new option completions-max-height and new values for completion-auto-help + + * doc/emacs/mini.texi (Completion Options): Fix pxref for + "Buffer Display Action Alists". + + * lisp/minibuffer.el (completion-auto-help): Explain new values in docstring. + (completions-max-height): Use choice to allow nil. + +2022-03-10 Jimmy Aguilar Mena <spacibba@aol.com> + + Add new mode completions-highlight-mode. + + completions-max-height new custom variable. + +2022-03-10 Jimmy Aguilar Mena <spacibba@aol.com> + + completion-auto-help new values. + + Added also entries to news and manual + +2022-03-10 Augusto Stoffel <arstoffel@gmail.com> + + Don't strip invisible text when formatting hover string + + This was introduced in https://github.com/joaotavora/eglot/issues/482 due to a bad interaction with a specific + server. But this solution makes hyperlinks in Eldoc buffers + unclickable, because the markdown-mode function that visits a link + relies on the invisible text. + + Per https://github.com/joaotavora/eglot/issues/866 + + * eglot.el (eglot--format-markup): Use buffer-string instead of + filter-buffer-substring + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/865 + +2022-03-10 Michael Albinus <michael.albinus@gmx.de> + + Support remote home directories via connection property + + * doc/misc/tramp.texi (Home directories): New section. + (Top, Usage): Add it to the menu. + (Predefined connection information): Mention "~". + (Multi-hops, File name syntax): Fix typos. + + * lisp/net/tramp.el (tramp-handle-expand-file-name): Check for + remote home directory. (Bug#53847) + +2022-03-10 Po Lu <luangruo@yahoo.com> + + Fix display of minibuffer prompts in some circumstances on Haiku + + * src/haikuterm.c (haiku_flush): Always flip buffers as long as + buffer flipping is not blocked. + +2022-03-09 Po Lu <luangruo@yahoo.com> + + Fix menu bar activation on PGTK + + * src/gtkutil.c (menu_bar_button_pressed_cb): Only update menu + bar if no menu is active, and the event window is not the widget + window itself. Also make menu in use. + * src/pgtkmenu.c (popup_deactivate_callback): Make menu not in + use. + * src/xdisp.c (redisplay_internal): Return if popup_activated + also on PGTK. + +2022-03-09 Po Lu <luangruo@yahoo.com> + + Fix stray button release events being reported on GTK 2 + + * src/xterm.c (handle_one_xevent): Drop ButtonRelease events + that are destined for a popup menu. + +2022-03-09 Po Lu <luangruo@yahoo.com> + + Fix menu bar event detection on XI2 builds using Core Input + + * src/gtkutil.c (xg_get_gdk_scale): Always return 1 on GTK+ 2. + (xg_event_is_for_menubar): Fix some ifdefs. + * src/xterm.c (handle_one_xevent): Update a comment. + +2022-03-09 Lars Ingebrigtsen <larsi@gnus.org> + + Fix regression in vtable-goto-object + + * lisp/emacs-lisp/vtable.el (vtable-goto-object): Fix moving to + the object. + +2022-03-09 Po Lu <luangruo@yahoo.com> + + Fix some issues with GTK native input and modifiers on GTK 2 + + * src/gtkutil.c (xg_widget_key_press_event_cb): Manually ignore + modifier keys on GTK 2. + +2022-03-09 Po Lu <luangruo@yahoo.com> + + Make XInput 2 features work on GTK 2 builds + + * src/xfns.c (setup_xi_event_mask): On GTK 2, select for + button, motion, entry/exit and key events. + * src/xmenu.c (create_and_show_popup_menu): Clear XI grab if + appropriate. + * src/xterm.c (handle_one_xevent): Pass some kinds of input + extension events to GTK manually on versions of GTK+ that don't + understand them. + +2022-03-09 Po Lu <luangruo@yahoo.com> + + Fix GTK widgets not appearing inside child frames + + * src/xfns.c (x_set_parent_frame): Disable GTK's own frame + synchronization in child frames. + +2022-03-09 Po Lu <luangruo@yahoo.com> + + Fix error when creating frames on NS with no main window + + * nsfns.m (Fx_create_frame): If main window is not present, + center frame window instead of cascading it. + +2022-03-09 Po Lu <luangruo@yahoo.com> + + Don't update Haiku menu bar if nothing changed + + * haikumenu.c (set_frame_menubar): If Lisp-level contents didn't + change, refrain from actually updating the menu bar. + +2022-03-08 Po Lu <luangruo@yahoo.com> + + Fix flicker during frame resize on Haiku + + * haikuterm.c (haiku_update_end): Call BWindow_Flush directly. + (haiku_set_vertical_scroll_bar): Stop calling flush_frame. + (haiku_flush): Only flip buffer of tooltip frames. + +2022-03-08 Po Lu <luangruo@yahoo.com> + + Fix the MS-DOS build + + * sed1v2.inp: Update for recent changes. + +2022-03-08 Po Lu <luangruo@yahoo.com> + + Improve handling of tooltips inside menus on Haiku + + * src/haiku_support.cc (BMenu_run): Make + `process_pending_signals_function' return a struct timespec. + * src/haiku_support.h: Update prototypes. + * src/haikumenu.c (haiku_process_pending_signals_for_menu): + Return result of `timer_run'. + * src/haikuterm.c (haiku_flush): Flip buffers if frame is dirty. + +2022-03-08 Paul Eggert <eggert@cs.ucla.edu> + + Decouple mod-test.c from Gnulib + + mod-test.c should not use Gnulib code, as that creates + unnecessary coupling between Emacs internals and this test module. + Also Gnulib code is compiled without -fPIC whereas mod-test.c + needs -fPIC and recompiling Gnulib with -fPIC would be too painful. + * src/Makefile.in (LIB_NANOSLEEP): New macro. + (LIBES): Use it. + * test/Makefile.in (REPLACE_FREE, FREE_SOURCE_0, FREE_SOURCE_0): + Remove. All uses removed. + (LIB_CLOCK_GETTIME, LIB_NANOSLEEP): New macros. + (MODULE_CFLAGS): Do not -I from lib as that would include Gnulib + modifications to standard .h files (e.g., "#define nanosleep + rpl_nanosleep") and we don’t want the Gnulib replacements. + Instead, for gmp.h (on platforms lacking <gmp.h>) simply '-I.' + with a suitable gmp.h. + (gmp.h): New rule to create a suitable gmp.h. + ($(test_module)): Depend on config.h since the code uses config.h. + Depend on gmp.h if we need to create a suitable one. + If compiling mini-gmp.h, compile the original one and not + the Emacs-specific one, to lessen coupling with Emacs internals. + Link with LIB_CLOCK_GETTIME and LIB_NANOSLEEP. + (clean): Remove gmp.h. + * test/src/emacs-module-resources/mod-test.c: Don’t include timespec.h. + All uses of timespec.h APIs changed to use system-supplied APIs. + Change _Static_assert to plain assert, so that we needn’t rely + on Gnulib’s _Static_assert. + (timespec_le) [CLOCK_REALTIME]: New function. + Change use of timespec_cmp changed to use this instead. + (Fmod_test_sleep_until, Fmod_test_nanoseconds): + Define these functions and their Lisp names mod-test-sleep-until + and mod-test-nanoseconds only if CLOCK_REALTIME, + since they now won’t work on platforms lacking CLOCK_REALTIME. + (Fmod_test_nanoseconds): Just use _Static_assert since it + should work on all platforms. + * test/src/emacs-module-tests.el (mod-test-sleep-until) + (mod-test-nanoseconds, mod-test-double): + Skip test if the corresponding functione is not defined. + +2022-03-08 Paul Eggert <eggert@cs.ucla.edu> + + Do not include <attribute.h> from <config.h> + + This is because mod-test.c shouldn’t use source code from lib, + but it does need to include <config.h>. + * lib-src/ebrowse.c, lib-src/emacsclient.c, lib-src/etags.c: + * lib-src/make-docfile.c, lib-src/movemail.c: + * lib-src/seccomp-filter.c, src/dynlib.h, src/lisp.h: + * src/syssignal.h, src/sysstdio.h, src/systhread.h, src/tparam.h: + Include <attribute.h>. + * src/conf_post.h: Do not include <attribute.h>. + All uses of attribute.h macros replaced with their _GL_ equivalents. + +2022-03-08 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (handle_one_xevent): Add more dead keys. + +2022-03-08 Lars Ingebrigtsen <larsi@gnus.org> + + Mark tramp test unstable on EMBA + + * test/lisp/net/tramp-tests.el + (tramp-test44-asynchronous-requests): Mark timed-out EMBA test as + unstable. + +2022-03-08 Michael Albinus <michael.albinus@gmx.de> + + Implement abbreviate-file-name in Tramp for Google drive + + * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-get-home-directory): + Implement for Google drive. + +2022-03-08 Jim Porter <jporterbugs@gmail.com> + + Support applying indices to more Eshell dollar expansions + + For example, '${echo -e "hi\nbye"}[1]' should expand to "bye". + + * lisp/eshell/esh-var.el (eshell-parse-variable-ref): Support applying + indices to '${}', '$()', and '$<>' forms. + (Bug#54227) + + * lisp/eshell/esh-var-tests.el (esh-var-test/interp-lisp-indices) + (esh-var-test/interp-cmd-indices) + (esh-var-test/interp-cmd-external-indices) + (esh-var-test/quoted-interp-lisp-indices) + (esh-var-test/quoted-interp-cmd-indices): New tests. + +2022-03-08 Jim Porter <jporterbugs@gmail.com> + + Improve wording of Eshell variable interpolation code/documentation + + * lisp/eshell/esh-arg.el (eshell-unescape-inner-double-quote): Rename + from 'eshell-parse-inner-double-quote'. + + * lisp/eshell/esh-cmd.el (eshell-with-temp-command): Improve + docstring. + + * lisp/eshell/esh-var.el (eshell-parse-variable-ref): Use + 'eshell-unescape-inner-double-quote' and improve robustness of quoted + variable name matching. + (eshell-parse-indices): Use 'eshell-unescape-inner-double-quote'. + + * doc/misc/eshell.texi (Dollars Expansion): Improve wording of + subscript notation. + +2022-03-08 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + d184773 Avoid assertion violations in 'bidi_resolve_brackets' + +2022-03-08 Po Lu <luangruo@yahoo.com> + + Handle XI focus change events that specify implicit focus correctly + + * src/xterm.c (x_detect_focus_change): If detail is + XINotifyPointer, set focus type to implicit. + +2022-03-08 Po Lu <luangruo@yahoo.com> + + Fix detection of modifier keys on XInput 2 + + * src/xterm.c (handle_one_xevent): Fix iteration over sets of + modifiers. + +2022-03-08 Michael Albinus <michael.albinus@gmx.de> + + Handle bug#54294 in Tramp + + * lisp/net/tramp.el (tramp-handle-file-locked-p, tramp-handle-lock-file): + Use `tramp-system-name'. (Bug#54294) + +2022-03-08 Po Lu <luangruo@yahoo.com> + + Fix more uses of opaque Visual structure + + * src/image.c (x_kill_gs_process): + * src/xfaces.c (x_free_colors): + (x_free_dpy_colors): + * src/xfns.c (Fxw_display_color_p): + (Fx_display_grayscale_p): + (Fx_display_visual_class): + * src/xterm.c (x_copy_color): + * src/xterm.h (x_mutable_colormap): Stop using private fields of + Visual. + +2022-03-08 Po Lu <luangruo@yahoo.com> + + Return actual color cell count in x-display-color-cells + + * src/xfns.c (Fx_display_color_cells): Return the actual amount + of color cells, or the amount of individual combinations of + components. + +2022-03-08 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 80736aef90 Fix which-func-update doc string + d9e5ae5e20 Improve wording of 'dired-jump's description + +2022-03-07 Stefan Monnier <monnier@iro.umontreal.ca> + + (cl-macro-list): Simplify by unifying the variants + + * lisp/emacs-lisp/cl-macs.el (cl-macro-list): Add the &whole and the + dotted tail cases from `cl-macro-list1`. + (cl-macro-list1, cl-define-compiler-macro-list): Delete edebug elem specs. + (cl-destructuring-bind, cl-define-compiler-macro): Use `cl-macro-list` + instead, now that it covers all the cases we need. + +2022-03-07 Po Lu <luangruo@yahoo.com> + + Avoid color leaks while better ensuring a close color is found + + * src/xterm.c (x_alloc_nearest_color_1): Verify nearest can be + allocated, and use that color value. + +2022-03-07 Po Lu <luangruo@yahoo.com> + + Fix choice of visuals for XPM icon + + * src/xterm.c (x_bitmap_icon): Allow using XPM icon on + StaticColor and StaticGray as well. + +2022-03-07 Lars Ingebrigtsen <larsi@gnus.org> + + Remove lock file in --no-build-details, too + + * src/filelock.c (current_lock_owner): Make file writes work when + using --no-build-details (bug#54294). + +2022-03-07 Lars Ingebrigtsen <larsi@gnus.org> + + Mark ert-test-run-tests-batch-expensive unstable on EMBA + +2022-03-07 Kjartan Oli Agustsson <kjartanoli@outlook.com> (tiny change) + + Add user stylesheet option for doc-view EPUB support + + * lisp/doc-view.el (doc-view-start-process): Add user stylesheet to + process arguments when appropriate. + + * lisp/doc-view.el (doc-view-mutool-user-stylesheet): New user option. + +2022-03-07 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/seq.el (seq-concatenate): Accept non-`sequencep` sequences + +2022-03-07 Po Lu <luangruo@yahoo.com> + + Correctly handle exposure in oldXMenu + + * oldXMenu/Activate.c (XMenuActivate): Call set expose_func if + no pane was found. + (XMenuActivateSetExposeFunction): New function. + * oldXMenu/XMenu.h: New typedef `expose_func'. Update + prototypes. + * src/xmenu.c (x_menu_expose_event): New function. + (x_menu_show): Set expose event handler. + * src/xterm.c (x_dispatch_event): Make `static' only on GTK. + * src/xterm.h: Expose `x_dispatch_event' on no-toolkit builds. + +2022-03-07 Po Lu <luangruo@yahoo.com> + + Improve color handling on colormapped displays + + * src/xfns.c (select_visual): Set `visual_info' field whenever + appropriate. + (x_create_tip_frame, XDisplayCells): Don't access private fields + of Visual. + + * src/xterm.c (x_color_cells, x_alloc_nearest_color_1): Use + colormap_size instead of default cell count. + (XTflash, x_bitmap_icon, x_term_init): + * src/xterm.h (struct x_display_info, FRAME_X_VISUAL_INFO): Stop + accessing private fields of Visual. + +2022-03-07 Po Lu <luangruo@yahoo.com> + + Handle color allocation failures caused by colormap changes + + * src/xterm.c (x_alloc_nearest_color_1): Recompute color cells + if allocation of cached value failed. + +2022-03-07 Michael Albinus <michael.albinus@gmx.de> + + Rework `abbreviate-file-name' in Tramp + + * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist): + * lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist): + * lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist): + * lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist): + Add 'tramp-get-home-directory'. + + * lisp/net/tramp-compat.el (tramp-file-name-handler): Declare. + (tramp-compat-exec-path): Use it. + + * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist): + Add 'tramp-get-home-directory'. + (tramp-gvfs-handle-expand-file-name): Rewrite tilde handling. + (tramp-gvfs-handle-get-home-directory): New defun. + + * lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist): + Add 'tramp-get-home-directory'. + (tramp-sh-handle-get-home-directory): New defun. + (tramp-sh-handle-expand-file-name): Rewrite tilde handling. + + * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist): + Add 'tramp-get-home-directory'. + (tramp-smb-handle-expand-file-name): Rewrite tilde handling. + (tramp-smb-handle-get-home-directory): New defun. + + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist): + Add 'tramp-get-home-directory'. + (tramp-sudoedit-handle-expand-file-name): Rewrite tilde handling. + (tramp-sudoedit-handle-get-home-directory): New defun. + + * lisp/net/tramp.el (tramp-file-name-for-operation): + Add `tramp-get-home-directory'. + (tramp-get-home-directory): New defun. + (tramp-handle-abbreviate-file-name): Use it. + (tramp-set-file-uid-gid, tramp-get-remote-uid) + (tramp-get-remote-gid): Use `tramp-file-name-handler'. + (tramp-get-remote-null-device): Do not check for null VEC, it + doesn't happen anymore. + + * test/lisp/net/tramp-tests.el (tramp-test05-expand-file-name-relative): + Reorder checks. + (tramp-test07-abbreviate-file-name): + (tramp--test-ange-ftp-p): Adapt tests. + +2022-03-07 Po Lu <luangruo@yahoo.com> + + Fix color leak + + * src/xterm.c (x_alloc_nearest_color_1): Don't allocate colors + multiple times when searching for a closest match. + +2022-03-07 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 73f28fbde8 Add a comment for previous browse-url-of-dired-file change + 9b74e84857 Restore documented Emacs 27.2 behavior of browse-url-of-d... + cd77fd3b85 Update to Org 9.5.2-24-g668205 + +2022-03-07 Manuel Giraud <manuel@ledu-giraud.fr> + + Fix bookmark-bmenu-list sorting. + + Do not sort bookmarks in `bookmark-bmenu-list' if `bookmark-sort-flag' + is nil. + + Also, make the default order of bookmark-bmenu-list be the LIFO order + defined in `bookmark-sort-flag's documentation. + +2022-03-07 Po Lu <luangruo@yahoo.com> + + Fix maximum selection size reporting + + * src/xselect.c (selection_quantum): Take into account extended + request size. + +2022-03-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix typo in previous browse-url-file-url change + + * lisp/net/browse-url.el (browse-url-file-url): Fix typo in + previous change. + +2022-03-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix esh-proc-test/kill-pipeline-head loop syntax + + * test/lisp/eshell/esh-proc-tests.el + (esh-proc-test/kill-pipeline-head): Fix syntax of loop. + +2022-03-06 Lars Ingebrigtsen <larsi@gnus.org> + + Inhibit extpipe tests on EMBA, because they apparently time out? + + https://emba.gnu.org/emacs/emacs/-/pipelines/16387 + +2022-03-06 Po Lu <luangruo@yahoo.com> + + Fix clearing of scroll bars on builds with disabled double buffers + + * src/xterm.c (x_scroll_bar_clear): Use XClearArea if the scroll + bar is not double-buffered. + +2022-03-06 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak how bibtex-mark-entry places point + + * lisp/textmodes/bibtex.el (bibtex-mark-entry): Make `C-M-h' + behave like in other modes (with point at the beginning of the + region) (bug#4717). + +2022-03-06 Lars Ingebrigtsen <larsi@gnus.org> + + Show SVN status on "." directories, too + + * lisp/vc/vc-svn.el (vc-svn-after-dir-status): Allow tracking + state of the "." directory, too, since they may have modified + properties (bug#7861). + +2022-03-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix `W' in Dired with non-ASCII file names + + * lisp/net/browse-url.el (browse-url--file-name-coding-system): + Factor out into own function. + (browse-url-file-url): Property encode non-ASCII characters so + that external browsers can understand them. + (browse-url-emacs): Make `W' in Dired work with non-ASCII file + names (bug#54271). + +2022-03-06 Po Lu <luangruo@yahoo.com> + + Get rid of a loop through all frames when processing events + + * src/xterm.c (handle_one_xevent): Just flip back buffer of f + and any instead. + (flush_dirty_back_buffer_on): New function. + (flush_dirty_back_buffers): Delete function. + +2022-03-06 Gustaf Waldemarson <gustaf.waldemarson@gmail.com> + + Display complex data types in gdb-mi + + * lisp/progmodes/gdb-mi.el (bindat): Require. + (gdb-invalidate-locals): Use `-stack-list-variables` instead of + the deprecated `-stack-list-locals`. Additionally, this allow + function arguments to be displayed in the locals buffer. + (gdb-locals-values-buffer, gdb-locals-values-buffer-name) + (gdb-locals-simple-values-only, gdb-locals-values-table): New + variables. + (gdb-locals-values-handler-custom): Create a new gdb buffer for + extracting local variable values. To + extract the values for 'complex' data-types, the command + `-stack-list-locals` is used with the `--all-values` flag. + + The extracted values are then stored in a hash-table for later use in + the `gdb-locals-handler-custom` that performs the actual update of the + Local variable buffer. + + All variable values are filtered to fit it into a single line, being + truncated as necessary by the user customizable option + `gdb-locals-value-limit`. + + The old behavior of hiding complex values can be restored using the + customizable `gdb-locals-simple-values-only` option. + + Patch amended by William Xu <william.xwl@gmail.com>. + +2022-03-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix syntax error in obsolete message function + + * lisp/gnus/message.el (message-send-mail-function): Fix syntax error. + +2022-03-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix url-interactive-p type + + * lisp/url/url-vars.el (url-interactive-pw): Fix typo in previous + checkin (bug#54275). + +2022-03-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix problem with fetching images via Cloudflare + + * lisp/url/url-http.el (url-http): Factor out url-interactive-p. + * lisp/url/url-auth.el (url-basic-auth): + (url-basic-auth): + (url-digest-prompt-creds): Use it to not query the user. + + * lisp/url/url-queue.el (url-queue-start-retrieve): Don't send a + bogus empty Authorization header (bug#54246) -- this triggers + Cloudflare's anti-attack software. Instead rely on + url-request-noninteractive. + + * lisp/url/url-vars.el (url-interactive-p): New utility function. + +2022-03-06 Stefan Monnier <monnier@iro.umontreal.ca> + + (ecomplete-add-item): Preserve the more complete text + + Avoid replacing "John Doe <john@doe.ch>" with "john@doe.ch". + + * lisp/ecomplete.el (ecomplete-add-item): Keep the longest text + +2022-03-06 Alan Mackenzie <acm@muc.de> + + Restore call to byte-run-strip-symbol-positions in byte-compile-out + + Also increment a loop counter. This should fix bug #54248. + + * lisp/emacs-lisp/byte-run.el (byte-run--strip-vector/record): increment the + loop counter 'i' in the main loop. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-out): call + byte-run-strip-symbol-positions on operands which are one-element lists. + +2022-03-06 Mattias Engdegård <mattiase@acm.org> + + Don't accept whitespace or hex floats in rgbi: color specs + + `color-values-from-color-spec` (new in Emacs 28) erroneously accepted + leading whitespace and hex floats in rgbi: components. + + Reported by Philip Kaludercic. + + * src/xfaces.c (parse_float_color_comp): Disallow leading whitespace + and hex floats. + * test/src/xfaces-tests.el + (xfaces-internal-color-values-from-color-spec): Add test cases. + +2022-03-06 Po Lu <luangruo@yahoo.com> + + Respect inhibit-double-buffering on non-toolkit scroll bars + + * src/xfns.c (x_set_inhibit_double_buffering): Force scroll bars + to be re-created on builds without toolkit scroll bars. + + * src/xterm.c (x_scroll_bar_create): Don't initialize back + buffer if double buffering is disabled for the frame. + +2022-03-06 João Távora <joaotavora@gmail.com> + + Have a couple of lsp faces inherit from basic "shadow" + + * eglot.el (eglot-diagnostic-tag-unnecessary-face) + (eglot-diagnostic-tag-deprecated-face): Inherit from 'shadow'. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/858 + +2022-03-06 Po Lu <luangruo@yahoo.com> + + Slightly fix mouse-highlight processing on Haiku + + * src/haikuterm.c (haiku_read_socket): If no corresponding frame + was found for a keyboard event, clear mouse highlight. + +2022-03-06 Po Lu <luangruo@yahoo.com> + + Implement frame cascading on Haiku + + * haikufns.c (haiku_create_frame): Cascade frame position with + the focused frame if position is not user or programmer + specified. + +2022-03-06 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 0090318c61 * lib-src/seccomp-filter.c (main): Use faccessat2 only if ... + 3bb01a499b Fix regression in derived-mode-init-mode-variables + +2022-03-05 Po Lu <luangruo@yahoo.com> + + Implement "window cascading" on NS + + * src/nsfns.m (Fx_create_frame): Cascade new frame position if + size hint flags are not USPosition or PPosition. + +2022-03-05 Po Lu <luangruo@yahoo.com> + + Reduce non-toolkit scroll bar flicker + + * src/xterm.c (x_scroll_bar_create): Initialize double buffer + for scroll bar. + (x_scroll_bar_set_handle) + (x_scroll_bar_remove, x_scroll_bar_expose): Draw to back buffer + instead. + (x_scroll_bar_end_update): New function. + (x_scroll_bar_clear): Fill the scroll bar with the background + instead when double buffered. + * src/xterm.h (struct scroll_bar): New field `x_drawable'. + +2022-03-05 Po Lu <luangruo@yahoo.com> + + Fix reporting of menu bar wheel events on no toolkit builds + + * src/xterm.c (x_toolkit_position): Handle menu bar position + on no-toolkit builds. + (x_create_terminal): Always add `toolkit_position_hook'. + +2022-03-05 Robert Pluim <rpluim@gmail.com> + + Use pselect instead of select in nsterm.m + + * src/nsterm.m ([EmacsApp fdhandler:]): Use pselect instead of + the single remaining use of select (because we try to avoid using + select directly) (bug#54245). + +2022-03-05 Lars Ingebrigtsen <larsi@gnus.org> + + Fix emacs-module-test after recent changes + + * test/Makefile.in ($(test_module)): Include libgnu.a in the + module test (because the module uses functions from gnulib) + (bug#32452). + +2022-03-05 Po Lu <luangruo@yahoo.com> + + Obey decorator-specified width and height of tooltip frames on Haiku + + * src/haiku_support.cc (BWindow_dimensions): New functions. + * src/haiku_support.h: Update prototypes. + * src/haikufns.c (Fx_show_tip): Use actual dimensions, because + the decorator might specify a minimum width and height for the + tooltip frame. + * src/haikuterm.c (haiku_update_size_hints): Ignore tooltip + frames. + +2022-03-05 Po Lu <luangruo@yahoo.com> + + Garbage Haiku tooltip frames on size change + + * haikuterm.c (haiku_read_socket): If tooltip frame dimensions + actually changed, garbage the frame. + +2022-03-04 Paul Eggert <eggert@cs.ucla.edu> + + Fix process-attributes time precision on BSD + + * src/sysdep.c (timeval_to_timespec) [__FreeBSD__ || DARWIN_OS]: + Remove; no longer needed. + (make_lisp_s_us) [__FreeBSD__ || DARWIN_OS || __OpenBSD__]: + New function. + (make_lisp_timeval) [__FreeBSD__ || DARWIN_OS || __OpenBSD__]: + Rework in terms of make_lisp_s_us. + (system_process_attributes) [__FreeBSD__ || DARWIN_OS || + __OpenBSD__]: Simplify by using the above. This fixes some minor + problems where timestamps promised more precision than was + actually available. + +2022-03-04 Paul Eggert <eggert@cs.ucla.edu> + + Fix process-attributes time precision on GNU/Linux + + * src/sysdep.c [GNU_LINUX]: + (time_from_jiffies): Simplify by using time-convert. Change args + and result type. All uses changed. + (ltime_from_jiffies): Remove; call time_from_jiffies instead. + (put_jiffies): New function. + (get_up_time): Return Lisp_Object not struct timespec. + All uses changed. Simplify by using time-add. + (system_process_attributes): Simplify by using the above. + This fixes some minor problems where timestamps promised more + precision than was actually available. When info is not + available (e.g., sysconf fails) do not place it into the alist. + * src/timefns.c (float_time): Now extern. + +2022-03-04 Paul Eggert <eggert@cs.ucla.edu> + + %CPU can exceed 100 on GNU/Linux + + * src/sysdep.c (system_process_attributes) [GNU_LINUX]: + CPU usage can exceed 100% on a multicore platform when Emacs is + not entirely single-threaded. + +2022-03-04 Paul Eggert <eggert@cs.ucla.edu> + + Avoid unnecessary make_float in time arithmetic + + * src/timefns.c (float_time): New function. + (time_arith, Ffloat_time): Use it. + +2022-03-04 Paul Eggert <eggert@cs.ucla.edu> + + Fix FreeBSD typo in process-attributes cstime + + * src/sysdep.c (system_process_attributes) [__FreeBSD__]: + Fix typo that caused cstime to always equal cutime. + +2022-03-04 Po Lu <luangruo@yahoo.com> + + Flush default GC before using it in functions that accept a GContext + + * src/xterm.c (x_scroll_run): Flush normal_gc, since some of the + following code depends on it being up-to-date. + +2022-03-04 Po Lu <luangruo@yahoo.com> + + Remove render code in x_scroll_run and drop NoExpose events instead + + * src/xterm.c (x_scroll_run): Stop avoiding NoExpose events + through XRenderComposite. + (handle_one_xevent): Drop NoExpose events to placate some code + in Athena widgets. + +2022-03-04 Dmitry Gutov <dgutov@yandex.ru> + + project-shell: Ensure the resulting buffer is live + + * lisp/progmodes/project.el (project-shell): + Make sure to recreate the shell if the buffer exists but not live + (https://lists.gnu.org/archive/html/emacs-devel/2022-03/msg00017.html). + +2022-03-04 Po Lu <luangruo@yahoo.com> + + Prevent some NoExpose events from being generated + + * src/xterm.c (x_scroll_run): Use the rendering extension if + available to avoid NoExpose events. + +2022-03-04 Po Lu <luangruo@yahoo.com> + + Implement `pre_activate' callbacks for Motif menus + + * lwlib/lwlib-Xm.c (make_menu_in_widget): Add + xm_pop_up_callback as the popup callback. + (xm_pop_up_callback): New function. + +2022-03-04 Po Lu <luangruo@yahoo.com> + + Fix the MS-DOS build + + * msdos/sedlibmk.inp: Update for gnulib merge. + +2022-03-04 Stefan Monnier <monnier@iro.umontreal.ca> + + trace.el: Preserve the line structure + + Print newlines appearing inside values (i.e. inside strings) as \n + rather than actual newlines so as to avoid messing up the main + structure of the trace buffer. + + * lisp/emacs-lisp/trace.el (trace-entry-message) + (trace-exit-message, trace--read-args): Quote newlines + +2022-03-04 Lars Ingebrigtsen <larsi@gnus.org> + + Avoid statting directories on startup for Info + + * doc/misc/efaq.texi (File-name conventions) Mention + Info-directory-list instead. + + * doc/misc/info.texi (Emacs Info Variables): Mention + Info--default-directory-list. + + * lisp/info.el (Info-default-directory-list): Default to nil to + avoid statting directories on Emacs startup (bug#27933). + (Info--default-directory-list): Factored out into own function. + (Info-default-dirs): Append value of Info-default-directory-list + to the value returned from Info--default-directory-list. + +2022-03-04 Lars Ingebrigtsen <larsi@gnus.org> + + Improve scroll-bar-mode/default-frame-alist interaction docs + + * lisp/scroll-bar.el (scroll-bar-mode): Mention + default-frame-alist (bug#54237). + + * src/frame.c (syms_of_frame): Clarify further that setting this + variable may have unintended consequences. + +2022-03-04 Lars Ingebrigtsen <larsi@gnus.org> + + Add some sleeps to gnutls_try_handshake + + * admin/merge-gnulib (GNULIB_MODULES): Add the nanosleep module. + * m4/gnulib-comp.m4 (gl_EARLY): + * lib/gnulib.mk.in: Automatic update. + + * m4/nanosleep.m4: + * lib/nanosleep.c: New module. + + * nt/mingw-cfg.site (gl_cv_func_free_preserves_errno): + * nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_nanosleep): Omit nanosleep, + since mingw has it. + + * src/gnutls.c (gnutls_try_handshake): Add some sleeping to the + busy-wait loop so that we don't use 100% CPU here (bug#32452). + +2022-03-04 Po Lu <luangruo@yahoo.com> + + Add a few warnings about special event structures on X + + * xterm.c (x_construct_mouse_click) + (x_note_mouse_movement): Add comments explaining the nature of + some special event structures. + +2022-03-04 Po Lu <luangruo@yahoo.com> + + Fix some errors in stretch glyphs code on PGTK + + * src/pgtkterm.c (x_draw_stretch_glyph_string): Remove + unnecessary code. Reported by Eli Zaretskii <eliz@gnu.org>. + +2022-03-04 Eli Zaretskii <eliz@gnu.org> + + Fix wording and punctuation in recent Gnus documentation changes + + * lisp/gnus/nnselect.el (nnselect-allow-ephemeral-expiry): Make + the first sentence of the doc string be a single line. + + * doc/misc/gnus.texi (Creating Search Groups): Fix space between + sentences. + +2022-03-04 Po Lu <luangruo@yahoo.com> + + Initialize time inside motion and button events converted from XI events + + * src/xterm.c (handle_one_xevent): Make sure time is initialized + in artificial events passed to functions that use it. + +2022-03-04 Andrew G Cohen <cohen@andy.bu.edu> + + Turn expiry on for nnselect groups + + Articles in (persistent) groups from the gnus/nnselect backend will + now be run through the expiry process upon exit, like other persistent + groups. Expiry is not on by default for ephemeral nnselect groups but + may be turned on with nnselect-allow-ephemeral-expiry set to t. + + * lisp/gnus/nnselect.el (nnselect-request-expire-articles): Make + article expiry work. + (nnselect-allow-ephemeral-expiry): New variable. + * doc/misc/gnus.texi (Creating Search Groups): Document + nnselect-allow-ephemeral-expiry. + +2022-03-04 Po Lu <luangruo@yahoo.com> + + Correctly process legacy XI wheel events on top of scroll bars + + * src/xterm.c (handle_one_xevent): Handle XI button events + generated by scroll wheels on top of scroll bars. + +2022-03-03 Po Lu <luangruo@yahoo.com> + + Pass core scroll wheel events outside the edit widget to Emacs on GTK + + * src/xterm.c (x_construct_mouse_click): Translate coordinates + if the event window is not the edit widget window. + (handle_one_xevent): Treat core scroll wheel events specially, + if mouse_or_wdesc_frame did not find the frame. + +2022-03-03 Po Lu <luangruo@yahoo.com> + + Fix display of stretch glyphs when hscrolled on PGTK + + * pgtkterm.c (x_draw_stretch_glyph_string): Use correct box + dimensions. + +2022-03-03 Po Lu <luangruo@yahoo.com> + + * src/pgtkterm.c (pgtk_draw_fringe_bitmap): Synchronize logic with X. + +2022-03-03 Po Lu <luangruo@yahoo.com> + + Synchronize NS fringe bitmap code with X + + * nsterm.m (ns_draw_fringe_bitmap): Redefine bitmap if it does + not already exist. + +2022-03-03 Po Lu <luangruo@yahoo.com> + + Synchronize Haiku fringe bitmap code with X + + * haikuterm.c (haiku_draw_fringe_bitmap): + (haiku_define_fringe_bitmap): + (haiku_destroy_fringe_bitmap): Synchronize logic with X. + +2022-03-03 Po Lu <luangruo@yahoo.com> + + Merge from origin/emacs-28 + + 29ff903bb0 Avoid crashes when fringe bitmaps are defined in daemon mode + 92e2d19fe7 One more fix of the BPA implementation + cd51d9c7ab Fix handling of brackets in BPA + +2022-03-03 Philipp Stephani <phst@google.com> + + Teach Edebug about the special '&whole' syntax for compiler macros. + + * lisp/emacs-lisp/cl-macs.el (cl-define-compiler-macro-list): New + Edebug element specification. + (cl-define-compiler-macro): Use it. + + * test/lisp/emacs-lisp/cl-macs-tests.el + (cl-define-compiler-macro/edebug): New unit test. + +2022-03-03 Stefan Monnier <monnier@iro.umontreal.ca> + + (with-demoted-errors): Fix bug#54225 + + * lisp/subr.el (with-demoted-errors): Adjust to argument order of + `macroexp-warn-and-return` changed in f262a6af3694b41828ff. + +2022-03-03 Lars Ingebrigtsen <larsi@gnus.org> + + Fix clobbering of match data in executable-set-magic + + * lisp/progmodes/executable.el (executable-set-magic): Switching + buffers may clobber match data, so save the match data first + (bug#54218). + +2022-03-03 Jim Porter <jporterbugs@gmail.com> + + Allow splitting strings in Eshell expansions with "plain" strings + + Since '$var[hello 0]' doesn't make sense when 'var' is a string, the + previous restriction was unnecessary. + + * lisp/eshell/esh-var.el (Commentary): Update documentation. + (eshell-apply-indices): Allow "plain" strings to split strings. + + * test/lisp/eshell/esh-var-test.el + (esh-var-test/interp-var-string-split-indices) + (esh-var-test/quoted-interp-var-string-split-indices): Update tests. + + * doc/misc/eshell.texi (Dollars expansion): Update documentation. + +2022-03-03 Jim Porter <jporterbugs@gmail.com> + + Fix parsing of indices in Eshell expansions + + Previously, more-complex index expansions, like '$var[":" 0]' or + '$var[$(expr) 0]' failed to parse correctly. + + * lisp/eshell/esh-var.el (Commentary): Clarify indexing and length + expansions. + (eshell-parse-indices): Expand docstring and support parsing inside + double-quotes. + (eshell-eval-indices): New function. + (eshell-parse-variable): Use it. + + * test/lisp/eshell/esh-var-tests.el (eshell-test-value): New defvar. + (esh-var-test/interp-var-indices, + (esh-var-test/interp-var-split-indices) + (esh-var-test/interp-var-string-split-indices) + (esh-var-test/interp-var-regexp-split-indices) + (esh-var-test/interp-var-assoc, esh-var-test/interp-var-length-list) + (esh-var-test/interp-var-length-string) + (esh-var-test/interp-var-length-alist) + (esh-var-test/quoted-interp-var-indices) + (esh-var-test/quoted-interp-var-split-indices) + (esh-var-test/quoted-interp-var-string-split-indices) + (esh-var-test/quoted-interp-var-regexp-split-indices) + (esh-var-test/quoted-interp-var-assoc) + (esh-var-test/quoted-interp-var-length-list) + (esh-var-test/quoted-interp-var-length-string) + (esh-var-test/quoted-interp-var-length-alist): New tests. + + * doc/misc/eshell.texi (Dollars Expansion): Expand and reword + documentation for indexing and length expansions. + +2022-03-03 Jim Porter <jporterbugs@gmail.com> + + Fix Eshell dollar interpolation inside of double-quotes + + For example, + + echo "${echo hi}" + + previously tried to run the program named 'echo hi', instead of 'echo' + with the argument 'hi'. + + * lisp/eshell/esh-arg.el (eshell-parse-inner-double-quote): + New function. + + * lisp/eshell/esh-var.el (eshell-parse-variable-ref): Support parsing + when wrapped in double-quiotes. + + * test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-var) + (esh-var-test/interp-quoted-var) + (esh-var-test/interp-quoted-var-concat) + (esh-var-test/quoted-interp-var) + (esh-var-test/quoted-interp-quoted-var) + (esh-var-test/quoted-interp-lisp, esh-var-test/quoted-interp-cmd) + (esh-var-test/quoted-interp-temp-cmd): New tests. + +2022-03-03 Jim Porter <jporterbugs@gmail.com> + + Add a new macro to simplify parsing temporary Eshell command strings + + This abstracts out the somewhat-unusual "insert&delete" logic in + 'eshell-parse-command' so that it can be used elsewhere, and also + ensures that the deletion occurs even if an an error occurs. + + * lisp/eshell/esh-cmd.el (eshell-with-temp-command): New macro. + (eshell-parse-command): Use it. + +2022-03-03 Jim Porter <jporterbugs@gmail.com> + + Move Eshell variable interpolation tests to their own file + + * test/lisp/eshell/eshell-tests.el (eshell-test/interp-cmd) + (eshell-test/interp-lisp, eshell-test/interp-temp-cmd) + (eshell-test/interp-concat, eshell-test/interp-concat-lisp) + (eshell-test/interp-concat2, eshell-test/interp-concat-lisp2) + (eshell-test/interp-cmd-external) + (eshell-test/interp-cmd-external-concat, eshell-test/window-height) + (eshell-test/window-width, eshell-test/last-result-var) + (eshell-test/last-result-var2, eshell-test/last-arg-var): + Move from here... + + * test/lisp/eshell/esh-var-test.el (esh-var-test/interp-lisp) + (esh-var-test/interp-cmd, esh-var-test/interp-cmd-external) + (esh-var-test/interp-temp-cmd, esh-var-test/interp-concat-lisp) + (esh-var-test/interp-concat-lisp2, esh-var-test/interp-concat-cmd) + (esh-var-test/interp-concat-cmd2) + (esh-var-test/interp-concat-cmd-external, esh-var-test/window-height) + (esh-var-test/window-width, esh-var-test/last-result-var) + (esh-var-test/last-result-var2, esh-var-test/last-arg-var): + ... to here. + +2022-03-03 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 225e0d6047 Correct etc/NEWS entry about bitmapped fonts + + # Conflicts: + # etc/NEWS + +2022-03-02 Dmitry Gutov <dgutov@yandex.ru> + + Cache the backend value together with the project root + + * lisp/progmodes/project.el (project-try-vc): + Cache the backend value together with the root. + (project-root, project-files, project-ignores): + Update to access the new data structure. + +2022-03-02 Po Lu <luangruo@yahoo.com> + + * src/xterm.c: Fix commentary on GTK client side windows. + +2022-03-02 Po Lu <luangruo@yahoo.com> + + Fix Motif build without toolkit scroll bars + + * src/xterm.c: Always include Xm.h on Motif. + +2022-03-02 Dmitry Gutov <dgutov@yandex.ru> + + * lisp/progmodes/xref.el: Bump the version. + +2022-03-02 Po Lu <luangruo@yahoo.com> + + Don't calculate any frame for extension events + + * src/xterm.c (handle_one_xevent): If event is not a core event, + don't try to calculate any from event.xany.window. + +2022-03-02 Po Lu <luangruo@yahoo.com> + + Implement `toolkit_position_hook' on PGTK + + * src/pgtkterm.c (pgtk_toolkit_position): New function. + (pgtk_create_terminal): Set it as the toolkit position hook. + +2022-03-02 Po Lu <luangruo@yahoo.com> + + Fix menu bar position reporting on Haiku as well + + * src/haikuterm.c (haiku_toolkit_position): New function. + (haiku_create_terminal): Register new hook. + +2022-03-02 Po Lu <luangruo@yahoo.com> + + Fix reporting of imaginary key prefixes on toolkit tool and menu bars + + * src/keyboard.c (make_lispy_position): Set imaginary prefix if + the terminal says what widget the position is on top of. + * src/termhooks.h (struct terminal): New field + `toolkit_position_hook'. + * src/xterm.c (x_toolkit_position): New function. + (x_create_terminal): Register hook. + +2022-03-02 Brian Leung <bkleung89@gmail.com> + João Távora <joaotavora@gmail.com> + + Prevent empty diagnostic tags vector hiding main fontification + + * eglot.el (eglot-handle-notification): Require that the resulting + list of faces is non-empty and that each face corresponds only to a + known tag. + + For unknown tags, we don't pass any additional face information to + Flymake, and instead expect it to make the appropriate overlay with + the "severity" property of the Diagnostic. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/851 + +2022-03-02 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 9dadcbe429 ; * doc/misc/eshell.texi (Dollars Expansion): Fix markup. + 2c3d1b6bf4 Improve/correct documentation about Eshell variable expansion + 9e257aecc9 Partially revert b03f74e0f2a578b1580e8b1c368665850ee7f808 + +2022-03-02 Po Lu <luangruo@yahoo.com> + + Fix some bugs with multiple terminals on Haiku + + * src/haikuterm.c (haiku_mouse_position): Only clear + `mouse_moved' for Haiku frames. + +2022-03-01 Po Lu <luangruo@yahoo.com> + + Fix persistent help text on disabled menu items + + * oldXMenu/Activate.c (XMenuActivate): Always deactivate help + echo upon leaving a menu item. + +2022-03-01 Po Lu <luangruo@yahoo.com> + + * src/msdos.c (dos_rawgetc): Handle tab bar clicks correctly. + +2022-03-01 Po Lu <luangruo@yahoo.com> + + Dismiss help text when item becomes unactivated on oldXMenu + + * oldXMenu/Activate.c (XMenuActivate): Dismiss help text when + leaving an item. + +2022-03-01 Po Lu <luangruo@yahoo.com> + + Fix odd scrolling bugs on LessTif + + * src/xterm.c (handle_one_xevent): Give emulated button events + to Motif. + +2022-03-01 Po Lu <luangruo@yahoo.com> + + Improve behavior of Motif popup menus on XI2 + + * src/xmenu.c (create_and_show_popup_menu): Set input focus to + menu window. + +2022-03-01 Paul Eggert <eggert@cs.ucla.edu> + + Revert previous merge-gnulib change + + * admin/merge-gnulib: Revert previous stopgap change. + It shouldn’t be needed now that Gnulib has the change + 2022-03-01T18:01:59Z!eggert@cs.ucla.edu. + +2022-03-01 Po Lu <luangruo@yahoo.com> + + Add PropertyChangeMask to the standard event set + + * src/xfns.c (x_window): Remove special Motif code. + * src/xterm.h (STANDARD_EVENT_SET): Add PropertyChangeMask. + +2022-03-01 Po Lu <luangruo@yahoo.com> + + Fix crashes and other bugs on LessTif + + * lwlib/lwlib-Xm.c (make_menu_in_widget): XmIsRowColumn is + broken on the latest LessTif release, so avoid that here. + * src/xfns.c (x_window): Add PropertyChangeMask which LessTif + doesn't do itself. + +2022-03-01 Po Lu <luangruo@yahoo.com> + + Fix reporting of wheel events on top of GTK scroll bars + + * src/gtkutil.c (xg_update_scrollbar_pos): + (xg_update_horizontal_scrollbar_pos): Stop ensuring the window + is native. + (xg_event_is_for_scrollbar): New variable `for_valuator'. + All callers changed. + * src/gtkutil.h: Update prototypes. + * src/xterm.c (handle_one_xevent): Drop all valuator change + events destined for scroll bars. + +2022-03-01 Po Lu <luangruo@yahoo.com> + + * src/xwidget.h: Fix build with XI 2.4. + +2022-03-01 Po Lu <luangruo@yahoo.com> + + Make precision scrolling on top of the tool bar work + + * lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): Bind + some more events. + + (pixel-scroll-precision): + (pixel-scroll-start-momentum): If window is a frame, use its + selected window. + +2022-03-01 Po Lu <luangruo@yahoo.com> + + Avoid duplicate wheel and button events on non-toolkit scroll bars + + * src/xterm.c (x_scroll_bar_create): Set appropriate input + extension event mask. + (handle_one_xevent): Move some ifdefs around and handle input + extension button events on scroll bars. + +2022-03-01 Po Lu <luangruo@yahoo.com> + + Fix old X menu on builds with XI2 + + * oldXMenu/Activate.c (XMenuActivateSetTranslateFunction): New + function. + (XMenuActivate): Handle generic events. + * oldXMenu/XMenu.h: New prototypes. + (Translate_func): New type. + * src/xmenu.c (x_menu_wait_translate_generic_event): New + function. + (x_menu_show): Set translate function. + +2022-03-01 Po Lu <luangruo@yahoo.com> + + Disable some code that interferes with menus on Lucid + + * src/xmenu.c (create_and_show_popup_menu) + (server_timestamp_predicate): Disable timestamp code on builds + using the Lucid menu bar widget. + +2022-03-01 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 6dbc3da205 Fix :tag for eol in tab-first-completion + +2022-03-01 Po Lu <luangruo@yahoo.com> + + Fix C-g inside toolkit file dialogs with XI2 + + * src/xfns.c (Fx_file_dialog): Handle GenericEvents when looking + for quit character. + * src/xmenu.c (x_menu_wait_for_event): If data is non-nil, use + XPending. + +2022-03-01 Stefan Kangas <stefan@marxist.se> + + Update publicsuffix.txt from upstream + + * etc/publicsuffix.txt: Update from + https://publicsuffix.org/list/public_suffix_list.dat + dated 2022-02-28 02:58:30 UTC. + +2022-02-28 Po Lu <luangruo@yahoo.com> + + Intern server time property during terminal initialization + + * src/xmenu.c (create_and_show_popup_menu): Use previously + interned atom. + * src/xterm.c (x_term_init): New atom `EMACS_SERVER_TIME_PROP'. + * src/xterm.h (struct x_display_info): New field + `Xatom_EMACS_SERVER_TIME_PROP'. + +2022-02-28 Po Lu <luangruo@yahoo.com> + + Fix Motif menu help text in submenus + + * lwlib/lwlib-Xm.c (xm_arm_callback): + (make_menu_in_widget): + (update_one_menu_entry): + (xm_update_one_widget): + (do_call): Pass instance to arm callback and use wv as user data + instead of call data. + +2022-02-28 Po Lu <luangruo@yahoo.com> + + * src/xterm.c: Explain frame resize synchronization. + +2022-02-28 Paul Eggert <eggert@cs.ucla.edu> + + Work around merge-gnulib glitch from fresh checkout + + * admin/merge-gnulib: In a fresh checkout, run gnulib-tool + twice, instead of merely running autogen.sh twice. + +2022-02-28 Stefan Monnier <monnier@iro.umontreal.ca> + + ecomplete: Try and avoid losing data + + * lisp/ecomplete.el (ecomplete-add-item): Make sure the database is + setup, so we don't risk overwriting it with a (mostly) empty one. + (ecomplete-save): Don't save an empty database. + +2022-02-28 Po Lu <luangruo@yahoo.com> + + Clean up input extension event handling code + + * src/xterm.c (handle_one_xevent): Fix usages of event + structures of the wrong type. + +2022-02-28 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (handle_one_xevent): Add some missing dead keys. + +2022-02-28 Mattias Engdegård <mattiase@acm.org> + + Clean up byte-compile-arglist-warn + + * lisp/emacs-lisp/bytecomp.el (byte-compile-arglist-warn): + Remove unnecessary sort (only need min and max). Reduce mutation. + +2022-02-28 Lars Ingebrigtsen <larsi@gnus.org> + + Fix :color specification in flat-button boxes + + * src/xfaces.c (realize_gui_face): Allow reliably specifying + :color in flat-button boxes (bug#54196). + +2022-02-28 Lars Ingebrigtsen <larsi@gnus.org> + + Don't throw errors while propertizing in sgml-mode + + * lisp/textmodes/sgml-mode.el (sgml-syntax-propertize): Don't + throw an error when propertizing (bug#54195). + +2022-02-28 Po Lu <luangruo@yahoo.com> + + Better fix for bug#13476 + + * lisp/faces.el (face-spec-recalc): Apply scroll bar foreground + and background to the frame if changing the scroll-bar face. + (scroll-bar): Restore previous declaration. That way, the + default colors are used for toolkit scroll bars, instead of + black and white. + +2022-02-28 Po Lu <luangruo@yahoo.com> + + Improve treatment of toolkit scroll bars with the input extension + + * src/xterm.c (x_create_horizontal_toolkit_scroll_bar) + (x_create_toolkit_scroll_bar): Set XI2 event mask appropriately. + (handle_one_xevent): Make sure coordinates are correct for the + frame's window when handling wheel events. + +2022-02-28 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + e77fc8262a Update to Org 9.5.2-22-g33543d + 9bce4b67f1 ; * lisp/help.el (with-help-window): Doc fix. (Bug#54170) + 558b03a958 Add explicit '--no-heading' for ripgrep + +2022-02-27 Po Lu <luangruo@yahoo.com> + + Don't save menu bar events that land on the menu bar itself + + * src/xterm.c (handle_one_xevent): Ignore menu bar events which + land on the menu bar itself instead of a button. + +2022-02-27 Po Lu <luangruo@yahoo.com> + + Treat scroll bar information consistently on Haiku + + * src/haiku_support.cc (class EmacsScrollBar): New field `info'. + (EmacsScrollBar): Obtain scroll bar info on initialization. + (ButtonRegionFor): Use that information instead. + +2022-02-27 Lars Ingebrigtsen <larsi@gnus.org> + + Merge from gnulib + + * m4/gnulib-common.m4 (gl_COMMON_BODY): + * lib/gnulib.mk.in (CXXCPP): + * lib/cdefs.h: Updated with admin/merge-gnulib. (This is in + preparation to adding the nanosleep module later.) + +2022-02-27 Po Lu <luangruo@yahoo.com> + + Don't send help-echo on menu button arming not caused by motion events + + * lwlib/lwlib-Xm.c (xm_arm_callback): Ignore arming if the arm + was not caused by an EnterNotify or MotionNotify event. + +2022-02-27 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (handle_one_xevent): Translate motion events on Motif. + +2022-02-27 Po Lu <luangruo@yahoo.com> + + Work around some problems with Motif and the input extension + + * src/xmenu.c (create_and_show_popup_menu): Restore input focus + to the frame's outer window if there was an input extension + grab. + +2022-02-27 Po Lu <luangruo@yahoo.com> + + Translate some more input extension events needed by Motif + + * src/xterm.c (handle_one_xevent): Translate XI_Enter and + XI_Leave events when built with Motif. + +2022-02-27 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + a50f8dec09 Follow OpenSSH changes in Tramp + e86eae21a9 Document better how to reset attributes of faces for new f... + +2022-02-26 Po Lu <luangruo@yahoo.com> + + * commands.texi (Misc Events): Update description of wheel events. + +2022-02-26 Manuel Uberti <manuel.uberti@inventati.org> + + Add project-ignore-buffer-conditions + + * lisp/progmodes/project.el (project-ignore-buffer-conditions): + New defcustom. + (project--read-project-buffer): + Use it (bug#54100). + +2022-02-26 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (handle_one_xevent): Fix translation of button events. + +2022-02-26 Po Lu <luangruo@yahoo.com> + + Fix Motif menu and menu bar dismissal on XI2 + + * src/xmenu.c (x_activate_menubar): Improve ungrabbing logic on + XI2. + (server_timestamp_predicate): New function. + (create_and_show_popup_menu): If the display supports XI2, make + sure the timestamps are correct by dispatching a PropertyNotify + event to Xt. + * src/xterm.c (handle_one_xevent): Translate XI_ButtonRelease + events into core events before dispatching them to Xt. + +2022-02-26 Po Lu <luangruo@yahoo.com> + + Ignore irrelevant button events on Haiku scroll bars + + * src/haiku_support.cc (MouseDown): Ignore if there are too many + buttons pressed. + +2022-02-26 Po Lu <luangruo@yahoo.com> + + Prevent crashes on event for removed scroll bar on Haiku + + * src/haiku_support.cc (class EmacsScrollBar): Remove field + `scroll_bar'. + (ValueChanged, MouseDown, MouseUp, BScrollBar_make_for_view): + Adjust for changes. + + * src/haiku_support.h (struct haiku_scroll_bar_value_event) + (struct haiku_scroll_bar_drag_event) + (struct haiku_scroll_bar_part_event): New field `window'. + + * src/haikuterm.c (haiku_scroll_bar_from_widget): New function. + (haiku_read_socket): Adjust for changes in scroll bar event + structures. + +2022-02-26 Po Lu <luangruo@yahoo.com> + + Fix reporting of horizontal scroll bar buttons on Haiku + + * haikuterm.c (haiku_read_socket): Use correct values for scroll + bar buttons when the scroll bar is horizontal. + +2022-02-26 Po Lu <luangruo@yahoo.com> + + Improve scroll bar button handling on Haiku + + * src/haiku_io.c (haiku_len): Add `SCROLL_BAR_PART_EVENT'. + * src/haiku_support.cc (class EmacsScrollBar): New fields + `dragging' and `current_state', along with `old_value' and + `current_part'. + (EmacsScrollBar): Set horizontal flag to `horizontal_p'. + (MessageReceived): Set old_value when receiving + SCROLL_BAR_UPDATE message. + (ValueChanged): Don't allow scroll bar values to change while + dragging. + (MouseUp, MouseDown): Calculate button under mouse and act + accordingly. + * src/haiku_support.h (enum haiku_event_type): New event + `SCROLL_BAR_PART_EVENT'. + (enum haiku_scroll_bar_part): New enumerator. + (struct haiku_scroll_bar_part_event): New struct. + * src/haikuterm.c (haiku_read_socket): Handle + SCROLL_BAR_PART_EVENTs. + +2022-02-26 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + ded89ed3fa * lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options): ... + +2022-02-25 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (handle_one_xevent): Set user time for xwidgets as well. + +2022-02-25 Dmitry Gutov <dgutov@yandex.ru> + + Drop the visited file modtime check for remote xref hits + + * lisp/progmodes/xref.el (xref--hits-remote-id): New variable. + (xref--convert-hits, xref--collect-matches) + (xref--find-file-buffer): Use it (bug#54025). + +2022-02-25 Paul Eggert <eggert@cs.ucla.edu> + + Robustify merge-gnulib a bit + + * admin/merge-gnulib: Fail if autogen.sh fails. + Remove autom4te.cache before running gnulib-tool. + +2022-02-25 Bob Rogers <rogers@rgrjr.com> + + Add new file ietf-drums-date.el + + * lisp/mail/ietf-drums-date.el: parse-time-string replacement which is + compatible but can be made stricter if desired. + * test/lisp/mail/ietf-drums-date-tests.el (added): Add tests for + ietf-drums-parse-date-string. + * lisp/mail/ietf-drums.el (ietf-drums-parse-date): Use + ietf-drums-parse-date-string. + +2022-02-25 Po Lu <luangruo@yahoo.com> + + Improve treatment of dropping mouse track state on Haiku + + * src/haikuterm.c (haiku_mouse_or_wdesc_frame): New function. + (haiku_read_socket): Use it to find the appropriate frame when + handling motion or button events. + +2022-02-25 Po Lu <luangruo@yahoo.com> + + Improve tracking of modified regions on Haiku + + * src/haiku_support.cc (class EmacsView): New field + `invalid_region'. + (FlipBuffers): Only invalidate that region. + (SetUpDoubleBuffering): Clear that region. + (BView_draw_lock): New parameters for denoting the region + to invalidate. + (BView_invalidate_region): New function. + * src/haiku_support.h: Update prototypes. + * src/haikufns.c (haiku_set_background_color): + * src/haikumenu.c (digest_menu_items): + * src/haikuterm.c (haiku_clip_to_string): + (haiku_flip_buffers): + (haiku_clear_frame_area): + (haiku_clear_frame): + (haiku_draw_glyph_string): + (haiku_after_update_window_line): + (haiku_draw_window_cursor): + (haiku_draw_vertical_window_border): + (haiku_draw_window_divider): + (haiku_draw_fringe_bitmap): + (haiku_scroll_run): + (haiku_read_socket): + (haiku_flash): + (haiku_clear_under_internal_border): Mark appropriate region as + invalid before buffer flip. + +2022-02-25 Po Lu <luangruo@yahoo.com> + + Fix calculation of scroll deltas when coalescing wheel events + + * src/xterm.c (handle_one_xevent): Use accumulated values + instead of raw delta to determine scroll amounts. + +2022-02-25 Po Lu <luangruo@yahoo.com> + + Make interpolated scrolling work above non-selected windows + + * lisp/pixel-scroll.el (pixel-scroll-precision-interpolate): New + parameter `old-window'. + (pixel-scroll-precision): Pass originally selected window to the + interpolation function. + +2022-02-25 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 5c77aed2d6 Mention flyspell-prog-mode in flyspell-mode doc string + +2022-02-24 Jim Porter <jporterbugs@gmail.com> + + Fix Eshell process tests to (hopefully) work on all platforms + + * test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill-pipeline): + Fix test (bug#54136). + +2022-02-24 Dmitry Gutov <dgutov@yandex.ru> + + xref--find-file-buffer: Check modified-p and modtime + + * lisp/progmodes/xref.el (xref--find-file-buffer): + Check whether the buffer contents match what's on disk + (bug#54025). + +2022-02-24 Po Lu <luangruo@yahoo.com> + + Set user time when receiving any wheel events + + * src/xterm.c (handle_one_xevent): Set user time if the mouse + wheel moved. + +2022-02-24 Eli Zaretskii <eliz@gnu.org> + + Fix esh-proc-tests on MS-Windows + + * test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill-pipeline) + (esh-proc-test/kill-background-process): Fix tests on MS-Windows. + +2022-02-24 Eli Zaretskii <eliz@gnu.org> + + Make 't' in Buffer-menu be more defensive + + * lisp/buff-menu.el (Buffer-menu-visit-tags-table): Verify that + the buffer holds a tags-table file before using it as such. + (Bug#54133) + +2022-02-24 Paul Eggert <eggert@cs.ucla.edu> + + * admin/merge-gnulib: fix bare checkout (Bug#32452#65) + +2022-02-24 Alan Mackenzie <acm@muc.de> + + Amend byte-run-strip-symbol-positions so that an unexec build builds + + This fixes bug #54098. + + * lisp/emacs-lisp/byte-run.el (byte-run--strip-list) + (byte-run--strip-vector/record): New functions. These alter a list or + vector/record structure only where a symbol with position gets replaced by a + bare symbol. + (byte-run-strip-symbol-positions): Reformulate to use the two new functions. + (function-put): No longer strip positions from the second and third arguments. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-out): Remove the senseless + "stripping" of putative symbol positions from OPERAND, which is nil or a + number. + +2022-02-24 Michael Albinus <michael.albinus@gmx.de> + + Fix symlinks in tramp-sshfs.el (Bug#54130) + + * lisp/net/tramp-sshfs.el (tramp-methods) <sshfs>: + Add "-o transform_symlinks" to `tramp-mount-args'. + (tramp-sshfs-file-name-handler-alist): + Use `tramp-sshfs-handle-file-writable-p'. + (tramp-sshfs-handle-file-writable-p): New defun. (Bug#54130) + + * test/lisp/net/tramp-tests.el (tramp-test18-file-attributes) + (tramp-test20-file-modes): Adapt tests. + +2022-02-24 Po Lu <luangruo@yahoo.com> + + Check if WM support for NET_WM_USER_TIME_WINDOW changed during updates + + * src/xterm.c (x_display_set_last_user_time): Update the user + time window if window manager support changed. + + * src/xterm.h (struct x_display_info): New field + `last_user_check_time'. + +2022-02-24 Jim Porter <jporterbugs@gmail.com> + + Don't superfluously emit prompts when terminating processes in Eshell + + * lisp/eshell/esh-proc.el (eshell-kill-process-function): Only reset + the prompt if PROC is writing to the terminal. + (eshell-sentinel): Only write the exit message if PROC is writing to + the terminal (bug#54136). + + * test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill-pipeline) + (esh-proc-test/kill-pipeline-head) + (esh-proc-test/kill-background-process): New tests. + +2022-02-24 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 5942504391 Reword face-remap-add-relative manual entry + +2022-02-23 Po Lu <luangruo@yahoo.com> + + Set border colors through the toolkit + + * src/xfns.c (x_set_border_pixel): Set colors through Xt to + avoid some problems. + +2022-02-23 Po Lu <luangruo@yahoo.com> + + Fix auto-lower when the mouse moves onto a scrollbar on Haiku + + * src/haiku_support.cc (MouseMoved): + (BView_inside_scroll_bar): New functions. + * src/haiku_support.h: Update prototypes. + * src/haikuterm.c (haiku_read_socket): Don't auto-lower if the + pointer left the view for a scroll bar. + +2022-02-23 Po Lu <luangruo@yahoo.com> + + Add support for _NET_WM_STATE_SHADED + + * doc/lispref/frames.texi (Management Parameters): Document new + frame parameter `shaded'. + * etc/NEWS: Announce new frame parameter. + + * src/frame.c (frame_parms) [HAVE_X_WINDOWS]: New frame + parameter `shaded'. + (syms_of_frame): New symbol `shaded'. + * src/xfns.c (x_frame_parm_handlers): Install handler + `x_set_shaded'. + * src/xterm.c (x_set_shaded): New frame parameter handler. + (x_get_current_wm_state): New parameter `shaded'. All callers + changed. + (x_net_wm_state): + (x_handle_net_wm_state): Handle shaded state. + (x_term_init): Intern new atom `shaded'. + * src/xterm.h: Update prototypes. + +2022-02-23 Po Lu <luangruo@yahoo.com> + + Condition out things specific to some versions of the input extension + + * src/xterm.c (x_free_xi_devices, x_init_master_valuators) + (handle_one_xevent): Condition out code that isn't supposed to + be run on the current input extension version. + * src/xterm.h (struct xi_scroll_valuator_t): Make conditional on + HAVE_XINPUT2_1. + (struct xi_touch_point_t): Make conditional on HAVE_XINPUT2_2. + (struct xi_device_t): Make individual fields conditional on the + appropriate client-side input extension version. + +2022-02-23 Po Lu <luangruo@yahoo.com> + + Fix the MS-DOS port + + * msdos/sedlibmk.inp: + * src/conf_post.h [MSDOS]: Update for recent gnulib. + +2022-02-23 Paul Eggert <eggert@cs.ucla.edu> + + Pacify gcc -Wanalyzer-null-dereference + + * src/xdisp.c (normal_char_ascent_descent): Pacify GCC 11.2.1 + 20220127 (Red Hat 11.2.1-9) x86-64 -Wanalyzer-null-dereference. + +2022-02-23 Mauro Aranda <maurooaranda@gmail.com> + + Fix auth-sources defcustom + + * lisp/auth-source.el (auth-sources): The extra attributes should be + in a plist, so inline both :host and :port. Also, give a valid + default value for the choice (bug#54127). + +2022-02-23 Paul Eggert <eggert@cs.ucla.edu> + + Port pre-commit hook to Git 2.35.0 + + * build-aux/git-hooks/pre-commit: Use LC_ALL=C grep -E instead of + sane_egrep (removed in Git 2.35.0). + +2022-02-23 Paul Eggert <eggert@cs.ucla.edu> + + Port to current Gnulib some more + + * admin/merge-gnulib: Remove lib/stdio-read.c and lib/stdio-write.c, + as Emacs doesn’t need these new Gnulib files. + +2022-02-23 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2022-02-23 Paul Eggert <eggert@cs.ucla.edu> + + Port to current Gnulib + + * configure.ac (AM_COND_IF): New macro, needed because Gnulib + normally assumes Automake and now uses this Automake macro. + Problem reported by Lars Ingebrigtsen (Bug#32452#47). + +2022-02-23 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el: Create new unique windows with 'C-x t n' (bug#54038). + + * lisp/tab-bar.el (tab-bar-new-tab-choice): Replace the value 'nil' + with explicit 'clone'. + (tab-bar-move-window-to-tab): Ignore possible side/atom window + parameters with ignore-window-parameters while deleting window. + (tab-bar-new-tab-to): When 'tab-bar-new-tab-choice' is 'clone', + create new unique windows with the same layout using window-state-get + and window-state-put. Do the same after deleting other windows + when 'tab-bar-new-tab-choice' is 'window'. + (tab-bar-duplicate-tab): Replace the value 'nil' with 'clone' for + 'tab-bar-new-tab-choice'. + +2022-02-23 Po Lu <luangruo@yahoo.com> + + Expand commentary in xterm.c + + * src/xterm.c: Expand commentary to include sections on optional + features and toolkit support. + +2022-02-23 Protesilaos Stavrou <info@protesilaos.com> + + Update modus-themes to version 2.2.0 + + * doc/misc/modus-themes.org (Enable and load) + (Differences between loading and enabling): Clarify wording. + (Customization Options): Update sample configuration. + (Option for completion framework aesthetics): Refactor + 'modus-themes-completions' to accept an alist value instead of a + symbol. + (Override colors): Elaborate on the example. + (Toggle themes without reloading them): Document sample command that + uses 'enable-theme' instead of 'load-theme'. + (Acknowledgements): Update names of contributors to ideas. + * etc/themes/modus-themes.el (modus-themes-operandi-colors) + (modus-themes-vivendi-colors): Tweak the palette's completion-related + background colors. + (modus-themes-completion-standard-first-match) + (modus-themes-completion-standard-selected) + (modus-themes-completion-extra-selected): Deprecate faces and replace + them with 'modus-themes-completion-selection'. + (modus-themes-completion-key-binding): Rename it to + 'modus-themes-key-binding'. + (modus-themes-mode-line): Remove faulty default value. + (modus-themes-completions): Refactor it to accept an alist value. + (modus-themes-box-buttons): Fix typo. + (modus-themes--standard-completions, modus-themes--extra-completions) + (modus-themes--extra-completions-line): Remove outdated private + functions. + (modus-themes--completion): Add new private function. + (modus-themes-faces): Update faces. + + * etc/themes/modus-operandi-theme.el: + * etc/themes/modus-vivendi-theme.el: Bump file's version. + + For a detailed change log, read: + <https://protesilaos.com/codelog/2022-02-23-modus-themes-2-2-0/>. + +2022-02-23 Jim Porter <jporterbugs@gmail.com> + + Ignore 'eshell-broken-pipe' error in 'eshell-sentinel' + + This can happen if 'eshell-sentinel' tries to write output to another + process, but that process has already terminated. + + * lisp/eshell/esh-proc.el (eshell-sentinel): Use 'ignore-error' + instead of 'unwind-protect'. + +2022-02-23 Lars Ingebrigtsen <larsi@gnus.org> + + Make face-remap-set-base work with a single face again + + * lisp/face-remap.el (face-remap-set-base): Fix regression + introduced by cece37cf09de9 (bug#46973). + +2022-02-23 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (x_term_init): Catch some errors from defective X servers. + +2022-02-23 Po Lu <luangruo@yahoo.com> + + Improve input extension version checks on GTK 3 + + * src/xterm.c (x_term_init): If newer versions of XInput 2 don't + work, then look for an older one. + +2022-02-23 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 3dfc8bff15 Fix indexing of module functions that return enumeration t... + 86c0d9eb5f * doc/misc/transient.texi (Other Options): Fix a @ref. (B... + 3b5e29eaa3 tramp.texi texinfo 4.13 compatibility + 5edb9572ec Explain "Tramp" spelling in its manual + +2022-02-23 Po Lu <luangruo@yahoo.com> + + Fix display corruption with background alpha set on unsupported display + + * src/xfns.c (x_set_alpha_background): Make opaque if display + doesn't support the required features. + +2022-02-22 Stefan Monnier <monnier@iro.umontreal.ca> + + (add-hook): Fix regression + + * lisp/subr.el (add-hook): When the hook has no local part yet, don't + set `local` to t, so we set the right part of the depth-sym. + (remove-hook): Don't modify the depth alist by side-effect since I'm + not completely sure it's safe. + +2022-02-22 Po Lu <luangruo@yahoo.com> + + * src/xterm.c: Expand commentary. + +2022-02-22 Dmitry Gutov <dgutov@yandex.ru> + + Unbreak project switcher when inside *xref* buffer + + * lisp/progmodes/xref.el (xref--ensure-default-directory): + New function. + (xref--show-xref-buffer, xref-show-definitions-buffer-at-bottom): + Use it (bug#53626). + +2022-02-22 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (x_term_init): Don't catch errors too many times. + +2022-02-22 Po Lu <luangruo@yahoo.com> + + Fix X errors caused by GTK using newer versions of XI2 than Emacs + + * src/xterm.c (x_term_init): Handle errors from XIQueryVersion + caused by Emacs requesting versions of XI2 older than 2.2 and + what GTK requested. + +2022-02-22 Lars Ingebrigtsen <larsi@gnus.org> + + Enable "Revert Buffer" if file has different writability + + * lisp/menu-bar.el (menu-bar-file-menu): Enable "Revert Buffer" if + the file has different writability than the buffer (bug#17148). + +2022-02-22 Stefan Monnier <monnier@iro.umontreal.ca> + + (add-hook, remove-hook): Fix leaks (bug#48666) + + * lisp/subr.el (add-hook, remove-hook): Rewrite the hook depth + management so we only keep the info relevant to functions present on + the hook. + +2022-02-22 Andrea Rossetti <andrea.rossetti@gmail.com> (tiny change) + + Improve ruler-mode dragging + + * lisp/ruler-mode.el (ruler-mode-mouse-drag-any-column) + (ruler-mode-mouse-add-tab-stop, ruler-mode-mouse-del-tab-stop): + Adjust callers. + + * lisp/ruler-mode.el (ruler-mode-window-col): Fix dragging when + stepping outside the header line (bug#17788). + +2022-02-22 Jeff Norden <jeff@jnorden.com> (tiny change) + + Make outline-blank-line into defcustom + + * lisp/outline.el (outline-blank-line): Make into defcustom + (bug#54095). + +2022-02-22 Lars Ingebrigtsen <larsi@gnus.org> + + Don't signal an error on re-builder startup with rx syntax + + * lisp/emacs-lisp/re-builder.el (reb-initialize-buffer): Make + startup with rx syntax not signal an error (bug#54107). + +2022-02-22 Po Lu <luangruo@yahoo.com> + + Fix build on glibc <2.10 + + * src/alloc.c (Fmalloc_info): Only enable if glibc supports + malloc_info. + (syms_of_alloc): Likewise. + +2022-02-22 Po Lu <luangruo@yahoo.com> + + Fix GTK build with GLib <2.44 + + * src/gtkutil.c (struct _EmacsMenuBar, EmacsMenuBar): New + structs. + (emacs_menu_bar_get_type): New function declaration. + + * src/gtkutil.c: Remove declaration of EmacsMenuBar class. + +2022-02-22 Po Lu <luangruo@yahoo.com> + + Improve XInput2 version checking + + * configure.ac: Check for various important structures from all + versions of libXi. + + * src/xfns.c (setup_xi_event_mask): + * src/xwidget.c (x_draw_xwidget_glyph_string): + * src/xterm.c (x_init_master_valuators, handle_one_xevent) + (x_term_init): Replace XI version checks based on protocol + headers with new constants. + + * src/xterm.h (HAVE_XINPUT2_1, HAVE_XINPUT2_2, HAVE_XINPUT2_3) + (HAVE_XINPUT2_4): New definitions. + +2022-02-22 Michael Albinus <michael.albinus@gmx.de> + + * test/lisp/net/tramp-tests.el (tramp--test-check-files): Adapt test. + +2022-02-22 Po Lu <luangruo@yahoo.com> + + Fix duplicate wheel events on XI2 + + * src/xterm.c (handle_one_xevent): Don't generate wheel events + on XI_ButtonPress. + +2022-02-22 Po Lu <luangruo@yahoo.com> + + Always send wheel events on XI2 + + * src/xterm.c (handle_one_xevent): Send emulated button events + as wheel events when handling XI2 button events. + +2022-02-22 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 666e40a109 Fix 'display-line-numbers-mode' in hide-show buffers + 68d134cf0f Don't check whether a deleted window is deletable (Bug#54028) + b38223a844 A friendlier error message from image-mode in an empty buffer + b7a651ba37 Update to Org 9.5.2-17-gea6b74 + 3a8c3f7abd ; Don't reference obsolete variables in edebug.el + +2022-02-21 Po Lu <luangruo@yahoo.com> + + Improve momentum pixel scrolling on a non-selected window + + * lisp/pixel-scroll.el (pixel-scroll-kinetic-state): New + argument `window'. + (pixel-scroll-start-momentum): Don't select the window under + the event when calculating velocity or redisplaying. + +2022-02-21 Po Lu <luangruo@yahoo.com> + + Don't generate multibyte keystroke events if there is no actual text + + * src/xterm.c (handle_one_xevent): Don't generate + MULTIBYTE_CHAR_KEYSTROKE_EVENTs if nbytes is zero. + +2022-02-21 Lars Ingebrigtsen <larsi@gnus.org> + + Add links to the vtable manual + + * doc/lispref/modes.texi (Tabulated List Mode): Mention vtables. + * lisp/info-look.el (lambda): Link to vtables. + +2022-02-21 Lars Ingebrigtsen <larsi@gnus.org> + + Remove the ELPA dependencies from test/Makefile.in + + * test/Makefile.in: Remove the ELPA dependencies, because it's + pretty confusing when trying to debug things. + + * test/README (SELECTOR): Remove mention of the now-removed + GNU_ELPA_DIRECTORY variable. + + * test/lisp/net/ntlm-tests.el (push): Add the ELPA dependencies + here, which keeps it contained to one test file. This also fixes + bug#53586, since the obsoletion of `body' came from web-server.el. + +2022-02-21 Po Lu <luangruo@yahoo.com> + + Don't pass invalid keyboard modifiers to the event loop on Haiku + + * src/haikuterm.c (haiku_read_socket): Ensure validity of extra + keyboard modifiers. + +2022-02-21 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/vc/diff-mode.el (diff--font-lock-prettify): Recognize mode changes + +2022-02-21 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/vc/diff-mode.el (diff--font-lock-prettify): bug#54034 + + Handle Git's output when deleting and creating empty files, as well as + when the diff is not shown because the file is considered as binary. + +2022-02-21 Lars Ingebrigtsen <larsi@gnus.org> + + Improve vtable :keymap handling + + * lisp/emacs-lisp/vtable.el (vtable-map, vtable--make-keymap): + Don't alter keymaps passed in, and respect parent keymaps. + +2022-02-21 Jim Porter <jporterbugs@gmail.com> + + Send SIGPIPE to external Eshell processes if their output target closes + + * lisp/eshell/esh-io.el (eshell-pipe-broken): New error. + (eshell-output-object-to-target): Signal 'eshell-pipe-broken' if the + target is an exited/signaled process. + + * lisp/eshell/esh-proc.el (eshell-insertion-filter): Handle + 'eshell-pipe-broken'. + + * test/lisp/eshell/esh-proc-tests.el: New test. + +2022-02-21 Jim Porter <jporterbugs@gmail.com> + + Ensure 'eshell-output-object' always returns nil for consistency + + This prevents functions like 'eshell-print' from writing doubled + output when run in Eshell. Previously, the result would be: + + ~ $ eshell-print hi + hihi + + * lisp/eshell/esh-io.el (eshell-output-object): Always return nil. + +2022-02-21 Jim Porter <jporterbugs@gmail.com> + + Improve docstrings for 'eshell-exec-lisp' and functions that call it + + * lisp/eshell/esh-cmd.el (eshell-exec-lisp, eshell-apply*) + (eshell-funcall*, eshell-eval*, eshell-apply, eshell-eval) + (eshell-funcall, eshell-applyn, eshell-funcalln, eshell-evaln): + Improve docstrings. + +2022-02-21 Eli Zaretskii <eliz@gnu.org> + + Revert "Remove PROBLEMS section on double-buffering" + + This reverts commit 366b2bc757d011f96693bd219877c5aa42fa3359. + + We cannot be sure this problem is no longer relevant, since + its root cause was in software we don't control, and cannot + tell whether any of the versions where that problem happened + are still out in the wild. + +2022-02-21 Lars Ingebrigtsen <larsi@gnus.org> + + Clarify Special Isearch slightly + + * doc/emacs/search.texi (Special Isearch): Clarify slightly + (bug#19924). (All the keys in this node is about what happens + during isearch, but that information is quite a ways away at this + point, so it doesn't hurt to repeat that info.) + +2022-02-21 Lars Ingebrigtsen <larsi@gnus.org> + + Remove PROBLEMS section on double-buffering + + * etc/PROBLEMS: Remove section on problems with double-buffering, + as apparently it's now no longer an issue (bug#30088). + +2022-02-21 Lars Ingebrigtsen <larsi@gnus.org> + + Make 'ispell-change-dictionary' completion work better + + * lisp/textmodes/ispell.el (ispell--aspell-found-dictionaries): + New variable (bug#24050). + (ispell-find-aspell-dictionaries): Save the list of actually + identified dictionary. + (ispell-valid-dictionary-list): Use it to filter out non-installed + dictionaries. + +2022-02-21 Lars Ingebrigtsen <larsi@gnus.org> + + Make `next-buffer' order reflect command line file order + + * lisp/startup.el (command-line-1): Make `next-buffer' order + reflect the command line file order (bug#21505). + +2022-02-21 Po Lu <luangruo@yahoo.com> + + Try to fix bug#54051 + + * src/xterm.c (handle_one_xevent): Don't give obviously bogus + configure events to Xt. + +2022-02-21 Po Lu <luangruo@yahoo.com> + + Prevent Haiku display from being opened multiple times + + * src/haikufns.c (Fx_open_connection): Return if display + connection already exists. + +2022-02-21 Po Lu <luangruo@yahoo.com> + + Prevent GTK from setting unreasonable size hints with large menu bars + + * src/gtkutil.c (struct _EmacsMenuBar): New struct. + (emacs_menu_bar_init): + (emacs_menu_bar_class_init): + (emacs_menu_bar_get_preferred_width): + (emacs_menu_bar_new): New functions. + (xg_update_menu_item): Use our own menu bar class on GTK 3. + * src/gtkutil.h (EmacsMenuBar): New class. + +2022-02-20 Po Lu <luangruo@yahoo.com> + + Implement left-right separators for dialog boxes on Haiku + + * src/haiku_support.cc (BAlert_set_offset_spacing): New + function. + * src/haiku_support.h: Update prototypes. + * src/haikumenu.c (struct submenu_stack_cell): Remove unused + struct. + (haiku_dialog_show): Use offset spacing if a left-right boundary + was seen and make sure the user can always quit a dialog if no + enabled items exist. + +2022-02-20 Dmitry Gutov <dgutov@yandex.ru> + + Bump xref.el version. + + * lisp/progmodes/xref.el: Bump version to 1.4.0. + +2022-02-20 Dmitry Gutov <dgutov@yandex.ru> + + Public-ize xref-show-xrefs + + * lisp/progmodes/xref.el (xref-show-xrefs): + New function (wrapper for an older, private one, bug#42967). + +2022-02-20 Po Lu <luangruo@yahoo.com> + + Respect `extra-keyboard-modifiers' when handling XI2 keyboard input + + * src/xterm.c (handle_one_xevent): Add extra modifiers to + XI2 keyboard state. + +2022-02-20 Dmitry Gutov <dgutov@yandex.ru> + + Public-ize xref-current-item + + * lisp/progmodes/xref.el (xref--current-item): + Rename to 'xref-current-item' (bug#53956). Update all references. + +2022-02-20 Lars Ingebrigtsen <larsi@gnus.org> + + Further fixes for eww-open-url on Tramp files + + * lisp/url/url-file.el (url-file-asynch-callback): Simplify + slightly (bug#40425). + * lisp/url/url-queue.el (url-queue-start-retrieve): Allow + non-local files here, too. + +2022-02-20 Juri Linkov <juri@linkov.net> + + * lisp/mouse.el (context-menu-entry): Remove help-buffer-under-preparation. + + (bug#53910) + +2022-02-20 Lars Ingebrigtsen <larsi@gnus.org> + + Fix a compilation warning in cus-edit-tests.el + +2022-02-20 Stefan Monnier <monnier@iro.umontreal.ca> + + (loadhist_initialize): Fix regression test failure + + * src/lread.c (loadhist_initialize): Adjust assertion for the nil case. + (readevalloop): Signal an error for non-string `sourcename`. + +2022-02-20 Lars Ingebrigtsen <larsi@gnus.org> + + Adjust doc-tests-documentation/autoloaded-macro + + * test/src/doc-tests.el + (doc-tests-documentation/autoloaded-macro): Adjust test -- rx is + loaded in nativecomp Emacsen when the tests are run, apparently. + +2022-02-20 Lars Ingebrigtsen <larsi@gnus.org> + + Simplify Minibuffer Edit example + + * doc/emacs/mini.texi (Minibuffer Edit): Say how to disable SPC + and ? completion (bug#36745). + +2022-02-20 Lars Ingebrigtsen <larsi@gnus.org> + + Add instructions on disabling SPC completion to Minibuffer Edit + + * doc/emacs/mini.texi (Minibuffer Edit): Say how to disable SPC + and ? completion (bug#36745). + +2022-02-20 Lars Ingebrigtsen <larsi@gnus.org> + + Fix compilation warning introduced by previous shr.el change + + * lisp/net/shr.el (url-file): Fix compilation warning. + +2022-02-20 Lars Ingebrigtsen <larsi@gnus.org> + + Make eww work better on Tramp HTML + + * lisp/net/eww.el (eww-open-file): Use it. + (eww-browse-url): Ditto. + + * lisp/net/shr.el (shr-expand-url): Allow loading relative Tramp + files if we're reading from a file:// document. + + * lisp/url/url-file.el (url-allow-non-local-files): New user option + (bug#40425). + +2022-02-20 Lars Ingebrigtsen <larsi@gnus.org> + + Make `g' work in eww buffers displaying Tramp files + + * lisp/net/eww.el (eww--file-buffer): Refactored out. + (eww-open-file): From here. + (eww-reload): Make reloading work in Tramp files. + +2022-02-20 Lars Ingebrigtsen <larsi@gnus.org> + + Make string-pixel-width about 40% faster + + * lisp/emacs-lisp/subr-x.el (string-pixel-width): Speed up. + +2022-02-20 Michael Albinus <michael.albinus@gmx.de> + + * doc/misc/tramp.texi (Customizing Methods): Add tramp-nspawn. + +2022-02-20 Lars Ingebrigtsen <larsi@gnus.org> + + Quote files that start with - in dired + + * lisp/dired-aux.el (dired-shell-stuff-it): Add ./ to file names + that start with - (bug#10458). + +2022-02-20 Michael Albinus <michael.albinus@gmx.de> + + * lisp/net/tramp.el (tramp-read-passwd): Adapt for empty user names. + +2022-02-20 Lars Ingebrigtsen <larsi@gnus.org> + + Fix compilation warning in previous sendmail.el change + + * lisp/mail/sendmail.el (mm-long-lines-p): Fix compilation warning. + +2022-02-20 Lars Ingebrigtsen <larsi@gnus.org> + + Ensure that `mail-send' breaks too-long lines + + * lisp/mail/sendmail.el (mail-send): Ensure that we fold too-long + lines when using `sendmail-user-agent' (bug#53412). + +2022-02-20 Matthias Meulien <orontee@gmail.com> + + Add more bookmark types + + * lisp/gnus/gnus-sum.el (gnus-summary-bookmark-jump): + * lisp/man.el (Man-bookmark-jump): Mark the bookmark type + (bug#54030). + +2022-02-20 Po Lu <luangruo@yahoo.com> + + Fix font panel on NS + + * src/nsterm.m ([EmacsView changeFont:]): Don't use emacs_event, + instead placing events directly into the keyboard buffer. + +2022-02-20 Po Lu <luangruo@yahoo.com> + + * src/haikumenu.c (haiku_dialog_show): Set `popup_activated_p'. + + Author: + +2022-02-20 Po Lu <luangruo@yahoo.com> + + Handle GUI input while inside popup dialog on Haiku + + * src/haiku_support.cc (alert_popup_value): New variable. + (be_alert_thread_entry): New function. + (BAlert_go): Complete rewrite that allows async input to be + handled while the popup is active. + * src/haiku_support.h: Update prototypes. + * src/haikumenu.c (haiku_dialog_show, haiku_popup_dialog): Stop + blocking input and pass required callbacks to `BAlert_go'. + * src/haikuterm.c (haiku_term_init): Set interrupt input mode to + t. + +2022-02-19 Po Lu <luangruo@yahoo.com> + + Fix typo in last change + + * src/xterm.c (handle_one_xevent): Use `xi_done_keysym' label + when ignoring modifier keys from XI2 input. + +2022-02-19 Po Lu <luangruo@yahoo.com> + + Ignore modifier keys early when handling X key press events + + * src/xterm.c (handle_one_xevent): Ignore modifier keys earlier + without going through the usual key lookup. + (x_delete_terminal): Free recorded modifier map. + (x_find_modifier_meanings): Record modifier map. + + * src/xterm.h (struct x_display_info): New field `modmap'. + +2022-02-19 Po Lu <luangruo@yahoo.com> + + Free XI2 devices in x_delete_display instead + + * src/xterm.c (x_delete_display): Free XI2 device data here + instead, since it doesn't involve contacting the X server any + more. + (x_delete_terminal): Stop freeing XI2 device data. + +2022-02-19 Philip Kaludercic <philipk@posteo.net> + + Revert "; * rcirc.el (rcirc-print): Prefer sleep-for over sit-for" + +2022-02-19 Stefan Monnier <monnier@iro.umontreal.ca> + + (specpdl_unrewind): Fix corner case + + * src/lisp.h (enum specbind_tag): New elem SPECPDL_NOP. + + * src/eval.c (specpdl_unrewind): Zap entries that can't be applied any more, + and simplify. + (default_toplevel_binding, lexbound_p, Fbacktrace__locals): Simplify. + (do_one_unbind, mark_specpdl): Handle SPECPDL_NOP. + +2022-02-19 Stefan Monnier <monnier@iro.umontreal.ca> + + (macroexp-warn-and-return): Fix bug#53618 + + * lisp/emacs-lisp/macroexp.el (macroexp-warn-and-return): + Reorder arguments to preserve compatibility with that of Emacs-28. + (macroexp--unfold-lambda, macroexp--expand-all): + * lisp/emacs-lisp/pcase.el (pcase-compile-patterns, pcase--u1): + * lisp/emacs-lisp/gv.el (gv-ref): + * lisp/emacs-lisp/eieio.el (defclass): + * lisp/emacs-lisp/eieio-core.el (eieio-oref, eieio-oref-default) + (eieio-oset-default): + * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): + * lisp/emacs-lisp/cl-macs.el (cl-symbol-macrolet, cl-defstruct): + * lisp/emacs-lisp/cl-generic.el (cl-defmethod): + * lisp/emacs-lisp/byte-run.el (defmacro, defun): + * lisp/emacs-lisp/bindat.el (bindat--type): Adjust accordingly. + +2022-02-19 Stefan Monnier <monnier@iro.umontreal.ca> + + (loadhist_initialize): Minor refactoring + + Consolidate a bit of code. + + * src/lread.c (loadhist_initialize): New function. + (Fload, readevalloop): Use it. + +2022-02-19 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/vc/diff-mode.el (diff--font-lock-prettify): Fix mishaps + + This reverts the last change so it also applies to non-git diffs again. + Instead, we're now more careful not to mis-recognize file headers as + addition/removal lines. + In addition to that, mark the file header such that it's + re-font-locked all at once, and to still recognize it after + `diff-reverse-direction`. + +2022-02-19 Michael Albinus <michael.albinus@gmx.de> + + Adapt Tramp password prompts for sudo-like methods + + * doc/misc/tramp.texi (Password handling): Explain entries for + doas, sudo and sudoedit. + + * etc/NEWS (Tramp): Document changed password prompts. + + * lisp/net/tramp-sh.el (tramp-methods) <sudo, doas>: + Add `tramp-password-previous-hop'. + (tramp-maybe-open-connection): Modify `previous-hop' if needed. + + * lisp/net/tramp-sudoedit.el (tramp-methods) <sudoedit>: + Add `tramp-password-previous-hop'. + (tramp-sudoedit-null-hop): New defconst. + (tramp-sudoedit-send-command): Use it. + + * lisp/net/tramp.el (tramp-methods): Adapt docstring. + (tramp-null-hop): New defconst. + (tramp-get-remote-null-device): Use it. + +2022-02-19 Lars Ingebrigtsen <larsi@gnus.org> + + Some vtable.texi copy edits + + * doc/misc/vtable.texi (Making A Table): Mention the accessors. + +2022-02-19 Lars Ingebrigtsen <larsi@gnus.org> + + Mention vtable accessor functions + + * doc/misc/vtable.texi (Making A Table): Mention the accessors. + +2022-02-19 Lars Ingebrigtsen <larsi@gnus.org> + + Improve the vtable documentation on argument types + + * doc/misc/vtable.texi (Making A Table): Say what the argument + types are. + +2022-02-19 Lars Ingebrigtsen <larsi@gnus.org> + + Fix a vtable example + + * doc/misc/vtable.texi (Introduction): Fix example. + +2022-02-19 Eli Zaretskii <eliz@gnu.org> + + Improve vtable documentation + + * doc/misc/vtable.texi (top-level): Add @syncodeindex directives. + (Introduction): Fix wording and markup. Add indexing. + (Making A Table, Commands, Interface Functions): Fix typos and + markup. Add indexing. + + * etc/NEWS: Improve wording of the vtable's NEWS entry. + + * doc/misc/Makefile.in (INFO_COMMON): Add 'vtable'. + +2022-02-19 Lars Ingebrigtsen <larsi@gnus.org> + + Add column sorting order indicators to vtable + + * lisp/emacs-lisp/vtable.el (vtable--indicator): New function. + (vtable--insert-header-line): Use it to display sorting order + indicators. + +2022-02-19 Lars Ingebrigtsen <larsi@gnus.org> + + Make string-pixel-width slightly speedier + + * lisp/emacs-lisp/subr-x.el (string-pixel-width): Speed up + string-pixel-width in the zero-length string case. + +2022-02-19 Po Lu <luangruo@yahoo.com> + + Avoid consing extra string when processing GTK native input + + * src/gtkutil.c (xg_im_context_commit): Use + `decode_string_utf8' to decode input text. + + * src/keyboard.c (kbd_buffer_get_event_1): If coding system is + Qt, simply return the string without decoding it. + + * src/termhooks.h (enum event_kind): Document meaning of Qt as + coding system in a multibyte keystroke event's string argument. + +2022-02-19 Mauro Aranda <maurooaranda@gmail.com> + + Fix types of some align.el defcustoms + + * lisp/align.el (align-region-heuristic) + (align-large-region): Both options can be nil, but the defcustom type + didn't allow nil values. + (align-rules-list-type): The "Run If" and "Valid" attributes + should be functions, but the default value was t. Change it to + #'always (bug#54048). + +2022-02-19 Mauro Aranda <maurooaranda@gmail.com> + + Fix :match function for the key widget + + * lisp/wid-edit.el (key): Calling key-valid-p directly doesn't work, + because the :match function is called with the widget and the value as + arguments (bug#54049). + +2022-02-19 Po Lu <luangruo@yahoo.com> + + Fix some more hangs when parenting child frames around on Haiku + + * src/haiku_support.cc (ParentTo): + (FrameMoved): Don't sync when a recursive lock might be able to + be held. + +2022-02-19 Lars Ingebrigtsen <larsi@gnus.org> + + Add a new library to format variable-pitch tables + + * doc/misc/vtable.texi (Index): New manual. + + * lisp/emacs-lisp/vtable.el: New library. + +2022-02-19 Po Lu <luangruo@yahoo.com> + + Improve portability of alpha channel visual detection + + * src/xfns.c (select_visual): Look for PictVisuals with an alpha + channel instead of blindly assuming that 32 bit visuals have an + alpha channel. + (Fx_show_tip): Fix crash on some displays where child is None. + + * src/xterm.c (x_term_init): Initialize Xrender before + calling select_visual. + +2022-02-19 Alan Mackenzie <acm@muc.de> + + Fix symbols with position appearing in the output of `compile-defun' + + This happened with the tags of a condition-case. Also fix the detection of + circular lists while stripping the positions from symbols with position. + + * lisp/emacs-lisp/byte-run.el (byte-run--circular-list-p): Remove. + (byte-run--strip-s-p-1): Write a value of t into a hash table for each cons or + vector/record encountered. (This is to prevent loops with circular + structures.) This is now done for all arguments, not just those detected as + circular lists. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-defvar) + (byte-compile-form, byte-compile-dynamic-variable-op) + (byte-compile-constant, byte-compile-push-constant): Remove redundant calls to + `bare-symbol'. + (byte-compile-lambda): call `byte-run-strip-symbol-positions' on the arglist. + (byte-compile-out): call `byte-run-strip-symbol-positions' on the operand. + This is the main call to this function in bytecomp.el. + + * src/fns.c (hashfn_eq): Strip the position from an argument which is a symbol + with position. + (hash_lookup): No longer strip a position from a symbol with position. + (sxhash_obj): Add handling for symbols with position, substituting their bare + symbols when symbols with position are enabled. + +2022-02-19 Eli Zaretskii <eliz@gnu.org> + + Fix character compositions on the mode line + + * src/composite.c (composition_compute_stop_pos) + (Ffind_composition_internal): When characters come from a string, + determine whether to compose them from that string's multibyteness, + not from that of the current buffer. (Bug#53729) + +2022-02-19 Po Lu <luangruo@yahoo.com> + + Don't ignore events from XI2 slave devices anymore + + All the machinery needed to keep track of events from those + devices is already in place, so that's no longer required. + + * src/xterm.c (x_get_scroll_valuator_delta): + (xi_reset_scroll_valuators_for_device_id): + (handle_one_xevent): Don't ignore XI devices that are not master + pointers or keyboards. + +2022-02-19 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 57c112cfe5 ; * doc/emacs/files.texi (Comparing Files): Fix a reference. + bdeac2d5af ; Fix a typo in filesets.el's doc string + +2022-02-19 Po Lu <luangruo@yahoo.com> + + Always decode GTK input method text as utf-8-unix + + * src/gtkutil.c (xg_im_context_commit): Use `utf-8-unix' as + coding system for text. + +2022-02-18 Po Lu <luangruo@yahoo.com> + + Be less strict about which emulated motion events to ignore + + * src/xterm.c (handle_one_xevent): Don't test XI2 version before + dropping PointerEmulated motion events. + +2022-02-18 Po Lu <luangruo@yahoo.com> + + * src/haikufns.c (haiku_create_frame): Error if font wasn't found. + +2022-02-18 Po Lu <luangruo@yahoo.com> + + Utilize new string decoding feature in GTK native input + + * src/gtkutil.c (xg_im_context_commit): Don't decode strings + manually using g_utf8_to_ucs4 but pass unibyte string as the + keystroke event arg instead. + +2022-02-18 Eric Abrahamsen <eric@ericabrahamsen.net> + + Handle multiple directory separators in gnus-search results + + Try to treat the file names more like file names, less like strings + to massage. + + * lisp/gnus/gnus-search.el (gnus-search-indexed-parse-output): Use + `expand-file-name' to collapse separators and generally canonicalize + the name. Use `file-name-split' and joining instead of regexp + munging. + +2022-02-18 Po Lu <luangruo@yahoo.com> + + Fix background stipple with `alpha_background' + + * src/xterm.c (x_fill_rectangle): Fix treatment of foreground + and background colors when there is a stipple. + +2022-02-18 Po Lu <luangruo@yahoo.com> + + Fix a crash on some versions of GTK + + * src/emacsgtkfixed.c (XSetWMNormalHints): Fix potential + arithmetic fault. + +2022-02-18 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + 1e4b04c Improve documentation of filling and justification commands + 9fd396e * lisp/progmodes/subword.el (superword-mode): Doc fix. (Bug#... + e303cb1 Fix indexing of module functions that return complex types. + +2022-02-18 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + c8442df ; Separate command and concept index in Transient manual + 8aa052c ; Fix Transient manual + 5b7752a Fix problem with popd for in remote shell buffers + 38f6ea1 Import texi source file for transient manual + df34929 Update to Org 9.5.2-15-gc5ceb6 + +2022-02-18 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + # Conflicts: + # lisp/startup.el + +2022-02-18 Po Lu <luangruo@yahoo.com> + + Fix blurry text on multiple scale monitor setups + + * src/pgtkterm.c (pgtk_copy_bits): Preserve window scale factor + on temporary surface. (bug#54040) + +2022-02-18 Andrew G Cohen <cohen@andy.bu.edu> + + Make sure nnselect search query is properly parsed + + * lisp/gnus/gnus-search.el (gnus-search-make-spec): The search query + should not be interpreted as raw, but whatever the underlying search + engine expects. + +2022-02-18 Andrew G Cohen <cohen@andy.bu.edu> + + Fix gnus searching of native servers + + * lisp/gnus/gnus-group.el (gnus-group-make-search-group): + (gnus-group-read-ephemeral-search-group): Find the real server even + when the group is native. + +2022-02-18 Po Lu <luangruo@yahoo.com> + + Make treatment of `alpha-background' more consistent + + * src/xterm.c (x_clear_glyph_string_rect): + (x_draw_glyph_string_background): Ignore alpha_background on all + cursors. + +2022-02-18 Eric Abrahamsen <eric@ericabrahamsen.net> + + Fix gnus-search-run-search methods + + * lisp/gnus/gnus-search.el (gnus-search-run-search): Both these + implementations were setting the current buffer and then not setting + it back. + +2022-02-17 Po Lu <luangruo@yahoo.com> + + Make stipple backgrounds respect `alpha-background' + + * src/xterm.c (x_fill_rectangle): Respect `alpha-background' + when drawing stipple. + +2022-02-17 Po Lu <luangruo@yahoo.com> + + Fix mis-parsing of certain malformed XBM files + + * src/image.c (xbm_scan): Return error on a character literal + that doesn't start with "\x". + +2022-02-17 Po Lu <luangruo@yahoo.com> + + Parse XBM images which use character escapes for hex literals + + * src/image.c (xbm_scan): Implement parsing of hex escapes in + character literals. + +2022-02-17 Eric Abrahamsen <eric@ericabrahamsen.net> + + Fix gnus-search notmuch thread searches + + * lisp/gnus/gnus-search.el (gnus-search-run-search): Multiple things + wrong with collecting thread ids from the search results, and + constructing a new search query. + (gnus-search-indexed-search-command): Use list appending rather than + backtick construction, that was more confusing than it was helpful. + +2022-02-17 Juri Linkov <juri@linkov.net> + + * lisp/mouse.el (context-menu-entry): Don't create menu for Help commands. + + Help commands that describe keybindings call context-menu-entry bound to + a key. This causes too much trouble when trying to build the context menu + in a temporary Help buffer that is not displayed in a window. + OTOH, there is no information in context menus useful for Help commands. + So `help-buffer-under-preparation' is added to filter out such calls. + (bug#53910) + +2022-02-17 Eli Zaretskii <eliz@gnu.org> + + Resurrect innocent joke in byte-opt.el + + * lisp/emacs-lisp/byte-opt.el: Resurrect innocent joke in a + comment. + +2022-02-17 Eli Zaretskii <eliz@gnu.org> + + Fix files-tests on MS-Windows + + * test/lisp/files-tests.el + (files-tests-zzdont-rewrite-precious-files): Renamed from + 'files-tests-dont-rewrite-precious-files', to fix a subtle problem + that breaks 2 tests on MS-Windows. + (files-tests-revert-buffer) + (files-tests-revert-buffer-with-fine-grain): No need to disable + file locking anymore. + +2022-02-17 Mattias Engdegård <mattiase@acm.org> + + Fix or remove outdated comments + + * src/eval.c (funcall_lambda): Rewrite obsolete comment. + * src/bytecode.c (exec_byte_code): Remove lying comment and + unneeded #define. + * lisp/emacs-lisp/byte-opt.el: Remove car. Keep pig. + (byte-compile-log-lap-1): Remove obsolete and irrelevant comment. + +2022-02-17 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/face-remap.el: Fix bug#53294 + + * lisp/face-remap.el (face-remap--copy-face): New function. + (face-attrs--make-indirect-safe): Use it. + +2022-02-17 Eli Zaretskii <eliz@gnu.org> + + Speed up exiting "emacs -Q" + + * lisp/files.el (files--buffers-needing-to-be-saved): Don't call + functions from seq.el. Using seq.el has an annoying side-effect + of slowing down "C-x C-c" from "emacs -Q" due to the need to load + seq.el. + +2022-02-17 Po Lu <luangruo@yahoo.com> + + Fix crash when displaying XBM images on a 32-bit visual + + * src/image.c (Create_Pixmap_From_Bitmap_Data): Fix use of wrong + (default) depth. + +2022-02-17 Po Lu <luangruo@yahoo.com> + + Implement XBM images on Haiku + + * src/image.c (image_create_bitmap_from_data): Handle allocation + failures on Haiku. + (Create_Pixmap_From_Bitmap_Data): Implement for Haiku. + +2022-02-17 Lars Ingebrigtsen <larsi@gnus.org> + + Add a NEWS entry for the bookmark changes (bug#54030) + + * lisp/bookmark.el (bookmark-bmenu-mode): Make the type shorter. + +2022-02-17 Matthias Meulien <orontee@gmail.com> + + Don't prefix bookmark name with VC backend name + + * lisp/vc/vc-dir.el (vc-dir-bookmark-make-record): Remove prefix from + bookmark name. + +2022-02-17 Matthias Meulien <orontee@gmail.com> + + Extend bookmark menu with with handler type column + + * lisp/bookmark.el (bookmark-bmenu--revert): Extend table entries with + handler type. + (bookmark-bmenu-mode): Add handler type column. + * lisp/doc-view.el (doc-view-bookmark-jump): Set bookmark handler type. + * lisp/help-mode.el (help-bookmark-jump): Set bookmark handler type. + * lisp/image-dired.el (image-dired-bookmark-jump): Set bookmark handler type. + * lisp/info.el (Info-bookmark-jump): Set bookmark handler type. + * lisp/net/eww.el (eww-bookmark-jump): Set bookmark handler type. + * lisp/vc/vc-dir.el (vc-dir-bookmark-jump): Set bookmark handler type. + * lisp/woman.el (woman-bookmark-jump): Set bookmark handler type. + +2022-02-17 Protesilaos Stavrou <info@protesilaos.com> + + Update modus-themes to version 2.1.0 + + * doc/misc/modus-themes.org (Customization Options): Document new user + options and relevant changes. + (Option for links, Option for box buttons) + (Option for completion framework aesthetics, Option for mail citations) + (Option for intense markup in Org and others) + (Option for diff buffer looks, Option for org-mode block styles) + (Option for Org agenda constructs) + (Option for the headings' overall style): Update user options. + (More accurate colors in terminal emulators): Add section on how to + improve the accuracy of color reproduction in terminal emulators. + (Case-by-case face specs using the themes' palette) + (Face specs at scale using the themes' palette, Override colors) + (Override colors through blending, Custom Org user faces): Improve + wording. + (Custom Org emphasis faces): Add section about bespoke faces for Org + emphasis markers. + (Backdrop for pdf-tools): Improve sample code. + (Ediff without diff color-coding): Add section about user-level + changes to the style of Ediff buffers. + (Full support for packages or face groups): Update lists of supported + packages. + (Indirectly covered packages): Update list of indirectly supported + packages. + (Note on underlines in compilation buffers): Clarify wording. + (Note on EWW and Elfeed fonts): Be more specific about 'shr' faces. + (Are these color schemes?): Answer frequently asked question. + (Acknowledgements): Update acknowledgements' section. + + * etc/themes/modus-themes.el (modus-themes-operandi-colors) + (modus-themes-vivendi-colors): Update color palettes. + (modus-themes-subtle-red, modus-themes-subtle-green) + (modus-themes-subtle-yellow, modus-themes-subtle-blue) + (modus-themes-subtle-magenta, modus-themes-subtle-cyan) + (modus-themes-subtle-neutral, modus-themes-intense-red) + (modus-themes-intense-green, modus-themes-intense-yellow) + (modus-themes-intense-blue, modus-themes-intense-magenta) + (modus-themes-intense-cyan, modus-themes-intense-neutral) + (modus-themes-refine-red, modus-themes-refine-green) + (modus-themes-refine-yellow, modus-themes-refine-blue) + (modus-themes-refine-magenta, modus-themes-refine-cyan) + (modus-themes-nuanced-red, modus-themes-nuanced-green) + (modus-themes-nuanced-yellow, modus-themes-nuanced-blue) + (modus-themes-nuanced-magenta, modus-themes-nuanced-cyan) + (modus-themes-special-cold, modus-themes-special-mild) + (modus-themes-special-warm, modus-themes-special-calm) + (modus-themes-diff-added, modus-themes-diff-changed) + (modus-themes-diff-removed, modus-themes-diff-refine-added) + (modus-themes-diff-refine-changed, modus-themes-diff-refine-removed) + (modus-themes-diff-focus-added, modus-themes-diff-focus-changed) + (modus-themes-diff-focus-removed, modus-themes-diff-heading) + (modus-themes-heading-1, modus-themes-heading-2, modus-themes-heading-3) + (modus-themes-heading-4, modus-themes-heading-5, modus-themes-heading-6) + (modus-themes-heading-7, modus-themes-heading-8, modus-themes-hl-line) + (modus-themes-variable-pitch, modus-themes-lang-note) + (modus-themes-lang-warning, modus-themes-lang-error) + (modus-themes-reset-soft, modus-themes-reset-hard): Fix typo in + ':group'. + (modus-themes-markup-code): Add face. + (modus-themes--headings-choice, modus-themes-headings) + (modus-themes-org-agenda): Update documentation about typographic + weights. + (modus-themes-org-blocks, modus-themes-completions): Update doc string + and add new stylistic variant. + (modus-themes-intense-markup): Deprecate old user option. Replace it + with 'modus-themes-markup'. + (modus-themes-mail-citations): Update doc string and add another + stylistic variant. + (modus-themes-box-buttons): Add new user option. + (modus-themes--slant): Tweak how slant is applied. + (modus-themes--markup, modus-themes--prompt, modus-themes--paren) + (modus-themes--syntax-foreground, modus-themes--syntax-extra) + (modus-themes--syntax-string, modus-themes--syntax-comment) + (modus-themes--heading, modus-themes--agenda-structure) + (modus-themes--agenda-habit, modus-themes--org-block-delim) + (modus-themes--mode-line-attrs, modus-themes--standard-completions) + (modus-themes--link, modus-themes--link-color, modus-themes--region) + (modus-themes--hl-line, modus-themes--mail-cite): Tweak private + functions. + (modus-themes--button): Adjust private function. + (modus-themes--heading-weights): Deprecate it. Replace by + 'modus-themes-weights'. + (modus-themes-faces): Update faces. + + * etc/themes/modus-vivendi-theme.el + * etc/themes/modus-operandi-theme.el: Bump version number. + + For a detailed change log, read: + <https://protesilaos.com/codelog/2022-02-17-modus-themes-2-1-0/>. + +2022-02-17 Lars Ingebrigtsen <larsi@gnus.org> + + Have setopt check types + + * doc/lispref/variables.texi (Setting Variables): Note type checking. + * lisp/cus-edit.el (setopt--set): New function to avoid having + Customize saving values, too. + (setopt): Use it. + +2022-02-17 Po Lu <luangruo@yahoo.com> + + Fix warning during dumping on MS-DOS + + * lisp/cus-start.el (standard): Filter out + `process-error-pause-time' on MS-DOS. + +2022-02-17 Po Lu <luangruo@yahoo.com> + + Prevent menu items leak if x-pre-popup-menu-hook signals + + * src/menu.c (x_popup_menu_1): Make sure menu items are + discarded if the pre popup menu hook signals. + +2022-02-17 Michael Albinus <michael.albinus@gmx.de> + + Fix problem with "~" in Tramp + + * lisp/net/tramp.el (tramp-handle-substitute-in-file-name): + Remove special handling of "~" in localname. (Bug#53053) + +2022-02-17 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (x_init_master_valuators): Clear `pending_enter_reset'. + +2022-02-17 Po Lu <luangruo@yahoo.com> + + Improve handling of XI2 wheel movement + + * src/xterm.c (handle_one_xevent): Process movement in all + directions and send it as a single event. + +2022-02-16 Po Lu <luangruo@yahoo.com> + + Fix SIGFPE on some fonts when calculating their average width on Haiku + + * src/haiku_font_support.cc (estimate_font_ascii): Avoid division + by zero. + +2022-02-16 Po Lu <luangruo@yahoo.com> + + * src/emacsgtkfixed.c (XSetWMSizeHints): Improve fix for bug#8919. + +2022-02-16 Po Lu <luangruo@yahoo.com> + + Don't auto-lower when moving onto a menu bar on Haiku + + * src/haiku_io.c (haiku_len): Handle `MENU_BAR_LEFT'. + * src/haiku_support.cc (EmacsMenuBar::MouseMoved): New function. + * src/haiku_support.h (enum haiku_event_type): New event + `MENU_BAR_LEFT'. + (struct haiku_menu_bar_left_event): New structure. + * src/haikuterm.c (haiku_read_socket): Don't auto-lower when the + mouse exits the frame view onto the menu bar and handle + MENU_BAR_LEFT events. + +2022-02-16 Po Lu <luangruo@yahoo.com> + + Handle `unspecified' values of symbolic font values on Haiku + + * src/haikufont.c (haikufont_spec_or_entity_to_pattern): Handle + `unspecified' values of symbolic values. + +2022-02-16 Michael Albinus <michael.albinus@gmx.de> + + Fix problem with file-modification-time in tramp-sshfs.el + + * lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist): + * lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist): + * lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist): + Use `tramp-handle-file-notify-add-watch', + `tramp-handle-file-notify-rm-watch' and + `tramp-handle-file-notify-valid-p'. + (tramp-sshfs-handle-write-region): Set file modification time. + (Bug#54016) + + * test/lisp/net/tramp-tests.el (tramp--test-asynchronous-processes-p): + Filter out tramp-adb on multi-byte `default-directory'. + (tramp--test-hpux-p, tramp--test-macos-p): Protect against errors. + (tramp--test-check-files): Discriminate also tramp-sshfs.el. + +2022-02-16 Matthias Meulien <orontee@gmail.com> + + Fix computation of outline heading level for non-git diff + + * lisp/vc/diff-mode.el (diff-setup-buffer-type): Compute outline heading level + using diff-hunk-header-re (bug#51809). + (diff--font-lock-prettify): Disable prettify in non-git diff. + +2022-02-16 Eli Zaretskii <eliz@gnu.org> + + Add support for Tai Tham script + + * lisp/international/fontset.el (setup-default-fontset) + (script-representative-chars): Add tai-tham. + * lisp/language/thai.el ("Northern Thai"): New language + environment. Patch by Richard Wordingham + <richard.wordingham@ntlworld.com>. Set + 'composition-function-table' for the Tai Tham block. Original + code by Richard Wordingham <richard.wordingham@ntlworld.com>. + + * etc/HELLO: Add Northern Thai greeting. + * etc/NEWS: Announce addition of Northern Thai language environment. + +2022-02-16 Po Lu <luangruo@yahoo.com> + + Fix recent change in xwidget.c + + * src/xwidget.c (xwidget_init_view): Don't assume ttip_widget + is NULL if tooltips have not been initialized. + +2022-02-16 Mattias Engdegård <mattiase@acm.org> + + Speed up count_size_as_multibyte + + This function is used in many places to calculate the length of + a unibyte string converted to multibyte. + + * src/character.c (count_size_as_multibyte): Move the overflow test + outside the loop, which makes it much faster. Standard compilers + will even vectorize it if asked to (-O2 in Clang, -O3 in GCC). + +2022-02-16 Mattias Engdegård <mattiase@acm.org> + + Avoid emacs-module-tests failure on macOS + + * test/src/emacs-module-tests.el (module/describe-function-1): + Prevent string mismatch caused by line breaks after filling; + the macOS dynamic library suffix (.dylib) is longer than on other + platforms. + +2022-02-16 Po Lu <luangruo@yahoo.com> + + Fix frame focus handling with native input + + * lisp/term/x-win.el (x-gtk-use-native-input-watcher): Stop + passing frame parameter to `x-internal-focus-input-context'. + * src/xfns.c (Fx_internal_focus_input_context): Focus all focus + frames from all displays. + +2022-02-16 Po Lu <luangruo@yahoo.com> + + Resolve xwidget scrolling mysteries + + * src/xterm.c (x_any_window_to_frame): Handle xwidget views. + (handle_one_xevent): Always increment values array when handling + motion events. + +2022-02-15 Po Lu <luangruo@yahoo.com> + + * etc/NEWS: Improve the PGTK entry. + +2022-02-15 Po Lu <luangruo@yahoo.com> + + Decode keyboard input as latin-1 whenever appropriate + + * src/keyboard.c (kbd_buffer_get_event_1): Use `coding' + property if present. + + * src/termhooks.h (enum event_kind): Document meaning of + `coding' property on text strings. + + * src/xterm.c (handle_one_xevent): Set coding property on text + to latin-1 if it was obtained with XLookupString. + +2022-02-15 Po Lu <luangruo@yahoo.com> + + Don't decode text within XIM callbacks or handle_one_xevent + + * src/keyboard.c (kbd_buffer_get_event_1): + (kbd_buffer_get_event_2): New functions. + (kbd_buffer_get_event): Accept a new meaning of + MULTIBYTE_CHAR_KEYSTROKE_EVENT where .arg can be a unibyte + string to be decoded in the locale coding system. + + * src/termhooks.h (enum event_kind): Document new meaning of + .arg in a multibyte keystroke event. + + * src/xfns.c (struct x_xim_text_conversion_data): New struct. + (x_xim_text_to_utf8_unix_1): + (x_xim_text_to_utf8_unix_2): New functions. + (x_xim_text_to_utf8_unix): Handle decode failure correctly. + (xic_preedit_draw_callback): Abort IM context if text could not + be decoded correctly. + + * src/xterm.c (handle_one_xevent): Utilize new meaning of + MULTIBYTE_CHAR_KEYSTROKE_EVENT. + +2022-02-15 Michael Albinus <michael.albinus@gmx.de> + + Some Tramp cleanup + + * doc/misc/tramp.texi (Remote processes): Add also tramp-sshfs.el. + + * lisp/net/tramp-adb.el (tramp-adb-handle-make-process): + Error-out for multi-byte `default-directory'. + + * lisp/net/tramp.el (tramp-tolerate-tilde): Move it up. + (tramp-handle-abbreviate-file-name): Use it. + (tramp-read-passwd): Show literal passphrase prompt. + +2022-02-15 Jim Porter <jporterbugs@gmail.com> + + Don't attempt to connect to a remote server during 'abbreviate-file-name' + + * lisp/net/tramp.el (tramp-handle-abbreviate-file-name): Only use the + "home-directory" when a connection has been established. + +2022-02-15 Lars Ingebrigtsen <larsi@gnus.org> + + Allow savehist-additional-variables to truncate lists + + * lisp/savehist.el (savehist-save): Allow truncating values (bug#30943). + +2022-02-15 Lars Ingebrigtsen <larsi@gnus.org> + + Adjust files-test-file-size-human-readable test + + * test/lisp/files-tests.el (files-test-file-size-human-readable): + Fix test after recent change. + +2022-02-15 Lars Ingebrigtsen <larsi@gnus.org> + + Make autoarg obsolete + + * lisp/obsolete/autoarg.el: Make obsolete. + +2022-02-15 Po Lu <luangruo@yahoo.com> + + Fix parsing of some semibold font styles on Haiku + + * src/haiku_font_support.cc (font_style_to_flags): Accept + "Semibold" to mean SemiBold as well. Reported by + augiedoggie <augiedoggie@users.noreply.github.com>. + +2022-02-15 Po Lu <luangruo@yahoo.com> + + Disable auto-lowering and raising on Haiku when a popup is active + + * src/haikuterm.c (haiku_new_focus_frame): + (haiku_read_socket): Don't raise or lower if popup is activated. + +2022-02-15 Po Lu <luangruo@yahoo.com> + + Replace use of `DefaultRootWindow' with our recorded root window + + * src/xfns.c (x_relative_mouse_position): + (x_set_parent_frame): + (Fx_mouse_absolute_pixel_position): + (Fx_set_mouse_absolute_pixel_position): + * src/xterm.c (x_iconify_frame): Use dpyinfo->root_window + instead of DefaultRootWindow. + +2022-02-14 Po Lu <luangruo@yahoo.com> + + Improve the help message for the pgtk configure option + + * configure.ac: Describe the purpose of PGTK better. + +2022-02-14 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (init_xterm): Use more reliable method to disable XI2. + +2022-02-14 Po Lu <luangruo@yahoo.com> + + Better handle devices being enabled on XI2 + + * src/xterm.c (handle_one_xevent): Don't abort on DeviceChanged + if the device couldn't be found, instead regenerating the device + hierarchy to see if it was enabled. + +2022-02-14 Eric Abrahamsen <eric@ericabrahamsen.net> + + Fix docstring and init of Gnus search -remove-prefix options + + * lisp/gnus/gnus-search.el (*-remove-prefix): For all engine defaults, + remove incorrect docs stating this is a regexp (it's a string). Also, + use `expand-file-name' to get the correct default value, not `concat' + and (getenv "HOME"). + +2022-02-14 Eric Abrahamsen <eric@ericabrahamsen.net> + + Fix manual documentation of Gnus tool bars + + * doc/misc/gnus.texi: The options `gnus-use-toolbar', + `gnus-toolbar-thickness', and `gnus-summary-mail-toolbar' no longer + exist. Other options in this section have been renamed from "toolbar" + to "tool-bar". + +2022-02-14 Eric Abrahamsen <eric@ericabrahamsen.net> + + Be more explicit about the meaning of "remove prefix" in Gnus search + + * doc/misc/gnus.texi (Search Engines): It's easy to get confused about + what we're removing and why. + +2022-02-14 Eli Zaretskii <eliz@gnu.org> + + Improve recent addition to documentation of face remapping + + * doc/lispref/display.texi (Basic Faces): Make the list of basic + faces more complete. + (Face Remapping): Improve wording of a recent addition; add + cross-reference to "Basic Faces". + +2022-02-14 Eli Zaretskii <eliz@gnu.org> + + Improve format of values returned by 'file-size-human-readable' + + * lisp/files.el (file-size-human-readable): Emit one digit of the + fractional part of the size only if there's just one digit before + the decimal point. + +2022-02-14 Lars Ingebrigtsen <larsi@gnus.org> + + Fix typo in Face Remapping + + * doc/lispref/display.texi (Face Remapping): Fix typo. + +2022-02-14 Philip Kaludercic <philipk@posteo.net> + + Add command to contact maintainer + + * package.el (package-menu-mode-map): Add package-contact-maintainer. + (package--query-desc): Extract a common utility function. + (package-browse-url): Use package--query-desc. + (package-contact-maintainer): Add command. + +2022-02-14 Philip Kaludercic <philipk@posteo.net> + + Allow for packages to be installed directly from VCS + + Packages installed via package-fetch are of the kind 'source, and + their extra properties may include a :upstream key (a list consisting + of the VC backend, a remote repository, a branch and a path within the + repository) and :rev key (indicating a specific revision to checkout). + + * package.el (package-devel-dir): Add new option. + (package-desc): Allow an empty version string to be passed to + package-desc-from-define. + (package-desc-full-name): Handle source packages. + (vc-working-revision): Declare function for package-devel-commit. + (package-devel-commit): Add function. + (package-load-descriptor): Detect and handle source packages. + (package-load-all-descriptors): Use package-devel-dir. + (vc-clone): Declare function for package-unpack. + (package-unpack): Handle source packages. + (package-generate-description-file): Handle source packages by + omitting a version number. + (package-install-from-archive): Check if a package is a source + package. + (package-fetch): Add new command + (package-desc-status): Check for source packages. + (package--remove-hidden): Hide regular packages from the package list + if a source package was installed. + (package-status-from-source): Add new face. + (package-menu--print-info-simple): Handle source packages. + (package-menu-mark-delete): Allow deleting source packages. + (package-menu--status-predicate): Sort source packages after + dependencies but before unsigned packages. + (package-menu-filter-by-status): Allow filtering by source packages. + +2022-02-14 Philip Kaludercic <philipk@posteo.net> + + Implement vc-clone for git + + * vc-git.el (vc-git-clone): Add Git implementation + +2022-02-14 Philip Kaludercic <philipk@posteo.net> + + Add new command to clone a repository + + * vc.el (vc-clone): Add command + +2022-02-14 Lars Ingebrigtsen <larsi@gnus.org> + + Don't signal errors in abbrev-table-p + + * lisp/abbrev.el (abbrev-table-p): Ignore the error. + * src/lread.c (oblookup): Signal `wrong-type-argument' instead of + `error' if it turns out that we're not really in an obarray (bug#53988). + +2022-02-14 Philip Kaludercic <philipk@posteo.net> + + Improve stability of message-hide-headers + + * message.el (message-hide-headers): Use a pointer instead of tracking + the "end-of-headers" point manually (bug#53991). + +2022-02-14 Po Lu <luangruo@yahoo.com> + + Premultiply background color by alpha for images + + * src/xterm.c (x_query_frame_background_color): Premultiply + colors as X wants them when built without Cairo. + +2022-02-14 Lars Ingebrigtsen <larsi@gnus.org> + + Fix typo in previous Face Remapping doc change + + * doc/lispref/display.texi (Face Remapping): Fix typo. + +2022-02-14 Lars Ingebrigtsen <larsi@gnus.org> + + Note caveat about remapping basic faces + + * doc/lispref/display.texi (Face Remapping): Note caveat about + basic faces (bug#53636). + +2022-02-14 Po Lu <luangruo@yahoo.com> + + Improve Haiku selection handling + + * lisp/select.el (gui--selection-value-internal): Use X types on + Haiku as well. + + * lisp/term/haiku-win.el (haiku--selection-type-to-mime): Update + types to correspond better with X. + + * src/haikuselect.c (Fhaiku_selection_data): + (Fhaiku_selection_put): Remove a great deal of ad hoc code now + handled by the regular selection machinery. + +2022-02-14 Lars Ingebrigtsen <larsi@gnus.org> + + Add a mechanism for querying before executing a command + + * doc/emacs/custom.texi (Disabling): Document it. + * doc/lispref/commands.texi (Disabling Commands): Document the + low-level stuff. + + * lisp/simple.el (command-execute): Respect the `(query ...)' + value for `disabled'. + (command-execute--query): New function. + (command-query): New function. + +2022-02-14 Po Lu <luangruo@yahoo.com> + + Handle allocation failures of fringe bitmaps on Haiku + + * src/haikuterm.c (haiku_define_fringe_bitmap): Handle + allocation failures. + +2022-02-14 Po Lu <luangruo@yahoo.com> + + * etc/TODO: Update some entries related to macOS and NS. + + Xwidgets have worked on NS for a long time, "smooth scrolling" + is now available as `pixel-scroll-precision-mode' for all GUI + platforms, and some mouse gestures have been implemented on NS + and X. + +2022-02-14 Po Lu <luangruo@yahoo.com> + + Ensure bad values don't leak into scroll valuators after DeviceChange + + * src/xterm.c (xi_reset_scroll_valuators_for_device_id): New + argument `pending_only'. + (handle_one_xevent): Reset pending scroll valuators on XI_Enter + and mark valuators updated via DeviceChanged events as pending. + + * src/xterm.h (struct xi_scroll_valuator_t): New field + `pending_enter_reset'. + +2022-02-13 Po Lu <luangruo@yahoo.com> + + Restore valuator values after receiving a DeviceChanged event + + * src/xterm.c (x_init_master_valuators): Generate valuators for + both master and slave devices. + (handle_one_xevent): Find current valuator info and use that to + populate scroll valuators after a device changed. + +2022-02-13 Po Lu <luangruo@yahoo.com> + + Improve efficiency of handling DeviceChanged events + + * src/xterm.c (handle_one_xevent): Just update the device that + was changed on DeviceChanged and only do hierarchy recalculation + upon HierarchyChanged events. + +2022-02-13 Po Lu <luangruo@yahoo.com> + + Try to reduce empty areas on GTK when a frame is being resized + + * src/xterm.c (x_fill_rectangle): + (x_clear_rectangle, x_draw_image_glyph_string): + (x_clear_area): Don't use picture if frame background is opaque. + +2022-02-13 Po Lu <luangruo@yahoo.com> + + Fix wide fringe bitmap processing on Haiku + + * src/haiku_support.cc (BBitmap_import_mono_bits): Rewrite to + use ImportBits. + (BBitmap_import_fringe_bitmap): New function. + + * src/haiku_support.h: Update prototypes. + + * src/haikuterm.c (haiku_define_fringe_bitmap): Pass entire + short array to BBitmap_import_fringe_bitmap instead. + +2022-02-13 Michael Albinus <michael.albinus@gmx.de> + + Improve Tramp's process-file implementations + + * lisp/net/tramp-adb.el (tramp-adb-handle-process-file) + * lisp/net/tramp-sh.el (tramp-sh-handle-process-file): + * lisp/net/tramp-smb.el (tramp-smb-handle-process-file): + * lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file): + Improve implementation. (Bug#53854) + + * test/lisp/net/tramp-tests.el (tramp-test28-process-file) + (tramp--test-check-files, tramp-test47-unload): Extend tests. + +2022-02-13 Juri Linkov <juri@linkov.net> + + * lisp/faces.el (read-face-name-sample-text): Add defconst (bug#53960). + + (read-face-name): Use it instead of hard-coded string. + +2022-02-13 Lars Ingebrigtsen <larsi@gnus.org> + + Add a new macro `setopt' + + * doc/emacs/custom.texi (Examining): Mention it. + (Init Syntax): Ditto. + + * doc/emacs/windows.texi (Window Choice): Adjust example. + + * doc/lispref/windows.texi (Choosing Window Options): Adjust examples. + + * doc/lispref/variables.texi (Setting Variables): Document setopt. + + * doc/misc/eudc.texi (Emacs-only Configuration): Adjust examples. + + * lisp/cus-edit.el (setopt): New macro. + +2022-02-13 Po Lu <luangruo@yahoo.com> + + * src/haikuterm.c (haiku_read_socket): Implement auto-lower. + +2022-02-13 Po Lu <luangruo@yahoo.com> + + Only get rid of IC focus if focus is really gone + + * src/xterm.c (x_focus_changed): Only unset IC focus if the + focus state is empty. + +2022-02-13 Lars Ingebrigtsen <larsi@gnus.org> + + Remove the 'C-k' binding in ido-mode + + * lisp/ido.el (ido-file-completion-map): Remove the `C-k' binding, + because it's too dangerous and probably not very useful (bug#44556). + +2022-02-13 Po Lu <luangruo@yahoo.com> + + Prevent crashes from illegal locale coding systems + + * src/xfns.c (xic_preedit_draw_callback): + * src/xterm.c (handle_one_xevent): Don't pass invalid coding + systems to `setup_coding_system'. + +2022-02-13 Lars Ingebrigtsen <larsi@gnus.org> + + Make `C-u M-x count-words' also give totals + + * lisp/simple.el (count-words-region): Adjust callers. + (count-words): If given a prefix, give totals (bug#9959). + (count-words--buffer-format, count-words--format): Rename and + don't message, but return the string. + +2022-02-13 Lars Ingebrigtsen <larsi@gnus.org> + + Note meaning on nil HIST in Fread_from_minibuffer + + * src/minibuf.c (Fread_from_minibuffer): Note the meaning of a nil + HIST parameter (bug#20063). + +2022-02-13 Lars Ingebrigtsen <larsi@gnus.org> + + Fix mouse clicking in read-face-name + + * lisp/faces.el (read-face-name): Put the data in the right + position so that clicking on completions work (bug#53960). + +2022-02-13 Bob Rogers <rogers@rgrjr.com> + + Fix ietf-drums-remove-whitespace unmatched " and ( + + * lisp/mail/ietf-drums.el: + + (ietf-drums-skip-comment): New helper function. + + (ietf-drums-remove-comments): Use ietf-drums-skip-comment. + + (ietf-drums-remove-whitespace): Handle unterminated quotes and + comments, as ietf-drums-remove-comments already does. + * test/lisp/mail/ietf-drums-tests.el: + + Test unterminated quote and comment for + ietf-drums-remove-whitespace and ietf-drums-remove-comments (bug#53965). + +2022-02-13 Andreas Schwab <schwab@linux-m68k.org> + + * src/eval.c (specpdl_unrewind): Remove empty statement. + +2022-02-13 Lars Ingebrigtsen <larsi@gnus.org> + + Avoid a compilation warning in eval.c + + * src/eval.c (specpdl_unrewind): Avoid a compilation warning. + +2022-02-13 Po Lu <luangruo@yahoo.com> + + Fix integer overflow with 32-bit visual + + * src/xfns.c (x_set_border_pixel): + (x_set_border_color): Use `unsigned long' for border color. + +2022-02-12 Po Lu <luangruo@yahoo.com> + + Work around tooltip bug on new versions of WebKitGTK + + * src/xwidget.c (dummy_tooltip_string): New variable. + (xw_maybe_synthesize_crossing): Call `xg_prepare_tooltip' to + disable tooltips on WebKitGTK 2.34 or later. + (syms_of_xwidget): Make dummy string. + +2022-02-12 Po Lu <luangruo@yahoo.com> + + Stop querying for Xinerama inside x_get_monitor_attributes + + * src/xfns.c (x_get_monitor_attributes): Remove Xinerama check + and use xinerama_supported_p instead. + * src/xterm.c (x_term_init): Set `xinerama_supported_p' + * src/xterm.h (struct x_display_info): New field + `xinerama_supported_p'. + +2022-02-12 Po Lu <luangruo@yahoo.com> + + * src/pgtkfns.c (Fx_create_frame): Set `was_invisible' flag. + +2022-02-12 Po Lu <luangruo@yahoo.com> + + Use better GC for visible bell on colormapped visuals + + * src/xterm.c (XTflash): Use normal_gc if the visual is not + TrueColor. + +2022-02-12 Po Lu <luangruo@yahoo.com> + + Fix the Haiku port + + * src/haiku_support.h [__cplusplus]: Define `specpdl_ref' type + on C++ since that code cannot include lisp.h. + +2022-02-12 Po Lu <luangruo@yahoo.com> + + Fix last change in xterm.c + + * src/xterm.c (x_update_opaque_region): Remove check that f is + non-NULL. + (handle_one_xevent): If f is NULL and the configure event is for + any's edit widget, use that instead. + +2022-02-12 Stefan Monnier <monnier@iro.umontreal.ca> + + * src/xterm.c (x_update_opaque_region): Avoid crash at startup in Lucid build + +2022-02-12 Stefan Monnier <monnier@iro.umontreal.ca> + + Rewrite thread context switch code (bug#48990) + + Make the context switch code handle buffer-local variables more + correctly by reusing the code originally written for `backtrace-eval`. + This has the side benefit of making the `saved_value` field unused. + + * src/lisp.h (enum specbind_tag): Remove `saved_value` field. + (rebind_for_thread_switch, unbind_for_thread_switch): Delete decls. + (specpdl_unrewind): Declare function. + + * src/eval.c (specpdl_saved_value): Delete function. + (specbind): Delete the code related to `saved_value`, and consolidate + common code between the different branches. + (rebind_for_thread_switch, -unbind_for_thread_switch): Move to `thread.c`. + (specpdl_unrewind): New function, extracted from `backtrace_eval_unrewind`. + Use `SET_INTERNAL_THREAD_SWITCH`. Skip the buffer & excursion unwinds + depending on new arg `vars_only`. + (backtrace_eval_unrewind): Use it. + (mark_specpdl): Don't mark `saved_value`. + + * src/thread.c (rebind_for_thread_switch, unbind_for_thread_switch): + Move from `eval.c` and rewrite using `specpdl_unrewind`. + + * test/src/thread-tests.el (threads-test-bug48990): New test. + + * test/Makefile.in (test_template): Add a + as suggested by make: + "warning: jobserver unavailable: using -j1. Add '+' to parent make rule". + +2022-02-12 Mattias Engdegård <mattiase@acm.org> + + Speed up `=` on fixnums in bytecode + + Now that EQ has become expensive, use BASE_EQ where possible. + + * src/bytecode.c (exec_byte_code): Use cheaper operation for Beqlsign. + +2022-02-12 Eli Zaretskii <eliz@gnu.org> + + Optionally allow point to enter composed character sequences + + This changeset is based on code originally posted by + Kenichi Handa <handa@gnu.org> as part of discussing bug#20140, + with a few adjustments and changes, mainly to support R2L + text and provide a user option to control the feature. + * src/xdisp.c (compute_stop_pos, next_element_from_buffer) + (composition_reseat_it): Don't allow auto-composing characters + past point when 'composition-break-at-point' is non-nil. + (syms_of_xdisp) <composition-break-at-point>: New boolean variable. + (redisplay_internal, redisplay_window): Disable "just move the + cursor" optimizations when 'composition-break-at-point' is non-nil. + * src/keyboard.c (command_loop_1): Force redisplay when + 'composition-break-at-point' is non-nil. + + * lisp/cus-start.el (standard): Provide customization form for + 'composition-break-at-point'. + + * etc/NEWS: Announce the new feature. + +2022-02-12 Mattias Engdegård <mattiase@acm.org> + + Count bytes, not records, in specpdl_ref + + SPECPDL_INDEX becomes much faster because the pointer subtraction, + expensive because of the inconveniently sized specpdl records, is now + gone. This translates to a useful speedup on a wide variety of code. + + * src/lisp.h (specpdl_ref, wrap_specpdl_ref, unwrap_specpdl_ref): + Rename member. + (specpdl_count_to_ref, specpdl_ref_to_count) + (specpdl_ref_add, specpdl_ref_to_ptr, SPECPDL_INDEX): + Count offset in bytes rather than in records. + +2022-02-12 Mattias Engdegård <mattiase@acm.org> + + Turn specpdl_ref into a type of its own + + Wrap the specpdl_ref contents in a struct, which gives us some very + useful type checking to make sure that all code that assumed integral + specpdl refs has been converted. + + We only do this on 64-bit platforms, since those tend to have modern + ABIs where small structs are optimized as scalars. In other words, + this change should not affect the compiled code. + + * src/lisp.h (specpdl_ref): Now a struct on 64-bit platforms. + (wrap_specpdl_ref, unwrap_specpdl_ref): New. + (specpdl_count_to_ref, specpdl_ref_to_count) + (specpdl_ref_eq, specpdl_ref_lt) + (specpdl_ref_valid_p, make_invalid_specpdl_ref): Use new wrappers. + +2022-02-12 Mattias Engdegård <mattiase@acm.org> + + Replace ptrdiff_t with new specpdl_ref type for specpdl references + + The specpdl_ref type is just an alias for ptrdiff_t; the compiled code + remains the same. All operations on specpdl_ref (arithmetic, + comparison etc) now go through inline functions. + + The bulk of the change is almost completely mechanical. It is done to + prepare for a type-safe representation and subsequent performance + improvement. + + * src/lisp.h (specpdl_ref, specpdl_count_to_ref, specpdl_ref_to_count) + (specpdl_ref_eq, specpdl_ref_lt, specpdl_ref_valid_p) + (make_invalid_specpdl_ref, specpdl_ref_add, specpdl_ref_to_ptr): New. + (SPECPDL_INDEX, struct handler, USE_SAFE_ALLOCA, safe_free) + (safe_free_unbind_to): + * src/alloc.c (run_finalizer_function, inhibit_garbage_collection) + (garbage_collect, Fgarbage_collect, which_symbols): + * src/bidi.c (bidi_at_paragraph_end, bidi_find_paragraph_start): + * src/buffer.c (Fkill_buffer, Fset_buffer_major_mode, Fmove_overlay) + (Fdelete_overlay): + * src/bytecode.c (exec_byte_code): + * src/callint.c (Ffuncall_interactively, Fcall_interactively): + * src/callproc.c (Fcall_process, call_process, create_temp_file) + (Fcall_process_region): + * src/charset.c (load_charset_map_from_file): + * src/coding.c (decode_coding_gap, decode_coding_object) + (encode_coding_object, Fread_coding_system): + * src/comp.c (emit_static_object, helper_unbind_n, load_comp_unit): + * src/composite.c (update_compositions, autocmp_chars): + * src/cygw32.c (conv_filename_to_w32_unicode) + (conv_filename_from_w32_unicode): + * src/data.c (notify_variable_watchers): + * src/decompress.c (Fzlib_decompress_region): + * src/dired.c (directory_files_internal, file_name_completion) + (file_attributes): + * src/dispnew.c (Fredisplay): + * src/doc.c (get_doc_string, Fsnarf_documentation): + * src/editfns.c (Fsave_excursion, Fsave_current_buffer) + (Freplace_buffer_contents, Fsubst_char_in_region, Fsave_restriction) + (styled_format): + * src/emacs-module.c (Fmodule_load, funcall_module): + * src/emacs.c (init_cmdargs, Fdump_emacs): + * src/eval.c (call_debugger, do_debug_on_call, FletX, Flet) + (Ffuncall_with_delayed_message, Funwind_protect) + (internal_lisp_condition_case, signal_or_quit) + (load_with_autoload_queue, Feval, grow_specpdl_allocation) + (record_in_backtrace, eval_sub, Ffuncall, apply_lambda) + (funcall_lambda, clear_unwind_protect, set_unwind_protect) + (set_unwind_protect_ptr, unbind_to, Fbacktrace_eval): + * src/fileio.c (Fmake_temp_file_internal, Fcopy_file, Frename_file) + (Finsert_file_contents, write_region, Fdo_auto_save): + * src/fns.c (Fyes_or_no_p, Frequire, hash_table_user_defined_call): + * src/fringe.c (update_window_fringes): + * src/gtkutil.c (xg_dialog_run): + * src/haiku_io.c (c_specpdl_idx_from_cxx): + * src/haiku_support.cc (be_popup_file_dialog): + * src/haiku_support.h (c_specpdl_idx_from_cxx): + * src/haikufns.c (haiku_create_frame, haiku_create_tip_frame) + (haiku_hide_tip, Fx_show_tip, Fhaiku_read_file_name): + * src/haikumenu.c (haiku_popup_dialog, set_frame_menubar): + * src/image.c (slurp_file): + * src/indent.c (line_number_display_width, Fvertical_motion): + * src/insdel.c (signal_before_change, signal_after_change) + (Fcombine_after_change_execute): + * src/intervals.c (get_local_map): + * src/json.c (lisp_to_json_nonscalar_1, Fjson_serialize, Fjson_insert) + (Fjson_parse_string, Fjson_parse_buffer): + * src/keyboard.c (recursive_edit_1, Frecursive_edit, cmd_error) + (Finternal_track_mouse, command_loop_1, read_menu_command) + (safe_run_hooks, read_event_from_main_queue, read_char, timer_check_2) + (menu_item_eval_property, read_key_sequence, read_key_sequence_vs) + (Fsuspend_emacs): + * src/keymap.c (Fcurrent_active_maps, Fdescribe_vector) + (Fhelp__describe_vector): + * src/lread.c (Fload, save_match_data_load, readevalloop) + (Feval_buffer, Feval_region, grow_read_buffer, read_integer, read1): + * src/macros.c (Fexecute_kbd_macro): + * src/menu.c (x_popup_menu_1): + * src/minibuf.c (read_minibuf, set_minibuffer_mode) + (read_minibuf_unwind, Fread_string, Fread_buffer): + * src/nsfns.m (Fx_create_frame, Fx_show_tip): + * src/nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog): + * src/pdumper.c (Fdump_emacs_portable): + * src/pgtkfns.c (Fx_create_frame, x_create_tip_frame, x_hide_tip) + (Fx_show_tip, Fpgtk_print_frames_dialog, Fx_file_dialog, Fx_select_font): + * src/pgtkmenu.c (set_frame_menubar, create_and_show_popup_menu) + (pgtk_menu_show, create_and_show_dialog, pgtk_dialog_show) + (pgtk_popup_dialog): + * src/pgtkterm.c (pgtk_cr_export_frames): + * src/print.c (PRINTPREPARE, temp_output_buffer_setup) + (Fprin1_to_string, print_vectorlike): + * src/process.c (Fmake_process, create_process, Fmake_pipe_process) + (Fmake_serial_process, connect_network_socket, Fmake_network_process) + (network_interface_info, server_accept_connection) + (wait_reading_process_output, read_process_output, exec_sentinel): + * src/regex-emacs.c (re_match_2_internal): + * src/search.c (looking_at_1, fast_looking_at, search_buffer_re): + * src/sound.c (Fplay_sound_internal): + * src/sysdep.c (system_process_attributes): + * src/term.c (tty_menu_show): + * src/textprop.c (Fnext_single_char_property_change) + (Fprevious_single_char_property_change, add_text_properties_1) + (set_text_properties, set_text_properties_1, Fremove_text_properties) + (Fremove_list_of_text_properties): + * src/thread.c (Fmutex_lock, invoke_thread_function): + * src/undo.c (truncate_undo_list): + * src/w32fns.c (Fx_create_frame, w32_create_tip_frame, w32_hide_tip) + (Fx_show_tip, Fx_file_dialog): + * src/w32font.c (Fx_select_font): + * src/w32menu.c (set_frame_menubar): + * src/window.c (window_list, next_window, window_list_1) + (run_window_configuration_change_hook, Frun_window_scroll_functions) + (run_window_change_functions, set_window_buffer) + (temp_output_buffer_show, window_scroll, scroll_command) + (Fscroll_other_window, Fscroll_other_window_down): + * src/xdisp.c (safe__call, handle_fontified_prop, handle_face_prop) + (handle_single_display_spec, Fbuffer_text_pixel_size) + (message_dolog, with_echo_area_buffer, setup_echo_area_for_printing) + (display_echo_area, set_message, clear_message, echo_area_display) + (gui_consider_frame_title, prepare_menu_bars, update_menu_bar) + (update_tab_bar, update_tool_bar, redisplay_internal) + (redisplay_preserve_echo_area, run_window_scroll_functions) + (redisplay_window, extend_face_to_end_of_line) + (display_count_lines_logically, display_count_lines_visually) + (display_mode_lines, display_mode_line, Fformat_mode_line) + (decode_mode_spec): + * src/xfns.c (Fx_create_frame, x_create_tip_frame, x_hide_tip) + (Fx_show_tip, Fx_file_dialog, Fx_select_font, Fx_print_frames_dialog): + * src/xmenu.c (set_frame_menubar, create_and_show_popup_menu) + (x_menu_show, create_and_show_dialog, x_dialog_show) + (xw_popup_dialog): + * src/xselect.c (x_get_local_selection, x_reply_selection_request) + (x_handle_selection_request, wait_for_property_change): + * src/xterm.c (x_cr_export_frames, x_connection_closed): + Replace ptrdiff_t with specpdl_ref for referencing specpdl and use the + corresponding functions instead of direct arithmetic. + +2022-02-12 Po Lu <luangruo@yahoo.com> + + Fix entry and exit events with XI2 grabs on X toolkit menus + + * src/xmenu.c (popup_get_selection): Only claim cookie if new + event will be generated. + (create_and_show_popup_menu): Ungrab XI2 device, then + immediately set core grab on the frame's edit widget window. + + * src/xterm.c (handle_one_xevent): Use x_any_window_to_frame to + find exit event frame if a popup menu is active. + +2022-02-12 Eli Zaretskii <eliz@gnu.org> + + Clean up mode-line-* faces handling + + * src/xfaces.c (realize_basic_faces): + * src/dispextern.h (enum face_id): Remove MODE_LINE_ID. + +2022-02-12 Lars Ingebrigtsen <larsi@gnus.org> + + Add documentation on how to delete files from Trash + + * doc/emacs/files.texi (Misc File Ops): Note trick to make `D' + work in Trash directories (bug#44059). + +2022-02-12 Lars Ingebrigtsen <larsi@gnus.org> + + Improve interaction between track-mouse and edebug + + * lisp/emacs-lisp/edebug.el (edebug--display-1): Work around + `track-mouse' oddity (bug#675). + +2022-02-12 Lars Ingebrigtsen <larsi@gnus.org> + + Fix off-by-one file size formatting in ls-lisp + + * lisp/ls-lisp.el (ls-lisp-format, ls-lisp-format-file-size): The + human-readable file sizes can be 7 characters wide (e.g., + "1016.1k") (bug#53937). + +2022-02-12 Lars Ingebrigtsen <larsi@gnus.org> + + Cross-link message-expand-name-standard-ui-relevant doc strings + + * lisp/gnus/message.el (message-expand-name-standard-ui): Mention + the other relevant variables in the doc string (bug#50667). + +2022-02-11 Po Lu <luangruo@yahoo.com> + + Implement visual bell on Haiku like on X + + * src/haiku_draw_support.cc + (BView_FillRectangleForVisibleBell): Delete function. + (BView_InvertRect): New function. + + * src/haiku_support.cc (class EmacsView): Delete field + `visible_bell_color' and visible bell related methods. + (EmacsView_do_visible_bell): Delete function. + * src/haiku_support.h: Update prototypes. + + * src/haikuterm.c (haiku_flash): Implement using + `BView_InvertRect'. + (haiku_beep): Use `haiku_flash' instead. + +2022-02-11 Po Lu <luangruo@yahoo.com> + + Fix compatibility with ancient versions of libXi + + * src/xmenu.c (popup_get_selection): Don't rely on xev->display + being non-NULL. + +2022-02-11 Po Lu <luangruo@yahoo.com> + + Be less strict about which PointerEmulated button events to ignore + + * src/xterm.c (handle_one_xevent): Ignore all PointerEmulated + button events. + +2022-02-11 Po Lu <luangruo@yahoo.com> + + Never set opaque region without an alpha channel + + * src/xfns.c (x_set_alpha_background): Don't modify opaque + region if the visual has no alpha channel. + +2022-02-11 Mattias Engdegård <mattiase@acm.org> + + Modernize byte-compilation chapters in manual + + * doc/lispref/compile.texi (Speed of Byte-Code): More representative + numbers for byte code; the difference is much greater today. + (Compilation Functions, Disassembly): Example output for lexbind + bytecode. + +2022-02-11 Po Lu <luangruo@yahoo.com> + + Fix the DJGPP port + + * config.bat: + * msdos/sed1v2.inp: + * msdos/sedlibmk.inp: Update for present Emacs. + + * src/Makefile.in (MAKE_PDUMPER_FINGERPRINT): Fix indentation + to not confuse sed*.inp. + * src/conf_post.h [MSDOS]: Define some things gnulib wants. + +2022-02-11 Michael Albinus <michael.albinus@gmx.de> + + Tolerate tilde in remote file names when needed + + * lisp/net/tramp.el (tramp-tolerate-tilde): New defvar. + (tramp-handle-expand-file-name): + * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name): + Respect it. + + * lisp/net/tramp-adb.el (tramp-adb-tolerate-tilde): + * lisp/net/tramp-sshfs.el (tramp-sshfs-tolerate-tilde): New defuns. + Advice `shell-mode' with them. + (tramp-methods) <sshfs>: Add "-t -t" to `tramp-login-args'. + +2022-02-11 Andrew G Cohen <cohen@andy.bu.edu> + + Allow searching of nnselect (search) groups + + * lisp/gnus/gnus-group.el (gnus-group-make-search-group): + (gnus-group-read-ephemeral-search-group): Ensure the server is + correctly identified even for nnselect groups. + * lisp/gnus/gnus-search.el (gnus-search-nnselect): New function. + (gnus-search-default-engines): Use it. + (gnus-search-make-spec): Queries from nnselect should always be raw. + * lisp/gnus/nnselect.el (gnus-search): Silence the byte-compiler. + +2022-02-11 Po Lu <luangruo@yahoo.com> + + * etc/PROBLEMS: Document some limitations of Xwayland and PGTK. + +2022-02-11 Po Lu <luangruo@yahoo.com> + + Don't make cursors affected by background alpha on PGTK + + * src/ftcrfont.c (ftcrfont_draw): + * src/pgtkterm.c (x_clear_glyph_string_rect): Make behavior on + PGTK consistent with X. + +2022-02-11 Po Lu <luangruo@yahoo.com> + + Set _NET_WM_OPAQUE_REGION on non-GTK3 toolkits when using 32 bit visual + + * src/xfns.c (x_set_alpha_background): Set opaque region if + opaque. + + * src/xterm.c (x_update_opaque_region): New parameter + `configure'. All callers changed. + (handle_one_xevent): Call `x_update_opaque_region' on configure + events. + +2022-02-11 Po Lu <luangruo@yahoo.com> + + Fix fallout from switch to 32-bit visuals + + * src/xfns.c (x_decode_color): Make return type wide enough to + hold any pixel value. + * src/xterm.h (x_make_truecolor_pixel): Simplify. + +2022-02-10 Po Lu <luangruo@yahoo.com> + + Improve reliability of selection ownership on Haiku + + * src/haiku_select.cc (count_clipboard, count_primary) + (count_secondary): Initialize to -1 + (BClipboard_set_system_data) + (BClipboard_set_primary_selection_data) + (BClipboard_set_secondary_selection_data): Store count before + saving to the the clipboard. + (BClipboard_owns_clipboard, BClipboard_owns_primary) + (BClipboard_owns_secondary): Adjust tests accordingly. + +2022-02-10 Po Lu <luangruo@yahoo.com> + + Disable nearest-color allocation on DirectColor visuals + + * src/xterm.c (x_alloc_nearest_color_1): Disable such allocation + on DirectColor. The method we use can't possibly work there. + +2022-02-10 Mattias Engdegård <mattiase@acm.org> + + Silence macOS vfork deprecation warnings + + The vfork system call exists and works in macOS 11.6 but the compiler + gives a deprecation message; silence it, because the performance is + still better than that of plain fork. See discussion at + https://lists.gnu.org/archive/html/emacs-devel/2022-02/msg00260.html + + * src/conf_post.h (VFORK): New #define. + * src/callproc.c (emacs_spawn): + * src/sysdep.c (sys_subshell): Use it. + +2022-02-10 Juri Linkov <juri@linkov.net> + + * lisp/mouse.el (context-menu-map): Select only unselected window (bug#53910) + +2022-02-10 Juri Linkov <juri@linkov.net> + + * lisp/tab-line.el (tab-line-format): Use mode-line-window-selected-p. + + Recently 'mode-line-window-selected-p' was added to + 'tab-line-tab-name-format-default'. Now add the same to another + place that handles the face 'tab-line-tab-current' (bug#53629). + +2022-02-10 Corwin Brust <corwin@bru.st> (tiny change) + + Autoload package-installed-p + + * lisp/emacs-lisp/package.el (package-installed-p): Add autoload + cookie. (Bug#53885) + +2022-02-10 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + # Conflicts: + # lisp/startup.el + +2022-02-10 Alan Mackenzie <acm@muc.de> + + Note current buffer and restore it in c-force-redisplay. + + This fixes bug #52709. + + * lisp/progmodes/cc-fonts.el (c-force-redisplay): New parameter BUFFER. Set + current buffer to this before fontifying. + (c-fontify-new-found-type): Give the current buffer as argument to + run-with-timer. + +2022-02-10 Lars Ingebrigtsen <larsi@gnus.org> + + Restore command-line--load-script messaging + + * lisp/startup.el (command-line--load-script): Restore previous + non-messaging behavior. + +2022-02-10 Michael Albinus <michael.albinus@gmx.de> + + Improve handling of file modes in Tramp + + * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-get-remote-uid) + (tramp-gvfs-handle-get-remote-gid): Do not assume that the default + location is owned be the remote uid/gid. + (tramp-gvfs-handle-file-executable-p): + * lisp/net/tramp-sh.el (tramp-sh-handle-file-executable-p): + Check also for setuid/setgid bit. + + * lisp/net/tramp.el (tramp-check-cached-permissions): Check also + for ?s access type. Check whether remote uid/gid are unknown. + +2022-02-10 Lars Ingebrigtsen <larsi@gnus.org> + + Don't signal a backtrace on empty --script files + + * lisp/startup.el (command-line--load-script): New function that + avoids erroring out if it turns out there's no forms in the buffer + (bug#4616). + + * lisp/subr.el (delete-line): New utility function. + * lisp/international/mule.el (load-with-code-conversion): Accept + an eval function. + +2022-02-10 Po Lu <luangruo@yahoo.com> + + Enable TrueColor allocation optimizations on all visuals + + * src/xterm.c (x_alloc_nearest_color): Enable optimizations on + 32-bit TrueColor visuals that legitimately don't have an alpha + mask. + +2022-02-10 Po Lu <luangruo@yahoo.com> + + Correctly premultiply background color of fringe bitmaps + + * src/xterm.c (x_draw_fringe_bitmap): Premultiply alphas by + alpha_background. + +2022-02-10 Po Lu <luangruo@yahoo.com> + + Correctly allocate colors in xftfont + + * src/xftfont.c (struct xftface_info): New fields + `bg_allocated_p' and `fg_allocated_p'. + (xftfont_get_colors): Actually allocate colors and tell the + caller whether colors were allocated. + (xftfont_prepare_face): Set allocated fields. + (xftfont_done_face): + (xftfont_draw): Free colors that were allocated. + +2022-02-10 Dima Kogan <dima@secretsauce.net> + + Make comint-word actually check comint-file-name-quote-list + + * lisp/comint.el (comint-word): We were checking for + comint-file-name-quote-list existing, but not actually comparing + to the characters in that list. This patch actually checks the + contents of comint-file-name-quote-list (bug#53911). + +2022-02-10 Eli Zaretskii <eliz@gnu.org> + + Allow customization of the user's eln-cache directory + + * lisp/startup.el (startup-redirect-eln-cache) + (startup--update-eln-cache): New functions. + (startup--original-eln-load-path): New defvar. + (normal-top-level): Record the original value of + 'native-comp-eln-load-path' in 'startup--original-eln-load-path'. + Do not amend 'native-comp-eln-load-path' here, as that could + overwrite user customizations. + (command-line): Amend 'native-comp-eln-load-path' after loading + the early-init file, and then again after loading the user init + file. (Bug#53891) + + * etc/NEWS: Announce 'startup-redirect-eln-cache'. + +2022-02-10 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 69e82968d7 Fix integer arithmetic miss-compilation (bug#53451) + 31af9bca99 Mark flymake as compatible with emacs-26.1 + +2022-02-10 Po Lu <luangruo@yahoo.com> + + Fix disconnect errors on some X servers + + * src/xfns.c (x_make_gc): Don't set FillOpaqueStippled on cursor + GC. The reason is that some X servers break on such a fill + style if the operation being performed is not a stiple + operation. + +2022-02-09 Po Lu <luangruo@yahoo.com> + + Fill in missing pixel after PolyLine on scroll bars + + * src/xterm.c (x_scroll_bar_expose): Draw bottom right corner of + scroll bar manually. + +2022-02-09 Po Lu <luangruo@yahoo.com> + + * src/haikugui.h [_cplusplus]: Remove extern "C" declarations. + + These were left over from an old implementation strategy + abandoned long before the port was installed. + +2022-02-09 Po Lu <luangruo@yahoo.com> + + Improve reliability of hotplugging window managers + + * src/xterm.c (x_make_frame_visible): Change the user time + window if the window manager supports something different from + what it did the first time the frame was made visible. + +2022-02-09 Po Lu <luangruo@yahoo.com> + + Ignore tooltip frames when setting PGTK scrollbar foreground + + * src/pgtkfns.c (pgtk_set_scroll_bar_foreground): Ignore tip + frames. (bug#53900) + +2022-02-09 Michael Albinus <michael.albinus@gmx.de> + + Tilde expansion is not possible for Tramp sshfs method + + * lisp/net/tramp.el (tramp-handle-expand-file-name): + Tilde expansion is not possible. (Bug#53847) + +2022-02-09 Tassilo Horn <tsdh@gnu.org> + + show-paren: Don't show context again after C-g-ing it away. + + * lisp/paren.el (show-paren--last-pos): New variable. + (show-paren-function): Don't show context again after C-g-ing it away. + +2022-02-09 Po Lu <luangruo@yahoo.com> + + Get rid of `register' declarations in X11 related files + + * src/xfns.c (XScreenNumberOfScreen): Rewrite K&R declaration. + * src/xterm.c (x_set_offset): Remove `register' from `xoff' and + `yoff'. + +2022-02-09 Po Lu <luangruo@yahoo.com> + + Fix compiler warning on GTK + + * src/xterm.c (x_make_frame_visible): Make some fields that are + set but never used conditioned out on GTK. + +2022-02-09 Po Lu <luangruo@yahoo.com> + + Add support for _NET_WM_USER_TIME_WINDOW + + * src/xterm.c (x_make_frame_visible): + (x_display_set_last_user_time): Use and set user time window if + the WM supports it. + (x_term_init): Intern new atom. + + * src/xterm.h (struct x_display_info): New atom + `_NET_WM_USER_TIME_WINDOW'. + (struct x_output): New field `user_time_window'. + +2022-02-09 Antoine Levitt <antoine.levitt@gmail.com> + + Improve the set-fill-column prompt + + * lisp/simple.el (set-fill-column): Improve the prompt (bug#53874). + +2022-02-09 Lars Ingebrigtsen <larsi@gnus.org> + + Make calendar-exit actually respect the KILL parameter + + * lisp/calendar/calendar.el (calendar-exit): Really kill off all + the buffers (if requested) (bug#53870). + +2022-02-09 Po Lu <luangruo@yahoo.com> + + Implement _NET_WM_USER_TIME protocol + + * src/xterm.c (x_display_set_last_user_time): Set user time on + the active window. + (handle_one_xevent): Only set user time when the user actually + interacted with Emacs. + (x_make_frame_visible): Set user time if non-zero. + (x_term_init): Intern `_NET_WM_USER_TIME'. + * src/xterm.h (struct x_display_info): New field + `Xatom_net_wm_user_time'. + (x_display_set_last_user_time): Implement in xterm.c instead. + +2022-02-09 Po Lu <luangruo@yahoo.com> + + Explicitly specify whether or not to respect alpha-background on Cairo + + * src/ftcrfont.c (ftcrfont_draw): Don't respect + `alpha-background' if drawing cursor. (bug#53890) + * src/xterm.c (x_set_cr_source_with_gc_foreground): + (x_set_cr_source_with_gc_background): New parameters + `respect_alpha_background'. All callers changed. + * src/xterm.h: Update prototypes. + +2022-02-09 Tassilo Horn <tsdh@gnu.org> + + Mention `overlay' show-paren-context-when-offscreen value in NEWS + + * etc/NEWS: Mention `overlay' value of + show-paren-context-when-offscreen. + +2022-02-09 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 82e74e4559 flymake: Ensure compatibility with older Emacsen + +2022-02-09 Po Lu <luangruo@yahoo.com> + + Make haikufont_list_family actually work + + * haikufont.c (haikufont_list_family): Intern returned font + families. + +2022-02-08 Po Lu <luangruo@yahoo.com> + + Implement `list_family' for the haikufont driver + + * src/haiku_font_support.cc (be_list_font_families): New + function. + * src/haiku_support.h: Update prototypes. + * src/haikufont.c (haikufont_list_family): New function. + (haikufont_driver): Add `haikufont_list_family'. + +2022-02-08 Po Lu <luangruo@yahoo.com> + + Improve selection of fonts available from `mouse-set-font' + + People get confused on a build without font dialogs (such as a + Lucid build) if `menu-set-font' and `mouse-set-font' don't + present them a list of the fonts actually available on their + system. + + * lisp/mouse.el (mouse-generate-font-name-for-menu) + (mouse-generate-font-menu): New functions. + (mouse-select-font): Allow the user to select from all fonts + available on the system. + (mouse-set-font): Use `mouse-select-font' to display font menu. + +2022-02-08 Po Lu <luangruo@yahoo.com> + + Make sure the cursor can't move on top of a tooltip on Haiku + + * src/haikuterm.c (haiku_read_socket): Work around leave + notification events not being sent on tooltip frames. + +2022-02-08 Po Lu <luangruo@yahoo.com> + + Fix creation of tooltip frames with a stippled background + + * src/xfns.c (x_create_tip_frame): Init faces after creating the + drawable, since that's needed for loading stipple files. + +2022-02-08 Tassilo Horn <tsdh@gnu.org> + + Allow showing show-paren context in an overlay + + * lisp/paren.el (show-paren-context-when-offscreen): Add new + possibility `overlay'. + (show-paren--context-overlay): New defvar. + (show-paren--delete-context-overlay): New function. + (show-paren--show-context-in-overlay): New function. + (show-paren-function): Handle the new `overlay' case. + * lisp/emacs-lisp/eldoc.el (eldoc-display-message-no-interference-p): + There's no interference if `show-paren-context-when-offscreen' is + overlay or child-frame. + +2022-02-08 Juri Linkov <juri@linkov.net> + + * lisp/replace.el (perform-replace): Allow using isearch in recursive-edit. + + Let-bind isearch-filter-predicate to the default value before calling + recursive-edit to allow using isearch in a recursive edit (bug#53758). + +2022-02-08 Robert Pluim <rpluim@gmail.com> + + Improve make-frame-on-display initial values + + * doc/emacs/frames.texi (Multiple Displays): Add index entry for + 'display server'. + * lisp/frame.el (make-frame-on-display): Specify sensible initial + values when reading display name. + * lisp/menu-bar.el (menu-bar-file-menu): Use 'display server' rather + than 'display' to avoid monitor<->display confusion. + +2022-02-08 Robert Pluim <rpluim@gmail.com> + + Improve thing-at-point-url-at-point docstring + + * lisp/thingatpt.el (thing-at-point-url-at-point): Correct description + of BOUNDS argument. + +2022-02-08 Michael Albinus <michael.albinus@gmx.de> + + Respect customization nature of `connection-local-*' user options + + * lisp/files-x.el (connection-local-set-profiles) + (connection-local-set-profile-variables): Set user options via + `customize-set-variable'. + +2022-02-08 Michael Albinus <michael.albinus@gmx.de> + + Fix processes on remote default-directory with special characters + + * lisp/net/tramp.el (tramp-handle-make-process): Quote `localname'. + + * test/lisp/net/tramp-tests.el (tramp--test-check-files): + Test also remote `default-directory' for processes. (Bug#53846) + +2022-02-08 Po Lu <luangruo@yahoo.com> + + * src/pgtkterm.c (map_event): Fix last change. + +2022-02-08 Po Lu <luangruo@yahoo.com> + + Document some problems found during testing on various X servers + + * etc/PROBLEMS (General X problems): Document some problems + found during testing on various X servers. + +2022-02-08 Po Lu <luangruo@yahoo.com> + + Improve robustness of override-redirect on Haiku + + * src/haiku_support.cc (class EmacsWindow): New field + `override_redirect_p'. + (BWindow_change_decoration, BWindow_set_override_redirect): Set + and restore from the saved pre-override redirect state fields if + appropriate. + +2022-02-08 Po Lu <luangruo@yahoo.com> + + Fix frame offset reporting on PGTK + + * src/pgtkterm.c (configure_event): Handle changes in window + position. (bug#52697) + +2022-02-08 Po Lu <luangruo@yahoo.com> + + Implement frame resize synchronization on GTK 3 + + * src/xterm.c (XTframe_up_to_date): + (handle_one_xevent): Use the GTK frame clock to implement frame + resize synchronization. + + * src/xterm.h (struct x_output): New variable + `xg_sync_end_pending_p'. + +2022-02-08 Lars Ingebrigtsen <larsi@gnus.org> + + Extend find-lisp-object-file-name + + * lisp/help-fns.el (find-lisp-object-file-name): Add optional + parameter to always look in the DOC file (bug#17685). + +2022-02-08 Lars Ingebrigtsen <larsi@gnus.org> + + Document pcase-lambda + + * doc/lispref/control.texi (Destructuring with pcase Patterns): + Document pcase-lambda (bug#20268). + +2022-02-08 Lars Ingebrigtsen <larsi@gnus.org> + + Fix some standard-output/help-buffer confusion in describe-function-1 + + * lisp/help-fns.el (describe-function-1): We're outputting to + standard-output, so deconfuse slightly. + +2022-02-08 Lars Ingebrigtsen <larsi@gnus.org> + + Fix describe-function-1 test failure from previous change + + * lisp/help-fns.el (describe-function-1): Fix test failure from + previous patch. + +2022-02-08 Lars Ingebrigtsen <larsi@gnus.org> + + Minor fix to how describe-function-1 displays symbols with spaces + + * lisp/help-fns.el (describe-function-1): Ensure that symbols like + `bar\ ' aren't rendered incorrectly (bug#23130). + +2022-02-08 martin rudalics <rudalics@gmx.at> + + Improve handling of frame-inherited-parameters + + * lisp/frame.el (make-frame): Improve handling of + frame-inherited-parameters (bug#24651). + +2022-02-08 Lars Ingebrigtsen <larsi@gnus.org> + + Make exit from text-scale-adjust less confusing + + * lisp/face-remap.el (text-scale-adjust): Clear the prompt after + exiting (bug#25978). + +2022-02-08 Po Lu <luangruo@yahoo.com> + + Clear mouse highlight when mouse moves outside edit widget + + * src/xterm.c (handle_one_xevent): Clear mouse highlight when + leaving the edit widget. Otherwise, it stays around on the + toolbar after the mouse is moved onto the menu bar. + +2022-02-08 Andrew G Cohen <cohen@andy.bu.edu> + + nnselect.el: Speed up group info updating + + * lisp/gnus/nnselect.el (nnselect-request-update-info): Use a hash and + other tricks to speed things up. + (nnselect-request-group-scan): Make sure the artlist is uncompressed. + +2022-02-08 Po Lu <luangruo@yahoo.com> + + Try harder to preserve cursor when mapping tooltip frames on Haiku + + * src/haikufns.c (haiku_set_cursor_color): Fix argument to + `error'. + (Fx_show_tip): Define cursors on both views. + +2022-02-07 Po Lu <luangruo@yahoo.com> + + Fix menu bar not opening after popup menu is dismissed on Lucid + + * lwlib/xlwmenu.c (XlwMenuDestroy): Only set submenu_destroyed + if menu bar widget. + +2022-02-07 Po Lu <luangruo@yahoo.com> + + * src/pgtkfns.c (Fx_create_frame): Realize frame widgets. (bug#53861) + +2022-02-07 Po Lu <luangruo@yahoo.com> + + Don't allow tooltips to be transient for override redirect windows + + * src/xfns.c (Fx_show_tip): Delete WM_TRANSIENT_FOR if the child + window is override-redirect. + + * src/xterm.c (x_term_init): Intern new atom. + * src/xterm.h (struct x_display_info): New atom + `Xatom_wm_transient_for'. + +2022-02-07 Po Lu <luangruo@yahoo.com> + + Make sure `update_wm_hints' finds the WMShell + + * src/widget.c (update_wm_hints): Accept frame separately from + the shell widget. + (widget_update_wm_size_hints): Require WM shell to be explicitly + specified. + (EmacsFrameRealize): + (EmacsFrameResize): Update callers to `update_wm_hints'. + * src/widget.h: Update prototypes. + * src/xterm.c (x_wm_set_size_hint): Pass frame widget + (ApplicationShell) and the edit widget (EmacsFrame) to + `widget_update_wm_size_hints'. (bug#53839) + +2022-02-07 Stefan Monnier <monnier@iro.umontreal.ca> + + minibuffer.el: Try and fix bug#53053 + + * lisp/minibuffer.el (completion--sifn-requote): Special case for when + `upos` is at the very end. + +2022-02-07 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/progmodes/xref.el (xref--marker-ring): Fix typo + +2022-02-07 Michael Albinus <michael.albinus@gmx.de> + + Make connection-local variables user options + + * lisp/files-x.el (connection-local-profile-alist) + (connection-local-criteria-alist): Make them user options. + + * doc/lispref/variables.texi (Connection Local Variables): + * etc/NEWS: Document this. + +2022-02-07 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp-mnt, checkdoc: Reduce run-time dependencies + + * lisp/emacs-lisp/lisp-mnt.el: Don't require `mail-parse` at top-level. + (lm-crack-address): Require it here instead. + + * lisp/emacs-lisp/checkdoc.el (dired): Don't load at run-time. + (checkdoc-dired): Add corresponding `declare-function`. + +2022-02-07 Mattias Engdegård <mattiase@acm.org> + + Pin lazily read bytecode (bug#53809) + + * src/eval.c (Ffetch_bytecode): Bytecode strings read lazily weren't + pinned as they must be. Do so. + + Bug reported by Gregor Zattler. + +2022-02-07 Po Lu <luangruo@yahoo.com> + + Improve contrast of `custom-button' in the leuven-dark theme + + * etc/themes/leuven-dark-theme.el (custom-button): Improve + contrast of custom-button foreground. + +2022-02-07 Po Lu <luangruo@yahoo.com> + + * lwlib/xlwmenu.c (pop_up_menu): Fix cast. + +2022-02-07 Po Lu <luangruo@yahoo.com> + + Correct off-by-one errors with frame resizing on Haiku + + * src/haiku_support.cc (UnZoom): + (MakeFullscreen): + (BWindow_resize): Fix off-by-one errors in calls to + `BWindow::ResizeTo'. + +2022-02-07 Po Lu <luangruo@yahoo.com> + + Make menus work better on X toolkit builds with XInput 2 + + * src/xmenu.c (popup_get_selection): Translate some important + XI2 events into events the toolkit can understand. + (x_activate_menubar): + (create_and_show_popup_menu): Clear grab regardless of reported + status on Motif. + * src/xterm.c (xi_device_from_id): Export function. + * src/xterm.h: Update prototypes. + +2022-02-07 Michael Albinus <michael.albinus@gmx.de> + + Sanitize ls switches in ange-ftp (bug#53360) + + * lisp/net/ange-ftp.el (ls-lisp--sanitize-switches): Declare. + (ange-ftp-ls): Sanitize LSARGS. (Bug#53360) + +2022-02-07 Lars Ingebrigtsen <larsi@gnus.org> + + Improve indentation of some shell script forms + + * lisp/progmodes/sh-script.el (sh-smie--default-backward-token): + Don't skip past things like "true;then" (bug#53817). + +2022-02-07 Po Lu <luangruo@yahoo.com> + + Really fix extended frame synchronization + + * src/xterm.c (XTframe_up_to_date): Make sure the extended + counter ends up even. + +2022-02-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix the Scroll key binding on Windows + + * lisp/bindings.el (global-map): Fix the binding on Windows + (bug#38007). + + * lisp/scroll-lock.el (scroll-lock-mode): The event is `scroll' on + Windows, not `Scroll_Lock'. + +2022-02-06 Lars Ingebrigtsen <larsi@gnus.org> + + Make the eintr.html target match what's on the web + + * doc/lispintro/Makefile.in (HTML_TARGETS, eintr.html): Make the + name match the URL at + https://www.gnu.org/software/emacs/manual/eintr.html (bug#38817). + +2022-02-06 Lars Ingebrigtsen <larsi@gnus.org> + + Give a better error in locate-default-make-command-line + + * lisp/locate.el (locate-default-make-command-line): Error out + more nicely. + +2022-02-06 Lars Ingebrigtsen <larsi@gnus.org> + + Improve the ediff-diff-options documentation + + * lisp/vc/ediff-diff.el (ediff-diff-options): + * doc/misc/ediff.texi (Patch and Diff Programs): Note that setting + this variable directly is probably the wrong thing to do (bug#6512). + +2022-02-06 Po Lu <luangruo@yahoo.com> + + Respect `x-cursor-fore-pixel' on Haiku + + * src/haikufns.c (haiku_set_cursor_color): Respect + `x-cursor-fore-pixel'. + (syms_of_haikufns): Declare variable `x-cursor-fore-pixel'. + +2022-02-06 Po Lu <luangruo@yahoo.com> + + Clean up more code from PGTK port + + * lisp/term/pgtk-win.el (pgtk-disown-selection-internal) + (pgtk-get-selection-internal): Fix declarations for new calling + conventions. + * src/gtkutil.c (xg_frame_set_char_size, x_wm_set_size_hint): + Clean up meaningless variables on PGTK. + * src/pgtkfns.c (Fx_create_frame, syms_of_pgtkfns): Clean up + meaningless variables and fix copied doc strings to use "skip". + * src/pgtkim.c (im_context_commit_cb) + (im_context_retrieve_surrounding_cb) + (im_context_delete_surrounding_cb, make_color_string) + (im_context_preedit_changed_cb, im_context_preedit_end_cb) + (im_context_preedit_start_cb): Fix coding style. + * src/pgtkselect.c (pgtk_selection_usable) + (Fpgtk_disown_selection_internal, Fpgtk_get_selection_internal): + Remove unused arguments. + (syms_of_pgtkselect): Fix doc strings and old style variable + declarations. + * src/pgtkterm.c (x_set_offset, x_set_parent_frame) + (syms_of_pgtkterm): Clean up doc strings and remove meaningless + variables. + +2022-02-06 Po Lu <luangruo@yahoo.com> + + * doc/emacs/xresources.texi (Table of Resources): Improve wording. + +2022-02-06 Po Lu <luangruo@yahoo.com> + + Correct implementation of extended frame synchronization + + * src/xterm.c (handle_one_xevent): Use value provided in the + extended synchronization message as the current counter value. + +2022-02-06 Lars Ingebrigtsen <larsi@gnus.org> + + Make dired-directory and dired-subdir-alist buffer-local + + * lisp/dired.el (dired-directory): + (dired-subdir-alist): Make buffer-local (bug#7118) + (dired-readin): + (dired-mode): + * lisp/dired-x.el (dired-virtual): Adjust usage. + * lisp/locate.el (locate-mode): + * lisp/find-lisp.el (find-lisp-find-dired-internal): + * lisp/find-dired.el (find-dired): Adjust usage. + +2022-02-06 Stefan Monnier <monnier@iro.umontreal.ca> + + Fix eval-tests/backtrace-in-batch-mode test + + * lisp/emacs-lisp/debug-early.el (debug-early-backtrace): Fix the + zero-arg case. + +2022-02-06 Lars Ingebrigtsen <larsi@gnus.org> + + Make async connect_network_socket failures use Qfailed + + * src/process.c (connect_network_socket): Mark the process as + Qfailed instead of using the error symbol (since this is what's + defined for the status) (bug#53814). + +2022-02-06 Bob Rogers <rogers-emacs@rgrjr.homedns.org> + + Remove outdated comments from ietf-drums.el + + * lisp/mail/ietf-drums.el: Remove outdated comments (bug#53811). + +2022-02-06 Ioannis Kappas <ioannis.kappas@gmail.com> (tiny change) + + ansi-color: don't get stuck on \e + + * lisp/ansi-color.el (ansi-color--control-seq-fragment-regexp): New + constant. + + * test/lisp/ansi-color-tests.el + (ansi-color-incomplete-sequences-test): Test for \e that doesn't + start a valid ANSI escape sequence (bug#53808). + + Code amended (and test code written) by <miha@kamnitnik.top>. Code by + Ioannis Kappas is small enough to be + +2022-02-06 Stefan Monnier <monnier@iro.umontreal.ca> + + (debug-early-backtrace): Tweak the non-evald output + + * lisp/emacs-lisp/debug-early.el (debug-early-backtrace): Make the + non-evald output more like what is used in `debug.el`. + +2022-02-06 Stefan Monnier <monnier@iro.umontreal.ca> + + (debug-early-backtrace): Tweak the non-evald output + + * lisp/emacs-lisp/debug-early.el (debug-early-backtrace): Make the + non-evald output more like what is used in `debug.el`. + +2022-02-06 Juri Linkov <juri@linkov.net> + + Use mode-line-window-selected-p in tab-line-tab-name-format-default. + + * lisp/tab-line.el (tab-line-tab-name-format-default): + Use the recently added function 'mode-line-window-selected-p' + for the face 'tab-line-tab-current' (bug#53629). + +2022-02-06 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el (tab-bar-new-tab-choice): Add const 'window'. Update doc. + + (tab-bar-new-tab-to): Remove window parameters 'window-side' and + 'window-atom' from the old window. Move split-window/delete-window + inside ignore-window-parameters (bug#53662). + +2022-02-06 Michael Albinus <michael.albinus@gmx.de> + + Adapt em-tramp-tests.el + + * test/lisp/eshell/em-tramp-tests.el (tramp): Require. + (em-tramp-test/su-default, em-tramp-test/su-user) + (em-tramp-test/su-login, em-tramp-test/sudo-basic) + (em-tramp-test/sudo-user): Adapt tests. + +2022-02-06 Mattias Engdegård <mattiase@acm.org> + + Avoid deprecation warning in NS-specific code + + * src/macfont.m (mac_font_create_preferred_family_for_attributes): + CTGetCoreTextVersion is obsolete and its use elicits a warning + in macOS 11.6; use NSProcessInfo instead. + +2022-02-06 Wang Chunye <chunywan@xilinx.com> (tiny change) + + optimization: constand folding for read-kbd-macro + + to boost startup performance, it is better to avoid invoking + `read-kbd-macro` at run time which requires 'cl-lib. + + it takes ~20ms to load cl-lib + +2022-02-06 Po Lu <luangruo@yahoo.com> + + Ensure bar cursors are always visible on Haiku + + * src/haikuterm.c (haiku_draw_window_cursor): Adjust bar cursor + colors like X. + +2022-02-06 Po Lu <luangruo@yahoo.com> + + Fix the GTK 2 build + + * src/gtkutil.c (xg_filter_key): Remove call to GTK3-only + function without GTK 3. + * src/xfns.c (select_visual): Avoid 32-bit visuals on GTK 2. + +2022-02-06 Po Lu <luangruo@yahoo.com> + + Disable extended frame synchronization by default + + * doc/emacs/xresources.texi (Table of Resources): Document + new possible value of `synchronizeResize'. + * src/xfns.c (Fx_create_frame): Set synchronization protocol + according to `synchronizeResize'. + +2022-02-06 Po Lu <luangruo@yahoo.com> + + Add support for EWMH extended frame synchronization + + * src/xfns.c (Fx_create_frame): Populate both counter variables. + * src/xterm.c (XTframe_up_to_date): + (handle_one_xevent): Support extended synchronization. + (x_free_frame_resources): Destroy extended counter. + (x_term_init): Intern new atom _NET_WM_FRAME_DRAWN. + + * src/xterm.h (struct x_display_info): New atom + `_NET_WM_FRAME_DRAWN'. + (struct x_output): New fields for extended counter tracking. + (FRAME_X_EXTENDED_COUNTER): New macro. + +2022-02-06 Eli Zaretskii <eliz@gnu.org> + + Fix infloop in 'redisplay_window' when buffer is narrowed + + * src/xdisp.c (redisplay_window): Ensure window-start point is in + the accessible portion of the buffer when passing it to + 'window_start_acceptable_p'. (Bug#14582) + +2022-02-06 Tassilo Horn <tsdh@gnu.org> + + Display show-paren-context-when-offscreen in child frame + + * etc/NEWS: Extend section about the new + `show-paren-context-when-offscreen' custom option. + * lisp/paren.el (show-paren-context-when-offscreen): Allow special + value `child-frame'. + (show-paren-function): Handle `child-frame' value of + `show-paren-context-when-offscreen'. + (show-paren--context-child-frame): New defvar. + (show-paren--context-child-frame-redirect-focus): New function. + (show-paren--context-child-frame-buffer): New function. + (show-paren--context-child-frame-parameters): New defvar. + (show-paren--delete-context-child-frame): New function. + (show-paren--show-context-in-child-frame): New function. + +2022-02-06 Michael Albinus <michael.albinus@gmx.de> + + Make usage of su and sudo consistent in eshell (bug#53783) + + * lisp/eshell/em-tramp.el (eshell/su, eshell/sudo): + Use `tramp-default-host' instead of "localhost". + +2022-02-06 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 821c240075 Fix ietf-drums-get-comment doc string + 638247baa4 Fix typo in display.texi + +2022-02-06 Po Lu <luangruo@yahoo.com> + + * lwlib/xlwmenu.c (pop_up_menu): Work around motion problems on XI2. + +2022-02-05 Bob Rogers <rogers@rgrjr.com> + + Add ietf-drums tests, fix parse-address decoding + + * test/lisp/mail/ietf-drums-tests.el (ietf-drums-tests): Test most of + lisp/mail/ietf-drums.el functionality. + * lisp/mail/ietf-drums.el: (ietf-drums-parse-address): Bug fix: + Require rfc2047 when needed (bug#53811). + +2022-02-05 Po Lu <luangruo@yahoo.com> + + Allow disabling frame resize synchronization + + * doc/emacs/xresources.texi (Table of Resources): Document new + parameter `synchronizeResize'. + * etc/NEWS: Announce frame resize synchronization. + * src/xterm.c (x_term_init): Don't enable XSync if the + X resource `synchronizeResize' is off or false. + +2022-02-05 Po Lu <luangruo@yahoo.com> + + Clean up lots of #ifdef'd out code in PGTK files + + Most of them are either relics from X or from the NS code + pgtkfns.c was copied from whole. + + * src/pgtkfns.c (x_icon): + (pgtk_set_scroll_bar_foreground): + (pgtk_set_scroll_bar_background): + (Fx_create_frame): + (pgtk_window_is_ancestor): + (x_create_tip_frame): + * src/pgtkselect.c (syms_of_pgtkselect): + * src/pgtkterm.c (pgtk_iconify_frame): + (x_set_frame_alpha): + (button_event): Remove defined out code that cannot make sense. + + * src/pgtkmenu.c (show_help_event): Remove ifdef'd out code and + reword comment. + +2022-02-05 Po Lu <luangruo@yahoo.com> + + Handle window state changes on PGTK + + * src/pgtkterm.c (window_state_event): Set fullscreen, sticky, + and iconification status according to the new window state. + (bug#53793) + +2022-02-05 Po Lu <luangruo@yahoo.com> + + Minor changes to xsync support + + * src/xfns.c (append_wm_protocols): Don't append + _NET_WM_SYNC_REQUEST unless the display supports our version of + XSync. + + * src/xterm.c (handle_one_xevent): Don't handle + _NET_WM_SYNC_REQUEST unless the display supports that. + (x_free_frame_resources): Test basic counter against None. + +2022-02-05 Lars Ingebrigtsen <larsi@gnus.org> + + Improve the elp-instrument-package doc string + + * lisp/emacs-lisp/elp.el (elp-instrument-package): Note the effect + of loading further files (bug#13252). + +2022-02-05 Mauro Aranda <maurooaranda@gmail.com> + + Fix reverting the default face to standard/themed state in GUIs + + * lisp/cus-edit.el (custom-face-set, custom-face-mark-to-save) + (custom-face-save): Record the default (standard or themed) attributes + of the default face in a symbol property. + (custom-face-reset-saved, custom-face-mark-to-reset-standard): When + reverting the default face to the standard or themed state, use the + default attributes we recorded, instead of relying in the defface spec + of the default face, since that doesn't give enough information to + reset all attributes, like foreground, family, etc (bug#14635). + +2022-02-05 Lars Ingebrigtsen <larsi@gnus.org> + + Add new user option 'find-library-include-other-files' + + * lisp/emacs-lisp/find-func.el (read-library-name--find-files): + New function (bug#15735). + (read-library-name): Use it. + (find-library-include-other-files): New user option. + +2022-02-05 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak how eshell/cd works when cd-ing to ".." from "/" + + * lisp/eshell/em-dirs.el (eshell/cd): Make "cd .." from "/" less + confusing (bug#16861). + +2022-02-05 Lars Ingebrigtsen <larsi@gnus.org> + + Add a :distant-foreground to the lazy-highlight face + + * lisp/isearch.el (lazy-highlight): Add a :distant-foreground + color so that the text is always legible (bug#16969). + +2022-02-05 Lars Ingebrigtsen <larsi@gnus.org> + + Add new function mode-line-window-selected-p + + * doc/lispref/modes.texi (Mode Line Basics): Mention it (bug#53629). + * lisp/bindings.el (mode-line-window-selected-p): New function + from martin rudalics <rudalics@gmx.at>. + +2022-02-05 Michael Albinus <michael.albinus@gmx.de> + + Adapt Tramp to changed unload behavior (bug#53632) + + * test/lisp/net/tramp-tests.el (tramp-test47-unload): Check also + for autoloaded macros. Respect `tramp-autoload' function property. + +2022-02-05 Po Lu <luangruo@yahoo.com> + + Add support for basic syncing with the window manager on resize + + This is handled by GTK 3, so the code is disabled on that + specific build. On other builds, this eliminates any unexposed + part of a frame from showing up after a resize when + `frame-resize-pixelwise' is t. + + * configure.ac: Check for the X Synchronization Extension if + present. + * src/Makefile.in (EMACS_CFLAGS): + (LIBES): Add XSYNC_LIBS and XSYNC_CFLAGS. + + * src/xfns.c (append_wm_protocols): Declare + `_NET_WM_SYNC_REQUEST' support if appropriate. + (x_window): Adjust location of call to `append_wm_protocols' on + Xt version to prevent it from being overwritten. + (Fx_create_frame): Create basic counter. + * src/xterm.c (XTframe_up_to_date): Set counter value to the one + asked for by the window manager. + (handle_one_xevent): Handle _NET_WM_SYNC_REQUEST. + (x_free_frame_resources): Free frame counter if present. + (x_term_init): Test for XSync and set fields accordingly. + * src/xterm.h (struct x_display_info): New fields for XSync + support and new atoms. + (struct x_output): New fields for counter status. + (FRAME_X_BASIC_COUNTER): New macro. + +2022-02-05 Po Lu <luangruo@yahoo.com> + + * lisp/pixel-scroll.el: Update commentary. + +2022-02-05 Eli Zaretskii <eliz@gnu.org> + + Fix 'current-column' in the presence of display strings + + * src/indent.c (check_display_width): Support calculation of width + of 'display' properties whose values are strings. This fixes the + value returned by 'current-column' when display strings are + present between BOL and point. (Bug#53795) + +2022-02-05 Alan Mackenzie <acm@muc.de> + + * lisp/emacs-lisp/debug-early.el: Improve the documentation + +2022-02-05 Michael Albinus <michael.albinus@gmx.de> + + Remove superfluous `font-lock-add-keywords' calls in Tramp + + * lisp/net/tramp.el (with-parsed-tramp-file-name) + (with-tramp-progress-reporter, with-tramp-file-property) + (with-tramp-connection-property, with-tramp-locked-connection): + * lisp/net/tramp-gvfs.el (with-tramp-dbus-call-method) + (with-tramp-dbus-get-all-properties): Do not call + `font-lock-add-keywords' for macros, it isn't needed anymore. + +2022-02-05 Michael Albinus <michael.albinus@gmx.de> + + Adapt Tramp to changed unload behavior (bug#53632) + + * lisp/net/tramp.el (tramp-autoload-file-name-handler) + (tramp-register-autoload-file-name-handlers) + (tramp-unload-file-name-handlers, tramp-unload-tramp): + * lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-regexp) + (tramp-archive-autoload-file-name-handler) + (tramp-register-archive-file-name-handler): + Add `tramp-autoload' function property. + +2022-02-05 Lars Ingebrigtsen <larsi@gnus.org> + + Fix yank-media utf-16 detection + + * lisp/yank-media.el (yank-media--utf-16-p): Factor out into its + own function for easier testing and fix the code. + +2022-02-05 Lars Ingebrigtsen <larsi@gnus.org> + + Improve the selected-window doc string + + * src/window.c (Fselected_window): Add some pointers to other + functions in this area. + +2022-02-05 Jim Porter <jporterbugs@gmail.com> + + Ensure that the CAR of 'eshell-last-async-procs' always points to a process + + Previously, if a non-process was piped to a process, this could end up + being nil, which isn't correct. 'eshell-last-async-procs' should just + ignore non-process commands in a pipeline. + + * lisp/eshell/esh-cmd.el (eshell-do-pipelines): Set 'headproc' + correctly. + + * test/lisp/eshell/eshell-tests.el (eshell-test/pipe-headproc): New test. + +2022-02-05 Brendan O'Dea <bod@debian.org> (tiny change) + + Remove kerning escapes in woman mode + + * lisp/woman.el (woman-decode-region): Remove kerning escapes + (bug#53770). + +2022-02-05 Lars Ingebrigtsen <larsi@gnus.org> + + Improve the Archive file names tramp documentation + + * doc/misc/tramp.texi (Archive file names): Explicitly say how to + open an archive with Tramp (bug#25076). + +2022-02-05 Lars Ingebrigtsen <larsi@gnus.org> + + Fix yank-media-types--format decoding + + * lisp/yank-media.el (yank-media-types--format): Check that we + really have some nuls. + +2022-02-05 Po Lu <luangruo@yahoo.com> + + Finish up cursor color merging on Haiku + + * src/haikuterm.c (haiku_draw_text_decoration): + (haiku_draw_plain_background): + (haiku_draw_stretch_glyph_string): + (haiku_merge_cursor_foreground): Use merged cursor colors. + +2022-02-04 Po Lu <luangruo@yahoo.com> + + Fix last change to ftcrfont.c + + * src/ftcrfont.c (ftcrfont_draw): Remove relic `face' variable + and use s->face instead. + +2022-02-04 Po Lu <luangruo@yahoo.com> + + Implement face cursor color merging on Haiku + + * src/ftcrfont.c (ftcrfont_draw): + * src/haikufont.c (haikufont_draw): Use + `haiku_merge_cursor_foreground' to calculate cursor HL colors. + * src/haikuterm.c (haiku_merge_cursor_foreground): New function. + * src/haikuterm.h: Update prototypes. + +2022-02-04 Po Lu <luangruo@yahoo.com> + + Set WM_TRANSIENT_FOR on tooltip frames + + Otherwise the decorations get all messed up on GNOME and some + other composited desktops. + + * src/xfns.c (Fx_show_tip): Set WM_TRANSIENT_FOR to the window + underneath the tooltip. + +2022-02-04 Po Lu <luangruo@yahoo.com> + + Implement _NET_WM_PING protocol + + * src/xfns.c (append_wm_protocols): New function. + (x_window): Call `append_wm_protocols' after window creation. + * src/xterm.c (handle_one_xevent): Handle _NET_WM_PING client + messages. + (x_term_init): Intern _NET_WM_PING atom. + * src/xterm.h (struct x_display_info): New field + `Xatom_net_wm_ping'. + +2022-02-04 Vladimir Panteleev <git@cy.md> + + Update the MULTIPLE property with conversion outcomes + + Per the ICCCM spec: + + > If the owner fails to convert the target named by an atom in the + > MULTIPLE property, it should replace that atom in the property with + > None. + + * src/xselect.c (x_handle_selection_request): Do it. + +2022-02-04 Vladimir Panteleev <git@cy.md> + + Do not delete the MULTIPLE property after reading it + + Per the ICCCM spec: + + > The requestor should delete [...] the property specified in the + > MULTIPLE request when it has copied all the data. + + We are not the requestor, so we should not be deleting this property + (which is what x_get_window_property_as_lisp_data does). The property + needs to remain available as the requestor will generally want to read + it back to see which conversions succeeded or not. + + * src/xselect.c (x_get_window_property_as_lisp_data): Add flag which + skips deleting the read property, or handling INCR (which does not + make sense for MULTIPLE). + (x_handle_selection_request): Enable the flag. + +2022-02-04 Stefan Monnier <monnier@iro.umontreal.ca> + + (with-demoted-errors): Warn on missing `format` arg + + The `format` arg has been mandatory for a while, but the backward + compatibility code that handled the case of a missing `format` arg + made it hard to notice when using the old calling convention. + + * lisp/subr.el (with-demoted-errors): Warn on missing `format` arg. + + * lisp/emacs-lisp/smie.el (smie-indent--separator-outdent): Don't abuse + `with-demoted-errors`. + (smie-indent-line, smie-auto-fill): + * test/lisp/emacs-lisp/ert-tests.el (ert-test-with-demoted-errors): + * lisp/vc/vc-hooks.el (vc-refresh-state): + * lisp/vc/vc-annotate.el (vc-annotate-background-mode): + * lisp/vc/diff-mode.el (diff-syntax-fontify-hunk): + * lisp/textmodes/reftex-toc.el (reftex-re-enlarge): + * lisp/progmodes/sh-script.el (sh-smie-sh-rules): + * lisp/progmodes/octave.el (inferior-octave-startup): + * lisp/pcmpl-gnu.el (pcmpl-gnu-make-all-targets): + * lisp/org/org-refile.el (org-refile): + * lisp/org/org-capture.el (org-capture-store-last-position): + * lisp/nxml/nxml-mode.el (nxml-mode): + * lisp/notifications.el (notifications-notify): + * lisp/gnus/mm-view.el (mm-display-inline-fontify): + * lisp/finder.el (finder-unload-function): + * lisp/files.el (safe-local-variable-p, backup-buffer-copy + * lisp/autorevert.el (auto-revert-notify-handler): + Pass `format` arg to `with-demoted-errors`. + +2022-02-04 Stefan Monnier <monnier@iro.umontreal.ca> + + python.el: Silence left over warning in last commit + + * lisp/progmodes/python.el + (python-shell-calculate-process-environment): Declare + tramp-remote-process-environment before using it. + +2022-02-04 Stefan Monnier <monnier@iro.umontreal.ca> + + python.el: Try and better split the Tramp code + + Massage the Python-Tramp code so that the Tramp part and the Python + part are a bit less intertwined. It's still not quite right, but it's + a bit closer to the point where the Tramp part can be moved to `tramp.el`. + + * lisp/progmodes/python.el: Don't require `tramp-sh`. + Do require `subr-x` OTOH. Remove redundant `:group`s. + (python-shell--calculate-process-environment): New function, that only + return the entries to be added. + (python-shell-calculate-process-environment): Rewrite and declare obsolete. + (python-shell-tramp-refresh-remote-path) + (python-shell-tramp-refresh-process-environment): Silence + compiler warnings. + (python-shell-with-environment): Move the bulk of its code to + a new function `python-shell--with-environment` for easier debugging + and to avoid code duplication. + (python-shell--with-environment): New function. Split the Tramp case + into its own function. + (python-shell--tramp-with-environment): New function. + (python-eldoc-function-timeout-permanent): Fix doc's first line. + + * test/lisp/progmodes/python-tests.el: Adjust accordingly. + (python-shell-calculate-process-environment-1) + (python-shell-calculate-process-environment-2) + (python-shell-calculate-process-environment-3) + (python-shell-calculate-process-environment-4) + (python-shell-calculate-process-environment-5) + (python-shell-calculate-process-environment-6) + (python-shell-calculate-process-environment-7) + (python-shell-calculate-process-environment-8): + Use `python-shell--calculate-process-environment`. + (python--tests-process-env-canonical, python--tests-process-env-eql): + New functions. + (python-shell-with-environment-2, python-shell-with-environment-3): + Use them. + +2022-02-04 Michael Albinus <michael.albinus@gmx.de> + + Improve Tramp tests backward compatibility + + * test/lisp/net/tramp-tests.el (tramp-test39-detect-external-change): + Improve backward compatibility. + +2022-02-04 Andrea Corallo <akrl@sdf.org> + + * Have `null' and `not' explicit in LIMPLE so we inline them + + * lisp/emacs-lisp/comp.el (comp-limplify-lap-inst): Generate explicit + `eq' call in LIMPLE for LAP opcode 'not'. + +2022-02-04 Eli Zaretskii <eliz@gnu.org> + + Fix infloop in redisplay_window due to fix of bug#14582 + + * src/xdisp.c (window_start_acceptable_p): New function. + (redisplay_window): Call 'window_start_acceptable_p' to determine + whether a given window-start point is acceptable, including when + the window's force_start flag is set -- this fixes infloop in + redisplay_window in that case. + +2022-02-04 Po Lu <luangruo@yahoo.com> + + Remove misleading "in current buffer" message from auto-raise-mode + + * lisp/frame.el (auto-raise-mode): Declare as global to prevent + a misleading message from being displayed. It's actually + frame-local, but declaring it global doesn't hurt since + `frame-parameter' is a gv. + +2022-02-04 Stefan Kangas <stefan@marxist.se> + + Silence byte-compiler in two tests + + * test/lisp/electric-tests.el (electric-pair-define-test-form): + * test/src/buffer-tests.el (buffer-tests--make-test-name): Silence + byte-compiler by defining defuns also at run time. + +2022-02-04 Po Lu <luangruo@yahoo.com> + + Implement auto-raise on Haiku + + * src/haikuterm.c (haiku_read_socket): Implement auto-raising + of frames that have that parameter set. + +2022-02-04 Michael Albinus <michael.albinus@gmx.de> + + * lisp/net/tramp-gvfs.el (tramp-gvfs-send-command): Fix problem with locale. + +2022-02-04 Po Lu <luangruo@yahoo.com> + + Fix bit rot in the color allocation code + + * src/xterm.c (x_alloc_nearest_color_1): Reintroduce an older + version of the code that would try to allocate a "compromise + delta". + +2022-02-04 Po Lu <luangruo@yahoo.com> + + * src/xwidget.c (xwidget_button): Always let button events through. + + Filtering out emulated events is done in handle_one_xevent, so + all this accomplishes is to filter out legitimate button events. + +2022-02-04 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 0591aa6cd3 Revert an erroneous change in tramp-cache.el + +2022-02-04 Po Lu <luangruo@yahoo.com> + + Fix toggling `x-gtk-use-native-input'. + + * lisp/term/x-win.el (x-internal-focus-input-context): + (x-gtk-use-native-input-watcher): Update for changes to + `x-internal-focus-input-context'. + + * src/xfns.c (Fx_internal_focus_input_context): New parameter + `focus'. + +2022-02-03 Po Lu <luangruo@yahoo.com> + + Make Emacs build with some other XLib implementations + + * configure.ac (HAVE_XKB): Check for functions that aren't + always implemented by various XLib implementations. + + * src/xfns.c (select_visual): Handle NULL values of vinfo. + (XkbRefreshKeyboardMapping): + (XkbFreeNames): + (XDisplayCells): + (XDestroySubwindows): Define replacement functions where they + aren't available. + + * src/xterm.c (x_find_modifier_meanings): Handle NULL values of + various fields. + +2022-02-03 Po Lu <luangruo@yahoo.com> + + * src/xfns.c (Fx_internal_focus_input_context): Fix typo. + +2022-02-03 Po Lu <luangruo@yahoo.com> + + Make `x-gtk-use-native-input' take effect immediately + + * lisp/term/x-win.el (x-internal-focus-input-context): New + declaration. + (x-gtk-use-native-input-watcher): New variable watcher. + * src/xfns.c (Fx_internal_focus_input_context): New function. + (syms_of_xfns): Define new subr. + +2022-02-03 Po Lu <luangruo@yahoo.com> + + Try to fix input method flicker on GTK builds + + * src/xterm.c (x_focus_changed): Only focus GTK context if + native input is on. (bug#53698) + +2022-02-03 Andrew G Cohen <cohen@andy.bu.edu> + + Improve compression of article lists in gnus/nnselect + + * lisp/gnus/nnselect.el (nnselect-compress-artlist): Allow compressed list. + nnselect-uncompress-artlist): Properly loop over rsv values. + +2022-02-03 Po Lu <luangruo@yahoo.com> + + Improve image depth handling + + Emacs defaults to a 32-bit TrueColor visual, but if that happens + on a display which defaults to 16-bit TrueColor, yet happens to + have 32-bit color, and doesn't have the X Render Extension, an + error will occur in x_composite_image as libXpm will load + pixmaps of depth 16 instead of depth 32. + + * src/image.c (x_create_x_image_and_pixmap): Explicitly specify + display depth. + (x_create_xrender_picture): + (xpm_load): + (gs_load): Use dpyinfo->n_planes instead of + DefaultDepthOfScreen. + +2022-02-03 Lars Ingebrigtsen <larsi@gnus.org> + + Improve the bookmark-default-handler doc string + + * lisp/bookmark.el (bookmark-default-handler): Document the + `buffer' property (bug#20845). + +2022-02-03 Lars Ingebrigtsen <larsi@gnus.org> + + Remove tarball instructions from gnus-faq.texi + +2022-02-03 Lars Ingebrigtsen <larsi@gnus.org> + + Make sort-numeric-fields resilient towards blank lines + + * lisp/sort.el (sort-numeric-fields): Don't signal an error on + blank lines (bug#31800). + +2022-02-03 Jim Porter <jporterbugs@gmail.com> + + Use 'require' to load eshell-tests-helpers + + * test/lisp/eshell/eshell-tests.el + * test/lisp/eshell/em-extpipe-tests.el: Load eshell-tests-helpers with + 'require'. + + * test/lisp/eshell/eshell-tests-helpers.el (eshell-history-file-name): + Define this here so individual test files don't have to. + +2022-02-03 Jim Porter <jporterbugs@gmail.com> + + When executing an Eshell pipeline, send input to the first process + + Previously, input was sent to the last process in the pipeline, + resulting in unexpected behavior when running commands like + 'tr a-z A-Z | rev'. + + * lisp/eshell/esh-util.el (eshell-process-pair-p) + (eshell-make-process-pair): New functions. + + * lisp/eshell/esh-cmd.el (eshell-last-async-proc): Rename to... + (eshell-last-async-procs): ... this, and store a pair of processes. + (eshell-interactive-process): Replace with... + (eshell-interactive-process-p, eshell-head-process) + (eshell-tail-process): ... these. + (eshell-cmd-initialize): Set 'eshell-last-async-procs'. + (eshell-do-pipelines): Set 'headproc'. + (eshell-execute-pipeline): Return 'headproc' and 'tailproc'. + (eshell-resume-eval): Use 'eshell-last-async-procs'. + (eshell-do-eval): Make sure we work with a pair of processes. + + * lisp/eshell/esh-proc.el (eshell-send-eof-to-process): Move from + here... + * lisp/eshell/esh-mode.el (eshell-send-eof-to-process): ... to here, + and only send EOF to the head process. + + * lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments) + * lisp/eshell/esh-mode.el (eshell-intercept-commands) + (eshell-watch-for-password-prompt): + Use 'eshell-interactive-process-p'. + + * lisp/eshell/em-rebind.el (eshell-delchar-or-maybe-eof) + * lisp/eshell/em-term.el (eshell-term-send-raw-string) + * lisp/eshell/esh-mode.el (eshell-self-insert-command) + (eshell-send-input, eshell-send-invisible): + Use 'eshell-head-process'. + + * lisp/eshell/esh-cmd.el (eshell-as-subcommand): + Use 'eshell-tail-process'. + + * lisp/eshell/eshell.el (eshell-command): + * test/lisp/eshell/eshell-tests-helpers.el + (eshell-wait-for-subprocess): + Use 'eshell-interactive-process-p' and 'eshell-tail-process'. + + * test/lisp/eshell/eshell-tests.el (eshell-test/pipe-headproc-stdin): + New test. + +2022-02-03 Jim Porter <jporterbugs@gmail.com> + + Ensure that tailproc is set for the last process in an Eshell pipeline + + In particular, this used to fail for pipelines where the last process + in the pipeline came from the first element of the pipeline. This + could happen when a process was piped to an ordinary Lisp function, + like in '*echo hi | echo bye'. + + * lisp/eshell/esh-cmd.el (eshell-do-pipelines): Set the tailproc even + for the first process in the pipeline. + + * test/lisp/eshell/eshell-tests.el (eshell-test/pipe-tailproc): New + test. + +2022-02-03 Eli Zaretskii <eliz@gnu.org> + + Allow ensuring that a window's starting point is never invisible + + * src/xdisp.c (syms_of_xdisp) <make-window-start-visible>: New + buffer-local variable. + (redisplay_window): If 'make-window-start-visible' is non-nil, + don't accept window-start position that is in invisible text or is + covered by a "replacing" 'display' property. (Bug#14582) + +2022-02-03 Thomas Fitzsimmons <fitzsim@fitzsim.org> + + soap-client: Add minimum supported Emacs version + + * lisp/net/soap-client.el: Add Emacs 24.1 to Package-Requires. + Bump version to 3.2.1. + +2022-02-03 Michael Albinus <michael.albinus@gmx.de> + + Implement file modification check in Tramp + + * lisp/net/tramp.el (tramp-handle-lock-file): Check, whether FILE + is modified. + + * test/lisp/net/tramp-tests.el (tramp-test39-detect-external-change): + New test. + +2022-02-03 Mattias Engdegård <mattiase@acm.org> + + Don't use `string-replace` in soap-client (bug#53744) + + * lisp/net/soap-client.el (soap-decode-xs-complex-type): + Cease using `string-replace` since it requires Emacs 28. + +2022-02-03 Mattias Engdegård <mattiase@acm.org> + + Don't use `string-search` in soap-client (bug#53744) + + * lisp/net/soap-client.el (soap-decode-xs-complex-type): + Since soap-client is a core ELPA package and may be used with + Emacs versions older than 28, it cannot use `string-search`; + revert to `string-match`. + +2022-02-03 Eli Zaretskii <eliz@gnu.org> + + Fix "Buffers->Frames" submenu in daemon sessions + + * lisp/menu-bar.el (menu-bar-update-buffers): Detect the initial + frame by its special terminal's name. (Bug#53740) + + * src/terminal.c (init_initial_terminal): Add comment about using + the initial-terminal's name in menu-bar.el. + +2022-02-03 Po Lu <luangruo@yahoo.com> + + * src/haikufont.c (haikufont_draw): Allocate string buffer on stack. + +2022-02-03 Po Lu <luangruo@yahoo.com> + + Stop creating cairo contexts in haiku_begin_cr_clip + + * src/haikufont.c (haikufont_draw): + * src/ftcrfont.c (ftcrfont_draw): Stop holding the draw lock. + * src/haiku_support.cc (class EmacsView): New field + `cairo_context'. + (DetachCairoSurface): Destroy cairo_context. + (AttachCairoSurface): Create cairo_context from the surface. + (EmacsView_cairo_surface): Delete function. + (EmacsView_cairo_context): New function. + * src/haiku_support.h: Update prototypes. + * src/haikuterm.c (haiku_begin_cr_clip): + (haiku_end_cr_clip): Retrieve the existing cairo context instead + of creating a new one. + * src/haikuterm.h (FRAME_CR_CONTEXT): New macro. + +2022-02-03 Po Lu <luangruo@yahoo.com> + + Obtain draw lock outside haiku_start_clip + + * src/haikuterm.c (haiku_start_clip): + (haiku_end_clip): Stop obtaining the draw lock. + (haiku_draw_glyph_string): Set draw lock here instead. + +2022-02-03 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + ab2f275422 Improve documentation of 'emacs-version' + +2022-02-03 Po Lu <luangruo@yahoo.com> + + * src/haikuterm.c (haiku_draw_text_decoration): Don't lock for draws. + +2022-02-03 Po Lu <luangruo@yahoo.com> + + Simplify box display code on Haiku + + * src/haikuterm.c (haiku_calculate_relief_colors): Remove + `rgbout_c' parameter. + (haiku_draw_relief_rect): Push state if performing additional + clipping. + (haiku_draw_string_box): Stop passing clip rects to the relief + drawing functions. + (haiku_draw_glyph_string): Fix calls to haiku_draw_string_box + for new parameters. + +2022-02-02 Po Lu <luangruo@yahoo.com> + + Fix display of text decorations with defaulted foreground on Haiku + + * src/haikuterm.c (haiku_draw_text_decoration): Remove parameter + `dcol' and use face->foreground instead. All callers changed. + +2022-02-02 Po Lu <luangruo@yahoo.com> + + Fix background daemon on Haiku + + * src/emacs.c (DAEMON_MUST_EXEC): Define when using the Haiku + application kit. + +2022-02-02 Po Lu <luangruo@yahoo.com> + + Prevent the initial frame from showing up in the frame menu + + * lisp/menu-bar.el (menu-bar-update-buffers): Ignore initial + frame when generating frame list. (bug#53740) + +2022-02-02 Stefan Kangas <stefan@marxist.se> + + New theme leuven-dark (Bug#53032) + + * etc/themes/leuven-dark-theme.el: New file, written by + Fabrice Niessen and Thibault Polge. + +2022-02-02 Stefan Kangas <stefan@marxist.se> + + * test/lisp/cedet/semantic/bovine/gcc-tests.el (ert-x): Require. + +2022-02-02 Lars Ingebrigtsen <larsi@gnus.org> + + Adjust test to adjusted code + +2022-02-02 Alan Mackenzie <acm@muc.de> + + New file lisp/emacs-lisp/debug-early.el for backtraces in early bootstrap + + This is also used in batch mode in general. + + * lisp/debug-early.el (debug-early-backtrace, debug-early): New functions. + + * lisp/loadup.el (top level): Load debug-early.el as first file. + + * src/eval.c (signal_or_quit): Remove the condition in the batch mode section + of not being in dumping or bootstrap, since it is no longer needed. Test that + 'debug-early's symbol-function is bound. Ensure there is enough working space + in specpdl and eval_depth. + (syms_of_eval): New DEFSYM for Qdebug_early. Initialize Vdebugger to + Qdebug_early rather than Qnil. + +2022-02-02 Juri Linkov <juri@linkov.net> + + * lisp/replace.el (query-replace-read-from): Use default for empty input. + + Set 'default' from non-empty 'query-replace-read-from-default'. + Use the default in non-regexp prompt and return it for empty input. + https://lists.gnu.org/archive/html/emacs-devel/2022-02/msg00044.html + +2022-02-02 Lars Ingebrigtsen <larsi@gnus.org> + + Improve the describe-key doc string + + * lisp/help.el (describe-key): Say something about prefix keys + (bug#33320). + +2022-02-02 Lars Ingebrigtsen <larsi@gnus.org> + + Add some indexing for "compiler macro" + + * doc/lispref/functions.texi (Inline Functions): Add a link to + where compiler macros are defined. + (Declare Form): Add a concept index. + +2022-02-02 Lars Ingebrigtsen <larsi@gnus.org> + + Mark vt-control and vc100-led obsolete since Emacs 29.1 + + Move vt-control and vt100-led to obsolete (bug#37562) + +2022-02-02 Lars Ingebrigtsen <larsi@gnus.org> + + Fix decoding error in ietf-drums-parse-address + + * lisp/mail/ietf-drums.el (ietf-drums-parse-address): Don't try to + decode the name if there is no name (bug#53716). + +2022-02-02 Alan Mackenzie <acm@muc.de> + + Fix bug with M-x compile-defun in a defconst/defvar + + * lisp/emacs-lisp/bytecomp.el (compile-defun): Have symbols-with-pos-enabled + bound to non-nil when the eval takes place. + +2022-02-02 Po Lu <luangruo@yahoo.com> + + Improve correctness of generated xwidget events + + * src/xwidget.c (xw_maybe_synthesize_crossing): Add new + parameters for controlling the crossing mode. Also improve the + accuracy of generated crossing events when the mouse pointer + moves outside the toplevel from an inferior of it. All callers + changed. + (xw_notify_virtual_upwards_until): + (xw_notify_virtual_downwards_until): New parameters for crossing + mode. All callers changed. + +2022-02-02 Po Lu <luangruo@yahoo.com> + + Send button events before setting xwidget passive grab + + * src/xwidget.c (xwidget_button_1): Send button event before + any grab processing. + +2022-02-02 Po Lu <luangruo@yahoo.com> + + * src/nsselect.m (ns_get_foreign_selection): Fix GCC warning. + +2022-02-02 Po Lu <luangruo@yahoo.com> + + Make behavior of `mouse-autoselect-window' consistent with X on NS + + * src/nsterm.m ([EmacsView mouseMoved:]): Ignore if + `selected_window' is a minibuffer window. + +2022-02-02 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 9ab0b43a72 * etc/NEWS: Apply final fixes after proofreading. + + # Conflicts: + # etc/NEWS + +2022-02-01 Po Lu <luangruo@yahoo.com> + + Improve behavior of `mouse-autoselect-window' on Haiku + + * src/haikuterm.c (haiku_read_socket): Don't select windows if + the selected window is a minibuffer window or a popup is + activated. + +2022-02-01 Po Lu <luangruo@yahoo.com> + + Fix display of vertical window dividers on Haiku + + * src/haikuterm.c (haiku_draw_window_divider): Make drawing + consistent with X. + +2022-02-01 Po Lu <luangruo@yahoo.com> + + Don't use XRender to fill rectangles unless an alpha channel exists + + * src/xterm.c (x_clear_area): Don't use XRender unless + `alpha_bits' is set. + +2022-02-01 Juri Linkov <juri@linkov.net> + + * lisp/replace.el (query-replace-read-from-default): New variable. + + (query-replace-read-from-regexp-default): New variable. + (query-replace-read-from): Use new variables. + + * lisp/progmodes/project.el (project-query-replace-regexp): + Let-bind query-replace-read-from-regexp-default to find-tag-default-as-regexp. + + * lisp/progmodes/xref.el (xref-find-references-and-replace): + Let-bind query-replace-read-from-default to find-tag-default. + + https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg01909.html + +2022-02-01 Juri Linkov <juri@linkov.net> + + * lisp/tab-line.el: Support non-buffer tabs in some tab face functions. + + (tab-line-tab-face-special, tab-line-tab-face-modified): For non-buffer tabs + when 'tab-line-tabs-function' is e.g. 'tab-line-tabs-buffer-groups', + try to get the buffer from the property 'buffer'. + https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg01923.html + +2022-02-01 Andrea Corallo <akrl@sdf.org> + + * Improve 'maybe_defer_native_compilation' + + * src/comp.c (maybe_defer_native_compilation): Always store the + function name in Vcomp_deferred_pending_h if pending for deferred + compilation. + +2022-02-01 Andrea Corallo <akrl@sdf.org> + + * lisp/startup.el (startup--require-comp-safely): Fix typo in a92c6191b0 + +2022-02-01 Mattias Engdegård <mattiase@acm.org> + + Speed up calls to C primitives + + * src/eval.c (funcall_subr): Test most likely cases first (conforming + calls to finite-arity or n-adic SUBRs), and the error cases last, + instead of doing it the other way around. Simplify. + +2022-02-01 Po Lu <luangruo@yahoo.com> + + * src/pgtkterm.c (pgtk_draw_rectangle): Fix trivial typo. (bug#53677) + +2022-02-01 Andreas Schwab <schwab@linux-m68k.org> + + Remove extra \= from obsoletion message + + * lisp/emacs-lisp/eieio.el (defclass): Remove \= from obsoletion + message. + * lisp/emacs-lisp/eieio-core.el (eieio-defclass-autoload) + (eieio-defclass-internal): Likewise. + +2022-02-01 Andrea Corallo <akrl@sdf.org> + + Rename `comp--loadable' into `comp--compilable' + + * lisp/startup.el (comp--compilable): Rename from `comp--loadable'. + (startup--require-comp-safely): Update accordingly. + (startup--honor-delayed-native-compilations): Likewise. + * src/comp.c (syms_of_comp): Update. + (maybe_defer_native_compilation): Likewise. + +2022-02-01 Andrea Corallo <akrl@sdf.org> + + * Fix `startup--require-comp-safely' (bug#53675) + + * lisp/startup.el (startup--require-comp-safely): Remove unnecessary + check. + +2022-02-01 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 31ef751f94 Clarify documentation of a "face's font" + 29bdedf12f Bind Qdebugger to Qdebug in signal_or_quit. + +2022-02-01 Po Lu <luangruo@yahoo.com> + + Clean up Haiku display structures + + * src/haikufns.c (haiku_set_parent_frame): Set `parent_desc' + correctly. + + * src/haikuterm.h (C_FRAME, C_FONT, C_TERMINAL): + (struct haiku_display_info): + (struct haiku_output): Get rid of C_* preprocessor defines, + since these files are no longer included in any way by C++ files. + +2022-02-01 Stefan Kangas <stefan@marxist.se> + + Update publicsuffix.txt from upstream + + * etc/publicsuffix.txt: Update from + https://publicsuffix.org/list/public_suffix_list.dat + dated 2022-01-27 20:16:15 UTC. + +2022-01-31 Po Lu <luangruo@yahoo.com> + + Display images with a mask correctly when `alpha-background' is set + + * src/xterm.c (x_query_frame_background_color): Return value + adjusted for background alpha. + (x_draw_image_glyph_string): Respect `alpha-background' when + generating background pixmap. + +2022-01-31 Po Lu <luangruo@yahoo.com> + + Only apply last change to the clipboard + + * lisp/select.el (gui--selection-value-internal): Only return + nil if we own the clipboard. + +2022-01-31 Po Lu <luangruo@yahoo.com> + + Avoid extraneous selection querying if we own the selection + + * lisp/select.el (gui--selection-value-internal): Return nil if + `gui-backend-selection-owner-p' on window systems where it is + reliable. + +2022-01-31 Po Lu <luangruo@yahoo.com> + + Make fringe bitmaps respect alpha-background + + * src/xterm.c (x_draw_fringe_bitmap): Respect alpha-background + on non-overlay fringe bitmaps. + * src/xterm.h (struct x_display_info): New field `alpha_mask'. + +2022-01-31 Lars Ingebrigtsen <larsi@gnus.org> + + Fix nnregistry byte compilation warning + + * lisp/gnus/nnregistry.el (nnregistry-server-opened) + (nnregistry-open-server): Fix byte compilation warning. + +2022-01-31 Stefan Monnier <monnier@iro.umontreal.ca> + + (byte-compile-eval): Adjust to changes in `load-history` + + The `function-history` patch introduced a regression which caused + spurious compiler warnings. Fix it. + The new code also fixes a bug in the old code, thus causing some + new non-spurious warnings. Fix them as well. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-eval): Adjust to changes in + `load-history`. + + * lisp/gnus/gnus-group.el (nnrss-discover-feed) + (nnrss-save-server-data): Use `declare-function`. + + * lisp/cedet/semantic/wisent/comp.el (wisent-defcontext) + (wisent-with-context): + * lisp/emacs-lisp/comp.el (comp-op-case): Silence compiler warning. + +2022-01-31 Alan Mackenzie <acm@muc.de> + + Enlarge max-specpdl-size for generation of files in .../admin/grammars + + * admin/grammars/Makefile.in: Add a --eval clause to set max-specpdl-size to + 5000 (previously 2500) for these targets. + +2022-01-31 Eric Abrahamsen <eric@ericabrahamsen.net> + + Don't remove dummy.group from gnus-newsrc-alist on Gnus save + + bug#53352 + + * lisp/gnus/gnus-start.el (gnus-gnus-to-quick-newsrc-format): This + function was removing dummy.group from the global value of + `gnus-newsrc-alist' on save; we only wanted to remove it temporarily. + +2022-01-31 Eric Abrahamsen <eric@ericabrahamsen.net> + + Obsolete gnus-registry-enabled in favor of checking gnus-registry-db + + * lisp/gnus/gnus-registry.el (gnus-registry-enabled): Obsolete this + variable; recommend using `gnus-registry-db' as a boolean instead. + (gnus-registry-load, gnus-registry-register-message-ids, + gnus-registry-article-marks-to-chars, + gnus-registry-article-marks-to-names, gnus-registry-clear, + gnus-registry-install-p): In all these functions, test + `gnus-registry-db' instead of `gnus-registry-enabled'. We no longer + set or clear that variable. + +2022-01-31 Juri Linkov <juri@linkov.net> + + * lisp/vc/vc.el (vc-diff-internal): Assume revert-buffer is in current buffer. + + Support the case when reverting is in the buffer with a name other than + the default name "*vc-diff*". Then don't try to switch to the buffer + "*vc-diff*" with an assumption that revert-buffer is always performed + in the current buffer (bug#28852). + +2022-01-31 Alan Mackenzie <acm@muc.de> + + * lisp/progmodes/cc-mode.el (c-common-init): Bind case-fold-search to nil + + This fixes bug #53605. + +2022-01-31 Lars Ingebrigtsen <larsi@gnus.org> + + Adjust toggle-menu-bar-mode-from-frame doc string + + * lisp/menu-bar.el (toggle-menu-bar-mode-from-frame): Adjust the + doc string to reflect what it does (bug#43383). + +2022-01-31 Eli Zaretskii <eliz@gnu.org> + + Minor copyedits of 'function-history' documentation + + * doc/lispref/loading.texi (Where Defined): Fix indexing and + punctuation. + +2022-01-31 Lars Ingebrigtsen <larsi@gnus.org> + + Fix misplaced braces in loading.texi + + * doc/lispref/loading.texi (Where Defined): Fix misplaced braces. + +2022-01-31 Lars Ingebrigtsen <larsi@gnus.org> + + Make more ranges sort properly in describe-keymap + + * lisp/subr.el (keymap-canonicalize): Don't consider two-character + ranges as a range (bug#11325). + +2022-01-31 Stefan Monnier <monnier@iro.umontreal.ca> + + (function-history): New symbol property (bug#53632) + + Rework the code we have in Fdefalias that tries to keep track + of definitions so as to be able to undo them later. + + We used to store in `load-history` when an autoload is redefined as + a non-autoload and in the `autoload` symbol property we used to store + the autoload data that used to be used before it got overridden. + + Instead, store the history of the function definition of + a symbol in its `function-history` symbol property. + To make this list cheap in the default case, the latest value is not stored + in the list (since it's in the `symbol-function`) and neither is the first + file. So if there's only been a single definition (the most common case), + the list is empty and the property is just not present at all. + + The patch also gets rid of the `autoload` vs `defun` distinction in + `load-history` which seems unnecessary (a significant part of the + motivation for this patch was to get rid of the special handling of + autoloads in this part of the code). + + * src/data.c (add_to_function_history): New function. + (defalias): Use it. Don't add the `t` entries for autoloads and always + use `defun` regardless of the kind of definition. + Change `Vautoload_queue` to only hold the function + symbols since the rest is now available from `function-history`. + * src/eval.c (un_autoload): Adjust accordingly. + + * src/lread.c (load-history): Udate docstring. + + * lisp/loadhist.el (loadhist-unload-filename): New var. + (unload-feature): Bind it. + (loadhist-unload-element): Document its availability. + (loadhist--restore-autoload): Delete var. + (loadhist--unload-function): Delete function. + (loadhist-unload-element): Delete the `t` and `autoload` methods. + Rewrite the `defun` method using `function-history`. + + * lisp/help-fns.el: Require `seq`. + (help-fns--autoloaded-p): Rewrite. + (help-fns-function-description-header): Adjust call accordingly. + + * doc/lispref/loading.texi (Where Defined): Remove `autoload` and `t` + entries from `load-history` since we don't generate them any more. + Document the `function-history` which replaces the `autoload` property. + (Unloading): Adjust symbol property name accordingly. + + * test/lisp/loadhist-resources/loadhist--bar.el: + * test/lisp/loadhist-resources/loadhist--foo.el: New files. + * test/lisp/loadhist-tests.el (loadhist-tests-unload-feature-nested) + (loadhist-tests-unload-feature-notnested): New tests. + +2022-01-31 Lars Ingebrigtsen <larsi@gnus.org> + + Make Gnus address checking more resilient + + * lisp/gnus/gnus-art.el (article--check-suspicious-addresses): + Check that we have an email address before checking the validity + (bug#53651). + +2022-01-31 Lars Ingebrigtsen <larsi@gnus.org> + + Clarify that INSTALL isn't for Git checkouts (bug#53627) + +2022-01-31 Michael Albinus <michael.albinus@gmx.de> + + Extend filelock-tests.el for bug#53207 + + * test/src/filelock-tests.el (filelock-tests--fixture): Make it a + defmacro. Adapt callees. + (filelock-tests-unlock-spoiled, filelock-tests-kill-buffer-spoiled): + Simplify. + (filelock-tests-detect-external-change): New test + +2022-01-31 Po Lu <luangruo@yahoo.com> + + Fix artifacting on PGTK when bits are copied with an alpha channel + + * src/pgtkterm.c (x_draw_stretch_glyph_string): Draw background + respecting `alpha-background'. + (pgtk_copy_bits): Use CAIRO_OPERATOR_SOURCE to draw onto the + destination surface. + +2022-01-31 Eli Zaretskii <eliz@gnu.org> + + Improve 'latin1-display-ucs-per-lynx' + + * lisp/international/latin1-disp.el (latin1-display-ucs-per-lynx): + Don't judge display-ability of all the characters by testing just + one of them. Instead, install an ASCII equivalent of every + character that the terminal cannot display. + +2022-01-31 Po Lu <luangruo@yahoo.com> + + Implement `alpha-background' on PGTK + + * src/ftcrfont.c (ftcrfont_draw): Respect alpha-background where + appropriate. + * src/gtkutil.c (xg_create_frame_widgets): Swap some + conditionals around to get the right visual and signal handlers + on PGTK. + (xg_widget_style_updated): Likewise. + * src/pgtkfns.c (pgtk_set_alpha_background): New function. + (pgtk_frame_parm_handlers): Add it instead of the generic param + handler. + (Fx_create_frame): Fix typo. + * src/pgtkterm.c (pgtk_fill_rectangle): + (pgtk_set_cr_source_with_gc_foreground): + (pgtk_set_cr_source_with_gc_background): + (pgtk_set_cr_source_with_color): New argument + `respect_alpha_backend'. All callers changed. + * src/pgtkterm.h: Update function prototypes. + +2022-01-31 Po Lu <luangruo@yahoo.com> + + Fix accesses to GTK structures on tooltip frames + + * src/xfns.c (xic_set_preeditarea): Don't set the GTK context on + tooltip frames. + (x_set_alpha_background): Don't make tooltip frames paintable. + * src/xterm.c (x_xr_ensure_picture): Get rid of GDK visual code. + This is now done in a better way inside xg_create_frame_widgets. + (bug#53654) + +2022-01-31 Po Lu <luangruo@yahoo.com> + + * src/haikufns.c (Fx_display_visual_class): Return correct values. + +2022-01-31 Po Lu <luangruo@yahoo.com> + + Improve portability of GDK visual code + + * src/gtkutil.c (xg_create_frame_widgets): Look up the visual + instead of assuming it based on the depth. + +2022-01-31 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (x_term_init): Avoid freeze with 24-bit visuals. + +2022-01-31 Po Lu <luangruo@yahoo.com> + + Improve portability of alpha channel handling on TrueColor visuals + + * src/xfns.c (select_visual): Always ask for a TrueColor visual. + * src/xfont.c (xfont_draw): + * src/xftfont.c (xftfont_draw): Test `alpha_bits' instead of + n_planes. + * src/xterm.c (x_fill_rectangle, x_clear_rectangle): Likewise. + (x_query_colors, x_alloc_nearest_color): Remove code that + hard-coded alpha mask. + (x_term_init): Calculate alpha bits and offset and populate + field appropriately. + * src/xterm.h (struct x_display_info): New fields `alpha_bits' + and `alpha_offset'. + (x_make_truecolor_pixel): Stop hardcoding the value of the alpha + mask. + +2022-01-31 Stefan Kangas <stefan@marxist.se> + + Factor out function to check for clang in tests + + This also stops a flymake test from failing on my machine. + + * lisp/emacs-lisp/ert-x.el (ert-gcc-is-clang-p): New function + factored out from ... + * test/lisp/progmodes/flymake-tests.el (flymake-tests--gcc-is-clang): + * test/lisp/cedet/semantic/bovine/gcc-tests.el + (semantic-gcc-test-output-parser-this-machine): ... here. + + * test/lisp/progmodes/flymake-tests.el (different-diagnostic-types) + (included-c-header-files): + * test/lisp/cedet/semantic/bovine/gcc-tests.el + (semantic-gcc-test-output-parser-this-machine): Use above new function. + +2022-01-31 Stefan Kangas <stefan@marxist.se> + + * lisp/image.el (image-map): Use defvar-keymap. + +2022-01-31 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 6f282b31ad Update to Org 9.5.2-13-gdd6486 + 6636231b2c ; * lisp/international/latin1-disp.el: Update commentary. + f22e9ba9ac Fix regression in Occur Edit mode + +2022-01-31 Po Lu <luangruo@yahoo.com> + + Fix motion not being reported on GTK when mouse moves over toolbar + + * src/gtkutil.c (xg_event_is_for_scrollbar): Make code + consistent between XI2 and Core Input. + +2022-01-31 Po Lu <luangruo@yahoo.com> + + Make cursor alpha consistent with a transparent background + + * src/xfont.c (xfont_draw): + * src/xftfont.c (xftfont_shape): + * src/xterm.c (x_clear_glyph_string_rect): Don't respect + background alpha when drawing the cursor. + +2022-01-30 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (x_xrender_color_from_gc_foreground): Fix omission error. + +2022-01-30 Po Lu <luangruo@yahoo.com> + + Fix the X toolkit build + + * src/xterm.c (x_after_update_window_line): Update calls to + `x_fill_rectangle'. + +2022-01-30 Po Lu <luangruo@yahoo.com> + + Fix tooltip frame creation with 32-bit visuals + + * src/xfns.c (x_create_tip_frame): Define CWColormap and + CWBorderPixel to use a 32-bit visual if available. + +2022-01-30 Po Lu <luangruo@yahoo.com> + + * etc/NEWS: Announce the 'alpha-background' frame parameter. + +2022-01-30 Po Lu <luangruo@yahoo.com> + + Fix the no toolkit build. + + * src/xfns.c (x_window): Use n_planes instead of CopyFromParent + for depth. + +2022-01-30 Lars Ingebrigtsen <larsi@gnus.org> + + Fix with-suppressed-warnings edebug spec + + * lisp/emacs-lisp/byte-run.el (with-suppressed-warnings): Fix + edebug spec. + +2022-01-30 Po Lu <luangruo@yahoo.com> + + Fix builds without GTK + + * src/xfns.c (x_set_alpha_background): Don't call + gtk_widget_set_app_paintable without GTK. + +2022-01-30 Po Lu <luangruo@yahoo.com> + + Implement `alpha-background' on non-Cairo builds + + * src/frame.c (gui_set_alpha_background): Recompute basic faces + so xft face ext info gets reset. + * src/gtkutil.c (xg_create_frame_widgets): Attach to style + updated signal. + (xg_update_frame_menubar): Set menu bar visual correctly. + (xg_widget_style_updated): New function. + + * src/xfns.c (x_set_alpha_background): New function. + (x_frame_parm_handlers): Use x_set_alpha_background instead. + + * src/xfont.c (xfont_draw): + * src/xftfont.c (xftfont_draw): Handle `alpha-background' + parameter. + + * src/xterm.c (x_xr_ensure_picture): Export function. + (x_update_opaque_region): New function. + (x_fill_rectangle): New parameter `respect_alpha_background'. + All callers changed. + (handle_one_xevent): Set opaque region on ConfigureNotify. + (x_drop_xrender_surfaces): Set opaque region. + (x_xrender_color_from_gc_foreground): + (x_xrender_color_from_gc_background): Premultiply alpha with + components if asked for. + * src/xterm.h (struct x_display_info): New atom + `Xatom_net_wm_opaque_region'. + +2022-01-30 Juri Linkov <juri@linkov.net> + + * lisp/frame.el (undelete-frame--save-deleted-frame): Handle initial frame. + + The function undelete-frame--save-deleted-frame is renamed + from undelete-frame--handle-delete-frame (bug#51883). + +2022-01-30 Juri Linkov <juri@linkov.net> + + * lisp/frame.el: Don't require 'frameset.el' (bug#51883). + + (clone-frame): Use frame-internal-parameters. + (undelete-frame--handle-delete-frame): Instead of using frameset-save, + save frame-parameters except frame-internal-parameters and 'display' + on non-graphic display. Also save window-state from window-state-get. + (undelete-frame): Instead of using frameset-restore, + set default-frame-alist for make-frame (like in clone-frame), + and restore window-state with window-state-put. + + * lisp/frameset.el (frameset-session-filter-alist): Append + parameters from frame-internal-parameters with the filter :never. + Remove :name that is now in frame-internal-parameters. + (frameset-persistent-filter-alist): Remove outer-window-id, + parent-id, window-id that are now in frame-internal-parameters, + included here via frameset-session-filter-alist. + + * src/frame.c (frame-internal-parameters): New variable. + +2022-01-30 Alan Mackenzie <acm@muc.de> + + Enlarge max-specpdl-size for generation of leim-list.el in bootstrap + + * leim/Makefile.in (${leimdir}/leim-list.el): Add a --eval clause to set + max-specpdl-size to 5000 (previously 2500) for this target. + +2022-01-30 Po Lu <luangruo@yahoo.com> + + Handle correctly errors during frame creation on Haiku + + * src/haikufns.c (haiku_create_frame): Only block input where + required. + + * src/haiku_support.cc (BCursor_delete): Accept NULL values of + `cursor'. + +2022-01-30 Po Lu <luangruo@yahoo.com> + + Use XRender to composite fringe bitmaps + + This will allow us to apply transforms such as scaling in the + future. + + * src/xterm.c (x_draw_fringe_bitmap): Composite fringe bitmaps + with XRender if available. + +2022-01-30 Po Lu <luangruo@yahoo.com> + + Fix some problems with inconsistent visuals on GDK + + * src/xterm.c (x_xr_ensure_picture): Use the visual GDK used + instead of our own. + +2022-01-30 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + e81e375539 ; Yet another minor fix of Malayalam composition rules. + 94f38cbec4 Fix last change of Malayalam composition rules + ed3bbeb80d Fix rendering of Malayalam script + 5ef3a52342 Improve documentation of Occur mode + +2022-01-30 Po Lu <luangruo@yahoo.com> + + Use consistent font when displaying menu equivalent keys on Haiku + + * src/haiku_support.cc (DrawContent): Set plain font when + drawing key text. + +2022-01-29 Po Lu <luangruo@yahoo.com> + + Add support for ARGB visuals on non-Xt builds + + * src/gtkutil.c (xg_create_frame_widgets): Enable RGBA visual + on non-PGTK builds. + * src/xfns.c (select_visual): Select 32-bit visuals on non-Xt + builds. + * src/xterm.c (x_draw_fringe_bitmap): + (x_draw_image_glyph_string): Stop using DefaultDepthOfScreen. + (x_query_colors): + * src/xterm.h (x_make_truecolor_pixel): Make colors opaque on + 32-bit visuals. + +2022-01-29 Po Lu <luangruo@yahoo.com> + + Some adjustments to last change + + * src/gtkutil.c (xg_set_undecorated): Only set ARGB visual on + Cairo builds without PGTK. + * src/xfns.c (select_visual): Likewise. + +2022-01-29 Håkon Flatval <hkon20@hotmail.com> + + Add background transparency support for GTK+Cairo + +2022-01-29 Stefan Monnier <monnier@iro.umontreal.ca> + + package.el: Fix bug#53529 + + * lisp/emacs-lisp/package.el (package-autoload-ensure-default-file): + Enforce Unix EOLs. + +2022-01-29 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el (tab-bar-menu-bar-button): New variable (bug#51648). + + (tab-bar-format-menu-bar): Use it. + +2022-01-29 Juri Linkov <juri@linkov.net> + + * lisp/isearch.el: Put 'isearch-scroll' property on two new symbols. + + Put 'isearch-scroll' property on new commands 'recenter-other-window' + and 'context-menu-open'. + +2022-01-29 Lars Ingebrigtsen <larsi@gnus.org> + + Modernize the security section in the efaq a bit + + * doc/misc/efaq.texi (Security risks with Emacs): Remove the X + bit, and add a bit about browsing the web (bug#24489). + +2022-01-29 Lars Ingebrigtsen <larsi@gnus.org> + + Allow redirecting `message' output to a different buffer + + * doc/lispref/display.texi (Logging Messages): Document it. + * src/xdisp.c (message_dolog): Add sanity checking. + (syms_of_xdisp): Make Vmessages_buffer_name into a defvar + (bug#27170). + +2022-01-29 Eli Zaretskii <eliz@gnu.org> + + Don't require mouse for prompting via dialog boxes + + * lisp/subr.el (use-dialog-box-p): Don't require mouse support, + and allow dialog boxes when invoked via the TTY menus without a + mouse. + (from--tty-menu-p): New internal variable. + + * lisp/menu-bar.el (popup-menu): Bind 'from--tty-menu-p' when + invoking a command from the menu. + +2022-01-29 Charles A. Roelli <charles@aurox.ch> + + Make revert-buffer ('g') keep point in VC diff buffers + + * lisp/vc/vc.el (vc-diff-restore-buffer): New function. + (vc-diff-finish): Update its calling convention to include an + optional 'oldbuf' parameter, and handle it. + (vc-diff-internal): Pass a clone of the incumbent vc-diff + buffer to 'vc-diff-finish' (bug#28852). + +2022-01-29 Lars Ingebrigtsen <larsi@gnus.org> + + Clarify Fmatch_data doc string + + * src/search.c (Fmatch_data): Note quirk about non-matching + optional groups in the doc string (bug#29343). + +2022-01-29 Jae-hyeon Park <jhpark@kias.re.kr> (tiny change) + + Make gnus-icalendar-with-decoded-handle more DWIM + + * lisp/gnus/gnus-icalendar.el + (gnus-icalendar-with-decoded-handle): Assume that calendars with + no charset is utf-8. + +2022-01-29 Po Lu <luangruo@yahoo.com> + + Fix error after merge + + * src/filelock.c (lock_file): Fix test against I_OWN_IT. + +2022-01-29 Po Lu <luangruo@yahoo.com> + + Merge from origin/emacs-28 + + 611736f3bc Remove debug logging + ddba3c3dba Fix error in filelock.c + + # Conflicts: + # src/filelock.c + +2022-01-29 Po Lu <luangruo@yahoo.com> + + Fix error at startup with recent change + + * lisp/startup.el (normal-top-level): Don't access + `native-comp-eln-load-path' if not (featurep 'native-compile). + +2022-01-29 Po Lu <luangruo@yahoo.com> + + Fix unrelated help text tooltips if a popup is shown during the delay + + * doc/lispref/frames.texi (Pop-Up Menus): Document new hook. + * etc/NEWS: Announce `x-pre-popup-menu-hook'. + * lisp/tooltip.el (tooltip-mode): Make sure `tooltip-hide' is + run before any popup menu is displayed to prevent unrelated help + text from obscuring the popup menu if it pops up during the + tooltip delay. + * src/menu.c (x_popup_menu_1): Run said hook right before the + popup menu is displayed. + (syms_of_menu): New hook `x-pre-popup-menu-hook'. + +2022-01-29 Eli Zaretskii <eliz@gnu.org> + + Allow <Delete> key to delete entire grapheme clusters + + * lisp/simple.el (delete-forward-char): If deleting forward, + delete complete grapheme clusters as single units. + + * etc/NEWS: Announce the change. + +2022-01-29 Eli Zaretskii <eliz@gnu.org> + + Fix native-compilation at startup + + * lisp/startup.el (normal-top-level): Set up the initial value of + 'native-comp-eln-load-path' early into startup, then amend it + after calling 'command-line'. (Bug#53497) + +2022-01-29 Po Lu <luangruo@yahoo.com> + + Write a dummy event on each popup menu event + + * src/haiku_io.c (haiku_len): Add new event. + * src/haiku_support.cc (be_popup_menu_thread_entry): + (Highlight): Write a dummy event to the event port. + * src/haiku_support.h (enum haiku_event_type): New `DUMMY_EVENT' + type. + (struct haiku_dummy_event): New structure. + * src/haikuterm.c (haiku_read_socket): Handle dummy events. + +2022-01-29 Eli Zaretskii <eliz@gnu.org> + + Fix compiler warning due to a recent change + + * src/data.c (Ffset): Avoid compiler warning about 'function'. + +2022-01-29 Po Lu <luangruo@yahoo.com> + + Fix a default value of the `:underline' face attribute + + * lisp/cus-face.el (custom-face-attributes): Add `:position' t + default value of "On" for underlines. + +2022-01-29 Po Lu <luangruo@yahoo.com> + + Improve menu drag tracking on Haiku + + * src/haikuterm.c (haiku_read_socket): Ignore all button events + when popup_activated_p. + +2022-01-29 Po Lu <luangruo@yahoo.com> + + Make menus on Haiku work better + + * src/haikuterm.c (haiku_read_socket): Don't send up events for + ungrabbed buttons. + +2022-01-29 Po Lu <luangruo@yahoo.com> + + Implement real menu help-echo text on Haiku + + * lisp/tooltip.el (tooltip-show-help): Remove Haiku-specific + conditional since that's now taken care of by C code. + + * src/haiku_io.c (haiku_read_size): + (haiku_read_with_timeout): + (haiku_write_without_signal): Add parameter `popup_p'. All + callers changed. + (port_popup_menu_to_emacs): New variable. + + * src/haiku_support.cc (struct be_popup_menu_data): New + structure. + (be_popup_menu_thread_entry): New function. + (class EmacsMenuItem): New field `menu_ptr'. + (Highlight): Send help text to the popup port if this item + isn't for a menu bar. + (BMenu_add_item): Set menu_ptr appropriately. + (BMenu_run): Complete rewrite that allows to read help text from + the menu bar port. + + * src/haiku_support.h (struct haiku_menu_bar_help_event): New + fields for popup menus. + + * src/haikumenu.c (digest_menu_items): Only set help tooltip on + popup menus when system tooltips are enabled. + (haiku_menu_show_help): + (haiku_process_pending_signals_for_menu): New functions. + (haiku_menu_show): Pass new callbacks. + +2022-01-28 Stefan Monnier <monnier@iro.umontreal.ca> + + * src/data.c (Ffset, defalias): Complete last change + + Somehow part of the autoload history handling was left behind in `Ffset` + when the rest was moved to `defalias`. Finish the job. + + * src/data.c (Ffset): Don't set the `autoload` property here... + (defalias): ... set it here instead. + +2022-01-28 Hugo Heagren <hugo@heagren.com> + + bind-keys-form: error for repeat sub-keywords without :repeat-map + + Error descriptively if :continue or :exit is specified without + :repeat-map. + +2022-01-28 Hugo Heagren <hugo@heagren.com> + + bind-key-form: allow :continue keyword inside repeat map + + Purely syntactic sugar, using :continue is the same as not using any + keyword inside :repeat-map at all. + + Amend end of function to pass repeat-map value onto next invocation in + recursive uses. This allows for the same repeat map to be used for + :exit and :continue. + +2022-01-28 Hugo Heagren <hugo@heagren.com> + + bind-key-form: allow :exit keyword inside repeat map + + Keys bound inside the scope of :exit are bound inside the repeat map, + but do not have their repeat-map property set (so they run a function, + but 'exit' the map). + +2022-01-28 Hugo Heagren <hugo@heagren.com> + + bind-keys-form: new keyword :repeat-map, for defining repeat maps + + use-package-normalize/:bind: allow keyword :repeat-map. + + bind-keys-form: Add keyword :repeat-map. Specifying a symbol as the + repeat-map defines a keymap with that name (and with the docstring + `repeat-doc', if specified). Symbols for functions bound to keys under + the scope of :repeat-map have their 'repeat-map property set to this + map. Update docstring (and that of `bind-keys') to reflect changes. + + Rename `doc' to `prefix-doc' for clarity and consistency with + 'repeat-doc'. + +2022-01-28 Stefan Monnier <monnier@iro.umontreal.ca> + + Reduce code duplication in parts of (auto)load&defalias + + * src/data.c (defalias): New function, extracted from `Fdefalias`. + (Fdefalias): Use it. + (Ffset): Don't handle `Vautoload_queue` here, handle it in + `defalias` instead. + * src/comp.c (comp--register-subr): Use `defalias` instead of + duplicating its code. + + * src/eval.c (load_with_autoload_queue): New function, extracted from + `Fautoload_do_load`. + (Fautoload_do_load): Use it. + (un_autoload): Mark it as static. + * src/fns.c (Frequire): Use it as well. + + * src/lisp.h (defalias, load_with_autoload_queue): New declarations. + (un_autoload): Remove declaration. + +2022-01-28 Sebastian Urban <mrsebastianurban@gmail.com> + + Make where-is correctly identify aliases + + * lisp/help.el (where-is): Make aliases correctly say which + function is an alias for what (bug#37325). + +2022-01-28 Sebastian Urban <mrsebastianurban@gmail.com> (tiny change) + + Fix manual points about tex-latex-block/latex-insert-block + + * doc/emacs/text.texi (LaTeX Editing): + (LaTeX Editing): Update documentation of + tex-latex-block/latex-insert-block to what they really point to + (bug#37325). + +2022-01-28 Lars Ingebrigtsen <larsi@gnus.org> + + Improve the read-file-name doc string slightly + + * lisp/minibuffer.el (read-file-name): Note that the semantics of + INITIAL are odd (bug#37883). + +2022-01-28 Michael Albinus <michael.albinus@gmx.de> + + Clarify where the shell-command output goes + + * lisp/simple.el (shell-command): + * doc/emacs/misc.texi (Single Shell): Clarify where the output + goes if the specified buffer isn't the current one (bug#40896). + +2022-01-28 Lars Ingebrigtsen <larsi@gnus.org> + + Allow using dired-hide-details-mode in wdired buffers + + * lisp/dired.el (dired-hide-details-mode): Also work in + wdired-mode buffers (bug#45127). + + * lisp/wdired.el (wdired-mode-map): Add a key binding. + +2022-01-28 Lars Ingebrigtsen <larsi@gnus.org> + + Move native-comp-eln-load-path setting earlier again + + * lisp/startup.el (normal-top-level): Move + `native-comp-eln-load-path' earlier because hooks called may need + the setting (bug#53596). + +2022-01-28 Lele Gaifax <lele@metapensiero.it> + + Fix copyright-fix-years, use a dash to separate years in a range + + Commit 7a46fa9c751f7c3147cd9b27fe84c1ce25419d3b, allowing en-dash as + years separator, changed the way the years range is composed taking the + separator from the `sep' variable instead of always using an hardwired + hyphen. Since the code explicitly avoid to touch (that is, extend) + existing ranges, that `sep' variable is almost always a space, or + whatever character precedes the last parsed year, thus generating a + range like "2020 2022" instead of "2020-2022". + + * lisp/emacs-lisp/copyright.el (copyright-fix-years): Always use an dash + to separate years in a range. + + * test/lisp/emacs-lisp/copyright-tests.el (with-copyright-fix-years-test): + (copyright-fix-years-tests--data): + (text-copyright-fix-years): New test cases (bug#53597). + +2022-01-28 Lars Ingebrigtsen <larsi@gnus.org> + + Fix merge error in doc-view-pdf/ps->png + + * lisp/doc-view.el (doc-view-pdf/ps->png): Fix merge error from + previous epub patch. + +2022-01-28 Po Lu <luangruo@yahoo.com> + + Prevent duplicate grab setting with xwidgets + + * src/xwidget.c (xwidget_show_view): Don't set passive grab if + already set. + +2022-01-28 Po Lu <luangruo@yahoo.com> + + Use the real cursor beneath the pointer on xwidgets + + * src/xwidget.c (define_cursors): Make manual cursor definition + code PGTK-only. + (xw_update_cursor_for_view): + (xw_last_crossing_cursor_cb): New functions. + (xw_maybe_synthesize_crossing): Attach and disconnect cursor + signal handler where appropriate. + (xwidget_init_view): Set the default cursor to the nontext + cursor. + (Fxwidget_delete_view): Disconnect last crossing signal if + appropriate. + * src/xwidget.h (struct xwidget_view): New field + `last_crossing_cursor_signal'. + +2022-01-28 Po Lu <luangruo@yahoo.com> + + Fix xwidget build on PGTK + + * src/xwidget.c (xw_forward_event_translate): Adjust calls to + `find_widget_at_pos' for recent changes. + +2022-01-28 Po Lu <luangruo@yahoo.com> + + Fix duplicate scroll events without XI2 + + * src/xwidget.c (xwidget_button): Only generate scroll events + when the button was released. + +2022-01-28 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 3dd47bde7a * lisp/frame.el (clone-frame): Filter out 'parent-id' (bug... + +2022-01-27 Po Lu <luangruo@yahoo.com> + + Clear xwidget passive grab whenever a drag begins + + * src/xwidget.c (xv_drag_begin_cb): New function. + (xwidget_view_from_window): Attach said function to grab widget + when a grab starts. + * src/xwidget.h (struct xwidget_view): New field + `passive_grab_drag_signal'. + +2022-01-27 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (handle_one_xevent): Remove obsolete workaround. + +2022-01-27 Po Lu <luangruo@yahoo.com> + + Fix inappropriate use of killed xwidgets + + * src/xwidget.c (x_draw_xwidget_webkit_view): Don't record + embedder or synthesize focus events if the widget is killed. + +2022-01-27 Po Lu <luangruo@yahoo.com> + + Implement xwidget passive grabs + + * src/xwidget.c (find_widget_at_pos): New parameters for + controlling whether to respect grabs. All callers changed. + (window_coords_from_toplevel): Make work when the widget is + the toplevel. + (find_widget): Fix coding style. + (xwidget_button_1): Set and clear passive grabs if appropriate. + (xw_maybe_synthesize_crossing): Allow current_window to be NULL + if the mode is XW_CROSSING_LEFT. + +2022-01-27 Lars Ingebrigtsen <larsi@gnus.org> + + Add new switch --init-directory + + * doc/emacs/cmdargs.texi (Initial Options): Mention it. + * lisp/startup.el (normal-top-level): Move the eln init to after + we've processed the command line arguments. + (command-line): Interpret the --init-directory switch. + + * src/emacs.c (standard_args): Add. + +2022-01-27 Glenn Morris <rgm@gnu.org> + + * lisp/doc-view.el (doc-view-epub-font-size): Fix type; add version. + + Flagged by test-custom-opts. + +2022-01-27 Andrea Corallo <akrl@sdf.org> + + Fix potential native compiler circular dependencies during load + + * lisp/startup.el (startup--require-comp-safetly): New function. + (startup--honor-delayed-native-compilations): Make use of + `startup--require-comp-safetly'. + * src/comp.c (CALL0I): New define. + (maybe_defer_native_compilation): Make use of + `startup--require-comp-safetly'. + +2022-01-27 Lars Ingebrigtsen <larsi@gnus.org> + + Fix up previous "Quit Emacs" from menu logic + + * lisp/files.el (files--buffers-needing-to-be-saved): Separated + out into its own function... + (save-some-buffers): ... from here. + (save-buffers-kill-emacs): Check that we have anything to save + before prompting the user. + +2022-01-27 Lars Ingebrigtsen <larsi@gnus.org> + + Make the save buffers prompt from Quit Emacs menu more understandable + + * lisp/files.el (save-buffers-kill-emacs): Use a much simpler (and + more understandable) prompt when exiting Emacs from the menu bar + (bug#4980). + + * lisp/subr.el (use-dialog-box-p): Separate out into its own + function for reuse... + (y-or-n-p): ... from here. + +2022-01-27 Eli Zaretskii <eliz@gnu.org> + + Improve detection of glyphless characters on TTY frames + + * src/term.c (produce_glyphs): If the terminal can report for + which characters it has glyphs, use that to determine whether + a given character should be displayed as glyphless. + +2022-01-27 Arni Magnusson <thisisarni@gmail.com> + + Add setx highlighting to bat-mode + + * lisp/progmodes/bat-mode.el (bat-font-lock-keywords): + (bat-font-lock-keywords): Highlight setx (bug#53568). + +2022-01-27 Lars Ingebrigtsen <larsi@gnus.org> + + Move some of the doc-view variables around to fix load errors + +2022-01-27 Daniel Nicolai <dalanicolai@gmail.com> + + Add support for EPUB, CBZ, FB2 and (O)XPS extension to doc view + + * doc/emacs/misc.texi (Document View): Add requirements for new + extensions (i.e. mutool). + + * lisp/doc-view.el (doc-view): Additionally update preliminary comment + (doc-view-custom-set-epub-font-size): redraw image after setting + (doc-view-unoconv-program): Put code all on one line + (doc-view-doc-type): Update docstring. + (doc-view-kill-proc): Fix comment indentation + (doc-view-mode-p): + Add check for new extensions and alternative check for PDF + (doc-view-pdf/ps->png): Associate new extension with png converter + (doc-view-convert-current-doc): Handle new extensions like PDF's + (doc-view-set-doc-type): Set correct doc-type for new extensions. + + * lisp/files.el (auto-mode-alist): + Associate new extension types with doc-view. + +2022-01-27 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak href/superscript fix in tex-mode + + * lisp/textmodes/tex-mode.el (tex-font-lock-keywords-1): Fix + superscripts in href in a better way. + +2022-01-27 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "Don't output spurious prefixes in read-char-exclusive" + + This reverts commit 701ec0bda2b15fc97af6ca68fb842fb1ec9aac35. + + This change broke display of `C-q-' when doing the `C-q' command, + so it has to be fixed a different way. + +2022-01-27 Po Lu <luangruo@yahoo.com> + + Improve xwidget window ancestry calculations + + * src/xwidget.c (xw_find_common_ancestor): + (xw_notify_virtual_upwards_until) + (xw_notify_virtual_downwards_until): New functions. + (xw_maybe_synthesize_crossing): Synthesize virtual events like + GTK does for non-linear changes. + +2022-01-27 Andreas Schwab <schwab@linux-m68k.org> + + * src/pdumper.c (dump_vectorlike): Handle PVEC_SYMBOL_WITH_POS. + +2022-01-27 Andrea Corallo <akrl@sdf.org> + + * Fix `startup--honor-delayed-native-compilations' for (bug#53497) + + * lisp/startup.el (startup--honor-delayed-native-compilations): Don't + forget to set `comp--loadable' when `comp--delayed-sources' is empty. + +2022-01-27 Andrea Corallo <akrl@sdf.org> + + * Have `benchmark-run-compiled' use the native compiler when available + + * lisp/emacs-lisp/benchmark.el (benchmark-run-compiled): Use native + compiler when available. + +2022-01-27 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + c9524819ea Partially revert a fill-region-as-paragraph regression + 6075ea0b79 Fix 'make_lispy_position' when there's an image at EOB + + # Conflicts: + # test/lisp/textmodes/fill-tests.el + +2022-01-27 Po Lu <luangruo@yahoo.com> + + * lisp/xwidget.el (xwidget-webkit-edit-mode-map): Pass C-backspace. + +2022-01-27 Po Lu <luangruo@yahoo.com> + + Implement crossing event generation between windows for xwidgets on X + + * src/xwidget.c (enum xw_crossing_mode): New enum. + (xwidget_motion_notify): + (xwidget_motion_or_crossing): Synthesize crossing events if the + pointer moved between different windows. + (window_coords_from_toplevel): + (xw_maybe_synthesize_crossing): New functions. + (xwidget_init_view): Initialize new field to NULL. + (Fdelete_xwidget_view): Clear last crossing window. + + * src/xwidget.h (struct xwidget_view): New field + `last_crossing_window'. + +2022-01-26 Stefan Kangas <stefan@marxist.se> + + Silence byte-compiler slightly in tests + + * test/src/comp-resources/comp-test-45603.el + (comp-test-45603--call-marked): + * test/src/comp-resources/comp-test-funcs.el + (comp-tests-discardn-f, comp-test-42360-f, comp-test-46824-1-f) + (comp-test-silly-frame2): Silence byte-compiler. + +2022-01-26 Stefan Kangas <stefan@marxist.se> + + Don't use obsolete second argument to byte-compile-file + + * test/src/comp-resources/comp-test-funcs.el + (comp-test-big-interactive): Don't use obsolete second argument to + byte-compile-file. + +2022-01-26 Stefan Kangas <stefan@marxist.se> + + Don't discourage auto-mode-alist entries in autoloads + + * lisp/files.el (auto-mode-alist, interpreter-mode-alist): Delete + comment discouraging entries in autoload directives. (Bug#8158) + +2022-01-26 Po Lu <luangruo@yahoo.com> + + Improve XI2 valuator reset logic + + * src/xterm.c (handle_one_xevent): Clear valuators on XI_Leave + instead of XI_Enter. + +2022-01-26 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (x_focus_frame): Set input focus on outer window. + +2022-01-26 Po Lu <luangruo@yahoo.com> + + Get rid of unnecessary draw locking in haikumenu.c + + * src/haikumenu.c (Fhaiku_menu_bar_open): Stop holding the draw + lock. + +2022-01-26 Po Lu <luangruo@yahoo.com> + + Apply fix for bug#52761 to GTK native input as well + + * src/xgselect.c (xg_select): Apply said fix on regular GTK + builds when native input is being used. + +2022-01-26 Glenn Morris <rgm@gnu.org> + + * Makefile.in (install-etc): Remove unnecessary chown. + + Not needed since this rule was changed to not use tar, 2012-05-11. + +2022-01-26 Lars Ingebrigtsen <larsi@gnus.org> + + Make smerge-refine-ignore-whitespace into defcustom + + * lisp/vc/smerge-mode.el (smerge-refine-ignore-whitespace): Make + into defcustom (bug#12585). + +2022-01-26 Mattias Engdegård <mattiase@acm.org> + + Add tests for concat, vconcat and append + + * test/src/fns-tests.el (fns-tests-concat) + (fns-concat, fns-vconcat, fns-append): New. + +2022-01-26 Mattias Engdegård <mattiase@acm.org> + + Minor `concat` tweaks + + * src/fns.c (concat): Do things in the right order for speed. + (concat_strings): Initialize variable. + +2022-01-26 Lars Ingebrigtsen <larsi@gnus.org> + + Fix copyright-find-copyright when searching from the end + + * lisp/emacs-lisp/copyright.el (copyright-find-copyright): Make + the double check also work when searching from the end (bug#7179). + +2022-01-26 Lars Ingebrigtsen <larsi@gnus.org> + + Fix copyright.el comment and add a test + + * lisp/emacs-lisp/copyright.el (copyright-find-copyright): Fix + comment (bug#7179). + +2022-01-26 Sean Whitton <spwhitton@spwhitton.name> + + Fix input of sharp-quoted symbols in Eshell with em-extpipe + + * lisp/eshell/em-extpipe.el (eshell-parse-external-pipeline): Fix + misinterpreting sharp-quoted symbols as the beginning of single-quoted + strings (Bug#53518). Add protection against a possible infinite loop. + * test/lisp/eshell/em-extpipe-tests.el (em-extpipe-test-17): New + test (bug#53518). + +2022-01-26 Michael Albinus <michael.albinus@gmx.de> + + Adapt tramp-tests + + * test/lisp/net/tramp-tests.el (tramp--test-special-characters): + Adapt test candidates. + +2022-01-26 Michael Albinus <michael.albinus@gmx.de> + + Fix insert-file-contents for tramp-crypt + + * lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist): + Use `tramp-handle-insert-file-contents'. + +2022-01-26 Po Lu <luangruo@yahoo.com> + + Add workaround for super modifier misconfiguration to non-XKB code + + * src/xterm.c (x_find_modifier_meanings): Don't let a modifier + be both Hyper and Super. + +2022-01-26 Andrea Corallo <akrl@sdf.org> + + Make use of NILP where possible + + * src/w32menu.c (menubar_selection_callback, w32_menu_show): Use NILP + where possible. + * src/w32fns.c (w32_set_mouse_color): Likewise. + * src/w16select.c (Fw16_selection_exists_p): Likewise. + * src/process.c (Fnetwork_lookup_address_info): Likewise. + * src/cygw32.c (Fcygwin_convert_file_name_to_windows) + (Fcygwin_convert_file_name_from_windows): Likewise. + +2022-01-26 Po Lu <luangruo@yahoo.com> + + Simplify Haiku scrolling code + + * src/haikuterm.c (haiku_scroll_run): Remove code that can never + be reached since Cairo frames are always double buffered. + +2022-01-26 Po Lu <luangruo@yahoo.com> + + Fix GTK menu bar height reporting when scaled + + * src/gtkutil.c (xg_update_frame_menubar): Multiply requisition + height by GDK scale. + +2022-01-26 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 7eca80b204 ; * src/composite.c (syms_of_composite) <auto-composition-... + +2022-01-26 Po Lu <luangruo@yahoo.com> + + Simplify Haiku underline code + + * src/haikuterm.c (haiku_draw_text_decoration): Remove code left + over from when mouse face had to be set manually. + +2022-01-25 Po Lu <luangruo@yahoo.com> + + Make `haiku-menu-bar-open' faster + + * src/haikumenu.c (Fhaiku_menu_bar_open): Get draw lock before + updating the menu bar. + * src/haikuterm.c (haiku_read_socket): Don't update menu bar if + b->no_lock. + +2022-01-25 Stefan Kangas <stefan@marxist.se> + + * src/image.c (parse_image_spec): Use NILP. + +2022-01-25 Lars Ingebrigtsen <larsi@gnus.org> + + Improve how change-log-mode fills all-file-name lines + + * lisp/vc/add-log.el (change-log-fill-file-list): New function to + improve how we fill all-file-name ChangeLog lines (bug#19341). + (change-log-indent): Use it. + +2022-01-25 Lars Ingebrigtsen <larsi@gnus.org> + + Fix up Gnus FAQ entry + + * doc/misc/gnus-faq.texi (FAQ 3-9): Remove mention of + nnimap-list-pattern, which was removed some years ago (bug#53522). + +2022-01-25 Andrea Corallo <akrl@sdf.org> + + * src/comp.c (emit_lisp_obj_rval): Make use of NILP. + + ;* src/fns.c (concat_strings): Add missing space. + +2022-01-25 Stefan Monnier <monnier@iro.umontreal.ca> + + * src/comp.c (emit_limple_insn): Fix another int/Lisp_Object mixup + +2022-01-25 Glenn Morris <rgm@gnu.org> + + Tag an mml-sec test + + * test/lisp/gnus/mml-sec-tests.el (mml-secure-en-decrypt-3): + Tag unstable on hydra.nixos.org due to repeated intermittent failures. + +2022-01-25 Andrea Corallo <akrl@sdf.org> + + * src/fns.c (concat_strings): Clean-up unused variable. + +2022-01-25 Andrea Corallo <akrl@sdf.org> + + * `batch-byte+native-compile' produce .eln younger than .elc (bug#52912) + + * lisp/emacs-lisp/comp.el (batch-native-compile): Add return + value. + (batch-byte+native-compile): Touch the produced .eln after the + corresponding .elc is produced. + +2022-01-25 Andrea Corallo <akrl@sdf.org> + + * lisp/emacs-lisp/comp.el (batch-byte+native-compile): Fix unwind form + +2022-01-25 Stefan Monnier <monnier@iro.umontreal.ca> + + * src/lisp.h (lisp_h_EQ, lisp_h_NILP): Fix length and indent + +2022-01-25 Mattias Engdegård <mattiase@acm.org> + + Faster concat, append, vconcat, copy-sequence, etc + + Split the C auxiliary function `concat` into separate functions for + string and list/vector as target types, respectively. This makes them + simpler and faster. + + Implement `Fcopy_sequence` more efficiently for strings, lists and + vectors instead of using `concat`. + + The result is a significant performance increase for the Lisp + built-ins concat, append, vconcat, copy-sequence and anything using + them such as mapconcat, copy-alist and propertize. + + * src/fns.c (concat2, concat3, Fconcat): Use concat_strings. + (Fappend, Fvconcat): Adapt to changed signature of concat. + (Fcopy_sequence): Faster implementation for lists, strings, and vectors. + (concat_strings): New. + (concat): Strip code for string target, simplify, optimize. + (Fcopy_alist): Use Fcopy_sequence. + +2022-01-25 Lars Ingebrigtsen <larsi@gnus.org> + + Don't mutate literals in tabulated-list-widen-current-column + + * lisp/emacs-lisp/tabulated-list.el + (tabulated-list-widen-current-column): Avoid mutating constants + (bug#53501). + +2022-01-25 Lars Ingebrigtsen <larsi@gnus.org> + + Fix widening some columns in tabulated-list-widen-current-column + + * lisp/emacs-lisp/tabulated-list.el + (tabulated-list-widen-current-column): Don't bug out on list-based + columns (bug#53498). + +2022-01-25 Jim Porter <jporterbugs@gmail.com> + + Treat "-" as a positional arg in 'eshell-eval-using-options' + + * lisp/eshell/esh-opt.el (eshell--process-args): Treat "-" as a + positional arg. + + * lisp/eshell/em-tramp.el (eshell/su): Simplify checking for "-". + + * test/lisp/eshell/esh-opt-tests.el + (esh-opt-test/eval-using-options-stdin): New test. + +2022-01-25 Jim Porter <jporterbugs@gmail.com> + + Don't manipulate args in-place for 'eshell-eval-using-options' + + This is necessary for preserve the original arguments to forward on to + :external commands. Previously, when :preserve-args was also set, the + original argument list could be altered, changing the meaning of the + command. + + * lisp/eshell/esh-opt.el (eshell-eval-using-options): Copy MACRO-ARGS + when :preserve-args is set, and pass the original value to + 'eshell--do-opts'. + (eshell--do-opts): Use the original arguments when calling an external + command. + + * lisp/eshell/em-tramp.el (eshell/su, eshell/sudo): Don't copy the + original arguments, since 'eshell-eval-using-options' does this for + us. + + * test/lisp/eshell/esh-opt-tests.el (esh-opt-process-args-test): + Split this test into... + (esh-opt-test/process-args) + (esh-opt-test/process-args-parse-leading-options-only) + (esh-opt-test/process-args-external): ... these. + (test-eshell-eval-using-options): Split this test into... + (esh-opt-test/eval-using-options-short) + (esh-opt-test/eval-using-options-long) + (esh-opt-test/eval-using-options-constant) + (esh-opt-test/eval-using-options-user-specified) + (esh-opt-test/eval-using-options-short-single-token) + (esh-opt-test/eval-using-options-terminate-options) + (esh-opt-test/eval-using-options-parse-leading-options-only) + (esh-opt-test/eval-using-options-unrecognized): ... these. + (esh-opt-test/eval-using-options-external): New test. + + * test/lisp/eshell/em-tramp-tests.el: New tests. + +2022-01-25 Lars Ingebrigtsen <larsi@gnus.org> + + Improve the term-clear-full-screen-programs doc string + + * lisp/term.el (term-clear-full-screen-programs): Improve the doc + string. + +2022-01-25 Po Lu <luangruo@yahoo.com> + + Improve reliability of menu bar updates on Haiku + + * src/haiku_support.cc (class EmacsWindow): New fields + `menu_update_cv', `menu_update_mutex' and `menu_updated_p'. + (~EmacsWindow): Destroy cv and mutex. + (MenusBeginning): Release lock and wait for condition to be + become true. + (EmacsWindow_signal_menu_update_complete): New function. + * src/haiku_support.h (struct haiku_menu_bar_state_event): New + field `no_lock'. + * src/haikumenu.c (Fhaiku_menu_bar_open): Always update menu + bar. + * src/haikuterm.c (haiku_read_socket): Always update menu bar + and signal the window thread after update completion. + +2022-01-25 Po Lu <luangruo@yahoo.com> + + * src/haiku_support.cc (Highlight): Send events if !highlight_p. + +2022-01-25 Po Lu <luangruo@yahoo.com> + + Don't send menu help events on Haiku if the pointer isn't in the menu + + * src/haiku_support.cc (Highlight): Only send help events + if the mouse cursor is actually in the menu. + +2022-01-25 Po Lu <luangruo@yahoo.com> + + Fix tool bar size reporting on GTK when the display is scaled + + * src/gtkutil.c (xg_update_tool_bar_sizes): Multiply sizes to + turn them into device pixels. + +2022-01-25 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + c34d06e3d7 * configure.ac (LIBSECCOMP): Bump minimum version for facc... + 335a5a9e0f Make the `f' command work in image-mode again + +2022-01-24 Po Lu <luangruo@yahoo.com> + + Improve portability of X11 IM code + + * configure.ac: Test for XICCallback.callback if X11R6 or later. + * src/xfns.c (Xxic_preedit_start_callback): Use XICCallback if + present. + +2022-01-24 Stefan Monnier <monnier@iro.umontreal.ca> + + Remove some dubious uses of `interactive-form` + + * lisp/emacs-lisp/cl-generic.el (cl--generic-lambda): `commandp` and + `interactive-form` are for function values, not for source code. + * lisp/cedet/semantic/db-el.el (semanticdb-elisp-sym->tag): + Prefer `commandp` over `interactive-form`. + +2022-01-24 Po Lu <luangruo@yahoo.com> + + Fix invalid picture after toggling the tool bar or menu bar on GTK + + * src/xterm.c (x_drop_xrender_surfaces): New function. + (handle_one_xevent): Call x_drop_xrender_surfaces instead of + just font_drop_xrender_surfaces. + +2022-01-24 Po Lu <luangruo@yahoo.com> + + Fix GTK native input on scaled displays + + * src/xfns.c (xic_set_preeditarea): Scale preedit spot rectangle + before giving it to GTK. + +2022-01-24 Sean Whitton <spwhitton@spwhitton.name> + + Add Eshell syntax to more easily bypass Eshell's own pipelining + + * etc/NEWS: + * doc/misc/eshell.texi (Input/Output): Document the new syntax. + * lisp/eshell/em-extpipe.el: New module (Bug#46351). + * test/lisp/eshell/em-extpipe-tests.el: New tests. + * lisp/eshell/esh-module.el (eshell-modules-list): Add `eshell-extpipe'. + +2022-01-24 Sean Whitton <spwhitton@spwhitton.name> + + Rework eshell-match-result for testing asynchronous commands + + When using eshell-match-result via eshell-command-result-p to examine + the output of asynchronous Eshell commands, a newly emitted prompt is + included in the text against which the regexp is matched. This makes + it awkward to match against the whole output; for example, to check + whether it is empty. Rework the function to exclude the prompt. + + * test/lisp/eshell/eshell-tests-helpers.el (eshell-match-result): + Exclude any newly emitted prompt from the text against which the + regexp is matched. Additionally, the function no longer moves point. + * test/lisp/eshell/eshell-tests.el (eshell-test/flush-output): Update + and simplify test given how eshell-match-result no longer moves point. + +2022-01-24 Sean Whitton <spwhitton@spwhitton.name> + + Move Eshell test helpers to their own file + + * test/lisp/eshell/eshell-tests.el: + * test/lisp/eshell/eshell-tests-helpers.el: Move helpers to own file. + +2022-01-24 Lars Ingebrigtsen <larsi@gnus.org> + + Make hi-lock-face-defaults into a defcustom + + * lisp/hi-lock.el (hi-lock-face-defaults): Make into defcustom. + +2022-01-24 Juri Linkov <juri@linkov.net> + + * lisp/hi-lock.el (hi-lock-use-overlays): New variable. + + (hi-lock-set-pattern): Use it. Set overlay priority to 1. + (bug#53155) + +2022-01-24 Lars Ingebrigtsen <larsi@gnus.org> + + Add NEWS entry for term-clear-full-screen-programs + +2022-01-24 Miha Rihtaršič <miha@kamnitnik.top> + + Implement alternative sub-buffer support in term.el + + * etc/e/eterm-color.ti: Added termcaps for entering and leaving an + alternative sub-buffer. + * lisp/term.el (term-reset-size): Resize correctly in an alternative + sub-buffer is in use. + (term-clear-full-screen-programs): New user option. + (term-handle-ansi-escape): + (term-termcap-format): Handle termcaps for entering and leaving an + alternative sub-buffer. + (term-switch-to-alternate-sub-buffer): New (used to be commented out) + function to enter or leave an alternative sub-buffer. + bug#53485 + +2022-01-24 Juri Linkov <juri@linkov.net> + + * lisp/info.el (Info-link-keymap): Fix repetitive clicks on the header line. + + Rebind [header-line mouse-1] from mouse-select-window to + Info-mouse-follow-link. It selects the window anyway, + but also allows repetitively clicking on the Next button + on the Info header line (bug#53170). + +2022-01-24 Lars Ingebrigtsen <larsi@gnus.org> + + Don't list the default hi-lock faces twice in the future history + + * lisp/hi-lock.el (hi-lock-read-face-name): Don't include faces + twice in the defaults (bug#19877). + +2022-01-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix gnus-article-truncate-lines doc string + + * lisp/gnus/gnus-art.el (gnus-article-truncate-lines): Fix doc + string. + +2022-01-24 Juri Linkov <juri@linkov.net> + + * etc/NEWS: Mention 'replace-regexp-function' (bug#52558). + +2022-01-24 Juri Linkov <juri@linkov.net> + + * lisp/faces.el (read-face-name): Support a list of defaults for M-n. + + When MULTIPLE is nil and the arg DEFAULT is a list, keep its elements + in the "future history" of the minibuffer retrieved by `M-n M-n ...'. + (bug#53255) + +2022-01-24 Glenn Morris <rgm@gnu.org> + + * lisp/minibuffer.el (completions-sort): Fix type. + + Flagged by test-custom-opts. + +2022-01-24 Lars Ingebrigtsen <larsi@gnus.org> + + Don't output spurious prefixes in read-char-exclusive + + * src/keyboard.c (read_char): Don't touch the echo area if + Vecho_keystrokes is nil. + * src/lread.c (read_filtered_event): Bind echo_keystrokes to nil + to avoid outputting prefixes we're not going to act on anyway + (bug#19718). + +2022-01-24 Lars Ingebrigtsen <larsi@gnus.org> + + Allow sorting in electric-buffer-list with `S' + + * lisp/ebuff-menu.el (electric-buffer-menu-mode-map): Add the `S' + sorting command here, too (bug#20178). + +2022-01-24 Amin Bandali <bandali@gnu.org> + + ERC: Add new comaintainer, F. Jason Park + + * lisp/erc/erc*.el: Add J.P. as my comaintainer to headers. + +2022-01-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix \href{a_b} in tex-mode + + * lisp/textmodes/tex-mode.el (tex-font-lock-keywords-2): Fontify + href parameters like constants so that _ aren't fontified like + subscripts. + +2022-01-24 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "Fix tex-mode handling of _ chars in href{} commands" + + This reverts commit 487a0be7f7eb0ca9402247f13a11e39aa2946d05. + + This will be fixed a different way. + +2022-01-24 Lars Ingebrigtsen <larsi@gnus.org> + + Add derived-mode test for bug#24176 + +2022-01-24 Lars Ingebrigtsen <larsi@gnus.org> + + Make anonymous functions work in auto-mode-alist + + * lisp/files.el (set-auto-mode--apply-alist): Don't infloop on + anonymous functions in auto-mode-alist (bug#20709). + +2022-01-24 Lars Ingebrigtsen <larsi@gnus.org> + + Don't loop so much in gud-query-cmdline on remote systems + + * lisp/progmodes/gud.el (gud-query-cmdline): Avoid looping over + large numbers of files on remote systems (bug#21528). + +2022-01-24 Protesilaos Stavrou <info@protesilaos.com> + + Make Completions sorting a user option + + * etc/NEWS: Document the new user option. + * lisp/minibuffer.el (completions-sort): Add new user option. + (minibuffer-completion-help): Implement it for the Completions + buffer. (Bug#53362) + +2022-01-24 Lars Ingebrigtsen <larsi@gnus.org> + + Allow jumping to ert failure definitions + + * lisp/emacs-lisp/ert.el (ert-test): + (ert-deftest): Store the file name. + (ert-test-location): New function. + (ert-run-tests-batch): Use it. + + * lisp/emacs-lisp/find-func.el (find-ert-deftest-regexp): New + variable. + (find-function-regexp-alist): Add ert-deftest (bug#22471). + + Based on code by Phillip Lord <phillip.lord@russet.org.uk>. + +2022-01-24 Yuuki Harano <masm+github@masm11.me> + + * configure.ac: Remove forgotten GLIB_GSETTINGS call + +2022-01-24 Lars Ingebrigtsen <larsi@gnus.org> + + Add NEWS item for `I' command + +2022-01-24 Lars Ingebrigtsen <larsi@gnus.org> + + Add a *Help* command that'll take you to the lispref manual + + * doc/emacs/help.texi (Help Mode): Document it. + * lisp/help-mode.el (help-mode-map): Add an `I' keystroke. + (help-goto-lispref-info): New command. + + * lisp/info-look.el (:mode): Add an entry for the lispref manual. + +2022-01-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix tex-mode handling of _ chars in href{} commands + + * lisp/textmodes/tex-mode.el (tex--current-command): New function + (bug#23102). + (tex-font-lock-suscript): Don't subscript _ chars in href. + +2022-01-24 Lars Ingebrigtsen <larsi@gnus.org> + + Make `font-lock-add-keywords' work in derived modes + + * lisp/font-lock.el (font-lock-set-defaults): Make + `font-lock-add-keywords' work in derived modes (bug#24176). + +2022-01-24 Po Lu <luangruo@yahoo.com> + + Remove redundant declarations from keyboard.h that are now in lisp.h + + * src/keyboard.h (process_pending_signals) + (pending_signals): Remove declarations. + +2022-01-24 Mattias Engdegård <mattiase@acm.org> + + Inline maybe_quit + + Since `maybe_quit` is called on many critical paths, inline a slightly + cheaper condition (that ignores Vinhibit_quit). + + * src/eval.c (maybe_quit): Rename to `probably_quit`. + * src/lisp.h (maybe_quit): New simplified inline function. + +2022-01-24 Mattias Engdegård <mattiase@acm.org> + + Bump specpdl inline, move reallocation out of line + + The common case is just to increment `specpdl_ptr`; do that in-line, + but move the uncommon reallocation to a separate subroutine. + + * src/eval.c (grow_specpdl): Now inline, most code moved... + (grow_specpdl_allocation): ...here. + +2022-01-24 Mattias Engdegård <mattiase@acm.org> + + Implement Ffuncall in terms of funcall_general + + * src/eval.c (funcall_general, Ffuncall): Delegate the actual work in + Ffuncall to funcall_general which does exactly this. + This slows down some less used function call paths by a small amount + but the code duplication was just silly. + +2022-01-24 Mattias Engdegård <mattiase@acm.org> + + Open-code aref and aset in bytecode interpreter + + * src/bytecode.c (exec_byte_code): Inline aref and aset for + vectors and records, since this is important for code that makes heavy + use of arrays and/or objects. + +2022-01-24 Mattias Engdegård <mattiase@acm.org> + + Remove the unused unbind-all bytecode + + It was implemented but never generated, originally intended for + TCO in the pre-lexbind era (which was semantically dubious anyway). + Removing it speeds up the interpreter because there is no longer any + need for the outermost `count` variable unless checking is enabled. + + * lisp/emacs-lisp/bytecomp.el: + * lisp/emacs-lisp/comp.el (comp-limplify-lap-inst): + * src/bytecode.c (BYTE_CODES, exec_byte_code): + Remove definition and implementation of unbind-all, freeing up the opcode + for other purposes. + +2022-01-24 Mattias Engdegård <mattiase@acm.org> + + Move a runtime interpreter check to debug mode + + * src/bytecode.c (exec_byte_code): Perform bytecode unwinding error + check only when building with debugging (NDEBUG not defined, checking + enabled, or BYTE_CODE_SAFE enabled). This improves speed in several + ways. + +2022-01-24 Mattias Engdegård <mattiase@acm.org> + + Remove nil check in exec_byte_code + + Since we pass no arguments to a non-lexbind bytecode function, we can + specify its arity as 0 instead of nil and save a test and branch. + + * src/bytecode.c (Fbyte_code, exec_byte_code): + * src/eval.c (fetch_and_exec_byte_code, funcall_lambda): + * src/lisp.h: + Change the args_template parameter type to ptrdiff_t, since it is now + always a small integer, in exec_byte_code and + fetch_and_exec_byte_code, all callers adjusted. + +2022-01-24 Mattias Engdegård <mattiase@acm.org> + + Byte code arity check micro-optimisation + + * src/bytecode.c (exec_byte_code): Slight simplification. + +2022-01-24 Mattias Engdegård <mattiase@acm.org> + + Pin bytecode strings to avoid copy at call time + + Avoid making a copy (in the interpreter C stack frame) of the bytecode + string by making sure it won't be moved by the GC. This is done by + reallocating it to the heap normally only used for large strings, + which isn't compacted. + + This requires that we retain an explicit reference to the bytecode + string object (`bytestr`) lest it be GCed away should all other + references vanish during execution. We allocate an extra stack slot + for that, as we already do for the constant vector object. + + * src/alloc.c (allocate_string_data): Add `immovable` argument. + (resize_string_data, make_clear_multibyte_string): Use it. + (pin_string): New. + * src/pdumper.c (dump_string): Fix incorrect comment. + Update hash for Lisp_String (only comments changed, not contents). + * src/lread.c (read1): + * src/alloc.c (Fmake_byte_code, purecopy): + * src/bytecode.c (Fbyte_code): Pin bytecode on object creation. + (exec_byte_code): Don't copy bytecode. Retain `bytestr` explicitly. + * src/lisp.h (Lisp_String): Explain special size_byte values. + (string_immovable_p): New. + +2022-01-24 Mattias Engdegård <mattiase@acm.org> + + Inline setcar and setcdr in byte-code interpreter + + The function call overhead is nontrivial in comparison to the actual + code which makes this worthwhile. + + * src/bytecode.c (exec_byte_code): + Inline code from Fsetcar and Fsetcdr. + +2022-01-24 Mattias Engdegård <mattiase@acm.org> + + Inline fixnum operations in bytecode interpreter + + Since numeric operations are mostly done on fixnums, this gives a + speed-up for common code. + + * src/bytecode.c (exec_byte_code): Inline fixnum comparisons and + operations with fixnum results: =, >, <, <=, >=, -, +, -, *, /, %, max + and min. + +2022-01-24 Mattias Engdegård <mattiase@acm.org> + + Short-circuit the recursive bytecode funcall chain + + Inline parts of the code for function calls to speed up the common + case of calling lexbound byte-code. By eliminating intermediate + functions, this also reduces C stack usage a little. + + * src/bytecode.c (exec_byte_code): Inline parts of Ffuncall, + funcall_lambda and fetch_and_exec_byte_code in the Bcall opcode + handler. + * src/eval.c (backtrace_debug_on_exit): Inline and move to lisp.h. + (do_debug_on_call): Make global so that it can be called from + bytecode.c. + (funcall_general): New function, essentially the meat of Ffuncall. + * src/lisp.h (backtrace_debug_on_exit): Moved here from eval.c. + +2022-01-24 Lars Ingebrigtsen <larsi@gnus.org> + + Add "then" to sh--completion-keywords + + * lisp/progmodes/sh-script.el (sh--completion-keywords): Allow + completing over "then" (bug#53490). + +2022-01-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix Gnus registry key bindings + + * lisp/gnus/gnus-registry.el (gnus-registry-install-shortcuts): + Don't overwrite all other M M commands (bug#53492). + +2022-01-24 Martin Rudalics <rudalics@gmx.at> + + Orderly inhibit frame resizing when activating tool or tab bar (Bug#52986) + + * src/xdisp.c (redisplay_tab_bar, redisplay_tool_bar): If we do + not display a tool or tab bar in these functions, still set + f->tool/tab_bar_redisplayed and f->tool/tab_bar_resized. This + avoids that when one of these are initially turned off, a later + activation resizes the frame despite of the fact that + 'frame-inhibit-implied-resize' should prevent it (Bug#52986). + +2022-01-24 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (x_composite_image): Use the display's picture format. + +2022-01-24 Po Lu <luangruo@yahoo.com> + + Scale coordinates when checking if a touch event falls inside menu bar + + * src/xterm.c (handle_one_xevent): Apply scale to touch event + coordinates before intersecting them with the menu bar. + +2022-01-24 Paul Eggert <eggert@cs.ucla.edu> + + Avoid glitches in ELC lines in build output + + * src/verbose.mk.in (AM_V_ELC, AM_V_ELN): Use ifneq not ifdef, as + we want have_working_info’s value expanded (Bug#53358). + +2022-01-23 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (handle_one_xevent): Drop frame picture on configure. + +2022-01-23 Po Lu <luangruo@yahoo.com> + + Add some code for transparent frame backgrounds without Cairo + + * src/image.c (svg_load_image): Fix build without native image + transforms. + + * src/xfns.c (set_up_x_back_buffer): + (tear_down_x_back_buffer): Free XR picture if present. + + * src/xftfont.c (xftfont_get_xft_draw): Fix formatting issue. + + * src/xterm.c (x_xr_ensure_picture): New function. + (FRAME_CR_CONTEXT, FRAME_CR_CONTEXT): + (FRAME_CR_SURFACE_DESIRED_WIDTH) + (FRAME_CR_SURFACE_DESIRED_HEIGHT): Move to separate USE_CAIRO + block so the ext data code can be used on builds with XRender as + well. + + (x_xr_apply_ext_clip): + (x_xr_reset_ext_clip): New functions. + (x_set_clip_rectangles): + (x_reset_clip_rectangles): Set ext data on XRender as well. + (x_term_init): Look for a picture format appropriate for our + purposes. + (x_clear_area): Use XRenderFillRectangle to draw backgrounds if + available. + (x_xrender_color_from_gc_foreground): + (x_xrender_color_from_gc_background): New functions. + + * src/xterm.h (FRAME_X_PICTURE): + (FRAME_X_PICTURE_FORMAT) + (FRAME_CHECK_XR_VERSION): New macros. + + (struct x_gc_ext_data): Define on XRender as well. + (struct x_display_info): Define ext_codes when using XRender and + add new field `pict_format'. + (struct x_output): New field `picture'. + +2022-01-23 Po Lu <luangruo@yahoo.com> + + Get rid of compose status on XI2 + + * src/xterm.c (handle_one_xevent): Stop assuming compose + processing will occur on XI2. + +2022-01-23 Alan Mackenzie <acm@muc.de> + + Expunge read-with-symbol-position and read-symbol-positions-list + + These are remnants of the old way of determining byte compiler warning + positions. + + * src/lread.c (read_internal_start, read1): Remove initializations amd + manipulations of these variables. + (syms_of_lread): Remove the declarations of the variables. + + * lisp/emacs-lisp/bytecomp.el (compile-defun, byte-compile-from-buffer): + Remove bindings of the variables. + +2022-01-23 Po Lu <luangruo@yahoo.com> + + Set IC preedit area on ConfigureNotify + + * src/xterm.c (handle_one_xevent): Set the preedit spot when a + ConfigureNotify event is received. + +2022-01-23 Alan Mackenzie <acm@muc.de> + + Bind print-symbols-bare to t in byte-compile-from-buffer + + * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Bind + print-symbols-bare to t here for the benefit of non-defining forms in buffers. + +2022-01-23 Lars Ingebrigtsen <larsi@gnus.org> + + Make message in hack-local-variables-confirm clearer + + * lisp/files.el (hack-local-variables-confirm): Mention the + .dir-locals.el file in the message to be slightly less confusing + (bug#27066). + +2022-01-23 Lars Ingebrigtsen <larsi@gnus.org> + + Make `C-x M-x insert-kbd-macro RET RET' work better + + * lisp/macros.el (insert-kbd-macro): Don't give bogus output on + names that have no function definition (bug#30309). + +2022-01-23 Thuna <thuna.cing@gmail.com> (tiny change) + + Fix tabulated-list-widen-current-column widening wrong column + + * tabulated-list.el (tabulated-list-widen-current-column): Use correct + comparison operation when checking if point is within the column + bounds (bug#53375). + +2022-01-23 Lars Ingebrigtsen <larsi@gnus.org> + + Allow using outline minor mode in `M-x apropos-value' + + * lisp/apropos.el (apropos-mode): Set up outline minor mode + (bug#31094). + (apropos-value): Don't add "---" separators, because it doesn't + really seem to add anything much. + (apropos-value-internal): Escape newlines so that no values can be + confused for headings. + +2022-01-23 Lars Ingebrigtsen <larsi@gnus.org> + + Make apropos-print-doc more resilient + + * lisp/apropos.el (apropos-print-doc): Don't bug out on doc + strings that have invalid command key syntaxes. + +2022-01-23 Brian Leung <bkleung89@gmail.com> + + Properly check the completionitem.deprecated property + + * eglot.el (eglot-completion-at-point): Check the :deprecated property + is `t'. We do this so that a :deprecated property of :json-false does + not cause a completion candidate to be incorrectly marked as deprecated. + +2022-01-23 Alan Mackenzie <acm@muc.de> + + Fix position argument to macroexp--warn-wrap in cconv--convert-funcbody + + * lisp/emacs-lisp/cconv.el (cconv--convert-funcbody): Change the position + argument to macroexp--warn-wrap from BODY to ARG, to give correct positions in + warning messages. + +2022-01-23 Lars Ingebrigtsen <larsi@gnus.org> + + Improve `M-x speedbar' under emacs -nw very slightly + + * lisp/speedbar.el (speedbar-frame-mode): `M-x speedbar' doesn't + seem to do anything visible under -nw, so issue a message in that + case to tell the user how to proceed (bug#32597). + +2022-01-23 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerate ldefs-boot.el + +2022-01-23 Lars Ingebrigtsen <larsi@gnus.org> + + Make kill-process into a command + + * doc/lispref/processes.texi (Signals to Processes): Document it. + * src/process.c (Fkill_process): Make into a command (bug#32640). + +2022-01-23 Phil Sainty <psainty@orcon.net.nz> + + Add new function to prompt a user for a process name + + * lisp/emacs-lisp/subr-x.el (read-process-name): New function + (bug#32640). + +2022-01-23 Po Lu <luangruo@yahoo.com> + + Make sure cursors are drawn correctly after haiku_clear_frame + + * src/haikuterm.c (haiku_clear_frame): Mark all cursors as off. + +2022-01-23 Alex Kost <alezost@gmail.com> + + Improve scheme-imenu-generic-expression + + * lisp/progmodes/scheme.el (scheme-imenu-generic-expression): + Improve so that we match `define-public' etc (bug#33117). + +2022-01-23 Lars Ingebrigtsen <larsi@gnus.org> + + Make occur edit mode more resilient + + * lisp/replace.el (occur-engine): Make the prefix read-only so + that it's preserved in edit mode (bug#53419). + +2022-01-23 Lars Ingebrigtsen <larsi@gnus.org> + + Revert the other bits related to `load-read-file' + + * src/lread.c (syms_of_lread): Revert the other bits related to + reverting `byte-compile-from-buffer'/`load-read-file'. + +2022-01-23 Po Lu <luangruo@yahoo.com> + + Fix menus on the no-toolkit build when using XI2 + + * src/xmenu.c (x_activate_menubar): + (create_and_show_popup_menu): Only ungrab the device if it is + actually grabbed. + (x_menu_show): Release XI2 passive grab. + +2022-01-23 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 6d3608be88 Seccomp: improve support for newer versions of glibc (Bug#... + e58ecd01d5 EUDC: Fix a quoting bug in the BBDB backend + +2022-01-22 Po Lu <luangruo@yahoo.com> + + Fix documentation formatting error + + * doc/lispref/streams.texi (Input Functions): Remove extraneous + @end defun. + +2022-01-22 Po Lu <luangruo@yahoo.com> + + * src/haikumenu.c (run_menu_bar_help_event): Fix bounds sanity check. + +2022-01-22 Po Lu <luangruo@yahoo.com> + + Clean up some of the X extension related code + + * src/image.c (Fimage_transforms_p): Remove unused variables. + * src/xterm.c (x_probe_xfixes_extension): + (x_term_init): Probe for xfixes during terminal initialization + instead. + * src/xterm.h (struct x_display_info): New fields for xfixes + support. + +2022-01-22 Po Lu <luangruo@yahoo.com> + + * src/pgtkterm.c (pgtk_flash): Fix input blocking. + +2022-01-22 Eli Zaretskii <eliz@gnu.org> + + Minor copyedits in "Symbols with Position" + + * doc/lispref/symbols.texi (Symbols with Position): Fix wording + and improve indexing. + +2022-01-22 Alan Mackenzie <acm@muc.de> + + Merge branch 'master' of /home/acm/emacs/emacs.git/master + +2022-01-22 Alan Mackenzie <acm@muc.de> + + Don't use 'load-read-function' in byte-compile-from-buffer + + * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Call + read-positioning-symbols directly, rather than binding load-read-function to + it. This is so that a lower level use of load-read-function will not return a + form containing symbols with position. + +2022-01-22 Alan Mackenzie <acm@muc.de> + + Merge branch 'scratch/correct-warning-pos' + +2022-01-22 Lars Ingebrigtsen <larsi@gnus.org> + + Fix print-unreadable-function documentation + + * doc/lispref/streams.texi (Output Variables): Fix description of + non-string values. + +2022-01-22 Michael Albinus <michael.albinus@gmx.de> + + Add direct remote copying in Tramp's scp support + + * doc/misc/tramp.texi: Use @trampfn{} function where possible. + (Top, Configuration): Insert section 'Ssh setup' and remove + section 'Windows setup hints' in menu. + (Default Method): Mention tramp-use-scp-direct-remote-copying. + (Ssh setup): New node. + (Windows setup hints): Move it to that new node. + (Frequently Asked Questions): Move items about ssh config to that node. + + * etc/NEWS: Add Tramp's direct remote copying feature. Fix typos. + + * lisp/net/tramp-sh.el (tramp-use-scp-direct-remote-copying): + New defcustom. + (tramp-methods) <scp, scpx>: Add "%y" marker. + (tramp-scp-direct-remote-copying): New defun. + (tramp-do-copy-or-rename-file-out-of-band): Extend for direct + remote copying. + + * lisp/net/tramp.el (tramp-methods): Extend docstring. + (tramp-password-prompt-not-unique): New defvar. + (tramp-read-passwd): Adapt docstring. + (tramp-read-passwd-without-cache): New defun. + (tramp-action-password): Call it. + +2022-01-22 Lars Ingebrigtsen <larsi@gnus.org> + + Mark nil vc-follow-symlinks as safe + + * lisp/vc/vc-hooks.el (vc-follow-symlinks): A nil value should be + safe for file-local (bug#33264). + +2022-01-22 Lars Ingebrigtsen <larsi@gnus.org> + + Use load-read-function in byte-compile-from-buffer + + * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Use + load-read-function. + + * src/lread.c (syms_of_lread): Adjust doc string (bug#33723). + +2022-01-22 Lars Ingebrigtsen <larsi@gnus.org> + + Clarify Vprint_unreadable_function doc string + + * src/print.c (syms_of_print): Clarify Vprint_unreadable_function + doc string + +2022-01-22 Eli Zaretskii <eliz@gnu.org> + + Fix documentation of 'unprintable' stuff + + * src/print.c (syms_of_print) <print-unreadable-function>: + * doc/lispref/streams.texi (Input Functions, Output Variables): + Improve the documentation of 'print-unreadable-function' and + 'readablep'. Add indexing and cross-references. + +2022-01-22 Lars Ingebrigtsen <larsi@gnus.org> + + Improve dired-do-create-files slightly + + * lisp/dired-aux.el (dired-do-create-files): Expand slightly upon + the doc string (bug#35367). Suggested by Mike Kupfer + <mkupfer@alum.berkeley.edu>. + +2022-01-22 Lars Ingebrigtsen <larsi@gnus.org> + + Speed up multisession--set-value-sqlite slightly + + * lisp/emacs-lisp/multisession.el + (multisession--set-value-sqlite): Use `readablep'. + +2022-01-22 Lars Ingebrigtsen <larsi@gnus.org> + + Add new function 'readablep' + + * doc/lispref/streams.texi (Input Functions): Document it. + * lisp/subr.el (readablep): New function (bug#52566). + +2022-01-22 Lars Ingebrigtsen <larsi@gnus.org> + + Add new variable print-unreadable-function + + * doc/lispref/streams.texi (Output Variables): Document it. + + * src/print.c (print_vectorlike): Use the variable. + (syms_of_print): New variable print-unreadable-function + (bug#52566). + +2022-01-22 Po Lu <luangruo@yahoo.com> + + Add some menu bar help code on GNUstep + + * src/nsmenu.m ([EmacsMenu menu:willHighlightItem:]): Implement + help event generation for GNUstep. + +2022-01-22 Po Lu <luangruo@yahoo.com> + + Fix PGTK build with xwidgets + + * src/xwidget.c: Swap some preprocessor definitions around. + Reported by Iñigo Serna <inigoserna@gmail.com>. + +2022-01-22 Po Lu <luangruo@yahoo.com> + + Fix GNUstep build warnings + + * src/nsmenu.m + ([EmacsMenu menu:updateItem:atIndex:shouldCancel:]) + ([EmacsMenu menuHasKeyEquivalent:forEvent:target:action:]) + ([EmacsMenu numberOfItemsInMenu:]): New methods. + +2022-01-22 Lars Ingebrigtsen <larsi@gnus.org> + + Fix HTML target marking in shr + + * lisp/net/shr.el (shr-descend): Use a marker (because we may be + altering the text later for indentation), and mark the start, not + the end of the tag (bug#53409). + (shr-tag-a): Ditto. + +2022-01-22 Lars Ingebrigtsen <larsi@gnus.org> + + Put the old label into the future history in reftex-change-label + + * lisp/textmodes/reftex-global.el (reftex-change-label): Put the + old label into the future history so that it can be edited easily + (bug#53417). + +2022-01-22 Lars Ingebrigtsen <larsi@gnus.org> + + Fix the prompt in hi-lock-read-face-name + + * lisp/hi-lock.el (hi-lock-read-face-name): Fix the prompt after + recent changes (bug#53255). + +2022-01-22 Matthias Meulien <orontee@gmail.com> + + Fix some doc strings in outline.el + + * lisp/outline.el (outline-default-state): Fix doc string. + (outline-default-rules): Fix doc string. + +2022-01-22 Alan Mackenzie <acm@muc.de> + + Merge branch 'master' into scratch/correct-warning-pos + +2022-01-22 Lars Ingebrigtsen <larsi@gnus.org> + + Make the test for existing multisession variables more sensible + + * lisp/emacs-lisp/multisession.el (multisession-edit-value): + Unconfuse the code. + +2022-01-22 Alan Mackenzie <acm@muc.de> + + Miscellaneous amendments to the scratch/correct-warning-pos branch + + * lisp/cedet/semantic/fw.el (semantic-alias-obsolete) + (semantic-varalias-obsolete): Replace calls to byte-compile-warn with calls to + byte-compile-warn-x (when it exists). + + * lisp/emacs-lisp/bytecomp.el (byte-compile-log-warning-function) + (byte-compile--log-warning-for-byte-compile): Make the POSITION parameter no + longer &optional (for the benefit of flymake on *.el). + (byte-compile-log-warning): Replace a nil POSITION argument with an actual + position. + (byte-compile-file-form-require): Push the required symbol onto + byte-compile-form-stack, for the benefit of `do-after-load-evaluation'. + + * lisp/keymap.el (define-keymap--compile): Replace four calls to + byte-compile-warn with byte-compile-warn-x. + + * doc/lispref/elisp.texi (master menu): Add entries for Shorthands and Symbols + with position. + + * doc/lispref/streams.texi (Input Functions): Document + read-positioning-symbols. + + * doc/lispref/symbols.texi (Symbols): Add new menu entry. + (Symbols with Position): New @section. + +2022-01-22 Eli Zaretskii <eliz@gnu.org> + + Improve detection of suspicious uses of bidi controls + + * lisp/international/textsec.el + (textsec-bidi-controls-suspicious-p): New function. + (textsec-name-suspicious-p): Use it. + + * test/lisp/international/textsec-tests.el (test-suspicious-name): + Enable the test that was previously failing with + 'bidi-find-overridden-directionality'. + +2022-01-22 Po Lu <luangruo@yahoo.com> + + Prevent raw bytes from being displayed as help text on Haiku + + * src/haikumenu.c (digest_menu_items): Don't set encoded text + into the menu item vector. + +2022-01-22 Po Lu <luangruo@yahoo.com> + + Use locale coding system to decode XIM preedit text + + * src/xfns.c (x_xim_text_to_utf8_unix): XIMs typically return + text in the locale coding system, so use that instead. + +2022-01-22 Eli Zaretskii <eliz@gnu.org> + + Change visibility of "Undelete Frame" + + * lisp/menu-bar.el (menu-bar-file-menu): Make "Undelete Frame" + always visible. Suggested by Gregory Heytings <gregory@heytings.org>. + +2022-01-22 Po Lu <luangruo@yahoo.com> + + Get rid of some unnecessary code in handle_one_xevent + + * src/xterm.c (handle_one_xevent): Stop mutating event->xkey. + +2022-01-21 Stefan Kangas <stefankangas@gmail.com> + + * eglot.el (eglot-handle-notification): silence byte-compiler. + +2022-01-21 Brian Leung <bkleung89@gmail.com> + + Add support for optional completionitem.tags + + * eglot.el (eglot--lsp-interface-alist): Add optional CompletionItem.tags. + (eglot-completion-at-point): Add :company-deprecated key and value, + checking for either the appropriate tag (1) in the :tags property, or + a truthy value for the :deprecated property. + (eglot-client-capabilities): Advertise tagSupport (for tag == 1) and + deprecatedSupport. + + Also load an updated version of seq.el in Emacsen < 27. + + * Makefile (ELPA_DEPS): Require latest seq.el. + +2022-01-21 Stefan Kangas <stefankangas@gmail.com> + + Don't use :exclusive no + + See https://github.com/joaotavora/eglot/issues/812 for background, in particular: + https://github.com/joaotavora/eglot/issues/812#issuecomment-1014821345 + + * eglot.el (eglot-completion-at-point): Don't use :exclusive no, as it + leads to breakage in many cases. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/812 + +2022-01-21 Po Lu <luangruo@yahoo.com> + + Fix recent changes to visible bell code + + * src/gtkutil.c (xg_create_scroll_bar): + (xg_create_horizontal_scroll_bar): Stop ensuring an X window + before the widget is realized. + (xg_update_scrollbar_pos): + (xg_update_horizontal_scrollbar_pos): Ensure such a window here + instead. + +2022-01-21 Po Lu <luangruo@yahoo.com> + + Clean up visible bell code on X + + * src/gtkutil.c (xg_create_scroll_bar): + (xg_create_horizontal_scroll_bar): Ensure that the scroll bars + have their own X windows. + * src/xterm.c (XTflash): Remove use of GDK functions for + drawing. + +2022-01-21 Po Lu <luangruo@yahoo.com> + + Fix crash when the visible bell is rung but there is no cairo surface + + * src/pgtkterm.c (pgtk_flash): Return if the cairo surface is + not present. (bug#53420) + (pgtk_cr_update_surface_desired_size): Reformat comment. + +2022-01-21 Paul Eggert <eggert@cs.ucla.edu> + + Avoid glitches in ELC lines in build output + + * src/verbose.mk.in (have_working_info): New macro. + (AM_V_ELC, AM_V_ELN): Use 'echo' rather than $(info ...) + on buggy versions of GNU Make. + +2022-01-21 Paul Eggert <eggert@cs.ucla.edu> + + Simplify AM_V_ELC setup + + * src/verbose.mk.in (AM_V_ELC, AM_V_ELN): Use simpler Make ‘if’s. + +2022-01-21 Glenn Morris <rgm@gnu.org> + + * lisp/cus-start.el (polling-period): Update type. + + Flagged by test-custom-opts. + +2022-01-21 Glenn Morris <rgm@gnu.org> + + * src/keyboard.c (start_polling): Fix type mixup. + + Flagged by --enable-check-lisp-object-type. + +2022-01-21 Lars Ingebrigtsen <larsi@gnus.org> + + Disable background image fetching from asking for passwords + + * lisp/url/url-queue.el (url-queue-start-retrieve): Inhibit + prompting for passwords from these background requests. + +2022-01-21 Lars Ingebrigtsen <larsi@gnus.org> + + Further emake tweaks + +2022-01-21 Lars Ingebrigtsen <larsi@gnus.org> + + Fix previous emake change + + * admin/emake (cores): Fix typo in previous change. + +2022-01-21 Po Lu <luangruo@yahoo.com> + + * src/keyboard.c (syms_of_keyboard): Fix build without input polling. + +2022-01-21 Lars Ingebrigtsen <larsi@gnus.org> + + Improve the completion-category-overrides doc string + + * lisp/minibuffer.el (completion-category-overrides): Clarify what + this variable does (bug#22324). + (completion-category-defaults): Mention the overrides variable. + +2022-01-21 Lars Ingebrigtsen <larsi@gnus.org> + + Remove text mistakenly added to the diff--iterate-hunks doc string + + * lisp/vc/diff-mode.el (diff--iterate-hunks): Remove text added by + mistake to the doc string. + +2022-01-21 Lars Ingebrigtsen <larsi@gnus.org> + + Followup fix to previous message-update-smtp-method-header change + + * lisp/gnus/message.el (message-update-smtp-method-header): Narrow + to the headers first. + +2022-01-21 Lars Ingebrigtsen <larsi@gnus.org> + + Allow From to be part of message-hidden-headers + + * lisp/gnus/message.el (message-update-smtp-method-header): Don't + bug out if the From header is part of `message-hidden-headers' + (bug#52871). + +2022-01-21 Jim Porter <jporterbugs@gmail.com> + + Don't use 'eshell-eval-using-options' for 'eshell/source' or 'eshell/.' + + This makes 'source' and '.' in Eshell more compatible with regular + shells, which just treat the first argument as the file to source and + all subsequent arguments as arguments to that file. + + * lisp/eshell/em-script.el (eshell/source, eshell/.): Don't use + 'eshell-eval-using-options'. + + * etc/NEWS: Announce the change (bug#53293) + +2022-01-21 Jim Porter <jporterbugs@gmail.com> + + Raise an error from 'eval-eval-using-options' for unknown options + + * lisp/eshell/em-basic.el (eshell/echo): Add -E option. + + * lisp/eshell/esh-opt.el (eshell--process-option): Raise an error if + an unknown option is encountered, even when :external is nil. + + * test/lisp/eshell/esh-opt-tests.el (esh-opt-process-args-test) + (test-eshell-eval-using-options): Add test cases for this. + +2022-01-21 Theodor Thornhill <theo@thornhill.no> + + Fix indentation in NEWS of cl-flet item + + * etc/NEWS: Correct description of indentation of 'cl-flet' and + 'cl-labels (bug#53410). + +2022-01-21 Lars Ingebrigtsen <larsi@gnus.org> + + Clarify Splitting Mail in the Gnus manual + + * doc/misc/gnus.texi (Splitting Mail): Clarify what happens when + crossposting or not (bug#53307). + +2022-01-21 Lars Ingebrigtsen <larsi@gnus.org> + + Interpret a "" value of EMACS_TEST_VERBOSE as "off" + + * doc/misc/ert.texi (Running Tests in Batch Mode): Adjust doc. + * lisp/emacs-lisp/ert.el (ert-run-tests-batch): Allow overriding + the EMACS_TEST_VERBOSE variable by setting it to "" (bug#53313). + +2022-01-21 Lars Ingebrigtsen <larsi@gnus.org> + + Make the edebug-all-defs user option work more reliably + + * lisp/emacs-lisp/edebug.el (edebug-all-defs): This user option + has no effect unless edebug is loaded (because that loads the + advice needed for the commands in question) (bug#53331). + +2022-01-21 Po Lu <luangruo@yahoo.com> + + Make xwidgets work on builds that don't use Cairo drawing + + * configure.ac: Check for the parts of Cairo that are needed for + xwidgets when they are enabled without cairo drawing. + + * src/xterm.c: + * src/xwidget.c: Always include cairo-xlib headers when xwidgets + are enabled. + +2022-01-21 Lars Ingebrigtsen <larsi@gnus.org> + + Clean up mm-display-inline-fontify slightly + + * lisp/gnus/mm-view.el (mm-display-inline-fontify): Remove some + left-over compat code. + +2022-01-21 Lars Ingebrigtsen <larsi@gnus.org> + + Make diff--iterate-hunks more resilient + + * lisp/vc/diff-mode.el (diff--iterate-hunks): Ignore malformed + hunks instead of signaling errors (bug#53343). + +2022-01-21 Shuguang Sun <shuguang79@qq.com> + + Use the correct converter for odf files in doc-view + + * lisp/doc-view.el (doc-view-pdf/ps->png): Use the correct + converter for odf files (bug#53354). + +2022-01-21 Lars Ingebrigtsen <larsi@gnus.org> + + Update multisession variables when editing the values + + * lisp/emacs-lisp/multisession.el (multisession-edit-value): + Update multisession variables when editing the values (bug#53361). + +2022-01-21 Jim Porter <jporterbugs@gmail.com> + + Further improve determination of when commands can be invoked directly + + This covers the case when a subcommand is to be invoked in more places + than before, for example when a subcommand is concatenated in an + argument. + + * lisp/eshell/esh-cmd.el (eshell--find-subcommands): New function. + (eshell--invoke-command-directly): Use 'eshell-find-subcommands'. + + * test/lisp/eshell/eshell-tests.el + (eshell-test/interp-cmd-external-concat): New test (bug#30725). + +2022-01-21 Lars Ingebrigtsen <larsi@gnus.org> + + Adjust emake after recent changes + +2022-01-21 Po Lu <luangruo@yahoo.com> + + Synchronize XI2 code with Core Input code + + * src/xterm.c (handle_one_xevent): Apply recent changes for XI2 + events as well. + +2022-01-21 Po Lu <luangruo@yahoo.com> + + Merge from origin/emacs-28 + + 11ea45c9e4 Fix UB in ebrowse + ba57b78064 Fix execute-extended-command-for-buffer in fundamental-mode + ef0c1d4c2c Add workaround to handle a problem with Enlightenment WM (... + +2022-01-21 Po Lu <luangruo@yahoo.com> + + Work around GTK changing window backgrounds on colormapped displays + + * src/xterm.c (x_clear_window): + (x_clear_area): Fill the contents with the reverse GC instead of + using XClearArea and XClearWindow when not double buffered. + +2022-01-20 Po Lu <luangruo@yahoo.com> + + Fix BadValue crash when looking up empty color names on some X servers + + * src/xterm.c (x_parse_color): Avoid parsing empty color names. + +2022-01-20 Dmitry Gutov <dgutov@yandex.ru> + + ruby-toggle-block-space-before-parameters: New user option + + * lisp/progmodes/ruby-mode.el (ruby-toggle-block-space-before-parameters): + New user option (bug#53321). + (ruby-do-end-to-brace): Handle it. + + * test/lisp/progmodes/ruby-mode-tests.el + (ruby-toggle-block-to-brace-no-space): New test. + +2022-01-20 Po Lu <luangruo@yahoo.com> + + Update menu bars when `use-system-tooltips' changes on Haiku + + * lisp/term/haiku-win.el: Add new function as variable watcher + for `use-system-tooltips'. + (haiku-use-system-tooltips-watcher): New function. + +2022-01-20 Po Lu <luangruo@yahoo.com> + + Allow fractional values of `polling-period' + + This allows C-g to be handled faster in the NS port at the cost + of some extra CPU time on slow machines. + + * etc/NEWS: Announce new feature. + * src/keyboard.c (start_polling): + (bind_polling_period): Handle floating point values of + `polling-period'. + (syms_of_keyboard): Make `polling-period' a Lisp variable + instead of an int variable. + +2022-01-20 Po Lu <luangruo@yahoo.com> + + Avoid FOCUS_IN_EVENTS not being sent on NS + + * src/nsterm.m ([EmacsView windowDidBecomeKey]): Work around + emacs_event being NULL by storing focus in events directly + into the keyboard buffer. (bug#52376) + +2022-01-20 Theodor Thornhill <theo@thornhill.no> + + Enable lsp project-wide diagnostics via flymake + + * eglot.el (eglot-handle-notification): Pass on diagnostics from + unvisited files to flymake. Enables project-wide-diagnostics, so that + we can view all diagnostics in a given workspace. Uses new + functionality from flymake 1.2.1, hence the version bump. + + * eglot-tests.el (project-wide-diagnostics-typescript): New tests + showcasing the possibility to see all related diagnostics in a + workspace. + + * eglot-tests.el (project-wide-diagnostics-rust-analyzer): New tests + showcasing the possibility to see all related diagnostics in a + workspace. + + * NEWS.md: Mention the new functionality + * README.md: Mention the new functionality + +2022-01-20 Alan Mackenzie <acm@muc.de> + + In early bootstrap, use byte-compiled compiler to native compile first files + + This speeds up a make bootstrap by around 15%. + + * lisp/Makefile.in (BYTE_COMPILE_FLAGS): set a value specific to compile-first + which doesn't contain the setting of Emacs variable load-prefer-newer. + Add a new make hunk which byte-compiles (rather then native compiles) when the + environment variable ANCIENT is "yes". Set the date of the .elc files built + to 1971-01-01 to cause a second compilation of them later. + + * src/Makefile.in: Add an extra invocation of directory lisp's MAKE with + target compile-first and the flag environment variable ANCIENT set to yes. + + * src/verbose.mk.in: When ANCIENT is yes, output ELC, not ELC+ELN for + AM_V_ELC. + +2022-01-20 Arash Esbati <arash@gnu.org> + + Remove matching of whitespaces in LaTeX environment names + + * lisp/textmodes/ispell.el (ispell-tex-skip-alists): Don't match + arbitrary number of whitespaces in LaTeX environment names. + (bug#53390) + +2022-01-20 Eli Zaretskii <eliz@gnu.org> + + Update documentation of 'clone-indirect-buffer-hook' + + * doc/emacs/buffers.texi (Indirect Buffers): + * src/buffer.c (syms_of_buffer) <clone-indirect-buffer-hook>: + Update the documentation of 'clone-indirect-buffer-hook' due the + recent changes. + * etc/NEWS: Mention the change in where the hook is run. + + * lisp/face-remap.el (face-attrs--make-indirect-safe): Doc fix. + +2022-01-20 Lars Ingebrigtsen <larsi@gnus.org> + + Make textsec-link-suspicious-p less mistrustful + + * lisp/international/textsec.el (textsec-link-suspicious-p): Scale + back the suspicion -- only warn about texts that contain a full + explicit link. + +2022-01-20 Thuna <thuna.cing@gmail.com> (tiny change) + + Fix tabulated-list-widen-current-column widening wrong column + + * tabulated-list.el (tabulated-list-widen-current-column): Account + for the padding and the content width when calculating column + width (bug#53375). + +2022-01-20 Peter Münster <pm@a16n.net> + + Make image-dired-delete-marked more resilient + + * lisp/image-dired.el (image-dired-delete-marked): Don't bug out + on empty buffers (bug#53385). + +2022-01-20 Lars Ingebrigtsen <larsi@gnus.org> + + Fix thinko in previous hi-lock-read-face-name change + + * lisp/hi-lock.el (hi-lock-read-face-name): Fix the string/symbol + logic. + +2022-01-20 Andrew Hyatt <ahyatt@gmail.com> + + Fix indirect font changes incorrectly affecting original buffer + + * lisp/face-remap.el (face-attrs--make-indirect-safe): + (clone-indirect-buffer-hook): Set up a face remapping alist + (bug#53294). + + * lisp/simple.el (clone-indirect-buffer): Move the point the hook + is run. + + * src/buffer.c (Fmake_indirect_buffer, syms_of_buffer): Move the + place where the clone-indirect-buffer-hook variable is defined, so + that we can call it from C. + +2022-01-20 Jim Porter <jporterbugs@gmail.com> + + Consider subcommands when deciding to invoke Eshell command directly + + When an Eshell command contains an asynchronous subcommand (such as + calling an external process), it must be evaluated iteratively. See + bug#30725. + + * lisp/eshell/esh-cmd.el (eshell-invoke-command): Move most of the + logic from here... + (eshell--invoke-command-directly): ... to here. Also add checks for + subcommands. + + * test/lisp/eshell/eshell-tests.el (eshell-test--max-subprocess-time): + New variable. + (eshell-wait-for-subprocess): New function. + (eshell-command-result-p): Use 'eshell-wait-for-subprocess'. + (eshell-test/interp-cmd-external): New test (bug#30725). + +2022-01-20 Lars Ingebrigtsen <larsi@gnus.org> + + Rename the textsec-check function to textsec-suspicious-p + + * lisp/net/shr.el (shr-tag-a): + * lisp/international/textsec-check.el (textsec-suspicious-p): + * lisp/gnus/message.el (message-send-mail): + * lisp/gnus/gnus-art.el (article--check-suspicious-addresses): + * etc/NEWS (like): + * doc/lispref/text.texi (Suspicious Text): + (Suspicious Text): Rename the textsec-check function to + textsec-suspicious-p. + +2022-01-20 Lars Ingebrigtsen <larsi@gnus.org> + + Make the read-face-name completion buffer display samples + + * lisp/faces.el (read-face-name): Display face samples when + completing (bug#53255). + + * lisp/hi-lock.el (hi-lock-read-face-name): Use read-face-name. + +2022-01-20 Lars Ingebrigtsen <larsi@gnus.org> + + Improve the textsec-domain-suspicious-p warning message + + * lisp/international/textsec.el (textsec-domain-suspicious-p): + Improve warning message. + +2022-01-20 Po Lu <luangruo@yahoo.com> + + Fix error when describing menu items that don't have equivalent keys + + * lisp/help-fns.el (help-fns--key-bindings): Never pass nil to + insert. + +2022-01-20 Lars Ingebrigtsen <larsi@gnus.org> + + Make textsec-link-suspicious-p have fewer false positives + + * lisp/international/textsec.el (textsec-link-suspicious-p): + Attempt to improve the domain-guessing logic. + +2022-01-20 Lars Ingebrigtsen <larsi@gnus.org> + + Improve how menus are described in *Help* + + * lisp/help-fns.el (help-fns--insert-bindings): New function. + (help-fns--key-bindings): Split menu/key handling and output menu + bindings separately (bug#52870). + +2022-01-20 Po Lu <luangruo@yahoo.com> + + Make system tooltips display in the menu bar on Haiku + + * doc/emacs/haiku.texi (Haiku Basics): Update documentation. + * src/haiku_support.cc (Highlight): Apply the hack used for + regular menus to the menu bar as well. + * src/haikumenu.c (digest_menu_items): Set help text on menu bar + if `tooltip-mode' is t and system tooltips are used. + (syms_of_haikumenu): New symbol `tooltip-mode'. + +2022-01-20 Mattias Engdegård <mattiase@acm.org> + + Fix Fchar_syntax for non-ASCII in unibyte buffers + + Fchar_syntax did not convert unibyte characters to multibyte when the + current buffer was unibyte, in contrast to `char-syntax` in + byte-compiled code (bug#53260). + + * src/bytecode.c (exec_byte_code): Call out to Fchar_syntax; + the dynamic frequency is too low to justify inlining here, and it + did lead to implementations diverging. + * src/syntax.c (Fchar_syntax): Convert non-ASCII unibyte values to + multibyte. + * test/src/syntax-tests.el (syntax-char-syntax): New test. + +2022-01-20 Lars Ingebrigtsen <larsi@gnus.org> + + Re-enable some textsec-tests after recent bidi.c fix + +2022-01-20 Jim Porter <jporterbugs@gmail.com> + + In Eshell, allow "-n" to suppress the trailing newline for "plain" echo + + * doc/misc/eshell.texi (Built-in commands): Expand on the + documentation of echo (bug#27361). + * lisp/eshell/em-basic.el (eshell-echo): Respect OUTPUT-NEWLINE even + when 'eshell-plain-echo-behavior' is non-nil. + (eshell/echo): Add "-N" option and recommend its use over "-n" in + Lisp-friendly echo. + (eshell/printnl): Simplify; 'eshell-stringify' is equivalent to + calling 'eshell-echo' here. + +2022-01-20 Eli Zaretskii <eliz@gnu.org> + + Fix 'bidi-find-overridden-directionality' for Lisp strings + + * src/bidi.c (bidi_find_first_overridden): Don't use ZV for Lisp + strings. Reported by Lars Ingebrigtsen <larsi@gnus.org>. + +2022-01-20 Po Lu <luangruo@yahoo.com> + + Make the undelete-frame-mode menu item a toggle + + * lisp/menu-bar.el (menu-bar-file-menu): Make the undelete frame + mode option a toggle. (bug#53382) + Also enable some options that were disabled on NS, but should no + longer be since NS now supports the tab bar. + +2022-01-20 Lars Ingebrigtsen <larsi@gnus.org> + + Make key-valid-p work in Turkey + + * lisp/keymap.el (key-valid-p): Inhibit case folding, otherwise + (key-valid-p "I") would return nil in tr_TR environments. + +2022-01-20 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak textsec-link-suspicious-p + + * lisp/international/textsec.el (textsec-link-suspicious-p): Don't + mark dates as suspicious. + +2022-01-20 Lars Ingebrigtsen <larsi@gnus.org> + + Add test for bug#51733 + +2022-01-20 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of textsec + + * lisp/international/textsec-check.el (textsec-check): Doc fixes. + + * doc/lispref/text.texi (Suspicious Text): Improve wording and + indexing. + +2022-01-20 Lars Ingebrigtsen <larsi@gnus.org> + + Allow suspicious names with some forms of bidi controls + + * lisp/international/textsec.el (textsec-name-suspicious-p): Allow + names with bidi-find-overridden-directionality. + +2022-01-20 Lars Ingebrigtsen <larsi@gnus.org> + + Improve textsec-domain-suspicious-p message + + * lisp/international/textsec.el (textsec-domain-suspicious-p): + Improve warning message. + +2022-01-20 Eli Zaretskii <eliz@gnu.org> + + Allow disabling 'undelete-frame-mode' from the menu bar + + * lisp/menu-bar.el (menu-bar-file-menu): Add + 'disable-undelete-frame-mode' menu item. (Bug#53382) + +2022-01-20 Lars Ingebrigtsen <larsi@gnus.org> + + Document textsec + + * doc/lispref/elisp.texi (Top): Add menu. + * doc/lispref/text.texi (Text): Add menu. + (Suspicious Text): New node. + + * lisp/international/textsec-check.el (textsec-check): Adjust doc + string. + +2022-01-20 Lars Ingebrigtsen <larsi@gnus.org> + + Check link text domain suspiciousness + + * lisp/international/textsec.el (textsec-link-suspicious-p): Check + whether the domain in the link text is suspicious. + +2022-01-20 Lars Ingebrigtsen <larsi@gnus.org> + + Expand textsec-link-suspicious-p checking + + * lisp/international/textsec.el (textsec-link-suspicious-p): Check + the text more thoroughly for link-like things. + +2022-01-20 Lars Ingebrigtsen <larsi@gnus.org> + + Improve textsec-domain-suspicious-p message + + * lisp/international/textsec.el (textsec-domain-suspicious-p): + Ensure that we're not confusing the user if there's a directional + override in the string we're checking. + +2022-01-20 Lars Ingebrigtsen <larsi@gnus.org> + + Add new bidi-string-strip-control-characters function + + * lisp/international/characters.el + (bidi-string-strip-control-characters): New function. + +2022-01-20 Lars Ingebrigtsen <larsi@gnus.org> + + Make article--check-suspicious-addresses more resilient + + * lisp/gnus/gnus-art.el (article--check-suspicious-addresses): Be + more resilient to junk in headers. (But all this should be rewritten + eventually, because the entire process is way too convoluted.) + +2022-01-20 Po Lu <luangruo@yahoo.com> + + Make `nil' values of the `:position' underline property work correctly + + * src/xfaces.c (Finternal_set_lisp_face_attribute): Handle cases + where the underline property `:position' is nil. + +2022-01-19 Po Lu <luangruo@yahoo.com> + + Port hourglass display to XCB + + * src/xterm.c (x_show_hourglass): + (x_hide_hourglass): Use straightforward translations to XCB if + available. + +2022-01-19 Po Lu <luangruo@yahoo.com> + + Get rid of calls to XRenderQueryExtension after terminal initialization + + * src/image.c (x_create_xrender_picture): + (Fimage_transforms_p): Use `xrender_supported_p'. + + * src/xterm.c (x_term_init): Query for XRender support and + extension versions. + + * src/xterm.h (struct x_display_info): New fields + `xrender_supported_p', `xrender_major' and `xrender_minor'. + +2022-01-19 Po Lu <luangruo@yahoo.com> + + Implement selection ownership on Haiku + + * lisp/term/haiku-win.el (haiku-selection-owner-p): New + declaration. + (gui-backend-selection-owner-p): Implement using newly exposed + primitive. + + * src/haiku_select.cc + (count_clipboard, count_primary, count_secondary): New + variables for tracking selection ownership. + (BClipboard_set_system_data): + (BClipboard_set_primary_selection_data): + (BClipboard_set_secondary_selection_data): Set ownership + variables. + (BClipboard_owns_clipboard): + (BClipboard_owns_primary): + (BClipboard_owns_secondary): New functions. + + * src/haikuselect.c (Fhaiku_selection_owner_p): New function. + (syms_of_haikuselect): Define new subr. + * src/haikuselect.h: New prototypes. + +2022-01-19 Derek Passen <dpassen1@gmail.com> (tiny change) + + Add clojure-lsp support for clojure + + * eglot.el (eglot-server-programs): Add clojure-lsp for Clojure. + * README.md: Document the above change. + +2022-01-19 Andrea Corallo <akrl@sdf.org> + + Suspend temp .elc production when native compiling till when necessary + + * lisp/emacs-lisp/bytecomp.el (byte-to-native-output-buffer-file): + Rename from `byte-to-native-output-file'. + (byte-write-target-file): Update. + (byte-compile-file): Write the temporary .elc only when not native + compiling. + (byte-compile-file): Kill the .elc buffer only when not native + compiling. + * lisp/emacs-lisp/comp.el (batch-byte+native-compile): Instead of just + renaming the temporary .elc make use of `byte-write-target-file' to + write it down and kill the temporary buffer. + +2022-01-19 Andrea Corallo <akrl@sdf.org> + + * Move some code in in `byte-write-target-file'. + + * lisp/emacs-lisp/bytecomp.el (byte-write-target-file): New function + spilling code from `byte-compile-file'. + +2022-01-19 Lars Ingebrigtsen <larsi@gnus.org> + + Make article--check-suspicious-addresses more resilient + + * lisp/gnus/gnus-art.el (article--check-suspicious-addresses): + Don't bug out on mbox-less addresses. + +2022-01-19 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak the previous suspicious Message change + + * lisp/gnus/message.el (message-check-recipients) + (message-send-mail): Move the check to after encoding. + +2022-01-19 Lars Ingebrigtsen <larsi@gnus.org> + + Make Message check for invalid recipients before sending + + * lisp/gnus/message.el (message-check-recipients): Check for + suspicious addresses before sending (bug#51733). + +2022-01-19 Lars Ingebrigtsen <larsi@gnus.org> + + Make textsec-mixed-numbers-p actually work + + * lisp/international/textsec.el (textsec-mixed-numbers-p): Fix the + test. + +2022-01-19 Lars Ingebrigtsen <larsi@gnus.org> + + Make Gnus check for suspicious headers + + * lisp/gnus/gnus-art.el (gnus-treat-suspicious-headers): New user + option. + (gnus-article-treat-suspicious-headers): New function. + (article-decode-encoded-words): Hook into the machinery to check + headers. + (article--check-suspicious-addresses): New function. + +2022-01-19 Lars Ingebrigtsen <larsi@gnus.org> + + Add text for suspicious links + + * lisp/international/textsec-check.el (textsec-check): Note `link'. + (textsec-propertize): Fix typo. + + * lisp/international/textsec.el (textsec-link-suspicious-p): New + function. + + * lisp/net/shr.el (shr-tag-a): Check for sus links. + +2022-01-19 Lars Ingebrigtsen <larsi@gnus.org> + + Don't overwrite the link text in shr-tag-a for suspicious URLs + + * lisp/net/shr.el (shr-tag-a): Tweak how the suspiciousness + warning is handled. + +2022-01-19 Lars Ingebrigtsen <larsi@gnus.org> + + Fix thinko in textsec-url-suspicious-p + + * lisp/international/textsec.el (textsec-url-suspicious-p): Don't + bug out on non-HTTP URLs. + +2022-01-19 Lars Ingebrigtsen <larsi@gnus.org> + + Make shr mark links with suspicious URLs + + * lisp/international/textsec-check.el (textsec-propertize): New + function. + (textsec-check): Only check, don't alter STRING. + + * lisp/international/textsec.el (textsec-url-suspicious-p): New + function. + + * lisp/net/shr.el (shr-tag-a): Mark suspicious links. + +2022-01-19 Lars Ingebrigtsen <larsi@gnus.org> + + Add new file textsec-check.el + + * lisp/international/textsec-check.el: New file. + * lisp/international/textsec.el + (textsec-email-address-header-suspicious-p): Rename. + +2022-01-19 Lars Ingebrigtsen <larsi@gnus.org> + + Mark whole-script confusables as suspicious domains + + * lisp/international/textsec.el (textsec-domain-suspicious-p): + Consider domain names that are whole-script confusables with ASCII + to be suspicious. (I think this is what the Unicode standard is + recommending, but I'm not 100% sure.) + +2022-01-19 Lars Ingebrigtsen <larsi@gnus.org> + + Split textsec-email-address-suspicious-p into two functions + + * lisp/international/textsec.el + (textsec-email-address-suspicious-p): Made into its own function. + (textsec-email-suspicious-p): Use it and adjust doc strings. + +2022-01-19 Lars Ingebrigtsen <larsi@gnus.org> + + Make textsec-suspicious-nonspacing-p work on marks + + * lisp/international/textsec.el (textsec-suspicious-nonspacing-p): + We're only interested in nonspacing marks, not control characters + in this test. + +2022-01-19 Po Lu <luangruo@yahoo.com> + + Fix recent change for big endian systems where `Atom' is 64 bits + + * src/xfns.c (x_create_tip_frame): Cast atoms to xcb_atom_t + and pass a reference to that to xcb_change_property instead. + +2022-01-19 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/cus-face.el (custom-face-attributes): Expose the lambdas + +2022-01-19 Po Lu <luangruo@yahoo.com> + + Port some X11 tooltip code to XCB + + * configure.ac: Require `xcb-aux' to be present before using + XCB. + * src/xfns.c (x_sync): + (x_create_tip_frame): + (Fx_show_tip): Port window related code to XCB. + +2022-01-19 Lars Ingebrigtsen <larsi@gnus.org> + + Deconfuse textsec doc strings slightly + + * lisp/international/textsec.el (textsec-name-suspicious-p): + (textsec-domain-suspicious-p): + (textsec-local-address-suspicious-p): + (textsec-name-suspicious-p): + (textsec-suspicious-nonspacing-p): + (textsec-email-suspicious-p): Suspiciosness isn't only about + homoglyphs, so don't claim so in the doc strings. + +2022-01-19 Robert Pluim <rpluim@gmail.com> + + Improve textsec doc strings + + * lisp/international/textsec.el (textsec-domain-suspicious-p) + (textsec-local-address-suspicious-p, textsec-name-suspicious-p) + (textsec-suspicious-nonspacing-p): Improve doc strings. + +2022-01-19 Po Lu <luangruo@yahoo.com> + + Use Cairo XCB surfaces when XCB is available + + This lets us get at goodies such as shm support, which aren't + available with the xlib surface. (bug#52120) + + * configure.ac: Test for cairo-xcb if cairo is available on X. + * src/xterm.c (USE_CAIRO_XCB_SURFACE): New define. + (x_begin_cr_clip): Create XCB surfaces if available. + (x_try_cr_xlib_drawable): + (x_scroll_run): Handle XCB surfaces. + (x_term_init): Find XCB visualtype structure. + * src/xterm.h (struct x_display_info): New field `xcb_visual'. + * src/xwidget.c (x_draw_xwidget_glyph_string): Fix integer + overflow. + +2022-01-19 Eli Zaretskii <eliz@gnu.org> + + Minor improvement in textsec diagnostics + + * lisp/international/textsec.el (textsec-suspicious-nonspacing-p): + Clarify wording of the strings returned to explain the suspicious + use of nonspacing characters. + +2022-01-19 Michael Albinus <michael.albinus@gmx.de> + + Respect structure of Tramp archive file names + + * lisp/net/tramp.el (tramp-make-tramp-file-name): + Respect structure of archive file names. + +2022-01-19 Po Lu <luangruo@yahoo.com> + + * src/haikufns.c (Fx_display_mm_width): Fix copy-paste error. + +2022-01-19 Po Lu <luangruo@yahoo.com> + + Rename system tooltip variables to `use-system-tooltips' + + * doc/emacs/frames.texi (Tooltips): + * doc/emacs/haiku.texi (Haiku Basics): + * doc/lispref/display.texi (Tooltips): Document + `use-system-tooltips' instead. + + * etc/NEWS: Announce new option. + * lisp/cus-start.el (standard): Add new option. + + * lisp/term/haiku-win.el (haiku-use-system-tooltips): + * lisp/term/pgtk-win.el (x-gtk-use-system-tooltips): + * lisp/term/x-win.el (x-gtk-use-system-tooltips): Add aliases + for old options. + + * src/frame.c (syms_of_frame): New variable + `use-system-tooltips'. + + * src/haikufns.c (Fx_show_tip): + (syms_of_haikufns): + * src/pgtkfns.c (x_hide_tip): + (Fx_show_tip): + (syms_of_pgtkfns): + * src/xfns.c (x_hide_tip): + (Fx_show_tip): + (syms_of_xfns): Use `use-system-tooltips' instead of the old + platform dependent options. + +2022-01-18 Po Lu <luangruo@yahoo.com> + + Use more reliable timestamps for some kinds of events on Haiku + + * src/haiku_support.cc (DispatchMessage): + (MouseMoved): + (MouseDown): + (MouseUp): Set `time' field of event structures to input server + time. + * src/haiku_support.h (struct haiku_key_event): + (struct haiku_mouse_motion_event): + (struct haiku_button_event): New field `time'. + * src/haikuterm.c (haiku_read_socket): Use input server time + if provided. + +2022-01-18 Po Lu <luangruo@yahoo.com> + + Fix event timestamp generation on Haiku + + * src/haikuterm.c (haiku_read_socket): Use milliseconds for event + time. + +2022-01-18 Stefan Monnier <monnier@iro.umontreal.ca> + + cl-generic-tests.el: Fix warning + + * test/lisp/emacs-lisp/cl-generic-tests.el (ert): Require at run-time + for `ert--get-explainer`. + +2022-01-18 Stefan Monnier <monnier@iro.umontreal.ca> + + VC: Fix tests for SCCS and Mtn + + * test/lisp/vc/vc-tests.el: Prefer closures to `(lambda ...). + (vc-test-mtn05-rename-file, vc-test-mtn06-version-diff): Skip. + + * lisp/vc/vc.el (vc-responsible-backend): Fix vc-test--register on SCCS. + +2022-01-18 Stefan Monnier <monnier@iro.umontreal.ca> + + autoload.el: Fix corner case and avoid encoding issues + + * lisp/emacs-lisp/autoload.el (autoload-print-form): Don't burp when + autoloading a `cl-defmethod`. + (autoload-rubric): Support non-UTF-8 chars and enforce Unix EOLs. + +2022-01-18 Eli Zaretskii <eliz@gnu.org> + + Improve doc strings in textsec.el + + * lisp/international/textsec.el (textsec-mixed-numbers-p) + (textsec-ascii-confusable-p, textsec-resolved-script-set) + (textsec-single-script-confusable-p) + (textsec-mixed-script-confusable-p) + (textsec-whole-script-confusable-p, textsec-domain-suspicious-p) + (textsec-local-address-suspicious-p, textsec-name-suspicious-p) + (textsec-suspicious-nonspacing-p): Doc fix. + +2022-01-18 Eli Zaretskii <eliz@gnu.org> + + Remove 'cuneiform-numbers-and-punctuation' from w32font.c + + * src/w32font.c (syms_of_w32font, font_supported_scripts): Remove + 'cuneiform-numbers-and-punctuation'. Reported by Kévin Le Gouguec + <kevin.legouguec@gmail.com>. + +2022-01-18 Lars Ingebrigtsen <larsi@gnus.org> + + The name in textsec-email-suspicious-p is optional + + * lisp/international/textsec.el (textsec-email-suspicious-p): The + name is optional. + +2022-01-18 Lars Ingebrigtsen <larsi@gnus.org> + + Add textsec functions for verifying email addresses + + * lisp/international/characters.el (bidi-control-characters): + Rename from glyphless--bidi-control-characters for use in textsec, + and add LRM/RLM/ALM. + (update-glyphless-char-display): Adjust the code. + + * lisp/international/textsec.el (textsec-local-address-suspicious-p) + (textsec-name-suspicious-p, textsec-suspicious-nonspacing-p) + (textsec-email-suspicious-p): New functions. + +2022-01-18 Po Lu <luangruo@yahoo.com> + + Intern virtual modifier atoms the smart way on X + + * src/xterm.c (x_find_modifier_meanings): Get rid of calls to + XInternAtom. + (x_term_init): Initialize atom refs for virtual modifiers and + make sure to only call `x_find_modifier_meanings' after they + are interned. + * src/xterm.h (struct x_display_info): New fields for virtual + modifier atoms. + +2022-01-18 Lars Ingebrigtsen <larsi@gnus.org> + + Add textsec-domain-suspicious-p + + * .gitignore: Ignore idna-mapping.el. + + * admin/notes/unicode: Note idna-mapping file. + * admin/unidata/IdnaMappingTable.txt: New file. + + * admin/unidata/Makefile.in (all): Generate idna-mapping.el. + + * admin/unidata/unidata-gen.el (unidata-gen-idna-mapping): Generate. + + * lisp/international/textsec.el (textsec-domain-suspicious-p): New + function. + +2022-01-18 Michael Albinus <michael.albinus@gmx.de> + + Morka handling of multi-hops in Tramp more consistent + + * lisp/net/tramp.el (tramp-make-tramp-file-name): Adapt argument list. + Add hops to `tramp-default-proxies-alist'. + (tramp-find-foreign-file-name-handler): Adapt argument list. + (tramp-handle-abbreviate-file-name): Abbreviate multi-hops. + (tramp-handle-file-remote-p): Adapt handling of hops. + (tramp-add-hops): New defun. + (tramp-compute-multi-hops): Use it. + + * lisp/net/tramp.el (tramp-make-tramp-hop-name, tramp-get-buffer) + (tramp-file-name-handler, tramp-handle-file-truename) + (tramp-handle-insert-file-contents, tramp-local-host-p) + (tramp-read-passwd, tramp-clear-passwd): + * lisp/net/tramp-archive.el (tramp-archive-dissect-file-name) + (tramp-archive-gvfs-file-name): + * lisp/net/tramp-cache.el (tramp-get-hash-table): + * lisp/net/tramp-sh.el (tramp-sh-handle-file-truename) + (tramp-sh-handle-make-process, tramp-sh-handle-process-file) + (tramp-sh-file-name-handler-p, tramp-get-remote-path): + * lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-file-truename): + Adapt callees. + + * test/lisp/net/tramp-tests.el (tramp-test02-file-name-dissect) + (tramp-test02-file-name-dissect-simplified) + (tramp-test02-file-name-dissect-separate) + (tramp-test07-abbreviate-file-name): Adapt tests. + +2022-01-18 Po Lu <luangruo@yahoo.com> + + * src/haikuterm.c (haiku_read_socket): Add work for frame size bug. + + BWindow::ResizeTo seems to have the same rounding issues that + BRect has, but I have no idea how to solve it there. As a + temporary workaround until a solution has been found, avoid + garbaging tooltip frames when FrameResized reports different + dimensions from what they were set to. + +2022-01-18 Lars Ingebrigtsen <larsi@gnus.org> + + Add textsec predicates for different types of confusability + + * lisp/international/textsec.el (textsec-resolved-script-set) + (textsec-single-script-confusable-p) + (textsec-mixed-script-confusable-p) + (textsec-whole-script-confusable-p): New functions. + +2022-01-18 Lars Ingebrigtsen <larsi@gnus.org> + + Add textsec support for confusable characters + + * admin/notes/unicode: Note the confusables.txt file. + * admin/unidata/Makefile.in (${unidir}/uni-confusable.el): + Generate the confusable file. + + * admin/unidata/README (https): Add confusables.txt. + + * admin/unidata/confusables.txt: New file. + + * admin/unidata/unidata-gen.el (unidata-gen-confusable): Parse the + confusables.txt file. + + * lisp/international/textsec.el (textsec-ascii-confusable-p) + (textsec-unconfuse-string): New functions. + +2022-01-18 Lars Ingebrigtsen <larsi@gnus.org> + + Improve textsec-restriction-level doc string + + * lisp/international/textsec.el (textsec-restriction-level): + Improve doc string. + +2022-01-18 Po Lu <luangruo@yahoo.com> + + * src/haikufns.c (Fx_show_tip): Fix typo. + +2022-01-18 Po Lu <luangruo@yahoo.com> + + Fix default value of `no-special-glyphs' frame parameter on Haiku + + * src/haikufns.c (haiku_create_frame): Make `no-special-glyphs' + nil by default. + +2022-01-18 Po Lu <luangruo@yahoo.com> + + Improve tooltip implementation on Haiku + + This fixes several issues: tooltips having no right internal + border, reusing tooltips occasionally freezing Emacs, and + inconsistent behavior when compared to X. + + * src/haiku_support.cc (BWindow_resize): Revert a recent change. + (BView_move_frame): + (BWindow_set_avoid_focus): Stop sync'ing when locked. This + tends to cause lockups for an unknown reason. + * src/haikufns.c (initial_setup_back_buffer): New function. + (haiku_create_frame): Remove tooltip related code. + (haiku_set_internal_border_width): Handle cases where the face + cache is NULL and/or the window has not been created. + (haiku_set_inhibit_double_buffering): Likewise. + (haiku_create_tip_frame): New function. + (Fx_create_frame): Remove tooltip specific code. + (Fx_show_tip): Synchronize code with X. + + * src/haikuterm.c (haiku_new_font): Don't adjust size on tooltip + frames. + (haiku_read_socket): Draw internal border on tooltip frames + during resize. + (haiku_clear_under_internal_border): Handle cases where the face + cache is NULL. + +2022-01-18 Po Lu <luangruo@yahoo.com> + + * lisp/tooltip.el (tooltip-show-help): Fix typo. + +2022-01-17 Po Lu <luangruo@yahoo.com> + + * lisp/tooltip.el: Fix warning when built on a non-Haiku system. + +2022-01-17 Po Lu <luangruo@yahoo.com> + + Fix system tooltips above menus + + * src/haikufns.c (Fx_show_tip): Disable frame reuse inside a + menu. + (syms_of_haikufns): New symbol `tooltip-reuse-hidden-frame'. + +2022-01-17 Po Lu <luangruo@yahoo.com> + + Allow non-system tooltips to display above menus on Haiku + + * doc/emacs/haiku.texi (Haiku Basics): Document that tooltips + can now be displayed above the menu bar. + + * lisp/tooltip.el (tooltip-show-help): Only display help text in + the echo area if Haiku system tooltips are enabled. + + * src/haiku_support.cc (FlipBuffers): Stop flushing view. + * src/haikufns.c (Fx_show_tip): Fix a sizing bug leading to + tooltips needing two redisplays to display correctly. + * src/haikuterm.c (haiku_read_socket): Ignore resize events on + tooltips. + +2022-01-17 Stefan Monnier <monnier@iro.umontreal.ca> + + (hack-local-variables--find-variables): Use `user-error` + + * lisp/files.el (hack-local-variables--find-variables): + Incorrect formatting are not coding errors. + +2022-01-17 Stefan Kangas <stefankangas@gmail.com> + + Change rust language server to rust-analyzer + + rust-analyzer is the officially blessed Language Server for Rust: + https://github.com/rust-lang/rfcs/pull/2912 + + Also drop the special support code for RLS. + + * eglot.el (eglot-server-programs): Add rust-mode language server + "rust-analyzer" and prefer it to the older "rls". + (eglot-rls, jsonrpc-connection-ready-p) + (eglot-handle-notification): Delete special support for "rls". + + * eglot-tests.el (rls-analyzer-watches-files) + (rls-analyzer-hover-after-edit): Rename to ... + (rust-analyzer-watches-files) + (rust-analyzer-hover-after-edit): ... this. Update tests to work + with rust-analyzer. + * README.md: Update references for RLS to point to rust-analyzer. + * NEWS.md: Announce above change. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/803 + +2022-01-17 Eli Zaretskii <eliz@gnu.org> + + Fix minor inconsistencies in 'char-script-table' + + * admin/unidata/blocks.awk (name2alias): Map some obscure blocks + to their native scripts, to follow Scripts.txt. + + * lisp/international/characters.el (char-script-table): Add + few exceptions. + * lisp/international/fontset.el (script-representative-chars): + Remove scripts no longer used. + +2022-01-17 Eli Zaretskii <eliz@gnu.org> + + Doc fixes in textsec.el + + * lisp/international/textsec.el (textsec-scripts) + (textsec-single-script-p, textsec-covering-scripts): Clarify "script". + +2022-01-17 Lars Ingebrigtsen <larsi@gnus.org> + + Change textsec-mixed-numbers-p to use recommended algorithm + + * lisp/international/textsec.el (textsec-mixed-numbers-p): New + function. + +2022-01-17 Lars Ingebrigtsen <larsi@gnus.org> + + Add new function textsec-mixed-numbers-p + + * lisp/international/textsec.el (textsec-mixed-numbers-p): New + function. + +2022-01-17 Lars Ingebrigtsen <larsi@gnus.org> + + Add some textsec-restriction-level comments + + * lisp/international/textsec.el (textsec-restriction-level): Add + comment about source of the list of languages. + +2022-01-17 Lars Ingebrigtsen <larsi@gnus.org> + + Add textsec-restriction-level function + + * lisp/international/textsec.el (textsec-restriction-level): New + function. + +2022-01-17 Lars Ingebrigtsen <larsi@gnus.org> + + Fix some doc strings in textsec.el + + * lisp/international/textsec.el (textsec-single-script-p): Fix + typo in doc string. + (textsec-covering-scripts): Improve doc string and sort the results. + +2022-01-17 Lars Ingebrigtsen <larsi@gnus.org> + + Avoid loading the possibly stale unidata-gen.elc file + + * admin/unidata/Makefile.in (${unidir}/uni-scripts.el): Fix .elc + staleness. (Should probably be fixed in a different way.) + +2022-01-17 Lars Ingebrigtsen <larsi@gnus.org> + + Add support for functions that deal with Unicode scripts + + * admin/unidata/Makefile.in (${unidir}/uni-scripts.el): Build + uni-scripts.el. + + * admin/unidata/Scripts.txt: + * admin/unidata/ScriptExtensions.txt: + * admin/unidata/PropertyValueAliases.txt: New files from Unicode. + + * admin/unidata/README: Update. + + * admin/unidata/unidata-gen.el (unidata-gen-charprop): Allow + writing other data, too. + (unidata-gen-scripts, unidata-gen--read-script-aliases) + (unidata-gen--insert-file): New functions to parse the Script* files. + + * lisp/international/textsec.el: Implement some functions that + work on scripts. + +2022-01-17 Lars Ingebrigtsen <larsi@gnus.org> + + Move the Gnus range functions to a new range.el file + + * lisp/emacs-lisp/range.el: New file. + + * lisp/gnus/gnus-agent.el (range): + (gnus-agent-synchronize-group-flags): + (gnus-agent-possibly-alter-active): + (gnus-agent-fetch-headers): + (gnus-agent-read-agentview): + (gnus-agent-fetch-group-1): + (gnus-agent-read-p): + (gnus-agent-expire-group-1): + (gnus-agent-retrieve-headers): Adjust callers. + + * lisp/gnus/gnus-art.el (range): + (gnus-article-describe-bindings): + + * lisp/gnus/gnus-cloud.el (range): + (gnus-cloud-available-chunks): + + * lisp/gnus/gnus-draft.el (gnus-group-send-queue): + + * lisp/gnus/gnus-group.el (range): + (gnus-group-line-format-alist): + (gnus-number-of-unseen-articles-in-group): + (gnus-group-update-eval-form): + (gnus-group-read-group): + (gnus-group-delete-articles): + (gnus-group-catchup): + (gnus-group-expire-articles-1): + (gnus-add-marked-articles): + + * lisp/gnus/gnus-int.el (gnus-request-marks): + + * lisp/gnus/gnus-kill.el (gnus-apply-kill-file-internal): + + * lisp/gnus/gnus-range.el (gnus-range-difference) + (gnus-sorted-range-intersection, gnus-uncompress-range) + (gnus-add-to-range, gnus-remove-from-range) + (gnus-member-of-range, gnus-list-range-intersection) + (gnus-list-range-difference, gnus-range-length, gnus-range-add) + (gnus-range-map): Make into obsolete aliases. + + * lisp/gnus/gnus-start.el (gnus-make-articles-unread): + (gnus-convert-old-ticks): + (gnus-read-old-newsrc-el-file): + + * lisp/gnus/gnus-sum.el (gnus-select-newsgroup): + (gnus-articles-to-read): + (gnus-articles-to-read): + (gnus-killed-articles): + (gnus-adjust-marked-articles): + (gnus-update-marks): + (gnus-update-marks): + (gnus-compute-read-articles): + (gnus-list-of-read-articles): + (gnus-summary-update-info): + (gnus-summary-move-article): + (gnus-summary-expire-articles): + (gnus-update-read-articles): + (gnus-summary-insert-old-articles): + (gnus-summary-insert-old-articles): + (gnus-summary-insert-old-articles): + + * lisp/gnus/mail-source.el (gnus-range): + (gnus-compress-sequence): + + * lisp/gnus/nnheader.el (range): + (gnus-range-add): + (nnheader-update-marks-actions): + + * lisp/gnus/nnimap.el (nnimap-update-info): + (nnimap-update-info): + (nnimap-update-info): + (nnimap-update-qresync-info): + (nnimap-update-qresync-info): + (nnimap-update-qresync-info): + (nnimap-parse-copied-articles): + + * lisp/gnus/nnmaildir.el (nnmaildir-request-update-info): + (nnmaildir-request-update-info): + (nnmaildir-request-expire-articles): + (nnmaildir-request-expire-articles): + (nnmaildir-request-set-mark): + + * lisp/gnus/nnmairix.el (nnmairix-request-set-mark): + + * lisp/gnus/nnmbox.el (nnmbox-record-active-article): + (nnmbox-record-deleted-article): + + * lisp/gnus/nnml.el (nnml-request-compact-group): + + * lisp/gnus/nnvirtual.el (nnvirtual-request-expire-articles): + * lisp/gnus/nnselect.el (numbers-by-group): + (nnselect-request-update-info): + (nnselect-push-info): + +2022-01-17 Po Lu <luangruo@yahoo.com> + + Merge from origin/emacs-28 + + f393d0d441 Fix regression leading to flickering tooltips when the mou... + +2022-01-17 Eli Zaretskii <eliz@gnu.org> + + Revert "Add undelete-frame-max instead of undelete-frame-mode (bug#51883)" + + This reverts commit 714e11d53534416b6519396a9df5d62054731810. + + That commit was unilateral and disregarded past discussions. + +2022-01-17 Eli Zaretskii <eliz@gnu.org> + + Revert "* etc/NEWS: Improve wording of 'undelete-frame-max' (bug#51883)." + + This reverts commit 65666c47863c4ad2ed4bacd1a0bc5e638269df52. + + The original commit was unilateral and disregarded past + discussions. + +2022-01-17 Po Lu <luangruo@yahoo.com> + + Fix Emacs icon not appearing on Haiku + + * lib-src/be_resources.cc (main): Scale input bitmap + appropriately before setting it as the mini and large icons. + * src/Makefile.in (Emacs): Add dependency on + `lib-src/be-resources'. + +2022-01-17 Po Lu <luangruo@yahoo.com> + + Use BControlLook to determine scroll bar size on Haiku + + * src/haiku_support.cc (BScrollBar_default_size): Use + BControlLook instead of legacy constants. + +2022-01-17 Po Lu <luangruo@yahoo.com> + + Display override redirect frames in all workspaces on Haiku + + * src/haiku_support.cc (class EmacsWindow): New field + `pre_override_redirect_workspaces'. + (BWindow_set_override_redirect): Set window to display on all + workspaces. + +2022-01-17 Michael Albinus <michael.albinus@gmx.de> + + Improve handling of INFILE in tramp*-process-file (Bug#53284) + + * lisp/net/tramp-adb.el (tramp-adb-handle-process-file): + * lisp/net/tramp-sh.el (tramp-sh-handle-process-file): + * lisp/net/tramp-smb.el (tramp-smb-handle-process-file): + * lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file): + Improve handling of INFILE. Fix thinko using + `process-file-side-effects'. (Bug#53284) + + * lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist): + Use `tramp-sshfs-handle-set-file-times'. + (tramp-sshfs-handle-set-file-times): New defun. + + * test/lisp/net/tramp-tests.el (tramp-test28-process-file): Extend test. + +2022-01-17 Juri Linkov <juri@linkov.net> + + * etc/NEWS: Improve wording of 'undelete-frame-max' (bug#51883). + +2022-01-17 Po Lu <luangruo@yahoo.com> + + * src/haikufns.c (Fx_show_tip): Sync after making window visible. + +2022-01-16 Po Lu <luangruo@yahoo.com> + + Really eliminate tooltip flicker on Haiku + + * src/haikufns.c (tip_frame): Make non-static. + * src/haikuterm.c (haiku_read_socket): Ignore motion events that + didn't actually move when a tip frame is visible. + * src/haikuterm.h (tip_frame): Declare. + +2022-01-16 Po Lu <luangruo@yahoo.com> + + Translate timestamps when using GTK native input + + * src/gtkutil.c (xg_widget_key_press_event_cb): Use timestamp + specified in key event. + (xg_filter_key): Translate timestamps. + +2022-01-16 Po Lu <luangruo@yahoo.com> + + Exercise wire right after event is filtered for native input + + * src/xterm.c (handle_one_xevent): Run a no-op immediately after + an event was filtered by GDK. + +2022-01-16 Juri Linkov <juri@linkov.net> + + Add undelete-frame-max instead of undelete-frame-mode (bug#51883) + + * doc/emacs/frames.texi (Frame Commands): Replace + undelete-frame-mode with undelete-frame-max. + + * lisp/frame.el (undelete-frame-max): New defcustom, by default 1. + (undelete-frame--handle-delete-frame): Use undelete-frame-max + instead of hard-coded 16. + (undelete-frame-mode): Remove function. + (after-init-hook): Add hook undelete-frame--handle-delete-frame to + delete-frame-functions using after-init-hook to not store the + initial frame. + (undelete-frame): Remove undelete-frame-mode. Use undelete-frame-max + instead of hard-coded 16. + + * lisp/menu-bar.el (menu-bar-file-menu): Remove menu item undelete-frame-mode. + + * src/frame.c (Fdelete_frame): Replace `undelete-frame-mode' with + `undelete-frame-max' in the docstring. + +2022-01-16 Matthias Meulien <orontee@gmail.com> + + Extend Outline mode with default visibility state + + * etc/NEWS: Announce support for default visibility state (bug#51809). + + * lisp/outline.el (outline-mode, outline-minor-mode): Ensure default + visibility state is applied with outline-apply-default-state. + (outline-default-state, outline-default-rules) + (outline-default-long-line, outline-default-line-count): New defcustoms. + (outline-apply-default-state, outline-show-only-headings) + (outline--show-headings-up-to-level): New functions. + +2022-01-16 Po Lu <luangruo@yahoo.com> + + Fix XI2 event filtering for very old versions of libXi + + * src/xterm.c (handle_one_xevent): Handle cases where + xev->display is NULL. + +2022-01-16 Stefan Kangas <stefankangas@gmail.com> + + * eglot.el (eglot--server-capable): don't use obsolete name. + +2022-01-16 Stefan Kangas <stefankangas@gmail.com> + + Obsolete eglot--plist-keys in favor of map-keys + + * eglot.el (eglot--plist-keys): Make into obsolete function alias + for map-keys. + +2022-01-16 Po Lu <luangruo@yahoo.com> + + Fix the xft build + + * src/xsettings.h [!HAVE_PGTK]: Include dispextern.h and remove + duplicate definition of Display_Info. + +2022-01-16 Po Lu <luangruo@yahoo.com> + + Use kMenuWindowFeel on Haiku toolkip windows + + * src/haiku_support.cc (BWindow_set_tooltip_decoration): Use + kMenuWindowFeel and set flags here. + * src/haikufns.c (Fx_show_tip): Don't set_avoid_focus manually + since setting tooltip decorations already does that. + +2022-01-16 Po Lu <luangruo@yahoo.com> + + Make help event generation on Haiku behave closer to X + + * src/haikuterm.c (haiku_read_socket): Generate help events more + like how X does it. + +2022-01-16 Po Lu <luangruo@yahoo.com> + + Reduce poll time for Haiku file dialogs + + * src/haiku_support.c (be_popup_file_dialog): Reduce idle + processor load by increasing timeout. The timeout is still too + low to be noticeable by the user. + +2022-01-16 Po Lu <luangruo@yahoo.com> + + * src/gtkutil.c (xg_widget_key_press_event_cb): Also raise input signal. + +2022-01-16 Yuuki Harano <masm+github@masm11.me> + + * src/pgtkterm.c (evq_flush): Shift events one by one + +2022-01-16 Po Lu <luangruo@yahoo.com> + + Avoid focus and allow monospace text in tooltip frames on Haiku + + * src/haikufns.c (Fx_show_tip): Set avoid focus on tooltip + frames. + + * src/haikuterm.c (haiku_default_font_parameter): Don't special + case the default font on tooltip frames, since the bug that was + supposed to work around has already been fixed. + +2022-01-16 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + e488601849 Update to Org 9.5.2-9-g7ba24c + 95640360f0 * lisp/net/dictionary.el (dictionary-context-menu): Use pa... + +2022-01-16 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 7f36aca99d * lisp/indent.el (tab-first-completion): Fix incorrect cho... + +2022-01-16 Po Lu <luangruo@yahoo.com> + + Update modifier meanings even if an xkb_desc was not available + + * src/xterm.c (handle_one_event): Always update modifiers after + the keyboard mapping is refreshed. + +2022-01-15 Po Lu <luangruo@yahoo.com> + + * src/xwidget.c (webkit_js_to_lisp): Use correct constant to check size. + +2022-01-15 Po Lu <luangruo@yahoo.com> + + Fix a minor snafu when resizing frames on Haiku + + * src/haiku_support.cc (BWindow_resize): Adjust for minor snafu + where BWindow::ResizeTo uses BRect-style width and height + instead of actual width and height. + +2022-01-15 Tassilo Horn <tsdh@gnu.org> + + Add some more mailcap tests. + + * test/lisp/net/mailcap-resources/mailcap: New file. + * test/lisp/net/mailcap-resources/test.test: New file. + * test/lisp/net/mailcap-tests.el (with-pristine-mailcap): New macro. + (mailcap-parsing-and-mailcap-mime-info): New test for parsing mailcap + files and selecting the right viewer. + (mailcap--test-result): New variable. + (mailcap--test-viewer): New function. + (mailcap-view-file): New test for mailcap-view-file. + +2022-01-15 Stefan Kangas <stefankangas@gmail.com> + + Remove unnecessary compatibility code + + * eglot.el (eglot-mode-map): Remove unnecessary compatibility + code. We already depend on eldoc 0.11.0. + +2022-01-15 Juri Linkov <juri@linkov.net> + + * lisp/mouse.el (context-menu-map): Select clicked window (bug#53249). + +2022-01-15 Juri Linkov <juri@linkov.net> + + More fixes for recently committed context-menu additions from bug#52973 + + * lisp/hi-lock.el (highlight-symbol-at-mouse): New defalias. + (hi-lock-face-symbol-at-mouse): Rename from hi-lock-symbol-at-mouse. + (hi-lock-context-menu): Use thing-at-mouse and middle-separator. + + * lisp/man.el (Man-context-menu): Fix Man-at-mouse and use middle-separator. + + * lisp/mouse.el (context-menu-functions): Remove context-menu-online-search. + Add occur-context-menu and dictionary-context-menu (bug#50552). + +2022-01-15 Stefan Kangas <stefankangas@gmail.com> + + Improve backwards-compatibility of eglot-mode-map + + * eglot.el (eglot-mode-map): Only bind to eldoc-doc-buffer in Emacs + 28.1 or later. + +2022-01-15 Juri Linkov <juri@linkov.net> + + * doc/emacs/search.texi (Special Isearch): Move isearch-char-by-name item back + + Put it at the end of the list and still closer to isearch-emoji-by-name. + +2022-01-15 Alan Mackenzie <acm@muc.de> + + Remove the remnants of old position mechanism from scratch/correct-warning-pos + + Also correct one or two positions in macroexp-warn-and-return invocations. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-read-position) + (byte-compile-last-position, byte-compile-set-symbol-position): Remove. + (byte-compile-warning-prefix, byte-compile-function-warn) + (byte-compile-emit-callargs-warn, byte-compile-arglist-warn) + (byte-compile-warn-about-unresolved-functions, compile-defun) + (byte-compile-from-buffer, byte-compile-from-buffer) + (byte-compile-file-form-defmumble, byte-compile-check-lambda-list) + (byte-compile-lambda, byte-compile-form, byte-compile-normal-call) + (byte-compile-check-variable, byte-compile-push-constant) + (byte-compile-subr-wrong-args, byte-compile-negation-optimizer) + (byte-compile-condition-case, byte-compile-defvar, byte-compile-autoload) + (byte-compile-lambda-form): Remove the remnants of the old warning position + mechanism. + (byte-compile-function-warn): Replace byte-compile-last-position by a + symbol-with-pos-pos call. + (compile-defun): Use local variable start-read-position to fulfill purpose of + old byte-compile-read-position. Push the just read FORM onto + byte-compile-form-stack. + + * lisp/emacs-lisp/eieio.el (defclass): New mechanism to get the correct + source warning position to macroexp-warn-and-return. + + * lisp/emacs-lisp/macroexp.el (macroexp--unfold-lambda): Correct + the position argument given to macroexp-warn-and-return. + +2022-01-15 Stefan Kangas <stefankangas@gmail.com> + + * eglot.el (eglot-strict-mode): very minor docfix. + +2022-01-15 Stefan Monnier <monnier@iro.umontreal.ca> + + * pcvs-info.el (cvs-mode-toggle-mark): Typo + +2022-01-15 Eli Zaretskii <eliz@gnu.org> + + Fix setting cursor in pixel-scrolling modes + + * src/xdisp.c (redisplay_window): Don't set cursor to any glyph + row past the one that contains EOB. (Bug#53275) + +2022-01-15 Lars Ingebrigtsen <larsi@gnus.org> + + Don't strip properties in show-paren-function + + * lisp/paren.el (show-paren-function): Don't strip text properties + (bug#51606) because that makes the offscreen context less + informative. + +2022-01-15 Stefan Kangas <stefankangas@gmail.com> + + * eglot.el (eglot--connect): display seconds on timeout. + +2022-01-15 Po Lu <luangruo@yahoo.com> + + Use preferred XIM style without trying to detect if it's supported + + The old code would in general fall back to the default if the + preferred style wasn't available, which is usually worse than + what the user specified + + * src/xfns.c (best_xim_style): Stop checking if the preferred + input style is supported. + +2022-01-15 Stefan Kangas <stefankangas@gmail.com> + + Print server command to events buffer + + * eglot.el (eglot--connect): Print server command to events + buffer. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/476 + +2022-01-15 Lars Ingebrigtsen <larsi@gnus.org> + + Add emoji-alternate-names variable + + * lisp/international/emoji.el (emoji-alternate-names): New + variable (bug#52860). + (emoji-search): Note usage. + (emoji--choose-emoji): Use it. + +2022-01-15 Tassilo Horn <tsdh@gnu.org> + + mailcap: Docfix & handle function-viewer case in mailcap-view-file + + * lisp/net/mailcap.el (mailcap-mime-data): Fix docstring: if viewer is + a symbol/function, it should have zero args and expect the file's + contents to be in the current buffer. + (mailcap-view-file): Implement the case where the chosen viewer is a + function and not a shell command. + +2022-01-15 Po Lu <luangruo@yahoo.com> + + Prevent pre-edit overlay text from being displayed after a command + + This works around buggy input methods causing the overlay to be + displayed alongside newly inserted text for a brief period. + + * lisp/term/x-win.el (x-clear-preedit-text): New function. + (x-preedit-text): Add said function to pre-command-hook. It + will remove itself when triggered. + +2022-01-15 Po Lu <luangruo@yahoo.com> + + * src/emacsgtkfixed.c (XSetWMSizeHints): Remove some useless code. + +2022-01-15 Lars Ingebrigtsen <larsi@gnus.org> + + Don't bug out on improper lists in pp-emacs-lisp-code + + * lisp/emacs-lisp/pp.el (pp--format-list): Don't bug out on + improper lists (bug#52917). + +2022-01-15 Tom Tromey <tom@tromey.com> + + Use "server complete" instead of "complete" in gud-gdb-completions + + * lisp/progmodes/gud.el (gud-gdb-completions): gud-gdb sends a + "complete" command to gdb to implement command line completion. It + would be better to send "server complete". This is what Emacs does + for other behind-the-scenes commands it sends (bug#52922). + +2022-01-15 Alex Bochannek <alex@bochannek.com> + + (gnus-summary-hide-thread): Fix thread hiding for dummy roots. + + * lisp/gnus/gnus-sum.el (gnus-summary-hide-thread): Make thread + hiding work when using dummy `gnus-summary-make-false-root' + (bug#52923). + +2022-01-15 Lars Ingebrigtsen <larsi@gnus.org> + + Improve the with-output-to-temp-buffer doc string + + * lisp/subr.el (with-output-to-temp-buffer): Clarify the point of + the macro (bug#53265). + +2022-01-15 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "Add command to invoke a search engine" + + This reverts commit 3f36d0836274a01d3cfc73f53ddbc76afc1d8a5e. + + Similar functionality has been added to webjump, so this commit duplicated that. + +2022-01-15 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 5990148860 * lisp/simple.el (undo-no-redo): Fix customization group + ac2cdb8a46 * lisp/progmodes/xref.el (xref-file-name-display): Fix doc... + c05864dd25 Avoid another segfault in 'face_at_buffer_position' + +2022-01-15 Po Lu <luangruo@yahoo.com> + + Find a way to make lowering frames work on Haiku + + * doc/lispref/frames.texi (Raising and Lowering): Document that + lowering frames is now supported on Haiku. + * src/haikuterm.c (haiku_frame_raise_lower): Implement a hack to + lower frames. + +2022-01-15 Po Lu <luangruo@yahoo.com> + + Filter key release events when using native input without having XIM + + * src/xterm.c (handle_one_xevent): Also check for XI key + release events when using native input on a build without XIM. + +2022-01-14 Po Lu <luangruo@yahoo.com> + + Fix native input when using core input events + + * src/gtkutil.c (xg_filter_key): Test for core key press events + correctly. + * src/xterm.c (handle_one_xevent): Also check for KeyRelease + events. + +2022-01-14 Po Lu <luangruo@yahoo.com> + + Remove non-functional configure test + + It cannot work anymore, leading to compiler warnings when + building xterm.c. + + * configure.ac: Remove test for whether + XRegisterIMInstantiateCallback wants XPointer or XPointer * as + the client_data. + + * src/xterm.c (xim_initialize): + (xim_close_dpy): Just cast client data to void * and hope that + the compiler keeps quiet. + +2022-01-14 Stefan Monnier <monnier@iro.umontreal.ca> + + pcvs-info.el: Prefer `declare-function` over `autoload` + + * lisp/vc/pcvs-info.el (cvs-mode-toggle-mark): Use `declare-function` + to silence the byte-compiler warning. + +2022-01-14 Philipp Stephani <phst@google.com> + + * lisp/indent.el (indent-for-tab-command): Use 'eq' for symbols. + +2022-01-14 Philipp Stephani <phst@google.com> + + indent-for-tab-command: Deal with large point or modiff values. + + * lisp/indent.el (indent-for-tab-command): Don't use 'eq' to compare + integers that aren't guaranteed to be fixnums. + +2022-01-14 Philipp Stephani <phst@google.com> + + Simplify code for 'indent-for-tab-command' slightly. + + * lisp/indent.el (indent-for-tab-command): Don't use a one-element + list for SYN. + +2022-01-14 Alan Mackenzie <acm@muc.de> + + Merge branch 'master' into scratch/correct-warning-pos + + Merge branch: + commit d29291d665e808307126bf52c3e748fef78f0f9c (HEAD -> master, + origin/master, origin/HEAD) + Author: Stefan Monnier <monnier@iro.umontreal.ca> + Date: Fri Jan 14 12:26:30 2022 -0500 + + (macroexp--expand-all): Fix bug#53227 and bug#46636 + +2022-01-14 Alan Mackenzie <acm@muc.de> + + Commit fixes and enhancements to the scratch/correct-warning-pos branch + + No longer strip positions from symbols before each use of a form, instead + relying on the low level C routines to do the right thing. Instead strip them + from miscellaneous places where this is needed. Strip them also in + `function-put'. + + Push forms onto byte-compile-form-stack and pop them "by hand" rather than by + binding the variable at each pushing, so that it will still have its data + after an error has been thrown and caught by a condition case. This gives an + source position to the ensuing error message. + + * lisp/emacs-lisp/byte-run.el (byte-run--ssp-seen, byte-run--circular-list-p) + (byte-run--strip-s-p-1, byte-run-strip-symbol-positions): New functions and + variables, which together implement stripping of symbol positions. The latest + (?final) version modifies the argument in place rather than making a copy. + (function-put): Strip symbol positions from all of the arguments before doing + the `put'. + + * lisp/emacs-lisp/bytecomp.el (byte-compile--form-stack): has been renamed to + byte-compile-form-stack and moved to macroexp.el. + (byte-compile-initial-macro-environment (eval-and-compile)): Replace + macroexpand-all-toplevel with macroexpand--all-toplevel. + (displaying-byte-compile-warnings): bind byte-compile-form-stack here. + (byte-compile-toplevel-file-form, byte-compile-form): Push the top level form + onto byte-compile-form-stack (whereas formally the variable was bound at each + pushing). Manually pop this from of the variable at the end of the function. + + * lisp/emacs-lisp/cl-macs.el (cl-define-compiler-macro): Remove the symbol + stripping. + + * lisp/emacs-lisp/comp.el (comp--native-compile): Set max-specpdl-size to at + least 5000 (previously it was 2500). Bind print-symbols-bare to t. + + * lisp/emacs-lisp/macroexp.el (byte-compile-form-stack): Definition move here + from bytecomp.el for easier compilation. + (byte-compile-strip-symbol-positions and associated functions): Removed. + (macro--expand-all): push argument FORM onto byte-compile-form-stack at the + start of this function, and pop it off at the end. + (internal-macroexpand-for-load): No longer strip symbol positions. Bind + symbols-with-pos-enabled and print-symbols-bare to t. + + * lisp/help.el (help--make-usage): Strip any position from argument ARG. + + * src/fns.c (Fput): No longer strip symbol positions from any of the + arguments. + +2022-01-14 Stefan Monnier <monnier@iro.umontreal.ca> + + (macroexp--expand-all): Fix bug#53227 and bug#46636 + + * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Don't mis-expand + invalid funcalls. + +2022-01-14 Stefan Kangas <stefan@marxist.se> + + image-dired: Use MD5 for thumb filename generation + + * lisp/image-dired.el (image-dired-thumb-name): Revert back to MD5 for + file name generation to preserve backwards-compatibility. (Bug#53229) + +2022-01-14 Po Lu <luangruo@yahoo.com> + + * src/xterm.c: Add a small writeup on input handling on X. + + Hopefully I will extend this section with details about more + aspects of X11 support in the future. + +2022-01-14 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerate ldefs-boot.el + + Skip ffap test on some systems + +2022-01-14 Lars Ingebrigtsen <larsi@gnus.org> + + Make function-alias-p use a better error symbol + + * lisp/subr.el (function-alias-p): Use the same error symbol as + `indirect-function'. + +2022-01-14 Lars Ingebrigtsen <larsi@gnus.org> + + Don't have ffap interpret ":/bin" as the current directory + + * lisp/ffap.el (ffap-file-at-point): Don't interpret :/bin as the + current directory (bug#52441). + +2022-01-14 Lars Ingebrigtsen <larsi@gnus.org> + + Add a `shortdoc' convenience alias + + * lisp/emacs-lisp/shortdoc.el (shortdoc): Add a convenience alias + (bug#52968). + +2022-01-14 Po Lu <luangruo@yahoo.com> + + Fix leak when refs are sent to a frame during destruction on Haiku + + * src/haikuterm.c (haiku_read_socket): Free b->ref if it was + sent from a frame that was destroyed. + +2022-01-14 Po Lu <luangruo@yahoo.com> + + Make sure the X mouse position hook always looks at an X frame + + * src/xterm.c (XTmouse_position): Check that f1 is an X frame. + +2022-01-14 Robert Pluim <rpluim@gmail.com> + + spelling-tests.el: use ert-with-temp-directory + + * test/lisp/so-long-tests/spelling-tests.el (so-long-spelling): Use + ;ert-with-temp-directory' instead of passing :directory to + 'ert-with-temp-file', and restore the prefix/suffix values used + originally with 'make-temp-file'. + +2022-01-14 Robert Pluim <rpluim@gmail.com> + + spelling-tests.el: ignore errors when checking for ispell + + ispell-valid-dictionary-list can signal an error, eg when the local + hunspell installation cannot find any dictionaries, so it's best to + ignore that error. + + * test/lisp/so-long-tests/spelling-tests.el (so-long-spelling): Wrap + ispell check in ignore-errors, as ispell-valid-dictionary-list can + signal an error. + +2022-01-14 Lars Ingebrigtsen <larsi@gnus.org> + + Add new context menu functions to the context-menu-functions type + + * lisp/mouse.el (context-menu-functions): Add new menu functions + to the defcustom type list (bug#52973). + +2022-01-14 Philip Kaludercic <philipk@posteo.net> + + Add command to invoke a search engine + + * mouse.el (context-menu-online-search): Add new function + (eww-search-prefix): Declare variable from eww.el + (mouse-online-search-at-point): Add new command + +2022-01-14 Philip Kaludercic <philipk@posteo.net> + + Implement context-menu-mode support for hi-lock + + * hi-lock.el (hi-lock-symbol-at-mouse): Add new command + (hi-lock-context-menu): Add new function + +2022-01-14 Philip Kaludercic <philipk@posteo.net> + + Implement context-menu-mode support for man pages + + * man.el (Man-at-mouse): Add new command + (Man-context-menu): Add new function + +2022-01-14 Juri Linkov <juri@linkov.net> + + Fix @item in the Emacs manual + + * doc/emacs/maintaining.texi (Identifier Search): Replace @itemx with @item. + + * doc/emacs/search.texi (Special Isearch): Remove @item. + +2022-01-14 Lars Ingebrigtsen <larsi@gnus.org> + + Fix mailcap setup when no mailcap files exist + + * lisp/net/mailcap.el (mailcap-parse-mailcaps): Ensure that we + populate mailcap--computed-mime-data even if none of the files + exist (bug#53009). + +2022-01-14 Lucien Cartier-Tilet <lucien@phundrak.com> (tiny change) + + (battery-status-function) Fix errors in Termux + + * lisp/battery.el (battery-status-function): In Termux, neither + /sys/ or /proc/ are readable on phones that are not rooted. This + patch makes Emacs verify if they are readable before it attempts + reading them (bug#53026). + +2022-01-14 Robert Pluim <rpluim@gmail.com> + + Improve some nntp/nnimap error messages + + * lisp/gnus/nntp.el (nntp-send-string): + (nntp-wait-for): + (nntp-accept-process-output): + (nntp-possibly-change-group): + * lisp/gnus/nnimap.el (nnimap-retrieve-headers): Improve error + messages (bug#53070). + +2022-01-14 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/xref.el (xref-query-replace-in-results): Fix prefix-arg. + + Use current-prefix-arg. + +2022-01-14 Juri Linkov <juri@linkov.net> + + * doc/emacs/search.texi (Special Isearch): Put related items together. + + Move isearch-char-by-name closer to isearch-emoji-by-name. + +2022-01-14 Eli Zaretskii <eliz@gnu.org> + + Update docs of 'xref-query-replace-in-results' + + * doc/emacs/maintaining.texi (Identifier Search): Update the + documentation of 'xref-query-replace-in-results'. + +2022-01-14 Sergey Vinokurov <serg.foo@gmail.com> + + Use assq_no_quit on all local_var_alist accesses + + * src/data.c (Fkill_local_variable): + * src/buffer.c (buffer_local_value): Use assq_no_quit instead of + Fassoc/Fassq on local_var_alist (bug#53242). + + * src/data.c (Flocal_variable_p): Use assq_no_quit instead of + open-coding the search on local_var_alist. + +2022-01-14 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of 'xref-find-references-and-replace' + + * etc/NEWS: Clarify the 'xref-find-references-and-replace' entry. + + * doc/emacs/maintaining.texi (Identifier Search): Document + 'xref-find-references-and-replace'. + +2022-01-14 Miha Rihtaršič <miha@kamnitnik.top> + + Fix python-eldoc affecting unrelated comint processes + + * lisp/progmodes/python.el (python-shell-send-string-no-output): Don't + let-bind comint-preoutput-filter-functions globally for all comint + processes. Modify the behavior of only the current python + process (bug#53219). + +2022-01-14 Robert Pluim <rpluim@gmail.com> + + Improve function-alias-p documentation + + * doc/lispref/functions.texi (Defining Functions): Improve the text. + +2022-01-14 Po Lu <luangruo@yahoo.com> + + Try to make sure an XKB desc is always available + + * src/xterm.c (handle_one_xevent): Re-retrieve XKB map if it's + unavailable for some reason upon handling an XKB map or keyboard + notify event. + +2022-01-14 Lars Ingebrigtsen <larsi@gnus.org> + + Fix byte-compilation warning in pcvs-info + + * lisp/vc/pcvs-info.el (cvs-mode-toggle-mark): Fix + byte-compilation warning. + +2022-01-14 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 34ca4ff9a5 Fix Edebug specification for inline functions (Bug#53068). + 3c06c37a8b Remove mention of removed `gnus-treat-play-sounds' variable... + +2022-01-13 Po Lu <luangruo@yahoo.com> + + * INSTALL: Document using Emacs on alternative window systems. + +2022-01-13 Dmitry Gutov <dgutov@yandex.ru> + + xref-find-references-and-replace: New command + + * lisp/progmodes/xref.el (xref-find-references-and-replace): + New command. + +2022-01-13 Dmitry Gutov <dgutov@yandex.ru> + + Steamline xref-query-replace-in-results + + * lisp/progmodes/xref.el (xref-query-replace-in-results): + Steamline the most common scenario + (https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00864.html). + +2022-01-13 Po Lu <luangruo@yahoo.com> + + Fix out of bounds bitmap access on Haiku + + * src/haiku_draw_support.cc (BView_DrawBitmapWithEraseOp): Fix + out of bounds access to bitmap data. + +2022-01-13 Po Lu <luangruo@yahoo.com> + + Refresh keyboard mapping upon receiving new XKB map + + * src/xterm.c (handle_one_xevent): Call + XkbRefreshKeyboardMapping where required. + +2022-01-13 Stefan Kangas <stefan@marxist.se> + + Prefer defvar-keymap to easy-mmode-defmap + + * lisp/progmodes/gud.el (gud-minibuffer-local-map): + * lisp/vc/pcvs-info.el (cvs-status-map): Use defvar-keymap. + + * lisp/emacs-lisp/easy-mmode.el (easy-mmode-defmap): Document as + deprecated. + +2022-01-13 Theodor Thornhill <theo@thornhill.no> + João Távora <joaotavora@gmail.com> + + Change from symbol-at-point to thing-at-point + + * eglot.el (eglot-rename): Change from symbol-at-point to + thing-at-point to avoid interning a symbol. Add "unknown symbol" to + prompt when no symbol is found. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/385 + +2022-01-13 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of 'isearch-emoji-by-name' + + * lisp/isearch.el (isearch-menu-bar-map, isearch-emoji-by-name): + Fix wording of documentation. + + * etc/NEWS: Fix wording of the 'isearch-emoji-by-name' entry. + + * doc/emacs/search.texi (Special Isearch): Fix wording of the + documentation of 'isearch-emoji-by-name'; move it out of the + enumeration that deals with non-ASCII characters in general. + +2022-01-13 Eli Zaretskii <eliz@gnu.org> + + Fix frame-undeletion menu items + + * lisp/menu-bar.el (menu-bar-file-menu): Fix wording of the new + menu items and their help-echo. Don't show "Undelete Frame" + in the menu unless there is a frame to undelete. + +2022-01-13 Eli Zaretskii <eliz@gnu.org> + + Avoid scrolling display when point moves into invisible text + + * src/xdisp.c (try_cursor_movement): Handle point moving into + invisible text. (Bug#53215) + +2022-01-13 Michael Albinus <michael.albinus@gmx.de> + + * doc/lispref/functions.texi (Defining Functions): Fix thinko. + +2022-01-13 Brian Leung <bkleung89@gmail.com> + + Support optional diagnostic.tags + + https://microsoft.github.io/language-server-protocol/specifications/specification-3-17/#diagnosticTag + + A DiagnosticTag can be either 1 (DiagnosticTag.Unnecessary) or + 2 (DiagnosticTag.Deprecated). Following the rendering suggestions in + the protocol, we fade out Unnecessary code and strike-through + Deprecated code. + + * eglot.el (eglot-diagnostic-tag-unnecessary-face) + (eglot-diagnostic-tag-deprecated-face): New faces. + (eglot--tag-faces): New defconst. + (eglot--lsp-interface-alist): Add Diagnostic.tags. + (eglot-client-capabilities): Advertise supported tags. + (eglot-handle-notification): Assign the appropriate properties. + + * eglot-tests.el (diagnostic-tags-unnecessary-code): New test. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/794 + +2022-01-13 Eli Zaretskii <eliz@gnu.org> + + Improve preserving X coordinate during scroll commands + + * src/window.c (window_scroll_pixel_based): Don't unnecessarily + move the iterator. (Bug#53220) + +2022-01-13 Stefan Kangas <stefan@marxist.se> + + * lisp/jsonrpc.el (Version): Bump to 1.0.15. + +2022-01-13 Po Lu <luangruo@yahoo.com> + + Fix passive input focus when the pointer moves over inferiors + + * src/xterm.c (handle_one_xevent): Don't detect focus on entry + and exit events if we're not on the top window. + +2022-01-13 Stefan Kangas <stefankangas@gmail.com> + + * eglot.el: improve commentary section. + +2022-01-13 Stefan Kangas <stefankangas@gmail.com> + + Support racket-langserver + + * eglot.el (eglot-server-programs): Support racket-langserver. + * README.md: + * NEWS.md: Update for above changes. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/694 + +2022-01-13 Robert Pluim <rpluim@gmail.com> + + spelling-tests.el: actually create a temp directory + + This test was creating a file, but actually needs a directory, and + fails otherwise. + + * test/lisp/so-long-tests/spelling-tests.el (so-long-spelling): + Pass the :directory arg to ert-with-temp-file so we actually + create a directory. + +2022-01-13 Po Lu <luangruo@yahoo.com> + + Filter key release events through GTK when using native input + + * src/gtkutil.c (xg_filter_key): Set correct event type for key + release events. + * src/xterm.c (x_filter_event): Also filter release events. + +2022-01-13 Lars Ingebrigtsen <larsi@gnus.org> + + Make ert explainers work on function aliases + + * lisp/emacs-lisp/ert.el: New function. + (ert--expand-should-1): Use it (bug#53178). + +2022-01-13 Lars Ingebrigtsen <larsi@gnus.org> + + Avoid infloops in help-fns--analyze-function with aliases + + * lisp/help-fns.el (help-fns--analyze-function): Use + function-alias-p to avoid infloops. + +2022-01-13 Lars Ingebrigtsen <larsi@gnus.org> + + Add new function function-alias-p + + * doc/lispref/functions.texi (Defining Functions): Document it. + * lisp/subr.el (function-alias-p): New function (bug#53178). + +2022-01-13 Gregory Heytings <gregory@heytings.org> + + Undelete deleted frames. + + * lisp/frame.el (undelete-frame): New command. + (undelete-frame--handle-delete-frame): New auxiliary function. + (undelete-frame--deleted-frames): New auxiliary variables. + (undelete-frame-mode): New minor mode. + (ctl-x-5-map): Bind the new command. + + * etc/NEWS: Document the new command and minor mode. + + * src/frame.c (Fdelete_frame): Update docstring, and mention the + minor mode. + + * lisp/menu-bar.el (menu-bar-file-menu): Add an entry for the + new command. + + * doc/emacs/frames.tex (Frame Commands): Document the new command + and minor mode. + + See bug#51883. + +2022-01-12 Po Lu <luangruo@yahoo.com> + + Fix GTK native input methods randomly freezing input + + * src/gtkutil.c (xg_widget_key_press_event_cb): Exercise the X11 + connection causing pselect to return immediately from input. + (bug#53160) + +2022-01-12 Po Lu <luangruo@yahoo.com> + + Block input when drawing fringe bitmaps on Haiku + + * src/haikuterm.c (haiku_draw_fringe_bitmap): Block input. + +2022-01-12 Po Lu <luangruo@yahoo.com> + + Use XI2 focus events on X toolkit builds + + * src/xfns.c (setup_xi_event_mask): Set focus masks on both the + shell window and the frame window. + * src/xterm.c (x_detect_focus_change): Enable XI2 focus code on + Xt. + +2022-01-12 Stefan Kangas <stefan@marxist.se> + + * lisp/jsonrpc.el (jsonrpc--debug): Use apply on format args list. + +2022-01-12 Eric Abrahamsen <eric@ericabrahamsen.net> + + Rework setting/unsetting of gnus-registry-enabled + + The basic idea is, we're moving the setting/unsetting of + `gnus-registry-enabled' so that it is a more reliable indicator of + whether the registry is actually available or not. + + * lisp/gnus/gnus-registry.el (gnus-registry-load): Move the setting of + `gnus-registry-enabled' here, after we're sure the registry actually + has been loaded. + (gnus-registry-initialize): Move it out of here. All this function + does is conditionally call `gnus-registry-load'. + (gnus-registry-register-message-ids): Only check + `gnus-registry-enabled', since we'd more confident about this + now. Sort checks in order of increasing complexity. + (gnus-registry-clear): Unset `gnus-registry-enabled'. + (gnus-registry-install-hooks): This function should only install + hooks, not set variables. + (gnus-registry-unload-hook): Change the unload hook to call + `gnus-registry-clear', as that will do all the necessary + work (including calling `gnus-registry-unload-hook') + +2022-01-12 Stefan Monnier <monnier@iro.umontreal.ca> + + Merge remote-tracking branch 'origin/emacs-28' into trunk + +2022-01-12 Juri Linkov <juri@linkov.net> + + * lisp/subr.el (remove-hook): Use set-variable-value-history for value history + +2022-01-12 Stefan Kangas <stefankangas@gmail.com> + + Bump eglot version to 1.8 + + * eglot.el (Version): Bump to 1.8. + * NEWS.md (1.8): Rename header from "(upcoming)". + +2022-01-12 Juri Linkov <juri@linkov.net> + + * lisp/leim/quail/emoji.el: New file (bug#52605). + +2022-01-12 Daniel Martín <mardani29@yahoo.es> + + Add isearch-emoji-by-name + + * lisp/isearch.el (isearch-emoji-by-name): Add a new command to insert + Emoji characters into incremental search strings. (Bug#52605) + (isearch-mode-map): Bind it to 'C-x 8 e RET'. + (isearch-menu-bar-map): Add it to the menu bar. + * doc/emacs/search.texi (Special Isearch): Update the documentation to + mention the new command. + * etc/NEWS: And advertise it. + +2022-01-12 Glenn Morris <rgm@gnu.org> + + Prefer unexport in Makefiles + + * admin/grammars/Makefile.in, leim/Makefile.in: + * lisp/Makefile.in, test/Makefile.in: + Use unexport for EMACSLOADPATH. + +2022-01-12 Glenn Morris <rgm@gnu.org> + + Avoid user environment interfering with bootstrap + + * Makefile.in, admin/unidata/Makefile.in: + * doc/misc/Makefile.in, lib-src/Makefile.in: + Don't export user environment variables that can affect running + emacs. (Bug#53038) + +2022-01-12 Jim Porter <jporterbugs@gmail.com> + + Follow POSIX/GNU argument conventions for 'eshell-eval-using-options' + + * lisp/eshell/esh-opt.el (eshell--split-switch): New function. + (eshell-set-option): Allow setting a supplied value instead of always + consuming from 'eshell--args'. + (eshell--process-option): Support consuming option values specified as + a single token. + (eshell--process-args): For short options, pass full switch token to + 'eshell--process-option'. + + * test/lisp/eshell/esh-opt-tests.el (esh-opt-process-args-test): Fix + test. + (test-eshell-eval-using-options): Add tests for various types of + options. + + * doc/misc/eshell.texi (Defining new built-in commands): New + subsection, describe how to use 'eshell-eval-using-options'. + + * etc/NEWS: Announce the change. + +2022-01-12 Eli Zaretskii <eliz@gnu.org> + + Avoid assertion violations with variable-weight fonts + + * src/font.c (font_score, font_delete_unmatched): Don't assume + weight, slant, and width properties of the font must be fixnums: + some variable-weight fonts violate that assumption. Reported + by Sean Whitton <spwhitton@spwhitton.name>. This is for builds + with Fontconfig < v2.11.91, for which the fix in + 'ftfont_pattern_entity' cannot work. (Bug#52888) + +2022-01-12 Sean Whitton <spwhitton@spwhitton.name> + + Skip virtual FcPattern entries for variable weight fonts + + * src/ftfont.c (ftfont_list): Pass FC_VARIABLE to FcObjectSetBuild. + * src/ftfont.c (ftfont_pattern_entity): Skip meta/virtual FcPattern + entries for variable weight fonts (Bug#52888). + +2022-01-12 Po Lu <luangruo@yahoo.com> + + Use correct coordinates when translating XI2 crossing events + + * src/xwidget.c (xwidget_motion_or_crossing): Use displaced + position instead of event position. + +2022-01-12 Po Lu <luangruo@yahoo.com> + + Ignore scroll lock key on Haiku + + * src/haiku_support.cc (keysym_from_raw_char): Return special + value for keys that shouldn't be sent to Emacs. + (DispatchMessage): Respect said value. + +2022-01-12 Brian Leung <bkleung89@gmail.com> + + Don't error out on unsupported diagnostic.codedescription + + A codeDescription property is, at the time of writing, an object with + an href property (of type URI, or a string), denoting a "URI to open + with more information about the diagnostic error". + + It's not obvious how best to put this into a Flymake diagostic + aside from simply appending it to the diagnostic message, so we'll + worry about it some other time. + + * eglot.el (eglot--lsp-interface-alist) + (eglot-client-capabilities): Don't error out on unsupported + Diagnostic.codeDescription. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/768 + +2022-01-12 Po Lu <luangruo@yahoo.com> + + Translate more keys on Haiku + + * src/haiku_support.cc (keysym_from_raw_char): Translate print, + scroll lock, and pause/break. + +2022-01-12 Lars Ingebrigtsen <larsi@gnus.org> + + Don't do Gnus article emphasis in text/html parts + + * lisp/gnus/gnus-art.el (gnus-treat-emphasize): Don't do emphasis + in text/html parts, because this leads to mis-filled text + (especially with *...* that's boldified, which typically becomes + much wider). + +2022-01-11 Po Lu <luangruo@yahoo.com> + + Fix arity error when trying to add a file to an automake project + + * lisp/cedet/ede/project-am.el (project-add-file): Add ignored + _FILE parameter like the other `project-add-file' methods. + +2022-01-11 Po Lu <luangruo@yahoo.com> + + Fix display of text decorations in the mode line + + This is considered a temporary fix until the cause of + fringe-overwriting underlines is established. + + * src/xterm.c (x_draw_glyph_string): Don't constrain decorations + if the row is a tab or modeline. + +2022-01-11 Po Lu <luangruo@yahoo.com> + + Avoid unnecessary lookup of min and max keycodes when XKB is present + + * src/xterm.c (x_emacs_to_x_modifiers): Avoid calling + XDisplayKeycodes when that information is available in the xkb + desc and is not needed anyway. + +2022-01-11 Po Lu <luangruo@yahoo.com> + + Ignore resetting devices upon some events we don't have to handle + + * src/xterm.c (handle_one_xevent): Ignore SlaveSwitch + DeviceChanged events. + +2022-01-11 Alan Mackenzie <acm@muc.de> + + Merge branch 'master' into scratch/correct-warning-pos + +2022-01-11 Alan Mackenzie <acm@muc.de> + + Remove the filename argument from the command line after an ELC+ELN build + + This fixes bug #53164. Without this fix, bootstrap-emacs loads the source + file uselessly into a buffer after completing the compilation. + +2022-01-11 Juri Linkov <juri@linkov.net> + + * lisp/window.el (display-comint-buffer-action): Move to the end of file. + + Move closer to pop-to-buffer-same-window after its default value + display-buffer--same-window-action is defined. + +2022-01-11 Juri Linkov <juri@linkov.net> + + * lisp/vc/vc.el (vc-shrink-buffer-window): New function (bug#51062). + + (vc-diff-finish-functions): New variable. + (vc-diff-finish): Use it. + (vc-log-finish-functions): New variable. + (vc-log-internal-common): Use it. + +2022-01-11 Juri Linkov <juri@linkov.net> + + * src/window.c (other-window-scroll-default): New variable (bug#51210). + + (Fother_window_for_scrolling): Use it. + +2022-01-11 Juri Linkov <juri@linkov.net> + + More fixes for display-comint-buffer-action + + * lisp/window.el (display-comint-buffer-action): + Use display-buffer--same-window-action as the default value. + + * lisp/progmodes/sh-script.el (sh-show-shell): + * lisp/shell.el (shell): Add display-comint-buffer-action to pop-to-buffer. + + * lisp/progmodes/project.el (project-shell, project-eshell): Use + `bound-and-true-p display-comint-buffer-action' for backward-compatibility. + + https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg02964.html + +2022-01-11 Morgan Smith <Morgan.J.Smith@outlook.com> + + Fix display-comint-buffer-action default behavior (closes bug#52878) + + * lisp/window.el (display-comint-buffer-action): Make it an alist. + +2022-01-11 Paul Eggert <eggert@cs.ucla.edu> + + Clean up filelock code related to errno + + Reduce dependency on Haiku internals, by not assuming that + Haiku errno values (which are negative) are neither -1 nor -2. + This removes an #ifdef HAIKU while still maintaining + portability to Haiku. + * src/filelock.c (NEGATIVE_ERRNO, ANOTHER_OWNS_IT, I_OWN_IT): + New constants, which should work regardless of whether + we are on Haiku or B_USE_POSITIVE_POSIX_ERRORS is defined. + (current_lock_owner, lock_if_free, lock_file, unlock_file) + (Ffile_locked_p): Use them, without assuming anything about errno + value sign. + +2022-01-11 Paul Eggert <eggert@cs.ucla.edu> + + Fix userlock diagnostic + + * lisp/userlock.el (ask-user-about-lock): + Fix typo (missing paren) in diagnostic. + +2022-01-11 Po Lu <luangruo@yahoo.com> + + Stop ungrabbing when freeing XI devices + + This breaks when x_free_xi_devices is called from a + HierarchyChange event where a master device has been removed or + a slave device has been detached, and it should no longer be + required since we now rely on passive grabs. + + * src/xterm.c (x_init_master_valuators): Stop calling + XIUngrabDevice on all devices. + +2022-01-11 Po Lu <luangruo@yahoo.com> + + Make native input work on GTK 2 + + * src/gtkutil.c (xg_create_frame_widgets): Allow focusing fixed + widget. + +2022-01-11 Po Lu <luangruo@yahoo.com> + + Stop decoding GTK event strings when using native input + + * src/gtkutil.c (xg_widget_key_press_event_cb): Stop decoding + event strings. + +2022-01-11 Juri Linkov <juri@linkov.net> + + * lisp/outline.el (outline-minor-mode-cycle--bind): Fix outline-on-heading-p. + + When calling outline-on-heading-p, set its argument INVISIBLE-OK to t, + so when <backtab> (bound to outline-cycle-buffer) hides the current outline + at a deep level, <backtab> should continue cycling outlines even when + the current outline heading is invisible. It worked this way before + the recent change that moved cycling keys from font-lock text properties + to outline-minor-mode keymap with :filter. + +2022-01-11 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 8db5f82d45 ; Fix tabulated-list-mode tests after revert + +2022-01-11 Po Lu <luangruo@yahoo.com> + + Fix creating GUI frames in an automatically started server on Haiku + + * lisp/term/haiku-win.el: Correct specification of + `display-format-alist'. + +2022-01-10 Stefan Monnier <monnier@iro.umontreal.ca> + + (files-tests--with-buffer-offer-save): Turn it into a function + + * test/lisp/files-tests.el (files-tests--with-buffer-offer-save): + Turn it into a function. + (files-tests-save-buffers-kill-emacs--asks-to-save-buffers) + (files-tests-buffer-offer-save): Adjust calls accordingly + +2022-01-10 Stefan Monnier <monnier@iro.umontreal.ca> + + (hack-one-local-variable-constantp): Mark as obsolete + + * lisp/files.el (hack-one-local-variable-constantp): Mark as obsolete. + (hack-one-local-variable-eval-safep): Use `macroexp-const-p` instead. + +2022-01-10 Stefan Monnier <monnier@iro.umontreal.ca> + + Merge remote-tracking branch 'origin/emacs-28' into trunk + +2022-01-10 Fredrik Bergroth <fbergroth@gmail.com> + + Support autoimporttext from pyright language server + + * eglot.el (eglot-completion-at-point): show autoImportText via company-docsig. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/769 + +2022-01-10 Sam Steingold <sds@gnu.org> + + Use 'auth-info-password' in tests + + * test/lisp/auth-source-tests.el (auth-source-test-searches): + (auth-source-test-secrets-create-secret): + (auth-source-test-netrc-create-secret, auth-source-delete): + Use 'auth-info-password' instead of ad hoc code. + +2022-01-10 Sam Steingold <sds@gnu.org> + + Update for the recent change + + * doc/misc/auth.texi (Help for developers): Document + 'auth-source-pick-first-password' and 'auth-info-password'. + Update the 'auth-source-search' example. + +2022-01-10 Po Lu <luangruo@yahoo.com> + + Use window beneath mouse for determining scroll deltas on Haiku + + * src/haikuterm.c (haiku_read_socket): Use window underneath + wheel for calculating scroll deltas. + +2022-01-10 Po Lu <luangruo@yahoo.com> + + * src/filelock.c (lock_if_free): Fix Haiku positive errno check. + +2022-01-10 Paul Eggert <eggert@cs.ucla.edu> + + Assume C99 when defining pD + + * src/lisp.h (pD): Assume C99 or later, to simplify the ifdefs. + +2022-01-10 Felicián Németh <felician.nemeth@gmail.com> + + Add tooltip describing pending requests + + * eglot.el (eglot--mode-line-format): Add tooltip to `pending'. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/784 + +2022-01-10 Karl Fogel <kfogel@red-bean.com> + + Document external maintenance of some packages + + Document the fact that some packages in Emacs are externally + maintained, and specifically document Org Mode's external maintenance. + + For more context, see the thread that starts here: + + https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg00366.html + From: Karl Fogel + To: Emacs Devel + Subject: Improving documentation of Org Mode integration into Emacs. + Date: Sat, 04 Dec 2021 15:14:59 -0600 + Message-ID: <87zgpgax7w.fsf@red-bean.com> + +2022-01-10 Juri Linkov <juri@linkov.net> + + Add diff-mode-read-only to enable shorter keys in diff-mode + + To be able to use outline-minor-mode-cycle keys in diff-mode, + outline-minor-mode should be higher in minor-mode-map-alist, + and a new variable diff-mode-read-only should be set + when the diff-mode buffer is read-only. + https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00740.html + + * lisp/vc/diff-mode.el: Add diff-mode-read-only to minor-mode-map-alist. + (diff-mode-read-only): New buffer-local variable. + (diff-mode): Set diff-mode-read-only to t when buffer-read-only is non-nil. + Update diff-mode-read-only in read-only-mode-hook. + Remove buffer-read-only from minor-mode-overriding-map-alist. + Remove view-mode-hook because now view-mode is higher than + diff-mode-read-only in minor-mode-map-alist. + + * lisp/vc/vc-git.el (vc-git-stash-show): + * lisp/vc/vc.el (vc-diff-internal): Set buffer-read-only to t + before calling diff-mode that will set diff-mode-read-only. + +2022-01-10 Juri Linkov <juri@linkov.net> + + * lisp/outline.el: Don't set outline-minor font-lock text property 'keymap'. + + Instead of adding font-lock text property 'keymap' with + outline-minor-mode-cycle on headings in outline-minor-mode, + check for outline-minor-mode-cycle and outline-on-heading-p + in :filter on keys from the keymap of outline-minor-mode. + https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00180.html + + (outline-minor-mode-cycle--bind): Add a condition on outline-minor-mode-cycle + and outline-on-heading-p in :filter. + (outline-font-lock-keywords): Remove if-branches for outline-minor-mode-cycle + that added keymap. + (outline-minor-mode-highlight-buffer): Don't put keymap on overlays. + (outline-minor-mode): Rewrite :keymap setting to rely on + easy-mmode-define-keymap, and add :inherit outline-minor-mode-cycle-map. + Don't check for outline-minor-mode-cycle to add font-lock keywords. + (outline--insert-open-button, outline--insert-close-button): + Remove :parent outline-minor-mode-cycle-map. + +2022-01-10 Eli Zaretskii <eliz@gnu.org> + + Fix 'exchange-point-and-mark' in 'transient-mark-mode' + + * lisp/simple.el (exchange-point-and-mark): Don't deactivate mark + when 'transient-mark-mode' is ON. (Bug#53150) + +2022-01-10 Po Lu <luangruo@yahoo.com> + + Implement recent improvements to underline display on PGTK + + * src/pgtkterm.c (pgtk_draw_glyph_string): Respect new underline + face fields. + +2022-01-10 Po Lu <luangruo@yahoo.com> + + Prevent text decorations from overwriting surrounding areas on X + + * src/xterm.c (x_draw_underwave): New parameter + `decoration_width'. + (x_draw_glyph_string): Constrain decoration width to current + text area. + +2022-01-10 Po Lu <luangruo@yahoo.com> + + Allow controlling the underline position of faces + + * doc/lispref/display.texi (Face Attributes): Document new + `:position' property of the `:underline' attribute. + * etc/NEWS: Announce new property. + * lisp/cus-face.el (custom-face-attributes): Implement + customization for new face attribute. + * src/dispextern.h (struct face): New fields + `underline_pixels_above_descent_line' and + `underline_at_descent_line_p'. + * src/haikuterm.c (haiku_draw_text_decoration): + * src/nsterm.m (ns_draw_text_decoration): + * src/w32term.c (w32_draw_glyph_string): + * src/xterm.c (x_draw_glyph_string): Respect new face fields. + + * src/xfaces.c (realize_gui_face): Handle new `:position' + keyword. + (syms_of_xfaces): New symbol `:position'. + +2022-01-10 Po Lu <luangruo@yahoo.com> + + * doc/emacs/xresources.texi (GTK resources): Fix dead links. + +2022-01-10 Po Lu <luangruo@yahoo.com> + + Load X resources from a settings file like other programs on Haiku + + * doc/emacs/haiku.texi (Haiku Basics): Document how X resources + are discovered on Haiku. + * src/haiku_support.cc (class Emacs): Load settings file. + (be_find_setting): New function. + * src/haiku_support.h (be_find_setting): New prototype. + * src/haikuterm.c (get_string_resource): Look in the settings + file if there's nothing in the in-memory resource database. + +2022-01-10 Michael Albinus <michael.albinus@gmx.de> + + * admin/MAINTAINERS: Add Tramp compatibility note + +2022-01-10 Po Lu <luangruo@yahoo.com> + + Use phys cursor height instead of font base to set spot Y + + * src/xfns.c (xic_set_xfontset): Use `phys_cursor_height' to + avoid the spot potentially appearing at an incorrect position. + +2022-01-10 Po Lu <luangruo@yahoo.com> + + Don't set callbacks on XIC when adjusting spot if callbacks are off + + * src/xfns.c (xic_set_preeditarea): Don't set callbacks if the + XIC style is not XIMPreeditCallbacks. (bug#53146) + +2022-01-09 Po Lu <luangruo@yahoo.com> + + Make toggling native input methods via shift work again + + * src/xterm.c (handle_one_xevent): Start filtering XI key + release events again, but drop the event if the IM asked. + +2022-01-09 Stefan Kangas <stefan@marxist.se> + + Make old elide-head commands wrappers for mode + + * lisp/elide-head.el (elide-head, elide-head-show): Make into + wrappers around elide-head-mode. + +2022-01-09 Po Lu <luangruo@yahoo.com> + + Don't hard code key codes on Haiku + + * src/haiku_support.cc (keysym_from_raw_char): New function. + (DispatchMessage): Map raw character to keysym if applicable. + (be_map_key): Delete function. + * src/haiku_support.h (struct haiku_key_event): Update fields + to hold keysym and character instead. + * src/haikuterm.c (haiku_read_socket): Don't call be_map_key, + and use keysym field if provided instead. + +2022-01-09 Po Lu <luangruo@yahoo.com> + + Map some more keypad keys on Haiku + + * src/haiku_support.cc (BMapKey): Rename to `be_map_key'. + (be_map_key): Recognize more key codes. + * src/haiku_support.h (BMapKey, be_map_key): Adjust accordingly. + * src/haikuterm.c (haiku_read_socket): Likewise. + +2022-01-09 Po Lu <luangruo@yahoo.com> + + Fix build without X11 I18N + + * src/xterm.c (event_handler_gdk): + (handle_one_xevent): + (x_draw_window_cursor): + (x_term_init): Fix build without HAVE_X_I18N. + +2022-01-09 Po Lu <luangruo@yahoo.com> + + Fix off-by-one errors in caret position application + + * src/gtkutil.c (xg_im_context_preedit_changed): + * src/xfns.c (xic_preedit_caret_callback): + (xic_preedit_draw_callback): Constrain caret position to + SCHARS (arg) - 1. + +2022-01-09 Stefan Kangas <stefan@marxist.se> + + * lisp/abbrev.el (edit-abbrevs-mode-map): Use defvar-keymap. + +2022-01-09 Stefan Kangas <stefan@marxist.se> + + Do interactive mode tagging for edit-abbrevs-mode + + * lisp/abbrev.el (edit-abbrevs-redefine) + (abbrev-edit-save-to-file, abbrev-edit-save-buffer): Interactive mode + tagging for edit-abbrevs-mode. + (edit-abbrevs-mode): Make non-interactive. + +2022-01-09 Brian Leung <bkleung89@gmail.com> + + Properly print error message of eglot-alternatives + + * eglot.el (eglot-alternatives): Work with the listified form. This + allows presumed executables provided as (EXECUTABLE &rest ARGS...) + to be displayed in the error. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/786 + +2022-01-09 Brian Leung <bkleung89@gmail.com> + + Add up-to-date server executables for html/css/json + + * README.md: Advertise updated executables. + * eglot.el (eglot-server-programs): Prioritize the alternatives. + + The {html,css,json}-languageserver executables that are distributed + outside VS Code are not regularly updated by Microsoft; any relevant + updates to the VS Code source tree reach VS Code users without the + need for VS Code developers to go out of their way to publish new + versions of the executables. Consequently, users of other editors who + have been using the server executables from the most obvious NPM + packages are likely using stale versions. + + @hrsh7th, a Vim user, created an NPM package with updated versions of these + executables taken straight from VS Code's source tree. We therefore + prefer to direct users to the corresponding repo, which contains + appropriate installation instructions, in the README. + +2022-01-09 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/gnus/nnnil.el (nnnil-close-server): Add new `defs` arg + +2022-01-09 Ivan Sokolov <ivan-p-sokolov@ya.ru> + + Add doc-string indices to easy-mmode-{defmap,defsyntax} + + * lisp/emacs-lisp/easy-mmode.el (easy-mmode-defmap) + (easy-mmode-defsyntax): Declare third argument as doc-string. + (Bug#52978) + +2022-01-09 Po Lu <luangruo@yahoo.com> + + Fix filelock.c for Haiku + + This was found during the investigation surrounding bug#53136, + but is not directly related. + + * src/filelock.c (lock_if_free): Explicitly test err against -1 + or -2, and reverse sign of system errors on Haiku. (No Haiku + error occupies -1 or -2.) + +2022-01-09 Po Lu <luangruo@yahoo.com> + + Add an option to display the cursor at the beginning of any preedit text + + Believe it or not, people actually want this, because it makes + Emacs behave closer to some other editors such as WPS Office. + + * lisp/term/x-win.el + (x-display-cursor-at-start-of-preedit-string): New user option. + (x-preedit-text): Respect new option. + +2022-01-09 Po Lu <luangruo@yahoo.com> + + Pass through caret position from native GTK input methods + + * src/gtkutil.c (xg_im_context_preedit_changed): Set caret + position appropriately. + * src/xfns.c (xg_widget_key_press_event_cb): Ignore modifier + keys. + (xic_preedit_caret_callback, xic_preedit_draw_callback): + Constrain caret position to the string length as well. + +2022-01-09 Po Lu <luangruo@yahoo.com> + + Fix specification of caret position + + * src/xfns.c (xic_preedit_caret_callback): + (xic_preedit_draw_callback): Use `cursor' property correctly. + + * src/xterm.c (handle_one_xevent): Stop filtering XI release + events. This caused more problems than it fixed. + +2022-01-09 Po Lu <luangruo@yahoo.com> + + Add missing part of last commit + + * src/xterm.h (struct x_output): Add field `preedit_caret'. + +2022-01-09 Po Lu <luangruo@yahoo.com> + + Display caret in preedit text where the input method asked + + * src/xfns.c (xic_preedit_start_callback): Clear caret position. + (xic_preedit_caret_callback): Record new caret position and + announce it. + (xic_preedit_done_callback): Clear caret position. + (xic_preedit_draw_callback): Set caret position appropriately. + +2022-01-09 Po Lu <luangruo@yahoo.com> + + Fix native GTK input for cyrillic input methods + + * src/gtkutil.c (xg_widget_key_press_cb): Get unicode mapping of + keyval if string doesn't exist. + * src/xterm.c (handle_one_xevent): Fix build without + HAVE_X_I18N. + +2022-01-09 Stefan Kangas <stefan@marxist.se> + + New minor mode elide-head-mode + + * lisp/elide-head.el (elide-head-mode): New minor mode. (Bug#52980) + (elide-head--delete-overlay, elide-head--show) + (elide-head--hide): New functions factored out from ... + (elide-head, elide-head-show): ... here. Make obsolete in favor + of elide-head-mode. + (elide-head-headers-to-hide): Doc fix. + + * test/lisp/elide-head-tests.el (ert-x): Require. + (elide-head-tests-elide-head-mode) + (elide-head-tests-elide-head-mode/enable-disable) + (elide-head-tests-elide-head-mode/normal-mode) + (elide-head-tests-elide-head-mode/revert-buffer): New tests. + (elide-head--add-test): Update test to use elide-head-mode. + (elide-head-tests-elide-head) + (elide-head-tests-elide-head-with-prefix-arg) + (elide-head-tests-show): Make obsolete. + +2022-01-09 Po Lu <luangruo@yahoo.com> + + * lisp/term/x-win.el (x-preedit-text): Make edit overlay window local. + +2022-01-09 Brian Leung <bkleung89@gmail.com> + + Add vim-language-server for vimrc-mode + + * README.md: Advertise. + * eglot.el (eglot-server-programs): Add vim-language-server. + +2022-01-09 Brian Leung <bkleung89@gmail.com> + + Add cmake-language-server for cmake-mode + + * README.md: Advertise. + * eglot.el (eglot-server-programs): Add cmake-language-server. + +2022-01-09 Po Lu <luangruo@yahoo.com> + + Reduce flicker on Haiku Emacs tooltips + + * src/haikuterm.c (haiku_read_socket): Ignore motion events from + tooltip frames. + +2022-01-09 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 30f1bdb41f Clarify docstring of package-native-compile + c54fda643d Fix Subject "simplification" in Rmail + +2022-01-09 Po Lu <luangruo@yahoo.com> + + * src/image.c (syms_of_image): Declare support for webp on Haiku. + +2022-01-08 Po Lu <luangruo@yahoo.com> + + Add support for native webp images on Haiku + + * src/haikuimage.c (haiku_can_use_native_image_api): Add support + for `webp' images. + +2022-01-08 Po Lu <luangruo@yahoo.com> + + Make caps lock work on Haiku + + * src/haiku_support.cc (map_caps): + (map_caps_shift): New functions. + (DispatchMessage): Map keys with the appropriate map if caps + lock is on. + +2022-01-08 Po Lu <luangruo@yahoo.com> + + Fix some problems with Haiku font display + + * src/haiku_font_support.cc (BFont_char_bounds): Fix rounding + errors. + (BFont_open_pattern): Set size before setting family and style. + +2022-01-08 Stefan Kangas <stefankangas@gmail.com> + + Un-reverse references in xref buffer + + + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/763 + +2022-01-08 Po Lu <luangruo@yahoo.com> + + Implement override redirect on Haiku + + * src/haiku_support.cc (pre_override_redirect_style): + (pre_override_redirect_feel): New variables. + (BWindow_set_override_redirect): + * src/haiku_support.h (BWindow_set_override_redirect): New + functions. + * src/haikufns.c (haiku_create_frame): Set override redirect. + (haiku_set_override_redirect): New function. + (haiku_frame_parm_handlers): Add `haiku_set_override_redirect' + +2022-01-08 Martin Carlson <spearalot@gmail.com> (tiny change) + + Add variable to withhold the init req process id + + * eglot.el (eglot-withhold-process-id): New defvar. + (eglot--connect): Don't send pid to language server if above new + defvar has a non-nil value. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/722 + +2022-01-08 Po Lu <luangruo@yahoo.com> + + Fix some portability bugs in gtkutil.c + + * src/gtkutil.c (xg_widget_key_press_event_cb): Surround raising + SIGIO with USABLE_SIGIO. + +2022-01-08 NA <na@aisrntairetnraoitn.com> (tiny change) + + Support language server for html, css, json and docker + + * eglot.el (eglot-server-programs): Support html-languageserver, + css-languageserver, json-languageserver, and docker-langserver. + * README.md: Update documentation for above changes. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/204 + +2022-01-08 Stefan Kangas <stefankangas@gmail.com> + + Minor checkdoc fixes + + * eglot.el (eglot, eglot--when-buffer-window, eglot--widening) + (eglot-initialization-options, eglot--current-flymake-report-fn) + (eglot-handle-notification, eglot-handle-request) + (eglot--highlight-piggyback, eglot-register-capability) + (eglot-unregister-capability): + * eglot-tests.el (auto-detect-running-server, auto-shutdown) + (auto-reconnect, eglot--tests-force-full-eldoc, rename-a-symbol) + (basic-completions, non-unique-completions, basic-xref) + (snippet-completions, snippet-completions-with-company) + (eglot-eldoc-after-completions, python-yapf-formatting) + (javascript-basic, json-basic, eglot-ensure) + (eglot--guessing-contact): Doc fixes; formatting. + + * eglot.el (xref-backend-identifier-completion-table): Fix error + format. + +2022-01-08 Omar Polo <op@omarpolo.com> + + Add lua-lsp support for lua-mode + + * eglot.el (eglot-server-programs): Add support for the lua-lsp server for lua. + * README.md: Document the above change. + +2022-01-08 jgart <47760695+jgarte@users.noreply.github.com> (tiny change) + + Add support for the mint language server + + * eglot.el (eglot-server-programs): Add support for the mint language server. + * README.md: Document the above change. + +2022-01-08 Illia Danko <illia@aigent.com> (tiny change) + + Add pyright language server support for python-mode + + * eglot.el (eglot-server-programs): Add pyright support for + python-mode. + * README.md: Document the above change. + +2022-01-08 Philipp Edelmann <edelmann@fs.tum.de> (tiny change) + + Use fortls also for fortran-mode + + * eglot.el (eglot-server-programs): Use fortls also for fortran-mode. + +2022-01-08 Brian Leung <bkleung89@gmail.com> + + Add yaml-language-server for yaml-mode + + * eglot.el (eglot-server-programs): Add yaml-language-server. + * README.md: Mention yaml-language-server. + +2022-01-08 lorniu/sz <lorniu@gmail.com> (tiny change) + + Use `locate-user-emacs-file` instead of `concat` + + * eglot.el (eglot--eclipse-jdt-contact): Use locate-user-emacs-file. + +2022-01-08 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + d2284b0353 ; Update files for 28.0.91 pretest + + # Conflicts: + # lisp/ldefs-boot.el + +2022-01-08 Po Lu <luangruo@yahoo.com> + + Make sure native keypresses are received immediately on GTK + + * src/gtkutil.c (xg_widget_key_press_event_cb): Send input + available signal. + +2022-01-08 Po Lu <luangruo@yahoo.com> + + Fix pinch-to-scale on real X servers and NS + + * lisp/face-remap.el (text-scale-pinch): Stop waiting for + more events. + +2022-01-08 Po Lu <luangruo@yahoo.com> + + Correctly translate GDK virtual modifiers when using native input + + * src/gtkutil.c (xg_virtual_mods_to_x): New function. + (xg_widget_key_press_event_cb): Translate modifiers to X first. + +2022-01-08 Michael Albinus <michael.albinus@gmx.de> + + Adapt Tramp for `auth-info-password' + + * lisp/net/tramp-compat.el (tramp-compat-auth-info-password): + New defalias. + + * lisp/net/tramp.el (tramp-read-passwd): Use it. + +2022-01-08 Po Lu <luangruo@yahoo.com> + + * src/haikuterm.c (haiku_clear_frame): Fix clipping. + +2022-01-08 Po Lu <luangruo@yahoo.com> + + Add an option to rely on passive touch grabs on X + + This prevents crashes with three-finger touch gestures on + Xwayland running on GNOME Shell, and also when running some + programs that make use of an Emacs window's XID on the same X + server. + + * src/xterm.c (handle_one_xevent): Respect + `x-input-grab-touch-events'. + (syms_of_xterm): New option `x-input-grab-touch-events. + +2022-01-08 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of native input methods + + * doc/emacs/mule.texi (International, Input Methods) + (Unibyte Mode): Document user-level features of native input + methods. + +2022-01-08 Po Lu <luangruo@yahoo.com> + + * lisp/cus-start.el (standard): Fix standard customizables for PGTK. + +2022-01-08 Po Lu <luangruo@yahoo.com> + + Fix build on PGTK + + * src/gtkutil.c (xg_mark_data): + * src/gtkutil.h (xg_filter_key): Ifdef out definitions on PGTK. + +2022-01-08 Po Lu <luangruo@yahoo.com> + + Allow using GTK+ to handle input methods on X + + * doc/emacs/xresources.texi (Table of Resources): Document new + value of `inputStyle'. + * etc/NEWS: Announce new option. + + * lisp/cus-start.el (standard): Add `x-gtk-use-native-input'. + * src/gtkutil.c (xg_mark_data): Mark xg_pending_quit_event. + (xg_add_virtual_mods): + (xg_im_context_commit): + (xg_im_context_preedit_changed): + (xg_im_context_preedit_end): + (xg_widget_key_press_event_cb): + (xg_filter_key): New functions. + * src/gtkutil.h: Add prototype for `xg_filter_key'. + * src/xfns.c (xic_set_preeditarea): Set cursor location for the + GTK IM context as well. + * src/xterm.c (xg_pending_quit_event): New variable. + (x_focus_changed): Set focus on the GTK input context as well. + (x_filter_event): Filter events through GTK if the user asked + for it. + (handle_one_xevent): Likewise. + (XTread_socket): Set hold_quit to xg_pending_quit_event if it + exists. + (x_draw_window_cursor): Always set preedit area even if XIC + doesn't exist. + * src/xterm.h (struct x_display_info): New field + `prefer_native_input'. + (struct x_output): New field `im_context'. + +2022-01-07 Po Lu <luangruo@yahoo.com> + + * src/pgtkterm.c (pgtk_enqueue_string): Free return of g_utf8_to_ucs4. + +2022-01-07 Po Lu <luangruo@yahoo.com> + + Call EVENT_INIT in some places + + * src/xfns.c (xic_preedit_done_callback): + (xic_preedit_draw_callback): Call EVENT_INIT. + +2022-01-07 Sam Steingold <sds@gnu.org> + + Add `auth-info-password' and use it instead of ad hoc code + + * lisp/auth-source.el (auth-info-password): + Extract from `auth-source-pick-first-password'. + (auth-source-pick-first-password, auth-source-secrets-create) + (auth-source-user-and-password): Use `auth-info-password'. + * lisp/erc/erc-services.el (erc-nickserv-get-password): + Use `auth-source-pick-first-password'. + * lisp/erc/erc.el (erc-open, erc-server-join-channel): Likewise. + * lisp/gnus/mail-source.el (mail-source-set-1): Add a comment. + * lisp/gnus/nnimap.el (nnimap-credentials): Use `auth-info-password'. + * lisp/gnus/nntp.el (nntp-send-authinfo): Likewise. + * lisp/mail/rmail.el (rmail-get-remote-password): Likewise. + * lisp/mail/smtpmail.el (smtpmail-try-auth-methods): Likewise. + * lisp/net/sieve-manage.el (sieve-sasl-auth): Likewise. + * lisp/net/tramp.el (tramp-read-passwd): Likewise. + * lisp/net/rcirc.el (rcirc): Likewise (fixes a bug: the possibility + that password might be a function was not handled). + +2022-01-07 Eli Zaretskii <eliz@gnu.org> + + Fix "C-SPC C-SPC" after "C-x C-x" + + * lisp/simple.el (exchange-point-and-mark): Fix what the command + does when 'transient-mark-mode' is OFF. (Bug#52896) + +2022-01-07 Eli Zaretskii <eliz@gnu.org> + + Minor improvements for 'pgtk' documentation + + * src/dispnew.c (syms_of_display) <initial-window-system> + <window-system>: + * src/frame.c (Fwindow_system): + * doc/lispref/display.texi (Defining Faces, Window Systems): + * doc/lispref/frames.texi (Frames): Mention/explain 'pgtk'/'haiku'. + * doc/lispref/commands.texi (Misc Events): Fix @example and + markup. + +2022-01-07 Yuuki Harano <masm+github@masm11.me> + + Handle internal events specially on PGTK + + * src/xgselect.c (xg_select): If there are pending events already, + don't sleep. + +2022-01-07 Yuuki Harano <masm+github@masm11.me> + + Write documentation about ARG of the preedit-text event on PGTK + + * doc/lispref/commands.texi (Misc Events): + +2022-01-07 Po Lu <luangruo@yahoo.com> + + Fix special-cased cursor foreground and background correctly on PGTK + + * src/pgtkfns.c (x_set_foreground_color): + (x_set_background_color): Set cursor color as well if + appropriate. (bug#53073) + +2022-01-07 Po Lu <luangruo@yahoo.com> + + Add documentation for the `none' input style + + * doc/emacs/xresources.texi (Table of Resources): Document + missing value of `inputStyle'. + +2022-01-07 Protesilaos Stavrou <info@protesilaos.com> + + * admin/MAINTAINERS: Describe Modus themes as externally maintained package + +2022-01-07 Po Lu <luangruo@yahoo.com> + + * doc/lispref/display.texi (Face Attributes): Update doc for new values. + +2022-01-07 Po Lu <luangruo@yahoo.com> + + Improve documentation of the preedit-text event + + * doc/lispref/commands.texi (Misc Events): Document how + `preedit-text' events are used. + +2022-01-07 Po Lu <luangruo@yahoo.com> + + Disable new input method behavior by default on X + + * src/xfns.c (supported_xim_styles): Default to STYLE_NONE. + +2022-01-07 Po Lu <luangruo@yahoo.com> + + Allow controlling the X input method style + + * doc/emacs/xresources.texi (Table of Resources): Document new + resource `inputStyle'. + * etc/NEWS: Announce new resource. + + * src/xfns.c (create_frame_xic): Give the display info to + `best_xim_style'. + (best_xim_style): Take the display's preferred style into + account. + + * src/xterm.c (x_term_init): Parse the preferred style if + inputStyle is set. + + * src/xterm.h (struct x_display_info): New field + `preferred_xim_style'. + + (STYLE_OFFTHESPOT, STYLE_OVERTHESPOT, STYLE_ROOT): + (STYLE_CALLBACK, STYLE_NONE): New macros. + +2022-01-07 Po Lu <luangruo@yahoo.com> + + * src/haikuselect.c: Fix implicit declaration of free. + +2022-01-07 Po Lu <luangruo@yahoo.com> + + Display pre-edit information from X input methods + + This also repurposes the `pgtk-preedit-text' event to be + meaningful on X, renames it `preedit-text', and documents it. + + * doc/lispref/commands.texi (Misc Events): Document + `preedit-text'. + * lisp/term/pgtk-win.el (pgtk-preedit-text): Bind to + `preedit-text' instead. + * lisp/term/x-win.el (x-preedit-overlay): New variable. + (x-preedit-text): New command, bound as a special event to + `preedit-text'. + + * src/keyboard.c (kbd_buffer_get_event): + (make_lispy_event): Rename PGTK_PREEDIT_TEXT_EVENT + PREEDIT_TEXT_EVENT. + (syms_of_keyboard): New defsym `preedit-text'. + * src/pgtkterm.c (pgtk_enqueue_preedit): Use PREEDIT_TEXT_EVENT + instead. + * src/termhooks.h (enum event_kind): Rename + `PGTK_PREEDIT_TEXT_EVENT' `PREEDIT_TEXT_EVENT'. + + * src/xfns.c (Xxic_preedit_draw_callback): + (Xxic_preedit_caret_callback): + (Xxic_preedit_done_callback): + (Xxic_preedit_start_callback): New callback variables. + + (STYLE_OFFTHESPOT, STYLE_OVERTHESPOT): + (STYLE_ROOT, STYLE_CALLBACK, STYLE_NONE): New macros. + (supported_xim_styles): Use reasonable values. This also serves + as a better fix for bug#10867. + (best_xim_style): Restore code deleted as part of the original + fix for bug#10867. + (create_frame_xic): Add preedit callbacks. + (xic_set_preeditarea): Add preedit callbacks. + (x_xic_to_frame): + (xic_preedit_start_callback): + (xic_preedit_caret_callback): + (xic_preedit_done_callback): + (x_xim_text_to_utf8_unix): + (xic_preedit_draw_callback): New functions. + + * src/xterm.c (x_detect_focus_change): Fix type of XI event. + (x_free_frame_resources): Free preedit text buffer if still + present. + * src/xterm.h (struct x_output): New fields `preedit_size', + `preedit_chars' and `preedit_active'. + +2022-01-06 Po Lu <luangruo@yahoo.com> + + * admin/MAINTAINERS: Add myself for some things. + +2022-01-06 Philip Kaludercic <philipk@posteo.net> + + Add rcirc-when command + + * doc/misc/rcirc.texi: Document rcirc-when. + * etc/NEWS: Document rcirc-when. + * lisp/net/rcirc.el (rcirc-when): Add command. + +2022-01-06 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of font-related face attributes + + * lisp/faces.el (set-face-attribute): Mention aliases of face + attributes. (Bug#53050) + +2022-01-06 Michael Albinus <michael.albinus@gmx.de> + + * admin/MAINTAINERS: Describe Tramp as externally maintained package + +2022-01-06 Eli Zaretskii <eliz@gnu.org> + + Revert "Fix selection of fonts that don't have regular weight" + + This reverts commit 1b2511fa2aed460120a36765ba16c14e355eef1d. + That commit caused unintended regressions which are worse + than the problem it attempted to fix. See the discussion at + + https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg01643.html + + for the details. + +2022-01-06 Po Lu <luangruo@yahoo.com> + + Remove some more useless clipping stack calls on Haiku + + * src/haikuterm.c (haiku_draw_box_rect): + (haiku_draw_relief_rect): + (haiku_draw_text_decoration): Get rid of calls to + BView_StartClip and BView_EndClip. + +2022-01-06 Po Lu <luangruo@yahoo.com> + + Generate TOUCH_END_EVENTs on NS when mwheel momentum is disabled + + * src/nsterm.m ([EmacsView mouseDown:]): Generate + TOUCH_END_EVENTs on the first event whose momentum phase is not + NSEventPhaseNone. + +2022-01-06 Po Lu <luangruo@yahoo.com> + + Make sure touch end events aren't sent too many times + + * src/xterm.c (handle_one_xevent): Don't send touch end events + twice if two valuators have their masks set without a change in + value. + +2022-01-06 Po Lu <luangruo@yahoo.com> + + Add group to xkey state before filtering it on XI_KeyRelease + + * src/xterm.c (handle_one_xevent): Add group to xkey.state + before filtering an XI2 key release event. This fixes fcitx on + some systems. + +2022-01-06 Po Lu <luangruo@yahoo.com> + + Fix GNUstep compilation warnings + + * src/Makefile.in (NON_OBJC_CFLAGS): Add `-Wnested-externs'. + * src/emacs.c (load_pdump): Only define exec_bufsize if + !NS_SELF_CONTAINED. + * src/image.c (ARGB_TO_ULONG): Don't define if HAVE_NS. + * src/nsterm.m (ns_destroy_window): Pacify incorrect GCC + warning. + (ns_query_color): Make static. + (ns_run_loop_break): Fix old-style definition. + ([EmacsView toggleFullScreen:]): Remove unused variable. + +2022-01-06 Po Lu <luangruo@yahoo.com> + + Fix duplicate overhang display on GNUstep + + * src/nsfont.m (nsfont_draw): Stop saving DPS clip and remove + workaround for bad clipping. + * src/nsterm.m (ns_draw_glyph_string): Clip to glyph string rect + when displaying overhangs. + +2022-01-05 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (handle_one_xevent): Check for errors when kbd map. + +2022-01-05 Stefan Monnier <monnier@iro.umontreal.ca> + + cl-generic.el: Fix bug#46722 + + Fix longstanding bug due to unexpected interference via side-effect. + + * lisp/emacs-lisp/cl-generic.el (cl--generic-get-dispatcher): + Copy the `dispatch` arg before storing it into the hash-table. + +2022-01-05 Juri Linkov <juri@linkov.net> + + * lisp/textmodes/paragraphs.el (repunctuate-sentences): Use filter variable. + + (repunctuate-sentences-filter)<defun>: + Reimplement without using match data. + (repunctuate-sentences-filter)<defvar>: New variable. + (repunctuate-sentences): Use new variable. + Remove regexp group from spaces as was before. + https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00395.html + +2022-01-05 Lars Ingebrigtsen <larsi@gnus.org> + + Fix typo in cvs-status-mode-map keymap + + * lisp/vc/cvs-status.el (cvs-status-mode-map): Fix typo in keymap + definition. + +2022-01-05 Eli Zaretskii <eliz@gnu.org> + + Fix info-lookup docs and "C-h S" in major-modes with no manuals + + * lisp/info-look.el (info-lookup-alist, info-lookup-add-help) + (info-lookup-symbol, info-lookup-file, info-lookup) + (info-lookup-interactive-arguments): Clarify and expand the doc + strings. + (info-lookup-change-mode): Topic values can have their `:mode' as + a cons cell, not just a mode's symbol; support that. + +2022-01-05 Po Lu <luangruo@yahoo.com> + + Enable subpixel antialiasing on the Cairo font driver on Haiku + + * src/ftcrfont.c (ftcrfont_open): Manually enable subpixel + antialiasing on Haiku. + + * src/haiku_support.cc + (get_subpixel_antialiasing): New function declaration. + (be_use_subpixel_antialising): + * src/haiku_support.h (be_use_subpixel_antialising): New + functions. + +2022-01-05 Stefan Kangas <stefan@marxist.se> + + * lisp/buff-menu.el (Buffer-menu-mode-map): Use defvar-keymap. + +2022-01-05 Po Lu <luangruo@yahoo.com> + + Resolve clipping related mysteries on Haiku + + * src/ftcrfont.c (ftcrfont_draw): + * src/haikufont.c (haikufont_draw): Remove workarounds for + previously broken clipping code. + * src/haikuterm.c (haiku_clip_to_string): Handle empty clipping + rectangles correctly. + (haiku_clip_to_string_exactly): Stop setting num_clips. + (haiku_draw_glyph_string): Stop saving face when drawing + overhangs. + +2022-01-05 Po Lu <luangruo@yahoo.com> + + Make sure mouse face doesn't stay on the cursor after it is cleared + + cursor_in_mouse_face_p will still return true when the phys + cursor is drawn inside show_mouse_face when called by + clear_mouse_face, since that drawing happens before + hlinfo->mouse_face_window can be set to nil. + + However, the row's mouse_face_p will be adjusted before the + cursor is drawn in show_mouse_face, so it can be used to + determine if the cursor is actually under mouse face. + + * src/xdisp.c (fill_composite_glyph_string): + (fill_gstring_glyph_string): + (fill_glyphless_glyph_string): + (fill_glyph_string): + (fill_xwidget_glyph_string): + (fill_stretch_glyph_string): Only apply mouse face when + DRAW_CURSOR if the row is also mouse_face_p. + + (set_glyph_string_background_width): Only adjust width if the + row holding the cursor is also mouse_face_p. + +2022-01-05 Po Lu <luangruo@yahoo.com> + + Simply conditions for mouse face display when drawing cursor on Haiku + + * src/haikuterm.c (haiku_draw_stretch_glyph_string): Simplify + conditions for mouse face display. + +2022-01-05 Po Lu <luangruo@yahoo.com> + + Remove some unnecessary graphics state saves on Haiku + + * src/haikufont.c (haikufont_draw): + * src/haikuterm.c (haiku_draw_box_rect): + (haiku_draw_relief_rect): + (haiku_draw_underwave): + (haiku_draw_text_decoration): + (haiku_draw_plain_background): + (haiku_draw_glyph_string_foreground): + (haiku_draw_glyphless_glyph_string_foreground): + (haiku_draw_stretch_glyph_string): + (haiku_draw_composite_glyph_string_foreground): + (haiku_draw_image_glyph_string): Remove unnecessary calls to + BView_StartClip and BView_EndClip. + +2022-01-05 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + e7aa3ece52 Fix vc-git with old Git over Tramp and cygwin-mount.el + c0cfbca311 * lisp/emacs-lisp/checkdoc.el (bytecomp): Add missing require + + # Conflicts: + # etc/NEWS + +2022-01-04 Po Lu <luangruo@yahoo.com> + + Fix xwidgets setting their own signal handlers + + * src/xgselect.c (release_select_lock): + (acquire_select_lock): Fix coding style. + (xg_select): Call `catch_child_signal' if xwidgets are enabled. + + * src/xwidget.c (kill_xwidget): + (kill_buffer_xwidgets): Call `catch_child_signal'. (bug#53013) + +2022-01-04 Po Lu <luangruo@yahoo.com> + + Fix display of internal border in child frames on pgtk + + * src/pgtkfns.c (Fx_create_frame): Fix child frame border + resource names. + * src/pgtkterm.c (pgtk_clear_under_internal_border): Fix test + for child frames. (bug#53018) + +2022-01-04 Po Lu <luangruo@yahoo.com> + + Correctly set up XI key input mask on X Toolkit builds + + * src/xfns.c (setup_xi_event_mask): Also set the key event mask + on the outer window, which might also have the input focus. + (x_window) [USE_X_TOOLKIT]: Set up XI event mask a bit later. + +2022-01-04 Daniel Mendler <mail@daniel-mendler.de> + + completion--nth-completion: Throw meaningful error + + If a configured completion style does not exist, throw a meaningful + error. Also make completion-styles-alist a defvar, since completion + styles like orderless extend it. + + * lisp/minibuffer.el (completion-styles-alist): Make it a defvar. + (completion--nth-completion): Give a more meaningful error. + +2022-01-04 Paul Eggert <eggert@cs.ucla.edu> + + Update from gnulib + +2022-01-04 Robert Pluim <rpluim@gmail.com> + + Remove ambiguity from key-valid-p docstring + + * lisp/keymap.el (key-valid-p): Be explicit about the separator + being one and only one space. + +2022-01-04 Lars Ingebrigtsen <larsi@gnus.org> + + Improve pp-emacs-lisp-code for #' + + * lisp/emacs-lisp/pp.el (pp--insert-lisp): Format (function ...) + as #'. + +2022-01-04 Eli Zaretskii <eliz@gnu.org> + + A cleaner fix for display bug#52947 + + * src/xdisp.c (tab_bar_height, redisplay_tab_bar): Don't call + set_iterator_to_next here... + (display_tab_bar_line): ...call it here, even if we exit the loop + because we encounter a newline. + +2022-01-04 Jimmy Aguilar Mena <spacibba@aol.com> + + Autoload decorator for windmove-mode + +2022-01-04 Po Lu <luangruo@yahoo.com> + + Translate more modifiers to GDK ones in xwidgets + + * src/xwidget.c (xw_translate_x_modifiers): Also handle Control + and ShiftMask. + +2022-01-04 Po Lu <luangruo@yahoo.com> + + Stop assuming X kbd state works with GDK when forwarding events to xwidgets + + * src/xwidget.c (xw_translate_x_modifiers): New function. + (Fxwidget_perform_lispy_event): Translate X modifiers to GDK + modifiers before sending them to the xwidget. + +2022-01-04 Po Lu <luangruo@yahoo.com> + + Make `x-file-dialog' arity match documentation on Haiku + + * lisp/term/haiku-win.el (x-file-dialog): Fix arity. + +2022-01-04 Alan Third <alan@idiocy.org> + + Remove macOS drop-shadows on some frames (bug#28512) + + * src/nsterm.m ([EmacsWindow setParentChildRelationships]): Remove + shadows on undecorated child frames. + +2022-01-04 Stefan Kangas <stefan@marxist.se> + + Remove unnecessary autoload cookie in font-core.el + + * lisp/font-core.el (font-lock-defaults): Remove autoload of + risky-local-variable property; this file is preloaded. + +2022-01-04 Yuuki Harano <masm+github@masm11.me> + + Remove gsettings.m4 and write directly into Makefile.in + + * configure.ac (HAVE_PGTK): Declare substitution + (HAVE_GSETTINGS): Declare substitution + * Makefile.in (HAVE_PGTK): New variable + (HAVE_GSETTINGS): New variable + (gsettingsschemadir): Don't use value from gsettings.m4 + (distclean): Add clean-gsettings-schemas + (install-gsettings-schemas): Implement instead of gsettings.m4 + (uninstall-gsettings-schemas): Implement instead of gsettings.m4 + (clean-gsettings-schemas): Implement instead of gsettings.m4 + ($(gsettings_SCHEMAS:.xml=.valid)): Implement instead of gsettings.m4 + * m4/gsettings.m4: Remove + +2022-01-04 Jim Porter <jporterbugs@gmail.com> + + Prevent further cases of duplicated separators in context menus + + In some cases, context menu items are added before the overall prompt + string. This could cause multiple consecutive separators to appear if + they "surround" the prompt string. (Bug#52293) + + * lisp/mouse.el (context-menu-map): Improve the de-duplication logic + to ignore non-menu-items when checking for consecutive separators. + + * test/lisp/mouse-tests.el + (context-menu-map-remove-consecutive-separators) + (context-menu-map-remove-separators-at-beginning-or-end): New tests. + +2022-01-04 Po Lu <luangruo@yahoo.com> + + Fix unused variable warning in last change + + * src/haiku_draw_support.c (BBitmap_transform_bitmap): Fix + unused variable warning. + +2022-01-04 Po Lu <luangruo@yahoo.com> + + Rationalize Haiku rectangle handling + + * src/haiku_draw_support.cc (BView_DrawBitmapWithEraseOp): + (BView_DrawMask): + (rotate_bitmap_270): + (rotate_bitmap_90): + (BBitmap_transform_bitmap): + * src/haiku_support.cc (UnZoom): + (GetParentWidthHeight): + (MakeFullscreen): + (AttachCairoSurface): + (AfterResize): + (DrawContent): + (BView_cr_dump_clipping): Use new rectangle handling macros. + + * src/haiku_support.h (BE_RECT_WIDTH, BE_RECT_HEIGHT): New + macros. + +2022-01-04 Po Lu <luangruo@yahoo.com> + + Make menu bar key navigation work on Haiku + + * src/haiku_support.cc (menu_bar_active_p): New variable. + (DispatchMessage): Pass through key events if the menu bar is + active. + (MenusBeginning, MenusEnd): Set `menu_bar_active_p' according + to the state of the menu bar. + (BMenuBar_delete): Clear `menu_bar_active_p'. + + * src/haikufns.c (haiku_free_frame_resources): Block input only + after checking that F is a window system frame. + * src/haikumenu.c (Fhaiku_menu_bar_open): Update doc string. + +2022-01-04 Po Lu <luangruo@yahoo.com> + + Improve Haiku frame restacking logic + + * src/haiku_support.cc (BWindow_is_active): + * src/haiku_support.h (BWindow_is_active): New functions. + + * src/haikufns.c (Fhaiku_frame_restack): Prevent the newly + raised frame from being sent to the back of the display. + +2022-01-04 Po Lu <luangruo@yahoo.com> + + Find a way to make restacking frames work on Haiku + + * doc/lispref/frames.texi (Raising and Lowering): Update + documentation to reflect that restacking frames is now + supported on Haiku. + * lisp/frame.el (haiku-frame-restack): New declaration. + (frame-restack): Use `haiku-frame-restack' on Haiku. + + * src/haiku_support.cc (BWindow_send_behind): + * src/haiku_support.h (BWindow_send_behind): + * src/haikufns.c (Fhaiku_frame_restack): New functions. + (syms_of_haikufns): New subr `haiku-frame-restack'. + +2022-01-03 Stefan Kangas <stefan@marxist.se> + + * test/src/doc-tests.el: New file. + +2022-01-03 Po Lu <luangruo@yahoo.com> + + Add effective group to xkey events when handling XI key press events + + * src/xterm.c (handle_one_xevent): Add effective group to + xkey.state when translating XI key events. + +2022-01-03 Stefan Kangas <stefan@marxist.se> + + Fix two unused variable warnings in make-docfile.c + + * lib-src/make-docfile.c (scan_lisp_file): Fix unused variable + warnings. + +2022-01-03 Stefan Kangas <stefan@marxist.se> + + Test that buffer exists in shortdoc-all-groups-work + + * test/lisp/emacs-lisp/shortdoc-tests.el + (shortdoc-all-groups-work): Test that the shortdoc buffer was created. + +2022-01-03 Po Lu <luangruo@yahoo.com> + + Fix Haiku bitmap sanity checks + + * src/haikufns.c (haiku_get_pixel, haiku_put_pixel): Fix sanity + checking of coordinate values. + +2022-01-03 Po Lu <luangruo@yahoo.com> + + Fix fringe bitmap display on haiku again + + * src/haiku_draw_support.cc (BView_DrawBitmapWithEraseOp): Fix + off-by-one errors. + +2022-01-03 Po Lu <luangruo@yahoo.com> + + Fix duplicate file panel display on Haiku + + * lisp/term/haiku-win.el (x-file-dialog): Fix up prompt to look + better. + + * src/haiku_support.cc (be_popup_file_dialog): Remove duplicate + call to `Show'. + +2022-01-03 Stefan Kangas <stefan@marxist.se> + + New test shortdoc-all-groups-work + + * test/lisp/emacs-lisp/shortdoc-tests.el + (shortdoc-all-groups-work): New test. See Bug#52969. + +2022-01-03 Stefan Monnier <monnier@iro.umontreal.ca> + + Revert part of 59732a83c8 to fix bug#52969 + + While we don't need to put docstrings of .elc files into etc/DOC, + we still need to put those of `loaddefs.el` there since we don't have + a "dynamic docstring" feature for the non-compiled files and keeping + the actual docstrings in the heap would be prohibitive. + + * src/Makefile.in ($(etc)/DOC): Scan `lisp/loaddefs.el` still. + + * lib-src/make-docfile.c (scan_lisp_file): New function. + (scan_file): Use it. + (skip_white, read_lisp_symbol, search_lisp_doc_at_eol): New functions. + +2022-01-03 Po Lu <luangruo@yahoo.com> + + * src/haiku_font_support.cc (BFont_char_bounds): Fix bearings. + +2022-01-03 Po Lu <luangruo@yahoo.com> + + Synchronize at a better place when making a frame visible on Haiku + + * src/haiku_support.cc (BWindow_set_visible): Stop synchronizing + here. + + * src/haikufns.c (haiku_visualize_frame): + (haiku_unvisualize_frame): Synchronize after visibility changes. + +2022-01-03 Po Lu <luangruo@yahoo.com> + + Implement AC line status for the Haiku battery function + + * lisp/battery.el (battery--search-haiku-acpi-status): Return + `fully-charged' instead of `normal'. + (battery-haiku-acpi-battery): Implement %L for AC line status. + +2022-01-03 Stefan Kangas <stefan@marxist.se> + + elide-head: Make GPL regexp more forgiving + + * lisp/elide-head.el (elide-head-headers-to-hide): Make GPL regexp + more forgiving. + * test/lisp/elide-head-tests.el (elide-head--add-test): New macro. + (elide-head--test-headers-to-hide/gpl2-1) + (elide-head--test-headers-to-hide/gpl3-1) + (elide-head--test-headers-to-hide/gpl3-2) + (elide-head--test-headers-to-hide/gpl3-3) + (elide-head--test-headers-to-hide/gpl3-4): New tests. + +2022-01-03 Po Lu <luangruo@yahoo.com> + + Fix battery load calculation on Haiku + + * lisp/battery.el (battery-haiku-acpi-battery): Fix load + calculation. + +2022-01-03 Po Lu <luangruo@yahoo.com> + + Add support for the Haiku ACPI battery driver + + * lisp/battery.el (battery-status-function): Choose + `battery-haiku-acpi-battery' if the Haiku ACPI driver is + available. + (battery--search-haiku-acpi-status): + (battery-haiku-acpi-battery): New functions. + +2022-01-03 Stefan Kangas <stefan@marxist.se> + + * lisp/elide-head.el (elide-head-headers-to-hide): Simplify. + +2022-01-02 Stefan Kangas <stefan@marxist.se> + + Silence byte-compiler in eieio tests + + This is a temporary workaround for Bug#52971. + * test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el + (eieio-compat) + * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el (eieio-compat): + Silence byte-compiler by wrapping require in with-no-warnings. + +2022-01-02 Po Lu <luangruo@yahoo.com> + + Don't try to guess a delta if a scroll valuator's state is unknown + + * src/xterm.c (x_get_scroll_valuator_delta): Return DBL_MAX if + the scroll valuator's value is unknown. + +2022-01-02 Po Lu <luangruo@yahoo.com> + + Revert "Stop sending touch-end events if coalescing scroll events" + + This reverts commit a6952f78f3962ac2d9a5add580a130f0abd31429. + +2022-01-02 Po Lu <luangruo@yahoo.com> + + Use XKB to find modifiers on x + + * src/xterm.c (x_find_modifier_meanings): Look for virtual + modifiers with Xkb instead. + (handle_one_xevent): Add group when translating XI2 keycodes and + handle Xkb keymap events. + (x_term_init): Populate dpyinfo->xkb_event_type. + + * src/xterm.h (struct x_display_info): New field + `xkb_event_type', and change modifier masks to `unsigned int'. + +2022-01-02 Po Lu <luangruo@yahoo.com> + + * src/haikumenu.c (haiku_menu_show): Fix input blocking. + +2022-01-02 Stefan Kangas <stefan@marxist.se> + + Move define-keymap and defvar-keymap to keymap.el + + These functions deal with the "new" keymap binding interface, so they + belong in keymap.el rather than in subr.el. + * lisp/subr.el (define-keymap--compile, define-keymap) + (defvar-keymap): Move from here ... + * lisp/keymap.el (define-keymap--compile, define-keymap) + (defvar-keymap): ... to here. + +2022-01-02 Stefan Monnier <monnier@iro.umontreal.ca> + + Merge remote-tracking branch 'origin/emacs-28' into trunk + +2022-01-02 Stefan Kangas <stefan@marxist.se> + + elide-head: Add support for modified BSD license + + * lisp/elide-head.el (elide-head-headers-to-hide): Add support for + the modified BSD license (3-clause BSD). + +2022-01-02 Stefan Kangas <stefan@marxist.se> + + New :type key for defcustom + + As compared to the old type key-sequence that deals with raw key + sequences, this :type conforms to the format used by the new keymap-* + functions. + * lisp/wid-edit.el (key): New widget type. (Bug#52523) + (widget-key-prompt-value-history): New variable. + (widget-key-validate): New function. + (key-sequence): Doc fix. + * doc/lispref/customize.texi (Simple Types): Document above new type. + +2022-01-02 Mattias Engdegård <mattiase@acm.org> + + Don't fail flymake-tests if `gcc` actually is Clang + + * test/lisp/progmodes/flymake-tests.el (flymake-tests--gcc-is-clang) + (different-diagnostic-types, included-c-header-files): Skip tests that + depend on the `gcc` command really being GCC and not Clang. + +2022-01-02 Po Lu <luangruo@yahoo.com> + + Add column width to tooltip frame width on pgtk + + * src/pgtkfns.c (Fx_show_tip): Add column width to width to + avoid an odd problem in the GTK allocation code. (bug#52705) + +2022-01-02 Po Lu <luangruo@yahoo.com> + + Fix mouse wheel scroll direction on pgtk + + * src/pgtkterm.c (scroll_event): Fix scroll modifiers when + `mwheel-coalesce-scroll-events' is nil. + +2022-01-02 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + efb1c7ec37 ; * admin/notes/years: More known problems. + f475c5823a ; Copyright year fixes + 2684def348 ; Run set-copyright from admin.el + 2558b37b5e ; * admin/notes/years: Mention known problems with 'update... + +2022-01-01 Po Lu <luangruo@yahoo.com> + + Fix XRegisterIMInstantiateCallback function argument configure test + + * configure.ac: Use XIDProc where XIMProc was mistakenly used. + +2022-01-01 Po Lu <luangruo@yahoo.com> + + Stop sending touch-end events if coalescing scroll events + + * src/xterm.c (handle_one_xevent): Don't generate touch-end + events if mwheel_coalesce_scroll_events is non-nil. + +2022-01-01 Po Lu <luangruo@yahoo.com> + + Fix mouse face problems when moving between two frames on Haiku + + * src/haiku_support.cc (movement_locker): New locker. + (MouseMoved): Lock that locker. + (BWindow_new): + (BWindow_quit): Use LockLooper instead of Lock. + + * src/haikuterm.c (haiku_read_socket): Clear mouse face if + a motion event is received for a frame other than the one + that is currently displaying the mouse face. + +2022-01-01 Po Lu <luangruo@yahoo.com> + + Make quitting actually work in Haiku file dialogs + + * src/haiku_support.h: (be_popup_file_dialog) + * src/haiku_support.cc (be_popup_file_dialog): New parameter + `maybe_quit_function'. + * src/haikufns.c (Fhaiku_read_file_name): Pass `maybe_quit' as + the maybe_quit_function. + +2022-01-01 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + 58b0ada20b Update more copyright years + +2022-01-01 Stefan Kangas <stefan@marxist.se> + + elide-head: Support more licenses + + * lisp/elide-head.el (elide-head-headers-to-hide): Add support for the + Expat License, and more variants of the BSD-2-Clause License. + + Add old FSF address. This fixes a bug reported in 2003: + https://lists.gnu.org/r/bug-gnu-emacs/2003-01/msg00142.html + +2022-01-01 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + 836be7a112 ; * etc/refcards/ru-refcard.tex: Update Copyright year. + 86cbc6ee4a * lisp/net/tramp-sh.el: Adapt copyright year + ebe8772f65 ; Minor fixes related to copyright years + 23c1ee6989 ; * test/manual/etags/ETAGS.good_N: Adjust to copyright ye... + 8d3fc7ec89 * src/xfaces.c (face_for_font): Make 'hash' be uintptr_t. + 19dcb237b5 ; Add 2022 to copyright years. + + # Conflicts: + # etc/NEWS + # etc/refcards/ru-refcard.tex + # lib/cdefs.h + # lisp/erc/erc-dcc.el + # lisp/erc/erc-imenu.el + # lisp/erc/erc-replace.el + # lisp/image-dired.el + # lisp/progmodes/xref.el + # m4/alloca.m4 + # m4/byteswap.m4 + # m4/errno_h.m4 + # m4/getopt.m4 + # m4/gnulib-common.m4 + # m4/inttypes.m4 + # m4/stddef_h.m4 + # m4/stdint.m4 + # m4/sys_socket_h.m4 + +2022-01-01 Po Lu <luangruo@yahoo.com> + + Increase size of precision scrolling momentum ring + + * lisp/pixel-scroll.el + (pixel-scroll-precision-initial-velocity-factor): Fix + calculation of last timestamp. + (pixel-scroll-precision): + (pixel-scroll-kinetic-state): + (pixel-scroll-accumulate-velocity): + (pixel-scroll-start-momentum): + (pixel-scroll-calculate-velocity): Increase default ring size + to 30. + +2022-01-01 Po Lu <luangruo@yahoo.com> + + Make last change compile + + * src/haiku_support.cc (EmacsShow): Fix last change. + (TearDownDoubleBuffering): Likewise. + (Draw): Draw normally if not double buffered even if shown_flag + is true. + +2022-01-01 Po Lu <luangruo@yahoo.com> + + Fix expose events in non-double-buffered child frames on Haiku + + * src/haiku_support.cc (EmacsShow): Set shown_flag to 1 only if + this view is double buffered. + (TearDownDoubleBuffering): Clear shown_flag. + +2022-01-01 Po Lu <luangruo@yahoo.com> + + Fix some more off-by-one errors in Haiku image code + + * src/haiku_draw_support.cc (BView_DrawBitmapWithEraseOp): + (BView_DrawMask): + (BBitmap_transform_bitmap): + * src/haiku_support.cc (AttachCairoSurface): Adjust calculations + to take account of BRect width and height functions returning + (start - end) instead of the actual width and height of the + rectangle. + +2022-01-01 Po Lu <luangruo@yahoo.com> + + Fix deadlocks with invisible frames and threads in Haiku + + * src/haiku_support.cc (class EmacsWindow): New field + `was_shown_p'. + (EmacsShow): Lock looper if the window wasn't ever visible. + (BWindow_new): Unlock window looper after creating it. + +2022-01-01 Po Lu <luangruo@yahoo.com> + + Set display last user time when handling pinch events + + * src/xterm.c (handle_one_xevent): Set last user time for XI + pinch events. + +2022-01-01 Po Lu <luangruo@yahoo.com> + + Fix child frame synchronization order on Haiku + + * src/haiku_support.cc (DoMove): + (FrameMoved): Fix locking and sync order semantics. + +2022-01-01 Po Lu <luangruo@yahoo.com> + + Implement numeric values of `mouse-highlight' on Haiku + + * src/haikuterm.c (haiku_read_socket): Clear mouse face on + keyboard input if `mouse-highlight' is a fixnum. + +2022-01-01 Stefan Kangas <stefan@marxist.se> + + Update publicsuffix.txt from upstream + + * etc/publicsuffix.txt: Update from + https://publicsuffix.org/list/public_suffix_list.dat + dated 2021-12-31 02:56:06 UTC. + +2022-01-01 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 67400da412 Improve doc strings of fringe indicator variables + a6adfe21e4 * lisp/tab-line.el (tab-line--get-tab-property): New funct... + +2022-01-01 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + f2031d0ddb Minor improvement in user documentation of completion style + 1e3076e2db Fix bug where bookmark-jump used (point), not (point-at-bol) + +2022-01-01 Po Lu <luangruo@yahoo.com> + + Flush frames after mouse face is cleared on a child frame in Haiku + + * src/haiku_support.cc (~EmacsWindow): + (UpwardsSubsetChildren): + (UpwardsUnSubsetChildren): Fix locking semantics. + + * src/haikuterm.c (haiku_read_socket): Flush dirty back buffers + after clearing mouse face because the pointer was moved out of a + frame. + +2021-12-31 Po Lu <luangruo@yahoo.com> + + Print dead xwidgets specially + + * src/print.c (print_vectorlike) <PVEC_XWIDGET>: Print "killed + xwidget" for dead xwidgets. + +2021-12-31 Alan Mackenzie <acm@muc.de> + + Try to make scratch/correct-warning-pos build on Windows and not segfault + + * src/comp.c (emit_EQ): Replace calls to gcc_jit_context_new_location with + NULLs. + (Fcomp__init_ctxt): Remove the register_emitter call for Qsymbol_with_pos_p, + which was causing a segfault. + +2021-12-31 Alan Mackenzie <acm@muc.de> + + Miscellaneous enhancements to scratch/correct-warning-pos. + + 1. Check the type (symbol with position) of the argument given to the native + compiled version of SYMBOL_WITH_POS_SYM. + 2. Handle infinite recursion caused by circular lists, etc., in + macroexp-strip-symbol-positions by using hash tables. + 3. Read byte compiled functions without giving symbols positions. + + * lisp/emacs-lisp/comp.el (comp-finalize-relocs): Add symbol-with-pos-p into + the list of relocated symbols. + + * lisp/emacs-lisp/macroexp.el (macroexp--ssp-conses-seen) + (macroexp--ssp-vectors-seen, macroexp--ssp-records-seen): Renamed, and + animated as hash tables. + (macroexp--strip-s-p-2): Optionally tests for the presence of an argument in + one of the above hash tables, so as to handle otherwise infinite recursion. + (byte-compile-strip-s-p-1): Add a condition-case to handle infinite recursion + caused by circular lists etc., using the above hash tables as required. + + * src/comp.c (comp_t): New element symbol_with_pos_sym. + (emit_SYMBOL_WITH_POS_SYM): Amend just to call the new SYMBOL_WITH_POS_SYM. + (emit_CHECK_SYMBOL_WITH_POS, define_SYMBOL_WITH_POS_SYM): New functions. + (Fcomp__init_ctxt): Register an emitter for Qsymbol_with_pos_p. + (Fcomp__compile_ctxt_to_file): Call define_SYMBOL_WITH_POS_SYM. + (syms_of_comp): Define Qsymbol_with_pos_p. + + * src/data.c (syms_of_data): Define a new error symbol Qrecursion_error, an + error category for the new error symbols Qexcessive_variable_binding and + Qexcessive_lisp_nesting. + + * src/eval.c (grow_specpdl): Change the signal_error call to an xsignal0 call + using the new error symbol Qexcessive_variable_binding. + (eval_sub, Ffuncall): Change the `error' calls to xsignal using the new error + symbol Qexcessive_lisp_nesting. + + * src/lread.c (read1): When reading a compiled function, read the components + of the vector without giving its symbols a position. + +2021-12-31 Stefan Kangas <stefan@marxist.se> + + Use defvar-keymap in play/*.el + + * lisp/play/5x5.el (5x5-mode-map): + * lisp/play/blackbox.el (blackbox-mode-map): + * lisp/play/bubbles.el (bubbles-mode-map): + * lisp/play/decipher.el (decipher-mode-map): + * lisp/play/doctor.el (doctor-mode-map): + * lisp/play/gametree.el (gametree-mode-map): + * lisp/play/gomoku.el (gomoku-mode-map): + * lisp/play/mpuz.el (mpuz-mode-map): + * lisp/play/pong.el (pong-mode-map): + * lisp/play/solitaire.el (solitaire-mode-map): Use defvar-keymap. + +2021-12-31 Lars Ingebrigtsen <larsi@gnus.org> + + `make-finalizer' now has to be called with a function, so adjust test + +2021-12-31 Michael Albinus <michael.albinus@gmx.de> + + Documentation update for Secret Service + + * doc/misc/auth.texi (Secret Service API): Precise "session" collection. + + * lisp/auth-source.el (auth-sources): Adapt custom label. + + * lisp/net/secrets.el: Adjust comments. + +2021-12-31 Po Lu <luangruo@yahoo.com> + + Fix copyright dates in some files belonging to the pgtk port + + * src/pgtkgui.h: + * src/pgtkim.c: + * src/pgtkmenu.c: + * src/pgtkselect.c: + * src/pgtkselect.h: + * src/pgtkterm.c: + * src/pgtkterm.h: Fix copyright dates to say '2021'. + +2021-12-31 Po Lu <luangruo@yahoo.com> + + On Haiku, sync a frames's connection to the app sever after raising + + * src/haiku_support.h: (BWindow_sync) + * src/haiku_support.cc (BWindow_sync): New function. + * src/haikuterm.c (haiku_frame_raise_lower): Synchronize window + after raising it to avoid situations where raising windows is + done out-of-order, such as when ediff raises a frame. + +2021-12-31 Po Lu <luangruo@yahoo.com> + + Fix child frame unlinking on Haiku + + * src/haiku_support.cc (UnlinkChild): Fix obvious mistake. + (DoMove): Lock child frame window before moving it. + +2021-12-31 Po Lu <luangruo@yahoo.com> + + Use a single global lock for the child frame state on Haiku + + Each BWindows (and various system callbacks) runs in a separate + thread, so there are very complicated locking semantics that + used to be handled manually. This changes child frame state to + use a single global lock, which makes things much easier. + + * src/haiku_support.cc (child_frame_lock): New variable. + (class EmacsWindow): + (~EmacsWindow): + (Unparent): + (ParentTo): + (MoveChild): + (FrameMoved): + (EmacsHide): + (EmacsShow): + (GetParentWidthHeight): + (OffsetChildRect): + (MakeFullscreen): + (SetUpDoubleBuffering): Use a single lock for controlling access + to child frame state. + +2021-12-31 Stephen Berman <stephen.berman@gmx.net> + + Fix handling of webkit xwidget bookmarks + + Make jumping to a bookmarked webkit xwidget in another window or + another frame show the xwidget only in that window or frame and + refactor new session code used by the bookmark code (bug#52856). + In addition, make xwidget-webkit-clone-* commands work. + + * lisp/xwidget.el (xwidget-webkit-clone-and-split-below) + (xwidget-webkit-clone-and-split-right): Unbreak these functions by + passing just the URL to them, not the message displaying it. + (xwidget-webkit-bookmark-jump-new-session): Adjust doc string, + rephrasing and removing a customization suggestion that cannot + take effect. + (xwidget-webkit-bookmark-jump-handler): New autoloaded function. + (xwidget-webkit-bookmark-make-record): Use it. + (xwidget-webkit--create-new-session-buffer): New function + extracted from `xwidget-webkit-new-session'. + (xwidget-webkit-new-session): Use it. + +2021-12-31 Eli Zaretskii <eliz@gnu.org> + + Minor improvements of 'lisp-directory' docs + + * lisp/startup.el (lisp-directory): + * etc/NEWS: + * doc/lispref/loading.texi (Library Search): Improve wording of + documentation of 'lisp-directory' and related features. + +2021-12-31 Po Lu <luangruo@yahoo.com> + + Prevent double buffering from being disabled on USE_BE_CAIRO builds + + The direct rendering code used in that situation never + completely worked, and the BDirectWindow destructor is also + buggy. Completely remove that code in order to let us inherit + from BWindow, so as to prevent the buggy destructor from being + run. + + * src/haiku_support.cc (cairo_format_from_color_space): Delete + function. + (class EmacsWindow): Inherit from BWindow. + (EmacsWindow): Call BWindow constructor instead. + (MessageReceived): + (DispatchMessage): + (FrameResized): + (FrameMoved): + (Zoom): Call BWindow functions instead. + (EmacsView_cairo_surface): Stop looking for surfaces in the + window. + (EmacsWindow_begin_cr_critical_section): + (EmacsWindow_end_cr_critical_section): Stop locking the window. + + * src/haikufns.c (haiku_set_inhibit_double_buffering): Always + enable double buffering on Cairo builds. + +2021-12-31 Po Lu <luangruo@yahoo.com> + + Don't select for gesture events on xwidgets if the server is too old + + * src/xwidget.c (x_draw_xwidget_glyph_string): Only select for + XI gesture events if the server supports XI 2.4 or later. + +2021-12-31 Stefan Monnier <monnier@iro.umontreal.ca> + + (Fmake_finalizer): Check the arg is a function + + * src/eval.c (syms_of_eval): Add `Qfunctionp`. + * src/alloc.c (Fmake_finalizer): Check the arg is a function. + +2021-12-31 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/package.el (package-get-version): Add fallback + +2021-12-30 Stefan Monnier <monnier@iro.umontreal.ca> + + Don't store docstrings of preloaded .el files in etc/DOC + + Since the location of those files changes between build time and + installation time, this requires to tweak the file name used in those + (#$ . NNN) references during the dump so they don't hardcode the build + directory. We do it in the same way as was already done for those + same file names in `load-history`, except we convert them back to + absolute file names more lazily (i.e. when fetching the actual + docstring rather than at startup), which requires remembering the + `lisp-dir` computed at startup in the new `lisp-directory` variable. + + * src/Makefile.in ($(etc)/DOC): Don't scan Lisp files any more. + + * src/lread.c (Fload): Use relative file names for `load-file-name` + when preloading for the dump, like we already did for `current-load-list`. + (read_list): Don't zero-out dynamic docstring references during the + preload since they won't be filled later by Snarf-documentation any more. + (read1): Remove the hash-hack for doc references that were zeroed. + + * lisp/startup.el (lisp-directory): New variable. + (command-line): Set it. + + * src/doc.c (get_doc_string): Use `lisp-directory` for dynamic + docstring references using relative file names. + (syms_of_doc): Add `Qlisp_directory`. + + * lib-src/make-docfile.c (scan_file): Don't handle `.el` or `.elc` + files any more. + (IS_SLASH): Remove macro, not used any more. + (skip_white, read_lisp_symbol, search_lisp_doc_at_eol) + (scan_lisp_file): Remove functions, not used any more. + + * doc/lispref/loading.texi (Library Search): Mention `lisp-directory`. + +2021-12-30 Po Lu <luangruo@yahoo.com> + + Add pinch event support to xwidgets + + * src/xterm.c (handle_one_xevent): Pass through pinch events to + xwidgets and provide root coordinates when translating motion + events. + * src/xwidget.c (xwidget_motion_notify): Use provided root + window coordinates. + (xwidget_pinch): New function. + * src/xwidget.h (xwidget_motion_notify): Update prototype. + (xwidget_pinch): New function prototype. + +2021-12-30 Po Lu <luangruo@yahoo.com> + + Restore original xwidget embedder after performing a lispy event + + * src/xwidget.c (Fxwidget_perform_lispy_event): Restore original + embedder after performing event. + (Fdelete_xwidget_view): Block input around non-reentrant + section. + +2021-12-30 Po Lu <luangruo@yahoo.com> + + * src/xwidget.c (Fxwidget_perform_lispy_event): Use FRAME_WINDOW_P. + +2021-12-30 Glenn Morris <rgm@gnu.org> + + * lisp/window.el (display-comint-buffer-action): Fix type. + +2021-12-30 Philipp Stephani <phst@google.com> + + * lisp/emacs-lisp/ert.el (ert-select-tests): Document new error. + + * lisp/emacs-lisp/ert.el (ert-select-tests): Simplify nested switch + +2021-12-30 Philipp Stephani <phst@google.com> + + Properly report errors about unbound ERT test symbols. + + Assertions should only be used to check internal consistency within a + package, not to check arguments passed by callers. Instead, define + and use a new error symbol. + + * lisp/emacs-lisp/ert.el (ert-test-unbound): New error symbol. + (ert-select-tests): Use it. + + * test/lisp/emacs-lisp/ert-tests.el (ert-test-select-undefined): New + unit test. + + * etc/NEWS: Document new behavior. + +2021-12-30 Eli Zaretskii <eliz@gnu.org> + + Fix multisession-tests on MS-Windows + + * test/lisp/emacs-lisp/multisession-tests.el + (multi-test-files-simple): On MS-Windows and Haiku, wait before + invoking the Emacs sub-process, not after, to ensure the later + update is detected with 1-sec file time resolution. + +2021-12-30 Po Lu <luangruo@yahoo.com> + + Make sure widget buttons always have a left box line + + * lisp/wid-edit.el (widget-specify-button): Add an invisible + before-string to the button overlay. (bug#51550) + +2021-12-30 Alan Mackenzie <acm@muc.de> + + CC Mode: Prevent rapid alternation of fontification of "found types" + + This fixes bug #52863. + + * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): When a new type is + found, postpone entering it into c-found-types (and thus triggering the + fontification of that type throughout the buffer) until the end of the + function, when we're sure that the "type" found actually is a type. + +2021-12-30 Eli Zaretskii <eliz@gnu.org> + + Fix previous change in 'pop_it' + + * src/xdisp.c (restore_face_box_flags): New function. + (pop_it): Use 'restore_face_box_flags'. (Bug#51550) + +2021-12-30 Eli Zaretskii <eliz@gnu.org> + + Fix start-of-box-face display after display and overlay strings + + * src/xdisp.c (pop_it): Recompute the 'start_of_box_run_p' flag, + like we do in 'handle_fontified_prop', when faces change while + iterating over a buffer or string. (Bug#51550) + +2021-12-30 Alan Mackenzie <acm@muc.de> + + Make symbols with positions work with native compilation + + This version of the software should bootstrap Emacs successfully with native + compilation enabled. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-strip-s-p-1) + (byte-compile-strip-symbol-positions): Rename and move to macroexp.el. Rename + calls to these functions throughout the file. + (byte-compile-initial-macro-environment): In the code sections for + eval-when-compile and eval-and-compile, call macroexp-strip-symbol-positions + before evaluating code. + (byte-compile-file, byte-compile-output-file-form) + (byte-compile-file-form-defmumble, byte-compile, batch-byte-compile): Call + macroexp-strip-symbol-positions from code being passed to the native compiler. + + * lisp/emacs-lisp/cl-macs.el (cl-macs--strip-s-p-1) + (cl-macs--strip-symbol-positions): Remove, replacing them with the renamed + functions in macroexp.el. + (cl-define-compiler-macro): Apply macroexp-strip-symbol-positions to ARGS and + BODY. + + * lisp/emacs-lisp/comp.el (comp-limplify-lap-inst): Use `null' to compile + byte-not rather than a compilation of `eq'. + (comp--native-compile): bind symbols-with-pos-enabled to t. + + * lisp/emacs-lisp/macroexp.el (byte-compile--ssp-conses-seen) + (byte-compile--ssp-vectors-seen, byte-compile--ssp-records-seen): Provisional + auxiliary variables to support the following functions. + (macroexp--strip-s-p-2, byte-compile-strip-s-p-1) + (macroexp-strip-symbol-positions): Functions moved from bytecomp.el, renamed, + and further developed. + (macroexp--compiler-macro): Bind symbol-with-pos-enabled to t around the call + to `handler'. + (internal-macroexpand-for-load): Strip symbol positions from the form being + eagerly expanded for macros. + + * src/comp.c (F_SYMBOLS_WITH_POS_ENABLED_RELOC_SYM): New macro for a + relocation symbol. + (comp_t): New elements bool_ptr_type, f_symbols_with_pos_enabled_ref, + lisp_symbol_with_position, lisp_symbol_with_position_header, + lisp_symbol_with_position_sym, lisp_symbol_with_position_pos, + lisp_symbol_with_position_type, lisp_symbol_with_position_ptr_type, + get_symbol_with_position. + (helper_GET_SYMBOL_WITH_POSITION): New function. + (emit_BASE_EQ): Function rename from emit_EQ. + (emit_AND, emit_OR, emit_BARE_SYMBOL_P, emit_SYMBOL_WITH_POS_P) + (emit_SYMBOL_WITH_POS_SYM): New functions. + (emit_EQ): New function which handles symbols with position correctly. + (emit_NILP): Use emit_BASE_EQ rather than emit_EQ. + (emit_limple_insn): When emitting a conditional branch, check each operand for + being a literal Qnil, and if one of them is, use emit_BASE_EQ rather than + emit_EQ. + (declare_runtime_imported_funcs): Declare helper_GET_SYMBOL_WITH_POSITION. + (emit_ctxt_code): Export the global F_SYMBOLS_WITH_POS_ENABLED_RELOC_SYM. + (define_lisp_symbol_with_position, define_GET_SYMBOL_WITH_POSITION): New + functions. + (Fcomp__init_ctxt): Initialize comp.bool_ptr_type, call the two new + define_.... functions. + (load_comp_unit): Initialize **f_symbols_with_pos_enabled_reloc. + + * src/fns.c (Fput): Strip positions from symbols in PROPNAME and VALUE. + +2021-12-30 Juri Linkov <juri@linkov.net> + + * lisp/tab-line.el (tab-line-tab-name-format-default): Add help-echo. + + (bug#52889) + +2021-12-30 Po Lu <luangruo@yahoo.com> + + Make xwidget motion commands hscroll the window of wide widgets + + * lisp/xwidget.el (xwidget-info): New function declaration. + (xwidget-webkit-scroll-forward): + (xwidget-webkit-scroll-backward): Hscroll the window if the + widget is wider than the text area. (bug#52885) + + * src/xwidget.c (xwidget_scroll, xwidget_motion_notify): Apply + clip offsets to coordinates. + +2021-12-30 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 06545bc0cc CC Mode: c-update-brace-stack: After struct foo *, do not ... + f11779f01b Improve documentation of 'M-X' and related features + + # Conflicts: + # etc/NEWS + +2021-12-29 Po Lu <luangruo@yahoo.com> + + Work around xwidgets releasing the passive grab on an entry event + + * src/xterm.c (handle_one_xevent): Don't send XI_Enter events to + xwidgets if button 1 is pressed. + +2021-12-29 Po Lu <luangruo@yahoo.com> + + Use XRandR 1.5 to generate monitor attributes if available + + * src/xfns.c (x_get_monitor_attributes_xrandr): Use XRR 1.5 if + present. + (xlw_monitor_dimensions_at_pos_1): Remove redundant XRR 1.5 + code. + (xlw_monitor_dimensions_at_pos): Rely on + `x_get_monitor_attributes_xrandr' to retrieve the workarea + instead. + +2021-12-29 Po Lu <luangruo@yahoo.com> + + Translate crossing event mode when sending them to xwidgets + + * src/xwidget.c (xi_translate_notify_detail): Use XI constants + instead. + (xwidget_motion_or_crossing): Translate XI entry event mode. + +2021-12-29 Juri Linkov <juri@linkov.net> + + * lisp/textmodes/paragraphs.el (repunctuate-sentences-filter): New function. + + (repunctuate-sentences): Use it on isearch-filter-predicate + to skip unnecessary matches. (bug#52769) + +2021-12-29 Juri Linkov <juri@linkov.net> + + * lisp/textmodes/sgml-mode.el (sgml-mode): Set skeleton-end-newline to nil. + + Prevent skeleton.el from adding a newline to each inserted + skeleton. Those which do want a newline do that explicitly in + their define-skeleton form. This is what texinfo-mode does (bug#52864). + +2021-12-29 Eli Zaretskii <eliz@gnu.org> + + Fix documentation of 'define-keymap' + + * doc/lispref/keymaps.texi (Creating Keymaps) + (Changing Key Bindings): Fix typos, improve wording. + +2021-12-29 Eli Zaretskii <eliz@gnu.org> + + Fix recent changes in 'keymap-lookup' documentation + + * doc/lispref/keymaps.texi (Functions for Key Lookup): Improve + wording, correct typos. + +2021-12-29 Tassilo Horn <tsdh@gnu.org> + + Revert "Revert "Fix fontification in diff--font-lock-prettify"" + + This reverts commit 3cadd72673d8095df7eeb8e847db87ae42b5e2f6. + +2021-12-29 Tassilo Horn <tsdh@gnu.org> + + Revert "Fix fontification in diff--font-lock-prettify" + + This reverts commit 1da392d62d1ae743151f7fda83d0725ec6053686. + +2021-12-29 Matthias Meulien <orontee@gmail.com> + + Fix fontification in diff--font-lock-prettify + + * lisp/vc/diff-mode.el (diff--font-lock-prettify): Fix + diff--font-lock-prettify on created or deleted files + (bug#52810). + +2021-12-29 Lars Ingebrigtsen <larsi@gnus.org> + + Document keymap-set-after in Modifying Menus in lispref + + * doc/lispref/keymaps.texi (Modifying Menus): Document + keymap-set-after (bug#52819). + +2021-12-29 Lars Ingebrigtsen <larsi@gnus.org> + + Document `keymap-lookup' in the lipsref manual + + * doc/lispref/keymaps.texi (Functions for Key Lookup): Document + `keymap-lookup' instead of `lookup-key' (bug#52820). + +2021-12-29 Lars Ingebrigtsen <larsi@gnus.org> + + Move define-keymap manual entry to Creating Keymaps + + * doc/lispref/keymaps.texi (Creating Keymaps) + (Changing Key Bindings): Move `define-keymap'/`defvar-keymap' to + the Creating Keymaps node. + +2021-12-29 Lars Ingebrigtsen <larsi@gnus.org> + + Allow the user to specify shr-width in mm-shr + + * lisp/gnus/mm-decode.el (mm-shr): Allow the user to specify the + width by setting `shr-width' (bug#52825). + +2021-12-29 Lars Ingebrigtsen <larsi@gnus.org> + + Make multi-test-files-busy shorter + + Ignore manual/ directory made by admin/make-manuals + +2021-12-29 Lars Ingebrigtsen <larsi@gnus.org> + + Adjust multi-test-files-simple test for Windows + + * test/lisp/emacs-lisp/multisession-tests.el + (multi-test-files-simple): Adjust test to Emacs timestamp + resolution on Windows. + +2021-12-29 Po Lu <luangruo@yahoo.com> + + Fix a hang on servers that don't support the X Keyboard Extension + + * src/xfns.c (Fx_backspace_delete_keys_p): Don't block input + before checking for Xkb. + +2021-12-29 Po Lu <luangruo@yahoo.com> + + Translate state of XI2 entry events when sending them to xwidgets + + * src/xwidget.c (xi_translate_notify_detail): New function. + (xwidget_motion_or_crossing): Translate detail and state of + GenericEvents before sending them to the widget. + +2021-12-29 Po Lu <luangruo@yahoo.com> + + Get rid of obsolete xwidget-related code on PGTK + + * src/emacsgtkfixed.c (emacs_fixed_class_init): Stop setting + obsolete methods. + + (EMACS_FIXED_GET_CLASS, struct GtkFixedPrivateL): + (emacs_fixed_gtk_widget_size_allocate): Delete obsolete things. + + * src/xwidget.c (x_draw_xwidget_glyph_string): Work around + mysterious bug. + +2021-12-29 Po Lu <luangruo@yahoo.com> + + Test for Xkb support when opening a display + + * src/xfns.c (Fx_backspace_delete_keys_p): Use + dpyinfo->supports_xkb instead of testing for its presence + manually. + + * src/xterm.c (x_term_init): Test for Xkb presence + and set supports_xkb appropriately. + + * src/xterm.h (struct x_display_info): New field `supports_xkb'. + +2021-12-29 Po Lu <luangruo@yahoo.com> + + Queue xwidget views for allocation in more places + + * src/xwidget.c (Fmake_xwidget) [HAVE_PGTK]: + (Fxwidget_resize) [HAVE_PGTK]: Queue xwidgets and views for + allocation. + +2021-12-29 Po Lu <luangruo@yahoo.com> + + Improve xwidget event handling on XI2 + + * src/xterm.c (handle_one_xevent): Pass XI2 entry and leave + events to xwidgets and fix scroll valuator reset logic for + xwidgets. + + * src/xwidget.c (xwidget_button_1): Stop ungrabbing all devices + XI2 builds. + (xwidget_motion_or_crossing): Learn to pass through XI2 crossing + events. + (x_draw_xwidget_glyph_string): Add crossing events to the XI2 + event mask. + +2021-12-29 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 06dcd2be5d Improve rectangle-mark-mode documentation regarding mark a... + +2021-12-29 Po Lu <luangruo@yahoo.com> + + Translate buttons when sending XI2 motion events to xwidgets + + * src/xterm.c (handle_one_xevent): Translate all three buttons + when passing XI2 motion events to xwidgets. + +2021-12-29 Po Lu <luangruo@yahoo.com> + + Use XI2 to handle xwidget button events + + * src/xterm.c (handle_one_xevent): Handle xwidget views when + handling XI_ButtonPress or XI_ButtonRelease events. + * src/xwidget.c (x_draw_xwidget_glyph_string): Add appropriate + values to the XI2 event mask. + +2021-12-28 Po Lu <luangruo@yahoo.com> + + Fix embedder calculation for xwidgets on PGTK + + * src/xwidget.c (Fmake_xwidget): + (x_draw_xwidget_glyph_string): Defer focus event synthesis on + PGTK as well. + (record_osr_embedder): Use view window on PGTK. + (to_embedder): + (from_embedder): Rectify accordingly. + +2021-12-28 Po Lu <luangruo@yahoo.com> + + Fix NS xwidget build + + * src/xwidget.c (kill_frame_xwidget_views): + * src/xwidget.h (kill_frame_xwidget_views): Disable on NS. + +2021-12-28 Po Lu <luangruo@yahoo.com> + + * src/xwidget.c (syms_of_xwidget): Fix typo. + +2021-12-28 Po Lu <luangruo@yahoo.com> + + Add support for xwidgets to the PGTK port + + * src/emacsgtkfixed.c (EMACS_FIXED_GET_CLASS): New function. + (struct GtkFixedPrivateL): New struct. + (emacs_fixed_gtk_widget_size_allocate): + (emacs_fixed_class_init): New functions. + + * src/keyboard.h: Declare lispy_function_keys also when + HAVE_PGTK. + + * src/pgtkterm.c (x_free_frame_resources): Destroy all xwidget + views. + (pgtk_scroll_run): Move xwidget views that overlap with the + scrolled area. + (pgtk_emacs_to_gtk_modifiers): Expose function. + + * src/pgtkterm.h: Wrap in include guard. + (pgtk_emacs_to_gtk_modifiers): New prototype. + + * src/xwidget.c (xw_forward_event_translate): + (xw_forward_event_from_view): New functions. + (Fmake_xwidget): Remove obsolete PGTK specific code. + (Fxwidget_perform_lispy_event): Convert modifiers correctly on + PGTK. + (define_cursors): Use GDK functions to define cursors on PGTK. + (xwidget_view_from_window): Disable on non-PGTK builds. + (xwidget_show_view): + (xwidget_hide_view): Implement on PGTK. + (xv_do_draw): Disable on non-PGTK builds. + (offscreen_damage_event): Queue xwidget views for draw. + (xwidget_expose): Disable on non-PGTK builds. + (xwidget_init_view): + (x_draw_xwidget_glyph_string): + (Fdelete_xwidget_view): Implement for PGTK. + (syms_of_xwidget): Don't initialize XID to widget table on PGTK. + (lower_frame_xwidget_views): Disable on PGTK. + * src/xwidget.h (struct xwidget_view): New fields for PGTK + builds. + (kill_frame_xwidget_views): Enable on PGTK. + +2021-12-28 Sam Steingold <sdsg@amazon.com> + + Fix bug#52467 by adding a new custom variable 'display-comint-buffer-action' + + * lisp/window.el (display-comint-buffer-action): New `defcustom`, + defaults to 'display-buffer-same-window' for backward compatibility. + * lisp/cmuscheme.el (run-scheme, switch-to-scheme): Pass + 'display-comint-buffer-action' to 'pop-to-buffer' instead + of using 'pop-to-buffer-same-window'. + * lisp/eshell/eshell.el (eshell): Likewise. + * lisp/shell.el (shell): Likewise. + * lisp/org/ol-eshell.el (org-eshell-open): Likewise. + * lisp/progmodes/inf-lisp.el (inferior-lisp): Likewise. + * lisp/progmodes/project.el (project-shell, project-eshell): Likewise. + * lisp/textmodes/tex-mode.el (tex-display-shell, tex-compile-default) + (tex-recenter-output-buffer): Pass 'display-comint-buffer-action' + to 'pop-to-buffer'. + +2021-12-28 Philipp Stephani <phst@google.com> + + Fix test lisp/cedet/semantic/bovine/gcc-tests on macOS (Bug#52431) + + * test/lisp/cedet/semantic/bovine/gcc-tests.el + (semantic-gcc-test-output-parser-this-machine): Also detect Apple + clang on macOS Monterey. + +2021-12-28 Juri Linkov <juri@linkov.net> + + * lisp/textmodes/paragraphs.el (repunctuate-sentences): Region for NO-QUERY. + + Use region boundaries also for the case when NO-QUERY arg is non-nil + (bug#52769). + +2021-12-28 Juri Linkov <juri@linkov.net> + + * lisp/textmodes/paragraphs.el (repunctuate-sentences): Support region. + + Add optional args 'start' and 'end', and pass them as region boundaries + to query-replace-regexp (bug#52769). + +2021-12-28 Juri Linkov <juri@linkov.net> + + * lisp/replace.el (replace-regexp-function): New function (bug#52558). + + (replace-search, replace-highlight): Use it. + +2021-12-28 Andrea Corallo <akrl@sdf.org> + + * Fix native comp for non trivial function names (bug#52833) + + * lisp/emacs-lisp/comp.el (comp-c-func-name): Fix native compilation + for functions with function names containing non trivial + characters (bug#52833). + +2021-12-28 Stefan Monnier <monnier@iro.umontreal.ca> + + * etc/NEWS (eieio-compat): Rewrite + +2021-12-28 Po Lu <luangruo@yahoo.com> + + * lwlib/xlwmenu.c (fit_to_screen): Adjust correctly for child menus. + +2021-12-28 Juri Linkov <juri@linkov.net> + + * lisp/vc/vc.el (vc-revert): Use generate-new-buffer, not just new buffer name + +2021-12-28 Po Lu <luangruo@yahoo.com> + + Document a problem with IBus and the C-. key + + * etc/PROBLEMS: Document an IBus emoji panel problem. + +2021-12-28 Po Lu <luangruo@yahoo.com> + + Add support for pinch events to NS + + * lisp/face-remap.el (text-scale-pinch): Remove mistaken + assumption that angle is always 1.0 at the beginning of + a sequence. + + * src/nsterm.c (- magnifyWithEvent): New function. + +2021-12-28 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + c0815aca18 Fix typos in in 'reset-language-environment' + ea65de7577 eshell-complete-parse-arguments: don't use string-match on... + +2021-12-27 Po Lu <luangruo@yahoo.com> + + Fix menu placement on multiple-display setups when using lwlib + + * lwlib/xlwmenu.c (fit_to_screen): + (pop_up_menu): Adjust menu position based on dimensions of the + current monitor's workarea. (bug#52809) + + * src/xfns.c (x_get_monitor_attributes): Stop testing for the + RandR extension here. + (xlw_monitor_dimensions_at_pos_1): + (xlw_monitor_dimensions_at_pos): New functions. + + * src/xterm.c (x_term_init): Query for the RandR extension when + connecting to a display. + * src/xterm.h (xlw_monitor_dimensions_at_pos): New prototype. + +2021-12-27 Stefan Monnier <monnier@iro.umontreal.ca> + + Replace uniquify.el's advice with direct calls + + This fixes bug#1338. + + * src/buffer.c (Frename_buffer): Call `uniquify--rename-buffer-advice`. + * lisp/files.el (create-file-buffer): + Call`uniquify--create-file-buffer-advice`. + + * lisp/uniquify.el (uniquify--rename-buffer-advice) + (uniquify--create-file-buffer-advice): Don't add them as advice any more. + Adjust their calling convention accordingly. + +2021-12-27 Po Lu <luangruo@yahoo.com> + + Only rely on passive device grabs on XI2 + + * src/xterm.c (xi_grab_or_ungrab_device): Remove function. + (handle_one_xevent): Stop setting non-passive grabs. + +2021-12-27 Stefan Kangas <stefan@marxist.se> + + Fix read-multiple-choice tests + + * lisp/emacs-lisp/rmc.el (rmc--add-key-description): Fix typo. + * test/lisp/emacs-lisp/rmc-tests.el + (test-rmc--add-key-description) + (test-rmc--add-key-description/with-attributes) + (test-rmc--add-key-description/non-graphical-display): Fix tests. + +2021-12-27 Stefan Monnier <monnier@iro.umontreal.ca> + + Fix EIEIO tests to account for eieio-compat move + + * test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el: + * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el: + Require `eieio-compat` explicitly. + + * test/manual/cedet/tests/test.el (a-method, a-generic): + * doc/misc/srecode.texi (Compound Dictionary Values): + * doc/misc/ede.texi (ede-generic-project): Update sample code to use + cl-generic syntax. + +2021-12-27 Stefan Kangas <stefan@marxist.se> + + admin.el: Move etc/NEWS to etc/NEWS.NN in one commit + + This should preserve git history better for git blame, etc. + * admin/admin.el (admin-git-command): New variable. + (set-version): Move etc/NEWS to etc/NEWS.NN and prompt to commit + it immediately. (Bug#52420) + +2021-12-27 Stefan Kangas <stefan@marxist.se> + + disabled-command: Explain what SPC means again + + * lisp/novice.el (disabled-command-function): Explain what SPC means + again, an explanation that was lost in a recent change. + +2021-12-27 Stefan Kangas <stefan@marxist.se> + + read-multiple-choice: Improve key formatting + + * lisp/emacs-lisp/rmc.el (rmc--add-key-description): Improve + formatting of key missing in the description. Use face help-key-name + on terminals that can't display underline. + +2021-12-27 Juri Linkov <juri@linkov.net> + + * etc/NEWS: Mention completion-wrap-movement. + + * doc/emacs/search.texi (Lax Search): Add char-fold-include. + + * lisp/tab-bar.el (tab-bar-history-mode-map): New defvar-keymap. + +2021-12-27 Michael Albinus <michael.albinus@gmx.de> + + The temporary "session" collection might not exist in Secret Service + + * doc/misc/auth.texi (Secret Service API): + * test/lisp/net/secrets-tests.el (secrets--test-delete-all-session-items) + (secrets-test02-collections, secrets-test03-items) + (secrets-test04-search): The temporary "session" collection might + not exist. + + * lisp/net/secrets.el (secrets-struct-secret-content-type): + Remove compatibility hack. + (secrets-create-item): Adapt accordingly. + +2021-12-27 Michael Albinus <michael.albinus@gmx.de> + + Use `permission-denied' in Tramp tests, and more + + * lisp/net/tramp-crypt.el (tramp-crypt-maybe-open-connection): + Simplify code. + + * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-system-info): + Adapt for "mtp" method. + + * test/lisp/net/tramp-tests.el (tramp-test18-file-attributes): + Use `permission-denied' error. Simplify code. + (tramp-test24-file-acl, tramp-test26-file-name-completion): + Simplify code. + +2021-12-27 Stefan Kangas <stefan@marxist.se> + + Doc fix; fix terminology in key binding functions + + * lisp/keymap.el (keymap-set, key-valid-p): + * lisp/subr.el (define-keymap): Doc fix; improve terminology. + +2021-12-27 Po Lu <luangruo@yahoo.com> + + Fix precision scrolling inside terminal buffers + + * lisp/term.el (term-goto-process-mark-maybe): Don't move point + to process mark if the event is a vertical wheel event. + +2021-12-27 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-list/eieio-compat.el: Really move to obsolete + +2021-12-27 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + d4e2850b32 Update to Org 9.5.2-3-geb9f34 + +2021-12-26 Po Lu <luangruo@yahoo.com> + + * src/pgtkterm.c (pgtk_handle_event): Add pinch event support. + +2021-12-26 Stefan Kangas <stefan@marxist.se> + + perl-mode: Recognize "when"/"given" keywords + + * lisp/progmodes/perl-mode.el (perl-font-lock-keywords-2): Add + keywords "when", "given" and "default". (Bug#10560) + (perl--syntax-exp-intro-keywords): Add "printf". + + * test/manual/indent/perl.perl: Add test for "when"/"given". + +2021-12-26 Po Lu <luangruo@yahoo.com> + + Fix menu window persistence and entry/leave events on Lucid on XI2 + + * src/xmenu.c (x_activate_menubar): Always clear the XI2 grab on + Xt. + * src/xterm.c (handle_one_xevent): On XI2, ignore LeaveNotify + events coming from the shell widget and use `x_window_to_frame' + to find the frame when handling XI_Leave events. + +2021-12-26 Po Lu <luangruo@yahoo.com> + + Fix Lucid popup menu being stuck on XI2 builds + + * src/xmenu.c (x_activate_menubar): Make some changes + conditional on XI2. + (create_and_show_popup_menu): Clear XI2 grab before showing + popup. + * src/xterm.c (xi_grab_or_ungrab_device): Don't grab device + if popup is activated on Lucid. + +2021-12-26 Po Lu <luangruo@yahoo.com> + + Store sign separately when accumulating precision scroll momentum + + * lisp/pixel-scroll.el (pixel-scroll-kinetic-state): Return + vector in new format. + (pixel-scroll-accumulate-velocity): Use new sign field. + +2021-12-26 Stefan Kangas <stefan@marxist.se> + + Use defvar-keymap in tests + + * test/lisp/button-tests.el (button-tests--map): + * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-keymap): + * test/lisp/help-tests.el (help-tests-remap-map) + (help-tests-major-mode-map, help-tests-minor-mode-map): + * test/lisp/kmacro-tests.el (kmacro-tests-keymap): + * test/lisp/repeat-tests.el (repeat-tests-map) + (repeat-tests-repeat-map): + * test/src/keymap-tests.el (keymap-tests-minor-mode-map) + (keymap-tests-major-mode-map): Use defvar-keymap. + +2021-12-26 Stefan Kangas <stefan@marxist.se> + + Prefer the defcustom :risky property in gnus + + * lisp/gnus/gnus-art.el (gnus-button-alist) + (gnus-header-button-alist): + * lisp/gnus/gnus-group.el (gnus-group-highlight) + (gnus-group-icon-list): + * lisp/gnus/gnus-sum.el (gnus-summary-highlight): + * lisp/gnus/mm-util.el (mm-charset-eval-alist): Prefer the + defcustom :risky property to setting 'risky-local-variable + manually. + +2021-12-26 Stefan Kangas <stefan@marxist.se> + + Rewrite disabled-command to use read-multiple-choice + + * lisp/novice.el (disabled-command-function): Rewrite to use + read-multiple-choice. Use command substitutions. + +2021-12-26 Stefan Kangas <stefan@marxist.se> + + read-multiple-choice: Display "SPC" instead of " " + + * lisp/emacs-lisp/rmc.el (rmc--add-key-description): Improve display + of the keys TAB, RET, SPC, DEL, and ESC. This fixes a bug where " " + was highlighted in the description in a confusing way. + * test/lisp/emacs-lisp/rmc-tests.el + (test-rmc--add-key-description) + (test-rmc--add-key-description/with-attributes): Update tests for the + above change. + +2021-12-26 Stefan Kangas <stefan@marxist.se> + + read-multiple-choice: Add optional argument show-help + + * lisp/emacs-lisp/rmc.el (rmc--show-help): Factor out new function + from read-multiple-choice. + (read-multiple-choice): Add new optional argument show-help. + * doc/lispref/commands.texi (Reading One Event): Document above new + optional argument. + +2021-12-26 Stefan Kangas <stefan@marxist.se> + + read-multiple-choice: Add face when key not in name string + + * lisp/emacs-lisp/rmc.el (rmc--add-key-description): Add face + property also when key is not in the name string. + * test/lisp/emacs-lisp/rmc-tests.el + (test-rmc--add-key-description/with-attributes) + (test-rmc--add-key-description/non-graphical-display): Update tests. + +2021-12-26 Stefan Kangas <stefan@marxist.se> + + Factor out new function rmc--add-key-description + + * lisp/emacs-lisp/rmc.el (rmc--add-key-description): Factor out + new function from... + (read-multiple-choice): ...here. + + * test/lisp/emacs-lisp/rmc-tests.el (test-rmc--add-key-description) + (test-rmc--add-key-description/with-attributes) + (test-rmc--add-key-description/non-graphical-display): New tests. + +2021-12-26 Po Lu <luangruo@yahoo.com> + + * INSTALL: Document `--with-xinput2'. + +2021-12-26 Po Lu <luangruo@yahoo.com> + + Accumulate deltas in pinch events that were skipped + + * src/keyboard.c (kbd_buffer_get_event): Accumulate relative deltas + inside skipped events when coalescing them. + +2021-12-26 Po Lu <luangruo@yahoo.com> + + Clarify situations where pinch events can be sent. + + * doc/lispref/commands.texi (Misc Events): Clarify the + conditions under which pinch events will be sent. + +2021-12-26 Po Lu <luangruo@yahoo.com> + + Coalesce pinch gestures in the keyboard buffer + + * src/keyboard.c (kbd_buffer_get_event): Coalesce consecutive + pinch gesture events. + +2021-12-26 Po Lu <luangruo@yahoo.com> + + Document the representation of DX and DY in pinch events + + * doc/lispref/commands.texi (Misc Events): Document + the precise meaning of DX and DY in pinch events. + +2021-12-26 Po Lu <luangruo@yahoo.com> + + Document some missing commands related to text scaling + + * doc/emacs/display.texi (Text Scale): Document + `text-scale-pinch' and `mouse-wheel-text-scale'. + +2021-12-26 Po Lu <luangruo@yahoo.com> + + Fix some issues with a recent change + + * doc/lispref/commands.texi (Misc Events): Improve documentation + on pinch events. + * etc/NEWS: Update documentation status for some recent changes + and describe pinch events in more detail. + * lisp/face-remap.el (text-scale-pinch): Prevent pinch events + from being received in too quick succession. + +2021-12-26 Eli Zaretskii <eliz@gnu.org> + + Minor improvements in multisession.el + + * lisp/emacs-lisp/multisession.el (multisession--read-file-value): + Handle 'file-missing' error when reading values from files. + (multisession--backend-values, multisession--backend-set-value) + (multisession--read-file-value): Use 'utf-8-emacs' encoding. + +2021-12-26 Po Lu <luangruo@yahoo.com> + + Change `x-server-input-version' to `x-server-input-extension-version' + + * src/xfns.c (Fx_server_input_version) + (Fx_server_input_extension_version): Rename to + `x-server-input-extension-version'. + (syms_of_xfns): Update defsubr. + +2021-12-26 Po Lu <luangruo@yahoo.com> + + Add configure tests for faulty XI2 installations + + * configure.ac: Detect cases where XI 2.4 headers are installed + without the correct event structures. + * src/xterm.c (handle_one_xevent): Don't use structures that + might not exist unless configure found them. + +2021-12-26 Po Lu <luangruo@yahoo.com> + + Only focus frame implicitly if focus flag is set + + * src/xterm.c (x_detect_focus_change): Test for focus flag on + XI entry events. + +2021-12-26 Stefan Kangas <stefan@marxist.se> + + Add test for text-char-description + + * test/src/keymap-tests.el (keymap-text-char-description): New + test. + +2021-12-26 Po Lu <luangruo@yahoo.com> + + Add support for pinch gestures to the XI2 build + + * doc/lispref/commands.texi (Misc Events): Document new event + type `pinch'. + * etc/NEWS: Announce new event `pinch'. + * etc/PROBLEMS: Document problems with mismatched libXi + versions. + * lisp/face-remap.el (text-scale--pinch-start-scale): New + variable. + (text-scale-pinch): New command. + * src/keyboard.c (make_lispy_event): Handle PINCH_EVENTs. + (syms_of_keyboard): New symbol `pinch'. + * src/termhooks.h (enum event_kind): New enum `PINCH_EVENT'. + * src/xfns.c (setup_xi_event_mask): Add pinch events to event + mask if available. + * src/xterm.c (handle_one_xevent): Handle pinch events. + +2021-12-26 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 89a82182cb Improve documentation of read-multiple-choice + 5fccd1e371 Explain why we remove stuff from 'user-full-name' + +2021-12-25 Po Lu <luangruo@yahoo.com> + + Allow interpolating scrolls via the Page Down and Page Up keys + + * lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): Define + new commands. + (pixel-scroll-precision-interpolate-page): New user option. + (pixel-scroll-interpolate-down): + (pixel-scroll-interpolate-up): New functions. + +2021-12-25 Po Lu <luangruo@yahoo.com> + + Don't clear internal border if frame isn't realized + + * src/pgtkterm.c (pgtk_clear_under_internal_border): Don't clear + border if frame isn't realized. (bug#52705) + +2021-12-25 Stefan Kangas <stefan@marxist.se> + + Make read-multiple-choice-face inherit help-key-binding + + * lisp/faces.el (read-multiple-choice-face): Inherit + help-key-binding in addition to underline. + +2021-12-25 Sam Steingold <sds@gnu.org> + + Use the standard `quit-window' binding from `special-mode' for "q" + + * epa.el (epa-info-mode-map): Remove `defvar'. + +2021-12-25 Protesilaos Stavrou <info@protesilaos.com> + + Update modus-themes to version 2.0.0 + + * doc/misc/modus-themes.org (Overview): Update the description of the + themes. + (Enable and load): Reflow text. + (Customization Options): Update the code sample with all customization + options. + (Option for color-coding success state) + (Option for red-green color deficiency or deuteranopia): Document the + new user option 'modus-themes-deuteranopia'. + (Option for mode line presentation, Option for mode line padding): + Update documentation about mode line padding. + (Option for completion framework aesthetics): Minor rewording. + (Option for diff buffer looks): Update section to exclude the + discontinued "foreground-only" diff styles. + (Option for Org agenda constructs): Expand documentation pertaining to + the 'modus-themes-org-agenda' user option. + (Option for the headings' overall style, Option for scaled headings): + Document how heading scaling is now done directly with the + 'modus-themes-headings' user option. + (Option for variable-pitch font in headings): Remove section on + 'modus-themes-variable-pitch-headings'. Its functionality is merged + into 'modus-themes-headings'. + (A theme-agnostic hook for theme loading): Add section on how users + can add their own "foreground-only" diff styles. + (Full support for packages or face groups, Indirectly covered + packages): Update list of supported packages. + (Note on god-mode.el): Reflow text. + (Frequently Asked Questions): Remove invalid characters from heading. + (Acknowledgements): Update list of contributors to code, ideas, etc. + + * etc/themes/modus-themes.el (modus-themes-operandi-colors) + (modus-themes-vivendi-colors): Update theme color palettes. + (modus-themes-variable-pitch-headings): Make it obsolete. Use + 'modus-themes-headings' instead. + (modus-themes--headings-choice): Accept float to adjust heading + height. + (modus-themes-headings, modus-themes-org-agenda): Update doc strings + to cover new features. + (modus-themes-scale-headings, modus-themes-scale-1, modus-themes-scale-2) + (modus-themes-scale-3, modus-themes-scale-4, modus-themes-scale-5) + (modus-themes-scale-title, modus-themes-scale-small): Deprecate them. + Use 'modus-themes-headings' directly. + (modus-themes-org-habit): Remove long-deprecated user option + (modus-themes-mode-line): Update doc string about padding the mode + line. + (modus-themes-mode-line-padding): Deprecate user option. Use + 'modus-themes-mode-line' directly. + (modus-themes-diffs): Update doc string to omit discontinued + "foreground-only" styles. + (modus-themes-completions): Remove outdated reference. + (modus-themes-intense-hl-line): Delete long-deprecated form. + (modus-themes-lang-checkers, modus-themes-hl-line) + (modus-themes-paren-match, modus-themes-syntax, modus-themes-links) + (modus-themes-region): Update syntax of code sample in doc string. + (modus-themes-success-deuteranopia): Deprecate it and alias it as + 'modus-themes-deuteranopia'. + (modus-themes--variable-pitch, modus-themes--lang-check) + (modus-themes--prompt, modus-themes--paren) + (modus-themes--syntax-foreground, modus-themes--syntax-extra) + (modus-themes--syntax-string, modus-themes--syntax-comment) + (modus-themes--heading, modus-themes--agenda-structure) + (modus-themes--agenda-date, modus-themes--agenda-event) + (modus-themes--agenda-habit, modus-themes--org-block-delim) + (modus-themes--mode-line-padding, modus-themes--mode-line-attrs) + (modus-themes--diff, modus-themes--diff-deuteran) + (modus-themes--success-deuteran, modus-themes--link) + (modus-themes--link-color, modus-themes--scale, modus-themes--region) + (modus-themes--hl-line): Update private functions to parse the updated + user options and to simplify/refine their code. + (modus-themes-faces): Remove some faces, add a few others, and + generally clean up the code to avoid overusing private functions for + the expansion of attributes with user-facing options. + (modus-themes-custom-variables): Remove support for 'highlight-tail' + variable. + + * etc/themes/modus-operandi-theme.el: + * etc/themes/modus-vivendi-theme.el: Bump file version. + + The change log entry for this release is available here: + <https://protesilaos.com/codelog/2021-12-24-modus-themes-2-0-0/>. + +2021-12-25 Stefan Kangas <stefan@marxist.se> + + Fix unused variable warning in xfns.c + + * src/xfns.c (Fx_server_input_version): Fix unused variable + warning. + +2021-12-25 Stefan Kangas <stefan@marxist.se> + + * lisp/net/webjump.el: Add TODO section. (Bug#14624) + +2021-12-25 Stefan Kangas <stefan@marxist.se> + + Use defvar-keymap in ido.el + + * lisp/ido.el (ido-common-completion-map) + (ido-file-dir-completion-map, ido-file-completion-map) + (ido-buffer-completion-map): Use defvar-keymap. + +2021-12-25 Michael Albinus <michael.albinus@gmx.de> + + * lisp/url/url-handlers.el (directory-files): Adapt ARGS list. + + * lisp/net/browse-url.el (browse-url-of-file): Improve browsing remote files. + + * lisp/simple.el (completion-auto-select): Fix docstring. + +2021-12-25 Po Lu <luangruo@yahoo.com> + + Add a utility function to query the XI2 version on a display + + * src/xfns.c (Fx_server_input_version): New function. + (syms_of_xfns): Define new subr. + +2021-12-25 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + c09ad0cabd Fix the bug with duplicate entries in xref output + +2021-12-24 Stefan Kangas <stefan@marxist.se> + + Move mouse key bindings to gametree-mode-map + + * lisp/play/gametree.el (gametree-mode-map): Move mouse key + bindings here. + +2021-12-24 Po Lu <luangruo@yahoo.com> + + Add support for XI 2.4 + + We will be able to use touchpad (not touchscreen) gestures, such + as pinch and swipe gestures after this change, but they are not + yet exposed to Lisp. + + * src/xterm.c (x_term_init): Declare support for XI 2.4 if + present. + +2021-12-24 Po Lu <luangruo@yahoo.com> + + Fix Emacs tooltips on PGTK + + * src/pgtkfns.c (x_create_tip_frame): Don't set cursor and + show window. + (Fx_show_tip): Set cursor and show window. + +2021-12-24 Stefan Kangas <stefan@marxist.se> + + Simplify command remapping in play/blackbox.el + + * lisp/play/blackbox.el (blackbox-redefine-key): Make obsolete. + (blackbox-mode-map): Simplify. + +2021-12-24 Stefan Kangas <stefan@marxist.se> + + Prefer the defcustom :risky property in eshell + + * lisp/eshell/em-banner.el (eshell-banner-message): + * lisp/eshell/em-hist.el (eshell-input-filter): + * lisp/eshell/em-pred.el (eshell-predicate-alist) + (eshell-modifier-alist): + * lisp/eshell/esh-cmd.el (eshell-subcommand-bindings): + * lisp/eshell/esh-io.el (eshell-virtual-targets): + * lisp/eshell/esh-var.el (eshell-variable-aliases-list): Prefer + defcustom :risky property to setting 'risky-local-variable manually. + +2021-12-24 Stefan Kangas <stefan@marxist.se> + + * lisp/eshell/em-hist.el (eshell-hist-match-partial): Minor doc fix. + +2021-12-24 Stefan Kangas <stefan@marxist.se> + + Use defvar-keymap in eshell + + * lisp/eshell/em-cmpl.el (eshell-cmpl-mode-map): + * lisp/eshell/em-hist.el (eshell-isearch-map, eshell-hist-mode-map): + * lisp/eshell/em-pred.el (eshell-pred-mode-map): + * lisp/eshell/em-prompt.el (eshell-prompt-mode-map): + * lisp/eshell/em-rebind.el (eshell-rebind-mode-map): + * lisp/eshell/esh-arg.el (eshell-arg-mode-map): + * lisp/eshell/esh-mode.el (eshell-mode-map, eshell-command-map): + * lisp/eshell/esh-proc.el (eshell-proc-mode-map): + * lisp/eshell/esh-var.el (eshell-var-mode-map): Use defvar-keymap. + +2021-12-24 Stefan Kangas <stefan@marxist.se> + + Respect changes in eshell-hist-match-partial + + * lisp/eshell/em-hist.el (eshell-hist--update-keymap): New function. + (eshell-hist-match-partial): Add :set property with above new + function. + (eshell-hist-mode-map): Update for eshell-hist-match-partial using + eshell-hist--update-keymap. + +2021-12-24 Yuuki Harano <masm+github@masm11.me> + + * etc/PROBLEMS: Add a problem when PGTK started in systemd unit file + +2021-12-24 Michael Albinus <michael.albinus@gmx.de> + + Add tag :tramp-asynchronous-processes to tramp-tests.el + + * test/lisp/net/tramp-tests.el (tramp-test29-start-file-process) + (tramp--test--deftest-direct-async-process) + (tramp-test30-make-process, tramp-test31-interrupt-process) + (tramp-test34-explicit-shell-file-name) + (tramp-test44-asynchronous-requests): + Add :tramp-asynchronous-processes tag. + (tramp--test-asynchronous-processes-p): New defun. + (tramp-test32-shell-command, tramp-test33-environment-variables): + Use it. + (tramp--test-expensive-test-p): Rename from + `tramp--test-expensive-test'. Make it a defun. Adapt all callees. + +2021-12-24 Sebastian Fieber <sebastian.fieber@web.de> + + verify signed content in smime encrypted and signed message + + * lisp/gnus/gnus-art.el (gnus-mime-display-part): Parse pkcs7 + parts (bug#40397). + (gnus-mime-security-verify-or-decrypt): + (gnus-insert-mime-security-button): Handle these parts. + + * lisp/gnus/mm-decode.el (mm-verify-function-alist): Add pkcs7 + functions. + (mm-decrypt-function-alist): Handle them. + (mm-possibly-verify-or-decrypt): Ditto. + + * lisp/gnus/mm-view.el (mm-view-pkcs7-decrypt): Handle pkcs7. + + Changes: + - structure the result of mm-dissect-buffer of application/pkcs7-mime + like a multipart mail so there is no losing of information of + verification and decryption results which can now be displayed by + gnus-mime-display-security + + - adjust gnus-mime-display-part to handle application/pkcs7-mime like + multipart/encrypted or multipart/signed + + - add dummy entries to mm-verify-function-alist and + mm-decrypt-function-alist so gnus-mime-display-security correctly + displays "S/MIME" and not "unknown protocol" + + - don't just check for multipart/signed in + gnus-insert-mime-security-button but also for the pkcs7-mime mimetypes + to print "Encrypted" or "Signed" accordingly in the security button + + - adjust mm-possibly-verify-or-decrypt to check for smime-type to ask + whether to verify or decrypt the part and not to always ask to decrypt + + - adjust mm-view-pkcs7-decrypt and verify to call mm-sec-status so + success information can be displayed by gnus-mime-display-security + + - adjust gnus-mime-security-verify-or-decrypt to handle pkcs7-mime + right with the done changes + +2021-12-24 Lars Ingebrigtsen <larsi@gnus.org> + + Simplify whitespace stripping in shr-expand-url + + * lisp/net/shr.el (shr-expand-url): Simplify whitespace stripping. + +2021-12-24 Po Lu <luangruo@yahoo.com> + + Fix text decoration display on stretch glyphs with no box on NS + + * src/nsterm.m (ns_dumpglyphs_stretch): Draw decorations if + there is no box. + +2021-12-24 Po Lu <luangruo@yahoo.com> + + Make precision scrolling work on margins and fringes + + * lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): Add + missing key definitions. + +2021-12-24 Po Lu <luangruo@yahoo.com> + + Remove useless functions from PGTK port that were breaking emacsbug + + * src/pgtkfns.c (Fx_server_vendor, Fx_server_version): Remove + useless functions that returned invalid values. + (syms_of_pgtkfns): Stop defining removed subrs. + +2021-12-24 Po Lu <luangruo@yahoo.com> + + Grab the server when warping the client pointer + + * src/xfns.c (Fx_set_mouse_absolute_pixel_position): + * src/xterm.c (x_make_frame_invisible): Avoid race conditions + where the client pointer is destroyed between when it is + obtained and when XIWarpPointer is called. + +2021-12-24 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 04be23f19f Improve Xref documentation + edb1d491d9 * lisp/net/shr.el (shr-expand-url): Also strip trailing wh... + +2021-12-23 Po Lu <luangruo@yahoo.com> + + Acquire draw lock when updating menubar on Haiku + + * src/haikumenu.c (digest_menu_items): Acquire draw lock. + +2021-12-23 Po Lu <luangruo@yahoo.com> + + Fix menu grabs on XI2 Motif builds + + * src/xmenu.c (x_activate_menubar) [USE_MOTIF]: Clear XI grab. + * src/xterm.c (xi_grab_or_ungrab_device) [USE_MOTIF]: Always + ungrab if a popup is active. + +2021-12-23 Po Lu <luangruo@yahoo.com> + + Fix some more incorrect valuator clearing + + * src/xterm.c (handle_one_xevent): Improve detection of stray + ungrab events. + +2021-12-23 Po Lu <luangruo@yahoo.com> + + Drop scrollbar motion events when valuators are found + + * src/xterm.c (handle_one_xevent): Drop XI_Motion if it's on + top of a scroll bar and a valuator is found. + +2021-12-23 Glenn Morris <rgm@gnu.org> + + * doc/misc/Makefile.in (need_emacsver): Add missing members. + +2021-12-23 Po Lu <luangruo@yahoo.com> + + Make precision scrolling also work on various bars + + * lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): + Define keys for various kinds of bars. + +2021-12-23 Po Lu <luangruo@yahoo.com> + + Fix precision scrolling down for multi-line display strings + + * lisp/pixel-scroll.el + (pixel-scroll-precision-scroll-down-page): Make sure Y delta + is appropriate before deciding on next-pos. + +2021-12-23 Po Lu <luangruo@yahoo.com> + + Set start to desired start when pixel scrolling to end of buffer + + * lisp/pixel-scroll.el + (pixel-scroll-precision-scroll-down-page): Set start to desired + start when point cannot be moved further down. + +2021-12-23 Po Lu <luangruo@yahoo.com> + + Allow window-text-pixel-size to measure pixels around a position + + * doc/lispref/display.texi (Size of Displayed Text): Announce + new meaning of `from'. + * etc/NEWS: Announce changes. + + * lisp/pixel-scroll.el (pixel-scroll-precision-scroll-up-page): + Use new feature. + + * src/xdisp.c (window_text_pixel_size): Understand a special + format of `from' that specifies the amount of pixels above or + below a position. + + (Fwindow_text_pixel_size): Update doc string. + +2021-12-23 Lars Ingebrigtsen <larsi@gnus.org> + + Revert back to using monospaced fonts in the mode line + + * lisp/faces.el (mode-line-active, mode-line-inactive): Revert + back to using monospaced fonts on the mode line (for now). The + main remaining usability problem is clicking on the very small "-" + characters in "U:--". + +2021-12-23 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 29fffbdd87 Revert field-related thingatpt changes + 9bcb732686 * lisp/window.el (quit-restore-window): Select previously ... + b7d31d6192 Revert "Remove Motif support" + + # Conflicts: + # etc/NEWS + +2021-12-22 Philip Kaludercic <philipk@posteo.net> + + Fix wrong-type-argument + + * message.el (message-update-smtp-method-header): Only Use address + part of mail-extract-address-component. + +2021-12-22 Philip Kaludercic <philipk@posteo.net> + + Allow automatic X-Message-SMTP-Method header insertion + + * message.el (message-server-alist): Add user option + (message-update-smtp-method-header): Add function + (message-send): Call message-update-smtp-method-header + * doc/misc/message.texi (Sending Variables): Document + message-server-alist + * etc/NEWS: Add news entry + +2021-12-22 Stefan Kangas <stefan@marxist.se> + + Fix compile time error in a pcase test + + * test/lisp/emacs-lisp/pcase-tests.el (pcase-tests-cl-type): Fix test. + +2021-12-22 Stefan Kangas <stefan@marxist.se> + + Use defvar-keymap in minibuffer.el + + * lisp/minibuffer.el (completion-in-region-mode-map) + (minibuffer-local-completion-map) + (minibuffer-local-must-match-map) + (minibuffer-local-filename-completion-map) + (minibuffer-local-ns-map, minibuffer-inactive-mode-map): Use + defvar-keymap. + +2021-12-22 Stefan Kangas <stefan@marxist.se> + + Make substitute-command-keys test less brittle + + * test/lisp/help-tests.el (help-tests--test-keymap): New keymap + variable. + (help-tests-substitute-command-keys/keymaps): Make test less + brittle by using above new keymap. + +2021-12-22 Alan Third <alan@idiocy.org> + + Add native HEIC support on macOS (bug#51381) + + * lisp/image.el (image-type-header-regexps): + (image-type-file-name-regexps): + (image-type-auto-detectable): Add auto-detect code for heic. + * src/image.c (syms_of_image): Add heic as an image type under NS. + * src/nsimage.m (ns_can_use_native_image_api): Add heic to list of + possible image types in the native image support lookup. + +2021-12-22 Alan Third <alan@idiocy.org> + + Allow resizing undecorated frames on macOS (bug#28512, bug#31795) + + * src/nsterm.m (FRAME_DECORATED_FLAGS, FRAME_UNDECORATED_FLAGS): + Remove unused defines. + * src/nsterm.m ([EmacsWindow initWithEmacsFrame:fullscreen:screen:]): + Since this is now the only place these defines are used just put them + inline and add NSWindowStyleMaskResizable for undecorated frames on + Cocoa. + +2021-12-22 Alan Third <alan@idiocy.org> + + Make NS toolbar item ID more unique (bug#50160) + + * src/nsmenu.m + ([EmacsToolbar addDisplayItemWithImage:idx:tag:labelText:helpText:enabled:]): + Add the label to the identifier to avoid collisions between toolbar + items that use the same image. + +2021-12-22 Alan Third <alan@idiocy.org> + + Make NS toolbar use NSString instead of C strings + + * src/nsfns.m ([NSString stringWithLispString:]): Ensure that the lisp + object is actually a string. + * src/nsmenu.m (update_frame_tool_bar): Convert to NSString instead of + C strings. + ([EmacsToolbar addDisplayItemWithImage:idx:tag:labelText:helpText:enabled:]): + No need to convert to NSString here anymore. + +2021-12-22 Alan Third <alan@idiocy.org> + + Fix macfont backend color handling + + * src/macfont.m (get_cgcolor): Replace use of ns_lookup_indexed_color. + (CG_SET_FILL_COLOR_WITH_FACE_FOREGROUND): + (CG_SET_FILL_COLOR_WITH_FACE_BACKGROUND): + (CG_SET_STROKE_COLOR_WITH_FACE_FOREGROUND): Fix call to get_cgcolor + and fix all callers. + +2021-12-22 Alan Third <alan@idiocy.org> + + Further cleanup of NS color code + + * src/dispextern.h (FACE_COLOR_TO_PIXEL): Remove define and fix all + callers. + * src/nsterm.h (struct nsfont_info): Remove color_table. + * src/nsterm.m ([NSColor colorWithUnsignedLong:]): Always assume the + input contains the correct alpha value. + (ns_lookup_indexed_color): + (ns_index_color): + (ns_color_index_to_rgba): Remove functions and fix all callers. + (ns_query_color): No longer set pixel to the lookup table index, + always just set it to the ARGB integer value. + (ns_defined_color): Ignore makeindex as we no longer set pixel to the + lookup table index. + (ns_initialize_display_info): + (ns_redisplay_interface): Remove lookup table. + (ns_term_init): Fix the alpha setting. + + thing + +2021-12-22 Alan Third <alan@idiocy.org> + + Simplify NS color handling + + * src/image.c (RGB_TO_ULONG): + (ARGB_TO_ULONG): + (RED_FROM_ULONG): + (RED16_FROM_ULONG): + (GREEN16_FROM_ULONG): + (BLUE16_FROM_ULONG): Define these here for NS too. + * src/nsfns.m (ns_set_foreground_color): + (ns_set_background_color): Use new EmacsColor methods. + * src/nsterm.h (struct ns_color_table): Replace this struct with a + built-in Objective C type. + (RGB_TO_ULONG): + (ARGB_TO_ULONG): + (ALPHA_FROM_ULONG): + (RED_FROM_ULONG): + (GREEN_FROM_ULONG): + (BLUE_FROM_ULONG): + (RED16_FROM_ULONG): + (GREEN16_FROM_ULONG): + (BLUE16_FROM_ULONG): These are no longer needed in the NS specific code. + (struct ns_display_info): Use an NSMutableArray instead of a custom struct. + * src/nsterm.m ([NSColor colorWithUnsignedLong:hasAlpha:]): + ([NSColor unsignedLong]): New methods. + (ns_lookup_indexed_color): + (ns_index_color): Use the NSMutableArray lookup table. + (ns_term_init): + (ns_color_index_to_rgba): + (ns_query_color): Use the new EmacsColor methods. + (ns_initialize_display_info): + (ns_delete_display): Initialize and release the NSMutableArray lookup table. + +2021-12-22 Jonas Bernoulli <jonas@bernoul.li> + + Help outline-minor-mode avoid some false matches + + * lisp/international/emoji.el (emoji--generate-file): Help + 'outline-minor-mode' avoid false matches by quoting certain + characters when they appear at bol in a multi-line string. + +2021-12-22 Jonas Bernoulli <jonas@bernoul.li> + + Hide transient prefix/suffix commands from execute-extended-command + + * lisp/international/emoji.el (emoji--define-transient): Hide + transient prefix/suffix commands from 'execute-extended-command' + by declaring that they should only be listed in the non-existent + 'not-a-mode' mode. + +2021-12-22 Michael Albinus <michael.albinus@gmx.de> + + Fix some Tramp tests + + * test/lisp/net/tramp-tests.el (tramp-test07-file-exists-p) + (tramp-test14-delete-directory, tramp-test29-start-file-process) + (tramp-test30-make-process): Adapt tests. + +2021-12-22 Mattias Engdegård <mattiase@acm.org> + + Use unibyte strings in ntlm auth requests and responses + + * lisp/net/ntlm.el (ntlm-build-auth-request) + (ntlm-build-auth-response): Make sure to use unibyte strings for bytes + greater than 127, or base64 encoding will fail. + This should fix failures in ntlm-tests. + +2021-12-22 Lars Ingebrigtsen <larsi@gnus.org> + + Adjust test after recent help.el change + +2021-12-22 Po Lu <luangruo@yahoo.com> + + * src/pgtkterm.c (scroll_event): Fix scroll delta scale. + + * src/pgtkterm.c (scroll_event): Fix sign of delta_y. + +2021-12-22 Po Lu <luangruo@yahoo.com> + + Disable by default and add NEWS entry to the new completion behavior + + * etc/NEWS: Announce 'completion-auto-select'. + * lisp/simple.el (completion-auto-select): Default to nil. + +2021-12-22 Lars Ingebrigtsen <larsi@gnus.org> + + Simplify disabled-command-function prompting + + * lisp/novice.el (disabled-command-function): Use a prompt for + `read-event' instead of messaging it, so that people using + Emacspeak get the prompt read to them. + +2021-12-22 Lars Ingebrigtsen <larsi@gnus.org> + + Use pop-to-buffer-same-window in `M-x term' + + * lisp/term.el (term): Allow `display-buffer*' customization to + take effect (bug#52688). + +2021-12-22 Po Lu <luangruo@yahoo.com> + + Fix horizontal scrolling on PGTK + + * src/pgtkterm.c (scroll_event): Fix for when + `mwheel-coalesce-scroll-events' is nil. + +2021-12-21 Po Lu <luangruo@yahoo.com> + + Use XI2 calls to warp the client pointer + + * src/xfns.c (Fx_set_mouse_absolute_pixel_position): + * src/xterm.c (frame_set_mouse_pixel_position): Replace + calls to XWarpPointer with calls to XIWarpPointer with + the client pointer explicitly specified. This avoids the + odd situation where the client pointer of the root window + is not the client pointer of the frame. + +2021-12-21 Po Lu <luangruo@yahoo.com> + + Fix GTK crash when clicking on xwidgets on XI2 + + * src/xterm.c (handle_one_xevent): Drop button events destined + for an xwidget. + +2021-12-21 Paul Eggert <eggert@cs.ucla.edu> + + Update from gnulib + +2021-12-21 Philip Kaludercic <philipk@posteo.net> + + Delete completion window on quitting + + * lisp/simple.el (completion-list-mode-map): Rebind + delete-completion-window over keyboard-quit. + +2021-12-21 Philip Kaludercic <philipk@posteo.net> + + Allow for next-completion to wrap around the completion buffer + + * lisp/simple.el (completion-wrap-movement): Add new option. + (previous-completion): Update docstring. + (next-completion): Respect completion-wrap-movement. + (switch-to-completions): Handle backwards completion by jumping to the + end of the buffer. + * lisp/minibuffer.el: (minibuffer-local-completion-map): Bind + minibuffer-complete to backtab + (completion--in-region-1): Handle backtab to scroll backwards + +2021-12-21 Philip Kaludercic <philipk@posteo.net> + + Allow for the completion buffer to be automatically selected + + * lisp/simple.el (completion-auto-select): Add new option. + (completion-setup-function): Respect completion-auto-select. + +2021-12-21 Stefan Kangas <stefan@marxist.se> + + Declare functions to silence byte-compiler + + * lisp/auth-source.el (gnutls-symmetric-decrypt, gnutls-ciphers): + * lisp/net/dbus.el (libxml-parse-xml-region): + * lisp/simple.el (thread-name): + * lisp/thread.el (thread-name, thread-signal, thread--blocker) + (current-thread, thread-live-p, all-threads): + * test/lisp/emacs-lisp/multisession-tests.el (sqlite-close): + * test/lisp/net/gnutls-tests.el (gnutls-symmetric-decrypt) + (gnutls-symmetric-encrypt, gnutls-hash-mac, gnutls-hash-digest) + (gnutls-ciphers, gnutls-digests, gnutls-macs): + * test/lisp/net/network-stream-tests.el (gnutls-peer-status): + * test/lisp/net/shr-tests.el (libxml-parse-html-region): + * test/src/decompress-tests.el (zlib-decompress-region): + * test/src/process-tests.el (thread-last-error, thread-join) + (make-thread): + * test/src/xml-tests.el (libxml-parse-xml-region): Declare + functions to silence byte-compiler in --without-all builds. + +2021-12-21 Stefan Kangas <stefan@marxist.se> + + Fix some tests in --without-all builds + + * test/lisp/image-tests.el (image-type/from-filename): + * test/src/image-tests.el (image-tests-init-image-library): + * test/src/thread-tests.el (threads-test-bug33073): Fix tests in + --without-all builds. + +2021-12-21 Stefan Kangas <stefan@marxist.se> + + Silence additional byte-compiler warning in test + + * test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el: + Silence byte-compiler. + +2021-12-21 Michael Albinus <michael.albinus@gmx.de> + + Add `permission-denied' error to Tramp + + * lisp/net/tramp-compat.el (tramp-permission-denied): New defconst. + (tramp-compat-permission-denied): New defsubst. + + * lisp/net/tramp.el (tramp-handle-access-file): + * lisp/net/tramp-archive.el (tramp-archive-handle-copy-file): Use it. + +2021-12-21 Po Lu <luangruo@yahoo.com> + + Fix xg_event_is_scrollbar for grab-related events on XI2 + + * src/gtkutil.c (xg_event_is_for_scrollbar): Don't return true + if event coordinates are outside the frame on XInput 2. + +2021-12-21 Mattias Engdegård <mattiase@acm.org> + + Don't produce multibyte strings by accident in sasl-scram-rfc + + * lisp/net/sasl-scram-rfc.el (sasl-scram--client-final-message): + The XOR of two unibyte strings should be a unibyte string. + This code previously worked by accident because of an overly tolerant + base64 encoder (bug#52670), but now causes a test failure. + +2021-12-21 Po Lu <luangruo@yahoo.com> + + Ignore XI_TouchBegin events on the GTK tool bar + + * src/xterm.c (handle_one_xevent): Ignore TouchBegin events + that target the tool bar. + +2021-12-21 Andrew G Cohen <cohen@andy.bu.edu> + + Fix gnus subject matching when subject is empty + + * lisp/gnus/gnus-sum.el (gnus-summary-limit-include-thread): Don't try + to limit to a matching subject when the simplified subject is empty. + +2021-12-20 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "Speed up find_field when called from outside a field" + + This reverts commit 4d8af56c76ee20bc8e1ebdeef5c4100cea005974. + + This leads to lisp-mode-tests failures + +2021-12-20 Lars Ingebrigtsen <larsi@gnus.org> + + Remove the `mode-line-percent-position' min width hack + + * lisp/bindings.el (mode-line-position): Remove hack to get + min-width to work on the `mode-line-percent-position' bit. + * src/xdisp.c (display_string): Respect min-width in the non-Lisp + string case (bug#52332). + +2021-12-20 Lars Ingebrigtsen <larsi@gnus.org> + + Allow @ characters in heredoc in shell-script-mode + + * lisp/progmodes/sh-script.el (defconst): Also allow @ in heredoc + (bug#52496). + +2021-12-20 Lars Ingebrigtsen <larsi@gnus.org> + + Use the new `permission-denied' error to catch multisession errors + + * lisp/emacs-lisp/multisession.el (multisession--read-file-value): + Use the new `permission-denied' error to catch file errors on Windows. + +2021-12-20 Lars Ingebrigtsen <larsi@gnus.org> + + Speed up find_field when called from outside a field + + * src/editfns.c (find_field): Speed up the field functions when + called from outside a field (bug#52593). (In some cursory tests, + this makes the called-from-outside-a-field case about 3x faster.) + +2021-12-20 Stefan Monnier <monnier@iro.umontreal.ca> + + Fix bug#28557 + + * test/lisp/emacs-lisp/cconv-tests.el: Remove `:expected-result :failed` + from the bug#28557 tests. + (cconv-tests-cl-function-:documentation): Account for the presence of + the arglist (aka "usage") in the docstring. + + * lisp/emacs-lisp/cl-macs.el (cl--transform-lambda): + * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): + Handle non-constant `:documentation`. + + * lisp/emacs-lisp/generator.el (iter-lambda): + * lisp/emacs-lisp/cconv.el (cconv--convert-funcbody): + Use `macroexp-parse-body`. + +2021-12-20 Po Lu <luangruo@yahoo.com> + + Don't drop touch events we're not interested in on GTK3 + + * src/xterm.c (handle_one_xevent): Allow GTK to handle + unwanted TouchBegin events. + +2021-12-20 Po Lu <luangruo@yahoo.com> + + Fix touch event menu bar detection + + * src/xterm.c (handle_one_event): Don't drop menu bar touch + events. + +2021-12-20 Po Lu <luangruo@yahoo.com> + + Fix xg_event_is_for_menubar for XI2 events + + * src/gtkutil.c (xg_event_is_for_menubar): Use correct fields + for XI2 events. + * src/xterm.c (handle_one_event): Drop TouchBegin events we + know about. + +2021-12-20 Stefan Monnier <monnier@iro.umontreal.ca> + + eieio-tests.el: Silence last warnings + + * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el (eieio-tests--dummy): + New class. + (eieio-test-22-init-forms-dont-match-runnable): Tweak to silence warning. + +2021-12-20 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (handle_one_xevent): Set user time on touch events. + +2021-12-20 Po Lu <luangruo@yahoo.com> + + Ignore all emulated button events (i.e. those from touchscreens) + + * src/xterm.c (handle_one_xevent): Ignore all XIPointerEmulated + events if the display supports XI 2.2 or later. + +2021-12-20 Paul Eggert <eggert@cs.ucla.edu> + + Put AM_V_GEN etc. first + + With the recent changes to src/verbose.mk.in, it’s more important + to be consistent about putting AM_V_GEN and similar macros at the + start of a rule’s recipe, since ‘make’ now outputs the diagnostic + before it executes the recipe rather than the shell outputting it. + Most of the uses were already this way, but there were a few + outliers. Problem reported by Pip Cet. + * Makefile.in (${srcdir}/info/dir): + * admin/unidata/Makefile.in (${unidir}/charprop.el, ${unifiles}) + (${unidir}/emoji-labels.el): + * lib/Makefile.in (libgnu.a, libegnu.a): + * lisp/Makefile.in (TAGS): + * src/Makefile.in (lisp.mk, Emacs): + * test/Makefile.in (%.log, $(test_module)): + Put AM_V_GEN and similar macros first. + +2021-12-20 Stefan Kangas <stefan@marxist.se> + + Make some variable aliases obsolete + + * lisp/progmodes/make-mode.el (makefile-query-one-target-method): + * lisp/skeleton.el (skeleton-transformation, skeleton-filter): + * lisp/textmodes/artist.el (artist-text-renderer): + * lisp/textmodes/bibtex.el (bibtex-autokey-name-case-convert): + (bibtex-autokey-titleword-case-convert): + * lisp/textmodes/ispell.el (ispell-format-word): + * lisp/textmodes/sgml-mode.el (sgml-transformation): + * lisp/vc/add-log.el (change-log-time-zone-rule): Make variable + aliases obsolete. + +2021-12-20 Paul Eggert <eggert@cs.ucla.edu> + + Prefer $(info) to @echo + + Have GNU Make output some diagnostics directly, instead of forking + and execing a shell to do it. + * GNUmakefile (help): + * doc/lispref/two-volume.make (vol2.pdf, elisp2med-init) + (elisp2-init): + * doc/misc/Makefile.in (echo-info, echo-sources): + * lib-src/Makefile.in (archlibdir, install, check): + * src/verbose.mk.in (AM_V_AR, AM_V_CC, AM_V_CXX, AM_V_CCLD) + (AM_V_CXXLD, AM_V_ELC, AM_V_ELN, AM_V_GEN, AM_V_GLOBALS) + (AM_V_RC): + * test/Makefile.in (subdirs, subdir-targets): + Prefer $(info) to @echo. + * GNUmakefile (MAKECMDGOALS, configure, Makefile): + Prefer $(warning) to @echo >&2. + * src/verbose.mk.in (AM_V_ELN): Output target, like the others. + +2021-12-20 Mattias Engdegård <mattiase@acm.org> + + Fix sloppy base64 acceptance of some multibyte characters + + The base64 encoding functions incorrectly accepted some multibyte + characters; stop doing that (bug#52670). + + * src/fns.c (base64_encode_1): Reject all multibyte characters. + * test/src/fns-tests.el (fns-tests-base64-encode-string) + (fns-test-base64url-encode-region) + (fns-test-base64url-encode-string): Add tests. + * doc/lispref/text.texi (Base 64): Rephrase outdated manual text. + * etc/NEWS: Add a notice. + +2021-12-20 Sam Steingold <sds@gnu.org> + + Fix build in a separate directory (bug#52669) + + * src/lisp.h: Include <globals.h> instead of "globals.h" + +2021-12-20 Stefan Kangas <stefan@marxist.se> + + Use defvar-keymap in wdired.el + + * lisp/wdired.el (wdired-mode-map, wdired-perm-mode-map): Use + defvar-keymap. + +2021-12-20 Stefan Kangas <stefan@marxist.se> + + Use declare-function instead of defun in eieio-tests.el + + * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el: Prefer + declare-function to defun. + +2021-12-20 Mattias Engdegård <mattiase@acm.org> + + Silence byte-compiler warnings from absent optional features + + * test/src/inotify-tests.el (inotify-rm-watch): + * test/src/lcms-tests.el (lcms-xyz->jch): + * test/src/sqlite-tests.el (sqlite-open): + Add declarations to prevent byte-compilation warnings when features + are absent. + +2021-12-20 Mattias Engdegård <mattiase@acm.org> + + Body of dynamic let-bindings is not in tail position + + This fixes a known bug in `named-let`. + + * lisp/emacs-lisp/cl-macs.el (cl--self-tco): Prevent TCO from inside + dynamic variable bindings. + * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels): Add test. + +2021-12-20 Mattias Engdegård <mattiase@acm.org> + + Add `macroexp--dynamic-variable-p` + + This predicate can be used for discriminating between lexically and + dynamically bound variables during macro-expansion (only). + It is restricted to internal use for the time being. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment): + Use macroexpand--all-toplevel. + * lisp/emacs-lisp/macroexp.el (macroexp-dynamic-variable-p): New. + (macroexp--expand-all): Maintain macroexp--dynvars. + (macroexpand-all): Rebind macroexp--dynvars. + (macroexpand--all-toplevel): New. + (internal-macroexpand-for-load): Use macroexpand--all-toplevel. + * src/eval.c (eval_sub): Transfer defvar declarations from + Vinternal_interpreter_environment into macroexp--dynvars during + lazy macro-expansion. + * src/lread.c (readevalloop): Rebind macroexp--dynvars around + read-and-evaluate operations. + (syms_of_lread): Define macroexp--dynvars. + * test/lisp/emacs-lisp/macroexp-resources/vk.el: New file. + * test/lisp/emacs-lisp/macroexp-tests.el (macroexp-tests--run-emacs) + (macroexp-tests--eval-in-subprocess) + (macroexp-tests--byte-compile-in-subprocess) + (macroexp--tests-dynamic-variable-p): Add tests. + +2021-12-20 Mattias Engdegård <mattiase@acm.org> + + Treat base64 string encode/decode as pure functions + + * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns, pure-fns): + Mark base64-decode-string, base64-encode-string and + base64url-encode-string as pure and side-effect-free. + +2021-12-20 Stefan Kangas <stefan@marxist.se> + + Silence byte-compiler using with-no-warnings in tests + + We could silence the specific warnings by adding support for them to + with-suppressed-warnings, but it is almost not worth the complexity + for warnings that only show up in one file. In any case, it is not + urgent, so leave behind FIXMEs for now. + + * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el + (eieio-test-37-obsolete-name-in-constructor, class-c) + (eieio-test-01-mix-alloc-initarg, slotattr-class-base): + * test/lisp/progmodes/elisp-mode-tests.el + (xref-elisp-generic-co-located-default): Silence byte-compiler. + +2021-12-20 Stefan Kangas <stefan@marxist.se> + + Silence undefined function warnings in eieio-tests.el + + * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el: Silence + byte-compiler with some function definitions. These are overridden by + class definitions further down. + +2021-12-20 Stefan Kangas <stefan@marxist.se> + + Prefer skip-unless in one eieio test + + * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el + (eieio-test-01-mix-alloc-initarg): Use skip-unless to correctly mark + the test as skipped. + +2021-12-20 Stefan Kangas <stefan@marxist.se> + + Silence byte-compiler in cconv-tests.el + + * test/lisp/emacs-lisp/cconv-tests.el + (cconv-tests-iter-lambda-:documentation) + (cconv-tests-cl-function-:documentation): Silence byte-compiler. + +2021-12-20 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 16ed9fad2c ; * doc/lispref/frames.texi (Child Frames): Improve wording. + f11b996a3c Clarify description of two mouse dragging parameters (Bug#... + +2021-12-19 Stefan Kangas <stefan@marxist.se> + + * lisp/progmodes/sh-script.el (sh-mode-map): Use defvar-keymap. + +2021-12-19 Lars Ingebrigtsen <larsi@gnus.org> + + Further tweaks to emoji person groups + + * lisp/international/emoji.el (emoji--score): Don't take the bit + after the colon into consideration, like in "kiss: person, person, + light skin tone, medium-light skin tone". + +2021-12-19 Lars Ingebrigtsen <larsi@gnus.org> + + Further tweaks to the emoji segmentation + + * lisp/international/emoji.el (emoji--parse-emoji-test): Ensure + that we key off of the "person" variants, even if they come after + the gendered variations (which is the case for a handful of glyphs). + +2021-12-19 Lars Ingebrigtsen <larsi@gnus.org> + + Further fixes for emojis in the "people" categories + + * lisp/international/emoji.el (emoji--base-name): Get more derived + categories right. + +2021-12-19 Juri Linkov <juri@linkov.net> + + * lisp/isearch.el: Don't display "Pending" for lax and toggle commands. + + * lisp/isearch.el (isearch-message-prefix): Display "Pending" + only when isearch-adjusted is 't' (bug#52356). + (isearch-define-mode-toggle): + Set isearch-adjusted to 'toggle' instead of 't'. + (isearch-search-fun-default): + Set isearch-adjusted to 'lax' instead of 't'. + +2021-12-19 Eli Zaretskii <eliz@gnu.org> + + Move Rmail autoloads to the common loaddefs.el + + * lisp/mail/rmailsum.el: + * lisp/mail/rmailsort.el: + * lisp/mail/rmailmsc.el: + * lisp/mail/rmailmm.el: + * lisp/mail/rmailkwd.el: + * lisp/mail/rmailedit.el: + * lisp/mail/rmail.el: Remove generated-autoload-file setting and + don't require rmail-loaddefs.el + +2021-12-19 Lars Ingebrigtsen <larsi@gnus.org> + + Add some very rudimentary field-beginning/end tests + +2021-12-19 Eli Zaretskii <eliz@gnu.org> + + New error symbol 'permission-denied' + + * src/fileio.c (syms_of_fileio) <permission-denied>: Define the + symbol and its 'err-conditions' and 'error-message' properties. + (get_file_errno_data): Return permission-denied on EACCES. + + * test/src/filelock-tests.el (filelock-tests-file-locked-p-spoiled) + (filelock-tests-unlock-spoiled) + (filelock-tests-kill-buffer-spoiled): Adapt the tests to the new + error symbol. + + * doc/lispref/errors.texi (Standard Errors): + * etc/NEWS: Document 'permission-denied' error. + +2021-12-19 Stefan Kangas <stefan@marxist.se> + + Make bad-packages-alist obsolete + + * lisp/simple.el (bad-packages-alist, bad-package-check): Make + obsolete. (Bug#52351) + +2021-12-19 Alan Mackenzie <acm@muc.de> + + CC Mode: Remove annoying background fontification. Should fix bug #52298 + + Partially revert the commits from 2021-10-24 - 2021-10-26, "CC Mode: Fontify + "found types" which are recognized after being first scanned". + + This removes the background fontification which ran off of a 0.1s timer, but + leaves the facility of normal fontification causing the fontification + throughout the buffer of newly found types. + + * lisp/progmodes/cc-fonts.el (c-find-types-background) + (c-type-finder-timer-func): Remove. + + * lisp/progmodes/cc-mode.el (c-type-finder-timer, c-inhibit-type-finder) + (c-type-finder-pos, c-post-gc-hook): Remove. + (c-leave-cc-mode-mode): Remove the manipulations of c-type-finder-timer and + c-post-gc-hook. + (c-basic-common-init): Remove the manipulations of c-type-finder-pos, + c-type-finder-timer, and c-post-gc-hook. + + * lisp/progmodes/cc-vars.el (c-type-finder-time-slot) + (c-type-finder-repeat-time, c-type-finder-chunk-size): Remove. + + * doc/misc/cc-mode.texi (Found Types): Remove. Amend some menu entries. + +2021-12-19 Stefan Kangas <stefan@marxist.se> + + Silence "initform needs quoting" warning in tests + + * test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el + (persist-simple): + * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el (class-a) + (class-c, inittest, slotattr-base, slotattr-ok) + (slotattr-class-base, slotattr-class-ok, IT): Silence byte-compiler + warnings about "ambiguous initform needs quoting". + +2021-12-19 Michael Albinus <michael.albinus@gmx.de> + + Fix timeout problem in autorevert-tests.el + + * test/lisp/autorevert-tests.el (auto-revert-test05-global-notify): + Remove debug message. Increase timeout. + +2021-12-19 Kévin Le Gouguec <kevin.legouguec@gmail.com> + + Enable webp support in PGTK builds, too + + * configure.ac (HAVE_WEBP): Enable webp in PGTK builds, too. + +2021-12-19 Eli Zaretskii <eliz@gnu.org> + + Fix last change in 'handle_display_prop' + + * src/xdisp.c (handle_display_prop): Pass the window's buffer to + 'display_min_width' and to 'handle_display_spec'. (Bug#52385) + +2021-12-19 Stefan Kangas <stefan@marxist.se> + + Silence "Unknown slot" warnings in tests + + * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el: + * test/lisp/net/ntlm-tests.el: Silence byte-compiler. + +2021-12-19 Daniel Mendler <mail@daniel-mendler.de> + + Add a new elp-restore-package command + + * lisp/emacs-lisp/elp.el (elp-restore-package): New command + (bug#52457). + +2021-12-19 Lars Ingebrigtsen <larsi@gnus.org> + + Fix elp-*-list interactive specs + + * lisp/emacs-lisp/elp.el (elp-reset-list): + (elp-restore-list): Fix the interactive specs (bug#52457). + +2021-12-19 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 5f25852e91 Update to Org 9.5.1-31-ga18849 + +2021-12-19 Lars Ingebrigtsen <larsi@gnus.org> + + Rework how shr sets <span id='foo'> targets to make it more reliable + + * lisp/net/eww.el (eww-display-html): The target is now a list. + * lisp/net/shr.el (shr--link-targets): New variable. + (shr-insert-document): Set the targets. + (shr-descend): Save targets and apply them later. + (shr-ensure-paragraph): Remove hack to avoid filling from removing + targets. + (shr-tag-a): Save targets for later. + (shr-render-td-1): Bind and set targets (bug#52512). + +2021-12-19 Lars Ingebrigtsen <larsi@gnus.org> + + Fix prompt in `sql-sqlite' + + * lisp/progmodes/sql.el (sql-get-login): Fix the Database: prompt + (bug#52546). + +2021-12-19 Lars Ingebrigtsen <larsi@gnus.org> + + Fix indexing gendered emoji forms that have "person" base forms + + * lisp/international/emoji.el (emoji--base-name): Index man/woman + on the generic form we have read already (bug#52580). + +2021-12-19 LdBeth <andpuke@foxmail.com> (tiny change) + + Add a shr-allowed-images user option + + * lisp/net/shr.el (shr-allowed-images): New variable (bug#52594). + (shr-image-is-blocked): New function to use it. + (shr-tag-img): Use it. + * doc/misc/eww.texi (Advanced): Document it. + +2021-12-19 miha <miha@kamnitnik.top> + + Fix prompt colors in comint-snapshot-last-prompt + + * lisp/comint.el (comint-snapshot-last-prompt): Fix colorization + of the prompt (bug#11883). + +2021-12-19 Lars Ingebrigtsen <larsi@gnus.org> + + Move rmail-related functions from gnus-util.el to gnus-rmail.el + + * lisp/gnus/gnus-rmail.el: New file with rmail-related functions + moved from gnus-util.el. + + * lisp/gnus/gnus-util.el: Move the rmail-related functions to its + own file. This avoids loading rmail.el when something requires + gnus-util.el. + +2021-12-18 Po Lu <luangruo@yahoo.com> + + Add missing implementation of `pgtk-menu-bar-open' + + * lisp/term/pgtk-win.el (pgtk-menu-bar-open): New function. + (bug#52604) + +2021-12-18 Po Lu <luangruo@yahoo.com> + + * src/gtkutil.c: Remove obsolete fixme. + + * etc/NEWS: Add news entry for pgtk. + +2021-12-18 Paul Eggert <eggert@cs.ucla.edu> + + Update from gnulib + + Make the following changes by hand, and run ‘admin/merge-gnulib’. + * configure.ac (AM_CONDITIONAL): Adjust to new Gnulib convention. + +2021-12-18 Andrew G Cohen <cohen@andy.bu.edu> + + Fix gnus search by message-id + + * lisp/gnus/gnus-search.el (gnus-search-run-search): Continue + iterating until a match is found. + + * lisp/gnus/nnselect.el (nnselect-request-article): Use new + gnus-search query format. + +2021-12-18 Eli Zaretskii <eliz@gnu.org> + + Improve doc strings in emoji.el + + * lisp/international/emoji.el (emoji-insert, emoji-recent) + (emoji-search, emoji-list, emoji-describe, emoji-list-help): + Improve and clarify the doc strings. + +2021-12-18 Mattias Engdegård <mattiase@acm.org> + + Remove incorrect byte-hunk-handler for `eval` + + This optimization is of very limited utility and miscompiles top-level + code having the form (eval 'CODE t) by replacing it with CODE which + will then, as things currently stand, be evaluated with dynamic binding. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-eval): Remove. + +2021-12-18 Michael Albinus <michael.albinus@gmx.de> + + Make generation of JUnit test reports more robust. + + * lisp/emacs-lisp/ert.el (ert-load-file-name): New defvar. + (ert-write-junit-test-report): Use it. Make detection of selector + more robust. Protect calls of `xml-escape-string' with 'noerror. + + * test/infra/Makefile.in (subdir_template): Use "make -k ...". + + * test/infra/gitlab-ci.yml (test-filenotify-gio): + Adapt make_params in order to get a JUnit test report. + (test-native-comp-speed0): Use "make -k ...". + + * test/infra/test-jobs.yml: Regenerate. + + * test/lisp/progmodes/perl-mode-tests.el (top): + Set `ert-load-file-name'. + +2021-12-18 Stefan Kangas <stefan@marxist.se> + + * lisp/dired.el (dired-mode-map): Use defvar-keymap. + +2021-12-18 Stefan Kangas <stefan@marxist.se> + + Silence byte-compiler in multisession-tests.el + + * test/lisp/emacs-lisp/multisession-tests.el + (multi-test-sqlite-simple, multi-test-sqlite-busy) + (multi-test-files-simple, multi-test-files-busy) + (multi-test-files-some-values): Silence byte-compiler. + +2021-12-18 YugaEgo <yet@ego.team> + + Cleanup append-to-buffer section in ELisp Intro + + * doc/lispintro/emacs-lisp-intro.texi + (append-to-buffer, Buffer Related Review, fwd-para let): + Finalize shifting focus of the 'let*' introduction + to the 'append-to-buffer' section. Improve wording, fix + typos, remove redundant comments (Bug#8275). + +2021-12-18 Eli Zaretskii <eliz@gnu.org> + + Clean up some of PGTK code + + * src/pgtkgui.h: Fix comments. + * src/image.c (DONT_CREATE_TRANSFORMED_IMAGEMAGICK_IMAGE) + (is_wayland_display, check_x_display_info) + (pgtk_get_string_resource): Reformat comments. + * src/gtkutil.c (xg_show_tooltip): Add comments to large #ifdef's. + +2021-12-18 Po Lu <luangruo@yahoo.com> + + Fix cairo build on haiku + + * configure.ac: Move pgtk cairo detection to the correct + location. + +2021-12-18 Po Lu <luangruo@yahoo.com> + + * src/pgtkfns.c (Fx_show_tip): Adjust call for new signature. + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-18 Po Lu <luangruo@yahoo.com> + + Work around some mysterious touch ownership race on GNOME Shell + + * src/xterm.c (x_unlink_touch_point): Return if touchpoint was + actually unlinked. + (handle_one_xevent): Catch and ignore errors during touch + sequence grabbing. + +2021-12-18 Po Lu <luangruo@yahoo.com> + + Add new argument `ignore-line-at-end' to `window-text-pixel-size' + + * doc/lispref/display.texi (Size of Displayed Text): Update + documentation. + * etc/NEWS: Announce new argument. + * src/xdisp.c (window_text_pixel_size): Allow controlling if + the iterator's ascent and descent will be appended to the + pixel height returned. All callers changed. + (Fwindow_text_pixel_size): New argument `ignore-line-at-end'. + All callers changed. + +2021-12-18 Eli Zaretskii <eliz@gnu.org> + + Fix display of window-specific overlays with 'display' property + + * src/xdisp.c (handle_display_prop): Pass the window to + 'get_char_property_and_overlay', not the buffer. (Bug#52385) + The assignment of the buffer to OBJECT was moved to before + the call to 'get_char_property_and_overlay', for unknown + reasons, as part of installing the support for the + 'min-width' space spec. + +2021-12-18 Lars Ingebrigtsen <larsi@gnus.org> + + Make multisession file reading more resilient on Windows + + * lisp/emacs-lisp/multisession.el (multisession--read-file-value): + Rename and try harder on file errors on Windows. + +2021-12-18 Po Lu <luangruo@yahoo.com> + + Coding style fixes + + * src/gtkutil.c (xg_frame_set_char_size): Fix coding style. + +2021-12-18 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-18 Po Lu <luangruo@yahoo.com> + + Document a bug that exists with some versions of GNOME and GTK + + * etc/PROBLEMS (Window-manager and toolkit-related problems): + Document GNOME shell bug. + +2021-12-17 Po Lu <luangruo@yahoo.com> + + Flip buffers if display were modified in haiku_read_socket + + * src/haikuterm.c (flush_dirty_back_buffers): New function. + (haiku_read_socket): Flip buffers if the display could have + been modified. + +2021-12-17 Po Lu <luangruo@yahoo.com> + + Don't abort upon untracked TouchUpdate events + + Emacs might get an untracked TouchUpdate event in the unlikely + event of a device hierarchy change during a touch sequence, in + which case all devices and touchpoints will be reset. + + * src/xterm.c (handle_one_xevent): Don't abort when receiving + a TouchUpdate that isn't part of a touch sequence. + +2021-12-17 Michael Albinus <michael.albinus@gmx.de> + + Handle missing JUnit test reports + + * lisp/emacs-lisp/ert.el (ert-write-junit-test-report) + (ert-write-junit-test-summary-report): Handle missing JUnit test reports. + +2021-12-17 Stefan Monnier <monnier@iro.umontreal.ca> + + multisession.el: Avoid old specializer syntax + + Avoid the use of the old (eql VAL) specializer, preferring the new + (eql EXP) form. + + * lisp/emacs-lisp/multisession.el (multisession-backend-value) + multisession--backend-set-value, multisession--backend-values) + multisession--backend-delete, multisession-backend-value) + multisession--backend-set-value, multisession--backend-values) + multisession--backend-delete): Quote the symbol passed to `eql` specializer. + +2021-12-17 Eli Zaretskii <eliz@gnu.org> + + Improve multisession test results on MS-Windows + + * lisp/emacs-lisp/multisession.el + (multisession--backend-set-value): Force 'fsync'ing the temporary + file. + +2021-12-17 Po Lu <luangruo@yahoo.com> + + Fix touchscreen support on Xt builds + + * src/xterm.c (handle_one_xevent): Make menu bar touch event + code conditional on GTK3. + +2021-12-17 Po Lu <luangruo@yahoo.com> + + Update menu bar when processing touch sequences on it + + * src/xterm.c (handle_one_event): Prevent menu bar from + becoming outdated when handling XI_TouchBegin events that may + cause it to be opened. + +2021-12-17 Po Lu <luangruo@yahoo.com> + + Ignore motion events sent by an emulated pointer + + * src/xterm.c (handle_one_xevent): Ignore XI_Motion events that + have PointerEmulated set when the display supports XInput 2.2 + or later. + +2021-12-17 Paul Eggert <eggert@cs.ucla.edu> + + Port tramp-adb.el back to Emacs 26 + + * lisp/net/tramp-adb.el (tramp-adb-ls-output-time-less-p): + Revert previous change since Tramp code should still be backward + compatible to Emacs 26. But add a comment about this. + Problem reported by Michael Albinus in: + https://lists.gnu.org/r/emacs-devel/2021-12/msg01623.html + +2021-12-17 Eli Zaretskii <eliz@gnu.org> + + Fix selection of fonts that don't have regular weight + + * src/font.c (font_delete_unmatched): The kludge of allowing + inexact matches of the font weight is now used for non-NTGUI + platforms as well. (Bug#52493) + +2021-12-17 Lars Ingebrigtsen <larsi@gnus.org> + + Fix parallel build with multisession.el + + * lisp/emacs-lisp/multisession.el: Don't require url -- this pulls + in gnus-util, which requires rmail, which depends on + rmail-loaddefs being generated, which our Makefiles doesn't guarantee. + +2021-12-17 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-17 Po Lu <luangruo@yahoo.com> + + Add support for touchscreen events generated by XInput 2 + + * doc/lispref/commands.texi (Input Events): Add "Touchscreen + Events" to menu. + (Touchscreen Events): New node. + * etc/NEWS: Announce new event types. + + * src/keyboard.c (make_lispy_event): Handle touchscreen events. + (syms_of_keyboard): New symbols `touchscreen-begin', + `touchscreen-end' and `touchscreen-update'. + * src/termhooks.h (enum event_kind): New touchscreen events. + + * src/xfns.c (setup_xi_event_mask): Set up touch event mask if + appropriate. + (x_window) [USE_GTK]: Call `setup_xi_event_mask'. + + * src/xterm.c (x_free_xi_devices): Free touchpoints. + (x_init_master_valuators): Handle all devices and set master and + touch mode flags appropriately. + (xi_reset_scroll_valuators_for_device_id): + (x_get_scroll_valuator_delta): Ignore slave devices. + + (xi_link_touch_point): + (xi_unlink_touch_point): + (xi_find_touch_point): New functions. + (handle_one_xevent): Handle XI touch events and events from + non-master devices. + + * src/xterm.h (struct xi_touch_point_t): New structure. + (struct xi_device_t): Add touchpoints field. + +2021-12-16 Dmitry Gutov <dgutov@yandex.ru> + + Kill eshell-mode project buffers too + + * lisp/progmodes/project.el (project-kill-buffer-conditions): + Add 'eshell-mode' too (bug#49465). + +2021-12-16 Paul Eggert <eggert@cs.ucla.edu> + + * src/timefns.c: Minor comment fix. + +2021-12-16 Paul Eggert <eggert@cs.ucla.edu> + + Simplify epa-ks--parse-buffer timestamp handling + + * lisp/epa-ks.el (epa-ks--parse-buffer): Omit unnecessary calls to + seconds-to-time, and prefer the unaliased name time-convert when + calls are necessary. + +2021-12-16 Paul Eggert <eggert@cs.ucla.edu> + + Omit temporary warning re obsolete timestamps + + Do not warn about timestamps like (1 . 1000). This warning was added + in Emacs 27 as a temporary transition aid, and has now served its + purpose. These timestamps, which Emacs 26 and earlier treated as (HI + . LO) instead of as (TICKS . HZ), were never generated by Emacs + primitives, and in practice the warning seems to have been triggered + only by test cases designed to generate it. + * src/timefns.c (WARN_OBSOLETE_TIMESTAMPS): Remove. + All uses changed to assume it’s false. + (decode_lisp_time): Simplify by taking a bool instead of an + integer bitmask. All uses changed. + +2021-12-16 Paul Eggert <eggert@cs.ucla.edu> + + Assume current-time-zone exists + + * lisp/timezone.el (timezone-time-zone-from-absolute): Simplify by + assuming current-time-zone exists (true since Emacs 19.7 in 1993). + +2021-12-16 Paul Eggert <eggert@cs.ucla.edu> + + Prefer format-time-string to current-time-zone + + * lisp/org/ox-icalendar.el (org-icalendar-template) + (org-icalendar-export-current-agenda) + (org-icalendar--combine-files): + * lisp/time.el (display-time-update): + Prefer (format-time-string "%Z") to (cadr (current-time-zone)). + +2021-12-16 Paul Eggert <eggert@cs.ucla.edu> + + Minor nndiary simplificatiuon with time zone + + * lisp/gnus/nndiary.el (nndiary-last-occurrence) + (nndiary-next-occurrence): Simplify (and X (car X)) to (car X). + +2021-12-16 Paul Eggert <eggert@cs.ucla.edu> + + Prefer format-time-string to current-time-string + + * lisp/arc-mode.el (archive-unixdate): + * lisp/gnus/nnrss.el (nnrss-normalize-date): + * lisp/tar-mode.el (tar-clip-time-string): + Prefer format-time-string to reassembling current-time-string output. + +2021-12-16 Paul Eggert <eggert@cs.ucla.edu> + + encode-time simplifications + + * lisp/gnus/gnus-search.el (gnus-search-query-parse-date): + * lisp/net/soap-client.el (soap-decode-date-time): + * lisp/net/tramp-adb.el (tramp-adb-ls-output-time-less-p): + * lisp/org/ol.el (org-store-link): + * lisp/org/org-clock.el (org-clock-sum) + (org-clock-update-time-maybe): + * lisp/org/org-colview.el (org-colview-construct-allowed-dates): + * lisp/org/org-macro.el (org-macro--vc-modified-time): + * lisp/org/org-macs.el (org-2ft, org-matcher-time): + * lisp/org/org-table.el (org-table-eval-formula): + * lisp/org/org.el (org-read-date, org-display-custom-time) + (org-time-string-to-time, org-timestamp-change): + Prefer (encode-time L) to (apply #'encode-time L) where either will do. + * lisp/gnus/gnus-search.el (gnus-search-imap-handle-date): + * lisp/org/org-clock.el (org-clocktable-steps): + Prefer (encode-time S M ...) to (apply #'encode-time (list S M ...)). + +2021-12-16 Paul Eggert <eggert@cs.ucla.edu> + + Fix icalendar time zone parsing glitch + + * lisp/calendar/icalendar.el (icalendar--decode-isodatetime): + Use pcase instead of cl-case, as cl-macs might not be loaded. + Otherwise, a build complains “calendar/icalendar.el:618:57: + Warning: ‘90’ is a malformed function” and some + icalendar--decode-isodatetime tests fail. This fixes a bug + introduced in 2021-11-21T08:18:57Z!dick.r.chiang@gmail.com. + +2021-12-16 Paul Eggert <eggert@cs.ucla.edu> + + Fix encode-time doc string + + * src/timefns.c (Fencode_time): Fix incorrect doc string + that talks about FORM (which doesn’t exist) by copying + wording from the manual instead. + +2021-12-16 Juri Linkov <juri@linkov.net> + + * lisp/vc/vc-dispatcher.el (vc-command-messages): Add choice 'log'. + + (vc-do-command): Don't display messages but only write them to the *Messages* + buffer when vc-command-messages is 'log' (bug#52518). + +2021-12-16 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-16 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of multisession variables + + * doc/lispref/variables.texi (Multisession Variables): Improve + wording and markup, add indexing. + +2021-12-16 Lars Ingebrigtsen <larsi@gnus.org> + + Update files times in multisesssion properly + + * lisp/emacs-lisp/multisession.el + (multisession--backend-set-value): Make cached/external files + times match up. + +2021-12-16 Lars Ingebrigtsen <larsi@gnus.org> + + Make the multisession files value read more resilient + + * lisp/emacs-lisp/multisession.el + (multisession--update-file-value): Make more resilient towards errors. + +2021-12-16 Lars Ingebrigtsen <larsi@gnus.org> + + Skip extension tests on hosts without the function + +2021-12-16 Lars Ingebrigtsen <larsi@gnus.org> + + Make emoji--recent use multisession variables + + * lisp/international/emoji.el (emoji--recent): Make into a + multisession variable. + (emoji-recent, emoji--recent-transient): Use it. + (emoji--add-recent): Update it. + +2021-12-16 Lars Ingebrigtsen <larsi@gnus.org> + + Declare a couple more functions in multisession.el + + * lisp/emacs-lisp/multisession.el: New file. + +2021-12-16 Lars Ingebrigtsen <larsi@gnus.org> + + Add support for multisession variables + + * doc/lispref/elisp.texi (Top): Add to menu. + (Top): + * doc/lispref/variables.texi (Variables): Ditto. + (Multisession Variables): Document multisession variables. + + * lisp/emacs-lisp/multisession.el: New file. + +2021-12-16 Po Lu <luangruo@yahoo.com> + + Require xwidget.el in `make-xwidget' + + * src/xwidget.c (Fmake_xwidget): Require `xwidget'. + +2021-12-16 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 1e578267fb Fix control buffer window height in 'ediff-setup-control-b... + +2021-12-15 Stefan Kangas <stefan@marxist.se> + + Prefer command remapping in ses.el + + * lisp/ses.el (ses-mode-print-map): Use command remapping instead of + substitute-key-definition. + +2021-12-15 Fredrik Bergroth <fbergroth@gmail.com> + + Add missing entries from completionitemkind + + * eglot.el (eglot--kind-names): update + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/772 + +2021-12-15 Garret Buell <gmbuell@gmail.com> (tiny change) + + Mark eglot-completion-at-point capf "non-exclusive" + + Add :exclusive 'no to eglot-completion-at-point results marking it as + non-exclusive. This will allow completion to fall back to other less precise + completion backends (e.g. dabbrev) if Eglot's returns no results. + + * eglot.el (eglot-completion-at-point): Set :exclusive to 'no + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/770 + +2021-12-15 Stefan Kangas <stefan@marxist.se> + + Use defvar-keymap in hideif.el + + * lisp/progmodes/hideif.el (hide-ifdef-mode-submap): Use + defvar-keymap. Use command remapping instead of + substitute-key-definition. + +2021-12-15 Michael Albinus <michael.albinus@gmx.de> + + Add errors in ert JUnit test reports + + * lisp/emacs-lisp/ert.el (ert-write-junit-test-report) + (ert-write-junit-test-summary-report): Handle errors. + +2021-12-15 Juri Linkov <juri@linkov.net> + + * lisp/outline.el (outline-minor-mode-use-buttons): Add :safe #'booleanp. + + (outline-minor-mode-cycle, outline-minor-mode-highlight): + Replace `put safe-local-variable' with :safe tag. + +2021-12-15 Andrea Corallo <akrl@sdf.org> + + Have 'dlopen' use RTLD_GLOBAL in 'dynlib_open' + + * src/pdumper.c (dump_do_dump_relocation): Use 'dynlib_open_for_eln' + in place of 'dynlib_open'. + * src/dynlib.h (dynlib_open_for_eln): Declare it. + * src/dynlib.c (dynlib_open_for_eln): New function. + (dynlib_open): Add RTLD_GLOBAL. + * src/comp.c (Fnative_elisp_load): Use 'dynlib_open_for_eln' in place + of 'dynlib_open'. + +2021-12-15 Arash Esbati <arash@gnu.org> + + Recognize starred environments + + * lisp/textmodes/reftex-vars.el (reftex-label-alist-builtin): Add + missing starred environments from sidecap and rotating packages. + +2021-12-15 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-15 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 7078f32b5b Fix crash when dumping charset_table with portable dumper ... + a4fcbf46a7 ; etc/NEWS: Move the note about Xref EIEIO change to the p... + f88c1d222f Remove maintainer comment from Emacs 28 module snippet. + + # Conflicts: + # etc/NEWS + +2021-12-14 Po Lu <luangruo@yahoo.com> + + Prevent GDK from handling emulated button events + + * src/xterm.c (handle_one_xevent): Drop emulated button events. + +2021-12-14 Po Lu <luangruo@yahoo.com> + + Work around pixel scrolling issues when line numbers are displayed + + * lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line): + Compare start position against line number display width + instead. + +2021-12-14 Dmitry Gutov <dgutov@yandex.ru> + + project-kill-buffers-display-buffer-list: Fix :package-version value + + * lisp/progmodes/project.el (project-kill-buffers-display-buffer-list): + Fix :package-version value. + +2021-12-14 Dmitry Gutov <dgutov@yandex.ru> + + Add 'comint-mode' and 'change-log-mode' to project-kill-buffer-conditions + + * lisp/progmodes/project.el (project-kill-buffer-conditions): + Add 'comint-mode' and 'change-log-mode' to the list (bug#52465). + +2021-12-14 Stefan Monnier <monnier@iro.umontreal.ca> + + eieio-compat.el: Move to lisp/obsolete + + The file only contains obsolete definitions, so it really belongs in + `lisp/obsolete`. Moving it there will also signal a warning for those + people who run old `.elc` files using EIEIO and generated with + Emacs<25 and who otherwise might not know about the obsolescence of + some of the functions they use. + + * lisp/emacs-lisp/eieio-compat.el: Move to ... + * lisp/obsolete/eieio-compat.el: ... here. + +2021-12-14 Stefan Kangas <stefan@marxist.se> + + Prefer command remapping in allout.el + + * lisp/allout.el (allout-compose-and-institute-keymap): Use command + remapping instead of substitute-key-definition. + +2021-12-14 Lars Ingebrigtsen <larsi@gnus.org> + + Fix ert.texi error from previous change + + * doc/misc/ert.texi (Running Tests in Batch Mode): Fix @r command. + +2021-12-14 Stefan Kangas <stefan@marxist.se> + + * lisp/net/eudc.el (custom-menu-create): Remove unnecessary autoload. + +2021-12-14 Stefan Kangas <stefan@marxist.se> + + Remove Emacs 21 compat code for command-remapping + + * lisp/arc-mode.el (archive-mode-map): + * lisp/obsolete/iswitchb.el (iswitchb-global-map): Remove Emacs 21 + compat code. + +2021-12-14 Michael Albinus <michael.albinus@gmx.de> + + Minor Tramp cleanup + + * lisp/net/tramp.el (tramp-get-buffer-string): Simplify. + (tramp-lock-pid): Fix docstring. + +2021-12-14 Michael Albinus <michael.albinus@gmx.de> + + Explain JUnit test reports in ert doc + + * doc/misc/ert.texi (Running Tests in Batch Mode): Explain + generation of JUnit test reports. + +2021-12-14 Stefan Kangas <stefan@marxist.se> + + Use defvar-keymap in elisp-mode.el + + * lisp/progmodes/elisp-mode.el (emacs-lisp-mode-map) + (elisp--dynlex-modeline-map, lisp-interaction-mode-map): Use + defvar-keymap. + +2021-12-14 Stefan Kangas <stefan@marxist.se> + + Prefer command remapping in cperl-mode.el + + * lisp/progmodes/cperl-mode.el (cperl-mode-map): Use command remapping + instead of substitute-key-definition. + +2021-12-14 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-14 Lars Ingebrigtsen <larsi@gnus.org> + + Only allow SQLite extensions from an allowlist + + * src/sqlite.c (Fsqlite_load_extension): Only allow extensions + from an allowlist. + +2021-12-14 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 3607508f3f Set calc-make-windows-dedicated to nil by default + 9de8eec3bc * make-dist: Don't run "make --question info". (Bug#52322) + cea8deea72 ; * src/xdisp.c (move_it_vertically_backward): Clarify com... + 6170c5036e Fix regression in help-mode prompt + + # Conflicts: + # etc/NEWS + +2021-12-13 Stefan Kangas <stefan@marxist.se> + + completion.el: Make two compat aliases obsolete + + * lisp/completion.el (cmpl-syntax-table, initialize-completions): + Make compat aliases obsolete. + +2021-12-13 Michael Albinus <michael.albinus@gmx.de> + + ERT can generate JUnit test reports + + * .gitignore: Add test/**/*.xml. + + * admin/notes/emba: Mention JUnit test report. + + * etc/NEWS: ERT can generate JUnit test reports. + + * lisp/emacs-lisp/ert.el (xml-escape-string): Autoload. + (ert-write-junit-test-report) + (ert-write-junit-test-summary-report): New defuns. + (ert-run-tests-batch, ert-summarize-tests-batch-and-exit): Call them. + + * test/Makefile.in (clean): Remove *.xml. + + * test/README: Mention $EMACS_TEST_JUNIT_REPORT environment variable. + + * test/infra/Makefile.in ($(FILE)): Generate header commentary. + (clean): Remove. + + * test/infra/gitlab-ci.yml (variables): Set EMACS_TEST_JUNIT_REPORT. + (.job-template): Use it in script and after_script. + (.build-template, .gnustep-template, .filenotify-gio-template) + (.native-comp-template): Adapt rules. + (.test-template): Trigger JUnit test report. + + * test/infra/test-jobs.yml: Regenerate. + +2021-12-13 Stefan Kangas <stefan@marxist.se> + + Make alias obsolete in xscheme.el + + * lisp/progmodes/xscheme.el (xscheme-yank-previous-send): Make + obsolete. + +2021-12-13 Stefan Kangas <stefan@marxist.se> + + Make two aliases obsolete in lisp/international/robin.el + + * lisp/international/robin.el (robin-transliterate-region) + (robin-transliterate-buffer): Make obsolete. + +2021-12-13 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/generator.el (iter-yield): Simplify + +2021-12-13 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/pcomplete.el: Mark obsolete some unused functions + + * lisp/pcomplete.el (pcomplete-match-beginning, pcomplete-match-end): + Mark as obsolete. + (pcomplete-opt, pcomplete--here, pcomplete--help): Use lexical-binding. + +2021-12-13 Eli Zaretskii <eliz@gnu.org> + + * src/sqlite.c (Fsqlite_open, Fsqlite_load_extension): Use ENCODE_FILE. + +2021-12-13 Stefan Kangas <stefan@marxist.se> + + * lisp/ielm.el (ielm-map): Use defvar-keymap. + + * lisp/ielm.el (ielm-header): Show key binding for describe-mode. + +2021-12-13 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-13 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 9bd3f78645 Make `M-x run-python' select the window again + 62139aeb42 * lisp/tab-bar.el (tab-bar-switch-to-last-tab): Add 'abs' ... + ea8422204f * make-dist (manifest): Filter out msdos/autogen/* files. + b5354e989d Rewrite the "Quitting Windows" section of Emacs Lisp Refer... + 64ea1a178c Fix eshell for systems that do not have subprocesses + +2021-12-13 Lars Ingebrigtsen <larsi@gnus.org> + + Add a new `sqlite-pragma' command + + * doc/lispref/text.texi (Database): Document it. + * src/sqlite.c (Fsqlite_pragma): Add a separate command for + pragmas. These can be done via sqlite-execute, but it's less + confusing to have them in a separate command. + +2021-12-12 Lars Ingebrigtsen <larsi@gnus.org> + + Introduce a new sqlite-locked-error + + * src/sqlite.c (Fsqlite_execute): Use it. + (syms_of_sqlite): Introduce a new error for locked databases so + that we can catch that condition on higher levels. + +2021-12-12 Po Lu <luangruo@yahoo.com> + + Work around pixel scrolling issues when org-indent-mode is on + + * lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line): + Subtract line height of window start when it doesn't appear + at the 0th pixel of the line. + +2021-12-12 Po Lu <luangruo@yahoo.com> + + Stop using XI focus events on non-GTK builds + + * src/xfns.c (setup_xi_event_mask): Stop setting XI_FocusIn + and XI_FocusOut. + * src/xterm.c (x_detect_focus_change) <GenericEvent>: Don't + handle XI_FocusIn and XI_FocusOut events when not on GTK. + +2021-12-12 Eli Zaretskii <eliz@gnu.org> + + * lisp/char-fold.el (char-fold-override): Doc fix. + +2021-12-12 Juri Linkov <juri@linkov.net> + + * lisp/char-fold.el (char-fold-override): New defcustom (bug#52394). + + (char-fold--default-override): New defconst with the default value nil. + (char-fold--previous): Add char-fold--default-override. + (char-fold--make-table): Don't populate the table with default chars + when char-fold-override or char-fold--default-override is non-nil. + (char-fold-update-table): Add char-fold--default-override. + +2021-12-12 Juri Linkov <juri@linkov.net> + + * lisp/startup.el: Let-bind browse-url-browser-function instead of setq-local + + * lisp/startup.el (fancy-startup-text, fancy-about-text) + (fancy-splash-head, normal-about-screen): Let-bind browse-url-browser-function + to eww-browse-url around functions that use browse-url. + (fancy-startup-screen, fancy-about-screen): Don't set buffer-local + browse-url-browser-function. + https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg00939.html + +2021-12-12 Po Lu <luangruo@yahoo.com> + + Fix overline display when there is a box on PGTK + + * src/pgtkterm.c (pgtk_draw_glyph_string): Draw box before any + text decorations. + +2021-12-12 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-12 Po Lu <luangruo@yahoo.com> + + Fix overline display over stretch glyphs with box on NS + + * src/nsterm.m (ns_dumpglyphs_stretch): Don't draw text + decorations when there is a box. + (ns_draw_glyph_string): Draw text decorations after the box + in stretch glyph that have one. + +2021-12-12 Po Lu <luangruo@yahoo.com> + + Fix overline display when there is a box + + * src/w32term.c (w32_draw_glyph_string): + * src/xterm.c (x_draw_glyph_string): Draw box before any text + decorations. + +2021-12-12 Lars Ingebrigtsen <larsi@gnus.org> + + Really fix the etags TEX parsing + + * lib-src/etags.c (TEX_decode_env): Re-fix off-by-one parsing of + TEXTAGS environment variable (bug#52438). + +2021-12-12 Lars Ingebrigtsen <larsi@gnus.org> + + Fix an off-by-one error in TEX parsing in etags + + * lib-src/etags.c (TEX_decode_env): Fix off-by-one parsing of + TEXTAGS environment variable (bug#52438). Based on a patch by + David Fussner <dfussner@googlemail.com> and amended by Andreas + Schwab <schwab@linux-m68k.org>. + +2021-12-12 Lars Ingebrigtsen <larsi@gnus.org> + + Check for support in sqlite-mode-open-file + + * lisp/sqlite-mode.el (sqlite-mode-open-file): Error out earlier + when we don't have sqlite support. + +2021-12-12 Stefan Kangas <stefan@marxist.se> + + eshell: Prefer octal number for file modes + + * lisp/eshell/esh-util.el (eshell-private-file-modes) + (eshell-private-directory-modes): Prefer octal number for file modes. + +2021-12-12 Lars Ingebrigtsen <larsi@gnus.org> + + Make with-sqlite-transaction mode code efficient + + * lisp/sqlite.el (with-sqlite-transaction): Rewrite to only + include BODY once. + +2021-12-12 Po Lu <luangruo@yahoo.com> + + * src/xterm.c (x_detect_focus_change): Fix XI2 focus on GTK builds. + +2021-12-12 Po Lu <luangruo@yahoo.com> + + Fix last change + + * src/xterm.c (x_detect_focus_change): Test against + FOCUS_EXPLICIT. + +2021-12-12 dick r. chiang <dick.r.chiang@gmail.com> + + Fix some compilation warnings in sqlite-less builds + + * test/src/sqlite-tests.el: + * lisp/sqlite-mode.el: Avoid compilation warnings in builds + without libsqlite (bug#52440). + +2021-12-12 Po Lu <luangruo@yahoo.com> + + Fix frame focus on X Toolkit builds with XInput 2 + + * src/xterm.c (x_detect_focus_change): Allow focus_state to not + be FOCUS_EXPLICIT when handling FocusIn and FocusOut events. + +2021-12-12 Lars Ingebrigtsen <larsi@gnus.org> + + Update bovine/gcc-tests for newer Macos versions + + * test/lisp/cedet/semantic/bovine/gcc-tests.el + (semantic-gcc-test-output-parser-this-machine): Update gcc->llvm + detection to Macos Monterey. + +2021-12-12 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 8a0734329a Avoid undefined behavior in 'send-process-region' (Bug#523... + 30dd5c9acc Update to Org 9.5.1-25-g9ca3bc + a374849926 Fix the DJGPP port + +2021-12-11 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak erroring in sqlite-mode-delete + + * lisp/sqlite-mode.el (sqlite-mode-delete): Use user-error instead + of error for user-level stuff. + +2021-12-11 Lars Ingebrigtsen <larsi@gnus.org> + + Make sqlite-mode-list-tables work on older sqlite versions + + * lisp/sqlite-mode.el (sqlite-mode-list-tables): Use sqlite_master + instead of sqlite_schema, since the former name is the historical + name and is available in all sqlite3 versions: + https://sqlite.org/schematab.html + +2021-12-11 Po Lu <luangruo@yahoo.com> + + Fix coding style + + * src/pgtkmenu.c (popup_widget_loop): + (popup_deactivate_callback): + (show_help_event): + (menu_highlight_callback): + (menubar_selection_callback): + (popup_selection_callback): + (dialog_selection_callback): + (create_and_show_dialog): Fix coding style. + +2021-12-11 Po Lu <luangruo@yahoo.com> + + Prevent hangs when displaying a context menu on pgtk + + * src/pgtkmenu.c (pgtk_menu_wait_for_event, popup_widget_loop): + Remove unnecessary workarounds. + +2021-12-11 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-11 Po Lu <luangruo@yahoo.com> + + Clear precision scroll interpolation when direction changes + + * lisp/pixel-scroll.el (pixel-scroll-precision-interpolate): + Clear scroll interpolation when direction changes. + +2021-12-11 Po Lu <luangruo@yahoo.com> + + Fix drawing overlines on top of stretch glyphs when there is a box + + * src/haikuterm.c (haiku_draw_string_box): Also draw text + decorations if the clipping is to be set. + (haiku_draw_glyph_string): Only draw text decorations if + the box will not be drawn with clipping. + +2021-12-11 Mattias Engdegård <mattiase@acm.org> + + Constant-propagate access to captured variables + + * lisp/emacs-lisp/byte-opt.el (byte-optimize--substitutable-p): + Treat (internal-get-closed-var N) as constants for propagation + purposes, because that is effectively what such forms will be compiled + to. This allows for the elimination of some lexical variables. + + * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases): + Add test case. + +2021-12-11 Mattias Engdegård <mattiase@acm.org> + + Reimplement gnus-thread-header in Lisp + + * lisp/gnus/gnus-sum.el (gnus-thread-header): + Replace lovingly hand-crafted assembler code with plain Lisp. + With lexical binding the difference is unlikely to be detectable. + +2021-12-11 Eli Zaretskii <eliz@gnu.org> + + Fix hang when deleting a pipe process + + * src/w32.h (FILE_DONT_CLOSE): New flag. + * src/w32.c (sys_close): Don't close descriptors used to read from + the pipe process. Leave the FILE_DONT_CLOSE flag set in the + descriptor's info. + (register_aux_fd): Set the FILE_DONT_CLOSE flag in the + descriptor's info. + * src/w32proc.c (reader_thread): When exiting normally, close the + file descriptor used to read from a pipe process. (Bug#52414) + +2021-12-11 Yuuki Harano <masm+github@masm11.me> + + Implement pgtk_frame_raise_lower + + * src/pgtkterm.c (pgtk_raise_frame): New function. + (pgtk_lower_frame): New function. + (pgtk_frame_raise_lower): New function to call one of those. + (pgtk_create_terminal): Set frame_raise_lower_hook. + +2021-12-11 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of sqlite3 support + + * lisp/sqlite-mode.el (sqlite-mode-list-data): + * configure.ac (HAVE_SQLITE3): Fix typos. + + * doc/lispref/text.texi (Database): Improve and clarify wording, + add index entries, mention all the function arguments. + + * etc/NEWS: Minor wording changes of the sqlite entries. + +2021-12-11 Po Lu <luangruo@yahoo.com> + + Coding style fixes + + * src/pgtkterm.c (button_event): Fix coding style. + +2021-12-11 Po Lu <luangruo@yahoo.com> + + Fix tooltips in PGTK child frames + + * src/gtkutil.c (xg_show_tooltip, xg_hide_tooltip): Make + safe for child frames. + +2021-12-11 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-11 Po Lu <luangruo@yahoo.com> + + Use window height to determine wheel event pixel deltas on XInput 2 + + * src/xterm.c (handle_one_xevent): Use window height instead of + frame height to determine the height of a scroll unit. + +2021-12-11 Po Lu <luangruo@yahoo.com> + + Prevent hang when exiting Emacs on Haiku + + * src/haiku_support.cc (be_app_quit): Don't wait for app + thread to also quit. + +2021-12-11 Eli Zaretskii <eliz@gnu.org> + + * src/sqlite.c (row_to_value): Call 'make_unibyte_string'. + +2021-12-11 Basil L. Contovounesios <contovob@tcd.ie> + + Pacify unused variable warning in xterm.c + + * src/xterm.c (handle_one_xevent) <GenericEvent> [HAVE_XINPUT2]: The + variable any_stop_p is used only when HAVE_XWIDGETS, so guard its + declaration accordingly to pacify GCC's -Wunused-variable warning. + +2021-12-11 Eli Zaretskii <eliz@gnu.org> + + Minor cleanups in sqlite.c + + * src/sqlite.c (Fsqlite_open): Signal an error if + 'init_sqlite_functions' fails. Encode FILE using UTF-8. + (Fsqlite_close, Fsqlite_execute, Fsqlite_select) + (Fsqlite_load_extension): Doc fixes. + (Fsqlite_load_extension): Encode MODULE using UTF-8. + +2021-12-11 Eli Zaretskii <eliz@gnu.org> + + Minor cleanups of sqlite3 code on MS-Windows + + * src/sqlite.c (sqlite_loaded_p): Function deleted: not used + anymore. + (init_sqlite_functions) [WINDOWSNT]: Use a static 'bool' variable + to indicate if sqlite3 DLL was successfully loaded. + (Fsqlite_available_p) [WINDOWSNT]: Just call + 'init_sqlite_functions' if Vlibrary_cache doesn't mention + 'sqlite3'. + +2021-12-11 Eli Zaretskii <eliz@gnu.org> + + Fix a typo in sqlite.c + + * src/sqlite.c (Fsqlite_select): Fix a typo in arguments to + make_sqlite. + +2021-12-11 Lars Ingebrigtsen <larsi@gnus.org> + + Add confirmation to sqlite-mode-delete + + * lisp/sqlite-mode.el (sqlite-mode-delete): Add confirmation. + +2021-12-11 Lars Ingebrigtsen <larsi@gnus.org> + + Don't leave open cursors when listing sqlite data + + * lisp/sqlite-mode.el (sqlite-mode-list-data) + (sqlite--mode--list-data): Don't leave open cursor (because they + block other processes from deleting stuff). + (sqlite-mode-delete): Adjust to new layout. + +2021-12-11 Lars Ingebrigtsen <larsi@gnus.org> + + Add FIXME comment + + * lisp/sqlite-mode.el (sqlite-mode-delete): New command. + (sqlite--mode--list-data, sqlite-mode-list-data): Adjust to new + command. + +2021-12-11 Lars Ingebrigtsen <larsi@gnus.org> + + Add an sqlite-mode-delete command + + * lisp/sqlite-mode.el (sqlite-mode-delete): New command. + (sqlite--mode--list-data, sqlite-mode-list-data): Adjust to new + command. + +2021-12-11 Lars Ingebrigtsen <larsi@gnus.org> + + Fix Fsqlite_finalize book-keeping + + * src/sqlite.c (Fsqlite_finalize): Mark the object as dead. + +2021-12-11 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 5708da48d1 Revert "Make `M-x run-python' select the window again" + aa2872a127 Make `M-x run-python' select the window again + c8e19b3a84 Don't bug out on certain empty elements with ids + +2021-12-11 Lars Ingebrigtsen <larsi@gnus.org> + + Improve sqlite-mode--tablify tables + + * lisp/sqlite-mode.el (sqlite-mode--tablify): Tweak column widths + and sanitize newlines. + +2021-12-11 Lars Ingebrigtsen <larsi@gnus.org> + + Check whether the sqlite supports sqlite3_load_extension + + * configure.ac: Check for sqlite3_load_extension, which is + apparently missing in some versions. + * src/sqlite.c: Add guards. + (Fsqlite_load_extension): Ifdef out on systems that doesn't have it. + +2021-12-11 Lars Ingebrigtsen <larsi@gnus.org> + + Fix sqlite-mode.el build problems + + * lisp/sqlite-mode.el (sqlite-mode-list-tables): Fix function + rename usage. + +2021-12-11 Lars Ingebrigtsen <larsi@gnus.org> + + Fix some sqlite doc string typos + + * src/sqlite.c (Fsqlite_load_extension, Fsqlite_more_p): Fix typos + in doc strings. + +2021-12-11 Lars Ingebrigtsen <larsi@gnus.org> + + Add a new mode for examining sqlite files + + * lisp/sqlite-mode.el: New file. + +2021-12-10 Lars Ingebrigtsen <larsi@gnus.org> + + Fix comment in heading + + Add NEWS entry for sqlite + +2021-12-10 Lars Ingebrigtsen <larsi@gnus.org> + + Add sqlite3 support to Emacs + + * configure.ac: Add check for the sqlite library. + * doc/lispref/text.texi (Database): Document it. + + * lisp/sqlite.el: New file. + + * lisp/term/w32-win.el (dynamic-library-alist): Add a mapping. + + * src/Makefile.in (SQLITE3_LIBS): Add the libraries. + + * src/alloc.c (union emacs_align_type): Add a Lisp_Sqlite struct. + + * src/data.c (Ftype_of): Add sqlite. + + * src/emacs.c (main): Load the syms. + + * src/lisp.h (DEFINE_GDB_SYMBOL_BEGIN): Add PVEC_SQLITE. + (GCALIGNED_STRUCT): New struct to keep data for sqlite database + objects and statement objects. + (SQLITEP, SQLITE, CHECK_SQLITE, XSQLITE): New macros for accessing + the objects. + + * src/pdumper.c (dump_vectorlike): Update hash. + (dump_vectorlike): Don't dump it. + + * src/print.c (print_vectorlike): Add a printer for the sqlite + object. + + * src/sqlite.c: New file. + + * test/src/sqlite-tests.el: Add tests. + +2021-12-10 Lars Ingebrigtsen <larsi@gnus.org> + + Fix bibtex-biblatex-entry-alist sorting when using latex + + * lisp/textmodes/bibtex.el (bibtex-biblatex-entry-alist): Sort + PhdThesis and TechReport correctly when using the latex variant + (bug#52354). + +2021-12-10 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-10 Stefan Kangas <stefan@marxist.se> + + * etc/TODO: Entry about converting to defvar-keymap. + +2021-12-10 Stefan Kangas <stefan@marxist.se> + + Use defvar-keymap for package-menu-mode-map + + * lisp/emacs-lisp/package.el (package-menu-mode-map): Use + defvar-keymap. + +2021-12-10 Lars Ingebrigtsen <larsi@gnus.org> + + Make keymap-lookup work for keymap results, too + + * lisp/keymap.el (keymap-lookup): Make this function work for + non-symbol lookups, too (bug#52374). + +2021-12-10 Lars Ingebrigtsen <larsi@gnus.org> + + Make dired-buffers-for-dir expand the DIR argument + + * lisp/dired.el (dired-buffers-for-dir): Expand DIR argument + (bug#52395). + (dired-find-buffer-nocreate, dired-clean-up-after-deletion): + Adjust callers. + +2021-12-10 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-10 Po Lu <luangruo@yahoo.com> + + Further reduce image-related stutter during precision scrolling + + * lisp/pixel-scroll.el + (pixel-scroll-precision-scroll-down-page): Disable + `scroll-preserve-screen-position' and `auto-window-vscroll' + while scrolling. + +2021-12-10 Po Lu <luangruo@yahoo.com> + + Stop setting `make-cursor-line-fully-visible' in precision scrolling + + * lisp/pixel-scroll.el (pixel-scroll-precision-mode): Stop + setting `make-cursor-line-fully-visible'. + +2021-12-10 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 7a25ba0fde ; * lisp/image-dired.el: Fix typo. + dda6337066 emacsclient takes more care about XDG_RUNTIME_DIR + 26fb4168b8 ; Prefer HTTPS in more URLs + 6b89578524 ; * lisp/progmodes/flymake.el: Update the minimum Emacs ve... + +2021-12-09 Po Lu <luangruo@yahoo.com> + + Fix bob detection when pixel scrolling upwards + + * lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line): + Don't go to the beginning-of-visual-line if bobp. + +2021-12-09 Po Lu <luangruo@yahoo.com> + + Fix pixel scrolling upwards in Info buffers + + * lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line): + Don't blindly trust window start to be the beginning of a + visual line. + +2021-12-09 Po Lu <luangruo@yahoo.com> + + Remove unused let-bindings from pixel-scroll.el + + * lisp/pixel-scroll.el + (pixel-scroll-precision-scroll-down-page): Remove unused + bindings. + +2021-12-09 Po Lu <luangruo@yahoo.com> + + Fix precision scrolling for stretch glyphs + + * lisp/pixel-scroll.el + (pixel-scroll-precision-scroll-down-page): Simplify logic. + (pixel-scroll-precision-interpolate): Block throw-on-input + when actually scrolling. + +2021-12-09 Stefan Kangas <stefan@marxist.se> + + * lisp/time.el (world-clock-mode-map): Convert to defvar-keymap. + +2021-12-09 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-09 Eli Zaretskii <eliz@gnu.org> + + Fix logic in 'compute_window_start_on_continuation_line' + + * src/xdisp.c (compute_window_start_on_continuation_line): Fix a + thinko in logic. Patch by dickmao <dick.r.chiang@gmail.com>. + (Bug#52378) + +2021-12-09 Michael Albinus <michael.albinus@gmx.de> + + Fix thinko in Tramp test + + * test/lisp/net/tramp-tests.el (tramp-test07-abbreviate-file-name): + Fix thinko. + +2021-12-09 Michael Albinus <michael.albinus@gmx.de> + + Improve lock-pid handling in Tramp + + * lisp/net/tramp-cache.el: Remove comment. + + * lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection): + * lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection): + * lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-maybe-open-connection): + Do not set "lock-pid" connection-property. + (tramp-sudoedit-handle-delete-file): Use "rm -f". + + * lisp/net/tramp.el (tramp-test-message): Extend for buffers w/o + remote default-directory. + (tramp-lock-pid): New defvar. + (tramp-get-lock-pid): Reimplement. + +2021-12-09 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 1821844357 Add missing K key documentation for Cangjie input methods + be860c1385 Fix manual entry of 'quit-restore-window' (Bug#52328) + 35a96139df Clarify a comment in xdisp.c + 6ba2f028cf Revert "Grep alias `all' shall not match parent directory" + eb9e33e238 ; * etc/NEWS: Non-nil repeat-keep-prefix is not the default... + 538fc1d0e0 Fix mode-line display in Calendar mode + + # Conflicts: + # etc/NEWS + # lisp/help.el + +2021-12-09 Po Lu <luangruo@yahoo.com> + + Make precision scrolling up work over display strings + + * lisp/pixel-scroll.el + (pixel-point-and-height-at-unseen-line): Use + `window-text-pixel-size'. + (pixel-scroll-precision-scroll-up-page): Use delta as vscroll + directly. + +2021-12-09 Po Lu <luangruo@yahoo.com> + + Fix pixel scrolling over lines with different sized glyphs + + * lisp/pixel-scroll.el + (pixel-scroll-precision-scroll-down-page): Calculate desired + vscroll with `window-text-pixel-size'. + +2021-12-08 Po Lu <luangruo@yahoo.com> + + Fix jumping cursor during interpolated scrolls + + * lisp/pixel-scroll.el + (pixel-scroll-precision-scroll-down-page): Go to next position + before setting start or vscroll. + +2021-12-08 Po Lu <luangruo@yahoo.com> + + Allow customizing step between each interpolated scroll + + * lisp/pixel-scroll.el (pixel-scroll-precision-interpolate): + Use new option. + (pixel-scroll-precision-interpolation-between-scroll): New user + option. + +2021-12-08 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-08 Stefan Kangas <stefan@marxist.se> + + image-dired: Show image info in header line + + * lisp/image-dired.el + (image-dired-update-header-line): New function to show image + information in the header line. + (image-dired-display-thumb-properties): Make obsolete. + (image-dired-track-thumbnail) + (image-dired--display-thumb-properties-fun) + (image-dired-forward-image, image-dired-next-line) + (image-dired-previous-line, image-dired-beginning-of-buffer) + (image-dired-end-of-buffer, image-dired-read-comment): Use + image-dired-update-header-line instead of + image-dired-display-thumb-properties. + +2021-12-08 Stefan Kangas <stefan@marxist.se> + + image-dired: Go to next image when marking + + * lisp/image-dired.el + (image-dired-marking-shows-next): New user option to show the next + image after marking, unmarking or flagging an image. + (image-dired--do-mark-command): New macro. + (image-dired-mark-thumb-original-file) + (image-dired-unmark-thumb-original-file) + (image-dired-flag-thumb-original-file) + (image-dired-toggle-mark-thumb-original-file) + (image-dired-unmark-all-marks): Use above new macro. + +2021-12-08 Stefan Kangas <stefan@marxist.se> + + image-dired: Remove some TODOs + + To the extent that these TODOs are relevant or useful, it would be + better to add such features to image-mode directly. + * lisp/image-dired.el: Remove some TODOs. + +2021-12-08 Stefan Monnier <monnier@iro.umontreal.ca> + + * test/lisp/emacs-lisp/subr-x-tests.el (subr-x-named-let): New test + +2021-12-08 Stefan Monnier <monnier@iro.umontreal.ca> + + * test/lisp/emacs-lisp/cl-macs-tests.el: Avoid `with-suppressed-warnings` + + * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--progv): Use a proper + namespace prefix for the global vars. + +2021-12-08 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/mouse.el: Fix some lambdas quoted with ` or ' + + Also prefer #' to quote named functions. + + * lisp/mouse.el (minor-mode-menu-from-indicator, context-menu-entry) + ([C-down-mouse-3]): Don't abuse lambda lists for functions. + (context-menu-mode): Remove redundant `:group`. + (mouse-drag-line): Remove unused var `draggable`. + (mouse-yank-primary): Make it work for non-mouse events. + +2021-12-08 Juri Linkov <juri@linkov.net> + + * lisp/mouse.el (context-menu-entry): Bind to make-sparse-keymap, not ignore. + + Then where-is-internal does not run context-menu-map from the :filter, + and no context menu functions are called by e.g. describe-mode in wrong buffer + (bug#9923) + +2021-12-08 Stefan Kangas <stefan@marxist.se> + + Define some more keymaps in one step + + * lisp/calc/calc-store.el (calc-var-name-map): + * lisp/mail/rmailsum.el (rmail-summary-edit-map): + * lisp/speedbar.el (speedbar-buffers-key-map): Define in one step. + * lisp/progmodes/ebrowse.el (ebrowse-global-submap-4) + (ebrowse-global-submap-5): Define in one step and use defvar-keymap. + +2021-12-08 Stefan Kangas <stefan@marxist.se> + + Define calc-help-map in one step + + * lisp/calc/calc-ext.el (calc-help-map): Define in one step and + convert to defvar-keymap. + +2021-12-08 Stefan Kangas <stefan@marxist.se> + + Convert shortdoc-mode-map to defvar-keymap + + * lisp/emacs-lisp/shortdoc.el (shortdoc-mode-map): Convert to + defvar-keymap. + +2021-12-08 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + ce5bca4913 Document native-comp-async-report-warning-errors more + 1933cd5307 Doc fix; Epiphany has been renamed to GNOME Web + b80d7568e4 * lisp/dired-aux.el (dired-check-process): Doc fix. (Bug#... + 0f30227f97 ; * lisp/net/browse-url.el (browse-url-epiphany): Fix typo. + d34009db66 Remove dead link from newsticker + + # Conflicts: + # lisp/net/browse-url.el + +2021-12-08 Po Lu <luangruo@yahoo.com> + + Fix coarse scroll deltas on macOS + + * src/nsterm.m (- mouseDown): Multiply deltas as appropriate. + +2021-12-08 Po Lu <luangruo@yahoo.com> + + Clear scroll interpolation when interpolated scroll completes + + * lisp/pixel-scroll.el (pixel-scroll-precision-interpolate): Set + saved interpolation to nil upon completion. + +2021-12-08 Po Lu <luangruo@yahoo.com> + + Improve precision scroll interpolation + + * lisp/pixel-scroll.el + (pixel-scroll-precision-interpolation-total-time) + (pixel-scroll-precision-interpolation-factor): Add better + default values. + + (pixel-scroll-precision-interpolate): Save deltas and run loop + inside `while-no-input' instead. + +2021-12-08 Po Lu <luangruo@yahoo.com> + + Fix last change + + * lisp/pixel-scroll.el + (pixel-scroll-precision-interpolation-total-time) + (pixel-scroll-precision-interpolation-factor): Fix declared versions. + +2021-12-08 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-08 Po Lu <luangruo@yahoo.com> + + Make interpolated scrolling work better + + * lisp/pixel-scroll.el (pixel-scroll-precision-interpolate): + Stop using `while-no-input'. + +2021-12-08 Po Lu <luangruo@yahoo.com> + + Allow customizing precision scroll interpolation + + * lisp/pixel-scroll.el + (pixel-scroll-precision-interpolation-total-time) + (pixel-scroll-precision-interpolation-factor): New user + options. + (pixel-scroll-precision-interpolate): Use these new options. + + (pixel-scroll-precision-mode): Set + `make-cursor-line-fully-visible' to nil. + +2021-12-07 Po Lu <luangruo@yahoo.com> + + Send scroll stop events to xwidgets correctly + + * src/xterm.c (handle_one_xevent): Record stop events manually. + + * src/xwidget.h (xwidget_scroll): + * src/xwidget.c (xwidget_scroll): New parameter `stop_p'. + +2021-12-07 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-07 Stefan Kangas <stefan@marxist.se> + + Convert etc-authors-mode-map to defvar-keymap + + * lisp/textmodes/etc-authors-mode.el (etc-authors-mode-map): + Convert to defvar-keymap. + +2021-12-07 Lars Ingebrigtsen <larsi@gnus.org> + + Pacify svg_load_image compiler warning + + * src/image.c (svg_load_image): Fix compiler warning from gcc + (Debian 11.2.0-10). + +2021-12-07 Lars Ingebrigtsen <larsi@gnus.org> + + Check decoding results in webp_load before using it + + * src/image.c (webp_load): Check whether we were able to decode + the image before using it. + +2021-12-07 Stefan Kangas <stefan@marxist.se> + + image-dired: Navigate from image display buffer + + * lisp/image-dired.el + (image-dired-mark-thumb-original-file) + (image-dired-unmark-thumb-original-file) + (image-dired-flag-thumb-original-file) + (image-dired-toggle-mark-thumb-original-file) + (image-dired-unmark-all-marks) + (image-dired-display-next-thumbnail-original) + (image-dired-display-previous-thumbnail-original): Make commands + usable from image-dired-display-image-mode. + (image-dired-display-image-mode-map): Bind above commands. + (image-dired--with-thumbnail-buffer): New macro. + +2021-12-07 Miha Rihtaršič <miha@kamnitnik.top> + + Improve yanking in the middle of comint process output + + * lisp/comint.el + (comint--unmark-string-as-output): New function to remove unwanted + properties from text yanked from comint buffers. + + (comint-mode): Use it as a 'filter-buffer-substring-function'. + + (comint-output-filter): Set 'insert-in-front-hooks' text property on + process output such that text yanked by the user in the middle of + process output is marked as process output (Bug#3735). + + (comint--mark-as-output): New function. + (comint--mark-yanked-as-output): New function. + +2021-12-07 Stefan Kangas <stefan@marxist.se> + + browse-url: Refactor code to find executable + + * lisp/net/browse-url.el (browse-url--find-executable): Extract from... + (browse-url-firefox-program, browse-url-chrome-program) + (browse-url-chromium-program): ...here. + +2021-12-07 Stefan Kangas <stefan@marxist.se> + + browse-url: Remove support for Galeon + + * lisp/net/browse-url.el (browse-url-galeon-program) + (browse-url-galeon-arguments) + (browse-url-galeon-startup-arguments) + (browse-url-galeon-new-window-is-tab, browse-url-galeon) + (browse-url-galeon-sentinel): Delete, thus removing support for the long + defunct Galeon web browser. + * etc/NEWS: Announce its removal. + +2021-12-07 Eli Zaretskii <eliz@gnu.org> + + * etc/tutorials/TUTORIAL.he: Add section about package management. + +2021-12-07 Eli Zaretskii <eliz@gnu.org> + + Improve before-make-frame-hook and after-make-frame-functions docs. + + * lisp/frame.el (before-make-frame-hook) + (after-make-frame-functions): + * doc/lispref/frames.texi (Creating Frames): Mention that these + functions will be run for the initial frame only if added to the + hook in early-init file. (Bug#38143) + +2021-12-07 Stefan Kangas <stefan@marxist.se> + + browse-url: Remove support for Netscape + + * lisp/net/browse-url.el (browse-url-netscape-program) + (browse-url-netscape-arguments) + (browse-url-netscape-startup-arguments) + (browse-url-netscape-new-window-is-tab) + (browse-url-netscape-version, browse-url-netscape) + (browse-url-netscape-sentinel, browse-url-netscape-reload) + (browse-url-netscape-send): Delete, thus removing support for the long + defunct Netscape web browser. + * etc/NEWS: Announce its removal. + +2021-12-07 Glenn Morris <rgm@gnu.org> + + * doc/misc/eshell.texi (Built-ins): Fix xref. + +2021-12-07 Michael Albinus <michael.albinus@gmx.de> + + Make a more robust check in Tramp using scripts + + * lisp/net/tramp-sh.el (tramp-find-inline-encoding): + Check, whether scripts in `tramp-remote-coding-commands' are + expandable. + +2021-12-07 Lele Gaifax <lele@metapensiero.it> + + Add the new packages section to the Italian tutorial + + * etc/tutorials/TUTORIAL.it (INSTALLAZIONE DI ULTERIORI PACCHETTI): + Translate from recently added INSTALLING PACKAGES section in the English + version. (Bug#52345) + (CONCLUSIONI): Reword paragraph, to better convey the original intent. + +2021-12-07 Stefan Kangas <stefan@marxist.se> + + Remove some unnecessary references to Emacs 22 + + * lisp/cedet/semantic/fw.el: + * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): + * lisp/emulation/viper-util.el (viper-frame-value): + * lisp/mail/rmail.el (rmail-delete-headers): + * lisp/mh-e/mh-e.el (mh-inc-spool-list): Remove some unnecessary + references to Emacs 22. + +2021-12-07 Stefan Kangas <stefan@marxist.se> + + * etc/tutorials/TUTORIAL: Say that there is usually a delete key. + +2021-12-07 Stefan Kangas <stefan@marxist.se> + + image-dired: Fix behavior of slideshow command + + * lisp/image-dired.el (image-dired-slideshow-start): Fix behavior + to match documentation. Minor simplification of docstring. + +2021-12-07 Stefan Kangas <stefan@marxist.se> + + Remove obsolete values from image-mode-auto-resize + + * lisp/image-mode.el (image-auto-resize): Remove obsolete options + fit-height and fit-width. + (image-transform-resize): Document that fit-height and fit-width + are obsolete. + + (image-auto-resize-max-scale-percent): Fix defcustom const :tag. + +2021-12-07 Stefan Kangas <stefan@marxist.se> + + * lisp/view.el (view-mode-map): Convert to defvar-keymap. + +2021-12-07 Stefan Kangas <stefan@marxist.se> + + Remove XEmacs compat code from strokes.el + + * lisp/strokes.el (strokes-mode): Remove XEmacs compat code; + select-frame-hook does not exist in Emacs. + +2021-12-07 Lars Ingebrigtsen <larsi@gnus.org> + + Add vc-git-stash-pop to vc-dir-git-mode + + * lisp/vc/vc-git.el (vc-dir-git-mode-map): Add vc-git-stash-pop + (bug#52158). + +2021-12-07 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + da23e607d3 Select the right buffer for event in context-menu function... + +2021-12-07 Po Lu <luangruo@yahoo.com> + + Cancel xwidget progress timer when buffer is killed + + * lisp/xwidget.el (xwidget-webkit-buffer-kill): New function. + (xwidget-webkit-mode): Add `xwidget-webkit-buffer-kill' to + `kill-buffer-hook'. (bug#52344) + +2021-12-06 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-06 Eric Abrahamsen <eric@ericabrahamsen.net> + + When registering Gnus message ids, guard against no registry + + * lisp/gnus/gnus-registry.el (gnus-registry-register-message-ids): + There are situations where this code is called without a full Gnus + startup (eg, debbugs). If the registry doesn't exist, just skip this + process. + +2021-12-06 Stefan Kangas <stefan@marxist.se> + + Silence byte-compiler in two tests + + * test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el: + * test/lisp/mail/mail-utils-tests.el + (mail-utils-tests-mail-rfc822-time-zone): Silence byte-compiler. + +2021-12-06 Stefan Kangas <stefan@marxist.se> + + Remove spurious space in byte-compiler warning + + * lisp/emacs-lisp/bytecomp.el + (byte-compile-docstring-length-warn): Remove spurious space in + byte-compiler warning. + * test/lisp/emacs-lisp/bytecomp-tests.el + ("warn-wide-docstring-defun.el"): Update test. + +2021-12-06 Stefan Kangas <stefan@marxist.se> + + Assume unfilled byte-compiler warnings in tests + + * test/lisp/emacs-lisp/bytecomp-tests.el + (bytecomp--define-warning-file-test): Remove workaround for filled + byte-compilation warnings. See Bug#52281. + +2021-12-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix previous shr-parse-style change + + * lisp/net/shr.el (shr-parse-style): Fix previous clean-up here + (which wasn't well thought through). + +2021-12-06 Tassilo Horn <tsdh@gnu.org> + + dired.texi: Document dired-create-destination-dirs-on-trailing-dirsep + + * doc/emacs/dired.texi (Operating on Files): Document new option + dired-create-destination-dirs-on-trailing-dirsep. + +2021-12-06 Eli Zaretskii <eliz@gnu.org> + + Revert "Avoid small parasitic button on mode line" + + This reverts commit c9e901f4a612646be4ce06e1619897edfb073bf0. + + Turns out without that "ghost" button min-width doesn't work + on the mode line at all... + +2021-12-06 Michael Albinus <michael.albinus@gmx.de> + + Tramp code cleanup + + * lisp/net/tramp.el (tramp-get-default-directory) + (tramp-get-buffer-string): New defsubsts. + (tramp-message, tramp-error-with-buffer) + (tramp-file-name-for-operation, tramp-command-completion-p) + (tramp-action-login, tramp-action-yesno, tramp-action-yn) + (tramp-action-terminal, tramp-action-confirm-message) + (tramp-wait-for-regexp, tramp-call-process) + (tramp-call-process-region, tramp-read-passwd): + * lisp/net/tramp-cmds.el (tramp-list-remote-buffers) + (tramp-reporter-dump-variable): + * lisp/net/tramp-gvfs.el (tramp-gvfs-monitor-process-filter): + * lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory) + (tramp-sh-handle-process-file, tramp-sh-handle-write-region) + (tramp-sh-gio-monitor-process-filter): + * lisp/net/tramp-smb.el (tramp-smb-action-set-acl): + * lisp/net/tramp-sudoedit.el + (tramp-sudoedit-handle-file-name-all-completions): + * test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case) + (tramp-test32-shell-command): Use them. + +2021-12-06 Eli Zaretskii <eliz@gnu.org> + + Fix mode-line display on TTY frames + + * lisp/bindings.el (mode-line-frame-control): Remove the leading + '-' before '%F' on TTY frames. It has no real purpose, and looks + ugly nowadays, since it's preceded by a blank, due to the new + min-width feature. + +2021-12-06 Eli Zaretskii <eliz@gnu.org> + + Avoid small parasitic button on mode line + + * lisp/bindings.el (mode-line-position): Remove stray space + character, which caused a "ghost" button on the mode line. + (Bug#52332) + +2021-12-06 Yuuki Harano <masm+github@masm11.me> + + * src/pgtkterm.c (x_set_parent_frame): Fix coding style + +2021-12-06 Yuuki Harano <masm+github@masm11.me> + + Fix SEGV crash by unref css provider too much + + I Got css provider from F, and was going to remove it from style + context. But between them, unhighlight was called when + gtk_container_remove was called, and the css provider was already + freed, so I can't use the css provider to remove it from style + context. + + As a fix, I call gtk_container_remove after remove it. + Also, I free a css provider set by unhighlight. + + * src/pgtkterm.c (x_set_parent_frame): + +2021-12-06 Stefan Monnier <monnier@iro.umontreal.ca> + + Merge remote-tracking branch 'origin/emacs-28' into trunk + +2021-12-06 Stefan Kangas <stefan@marxist.se> + + * etc/tutorials/TUTORIAL.sv: Adjust to latest change in TUTORIAL. + +2021-12-06 Daniel Fleischer <danflscr@gmail.com> + + Add package management to tutorial and startup screen + + * etc/tutorials/TUTORIAL: Add section about package installation. + * lisp/startup.el (fancy-startup-tail): Add button for + package-list-packages. + + This was discussed in: + https://lists.gnu.org/r/emacs-devel/2021-12/msg00079.html + +2021-12-06 Stefan Kangas <stefan@marxist.se> + + image.c: Remove some dead code + + * src/image.c (gui_put_x_image): Remove dead code, commented out since + 2004. + +2021-12-06 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-06 Paul Eggert <eggert@cs.ucla.edu> + + Update org-compat doc string + + * lisp/org/org-compat.el (file-attribute-modification-time): + Update doc string to match that of builtin Emacs. + +2021-12-06 Paul Eggert <eggert@cs.ucla.edu> + + Fix minor clock skew issues + + * lisp/midnight.el (clean-buffer-list): + * lisp/progmodes/vhdl-mode.el (vhdl-template-replace-header-keywords): + * lisp/net/rcirc.el (rcirc-connect): + Don’t assume that getting the current time twice in rapid + succession will yield the same date and time. + +2021-12-06 Paul Eggert <eggert@cs.ucla.edu> + + Avoid timestamp info loss in mh-alias-tstamp + + * lisp/mh-e/mh-alias.el (mh-alias-tstamp): + Don’t lose subsecond info when setting mh-alias-tstamp. + +2021-12-06 Paul Eggert <eggert@cs.ucla.edu> + + Simplify by using format-time-string + + * lisp/mail/sendmail.el (mail-do-fcc): + * lisp/net/tramp.el (tramp-debug-message): + Prefer format-time-string to doing time formatting by hand. + +2021-12-06 Paul Eggert <eggert@cs.ucla.edu> + + Simplify RFC 5322 time zone generation + + * lisp/mail/feedmail.el (feedmail-rfc822-time-zone) + (feedmail-rfc822-date, feedmail-default-message-id-generator): + * lisp/mail/mail-utils.el (mail-rfc822-time-zone, mail-rfc822-date): + * lisp/timezone.el (timezone-make-arpa-date): + Simplify by using format-time-string with %z. + + * lisp/mail/feedmail.el (feedmail-rfc822-time-zone): + * lisp/mail/mail-utils.el (mail-rfc822-time-zone): + Mark these should-have-been-internal functions obsolete. + +2021-12-06 Paul Eggert <eggert@cs.ucla.edu> + + Fix image load timekeeping bug + + * lisp/image.el (image-animate-timeout): Fix bug that caused the + local variable time-to-load-image to be practically zero, instead + of the time it actually took to load the image. I think + this bug was introduced in 2013-02-16T03:29:30Z!rgm@gnu.org. + +2021-12-06 Paul Eggert <eggert@cs.ucla.edu> + + Use time-convert in with-decoded-time-value + + * lisp/calendar/time-date.el (with-decoded-time-value): + Prefer time-convert to current-time on the off chance that code + will use this obsolete macro even after current-time returns pairs. + +2021-12-06 Paul Eggert <eggert@cs.ucla.edu> + + Simplify message-make-expires + + * lisp/gnus/message.el (message-make-expires): + Use time-add instead of doing it by hand. This also calculates the + expiration time more accurately than the old code did. + +2021-12-06 Paul Eggert <eggert@cs.ucla.edu> + + Simplify message-unique-id etc. + + * lisp/gnus/message.el (message-unique-id): + * lisp/net/sasl.el (sasl-unique-id-function): + Avoid unnecessary consing and reliance on internal timestamp + format by using (time-convert nil 'integer) which typically does + no consing, instead of using (current-time) and then ignoring + the subsecond parts of the generated list. + +2021-12-06 Paul Eggert <eggert@cs.ucla.edu> + + Prefer nil to (current-time) when either will do + + * lisp/emacs-lisp/timer.el (timer-event-handler, run-at-time): + * lisp/gnus/gnus-score.el (gnus-score-date): + * lisp/gnus/gnus-search.el (gnus-search-query-parse-date) + (gnus-search-imap-handle-date): + * lisp/gnus/gnus-sum.el (gnus-user-date) + (gnus-summary-create-article): + * lisp/image-dired.el (image-dired-create-thumb-1): + * lisp/image/gravatar.el (gravatar-retrieve) + (gravatar--prune-cache): + * lisp/net/dbus.el (dbus-monitor-handler): + * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-set-file-times): + * lisp/net/tramp-sh.el (tramp-sh-handle-set-file-times): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-set-file-times): + * test/lisp/autorevert-tests.el (auto-revert--wait-for-revert) + (auto-revert-tests--write-file, auto-revert-test--wait-for): + * test/lisp/net/tramp-tests.el (tramp--test-print-duration): + Prefer nil to (current-time) when either will do, as this avoids + some consing. Similarly, prefer omitting (current-time) arg + when this is equivalent. + +2021-12-06 Paul Eggert <eggert@cs.ucla.edu> + + Simplify cedet-utest-elapsed-time + + * test/manual/cedet/cedet-utests.el (cedet-utest-elapsed-time): + Copy newer (circa-2011) implementation from elp.el, so that the + code matches its documentation again. + +2021-12-06 Paul Eggert <eggert@cs.ucla.edu> + + Use time-equal-p to compare timestamps in tests + + * test/lisp/calendar/time-date-tests.el (test-days-to-time) + (test-time-since): Use time-equal-p to compare timestamps, + since the default form shouldn’t matter. + +2021-12-06 Paul Eggert <eggert@cs.ucla.edu> + + Add time-convert tests + + * test/src/timefns-tests.el (time-convert-forms): New test. + +2021-12-06 NightMachinary <rudiwillalwaysloveyou@gmail.com> + + Added dired-create-destination-dirs-on-trailing-dirsep + + * lisp/dired-aux.el + (dired-create-destination-dirs-on-trailing-dirsep): New customization + option. + (dired-do-create-files): Use it. + (dired-create-destination-dirs): Mention the new option in the + docstring. + +2021-12-06 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + e3427faf55 Fix typos and improve consistency in ERC manual + 0bf10d5082 * test/Makefile.in (check-declare): Add missing --batch. + 34f5656137 Document the subtleties of the 'cursor' text property + +2021-12-06 Po Lu <luangruo@yahoo.com> + + Fix child frame crash on pgtk + + * src/gtkutil.c (xg_check_special_colors): Use `FRAME_WIDGET' + on PGTK. + +2021-12-06 Lars Ingebrigtsen <larsi@gnus.org> + + Make the Git stash commands available in vc-dir Git buffers + + * lisp/vc/vc-dir.el (vc-dir): Call the backend-specific minor mode + if it exists. + * lisp/vc/vc-git.el (vc-dir-git-mode-map): New map. + (vc-dir-git-mode): New minor mode. + +2021-12-06 Po Lu <luangruo@yahoo.com> + + Fix coding style + + * src/pgtkfns.c (frame_geometry): + * src/pgtkterm.c (x_set_parent_frame): + (pgtk_text_icon): + (key_release_event): + (configure_event): + (map_event): + (window_state_event): + (delete_event): + (enter_notify_event): Fix coding style. + +2021-12-05 Lars Ingebrigtsen <larsi@gnus.org> + + Make gnus-check-backend-function mode `debug-on-signal' friendly + + * lisp/gnus/gnus.el (gnus-check-backend-function): Allow running + with `debug-on-signal'. + +2021-12-05 Stefan Monnier <monnier@iro.umontreal.ca> + + EIEIO: Remove redundant type info in help + + `C-h o` returned redundant info when used on EIEIO classes, listing + the same thing both for the type name and for the constructor name. + + * lisp/emacs-lisp/eieio.el (help-fns-describe-function-functions): + Remove special case for defclass constructors. + * lisp/emacs-lisp/eieio-opt.el (eieio-help-constructor): Declare it obsolete. + +2021-12-05 Stefan Kangas <stefan@marxist.se> + + image-dired: Use string-match-p in one case + + * lisp/image-dired.el (image-dired-get-thumbnail-image): Use + string-match-p. + +2021-12-05 Stefan Kangas <stefan@marxist.se> + + image-dired: Don't disable mouse dragging + + * lisp/image-dired.el (image-dired-thumbnail-mode-map): Don't + disable mouse dragging. (Bug#52201) + +2021-12-05 Po Lu <luangruo@yahoo.com> + + Fix jittering when precision scrolling over images + + * lisp/pixel-scroll.el + (pixel-scroll-precision-initial-velocity-factor): Default to + nil. + (pixel-scroll-precision-scroll-down-page): Always set window + start. + +2021-12-05 Justin Schell <justinmschell@gmail.com> (tiny change) + + vc-git--program-version to support Git for macOS version string + + `git version` on macOS returns e.g., "git version 2.30.1 (Apple + Git-130)" and `vc-git--program-version` currently returns "0" instead + of "2.30.1". + + * lisp/vc/vc-git.el (vc-git--program-version): Ignore text after + the version number when parsing git versions (bug#52172). + +2021-12-05 Lars Ingebrigtsen <larsi@gnus.org> + + Don't fill byte-compilation warnings in batch mode + + * lisp/emacs-lisp/warnings.el (display-warning): Don't break up + byte-compilation into several lines when in batch mode, because + that makes it difficult for some tools to parse them (bug#52281). + +2021-12-05 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-05 Lars Ingebrigtsen <larsi@gnus.org> + + Audit `string-match' usage in shr.el + + * lisp/net/shr.el (shr-descend): + (shr-insert): + (shr-expand-url): + (shr-image-from-data): + (shr-dom-print): + (shr-parse-style): + (shr-tag-object): + (shr-tag-img): + (shr-render-td-1): Prefer string-match-p and string-search over + string-match where possible. + +2021-12-05 dickmao <dick.r.chiang@gmail.com> + + Add workaround to compilation warning in gcc 10.x in image.c + + * src/image.c (webp_load): Work around a (wrong) compiler warning + in gcc 10.x (bug#52276). + +2021-12-05 Lars Ingebrigtsen <larsi@gnus.org> + + Update comment about `declare-function' + + * lisp/subr.el (declare-function): Fix comment -- + `byte-compile-declare-function' doesn't exist. + +2021-12-05 YugaEgo <yet@ego.team> + + * lisp/info.el (info-menu-star): Improve documentation + + * lisp/info.el (info-menu-star): Improve the doc string (bug#52315). + +2021-12-05 Lars Ingebrigtsen <larsi@gnus.org> + + Fix wording in eieio.texi (Generics) + + * doc/misc/eieio.texi (Generics): Fix wording in paragraph + (bug#52317). + +2021-12-05 Lars Ingebrigtsen <larsi@gnus.org> + + Fix regression introduced by previous context-menu-map change + + * lisp/mouse.el (context-menu-map): Make the context mode work + with flyspell again (bug#52237). + +2021-12-05 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "Clarify Creating Frames documentation" + + This reverts commit 5d7eb2979bc7eec01cff7e7908dbbd3edb38ea0c. + + The new documentation was incorrect. + +2021-12-05 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "Improve before-make-frame-hook and after-make-frame-functions docs" + + This reverts commit 7842a606b76dfabd1540da1c130728064e8f02ed. + + The new documentation was incorrect. + +2021-12-05 Lars Ingebrigtsen <larsi@gnus.org> + + Fix fancy-about-screen point placement + + * lisp/startup.el (fancy-about-screen): Make point placement more + resilient (bug#43636). + +2021-12-05 Stefan Kangas <stefan@marxist.se> + + Light copy-edits to recent additions to ERC manual + + * doc/misc/erc.texi (Introduction, Getting Started): Light copy-edits. + +2021-12-05 Stefan Kangas <stefan@marxist.se> + + Remove no-op calls to decode-char with 'ucs' arg + + * lisp/gnus/mm-util.el (mm-ucs-to-char): + * lisp/language/hanja-util.el (hangul-to-hanja-char): + * lisp/leim/quail/hangul.el (hangul3-input-method-internal) + (hangul390-input-method-internal): + * lisp/nxml/rng-cmpct.el (rng-c-process-escapes): + * lisp/nxml/xsd-regexp.el (xsdre-compile-single-char) + (xsdre-range-list-to-char-alternative): + * lisp/xml.el (xml-parse-string, xml--entity-replacement-text) + (xml-substitute-special): Remove calls to decode-char where first + argument is 'ucs'; that is now a no-op. Discussed in Bug#52263. + + * lisp/nxml/xmltok.el (xmltok-unicode-to-char): Make into obsolete + function alias for 'identity'. Update single caller. + +2021-12-05 Eric Abrahamsen <eric@ericabrahamsen.net> + + Use gnus-error to report mail-source failures + + * lisp/gnus/mail-source.el (mail-source-fetch): Instead of querying + the user on mail sources errors -- in effect asking "do you want to + continue, or halt the process?" -- log the error with `gnus-error', + severity 5. The query didn't provide any meaningful control; error + reporting is all that's needed. + (mail-source-ignore-errors): Obsolete this option; users can see the + error or not by configuring `gnus-verbose'. + * doc/misc/gnus.texi (Mail Source Customization): Remove mention of + the above option from the manual. + +2021-12-05 Yuuki Harano <masm+github@masm11.me> + + * src/frame.c (gui_set_border_width): Revert confused changes + +2021-12-05 Eli Zaretskii <eliz@gnu.org> + + Fix out-of-bounds access in xdisp.c + + * src/xdisp.c (produce_stretch_glyph): Avoid indexing it->stack + with a negative index. Reported by Po Lu <luangruo@yahoo.com>. + +2021-12-05 Po Lu <luangruo@yahoo.com> + + Interpolate large pixel scrolls + + * lisp/pixel-scroll.el + (pixel-scroll-precision-large-scroll-height): New user option. + (pixel-scroll-precision-interpolate): New function. + (pixel-scroll-precision): Interpolate scrolls under some + circumstances. + +2021-12-05 Stefan Kangas <stefan@marxist.se> + + Silence byte-compiler in generator-tests.el + + * test/lisp/emacs-lisp/generator-tests.el (cps-let*-shadow-empty) + (cps-let-shadow-empty, cps-let*-parallel): Silence byte-compiler. + +2021-12-05 Stefan Kangas <stefan@marxist.se> + + Silence warnings about testing obsolete functions and macros + + * test/lisp/emacs-lisp/cl-generic-tests.el: + * test/lisp/emacs-lisp/edebug-tests.el: + * test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el: + * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el: Silence + byte-compiler warnings about testing obsolete functions and macros. + +2021-12-05 Stefan Kangas <stefan@marxist.se> + + Remove hacks for broken `with-suppressed-warnings' + + * test/lisp/obsolete/cl-tests.el (labels-function-quoting): + * test/lisp/tar-mode-tests.el (tar-mode-test-tar-grind-file-mode): + Remove hack for broken `with-suppressed-warnings'. + +2021-12-05 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + c086358574 Update to Org 9.5.1-15-gdb4805 + fef3e60061 * lisp/emacs-lisp/edebug.el (edebug-eval-defun): Minor doc... + a1e30e4106 ; Fix most remaining AUTHORS warnings + f3e6a432c5 ; * doc/misc/efaq.texi (New in Emacs 28): Add more news. + 00236cc802 Fix the enumeration values returned by 'try_scrolling' + +2021-12-04 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-04 Lars Ingebrigtsen <larsi@gnus.org> + + Remove hack from seq-tests.el for broken `with-suppressed-warnings' + + * test/lisp/emacs-lisp/seq-tests.el: `with-suppressed-warnings' + now works better in erf-deftests, so remove hack that works around + it (bug#36568). + +2021-12-04 Lars Ingebrigtsen <larsi@gnus.org> + + Improve before-make-frame-hook and after-make-frame-functions docs + + * lisp/frame.el (before-make-frame-hook): + (after-make-frame-functions): Note when the functions are run. + +2021-12-04 Lars Ingebrigtsen <larsi@gnus.org> + + Clarify Creating Frames documentation + + * doc/lispref/frames.texi (Creating Frames): Remove misleading + explanation -- even if the hooks are set, they won't be run + (bug#38143). + +2021-12-04 Po Lu <luangruo@yahoo.com> + + Fix tty mouse wheel on window systems other than X + + * lisp/mwheel.el (mouse-wheel-down-alternate-event) + (mouse-wheel-up-alternate-event) + (mouse-wheel-left-alternate-event) + (mouse-wheel-right-alternate-event): Set appropriately for + non-X systems. + +2021-12-04 Lars Ingebrigtsen <larsi@gnus.org> + + Make help--describe-command more robust + + * lisp/help.el (help--describe-command): `help-function' buttons + are defined in help-mode.el, so it might not exist yet when + calling `documentation' directly (bug#52291). + +2021-12-04 Christer Enfors <christer.enfors@gmail.com> (tiny change) + + Add IRC introduction to the ERC manual + + * doc/misc/erc.texi (Getting Started): Mention libera.char (bug#52287). + (Introduction): Explain what IRC is. + +2021-12-04 Po Lu <luangruo@yahoo.com> + + Make pixel scrolling through images less jumpy + + * lisp/pixel-scroll.el + (pixel-scroll-precision-scroll-down-page): Improve detection of + situations where vscroll must directly be set. + +2021-12-04 Earl Hyatt <okamsn@protonmail.com> + + Update the Info documentation of Eshell's built-in commands + + * doc/misc/eshell.texi (Built-in commands): Add the remaining + built-in Eshell commands to the list of built-ins. Expand some of + the descriptions and mention user options affecting command + behavior. Sort these commands in alphabetical order (bug#52289). + +2021-12-04 Lars Ingebrigtsen <larsi@gnus.org> + + Make package-dir-info more resilient + + * lisp/emacs-lisp/package.el (package-dir-info): Check that the + file exists before using it (bug#41489). + +2021-12-04 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak fancy-about-text + + * lisp/startup.el (fancy-about-text): Mention that Emacs is an + editor, because people don't know that (bug#43636). + +2021-12-04 Lars Ingebrigtsen <larsi@gnus.org> + + Fill Emacs version on about screen + + * lisp/startup.el (fancy-about-text): Fill the Emacs version, + since it's too long these days. + +2021-12-04 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-04 Lars Ingebrigtsen <larsi@gnus.org> + + Further gnus-inews-insert-gcc fixes + + * lisp/gnus/gnus-msg.el (gnus-inews-insert-gcc): Use a single + comma to separate groups, since that's what the splitter expects + (bug#52274). + +2021-12-04 Lars Ingebrigtsen <larsi@gnus.org> + + Avoid having gud bug out if `C-x C-a' has been bound + + * lisp/progmodes/gdb-mi.el (gud-global-map): Use gud-global-map. + * lisp/progmodes/gud.el (gud-global-map): Define a map instead of + assuming that `C-x C-a' is undefined (bug#6035). + (gud-def): Use the map. + +2021-12-04 Eric Abrahamsen <eric@ericabrahamsen.net> + + Don't swallow gnus-search errors when creating nnselect groups + + * lisp/gnus/gnus-search.el (gnus-search-run-query): Modify + condition-case to re-signal any gnus-search related errors; the user + should see them. + (gnus-search-error): Define a new parent error for all gnus-search + errors. + +2021-12-04 Juri Linkov <juri@linkov.net> + + * lisp/isearch.el (isearch-delete-char): Reopen hidden overlays (bug#52248). + + (isearch-filter-visible): Move text-property-not-all higher + to not call isearch-range-invisible on inhibit-isearch text. + Remove min/max since arguments are always in the right order. + +2021-12-04 Lars Ingebrigtsen <larsi@gnus.org> + + Fix pixel-fill--fill-line infloop for certain unbreakable lines + + * lisp/textmodes/pixel-fill.el (pixel-fill--fill-line): Fix + infloops for certain line widths (bug#52271). + +2021-12-04 Lars Ingebrigtsen <larsi@gnus.org> + + Add a comma between groups in gnus-inews-insert-gcc + + * lisp/gnus/gnus-msg.el (gnus-inews-insert-gcc): Insert a comma + between group names to get more mail-like syntax (bug#52274). + +2021-12-04 Lars Ingebrigtsen <larsi@gnus.org> + + Improve bookmark-maybe-historicize-string doc string + + * lisp/bookmark.el (bookmark-maybe-historicize-string): Clarify + that this isn't about menus (but calls from bmenu) (bug#12504). + +2021-12-04 Michael Albinus <michael.albinus@gmx.de> + + Add ".crate" to Tramp archive file suffixes. + + * doc/misc/tramp.texi (Archive file names): + * lisp/net/tramp-archive.el (tramp-archive-suffixes): Add ".crate". + +2021-12-04 Stefan Monnier <monnier@iro.umontreal.ca> + + eieio-core.el: Allow assignment to cl-structs through `slot-value` + + * lisp/emacs-lisp/eieio-core.el (eieio--validate-slot-value): + Obey the `:read-only` property of the slot. + (eieio-oset): Allow use on cl-structs as well. + (eieio-read-only): New error. + + * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el (eieio-test--struct): + Make the last field read-only. + (eieio-test-defstruct-slot-value): Test that cl-struct slots can be + assigned via `slot-value`. + +2021-12-04 Paul Eggert <eggert@cs.ucla.edu> + + Fix (date-to-time "2021-12-04") + + This should complete the fix for Bug#52209. + * lisp/calendar/time-date.el (date-to-time): Apply + decoded-time-set-defaults only to the output of (parse-time-string + date), and only when the output has a year (to avoid confusion + when dates lack years). There is no point applying it after + timezone-make-date-arpa-standard since the latter fills in all the + blanks. And the former code mistakenly called encode-time on an + already-encoded time. This goes back to the code a couple of days + ago, except with changed behavior (to fix Bug#52209) only when + timezone-make-date-arpa-standard is not called. + * test/lisp/calendar/time-date-tests.el (test-date-to-time) + (test-days-between): New tests. + +2021-12-04 Michael Albinus <michael.albinus@gmx.de> + + Further changes on directory summary line in Tramp + + * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-system-info): + Do not assume 0 in case of missing information. + + * lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): + * lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory): + Revert previous change, it doesn't fly. + +2021-12-04 Stefan Kangas <stefan@marxist.se> + + Silence byte-compiler in some tests + + * test/lisp/dired-tests.el: + * test/lisp/emacs-lisp/cl-macs-tests.el: + * test/lisp/emacs-lisp/derived-tests.el: + * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el: + * test/lisp/emacs-lisp/generator-tests.el: + * test/lisp/emacs-lisp/lisp-tests.el: + * test/lisp/emacs-lisp/seq-tests.el (test-seq-let) + (test-seq-setq): + * test/lisp/emacs-lisp/subr-x-tests.el (subr-x-test-if-let*-false) + (subr-x-test-if-let*-and-laziness-is-preserved) + (subr-x-test-when-let*-false) + (subr-x-test-when-let*-and-laziness-is-preserved): + * test/lisp/emacs-lisp/timer-tests.el + (timer-tests-debug-timer-check): + * test/lisp/format-spec-tests.el (format-spec-do-flags-truncate) + (format-spec-do-flags-pad): + * test/lisp/ls-lisp-tests.el (ls-lisp-test-bug27762): + * test/lisp/obsolete/cl-tests.el (labels-function-quoting): + * test/lisp/progmodes/elisp-mode-tests.el: + * test/lisp/replace-tests.el (replace-regexp-bug45973): + * test/lisp/ses-tests.el: + * test/lisp/subr-tests.el: + * test/lisp/tar-mode-tests.el (tar-mode-test-tar-grind-file-mode): + * test/src/data-tests.el (data-tests--set-default-per-buffer): + * test/src/search-tests.el + (test-replace-match-modification-hooks): Silence byte-compiler. + +2021-12-04 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-04 Po Lu <luangruo@yahoo.com> + + Fix double buffering on pgtk + + * src/pgtkterm.c (pgtk_update_end): Stop flipping buffers here. + (pgtk_frame_up_to_date) + (pgtk_buffer_flipping_unblocked_hook): New function. + + (pgtk_create_terminal): Attach new hooks. + + (leave_notify_event): Clear mouse face. + +2021-12-04 Po Lu <luangruo@yahoo.com> + + Fix coding style of a recent change + + * src/pgtkfns.c (update_watched_scale_factor): Fix coding style. + +2021-12-04 Eli Zaretskii <eliz@gnu.org> + + Fix the MinGW build broken by recent changes in image.c + + * src/image.c (rsvg_handle_get_intrinsic_size_in_pixels) + [WINDOWSNT]: Fix prototype. (Bug#44655) + +2021-12-04 Alan Third <alan@idiocy.org> + + Make use of Trash on macOS (bug#21340) + + * src/nsfns.m (Fsystem_move_file_to_trash): New function. + +2021-12-04 Eli Zaretskii <eliz@gnu.org> + + Yet another place inside redisplay_window to prevent quitting + + * src/xdisp.c (handle_single_display_spec): Inhibit quitting + around the call to 'lookup_derived_face' (which can QUIT). + (Bug#44448) + +2021-12-04 Eli Zaretskii <eliz@gnu.org> + + Fix dependencies for files in the 'nt' subdirectory + + * Makefile.in ($(NTDIR)): If non-empty, depend on 'lib'. That's + because some files in nt/ include generated Gnulib headers. + +2021-12-04 Yuuki Harano <masm+github@masm11.me> + + Keep track of scale factor by atimer and recreate cairo_surface_t + + Otherwise texts become blurry when a frame moved from 1x monitor + to 2x monitor. I need GTK's such signal, but there isn't. Instead + I watch frame's monitor's scale factor periodically. We can see + blurriness for a short time, but it is gone soon. + + * src/pgtkfns.c (update_watched_scale_factor): New function to check + scale factor and recreate cairo_surface_t if changed. + * src/pgtkfns.c (Fx_create_frame): Initialize atimer. + (Fx_show_tip): Add an argument. + * src/pgtkterm.c (FRAME_CR_SURFACE_DESIRED_WIDTH): Move macros to pgtkterm.h + (x_free_frame_resources): Free atimer. + (size_allocate): Add an argument. + (pgtk_cr_update_surface_desired_size): Add an argument. Recreate if it + is true. + * src/pgtkterm.h (struct pgtk_output): New members. + (FRAME_CR_SURFACE_DESIRED_HEIGHT): Move macros from pgtkterm.c + +2021-12-04 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-04 Po Lu <luangruo@yahoo.com> + + Make precision pixel scrolling work in an hscrolled window + + * lisp/pixel-scroll.el + (pixel-scroll-precision-scroll-down-page) + (pixel-scroll-precision-scroll-up-page): Use beginning of visual + line as window start if hscrolled. + (pixel-scroll-precision): Don't delegate to mwheel-scroll if + window is hscrolled. + +2021-12-04 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 745a732ae4 ; Further author fixes in authors.el + bef17bca21 * src/dosfns.c (Fint86): Doc fix; don't use obsolete names. + bc55dc04af * doc/misc/erc.texi (Keystroke Summary): Fix doc for TAB. + ef4d216eb3 Remove reference to variable obsolete since 24.1 + 7282e492d5 * doc/misc/efaq.texi (New in Emacs 28): New node. + eafcccd38f ; FAQ: Normalize references to the NEWS.NN file + c006c490eb ; * doc/misc/efaq.texi (Latest version of Emacs): Update v... + 9fbc4fa0e7 Add Tramp version integrated in Emacs 28.1 + +2021-12-04 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 5d6f828799 Unbreak build after 9c222b9c1a7f91497a37567b4d7de3a511fff069. + +2021-12-04 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/minibuffer.el: Don't return a boundary outside its arg + + * lisp/minibuffer.el (completion-table-subvert): Fix out of string + start boundary for the odd case where `string` is shorter than `s1`. + +2021-12-03 Lars Ingebrigtsen <larsi@gnus.org> + + Make the error message in epa-display-error more helpful + + * lisp/epa.el (epa-display-error): Output a more helpful error + message when reading a keyring file (bug#12923). + +2021-12-03 Lars Ingebrigtsen <larsi@gnus.org> + + Fix keymap-lookup implementation + + * lisp/keymap.el (keymap-lookup): Make this actually work for + looking up keys. + +2021-12-03 Lars Ingebrigtsen <larsi@gnus.org> + + Fix highlighting of "Exit*" phrases in f90-mode + + * lisp/progmodes/f90.el (f90-font-lock-keywords-2): Don't + highlight phrases that start with "Exit" as an exit statement + (bug#14442). + +2021-12-03 Lars Ingebrigtsen <larsi@gnus.org> + + Make `mouse-1' restart the cua-rect rectangle + + * lisp/emulation/cua-rect.el (cua-mouse-set-rectangle-mark): + Restart the rectangle on mouse-1 (bug#51557). + +2021-12-03 Po Lu <luangruo@yahoo.com> + + Make last change work for deltas that are multiples of max-height + + * lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down-page) + (pixel-scroll-precision-scroll-up-page): Use `max-height' that + is slightly less than the text height of the window. + +2021-12-03 Po Lu <luangruo@yahoo.com> + + Make it work to pixel scroll by deltas larger than the window + + * lisp/pixel-scroll.el + (pixel-scroll-precision-scroll-down-page): + (pixel-scroll-precision-scroll-up-page): New functions. + + (pixel-scroll-precision-scroll-up) + (pixel-scroll-precision-scroll-down): Make it safe to scroll + by deltas larger than the current window. + +2021-12-03 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-03 Lars Ingebrigtsen <larsi@gnus.org> + + Ensure that MAIN_FIRST have finished compilation before doing the rest + + * lisp/Makefile.in (main-first): Ensure that we're done with the + main bits before starting on the rest. + (GREP_OPTIONS): Depend on main-first. + (MAIN_FIRST): Compile cconv.el before c-by.el (bug#8764). + +2021-12-03 Paul Eggert <eggert@cs.ucla.edu> + + Port to Tiny C on x86-64 + + This allows Emacs to build on Ubuntu 21.10 x86-64 with + ‘./configure --without-modules CC=tcc’. + * configure.ac (GC_SETJMP_WORKS): + Accept __x86_64__ as an alias for __amd64__. + * src/lisp.h (alignas): Provide a no-op substitute. + +2021-12-03 Eli Zaretskii <eliz@gnu.org> + + Revert "emacs-lisp-mode: Use error face for "/d" indicator" + + This reverts commit ddc875d9f75bdd1d5dda6a721489f43317b0f8b5. + + I disagree with the need to make it more prominent than the + warning face. The warning face is prominent enough. We + never decided to annoy people like that. + +2021-12-03 Eli Zaretskii <eliz@gnu.org> + + Add more dired-x tests + + * test/lisp/dired-x-tests.el (dired-x--string-to-number): Add more + tests with various thousands separators. + +2021-12-03 Stefan Kangas <stefan@marxist.se> + + Remove some more items obsolete since Emacs 23 + + * lisp/emacs-lisp/shadow.el (find-emacs-lisp-shadows): + * lisp/net/newst-backend.el (newsticker-cache-filename) + (newsticker--cache-save-version1, newsticker--cache-update) + (newsticker--cache-read-version1): + * lisp/obsolete/vc-arch.el (vc-arch-command): Remove items + obsolete since Emacs 23. + +2021-12-03 Stefan Kangas <stefan@marxist.se> + + Remove two functions obsolete since Emacs 23 + + * lisp/international/mule-cmds.el (unify-8859-on-encoding-mode) + (unify-8859-on-decoding-mode): Remove functions obsolete since + Emacs 23. + * lisp/nxml/xsd-regexp.el: Doc fix. + +2021-12-03 Paul Eggert <eggert@cs.ucla.edu> + + Prefer rsvg_handle_get_intrinsic_size_in_pixels + + Use rsvg_handle_get_intrinsic_size_in_pixels if available, + as this is simpler and better than what we were doing. + From a comment by by Alan Third (Bug#44655#56). + * src/image.c (init_svg_functions): Arrange for the new function. + (svg_load_image): Prefer the results of + rsvg_handle_get_intrinsic_size_in_pixels if available. + +2021-12-03 Paul Eggert <eggert@cs.ucla.edu> + + Improve overflow checking in svg_load_image + + * src/image.c: Include math.h, for lrint. + (scale_image_size, compute_image_size): Use ‘double’, not ‘int’ + for image size args, since librsvg uses ‘double’ for pixel counts. + (scale_image_size): Use ceil instead of rounding, to avoid + discarding fractional SVG pixels. Divisor and multiplier are now + double instead of int, for better portability to librsvg + functions with fractional pixel sizes. + (image_get_dimension, compute_image_size, svg_load_image): + Be more careful about ignoring, rejecting or clipping scale + factors or sizes that are out of integer range. + (compute_image_size): Don’t bother to calculate :max-width if + :width is specified, and likewise for :max-height and :height. + +2021-12-03 Paul Eggert <eggert@cs.ucla.edu> + + Simplify svg_load_image + + * src/image.c (svg_load_image): Simplify slightly. + +2021-12-03 Paul Eggert <eggert@cs.ucla.edu> + + More-robust svg_load_image fallback + + Suggested by Alan Third (Bug#44655#56). + * src/image.c (svg_load_image): Fall back on + rsvg_handle_get_geometry_for_layer if the + rsvg_handle_get_intrinsic_dimensions computations yielded unusable + viewbox width and height, instead of falling back only if + rsvg_handle_get_intrinsic_dimensions did not report image width + and height, or did not report a viewbox. + +2021-12-03 Eric Abrahamsen <eric@ericabrahamsen.net> + + Use gnus-message instead of plain message in gnus-search + + bug#51778 + + * lisp/gnus/gnus-search.el: All messaging should be done via + `gnus-message'. + +2021-12-03 Koen van Greevenbroek <koen_devel@posteo.net> (tiny change) + + Fix a compilation warning in pgtkterm.c + + * src/pgtkterm.c (set_fullscreen_state): Fix a compilation warning + (bug#52260). + +2021-12-03 Tor Kringeland <tor.a.s.kringeland@ntnu.no> (tiny change) + + Add a docstring to `iso-transl-set-language' + + * lisp/international/iso-transl.el: Document + `iso-transl-set-language' (bug#52261). + +2021-12-03 Lars Ingebrigtsen <larsi@gnus.org> + + Move 'C-x 8 .' to 'C-x 8 . .' + + * lisp/international/iso-transl.el (iso-transl-char-map): Move + 'C-x 8 .' to 'C-x 8 . .' and add ż. + +2021-12-03 Tor Kringeland <tor.a.s.kringeland@ntnu.no> (tiny change) + + Add support for some Polish characters with `C-x 8' + + * lisp/international/iso-transl.el: Add support for some Polish + characters (bug#52173). + +2021-12-03 Katsumi Yamaoka <yamaoka@jpl.org> + + Fix regression introduced by the previous date-to-time change + + * lisp/calendar/time-date.el (date-to-time): The function needs to + test if `parse-time-string' returns a valid data as the old + version did it with the help of `encode-time' (bug#52209). + +2021-12-03 Lars Ingebrigtsen <larsi@gnus.org> + + Clarify the run-at-time documentation about "integral multiple" + + * lisp/emacs-lisp/timer.el (run-at-time): + * doc/lispref/os.texi (Timers): Explain what "integral multiple" + really means. + +2021-12-03 Jim Porter <jporterbugs@gmail.com> + + Remove separators at the beginning and end of the context menu + + * lisp/mouse.el (context-menu-map): Remove beginning/end + separators (bug#52237). + +2021-12-03 Lars Ingebrigtsen <larsi@gnus.org> + + Improve how dired-mark-sexp interprets file sizes in non-C locales + + * lisp/dired-x.el (dired-x--string-to-number): Try to understand + localized numbers (with "." separators or the like) (bug#23373). + +2021-12-03 Stefan Kangas <stefan@marxist.se> + + emacs-lisp-mode: Use error face for "/d" indicator + + * lisp/progmodes/elisp-mode.el (emacs-lisp-mode): Use 'error' face for + the dynamic scoping ("/d") indicator in the mode line to make it stand + out more. + +2021-12-03 Stefan Kangas <stefan@marxist.se> + + Don't support obsolete sregex syntax in re-builder + + * lisp/emacs-lisp/re-builder.el (reb-lisp-mode) + (reb-lisp-syntax-p, reb-change-syntax, reb-cook-regexp): Remove final + remaining references to the long obsolete sregex syntax. + +2021-12-03 Lars Ingebrigtsen <larsi@gnus.org> + + Fix typo in NEWS about 'write-file' + +2021-12-03 Michael Albinus <michael.albinus@gmx.de> + + Fix dired--insert-disk-space + + * lisp/dired.el (dired--insert-disk-space): Handle case + `get-free-disk-space' returns nil. + +2021-12-03 Stefan Kangas <stefan@marxist.se> + + * lisp/image.el (image): Add :prefix and :link. + +2021-12-03 Stefan Kangas <stefan@marxist.se> + + image-mode: Advertise viewing as text less eagerly + + * lisp/image-mode.el (image-text-based-formats): New defcustom. + (image-mode--setup-mode): Don't show message to show image as text + unless it is a text based image format. Don't mention key binding + for editing as hex. (Bug#51961) + (image-mode-as-text): Don't mention key binding for editing as hex. + (image-mode-as-hex): Minor cleanup. + +2021-12-03 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/cl-macs.el (natnum): Fix typo + + * lisp/emacs-lisp/cl-macs.el (natnum): Define it as a type + +2021-12-03 Michael Albinus <michael.albinus@gmx.de> + + Adapt directory summary line handling in Tramp + + * lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): + * lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory): + Do not add or modify summary line when `dired-free-space' is bound. + +2021-12-03 Eli Zaretskii <eliz@gnu.org> + + Revert "Support display of non-ASCII characters with aligned columns" + + This reverts commit 608267c71e11da9c757c269a5e22e62ef04d0bfe. + +2021-12-03 Po Lu <luangruo@yahoo.com> + + Send scroll stop events to xwidgets when built with XInput 2 + + * src/xwidget.c (xwidget_scroll): Set xg_event->scroll.is_stop + when appropriate. + +2021-12-03 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-03 Po Lu <luangruo@yahoo.com> + + Improve velocity calculation in momentum scrolling + + * lisp/pixel-scroll.el + (pixel-scroll-precision-momentum-factor): Remove option. + (pixel-scroll-precision-initial-velocity-factor) + (pixel-scroll-precision-momentum-min-velocity): New user + options. + (pixel-scroll-accumulate-velocity): Clear velocity ring + if sign is different. + (pixel-scroll-calculate-velocity): Use current time. + (pixel-scroll-start-momentum): Use better algorithm. + +2021-12-03 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 9c222b9c1a Port to C compilers that lack size-0 arrays + fed35a8951 Port emacsclient to Solaris 10 + f35d6a9c73 * CONTRIBUTE: Improve commit message instructions + e0ee1d003a Work around IBM XL C compiler bug + 6b99b6eb8b * admin/make-tarball.txt: Various clarifications. + bbf4140091 * admin/diff-tar-files: Don't assume .tar.gz. + 0a50ad11db * lisp/tab-bar.el (tab-bar-close-other-tabs): Fix regression. + +2021-12-02 Po Lu <luangruo@yahoo.com> + + Generate touch-end events on pgtk + + * src/pgtkterm.c (scroll_event): Generate touch end events. + +2021-12-02 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-02 Po Lu <luangruo@yahoo.com> + + Make momentum scrolling much nicer + + * lisp/pixel-scroll.el (pixel-scroll-precision-momentum-tick): + Set default value to 0.01. + (pixel-scroll-precision-momentum-seconds): New user option. + (pixel-scroll-start-momentum): Improvements to momentum + algorithm. + +2021-12-02 Po Lu <luangruo@yahoo.com> + + * lisp/pixel-scroll.el (pixel-scroll-start-momentum): Fix algorithm. + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-02 Michael Albinus <michael.albinus@gmx.de> + + * etc/NEWS: Mention change in `insert-directory' derivates. Fix typos. + +2021-12-02 Eli Zaretskii <eliz@gnu.org> + + Support display of non-ASCII characters with aligned columns + + * src/xdisp.c (get_normal_width): New function. + (gui_produce_glyphs): Use 'get_normal_width' to widen on display + characters whose width is not an integral multiple of the + "standard" width. + (syms_of_xdisp) <align-columns-display>: New boolean variable. + +2021-12-02 Stefan Kangas <stefan@marxist.se> + + update_autogen: Improve error handling slightly + + * admin/update_autogen: Check exit status of cd. Use single + quoting for trap condition. + +2021-12-02 Stefan Kangas <stefan@marxist.se> + + update_autogen: Remove unused -H flag + + We now update ChangeLog files only when preparing a new release, so + this flag is never used. Keeping it risks confusing more than it + helps. + * admin/update_autogen: Remove the -H flag as it is no longer used. + +2021-12-02 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + f38dfa56a0 ; Update loaddefs files. + b3d4b18507 ; make change-history-commit + 334ff0232e * lisp/repeat.el: Use same logic for repeat-check-key and ... + 8230a47ecc * lisp/help.el (help--analyze-key): Prefer posn-set-point ... + + # Conflicts: + # lisp/ldefs-boot.el + +2021-12-02 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + aa1d7dd867 ; * etc/AUTHORS: Update. + 6294e60205 ; * admin/authors.el (authors-aliases): More fixes. + 40fc31ea28 ; * ChangeLog.3: Update. + 2be090d5d3 ; * ChangeLog.3: Minor fixes. + 9963b11bf7 ; * admin/authors.el (authors-aliases): Further updates. + 50b40e1d4f ; * lisp/org/ob-julia.el: Fix Author header for authors.el. + 84166ea2e6 CC Mode: Recognize "struct foo {" as introducing a type de... + +2021-12-02 Lars Ingebrigtsen <larsi@gnus.org> + + Fix characters.el build issue + + * lisp/international/characters.el + (glyphless--bidi-control-characters): Don't use names here, + because it's too early (bug#52240). + +2021-12-02 Lars Ingebrigtsen <larsi@gnus.org> + + Fix previous macroexp--warn-wrap change + + * lisp/emacs-lisp/macroexp.el (macroexp--warn-wrap): Don't call + byte-compile-warning-enabled-p with zero parameters. + +2021-12-02 Filipp Gunbin <fgunbin@fastmail.fm> + + * lisp/gnus/gnus-art.el (gnus--variable-pitch-p): Don't error out if face nil + +2021-12-02 Lars Ingebrigtsen <larsi@gnus.org> + + Make `C-c C-w' copy the executable bits to the new file + + * lisp/files.el (write-file): When visiting an executable file, + make the new file executable, too (bug#18915). + +2021-12-02 Lars Ingebrigtsen <larsi@gnus.org> + + Add a new variable 'process-error-pause-time' + + * doc/lispref/processes.texi (Asynchronous Processes): Document it. + * lisp/cus-start.el (standard): Customize. + + * src/process.c (read_process_output_error_handler) + (exec_sentinel_error_handler): Use it. + (syms_of_process): New variable process-error-pause-time (bug#19457). + +2021-12-02 Po Lu <luangruo@yahoo.com> + + Improve momentum scrolling algorithm + + * lisp/pixel-scroll.el (pixel-scroll-precision-momentum-tick): + (pixel-scroll-precision-momentum-factor): New user options. + + (pixel-scroll-kinetic-state, pixel-scroll-accumulate-velocity): + Set scroll momentum ring size to 10. + + (pixel-scroll-start-momentum): Improve algorithm. + +2021-12-02 Eli Zaretskii <eliz@gnu.org> + + Fix display of free disk space in Dired + + * lisp/dired.el (dired--insert-disk-space): Fix 'first' display on + MS-Windows. + (dired-free-space): Clarify the meaning of 'first'. + +2021-12-02 Eli Zaretskii <eliz@gnu.org> + + Fix recent changes related to 'glyphless-display-mode' + + * lisp/textmodes/glyphless-mode.el (glyphless-mode-types): Fix + spelling of "bidirectional". + * lisp/international/characters.el (char-acronym-table): Fix + acronyms for LRI and RLI: use their accepted shorthands. + (glyphless-char-display-control): Fix spelling of doc string. + + * doc/lispref/display.texi (Glyphless Chars): Fix spelling and add + a cross-reference. + +2021-12-02 Po Lu <luangruo@yahoo.com> + + Get rid of duplicate pgtk function + + * src/pgtkfns.c (Fpgtk_popup_font_panel): Remove function. + (syms_of_pgtkfns): Get rid of removed subr. + +2021-12-02 Po Lu <luangruo@yahoo.com> + + Documentation fixes for pgtk port + + * doc/lispref/display.texi (Defining Faces): + * doc/lispref/frames.texi (Multiple Terminals): Add references + to the `pgtk' terminal type. + +2021-12-02 Po Lu <luangruo@yahoo.com> + + Fix `menu-set-font' on pgtk + + * src/pgtkfns.c (Fx_select_font): New function. + (syms_of_pgtkfns): Define new subr. + +2021-12-02 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-02 Lars Ingebrigtsen <larsi@gnus.org> + + Make dired-virtual doc string less confusing + + * lisp/dired-x.el (dired-virtual): Make the doc string less + confusing (bug#20992). + +2021-12-02 Lars Ingebrigtsen <larsi@gnus.org> + + Add `cl-constantly' function + + * lisp/emacs-lisp/cl-lib.el (cl-constantly): Add Common Lisp + function missing (bug#21584). + +2021-12-02 Jim Porter <jporterbugs@gmail.com> + + Ensure there are no duplicate separators when creating a context menu + + Previously, if there were three or more consecutive menu separators, + not all of them would be removed. + + * lisp/mouse.el (context-menu-map): Ensure no duplicate separators + (bug#52237). + +2021-12-02 Daniel Fleischer <danflscr@gmail.com> + + browse-url-button-regexp: Recognize gemini: links + + Gemini is a relatively new text-based web protocol, similar to + gopher. There's the "elpher" package to browse gopher and gemini + pages. Adding it to the regexp will make Emacs be aware of gemini links, + e.g. in ERC. + + * lisp/net/browse-url.el (browse-url-button-regexp): Add support + for the gemini: URL type. + +2021-12-02 Michael Levine <melevine45@gmail.com> + + Fix usage of deprecated syntax in some cedet tests + + * test/lisp/cedet/srecode/fields-tests.el + (srecode-field-utest-impl): Fix deprecated syntax. + +2021-12-02 Lars Ingebrigtsen <larsi@gnus.org> + + Add a bidi-control target for `glyphless-char-display-control' + + * doc/lispref/display.texi (Glyphless Chars): Document bidi-control. + + * lisp/international/characters.el (char-acronym-table): Add the + ISOLATE characters. + (update-glyphless-char-display): Implement bidi-control, and mark + all Cf characters we don't know about as UNK. + (glyphless--bidi-control-characters): New variable. + (glyphless-char-display-control): Add a new type -- bidi-control. + + * lisp/textmodes/glyphless-mode.el (glyphless-mode-types): Add a + new type -- bidi-control. + +2021-12-01 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/cedet/semantic/bovine/c.el (semantic-tag-protection): Silence warning + + We used to get + + cedet/semantic/bovine/c.el:1462:25: Warning: value returned from + (string= s "static") is unused + + * lisp/cedet/semantic/bovine/c.el (semantic-tag-protection): Merge two + `when` into an `if` and set `prot` instead of throwing away a result. + Use `pcase` while we're at it. + +2021-12-01 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/macroexp.el: Improve last change + + Don't burp when `byte-compile-warning-enabled-p` is not yet defined. + And use the call that we had already instead of adding a new one. + + (macroexp--warn-wrap): Allow `category` + to be a list to pass to `byte-compile-warning-enabled-p`. + (macroexp-macroexpand): Simplify accordingly. + +2021-12-01 Po Lu <luangruo@yahoo.com> + + Add some primitive momentum-based precision scrolling + + The algorithm used to scroll the display kinetically is very + simple and needs improvement. Someone should work on that + eventually. + + * lisp/pixel-scroll.el (pixel-scroll-precision-use-momentum): + New user option. + (pixel-scroll-precision-mode-map): Add + `pixel-scroll-start-momentum'. + (pixel-scroll-kinetic-state): + (pixel-scroll-accumulate-velocity): + (pixel-scroll-calculate-velocity): New functions. + (pixel-scroll-start-momentum): New command. + + * src/xterm.c (handle_one_xevent): Fix touch-end event + generation. + +2021-12-01 Po Lu <luangruo@yahoo.com> + + Add `touch-end' event type + + * etc/NEWS: + * doc/lispref/commands.texi (Misc Events): Document new + `touch-end' event type. + + * lisp/bindings.el: Ignore touch-end events by default. + + * src/keyboard.c (make_lispy_event): Add support for + TOUCH_END_EVENT events. + (syms_of_keyboard): New symbol `touch-end'. + + * src/termhooks.h (enum event_kind): New member + `TOUCH_END_EVENT'. + + * src/xterm.c (handle_one_xevent): Send touch-end events when + appropriate. + +2021-12-01 Po Lu <luangruo@yahoo.com> + + Fix precision scrolling when there is a scroll margin + + * lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down) + (pixel-scroll-precision-scroll-up): Take scroll margin into + account. + +2021-12-01 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-01 Po Lu <luangruo@yahoo.com> + + Get rid of vmotion loop in `pixel-scroll-precision-scroll-up' + + * lisp/pixel-scroll.el (pixel-scroll-precision-scroll-up): Use + posn-at-x-y for cursor motion. + +2021-12-01 Lars Ingebrigtsen <larsi@gnus.org> + + Change how Dired displays available space + + * doc/emacs/dired.texi (Misc Dired Features): Document it (bug#23812). + * lisp/dired.el (dired-free-space): New user option. + (dired-insert-directory): Use it from here. + (dired--insert-disk-space): New function that uses the user option. + + * lisp/files.el (insert-directory): Don't transform "total" here. + * lisp/ls-lisp.el (ls-lisp--insert-directory): Or here. Instead + just leave the "total <num>" bit alone, and let Dired transform it. + + * test/lisp/files-tests.el (files-tests): Move "available" tests + to dired-tests. + * test/lisp/dired-tests.el (data-dir): Moved here. + +2021-12-01 Lars Ingebrigtsen <larsi@gnus.org> + + Fix "SEE ALSO" buttons in some man pages + + * lisp/man.el (Man-highlight-references0): Don't include "and" in + the links (bug#52229). + +2021-12-01 Andrea Corallo <akrl@sdf.org> + + Make use of `comp-cstr-shallow-copy' + + * lisp/emacs-lisp/comp.el (comp-mvar-propagate): Remove. + (comp-fwprop-call, comp-fwprop-insn): Use `comp-cstr-shallow-copy'. + + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-set-cmp-range) + (comp-cstr-union-1-no-mem, comp-cstr-union-1) + (comp-cstr-intersection-no-mem, comp-cstr-intersection) + (comp-cstr-negation): Use `comp-cstr-shallow-copy'. + +2021-12-01 Andrea Corallo <akrl@sdf.org> + + * Redefine `comp-cstr-shallow-copy' + + * lisp/emacs-lisp/comp-cstr.el (comp-cstr): Don't synthesize copier + function. + (comp-cstr-shallow-copy): New function. + (comp-cstr-=): Use `copy-sequence'. + +2021-12-01 Andrea Corallo <akrl@sdf.org> + + * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Decl struct predicates as pure + +2021-12-01 Alan Mackenzie <acm@muc.de> + + Several amendments to scratch/correct-warning-pos. + + The position return by read-positioning-symbols is now the position in the + buffer, rather than the offset from the start of a form, enabling warning + positions in other parts of the buffer to be output. + + * src/lisp.h (lisp_h_EQ): Add XLI casts so that it compiles cleanly. + + * src/data.c (Fremove_pos_from_symbol): New DEFUN. + + * src/lread.c (readchar_count): renamed to readchar_offset. + (read_internal_start) Initialize readchar_offset to the buffer's point when + STREAM is a buffer. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-warning-prefix): Amend to use + OFFSET as a buffer position, not an offset from the start of a form. + (byte-compile-warn): Remove symbol positions from any shape of ARGS, not just + a symbol with position. + + * lisp/emacs-lisp/cconv.el (cconv-convert): In the :unused case, + position the new IGNORE symbol with the VAR it has replaced. + + * lisp/emacs-lisp/macroexp.el (macroexp--warn-wrap, macroexp-warn-and-return): + Add an extra position parameter to each. + + * lisp/emacs-lisp/bindat.el (bindat-type), lisp/emacs-lisp/byte-run.el + (defmacro, defun), lisp/emacs-lisp/cconv.el (cconv--convert-func-body) + (cconv-convert), lisp/emacs-lisp/cl-generic.el (cl-defmethod), + lisp/emacs-lisp/cl-macs.el (cl-symbol-macrolet, cl-defstruct), + lisp/emacs-lisp/easy-mmode.el (define-minor-mode), + lisp/emacs-lisp/eieio-core.el (eieio-oref, eieio-oref-default) + (eieio-oset-default), lisp/emacs-lisp/eieio.el (defclass), + lisp/emacs-lisp/gv.el (gv-ref), lisp/emacs-lisp/macroexp.el + (macroexp-macroexpand, macroexp--unfold-lambda, macroexp--expand-all), + lisp/emacs-lisp/pcase.el (pcase-compile-patterns, pcase--u1): Add an extra + position argument to each call of macroexp-warn-and-return. + +2021-12-01 Lars Ingebrigtsen <larsi@gnus.org> + + Make `C-x C-d' require either an existing directory or a wildcard + + * lisp/files.el (list-directory): Require either an existing + directory or a wildcard (bug#25807). + +2021-12-01 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/cconv.el (cconv--lifted-arg): Simplify + +2021-12-01 Lars Ingebrigtsen <larsi@gnus.org> + + Fix table-fixed-width-mode when typing fast + + * lisp/textmodes/table.el (table-with-cache-buffer): Use the value + of table-fixed-width-mode in the correct buffer (bug#26701). + +2021-12-01 Eli Zaretskii <eliz@gnu.org> + + Mention 'glyphless-display-mode' in conjunction with bidi display + + * doc/emacs/mule.texi (Bidirectional Editing): Mention + 'glyphless-display-mode'. (Bug#27544) + +2021-12-01 Lars Ingebrigtsen <larsi@gnus.org> + + Fix fencepost error in pixel-fill--fill-line + + * lisp/textmodes/pixel-fill.el (pixel-fill--fill-line): Don't add + a newline (and continuation) if we're at the end of the line. + +2021-12-01 Robert Pluim <rpluim@gmail.com> + + characters.el: remove repetition in glyphless-char-display-control + + * lisp/international/characters.el (glyphless-char-display-method): + New custom widget for the different options for displaying glyphless + characters. + (glyphless-char-display-control): Use 'glyphless-char-display-method'. + +2021-12-01 Lars Ingebrigtsen <larsi@gnus.org> + + Add new face `variable-pitch-text' + + * doc/emacs/display.texi (Standard Faces): Mention in. + + * lisp/faces.el (variable-pitch-text): New face. + + * lisp/gnus/gnus-art.el (gnus-header): Use it. + + * lisp/net/shr.el (shr-text): Use it. + +2021-12-01 Mattias Engdegård <mattiase@acm.org> + + Fix closure-conversion of shadowed captured lambda-lifted vars + + Lambda-lifted variables (ones passed explicitly to lambda-lifted + functions) that are also captured in an outer closure and shadowed + were renamed incorrectly (bug#51982). + + Reported by Paul Pogonyshev. + + * lisp/emacs-lisp/cconv.el (cconv--lifted-arg): New. + (cconv-convert): Provide correct definiens for the closed-over + variable. + * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases): + * test/lisp/emacs-lisp/cconv-tests.el (cconv-tests--intern-all) + (cconv-closure-convert-remap-var): Add tests. + +2021-12-01 Lars Ingebrigtsen <larsi@gnus.org> + + Add a new minor mode `glyphless-display-mode' + + * doc/emacs/display.texi (Text Display): Mention it. + + * doc/lispref/display.texi (Glyphless Chars): Document it. + * lisp/textmodes/glyphless-mode.el: New minor mode (bug#27544). + +2021-12-01 Lars Ingebrigtsen <larsi@gnus.org> + + Fix update-glyphless-char-display variable setting + + * lisp/international/characters.el + (update-glyphless-char-display): Only set the variable if given. + +2021-12-01 Lars Ingebrigtsen <larsi@gnus.org> + + Make pixel-fill-region handle space regions better + + * lisp/textmodes/pixel-fill.el (pixel-fill-region): Preserve the + face on the replacement spaces. + +2021-12-01 Po Lu <luangruo@yahoo.com> + + Fix precision pixel scrolling for a recent change + + * lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): Use + `mwheel-coalesce-scroll-events' instead. + +2021-12-01 Po Lu <luangruo@yahoo.com> + + Stop relying on `x_coalesce_scroll_events' in pgtk code + + * src/pgtkterm.c (scroll_event): Use + `mwheel_coalesce_scroll_events'. + (x_coalesce_scroll_events): Remove variable. + +2021-12-01 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-01 Lars Ingebrigtsen <larsi@gnus.org> + + Enable gnus-treat-fold-headers by default + + * lisp/gnus/gnus-art.el (gnus-treat-fold-headers): Change default + to `head'. + +2021-12-01 Lars Ingebrigtsen <larsi@gnus.org> + + Use proportional fonts in the Gnus headers by default + + * lisp/gnus/gnus-art.el (gnus-header): Inherit from `variable-pitch'. + (gnus--variable-pitch-p): New helper function. + (gnus-article-treat-fold-headers): Fill using pixel filling. + +2021-12-01 Lars Ingebrigtsen <larsi@gnus.org> + + Preserve newlines at the end of pixel-fill-region + + * lisp/textmodes/pixel-fill.el (pixel-fill-region): Preserve + newlines at the end. + +2021-12-01 Eli Zaretskii <eliz@gnu.org> + + Support precision mouse scrolling on MS-Windows + + * src/w32fns.c (w32_wnd_proc): Pass the WM_SETTINGCHANGE message + to the Lisp thread. + * src/w32term.c (w32_construct_mouse_wheel): Support mice with + precision scrolling wheel. + (w32_get_mouse_wheel_vertical_delta): New function. + (w32_read_socket): When the WM_SETTINGCHANGE is received, call + 'w32_get_mouse_wheel_vertical_delta'. + (w32_initialize): Call 'w32_get_mouse_wheel_vertical_delta' at + startup. + * src/nsterm.m (syms_of_nsterm): + * src/haikuterm.c (syms_of_haikuterm): + * src/xterm.c (syms_of_xterm): Remove window-system specific + variables for coalescing mwheel events. + * src/keyboard.c (syms_of_keyboard) + <mwheel-coalesce-scroll-events>: New variable, to replace the + above platform-specific ones. + + * doc/lispref/commands.texi (Misc Events): Improve wording of the + description of mouse-wheel events. + +2021-12-01 Stefan Kangas <stefan@marxist.se> + + update_autogen: Remove deprecated -I flag + + * admin/update_autogen (info_dir): Remove deprecated -I flag; it is no + longer used since info/dir is now generated at install time if needed, + and is not in the repository any more. + +2021-12-01 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-12-01 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + e632b83a28 Update authors.el for Emacs 28 + e9fdb11903 ; * ChangeLog.3: Some additional fixes. + 8fa4749df1 ; * ChangeLog.3: Filename fixes. + ea5a90b4f4 * lisp/repeat.el: Fix long-standing problem when a random ... + ef4954b69c * lisp/repeat.el (repeat-keep-prefix): Change default to nil. + 6d5886e780 * test/lisp/repeat-tests.el (repeat-tests-call-b): Test fo... + 9e16c6a96d ; * src/comp.c (syms_of_comp) <comp-no-native-file-h>: Doc... + 9aa8fd6e62 * src/callint.c (Fcall_interactively): Fix inhibit_mouse_e... + 70c229b1fc Fix regression in gdb-frame-handler + cd9dd26d24 Format and index concept 'predicate' in ELisp Intro + ab291656d0 ; * ChangeLog.3: Fix typos. + 354f6c5609 ; * ChangeLog.3: Formatting fixes. + 6192525a96 ; make change-history-commit + +2021-12-01 Stefan Kangas <stefan@marxist.se> + + Update SKK-JISYO.L from upstream + + * leim/SKK-DIC/SKK-JISYO.L: Update from + https://raw.githubusercontent.com/skk-dev/dict/master/SKK-JISYO.L + +2021-12-01 Stefan Kangas <stefan@marxist.se> + + Update publicsuffix.txt from upstream + + * etc/publicsuffix.txt: Update from + https://publicsuffix.org/list/public_suffix_list.dat + dated 2021-11-26 23:07:15 UTC. + +2021-11-30 Jim Porter <jporterbugs@gmail.com> + + Suppress emacsclient message that daemon should have started if --quiet + + * lib-src/emacsclient.c (start_daemon_and_retry_set_socket): Don't + output "daemon should have started" message if --quiet (bug#52214). + +2021-11-30 Bob Rogers <rogers-emacs@rgrjr.homedns.org> + + Make date-to-time work with date-only date strings + + * lisp/calendar/time-date.el (date-to-time): Try harder to parse + dates with no times (bug#52209). + +2021-11-30 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerate ldefs-boot.el + +2021-11-30 Lars Ingebrigtsen <larsi@gnus.org> + + Autoload byte-compile-warning-enabled-p + + * lisp/emacs-lisp/bytecomp.el (byte-compile-warning-enabled-p): + Autoloads (for easier use in macroexp etc). + +2021-11-30 Lars Ingebrigtsen <larsi@gnus.org> + + Add an ldefs-boot.el target to the Makefile + + * lisp/Makefile.in (ldefs-boot.el): Add a target to regenerate the + ldefs-boot.el file. + +2021-11-30 Lars Ingebrigtsen <larsi@gnus.org> + + Make "make force-autoloads" produce the correct result + + * lisp/emacs-lisp/autoload.el (cl-lib): We need the cl-macs at + runtime to expand cl-defmacros to find declare indent forms. + +2021-11-30 Lars Ingebrigtsen <larsi@gnus.org> + + Don't include the other loaddef files in the no-autoloads section + + * lisp/emacs-lisp/autoload.el (make-directory-autoloads): Don't + include the other loaddef files in the no-autoloads section. + +2021-11-30 Po Lu <luangruo@yahoo.com> + + Avoid unnecessary call when pixel scrolling + + * lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down): + Avoid unnecessary call to `posn-at-point' + +2021-11-30 Po Lu <luangruo@yahoo.com> + + Make pixel scrolling faster + + * lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down): Get + rid of big motion loop. + (pixel-scroll-precision-scroll-up): Stop subtracting height of + window lines. + +2021-11-30 Po Lu <luangruo@yahoo.com> + + Synchronize pgtk tab bar code with xterm + + * src/pgtkterm.c (x_draw_image_relief): + (button_event): Synchronize code with xterm. (Bug#50779) + +2021-11-30 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-11-30 Andrea Corallo <akrl@sdf.org> + + * lisp/loadup.el (paren): Preload it (again). + +2021-11-30 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of pixel-fill + + * doc/lispref/text.texi (Filling): Describe the arguments of + 'pixel-fill-region'. Add index entry. + + * lisp/textmodes/pixel-fill.el (pixel-fill-region): Doc fix. + +2021-11-30 Lars Ingebrigtsen <larsi@gnus.org> + + Use pixel-fill-width in shr.el + + * lisp/net/shr.el (shr--window-width): Factor out into own function. + (shr-insert-document): Use it. + (shr-fill-text): Ditto. + +2021-11-30 Lars Ingebrigtsen <larsi@gnus.org> + + Document pixel-fill-region + + * doc/lispref/text.texi (Filling): Document pixel-fill-region. + + * lisp/textmodes/pixel-fill.el (pixel-fill-width): Add new helper + function. + +2021-11-30 Andrea Corallo <akrl@sdf.org> + + Revert "Preload paren.el" + + Reverting as the previous commit make this fix not anymore necessary. + + This reverts commit 340e527bed83ff0382446132c871088ad61d1745. + +2021-11-30 Andrea Corallo <akrl@sdf.org> + + Improve native compiler startup circular dependency prevention mechanism + + * src/comp.c (maybe_defer_native_compilation): Update to accumulate + delayed objects in `comp--delayed-sources'. + (syms_of_comp): Add `comp--delayed-sources' and `comp--loadable' + vars. + + * lisp/startup.el (startup--honor-delayed-native-compilations): New + function. + (normal-top-level): Call it. + +2021-11-30 Lars Ingebrigtsen <larsi@gnus.org> + + Allow storing buffer names in registers + + * doc/emacs/regs.texi (File and Buffer Registers): Rename and add + doc for `buffer' version. + * lisp/register.el (register-val-jump-to, register-val-describe): + Add support for (buffer . ...) registers (bug#33033). + +2021-11-30 Mattias Engdegård <mattiase@acm.org> + + Generalize CPS-conversion let optimization + + * lisp/emacs-lisp/generator.el (cps--transform-1): + Eliminate a temporary for the last of any `let` form, not just for + single-binding ones. Suggested by Stefan Monnier. + +2021-11-30 Lars Ingebrigtsen <larsi@gnus.org> + + Allow inhibiting warnings about obsolete macros again + + * lisp/emacs-lisp/macroexp.el (macroexp-macroexpand): Inhibit + warning if requested (bug#50984). + +2021-11-30 Po Lu <luangruo@yahoo.com> + + * src/nsterm.m (Vns_scroll_event_delta_factor): Fix doc string. + +2021-11-30 Po Lu <luangruo@yahoo.com> + + Fix pixel scrolling again + + * lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down): Fix + confusion about absolutivity of `window-edges'. + +2021-11-30 Po Lu <luangruo@yahoo.com> + + Fix 1-off errors in pixel scrolling code + + * lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down): Fix + one-off errors. + +2021-11-30 Po Lu <luangruo@yahoo.com> + + Improve upwards pixel scrolling for large images + + This fixes most of the problem, but with a large image the + vscroll can sometimes jump about, which has to be fixed. + + * lisp/pixel-scroll.el (pixel-scroll-precision-up): Handle + vscrolling large images in the first unseen line. + +2021-11-30 Mattias Engdegård <mattiase@acm.org> + + Better CPS conversion of multi-binding `let` + + * lisp/emacs-lisp/generator.el (cps--transform-1): + Don't translate single-binding `let` into `let*` with an extra + temporary variable; it just adds two more useless states. + +2021-11-30 Po Lu <luangruo@yahoo.com> + + Calculate pixel deltas correctly + + * src/pgtkterm.c (scroll_event): Fix scroll delta + factor. (bug#52195) + +2021-11-30 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + + * lisp/pixel-scroll.el (pixel-scroll-precision): Handle zero delta. + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-11-30 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 30553d889d Merge branch 'emacs-28' of git.savannah.gnu.org:/srv/git/e... + ecf3bf66ba Remove problematic characters from modus-themes.org (bug#5... + de9d27f679 Avoid undefined behavior when copying part of structure + + # Conflicts: + # doc/misc/modus-themes.org + +2021-11-30 Po Lu <luangruo@yahoo.com> + + Fix annoying bell rings when pixel scrolling to buffer limits + + * lisp/pixel-scroll.el (pixel-scroll-precision): Don't ding at + buffer limits. + +2021-11-30 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-11-30 Po Lu <luangruo@yahoo.com> + + Enable shallow menu bar updates on PGTK + + * src/gtkutil.c (menu_bar_button_pressed_cb): New function. + (create_menus): Connect button press event signal. + + * src/pgtkmenu.c (set_frame_menubar): Allow shallow updates. + +2021-11-30 Po Lu <luangruo@yahoo.com> + + Add `ns-scroll-event-delta-factor' + + * src/nsterm.m (- mouseDown): Take delta factor into account. + (Vns_scroll_event_delta_factor): New variable. + + * lisp/cus-start.el: Add option. + +2021-11-29 Po Lu <luangruo@yahoo.com> + + Allow non-float values in x-scroll-event-delta-factor + + * src/xterm.c (handle_one_xevent): Use XFLOATINT instead of + XFLOAT_DATA. + +2021-11-29 Po Lu <luangruo@yahoo.com> + + Make interrupt input optionally work on PGTK + + * src/pgtkterm.c (pgtk_delete_terminal): Close display fd if it + exists. + (pgtk_term_init): Set up interrupt handling for display fd if + available. + * src/pgtkterm.h (struct pgtk_display_info): Add `connection' + field. + +2021-11-29 Po Lu <luangruo@yahoo.com> + + Stop setting mouse face GC manually, as it is no longer required + + * src/pgtkterm.c (x_set_mouse_face_gc): Remove obsolete code. + +2021-11-29 Lars Ingebrigtsen <larsi@gnus.org> + + Add new package pixel-fill.el + + * lisp/net/shr.el (shr-char-breakable-p, shr-char-nospace-p) + (shr-char-kinsoku-bol-p, shr-char-kinsoku-eol-p) + (shr-find-fill-point): Moved to pixel-fill.el and renamed. + (shr-pixel-region): Made obsolete. + (shr-fill-line): Use pixel-fill-region. + + * lisp/textmodes/pixel-fill.el: New package. + +2021-11-29 Po Lu <luangruo@yahoo.com> + + Add missing function declarations to pgtk-win.el + + * lisp/term/pgtk-win.el: Add missing IM context related + declarations. + +2021-11-29 Po Lu <luangruo@yahoo.com> + + Enable pixel-precision scrolling on pgtk port + + * src/pgtkterm.c (scroll_event): Generate enhanced wheel + events. + (x_coalesce_scroll_events): New variable. + +2021-11-29 Po Lu <luangruo@yahoo.com> + + Get rid of pgtk_select and use xg_select instead + + * src/pgtkmenu.c (pgtk_menu_wait_for_event): Get rid + of pgtk_select. + * src/pgtkterm.h (pgtk_select): + * src/pgtkterm.c (pgtk_select): Delete function. + * src/process.c (wait_reading_process_output): Stop + using pgtk_select. + +2021-11-29 Po Lu <luangruo@yahoo.com> + + * lisp/frame.el (display-graphic-p): Fix typo. + +2021-11-29 Po Lu <luangruo@yahoo.com> + + Fix build after merge + + * lisp/mwheel.el (mouse-wheel-up-event): + * src/gtkutil.c (xg_event_is_for_scrollbar): + * src/termhooks.h (enum output_method): Fix trivial typos. + +2021-11-29 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'origin/feature/pgtk' into feature/pgtk + + Merge remote-tracking branch 'origin/master' into feature/pgtk + +2021-11-29 Lars Ingebrigtsen <larsi@gnus.org> + + Audit the Emacs manual for keymap-*-related changes + + * doc/emacs/programs.texi (Other C Commands): + * doc/emacs/msdos-xtra.texi (MS-DOS Keyboard): + * doc/emacs/custom.texi (Init Examples): + * doc/emacs/abbrevs.texi (Editing Abbrevs): Change some examples + to use keymap-* functions. + +2021-11-29 Lars Ingebrigtsen <larsi@gnus.org> + + Fix some of the argument handling in keymap-set and keymap-substitute + + * lisp/keymap.el (keymap-set): Fix handling of binding one key to + another key. + (keymap-substitute): Fix confusion in implementation -- the args + are definitions, not keys. + +2021-11-29 Lars Ingebrigtsen <larsi@gnus.org> + + Edit the lispref manual for define-key/keymap-set fallout + + * doc/lispref/variables.texi (Tips for Defining): + * doc/lispref/text.texi (Clickable Text): + * doc/lispref/modes.texi (Derived Modes): + (Example Major Modes): + * doc/lispref/loading.texi (Autoload): + (Hooks for Loading): + * doc/lispref/keymaps.texi (Creating Keymaps): + (Inheritance and Keymaps): + (Controlling Active Maps): + (Changing Key Bindings): + (Low-Level Key Binding): + (Remapping Commands): + (Translation Keymaps): + (Key Binding Commands): + * doc/lispref/help.texi (Help Functions): + * doc/lispref/display.texi (Abstract Display Example): + * doc/lispref/commands.texi (Interactive Codes): + (Keyboard Events): + (Misc Events): + (Classifying Events): + (Strings of Events): Prefer `keymap-set' instead of `define-key' + most places, and use `defvar-keymap' in some of the examples. + +2021-11-29 Alan Third <alan@idiocy.org> + + Fix build on macOS + + * src/nsterm.h (NSPasteboardTypeMultipleTextSelection): + (NSPasteboardTypePNG): These are already defined on macOS 10.6 and + above and aren't used at all in GNUstep. + +2021-11-29 Alan Third <alan@idiocy.org> + + Fix NS port text decorations (bug#52156) + + * src/nsterm.m (ns_draw_text_decoration): Set the correct colors for + decorations other than underline. + (ns_draw_glyph_string): Remove superfluous color setting call. + +2021-11-29 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerate ldefs-boot.el + +2021-11-29 Lars Ingebrigtsen <larsi@gnus.org> + + Fix up generation of help text for ldefs-boot.el + + * lisp/emacs-lisp/autoload.el (autoload-rubric): Don't put the + help text into cedet/*/loaddefs.el (bug#51744). + +2021-11-29 Michael Albinus <michael.albinus@gmx.de> + + * test/infra/gitlab-ci.yml (.job-template): Modify find scripts. + +2021-11-29 Protesilaos Stavrou <info@protesilaos.com> + + Remove problematic characters from modus-themes.org (bug#52126) + + * doc/misc/modus-themes.org + (Enable and load, Font configurations for Org and others) + (Note on highlight-parentheses.el, Note on god-mode.el): Update links to + headings so that they no longer include the removed portions of text. + + (Option for color-coding success state, Option for line highlighting) + (Option for line numbers, Option for parenthesis matching) + (Advanced customization, Per-theme customization settings) + (Case-by-case face specs using the themes' palette) + (Face specs at scale using the themes' palette) + (Remap face with local value, Cycle through arbitrary colors) + (Override colors, Override color saturation) + (Font configurations for Org and others, Configure bold and italic faces) + (Custom Org user faces, Update Org block delimiter fontification) + (Measure color contrast, Load theme depending on time of day) + (Backdrop for pdf-tools, Decrease mode line height) + (A theme-agnostic hook for theme loading, Note on EWW and Elfeed fonts) + (Frequently Asked Questions): Remove parentheses from headings as they + can cause problems in the .texi version of the file. + +2021-11-29 Lars Ingebrigtsen <larsi@gnus.org> + + Don't return whitespace for thing-at-point in whitespace-only buffers + + * lisp/thingatpt.el (bounds-of-thing-at-point): If the buffer is + empty, return nil for most things (bug#52098). + +2021-11-29 Lars Ingebrigtsen <larsi@gnus.org> + + Make Re: recognition in ispell-message less ambiguous + + * lisp/textmodes/ispell.el (ispell-message): Require a "Re" as a + word, not as a word ending (bug#52104). + +2021-11-29 Brahimi Saifullah <brahimi.saifullah@gmail.com> (tiny change) + + Make `group' widgets prettier in Customize + + * lisp/wid-edit.el (group): Make the ":" invisible so that the + buffer looks prettier (bug#52143). + +2021-11-29 Matthias Meulien <orontee@gmail.com> + + project-kill-buffers can display list of buffers to kill + + * lisp/progmodes/project.el + (project-kill-buffers-display-buffer-list): Option to toggle + temporarily display of the list of buffers to kill when calling + project-kill-buffers + (project-kill-buffers): Handle + project-kill-buffers-display-buffer-list option (bug#52148). + +2021-11-29 Lars Ingebrigtsen <larsi@gnus.org> + + Signal a better error in tabulated-list-sort + + * lisp/emacs-lisp/tabulated-list.el (tabulated-list-sort): Signal + error earlier on invalid column numbers (bug#52154). + +2021-11-29 Yuuki Harano <masm+github@masm11.me> + + * src/xdisp.c (mouse_face_from_buffer_pos): Revert whitespace only change + +2021-11-29 Yuuki Harano <masm+github@masm11.me> + + Remove draw_glyphs_debug + + It is left-over from debugging, and not needed any more. + + * src/xdisp.c (draw_glyphs_debug): + (draw_glyphs): + +2021-11-29 Yuuki Harano <masm+github@masm11.me> + + Replace XFillRectangle with cairo_rectangle and cairo_fill + + * src/pgtkterm.c (pgtk_flash): + +2021-11-29 Yuuki Harano <masm+github@masm11.me> + + Use /* */ comment style instead of // + + * src/gtkutil.c (xg_create_frame_widgets): + * src/pgtkfns.c (Fx_create_frame): + (frame_geometry): + * src/pgtkterm.c (pgtk_mouse_position): + (pgtk_redisplay_interface): + (pgtk_clear_frame): + (pgtk_create_terminal): + (struct pgtk_window_is_of_frame_recursive_t): + (key_press_event): + (syms_of_pgtkterm): + +2021-11-29 Daniel Martín <mardani29@yahoo.es> + + Use mupdf in doc-view-mode if gs is not installed + + * lisp/doc-view.el (doc-view-mode-p): Use mupdf to render PDF and + related formats if gs is not installed (bug#52170). + +2021-11-29 Ikumi Keita <ikumi@ikumi.que.jp> (tiny change) + + Make fill-region-as-paragraph clear the markers it creates + + * lisp/textmodes/fill.el (fill-region-as-paragraph): Clear + temporary markers (bug#52175). + +2021-11-29 Gregory Heytings <gregory@heytings.org> + + Do not buttonize key bindings outside of *Help* buffers + + * etc/NEWS: Mention the new variable. + + * lisp/apropos.el (apropos-describe-plist): Bind the new + variable (bug#52053). + * lisp/button.el (button-describe): Bind the new variable. + + * lisp/help-fns.el (describe-function, describe-variable) + (describe-face, describe-symbol, describe-syntax) + (describe-categories, describe-keymap, describe-mode) + (describe-widget): Bind the new variable. + + * lisp/help-macro.el (make-help-screen): Bind the new variable. + + * lisp/help.el (help-buffer-under-preparation): New variable + that is bound to t by commands that create a *Help* buffer. + (substitute-command-keys): Use the new variable: + help-link-key-to-documentation is supposed to have an effect + only "in *Help* buffers". Fixes bug#52053. + (view-lossage, describe-bindings, describe-key): Bind the new + variable. + + * lisp/repeat.el (describe-repeat-maps): Bind the new variable. + + * lisp/international/mule-cmds.el (describe-input-method) + (describe-language-environment): Bind the new variable. + + * lisp/international/mule-diag.el (describe-character-set) + (describe-coding-system, describe-font, describe-fontset) + ((list-fontsets): Bind the new variable. + +2021-11-29 Alan Mackenzie <acm@muc.de> + + First commit of scratch/correct-warning-pos. + + This branch is intended to generate correct position information in warning + and error messages from the byte compiler, and is intended thereby to fix bugs + + It introduces a new mechanism, the symbol with position. This is taken over + from the previous git branch scratch/accurate-warning-pos which was abandoned + for being too slow. The main difference in the current branch is that the + symbol `nil' is never given a position, thus speeding up NILP markedly. + + * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand) + (byte-optimize-form-code-walker, byte-optimize-let-form, byte-optimize-while) + (byte-optimize-apply): Use byte-compile-warn-x in place of byte-compile-warn. + + * lisp/emacs-lisp/bytecomp.el (byte-compile--form-stack): New variable. + (byte-compile-strip-s-p-1, byte-compile-strip-symbol-positions): New + functions. + (byte-compile-recurse-toplevel, byte-compile-initial-macro-environment) + (byte-compile-preprocess, byte-compile-macroexpand-declare-function): Bind + print-symbols-bare to non-nil. + (byte-compile--first-symbol, byte-compile--warning-source-offset): New + functions. + (byte-compile-warning-prefix): Modify to output two sets of position + information, the old (incorrect) set and the new set. + (byte-compile-warn): Strip positions from symbols before outputting. + (byte-compile-warn-x): New function which outputs a correct position supplied + in an argument. + (byte-compile-warn-obsolete, byte-compile-emit-callargs-warn) + (byte-compile-format-warn, byte-compile-nogroup-warn) + (byte-compile-arglist-warn, byte-compile-docstring-length-warn) + (byte-compile-warn-about-unresolved-functions, byte-compile-file) + (byte-compile--check-prefixed-var, byte-compile--declare-var) + (byte-compile-file-form-defvar-function, byte-compile-file-form-defmumble) + (byte-compile-check-lambda-list, byte-compile--warn-lexical-dynamic) + (byte-compile-lambda, byte-compile-form, byte-compile-normal-call) + (byte-compile-check-variable, byte-compile-free-vars-warn) + (byte-compile-subr-wrong-args, byte-compile-fset, byte-compile-set-default) + (byte-compile-condition-case, byte-compile-save-excursion) + (byte-compile-defvar, byte-compile-autoload) + (byte-compile-make-variable-buffer-local, byte-compile-define-symbol-prop) + (byte-compile-define-keymap): Replace byte-compile-warn with + byte-compile-warn-x. + (byte-compile-file, compile-defun): Bind symbols-with-pos-enabled to non-nil. + (compile-defun, byte-compile-from-buffer): Use `read-positioning-symbols' + rather than plain `read'. + (byte-compile-toplevel-file-form, byte-compile-form): Dynamically bind + byte-compile--form-stack. + (byte-compile-file-form-autoload, byte-compile-file-form-defvar) + (byte-compile-file-form-make-obsolete, byte-compile-lambda) + (byte-compile-push-constant, byte-compile-cond-jump-table) + (byte-compile-define-keymap, byte-compile-annotate-call-tree): + Strip positions from symbols where they are unwanted. + (byte-compile-file-form-defvar): Strip positions from symbols using + `bare-symbol'. + (byte-compile-file-form-defmumble): New variable bare-name, a version of name + without its position. + (byte-compile-lambda): Similarly, new variable bare-arglist. + (byte-compile-free-vars-warn): New argument arg supplying position information + to byte-compile-warn-x. + (byte-compile-push-constant): Manipulation of symbol positions. + (display-call-tree): Strip positions from symbols. + + * lisp/emacs-lisp/cconv.el (cconv-convert, cconv--analyze-use) + (cconv--analyze-function, cconv-analyze-form): Replace use of + byte-compile-warn with byte-compile-warn-x. + + * lisp/emacs-lisp/cl-generic.el (cl-defmethod): New variable org-name which + will supply position information to a new macroexp-warn-and-return. + + * lisp/emacs-lisp/cl-macs.el (cl-macs--strip-s-p-1) + (cl-macs--strip-symbol-positions): New functions to strip positions from + symbols in an expression. These duplicaate similarly named functions in + bytecomp.el. + + * lisp/emacs-lisp/macroexpand.el (macroexp--warn-wrap): Calls + byte-compile-warn-x in place of byte-compile-warn. + (macroexp-warn-and-return): Commented out new position parameter _arg. + + * src/.gdbinit: Add in code to handle symbols with position. + + * src/alloc.c (XPNTR, set_symbol_name, valid_lisp_object_p, purecopy) + (mark_char_table, mark_object, survives_gc_p, symbol_uses_obj): Use + BARE_SYMBOL_P and XBARE_SYMBOL in place of the former SYMBOLP and XSYMBOL. + (build_symbol_with_pos): New function. + (Fgarbage_collect): Bind Qsymbols_with_pos_enabled to nil around the call to + garbage_collect. + + * src/data.c (Ftype_of): Add case for PVEC_SYMBOL_WITH_POS. + (Fbare_symbol_p, Fsymbol_with_pos_p, Fbare_symbol, Fsymbol_with_pos_pos) + (Fposition_symbol): New functions. + (symbols_with_pos_enabled): New boolean variable. + + * src/fns.c (internal_equal, hash_lookup): Handle symbols with position. + + * src/keyboard.c (recursive_edit_1): Bind Qsymbols_with_pos_enabled and + Qprint_symbols_bare to nil. + + * src/lisp.h (lisp_h_PSEUDOVECTORP): New macro. + (lisp_h_BASE_EQ): New name for the former lisp_h_EQ. + (lisp_h_EQ): Extended to handle symbols with position. + (lisp_h_NILP): Now uses BASE_EQ rather than EQ. + (lisp_h_SYMBOL_WITH_POS_P, lisp_h_BARE_SYMBOL_P): New macros. + (lisp_h_SYMBOLP): Redefined to handle symbols with position. + (BARE_SYMBOL_P, BASE_EQ): New macros. + (SYMBOLP (macro)): Removed. + (SYMBOLP (function), XSYMBOL, make_lisp_symbol, builtin_lisp_symbol) + (c_symbol_p): Moved to later in file. + (struct Lisp_Symbol_With_Pos): New data type. + (pvec_type): PVEC_SYMBOL_WITH_POS: New type code. + (PSEUDOVECTORP): Redefined to use the lisp_h_PSEUDOVECTORP. + (BARE_SYMBOL_P, SYMBOL_WITH_POS_P, SYMBOLP, XSYMBOL_WITH_POS, XBARE_SYMBOL) + (XSYMBOL, make_lisp_symbol, builtin_lisp_symbol, c_symbol_p, CHECK_SYMBOL) + (BASE_EQ): New functions, or functions moved from earlier in the file. + (SYMBOL_WITH_POS_SYM, SYMBOL_WITH_POS_POS): New INLINE functions. + + * src/lread.c (read0, read1, read_list, read_vector, read_internal_start) + (list2): Add a new bool parameter locate_syms. + (Fread_positioning_symbols): New function. + (Fread_from_string, read_internal_start, read0, read1, read_list): Pass around + suitable values for locate_syms. + (read1): Build symbols with position when locate_syms is true. + + * src/print.c (print_vectorlike): Add handling for PVEC_SYMBOL_WITH_POS. + (print_object): Replace EQ with BASE_EQ. + (print_symbols_bare): New boolean variable. + +2021-11-29 Po Lu <luangruo@yahoo.com> + + Really make `x-scroll-event-delta-factor' dependent on system + + * lisp/cus-start.el: Move X specific builtins that start + with "x-" before the catch-all test. + +2021-11-29 Andreas Schwab <schwab@linux-m68k.org> + + Avoid undefined behavior when copying part of structure + + * src/dispnew.c (copy_row_except_pointers): Don't use address of + subobject as starting point. + +2021-11-29 Po Lu <luangruo@yahoo.com> + + Fix last change for non-X platforms + + * lisp/cus-start.el: Don't announce + `scroll-bar-adjust-thumb-portion' on non-X systems. + +2021-11-29 Po Lu <luangruo@yahoo.com> + + Allow customizing the pixel delta of wheel events on X + + * lisp/cus-start.el: Add `x-scroll-event-delta-factor'. + * src/xterm.c (handle_one_xevent): Apply scroll event + delta factor to wheel events with pixel data. + (Vx_scroll_event_delta_factor): New user option. + +2021-11-29 Po Lu <luangruo@yahoo.com> + + Make overhangs in ftcrfont work on Haiku + + * src/ftcrfont.c (ftcrfont_draw): Dump left overhang clipping + on Haiku and always set `background_filled_p'. + +2021-11-29 Po Lu <luangruo@yahoo.com> + + * doc/emacs/haiku.texi (Haiku Basics): Fix a typo. + +2021-11-29 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + c4daff9cf8 * Makefile.in (PREFERRED_BRANCH): Now emacs-28. + bca57086be ; Remove an obsolete comment + 455b64c336 * src/coding.c (Fdecode_coding_region, Fencode_coding_regi... + +2021-11-28 Po Lu <luangruo@yahoo.com> + + Update XKB map on MappingNotify + + * src/xterm.c (handle_one_xevent): Update XKB map when X + tells us the keyboard map has been updated. + +2021-11-28 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak gnus-art key binding + + * lisp/gnus/gnus-art.el (:keymap): Fix mnemonic key binding. + +2021-11-28 Mattias Engdegård <mattiase@acm.org> + + Use compiler macros for the key syntax checks + + Compile-time key string syntax checks are better written using + compiler macros than with byte-hunk-handlers inside the compiler + proper. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-define-keymap) + (byte-compile-define-keymap--define): Remove. + * lisp/keymap.el (keymap--compile-check): New. + (keymap-set, keymap-global-set, keymap-local-set, keymap-global-unset) + (keymap-local-unset, keymap-unset, keymap-substitute) + (keymap-set-after, key-translate, keymap-lookup, keymap-local-lookup) + (keymap-global-lookup): Use compiler-macro for argument checks. + * lisp/subr.el (define-keymap--compile): New. + (define-keymap--define): Fold into define-keymap. + (define-keymap): Use compiler-macro. + (defvar-keymap): Use define-keymap. + +2021-11-28 Mattias Engdegård <mattiase@acm.org> + + Avoid unused argument warnings in lambda compiler macros + + * lisp/emacs-lisp/byte-run.el (byte-run--set-compiler-macro): + Don't warn when a compiler macro with lambda-form expander does not + use all the arguments of the function. Nobody expected any warning + since the arguments look like free variables inside the lambda form. + +2021-11-28 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 1fffe9a210 ; * lisp/org/org.el: Fix version header. + 2a4de5e5e5 Fix Subject when forwarding message with 2-line From + b8b2dd17c5 Update to Org 9.5.1-11-g96d91b + a937f536b3 * doc/lispref/commands.texi (Click Events): Fix wording (b... + +2021-11-28 Michael Albinus <michael.albinus@gmx.de> + + Adapt gitlab-ci.yml + + * test/infra/gitlab-ci.yml (variables): Set EMACS_TEST_TIMEOUT to 3600. + (.job-template, .test-template): Another approach to catch test + artifacts on emba. + +2021-11-28 Po Lu <luangruo@yahoo.com> + + Make haiku-win build correctly on non-Haiku systems + + * lisp/term/haiku-win.el (haiku-selection-targets): Add + missing declaration. + +2021-11-28 Po Lu <luangruo@yahoo.com> + + Fix xwidget popups on XI2 again + + * src/xwidget.c (xwidget_button_1): Release seat grab. + +2021-11-28 Po Lu <luangruo@yahoo.com> + + Fix xwidget popups on XI2 + + * src/gtkutil.c (xg_is_menu_window): Determine whether wdesc + is a menu generated by a menu bar more reliably. + + * src/xwidget.c (xwidget_button_1): Release all XI2 grabs on + click. + +2021-11-27 Po Lu <luangruo@yahoo.com> + + Fix typos in configure.ac + + * configure.ac: Fix typos in wording of XInput 2 options. + +2021-11-27 Po Lu <luangruo@yahoo.com> + + Make `pixel-scroll-precision-scroll-up' work better with overlays + + * lisp/pixel-scroll.el (pixel-scroll-precision-scroll-up): + Just set vscroll when on overlay. + +2021-11-27 Michael Albinus <michael.albinus@gmx.de> + + Simplify use of artifacts in emba files + + * test/infra/gitlab-ci.yml (.test-template): Re-insert. + (test-all-inotify, test-filenotify-gio, test-gnustep) + (test-native-comp-speed0): + * test/infra/Makefile.in (subdir_template): Use it when + appropriate. Remove artifacts. + + * test/infra/test-jobs.yml: Regenerate. + +2021-11-27 Stefan Monnier <monnier@iro.umontreal.ca> + + * test/src/comp-tests.el: Rework last patch + + Move `require`s out of `eval-when-compile` if the functions are called + at run-time. + Don't use #' to quote symbols (i.e. at those places where a lambda + expression couldn't be used). + Don't pre-load comp-test-45603.el and comp-test-pure.el any more. + + (comp-deftest pure): Use `declare-function` after loading `comp-test-pure.el` + to silence the byte-compiler. + +2021-11-27 Eli Zaretskii <eliz@gnu.org> + + Avoid assertion violations in --enable-checking builds + + * src/xdisp.c (gui_produce_glyphs): Make sure character glyphs + don't trigger assertion violation due to negative ascent or + descent. This was reporte dto happen with some fonts used by the + xfont backend. + +2021-11-27 Po Lu <luangruo@yahoo.com> + + Improve documentation of wheel events + + * doc/lispref/commands.texi (Misc Events): Add missing + parameters to `wheel-up' and `wheel-down'. + +2021-11-27 Po Lu <luangruo@yahoo.com> + + Fix pixel scroll for overlays and text in display properties + + * lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down): + Just set vscroll if we're scrolling through an overlay or + something to that effect. + +2021-11-27 Po Lu <luangruo@yahoo.com> + + Set motion event time when handling XI2 motion events + + * src/xterm.c (handle_one_xevent): Set motion event time when + handling XI_Motion. + +2021-11-27 Po Lu <luangruo@yahoo.com> + + Remove GC prone call in `pixel-point-and-height-at-unseen-line' + + * lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line): + Remove call to unnecessary call to `beginning-of-visual-line'. + +2021-11-27 Po Lu <luangruo@yahoo.com> + + Make `pixel-scroll-precision-scroll-up' slightly more robust + + * lisp/pixel-scroll.el (pixel-scroll-precision-scroll-up): + Subtract from existing vscroll if feasible. + +2021-11-27 Po Lu <luangruo@yahoo.com> + + Make `pixel-scroll-precision-scroll-up' use existing logic + + * lisp/pixel-scroll.el (pixel-point-at-unseen-line): Rewrite + to use `pixel-point-and-height-at-unseen-line'. + (pixel-point-and-height-at-unseen-line): New function. + (pixel-scroll-precision-scroll-up): Use existing logic + to determine unseen line position. + +2021-11-26 Stephen Gildea <stepheng+emacs@gildea.com> + + time-stamp-tests.el: Test more formats + + * test/lisp/time-stamp-tests.el (time-stamp-format-ignored-modifiers): + Additional testing with illegal formats, including "%". + (time-stamp-format-multiple-conversions): Add a test with "%%%". + +2021-11-26 Po Lu <luangruo@yahoo.com> + + Set initial tab bar parameter on NS + + * src/nsfns.m (Fx_create_frame): Initialize `tab-bar-lines' + frame parameter during frame creation. + +2021-11-26 Alan Third <alan@idiocy.org> + + Silence NS warnings + + * src/nsterm.m ([EmacsView mouseDown:]): Move variables into the block + where they're used. + +2021-11-26 Stephen Gildea <stepheng+emacs@gildea.com> + + * test/src/comp-tests.el: Eliminate byte-compiler warnings (Bug#52105). + +2021-11-26 Robert Pluim <rpluim@gmail.com> + + Specify initial values for glyphless-char-display-control elements + + * lisp/international/characters.el (glyphless-char-display-control): + Specify :value for all the elements, since nil is not a valid value. + +2021-11-26 Michael Albinus <michael.albinus@gmx.de> + + Adapt test/infra/gitlab-ci.yml + + * test/infra/gitlab-ci.yml (test-all-inotify) + (test-filenotify-gio, test-gnustep, test-native-comp-speed0): + Add or adapt artifacts. + +2021-11-26 Lars Ingebrigtsen <larsi@gnus.org> + + Add new face `gnus-header' + + * lisp/gnus/gnus-art.el (gnus-header): New face. + (gnus-header-from, gnus-header-subject, gnus-header-newsgroups) + (gnus-header-name, gnus-header-content): Inherit from this new face. + +2021-11-26 Robert Pluim <rpluim@gmail.com> + + Adjust custom-face-attributes for 'regular' weight + + Following the changes to support "medium" weight fonts, the weight for + "normal" fonts is now reported as 'regular', which caused + customize-face to display faces as lisp-expressions, since it didn't + recognize that. This has been corrected. + + * lisp/cus-face.el (custom-face-attributes): Recognize 'regular' as a + weight. + +2021-11-26 Lars Ingebrigtsen <larsi@gnus.org> + + Add an intermediary face for mode lines: `mode-line-active' + + * doc/emacs/display.texi (Standard Faces): Document the new face. + + * lisp/faces.el (mode-line-active): New face. + (mode-line): Don't inherit from vaiable-pitch. + + * src/xfaces.c (lookup_basic_face, realize_basic_faces) + (syms_of_xfaces): + * src/xdisp.c (window_box_height, window_text_pixel_size) + (display_mode_lines, Fformat_mode_line): + * src/dispextern.h (CURRENT_MODE_LINE_ACTIVE_FACE_ID_3) + (CURRENT_MODE_LINE_ACTIVE_FACE_ID, enum face_id): Rename from + *MODE_LINE_FACE_ID to *MODE_LINE_ACTIVE_FACE_ID. + +2021-11-26 Po Lu <luangruo@yahoo.com> + + Move the precision pixel scrolling feature to pixel-scroll.el + + * etc/NEWS: Update NEWS entry for 'pixel-scroll-precision-mode' + + * lisp/better-pixel-scroll.el: Remove file. + + * src/pixel-scroll.el (x-coalesce-scroll-events): New variable + declaration. + (pixel-scroll-precision-mode-map): New variable. + (pixel-scroll-precision-scroll-down): + (pixel-scroll-precision-scroll-up): + (pixel-scroll-precision): New functions. + (pixel-scroll-precision-mode): New minor mode. + +2021-11-26 Po Lu <luangruo@yahoo.com> + + Explain confusing aspects of XInput 2 scroll wheel reporting + + * src/xterm.c (x_init_master_valuators): Explain how XInput 2 + reports scroll wheel movement. + + (handle_one_xevent): Explain why XI2 scroll valuators + are reset after each enter events. + +2021-11-26 Dmitry Gutov <dgutov@yandex.ru> + + Remove empty lines from stash read prompt + + * lisp/vc/vc-git.el (vc-git-stash-read): Pass OMIT-NULLS (bug#52119). + (vc-git-stash-list): Simplify. + +2021-11-26 Po Lu <luangruo@yahoo.com> + + Make XInput 2 builds work without cairo + + * src/xterm.c: Move some defines around so XI2 code doesn't + get ifdef'd out if Cairo is disabled. + +2021-11-26 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + cfaf681d3d ; * src/emacs.c (main): Add commentary about command-line ... + 4d16a2f737 Fix pdf generation with Texinfo 6.7 + a22c9a34bd Fix 'posn-at-point' near some overlays + d1aa552d11 ; * CONTRIBUTE: No cleanups on release branches, even in d... + 588caf0b27 * lisp/repeat.el (repeat-post-hook): Add check symbolp rep... + +2021-11-26 Po Lu <luangruo@yahoo.com> + + Fix sign of pixel scroll events on Haiku + + * src/haikuterm.c (haiku_read_socket): Fix sign of scroll + events. + +2021-11-26 Po Lu <luangruo@yahoo.com> + + Make tab bar option visible in the menu bar on NS + + * lisp/menu-bar.el (menu-bar-showhide-menu): Make + `showhide-tab-bar' visible on NS as well. + +2021-11-26 Po Lu <luangruo@yahoo.com> + + Make pixel scrolling through images at the first line smoother + + * lisp/better-pixel-scroll.el (better-pixel-scroll-scroll-up): + Try to reset vscroll if already vscrolled. + +2021-11-26 Po Lu <luangruo@yahoo.com> + + Don't perform pixel scrolling when window is hscrolled + + * lisp/better-pixel-scroll.el (better-pixel-scroll): Call + mwheel-scroll instead if window is hscrolled. + +2021-11-25 Po Lu <luangruo@yahoo.com> + + Add `better-pixel-scroll-mode' + + * etc/NEWS: Announce `better-pixel-scroll-mode'. + * lisp/better-pixel-scroll.el: New file. + +2021-11-25 Alan Third <alan@idiocy.org> + + Fix selection for old GNUstep and GCC + + * src/nsselect.m (ns_get_foreign_selection): Remove language features + not yet supported by GCC. Be more selective with which pasteboard + types we use. + * src/nsterm.h: Set up some more #defines for deprecated variables. + +2021-11-25 Eli Zaretskii <eliz@gnu.org> + + Update 'custom-face-attributes' + + * lisp/cus-face.el (custom-face-attributes): Synchronize with + tables in font.c. + +2021-11-25 Andreas Schwab <schwab@linux-m68k.org> + + * src/emacs.c (usage_message): Fix name of --seccomp option. + +2021-11-25 Eli Zaretskii <eliz@gnu.org> + + Fix handling of '--dump-file' command-line option + + * lisp/startup.el (command-line-1): Handle "--dump-file" and + "--seccomp" if they are left on the command-line. (Bug#52106) + +2021-11-25 Stephen Gildea <stepheng+emacs@gildea.com> + + MH-E: support Mailutils "folders +/" + + * lisp/mh-e/mh-utils.el (mh-sub-folders-parse): + Support Mailutils style of "folders +/" output. + * test/lisp/mh-e/mh-utils.el: + Test "folders +/" with GNU Mailutils 3.13.91 and later. + +2021-11-25 Robert Pluim <rpluim@gmail.com> + + Correct the :inherit property on some faces + + Otherwise M-x customize-face will show them as lisp-expressions rather + than nice widgets. + + * lisp/ansi-color.el (ansi-color-bold): + (ansi-color-italic): + (ansi-color-underline): + * lisp/faces.el (mode-line): Don't quote the face we're inheriting + from. + +2021-11-25 Robert Pluim <rpluim@gmail.com> + + * doc/misc/flymake.texi: Correct local variable mode specification + +2021-11-25 Robert Pluim <rpluim@gmail.com> + + Don't display redundant 'see' in info-mode + + * lisp/info.el (Info-fontify-node): Don't show 'see' when displaying + the result of "(See @ref" or "also @ref", but leave "Also @ref" alone. + +2021-11-25 Michael Albinus <michael.albinus@gmx.de> + + Tag a test from process-tests.el as :unstable on emba. + + * test/src/process-tests.el (process-tests/multiple-threads-waiting): + Tag it as :unstable on emba. + +2021-11-25 Lars Ingebrigtsen <larsi@gnus.org> + + Add temporary mode-line-position change + + * lisp/bindings.el (mode-line-position): Add interim solution to + make `min-width' work here; this should be fixed for real in the + display_line machinery somewhere. + +2021-11-25 Lars Ingebrigtsen <larsi@gnus.org> + + Indent `closure' forms better + + * lisp/emacs-lisp/lisp-mode.el (closure): Indent `closure' forms + better (bug#52063). + +2021-11-25 Po Lu <luangruo@yahoo.com> + + Fix scroll wheel reporting on NS + + * src/nsterm.m (- mouseDown): Clear scroll wheel + accumulators. + +2021-11-25 Lars Ingebrigtsen <larsi@gnus.org> + + Define a face for shr text + + * lisp/net/shr.el (shr-text): New face. + (shr-insert): Use it instead of hard-coding `variable-pitch'. + +2021-11-25 Po Lu <luangruo@yahoo.com> + + Set serial when filtering XI_KeyPress events + + This fixes fcitx flicker for whatever reason. + + * src/xterm.c (handle_one_xevent): Set serial when filtering + XI_KeyPress events. + +2021-11-24 Po Lu <luangruo@yahoo.com> + + Add support for pixel wheel deltas on NS + + * src/xterm.c (x_coalesce_scroll_events): Update doc string. + * src/nsterm.c (- mouseDown): Report pixel scroll deltas. + (x_coalesce_scroll_events): New variable + +2021-11-24 Stephen Gildea <stepheng+emacs@gildea.com> + + mh-utils-tests: 'mh-sub-folders-actual' coverage + + * test/lisp/mh-e/mh-utils.el (mh-sub-folders-parse-no-folder) + (mh-sub-folders-parse-relative-folder, mh-sub-folders-parse-root-folder): + New tests. + * lisp/mh-e/mh-utils.el (mh-sub-folders-parse): New function, + refactored out of 'mh-sub-folders-actual' to create a testing seam. + +2021-11-24 Matt Kramer <mkramer@lbl.gov> (tiny change) + + Fix tab-line cycling when using buffer groups (bug#52050) + + * lisp/tab-line.el (tab-line-switch-to-prev-tab, tab-line-switch-to-next-tab): + Remove tabs that aren't associated with a buffer, such as the `group-tab' that + exists when `tab-line-tabs-function' is `tab-line-tabs-buffer-groups'. + +2021-11-24 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + b4f47d2 Use @pxref when necessary + +2021-11-24 Michael Albinus <michael.albinus@gmx.de> + + Some optimizations for emba jobs + + * test/infra/gitlab-ci.yml (.test-template): Remove. + (test-all-inotify, test-filenotify-gio, test-gnustep) + (test-native-comp-speed0): + * test/infra/Makefile.in (subdir_template): Remove .test-template + from extends. Add or adapt needs and artifacts. + + * test/infra/test-jobs.yml: Regenerate. + +2021-11-24 Lars Ingebrigtsen <larsi@gnus.org> + + Remove APPEND argument from add-display-text-property + + * doc/lispref/display.texi (Display Property): Update doc. + * lisp/emacs-lisp/subr-x.el (add-display-text-property): Remove + the append argument -- it's nonsensical. + +2021-11-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix min-width problem with "overlapping" regions + + * src/xdisp.c (handle_display_prop): Fix problem with overlapping + regions. + +2021-11-24 Juri Linkov <juri@linkov.net> + + * lisp/outline.el (outline-font-lock-keywords): Replace ‘.+’ with ‘.*’. + + Make the regexp less restrictive and don't require the outline heading + to have more text after outline-regexp until the end of the heading line + (bug#51016). + +2021-11-24 Lars Ingebrigtsen <larsi@gnus.org> + + Add new function 'add-display-text-property' + + * doc/lispref/display.texi (Display Property): Document it. + * lisp/emacs-lisp/subr-x.el (add-display-text-property): New function. + +2021-11-24 Lars Ingebrigtsen <larsi@gnus.org> + + Change eshell-mode mode-line-format insinuation + + * lisp/eshell/esh-mode.el (eshell-mode): Tweak how the mode line + is altered after recent mode-line-format changes. + +2021-11-24 Eli Zaretskii <eliz@gnu.org> + + Fix documentation of 'min-width' display spec. + + * doc/lispref/display.texi (Other Display Specs): Clarify + documentation of the 'min-width' display spec. + +2021-11-24 Narendra Joshi <narendraj9@gmail.com> (tiny change) + + * lisp/vcursor.el (vcursor-get-char-count): Preserve point + +2021-11-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix typo in display_min_width comment + + * src/xdisp.c (display_min_width): Fix typo in comment. + +2021-11-24 Lars Ingebrigtsen <larsi@gnus.org> + + Make min-width of the U:-- wider + + * lisp/bindings.el (standard-mode-line-format): Make the modified + bits larger since there's often a big difference between - and % + characters. + +2021-11-24 Stephen Gildea <stepheng+emacs@gildea.com> + + mh-utils-tests: Add new tests of "folders +/" + + * test/lisp/mh-e/mh-utils-tests.el + (mh-sub-folders-actual, mh-sub-folders): Add new tests of "folders +/". + Rewrite tests that were using 'assoc' to use 'member' instead, so that + on failure, ERT logs the list of which the element was not a member, + rather than the 'nil' returned by 'assoc'. + (mh-test-variant-handles-plus-slash): Factor out new helper function. + (mh-folder-completion-function-08-plus-slash) + (mh-folder-completion-function-09-plus-slash-tmp): + Use new helper function. + * test/lisp/mh-e/test-all-mh-variants.sh: LD_LIBRARY_PATH unnecessary. + +2021-11-24 Eli Zaretskii <eliz@gnu.org> + + Minor fixes for a recent commit + + * src/xdisp.c (find_display_property): Fix style of comments. + (Fget_display_property): Doc fix. + (get_display_property): Fix style and whitespace. + +2021-11-24 Mattias Engdegård <mattiase@acm.org> + + Add sample of -fanalyzer output (bug#51882) + + * etc/compilation.txt (file): Add fragment of GCC diagnostics from + -fanalyzer (from Philip Kaludercic). + +2021-11-24 Mattias Engdegård <mattiase@acm.org> + + Tighten `gnu` compile regexp further + + * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): + The -fanalyzer ASCII art does not contain tabs. + +2021-11-24 Lars Ingebrigtsen <larsi@gnus.org> + + Use a proportional font for the mode line + + * lisp/bindings.el (mode-line-position): Add min-width specs. + (standard-mode-line-format): Ditto. + + * lisp/faces.el (mode-line): Inherit from `variable-pitch'. + +2021-11-24 Lars Ingebrigtsen <larsi@gnus.org> + + Make display_min_width work from the mode line + + * src/xdisp.c (display_min_width): Make this work from mode line + constructs via display_string. + +2021-11-24 Robert Pluim <rpluim@gmail.com> + + * admin/unidata/emoji-zwj.awk: Quote functions properly. + +2021-11-24 Po Lu <luangruo@yahoo.com> + + Make `yank-media' work on Haiku + + This works with what WebPositive does with images, at least. I don't + know about other programs, but Haiku doesn't seem to standardize this + very well. + + * lisp/term/haiku-win.el (haiku--selection-type-to-mime): Handle + regular symbols. + (gui-backend-get-selection): Handle special type `TARGETS'. + (gui-backend-set-selection): Always clear clipboard. + + * src/haiku_select.cc (BClipboard_get_targets): New function. + (BClipboard_set_data): New argument `clear'. All callers + changed. + (BClipboard_set_system_data) + (BClipboard_set_primary_selection_data) + (BClipboard_set_secondary_selection_data): New argument `clear'. + + (BClipboard_system_targets, BClipboard_primary_targets) + (BClipboard_secondary_targets): New functions. + + * src/haikuselect.c (haiku_selection_data_1): New function. + (Fhaiku_selection_targets): New function. + (Fhaiku_selection_put): Allow controlling if the clipboard is + cleared. + (syms_of_haikuselect): New symbols and subrs. + + * src/haikuselect.h (BClipboard_set_system_data) + (BClipboard_set_primary_selection_data) + (BClipboard_set_secondary_selection_data): New argument `clear'. + + (BClipboard_system_targets, BClipboard_primary_targets) + (BClipboard_secondary_targets): New functions. + +2021-11-24 Michael Albinus <michael.albinus@gmx.de> + + * admin/notes/emba (Emacs jobset): Remove stage slow. + + * test/infra/Makefile.in (subdir_template): Add rule. + + * test/infra/gitlab-ci.yml (.job-template): Remove changes section. + (.build-template, .gnustep-template, .filenotify-gio-template): + (.native-comp-template): Adapt changes section. + (.test-template): Add needs. Adapt artifacts paths. + (stages): Remove slow. + (test-all-inotify): Move up. Change stage to normal. Remove timeout. + (test-filenotify-gio, test-gnustep, test-native-comp-speed0): + Move needs up. + + * test/infra/test-jobs.yml: Regenerate. + +2021-11-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix min-width end condition handling + + * src/xdisp.c (handle_display_prop): Fix check for min-width ends + -- they may be consecutive. + +2021-11-24 Po Lu <luangruo@yahoo.com> + + Correct adjustments to frame widths in events + + * src/haiku_support.cc (EmacsWindow.FrameResized) + (EmacsWindow.Zoom): Adjust widths to fit into the correct + coordinate system. + +2021-11-24 Po Lu <luangruo@yahoo.com> + + Remove unused arguments to EmacsView.AfterResize + + * src/haiku_support.cc (EmacsView.AfterResize): Remove + unused arguments. + (BView_resize_to): Stop passing unused arguments. + +2021-11-24 Lars Ingebrigtsen <larsi@gnus.org> + + Add support for the min-width display property + + * doc/lispref/display.texi (Display Property): Document + get-display-property. + (Other Display Specs): Document min-width property. + + * src/dispextern.h (struct it): Add fields for min-width handling. + + * src/xdisp.c (find_display_property, get_display_property): New + helper functions. + (display_min_width): Insert stretch glyphs based on the min width. + (Fget_display_property): New defun. + (handle_display_prop): Handle min-width ends. + (handle_single_display_spec): Handle min-width starts. + +2021-11-24 Gregory Heytings <gregory@heytings.org> + + Re-enable the disabledForeground X resource. + + * doc/emacs/xresources.texi (Lucid Resources): Document the resource. + Also document the 'cursor' resource (bug#52052). + * lwlib/xlwmenu.c (make_drawing_gcs): Re-enable the use of the + disabledForeground resource. The use of this X resource was disabled + without reason in commit ef93458b2f8 by overwriting its value with the + value of the foreground resource. + +2021-11-24 Alan Third <alan@idiocy.org> + + Allow NS to handle non-text clipboard contents + + * src/nsselect.m (ns_get_foreign_selection): Handle non-plain text + clipboard entries. + (ns_string_from_pasteboard): Remove EOL conversion. + (syms_of_nsselect): Define QTARGETS. + +2021-11-24 Po Lu <luangruo@yahoo.com> + + Clear past end of frame on Haiku + + * src/haiku_support.c (EmacsWindow.FrameResized): Delete + size adjustment. + + * src/haikuterm.c (haiku_clear_frame): Clear one pixel + past the end of the frame. + +2021-11-24 Po Lu <luangruo@yahoo.com> + + Fix 1 pixel wide border in frames on Haiku + + * src/haiku_support.cc (EmacsWindow.FrameResized): Add 1 to + pixel widths. + + * src/haikuterm.c (haiku_read_socket): Use `lrint' to round + widths. + +2021-11-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix string-glyph-split infloop + + * lisp/emacs-lisp/subr-x.el (string-glyph-split): Fix infloop when + applied to (string-glyph-split "✈️🌍") (bug#52067). + +2021-11-24 Gregory Heytings <gregory@heytings.org> + + Pass options from make to configure through a variable. + + * GNUmakefile (configure): Use the variable. + + * INSTALL.REPO: Document the variable (bug#51965). + +2021-11-24 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 756b8a5f1b Fix typos in documentation + 38fdeaef46 ; * etc/DEBUG: Fix last change. + +2021-11-23 Po Lu <luangruo@yahoo.com> + + Fix mouse-wheel-text-scale + + * lisp/mwheel.el (mouse-wheel-text-scale): Test for alternative + events correctly. + +2021-11-23 Po Lu <luangruo@yahoo.com> + + Remove extraneous code left over from the ftbe font driver + + * src/haikuterm.c (syms_of_haikuterm): Remove dead code. + +2021-11-23 Po Lu <luangruo@yahoo.com> + + Use only effective modifiers when handling XI2 button events + + * src/xterm.c (handle_one_xevent): Use mods.effective when + constructing button events. + +2021-11-23 Yuuki Harano <masm+github@masm11.me> + + Remove PGTK_DEBUG stuff + + * src/gtkutil.c: + (xg_create_frame_widgets): + (xg_create_frame_outer_widgets): + (x_wm_set_size_hint): + (xg_set_toolkit_scroll_bar_thumb): + * src/pgtkfns.c (x_set_background_color): + (pgtk_set_name): + (x_explicitly_set_name): + (pgtk_implicitly_set_name): + (x_set_title): + (Fx_create_frame): + (Fpgtk_set_mouse_absolute_pixel_position): + (pgtk_log): + (pgtk_backtrace): + * src/pgtkselect.c (get_func): + (clear_func): + (pgtk_selection_lost): + (Fpgtk_own_selection_internal): + (Fpgtk_disown_selection_internal): + (Fpgtk_selection_exists_p): + (Fpgtk_selection_owner_p): + (nxatoms_of_pgtkselect): + (syms_of_pgtkselect): + * src/pgtkterm.c (flip_cr_context): + (get_keysym_name): + (frame_set_mouse_pixel_position): + (x_free_frame_resources): + (x_destroy_window): + (x_set_offset): + (pgtk_set_window_size): + (pgtk_iconify_frame): + (pgtk_make_frame_visible): + (pgtk_make_frame_invisible): + (pgtk_new_font): + (x_display_pixel_height): + (x_display_pixel_width): + (x_set_no_focus_on_map): + (x_set_no_accept_focus): + (x_set_z_group): + (x_set_cursor_gc): + (x_set_glyph_string_gc): + (x_set_glyph_string_clipping): + (x_draw_glyph_string_background): + (pgtk_draw_glyph_string): + (pgtk_after_update_window_line): + (pgtk_clear_frame_area): + (pgtk_draw_window_cursor): + (pgtk_copy_bits): + (pgtk_cr_draw_image): + (pgtk_draw_fringe_bitmap): + (pgtk_redraw_scroll_bars): + (pgtk_clear_frame): + (pgtk_read_socket): + (pgtk_select): + (xg_scroll_callback): + (xg_end_scroll_callback): + (pgtk_set_vertical_scroll_bar): + (set_fullscreen_state): + (pgtk_fullscreen_hook): + (pgtk_handle_event): + (pgtk_fill_rectangle): + (pgtk_clear_under_internal_border): + (print_widget_tree_recursive): + (print_widget_tree): + (pgtk_handle_draw): + (size_allocate): + (key_press_event): + (key_release_event): + (map_event): + (delete_event): + (enter_notify_event): + (leave_notify_event): + (focus_in_event): + (focus_out_event): + (motion_notify_event): + (button_event): + (scroll_event): + (drag_data_received): + (pgtk_xlfd_to_fontname): + (pgtk_defined_color): + (pgtk_parse_color): + (pgtk_query_colors): + (pgtk_query_color): + (pgtk_clear_area): + (pgtk_cr_update_surface_desired_size): + (pgtk_begin_cr_clip): + (pgtk_end_cr_clip): + (pgtk_set_cr_source_with_gc_foreground): + (pgtk_set_cr_source_with_gc_background): + (pgtk_set_cr_source_with_color): + (pgtk_cr_draw_frame): + (pgtk_cr_destroy_frame_context): + * src/pgtkterm.h: + +2021-11-23 Michael Albinus <michael.albinus@gmx.de> + + Adapt artifacts paths in emba testjobs + + * test/infra/Makefile.in (subdir_template): Adapt artifacts paths. + + * test/infra/test-jobs.yml: Regenerate. + +2021-11-23 Yuuki Harano <masm+github@masm11.me> + + * src/ftcrfont.c (ftcrfont_open): Revert redundant brace change. + +2021-11-23 Yuuki Harano <masm+github@masm11.me> + + * src/frame.c (syms_of_frame): Revert frame_resize_pixelwise defaults to false + + It was just a workaround of mutter's bug, which is already fixed, so + we can revert it. + +2021-11-23 Yuuki Harano <masm+github@masm11.me> + + * src/frame.c (Fframep): Fix comment + +2021-11-23 Yuuki Harano <masm+github@masm11.me> + + * src/font.h: Remove redundant condition + + It is redundant because pgtk build always defines HAVE_FREETYPE. + +2021-11-23 Yuuki Harano <masm+github@masm11.me> + + Enclose pgtk changes within #ifdef + + * src/emacsgtkfixed.c: + * src/emacsgtkfixed.h: + +2021-11-23 Yuuki Harano <masm+github@masm11.me> + + * src/emacs.c (main): Combine two conditions to one + +2021-11-23 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + bdb489a ; * etc/DEBUG: Adjust instructions for libgccjit reproducer. + b4fb381 ; * src/xdisp.c (produce_stretch_glyph): Avoid compilation wa... + +2021-11-23 Stefan Kangas <stefan@marxist.se> + + Prefer locate-user-emacs-file in gitmerge.el + + * admin/gitmerge.el (gitmerge-status-file): Prefer + 'locate-user-emacs-file' to fiddling with 'user-emacs-directory'. + +2021-11-23 Po Lu <luangruo@yahoo.com> + + Fix compilation with XInput 2 but without XKB + + * src/xterm.c (handle_one_xevent): Remove extraneous + conditional. + +2021-11-23 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + d791cd556d Fix '(space :relative-width N)' display spec w/non-ASCII c... + 712898210f * lisp/proced.el (proced-sort-header): Fix event positions... + + # Conflicts: + # lisp/proced.el + +2021-11-22 Po Lu <luangruo@yahoo.com> + + Only reset scroll valuators on real enter events + + * src/xterm.c (handle_one_xevent): Test event detail and mode + before resetting scroll valuators. + +2021-11-22 Po Lu <luangruo@yahoo.com> + + Fix delay between tool bar clicks and visual feedback + + * src/haikuterm.c (haiku_read_socket): Redisplay after tool + bar click. + +2021-11-22 Po Lu <luangruo@yahoo.com> + + Fix XI2 keysym translation + + * src/xterm.c (handle_one_xevent): Handle XI_KeyPress events + that can't be translated into strings. + +2021-11-22 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/subr.el (event-start, event-end): Handle `(menu-bar)` events + + * lisp/net/browse-url.el (browse-url-interactive-arg): Simplify accordingly + +2021-11-22 Juri Linkov <juri@linkov.net> + + * lisp/textmodes/flyspell.el: Pop up the menu under cursor from keyboard. + + * lisp/textmodes/flyspell.el (flyspell-emacs-popup): + Use popup-menu-normalize-position with point when no mouse is involved, + instead of the incorrect use of mouse-position (bug#52025). + +2021-11-22 Stefan Monnier <monnier@iro.umontreal.ca> + + src/indent.c, src/xdisp.c: Questions about with_echo_area_buffer_unwind_data + +2021-11-22 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el: 'C-x t RET' creates a new tab for non-existent tab name. + + * lisp/tab-bar.el (tab-bar-switch-to-tab): Create a new tab and + rename it to NAME when can't find the tab with the given NAME (bug#51935). + +2021-11-22 Mattias Engdegård <mattiase@acm.org> + + Simplify `gnu` compilation-mode regexp + + * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): + Remove the pattern ostensibly added for Ruby, because at closer + inspection it could never have matched anything. This lessens the + performance impact of the pattern added for GCC's -fanalyzer, + now slightly tweaked. + +2021-11-22 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el (tab-bar-history-old-minibuffer-depth): Remove variable. + + (tab-bar--history-pre-change, tab-bar--history-change): Use minibuffer-depth + instead of this variable (bug#51370). + +2021-11-22 Michael Albinus <michael.albinus@gmx.de> + + Adapt emba jobs + + * admin/notes/emba (Emacs jobset): Precise. + + * test/infra/Makefile.in (tn): New variable. + (subdir_template): Use it. Handle eieio-tests, faceup-tests and + so-long-tests. Rearrange .PHONY entry. Add needs and artifacts + to emba job. + + * test/infra/gitlab-ci.yml (test-filenotify-gio): Move up. + + * test/infra/test-jobs.yml: Regenerate. + +2021-11-22 Eli Zaretskii <eliz@gnu.org> + + Improve recently installed documentation + + * doc/lispref/display.texi (Size of Displayed Text): Move to + description of 'buffer-text-pixel-size' to preserve previous text; + mention the importance of WINDOW. + +2021-11-22 Po Lu <luangruo@yahoo.com> + + Fix compiler warning in image.c + + * src/image.c (webp_load): Initialize `mask_img' to NULL. + +2021-11-22 Stefan Kangas <stefan@marxist.se> + + Use substitute-command-keys for literal key sequences + + * lisp/abbrev.el (expand-region-abbrevs): + * lisp/calc/calc-graph.el (calc-graph-show-dumb): + * lisp/calc/calc-help.el (calc-help-for-help): + * lisp/calc/calc-mode.el (calc-auto-why): + * lisp/calc/calc.el (calc-do): + * lisp/calculator.el (calculator-mode): + * lisp/dired-aux.el (dired-create-files) + (dired-do-create-files-regexp, dired-create-files-non-directory): + * lisp/dired-x.el (dired-virtual): + * lisp/dired.el (dired-mark-region, dired-unmark-all-files): + * lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): + * lisp/emacs-lisp/re-builder.el (reb-enter-subexp-mode): + * lisp/epa-ks.el (epa-ks--display-keys): + * lisp/erc/erc.el (erc-toggle-debug-irc-protocol): + * lisp/files.el (save-some-buffers): + * lisp/gnus/gnus-dired.el (gnus-dired-find-file-mailcap) + (gnus-dired-print): + * lisp/gnus/gnus-group.el (gnus-keep-same-level): + * lisp/gnus/gnus-score.el (gnus-score-find-trace): + * lisp/gnus/gnus.el (to-list): + * lisp/gnus/message.el (message--send-mail-maybe-partially): + * lisp/mail/supercite.el (sc-set-variable): + * lisp/minibuffer.el (minibuffer-inactive-mode): + * lisp/progmodes/etags.el (select-tags-table): + * lisp/progmodes/idlw-shell.el (idlwave-shell-mode) + (idlwave-shell-char-mode-loop): + * lisp/replace.el (query-replace-help): + * lisp/simple.el (set-variable): + * lisp/subr.el (read-char-from-minibuffer): + * lisp/textmodes/ispell.el (ispell-help, ispell-message): + * lisp/textmodes/reftex-global.el (reftex-find-duplicate-labels): + * lisp/textmodes/reftex-vars.el + (reftex-toc-include-file-boundaries) + (reftex-toc-include-labels, reftex-toc-include-index-entries) + (reftex-toc-include-context, reftex-toc-follow-mode) + (reftex-index-include-context, reftex-index-follow-mode) + (reftex-enable-partial-scans) + (reftex-auto-update-selection-buffers) + (reftex-highlight-selection): + * lisp/time.el (display-time-update): + * lisp/vc/ediff-help.el (ediff-help-for-quick-help): + * lisp/vc/ediff-init.el (ediff-keep-variants): + * lisp/vc/ediff-ptch.el (ediff-fixup-patch-map) + (ediff-patch-file-internal): + * lisp/windmove.el (windmove-delete-default-keybindings): Use + 'substitute-command-keys' for literal key sequences. + + * lisp/userlock.el (userlock--fontify-key): Remove function. + (ask-user-about-lock, ask-user-about-lock-help) + (ask-user-about-supersession-threat) + (ask-user-about-supersession-help): Use 'substitute-command-keys' for + literal key sequences. + + * lisp/ibuffer.el (ibuffer-unmark-all): Use 'substitute-command-keys' + for command. + +2021-11-22 Stefan Kangas <stefan@marxist.se> + + Avoid false positives about wide docstrings for key sequences + + * lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p): + Ignore literal key sequence substitutions. + * test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-ignore-substitutions.el: + New file. + * test/lisp/emacs-lisp/bytecomp-tests.el + ("warn-wide-docstring-ignore-substitutions.el"): New test. + +2021-11-22 martin rudalics <rudalics@gmx.at> + + Add new function buffer-text-pixel-size + + * doc/lispref/display.texi (Size of Displayed Text): Document it. + + * lisp/emacs-lisp/subr-x.el (string-pixel-width): Use + buffer-text-pixel-size (bug#51995). + + * src/xdisp.c (window_text_pixel_size): Factor out from + Fwindow_text_pixel_size. + (Fbuffer_text_pixel_size): New function. + +2021-11-22 Po Lu <luangruo@yahoo.com> + + Fix mouse movement event generation on Haiku + + * src/haikuterm.c (haiku_mouse_position): Set timestamp. + (haiku_read_socket): Set last_mouse_movement_time. + + * src/haikuterm.h (struct haiku_display_info): Add field + `last_mouse_movement_time'. + +2021-11-22 Po Lu <luangruo@yahoo.com> + + Don't set button event modifiers twice on Haiku + + * src/haikuterm.c (haiku_read_socket): Simplify. + +2021-11-22 Po Lu <luangruo@yahoo.com> + + Move XI2 event filtering to a more appropriate location + + * src/xterm.c (handle_one_xevent): Filter all key press events + even if no frame is found. + +2021-11-22 Stefan Kangas <stefan@marxist.se> + + Add new format for literal key sequences to substitute-command-keys + + * lisp/help.el (substitute-command-keys): Add new format "\\`f'" for + literal key sequences. (Bug#50804) + * doc/lispref/help.texi (Keys in Documentation): Document the above + new substitution. + + * test/lisp/help-tests.el + (help-tests-substitute-command-keys/literal-key-sequence): + (help-tests-substitute-command-keys/literal-key-sequence-errors): New + tests. + (help-tests-substitute-key-bindings/face-help-key-binding): Extend test. + +2021-11-22 Po Lu <luangruo@yahoo.com> + + Use more precise test for emulated wheel events in XI2 + + * src/xterm.c (handle_one_xevent): Ignore button events + that have XIPointerEmulated set. + +2021-11-21 Po Lu <luangruo@yahoo.com> + + Make `xwidget-display-event' a special event as well + + * doc/lispref/commands.texi (Xwidget Events): Document that + `xwidget-display-event' is a special event, and that it should + be handled through callbacks. + + * etc/NEWS: Update NEWS entry. + + * lisp/xwidget.el (xwidget-webkit-new-session) + (xwidget-webkit-import-widget): Attach display callback. + (xwidget-webkit-display-event): Call display callback instead. + (xwidget-webkit-display-callback): New function. + + * src/keyboard.c (make_lispy_event): Store + source information for XWIDGET_DISPLAY_EVENT correctly. + + * src/xwidget.c (store_xwidget_display_event): Store + source of the display request. + (webkit_ready_to_show): Store source if available. + (webkit_create_cb_1): Store source if available. + (kill_xwidget): Remove dead widget from internal_xwidget_list. + +2021-11-21 Glenn Morris <rgm@gnu.org> + + Fix recent compile-tests addition + + * test/lisp/progmodes/compile-tests.el (compile-test-error-regexps): + Bump number of expected errors. + +2021-11-21 Po Lu <luangruo@yahoo.com> + + Also filter XI_KeyRelease events + + * src/xterm.c (handle_one_xevent): Also filter XI_KeyRelease + events through the X input method. + +2021-11-21 Po Lu <luangruo@yahoo.com> + + Use only effective modifiers for XI2 key press events + + * src/xterm.c (handle_one_xevent): Use only effective modifiers + in XI_KeyPress events. + +2021-11-21 Po Lu <luangruo@yahoo.com> + + Remove variable that no longer exists from manual + + * doc/emacs/haiku.texi: Remove nonexistent variable. + +2021-11-21 Stefan Kangas <stefan@marxist.se> + + Adapt isearch help screen for variable-pitch-mode + + * lisp/isearch.el (isearch-help-for-help-internal): Adapt for + 'variable-pitch-mode', now that 'make-help-screen' uses that. + +2021-11-21 Omar Polo <op@omarpolo.com> + + implement certfp authentication to rcirc + + * lisp/net/rcirc.el (rcirc-connect): Use the provided client certs + * doc/misc/rcirc.texi (Configuration): Document the change + +2021-11-21 Omar Polo <op@omarpolo.com> + + Move the sasl section after the bitlbee text + +2021-11-21 Philip Kaludercic <philipk@posteo.net> + + Improve error parsing for GCC -fanalyzer output + + * compile.el (compilation-error-regexp-alist-alist): Adjust gnu rule + * compile-tests.el (compile-tests--test-regexps-data): Add testcase + +2021-11-21 Eli Zaretskii <eliz@gnu.org> + + Fix positioning of pop-up menus when there are window-margins + + * src/menu.c (x_popup_menu_1): Calculate X and Y correctly for + clicks in the text area. (Bug#51782) + +2021-11-21 Robert Pluim <rpluim@gmail.com> + + Add :version tags to new mwheel defcustoms + + * lisp/mwheel.el (mouse-wheel-down-alternate-event): + (mouse-wheel-up-alternate-event): Add :version tag. + +2021-11-21 Eli Zaretskii <eliz@gnu.org> + + Minor cleanup in w32inevt.c + + * src/w32inevt.c (w32_console_mouse_position, mouse_moved_to) + (do_mouse_event): Use 'get_frame' to obtain the frame pointer. + +2021-11-21 Stefan Kangas <stefan@marxist.se> + + Use variable-pitch-mode in 'C-h C-h' + + * lisp/faces.el (help-key-binding): Inherit 'fixed-pitch'. + * lisp/help-macro.el (make-help-screen): Use + 'variable-pitch-mode'. + + This was discussed in + https://lists.gnu.org/r/emacs-devel/2021-11/msg01378.html + +2021-11-21 Michael Albinus <michael.albinus@gmx.de> + + Reorganize emba control files + + Using dynamic job generation in GitLab does not work sufficiently. So + we generate the jobs in the Emacs sources. + + * configure.ac (SUBDIR_MAKEFILES): Add test/infra/Makefile. + + * test/Makefile.in (subdirs, generate-test-jobs): New targets. + + * test/infra/Makefile.in: + * test/infra/test-jobs.yml: New files. + + * test/infra/default-gitlab-ci.yml: + * test/infra/test-jobs-generator.sh: Remove. + + * test/infra/gitlab-ci.yml: Insert contents of default-gitlab-ci.yml. + (stages): Remove generator and trigger. Add normal. + (test-jobs-generator, test-jobs-pipeline): Remove jobs. + (top): Include test-jobs.yml. + +2021-11-21 Po Lu <luangruo@yahoo.com> + + Fix double and triple click in Haiku. + + * src/haikuterm.c (haiku_read_socket): Record timestamp + in events. + +2021-11-21 Po Lu <luangruo@yahoo.com> + + Report time in XInput 2 button events + + * src/xterm.c (handle_one_xevent): Report time in XI button + events. + +2021-11-21 Po Lu <luangruo@yahoo.com> + + Fix horizontal wheel events on Haiku + + * src/haikuterm.c (haiku_read_socket): Fix modifier + calculation for horizontal wheel events. + +2021-11-21 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 0dd3883def Update to Org 9.5-72-gc5d6656 + e3d5337970 Fix mouse handling with several TTY frames on MS-Windows + 7e437af413 Fix temacs invocation from outside of the 'src' directory + 0fbfd4253e ; Avoid byte-compilation warnings in edmacro.el + c22c988b1f Fix mouse events on tab bar or tool bar when 'track-mouse'... + 354c834fba Fix `browse-url-interactive-arg' for certain kinds of events + + # Conflicts: + # lisp/mouse.el + +2021-11-21 Lars Ingebrigtsen <larsi@gnus.org> + + Fill the Emacs version on the splash page + + * lisp/startup.el (fancy-startup-tail): + (normal-mouse-startup-screen): + (normal-no-mouse-startup-screen): Fill the Emacs version data, + since it's usually longer than a single line, anyway. + +2021-11-21 Po Lu <luangruo@yahoo.com> + + Implement `pick_embedded_child' for offscreen xwidgets + + * src/xwidget.c (pick_embedded_child): New function. + (Fmake_xwidget): Connect `pick-embedded-child' signal + to offscreen window. + +2021-11-21 Stefan Kangas <stefan@marxist.se> + + Revert "* admin/gitmerge.el (gitmerge-mode-map): Convert to defvar-keymap." + + This reverts commit 4c467e4aff12e65fa4fa62d7f4bdcbf4a2bcd92c. + +2021-11-21 dickmao <dick.r.chiang@gmail.com> + + Fix icalendar time zone parsing + + * lisp/calendar/icalendar.el (icalendar--decode-isodatetime): + Parse time zones more correctly. + * test/lisp/calendar/icalendar-tests.el + (icalendar-tests--decode-isodatetime): Fix tests so that they work + in other time zones than Europe/Berlin (bug#51959). + +2021-11-21 Po Lu <luangruo@yahoo.com> + + Fix documentation string of x_coalesce_scroll_events + + * src/xterm.c (x_coalesce_scroll_events): Update doc string to + reflect that this option is now supported under Haiku. + +2021-11-21 Eli Zaretskii <eliz@gnu.org> + + Improve the fix for bug#51864 + + * src/xfaces.c (face_at_buffer_position): Call + FACE_FROM_ID_OR_NULL just once. + (face_at_string_position): Make sure we have a usable base face. + +2021-11-21 Po Lu <luangruo@yahoo.com> + + Improve Haiku documentation + + * doc/emacs/haiku.texi: Remove duplicate text and + extraneous pxref. + +2021-11-21 Po Lu <luangruo@yahoo.com> + + Add a user command to stop page loading in xwidget-webkit + + * lisp/xwidget.el: Add `xwidget-webkit-stop' to menu. + (xwidget-webkit-stop): New command. + (xwidget-webkit-tool-bar-map): New tool bar item. + +2021-11-20 Po Lu <luangruo@yahoo.com> + + Fix compiler warnings + + * src/haikuterm.c (haiku_read_socket): Fix compiler + warnings intoduced by last change. + +2021-11-20 Po Lu <luangruo@yahoo.com> + + Add pixel delta support for wheel events on Haiku + + * src/haiku_support.cc (EmacsWindow.MessageReceived): Stop + adjusting scroll deltas. + * src/haikuterm.c (haiku_read_socket): Handle pixel deltas + correctly. + +2021-11-20 Po Lu <luangruo@yahoo.com> + + Attach download-started signals to correct WebKit context + + * src/xwidget.c (Fmake_xwidget): Use correct context. + +2021-11-20 Po Lu <luangruo@yahoo.com> + + Allow handling smooth scroll events in xwidgets + + * src/xterm.c (handle_one_xevent): Pass through XI2 motion + events to xwidgets. + * src/xterm.c (xwidget_button): Don't handle legacy scroll + events on XInput 2. + (xwidget_motion_notify, xwidget_scroll): New functions. + +2021-11-20 Po Lu <luangruo@yahoo.com> + + Select device notification events correctly + + * src/xfns.c (setup_xi_event_mask): Select PropertyEvent, + HierarchyChanged and DeviceChanged for all devices. + +2021-11-20 Po Lu <luangruo@yahoo.com> + + Add XInput 2 input method support + + * src/xterm.c (handle_one_xevent): Let input methods filter + events first before trying to handle an XI2 key press event. + +2021-11-20 Michael Albinus <michael.albinus@gmx.de> + + * test/infra/test-jobs-generator.sh: Generate also stages entry. + + Revert last change on emba files + +2021-11-20 Po Lu <luangruo@yahoo.com> + + Add support for the Haiku operating system and its window system + + * .gitignore: Add binaries specific to Haiku. + + * Makefie.in (HAVE_BE_APP): New variable. + (install-arch-dep): Install Emacs and Emacs.pdmp when + using Haiku. + + * configure.ac: Detect and configure for Haiku and + various related configurations. + (be-app, be-freetype, be-cairo): New options. + (HAVE_BE_APP, HAIKU_OBJ, HAIKU_CXX_OBJ) + (HAIKU_LIBS, HAIKU_CFLAGS): New variables. + (HAIKU, HAVE_TINY_SPEED_T): New define. + (emacs_config_features): Add BE_APP. + + * doc/emacs/Makefile.in (EMACSSOURCES): Add Haiku + appendix. + + * doc/emacs/emacs.texi: Add Haiku appendix to menus and + include it. + + * doc/emacs/haiku.texi: New Haiku appendix. + + * doc/lispref/display.texi (Defining Faces, Window Systems): + Explain meaning of `haiku' as a window system identifier. + (haiku-use-system-tooltips): Explain meaning of system + tooltips on + Haiku. + + * doc/lispref/frames.texi (Multiple Terminals): Explain + meaning of haiku as a display type. + (Frame Layout): Clarify section for Haiku frames. + (Size Parameters): Explain limitations of fullwidth and + fullheight on Haiku. + (Management Parameters): Explain limitations of + inhibiting double buffering on builds with Cairo, + and the inability of frames with no-accept-focus to + receive keyboard input on Haiku. + (Font and Color Parameters): Explain the different font + backends available on Haiku. + (Raising and Lowering): Explain that lowering and + restacking frames doesn't work on Haiku. + (Child Frames): Explain oddities of child frame + visibility on Haiku. + + * doc/lispref/os.texi (System Environment): Explain + meaning of haiku. + * etc/MACHINES: Add appropriate notices for Haiku. + * etc/NEWS: Document changes. + * etc/PROBLEMS: Document font spacing bug on Haiku. + + * lib-src/Makefile.in: Build be-resources binary on + Haiku. + (CXX, CXXFLAGS, NON_CXX_FLAGS, ALL_CXXFLAGS) + (HAVE_BE_APP, HAIKU_LIBS, HAIKU_CFLAGS): New variables. + (DONT_INSTALL): Add be-resources binary if on Haiku. + (be-resources): New target. + + * lib-src/be_resources.cc: Add helper binary for setting + resources on the Emacs application. + + * lib-src/emacsclient.c (decode_options): Set + alt_display to "be" on Haiku. + + * lisp/cus-edit.el (custom-button, custom-button-mouse) + (custom-button-unraised, custom-button-pressed): Update + face definitions for Haiku. + + * lisp/cus-start.el: Add haiku-debug-on-fatal-error and + haiku-use-system-tooltips. + + * lisp/faces.el (face-valid-attribute-values): Clarify + attribute comment for Haiku. + (tool-bar): Add appropriate toolbar color for Haiku. + + * lisp/frame.el (haiku-frame-geometry) + (haiku-mouse-absolute-pixel-position) + (haiku-set-mouse-absolute-pixel-position) + (haiku-frame-edges) + (haiku-frame-list-z-order): New function declarations. + + (frame-geometry, frame-edges) + (mouse-absolute-pixel-position) + (set-mouse-absolute-pixel-position) + (frame-list-z-order): Call appropriate window system + functions on Haiku. + + (display-mouse-p, display-graphic-p) + (display-images-p, display-pixel-height) + (display-pixel-width, display-mm-height) + (display-mm-width, display-backing-store) + (display-save-under, display-planes) + (display-color-cells, display-visual-class): Update type + tests for Haiku. + + * lisp/international/mule-cmds.el + (set-coding-system-map): Also + prevent set-terminal-coding-system from appearing in the menu + bar on Haiku. + + * lisp/loadup.el: Load Haiku-specific files when built + with Haiku, and don't rename newly built Emacs on Haiku as BFS + doesn't support hard links. + + * lisp/menu-bar.el (menu-bar-open): Add for Haiku. + + * lisp/mwheel.el (mouse-wheel-down-event): Expect + wheel-up on Haiku. + (mouse-wheel-up-event): Expect wheel-down on Haiku. + (mouse-wheel-left-event): Expect wheel-left on Haiku. + (mouse-wheel-right-event): Expect wheel-right on Haiku. + + * lisp/net/browse-url.el + (browse-url--browser-defcustom-type): + Add option for WebPositive. + (browse-url-webpositive-program): New variable. + (browse-url-default-program): Search for WebPositive. + (browse-url-webpositive): New function. + + * lisp/net/eww.el (eww-form-submit, eww-form-file) + (eww-form-checkbox, eww-form-select): Define faces + appropriately for Haiku. + + * lisp/term/haiku-win.el: New file. + + * lisp/tooltip.el (menu-or-popup-active-p): New function + declaration. + (tooltip-show-help): Don't use tooltips on Haiku when a + menu is active. + + * lisp/version.el (haiku-get-version-string): New + function declaration. + (emacs-version): Add Haiku version string if + appropriate. + + * src/Makefile.in: Also produce binary named "Emacs" + with Haiku resources set. + + (CXX, HAIKU_OBJ, HAIKU_CXX_OBJ, HAIKU_LIBS) + (HAIKU_CFLAGS, HAVE_BE_APP, NON_CXX_FLAGS) + (ALL_CXX_FLAGS): New variables. + + (.SUFFIXES): Add .cc. + (.cc.o): New target. + (base_obj): Add Haiku C objects. + (doc_obj, obj): Split objects that should scanned for + documentation into doc_obj. + (SOME_MACHINE_OBJECTS): Add appropriate Haiku C objects. + (all): Depend on Emacs and Emacs.pdmp on Haiku. + (LIBES): Add Haiku libraries. + (gl-stamp) + ($(etc)/DOC): Scan doc_obj instead of obj + (temacs$(EXEEXT): Use C++ linker on Haiku. + (ctagsfiles3): New variable. + (TAGS): Scan C++ files. + + * src/alloc.c (garbage_collect): Mark Haiku display. + + * src/dispextern.h (HAVE_NATIVE_TRANSFORMS): Also enable + on Haiku. + (struct image): Add fields for Haiku transforms. + (RGB_PIXEL_COLOR): Define to unsigned long on Haiku as + well. + (sit_for): Also check USABLE_SIGPOLL. + (init_display_interactive): Set initial window system to + Haiku on Haiku builds. + + * src/emacs.c (main): Define Haiku syms and init haiku + clipboard. + (shut_down_emacs): Quit BApplication on Haiku and + trigger debug + on aborts if haiku_debug_on_fatal_error. + (Vsystem_type): Update docstring. + + * src/fileio.c (next-read-file-uses-dialog-p): Enable on + Haiku. + + * src/filelock.c (WTMP_FILE): Only define if BOOT_TIME + is also defined. + + * src/floatfns.c (double_integer_scale): Work around + Haiku libroot brain damage. + + * src/font.c (syms_of_font): Define appropriate font + driver symbols for Haiku builds with various options. + + * src/font.h: Also enable ftcrfont on Haiku builds with + Cairo. + (font_data_structures_may_be_ill_formed): Also enable on + Haiku builds that have Cairo. + + * src/frame.c (Fframep): Update doc-string for Haiku + builds and return haiku if appropriate. + (syms_of_frame): New symbol `haiku'. + + * src/frame.h (struct frame): Add output data for Haiku. + (FRAME_HAIKU_P): New macro. + (FRAME_WINDOW_P): Test for Haiku frames as well. + + * src/ftcrfont.c (RED_FROM_ULONG, GREEN_FROM_ULONG) + (BLUE_FROM_ULONG): New macros. + (ftcrfont_draw): Add haiku specific code for Haiku + builds with Cairo. + + * src/ftfont.c (ftfont_open): Set face. + (ftfont_has_char, ftfont_text_extents): Work around + crash. + (syms_of_ftfont): New symbol `mono'. + + * src/ftfont.h (struct font_info): Enable Cairo-specific + fields for Cairo builds on Haiku. + + * src/haiku_draw_support.cc: + * src/haiku_font_support.cc: + * src/haiku_io.c: + * src/haiku_select.cc: + * src/haiku_support.cc: + * src/haiku_support.h: + * src/haikufns.c: + * src/haikufont.c: + * src/haikugui.h: + * src/haikuimage.c: + * src/haikumenu.c: + * src/haikuselect.c: + * src/haikuselect.h: + * src/haikuterm.c: + * src/haikuterm.h: Add new files for Haiku windowing + support. + + * src/haiku.c: Add new files for Haiku operating system + support. + + * src/image.c: Implement image transforms and native XPM + support + on Haiku. + + (GET_PIXEL, PUT_PIXEL, NO_PIXMAP) + (PIX_MASK_RETAIN, PIX_MASK_DRAW) + (RGB_TO_ULONG, RED_FROM_ULONG, GREEN_FROM_ULONG) + (BLUE_FROM_ULONG, RED16_FROM_ULONG, GREEN16_FROM_ULONG) + (BLUE16_FROM_ULONG): Define to appropriate values on + Haiku. + + (image_create_bitmap_from_data): Add Haiku support. + (image_create_bitmap_from_file): Add TODO on Haiku. + (free_bitmap_record): Free bitmap on Haiku. + (image_size_in_bytes): Implement for Haiku bitmaps. + (image_set_transform): Implement on Haiku. + (image_create_x_image_and_pixmap_1): Implement on Haiku, + 24-bit or 1-bit only. + (image_destroy_x_image, image_get_x_image): Use correct + img and pixmap values on Haiku. + (lookup_rgb_color): Use correct macro on Haiku. + (image_to_emacs_colors): Implement on Haiku. + (image_disable_image): Disable on Haiku. + (image_can_use_native_api): Test for translator presence + on Haiku. + (native_image_load): Use translator on Haiku. + (imagemagick_load_image): Add Haiku-specific quirks. + (Fimage_transforms_p): Allow rotate90 on Haiku. + (image_types): Enable native XPM support on Haiku. + (syms_of_image): Enable XPM images on Haiku. + + * src/keyboard.c (kbd_buffer_get_event) + (handle_async_input, handle_input_available_signal) + (handle_user_signal, Fset_input_interrupt_mode) + (init_keyboard): Check for USABLE_SIGPOLL along with + USABLE_SIGIO. + + * src/lisp.h (pD): Work around broken Haiku headers. + (HAVE_EXT_MENU_BAR): Define on Haiku. + (handle_input_available_signal): Enable if we just have + SIGPOLL as well. + + * src/menu.c (have_boxes): Return true on Haiku. + (single_menu_item): Enable toolkit menus on Haiku. + (find_and_call_menu_selection): Also enable on Haiku. + + * src/process.c (keyboard_bit_set): Enable with only + usable SIGPOLL. + (wait_reading_process_output): Test for SIGPOLL as well + as SIGIO availability. + + * src/sound.c (sound_perror, vox_open) + (vox_configure, vox_close): Enable for usable SIGPOLL as + well. + + * src/sysdep.c (sys_subshell): Enable for usable SIGPOLL. + (reset_sigio): Make conditional on F_SETOWN. + (request_sigio, unrequest_sigio) + (emacs_sigaction_init): Also handle SIGPOLLs. + (init_sys_modes): Disable TCXONC usage on Haiku, as it + doesn't have any ttys other than pseudo ttys, which don't + support C-s/C-q flow control, and causes compiler warnings. + (speeds): Disable high speeds if HAVE_TINY_SPEED_T. + + * src/termhooks.h (enum output_method): Add output_haiku. + (struct terminal): Add Haiku display info. + (TERMINAL_FONT_CACHE): Enable for Haiku. + + * src/terminal.c (Fterminal_live_p): Return `haiku' if + appropriate. + * src/verbose.mk.in (AM_V_CXX, AM_V_CXXLD): New logging + variables. + + * src/xdisp.c (redisplay_internal) + (note_mouse_highlight): Return on Haiku if a popup is activated. + (display_menu_bar): Return on Haiku if frame is a Haiku + frame. + + * src/xfaces.c (GCGraphicsExposures): Enable correctly on Haiku. + (x_create_gc): Enable dummy GC code on Haiku. + + * src/xfns.c (x-server-version, x-file-dialog): Add + Haiku specifics to doc strings. + + * src/xterm.c (syms_of_xterm): Add Haiku information to + doc string. + +2021-11-20 Stefan Kangas <stefan@marxist.se> + + Make string-animate smoother + + * lisp/play/animate.el (animate-total-added-delay): New defcustom. + (animate-n-steps): Double the default value. Use :type 'natnum'. + (animate-string): Make the delay depend on the above new defcustom + divided by the number of steps. + +2021-11-20 Po Lu <luangruo@yahoo.com> + + Prevent crashes when scrolling in an unknown Window on XI2 + + * src/xterm.c (handle_one_xevent): Fix XI2 frame lookup to + handle foreign windows. + +2021-11-20 Po Lu <luangruo@yahoo.com> + + Fix xwidgets with XInput 2 builds + + * src/xwidget.c (Fmake_xwidget): Refrain from synthesizing + a focus event here on XI2 builds. + (Fxwidget_perform_lispy_event): Try to set embedder on XI2 + builds and do nothing otherwise. + (synthesize_focus_in_event): Use focus_change.window as opposed + to any.window. + (x_draw_xwidget_glyph_string): Synthesize focus event here + instead on XI2 builds. + +2021-11-20 Stefan Kangas <stefan@marxist.se> + + Make 'eval' use lexical scoping in most tests + + * test/lisp/electric-tests.el (electric-pair-define-test-form) + (define-electric-pair-test): + * test/lisp/emacs-lisp/backtrace-tests.el + (backtrace-tests--uncompiled-functions): + * test/lisp/emacs-lisp/cl-macs-tests.el + (cl-macs-test--symbol-macrolet): + * test/lisp/emacs-lisp/let-alist-tests.el + (let-alist-list-to-sexp): + * test/lisp/emacs-lisp/lisp-tests.el + (elisp-tests-with-temp-buffer, core-elisp-tests-3-backquote): + * test/lisp/emacs-lisp/testcover-resources/testcases.el + (testcover-testcase-nth-case): + * test/lisp/ffap-tests.el (ffap-ido-mode): + * test/lisp/files-tests.el (file-test--do-local-variables-test): + * test/lisp/net/tramp-tests.el (tramp--test-utf8): + * test/lisp/progmodes/elisp-mode-tests.el + (find-defs-defgeneric-eval, find-defs-defun-eval) + (find-defs-defvar-eval, find-defs-face-eval) + (find-defs-feature-eval): Give 'eval' non-nil LEXICAL argument. + * test/lisp/subr-tests.el + (subr-tests--dolist--wrong-number-of-args): + * test/src/eval-tests.el (eval-tests--if-dot-string) + (eval-tests--mutating-cond) + (eval-tests-19790-backquote-comma-dot-substitution): Test 'eval' + using LEXICAL as both nil and non-nil. + (eval-tests--let-with-circular-defs): Give explicit nil to 'eval'. + +2021-11-20 Stefan Kangas <stefan@marxist.se> + + image-dired: Improve some messages + + * lisp/image-dired.el (image-dired-dir) + (image-dired-create-thumb-1): Improve messages. + (image-dired-rotate-original): Signal 'user-error' instead of 'error'. + +2021-11-20 Stefan Kangas <stefan@marxist.se> + + Convert snake and tetris keymaps to defvar-keymap + + * lisp/play/snake.el (snake-mode-map, snake-null-map): + * lisp/play/tetris.el (tetris-mode-map, tetris-null-map): Convert + to defvar-keymap. + +2021-11-20 Lars Ingebrigtsen <larsi@gnus.org> + + Make shr render text with superscripts prettier + + * lisp/net/shr.el (shr-sup): New face. + (shr-tag-sup, shr-tag-sub): Use it to make the super/subscripts + slightly smaller so that we don't get uneven line heights with + text that uses these. + +2021-11-20 Po Lu <luangruo@yahoo.com> + + Fix a comment in XInput related code + + * src/xterm.c (x_term_init): Fix comment to say "XInput 2.1" + instead of "XInput 1.1". + +2021-11-20 Po Lu <luangruo@yahoo.com> + + Expose pixel-wise wheel events to Lisp + + * doc/lispref/commands.texi (Misc Events): Document changes to + wheel events. + + * src/keyboard.c (make_lispy_event): Handle wheel events with + pixel delta data. + * src/termhooks.h (WHEEL_EVENT): Document changes to + WHEEL_EVENT args. + * src/xfns.c (syms_of_xfns): Declare new symbols. + * src/xterm.c (handle_one_xevent): Give wheel events pixel delta + data. + (x_coalesce_scroll_events): New user option. + +2021-11-20 Po Lu <luangruo@yahoo.com> + + Add support for event processing via XInput 2 + + * configure.ac: Add an option to use XInput 2 if available. + * src/Makefile.in (XINPUT_LIBS, XINPUT_CFLAGS): New variables. + (EMACS_CFLAGS): Add Xinput CFLAGS. + (LIBES): Add XInput libs. + * src/xmenu.c (popup_activated_flag): Expose flag if + XInput 2 is available. + * src/xfns.c (x_window): Set XInput 2 event mask. + (setup_xi_event_mask): New function. + (syms_of_xfns): Provide XInput 2 feature. + * src/xterm.c (x_detect_focus_change): Handle XInput 2 + GenericEvents. + (handle_one_xevent): Handle XInput 2 events. + (x_term_init): Ask the server for XInput 2 support and set + xkb_desc if available. + (x_delete_terminal): Free XKB kb desc if it exists, and free + XI2 devices if they exist. + (xi_grab_or_ungrab_device) + (xi_reset_scroll_valuators_for_device_id) + (x_free_xi_devices, x_init_master_valuators): New functions. + (x_get_scroll_valuator_delta): New function. + (init_xterm): Don't tell GTK to only use Core Input when built + with XInput 2 support. + * src/xterm.h (struct x_display_info): Add fields for XKB + and XI2 support. + * src/gtkutil.c (xg_event_is_for_menubar): Handle + XIDeviceEvents. + (xg_is_menu_window): New function. + (xg_event_is_for_scrollbar): Handle XIDeviceEvents. + * etc/NEWS: Document changes. + + * lisp/mwheel.el (mouse-wheel-down-alternate-event) + (mouse-wheel-up-alternate-event) + (mouse-wheel-left-alternate-event) + (mouse-wheel-right-alternate-event): New user options. + + (mouse-wheel-text-scale) + (mwheel-scroll): Test for alternate events. + (mouse-wheel--setup-bindings): Set up bindings for alternate + buttons. + +2021-11-20 Po Lu <luangruo@yahoo.com> + + Allow terminating page loading operations in webkit xwidgets + + * doc/lispref/display.texi (Xwidgets): Document new function. + * etc/NEWS: Announce `xwidget-webkit-stop-loading'. + * src/xwidget.c (Fxwidget_webkit_stop_loading): New function. + (syms_of_xwidget): Define new subr. + +2021-11-20 Gregory Heytings <gregory@heytings.org> + + Implement the buttonForeground resource + + * lwlib/xlwmenu.c (draw_shadow_rectangle, draw_shadow_rhombus): + Use the buttonForeground resource color (bug#51988). + +2021-11-20 Lars Ingebrigtsen <larsi@gnus.org> + + Fix another narrow-to-defun problem in js-mode + + * lisp/progmodes/js.el (js--function-prologue-beginning): Fix typo + in looking-back form (bug#51926). + +2021-11-20 Michael Albinus <michael.albinus@gmx.de> + + Continue adaptions of emba files + + * test/infra/default-gitlab-ci.yml: New file, derived from + gitlab-ci.yml. + + * test/infra/gitlab-ci.yml (top, test-jobs-pipeline): + Include default-gitlab-ci.yml. + (stages): Remove normal. + + * test/infra/test-jobs-generator.sh: Generate also stages entry. + +2021-11-20 Po Lu <luangruo@yahoo.com> + + Make xwidget-events special and document xwidget callbacks + + Users have always been supposed to use callbacks for handling + xwidget events, but for some reason this has not been + documented until now. + + * doc/lispref/commands.texi (Xwidget Events): Document xwidget + callbacks and the special status of `xwidget-event's. + + * doc/lispref/display.texi (Xwidgets): Add xwidget property + list functions to the concept index. + + * lisp/xwidget.el: Make xwidget events special. + +2021-11-20 Po Lu <luangruo@yahoo.com> + + Use `xwidget-live-p' inside `xwidget-at'. + + It should no longer be possible for Lisp code to abuse internal + xwidget state, or cause crashes with killed xwidgets and such, + so the pedantic checking done in this function is no longer + necessary. (In fact, it is even wrong, as it won't catch + killed xwidgets.) + + * lisp/xwidget.el (xwidget-at): Use `xwidget-live-p'. + +2021-11-20 Po Lu <luangruo@yahoo.com> + + Remove nonsensical command in xwidget-webkit-mode-map + + * lisp/xwidget.el (xwidget-webkit-mode-map): Remove nonsensical + command binding. + +2021-11-20 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + c1eea85be1 * test/lisp/net/tramp-tests.el (tramp-get-remote-gid): Rem... + +2021-11-20 Po Lu <luangruo@yahoo.com> + + Fix option type of `xwidget-webkit-cookie-file' again + + * lisp/xwidget.el (xwidget-webkit-cookie-file): Revert changes + caused by rebase. + +2021-11-20 Po Lu <luangruo@yahoo.com> + + Clarify doc string in xwidget-webkit + + * lisp/xwidget.el (xwidget-webkit-buffer-name-format): Update + doc string. + +2021-11-19 Glenn Morris <rgm@gnu.org> + + * lisp/xwidget.el (xwidget-webkit-cookie-file): Fix type. + +2021-11-19 Po Lu <luangruo@yahoo.com> + + Make xwidget-webkit default to not storing cookies + + * etc/NEWS: Update to reflect change. + * lisp/xwidget.el (xwidget-webkit-cookie-file): Set default + value to nil. + +2021-11-19 Michael Albinus <michael.albinus@gmx.de> + + Fix Tramp test + + * test/lisp/net/tramp-tests.el (tramp-test07-abbreviate-file-name): + Skip Ange FTP test. + +2021-11-19 Michael Albinus <michael.albinus@gmx.de> + + Fix stage in gitlab-ci.yml + +2021-11-19 Michael Albinus <michael.albinus@gmx.de> + + Add more test jobs for emba + + * test/Makefile.in (SUBDIRS): Suppress "*auto-save-list". + (SUBDIR_TARGETS): New variable. + (subdir_template): Set it. + (subdir-targets): New target. + + * test/infra/gitlab-ci.yml (variables): Add CI_DEBUG_TRACE. + (build-image-inotify): Remove timeout. + (generator, test-jobs-pipeline): New jobs. + (test-lisp-inotify, test-lisp-net-inotify): Comment. + + * test/infra/test-jobs-generator.sh: New script. + +2021-11-19 Eli Zaretskii <eliz@gnu.org> + + Fix doc strings in ucs-normalize.el + + * lisp/international/ucs-normalize.el (ucs-normalize-NFD-region) + (ucs-normalize-NFD-string, string-glyph-compose) + (string-glyph-decompose, ucs-normalize-NFC-string) + (ucs-normalize-NFKD-region, ucs-normalize-NFKD-string) + (ucs-normalize-NFKC-region, ucs-normalize-NFKC-string) + (ucs-normalize-HFS-NFD-region, ucs-normalize-HFS-NFC-region): Fix + wording and typos. + +2021-11-19 Eli Zaretskii <eliz@gnu.org> + + Fix documentation of last commit + + * lisp/xwidget.el (xwidget-webkit-cookie-file): Don't use "path" + for file names in the doc string. Improve wording and markup of + the doc string. + + * src/xwidget.c (Fxwidget_webkit_set_cookie_storage_file): + * doc/lispref/display.texi (Xwidgets): Don't use "path" for file + names. + + * etc/NEWS: Improve the wording of the entry about + 'xwidget-webkit-cookie-file'. + +2021-11-19 Po Lu <luangruo@yahoo.com> + + Allow controlling where xwidget-webkit stores cookies + + * doc/lispref/display.texi (Xwidgets): Document new function. + * etc/NEWS: Announce `xwidget-webkit-cookie-file' and + `xwidget-webkit-set-cookie-storage-file'. + + * lisp/xwidget.el (xwidget-webkit-cookie-file): New user + option. + (xwidget-webkit-new-session): Set cookie storage file. + + * src/xwidget.c (Fmake_xwidget): Create new context for + each unrelated widget. + (Fxwidget_webkit_set_cookie_storage_file): New function. + (syms_of_xwidget): Define new subr. + +2021-11-19 Po Lu <luangruo@yahoo.com> + + Use CHECK_LIVE_XWIDGET in xwidget-webkit-estimated-load-progress + + * src/xwidget.c (Fxwidget_webkit_estimated_load_progress): Check + for live xwidgets instead. + +2021-11-19 Po Lu <luangruo@yahoo.com> + + Display page loading progress in xwidget webkit + + * lisp/xwidget.el (xwidget-webkit--title): Remove internal + variable. + (xwidget-webkit--loading-p) + (xwidget-webkit--progress-update-timer): New variables. + (xwidget-webkit--update-progress-timer-function): New function. + (xwidget-webkit-callback): Set up progress update timer during + page loads. + (xwidget-webkit-mode): Add page load progress to header line + format. + +2021-11-19 Stefan Kangas <stefan@marxist.se> + + Improve doc-view-mode menus + + * lisp/doc-view.el (doc-view-menu): Extend menu. + (doc-view-minor-mode-menu): New menu. + +2021-11-19 Po Lu <luangruo@yahoo.com> + + Add `xwidget-webkit-estimated-load-progress' + + * doc/lispref/display.texi (Xwidgets): Document new function. + * etc/NEWS: Announce new function. + + * src/xwidget.c (Fxwidget_webkit_estimated_load_progress): New + function. + (syms_of_xwidget): Define new subr. + +2021-11-19 Lars Ingebrigtsen <larsi@gnus.org> + + Make puny-encode-string normalize first + + * lisp/net/puny.el (puny-encode-string): Normalize before encoding + (bug#51954). + +2021-11-19 Lars Ingebrigtsen <larsi@gnus.org> + + Regenerate ldefs-boot + +2021-11-19 Lars Ingebrigtsen <larsi@gnus.org> + + Make UCS compose/decompose functions more understandable + + * lisp/international/ucs-normalize.el () + (ucs-normalize-NFD-region, ucs-normalize-NFD-string) + (ucs-normalize-NFC-region, ucs-normalize-NFC-string) + (ucs-normalize-NFKD-region, ucs-normalize-NFKD-string) + (ucs-normalize-NFKC-region, ucs-normalize-NFKC-string): Make the + doc strings say what they actually do. + +2021-11-19 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 02853edba7 Fix sorting of menus in `context-menu-local' (bug#50067). + 14271d050a Fix flyspell-correct-word selected from context menu opene... + bf824843f4 * lisp/repeat.el (describe-repeat-maps): Print all bound k... + 6fc94fb99e * lisp/tab-bar.el: Use 'mouse-1' for history buttons like ... + 5eeaf85767 Improve documentation of window hooks + 7404f4b4e0 Improve doc string of 'highlight-nonselected-windows' + +2021-11-18 Po Lu <luangruo@yahoo.com> + + Fix documentation on xwidgets + + * doc/lispref/display.texi (Xwidgets): Refer to correct + function. + +2021-11-18 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/files.el (file-has-changed-p): Index the cache with absolute file names + + * lisp/net/mailcap.el (mailcap-parse-mailcaps): Fix $MAILCAPS case + +2021-11-18 Mattias Engdegård <mattiase@acm.org> + + Turn mistaken functions into tests (bug#51941) + + * test/lisp/calendar/icalendar-tests.el + (icalendar-tests--decode-isodatetime): + * test/src/eval-tests.el + (eval-tests-19790-backquote-comma-dot-substitution): + Change `defun` into `ert-deftest` where this seems to have been the + original intention. + +2021-11-18 Mattias Engdegård <mattiase@acm.org> + + String backslash corrections + + * lisp/net/shr.el (shr-tag-video): Remove ineffective backslash. + * test/lisp/emacs-lisp/package-tests.el + (package-test-macro-compilation-gz): Make dot literal as intended. + +2021-11-18 Michael Albinus <michael.albinus@gmx.de> + + Do not exclude emacs-module-tests.el on emba + + * test/infra/gitlab-ci.yml (test-native-comp-speed0) + (test-all-inotify): Do not exclude emacs-module-tests.el. + + * test/src/emacs-module-tests.el + (module--test-assertions--load-non-live-object) + (module--test-assertions--load-non-live-object-with-global-copy) + (module--test-assertions--call-emacs-from-gc) + (module--test-assertions--globref-invalid-free): Tag them as + :unstable on emba. (Bug#50902) + +2021-11-18 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el: Optimize data usage for nil tab-bar-history-mode. + + * lisp/tab-bar.el (tab-bar--tab): Add wc-history-back and + wc-history-forward only when tab-bar-history-mode is non-nil. + (tab-bar-select-tab): Use wc-history-back and + wc-history-forward only when tab-bar-history-mode is non-nil. + (tab-bar-new-tab-to): Reset tab-bar-history-back and + tab-bar-history-forward to nil. + +2021-11-18 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el: Avoid micro-steps in tab-bar-history-back/forward. + + * lisp/tab-bar.el (tab-bar-history-pre-command) + (tab-bar-history-done-command): New variables. + (tab-bar--history-pre-change): Set 'tab-bar-history-omit' and + 'tab-bar-history-pre-command'. + (tab-bar--history-change): Use 'tab-bar-history-done-command' and + 'tab-bar-history-pre-command' (bug#51370). + +2021-11-18 Juri Linkov <juri@linkov.net> + + * lisp/vc/diff-mode.el (diff-minor-mode-prefix): Fix typo from 44faf54659 + +2021-11-18 Protesilaos Stavrou <info@protesilaos.com> + + Update modus-themes to version 1.7.0 + + * doc/misc/modus-themes.org (File): Use new version and add release + date. + (How do the themes look like, Learn about the latest changes): Update + link to new URL. + (Enable and load): Update text of internal reference. + (Sample configuration for use-package): Add sample configuration + without the 'use-package' infrastructure. + (Differences between loading and enabling): Minor rewordings. + (Customization Options): Update sample code to cover latest changes. + + (Option for inhibiting theme reload) + (Option for color-coding success state (deuteranopia)) + (Option for more bold constructs) + (Option for more italic constructs) + (Option for syntax highlighting) + (Option for links) + (Option for command prompt styles) + (Option for mode line presentation) + (Option for accented background in tab interfaces) + (Option for completion framework aesthetics) + (Option for mail citations) + (Option for fringe visibility) + (Option for language checkers) + (Option for line highlighting (hl-line-mode)) + (Option for line numbers (display-line-numbers-mode)) + (Option for parenthesis matching (show-paren-mode)) + (Option for active region) + (Option for diff buffer looks) + (Option for org-mode block styles) + (Option for Org agenda constructs) + (Option for scaled headings) + (Control the scale of headings) + (Option for variable-pitch font in UI elements) + (Option for variable-pitch font in headings): Write brief description, + document the type of the user option, and make any other relevant + adjustments. + + (Option for font mixing): Document new 'modus-themes-mixed-fonts' user + option, which supersedes the old 'modus-themes-no-mixed-fonts'. + (Option for mode line padding): Document new user option + 'modus-themes-mode-line-padding'. + (Option for language checkers): Include new available property for the + user option 'modus-themes-lang-checkers'. Reword the rest of the + entry. + (Option for intense markup in Org and others): Describe new boolean + option 'modus-themes-intense-markup'. + (Option for Org agenda constructs): Include new available property for + the 'event' key in the alist 'modus-themes-org-agenda'. + (Option for the headings' overall style): Describe the new style of + explicitly specifying an optional font weight other than the implied + bold. + + (Font configurations for Org and others (DIY)) + (Configure bold and italic faces (DIY)): Reword and clarify some + statements. + (Decrease mode line height (DIY)): Add new Do-It-Yourself section on + tweaking the mode line's :box attribute. + (Full support for packages or face groups): Include new packages. + (Acknowledgements): Update list of contributors to code, user + feedback, etc. Does not affect the status of copyright assignment. + (Meta): Update URLs to protesilaos.com (my website). + + * etc/themes/modus-themes.el (modus-themes-variable-pitch) + (modus-themes-fixed-pitch, modus-themes-no-mixed-fonts): Reference the + new 'modus-themes-mixed-fonts' user option. + (modus-themes--headings-choice): Include new font weight styles. + (modus-themes-headings): Document the new feature of accepting an + explicit font weight. + (modus-themes-org-agenda): Document the refinements to the 'event' key + of the alist and the new 'varied' property it accepts. + (modus-themes-lang-checkers): Describe the new 'faint' property. + (modus-themes-mode-line-padding): Include new user option. + (modus-themes-intense-hl-line): Remove old-deprecated user option. + (modus-themes-intense-markup): Add new option. + (modus-themes-success-deuteranopia): Update doc string. + (modus-themes--fixed-pitch): Work with 'modus-themes-mixed-fonts'. + (modus-themes--lang-check): Update internal function to add the + 'faint' property of 'modus-themes-lang-checkers'. + (modus-themes--markup): Add helper function. + (modus-themes--heading-weights): Private variable with available font + weights. + (modus-themes--heading-weight): New helper function to pick the + desired font weight. + (modus-themes--heading): Update helper function to implement the + aforementioned change to 'modus-themes-headings'. + (modus-themes--agenda-event): Update helper function to apply the new + styles of 'modus-themes-org-agenda'. + (modus-themes--mode-line-padding): Add helper function for + 'modus-themes-mode-line-padding'. + (modus-themes--mode-line-attrs): Minor refinements. + (modus-themes-load-operandi, modus-themes-load-vivendi): Make these + functions interactive. + (modus-themes-faces): Update faces. + + * etc/themes/modus-operandi-theme.el: Bump version number. + * etc/themes/modus-vivendi-theme.el: Same. + + * * * + + A detailed change log entry is available here: + <https://protesilaos.com/codelog/2021-11-18-modus-themes-1-7-0/>. + +2021-11-18 Michael Albinus <michael.albinus@gmx.de> + + Extend abbreviate-file-name for further Tramp methods. + + * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist): + Add 'abbreviate-file-name'. + (tramp-gvfs-handle-expand-file-name): + * lisp/net/tramp.el (tramp-handle-expand-file-name): Handle case + that tilde cannot be expanded. + + * test/lisp/net/tramp-tests.el (tramp-test07-abbreviate-file-name): + Extend test. + +2021-11-18 Filipp Gunbin <fgunbin@fastmail.fm> + + Fixup for bug#51037 + + * lisp/emacs-lisp/ert.el (ert-batch-backtrace-line-length): Fix + docstring. + (ert-run-tests-batch): Remove redundant let-binding. + (ert-run-tests-interactively): Fix interactive spec. + +2021-11-18 Mattias Engdegård <mattiase@acm.org> + + Eliminate ERT test name clashes (bug#51941) + + * test/lisp/electric-tests.el (js-mode-braces-with-layout-and-indent): + * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-test-fifth): + * test/lisp/thingatpt-tests.el (test-symbol-thing-2): + Remove duplicated tests. + * test/lisp/emacs-lisp/generator-tests.el (cps-loop): + * test/lisp/emacs-lisp/ring-tests.el (ring-tests-insert): + * test/lisp/help-tests.el (help-tests-substitute-command-keys/no-change): + * test/lisp/net/netrc-tests.el (test-netrc-credentials): + * test/lisp/progmodes/elisp-mode-tests.el + (elisp-completes-functions-after-let-bindings): + * test/lisp/thingatpt-tests.el (test-symbol-thing-3): + * test/src/buffer-tests.el (deftest-overlayp-1, buffer-tests--*): + * test/src/buffer-tests.el (test-buffer-swap-text-1): + * test/src/data-tests.el (binding-test-set-constant-nil) + (data-tests-logcount): + Rename clashing tests. + +2021-11-18 Mattias Engdegård <mattiase@acm.org> + + Signal an error for duplicated ERT tests (bug#51941) + + Make `ert-deftest` fail with an error (in batch mode only) if an + existing test is redefined, because that is an easy mistake to make + and which leads to a test being discarded silently. + + lisp/emacs-lisp/ert.el (ert-set-test, ert-deftest): Add check. + etc/NEWS: Announce. + +2021-11-18 Mattias Engdegård <mattiase@acm.org> + + Avoid adding duplicates to Xref history + + * lisp/progmodes/xref.el (xref--push-backward, xref--push-forward): + New functions. + (xref-push-marker-stack, xref-go-back, xref-go-forward): Use them. + +2021-11-18 Lars Ingebrigtsen <larsi@gnus.org> + + Revert VC-related prefix user options to previous values + + * lisp/vc/smerge-mode.el (smerge-command-prefix): + * lisp/vc/pcvs.el (cvs-minor-mode-prefix): + * lisp/vc/diff-mode.el (diff-minor-mode-prefix): Revert to + previous values, as external packages rely on those values. + +2021-11-18 Lars Ingebrigtsen <larsi@gnus.org> + + Fix `narrow-to-defun' in "async function" in js-mode + + * lisp/progmodes/js.el (js--plain-method-re): + (js--function-prologue-beginning): + (js--ensure-cache): Allow "async" before "function" (bug#51926). + This makes `narrow-to-defun' work as expected. + +2021-11-18 Greg Minshall <minshall@umich.edu> + + Fix eldoc usage of newly introduced variable + + * lisp/emacs-lisp/eldoc.el + (eldoc-display-message-no-interference-p): Make this function work + in older Emacs versions again (bug#51939). + +2021-11-18 Lars Ingebrigtsen <larsi@gnus.org> + + Make the optional describe-map-tree parameters optional + + * lisp/help.el (describe-map-tree): Make the optional parameters + optional. This makes testing easier. + +2021-11-18 Miha Rihtaršič <miha@kamnitnik.top> + + Don't ignore restriction in indent-region-line-by-line + + * lisp/indent.el (indent-according-to-mode): Don't widen if the new + optional argument is non-nil. + (indent-region): Explicitly widen before calling + indent-region-line-by-line. + (indent-region-line-by-line): Don't widen (bug#51892). + + Emacs convention is that low-level functions should respect restriction + so that their callers can set restriction according to their needs. For + example, 'c-indent-region' is a lower-level function which respects the + current restriction and 'indent-region' is a higher-level user command + which sets the restriction for lower-level functions, it calls + "(widen)". + + 'indent-region-line-by-line' is a low-level function on a similar level + as 'c-indent-region'. This patch makes it respect the current + restriction instead of having it call "(widen)". + +2021-11-17 Mike Kupfer <mkupfer@alum.berkeley.edu> + + Fix two failing tests in mh-utils-tests + + * test/lisp/mh-e/mh-utils-tests.el + (mh-test-utils-mock-call-process): Add mock for root folders. + (mh-folder-completion-function-08-plus-slash) + (mh-folder-completion-function-09-plus-slash-tmp): Skip these tests + with Mailutils, which doesn't handle root folders. (Bug#51902) + +2021-11-17 Stefan Kangas <stefan@marxist.se> + + Revert "* lisp/image-dired.el: Remove unnecessary 'declare-function'." + + This reverts commit e0261d4a0cf2a23d32b51b84870a3a75f8273c7c. + + This commit gives warnings on builds --without-x. + Problem pointed out by Glenn Morris <rgm@gnu.org> in: + https://lists.gnu.org/r/emacs-devel/2021-11/msg01278.html + +2021-11-17 Eli Zaretskii <eliz@gnu.org> + + Fix recent changes related to USABLE_SIGIO + + * src/process.c (wait_reading_process_output) [WINDOWSNT]: + * src/keyboard.c (handle_async_input) [DOS_NT]: Ifdef away the + code that is not needed on MS-Windows. (Bug#50403) (Bug#51820) + +2021-11-17 Ken Brown <kbrown@cornell.edu> + + Make process_pending_signals useful on systems without SIGIO + + * src/keyboard.c (handle_async_input): Call gobble_input + unconditionally, not just if USABLE_SIGIO is defined. This makes + process_pending_signals do something useful on systems that have + to poll for input. (Bug#51820) + +2021-11-17 Ken Brown <kbrown@cornell.edu> + + Avoid delays waiting for input on systems without SIGIO + + * src/process.c (wait_reading_process_output) [!USABLE_SIGIO]: If + we're waiting for input, don't use a timeout of more than 25 msec + in the call to select. (Bug#50043) + +2021-11-17 Po Lu <luangruo@yahoo.com> + + Prevent subprocess hangs in xwidget + + * src/xwidget.c (Fmake_xwidget, Fxwidget_webkit_goto_url): Use + `catch_child_signal' instead of trying to preserve the previous + signal handler. + +2021-11-17 Stefan Kangas <stefan@marxist.se> + + Use substitute-command-keys in some messages + + * lisp/dired.el (dired-get-file-for-visit): + * lisp/doc-view.el (doc-view-buffer-message): + * lisp/help.el (help-window-setup): + * lisp/ibuf-ext.el (ibuffer-do-kill-lines): + * lisp/vc/ediff.el (ediff-documentation): Use 'substitute-command-keys'. + +2021-11-17 Po Lu <luangruo@yahoo.com> + + Don't draw xwidgets that have just been resized + + This serves to eliminate the huge black bar displayed when the + offscreen widget has been resized (and as such the damage event + signal is sent), but the X window hasn't. + + * src/xwidget.c (xv_do_draw): Don't draw xwidgets that have + just been resized. + (x_draw_xwidget_glyph_string) + (xwidget_init_view): Clear just_resized. + + (Fxwidget_resize): Set just_resized first, then queue allocate. + +2021-11-17 Stefan Kangas <stefan@marxist.se> + + Ignore some externally maintained files in AUTHORS + + * admin/authors.el (authors-ignored-files): Ignore externally + maintained files. + +2021-11-17 Stefan Kangas <stefan@marxist.se> + + * lisp/image-dired.el: Remove unnecessary 'declare-function'. + +2021-11-17 Lars Ingebrigtsen <larsi@gnus.org> + + Change the call signature to keymap-substitute + + * lisp/keymap.el (keymap-substitute): Make the keymap the first + parameter for symmetry with the other functions. + * lisp/emacs-lisp/shortdoc.el (keymaps): + * lisp/emacs-lisp/bytecomp.el (lambda): Adjust. + +2021-11-17 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + fa0b34b716 * admin/authors.el (authors-ignored-files): Ignore some NE... + c25be3e7bb * lisp/tab-bar.el (tab-bar-select-tab): Add check for wc-f... + 38d905abf9 * lisp/tab-bar.el: Doc fixes for commands bound to modifie... + +2021-11-17 Lars Ingebrigtsen <larsi@gnus.org> + + Make bookmark-set prompt less confusing + + * lisp/bookmark.el (bookmark-set): Make the prompt less confusing + (bug#51876). + +2021-11-17 Lars Ingebrigtsen <larsi@gnus.org> + + Fix mh-mime build problem + + * lisp/mh-e/mh-mime.el (mh-acros): Require to get mh-dlet*. + +2021-11-17 Stefan Kangas <stefan@marxist.se> + + Temporarily mark two failing tests as unstable + + * test/lisp/mh-e/mh-utils-tests.el + (mh-folder-completion-function-08-plus-slash) + (mh-folder-completion-function-09-plus-slash-tmp): Temporarily + mark two failing tests as unstable. + +2021-11-17 Lars Ingebrigtsen <larsi@gnus.org> + + Fix bookmark-bmenu-mode-map syntax + + * lisp/bookmark.el (bookmark-bmenu-mode-map): Fix syntax in defvar-keymap. + +2021-11-17 Stefan Kangas <stefan@marxist.se> + + Remove some references to XEmacs + + * lisp/emulation/viper-cmd.el (viper-start-R-mode): + * lisp/emulation/viper-init.el (viper-window-display-p): + * lisp/emulation/viper-mous.el (viper-surrounding-word): + * lisp/mail/footnote.el (footnote-mode): + * lisp/textmodes/reftex-index.el: Remove some comments referring to + XEmacs. + +2021-11-17 Stefan Kangas <stefan@marxist.se> + + Make mh-funcall-if-exists obsolete + + * lisp/mh-e/mh-acros.el (mh-funcall-if-exists): Make obsolete. + * lisp/mh-e/mh-alias.el (mh-read-address): + * lisp/mh-e/mh-folder.el (mh-folder-mode): + * lisp/mh-e/mh-mime.el (mh-mm-display-part): + * lisp/mh-e/mh-show.el (mh-defun-show-buffer): + * lisp/mh-e/mh-speed.el (mh-speedbar-change-expand-button-char): + * lisp/mh-e/mh-tool-bar.el (mh-tool-bar-define): + * lisp/mh-e/mh-utils.el (mh-logo-display): + * lisp/mh-e/mh-xface.el (mh-face-display-function): Don't use + above obsolete macro. + +2021-11-16 Stefan Kangas <stefan@marxist.se> + + Convert keymaps in bookmark.el to defvar-keymap + + * lisp/bookmark.el (bookmark-map) + (bookmark-minibuffer-read-name-map) + (bookmark-edit-annotation-mode-map, bookmark-bmenu-mode-map): + Convert to defvar-keymap. + +2021-11-16 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/rot13.el (rot13-translate-table): Make it a `translation-table` + + (rot13-display-table): Use `dotimes`. + +2021-11-16 Stefan Kangas <stefan@marxist.se> + + * admin/gitmerge.el (gitmerge-mode-map): Convert to defvar-keymap. + +2021-11-16 Po Lu <luangruo@yahoo.com> + + Update xwidget webkit history buffer more eagerly + + * lisp/xwidget.el (xwidget-webkit-callback): Update history + buffer on each load-changed event. + +2021-11-16 Alan Third <alan@idiocy.org> + + Only set LANG if the ID is valid + + * src/nsterm.m (ns_init_locale): Check the provided locale identifier + is available before trying to use it. + +2021-11-16 Lars Ingebrigtsen <larsi@gnus.org> + + Make keymap-unset work + + * lisp/keymap.el (keymap-unset): Fix key syntax (bug#51897). + +2021-11-16 Eli Zaretskii <eliz@gnu.org> + + Put back documentation of legacy keymap functions + + * doc/lispref/keymaps.texi (Low-Level Key Binding): Reinstate + documentation of legacy commands and functions. + +2021-11-16 Yuuki Harano <masm+github@masm11.me> + + Support xterm-mouse-mode mouse-4/5 + + When I opened both pgtk frame and terminal frame using daemon + mode, I get mouse-4 on terminal frame and wheel-up on pgtk frame. + I support both events as mwheel events at the same time. (Bug#50321) + + * lisp/mwheel.el (mouse-wheel-down-event): It is both mouse-4 and wheel-up. + (mouse-wheel-up-event): mouse-5 and wheel-down. + (mouse-wheel-left-event): mouse-6 and wheel-left. + (mouse-wheel-right-event): mouse-7 and wheel-right. + (mouse-wheel--button-eq): New function to test a button is included in + a list. + (mouse-wheel--button-flatten): New function to make flatten list of + events. + (mwheel-scroll): Use mouse-wheel--button-eq instead of eq. + (mouse-wheel-text-scale): Use mouse-wheel--button-eq instead of eq. + (mouse-wheel--setup-bindings): Make it flatten. + +2021-11-16 Yuuki Harano <masm+github@masm11.me> + + Remove garbage #ifndef + + Maybe it was left by git merge miss. + It prevented feature/pgtk from successful X-build with xwidget. + + * src/xwidget.c (Fxwidget_resize): + +2021-11-16 Eli Zaretskii <eliz@gnu.org> + + Minor copyedits of recent documentation changes + + * doc/lispref/keymaps.texi (Low-Level Key Binding): Minor changes + in wording and markup. + +2021-11-16 Michael Albinus <michael.albinus@gmx.de> + + Some minor Tramp updates + + * lisp/net/tramp-crypt.el (tramp-crypt-add-directory): Add comment. + + * lisp/net/tramp.el (tramp-debug-buffer-command-completion-p) + (tramp-setup-debug-buffer): New defuns. + (tramp-get-debug-buffer): Call `tramp-setup-debug-buffer. + + * test/lisp/net/tramp-tests.el (tramp-test07-abbreviate-file-name): + Extend test. + +2021-11-16 Lars Ingebrigtsen <larsi@gnus.org> + + Fix compilation error in previous keymap.c change + + * src/keymap.c (initial_define_lispy_key, define_as_prefix): Fix + --enable-checking error. + +2021-11-16 Po Lu <luangruo@yahoo.com> + + Lower xwidget views owned by parent when lowering frame + + * src/xterm.c (x_lower_frame): Lower parent frame's xwidget + views as well. + + * src/xwidget.h (lower_frame_xwidget_views): + * src/xwidget.c (lower_frame_xwidget_views): New function. + +2021-11-16 Po Lu <luangruo@yahoo.com> + + Add command to browse xwidget history + + * doc/emacs/misc.texi (Embedded WebKit Widgets) + * etc/NEWS: Document `xwidget-webkit-browse-history'. + + * lisp/xwidget.el (xwidget-webkit-mode-map): Bind "H" to + xwidget-webkit-browse-history. + (xwidget-webkit-import-widget): Set last session buffer correctly. + (xwidget-webkit-browse-history): New command. + (xwidget-webkit-history--session): New variable. + + (xwidget-webkit-history--insert-item) + (xwidget-webkit-history-select-item) + (xwidget-webkit-history-reload): New functions. + + (xwidget-webkit-history-mode): New major mode. + +2021-11-16 Stephen Leake <stephen_leake@stephe-leake.org> + + Merge pull request from stephe-ada-guru/master + + Fix issues https://github.com/joaotavora/eglot/issues/755, https://github.com/joaotavora/eglot/issues/401; severity not set in textDocument/publishDiagnostics + + GitHub-reference: https://github.com/joaotavora/eglot/issues/759 + +2021-11-16 Gregory Heytings <gregory@heytings.org> + + New X resource to control the border thickness of menus + + * lwlib/xlwmenu.h (XtNborderThickness, XtCBorderThickness): New X + resource name. + * lwlib/xlwmenuP.h (XlwMenuPart): New border_thickness field. + * lwlib/xlwmenu.c (xlwMenuResources): Access the new resource. + (draw_shadow_rectangle): Use the new resource value. + * doc/emacs/xresources.texi (Lucid Resources): Document the new + resource (bug#51867). + +2021-11-16 Michael Herstine <sp1ff@pobox.com> + + Make results details in ert-run-tests-batch configurable + + * lisp/emacs-lisp/ert.el (ert-batch-print-length) + (ert-batch-print-level,.ert-batch-backtrace-line-length) + (ert-batch-test, ert-run-tests-interactively): Added the three + variables, bound them to these settings when formatting batch + test results including backtraces. Removed the optional + parameters output-buffer & message-fn from + ert-run-tests-interactively. + * test/lisp/emacs-lisp/ert-tests.el + (ert-test-run-tests-interactively, ert-test-run-tests-batch): use + cl-letf to capture output, new tests resp. + * test/lisp/ert-x-tests.el (ert-test-run-tests-interactively-2): + Changed to use cl-letf to capture output instead of using + message-fn. + * lisp/emacs-lisp/backtrace.el (backtrace--line-length-or-nil) + (backtrace--print-func-and-args): Fixed a bug when setting + backtrace-line-length to nil by adding a new function to check + for that case & having backtrace--print-func-and-args use it. + * doc/misc/ert.texi: document the new variables & their usage + (bug#51037). + +2021-11-16 Lars Ingebrigtsen <larsi@gnus.org> + + Start adjusting the manuals to talk about the keymap-* functions + + * lisp/dired.el (dired--make-directory-clickable): + * doc/lispref/keymaps.texi (Keymaps): + (Key Sequences): + (Prefix Keys): + (Active Keymaps): + (Key Lookup): + (Functions for Key Lookup): + (Changing Key Bindings): + (Key Binding Commands): + (Tool Bar): + * doc/lispref/commands.texi (Interactive Codes): + (Event Examples): + (Event Mod): + * doc/emacs/kmacro.texi (Save Keyboard Macro): + * doc/emacs/custom.texi (Keymaps): + (Keymaps): + (Minibuffer Maps): + (Rebinding): + (Init Rebinding): + (Modifier Keys): + (Mouse Buttons): + (Init Examples): + (Init Non-ASCII): Adjust the documentation to remove description + of the old syntaxes, and use the new keymap-* functions. + + * doc/lispref/keymaps.texi (Low-Level Key Binding): New node that + describes `define-key' and the old key syntaxes. + +2021-11-16 Lars Ingebrigtsen <larsi@gnus.org> + + Adjust `defvar-keymap' and `define-keymap' to the new syntax + + * lisp/vc/smerge-mode.el (smerge-basic-map): + * lisp/vc/pcvs.el (cvs-mode-map): + (cvs-minor-mode-prefix): + * lisp/vc/log-view.el (log-view-mode-map): + * lisp/vc/log-edit.el (log-edit-mode-map): + * lisp/vc/diff-mode.el (diff-mode-shared-map): + (diff-minor-mode-prefix): + * lisp/vc/cvs-status.el (cvs-status-mode-map): + * lisp/simple.el (special-mode-map): + * lisp/outline.el (outline--insert-open-button): + (outline--insert-close-button): + * lisp/net/shr.el (shr-map): + * lisp/net/eww.el (eww-link-keymap): + (eww-mode-map): + (eww-submit-map): + (eww-bookmark-mode-map): + (eww-history-mode-map): + (eww-buffers-mode-map): + * lisp/mh-e/mh-speed.el (:keymap): + * lisp/mh-e/mh-show.el (:keymap): + * lisp/mh-e/mh-search.el (:keymap): + * lisp/mh-e/mh-letter.el (:keymap): + * lisp/mh-e/mh-folder.el (:keymap): + * lisp/international/emoji.el (emoji-list-mode-map): + * lisp/gnus/spam.el (:keymap): + * lisp/gnus/mml.el (mml-mode-map): + * lisp/gnus/message.el (message-mode-map): + * lisp/gnus/gnus-undo.el (gnus-undo-mode-map): + * lisp/gnus/gnus-topic.el (gnus-topic-mode-map): + * lisp/gnus/gnus-sum.el (:keymap): + * lisp/gnus/gnus-srvr.el (gnus-server-mode-map): + (gnus-browse-mode-map): + * lisp/gnus/gnus-salt.el (gnus-pick-mode-map): + (gnus-tree-mode-map): + * lisp/gnus/gnus-msg.el (:prefix): + * lisp/gnus/gnus-ml.el (gnus-mailing-list-mode-map): + * lisp/gnus/gnus-kill.el (gnus-kill-file-mode-map): + * lisp/gnus/gnus-html.el (gnus-html-displayed-image-map): + * lisp/gnus/gnus-group.el (:keymap): + * lisp/gnus/gnus-eform.el (gnus-edit-form-mode-map): + * lisp/gnus/gnus-draft.el (gnus-draft-mode-map): + * lisp/gnus/gnus-dired.el (gnus-dired-mode-map): + * lisp/gnus/gnus-bookmark.el (gnus-bookmark-bmenu-mode-map): + * lisp/gnus/gnus-art.el (:keymap): + (gnus-article-edit-mode-map): + * lisp/gnus/gnus-agent.el (gnus-agent-group-mode-map): + (gnus-agent-summary-mode-map): + (gnus-agent-server-mode-map): + (gnus-category-mode-map): Adjust `defvar-keymap' and + `define-keymap' to the new syntax. + +2021-11-16 Lars Ingebrigtsen <larsi@gnus.org> + + Add new 'keymap-*' functions + + * lisp/keymap.el: New file with all the new keymap-* functions. + + * lisp/loadup.el ("keymap"): Load. + + * lisp/subr.el (kbd): Refactor out all the code to key-parse. + (define-key-after, keyboard-translate, global-set-key) + (local-set-key, global-unset-key, local-unset-key) + (local-key-binding, global-key-binding) + (substitute-key-definition): Note in doc strings that these are + legacy functions. + (define-keymap--define): Use keymap-set. + + * lisp/emacs-lisp/byte-opt.el: Remove the optimizations for + defvar-keymap and define-keymap since the macros now only + understand the kbd syntax. + * lisp/emacs-lisp/bytecomp.el (byte-compile-define-keymap) + (byte-compile-define-keymap--define): Warn about invalid key + definitions in all keymap-* functions. + + * lisp/emacs-lisp/shortdoc.el (keymaps): Add shortdocs form + keymap* functions. + + * src/keymap.c (possibly_translate_key_sequence): Adjust callers + to key-valid-p and key-parse. + (syms_of_keymap): Adjust defs. + +2021-11-16 Lars Ingebrigtsen <larsi@gnus.org> + + Allow removing keymap definitions + + * src/keymap.c (initial_define_lispy_key): Adjust caller. + (store_in_keymap): Allow removing definitions in addition to + setting them to nil. + (Fdefine_key): Ditto. + (define_as_prefix): Adjust caller. + + * src/term.c (term_get_fkeys_1): Adjust caller. + +2021-11-16 Lars Ingebrigtsen <larsi@gnus.org> + + Make erc-mode noninteractive + + * lisp/erc/erc.el (erc-mode): Mark it as noninteractive, because + using it from `M-x' will only lead to problems (bug#51841). + +2021-11-16 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + e852822f3d Fix removal of fringe marks of deleted bookmarks + b418aad85a * lisp/repeat.el (repeat-echo-message): Bind message-log-m... + fe2ac7cb7c * lisp/repeat.el (describe-repeat-maps): Use help-fns--ana... + c840bfe7e1 * lisp/repeat.el: Detect changes in the minibuffer state (... + 5044151486 Avoid segfaults due to freed face cache + 199e2468d3 Doc fix; change recommended file name of custom-file + +2021-11-16 Mike Kupfer <mkupfer@alum.berkeley.edu> + + Fix handling of folder "+/" in MH-E + + * lisp/mh-e/mh-utils.el (mh-sub-folders): Fix handling of "+/". + * test/lisp/mh-e/mh-utils-tests.el + (mh-folder-completion-function-08-plus-slash) + (mh-folder-completion-function-09-plus-slash-tmp): + Fix errors made importing tests from mh-unit.el; remove declaration + that these tests are expected to fail. + +2021-11-16 Mike Kupfer <mkupfer@alum.berkeley.edu> + + Fix checkdoc complaints in MH-E + + * lisp/mh-e/mh-compat.el (mh-flet): Rewrite most of the docstring. + (mh-write-file-functions): Remove trailing space. + * lisp/mh-e-mh-scan.el (mh-scan-cmd-note-width): Break up a + line that was too long. + +2021-11-15 Stefan Kangas <stefan@marxist.se> + + Fix recently changed wdired test on MS-Windows + + * test/lisp/wdired-tests.el (wdired-test-bug34915): Don't try to + create a local socket on MS-Windows, as it is not supported on that + platform. Problem reported by Robert Pluim <rpluim@gmail.com>. + +2021-11-15 Po Lu <luangruo@yahoo.com> + + Prevent xwidget windows from obscuring child frames + + * src/xwidget.c (x_draw_xwidget_glyph_string): Lower view window + when creating it. + +2021-11-15 Po Lu <luangruo@yahoo.com> + + Fix xwidget isearch for queries that look like format strings + + * lisp/xwidget.el (xwidget-webkit-isearch--update): Give special + treatment to messages. + +2021-11-15 Po Lu <luangruo@yahoo.com> + + Fix documentation string + + * src/xwidget.c (Vxwidget_list, Vxwidget_views_list): Fix + horrid doc string. + +2021-11-15 Michael Albinus <michael.albinus@gmx.de> + + Fix minor problems resulting from Tramp regression tests + + * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist): + * lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist): + * lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist): + * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist): + * lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist): + * lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist): + Add comment. + + * lisp/net/tramp-cache.el (tramp-flush-file-upper-properties): + FILE can be "~". + + * lisp/net/tramp.el ('tramp-ensure-dissected-file-name): + Add `tramp-suppress-trace' property. + (tramp-get-debug-buffer): Add local key for debugging. + (tramp-handle-abbreviate-file-name): Adapt implementation. + + * test/lisp/net/tramp-tests.el + (tramp-test07-abbreviate-file-name): + Adapt test. + (tramp-test17-insert-directory-one-file) + (tramp--test-check-files): Use proper `no-dir' argument for + `dired-get-filename'. + +2021-11-15 Yuuki Harano <masm+github@masm11.me> + + Avoid handle terminal frames in pgtk_mouse_position. + + Just above, f1 can become a selected frame, which may be a terminal + frame. We can't call gtk_widget_get_window() for a terminal frame. + + * src/pgtkterm.c (pgtk_mouse_position): Return if it is not a pgtk frame. + +2021-11-15 Jim Porter <jporterbugs@gmail.com> + + Add another 'abbreviate-file-name' test + + * test/lisp/files-tests.el + (files-tests-file-name-non-special-abbreviate-file-name): New test. + +2021-11-15 Jim Porter <jporterbugs@gmail.com> + + Support abbreviating home directory of Tramp filenames + + * doc/lispref/files.texi (Magic File Names): Mention + 'abbreviate-file-name' in the list of magic file name handlers. + + * etc/NEWS: Announce the change. + + * lisp/files.el (file-name-non-special): + * lisp/net/tramp.el (tramp-file-name-for-operation): + * lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist): + * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist): + Add 'abbreviate-file-name'. + + * lisp/files.el (directory-abbrev-make-regexp): + (directory-abbrev-apply): New functions. + (abbreviate-file-name): Check for file name handler. + + * test/lisp/net/tramp-tests.el (tramp-test07-abbreviate-file-name): + New test. + +2021-11-15 Yuuki Harano <masm+github@masm11.me> + + Fix coding style + + * src/gtkutil.c (xg_set_no_accept_focus): + * src/pgtkterm.c (pgtk_focus_frame): + (button_event): + +2021-11-15 Jeff Walsh <fejfighter@gmail.com> + + pgtk: Handle (child) frame focusing better + + child frames on pgtk are gtk widgets inside the parent surface, rather + than subsurfaces (in wayland ters), and the edit widget is handled + separately from the parent window, so we need to handle signals more + correctly, rather than squinting and assuming an event for the window + is just an event for the edit widget. + + * src/gtkutil.c (xg_set_no_accept_focus): set + focus on widget rather than request it on window + * src/pgtkterm.c (pgtk_focus_frame): focus frame on edit_widget + instead + (button_event): Implement focus calls to replace dead X calls + +2021-11-15 Stefan Kangas <stefan@marxist.se> + + Fix hanging wdired test + + * test/lisp/wdired-tests.el (wdired-test-bug34915): Fix hanging + test. Don't start the Emacs Server just to create a socket; just + create the socket manually. + +2021-11-15 Lars Ingebrigtsen <larsi@gnus.org> + + Fix outline-cycle-buffer issue in `C-h b' buffers + + * lisp/outline.el (outline--fix-up-all-buttons): Fix issue when + called after collapsing a buffer (bug#51855). + +2021-11-15 Lars Ingebrigtsen <larsi@gnus.org> + + Allow mm-external-terminal-program to be a list of strings + + * doc/misc/emacs-mime.texi (Display Customization): Document it. + + * lisp/gnus/mm-decode.el (mm-external-terminal-program): Allow + being a list. + +2021-11-15 Basil L. Contovounesios <contovob@tcd.ie> + + Fix handling of changed prefix keys in tutorial + + * lisp/tutorial.el (tutorial--find-changed-keys): Use keymapp to + detect prefix definitions rather than hard-coding them. A notable + omission from the hard-coded list was mode-specific-command-prefix, + whose subcommands are often rebound (bug#40725). + +2021-11-15 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 044dd1e210 * rcirc.el (rcirc-define-command): Fix interactive-spec ge... + +2021-11-15 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 85ac0efe7c Fix semantic-symref-perform-search doc string + +2021-11-15 Po Lu <luangruo@yahoo.com> + + Fix xwidget-webkit-back-forward-list + + * src/xwidget.c (Fxwidget_webkit_back_forward_list): Use correct + list variable in loop. + +2021-11-14 Po Lu <luangruo@yahoo.com> + + Stop assuming xwidget views will only be displayed in TEXT_AREA + + * src/xterm.c (x_scroll_run): Use view->area when calculating + xwidget view clipping. + + * src/xwidget.c (x_draw_xwidget_glyph_string): Set view->area + to s->area and use that instead. + + * src/xwidget.h (struct xwidget_view): Add glyph row area field. + +2021-11-14 Ken Brown <kbrown@cornell.edu> + + Prefer POSIX timers to timerfd timers + + * src/atimer.c (set_alarm): Try to start a POSIX timer before + starting a timerfd timer. On Cygwin, return if the POSIX timer is + started successfully. (Bug#51734) + +2021-11-14 Juri Linkov <juri@linkov.net> + + * lisp/tab-line.el (tab-line-mode): Preserve existing value of tab-line-format + + Keep the old value of tab-line-format when enabling tab-line-mode + and don't overwrite it with nil when disabling tab-line-mode (bug#51830). + +2021-11-14 Stefan Monnier <monnier@iro.umontreal.ca> + + * src/lread.c (read_escape): Fix handling of ?\C-<char> for chars 128-255 + +2021-11-14 Eli Zaretskii <eliz@gnu.org> + + Fix recent documentation updates + + * doc/lispref/text.texi (Special Properties): Improve wording. + Add cross-reference and index entry. + (Sticky Properties): Add indexing. + +2021-11-14 Yuuki Harano <masm+github@masm11.me> + + Add WAYLAND_DISPLAY description to cmdargs.texi + + * doc/emacs/cmdargs.texi (Misc Variables): Add WAYLAND_DISPLAY + description. + +2021-11-14 Michael Albinus <michael.albinus@gmx.de> + + Improve Tramp error handling + + * doc/misc/tramp.texi (Frequently Asked Questions): Add another + `remote-file-error'. + + * lisp/net/tramp.el (tramp-find-foreign-file-name-handler): + Improve error handling. + +2021-11-14 Jeff Walsh <fejfighter@gmail.com> + + pgtk: Set correct face color for stretched glyphs + + * src/pgtkterm.c (x_draw_stretch_glyph_string): s/foreground/background + (Bug#50579) + +2021-11-14 Jeff Walsh <fejfighter@gmail.com> + + configure.ac (PGTK_LIBS): remove pgtk dl dependency (Bug#50494) + +2021-11-14 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + 5dbad52 gnus-summary-line-format doc string clarification + d4536ff Fix follow-scroll-down in a small buffer which starts slightly... + +2021-11-14 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + a56dd60 Improve style and comments in font-related sources + +2021-11-14 Yuuki Harano <masm+github@masm11.me> + + Fix coding style + + Especially, insert a space between function name and paren. + + * src/alloc.c (garbage_collect): + * src/font.h: + * src/frame.h: + * src/fringe.c: + * src/gtkutil.c (xg_set_screen): + (xg_create_frame_widgets): + (xg_create_frame_outer_widgets): + (xg_get_file_name): + (xg_get_font): + (xg_update_scrollbar_pos): + * src/image.c (image_create_bitmap_from_file): + (xpm_load_image): + * src/pgtkfns.c (pgtk_get_monitor_scale_factor): + (is_wayland_display): + (pgtk_display_info_for_name): + (INSTALL_CURSOR): + (Fx_create_frame): + (Fx_display_mm_height): + (Fx_display_mm_width): + (Fx_display_pixel_width): + (Fx_display_pixel_height): + * src/pgtkselect.c (pgtk_selection_usable): + (Fpgtk_own_selection_internal): + (Fpgtk_get_selection_internal): + * src/pgtkterm.c: + (x_set_parent_frame): + (pgtk_draw_fringe_bitmap): + (pgtk_handle_draw): + (scroll_event): + (pgtk_text_scaling_factor): + (pgtk_term_init): + * src/pgtkterm.h: + * src/window.h: + * src/xdisp.c (redisplay_internal): + (draw_glyphs_debug): + (draw_glyphs): + (note_mouse_highlight): + +2021-11-14 Po Lu <luangruo@yahoo.com> + + Expose xwidget navigation history to Lisp code + + * doc/lispref/display.texi (Xwidgets): Document changes. + * etc/NEWS: Announce new function. + * src/xwidget.c (Fxwidget_webkit_back_forward_list): New + function. + (syms_of_xwidget): Define new subr. + +2021-11-14 Po Lu <luangruo@yahoo.com> + + Add `kill-xwidget' + + * doc/lispref/display.texi (Xwidgets): Document 'kill-xwidget'. + * src/xwidget.c (kill_xwidget, Fkill_xwidget): New function. + (syms_of_xwidget): Define new subr. + (kill_buffer_xwidgets): Use `kill_xwidget' instead. + +2021-11-14 Lars Ingebrigtsen <larsi@gnus.org> + + Fix previous -responsible-p change + + * lisp/vc/vc-sccs.el (vc-sccs-responsible-p): + * lisp/vc/vc-rcs.el (vc-rcs-responsible-p): + * lisp/vc/vc-cvs.el (vc-cvs-responsible-p): Make the previous + change work with relative file names, too. + +2021-11-13 Lars Ingebrigtsen <larsi@gnus.org> + + Explain in the manual how to make `cursor-intangible' work + + * doc/lispref/text.texi (Special Properties): Explain how to make + `cursor-intangible' work (bug#51095). + +2021-11-13 Po Lu <luangruo@yahoo.com> + + Fix crash in xwidget_end_redisplay + + * src/xwidget.c (xwidget_end_redisplay): Always test if xv is + NULL. + +2021-11-13 Lars Ingebrigtsen <larsi@gnus.org> + + Fix `C-h k' in gnus-article-mode + + * lisp/gnus/gnus-art.el (gnus-article-describe-key): + (gnus-article-describe-key-briefly): Fix `describe-key' calling + convention (bug#51796). + +2021-11-13 Lars Ingebrigtsen <larsi@gnus.org> + + Make all vc-*-responsible-p functions return a string + + * lisp/vc/vc-sccs.el (vc-sccs-responsible-p): + * lisp/vc/vc-rcs.el (vc-rcs-responsible-p): + * lisp/vc/vc-dav.el (vc-dav-responsible-p): + * lisp/vc/vc-cvs.el (vc-cvs-responsible-p): Return a file name + instead of t when we get a match (which is what + vc-backend-for-registration expects) (bug#51800). + +2021-11-13 Kévin Le Gouguec <kevin.legouguec@gmail.com> + + Fix customization group of python-forward-sexp-function + + * lisp/progmodes/python.el (python-forward-sexp-function): Move from + the "Flymake integration" subsection to the "Navigation" subsection, + so that the option is sorted into the 'python' group rather than the + 'python-flymake' group (bug#51807). + +2021-11-13 Lars Ingebrigtsen <larsi@gnus.org> + + Fix Gnus gcc header tokenization + + * lisp/gnus/gnus-msg.el (gnus-summary-resend-message-insert-gcc) + (gnus-inews-do-gcc): Fix tokenization of the gcc header. + +2021-11-13 Lars Ingebrigtsen <larsi@gnus.org> + + Adjust build-dep-zips.py download link + + * admin/nt/dist-build/build-dep-zips.py (download_source): Adjust + the download link (bug#40628). + +2021-11-13 Manuel Giraud <manuel@ledu-giraud.fr> + + Find most specific backend for `vc-backend-for-registration'. + + * lisp/vc/vc.el (vc-backend-for-registration): Count file name + components instead of the length of the file name string (bug#50572). + +2021-11-13 Stephen Gildea <stepheng+emacs@gildea.com> + + MH-E threads code: use mh-scan variables correctly + + * lisp/mh-e/mh-thread.el (mh-thread-current-indentation-level) + (mh-thread-find-children): Fix off-by-one error by using + 'mh-scan-field-from-start-offset' directly, as + 'mh-thread-parse-scan-line' does. Previously, these functions would + incorrectly consider the "date note" column as part of the thread + indenting. Since that column is almost always a Space character, that + almost always worked. + (mh-thread-ancestor): Update caller. + * test/lisp/mh-e/mh-thread-tests.el: New unit tests for affected code. + * lisp/mh-e/mh-scan.el (mh-msg-num-width-to-column): Fix doc string typo. + +2021-11-13 Michael Albinus <michael.albinus@gmx.de> + + Revert accidental commit in icomplete.el + +2021-11-13 Michael Albinus <michael.albinus@gmx.de> + + Remove Tramp's `dired-compress-file' handler, not needed anymore + + * lisp/dired-aux.el (dired-check-process, dired-shell-command): + Call `dired-uncache'. + (dired-compress-file): Use `file-local-name'. + + * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist): + * lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist): + * lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist): + * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist): + * lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist): + * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist): + * lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist): + Remove superfluous comment. + + * lisp/net/tramp-sh.el (dired-compress-file): Declare. + (tramp-sh-handle-dired-compress-file): Call real handler for + Emacs >= 29. + + * lisp/net/tramp.el (tramp-file-name-for-operation): Reorder list. + + * test/lisp/net/tramp-tests.el (tramp-test45-dired-compress-file) + (tramp-test45-dired-compress-dir): Adapt comment. + +2021-11-13 Po Lu <luangruo@yahoo.com> + + Fix scroll event test in handle_one_xevent + + * src/xterm.c (handle_one_xevent): Test for scroll wheel button + correctly in xwidget code. + +2021-11-13 Eli Zaretskii <eliz@gnu.org> + + Fix font selection via :family on MS-Windows + + * src/font.c (font_delete_unmatched) [HAVE_NTGUI]: Allow non-exact + matches of :weight when looking for a suitable font. (Bug#51768) + +2021-11-13 Alan Mackenzie <acm@muc.de> + + Correct patch from 2021-11-12 on src/fileio.c + + * src/fileio.c (restore_window_points): Reverse commit + 974192413f8a81171b8fd28dfd5c081ce06d3dec and instead replace a < by a <=. + This ensures that if w->mpoint is at the top of the middle region being + replaced, it gets adjusted and stays at the top after the reinsertion. + +2021-11-13 Po Lu <luangruo@yahoo.com> + + Don't emit SELECT_WINDOW_EVENT when an xwidget is scrolled + + * src/xterm.c (handle_one_event): Don't select xwidget window + on button event if the button pressed actually represents the + scroll wheel. + +2021-11-13 Alan Mackenzie <acm@muc.de> + + C++ Mode: Fix incoorect background fontification of < + + Where c-record-found-types gets "bound" to itself, we postpone the calling of + c-fontify-new-type on possible new found types until these are confirmed by + the return from the function tentatively finding these types, for example + c-forward-<>-arglist. We check this "binding" by testing the value of + c-record-found-types. + + Correct the background fontification algorithm. + + * lisp/progmodes/cc-engine.el (c-record-found-types): Move the definition to + earlier in the file. + (c-add-type-1): Check additionally c-record-found-types is nil before calling + c-fontify-new-found-type. + (c-forward-<>-arglist, c-forward-type): On return from a function which + collects found types in c-record-found-types, call c-fontify-new-found-types + for each such type. + + * lisp/progmodes/c-fonts.el (c-force-redisplay): Actually fontify the new + found type. + (c-fontify-new-found-type): Test for font-lock-mode being enabled. Remove the + spurious condition on the `fontified' text property being nil before causing + c-force-redisplay to get called. + +2021-11-13 Stephen Leake <stephen_leake@stephe-leake.org> + + Fix issues; severity not set in textdocument/publishdiagnostics + + * eglot.el (eglot-handle-notification): Handle severity not set. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/755 + GitHub-reference: https://github.com/joaotavora/eglot/issues/401 + +2021-11-13 Lars Ingebrigtsen <larsi@gnus.org> + + Don't create links to undefined commands in help--describe-command + + * lisp/help.el (help--describe-command): Don't create links to + commands that aren't defined. + +2021-11-13 Yuuki Harano <masm+github@masm11.me> + + Revert #if changes + + I changed some "#ifdef"s to "#if defined"s by mistake, so I reverted them. + + * src/alloc.c: Reverted. + (garbage_collect): Reverted. + * src/emacs.c (main): Reverted. + * src/image.c (xpm_load_image): Reverted. + (image_disable_image): Reverted. + (image_build_heuristic_mask): Reverted. + +2021-11-13 Po Lu <luangruo@yahoo.com> + + Use GTK native file choosers in xwidget callback + + * src/xwidget.c (run_file_chooser_cb): Use GtkFileChooserNative + instead. + +2021-11-13 Yuuki Harano <masm+github@masm11.me> + + Revert atimer changes + + They seem to be not needed any more. + + * src/atimer.c (set_alarm): Revert + (turn_on_atimers): Revert + (have_buggy_timerfd): Revert + +2021-11-13 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 42d4e24ff3 ; Fix typos + 0d0125daae Improve documentation of 'decode-coding-region' + +2021-11-13 Po Lu <luangruo@yahoo.com> + + Prevent NULL-pointer dereference on xwidget callback error + + * src/xwidget.c (webkit_javascript_finished_cb): Check if + `error' is NULL before freeing it. + +2021-11-12 Po Lu <luangruo@yahoo.com> + + Fix file chooser hangs inside xwidget-webkit + + * src/xwidget.c (run_file_chooser_cb): New function that runs + a nested event loop instead of acting asynchronously. + (Fmake_xwidget): Attach file chooser signal. + +2021-11-12 Po Lu <luangruo@yahoo.com> + + Remove unused xwidget code in EmacsFixed GTK widget class + + This is no longer required, as we rely on X to position + xwidgets now. It also makes resizing Emacs frames slightly + slower. + + * src/emacsgtkfixed.c (EMACS_FIXED_GET_CLASS) + (struct GtkFixedPrivateL) + (emacs_fixed_gtk_widget_size_allocate) + (emacs_fixed_class_init) [HAVE_XWIDGETS]: Remove unused code. + +2021-11-12 Po Lu <luangruo@yahoo.com> + + Prevent xwidget webkit isearch messages from entering log buffer + + * lisp/xwidget.el (xwidget-webkit-isearch--update): Prevent + logging when displaying search contents message. + +2021-11-12 Ken Brown <kbrown@cornell.edu> + + Don't start both timerfd and alarms on Cygwin + + * src/atimer.c (set_alarm) [CYGWIN]: Don't start both timerfd and + alarms; this causes a slowdown. (Bug#51734) + +2021-11-12 Alan Mackenzie <acm@muc.de> + + In insert_file_contents, always set windows' point markers. + + This fixes bug #51776. + + * src/fileio.c (restore_window_points): Restore a w->mpoint even when that + marker originally pointed into the unchanged area near BOB or EOB. This + prevents that window's point being moved a long way from its starting place + due to the removal of the central part of the buffer by insert_file_contents. + +2021-11-12 Michael Albinus <michael.albinus@gmx.de> + + Remove Emacs 25 compatibility from Tramp + + * doc/misc/tramp.texi (Remote programs, Remote processes) + (Frequently Asked Questions): Adapt Emacs versions. + + * doc/misc/trampver.texi: + * lisp/net/trampver.el: Change version to "2.6.0-pre". + + * lisp/net/tramp-adb.el (top): Don't use `tramp-compat-funcall' for + connection-local functions. + + * lisp/net/tramp-compat.el (tramp-unload-file-name-handlers) + (tramp-handle-temporary-file-directory) + (tramp-compat-temporary-file-directory-function) + (tramp-compat-file-attribute-type) + (tramp-compat-file-attribute-link-number) + (tramp-compat-file-attribute-user-id) + (tramp-compat-file-attribute-group-id) + (tramp-compat-file-attribute-access-time) + (tramp-compat-file-attribute-modification-time) + (tramp-compat-file-attribute-status-change-time) + (tramp-compat-file-attribute-size) + (tramp-compat-file-attribute-modes, tramp-file-missing) + (tramp-compat-file-missing, tramp-compat-file-local-name): Remove. + (tramp-compat-file-name-quoted-p, tramp-compat-file-name-quote) + (tramp-compat-file-name-unquote) + (tramp-compat-progress-reporter-update) + (tramp-compat-file-modes, tramp-compat-set-file-modes) + (tramp-compat-set-file-times, tramp-compat-directory-files) + (tramp-compat-directory-files-and-attributes): Adapt implementation. + + * lisp/net/tramp.el: + * lisp/net/tramp-adb.el: + * lisp/net/tramp-archive.el: + * lisp/net/tramp-crypt.el: + * lisp/net/tramp-fuse.el: + * lisp/net/tramp-gvfs.el: + * lisp/net/tramp-rclone.el: + * lisp/net/tramp-sh.el: + * lisp/net/tramp-smb.el: + * lisp/net/tramp-sudoedit.el: Adapt callees. + + * lisp/net/tramp-crypt.el (tramp-crypt-config-file-name): + Expand file name. + + * lisp/net/tramp-fuse.el (tramp-fuse-handle-file-readable-p): Remove. + + * lisp/net/tramp-gvfs.el (tramp-gvfs-enabled): Don't check Emacs version. + (tramp-gvfs-handler-mounted-unmounted): Use `make-tramp-file-name'. + + * lisp/net/tramp-integration.el (rfn-eshadow-overlay): + Remove declaration. + (top): Don't use `tramp-compat-funcall' for connection-local functions. + + * lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist): + Use `tramp-rclone-handle-file-readable-p'. + (tramp-rclone-handle-file-readable-p): New defun. + + * lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist): + Use `tramp-handle-file-readable-p'. + + * lisp/net/tramp.el (tramp-temp-name-prefix, tramp-lookup-syntax): + Adapt docstring. + (tramp-set-connection-local-variables) + (tramp-set-connection-local-variables-for-buffer): Don't use + `tramp-compat-funcall' for connection-local functions. + (tramp-file-name-for-operation): Reorder list. + (tramp-handle-make-symbolic-link): Don't handle TARGET and + OK-IF-ALREADY-EXISTS. + (tramp-read-passwd): Don't use `read-passwd' any longer. + (top): Don't check for `interrupt-process-functions'. + + * test/lisp/net/tramp-archive-tests.el (tramp-archive--test-emacs26-p): + Remove. + (tramp-archive-test02-file-name-dissect): Use `make-tramp-file-name'. + (all): Replace Emacs 26 compatibility functions with their + original name. + (tramp-archive-test46-auto-load) + (tramp-archive-test46-delay-load): Rename. + + * test/lisp/net/tramp-tests.el (dired-aux, seq): Require them. + (dired-compress, connection-local-criteria-alist) + (connection-local-profile-alist, async-shell-command-width): + Don't declare. + (all): Replace Emacs 26 compatibility functions with their + original name. + (tramp-test04-substitute-in-file-name) + (tramp-test10-write-region, tramp-test11-copy-file) + (tramp-test12-rename-file, tramp-test15-copy-directory) + (tramp-test17-insert-directory) + (tramp-test17-dired-with-wildcards, tramp-test21-file-links) + (tramp-test31-interrupt-process) + (tramp-test34-connection-local-variables) + (tramp-test34-explicit-shell-file-name) + (tramp-test40-make-nearby-temp-file) + (tramp-test41-special-characters, tramp-test42-utf8) + (tramp-test46-delay-load, tramp-test46-remote-load-path) + (tramp-test47-unload): Don't check for Emacs 26 special features. + (tramp--test-emacs26-p): Remove. + (tramp--test-emacs29-p): New defun. + (tramp-test45-dired-compress-file) + (tramp-test45-dired-compress-dir): Use it. + (tramp-test44-asynchronous-requests): Use `seq-random-elt'. + +2021-11-12 Po Lu <luangruo@yahoo.com> + + Fix typos in etc/PROBLEMS + + * etc/PROBLEMS (Internationalization problems): Fix typos. + +2021-11-12 Po Lu <luangruo@yahoo.com> + + Document problem with fcitx and xwidgets + + * etc/PROBLEMS (Internationalization problems): Document buggy fcitx + with xwidgets. + +2021-11-12 Stefan Kangas <stefan@marxist.se> + + * lisp/emacs-lisp/checkdoc.el (checkdoc-dired): Autoload. + +2021-11-12 Po Lu <luangruo@yahoo.com> + + Add support for input methods to xwidget-webkit-edit-mode + + * lisp/xwidget.el (xwidget-webkit--input-method-events): New + variable. + (xwidget-webkit-pass-command-event-with-input-method): New + function. + (xwidget-webkit-pass-command-event): Consult input method about + key events if input method is enabled. + +2021-11-12 Noam Postavsky <npostavs@gmail.com> + + Optimize admin/nt dependency computation + + admin/nt/dist-build/build-dep-zips.py (immediate_deps) + (extract_deps): Gather package dependency info in batches, rather than + one at a time. This reduces the number of invocations of 'pacman -Si + ...' to the depth of the dependency tree, rather than the number of + dependent packages. + (top-level): Don't call 'extract_deps' when given the '-l' option (bug#40628). + +2021-11-12 Rasmus <rasmus@gmx.us> + + lisp/icomplete.el (icomplete-fido-backward-updir): Expand "~/" + + * lisp/icomplete.el (icomplete-fido-backward-updir): Expand "~/" + (bug#43925). + +2021-11-12 Lars Ingebrigtsen <larsi@gnus.org> + + Delete .tar.gz temp file after tramp test + + * test/lisp/net/tramp-tests.el () + (tramp-test45-dired-compress-dir): Delete the temp file (bug#51690). + +2021-11-12 Lars Ingebrigtsen <larsi@gnus.org> + + Remove unused xlfd_ enums + + * src/xfaces.c: Remove xlfd_weight, xlfd_swidth and xlfd_slant + enums. These seem to be unused in the Emacs sources. + +2021-11-12 Po Lu <luangruo@yahoo.com> + + Remove obsolete comment + + The comment probably dated back to when xwidgets supported + many other GTK+ widgets with other data. In the current + implementation of xwidgets, everything that should be freed + is already freed in `kill_buffer_xwidgets'. + + * src/xwidget.c (kill_buffer_xwidgets): Remove outdated TODO. + +2021-11-12 Lars Ingebrigtsen <larsi@gnus.org> + + Allow choosing regular-weighted fonts when medium-weighted exist + + * src/ftfont.c (ftfont_pattern_entity): Allow using both regular + and medium-weighted fonts. + +2021-11-12 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + a6905e90cc Fix problem with temp buffer killing in package-install-file + 144ad77fda Fix Lisp Intro markup error + 24b86cb4f7 Fix ACL errors with WebDAV volumes on MS-Windows + +2021-11-12 Po Lu <luangruo@yahoo.com> + + Fix doc string for xwidget-webkit-load-html + + * src/xwidget.c (Fxwidget_webkit_load_html): Fix doc string. + +2021-11-12 Po Lu <luangruo@yahoo.com> + + Add input method support for xwidget webkit isearch + + * lisp/xwidget.el (xwidget-webkit-isearch--read-string-buffer): + New variable. + (xwidget-webkit-isearch-printing-char-with-input-method) + (xwidget-webkit-isearch-with-input-method): New function. + + (xwidget-webkit-isearch-printing-char): Add support for Emacs + input methods. (bug#51781) + +2021-11-11 Stefan Kangas <stefan@marxist.se> + + image-dired: Quote function symbols as such + + * lisp/image-dired.el (image-dired-thumbnail-mode-line-up-map) + (image-dired-thumbnail-mode-tag-map) + (image-dired-thumbnail-mode-map, image-dired-minor-mode-map): + Quote function symbols as such. + +2021-11-11 Lars Ingebrigtsen <larsi@gnus.org> + + Move Info-goto-node-web to "G" + + * lisp/info.el (Info-mode-map): Change the Info-goto-node-web + binding to "G" for symmetry with "Info-goto-node". + +2021-11-11 Stefan Kangas <stefan@marxist.se> + + Make image-dired-thumbnail-mode non-interactive + + * lisp/image-dired.el (image-dired-thumbnail-mode): No longer + interactive, as it only makes sense in a specially prepared buffer. + +2021-11-11 Stefan Kangas <stefan@marxist.se> + + image-dired: Revamp slideshow functionality + + * lisp/image-dired.el + (image-dired-slideshow-delay): New defcustom. + (image-dired--slideshow-initial): New defvar. + (image-dired-slideshow-start): Don't show any prompts when starting a + slideshow, unless user gave a negative prefix argument. Use the value + of the above new defcustom as the default delay. + (image-dired-slideshow-stop): Don't count number of images. Instead, + continue the slideshow until the next command. + (image-dired-slideshow-step): Use the correct buffer. + (image-dired-slideshow-count, image-dired-slideshow-times): Make + obsolete. + (image-dired--slideshow-timer): Rename from + 'image-dired-slideshow-timer'. Make the old name into an obsolete + variable alias. + (image-dired-display-image-mode-map) + (image-dired-thumbnail-mode-map): Bind 'image-dired-slideshow-start' + to "S". + (image-dired-thumbnail-mode-menu): Add 'image-dired-slideshow-start'. + +2021-11-11 Stefan Kangas <stefan@marxist.se> + + image-dired: Improve thumbnail mode menu + + * lisp/image-dired.el (image-dired-thumbnail-mode-menu): Improve menu + with more logical ordering and better naming. + +2021-11-11 Bryan C. Mills <bcmills@google.com> (tiny change) + + Make "emacs --script /dev/stdin work again when that's a pipe + + * src/lread.c (Fload): Adjust callers. + + * src/lread.c (safe_to_load_version): Check lseek errors + (Bug#48940). + +2021-11-11 Lars Ingebrigtsen <larsi@gnus.org> + + Allow using /dev/stdin as a --script parameter again + + * lisp/startup.el (command-line-1): Fix breakage with + (file-truename "/dev/stdin") => "/proc/227795/fd/pipe:[1381505]" + when using /dev/stdin as a --script parameter. + +2021-11-11 Po Lu <luangruo@yahoo.com> + + Fix potential NULL dereference in xwidget-webkit-uri + + * src/xwidget.c (Fxwidget_webkit_uri): Don't assume + webkit_web_view_get_uri will always return a valid string. + +2021-11-11 Po Lu <luangruo@yahoo.com> + + Check for WebKit xwidgets inside all xwidget-webkit functions + + This is done in preparation for the introduction of other + xwidgets, such as media xwidgets, even though there are + only WebKit widgets at present. + + * src/xwidget.c (CHECK_WEBKIT_XWIDGET): New macro. + (WEBKIT_FN_INIT): Use CHECK_WEBKIT_XWIDGET. + + (Fxwidget_webkit_search, Fxwidget_webkit_next_result) + (Fxwidget_webkit_previous_result) + (Fxwidget_webkit_finish_search) + (Fxwidget_webkit_load_html): Check that xwidget is a WebKit + widget. + +2021-11-11 Lars Ingebrigtsen <larsi@gnus.org> + + Fix image-animate declaration + + * lisp/net/shr.el (image-animate): Fix declaration. + +2021-11-11 Lars Ingebrigtsen <larsi@gnus.org> + + Make gnus-article-stop-animations obsolete + + * lisp/gnus/gnus-art.el (gnus-article-stop-animations): Make + obsolete now that animated images stop themselves automatically. + (gnus-article-setup-buffer): + * lisp/gnus/gnus-sum.el (gnus-summary-exit) + (gnus-summary-exit-no-update, gnus-summary-show-article): Remove + callers. + +2021-11-11 Lars Ingebrigtsen <larsi@gnus.org> + + Allow stopping animations automatically when the image disappears + + * lisp/image.el (image-animate): Allow the animation to be stopped + automatically when the image is removed from the buffer. + (image-animate-timeout): Stop the animation if the image is + removed (and that has been requested). + + * lisp/net/shr.el (shr-put-image): Stop animations if the image is + removed. + +2021-11-11 Po Lu <luangruo@yahoo.com> + + Prevent crashes from Lisp code modifying xwidget-list + + * src/xwidget.c (internal_xwidget_view_list) + (internal_xwidget_list): New variable. + + (find_xwidget_for_offscreen_window) + (define_cursors, offscreen_damage_event) + (webkit_ready_to_show, xwidget_init_view) + (Fxwidget_resize, Fdelete_xwidget_view) + (Fxwidget_view_lookup, xwidget_spec_value) + (lookup_xwidget, xwidget_end_redisplay) + (kill_frame_xwidget_views, kill_buffer_xwidgets) + (Fmake_xwidget, Fget_buffer_xwidgets): Use internal list. + + (syms_of_xwidget): Initialize internal xwidget lists. + +2021-11-11 Po Lu <luangruo@yahoo.com> + + Prevent crashes in xwidgets whose buffers have been killed + + * doc/lispref/display.texi (Xwidgets): Explain meaning of killed + xwidgets. + * src/xwidget.c (Fxwidget_live_p): New function. + (Fxwidget_perform_lispy_event, WEBKIT_FN_INIT) + (Fxwidget_resize, Fxwidget_size_request) + (Fxwidget_info, Fxwidget_plist) + (Fset_xwidget_buffer, Fset_xwidget_plist) + (Fset_xwidget_query_on_exit_flag) + (Fxwidget_query_on_exit_flag) + (Fxwidget_webkit_search) + (Fxwidget_webkit_next_result) + (Fxwidget_webkit_previous_result) + (Fxwidget_webkit_finish_search) + (Fxwidget_webkit_load_html): Check for live xwidgets instead of + just xwidgets. + + (xwidget_button, xwidget_motion_or_crossing) + (xv_do_draw, x_draw_xwidget_glyph_string) + (Fdelete_xwidget_view): Ignore killed xwidgets. + + (syms_of_xwidget): Define new symbols and subrs and define + appropriate weakness of id_to_xwidget map. + (kill_buffer_xwidgets): Check live xwidgets instead of + killed xwidgets, set xwidget buffer to nil, and rely on GC to + free the hash table for us instead. + + * src/xwidget.h (XWIDGET_LIVE_P, CHECK_LIVE_XWIDGET): New + macros. + +2021-11-11 Eli Zaretskii <eliz@gnu.org> + + Fix compilation on MS-Windows + + * src/callproc.c (emacs_spawn) <fork_done>: Define the label only + if USABLE_POSIX_SPAWN is defined, to avoid a compiler warning. + +2021-11-11 Philipp Stephani <phst@google.com> + + Use posix_spawn if possible. + + posix_spawn is less error-prone than vfork + execve, and can make + better use of system-specific enhancements like 'clone' on Linux. Use + it if we don't need to configure a pseudoterminal. + + * configure.ac (HAVE_SPAWN_H, HAVE_POSIX_SPAWN) + (HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR) + (HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR_NP) + (HAVE_POSIX_SPAWNATTR_SETFLAGS, HAVE_DECL_POSIX_SPAWN_SETSID): New + configuration variables. + * src/callproc.c (USABLE_POSIX_SPAWN): New configuration macro. + (emacs_posix_spawn_init_actions) + (emacs_posix_spawn_init_attributes, emacs_posix_spawn_init): New + helper functions. + (emacs_spawn): Use posix_spawn if possible. + +2021-11-11 Jim Porter <jporterbugs@gmail.com> + + Improve performance of 'file-name-case-insensitive-p' for Tramp files + + Previously, each function in 'tramp-foreign-file-name-handler-alist' + would call 'tramp-dissect-file-name', resulting in it being called + several times whenever 'tramp-find-foreign-file-name-handler' was + called. Now, functions take the dissected file name to avoid this + duplicated effort. (Bug#51699) + + * etc/NEWS: Announce this change. + + * lisp/net/tramp-adb.el (tramp-adb-file-name-p): + * lisp/net/tramp-ftp.el (tramp-ftp-file-name-p): + * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-p): + * lisp/net/tramp-rclone.el (tramp-rclone-file-name-p): + * lisp/net/tramp-smb.el (tramp-smb-file-name-p): + * lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-p): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-p): + Accept dissected file names. + + * lisp/net/tramp.el (tramp-ensure-dissected-file-name): New function. + (tramp-find-foreign-file-name-handler): Pass dissected file name to + functions. + (tramp-connectable-p): Use 'tramp-ensure-dissected-file-name'. + +2021-11-11 Stefan Kangas <stefan@marxist.se> + + erc: Don't announce broken functionality in /query docstring + + * lisp/erc/erc.el (erc-cmd-QUERY): Be less enthusiastic about + announcing missing/broken functionality. The comment "except this is + broken right now" has been there since 2008, and it's not obvious to + me that we should ever re-add it. + +2021-11-11 Filipp Gunbin <fgunbin@fastmail.fm> + + * lisp/subr.el (add-hook): Fix adding into hook--depth-alist (bug#51620). + +2021-11-11 Eli Zaretskii <eliz@gnu.org> + + Fix 8-color PuTTY -nw sessions broken by a recent commit + + * src/term.c (init_tty): Fix the change which introduced support + for the terminfo Tc flag. The code as installed broke colors in + PuTTY -nw sessions, because 'tigetflag' returned -1, which is + non-zero, so it was treated as the sign that true color is + supported. But if the value returned by 'tigetflag' is -1, it means + the capability is not a boolean one, so that's not to be used as a + valid support for 24-bit color. (Bug#44950) + +2021-11-11 Lars Ingebrigtsen <larsi@gnus.org> + + Fix problem with non-absolute names + + * lisp/files.el (file-name-split): Fix problem with non-absolute + names. + +2021-11-11 Lars Ingebrigtsen <larsi@gnus.org> + + Add a command to go the gnu.org version of the info page + + * lisp/info.el (Info-url-for-node): + (Info-goto-node-web): New function (bug#44895). + + Based on code from Drew Adams <drew.adams@oracle.com>. + +2021-11-11 Michael Albinus <michael.albinus@gmx.de> + + Merge from origin/emacs-28 + + 6dae01ad6d Fix tramp-compat-file-name-concat (Bug#51754) + +2021-11-11 Po Lu <luangruo@yahoo.com> + + Add URI as a valid spec for xwidget-webkit-buffer-name-format + + * lisp/xwidget.el (xwidget-webkit-buffer-name-format): Update + doc string. + (xwidget-webkit-callback): Add a format spec %U, which stands + for the current URI of the widget. + +2021-11-11 Feng Shu <tumashu@163.com> + + xwidget: Add xwidget-webkit-buffer-name-format. + + * lisp/xwidget.el (xwidget-webkit-buffer-name-prefix): + Remove variable. + (xwidget-webkit-buffer-name-format): New variable. + (xwidget-webkit-callback): Use + xwidget-webkit-buffer-name-format instead. + (format-spec): required. + + * etc/NEWS: Note xwidget-webkit-buffer-name-format. + +2021-11-11 Eli Zaretskii <eliz@gnu.org> + + Fix files-tests on MS-Windows + + * lisp/ls-lisp.el (ls-lisp--insert-directory): Fix free disk space + calculation. (Bug#50630) + + * test/lisp/files-tests.el (files-tests-revert-buffer) + (files-tests-revert-buffer-with-fine-grain): Disable locking + files. + +2021-11-11 Po Lu <luangruo@yahoo.com> + + Fix documentation in xwidget.el + + * src/xwidget.el (xwidget-webkit-isearch-mode): Reword + documentation. + +2021-11-11 Po Lu <luangruo@yahoo.com> + + Switch to xwidget webkit buffer even if a session already exists + + * lisp/xwidget.el (xwidget-webkit-goto-url): Make behavior + when there is an existing session consistent. + +2021-11-11 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 2963de6540 * lisp/vc/vc-git.el (vc-git-mergebase): More meaningful er... + a9148cdee5 ; Fix heading in etc/NEWS + 9623342216 ; * etc/NEWS: Move a bookmark related item further down. + + # Conflicts: + # etc/NEWS + +2021-11-11 Tim Ruffing <crypto@timruffing.de> (tiny change) + + Support Tc terminfo flag for 24-bit color support in terminal + + * src/term.c (init_tty): Use the Tc flag (bug#44950). + +2021-11-11 Gregory Heytings <gregory@heytings.org> + + Options to automatically stop the Emacs server + + * doc/emacs/misc.texi (Emacs Server): Document the new function. + Also mention that an Emacs server can be started with emacsclient. + + * etc/NEWS: Describe the new function (bug#51377). + * lisp/server.el (server-stop-automatically): New function. + (server-stop-automatically): New auxiliary variable. + (server-stop-automatically--maybe-kill-emacs) + (server-stop-automatically--handle-delete-frame): New auxiliary + functions. + (server-save-buffers-kill-terminal): Call the new auxiliary + function when necessary. + +2021-11-11 Miha Rihtaršič <miha@kamnitnik.top> + + Set `minibuffer-completion-*` variables locally in more places + + * lisp/calc/calc-store.el (calc-read-var-name): + * lisp/emacs-lisp/crm.el (completing-read-multiple): + * lisp/progmodes/cc-styles.el (c-read-offset): + * lisp/window.el (read-buffer-to-switch): + Set `minibuffer-completion-*` variables buffer-locally instead of + using a global let-binding (bug#48925). + + Follow-up to commit + 2021-05-01 "* lisp/minibuffer.el (completing-read-default): Fix bug#45474" + +2021-11-10 Lars Ingebrigtsen <larsi@gnus.org> + + Re-fix charset issues when yanking non-plain-text elements + + * lisp/select.el (gui-get-selection): Make (gui-get-selection + 'CLIPBOARD 'text/html) get decoded correctly (bug#31149), but still + avoid the logic on Windows. + +2021-11-10 Lars Ingebrigtsen <larsi@gnus.org> + + Don't save places in literally-visited files + + * lisp/saveplace.el (save-places-to-alist): Don't save places in + literally-visited files (bug#51740). + +2021-11-10 John Cummings <john@rootabega.net> + + Add tests for 'insert-directory' + + * test/lisp/files-tests.el: Add 'insert-directory' tests. + * test/lisp/files-resources/insert-directory/: Create directories and files to + use for testing 'insert-directory'. + + Add tests for 'insert-directory' base functionality and regression tests for + the issue where free space was reported for the current directory instead of + the target of 'list-directory' (Bug#50630). + +2021-11-10 Lars Ingebrigtsen <larsi@gnus.org> + + Note that loaddefs.el is copied to ldefs-boot.el + + * lisp/emacs-lisp/autoload.el (autoload-rubric): Add a comment to + the file noting what'll happen to it. + +2021-11-10 Lars Ingebrigtsen <larsi@gnus.org> + + Re-generated to get autoloads additions in emoji.el + +2021-11-10 Po Lu <luangruo@yahoo.com> + + Add `xwidget-webkit-load-html' + + * doc/lispref/display.texi (Xwidgets): Document new function. + * etc/NEWS: Announce new function. + * src/xwidget.c (Fxwidget_webkit_load_html): New function. + (syms_of_xwidget): Define new subr. + +2021-11-10 Juri Linkov <juri@linkov.net> + + * etc/NEWS.28: Add changes omitted while merging from emacs-28 NEWS. + + * etc/NEWS: Remove old news accidentally merged from emacs-28. + +2021-11-10 Eli Zaretskii <eliz@gnu.org> + + Fix font weights on MS-Windows + + * src/w32font.c (w32_decode_weight, w32_encode_weight) + (w32_to_fc_weight): Adjust weight translations to match those in + font.c and gtkutil.c:xg_weight_to_symbol. (Bug#51704) + +2021-11-10 Robert Pluim <rpluim@gmail.com> + + Improve 'ensure-empty-lines' docstring + + * lisp/emacs-lisp/subr-x.el (ensure-empty-lines): Fix typo and improve + wording. + +2021-11-10 Stefan Kangas <stefan@marxist.se> + + * admin/update_autogen: Remove unused variables. + +2021-11-10 Stefan Kangas <stefan@marxist.se> + + Use "grep -E" instead of deprecated "egrep" + + * admin/emake: + * test/lisp/so-long-tests/so-long-tests.el: Use "grep -E" instead of + deprecated "egrep". + +2021-11-10 Stefan Kangas <stefan@marxist.se> + + Avoid another byte-compiler warning in package-quickstart.el + + * lisp/emacs-lisp/package.el (package-quickstart-refresh): Avoid + byte-compiler warning "assignment to free variable" in + package-quickstart.el. + +2021-11-10 Stefan Kangas <stefan@marxist.se> + + Avoid spurious byte-compiler warnings in package-quickstart.el + + * lisp/emacs-lisp/package.el (package-quickstart-refresh): Disable the + "`make-variable-buffer-local' not called at toplevel" byte-compiler + warnings. Given that we wrap it all in a let-form, these are mostly + false positives and not helpful. + +2021-11-10 Stefan Kangas <stefan@marxist.se> + + * admin/automerge: Fix quoting of some variables. + + * admin/automerge: Use mktemp if it exists. + +2021-11-10 Po Lu <luangruo@yahoo.com> + + Prevent GDK warning about missing event devices in most cases + + * src/xwidget.c (synthesize_focus_in_event): Set event device to + selected frame's pointer if it's an X frame. + +2021-11-10 Po Lu <luangruo@yahoo.com> + + Add `xwidget-webkit-isearch-yank-kill' + + * lisp/xwidget.el: Bind C-y to xwidget-webkit-yank-kill in incremental + search. + (xwidget-webkit-isearch-mode): Update doc string. + (xwidget-webkit-yank-kill): New function. + +2021-11-10 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 8d81ab374d time-stamp: %F is "file name" not "pathname" + other doc + beaa7e14f3 ; Fix typos in CONTRIBUTE, ELisp manual, ediff + 747a1ae4ac * doc/misc/eww.texi (Advanced): Fix missed variable name e... + 52fe2340b8 * doc/emacs/windows.texi (Window Convenience): Use @code f... + 7d3a654e2a * doc/emacs/maintaining.texi (Basic VC Editing): Mention D... + aeb19af4b5 ; * doc/emacs/building.texi (Lisp Libraries): Fix a typo. ... + + # Conflicts: + # etc/NEWS + +2021-11-10 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 2782bc113e Revert "Fix localized display of date and time in the NS p... + +2021-11-10 Po Lu <luangruo@yahoo.com> + + Prevent skipping results while changing search direction + + * lisp/xwidget.el (xwidget-webkit-isearch-forward) + (xwidget-webkit-isearch-backward): Avoid moving to the next result one + too many times. + +2021-11-10 Benj <Benjamin.Schwerdtner@gmail.com> (tiny change) + + Make the python missing-readline warning more helpful + + * lisp/progmodes/python.el + (python-shell-completion-native-turn-on-maybe): Mention the "readline" + package (bug#48998). + +2021-11-10 Lars Ingebrigtsen <larsi@gnus.org> + + Make `C-c C-c' in erts-mode work with Point-Char elems + + * lisp/progmodes/erts-mode.el (erts-mode--preceding-spec): + Factor out into own function (bug#51680). + (erts-run-test): Respect Point-Char settings. + +2021-11-10 Po Lu <luangruo@yahoo.com> + + Remove obsolete limitation + + * src/xwidget.c (Fxwidget_webkit_goto_history): Accept any fixnum as + REL-POS, to be consistent with docstring. + +2021-11-10 Po Lu <luangruo@yahoo.com> + + Fix incorrect offset calculation for clipped xwidget views + + * src/xwidget.c (from_embedder, to_embedder): Remove incorrect + adjustment of position by view clipping. + +2021-11-10 Po Lu <luangruo@yahoo.com> + + Fix invisible content in WebKit dialogs + + * src/xwidget.c (webkit_script_dialog_cb): Use custom label instead of + dialog box title to display message. + +2021-11-10 Po Lu <luangruo@yahoo.com> + + Set embedder correctly to fix menus appearing in the wrong location + + * src/xwidget.c (record_osr_embedder, from_embedder, to_embedder): New + functions. + (Fmake_xwidget): Attach from-embedder and to-embedder signals. + (find_widget_for_offscreen_window): New function. + (xwidget_button, xwidget_motion_or_crossing): Set embedder on event. + (Fdelete_xwidget_view): Remove embedder status if applicable. + + * src/xwidget.h (struct xwidget): New fields `embedder' and + `embedder-view'. + +2021-11-10 Po Lu <luangruo@yahoo.com> + + Revert "Fix mouse face in NS port" + + This reverts commit 278e4fc9c6353068334dd39d45334b1df82a6cee. + +2021-11-10 Po Lu <luangruo@yahoo.com> + + Revert "*** empty log message ***" + + This reverts commit 68a2a3307d1703ac8abe4b54c8e1ef9dda677c12. + +2021-11-10 Po Lu <luangruo@yahoo.com> + + Revert "Add support for event processing via XInput 2" + + This reverts commit 346cfc81247e6bf8e727a27b42f44f2389bd1269. + +2021-11-10 Po Lu <luangruo@yahoo.com> + + Revert "Fix erasing cursor on top of raised boxes in NS port" + + This reverts commit 2b5a2ab50b7817f84ae38f84b4ea36ea38cd5a3b. + +2021-11-10 Po Lu <luangruo@yahoo.com> + + Revert "Revert "Fix erasing cursor on top of raised boxes in NS port"" + + This reverts commit 7117bbc7aa905ae785fa564cb24c3fc75ef1d543. + +2021-11-10 Po Lu <luangruo@yahoo.com> + + Revert "Support opening the toolkit menu bar on NS" + + This reverts commit ff9cf991c1608cd2578a66cba41e654a2b5d9144. + +2021-11-10 oldosfan <luangruo@yahoo.com> + + Support opening the toolkit menu bar on NS + + * src/nsmenu.m (ns_activate_menubar, Fns_open_menubar): New functions. + * src/nsterm.m (ns_create_terminal): Add activate_menubar_hook. + * lisp/menu-bar.el (menu-bar-open): Use ns-menu-bar-open on Nextstep. + +2021-11-10 oldosfan <luangruo@yahoo.com> + + Revert "Fix erasing cursor on top of raised boxes in NS port" + + This reverts commit 960f0eb9ab657af85c532574b937d8851049b178. + +2021-11-10 oldosfan <luangruo@yahoo.com> + + Fix erasing cursor on top of raised boxes in NS port + + * src/nsterm.m (ns_draw_relief): Clear top and bottom line areas + first, if required. + +2021-11-10 oldosfan <luangruo@yahoo.com> + + Add support for event processing via XInput 2 + + * configure.ac: Add an option to use XInput 2 if available + * src/Makefile.in (XINPUT_LIBS, XINPUT_CFLAGS): New variables + (EMACS_CFLAGS): Add Xinput CFLAGS + (LIBES): Add XInput libs + * src/xmenu.c (popup_activated_flag): Expose flag if XInput 2 is + available + * src/xfns.c (x_window): Set XInput 2 event mask + * src/xterm.c (x_detect_focus_change): Handle XInput 2 GenericEvents + (handle_one_xevent): Handle XInput 2 events + (x_term_init): Ask the server for XInput 2 support and set xkb_desc if + available + (x_delete_terminal): Free XKB kb desc if it exists, and free XI2 + devices if they exist + (x_free_xi_devices, x_init_master_valuators): New functions + (x_get_scroll_valuator_delta): New function + (init_xterm): Don't tell GTK to only use Core Input when built with + XInput 2 support + * src/xterm.h (struct x_display_info): Add fields for XKB and XI2 + support + * src/gtkutil.c (xg_event_is_for_menubar): Handle XIDeviceEvents + (xg_is_menu_window): New function + (xg_event_is_for_scrollbar): Handle XIDeviceEvents + +2021-11-10 oldosfan <luangruo@yahoo.com> + + *** empty log message *** + +2021-11-10 oldosfan <luangruo@yahoo.com> + + Fix mouse face in NS port + + * src/nsterm.m (ns_draw_glyph_string): Set s->face to the mouse face. + +2021-11-09 Lars Ingebrigtsen <larsi@gnus.org> + + Fix package-tests failure on native-comp + + * test/lisp/emacs-lisp/package-tests.el + (package-test-macro-compilation-gz): Fix test failure on native-comp. + +2021-11-09 Lars Ingebrigtsen <larsi@gnus.org> + + Fix the look of the <video> elements in shr + + * lisp/net/shr.el (shr-tag-video): Tweak the look of the video element. + +2021-11-09 Lars Ingebrigtsen <larsi@emkay.local> + + Try to fix intermittent build problem on Macos + + * src/Makefile.in (@): Also sign the bootstrap-emacs executable + +2021-11-09 Tom Levy <tomlevy93@gmail.com> (tiny change) + + Remove spurious %S from 'define-error' messages + + + * lisp/emacs/lisp/cl-generic.el (cl--generic-cyclic-definition): + Remove spurious %S from error message. + * lisp/emacs-lisp/gv.el (gv-invalid-place): Remove spurious %S from + error message (and rephrase) (bug#51718). + +2021-11-09 Tom Levy <tomlevy93@gmail.com> (tiny change) + + Allow 'undo-redo' to be called from Lisp without repeat count + + * lisp/simple.el (undo-redo): Default arg to 1 to avoid error when + called from Lisp without args (bug#51718). + +2021-11-09 Po Lu <luangruo@yahoo.com> + + Prevent BadValue errors when creating tiny xwidget views + + * src/xwidget.c (x_draw_glph_string): Avoid resizing xwidget views + to an invalid size (bug#51707). + +2021-11-09 Lars Ingebrigtsen <larsi@gnus.org> + + Add new function 'file-name-split' + + * doc/lispref/files.texi (File Name Components): Document it. + * lisp/files.el (file-name-split): New function (bug#50572). + + * lisp/emacs-lisp/shortdoc.el (file-name): Mention it. + +2021-11-09 Lars Ingebrigtsen <larsi@gnus.org> + + Make `dired-split' obsolete + + * lisp/dired-aux.el (dired-tree-lessp): Adjust caller. + (dired-split): Make obsolete (bug#50572). + + * lisp/ffap.el (ffap-list-env): Adjust comment. + +2021-11-09 Michael Albinus <michael.albinus@gmx.de> + + * lisp/net/tramp-cache.el (tramp-persistency-file-name): + + Skip superfluous `expand-file-name'. + +2021-11-09 Jim Porter <jporterbugs@gmail.com> + + Improve performance when checking case-sensitivity of Tramp file names + + * lisp/net/tramp-sh.el (tramp-sh-handle-expand-file-name): + Dissect file name before testing for connectability to reduce + duplicated work. + + * lisp/net/tramp.el (tramp-handle-file-name-case-insensitive-p): + Use `tramp-connectable-p' to test for connection. + +2021-11-09 Stefan Kangas <stefan@marxist.se> + + Add back/forward mouse button bindings in eww + + * lisp/net/eww.el (eww-mode-map): Add mouse back/forward button + bindings. These bindings are the same as in Firefox and other + graphical browsers. + +2021-11-09 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/prog-mode.el (prog-context-menu): Add "Go Forward". + + The menu item "Go Forward" is bound to xref-go-forward. + Also use "Go Back" for xref-go-back (bug#38797). + +2021-11-09 Juri Linkov <juri@linkov.net> + + * lisp/vc/diff-mode.el (diff-setup-buffer-type): Move to diff-setup-whitespace + + * lisp/vc/vc.el: Add declare-function for diff-setup-buffer-type (bug#51016). + +2021-11-09 Lars Ingebrigtsen <larsi@gnus.org> + + Expand the etc/NEWS section about the `medium' font changes + + * etc/NEWS: Expand upon the addition of the `medium' weight + (bug#51704). + +2021-11-09 Po Lu <luangruo@yahoo.com> + + Fix compiler warning building net/shr.el without xwidget support + + * lisp/net/shr.el (xwidget-webkit-execute-script): New function + declaration (bug#51705). + +2021-11-09 Po Lu <luangruo@yahoo.com> + + Fix default target of motion events + + * src/xwidget.c (xwidget_motion_or_crossing): Default to widget_osr + instead of its window (bug#51703). + +2021-11-09 Stefan Kangas <stefan@marxist.se> + + Prefer locate-user-emacs-file + + * lisp/cmuscheme.el (scheme-start-file): + * lisp/erc/erc.el (erc-startup-file-list): + * lisp/net/nsm.el (nsm-settings-file): + * lisp/net/tramp-crypt.el (tramp-crypt-config-file-name): + * lisp/org/org-clock.el (org-clock-persist-file): + * lisp/org/org-id.el (org-id-locations-file) + * lisp/shell.el (shell): Prefer 'locate-user-emacs-file' to fiddling + with 'user-emacs-directory' directly. + +2021-11-09 Po Lu <luangruo@yahoo.com> + + Always set xwidget title if the event was "load-finished" + + * lisp/xwidget.el (xwidget-webkit-callback): Always set title upon + load completion. This prevents loading pages such as "about:blank" + from not setting the buffer name (bug#51702). + +2021-11-09 Po Lu <luangruo@yahoo.com> + + Make `kill_frame_xwidget_views' safe + + * src/xwidget.c (kill_frame_xwidget_views): Check XWIDGET_VIEW_P + (bug#51701). + +2021-11-09 Lars Ingebrigtsen <larsi@gnus.org> + + Don't create temporary files for <video> + + * lisp/net/shr.el (shr-tag-audio): Don't create a temporary file; + just update the DOM directly. + +2021-11-09 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + 307d164c9c * lisp/mouse.el (mouse-buffer-menu-mode-groups): Tighten "... + 818211ed89 * doc/emacs/search.texi (Isearch Yank): Add isearch-forwar... + + # Conflicts: + # etc/NEWS + +2021-11-09 Po Lu <luangruo@yahoo.com> + + Make xwidget-tests pass again + + * lisp/xwidget.el (xwidget-webkit-buffer-name-prefix): Remove extra + space. + (xwidget-webkit-callback): Add trailing "*" to buffer name. + (xwidget-webkit-new-session, xwidget-webkit-import-widget): Always use + existing buffer name (bug#51700). + +2021-11-09 Lars Ingebrigtsen <larsi@gnus.org> + + Fix typo in last shr change + + * lisp/net/shr.el (shr-tag-video): Require xwidgets, because it's + used from callbacks. + +2021-11-09 Lars Ingebrigtsen <larsi@gnus.org> + + Fix shr-tag-video startup issue + + * lisp/net/shr.el (shr-tag-video): Require xwidgets, because it's + used from callbacks. + +2021-11-09 Lars Ingebrigtsen <larsi@gnus.org> + + Optionally use use xwidgets to display <video> elements in shr + + * doc/misc/eww.texi (Advanced): Document it. + * lisp/net/shr.el (shr-use-xwidgets-for-media): New user option. + (shr-tag-video): Use xwidgets to display <video> elements. + +2021-11-08 Lars Ingebrigtsen <larsi@gnus.org> + + Make image-compute-scaling-factor argument optional + + * lisp/image.el (image-compute-scaling-factor): Make the argument + optional. + +2021-11-08 Lars Ingebrigtsen <larsi@gnus.org> + + ARGUMENTS in Fmake_xwidget is optional + + * src/xwidget.c (Fmake_xwidget): The ARGUMENTS argument isn't + mandatory. + +2021-11-08 Lars Ingebrigtsen <larsi@gnus.org> + + Make xwidget-event-handler more resilient + + * lisp/xwidget.el (xwidget-event-handler): Don't try to call the + callback if it hasn't been defined. + +2021-11-08 Lars Ingebrigtsen <larsi@gnus.org> + + Delete temp directory after bytecomp test + + * test/lisp/emacs-lisp/bytecomp-tests.el + (bytecomp-tests--not-writable-directory): Allow deletion of + directory (bug#51690). + + * test/lisp/emacs-lisp/bytecomp-tests.el + (bytecomp-tests--dest-mountpoint): Ditto. + +2021-11-08 Po Lu <luangruo@yahoo.com> + + Fix flicker when setting hscroll of xwidget + + * src/xterm.c (x_scroll_run): Use original height of xwidget instead + of window height and set cairo surface size (bug#51697). + +2021-11-08 Po Lu <luangruo@yahoo.com> + + Raise an error if creating an unknown xwidget type + + * src/xwidget.c (Fmake_xwidget): Error if TYPE is invalid (bug#51682). + +2021-11-08 Po Lu <luangruo@yahoo.com> + + Really fix xwidget scroll optimization and clip + + * src/xterm.c (x_scroll_run): Improve clip detection. + * src/xwidget.c (xv_do_draw): Use cairo_translate. + (xwidget_motion_or_crossing): Use correct fields (bug#51681). + +2021-11-08 Feng Shu <tumashu@163.com> + + xwidget.el: limit buffer-name flicker in mode-line + + * lisp/xwidget.el (xwidget-webkit): New customization group. + (xwidget-webkit-buffer-name-prefix): New user option. + (xwidget-webkit-callback): with-current-buffer only after get title, + which can limit buffer-name change in mode-line. + (xwidget-webkit-new-session, xwidget-webkit-import-widget): Use + current buffer to generate a temp xwidget-webkit buffer. + +2021-11-08 Matthias Meulien <orontee@gmail.com> + + Fix local variables overwritten when diff-mode is set + + * lisp/vc/diff-mode.el (diff-mode): + (diff-setup-buffer-type): Defun to initialize `diff-buffer-type' + + * lisp/vc/vc.el (vc-diff-finish): Set `diff-buffer-type' after content + inserted + (vc-diff-internal): Restore `diff-mode' being set before local + variables (bug#51016). + +2021-11-08 Lars Ingebrigtsen <larsi@gnus.org> + + Allow yank-media-types to also show the unsupported data types + + * lisp/yank-media.el (yank-media-types): Make the prefix include + data types not supported by the backend, too. + +2021-11-08 Eric Abrahamsen <eric@ericabrahamsen.net> + + Don't have nntp-report signal an error + + * lisp/gnus/nntp.el (nntp-report): This should behave as much as + possible like nnheader-report, which only logs the error and returns + nil. + +2021-11-08 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/xdg.el (xdg--dir-home): Make it a function + +2021-11-08 Campbell Barton <ideasman42@gmail.com> + + * lisp/subr.el (with-undo-amalgamate): New macro + + This allows commands to be made without adding undo-barriers, e.g. + kmacro-exec-ring-item. + +2021-11-08 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/cl-generic.el: Add reference to inspiration + +2021-11-08 Lars Ingebrigtsen <larsi@gnus.org> + + Switch yank-media--get-selection back to the backend function + + * lisp/yank-media.el (yank-media--get-selection): Switch back to + gui-backend-get-selection until gui-get-selection is re-fixed. + +2021-11-08 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "Fix charset issues when yanking non-plain-text elements" + + This reverts commit 5e66c75e0b6b91b6f5d9aa46c824e8209ade8f2a. + + This apparently led to problems on Windows. The issues have to + be examined first before attempting a new fix. + +2021-11-08 Stefan Kangas <stefan@marxist.se> + + * admin/automerge: Die if changing directory fails. + +2021-11-08 Stefan Kangas <stefan@marxist.se> + + Merge from origin/emacs-28 + + fe91f4438c ; * etc/PROBLEMS: Move librsvg-related item to better loca... + +2021-11-08 Lars Ingebrigtsen <larsi@gnus.org> + + Remove code what would always maximize xwidgets on Macos + + * src/xwidget.c (x_draw_xwidget_glyph_string): Remove code that + would always maximize the widget on Macos (bug#51674). This code + was probably added to work around a resizing bug that has since + been fixed. + +2021-11-08 akater <nuclearspace@gmail.com> + + lisp/emacs-lisp/lisp-mode.el: Fix parser state corruption. + + * lisp/emacs-lisp/lisp-mode.el (lisp--local-defform-body-p): Preserve + the point. + * test/lisp/progmodes/elisp-mode-resources/flet.erts: Add corresponding + test example (bug#9622). + +2021-11-08 Po Lu <luangruo@yahoo.com> + + Fix resize of xwidgets on GTK + + * src/xwidget.c (Fxwidget_resize): Queue widget for re-allocation + after setting its size request (bug#51679). + +2021-11-08 Po Lu <luangruo@yahoo.com> + + Fix hang when displaying xwidget script dialog + + * src/xwidget.c (webkit_script_dialog_cb): New function. + (Fmake_xwidget): Attach script callback signal (bug#51674). + +2021-11-08 Stefan Kangas <stefan@marxist.se> + + image-dired: Set window-resize-pixelwise to t + + * lisp/image-dired.el (image-dired-thumbnail-mode): Set + 'window-resize-pixelwise' to t. + +2021-11-08 Lars Ingebrigtsen <larsi@gnus.org> + + Mention yank-media-types in the manual + + * doc/lispref/frames.texi (Yanking Media): Mention yank-media-types. + +2021-11-08 Lars Ingebrigtsen <larsi@gnus.org> + + Make html-mode--html-yank-handler more resilient + + * lisp/textmodes/sgml-mode.el (html-mode--html-yank-handler): The + HTML may not be valid, so suppress errors. + +2021-11-08 Lars Ingebrigtsen <larsi@gnus.org> + + Fix yank-media--get-selection thinko in previous change + + * lisp/yank-media.el (yank-media--get-selection): Fix thinko after + previous change. + +2021-11-07 Lars Ingebrigtsen <larsi@gnus.org> + + Clean up the yank-media data massaging + + * lisp/yank-media.el (yank-media--get-selection): Put the + nul-massaging code... + (yank-media-types--format): ... here instead, and decode utf-16 + better. + +2021-11-07 Lars Ingebrigtsen <larsi@gnus.org> + + Add a new debugging/exploration command `yank-media-types' + + * lisp/yank-media.el (yank-media-types): New command. + (yank-media-types--format): Helper command. + +2021-11-07 Lars Ingebrigtsen <larsi@gnus.org> + + Fix charset issues when yanking non-plain-text elements + + * lisp/select.el (gui-get-selection): Make (gui-get-selection + 'CLIPBOARD 'text/html) get decoded correctly (bug#31149). + +2021-11-07 Lars Ingebrigtsen <larsi@gnus.org> + + Rename 'register-yank-media-handler' + + * lisp/textmodes/sgml-mode.el (html-mode): + * lisp/gnus/message.el (message-mode): + * doc/lispref/frames.texi (Yanking Media): Adjust. + * lisp/yank-media.el (yank-media): Adjust doc string. + (yank-media-handler): Rename from `register-' because that may + cause confusion with register.el functions. + +2021-11-07 Stefan Kangas <stefan@marxist.se> + + Prefer ert-with-temp-(directory|file) in most remaining tests + + * test/lisp/auth-source-tests.el (auth-source-test-searches): + * test/lisp/autorevert-tests.el (auto-revert-test00-auto-revert-mode) + (auto-revert-test01-auto-revert-several-files) + (auto-revert-test02-auto-revert-deleted-file) + (auto-revert-test03-auto-revert-tail-mode) + (auto-revert-test04-auto-revert-mode-dired) + (auto-revert-test05-global-notify) + (auto-revert-test06-write-file) + (auto-revert-test07-auto-revert-several-buffers): + * test/lisp/calendar/icalendar-tests.el (icalendar-tests--do-test-cycle): + * test/lisp/custom-tests.el (custom-theme--load-path): + * test/lisp/dired-aux-tests.el (dired-test-bug27496) + (with-dired-bug28834-test): + * test/lisp/emacs-lisp/bytecomp-tests.el (test-byte-comp-compile-and-load) + (bytecomp-tests--dest-mountpoint) + (bytecomp-tests--target-file-no-directory): + * test/lisp/emacs-lisp/gv-tests.el (gv-tests--in-temp-dir): + * test/lisp/eshell/eshell-tests.el (with-temp-eshell) + (eshell-test-command-result): + * test/lisp/info-xref-tests.el (info-xref-test-makeinfo): + * test/lisp/vc/vc-tests.el (vc-test--create-repo) + (vc-test--register, vc-test--state, vc-test--working-revision) + (vc-test--checkout-model, vc-test--rename-file) + (vc-test--version-diff): + * test/src/buffer-tests.el (test-kill-buffer-auto-save-delete): + * test/src/comp-tests.el (comp-tests-bootstrap): + * test/src/process-tests.el (process-test-quoted-batfile): Prefer + 'ert-with-temp-(directory|file)' to using 'make-temp-file' directly. + +2021-11-07 Po Lu <luangruo@yahoo.com> + + Set clipping when dumping stretch glyphs in some cases + + * src/nsterm.m (ns_draw_glyph_string): Always focus even when dumping + stretch glyphs in s->next (bug#51653). + +2021-11-07 Lars Ingebrigtsen <larsi@gnus.org> + + Fix charset issues in text/html yanking + + * lisp/yank-media.el (yank-media--get-selection): Use + gui-backend-get-selection instead of the higher-level function + which guesses wrong on the charset on many types. + (yank-media): Fix the case where there's only one match. + +2021-11-07 Lars Ingebrigtsen <larsi@gnus.org> + + Suppress a compilation warning about vc-switch-backend + + * lisp/vc/vc-hooks.el (vc-prefix-map): Suppress a warning about an + obsolete command. + +2021-11-07 Miha Rihtaršič <miha@kamnitnik.top> + + Improve undoing of RET in comint and eshell + + * lisp/comint.el (comint-send-input): + (comint-accumulate): + * lisp/eshell/esh-mode.el (eshell-send-input): Before sending input to + the process, delete it and reinsert it again. Undoing this + insertion with 'C-/' will delete the region, moving the process mark + back to its original position (bug#49484). + +2021-11-07 Lars Ingebrigtsen <larsi@gnus.org> + + Allow 'C-x n d' to work in texinfo-mode + + * lisp/textmodes/texinfo.el (texinfo-mode): Set + beginning/end-of-defun functions to allow narrowing to the current + node. + (texinfo--beginning-of-defun, texinfo--end-of-defun): New functions. + +2021-11-07 Lars Ingebrigtsen <larsi@gnus.org> + + Make paragraph/filling functions in texinfo-mode work better + + * lisp/textmodes/texinfo.el (texinfo-mode): Make paragraph + definitions more traditional. This makes (forward-paragraph 1) + behave better. + (texinfo-mode): Set a new filling function. + (texinfo--fill-paragraph): New filling function. + (texinfo-fillable-commands): New variable (bug#49558). + +2021-11-07 Lars Ingebrigtsen <larsi@gnus.org> + + Make debugging ert--erts-specifications easier + + * lisp/emacs-lisp/ert.el (ert--erts-specifications): Strip text + properties from specs to make debugging easier. + +2021-11-07 Alan Mackenzie <acm@muc.de> + + Merge from origin/emacs-28 + + 0c51db6bb1 Amend Follow Mode to handle header lines and tab lines cor... + 261367781b * lisp/files.el (user-emacs-directory-warning): Clarify do... + 8d9b55330d * doc/emacs/frames.texi (Tab Bars): Add text about mouse a... + d9b0b730e8 * doc/emacs/frames.texi (Tab Bars): Describe tab-last. + +2021-11-07 Lars Ingebrigtsen <larsi@gnus.org> + + Match password prompts from new OpenSSH + + * lisp/comint.el (comint-password-prompt-regexp): Add support for + the openssh-8.6p1 "(user@host) Password:" format (bug#51666). + +2021-11-07 Jim Porter <jporterbugs@gmail.com> + + Fix intermittent electric test failures + + * test/lisp/electric-tests.el + (whitespace-chomping-dont-cross-comments): Move + 'c-toggle-comment-style' to here.: (bug#51665). + +2021-11-07 Juri Linkov <juri@linkov.net> + + Simplify c8acc5fd92ad9979fc5870623014290cad998337 + + * lisp/isearch.el (isearch-filter-visible): Add check if there are + no properties 'inhibit-isearch' in the search range, + instead of code of c8acc5fd92ad9979fc5870623014290cad998337. + +2021-11-07 Michael Albinus <michael.albinus@gmx.de> + + Merge from origin/emacs-28 + + 7fdb2ae412 Add some unit tests for 'abbreviate-file-name' + 21de5e7b2e Fix compilation MinGW warnings + 54b726c815 ; * etc/PROBLEMS: More specific recipe for WebKit-related ... + d85cf33e49 Escape '%' in filenames to fix flymake warnings + 6243a43ac2 Fix search string generation in nnimap-make-thread-query + f05b8a939b Update to Org 9.5-68-g77e2ec + +2021-11-07 Lars Ingebrigtsen <larsi@gnus.org> + + Make `C-x 8 e e' work better in the terminal + + * lisp/international/emoji.el (emoji--adjust-displayable-1): Make + something rudimentary work on non-graphical Emacsen for `C-x 8 e e'. + +2021-11-07 Lars Ingebrigtsen <larsi@gnus.org> + + Make emoji-describe really describe only the glyph under point + + * lisp/international/emoji.el (emoji-describe): Only look at the + compositions under point (bug#51659). + +2021-11-07 Lars Ingebrigtsen <larsi@gnus.org> + + Don't inhibit compilation of emoji.elc + + * lisp/international/emoji.el (emoji--generate-file): Further + obfuscate to not inhibit byte compilation. + +2021-11-07 Eli Zaretskii <eliz@gnu.org> + + 'yank-media' is not universally supported + + * doc/emacs/killing.texi (Clipboard): + * etc/NEWS: Say that 'yank-media' is not universally supported. + +2021-11-07 Po Lu <luangruo@yahoo.com> + + Free find text in correct procedure + + * src/xwidget.c (Fxwidget_webkit_previous_result): Don't free find + text. + (Fxwidget_webkit_finish_search): Free find text here instead. + +2021-11-07 Po Lu <luangruo@yahoo.com> + + Fix C-r inside xwidget isearch + + * lisp/xwidget.el (xwidget-webkit-isearch-backward): Ask for previous + result. + +2021-11-07 Po Lu <luangruo@yahoo.com> + + Fix xwidget-webkit-goto-history + + * src/xwidget.c (xwidget-webkit-goto-history): Use + WebKitBackForwardList and XFIXNUM instead of XFIXNAT (bug#51651). + +2021-11-07 Po Lu <luangruo@yahoo.com> + + Handle WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION appropriately + + * src/xwidget.c (webkit_decide_policy_cb): Send an xwidget display + event when a webpage asks to create a new window. + +2021-11-07 Po Lu <luangruo@yahoo.com> + + Document the xwidget type + + * doc/lispref/elisp.texi: Add Xwidget Type to the menu. + * doc/lispref/objects.texi (Editing Types): Add Xwidget Type to the + menu. + (Xwidget Type): New node. + +2021-11-07 Eli Zaretskii <eliz@gnu.org> + + Improve detection of suspiciously reordered text segments + + * src/bidi.c (bidi_find_first_overridden): Detect reordered weak + and neutral characters as well. + + * lisp/international/mule-cmds.el + (highlight-confusing-reorderings): Count and announce how many + instances were found. + + * test/src/xdisp-tests.el + (xdisp-tests--find-directional-overrides-case-3): New test. + (xdisp-tests--find-directional-overrides-case-2): Adjust expected + result. + +2021-11-07 Cristian <crstml@libero.it> (tiny change) + + Another addition to latin-2 input methods + + * lisp/leim/quail/latin-pre.el ("latin-2-prefix"): + * lisp/leim/quail/latin-post.el ("latin-2-postfix"): Add variants + of "`t" and "t," for Romanian. (Bug#51638) + +2021-11-07 Eli Zaretskii <eliz@gnu.org> + + Fix documentation and coding style in recent xwidget commits + + * src/xwidget.c (Fmake_xwidget, find_widget) + (xwidget_motion_or_crossing, xwidget_button_1, xwidget_button): + Fix style in comments. + (Fxwidget_perform_lispy_event): Doc fix. + * src/xwidget.c (set_widget_if_text_view, kill_frame_xwidget_views): + * src/keyboard.c (make_lispy_event): Fix style of braces. + + * lisp/xwidget.el (xwidget-webkit-isearch-mode): Fix keys in doc + string. + + * doc/lispref/commands.texi (Xwidget Events): Fix markup and + wording. + * doc/lispref/display.texi (Xwidgets): Fix wording and markup. + * doc/emacs/misc.texi (Embedded WebKit Widgets): Fix wording. + + * etc/NEWS: Fix wording and punctuation. + +2021-11-07 Stefan Monnier <monnier@iro.umontreal.ca> + + * doc/lispref/tips.texi (Coding Conventions): Mention GNU "path" convention + + Suggested by Ihor Radchenko <yantar92@gmail.com>. + +2021-11-07 Lars Ingebrigtsen <larsi@gnus.org> + + Ensure that the x_show_hourglass is seen + + * src/xterm.c (x_show_hourglass): Ensure that the hourglass is + seen (bug#51649). + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Actually start the alarms in atimer + + * src/atimer.c (set_alarm): Actually start both timerfd and + alarms (attempted in 4107549a). + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Fix backspace in xwidget webkit isearch + + * lisp/xwidget.el: Set backspace to + xwidget-webkit-isearch-erasing-char (bug#51647). + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Remove too-agressive window refresh in the hourglass code + + * src/xterm.c (x_show_hourglass): Don't force a spurious refresh + (bug#51649). + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Fix build on nextstep + + * src/xwidget.h: Make some prototypes conditional to X-Windows. + (struct xwidget): Move find_text field out of GTK conditional. + + * src/xwidget.c (Fmake_xwidget): Move find_text out of GTK + conditional. + * src/print.c (print_vectorlike): Print correct pointer on macOS. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Improve xwidget isearch visuals + + * lisp/xwidget.el (xwidget-webkit-isearch--update): New argument + ONLY-MESSAGE. + (xwidget-webkit-isearch-forward) + (xwidget-webkit-isearch-backward): Always refresh message. + (xwidget-webkit-isearch-mode): Update message when enabling. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Fix web inspector + + * src/xwidget.c (Fmake_xwidget): Move developer extra initialization. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Default to creating new related sessions + + * doc/lispref/display.texi: + * etc/NEWS: Document changes. + + * lisp/xwidget.el (xwidget-insert): Accept an extra RELATED argument. + (xwidget-webkit-new-session): Pass current session as RELATED if + present. + + * src/xwidget.c (Fmake_xwidget): Make RELATED argument public. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Rationalize creation decisions + + * src/xwidget.c (webkit_create_cb): Only create a new widget if type + is OTHER. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Make "open in new window" from an xwidget's context menu work + + * doc/lispref/commands.texi (Xwidget Events): Document new event type. + * doc/lisprefdisplay.texi (Xwidgets): Document new argument to + make-xwidget, and new function. + * etc/NEWS: Document changes. + * lisp/xwidget.el: Bind xwidget-display-event to + xwidget-webkit-display-event. + + (xwidget-webkit-import-widget): New function. + (xwidget-webkit-display-event): New command. + * src/keyboard.c (kbd_buffer_get_event): New event type. + (make_lispy_event): Handle XWIDGET_DISPLAY_EVENTs. + (syms_f_keyboard): Define new symbol. + * src/termhooks.h (enum event_kind): New enum XWIDGET_DISPLAY_EVENT. + + * src/xwidget.c (webkit_create_cb) + (store_xwidget_display_event) + (webkit_ready_to_show) + (webkit_create_cb_1, webkit_create_cb) + (Fset_xwidget_buffer): New functions. + + (Fmake_xwidget): Add internal argument RELATED and connect create + signal. + (syms_of_xwidget): Define now subrs. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Add xwidget-webkit-isearch to the menu bar and tool bar + + * lisp/xwidget.el: Add isearch to tool bar and menu bar. + + (xwidget-webkit-mode-map) + (xwidget-webkit-isearch-mode-map): Reorder key definitions so the + equivalent key shows up as `C-s' in the menu bar. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Add xwidget-webkit-isearch-mode + + * etc/NEWS: + * doc/emacs/misc.texi: Document changes + + * lisp/xwidget.el (xwidget-webkit-mode-map): Bind C-s and C-r to + webkit isearch. + (xwidget-webkit-isearch--string, xwidget-webkit-isearch--is-reverse): + New buffer-local variables. + (xwidget-webkit-isearch--update, xwidget-webkit-isearch-erasing-char) + (xwidget-webkit-isearch-printing-char, xwidget-webkit-isearch-forward) + (xwidget-webkit-isearch-backward, xwidget-webkit-isearch-exit): + New functions. + (xwidget-webkit-isearch-mode-map): New keymap. + (xwidget-webkit-isearch-mode): New minor mode. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Add functions for performing searches on xwidgets + + * etc/NEWS: + * doc/lispref/display.texi: Document changes. + + * src/xwidget.c (Fxwidget_webkit_search) + (Fxwidget_webkit_next_result) + (Fxwidget_webkit_previous_result) + (Fxwidget_wenkit_finish_search): New functions. + + (syms_of_xwidget): Define new built-ins. + (kill_buffer_xwidgets): Free search query if present. + * src/xwidget.h (struct xwidget): Add field for search query. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Make it safe to have non-xwidget views in xwidget-view-list + + * src/xwidget.c (define_cursors, offscreen_damage_event): Check + XWIDGET_VIEW_P before XXWIDGET_VIEW. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Make xwidgets print nicer + + * src/print.c (print_vectorlike): Print xwidgets with ID and widget + pointer, and print xwidget views separately. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Fix cursor for new widget views + + * src/xwidget.c (Fmake_xwidget): Clear hit result. + (cursor_for_hit): Use integer hit result. + (define_cursors): Set hit result appropriately. + (widget_init_view): Set cursor to the existing hit result. + + * src/xwidget.h (struct xwidget): Add hit result field. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Add support for cursors in xwidget views + + * src/xwidget.c (mouse_target_changed): New function. + (Fmake_xwidget): Attach mouse target changed signal. + (cursor_for_hit, define_cursors, mouse_target_changed): New functions. + (xwidget_init_view): Set default cursor to nontext cursor. + (x_draw_xwidget_glyph_string): Define cursor. + + * src/xwidget.h (struct xwidget_view): Add cursor field. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Display page titles in xwidget webkit header line + + * lisp/xwidget.el (xwidget-webkit--title): New variable. + (xwidget-webkit-callback, xwidget-webkit-mode): Set header line format + and associated variables. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Improve detail of load-changed xwidget events + + * src/xwidget.c (webkit_view_load_changed_cb): Improve event detail. + * etc/NEWS: Document changes. + * doc/lispref/commands.texi: Document Xwidget events. + * doc/lispref/display.texi (Xwidgets): Add reference to Xwidget events. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Make the WebKit inspector available + + * etc/NEWS: Document changes. + * src/xwidget.c (find_widget_at_pos) + (find_widget) + (find_widget_cb): New functions. + (struct widget_search_data): New structure. + (Fmake_xwidget): Enable web inspector for WebKit widgets. + (Fxwidget_perform_lispy_event): Use current focus instead of + hard-coded widget. + (xwidget_button_1, xwidget_button, xwidget_motion_or_crossing): + Use window at event position instead of the default widget. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Add xwidget-webkit-copy-selection-as-kill to the menu bar + + * lisp/xwidget.el: New menu item + `xwidget-webkit-copy-selection-as-kill'. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Add new tool-bar items to xwidget-webkit + + * etc/images/README: Update copyright information for new images. + * etc/images/connect-to-url.pbm: + * etc/images/connect-to-url.xpm: Import new images from GNOME. + * lisp/xwidget.el (xwidget-webkit-tool-bar-map): New keymap variable. + (xwidget-webkit-mode): Set tool-bar-map to the appropriate map. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Add a menu to xwidget-webkit + + * lisp/xwidget.el: Add a menu to xwidget-webkit-mode-map. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Redisplay xwidget view windows instead of just setting their size + + * src/xwidget.c (Fxwidget_resize): Mark windows as needing redisplay + and redisplay instead. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Select window when clicking on an xwidget view + + * src/xterm.c (handle_one_xevent): Select window when clicking on an + xwidget view. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Fix xwidget scrolling + + * src/xterm.c (x_scroll_run): Use from_y and height. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Allow enabling xwidget-webkit-edit-mode via a binding + + * doc/emacs/misc.texi: Document changes. + * lisp/xwidget.el (xwidget-webkit-mode-map): Add shortcut for + xwidget-webkit-edit-mode. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Add xwidget-webkit-edit-mode to make using the WebKit browser easier + + * doc/emacs/misc.texi: Document changes. + * etc/NEWS: Document recent changes. + * lisp/xwidget.el (xwidget-webkit-pass-command-event): New variable. + * lisp/xwidget.el (xwidget-perform-lispy-event): New function + declaration. + * lisp/xwidget.el (xwidget-webkit-edit-mode): New minor mode. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Fix special events in xwidgets + + * src/xwidget.c (set_widget_if_text_view): New function. + (Fxwidget_perform_lispy_event): Fix for webkit widgets. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Fix drag on xwidget motion events + + * src/xwidget.c (xwidget_motion_or_crossing): Set state. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Handle crossing events on xwidget windows correctly + + * src/xterm.c (handle_one_xevent): Clear help and mouse face + when handling xwidget entry events. + * src/xwidget.c (xwidget_motion_or_crossing): Add device to crossing + events. + (x_draw_xwidget_glyph_string): Add EnterWindowMask and + LeaveWindowMask. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Draw offscreen surface + + * src/xwidget.c (xv_do_draw): Draw offscreen surface. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Implement function for sending events to widgets + + * doc/lispref/display.texi (Xwidgets): Document changes. + * src/keyboard.c (lispy_function_keys): Make non-static on X. + * src/keyboard.h (lispy_function_keys): Expose lispy_function_keys on + X. + * src/xterm.c (x_emacs_to_x_modifiers): Export function. + * src/xterm.h (x_emacs_to_x_modifiers): Likewise. + * src/xwidget.c (Fxwidget_perform_lispy_event) + (find_suitable_keyboard): New functions. + (syms_of_xwidget): Define new subr. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Use gtk_widget_queue_draw instead of xv_do_draw + + * src/xwidget.c (x_draw_xwidget_glyph_string): Call + gtk_widget_queue_draw. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Prefer XMoveResizeWindow to XMoveWindow for resizing xwidgets + + * src/xwidget.c (x_draw_xwidget_glyph_string): Prefer + XMoveResizeWindow to avoid extra expose events. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Allow xwidgets to accept motion and button events + + * src/xterm.c (handle_one_xevent): Pass through some events to + xwidgets. + + * src/xwidget.c (synthesize_focus_in_event) + (find_suitable_pointer, xwidget_button_1) + (xwidget_button, xwidget_motion_or_crossing): New functions. + (xwidget_view_from_window): Draw offscreen window instead of the + widget. + (x_draw_xwidget_glyph_string): Set appropriate event masks. + + * src/xwidget.h (xwidget_button, xwidget_motion_or_crossing): New + functions. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Destroy xwidgets when destroying frames + + * src/xterm.c (x_free_frame_resources): Make sure to kill xwidget views. + * src/xwidget.c (Fmake_xwidget): Attach damage event signal. + (offscreen_damage_event): Operate on xwidgets and not individual + views. + (xwidget_init_view): Don't attach damage event signal here. + (Fdelete_xwidget_view): Destroy window correctly and stop removing + damage event signal. + (kill_frame_xwidget_views): New function. + * src/xwidget.c (kill_frame_xwidget_views): New function. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Enable scrolling optimization for xwidgets + + * src/dispextern.h (struct glyph): Store xwidget ID instead of a + reference. + * src/dispnew.c (scrolling_window): Enable scrolling optimization on + xwidget builds. + * src/xdisp.c (fill_xwidget_glyph_string, produce_xwidget_glyph): + Obtain xwidget from ID. + * src/xterm.c (x_scroll_run): Scroll xwidget windows. + * src/xwidget.c (id_to_xwidget_map, xwidget_counter): New xwidget + variables. + (Fmake_xwidget): Assign each xwidget a unique ID, and keep track of + that ID. + (xwidget_from_id): New function. + (syms_of_xwidget): Initialize id_to_xwidget_map. + (xwidget_end_redisplay): Lookup xwidgets via ID. + * src/xwidget.h (struct xwidget): Add ID field. + (xwidget_from_id): New function. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Use an X window to display xwidgets on X11 + + Since Emacs draws using X11 primitives, Emacs drawing operations can + erase the GtkDrawingArea used to draw the offscreen widget, which + leads to unpleasant flickering effects, all of which can be prevented + by creating a native X window and drawing to that instead. + + * src/xterm.c (x_window_to_frame): Return xwidget window if + appropriate. + (handle_one_xevent): Handle xwidget expose events. + + * src/xwidget.c (x_window_to_xvw_map): New variable. + (xwidget_view_from_window): New function. + + (xwidget_show_view, xwidget_hide_view) + (offscreen_damage_event): Move to drawing xwidgets with X windows. + + (xv_do_draw) + (xwidget_expose): New function. + + (xwidget_osr_draw_cb, xwidget_osr_event_forward) + (xwidget_osr_event_set_embedder): Removed. + + (xwidget_init_view): Replace use of GtkDrawingArea with that of an X + window. + + (x_draw_xwidget_glyph_string): Prevent xwidget views from constantly + generating expose events, and use an X window instead of a + GtkDrawingArea. + + (syms_of_xwidget): Initialize x_window_to_xwv_map. + + src/xwidget.h (struct xwidget_view): Replace GTK widgets with + X-related fields. + + (xwidget_view_from_window, xwidget_expose): New functions. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix pp-emacs-lisp-code for `when' and related + + * lisp/emacs-lisp/pp.el (pp--format-definition): Skip edebug specs + we don't understand at all. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix html-mode--image-yank-handler prompting + + * lisp/textmodes/sgml-mode.el (html-mode--image-yank-handler): Fix + two format statements and rearrange images. + +2021-11-06 Stefan Kangas <stefan@marxist.se> + + Ensure return value of ert-with-temp-directory + + * lisp/emacs-lisp/ert-x.el (ert-with-temp-file): Ensure return + value when :directory is t is the directory name. + * test/lisp/emacs-lisp/ert-x-tests.el + (ert-x-tests-with-temp-directory): Extend test for the above. + +2021-11-06 Stefan Kangas <stefan@marxist.se> + + Prefer ert-with-temp-(directory|file) + + * test/lisp/abbrev-tests.el (read-write-abbrev-file-test) + (read-write-abbrev-file-test-with-props) + (abbrev-edit-save-to-file-test): + * test/lisp/auth-source-tests.el (auth-source-test-netrc-create-secret) + (auth-source-delete): + * test/lisp/autoinsert-tests.el (autoinsert-tests-auto-insert-file): + * test/lisp/bookmark-tests.el (with-bookmark-test-save-load): + * test/lisp/buff-menu-tests.el (buff-menu-24962): + * test/lisp/calendar/icalendar-tests.el (icalendar-tests--do-test-export): + * test/lisp/calendar/todo-mode-tests.el (with-todo-test): + * test/lisp/dired-tests.el + (dired-test-bug27243-01, dired-test-bug27243-02) + (dired-test-bug27243-03, dired-test-bug27631) + (dired-test-bug27968, dired-test-with-temp-dirs): + * test/lisp/dired-x-tests.el (dired-test-bug25942): + * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--with-temp-file): + * test/lisp/emacs-lisp/check-declare-tests.el (check-declare-tests-scan) + (check-declare-tests-verify-mismatch): + * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-with-normal-env): + * test/lisp/emacs-lisp/package-tests.el (with-package-test) + (package-test-signed): + * test/lisp/emacs-lisp/testcover-tests.el (testcover-tests-markup-region) + (testcover-tests-run-test-case): + * test/lisp/emulation/viper-tests.el (viper-test-undo-kmacro): + * test/lisp/epg-tests.el (with-epg-tests): + * test/lisp/eshell/em-hist-tests.el (eshell-write-readonly-history): + * test/lisp/eshell/em-ls-tests.el (em-ls-test-bug27631): + * test/lisp/ffap-tests.el (ffap-tests-25243): + * test/lisp/files-tests.el (files-tests-bug-18141) + (files-tests-read-file-in-~, files-tests-make-directory) + (files-tests-copy-directory, files-tests-executable-find) + (files-tests-dont-rewrite-precious-files) + (files-tests--save-some-buffers): + * test/lisp/ls-lisp-tests.el (ls-lisp-test-bug27631): + * test/lisp/mail/uudecode-tests.el (uudecode-tests-decode-region-internal) + (uudecode-tests-decode-region-external): + * test/lisp/net/browse-url-tests.el (browse-url-tests-delete-temp-file): + * test/lisp/progmodes/elisp-mode-tests.el (xref--case-insensitive): + * test/lisp/progmodes/etags-tests.el (etags-buffer-local-tags-table-list): + * test/lisp/progmodes/flymake-tests.el (ruby-backend): + * test/lisp/progmodes/python-tests.el (python-tests-with-temp-file): + * test/lisp/progmodes/sql-tests.el (with-sql-test-connect-harness): + * test/lisp/saveplace-tests.el (saveplace-test-save-place-to-alist/file) + (saveplace-test-forget-unreadable-files) + (saveplace-test-place-alist-to-file): + * test/lisp/so-long-tests/spelling-tests.el: + * test/lisp/textmodes/reftex-tests.el (reftex-locate-bibliography-files) + (reftex-parse-from-file-test): + * test/lisp/thumbs-tests.el (thumbs-tests-thumbsdir/create-if-missing): + * test/lisp/vc/vc-bzr-tests.el (vc-bzr-test-bug9726) + (vc-bzr-test-bug9781, vc-bzr-test-faulty-bzr-autoloads): + * test/lisp/vc/diff-mode-tests.el (diff-mode-test-ignore-trailing-dashes): + * test/lisp/vc/ediff-ptch-tests.el (ediff-ptch-test-bug26084): + * test/lisp/wdired-tests.el (wdired-test-bug32173-01) + (wdired-test-bug32173-02, wdired-test-symlink-name) + (wdired-test-unfinished-edit-01, wdired-test-bug34915) + (wdired-test-bug39280): + * test/src/buffer-tests.el (test-kill-buffer-auto-save-default): + * test/src/filelock-tests.el (filelock-tests--fixture): + * test/src/inotify-tests.el (inotify-file-watch-simple): + * test/src/undo-tests.el (undo-test-file-modified): Prefer + 'ert-with-temp-(directory|file)' to using 'make-temp-file' directly. + In some cases, this is just cleanup, but in several cases this fixes + bugs where an error would have lead to us not cleaning up. + +2021-11-06 Stefan Kangas <stefan@marxist.se> + + Add generated suffix to test temp file names + + * lisp/emacs-lisp/ert-x.el + (ert-with-temp-file): Add temp file name suffix based on file name of + caller. Reflow docstring. + (ert--with-temp-file-generate-suffix): New defun. + * test/lisp/emacs-lisp/ert-x-tests.el + (ert-x-tests--with-temp-file-generate-suffix): New test. + +2021-11-06 dickmao <none> + + Fix byte compilation of package built-ins + + * lisp/emacs-lisp/package.el + (package--activate-autoloads-and-load-path): + (package--load-files-for-activation): Remove. + (package--library-stem): New function, because + file-name-sans-extension is insufficient. + (package--reload-previously-loaded): New function. + (package-activate-1): Reload directly. + (package--files-load-history): + (package--list-of-conflicts): + (package--list-loaded-files): Remove + (package-unpack): Adjust call. + + * test/lisp/emacs-lisp/package-tests.el (macro-builtin-func): Test. + (macro-builtin-10-and-90): Test. + (package-test-macro-compilation): Test. + (package-test-macro-compilation-gz): Test (bug#49708). + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Add new user option eww-url-transformers + + * doc/misc/eww.texi (Advanced): Document it. + * lisp/net/eww.el (eww-url-transformers): New user option. + (eww-remove-tracking): New default function. + (eww--transform-url): Helper function. + (eww-follow-link): Use it. + (eww): Ditto. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Expand register-yank-media-handler doc string + + * lisp/yank-media.el (register-yank-media-handler): Expand doc string. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix yank-media logic when there's several handlers + + * lisp/yank-media.el (yank-media): Fix logic when there's several + different handler functions. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Allow yanking images to html-mode + + * lisp/net/mailcap.el (mailcap-mime-type-to-extension): Autoload. + * lisp/textmodes/sgml-mode.el (html-mode--image-yank-handler): New + function. + (html-mode): Accept image/*. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix "Yanking Media" sectioning + + * doc/lispref/frames.texi (Yanking Media): Fix sectioning. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Support yank-media in html-mode + + * lisp/textmodes/sgml-mode.el (html-mode--html-yank-handler): New + function. + (html-mode): Handle text/html. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix typo in previous yank-media--get-selection change + + * lisp/yank-media.el (yank-media--get-selection): Fix typo in + previous change. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix nul-terminated text/* strings from some programs + + * lisp/yank-media.el (yank-media--get-selection): Some programs + nul-terminate text/* strings. Fix that. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Make the lambda/closure buttons in `C-h b' say what they do + + * lisp/button.el (buttonize): Add a help-echo property. + + * lisp/help.el (help--describe-command): Say what the + lambda/closure buttons do. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Add mouse-face to buttonize + + * lisp/button.el (buttonize): Add the highlight mouse-face. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Add a framework for yanking media into Emacs + + * doc/emacs/killing.texi (Clipboard): Refer to it. + * doc/lispref/frames.texi (Yanking Media): Document the mechanism. + + * lisp/yank-media.el: New file. + + * lisp/gnus/message.el (message-mode): Register a yank handler for + images. + (message-insert-screenshot): Factor out image code from here... + (message--yank-media-image-handler): ... to here. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Add new function mailcap-mime-type-to-extension + + * lisp/net/mailcap.el (mailcap-mime-type-to-extension): Add a new + helper function to do the reverse of `mailcap-file-name-to-mime-type'. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Add a pcase-let example to the manual + + * doc/lispref/control.texi (Destructuring with pcase Patterns): + Add a pcase-let example. + +2021-11-06 Stefan Kangas <stefan@marxist.se> + + New user option image-auto-resize-max-scale-percent + + * lisp/image-mode.el (image-auto-resize-max-scale-percent): New + user option to limit how much 'fit-window' will scale up an image. + (image--scale-within-limits-p): New function. + (image-toggle-display-image): Respect above new user option. + +2021-11-06 Stefan Kangas <stefan@marxist.se> + + New command image-transform-fit-to-window + + * lisp/image-mode.el (image-auto-resize, image-transform-resize): + Add new value 'fit-window', meaning to scale the image up or down + to fit the window. (Bug#) + (image-transform-fit-to-window): New command. + (image-transform-fit-to-height, image-transform-fit-to-width): + Make obsolete in favor of above new command. + (image-mode-map): Bind "s w" to 'image-transform-fit-to-window'. + Move binding for obsolete command 'image-transform-fit-to-width' + to "s i". + (image-mode-map): Add menu entry for + 'image-transform-fit-to-window'. Remove menu entries for above + obsolete commands. + * doc/emacs/files.texi (Image Mode): Update documentation. + (image-transform-fit-both): Doc fix. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Add outline-minor-mode-use-buttons doc string caveat + + * lisp/outline.el (outline-minor-mode-use-buttons): Note that the + feature is for special mode buffers only (bug#51629). + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Make `outline-hide-body' work in `C-h b' buffers + + * lisp/outline.el (outline-flag-region): Update buttons on most + outline toggling commands (bug#51629). + (outline--fix-up-all-buttons): Take a region as parameter. + (outline-cycle-buffer): Adjust call. + +2021-11-06 Stefan Kangas <stefan@marxist.se> + + Make substitute-command-keys regexp tests more strict + + * test/lisp/help-tests.el (with-substitute-command-keys-test): Make + regexp tests more strict. + +2021-11-06 Stefan Kangas <stefan@marxist.se> + + Replace some macros with ert-with-temp-(file|directory) + + * test/lisp/custom-tests.el (custom-tests--with-temp-dir): + * test/lisp/files-tests.el (files-tests--with-temp-file): + * test/lisp/progmodes/project-tests.el + (project-tests--with-temporary-directory): + * test/src/emacs-module-tests.el (module--with-temp-directory): + * test/src/emacs-tests.el (emacs-tests--with-temp-file): + * test/src/lread-tests.el (lread-tests--with-temp-file): + * test/src/process-tests.el (process-tests--with-temp-directory): + Replace macros with 'ert-with-temp-(file|directory)'. Update callers. + +2021-11-06 Stefan Kangas <stefan@marxist.se> + + New convenience macros ert-with-temp-(file|directory) + + * lisp/emacs-lisp/ert-x.el + (ert-with-temp-file) + (ert-with-temp-directory): New macros. + * test/lisp/emacs-lisp/ert-x-tests.el + (ert-x-tests-with-temp-directory) + ert-x-tests-with-temp-directory/text-signals-error + (ert-x-tests-with-temp-file) + (ert-x-tests-with-temp-file/handle-error) + (ert-x-tests-with-temp-file/prefix-and-suffix-kwarg) + (ert-x-tests-with-temp-file/text-kwarg) + (ert-x-tests-with-temp-file/unknown-kwargs-signals-error): New tests. + +2021-11-06 F. Jason Park <jp@neverwas.me> + + Don't send empty lines for unknown commands in ERC + + * lisp/erc/erc.el (erc-cmd-default): prevent excess trailing newlines + from being sent. + + * test/lisp/erc/erc-tests.el: Update `erc-process-input-line' test to + check for excess line feeds with unknown commands. + +2021-11-06 F. Jason Park <jp@neverwas.me> + + Deprecate instead of redefine erc-server-reconnecting + + * lisp/erc/erc-backend.el (erc-server-reconnecting, + erc--server-reconnecting): obsolete and replace the former with new + internal variant, which carries a simplified meaning. + + (erc-server-reconnect-p, erc--server-reconnect-p): Obsolete and + replace the former with an internal function, and change behavior to + disregard `erc-server-reconnecting' when rendering verdict. + + (erc-process-sentinel-2): ensure local var `erc--server-reconnecting' + is t when timers are scheduled or firing, and nil otherwise, including + after retries exhausted. This agrees with the straightforward way + `erc-server-reconnecting' has always been used by `erc-cmd-RECONNECT'. + + (erc-server-connect): set `erc--server-reconnecting'. + + * lisp/erc/erc.el (erc-cmd-RECONNECT): use `erc--server-reconnecting' + instead of `erc-server-reconnecting'. + +2021-11-06 Eli Zaretskii <eliz@gnu.org> + + Fix Emoji-related documentation + + * etc/NEWS: Fix wording and spelling. + + * doc/emacs/mule.texi (Input Methods): Add index entries and fix + wording. + + * admin/notes/unicode: Update instructions for updating Emacs for + the latest Unicode Standard. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Include make Errors in admin/emake + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Add an example to the display-supports-face-attributes-p doc string + + * src/xfaces.c (Fdisplay_supports_face_attributes_p): Add an example. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Partially revert previous make-separator-line change + + * lisp/simple.el (make-separator-line): Use dashes on displays + that don't support underlines (bug#32950). + +2021-11-06 Eli Zaretskii <eliz@gnu.org> + + Fix the build broken by recent commits + + * admin/unidata/Makefile.in (${unifiles}) + (${unidir}/emoji-labels.el): Fix typos in last commits. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix up emoji-labels.el generation incantation + + * admin/unidata/Makefile.in (${unidir}/emoji-labels.el): Make + generation more silent. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Make describe-char include emoji combination descriptions + + * lisp/descr-text.el (describe-char): Output emoji descriptions. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Add emoji insertion support to Emacs + + * .gitignore: Ignore the generated emoji-labels.el file. + * admin/unidata/Makefile.in (${unidir}/emoji-labels.el): Generate + the emoji-labels.el file. + (gen-clean): Delete it. + + * admin/unidata/README (https): Note the source for the Unicode + file that has emoji categorisations. + + * admin/unidata/emoji-test.txt: Import another Unicode file. + + * doc/emacs/mule.texi (Input Methods): Document the new key bindings. + + * lisp/international/emoji.el: New file. + + * lisp/international/mule-cmds.el (ctl-x-map): Bind the emoji + commands. + +2021-11-06 Eli Zaretskii <eliz@gnu.org> + + Improve latin-2-postfix and latin-2prefix input methods + + * lisp/leim/quail/latin-pre.el ("latin-2-prefix"): + * lisp/leim/quail/latin-post.el ("latin-2-postfix"): Add variants + of "`s" and "s," for Romanian. Add key bindings for moving + between variants, when there are more than one. (Bug#51638) + +2021-11-06 Eli Zaretskii <eliz@gnu.org> + + Fix an error in 'highlight-confusing-reorderings' + + * lisp/international/mule-cmds.el + (highlight-confusing-reorderings): Don't signal an error when + a confusingly-reordered sequence ends at EOB. + +2021-11-06 Michael Albinus <michael.albinus@gmx.de> + + Merge from origin/emacs-28 + + 5e9b4e70ab Fix dbus-test04-register-method on CentOS (Bug#51369) + d96de23510 * lisp/transient.el: Update to package version v0.3.7-11-g... + 7343b0d0e4 ; * etc/NEWS: Native compilation is more picky about missi... + 0d6b2b0b9d ; * etc/PROBLEMS: Move entry about LLVM plugin to the right... + + # Conflicts: + # etc/NEWS + +2021-11-06 Po Lu <luangruo@yahoo.com> + + General improvements to NS port + + * src/dispextern.h: Remove some !HAVE_NS conditionals around grab + related code. + * src/frame.c (gui_mouse_grabbed, gui_redo_mouse_highlight): Remove + !HAVE_NS conditionals around code. + + * src/nsmenu.m (ns_update_menubar): Prevent recursive calls and enable + shallow updates on GNUstep. + (menuNeedsUpdate): Prevent recursive calls. + (ns_menu_show): Fix mysterious GC-related bug. + (update_frame_tool_bar_1): Work around mysterious toolbar sizing bug + on GNUstep. + + * src/nsterm.h (struct ns_output): New field for tracking toolbar + visibility changes. + + * src/nsterm.m (frame_set_mouse_pixel_position): Implement for + GNUstep. + (ns_redraw_scroll_bars): Enable for GNUstep. + (ns_clear_frame): Redraw scrollbars on GNUstep. + (ns_update_window_end): New function. + (ns_redisplay_interface): Add ns_update_window_end on GNUstep. + (- keyDown): Remove debug code that doesn't work on GNUstep. + (- mouseDown): Enable grab tracking on NS port. + (- resizeWithOldSuperviewSize): Fix build with NSTRACE. + + * src/xdisp.c (note_tab_bar_highlight): Enable some code for NS port. + +2021-11-06 Po Lu <luangruo@yahoo.com> + + Improve font display on NS port + + * src/nsfns.m (Fx_create_frame): Use "fixed" for the default font on + GNUstep. + + * src/nsfont.m (LCD_SMOOTHING_MARGIN, ns_escape_name) + (ns_unescape_name, ns_attribute_fvalue) + (STYLE_REF): Remove unused defines and functions. + + (struct ns_glyph_layout, enum lgstring_direction). + (enum gs_font_slant, enum gs_font_weight, enum gs_font_width) + (enum gs_specified, struct gs_font_data): New enumerators and + structures. + + (ns_font_descs_match_p) + (ns_done_font_data, ns_get_font_data): New functions. + (ns_glyph_metrics): Stop escaping names. + + (ns_spec_to_descriptor): Fix font descriptor creation for symbolic + font spec entries. + (ns_descriptor_to_entity): Create entries with the correct symbolic + styles. + + (ns_fallback_entity): Fix fallback entity selection. + (ns_findfonts): Use our own font matcher instead of the broken GNUstep + matcher. + + (ns_list_family): Remove obsolete comment. + (nsfont_open): Remove obsolete code, comments, and synthItal logic + which doesn't work on GNUstep. + + (nsfont_encode_char): Use a type that can fit NSGlyph + (nsfont_draw): Chose correct font, remove obsolete mouse face logic, + obsolete comments, and switch to using glyph-based drawing instead of + character-based drawing. + + (ns_font_shape, nsfont_shape): New functions. + + (ns_uni_to_glyphs_1): New function. + (ns_uni_to_glyphs): Return glyphs instead of unicode codepoints. + + (ns_glyph_metrics): Use NSGlyphs instead of unicode codepoints and fix + left bearing, right bearing, ascent and descent computation. + + (struct nsfont_driver): Add shaping capability. + + * src/nsterm.h (struct nsfont_info): Use unsigned int for glyph cache. + + * src/nsterm.c (ns_focus): Set DPS clipping on GNUstep. + + (ns_compute_glyph_string_overhangs): Fix overhang computation by using + xterm code. + (ns_draw_window_cursor): Simplify cursor drawing. + (ns_maybe_dumpglyphs_background): Test for cursor HL and remove + obsolete mouse face logic. + (ns_dumpglyphs_image) + (ns_dumpglyphs_box_or_relief): Rectify for new cursor logic. + (ns_dumpglyphs_stretch): Rectify for new cursor logic and rely on + ns_draw_glyph_string to set focus. + (ns_draw_glyph_string_foreground): Remove mouse face logic. + (ns_draw_glyph_strings): Implement overhangs, remove obsolete + comment, and always focus before dumping glyphs. + (ns_draw_text_decoration): Add condition for DRAW_CURSOR and simplify + color selection. + (ns_define_frame_cursor): Remove nonsensical code (define_frame_cursor + has nothing to do with the text cursor, aka caret). + + * src/xdisp.c (draw_glyphs): Enable code for NS port to fix mouse face + cursor display. + + * src/macfont.m (get_cgcolor_from_nscolor): New function. + (macfont_draw): Remove obsolete mouse-face code and enable cursor + display. + +2021-11-06 Kazuhiro Ito <kzhr@d1.dion.ne.jp> + + Fix display of BW images on MS-Windows + + * src/image.c (convert_mono_to_color_image) [HAVE_NTGUI]: Swap the + fore- and the back-ground colors back to their normal conventions. + (Bug#6918) + +2021-11-06 Eli Zaretskii <eliz@gnu.org> + + Improve detection of suspicious reordering in source code + + * src/bidi.c (bidi_find_first_overridden): Detect suspiciously + reordered EN types as well. + + * test/src/xdisp-tests.el + (xdisp-tests--find-directional-overrides-case-1): Rename from + 'xdisp-tests--find-directional-overrides'. + (xdisp-tests--find-directional-overrides-case-2): New test. + +2021-11-06 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + 9bdb1d0 ; * etc/PROBLEMS: Describe a crash in xwidgets due to Bubblew... + 550887c ; * etc/PROBLEMS: Rearrange and update the section about cras... + c2e3cd6 Clarify "text area of a window" in the documentation + 4e7e78d Improve docstring of kmacro-set-format + +2021-11-06 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + # Conflicts: + # etc/NEWS + +2021-11-06 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + b5ccad3 * doc/emacs/building.texi (Compilation Mode): Add next-error-... + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Inhibit isearching over message-insert-screenshot data + + * lisp/gnus/message.el (message-insert-screenshot): Inhibit + isearch over the image data. + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Update help-tests after separator line changes + +2021-11-06 Lars Ingebrigtsen <larsi@gnus.org> + + Allow 'insert-image' to inhibit isearches or not + + * doc/lispref/display.texi (Showing Images): Mention it. + * lisp/image.el (insert-image): Take an optional parameter to + inhibit isearch of the STRING argument. + +2021-11-05 Lars Ingebrigtsen <larsi@gnus.org> + + Introduce a new 'inhibit-isearch' text property + + * doc/lispref/text.texi (Special Properties): Mention it. + + * lisp/image.el (insert-image): Make `C-s' skip over the image data. + * lisp/isearch.el (isearch--search-skip-inhibited): New function. + (isearch-search-string): Use it. + (isearch--invisible-p): New function. + (isearch-range-invisible): Use it. + +2021-11-05 Lars Ingebrigtsen <larsi@gnus.org> + + Re-rename the minibuffer heading + + * lisp/minibuffer.el: There's more here than completion functions + (bug#49844). + +2021-11-05 Lars Ingebrigtsen <larsi@gnus.org> + + Correct minibuffer.el heading + + * lisp/minibuffer.el: There's more here than completion functions + (bug#49844). + +2021-11-05 Lars Ingebrigtsen <larsi@gnus.org> + + Use underline on non-graphical terminals in make-separator-line + + * lisp/simple.el (separator-line): + (make-separator-line): Use an underline on terminals (bug#32950). + +2021-11-05 F. Jason Park <jp@neverwas.me> + + Normalize usage of variable erc-server-reconnecting + + * lisp/erc/erc-backend.el (erc-server-reconnecting-p): + Don't consider erc-server-reconnecting when rendering verdict. + (erc-process-sentinel-2): ensure local variable + erc-server-reconnecting is t when timers are scheduled or running and + trying to reconnect, and nil otherwise, including after no retries + remain. Previously, its use and meaning in erc-backend were convoluted + and conflicted with its use in erc-cmd-RECONNECT (bug#50007). + +2021-11-05 F. Jason Park <jp@neverwas.me> + + Don't send empty lines for implicit targets in ERC + + * erc.el (erc-send-input-line): Previously, any line typed into a + query or channel buffer without an explicit user-command + handler (meaning most lines), would be sent twice because a trailing + newline (linefeed) would be appended. This has been verified by + checking IRCd server logs. IRCds won't return an error upon receiving + an empty message, but they also won't forward them to channel + subscribers and DM pals. + + * erc-tests.el: Add test for erc-process-input-line, which also + indirectly tests erc-send-input-line. It also tests the command + lookup and dispatch facility (bug#50008). + +2021-11-05 Lars Ingebrigtsen <larsi@gnus.org> + + Remove messaging in pp-display-expression. + + * lisp/emacs-lisp/pp.el (pp-display-expression): Remove confusing + message -- we don't usually say that we've popped up a new buffer when + we do so. + +2021-11-05 Lars Ingebrigtsen <larsi@gnus.org> + + Allow getting verbose results on erts 'C-u C-c C-c' + + * lisp/progmodes/erts-mode.el (erts-run-test): Allow getting a + diff buffer of the differences with `C-u C-c C-c'. + +2021-11-05 Jim Porter <jporterbugs@gmail.com> + + Improve behavior of 'electric-pair-mode' in 'cc-mode' + + * lisp/progmodes/cc-mode.el (c-electric-pair-inhibit-predicate): + Inhibit insertion of paired quote in fewer cases. + * test/lisp/electric-tests.el (define-electric-pair-test): + Add 'c-mode' to list of modes to test by default (bug#50538). + + This ensures that quotes are paired correctly within comments, allows for + insertion of quote pairs immediately before another quote, and allows + inserting quote pairs within a string (thus splitting the string in two). + +2021-11-05 Manuel Giraud <manuel@ledu-giraud.fr> + + Make 'C-x v v' on an unregistered file use the most specific backend + + * lisp/vc/vc.el (vc-next-action): Mention this. + + * lisp/vc/vc.el (vc-backend-for-registration): Choose the most + specific backend (bug#50572). + +2021-11-05 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak `eww' new-buffer parameters + + * lisp/net/eww.el (eww): Don't require that the function be called + with 4 to open a new buffer (bug#51613). + +2021-11-05 Daniel Martín <mardani29@yahoo.es> + + Fix GNUstep build (ns_compute_glyph_string_overhangs) + + * src/nsterm.m (ns_compute_glyph_string_overhangs): Declare the font + variable so that it's in scope for the GNUstep code. + +2021-11-05 Stefan Kangas <stefan@marxist.se> + + Add "N.B." abbreviation to checkdoc + + * lisp/emacs-lisp/checkdoc.el (checkdoc-in-abbreviation-p): Add + abbreviation "N.B.". + +2021-11-05 Stefan Kangas <stefan@marxist.se> + + Don't hardcode "Commentary" section in checkdoc + + * lisp/emacs-lisp/checkdoc.el + (checkdoc-commentary-header-string): New defvar. + (checkdoc-file-comments-engine): Insert value of above new + variable instead of hardcoding what is inserted for the + "Commentary" section. + +2021-11-05 Eli Zaretskii <eliz@gnu.org> + + Use correct compiler options for building with libwebp + + * src/Makefile.in (WEBP_CFLAGS): Define. + (EMACS_CFLAGS): Use it. (Bug#51611) + +2021-11-05 Michael Albinus <michael.albinus@gmx.de> + + Improve `file-has-changed-p' + + * doc/lispref/files.texi (File Attributes): Be precise when + filename does not exist in `file-has-changed-p'. + + * lisp/files.el (file-has-changed-p): Suppress remote file caches. + Handle the case FILE does not exists. + +2021-11-05 Paul Eggert <eggert@cs.ucla.edu> + + rsvg_handle_get_dimensions is deprecated in 2.52.0 + + In Bug#44655#32 (2020-11-19) it was reported that + rsvg_handle_get_dimensions was not deprecated. However, it became + deprecated in librsvg 2.52.0 (2021-09-15), and because of this Emacs + builds with --enable-gcc-warnings fail in Fedora 35 (2025-11-02) + with the diagnostic “‘rsvg_handle_get_dimensions’ is deprecated: + Use 'rsvg_handle_get_intrinsic_size_in_pixels' instead + [-Werror=deprecated-declarations]”. + * src/image.c (rsvg_handle_get_dimensions): Define as a DLL + function only if < librsvg 2.46.0, since it’s not used + in 2.46.0 or later. + (svg_load_image): Use rsvg_handle_get_dimensions only if librsvg < + 2.46.0, since it isn’t needed if >= 2.46.0. + +2021-11-05 Lars Ingebrigtsen <larsi@gnus.org> + + Allow 'pp' to limit the line widths + + * lisp/emacs-lisp/pp.el (pp-max-width, pp-use-max-width): New user + options (bug#11934). + (pp-to-string): Use it. + (pp--insert-lisp): Tweak whether to use standard-output or not. + (pp--max-width): New function. + +2021-11-05 Eli Zaretskii <eliz@gnu.org> + + Enhance 'highlight-confusing-reorderings' + + * lisp/international/mule-cmds.el (confusingly-reordered): Make + sure the face looks distinct on displays that don't support the + "wavy" underline attribute. + (highlight-confusing-reorderings): Add a tooltip explaining why + the text was highlighted. Allow to remove the highlighting by + invoking the command with a prefix argument. + +2021-11-05 Carlos Pita <carlosjosepita@gmail.com> + + Match dummy output even with non-default rl config + + * lisp/progmodes/python.el + (python-shell-completion-native-get-completions): Match dummy output + even when readline is configured in non-default ways. (Bug#51010) + +2021-11-04 Tino Calancha <tino.calancha@gmail.com> + + Fix (un)compressing directories in Tramp + + * lisp/net/tramp-sh.el (tramp-sh-handle-dired-compress-file): + Check whether the file is a directory (bug#50581). + +2021-11-04 Matthias Meulien <orontee@gmail.com> + + Fix 'diff-font-lock-prettify' breaking display of outline headers + + * lisp/vc/diff-mode.el (diff-outline-level): Make hunk headers be + at level 2. + (diff-mode): Use prettified line as outline header. + (diff--outline-level): New function (bug#51016). + + * lisp/vc/vc.el (vc-diff-internal): Fix diff mode being set before + content inserted (bug#51016). + +2021-11-04 Daniel Martín <mardani29@yahoo.es> + + Fix buffer overflow in ns_compute_glyph_string_overhangs + + * src/nsterm.m (ns_compute_glyph_string_overhangs): When the first + glyph of a glyph string is a composite glyph, `s->nchars' is 0, so + "s->char2b + s->nchars - 1" dereferenced a position before buffer + `s->char2b'. Instead, rewrite part of the function to distinguish + between character glyphs and composite glyphs. For character glyphs, + calculate the font metrics using the `text_extents' function, passing + it the entire glyph string; for composite glyphs, call + `composition_gstring_width'. (Bug#51105) + +2021-11-04 Stefan Kangas <stefan@marxist.se> + + image-dired: Delete commented out code + + * lisp/image-dired.el: Delete broken and commented out speedbar code; + it is not clear what, if anything, it is supposed to do. If anyone + wants to work on this, they are better off starting from scratch. + +2021-11-04 Stefan Kangas <stefan@marxist.se> + + image-dired: New defgroup and section for gallery support + + * lisp/image-dired.el: Add new section header "Gallery support" to + improve file organization. Move relevant TODO:s there. + + (image-dired-gallery): New defgroup. + (image-dired-gallery-dir, image-dired-gallery-image-root-url) + (image-dired-gallery-thumb-image-root-url) + (image-dired-gallery-hidden-tags): Add options to above new defgroup. + + (image-dired-add-to-file-comment-list) + (image-dired-create-gallery-lists) + (image-dired-add-to-tag-file-lists, image-dired-hidden-p): Rename to... + (image-dired--add-to-file-comment-list) + (image-dired--create-gallery-lists) + (image-dired--add-to-tag-file-lists, image-dired--hidden-p): + ...this, to make it more clear that these functions are internal. + Make the old names obsolete function aliases. + (image-dired-add-to-tag-file-list): Make unused function obsolete. + +2021-11-04 Gregory Heytings <gregory@heytings.org> + + New emacsclient option to either create or reuse an existing frame. + + * doc/emacs/misc.texi (emacsclient Options): Document the new option. + + * doc/man/emacsclient.1: Mention the new option (bug#51374). + * etc/NEWS: Mention the new option. + + * lib-src/emacsclient.c (reuse_frame): New variable. + (longopts): New option. + (decode_options): Decode the new option. + (print_help_and_exit): Document the new option. + (main): Use the new option. + +2021-11-04 Lars Ingebrigtsen <larsi@gnus.org> + + Try harder to keep lines short in pp-emacs-lisp-code + + * lisp/emacs-lisp/pp.el (pp--insert): Try harder to keep lines short. + +2021-11-04 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak multi-line expressions in pp--format-function + + * lisp/emacs-lisp/pp.el (pp--format-function): Fix up multi-line + expressions. + +2021-11-04 Lars Ingebrigtsen <larsi@gnus.org> + + Fix up some list folding in pp-emacs-lisp-code + + * lisp/emacs-lisp/pp.el (pp--insert-lisp, pp--format-list) + (pp--insert): Touch up list folding. + +2021-11-04 Lars Ingebrigtsen <larsi@gnus.org> + + Indent lambdas/closures better + + * lisp/emacs-lisp/pp.el (pp--format-function): Indent lambdas and + closures better. + +2021-11-04 Lars Ingebrigtsen <larsi@gnus.org> + + Make lambda/closure help buttons format as Emacs Lisp + + * lisp/help.el (help--describe-command): Format lambda/closures as + Emacs Lisp. + + * lisp/emacs-lisp/pp.el (pp-display-expression): Allow formatting + as Emacs Lisp. + +2021-11-04 Lars Ingebrigtsen <larsi@gnus.org> + + Add new basic Emacs Lisp code formatting function + + * lisp/emacs-lisp/pp.el (pp-emacs-lisp-code): New interface function. + (pp): Mention it. + (pp--insert-lisp, pp--format-vector, pp--format-list) + (pp--format-function, pp--format-definition, pp--insert-binding) + (pp--insert, pp--indent-buffer): New helper functions. + +2021-11-04 Stephen Berman <stephen.berman@gmx.net> + + Fix allout point movement problem + + * lisp/allout.el (allout-next-visible-heading): Ensure that we + move to the next physical line (bug#51530). + +2021-11-04 Eli Zaretskii <eliz@gnu.org> + + Better detection of potentially malicious bidi text + + * src/bidi.c (bidi_find_first_overridden): Extend to detect more + subtle effects of directional formatting controls, to include + embeddings and isolates. + * src/xdisp.c (Fbidi_find_overridden_directionality): Accept an + additional argument BASE-DIR to specify the base direction of the + paragraphs. + + * lisp/international/mule-cmds.el (confusingly-reordered): New + face. + (reorder-starters, reorder-enders): New variables. + (highlight-confusing-reorderings): New command to detect and + highlight suspiciously reordered text. + + * test/src/xdisp-tests.el + (xdisp-tests--find-directional-overrides): New test. + + * etc/NEWS: Announce the new and improved features. + * etc/tutorials/TUTORIAL.he: Fix embeddings with incorrect + directions. + +2021-11-04 Lars Ingebrigtsen <larsi@gnus.org> + + font-lock-type-face doc string improvement + + * lisp/font-lock.el (font-lock-type-face): Fix grammar in doc + string (bug#51574). + +2021-11-04 Lars Ingebrigtsen <larsi@gnus.org> + + Improve defface error message + + * lisp/cus-face.el (custom-declare-face): Improve the error + message when there's a missing doc string (bug#51576). + +2021-11-04 Lars Ingebrigtsen <larsi@gnus.org> + + Don't have `M-x term' call `term-mode' twice + + * lisp/term.el (term): Don't call `term-mode' twice (bug#51589). + +2021-11-04 Lars Ingebrigtsen <larsi@gnus.org> + + Document that `unspecified' isn't valid in defface + + * doc/lispref/display.texi (Face Attributes): Mention that + unspecified isn't valid in defface (bug#51595). + +2021-11-04 Gregory Heytings <gregory@heytings.org> + + Reset mailcap entries only when mailcap files are read again + + * lisp/net/mailcap.el (mailcap-parse-mailcaps): Move the clear and + load defaults operations at their appropriate place. Fixes bug#51600. + +2021-11-04 Lars Ingebrigtsen <larsi@gnus.org> + + Fix return value of python-nav-end-of-defun + + * lisp/progmodes/python.el (python-nav-end-of-defun): Return + non-nil if in a def/class, as the doc string implies (bug#51601). + +2021-11-04 Lars Ingebrigtsen <larsi@gnus.org> + + Rename button-buttonize to buttonize + + * lisp/help.el (help--describe-command): + * lisp/emacs-lisp/memory-report.el (memory-report--buffers): + * lisp/button.el (button-buttonize): + * doc/lispref/display.texi (Making Buttons): Rename + button-buttonize to just buttonize and adjust callers. + +2021-11-04 Mattias Engdegård <mattiase@acm.org> + + Revert "* lisp/progmodes/xref.el (xref-pop-marker-stack): Don't obsolete." + + This reverts commit f56408a6f0152cd46d1ea8a0985fbfeeb839ea06. + + As commented by Dmitry Gutov in [1], obsoleting `xref-pop-marker-stack` + makes sense. + + [1] https://lists.gnu.org/archive/html/emacs-devel/2021-10/msg01870.html + +2021-11-04 Lars Ingebrigtsen <larsi@gnus.org> + + Add a Gnus command to emojize symbols + + * doc/misc/gnus.texi (Article Display): Document it. + + * lisp/gnus/gnus-art.el (gnus-treat-emojize-symbols): New user option. + (gnus-treatment-function-alist): Map. + (article-emojize-symbols): New command and keystroke. + +2021-11-04 Lars Ingebrigtsen <larsi@gnus.org> + + Add new user option mml-attach-file-at-the-end + + * lisp/gnus/mml.el (mml-attach-file-at-the-end): New user option. + (mml-attach-file): Use it. + +2021-11-04 Stefan Kangas <stefan@marxist.se> + + image-dired: Set default-directory in thumbnail buffer + + * lisp/image-dired.el (image-dired-show-all-from-dir): Set + default-directory. This fixes e.g. 'dired-jump'. + +2021-11-03 Stefan Kangas <stefan@marxist.se> + + Make image-dired-display-image-mode inherit from image-mode + + * lisp/image-dired.el (image-dired-display-image-mode): + Inherit from 'image-mode'. (Bug#10758) + (image-dired-display-image): Don't generate a temporary image, which + is no longer needed with the above change. + (image-dired-display-thumbnail-original-image) + (image-dired-dired-display-image) + (image-dired-mouse-display-image): Simplify. + + (image-dired-temp-image-file) + (image-dired-cmd-create-temp-image-program) + (image-dired-cmd-create-temp-image-options) + (image-dired-display-window-width-correction) + (image-dired-display-window-height-correction) + (image-dired-display-window-width) + (image-dired-display-window-height) + (image-dired-display-current-image-full) + (image-dired-display-current-image-sized) + (image-dired-window-height-pixels): Make obsolete. + (image-dired-create-display-image-buffer): Make into obsolete + function alias for 'ignore'. + (image-dired-display-image-mode-map): Simplify by removing things + duplicated from `image-mode-map'. Disable some commands from + `image-mode-map' that doesn't make sense for Image-Dired. + (image-dired-display-image-mode-menu): Remove menu, as it no longer + contains anything useful. + (image-dired-minor-mode): + * doc/emacs/dired.texi (Image-Dired): Update documentation for the + above change. + +2021-11-03 Stefan Kangas <stefan@marxist.se> + + Improve theming of image-dired-thumb-mark + + * etc/themes/adwaita-theme.el (adwaita): + * etc/themes/deeper-blue-theme.el (deeper-blue): + * etc/themes/dichromacy-theme.el (dichromacy): + * etc/themes/leuven-theme.el (leuven): + * etc/themes/manoj-dark-theme.el (manoj-dark): + * etc/themes/whiteboard-theme.el (whiteboard): Add definitions for + the 'image-dired-thumb-flagged' face. + +2021-11-03 Stefan Kangas <stefan@marxist.se> + + image-dired: Add face for flagged files + + * lisp/image-dired.el (image-dired-thumb-mark): New defface. + (image-dired-thumb-update-marks): Mark flagged file with above new defface. + (image-dired-dired-file-marked-p) + (image-dired-thumb-file-marked-p): Add optional argument to be + used by 'image-dired-*-flagged-p' functions below. + (image-dired-dired-file-flagged-p) + (image-dired-thumb-file-flagged-p): New defuns. + (image-dired-thumb-mark): Improve definition with color classes. + (image-dired-thumb-visible-marks): Doc fix. + +2021-11-03 Philipp Stephani <phst@google.com> + + Fix declaration syntax of 'image-dired--on-file-in-dired-buffer'. + + * lisp/image-dired.el (image-dired--on-file-in-dired-buffer): Fix + declaration syntax. + +2021-11-03 Eli Zaretskii <eliz@gnu.org> + + Fix encoding issues in gitmerge.el, make it work on MS-Windows + + * admin/gitmerge.el (gitmerge-emacs-version, gitmerge-show-log) + (gitmerge-show-diff, gitmerge-show-files, gitmerge-missing) + (gitmerge-setup-log-buffer, gitmerge-resolve) + (gitmerge-commit-message, gitmerge-apply) + (gitmerge-resolve-unmerged, gitmerge-repo-clean) + (gitmerge-commit): Bind coding-system-for-read/write to the + appropriate vc-git values. + (gitmerge-apply) [windows-nt]: Pass long merge log messages via a + temporary file. + (gitmerge): Clarify the description of the "R" flag. + +2021-11-03 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + 3e4eb54 ; * etc/PROBLEMS: Minor copyedits of the last change. (Bug#5... + 35bc211 Document a macOS error message when opening Emacs + 4df9998 Fix header-line and tab-line when mode-line-compact is set + 81915a9 Add manual section about how to avoid regexp problems + a16e66c Clarify build environment + 6ab6b2f Clarify build directory structure + 9d61620 * src/pdumper.c (dump_do_dump_relocation): Add sanity check. + +2021-11-03 Eli Zaretskii <eliz@gnu.org> + + Fix widgets in Outline mode on TTY frames + + * lisp/outline.el (outline--valid-emoji-p): Don't try to probe + support for display of Emoji characters on TTY frames. (Bug#51578) + +2021-11-03 Eli Zaretskii <eliz@gnu.org> + + A better fix for bug#51583 + + * src/w32.c (w32_get_resource): Move from here... + * src/w32fns.c (w32_get_resource): ...to here. + (w32_applytheme): No longer a no-op for Cygwin w32 builds. + (globals_of_w32fns): Do attempt to load dwmapi.dll and uxtheme.dll + in the Cygwin w32 build. + +2021-11-03 Eli Zaretskii <eliz@gnu.org> + + Fix the Cygwin w32 build broken by adding the dark theme support + + * src/w32fns.c (w32_applytheme): Make a no-op for Cygwin w32 + builds. + (globals_of_w32fns): Don't attempt to load dwmapi.dll and + uxtheme.dll in the Cygwin w32 build. (Bug#51583) + +2021-11-03 Stefan Kangas <stefan@marxist.se> + + Improve theming of image-dired-thumb-mark + + * etc/themes/adwaita-theme.el (adwaita): + * etc/themes/deeper-blue-theme.el (deeper-blue): + * etc/themes/dichromacy-theme.el (dichromacy): + * etc/themes/leuven-theme.el (leuven): + * etc/themes/manoj-dark-theme.el (manoj-dark): + * etc/themes/whiteboard-theme.el (whiteboard): Add definitions for + the 'image-dired-thumb-mark' face. + +2021-11-03 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * src/image.c: Fix building with giflib 4. + +2021-11-03 Stefan Kangas <stefan@marxist.se> + + image-dired: Improve marking behavior + + * lisp/image-dired.el (image-dired-thumb-mark): Use DarkOrange as + background to better match the 'dired-marked' face. + (image-dired-show-all-from-dir): Disable all marks when entering a + full directory. + (image-dired-unmark-all-marks): Add mode tag. + (image-dired-thumbnail-mode-map): Bind 'image-dired-unmark-all-marks' + to "U". + +2021-11-03 Stefan Kangas <stefan@marxist.se> + + image-dired: Cleanup of four commands + + * lisp/image-dired.el + (image-dired--on-file-in-dired-buffer): New macro. + (image-dired-mark-thumb-original-file) + (image-dired-unmark-thumb-original-file) + (image-dired-flag-thumb-original-file) + (image-dired-toggle-mark-thumb-original-file): Rewrite using + above new macro. + (image-dired-modify-mark-on-thumb-original-file): Make obsolete in + favor of above new macro. + +2021-11-03 Stefan Kangas <stefan@marxist.se> + + image-dired: Support wrap-around in display-next-thumbnail-original + + * lisp/image-dired.el (image-dired-forward-image): Support negative + prefix argument. Optionally wrap-around, which means to continue from + first image after reaching the last one and vice versa. + (image-dired-backward-image): Reimplement in terms of + 'image-dired-forward-image'. + (image-dired-display-next-thumbnail-original) + (image-dired-display-previous-thumbnail-original): Wrap around; when + reaching the last image, continue from the first one. Add optional + prefix argument to move more than one image at a time. + +2021-11-03 Stefan Kangas <stefan@marxist.se> + + image-dired: Improve menus + + * lisp/image-dired.el (image-dired-toggle-append-browsing) + (image-dired-toggle-movement-tracking): Improve messages. + (image-dired-thumbnail-mode-menu, image-dired-minor-mode-menu): + Make toggle entries into checkboxes. Add separators. Remove + obsoleted commands accidentally added back in merge. + +2021-11-03 Stefan Kangas <stefan@marxist.se> + + image-dired: Signal error if file is missing on display + + * lisp/image-dired.el (image-dired-display-image): Signal error if + file is missing. + +2021-11-03 Stefan Kangas <stefan@marxist.se> + + image-dired: Move menu definitions to top level + + * lisp/image-dired.el (image-dired-thumbnail-mode-map) + (image-dired-display-image-mode-map, image-dired-minor-mode-map): + Move menu definitions from here... + (image-dired-thumbnail-mode-menu) + (image-dired-display-image-mode-menu) + (image-dired-minor-mode-menu): ...to these new top level + definitions. + +2021-11-02 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/epg.el (epg-key): Use explicit copier with proper prefix + + (epg--filter-revoked-keys): Adjust sole use. + +2021-11-02 Stefan Kangas <stefan@marxist.se> + + * etc/PROBLEMS: Move some entries to the legacy section. + +2021-11-02 Stefan Kangas <stefan@marxist.se> + + Remove info for Emacs 20 users from etc/PROBLEMS + + * etc/PROBLEMS: Remove information for users upgrading from Emacs + 20 or older. + +2021-11-02 Mattias Engdegård <mattiase@acm.org> + + Optimize (cond) => nil at source level + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-cond): + Optimize clause-free `cond`, which can arise from earlier + transformations. This enables further optimizations. + * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases): + Add test cases. + +2021-11-02 Stefan Kangas <stefan@marxist.se> + + Use current face foreground for SVG icons in customize + + * etc/images/down.svg: + * etc/images/left.svg: + * etc/images/right.svg: + * etc/images/up.svg: Don't define foreground; this means they will use + the foreground of the currently defined face instead. (Bug#51556) + +2021-11-02 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + bc58bea * lisp/progmodes/prog-mode.el (prog-context-menu): Use text-m... + +2021-11-02 Stefan Kangas <stefan@marxist.se> + + Support inserting images in tabulated-list-mode columns + + * lisp/emacs-lisp/tabulated-list.el (tabulated-list-print-col): + Support using an image descriptor to insert an image in a column. + (tabulated-list-entries): + * doc/lispref/modes.texi (Tabulated List Mode): Update documentation + to reflect above change. + +2021-11-02 Lars Ingebrigtsen <larsi@gnus.org> + + Revert overlay-related changes in `C-h b' + + * lisp/help.el (describe-bindings): Revert overlay-related changes + -- these are already output (normally) by `describe-buffer-bindings'. + +2021-11-02 Lars Ingebrigtsen <larsi@gnus.org> + + Make lambdas/closures/byte code in `C-h b' clickable + + * lisp/help.el (help--describe-command): Add links for + lambdas/closures/byte code (bug#24235). + + * lisp/emacs-lisp/pp.el (pp-display-expression): Autoload. + +2021-11-02 Gregory Heytings <gregory@heytings.org> + + Improve file-has-changed-p + + * doc/lispref/files.texi: Update the documentation. + + * lisp/net/mailcap.el: Add a second argument to the call to + file-has-changed-p (bug#51523). + +2021-11-02 dickmao <dick.r.chiang@gmail.com> + + Update keymap-tests after recent changes + + * test/src/keymap-tests.el + (help--describe-vector/bug-9293-one-shadowed-in-range): Update tests + for d530f3f9ff. + (help--describe-vector/bug-9293-same-command-does-not-shadow): Update + (bug#51567). + +2021-11-02 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/outline.el: Fix compilation of `outline--make-button` + +2021-11-01 Lars Ingebrigtsen <larsi@gnus.org> + + Fix mouse-1 on `C-h b' buttons + + * lisp/outline.el (outline--make-button-overlay): Make mouse-1 + work on the buttons. + +2021-11-01 Lars Ingebrigtsen <larsi@gnus.org> + + Make `C-h b' also describe overlay keymaps + + * lisp/help.el (describe-bindings): Also describe overlay key + bindings. + +2021-11-01 Lars Ingebrigtsen <larsi@gnus.org> + + Add a better test for emojis + + * lisp/outline.el (outline--valid-char-p) + (outline--valid-emoji-p): New predicates. + (outline--make-button, outline-minor-mode-buttons): Use them. + +2021-11-01 Lars Ingebrigtsen <larsi@gnus.org> + + Make `C-h b' indentation more regular (and avoid continuation lines) + + * lisp/help.el (help--describe-command): Don't do any indentation. + (describe-map): Store data about each section. + (describe-map--align-section): New function to do indentation on a + per-block basis. + (describe-map--fill-columns): Helper function. + +2021-11-01 Lars Ingebrigtsen <larsi@gnus.org> + + Fix rendering of key translations + + * lisp/help.el (help--describe-translation): Make obsolete. + (help--describe-command): Take an optional parameter to output key + translations. + (describe-map): Make optional parameters optional. + +2021-11-01 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of 'file-has-changed-p' + + * etc/NEWS: + * doc/lispref/files.texi (File Attributes): Improve wording of the + documentation of 'file-has-changed-p'. + +2021-11-01 Lars Ingebrigtsen <larsi@gnus.org> + + Don't output prefix keys in `C-h b', and output more data on objects + + * lisp/help.el (help--describe-command): Output + [closure/lambda/byte-code] for those types of objects. + (describe-map): Don't output prefix keys. + +2021-11-01 Michael Albinus <michael.albinus@gmx.de> + + Exclude emacs-module-tests.el on emba + + * test/infra/gitlab-ci.yml (test-native-comp-speed0): + Exclude emacs-module-tests.el. + +2021-11-01 Lars Ingebrigtsen <larsi@gnus.org> + + Add buttons to definition in help--describe-command + + * lisp/help-mode.el (help-make-xrefs): Don't add buttons to + keymaps, because they're pre-buttonized. + * lisp/help.el (help--describe-command): Make buttons out of the + definitions. + +2021-11-01 Lars Ingebrigtsen <larsi@gnus.org> + + Tag up last NEWS change + +2021-11-01 Gregory Heytings <gregory@heytings.org> + + Read mailcaps again only when necessary + + * doc/lispref/files.texi (File Attributes): Document it. + + * lisp/files.el (file-has-changed-p): New function. + (file-has-changed-p--hash-table): Internal variable used by the + new function (bug#51523). + * lisp/emacs-lisp/shortdoc.el (file): Mention it. + + * lisp/net/mailcap.el (mailcap-parse-mailcaps): Read mailcaps again + only when at least one of the mailcap files has changed. Fixes + bug#51523. + +2021-11-01 Michael Albinus <michael.albinus@gmx.de> + + Merge from origin/emacs-28 + + 84cd95e04c Fix bug#51369 + +2021-11-01 Michael Albinus <michael.albinus@gmx.de> + + Merge from origin/emacs-28 + + ba4daf2214 Adapt arguments of `tramp-make-tramp-file-name' + a34466731b Fix typo in describe-map-tree doc string + +2021-10-31 Lars Ingebrigtsen <larsi@gnus.org> + + Further xref fix-ups after keymap help changes + + * lisp/help-mode.el (help-make-xrefs): Get continuation lines right. + +2021-10-31 Lars Ingebrigtsen <larsi@gnus.org> + + Fix infloop in help-make-xrefs in certain keymaps + + * lisp/help-mode.el (help-make-xrefs): Adjust xref symbol finding + after changes to how keymaps are output. + +2021-10-31 Lars Ingebrigtsen <larsi@gnus.org> + + Make xref symbol marking work again after describe-keymap changes + + * lisp/help-mode.el (help-make-xrefs): Adjust xref symbol finding + after changes to how keymaps are output. + +2021-10-31 Aaron Jensen <aaronjensen@gmail.com> + + * lisp/icomplete.el (icomplete-exhibit): Remove workaround + +2021-10-31 Lars Ingebrigtsen <larsi@gnus.org> + + Fix failing help-fns tests after layout changes in `C-h b' + +2021-10-31 Lars Ingebrigtsen <larsi@gnus.org> + + Say "Key/Binding" instead of "key/binding" in `C-h b' + + * lisp/help.el (describe-map-tree): Capitalize the heading. + +2021-10-31 Lars Ingebrigtsen <larsi@gnus.org> + + Don't print empty keymaps in `C-h b' + + * lisp/help.el (describe-map-tree): Don't print the heading if the + keymap is empty (bug#22334). Tweak the look to compress it more + vertically. + +2021-10-31 Lars Ingebrigtsen <larsi@gnus.org> + + Include the major mode name in the `C-h b' output + + * lisp/calc/calc-help.el (calc-describe-bindings): Don't add the + name since it's there now. + + * src/keymap.c (Fdescribe_buffer_bindings): Include the major mode + name for symmetry with the minor modes (and because it's easy to + forget). + +2021-10-31 Lars Ingebrigtsen <larsi@gnus.org> + + Don't make key binding face wider than the norm + + * lisp/faces.el (help-key-binding): Don't make the chars wider + than normally, because that makes `C-h b' lining-up logic fail. + +2021-10-31 Ken Brown <kbrown@cornell.edu> + + Merge from origin/emacs-28 + + 6ba4e3b78c Drop support for native compilation on 32-bit Cygwin + 7e15ee5bc9 ; * doc/emacs/help.texi (Help Mode): Improve indexing. + +2021-10-31 Lars Ingebrigtsen <larsi@gnus.org> + + Re-fix the new mouse event logic in outline + + * lisp/outline.el (outline-show-subtree, outline-hide-subtree): + Really fix the mouse logic. + +2021-10-31 Lars Ingebrigtsen <larsi@gnus.org> + + Make TAB work on the outline buttons + + * lisp/outline.el (outline--insert-close-button) + (outline--insert-open-button): Make TAB work to toggle on the + buttons, too. + +2021-10-31 Lars Ingebrigtsen <larsi@gnus.org> + + Clarify describe-bindings code slightly + + * lisp/help.el (describe-bindings): Clarify code slightly. + +2021-10-31 Lars Ingebrigtsen <larsi@gnus.org> + + Fix new mouse handling in outline + + * lisp/outline.el (outline-show-subtree, outline-hide-subtree): + Don't set point if we have no event. + +2021-10-31 Lars Ingebrigtsen <larsi@gnus.org> + + Add buttons to outlining and tweak `C-h b' buffer + + * lisp/help.el (describe-bindings-outline): Change default to t. + (describe-bindings): Tweak the look and remove the explanation. + + * lisp/outline.el (outline-minor-mode-use-buttons): + (outline-minor-mode-buttons): New user options. + (outline-hide-subtree): Update buttons. + (outline--make-button, outline--make-button-overlay) + (outline--insert-open-button, outline--insert-close-button) + (outline--fix-up-all-buttons): New functions. + +2021-10-31 Eli Zaretskii <eliz@gnu.org> + + Improve the "Help Mode" section of the Emacs manual + + * doc/emacs/help.texi (Help Mode): Reorganize and improve wording + of the recent change. Add index entries. + +2021-10-31 Lars Ingebrigtsen <larsi@gnus.org> + + Add mode tagging to previously added help commands + + * lisp/help-mode.el (help-goto-previous-page): New command and key + binding. + (help-goto-previous-page): Ditto. + +2021-10-31 Lars Ingebrigtsen <larsi@gnus.org> + + Add 'n'/'p' key bindings in *Help* buffers + + * lisp/help-mode.el (help-goto-previous-page): New command and key + binding. + (help-goto-previous-page): Ditto. + +2021-10-31 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + f1c9286 ; * doc/misc/org.org: fix capture context example + af67ce6 Merge branch 'emacs-28' of git.savannah.gnu.org:/srv/git/emac... + 610680a Fix rendering of title-less <abbr> tags in shr + 2ba4ccf ; * lisp/files.el (make-nearby-temp-file): Doc fix. + +2021-10-31 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + 5e05be5 Fix localized display of date and time in the NS port + +2021-10-31 Michael Albinus <michael.albinus@gmx.de> + + Adapt emba control files + + * test/infra/Dockerfile.emba: Do not generate debug info. + + * test/infra/gitlab-ci.yml (variables, default): Revert timeout + back to three hours. + (.job-template): Comment test prints. + (test-all-inotify): Exclude emacs-module-tests.el. + +2021-10-31 Lars Ingebrigtsen <larsi@gnus.org> + + Add highlighting of the F2008 keyword "impure" + + * lisp/progmodes/f90.el (f90-keywords-re): Highlight F2008 keyword + "impure" (bug#51529). + +2021-10-31 Lars Ingebrigtsen <larsi@gnus.org> + + Add new function 'font-has-char-p' + + * src/font.c (Ffont_has_char_p): New function. + (Ffont_get_glyphs): Link to the new function from the doc string. + +2021-10-31 Stefan Kangas <stefan@marxist.se> + + Add test for Bug#51527 + + * test/src/keymap-tests.el (keymap-lookup-key/menu-non-symbol): + New test. + +2021-10-31 Stefan Monnier <monnier@iro.umontreal.ca> + + eieio-core.el: Make slot-value work on defstructs + + Adjust the values in EIEIO's index-tables so they are compatible with those + of defstructs. + + * lisp/emacs-lisp/eieio-core.el (eieio--slot-name-index): Don't add the + `eieio--object-num-slots` offset. + (eieio-defclass-internal): Add the `eieio--object-num-slots` offset + here instead. + (eieio-oref): Allow its use on `cl-structure-object`. + + * lisp/emacs-lisp/eieio.el (eieio-pcase-slot-index-from-index-table): + Don't need to add the `eieio--object-num-slots` offset. + + * doc/misc/eieio.texi (Accessing Slots, Accessing Slots): + Mention the use on structs. + + * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el + (eieio-test-defstruct-slot-value): New test. + +2021-10-31 Lars Ingebrigtsen <larsi@gnus.org> + + Expand the kbd-valid-p doc string + + * lisp/subr.el (kbd-valid-p): Expand the doc string. + +2021-10-31 Eli Zaretskii <eliz@gnu.org> + + Avoid signaling errors in lookup-key + + * src/keymap.c (Flookup_key): Handle KEY vectors where not all + components are symbols. (Bug#51527 + +2021-10-31 Alan Third <alan@idiocy.org> + + Ensure help echoes only occur once on NS + + * src/nsterm.m ([EmacsView windowDidResignKey:]): Reset + any_help_event_p as it is never reset otherwise. + +2021-10-31 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + 335a660b4b Fix display glitches with side-by-side windows on TTY frames + 4a96f32def Avoid replacing common prefix with ellipsis + +2021-10-30 Stefan Kangas <stefan@marxist.se> + + Remove workaround for fixed Bug#6581 from ert + + * lisp/emacs-lisp/ert.el (ert-equal-including-properties): Make + into obsolete function alias for 'equal-including-properties'. + * test/src/editfns-tests.el (format-properties): + * test/lisp/emacs-lisp/ert-x-tests.el (ert-propertized-string) + (ert-test-run-tests-interactively-2): Don't use above obsolete + name. + + (ert--explain-equal-including-properties-rec): New function. + (ert--explain-equal-including-properties): Use as an explainer for + 'equal-including-properties' now that Bug#6581 is fixed. + + * test/lisp/emacs-lisp/ert-tests.el + (ert-test-explain-equal-string-properties): Expand test. + (ert-test-equal-including-properties): Merge test into above + expanded test. + +2021-10-30 Stefan Kangas <stefan@marxist.se> + + Fix bug with string values in equal-including-properties + + * src/intervals.c (intervals_equal_1): Factor out from + intervals_equal. Optionally use Fequal for comparison of string + values in property lists. + (intervals_equal): Update for the above. + (compare_string_intervals): Use the above optional Fequal comparison + to fix a bug where 'equal-including-properties' compared strings with + eq, instead of equal. (Bug#6581) + * test/src/fns-tests.el (fns-tests-equal-including-properties) + (fns-tests-equal-including-properties/string-prop-vals): New tests. + + * test/lisp/emacs-lisp/ert-tests.el + (ert-test-equal-including-properties): Remove parts testing + 'equal-including-properties'. + * lisp/emacs-lisp/ert.el (ert-equal-including-properties): Add + FIXME that this should be removed. + +2021-10-30 Stefan Kangas <stefan@marxist.se> + + Use primes for hash table bucket sizes + + * src/dispextern.h (IMAGE_CACHE_BUCKETS_SIZE): + * src/image.c (XPM_COLOR_CACHE_BUCKETS): Use primes for hash table + bucket sizes. + +2021-10-30 Eli Zaretskii <eliz@gnu.org> + + Move the documentation of 'string-glyph-split' to proper place + + * doc/lispref/strings.texi (Creating Strings): Move the + description of 'string-glyph-split' from here... + * doc/lispref/display.texi (Size of Displayed Text): ...to here. + +2021-10-30 Jim Porter <jporterbugs@gmail.com> + + Expand connection-local variables example in doc/emacs/custom.texi + + * doc/emacs/custom.texi (Per-Connection Local Variables): Expand the + example to include setting 'system-uses-terminfo'. + +2021-10-30 dalanicolai <dalanicolai@gmail.com> + + Make list-colors-display sort list passed as argument + + * lisp/facemenu.el (list-colors-display): Don't skip sorting list of + colors if it was passed as an argument. (Bug#51371) + +2021-10-30 Lars Ingebrigtsen <larsi@gnus.org> + + Add new function string-glyph-split + + * doc/lispref/strings.texi (Creating Strings): Document it. + * lisp/emacs-lisp/shortdoc.el (string): Mention it. + + * lisp/emacs-lisp/subr-x.el (string-glyph-split): New function. + +2021-10-30 Kévin Le Gouguec <kevin.legouguec@gmail.com> + + Avoid fonts with incomplete coverage of MATHEMATICAL chars + + * lisp/international/fontset.el (setup-default-fontset): Include both + ends of each sub-range in 'script-representative-chars' (bug#51495). + + Some fonts include glyphs for MATHEMATICAL SCRIPT CAPITAL codepoints + (#x1D49C-#x1D4B5) but not for MATHEMATICAL SCRIPT SMALL codepoints + (#x1D4B6-#x1D4CF), see e.g. KpMath[1]. + + 'script-representative-chars' must thus include both CAPITAL and SMALL + codepoints to ensure that we filter those fonts out. + + Bug#51495; discussed in help-gnu-emacs[2]. + + [1] https://mirrors.ctan.org/fonts/kpfonts-otf/doc/unimath-kpfonts.pdf + + [2] <878s02u5m6.fsf@gmail.com> + https://lists.gnu.org/archive/html/help-gnu-emacs/2021-09/msg00150.html + +2021-10-30 Eli Zaretskii <eliz@gnu.org> + + Minor fixes for previous change + + * src/w32fns.c (DWMWA_USE_IMMERSIVE_DARK_MODE_OLD): Define only if + undefined. + (w32_applytheme, w32_createwindow, globals_of_w32fns): Minor + stylistic copyedits. + + * etc/NEWS: Reword the entry about using dark mode on MS-Windows. + + * doc/emacs/msdos.texi (Windows Misc): Fix wording and markup in + the last change. + +2021-10-30 Vince Salvino <salvino@coderedcorp.com> + + Support system dark mode on Windows 10 version 1809 and higher + + * src/w32fns.c (DARK_MODE_APP_NAME) + (DWMWA_USE_IMMERSIVE_DARK_MODE_OLD) + (DWMWA_USE_IMMERSIVE_DARK_MODE): Define. + (w32_applytheme): New function. + (w32_createvscrollbar, w32_createhscrollbar, w32_createwindow): + Call 'w32_applytheme'. + (globals_of_w32fns): Load 'DwmSetWindowAttribute' and + 'SetWindowTheme' from their DLLs, and initialize 'w32_darkmode'. + * src/w32.c (w32_get_resource): Accept an additional argument + instead of hard-coding REG_ROOT; callers changed. (Bug#51404) + + * etc/NEWS: + * doc/emacs/msdos.texi (Windows Misc): Document the new feature. + +2021-10-30 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-28 + + 20ebd91a73 Improve documentation of string truncation APIs + 3f998a3fc8 * lisp/textmodes/css-mode.el: Fix typo. (Bug#51488) + +2021-10-29 Stefan Kangas <stefan@marxist.se> + + * src/image.c: Fix building with giflib on MS-Windows. + +2021-10-29 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 52e7049b58 * lisp/loadup.el: Unbreak build. + 91e7df281e Move lisp/shorthands.el to lisp/emacs-lisp/shorthands.el + 00103154e0 Some Tramp changes, mainly in tramp-tests.el + +2021-10-29 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 08de838531 ; Improve commentary in the last change + 3da9fa875b Make hieroglyphs display correctly with existing fonts + 928e05f2d6 Clarify "default face attributes" in the ELisp manual + 5dbb04e0eb Make `C-u RET' work again + d72fefdeab Fix typos in the manual and in a comment + +2021-10-29 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + f52fa1c150 image-dired: Unreverse accidentally reversed menus + + # Conflicts: + # lisp/image-dired.el + +2021-10-29 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 7e2b973d60 * lisp/textmodes/text-mode.el (text-mode-context-menu): Re... + da6d889e90 ; * etc/NEWS: Use active voice for 'repeat-mode', etc. + e3171e7e86 Allow automatic use of color fonts for emoji on macOS + + # Conflicts: + # etc/NEWS + +2021-10-29 Stefan Kangas <stefan@marxist.se> + + Prefer giflib 5 macros to magic numbers + + * src/image.c (DISPOSAL_UNSPECIFIED, DISPOSE_DO_NOT) + (DISPOSE_BACKGROUND, DISPOSE_PREVIOUS, NO_TRANSPARENT_COLOR) + [GIFLIB_MAJOR < 5]: Macro defined (for old versions of giflib). + (gif_load): Replace magic numbers with giflib 5 macros for disposal + and transparency_color_index. + +2021-10-29 Stefan Kangas <stefan@marxist.se> + + Don't parse GCB block by hand with giflib 5 or later + + * src/image.c (gif_load): If GIFLIB_MAJOR > 5, use + DGifSavedExtensionToGCB instead of parsing the Graphic Control + Extension block by hand. + +2021-10-29 Lars Ingebrigtsen <larsi@gnus.org> + + Make message/rfc822 on buttons work again in Gnus + + * lisp/gnus/gnus-art.el (gnus-article-mode): Set + mm-inline-message-prepare-function buffer-locally so that it works + both when inlining rfc822 and hitting the MIME button (bug#51388). + (gnus-mime--inline-message): Factor out into own function. + (gnus-mime-display-single): From here. + +2021-10-29 Morgan J. Smith <Morgan.J.Smith@outlook.com> + + Add some gnus-short-group-name tests + + * test/lisp/gnus/gnus-group-tests.el (gnus-short-group-name): Add + some gnus-short-group-name tests (bug#51450). + +2021-10-29 Lars Ingebrigtsen <larsi@gnus.org> + + Shorten Gnus groups with [foo] in the name better + + * lisp/gnus/gnus.el (gnus-short-group-name): Shorten groups with + [] in the names better (bug#51450). + +2021-10-29 Stefan Kangas <stefan@marxist.se> + + * src/image.c (gif_load): Minor simplification. + +2021-10-29 Eli Zaretskii <eliz@gnu.org> + + Fix bootstrapping broken by a recent change + + * src/keymap.c (Flookup_key): Avoid crashes during bootstrap when + uni-lowercase.el is not available yet. + +2021-10-28 akater <nuclearspace@gmail.com> + + Indent cl-flet-like forms correctly in incomplete expressions + + * lisp/emacs-lisp/lisp-mode.el + (lisp--local-defform-body-p): Support incomplete sexps + + * test/lisp/progmodes/elisp-mode-resources/flet.erts: + Add tests for incomplete sexps (bug#9622). + +2021-10-28 Stefan Kangas <stefan@marxist.se> + + Be more allowing when looking for menu-bar items + + * src/keymap.c (lookup_key_1): Factor out function from + Flookup_key. + (Flookup_key): Be case insensitive, and treat spaces as dashes, + when looking for Qmenu_bar items. (Bug#50752) + + * test/src/keymap-tests.el + (keymap-lookup-key/mixed-case) + (keymap-lookup-key/mixed-case-multibyte) + (keymap-lookup-keymap/with-spaces) + (keymap-lookup-keymap/with-spaces-multibyte) + (keymap-lookup-keymap/with-spaces-multibyte-lang-env): New tests. + +2021-10-28 Alan Mackenzie <acm@muc.de> + + Put missing c-keep-region-active's into the source code + + * lisp/progmodes/cc-cmds.el (c-beginning-of-defun): Insert + c-keep-region-active when (< arg 0). + (c-forward-conditional): Insert c-keep-region-active. + +2021-10-28 Jim Porter <jporterbugs@gmail.com> + + Make comint-term-environment connection-aware (bug#51426) + + * lisp/comint.el (comint-term-environment): Make it connection-aware. + + * doc/emacs/misc.texi (Shell Options): Document the above change, and + explain how this interacts with 'system-uses-terminfo'. + + * etc/NEWS: Announce the above change. + +2021-10-28 Eli Zaretskii <eliz@gnu.org> + + Ignore more events in input-pending-p + + * src/keyboard.c (readable_events) + (kbd_buffer_store_buffered_event): Use 'is_ignored_event' to + decide whether the input event is to be ignored. + (is_ignored_event): New function. + (syms_of_keyboard) <input-pending-p-filter-events>: New variable. + Patch from Aaron Jensen <aaronjensen@gmail.com>. + +2021-10-27 Stefan Kangas <stefan@marxist.se> + + Do interactive mode tagging in image-dired.el + + * lisp/image-dired.el (image-dired-restore-window-configuration) + (image-dired-next-line, image-dired-previous-line) + (image-dired-mark-thumb-original-file) + (image-dired-unmark-thumb-original-file) + (image-dired-flag-thumb-original-file) + (image-dired-toggle-mark-thumb-original-file) + (image-dired-jump-original-dired-buffer) + (image-dired-delete-char, image-dired-refresh-thumb) + (image-dired-display-next-thumbnail-original) + (image-dired-display-previous-thumbnail-original): Do interactive + tagging; these will only work in 'image-dired-thumbnail-mode'. + +2021-10-27 Stefan Kangas <stefan@marxist.se> + + image-dired: Make thumbnail rotation commands obsolete + + * lisp/image-dired.el (image-dired-cmd-rotate-thumbnail-program) + (image-dired-cmd-rotate-thumbnail-options) + (image-dired-rotate-thumbnail) + (image-dired-rotate-thumbnail-left) + (image-dired-rotate-thumbnail-right): Make obsolete in favor of + 'image-dired-refresh-thumb' and 'image-rotate'. It makes no sense to + have destructive thumbnail rotation commands now that Emacs can rotate + thumbnails in memory, and it is very fast to just generate a new one + reflecting the rotation of the original. + (image-dired-thumbnail-mode-map): Remove menu entries and key bindings + for above obsolete commands. The rotate right keybinding had already + been made ineffective by the local keymap added by 'insert-image'. + +2021-10-27 Stefan Kangas <stefan@marxist.se> + + image-dired: Don't show thumbnails if there are no image files + + * lisp/image-dired.el (image-dired-show-all-from-dir): Don't show + thumbnail buffer if there are no image files. + +2021-10-27 Stefan Kangas <stefan@marxist.se> + + Increase image-dired-show-all-from-dir-max-files to 500 + + * lisp/image-dired.el (image-dired-show-all-from-dir-max-files): + Increase default to 500 to ask for confirmation much less frequently. + The old value was added before we had asynchronous generation of + thumbnails, when a large number of files would lock up Emacs. Asking + for confirmation could probably be disabled completely these days, but + let's be conservative and set it to some large number of files for + which some users might want to see a prompt. It can't hurt. + (image-dired-show-all-from-dir): Never warn if above variable is nil. + (image-dired-bookmark-jump): Let-bind above variable to nil instead of + 'most-positive-fixnum'. + * doc/emacs/dired.texi (Image-Dired): Don't mention the above + variable, as it is no longer important enough to deserve the space. + * etc/NEWS: Announce the above change. + +2021-10-27 Stefan Monnier <monnier@iro.umontreal.ca> + + (string-pixel-width): Rewrite to avoid side effects + + * src/xdisp.c (Fwindow_text_pixel_size): Allow `window` to be a buffer. + * lisp/emacs-lisp/subr-x.el (string-pixel-width): Simplify accordingly. + +2021-10-27 Lars Ingebrigtsen <larsi@gnus.org> + + Revert "Add tentative key bindings for the three emoji commands" + + This reverts commit e678067cb5c4a642ef3fab1cc5046a34a4ae35d1. + + Applied to the wrong branch. + +2021-10-27 Lars Ingebrigtsen <larsi@gnus.org> + + Add tentative key bindings for the three emoji commands + +2021-10-27 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 2bdd5732aa (origin/emacs-28) ; * etc/NEWS: Fix last change. + 492b927909 Fix help commands for menu-bar menus + 9589be772d ; * etc/NEWS: Fix typos. + d353fc4a00 ; Explain why "kinds of atom" isn't a typo + 47a3750162 ; * etc/NEWS: Improve wording of the Emoji entry. + b814712796 ; Checkdoc fixes in image-dired.el + e45b3fc521 Improve function documentation with text from XDG BDS spec + 284c77eeb6 * lisp/transient.el: Update to package version 0.3.7. + 40400e6977 ; Revert parts of "Use string-replace instead of replace-r... + 214c2e268c ; Revert parts of "Use string-search instead of string-mat... + + # Conflicts: + # etc/NEWS + +2021-10-27 Lars Ingebrigtsen <larsi@gnus.org> + + Simplify string-pixel-width + + * lisp/emacs-lisp/subr-x.el (string-pixel-width): Simplify -- + save-window-excursion saves dedication status (and the code was + buggy). + +2021-10-27 Lars Ingebrigtsen <larsi@gnus.org> + + Fix parsing of erts files + + * lisp/emacs-lisp/ert.el (ert-test-erts-file): Fix progress + through a test file (bug#51409). + +2021-10-27 Lars Ingebrigtsen <larsi@gnus.org> + + Harden ert-resource-directory against errors + + * lisp/emacs-lisp/ert-x.el (ert-resource-directory): Be more + resilient -- don't bug out if called from a file that's not + visiting a directory. + +2021-10-27 Jim Porter <jporterbugs@gmail.com> + + Be more efficient when checking for a matching client in server.el + + lisp/server.el (server-handle-delete-frame): Use 'seq-some' to + determine if another frame for the current client exists. + (server-kill-emacs-query-function): Use 'seq-some' to determine if + another live client exists (bug#51420). + +2021-10-27 Lars Ingebrigtsen <larsi@gnus.org> + + Add new function 'string-pixel-width' + + * doc/lispref/display.texi (Size of Displayed Text): Mention it. + * lisp/emacs-lisp/shortdoc.el (string): Mention it. + + * lisp/emacs-lisp/subr-x.el (string-pixel-width): New function. + +2021-10-27 Miha Rihtaršič <miha@kamnitnik.top> + + Allow matching non-.git gitlab and gitea URLs in bug-reference + + * lisp/progmodes/bug-reference.el + (bug-reference--build-forge-setup-entry): Allow matching non-.git + gitlab and gitea URLs, with and without slashes (bug#51316). + +2021-10-27 Lars Ingebrigtsen <larsi@gnus.org> + + Always start the SIGALRM atimers + + * src/atimer.c (init_atimer): Always start the SIGALRM alarms, + even if we're using timerfd (bug#19776). See long, long + discussion in the bug report for why this is necessary. + +2021-10-27 Lars Ingebrigtsen <larsi@gnus.org> + + Redisplay after changing to the hourglass mouse pointer + + * src/xterm.c (x_show_hourglass): Do a redisplay after changing to + the hourglass pointer -- otherwise it won't be displayed until a + keyboard/mouse event arrives (bug#19776). + +2021-10-27 Stefan Kangas <stefan@marxist.se> + + image-dired: Set line-spacing to match horizontal space + + * lisp/image-dired.el (image-dired-thumbnail-mode): Set value of + 'line-spacing' to approximately match horizontal space. This makes + the thumbnail view look better. + +2021-10-27 Stefan Kangas <stefan@marxist.se> + + image-dired: Add support for bookmark.el + + * lisp/image-dired.el (image-dired-thumbnail-mode): Add bookmark.el support. + (bookmark-make-record-default, bookmark-prop-get): Declare. + (image-dired-bookmark-name, image-dired-bookmark-make-record) + (image-dired-bookmark-jump): New defuns. + +2021-10-27 Stefan Kangas <stefan@marxist.se> + + Add test for file-name-base + + * test/lisp/files-tests.el (files-tests-file-name-base): New test. + +2021-10-26 Stefan Kangas <stefan@marxist.se> + + image-dired: Improve mouse behavior + + * lisp/image-dired.el (image-dired-thumbnail-mode-map): Improve mouse + behavior: ignore dragging, as it currently doesn't do anything + useful, and make all clicks just select the thumbnail. + (image-dired-mouse-display-image) + (image-dired-mouse-select-thumbnail): Move point to closest image + after clicking in buffer. + +2021-10-26 Stefan Kangas <stefan@marxist.se> + + image-dired: Don't ding at beginning or end of buffer + + * lisp/image-dired.el + (image-dired--display-thumb-properties-fun): New defun. + (image-dired-forward-image, image-dired-backward-image): Don't ding + when moving past first or last image; instead show a message, wait a + second and then show image properties. + +2021-10-26 Stefan Kangas <stefan@marxist.se> + + image-dired: Add new commands for beginning/end of buffer + + * lisp/image-dired.el (image-dired-beginning-of-buffer) + (image-dired-end-of-buffer): New commands. + (image-dired-thumbnail-mode-map): Bind new beginning of buffer command + to '<' and 'M-<', and end of buffer command to '>' and 'M->'. + +2021-10-26 Stefan Kangas <stefan@marxist.se> + + Add new function image-at-point-p + + * lisp/image.el (image-at-point-p): New defun. + * doc/lispref/display.texi (Showing Images): Document above new defun. + +2021-10-26 Stefan Kangas <stefan@marxist.se> + + image-dired: Use an evenly spaced grid for thumbnails + + * lisp/image-dired.el (image-dired-line-up): Use an evenly spaced + grid for thumbnails, even if image sizes differ. + +2021-10-26 Stefan Kangas <stefan@marxist.se> + + image-dired: Use example.org in examples + + * lisp/image-dired.el (image-dired-gallery-image-root-url) + (image-dired-gallery-thumb-image-root-url): Use example.org to be + RFC 2606 compliant. + +2021-10-26 Stefan Kangas <stefan@marxist.se> + + image-dired: Increase number of asynch thumbnail generation jobs + + * lisp/image-dired.el (image-dired-queue-active-limit): Increase the + number of asynchronous thumbnail generation jobs to a maximum of 4 or + processor count divided by 2. This makes thumbnail generation around + 30 % faster when benchmarking this on my machine (8 cores/4 jobs). + + (image-dired-debug): New defvar. + (image-dired-debug-message): New defun. + + (image-dired--generate-thumbs-start): New defvar. + (image-dired-create-thumb-1, image-dired-display-thumbs): Display time + spent on thumbnail generation if 'image-dired-debug' is non-nil. + +2021-10-26 Alan Mackenzie <acm@muc.de> + + CC Mode: minor amendments more accurately to handle virtual semicolons, etc. + + * lisp/progmodes/cc-engine.el (c-laomib-loop): Check for a virtual semicolon + as well as a ;. + (c-guess-basic-syntax): CASE 5D - Use c-crosses-statement-barrier-p to check + whether we've gone back past a virtual semicolon. + +2021-10-26 Alan Mackenzie <acm@muc.de> + + * lisp/progmodes/cc-engine.el (c-fontify-new-found-type): Declare near BO File + +2021-10-26 Michael Albinus <michael.albinus@gmx.de> + + * test/infra/gitlab-ci.yml (build-image-inotify): Increase timeout. + + (test-native-comp-speed0): Adapt make_params. + +2021-10-26 Mattias Engdegård <mattiase@acm.org> + + * lisp/progmodes/xref.el (xref-pop-marker-stack): Don't obsolete. + +2021-10-25 Mattias Engdegård <mattiase@acm.org> + + Rename `xref-pop-marker-stack` to `xref-go-back` (bug#38797) + + It is the natural name after the addition of `xref-go-forward`. + The old name is retained as an alias. + + * lisp/progmodes/xref.el (xref-pop-marker-stack): Rename. + (xref-go-forward, xref-quit-and-pop-marker-stack) + (xref-find-definitions): + * lisp/menu-bar.el (menu-bar-goto-menu): + * lisp/progmodes/etags.el (find-tag-marker-ring, pop-tag-mark): + * lisp/progmodes/prog-mode.el (prog-context-menu): + * doc/emacs/maintaining.texi (Looking Up Identifiers): + * etc/NEWS: + Use the new name. + +2021-10-25 Eric Abrahamsen <eric@ericabrahamsen.net> + + IMAP search should only use charset utf-8 with multibyte strings + + Background: Exchange servers cannot accept "charset utf-8" search + strings. The code originally set that charset for any server with + literal+ capability, borking all searches on an Exchange server. This + code only sets utf-8 for multibyte search strings in particular, which + would be broken for Exchange anyway. + + * lisp/gnus/gnus-search.el (gnus-search-imap-search-command): Ensure + we're only doing the literal+ dance for multibyte strings (multibyte + strings will have had newlines inserted in an earlier step). + +2021-10-25 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + a2c17e115e (origin/emacs-28) Merge branch 'emacs-28' of git.savannah.... + fde56eeb76 Revert "Fix a typo in emacs-lisp-intro.texi" + 4779d3ba19 * doc/lispref/functions.texi (Mapping Functions): Use #' w... + 85ea3f7f47 Fix issue with interpreting ANSI codes in eshell + 50f9436146 image-dired: Doc fix to better explain thumbnail generation + bb475e10b9 Clarify two image-dired docstrings + f5b4bb4a6f Fix flymake example backend conditions in the manual + 0771d8939a * etc/PROBLEMS: Mention problems with regexp matcher. (Bu... + ee579033b9 * test/lisp/repeat-tests.el: New file. + 7385a7667f * lisp/tab-bar.el (tab-bar-move-repeat-map): Fix alias bin... + 56caf1c9b8 Use restrictive umask when creating image-dired data + 3b5de7f991 ; lisp/transient.el: Revert some misguided stylistic fixes. + +2021-10-25 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 817c929eda Doc fix for concat + 3eca2ad2a1 * lisp/image-dired.el (image-dired-external-viewer): Suppo... + +2021-10-25 Glenn Morris <rgm@gnu.org> + + * doc/misc/cc-mode.texi (Font Locking): Fix menu. + +2021-10-25 Lars Ingebrigtsen <larsi@gnus.org> + + Add the "always" zsh builtin to zsh mode + + * lisp/progmodes/sh-script.el (sh-builtins): Add the "always" zsh + keyword (bug#51387). + +2021-10-25 Mattias Engdegård <mattiase@acm.org> + + Add xref forward history (bug#38797) + + Make it possible to go forward as well as back in the Xref history. + The new `xref-go-forward` is bound to `C-M-,`. + + * lisp/progmodes/etags.el (find-tag-marker-ring-length): Update. + (tags-location-ring-length): New. + (find-tag-marker-ring): Keep as dummy. + (tags-location-ring, tags-reset-tags-tables): + Use `tags-location-ring-length` instead of `xref-marker-ring-length`. + * lisp/progmodes/xref.el (xref-marker-ring-length, xref-marker-ring) + (xref-set-marker-ring-length): + Make obsolete. + (xref--history, xref-go-forward, xref-forward-history-empty-p): New. + (xref-push-marker-stack, xref-pop-marker-stack) + (xref-clear-marker-stack, xref-marker-stack-empty-p): + Use `xref--history`. + * lisp/menu-bar.el (menu-bar-goto-menu): Add Forward entry. + * doc/emacs/maintaining.texi (Looking Up Identifiers): Document. + * etc/NEWS: Announce. + +2021-10-25 Lars Ingebrigtsen <larsi@gnus.org> + + Allow viewing .heic images via image-convert + + * lisp/files.el (auto-mode-alist): Support the Apple .heic/HEIF + image format (bug#51381). + +2021-10-25 Lars Ingebrigtsen <larsi@gnus.org> + + Change the with-delayed-message syntax to allow future extensibility + + * doc/lispref/display.texi (Progress): Document it. + * lisp/subr.el (with-delayed-message): Change the syntax to allow + future extensibility. + + * lisp/net/eww.el (eww-display-html): Use it. + +2021-10-25 Lars Ingebrigtsen <larsi@gnus.org> + + Heed the EMACS_IGNORE_TIMERFD environment variable + + * src/emacs.c (main): Call init_atimer after setting up the + environment so that the EMACS_IGNORE_TIMERFD environment variable + is actually heeded. + +2021-10-25 Martin Rudalics <rudalics@gmx.at> + + Allow 'display-buffer' to set up body size of chosen window (Bug#17065) + + * doc/lispref/windows.texi (Buffer Display Action Alists): + Describe new possible values for 'window-height', 'window-width' + and 'window-size' action alist entries. + * lisp/window.el (window--display-buffer): Handle new values for + 'window-height', 'window-width' and 'window-size' ALIST entries. + (display-buffer): Update doc-string for new values of some + action alist entries. + * etc/NEWS: Mention new values of some action alist entries. + +2021-10-25 Stefan Kangas <stefan@marxist.se> + + New function xdg-state-home + + * lisp/xdg.el (xdg-state-home): New function. This returns + $XDG_STATE_HOME according to the XDG Base Directory Specification + version 0.8 (08th May 2021). + +2021-10-25 Stefan Kangas <stefan@marxist.se> + + image-dired: Improve XDG compliance + + * lisp/image-dired.el (xdg): Require. + (image-dired-main-image-directory): Prefer XDG_PICTURES_HOME. + (image-dired-thumb-name): Simplify by using 'xdg-cache-home'. + +2021-10-25 Stefan Kangas <stefan@marxist.se> + + Double value of image-dired-show-all-from-dir-max-files + + * lisp/image-dired.el (image-dired-show-all-from-dir-max-files): + Double the amount of files in directory before prompting. This could + be even higher, as the thumbnails are generated asynchronously and are + small by default. + +2021-10-24 Stefan Kangas <stefan@marxist.se> + + image-dired: Add support for GraphicsMagick + + * lisp/image-dired.el (image-dired-cmd-create-thumbnail-program) + (image-dired-cmd-create-thumbnail-options) + (image-dired-cmd-create-temp-image-program) + (image-dired-cmd-create-temp-image-options) + (image-dired-cmd-rotate-thumbnail-program) + (image-dired-cmd-rotate-thumbnail-options): Add support for the + GraphicsMagick command line tool ("gm convert", "gm mogrify"). + +2021-10-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix issues with type casting in delayed message functions + + * src/eval.c (with_delayed_message_display) + (with_delayed_message_cancel, Ffuncall_with_delayed_message): Fix + some type confusion. + +2021-10-24 Stefan Kangas <stefan@marxist.se> + + Support new Thumbnail Managing Standard sizes in image-dired + + * lisp/image-dired.el + (image-dired--thumbnail-managing-standard-sizes): New defconst. + (image-dired-thumbnail-storage) + (image-dired-thumb-name, image-dired-insert-thumbnail) + (image-dired-thumb-size, image-dired-create-thumb-1): Support larger + thumbnail sizes mandated by new version of the Thumbnail Managing + Standard (December 2020, Version 0.9.0). + +2021-10-24 Stefan Kangas <stefan@marxist.se> + + Use SHA1 when creating thumbnail file name + + * lisp/image-dired.el (image-dired-thumb-name): Improve docstring. + Use SHA1 for hashing when creating file name. SHA1 is slightly faster + than MD5, and has a few more bits. + +2021-10-24 Lars Ingebrigtsen <larsi@gnus.org> + + Remove debugging in with_delayed_message_display + + * src/eval.c (with_delayed_message_display): Remove debugging. + +2021-10-24 Lars Ingebrigtsen <larsi@gnus.org> + + Display a message if HTML rendering takes a long time + + * lisp/net/eww.el (eww-display-html): Display a message if HTML + rendering takes a long time (bug#19776). + +2021-10-24 Lars Ingebrigtsen <larsi@gnus.org> + + Add new macro `with-delayed-message' + + * doc/lispref/display.texi (Progress): Document it. + * lisp/subr.el (with-delayed-message): New macro. + + * src/eval.c (with_delayed_message_display) + (with_delayed_message_cancel): Helper functions. + (Ffuncall_with_delayed_message): New function (bug#19776). + +2021-10-24 Alan Mackenzie <acm@muc.de> + + CC Mode: Fontify "found types" which are recognized after being first scanned + + This aims to fix the scenario where on jit-lock's first scan of a type, it is + not recognized as such, and only later does this happen. The fontification of + such found types is now done by background scanning in short time slices + immediately after initializing the mode. + + * lisp/progmodes/cc-engine.el (c-add-type-1): New function. + (c-add-type): Extract c-add-type-1 from it, and reformulate the mechanism for + protecting c-found-types from excessive partial identifiers. + + * lisp/progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare): Remove the + code which cleared c-found-types on fontification at BOB. + (c-find-types-background): New function, based on c-font-lock-declarations). + (c-type-finder-timer-func): New function. + (c-re-redisplay-timer): New variable. + (c-force-redisplay, c-fontify-new-found-type): New functions. + + * lisp/progmodes/cc-mode.el (c-type-finder-timer, c-inhibit-type-finder): New + variables. + (c-leave-cc-mode-mode): Nullify c-post-command-hook, c-post-gc-hook, and + c-type-finder-timer when the last CC Mode buffer of a session is killed. + (c-type-finder-pos): New variable. + (c-basic-common-init): Initialize/Install c-post-command, c-c-type-finder-pos, + c-type-finder-timer, and c-post-gc-hook. + (c-new-id-start, c-new-id-end, c-new-id-is-type): New variables. + (c-update-new-id): New function. + (c-post-command): New post command hook function, used for checking moving + away from partially typed identifiers, and making them full identifiers. + (c-post-gc-hook): New hook to prevent CC Mode activity immediately following + GC, thus allowing keyboard/mouse input to be registered. + (c-before-change): Add code to clear c-found-types on a buffer change at BOB. + (c-after-change): Call c-update-new-id to keep track of partially typed + identifiers. + + * doc/misc/cc-mode.texi (Found Types): New @section in the @Chapter Font + Locking. + + * lisp/progmodes/cc-vars.el (c-type-finder-time-slot) + (c-type-finder-repeat-time, c-type-finder-chunk-size): New customizable + options. + +2021-10-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix mouse buttons in dired--make-directory-clickable + + * lisp/dired.el (dired--make-directory-clickable): Adjust mouse + clicks to conform to our standards. + +2021-10-24 Lars Ingebrigtsen <larsi@gnus.org> + + Don't unhide first thread if entering without selecting article + + * lisp/gnus/gnus-sum.el (gnus-summary-first-unread-subject) + (gnus-summary-first-unseen-subject) + (gnus-summary-first-unseen-or-unread-subject): Use it. + (gnus-summary--goto-and-possibly-unhide): New function -- don't + unhide the first thread unless necessary (bug#51344). + +2021-10-24 Sharaf Zaman <shzam@sdf.org> (tiny change) + + Fix a memory leak in pgtk_draw_fringe_bitmap + + * src/pgtkterm.c (pgtk_draw_fringe_bitmap): we had an unbalanced + cairo_save/restore. + +2021-10-24 Stefan Kangas <stefan@marxist.se> + + Improve documentation of image-dired thumbnails + + * lisp/image-dired.el: Fix documentation on thumbnail file format to + correctly say that it can be either PNG or JPEG; not just JPEG. Also + fix inconsistent formatting in comments. + * lisp/image-dired.el (image-dired-thumbnail-storage): Improve + docstring. + +2021-10-24 Stefan Kangas <stefan@marxist.se> + + Add support for pngquant to image-dired + + * lisp/image-dired.el (image-dired-cmd-pngnq-program) + (image-dired-cmd-pngnq-options): Add support for pngquant. + Prefer, in this order: pngquant, pngnq-s9, pngnq-s for reasons of + speed and how actively maintained the projects seem to be. + +2021-10-24 Eli Zaretskii <eliz@gnu.org> + + Fix compilation errors with MinGW64 GCC 11 + + * lib-src/ntlib.c (IS_DIRECTORY_SEP): Remove redundant macro. + + * lib-src/ntlib.c (DEFER_MS_W32_H): + * nt/addpm.c (DEFER_MS_W32_H): + * nt/cmdproxy.c (DEFER_MS_W32_H): + * nt/ddeclient.c (DEFER_MS_W32_H): + * nt/preprep.c (DEFER_MS_W32_H): + * nt/runemacs.c (DEFER_MS_W32_H): Fix a typo. + * nt/Makefile.in (BASE_CFLAGS): Add -I switches to pick up + config.h and lib/attribute.h. + +2021-10-24 Paul Eggert <eggert@cs.ucla.edu> + + Include <config.h> first in MS-Windows source + +2021-10-24 Lars Ingebrigtsen <larsi@gnus.org> + + Fix define-erc-response-handler indentation + + * lisp/erc/erc-backend.el (define-erc-response-handler): Add + proper indentation. + +2021-10-24 Stefan Kangas <stefan@marxist.se> + + Add new option help-link-key-to-documentation + + * lisp/help.el (help-link-key-to-documentation): New user option. + (substitute-command-keys): Add a link from keys to the command they + are bound to, if the above new option is non-nil. (Bug#8951) + * etc/NEWS: Announce the new option. + +2021-10-24 William Xu <william.xwl@gmail.com> + + Make dired directory components clickable + + * lisp/dired.el (dired-readin): Use it. + + * lisp/dired.el (dired-make-directory-clickable): New user option. + + * lisp/dired.el (dired--make-directory-clickable): New function + (bug#21973). + +2021-10-24 Mattias Engdegård <mattiase@acm.org> + + Don't use obsolete variable `find-tag-marker-ring` + + * lisp/progmodes/js.el (js-find-symbol): + * lisp/progmodes/octave.el (octave-find-definition): + Call `xref-push-marker-stack` instead of manipulating the obsolete + variable `find-tag-marker-ring`. + +2021-10-24 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak bug-reference-tests + + * test/lisp/progmodes/bug-reference-tests.el: Tweak tests a bit. + +2021-10-24 Lars Ingebrigtsen <larsi@gnus.org> + + Clean up duplicated setting in scheme-mode-variables + + * lisp/progmodes/scheme.el (scheme-mode-variables): Remove + repeated setting. + +2021-10-24 Lars Ingebrigtsen <larsi@gnus.org> + + Allow matching non-.git URLs in bug-reference + + * lisp/progmodes/bug-reference.el + (bug-reference--build-forge-setup-entry): Allow matching non-.git + URLs, with and without slashes (bug#51316). + +2021-10-24 Stefan Kangas <stefan@marxist.se> + + Don't hard-code image-dired thumbnail type + + * lisp/image-dired.el (image-dired-insert-thumbnail): Detect thumbnail + image type instead of hard-coding it. + +2021-10-24 Stefan Kangas <stefan@marxist.se> + + Expand tests for image-type-from-file-header + + * test/lisp/image-tests.el (image-tests--files): New defconst. + (image-tests--type-from-file-header): New defun. + (image-type-from-file-header-test/jpeg) + (image-type-from-file-header-test/pbm) + (image-type-from-file-header-test/png) + (image-type-from-file-header-test/svg) + (image-type-from-file-header-test/tiff) + (image-type-from-file-header-test/webp) + (image-type-from-file-header-test/xbm) + (image-type-from-file-header-test/xpm): New tests. + (image-type-from-file-header-test): Delete test. + +2021-10-24 Stefan Kangas <stefan@marxist.se> + + Add tests for gif to src/image-tests.el + + * test/src/image-tests.el (image-tests--images): Rename from + image-tests-files. Add gif. + (image-tests-image-size/gif) + (image-tests-image-mask-p/gif) + (image-tests-image-metadata/gif): New tests. + * test/data/image/black.gif: New file. + +2021-10-24 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + c7f53824a8 (origin/emacs-28) Update publicsuffix.txt from upstream + 9a50f760e9 ; * doc/lispref/modes.texi (Hooks): Clarify wording. (Bug... + e154fd9119 Refer to the info node on keymaps in map-keymap docstring + 4fd5c8df67 Clarify abnormal hook documentation + 6fa5206770 Update to Org 9.5-59-g52e6f1 + 39413a45bf ; * doc/lispref/functions.texi (Calling Functions): Fix la... + 43914ab01f Improve documentation of cl-reduce + ef37a86cac Improve documentation of apply-partially + 1e8be48738 Fix typos + 8c5fbd712b Revert commit 225ca617b7, and apply another fix + cdbd03345d Fix documentation of posn-at-x-y + 598732c899 ; * src/vm-limit.c (get_lim_data): Fix a typo. (Bug#18238) + efdffd86c5 ; * etc/refcards/README: Prefer HTTPS in link. + + # Conflicts: + # etc/NEWS + +2021-10-24 Stefan Kangas <stefan@marxist.se> + + Make dired-x-guess-file-name-at-point obsolete + + * lisp/dired-x.el (dired-x-guess-file-name-at-point): Make + obsolete in favor of 'thing-at-point'. + (dired-x-read-filename-at-point): Use 'thing-at-point' instead of + above obsolete function. + +2021-10-23 Michael Albinus <michael.albinus@gmx.de> + + Check for image library in image-dired-tests.el + + * test/lisp/image-dired-tests.el + (image-dired-tests-get-exif-file-name): Check for jpeg library. + +2021-10-23 Dmitry Gutov <dgutov@yandex.ru> + + Support :company-deprecated completion property + + * lisp/progmodes/elisp-mode.el (elisp--company-deprecated): + New function. + (elisp-completion-at-point): Use it. + +2021-10-23 Michael Albinus <michael.albinus@gmx.de> + + * test/infra/gitlab-ci.yml (variables, default): Increase timeout to 4 hours. + +2021-10-23 Alan Mackenzie <acm@muc.de> + + Revert "CC Mode: Fontify "found types" which are recognized after being ..." + + This reverts commit 51719617eb19833056618ebac403cdcaf711551a. The commit + caused a hang at start-up with a big desktop. + +2021-10-23 Stefan Kangas <stefan@marxist.se> + + Partially remove exiftool dependency from image-dired.el + + * lisp/image-dired.el (exif): Require. + (image-dired-cmd-read-exif-data-program) + (image-dired-cmd-read-exif-data-options) + (image-dired-get-exif-data): Make obsolete in favor of using + exif.el. This removes a dependency on external exiftool for some + operations. + (image-dired-get-exif-file-name) + (image-dired-thumbnail-set-image-description): Use exif.el + functions instead of exiftool. + * lisp/image/exif.el (exif-tag-alist): Add description and + copyright fields. + * test/lisp/image-dired-tests.el: New file. + +2021-10-23 Stefan Kangas <stefan@marxist.se> + + Add new function exif-field + + * test/lisp/image/exif-tests.el (exif-elem): Move function from here... + * lisp/image/exif.el (exif-field): ...to here, and rename. + (exif-orientation): + * test/lisp/image/exif-tests.el (test-exif-parse) + (test-exif-parse-short): Use above new function. + +2021-10-22 Stefan Kangas <stefan@marxist.se> + + Add links to commentary reached with finder-list-keywords + + * lisp/finder.el (finder-goto-xref): Move from here... + * lisp/emacs-lisp/package.el (package--finder-goto-xref): ...to + here. Make the old name into an obsolete function alias. + (package--finder-xref): New button type. + (package--describe-add-library-links): Factor out new function... + * lisp/finder.el (finder-commentary): ...from here. + (describe-package-1): Call above new function. This fixes an + issue where commentaries reached via 'finder-list-keywords' did + not have links. (Bug#10814) + +2021-10-22 Stefan Kangas <stefan@marxist.se> + + * src/image.c (webp_load): Fix thinkos. + +2021-10-22 Alan Mackenzie <acm@muc.de> + + CC Mode: Fontify "found types" which are recognized after being first scanned + + This aims to fix the scenario where on jit-lock's first scan of a type, it is + not recognized as such, and only later does this happen. The fontification of + such found types is now done by background scanning in short time slices + immediately after initializing the mode. + + * lisp/progmodes/cc-engine.el (c-add-type-1): New function. + (c-add-type): Extract c-add-type-1 from it, and reformulate the mechanism for + protecting c-found-types from excessive partial identifiers. + + * lisp/progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare): Remove the + code which cleared c-found-types on fontification at BOB. + (c-find-types-background): New function, based on c-font-lock-declarations). + (c-types-finder-timer-func): New function. + (c-re-redisplay-timer): New variable. + (c-force-redisplay, c-fontify-new-found-type): New functions. + + * lisp/progmodes/cc-mode.el (c-type-finder-timer): New variable. + (c-leave-cc-mode-mode): Nullify c-post-command-hook and c-type-finder-timer + when the last CC Mode buffer of a session is killed. + (c-type-finder-pos): New variable. + (c-basic-common-init): Initialize c-type-finder-pos and c-type-finder-timer. + (c-new-id-start, c-new-id-end, c-new-id-is-type): New variables. + (c-update-new-id): New function. + (c-post-command): New post command hook function, used for checking moving + away from partially typed identifiers, and making them full identifiers. + (c-before-change): Add code to clear c-found-types on a buffer change at BOB. + (c-after-change): Call c-update-new-id to keep track of partially typed + identifiers. + + * doc/misc/cc-mode.texi (Found Types): New @section in the @Chapter Font + Locking. + + * lisp/progmodes/cc-vars.el (c-type-finder-time-slot) + (c-type-finder-repeat-time, c-type-finder-chunk-size): New customizable + options. + +2021-10-22 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + b0d64be0bc (origin/emacs-28) Improve some NEWS entries + 7fde84e881 Improve documentation of syntax-ppss-context slightly + 5ecbed01b2 ; * test/lisp/mh-e/mh-utils-tests.el: Update macro declara... + 168665da59 Move some xwidget entries + efde024361 time-stamp-tests: improvements to test macros + 06c944cff1 Fix rfc6068-parse-mailto-url autoload + 9b6b5e37ef Regexp-quote github domains in bug-reference + 1f6cdeb12c Ensure valid end/beginning lines in message-mark-inserted-... + 9b46150ab0 * etc/NEWS: Improve 'repeat-mode' entry. + 9c37b812da ; * lisp/repeat.el (repeat-mode): Fix docstring typo. + caf87d80fa * lisp/repeat.el (repeat-keep-prefix): Expand description. + 24083c8d13 * lisp/net/eww.el (eww-retrieve-command): Add :tag. + cf7d8fb1d7 Add description of cards to etc/refcards/README + d2849cc645 Fix 'calculate-lisp-indent' when "[" starts containing sex... + 2a0a368ddc Fix typo in doc/emacs/anti.texi + 9529e1d2fb Update doc of Edebug specification for macros + 5bc522b4f4 ; * lisp/simple.el (kill-region): A better fix for bug#51320. + ee6bdd6eef Fix non-interactive behavior of 'kill-region' + 2b7655ca0e ; More accurate doc string for 'tab-bar-format' + 2841e26744 * test/lisp/dabbrev-tests.el: Use 'kbd' for readable keys. + 1cdb4d2077 * lisp/menu-bar.el (menu-bar-keymap): Add optional arg KEY... + + # Conflicts: + # etc/NEWS + # lisp/progmodes/bug-reference.el + +2021-10-22 Michael Albinus <michael.albinus@gmx.de> + + Adapt some emba parameters + + * test/infra/Dockerfile.emba (emacs-inotify): Reduce debug options. + + * test/infra/gitlab-ci.yml (test-native-comp-speed0): Adapt make_params. + +2021-10-22 Eli Zaretskii <eliz@gnu.org> + + Fix WebP support on MS-Windows + + * src/image.c (WebPDecodeRGBA, WebPDecodeRGB, WebPFree): Use + correct names and argument lists in DEF_DLL_FN; fix typos. + (WebPGetFeaturesInternal): Load this instead of WebPGetFeatures, + which is a static inline function in webp/decode.h. + (WebPGetFeatures): Redirect to call WebPGetFeaturesInternal. + + * lisp/term/w32-win.el (dynamic-library-alist): Fix the name of + the WebP symbol. + + * configure.ac (HAVE_WEBP): Fix detection of libwebp on MinGW. + + * nt/INSTALL.W64: + * nt/INSTALL: Update information about libwebp availability. + +2021-10-22 Stefan Kangas <stefan@marxist.se> + + Add WebP image format support (Bug#51296) + + * configure.ac (--with-webp): New option. + (HAVE_WEBP): New variable. + (emacs_config_features): Add webp. + * src/image.c (enum webp_keyword_index) [HAVE_WEBP]: New enum. + (webp_format) [HAVE_WEBP]: New variable. + (webp_image_p, init_webp_functions, webp_load) [HAVE_WEBP]: New + functions for WebP support. + (image_types) [HAVE_WEBP]: Define WebP format. + (syms_of_image) <Qwebp> [HAVE_WEBP]: New DEFSYM. Add image type Qwebp. + * src/Makefile.in (LIBIMAGE): Add WEBP_LIBS. + + * lisp/files.el (auto-mode-alist): + * lisp/image-file.el (image-file-name-extensions): + * lisp/image.el (image-type-header-regexps) + (image-type-file-name-regexps, image-type-auto-detectable): Add WebP + support. + * lisp/term/w32-win.el (dynamic-library-alist): Add the libwebp DLL. + + * INSTALL: + * admin/CPP-DEFINES: + * doc/lispref/display.texi (Image Formats, Other Image Types): + * nt/INSTALL: Document WebP support. + + * test/lisp/image-tests.el (image-find-image) + (image-type-from-file-name): Expand tests. + * test/src/image-tests.el (image-tests--files): Add WebP. + (image-tests-image-size/webp, image-tests-image-mask-p/webp) + (image-tests-image-metadata/webp): New tests. + * test/data/image/black.webp: New file. + +2021-10-22 Martin Rudalics <rudalics@gmx.at> + + In 'window-text-pixel-size' use actual mode line heights if wanted (Bug#38181) + + * src/xdisp.c (Fwindow_text_pixel_size): Run display_mode_line + when MODE_LINES wants it to take actual mode line heights into + account (Bug#38181). + +2021-10-21 Stefan Kangas <stefan@marxist.se> + + Remove redundant #' before lambda + + * admin/unidata/unidata-gen.el (unidata-gen-table) + (unidata-gen-table-symbol, unidata-gen-table-integer) + (unidata-gen-table-numeric, unidata-gen-table-word-list) + (unidata-describe-decomposition): + * lisp/apropos.el (apropos-user-option): + * lisp/bookmark.el (bookmark-bmenu-search): + * lisp/composite.el (unicode-category-table): + * lisp/elec-pair.el (electric-pair--balance-info): + * lisp/electric.el (electric-quote-chars): + * lisp/emulation/cua-base.el (cua-rectangle-mark-key): + * lisp/epa-hook.el (epa-file-encrypt-to): + * lisp/faces.el (face-font-selection-order) + (face-font-family-alternatives, face-font-registry-alternatives) + (face-valid-attribute-values, tty-run-terminal-initialization): + * lisp/files.el (recover-file, file-expand-wildcards): + * lisp/frame.el (frames-on-display-list): + * lisp/help-at-pt.el (help-at-pt-display-when-idle): + * lisp/help-fns.el (help-fns--face-attributes): + * lisp/ido.el (ido-mode, ido-unc-hosts): + * lisp/isearch.el (isearch-highlight-regexp) + (isearch-highlight-lines-matching-regexp): + * lisp/language/indian.el (script-regexp-alist): + * lisp/language/lao.el: + * lisp/leim/quail/ipa.el (ipa-x-sampa-prepend-to-keymap-entry): + * lisp/mh-e/mh-folder.el (mh-process-commands): + * lisp/mh-e/mh-mime.el (mh-display-with-external-viewer): + * lisp/ps-mule.el (ps-mule-end-job): + * lisp/ps-print.el (ps-color-scale, ps-background-pages) + (ps-background-text, ps-background-image, ps-background) + (ps-begin-job, ps-print-translation-table): + * lisp/recentf.el (recentf-sort-ascending) + (recentf-sort-descending, recentf-sort-basenames-ascending) + (recentf-sort-basenames-descending) + (recentf-sort-directories-ascending) + (recentf-sort-directories-descending): + * lisp/replace.el (occur-engine-add-prefix): + * lisp/select.el (xselect--encode-string): + * lisp/server.el (server-use-tcp): + * lisp/ses.el (ses-sort-column): + * lisp/sort.el (sort-columns): + * lisp/term/ns-win.el (window-system-initialization): + * lisp/tree-widget.el (tree-widget-image-formats): + * lisp/whitespace.el (whitespace-report-region): Remove redundant #' + before lambda. + +2021-10-21 Stefan Kangas <stefan@marxist.se> + + Add comment on reworking a section in emacs-lisp-intro.texi + + * doc/lispintro/emacs-lisp-intro.texi (Body of mark-whole-buffer): + Add comment about how one could rework this section. + +2021-10-21 Michael Albinus <michael.albinus@gmx.de> + + Configure Emacs on emba with debug options + + * test/infra/Dockerfile.emba (emacs-base): Install gdb. + (emacs-inotify): Configure debug options. + +2021-10-21 Lars Ingebrigtsen <larsi@gnus.org> + + Actually fix the Pango build problem + + * src/gtkutil.c (xg_weight_to_symbol): Don't break the build on + older systems. + +2021-10-21 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 0545c70c16 (origin/emacs-28) ; * src/keyboard.c (readable_events): Ad... + 805ed8d318 Fix todo-mode AOT test failures (bug#51308) + 8f42ff31f6 Fix hi-lock AOT test failures (bug#51308) + 8002fcd4b9 Fix socks test + 4540130312 ; Fix typo + 59df93e2dd * lisp/help.el (help--analyze-key): Add new arg BUFFER (bu... + cb8b12b56d Improve docstrings and NEWS item of 'repeat-mode' + 06fe499614 * lisp/tab-bar.el (tab-bar-menu-bar): New command (bug#512... + 8358da9c4c Display a tab bar item as sunken when appropriate + 29fdc65860 Fix tab bar item highlight when a mouse click is dropped + 7236592668 Refer to mouse-highlight from make-pointer-invisible docst... + cf4394a397 * etc/PROBLEMS: Add hex codepoint for NO-BREAK SPACE + 2d647e88fa Describe how to debug fontconfig issues + c916040921 Adapt Tramp tests + 1bb14f93f1 Convert ANSI color definitions in themes to use faces (e.g... + 8e7cd29712 Revert "Revert back to using ESC as viper-ESC-key again" + 91d71b38a3 Fix inset rectangle corners when sides aren't drawn (bug#5... + 5c1a575ef4 Don't use color escape sequences in vc-git-expanded-log-entry + d7f595cc89 Code cleanup in tramp-tests.el + 548a5db611 ; etc/NEWS fix wording + + # Conflicts: + # etc/NEWS + +2021-10-21 Lars Ingebrigtsen <larsi@gnus.org> + + Fix build on systems with older Pango versions + + * src/gtkutil.c (xg_weight_to_symbol): Don't break the build on + older systems. + +2021-10-21 Lars Ingebrigtsen <larsi@gnus.org> + + Fix bold/black in w32_to_fc_weight + + * src/w32font.c (w32_to_fc_weight): Use symbols. + +2021-10-20 Lars Ingebrigtsen <larsi@gnus.org> + + Add a comment to the Turkish casefiddle test + +2021-10-20 Lars Ingebrigtsen <larsi@gnus.org> + + Support the "medium" font weight + + * lisp/faces.el (set-face-attribute): Mention new font weights in + doc string. + * src/font.c (struct table_entry): Allow more synonyms. + (weight_table): Expand to support separating medium and normal + weights. Also add heavy/ultra-heavy and some other variants. + (font_parse_fcname): Support more names. + + * src/gtkutil.c (xg_weight_to_symbol): Support all the Pango weights. + (xg_style_to_symbol): Make into functions. + (xg_get_font): Adjust. + + * src/w32font.c (w32_to_fc_weight): Use symbols. + + * src/xfaces.c (syms_of_xfaces): Add the new symbols. + +2021-10-20 Stefan Kangas <stefan@marxist.se> + + Add some tests for floatfns.c + + * test/src/floatfns-tests.el (floatfns-tests-cos) + (floatfns-tests-sin, floatfns-tests-tan, floatfns-tests-isnan) + (floatfns-tests-exp, floatfns-tests-expt, floatfns-tests-log) + (floatfns-tests-sqrt, floatfns-tests-abs, floatfns-tests-logb) + (floatfns-tests-ceiling, floatfns-tests-floor) + (floatfns-tests-round, floatfns-tests-truncate) + (floatfns-tests-fceiling, floatfns-tests-ffloor) + (floatfns-tests-fround, floatfns-tests-ftruncate) + (divide-extreme-sign): New tests. + +2021-10-20 Lars Ingebrigtsen <larsi@gnus.org> + + Fix typo in previous smerge-mode-map change + + * lisp/vc/smerge-mode.el (smerge-mode-map): Fix typo (bug#51303). + +2021-10-20 Miha Rihtaršič <miha@kamnitnik.top> + + Avoid excessive specbinding in all-completions + + * src/minibuf.c (match_regexps): + (Ftry_completion): + (Fall_completions): + (Ftest_completion): Use fast_string_match_internal to match against + regexps in completion-regexp-list without having to bind + case-fold-search. + +2021-10-20 Lars Ingebrigtsen <larsi@gnus.org> + + Further fixes for Turkish case changes in unibyte strings + + * src/casefiddle.c (struct casing_context): Add new slot to keep + track of what the previous operation was. + (case_character_impl): Set it. + (do_casify_unibyte_string): Use it to handle Turkish correctly. + +2021-10-20 Lars Ingebrigtsen <larsi@gnus.org> + + Add new macro with-locale-environment + + * lisp/international/mule-cmds.el (with-locale-environment): New macro. + (current-locale-environment): New variable. + +2021-10-19 Stefan Kangas <stefan@marxist.se> + + Add some tests for fns.c + + * test/src/fns-tests.el (fns-tests-identity, fns-tests-random) + (fns-tests-length, fns-tests-safe-length) + (fns-tests-string-bytes): New tests. + +2021-10-19 Stefan Kangas <stefan@marxist.se> + + Remove some XEmacs compat code from custom.el + + * lisp/custom.el (deftheme, custom-declare-theme): Remove XEmacs + compat code. + +2021-10-19 Dmitry Gutov <dgutov@yandex.ru> + + xref.el: Better compatibility with outdated Emacs 28 builds + + * lisp/progmodes/xref.el: + Ensure better compatibility with outdated Emacs 28 builds as well + (like the pgtk branch). Bump the version. + +2021-10-19 Stefan Monnier <monnier@iro.umontreal.ca> + + * doc/lispref/files.texi (File Name Components): Mention GNU "path" convention + +2021-10-19 Lars Ingebrigtsen <larsi@gnus.org> + + Make image-tests work in a no-x build + + * test/src/image-tests.el: Make the tests work in a no-x build + (bug#51291). + +2021-10-19 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak how 'align' and 'align-regexp' align text + + * lisp/align.el (align-rules-list): Change to work without `C-u'. + (align): Doc clarification. + (align-regexp): Ditto, and change default `C-u' regexp from + "\\(\\s-*\\)" to "\\(\\s-*\\)" so that it'll make things columnar + if the user just hits RET through all the defaults. + +2021-10-19 Mattias Engdegård <mattiase@acm.org> + + Improve TCO test coverage + + * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels): + Exercise `cond` in tail position in two different ways. + +2021-10-19 Lars Ingebrigtsen <larsi@gnus.org> + + Make downcasing unibyte strings in Turkish less wrong + + * src/casefiddle.c (ascii_casify_character): New function. + (do_casify_unibyte_string): Use it to make downcasing tr_TR.UTF-8 + "I" less wrong. + (Fdowncase): Mention caveats. + (Fupcase): + (Fcapitalize): + (Fupcase_initials): Refer to details in `downcase'. + (syms_of_casefiddle): Define more symbols. + +2021-10-19 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + d742cc3c20 (origin/emacs-28) ; etc/NEWS: Fix typos + 28db29590f * admin/notes/unicode: Refer to Unicode's emoji-style.txt + 9bd2f59db6 Handle VS-16 correctly for non-emoji codepoints + e55e2d4a11 ; * etc/NEWS: Minor copyedit about 'repeat-mode'. + 380981ddb5 Adjust bug-reference-bug-regexp default values to match on... + c1cf95a0e1 ; * doc/emacs/windows.texi: Doc fix. + 98eb6d783a Fix a typo in emacs-lisp-intro.texi + f5b8f626e3 Fix some Tramp problems + fc988a7113 Adapt Tramp manual + 0c241043a8 Further fixes to Elisp manual + 8e8a920246 * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): ... + 5a3242301d Rename tab-bar-drag-maybe to tab-bar--dragging-in-progress + bb4209a5a5 Fix xref elisp identifier namespace mistake + + # Conflicts: + # etc/NEWS + +2021-10-19 Dmitry Gutov <dgutov@yandex.ru> + + * lisp/progmodes/xref.el: Bump version. + +2021-10-19 Dmitry Gutov <dgutov@yandex.ru> + + Fix Emacs 26 support in xref.el + + * lisp/progmodes/xref.el (xref--defstruct): New macro. + (xref-item, xref-match-item): Use it in definitions. + +2021-10-19 Michael Albinus <michael.albinus@gmx.de> + + * etc/NEWS: Move sql entry up. Fix typos. + +2021-10-19 Michael R. Mauger <michael@mauger.com> + + SQL mode supports sending passwords in process + +2021-10-18 Michael R. Mauger <michael@mauger.com> + + Added sql-add-connection + + * lisp/progmodes/sql.el (sql-add-connection): Added. + +2021-10-18 Lars Ingebrigtsen <larsi@gnus.org> + + Make `lookup-key' understand the new key sequence syntax + + * src/keymap.c (possibly_translate_key_sequence): Factored out + into own function. + (Fdefine_key): + (Flookup_key): Use it. + +2021-10-18 Lars Ingebrigtsen <larsi@gnus.org> + + Error out on invalid `define-keymap' keywords + + * lisp/subr.el (define-keymap--define): Error out on invalid + keywords (bug#51268). + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-define-keymap): Check + keywords at compile time. + * lisp/vc/cvs-status.el (cvs-status-mode-map): Fix keyword. + +2021-10-18 Lars Ingebrigtsen <larsi@gnus.org> + + Fix diff-mode-shared-map + + * lisp/vc/diff-mode.el (diff-mode-shared-map): Fix syntax error in + `defvar-keymap' change. + +2021-10-18 Stefan Kangas <stefan@marxist.se> + + Add tests for image.c + + * test/src/image-tests.el: New file. + +2021-10-18 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + c163fd9260 (origin/emacs-28) Minor fixes for recent changes in ELisp ... + fefada4816 Fix example in calc manual + e74e17c1f0 Rewrites of Elisp manual including tab-bar and tab-line ch... + 3b138917b7 ; * INSTALL: Fix typo. + ce71446585 * lisp/tab-bar.el: Improve docstrings (bug#51247) + ace4ce16a3 * lisp/tab-bar.el (tab-bar-mouse-move-tab): Don't drag tab... + 04716ca48f Add tab-bar-drag-maybe for indication of tab dragging (bug... + 81e3697600 * lisp/tab-bar.el: Add a new tab on [mouse-1] instead of [... + a191d3c725 Add new and fix existing docstrings in tab-bar.el and tab-... + 77dbaedadc Add tab bar support to the nextstep port + 7b6fb486c2 Fix potential buffer overflow (bug#50767) + ed9f5546aa Improve doc strings in tab-line.el + 686a03ee22 More documentation fixes in tab-bar.el + 35920791df Improve doc strings of tab-bar commands + 2d15db6e89 Fix a semantic test on some macOS machines + ac6ac76e3a Update to Org 9.5-57-g9bc3a2 + +2021-10-18 Miha Rihtaršič <miha@kamnitnik.top> + + *-watch-for-password-prompt: Use run-at-time to read password + + * lisp/comint.el (comint-watch-for-password-prompt): + * lisp/eshell/esh-mode.el (eshell-watch-for-password-prompt): + * lisp/term.el (term-watch-for-password-prompt): + Use run-at-time to read a password (bug#51263). + +2021-10-18 Lars Ingebrigtsen <larsi@gnus.org> + + Add some defvar indent tests + + Mention that we now install the pdmp file with a fingerprinted name + + Add indentation rules for DEFUN's def* functions + +2021-10-18 Lars Ingebrigtsen <larsi@gnus.org> + + Update elp-not-profilable + + * lisp/emacs-lisp/elp.el (elp-not-profilable): Update list of + denied functions (bug#40335). + +2021-10-18 Lars Ingebrigtsen <larsi@gnus.org> + + Remove the "def" indentation heuristic + + * lisp/emacs-lisp/lisp-mode.el (lisp-indent-function): Don't + indent function calls with names that that start with "def" + specially (bug#43329). + +2021-10-18 Lars Ingebrigtsen <larsi@gnus.org> + + Fontify :doc keywords as documentation + + * lisp/emacs-lisp/lisp-mode.el (lisp-string-after-doc-keyword-p): + Extend to :doc, too (bug#51230). + +2021-10-18 Daniel Martín <mardani29@yahoo.es> + + New option show-paren-context-when-offscreen + + * lisp/simple.el (blink-paren-open-paren-line-string): Extract + functionality that shows the open paren line in the echo area into its + own function, to reuse it from paren.el. + (blink-matching-open): Use blink-paren-open-paren-line-string. + * lisp/paren.el (show-paren-context-when-offscreen): New option + show-paren-context-when-offscreen. + (show-paren-function): Implement it using + blink-paren-open-paren-line-string. + * lisp/emacs-lisp/eldoc.el (eldoc-display-message-no-interference-p): + Make sure the feature works well with eldoc. + * test/lisp/paren-tests.el (paren-tests-open-paren-line): Test + blink-paren-open-paren-line-string. + * doc/emacs/programs.texi (Matching): Update the documentation. + * etc/NEWS: And announce the new feature. + +2021-10-18 Lars Ingebrigtsen <larsi@gnus.org> + + Fix possible build issue in pcvs.el and diff-mode.el + + * lisp/vc/pcvs.el (easy-mmode): + * lisp/vc/diff-mode.el (easy-mmode): Require. + +2021-10-18 Protesilaos Stavrou <info@protesilaos.com> + Abhiseck Paira <abhiseckpaira@disroot.org> + Protesilaos Stavrou <info@protesilaos.com> + + Add sample user function in eww-auto-rename-buffer + + * eww.el (eww-auto-rename-buffer): Update doc string. + + Fix bug#51176. + +2021-10-18 Lars Ingebrigtsen <larsi@gnus.org> + + Fix build issue with smerge-mode + + * lisp/vc/smerge-mode.el (easy-mmode): Require. + +2021-10-18 Lars Ingebrigtsen <larsi@gnus.org> + + Allow :filter t in make-process to work as with set-process-filter + + * src/process.c (create_process): + (create_pty): + (Fmake_pipe_process): + (Fmake_serial_process): Don't add the read_fd if the filter is t + (which means that we don't accept output from the filter). + +2021-10-18 Lars Ingebrigtsen <larsi@gnus.org> + + Do kbd-valid-p prefix comparisons case-sensitively + + * lisp/subr.el (kbd-valid-p): Compare case-sensitively. + +2021-10-17 Stefan Kangas <stefan@marxist.se> + + Recommend against using uce.el + + * lisp/mail/uce.el (uce-reply-to-uce): Recommend against its use on + the first invocation. (Bug#46472) + +2021-10-17 Stefan Kangas <stefan@marxist.se> + + * lisp/erc/erc-compat.el (format-spec): Remove redundant require. + +2021-10-17 Stefan Kangas <stefan@marxist.se> + + Prefer defvar-local in MH-E + + * lisp/mh-e/mh-comp.el (mh-insert-auto-fields-done-local): + * lisp/mh-e/mh-e.el (mh-thread-scan-line-map) + (mh-thread-scan-line-map-stack): + * lisp/mh-e/mh-identity.el (mh-identity-pgg-default-user-id) + (mh-identity-local): + * lisp/mh-e/mh-scan.el (mh-cmd-note): + * lisp/mh-e/mh-seq.el (mh-non-seq-mode-line-annotation): + * lisp/mh-e/mh-thread.el (mh-thread-id-hash) + (mh-thread-subject-hash, mh-thread-id-table) + (mh-thread-index-id-map, mh-thread-id-index-map) + (mh-thread-subject-container-hash, mh-thread-duplicates) + (mh-thread-history): Prefer defvar-local. + +2021-10-17 Stefan Kangas <stefan@marxist.se> + + Make thumbs-image-type obsolete + + * lisp/thumbs.el (thumbs-image-type): Make into obsolete function + alias for 'image-type-from-file-name'. Update callers. + +2021-10-17 Lars Ingebrigtsen <larsi@gnus.org> + + Use define-keymap in pcvs and pcvs-defs.el + + * lisp/vc/pcvs-defs.el (cvs-mode-diff-map): + * lisp/vc/pcvs.el (pcvs-defs): + (cvs-mode-diff-map): Move maps to pcvs (because the commands are + defined in pcvs.el and #' gives us checking) and transform from + easy-mmode-defmap to define-keymap. + +2021-10-17 Lars Ingebrigtsen <larsi@gnus.org> + + Convert diff-mode.el from easy-mmode-defmap to define-keymap + + * lisp/vc/diff-mode.el (diff-mode-shared-map, diff-mode-map) + (diff-minor-mode-map): Convert from easy-mmode-defmap to + defvar-keymap. + +2021-10-17 Lars Ingebrigtsen <larsi@gnus.org> + + Convert smerge-mode.el from easy-mmode-defmap to define-keymap + + * lisp/vc/smerge-mode.el (smerge-basic-map, smerge-mode-map): + Convert form easy-mmode-defmap to define-keymap. + +2021-10-17 Lars Ingebrigtsen <larsi@gnus.org> + + Add kbd examples to the doc string + + * lisp/subr.el (kbd): Add some examples to the doc string. + +2021-10-17 Lars Ingebrigtsen <larsi@gnus.org> + + Reverse the edmacro-parse-keys/kbd vector/string logic + + * lisp/edmacro.el (edmacro-parse-keys): Convert to a vector if + needed. + * lisp/subr.el (kbd): Remove the NEED-VECTOR parameter. + +2021-10-17 Lars Ingebrigtsen <larsi@gnus.org> + + Allow <mouse-1> in kbd-valid-p + + * lisp/subr.el (kbd-valid-p): Allow (kbd-valid-p "<mouse-1>"). + +2021-10-17 Lars Ingebrigtsen <larsi@gnus.org> + + Reinstate defvar-keymap expansion + + * lisp/emacs-lisp/byte-opt.el + (byte-optimize-define-keymap--define): Make more robust. + +2021-10-17 Lars Ingebrigtsen <larsi@gnus.org> + + Back out `define-keymap' optimization -- it leads to a build error + +2021-10-17 Lars Ingebrigtsen <larsi@gnus.org> + + Convert cvs-status-mode-map to new syntax + + * lisp/vc/cvs-status.el (cvs-status-mode-map): Convert a small + keymap to the new ["..."] syntax. + +2021-10-17 Lars Ingebrigtsen <larsi@gnus.org> + + Support a new ["..."] key binding syntax + + * doc/lispref/keymaps.texi (Key Sequences): + (Changing Key Bindings): Document the various key syntaxes. + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-define-key) + (byte-optimize-define-keymap) + (byte-optimize-define-keymap--define): New functions to check and + expand ["..."] syntax at compile time. + + * src/keymap.c (Fdefine_key): Understand the ["..."] syntax. + (syms_of_keymap): Define `kbd' symbols. + +2021-10-17 Paul Eggert <eggert@cs.ucla.edu> + + Pacify gcc -Wsuggest-attribute=malloc + + Problem found with gcc (Ubuntu 11.2.0-7ubuntu2) 11.2.0 x86-64. + * src/sysstdio.h (emacs_fopen): Mark with ATTRIBUTE_MALLOC. + +2021-10-17 Lars Ingebrigtsen <larsi@gnus.org> + + Rewrite kbd-valid-p to not use seq + + * lisp/subr.el (kbd-valid-p): Rewrite to not use seq. + +2021-10-17 Stefan Kangas <stefan@marxist.se> + + * src/image.c: Fix comment. + +2021-10-17 Eli Zaretskii <eliz@gnu.org> + + Minor stylistic changes in last commit + + * src/xdisp.c (adjust_glyph_width_for_mouse_face): Renamed from + 'get_glyph_pixel_width_delta_for_mouse_face'; all callers + changed. + +2021-10-17 Po Lu <luangruo@yahoo.com> + + Fix minor issues with text display when cursor is in mouse face + + * src/xdisp.c (get_cursor_offset_for_mouse_face): Don't calculate + offsets for the glyph the cursor is on, and move some logic to + get_glyph_pixel_width_delta_for_mouse_face. + (fill_composite_glyph_string) + (fill_gstring_glyph_string) + (fill_glyphless_glyph_string) + (fill_glyph_string) + (fill_image_glyph_string) + (fill_xwidget_glyph_string) + (fill_stretch_glyph_string): Set s->face to mouse face whenever + appropriate. + (get_glyph_pixel_width_delta_for_mouse_face): New function. + (set_glyph_string_background_width): Update background width and + s->width to take into account differing :box properties of the mouse + face, when producing strings for the cursor. + (erase_phys_cursor): Redraw mouse face when erasing a cursor on top of + the mouse face. + * src/xterm.c (x_set_mouse_face_gc): Stop setting s->face when under + mouse face because redisplay now does that for us. + * src/w32term.c (w32_set_mouse_face_gc): Likewise. + +2021-10-17 Lars Ingebrigtsen <larsi@gnus.org> + + Fix up recent kbd simplification + + * lisp/subr.el (kbd): Fix breakage with X-<foo> from previous change. + +2021-10-17 Michael Albinus <michael.albinus@gmx.de> + + Warn about `file-notify-rm-all-watches' side effects + + * doc/lispref/os.texi (File Notifications): Warn about + `file-notify-rm-all-watches' side effects. + +2021-10-16 Stefan Kangas <stefan@marxist.se> + + Simplify condition in kbd + + * lisp/subr.el (kbd): Simplify condition. This was discussed in: + https://lists.gnu.org/r/emacs-devel/2021-10/msg01136.html + +2021-10-16 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + e8488808df Avoid aborts when a thread is signaled while "waiting for ... + 21397cce51 Improve documentation string for 'compilation-error-regexp... + 2971a6890f * lisp/emacs-lisp/comp.el (comp-trampoline-compile): Fix t... + e842d7f29a Fix removal of fringe indication of bookmarks + b5a0eda978 Prefer "graphical displays" to "X terminals" in documentation + 4ad0fc0dd0 Precise documentation of file-notify-add-watch + f5b8df14c6 Fixes to account for windows' tab lines + ced72b6e4c * Fix `native-compile-target-directory' effectiveness on t... + 502788bc3d Add missing single quotes in the Emacs manual + 1af45ad04e ; * lisp/emacs-lisp/comp.el (comp-trampoline-compile): Fix... + 12654b7423 * lisp/menu-bar.el (yank-menu-length): Fix docstring (bug#... + + # Conflicts: + # lisp/gnus/gnus-undo.el + # lisp/menu-bar.el + +2021-10-16 Michael Albinus <michael.albinus@gmx.de> + + Set EMACS_TEST_TIMEOUT for emba + + * test/Makefile.in: Support EMACS_TEST_TIMEOUT environment variable. + + * test/README: Mention EMACS_TEST_TIMEOUT environment variable. + + * test/infra/gitlab-ci.yml (variables): Set default value of + EMACS_TEST_TIMEOUT. + (.job-template): Propagate EMACS_TEST_TIMEOUT and EMACS_TEST_VERBOSE. + (test-all-inotify): Set specific EMACS_TEST_TIMEOUT. + +2021-10-16 Lars Ingebrigtsen <larsi@gnus.org> + + Add new function 'kbd-valid-p' + + * doc/lispref/keymaps.texi (Key Sequences): New function + 'kbd-valid-p'. + + * lisp/subr.el (kbd-valid-p): Document it. + +2021-10-16 Michael Albinus <michael.albinus@gmx.de> + + Fix :version of new faces in term.el + + * lisp/term.el (term-faint, term-italic, term-slow-blink) + (term-fast-blink): Set proper :version. + +2021-10-16 Stefan Kangas <stefan@marxist.se> + + Remove duplicate code in edmacro-parse-keys + + * lisp/subr.el (kbd): Add argument NEED-VECTOR and make it suitable + for calling from 'edmacro-parse-keys'. + * lisp/edmacro.el (edmacro-parse-keys): Replace definition with a + call to 'kbd'. + + This change was discussed in: + https://lists.gnu.org/r/emacs-devel/2021-10/msg00909.html + +2021-10-16 Stefan Kangas <stefan@marxist.se> + + Make kbd usable during bootstrap + + * lisp/subr.el (kbd): Make 'kbd' usable during bootstrap by copying + the definition of 'read-kbd-macro' into it, and adjusting it to no + longer use CL-Lib functions. + + This change was discussed in: + https://lists.gnu.org/r/emacs-devel/2021-10/msg00909.html + +2021-10-16 Michael Albinus <michael.albinus@gmx.de> + + Add command `file-notify-rm-all-watches' + + * doc/lispref/os.texi (File Notifications): + Add `file-notify-rm-all-watches'. + + * etc/NEWS: Mention 'file-notify-rm-all-watches'. Fix typos. + + * lisp/filenotify.el (file-notify-rm-all-watches): New defun. + + * test/lisp/filenotify-tests.el (file-notify--test-cleanup): + Use `file-notify-rm-all-watches'. + (file-notify-test02-rm-watch): Test also `file-notify-rm-all-watches'. + +2021-10-16 Andreas Schwab <schwab@linux-m68k.org> + + * src/emacs.c (standard_args): Sort --fingerprint second. + (bug#51238) + +2021-10-16 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/menu-bar.el (menu-bar-edit-menu): Expose lambdas to the compiler + +2021-10-15 Amin Bandali <bandali@gnu.org> + + Release ERC 5.4.1 + + * doc/misc/erc.texi (ERCVER): Bump to 5.4.1. + * etc/ERC-NEWS: Add entry for 5.4.1 with explanations. + * lisp/erc/erc.el (Version, erc-version): Bump to 5.4.1. + (customize-package-emacs-version-alist): Add entry for 5.4.1. + +2021-10-15 Lars Ingebrigtsen <larsi@gnus.org> + + Convert two `easy-mmode-defmap' usages to `defvar-keymap' + + * lisp/vc/log-edit.el (log-edit-mode-map): + * lisp/vc/cvs-status.el (cvs-status-mode-map): Convert + `easy-mmode-defmap' to `defvar-keymap'. + +2021-10-15 Protesilaos Stavrou <info@protesilaos.com> + Abhiseck Paira <abhiseckpaira@disroot.org> + Protesilaos Stavrou <info@protesilaos.com> + + Add new option to rename eww buffers + + * etc/NEWS: Document the new user options. + + * lisp/net/eww.el (eww-auto-rename-buffer, eww-buffer-name-length): + Add new user options. + (eww--rename-buffer): Introduce new function that performs the + renaming of buffers. + (eww--after-page-change): Add new wrapper function which calls + 'eww-update-header-line-format' and 'eww--rename-buffer'. + (eww, eww-render, eww-tag-title, eww-readable, eww-restore-history): + Include eww--after-page-change. + + Fix bug#51176. + +2021-10-15 Dmitry Gutov <dgutov@yandex.ru> + + Special-case the "Permission denied" messages + + * lisp/progmodes/project.el (project--files-in-directory): + Special-case the "Permission denied" messages, to make sure the + user sees the unreadable directory's name + (https://lists.gnu.org/archive/html/emacs-devel/2021-10/msg01015.html). + +2021-10-15 Mattias Engdegård <mattiase@acm.org> + + Calc: mend math-nth-root-float (bug#51209) + + Reported by Iñaki Cornejo. + + * lisp/calc/calc-math.el (math-nth-root-float): + Fix old refactoring mistake. + * test/lisp/calc/calc-tests.el (calc-nth-root): New test. + +2021-10-15 Michael Albinus <michael.albinus@gmx.de> + + Further gitlab-ci.yml changes + + * test/infra/gitlab-ci.yml (.job-template): Add --timeout. + (.test-template): Adapt artifact paths. + +2021-10-15 Martin Rudalics <rudalics@gmx.at> + + Simplify functions dealing with preserving the size of windows + + * lisp/window.el (window--preservable-size): Remove function. + (window-preserve-size, window-preserved-size) + (window--preserve-size): Simplify. Use 'window-body-height' + etc. instead of 'window--preservable-size'. + +2021-10-14 Amin Bandali <bandali@gnu.org> + + * doc/misc/erc.texi: Add 'ERCVER' and 'ERCDIST'. + + To mention the ERC version in the manual, and to allow for more easily + overriding the distribution description when building for GNU ELPA. + +2021-10-14 Lars Ingebrigtsen <larsi@gnus.org> + + Use `define-keymap' in log-view.el + + * lisp/vc/log-view.el (log-view-mode-map): Convert a + `easy-mmode-defmap' to `define-keymap'. + +2021-10-14 Lars Ingebrigtsen <larsi@gnus.org> + + define-key doc string improvement + + * src/keymap.c (Fdefine_key): Explain what the STRING is used for. + + (local-set-key "\C-c\C-c" + (define-keymap + :name "Zot" + "a" '("foo" . ignore) + "b" '("gazonk" . ignore))) + +2021-10-14 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 9ff6999a06 (origin/emacs-28) Accept process-filter t in Tramp + cf95962092 ; * doc/lispref/processes.texi (Filter Functions): Fix las... + 1ad4ad0c11 Document the t value for set-process-filter in the manual + b014efa1e5 * doc/misc/tramp.texi (Frequently Asked Questions): Add re... + b9b78b2631 Fix Help functions for clicks on tool bar and tab bar + 74deafe921 ; * etc/DEBUG: Add a section about debugging native-compil... + 8153f70b9c In make_lispy_position fix Bug#50993 in rudimentary fashion + 0aa52e94f3 Mark vc-switch-backend as obsolete + 568e479c59 Add missing parentheses in the Emacs manual + 44ce50b0df Improve tooltip of mode-line-position again + 9b1adf8b4f Use browse-url-button-regexp for rcirc-url-regexp + 9ed53b022d * lisp/help.el (help--analyze-key): Avoid mouse-set-point ... + + # Conflicts: + # etc/NEWS + +2021-10-14 Eli Zaretskii <eliz@gnu.org> + + Fix display of cursor in mouse-highlighted face with ':box' + + * src/xdisp.c (erase_phys_cursor, show_mouse_face): Adjust + phys_cursor.x as needed if the cursor is inside mouse-highlight. + (get_cursor_offset_for_mouse_face): New function. + * src/dispnew.c (gui_update_window_end): Set + 'mouse_face_overwritten_p' if the cursor is in mouse-face, to + trigger more thorough redisplay of the cursor. + (Bug#50660) + +2021-10-14 Martin Rudalics <rudalics@gmx.at> + + In 'window--display-buffer' handle nil size values as intended (Bug#51062) + + * lisp/window.el (window--display-buffer): Make sure + that (window-height . nil), (window-width . nil) + and (window-size . nil) action alist entries are processed + as intended. + +2021-10-14 Michael Albinus <michael.albinus@gmx.de> + + Adapt gitlab-ci.yml paths + + * test/infra/gitlab-ci.yml (.job-template): Increase timeout. + (.job-template, .build-template, .test-template) + (.gnustep-template, .filenotify-gio-template) + (.native-comp-template): Adapt paths. + +2021-10-13 Dmitry Gutov <dgutov@yandex.ru> + + Add new argument INCLUDE-ALL to project-find-file + + * lisp/progmodes/project.el (project-find-file): + Add new argument INCLUDE-ALL. Have 'C-u' make it non-nil. + (project-or-external-find-file): Ditto. + (project-find-file-in): Add new argument INCLUDE-ALL. + (https://lists.gnu.org/archive/html/emacs-devel/2021-10/msg00209.html) + +2021-10-13 Stefan Kangas <stefan@marxist.se> + + Double the default value of kill-ring-max + + * lisp/simple.el (kill-ring-max): Double the default to 120. + * lisp/menu-bar.el (yank-menu-length): Doc fix. + (yank-menu-max-items): New variable. + (menu-bar-update-yank-menu): Don't display more than + 'yank-menu-max-items' in the yank menu. + + * doc/emacs/custom.texi (Changing a Variable): + * doc/emacs/killing.texi (Kill Ring): + * doc/lispintro/emacs-lisp-intro.texi (kill-new function): + * doc/lispref/text.texi (Internals of Kill Ring): Doc fix to use + the new value. + +2021-10-13 Stefan Kangas <stefan@marxist.se> + + New tests for kbd and edmacro-parse-keys + + * test/lisp/edmacro-tests.el: New file. + * test/lisp/subr-tests.el (subr-test-kbd): Expand test. + +2021-10-13 Lars Ingebrigtsen <larsi@gnus.org> + + Mark def* macros for indentation + + * lisp/widget.el (define-widget-keywords): + * lisp/vc/pcvs.el (defun-cvs-mode): + * lisp/subr.el (defvar-local): + (defvar-keymap): + * lisp/skeleton.el (define-skeleton): + * lisp/simple.el (define-alternatives): + * lisp/progmodes/gud.el (gdb-script-mode): + * lisp/progmodes/gdb-mi.el (def-gdb-preempt-display-buffer): + (def-gdb-auto-update-trigger): + (def-gdb-auto-update-handler): + (def-gdb-trigger-and-handler): + (def-gdb-thread-buffer-command): + (def-gdb-thread-buffer-simple-command): + (def-gdb-thread-buffer-gud-command): + (def-gdb-set-positive-number): + (def-gdb-memory-format): + (def-gdb-memory-unit): + (def-gdb-memory-show-page): + * lisp/progmodes/compile.el (define-compilation-mode): + * lisp/progmodes/cc-vars.el (defcustom-c-stylevar): + * lisp/obsolete/cl.el (define-setf-expander): + (defsetf): + (define-modify-macro): + * lisp/obsolete/cl-compat.el (defkeyword): + * lisp/net/hmac-def.el (define-hmac-function): + * lisp/international/mule-conf.el (define-iso-single-byte-charset): + * lisp/international/ccl.el (define-ccl-program): + * lisp/image.el (defimage): + * lisp/gnus/gmm-utils.el (defun-gmm): + * lisp/ezimage.el (defezimage): + * lisp/erc/erc.el (define-erc-module): + * lisp/emacs-lisp/shortdoc.el (define-short-documentation-group): + * lisp/emacs-lisp/eieio.el (defclass): + * lisp/emacs-lisp/eieio-compat.el (defgeneric): + (defmethod): + * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): + (define-globalized-minor-mode): + * lisp/emacs-lisp/derived.el (define-derived-mode): + * lisp/emacs-lisp/byte-run.el (defsubst): + (define-obsolete-function-alias): + (define-obsolete-variable-alias): + * lisp/custom.el (defcustom): + (defface): + (defgroup): + (deftheme): + * lisp/cedet/semantic/wisent.el (define-wisent-lexer): + * lisp/cedet/semantic/lex.el (define-lex): + (define-lex-analyzer): + (define-lex-regex-analyzer): + (define-lex-simple-regex-analyzer): + (define-lex-block-analyzer): + (define-lex-keyword-type-analyzer): + (define-lex-sexp-type-analyzer): + (define-lex-regex-type-analyzer): + (define-lex-string-type-analyzer): + (define-lex-block-type-analyzer): + * lisp/cedet/semantic/lex-spp.el + (define-lex-spp-macro-declaration-analyzer): + (define-lex-spp-macro-undeclaration-analyzer): + (define-lex-spp-include-analyzer): + * lisp/cedet/semantic/dep.el + (defcustom-mode-local-semantic-dependency-system-include-path): + * lisp/cedet/semantic/decorate/mode.el + (define-semantic-decoration-style): + * lisp/cedet/mode-local.el (define-child-mode): + (define-overloadable-function): + (define-mode-local-override): + * lisp/calc/calc.el (defcalcmodevar): + (defmath): Explicitly mark all macros that have names that start + with "def" that should indent defunly-like (bug#43329). + +2021-10-13 Lars Ingebrigtsen <larsi@gnus.org> + + Mark all def* functions that should indent as `defun' + + * lisp/abbrev.el (define-abbrev): + (define-abbrev-table): Mark all functions that have names that + start with "def" that should indent according to the current + heuristics (bug#43329). + * lisp/autoinsert.el (define-auto-insert): + + * lisp/button.el (define-button-type): + + * lisp/subr.el (define-key-after): + (define-mail-user-agent): + (define-keymap): + + * lisp/widget.el (define-widget): + + * lisp/emacs-lisp/package.el (define-package): + + * lisp/international/mule-cmds.el (define-char-code-property): + + * lisp/international/mule.el (define-charset): + (define-coding-system): + (define-translation-table): + (define-translation-hash-table): + +2021-10-13 Paul Eggert <eggert@cs.ucla.edu> + + Pacify gcc -Warray-parameter + + * src/pdumper.h: Declare array parameter with the same signature + that the function definition uses. + +2021-10-13 Paul Eggert <eggert@cs.ucla.edu> + + Pacify GCC -Wanalyzer-possible-null-dereference + + This fixes the only remaining GCC diagnostics when emacs-28 is + configured with --enable-gcc-warnings. It does so by adding + ATTRIBUTE_RETURNS_NONNULL so that GCC knows certain functions + return nonnull. It also arranges for three of those functions to + always return nonnull; I thought these functions already were + doing so, but apparently not, and it is conceivable (though I + haven’t checked this) that changing these functions to always + return nonnull even on non-GNU platforms may fix unlikely + portability bugs elsewhere in Emacs. I used GCC 11.2.1 20210728 + (Red Hat 11.2.1-1) on x86-64 when checking the diagnostics. + * configure.ac: Invoke gl_EEMALLOC before gl_INIT, in case + the regex code doesn't invoke gl_EEMALLOC; needed for src/alloc.c’s + use of MALLOC_0_IS_NONNULL. + * src/alloc.c (xmalloc, xzalloc, xrealloc): Don’t worry about the + special case where SIZE == 0, since lmalloc and lrealloc now + return null only on allocation failure. + (lmalloc, lrealloc): Return null only on allocation failure, + instead of having special cases that treat malloc (0) and + realloc (X, 0) as successes even when they return null. + * src/lisp.h: Add ATTRIBUTE_RETURNS_NONNULL to a few functions + that always return nonnull pointers, so that gcc -fanalyzer + does not issue diagnostics like “alloc.c: In function + ‘allocate_vector_block’: alloc.c:2985:15: warning: dereference of + possibly-NULL ‘block’ [CWE-690] [-Wanalyzer-possible-null-dereference]” + as per <https://cwe.mitre.org/data/definitions/690.html>. + +2021-10-13 Paul Eggert <eggert@cs.ucla.edu> + + Merge from origin/emacs-28 + + efb1cd7fa9 ; * etc/charsets/README: Update the format documentation. + cc796b7409 Tramp doc cleanup + a338d46060 Make emacs-lisp-byte-compile-and-load load the .elc file a... + 3eac7dc780 Fix point movement in image-dired + 4e9452a399 Improve shortdoc for vector + f223ac6ef9 Fix test bug when calloc returns null + ebeaa54f19 Pacify GCC 11 -fanalyzer on x86-64 + 56d1f42f30 Improve handling of non-character events in input methods + 3fbe6fd367 ; Fix mistakes in last doc rewording about shorthands + +2021-10-13 Paul Eggert <eggert@cs.ucla.edu> + + Change release branch to emacs-28 + + * admin/notes/git-workflow: + * Makefile.in (PREFERRED_BRANCH): emacs-27 → emacs-28 + +2021-10-13 Lars Ingebrigtsen <larsi@gnus.org> + + Update Emacs requirement after removing compat code + +2021-10-13 Lars Ingebrigtsen <larsi@gnus.org> + + Allow inhibiting `not-unused' warnings + + * lisp/emacs-lisp/bytecomp.el (byte-compile-warning-types): Allow + inhibiting the `not-unused' warning (bug#31641). (There has been + some discussion about removing the `not-unused' warning, but it's + still in there, so making it possible to inhibit it seems like the + right thing to do.) + * lisp/emacs-lisp/cconv.el (cconv--analyze-use): Don't warn about + `not-unused'. + +2021-10-13 Lars Ingebrigtsen <larsi@gnus.org> + + Fix problem with multiline fontification in interactive Python + + * lisp/progmodes/python.el + (python-shell-font-lock-post-command-hook): When doing multi-line + (`C-c SPC') inputs, remove all the preceding lines when doing + fontification (bug#47657). + +2021-10-13 Michael Albinus <michael.albinus@gmx.de> + + Continue to work on emba integration + + * test/infra/Dockerfile.emba: Remove instrumentation. + + * test/infra/gitlab-ci.yml (.job-template): Specify timeout signal. + (.job-template, .test-template): Improve wildcard. + +2021-10-13 Lars Ingebrigtsen <larsi@gnus.org> + + Remove some compat code from python.el + + * lisp/progmodes/python.el + (python-shell-font-lock-post-command-hook): Remove Emacs 24.3 and + earlier compat code. + +2021-10-13 Andreas Schwab <schwab@linux-m68k.org> + + * src/pdumper.h: Include <stdio.h>. + +2021-10-13 Martin Rudalics <rudalics@gmx.at> + + Improve 'display-buffer' 'temp-buffer-resize-mode' cohabitation (Bug#51062) + + * doc/lispref/display.texi (Temporary Displays): Explain how + to override the effect of 'temp-buffer-resize-mode' with a + suitable 'display-buffer' action alist entry. + * doc/lispref/windows.texi (Buffer Display Action Alists): + Mention that an 'inhibit-switch-frame' entry might not work + with every WM. Describe the 'window-size' entry. Describe + how automatic window resizing can be overridden. + * lisp/help.el (resize-temp-buffer-window-inhibit): New variable. + (resize-temp-buffer-window): Handle case where user overrides + automatic resizing. + * lisp/window.el (temp-buffer-window-show): Bind + 'resize-temp-buffer-window-inhibit' to nil around + 'display-buffer'. Do not raise frame automatically to avoid + defeating 'inhibit-switch-frame'. + (window--display-buffer): Set 'resize-temp-buffer-window-inhibit' + to t when the action alist contains a 'window-height', + 'window-width' or 'window-size' entry. Use + 'modify-frame-parameters' instead of 'set-frame-height' and + 'set-frame-width' to avoid that the latter step on each others + toes. + (display-buffer): Fix 'inhibit-switch-frame' part in and add + 'window-size' part to doc-string. + +2021-10-12 Stephen Gildea <stepheng+emacs@gildea.com> + + MH-E: restore message about obsolete key binding + + * lisp/mh-e/mh-show.el: + * lisp/mh-e/mh-folder.el: Restore "obsolete key" message for "J w" that + was lost in the conversion from gnus-define-keys to define-keymap. + +2021-10-12 Basil L. Contovounesios <contovob@tcd.ie> + + Fix byte-compilation warnings in nox builds + + For discussion, see bug#51139. + + * lisp/edmacro.el (edmacro-fix-menu-commands): Load mwheel to pacify + free variable warnings in without-x builds. + + * lisp/mh-e/mh-compat.el: Declare image.el functions that are not + preloaded in without-x builds. + * lisp/mh-e/mh-utils.el (mh--with-image-load-path): New macro. + (mh-logo-display): + * lisp/mh-e/mh-tool-bar.el (mh-tool-bar-folder-buttons-init) + (mh-tool-bar-letter-buttons-init): Use it to pacify byte-compilation + warnings about image.el definitions not preloaded without-x. + +2021-10-12 Eric Abrahamsen <eric@ericabrahamsen.net> + + Clean up nnimap buffers with dead processes + + * lisp/gnus/nnimap.el (nnimap-keepalive): If the keepalive "NOOP" + fails, remove the buffer with the dead process from + `nnimap-process-buffers' and `nnimap-connection-alist'. + (nnimap-find-connection): Do the same here, when the connection can't + be found. + (nnimap-close-server): Remove process buffer from lists when closing + server. + +2021-10-12 Lars Ingebrigtsen <larsi@gnus.org> + + decoded-time-add doc string addition + + * lisp/calendar/time-date.el (decoded-time-add): Add a usage example. + +2021-10-12 Michael Albinus <michael.albinus@gmx.de> + + Adapt emba control files + + * test/infra/Dockerfile.emba: Print core pattern. + + * test/infra/gitlab-ci.yml (.job-template, .test-template): + Improve wildcard. + (.job-template): Add timeout. + +2021-10-12 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 66b8dfd060 (origin/emacs-28) ; Fix last change related to shorthands + 3832b983cf In Fdelete_other_windows_internal fix new total window siz... + 5deb0ec14f * lisp/mh-e/mh-show.el (mh-junk-whitelist): Custom obsoles... + cf1409db71 Don't apply shorthands to punctuation-only symbols (bug#51... + b3d0f53b29 * lisp/progmodes/python.el: Bump package version to 0.28. + +2021-10-12 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 47e09d1855 Copy parent face attributes to tab-line-tab-current instead... + d96f8b22c0 Another fix for 'ibuffer-shrink-to-fit' (Bug#7218, Bug#51029) + +2021-10-12 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 0d374b1b83 Work around GCC bug 102671 + +2021-10-12 Lars Ingebrigtsen <larsi@gnus.org> + + Fix more Gnus group key bindings recently changed + + * lisp/gnus/gnus-group.el (:keymap): Fix some prefix keys that + ended up in the wrong place during the keymap rewrite (bug#51136). + +2021-10-12 Stefan Kangas <stefan@marxist.se> + + Remove more MH-E compat code + + * lisp/mh-e/mh-e.el (mh-strip-package-version, defgroup-mh) + (defcustom-mh, defface-mh): Make Emacs 21 compat aliases obsolete. + Update callers. + + * lisp/mh-e/mh-e.el: + (mh-exchange-point-and-mark-preserving-active-mark) + * lisp/mh-e/mh-folder.el (desktop-buffer-mode-handlers): + * lisp/mh-e/mh-mime.el (mh-mm-inline-media-tests) + (mh-have-file-command, mh-mime-security-button-map): + * lisp/mh-e/mh-show.el (mh-summary-height): + * lisp/mh-e/mh-speed.el (mh-process-kill-without-query): + * lisp/mh-e/mh-xface.el (mh-uncompface-executable) + (mh-face-to-png, mh-uncompface, mh-picon-file-contents): Remove + XEmacs and Emacs 21 and older compat code. + +2021-10-12 Lars Ingebrigtsen <larsi@gnus.org> + + Make dbus work in a dumped Emacs + + * lisp/net/dbus.el (dbus--init): Make into a defun. + (after-pdump-load-hook): Put it onto the new pdump hook so that + it's run after startup (bug#37331). + +2021-10-12 Lars Ingebrigtsen <larsi@gnus.org> + + Add a new after-pdump-load-hook variable + + * doc/lispref/internals.texi (Building Emacs): Document it. + + * lisp/subr.el (after-pdump-load-hook): New variable. + * src/emacs.c (main): Run the new hook. + + * src/pdumper.c (syms_of_pdumper): Define a symbol. + +2021-10-12 Stefan Kangas <stefan@marxist.se> + + Make mh-do-in-gnu-emacs obsolete + + * lisp/mh-e/mh-acros.el (mh-do-in-gnu-emacs): Make obsolete. + * lisp/mh-e/mh-tool-bar.el: Don't use above obsolete macro. + (mh-acros): Require to avoid warnings. + Thanks to Lars Ingebrigtsen <larsi@gnus.org>. + +2021-10-12 Andreas Schwab <schwab@linux-m68k.org> + + Change --fingerprint to output to stdout + + * src/pdumper.c (dump_fingerprint): Add argument OUTPUT, use it + instead of stderr, update all uses. Don't print colon if LABEL is + empty. + * src/pdumper.h (dump_fingerprint): Adjust. + * src/emacs.c (main): Print fingerprint to stdout, without label. + * Makefile.in (EMACS_PDMP): Adjust. + +2021-10-12 Martin Rudalics <rudalics@gmx.at> + + Have 'while-no-input-ignore-events' handle idle timers too (Bug#49997) + + * src/keyboard.c (read_char): Use Vwhile_no_input_ignore_events to + check which idle timers should be resumed (Bug#49997). + (init_while_no_input_ignore_events): New function to + initialize Vwhile_no_input_ignore_events. + (Vwhile_no_input_ignore_events): Say in doc-string that events in + this list do not stop idle timers. + * lisp/subr.el (while-no-input): Remove initialization of + 'while-no-input-ignore-events'; do that in keyboard.c now. + +2021-10-11 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/erc/erc-{replace,imenu,dcc}: Tweak copyright format + + * lisp/erc/erc-replace.el: + * lisp/erc/erc-imenu.el: + * lisp/erc/erc-dcc.el: Massage copyright so elpa-admin.el recognizes it + +2021-10-11 Stefan Kangas <stefan@marxist.se> + + Remove last XEmacs compat code from ERC + + * lisp/erc/erc-dcc.el (erc-dcc-member): Remove XEmacs compat code. + * lisp/erc/erc-goodies.el (erc-move-to-prompt-setup): Doc fix; + remove spurious reference to XEmacs; this is needed also for + Emacs. + +2021-10-11 Stefan Kangas <stefan@marxist.se> + + Prefer setq-local in lisp/mh-e/*.el + + * lisp/mh-e/mh-utils.el (mh-make-local-vars): Make obsolete. + * lisp/mh-e/mh-comp.el (mh-forward): + * lisp/mh-e/mh-folder.el (mh-folder-mode): + * lisp/mh-e/mh-identity.el (mh-identity-handler-signature) + (mh-identity-insert-attribution-verb): + * lisp/mh-e/mh-letter.el (mh-letter-mode): + * lisp/mh-e/mh-search.el (mh-search-folder): + * lisp/mh-e/mh-seq.el (mh-narrow-to-seq, mh-widen): + * lisp/mh-e/mh-show.el (mh-show-mode): + * lisp/mh-e/mh-tool-bar.el (mh-tool-bar-define): + * lisp/mh-e/mh-xface.el (mh-x-image-url-display) + (mh-x-image-url-fetch-image): Prefer setq-local. + +2021-10-11 Stefan Kangas <stefan@marxist.se> + + Remove some more MH-E compat code + + * lisp/mh-e/mh-acros.el (defun-mh, defmacro-mh): Make obsolete. + + * lisp/mh-e/mh-gnus.el (mh-gnus-local-map-property): Make obsolete. + * lisp/mh-e/mh-mime.el (mh-insert-mime-security-button) + (mh-insert-mime-button): Don't use above obsolete function. + + * lisp/mh-e/mh-gnus.el (mh-mm-text-html-renderer): Make obsolete. + * lisp/mh-e/mh-mime.el (mh-mm-inline-media-tests) + (mh-signature-highlight): Remove references to removed Gnus + variable 'mm-inline-text-html-renderer'. + + * lisp/mh-e/mh-letter.el (mh-letter-complete): Make into obsolete + function alias for 'completion-at-point'. Update callers. + + * lisp/mh-e/mh-e.el (mh-inc-spool-list, mh-show-use-xface-flag): + * lisp/mh-e/mh-comp.el (mh-ascii-buffer-p): + * lisp/mh-e/mh-show.el: + * lisp/mh-e/mh-utils.el: Remove some references to XEmacs. + + * lisp/mh-e/mh-comp.el (mh-send-letter): Remove XEmacs and Emacs + compat code. + + * lisp/mh-e/mh-compat.el (mh-display-completion-list): Remove + compat code for Emacs 22 and earlier. + + * lisp/mh-e/mh-e.el (mh-inherit-face-flag) + (mh-min-colors-defined-flag): Make XEmacs and Emacs 21 compat + variables obsolete. + (mh-face-data): Adjust to assume above variables are always t. + + * lisp/mh-e/mh-mime.el (mh-mime-button-map): Remove XEmacs and + Emacs 20 compat code. + + * lisp/mh-e/mh-utils.el (mh-mapc): Make Emacs 20 compat function + into obsolete function alias for mapc. Update callers. + + * lisp/mh-e/mh-xface.el (mh-show-xface-function, mh-show-xface): + Remove Emacs 20 compat code. + +2021-10-11 Stefan Kangas <stefan@marxist.se> + + Remove redundant calls to 'mh-do-in-gnu-emacs' + + * lisp/mh-e/mh-compat.el (mh-require): + * lisp/mh-e/mh-folder.el (mh-folder-mode): + * lisp/mh-e/mh-letter.el (mh-letter-mode): + * lisp/mh-e/mh-mime.el (mh-mime-button-map) + (mh-mime-security-button-map, mh-small-image-p) + (mh-signature-highlight): + * lisp/mh-e/mh-show.el (mh-show-mode): + * lisp/mh-e/mh-tool-bar.el (mh-tool-bar-define): + * lisp/mh-e/mh-utils.el (mh-logo-display) + (mh-hidden-header-keymap): + * lisp/mh-e/mh-xface.el (mh-face-display-function) + (mh-picon-image-types, mh-x-image-display): Remove redundant calls + to 'mh-do-in-gnu-emacs'. + * lisp/mh-e/mh-acros.el (mh-do-in-gnu-emacs): + * lisp/mh-e/mh-tool-bar.el: Add comment explaining an issue that + stops us from making 'mh-do-in-gnu-emacs' obsolete. + +2021-10-11 Glenn Morris <rgm@gnu.org> + + Fix merge error for elisp-mode-tests.el + + * test/lisp/progmodes/elisp-mode-tests.el (test-cl-flet-indentation): + Delete test mistakenly restored by merge conflict. + It seems this was deleted 2021-10-01 with incomplete log message + "Add more indentation tests". + +2021-10-11 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + ac06608878 (origin/emacs-28) Release ERC 5.4 + a1a589d07b * etc/ERC-NEWS: Announce ERC's addition to GNU ELPA. + 6c7947f0a1 * etc/ERC-NEWS: Fix outline level for the recent additions. + c480b68644 Add ERC entries for 'customize-package-emacs-version-alist' + 4afff515c8 Expand the full file name + 36a485a1af Obsolete XEmacs compat convention in 'erc-button-press-but... + +2021-10-11 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 1a1b206a8b Adapt the recent 'num_processors' change to MS-Windows + 7cb4637923 Minor fix to clarify a sentence in emacs-lisp-intro + ab60144ea3 ; Pacify recent shorthand unused lexarg warnings. + e9df86004f Make tty-run-terminal-initialization load the .elc file (i... + 07edc28bdb Fix ert errors when there's a test that binds `debug-on-er... + 96278de8ac New function num-processors + 575e626105 Add symbol property 'save-some-buffers-function' (bug#46374) + a3e10af95c Keep reading when typed RET in read-char-from-minibuffer a... + 013e3be832 * lisp/userlock.el (ask-user-about-supersession-threat): A... + ae61d7a57d Fix point positioning on mouse clicks with non-zero line-h... + 4c7e74c386 Complete shorthands to longhands for symbol-completing tables + c2513c5d0d Add new failing test for bug#51089 + 1d1e96377c ; * lisp/emacs-lisp/shortdoc.el: Fix typo. + 6bf29072e9 Avoid mapping file names through 'substring' + bcce93f04c Update to Org 9.5-46-gb71474 + 5d408f1a24 Expanded testing of MH-E with multiple MH variants + b497add971 Fix Seccomp filter for newer GNU/Linux systems (Bug#51073). + 75d9fbec88 Tramp code cleanup + + # Conflicts: + # etc/NEWS + # test/lisp/progmodes/elisp-mode-tests.el + +2021-10-11 Amin Bandali <bandali@gnu.org> + + Revert "Obsolete XEmacs compat convention in erc-button-press-button" + + This reverts commit f146325bd1556d1acafe26f6c263b83a92d3cd20. + + This should be done in 'emacs-28', which will be merged into 'master'. + +2021-10-11 Stefan Kangas <stefan@marxist.se> + + Fontify "print" and "exec" as functions in python-mode + + * lisp/progmodes/python.el (python-font-lock-keywords-level-2): + Fontify "print" and "exec" as functions, which is the case in + Python 3. (Bug#43298) + +2021-10-11 Lars Ingebrigtsen <larsi@gnus.org> + + Mention --fingerprint in NEWS + +2021-10-11 Glenn Morris <rgm@gnu.org> + + Make the installed pmdp file use a fingerprint + + * Makefile.in (EMACS_PDMP): Use --fingerprint. + + * doc/emacs/cmdargs.texi (Action Arguments): Document --fingerprint. + + * src/emacs.c (load_pdump): Load the fingerprinted version of the + pdmp file (bug#42790). + (main): Support --fingerprint. + + * src/pdumper.c (dump_fingerprint): Make non-static. + + * src/pdumper.h: Declare dump_fingerprint. + +2021-10-11 Lars Ingebrigtsen <larsi@gnus.org> + + Fix menu display of keys when cua-mode is active + + * lisp/menu-bar.el (menu-bar-edit-menu): Make the menus display + the correct keys for editing when cua-mode is active (bug#28930). + +2021-10-11 Lars Ingebrigtsen <larsi@gnus.org> + + Change how cua-mode defined `C-x' and `C-c' + + * lisp/emulation/cua-base.el (cua-cut-handler): + (cua-copy-handler): New aliases (bug#28930). + (cua--init-keymaps): Use them for `C-x' and `C-c' to be able to + distinguish the commands when looking them up in reverse. + +2021-10-11 Lars Ingebrigtsen <larsi@gnus.org> + + Allow :keys in menus to be computed dynamically + + * doc/lispref/keymaps.texi (Extended Menu Items): Document it + (bug#28930). + + * src/keyboard.c (parse_menu_item): Allow :keys to be a function. + +2021-10-11 Lars Ingebrigtsen <larsi@gnus.org> + + Tweak how auto-fill fills after a period + + * lisp/textmodes/fill.el (fill-nobreak-p): Don't break immediately + after a space after a period (bug#17321). + +2021-10-11 Michael Albinus <michael.albinus@gmx.de> + + * doc/misc/tramp.texi (Bug Reports): Describe, how to activate ELPA Tramp. + +2021-10-10 Lars Ingebrigtsen <larsi@gnus.org> + + Fix mairix-el.texi menu + +2021-10-09 Ingo Lohmar <ingo.lohmar@posteo.net> + + Fix workspace/configuration handling when given scopeuri directory + + The path returned by eglot--uri-to-path is mostly used for file paths, + and therefore does not end with a slash. Such a no-trailing-slash path + violates what default-directory demands (per its docstring), which + causes hack-dir-local-variables-non-file-buffer to not find the + appropriate dir-local vars. + +2021-10-09 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 394209c1a0 (origin/emacs-28) ; Fix indentation in etc/NEWS + 81f20e8b89 Fix thinko in ls-lisp--insert-directory + ec9f25bd35 Mention that RET means "yes" in y-or-n-p + 00eb21c897 ; * src/dispextern.h (struct glyph_string): Comment on NCH... + 20eb3644ba Rewrite Antinews for Emacs 28 + 3a9b881603 ; * etc/NEWS: Rearrange the "incompatible changes" sections. + ebb7e26013 ; * etc/NEWS: Fix a typo. + 315fe20086 ; * src/Makefile.in (../native-lisp): Add comment. + 47cbd103f5 * lisp/bindings.el (mode-line-position): Improve tooltip. + 35a752863a * lisp/progmodes/xref.el: Bump the version. + bbcd8cc1a9 Slight simplification + e139dd1b1e Fix doc strings of 2 categories + 59782839cb (xref--collect-matches-1): Remove some intermediate alloca... + 1c7d056f4d ; Fix two typos where em dash was written as en dash + + # Conflicts: + # etc/NEWS + +2021-10-09 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/progmodes/bug-reference.el: Use new `eql` specializer syntax + +2021-10-09 F. Jason Park <jp@neverwas.me> + + Add ERC version to protocol log + + * lisp/erc/erc.el (erc-toggle-debug-irc-protocol): Include the erc + version in the debug logs (bug#51107). + +2021-10-09 Lars Ingebrigtsen <larsi@gnus.org> + + Remove mistaken dired-x entry from previous info-look patch. + +2021-10-09 Lars Ingebrigtsen <larsi@gnus.org> + + Make `C-h S' work on symbols from most of the manuals in Emacs + + * lisp/info-look.el (lambda): Add `C-h S' lookup for all the + "misc" manuals in Emacs (bug#42753). + +2021-10-09 Lars Ingebrigtsen <larsi@gnus.org> + + Add indices to mairix-el + + * doc/misc/mairix-el.texi (Function Index): Add indices. + +2021-10-09 Lars Ingebrigtsen <larsi@gnus.org> + + Simplify `clean-mode' + + * lisp/simple.el (clean-mode): Simplify the property exclusion. + +2021-10-09 Stefan Kangas <stefan@marxist.se> + + Remove duplicate definition of x-display-color-p + + * lisp/emulation/viper-init.el (x-display-color-p): Remove duplicate + definition. This would just overwrite the alias defined in faces.el. + +2021-10-08 Stefan Kangas <stefan@marxist.se> + + Remove some unnecessary calls to mh-funcall-if-exists + + * lisp/mh-e/mh-acros.el (mh-do-at-event-location): + * lisp/mh-e/mh-mime.el (mh-mime-cleanup, mh-display-smileys) + (mh-insert-mime-security-button, mh-insert-mime-button): + * lisp/mh-e/mh-show.el (mh-defun-show-buffer): + * lisp/mh-e/mh-xface.el (mh-x-image-url-fetch-image) + (mh-x-image-display, mh-picon-image-types): Remove unnecessary calls + to mh-funcall-if-exists; these functions always exist as they are + autoloaded. + +2021-10-08 Stefan Kangas <stefan@marxist.se> + + Remove old Gnus compat code from MH-E + + * lisp/mh-e/mh-gnus.el (mh-mm-merge-handles) + (mh-mm-set-handle-multipart-parameter, mh-mm-inline-text-vcard) + (mh-mm-possibly-verify-or-decrypt) + (mh-mm-handle-multipart-ctl-parameter, mh-mm-readable-p) + (mh-mm-long-lines-p, mh-mm-keep-viewer-alive-p) + (mh-mm-destroy-parts, mh-mm-uu-dissect-text-parts) + (mh-mml-minibuffer-read-disposition): Make into obsolete aliases + for functions without the 'mh-' prefix. Update callers. + (mh-gnus-local-map-property): Remove Emacs 20 compat code. + +2021-10-08 Stefan Monnier <monnier@iro.umontreal.ca> + + test/lisp/progmodes/elisp-mode-resources/simple-shorthand-test.el: Lexbind + + Add the usual lexical-binding cookie. + +2021-10-08 Stefan Kangas <stefan@marxist.se> + + Remove XEmacs compat code from lisp/obsolete/*.el + + * lisp/obsolete/crisp.el (crisp-kill-region) + (crisp-region-active): + * lisp/obsolete/eudcb-ph.el (eudc-ph-open-session): + * lisp/obsolete/fast-lock.el (fast-lock-save-faces): + * lisp/obsolete/iswitchb.el (iswitchb-completion-help) + (iswitchb-case): + * lisp/obsolete/otodo-mode.el (todo-mode): + * lisp/obsolete/pgg-parse.el (pgg-parse-armor): + * lisp/obsolete/pgg.el (pgg-verify-region): + * lisp/obsolete/tpu-edt.el (activate-mark-hook, tpu-mark) + (tpu-set-mark, tpu-load-xkeys): + * lisp/obsolete/tpu-mapper.el (tpu-map-key, tpu-mapper): Remove XEmacs + compat code. + +2021-10-08 Stefan Kangas <stefan@marxist.se> + + Remove XEmacs compat code from sql.el + + * lisp/progmodes/sql.el (sql-interactive-mode-map, sql-mode) + (sql-interactive-mode): Remove XEmacs compat code. (Bug#51096) + +2021-10-08 Stefan Kangas <stefan@marxist.se> + + Remove Emacs 20 compat code from sql.el + + * lisp/progmodes/sql.el (sql-input-ring-separator) + (sql-product-font-lock): Remove Emacs 20 compat code. + +2021-10-08 Stefan Kangas <stefan@marxist.se> + + Remove some additional XEmacs compat code from viper + + * lisp/emulation/viper-util.el (viper-memq-char): Make into + obsolete function alias for 'memq'. Update callers. + (viper-char-equal): Make into obsolete function alias for 'eq'. + Update callers. + (viper-color-display-p): Make into obsolete function alias for + 'x-display-color-p'. Update callers. + +2021-10-08 Stefan Kangas <stefan@marxist.se> + + 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. + +2021-10-08 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + af01b674ce (origin/emacs-28) ; Fix spacing in previous commit + 915e044d60 Use the correct label in the warning + 6e83a4100a ; * admin/make-tarball.txt: Should configure --with-native... + 525602d682 ; * etc/TODO (display): Add entry about Default_Ignorables. + 65de510c16 ; Fix 'restore-buffer-modified-p' doc string typo + 9d8202b45e Add Emacs 27 compatibility hack + 89d64fca75 Pacify GCC 10.3 -Wmaybe-uninitialized + bb8ef1aa30 * lisp/tab-bar.el (tab-detach, tab-window-detach): New ali... + 7ae70054aa ; * src/composite.h (LGSTRING_FONT): Add comment about its... + 1af00e67d6 Include the refcards in the release tarball + 3c29fb705c ; * src/Makefile.in (../native-lisp): Make the long recipe... + +2021-10-07 Stefan Kangas <stefan@marxist.se> + + Make mh-* XEmacs compat aliases obsolete + + * lisp/mh-e/mh-acros.el (mh-make-local-hook): Make XEmacs and Emacs 20 + macro obsolete. Update all callers + * lisp/mh-e/mh-compat.el (mh-require): Make XEmacs compat alias + obsolete. Update all callers + (mh-write-file-functions): Make XEmacs compat macro obsolete. Update + all callers + (mh-assoc-string, mh-display-color-cells, mh-face-foreground) + (mh-face-foreground, mh-face-background) + (mh-font-lock-add-keywords, mh-image-load-path-for-library) + (mh-image-search-load-path, mh-line-beginning-position) + (mh-line-end-position, mh-mail-abbrev-make-syntax-table) + (mh-define-obsolete-variable-alias, mh-make-obsolete-variable) + (mh-match-string-no-properties, mh-replace-regexp-in-string) + (mh-test-completion, mh-url-hexify-string, mh-view-mode-enter) + (mh-window-full-height-p): Make XEmacs compat definitions into + obsolete function aliases for the same names but without the "mh-" + prefix. Update all callers. + +2021-10-07 Lars Ingebrigtsen <larsi@gnus.org> + + Update inhibit-changing-match-data obsoletion data + + * lisp/subr.el (inhibit-changing-match-data): Link to + `save-match-data'. + +2021-10-07 Lars Ingebrigtsen <larsi@gnus.org> + + Update Fstring_match calls in comp.c + + * src/comp.c (Fcomp_el_to_eln_rel_filename, file_in_eln_sys_dir): + Update Fstring_match calls. + +2021-10-07 Lars Ingebrigtsen <larsi@gnus.org> + + Make 'inhibit-changing-match-data' obsolete and adjust callers + + * doc/lispref/searching.texi (Regexp Search): + (POSIX Regexps): Document this. + * lisp/subr.el (inhibit-changing-match-data): Make obsolete. + (looking-at-p): Adjust call. + + * lisp/vc/vc-hg.el (vc-hg--raw-dirstate-search): + (vc-hg--ignore-patterns-ignored-p): + (vc-hg--cached-dirstate-search): Don't use + `inhibit-changing-match-data'. + + * src/minibuf.c (Ftry_completion): + (Fall_completions): + (Ftest_completion): Adjust Fstring_match calls. + + * src/search.c (looking_at_1): Pass in modify_data. + (Flooking_at): Add optional inhibit-modify parameter. + (string_match_1): Pass in modify_data. + (Fstring_match): + (Fposix_looking_at, Fposix_string_match): Add optional + inhibit-modify parameter. + +2021-10-07 Lars Ingebrigtsen <larsi@gnus.org> + + Make gnus-define-keys obsolete + + * lisp/gnus/gnus-util.el (gnus-define-keys): + (gnus-define-keys-1): Make obsolete. + +2021-10-07 Lars Ingebrigtsen <larsi@gnus.org> + + Convert mh-e to use define-keymap instead of gnus-define-keys + + * lisp/mh-e/mh-speed.el (mh-folder-speedbar-key-map): + * lisp/mh-e/mh-show.el (mh-show-mode-map): + * lisp/mh-e/mh-search.el (mh-letter): + (mh-search-mode-map): + * lisp/mh-e/mh-letter.el (mh-letter-mode-map): + * lisp/mh-e/mh-folder.el (mh-folder-mode-map): Convert to use + `define-keymap' instead of `gnus-define-keys'. + +2021-10-07 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 7cb98ba057 (origin/emacs-28) ; * src/keyboard.c (make_lispy_position)... + +2021-10-07 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 160e62a23c Improve documentation and customization of 'blink-matching... + 1100fffcd3 * lisp/erc/erc.el: Don't error if 'erc-loaddefs' does not ... + 8865fc02ab Add 'erc-bug' command for reporting ERC bugs + 5afa07919e Add 'erc-version' and use it to display ERC version consis... + bc941846d9 Small tweaks and improvements to etc/ERC-NEWS + 30b5e0a514 Add NEWS items for changes to ERC since 5.3 to etc/ERC-NEWS + f7e6c199bf Clone the frame window configuration in 'clone-frame' + 5f626488d8 * lisp/tool-bar.el (tool-bar-position): Doc fix. + + # Conflicts: + # etc/NEWS + +2021-10-07 Lars Ingebrigtsen <larsi@gnus.org> + + Fix mh-e compilation warning + + * lisp/mh-e/mh-comp.el (mh-compose-and-send-mail): Adjust doc string. + + * lisp/mh-e/mh-identity.el (mh-identity-make-menu): Don't call the + obsolete `mh-identity-add-menu' function (that now does nothing). + +2021-10-07 Stefan Kangas <stefan@marxist.se> + + Revert "Declare compat macro mh-do-in-gnu-emacs obsolete" + + This reverts commit 148b136651413d8eca0f805c786fb04b9c5878b8. + + This commit led to some build failures that I don't yet understand, so + I'm reverting it for now so as not to leave master in a broken state. + +2021-10-07 Stefan Kangas <stefan@marxist.se> + + Delete some XEmacs compat code from mh-e/*.el + + * lisp/mh-e/mh-acros.el (mh-mark-active-p): + * lisp/mh-e/mh-comp.el (mh-insert-x-mailer): + * lisp/mh-e/mh-compat.el (mh-define-obsolete-variable-alias) + (mh-make-obsolete-variable): + * lisp/mh-e/mh-folder.el (mh-folder-mode-map) + (mh-remove-xemacs-horizontal-scrollbar, mh-folder-mode): + * lisp/mh-e/mh-gnus.el (mh-gnus-local-map-property): + * lisp/mh-e/mh-show.el (mh-show-mode): + * lisp/mh-e/mh-utils.el (mh-colors-available-p): + * lisp/mh-e/mh-xface.el (mh-show-xface-function): Delete some + XEmacs compat code. + +2021-10-07 Stefan Kangas <stefan@marxist.se> + + Declare compat macro mh-do-in-gnu-emacs obsolete + + * lisp/mh-e/mh-acros.el (mh-do-in-gnu-emacs): Declare compat macro + obsolete. + * lisp/mh-e/mh-compat.el (mh-require): + * lisp/mh-e/mh-folder.el (mh-folder-mode): + * lisp/mh-e/mh-letter.el (mh-letter-mode): + * lisp/mh-e/mh-mime.el (mh-mime-button-map) + (mh-mime-security-button-map, mh-small-image-p) + (mh-signature-highlight): + * lisp/mh-e/mh-show.el (mh-show-mode): + * lisp/mh-e/mh-tool-bar.el (mh-tool-bar-define): + * lisp/mh-e/mh-utils.el (mh-logo-display) + (mh-hidden-header-keymap): + * lisp/mh-e/mh-xface.el (mh-face-display-function) + (mh-picon-image-types, mh-x-image-display): Don't wrap code in + compat macro 'mh-do-in-gnu-emacs'. + +2021-10-07 Stefan Kangas <stefan@marxist.se> + + Declare compat macro mh-do-in-xemacs obsolete + + * lisp/mh-e/mh-identity.el (mh-identity-add-menu): + * lisp/mh-e/mh-acros.el (mh-do-in-xemacs): Declare obsolete. + * lisp/mh-e/mh-compat.el: + * lisp/mh-e/mh-e.el (mh-xemacs-use-tool-bar-flag): + * lisp/mh-e/mh-folder.el (mh-folder-mode): + * lisp/mh-e/mh-letter.el (mh-letter-mode): + * lisp/mh-e/mh-mime.el (mh-mime-button-map) + (mh-mime-security-button-map, mh-small-image-p) + (mh-signature-highlight): + * lisp/mh-e/mh-search.el (mh-search-mode): + * lisp/mh-e/mh-seq.el: + * lisp/mh-e/mh-show.el (mh-show-mode): + * lisp/mh-e/mh-tool-bar.el (mh-tool-bar-define): + * lisp/mh-e/mh-utils.el (mh-logo-display) + (mh-hidden-header-keymap): + * lisp/mh-e/mh-xface.el (mh-face-display-function) + (mh-picon-image-types, mh-x-image-display): Delete calls to + 'mh-do-in-xemacs'. + +2021-10-07 Lars Ingebrigtsen <larsi@gnus.org> + + Fix syntax error in previous gnus-registry-install-shortcuts change + + * lisp/gnus/gnus-registry.el (gnus-registry-install-shortcuts): + Fix syntax error in previous change. + +2021-10-06 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-handler): Scope + + Fix the scoping of `tramp-archive-enabled`. + +2021-10-06 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 1ccd3eb721 (origin/emacs-28) ; Fix typo in etc/NEWS + 0f28ee94ac * NEWS: Mention rcirc connects to #emacs by default + aacafbe267 Refactor mh-utils-tests macro 'with-mh-test-env' + ead5c5cc51 Avoid using variable before it has been initialized + b2c50d7cf3 Clarify docstring of blink-matching-paren + d2a34cabcf ; Very minor touch-up to a recent change + 36a7ce4393 ; * doc/emacs/trouble.texi (After a Crash): Fix typo. + 1cd1b2835b * doc/misc/gnus.texi (Loose Threads): Use regexp-opt in ex... + 9f041cdfac Bump project.el version + ad2287e659 Retain compatibility with older project.el projects + d86b2e59c7 native-comp-available-p is the definitive test + 1b383ac424 Minor fix of a recently installed documentation change + 4d76765b6c Fix md5 issue in recent Gnulib merge + 18308b739a Tweak recent 'configure' fix + + # Conflicts: + # etc/NEWS + +2021-10-06 Lars Ingebrigtsen <larsi@gnus.org> + + Reparent `gnus-article-mode-map' again + + * lisp/gnus/gnus-art.el (:keymap): Make `button-buffer-map' the + parent of `gnus-article-mode-map' again. + +2021-10-06 Lars Ingebrigtsen <larsi@gnus.org> + + Add new major mode 'clean-mode' + + * doc/lispref/modes.texi (Major Modes): Document it. + + * lisp/simple.el (clean-mode): New major mode. + +2021-10-06 Lars Ingebrigtsen <larsi@gnus.org> + + Add an optional parameter to kill-all-local-variables + + * doc/lispref/variables.texi (Creating Buffer-Local): Document it + (bug#30204). + + * src/buffer.c (Fkill_all_local_variables): Allow killing + permanent local variables, too. + + * src/print.c (temp_output_buffer_setup): + * src/minibuf.c (set_minibuffer_mode): Adjust callers. + +2021-10-06 Michael Albinus <michael.albinus@gmx.de> + + * admin/notes/emba (Emacs jobset): Update. + + * test/infra/gitlab-ci.yml (.test-template): Uncomment + 'allow_failure', it isn't needed anymore. + +2021-10-06 Lars Ingebrigtsen <larsi@gnus.org> + + Make unused macro gnus-local-set-keys obsolete + + * lisp/gnus/gnus-util.el (gnus-local-set-keys): Make obsolete. + +2021-10-06 Lars Ingebrigtsen <larsi@gnus.org> + + Make unused gnus-define-keys-safe macro obsolete + + * lisp/gnus/gnus-util.el (gnus-define-keys-safe): Make obsolete. + +2021-10-06 Lars Ingebrigtsen <larsi@gnus.org> + + Use `define-keymap' in gnus-registry-install-shortcuts + + * lisp/gnus/gnus-registry.el (gnus-registry-install-shortcuts): + Use `define-keymap'. + +2021-10-06 Lars Ingebrigtsen <larsi@gnus.org> + + Make `gnus-define-keymap' obsolete and adjust caller + + * lisp/gnus/gnus-kill.el (gnus-kill-file-mode-map): Use + `define-keymap'. + + * lisp/gnus/gnus-util.el (gnus-define-keymap): Make obsolete. + +2021-10-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix gnus-start.el compilation warning + + * lisp/gnus/gnus-start.el (gnus-save-newsrc-file-last-timestamp): + Move to avoid a compilation warning. + +2021-10-06 Lars Ingebrigtsen <larsi@gnus.org> + + Finish conversion of Gnus from `gnus-define-keys' + + * lisp/gnus/gnus-undo.el (gnus-undo-mode-map): + * lisp/gnus/gnus-salt.el (gnus-pick-mode-map): + (gnus-binary-mode-map): + (gnus-tree-mode-map): + * lisp/gnus/gnus-msg.el (gnus-summary-send-map): + * lisp/gnus/gnus-ml.el (gnus-mailing-list-mode-map): + * lisp/gnus/gnus-icalendar.el (gnus-icalendar-setup): + * lisp/gnus/gnus-art.el (gnus-article-mode-map): + (gnus-article-edit-mode-map): Use `define-keymap' instead of + * `gnus-define-keys'. + +2021-10-06 Lars Ingebrigtsen <larsi@gnus.org> + + Clear gnus-save-newsrc-file-last-timestamp on start and exit + + * lisp/gnus/gnus-start.el (gnus-clear-system): Clear + `gnus-save-newsrc-file-last-timestamp' on start and exit (bug#51053). + +2021-10-06 Arash Esbati <arash@gnu.org> + + Improve finding external documents in reftext + + * lisp/textmodes/reftex-parse.el (reftex-parse-from-file): Extend + regexp in order to support \externalcitedocument macro and a + second optional argument provided by LaTeX package xr-hyper + (bug#51054). + +2021-10-06 Miha Rihtaršič <miha@kamnitnik.top> + + Add tests for incomplete escape sequences in ansi-color-tests + + * test/lisp/ansi-color-tests.el + (ansi-color-tests-equal-props): New function. + (ansi-color-incomplete-sequences-test): New ert test (bug#50806). + +2021-10-06 Miha Rihtaršič <miha@kamnitnik.top> + + Documentation fixes for recent ansi-color additions + + * lisp/ansi-color.el (ansi-color-context-region): Improve formatting. + * lisp/term.el + (term-ansi-face-already-done): + (term-handle-colors-array): + Fix obsoleting version (bug#50806). + +2021-10-06 Yuri D'Elia <wavexx@thregr.org> + + Document the improved scroll-margin behavior + + * etc/NEWS: document the improved `scroll-margin' behavior. + +2021-10-06 Yuri D'Elia <wavexx@thregr.org> + + Perform cleanup on errors in mouse-drag-track + + * lisp/mouse.el (mouse-drag-track): Disable both scroll-margin and + auto-hscroll-mode in mouse-drag-region and do not re-enable them until + dragging is over, making selections work as expected when inside the + margins. + * lisp/mouse.el (mouse-drag-track): Correctly reset original values + changed during execution if errors occur. + +2021-10-06 Yuri D'Elia <wavexx@thregr.org> + + Improve interaction between mouse-drag-region and scroll-margin + + * lisp/mouse.el (mouse-drag-track): Disable both scroll-margin and + auto-hscroll-mode in mouse-drag-region and do not re-enable them until + dragging is over, making selections work as expected when inside the + margins. + +2021-10-06 Lars Ingebrigtsen <larsi@gnus.org> + + Fix up gnus-summary-mode-map after previous change + + * lisp/gnus/gnus-sum.el (:keymap): Fix two sub-maps that were + moved to the wrong place. + +2021-10-05 Lars Ingebrigtsen <larsi@gnus.org> + + Convert more parts of Gnus from `gnus-define-keys' to `define-keymap' + + * lisp/gnus/spam.el (gnus-summary-mode-map): + * lisp/gnus/gnus-topic.el (gnus-topic-mode-map): + * lisp/gnus/gnus-sum.el (gnus-summary-mode-map): + * lisp/gnus/gnus-srvr.el (gnus-server-mode-map): + (gnus-server-mode-map): + (gnus-browse-mode-map): + * lisp/gnus/gnus-score.el (gnus-summary-score-map): + * lisp/gnus/gnus-draft.el (gnus-draft-mode-map): + * lisp/gnus/gnus-agent.el (gnus-agent-group-mode-map): + (gnus-agent-summary-mode-map): + (gnus-agent-server-mode-map): + (gnus-category-mode-map): Convert from `gnus-define-keys' to + `define-keymap'. + + * lisp/gnus/gnus.el: Define more commands. + +2021-10-05 Stefan Kangas <stefan@marxist.se> + + Do interactive mode tagging for proced.el + +2021-10-05 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 63abe976ce (origin/emacs-28) Document minibuffer-default-prompt-forma... + b5afbedc90 Backward compatibility option for 'nobreak-char-display' + ea1b728a06 ; * lisp/dired.el: Fix typo. + 984eafeb98 Unbreak the build after Gnulib update + 5946370cd1 Check, whether an FUSE mount has been broken in Tramp + 90575a6c0c Disable 'nobreak-char-display' in Eldoc buffers + 570e2c9a17 Fix small error in comint-send-input + fd7bb31412 Update documentation of search-whitespace-regexp + 1f4ced47a1 Fix cc-compat.el syntax error + b431f54c1b Mention `seq-uniq' in `delete-dups' documentation + 0a7bab689c ; Minor stylistic fixes found by checkdoc + e2861e2d08 ; * etc/NEWS: Fix typo. + 1a65d49931 Port recent Gnulib changes to MS-Windows + 68a256c892 Update from Gnulib + 63cb65dcce * Fix mh tests for native comp builds (bug#50975) + e606cc6f40 * Fix `batch-native-compile' not to spawn a subprocess + 894dfe70da Fix native-compilation build from tarball on Cygwin + 2ce5e08058 Remove U+FE0F from script-representative-chars + + # Conflicts: + # etc/NEWS + +2021-10-05 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 13f459b3ac ; Describe PROBLEMS with Unicode display on some TTYs + 7a98a62079 * test/README: Mention :nativecomp tag. + +2021-10-05 Basil L. Contovounesios <contovob@tcd.ie> + + Fix recent "erts files" additions in ERT manual + + * doc/misc/ert.texi (erts files): Indent examples with spaces rather + than tabs, since Texinfo treats tab characters as a single space; + see (info "(texinfo) @example"). Fix typos/thinkos. + +2021-10-05 Stefan Kangas <stefan@marxist.se> + + Make 'mapconcat' argument 'separator' optional + + * src/fns.c (Fmapconcat): Make third 'separator' argument + optional. (Bug#50965) + * doc/lispref/functions.texi (Mapping Functions): Update + documentation for above change. + * test/src/fns-tests.el (fns-tests-mapconcat): New test. + + * doc/misc/cl.texi (Obsolete Setf Customization): Don't use third + mapconcat argument in example. + * lisp/emacs-lisp/subr-x.el (string-join): Doc fix. + +2021-10-05 Stefan Kangas <stefan@marxist.se> + + Make two old function aliases obsolete + + * lisp/textmodes/bibtex.el (bibtex-find-crossref) + (bibtex-find-entry): Make function aliases obsolete. These were left + behind when renaming functions, but never declared obsolete. + +2021-10-05 Stefan Kangas <stefan@marxist.se> + + Set advertised calling convention on make-face-* functions + + * lisp/faces.el (make-face-bold, make-face-unbold) + (make-face-italic, make-face-unitalic, make-face-bold-italic): + Use `advertised-calling-convention` to avoid promoting the third + _noerror argument; it has been ignored since 1999. + +2021-10-05 Lars Ingebrigtsen <larsi@gnus.org> + + Change the call convention for `defvar-keymap' + + * doc/lispref/keymaps.texi (Changing Key Bindings): Adjust + documentation. + + * lisp/simple.el (special-mode-map): + * lisp/net/shr.el (shr-map): + * lisp/net/eww.el (eww-link-keymap): + (eww-mode-map): + (eww-submit-map): + (eww-textarea-map): + (eww-bookmark-mode-map): + (eww-history-mode-map): + (eww-buffers-mode-map): + * lisp/gnus/message.el (message-mode-map): + * lisp/gnus/gnus-html.el (gnus-html-image-map): + * lisp/gnus/gnus-eform.el (gnus-edit-form-mode-map): + * lisp/gnus/gnus-dired.el (gnus-dired-mode-map): + * lisp/gnus/gnus-bookmark.el (gnus-bookmark-bmenu-mode-map): + Adjust usage of `defvar-keymap'. + + * lisp/subr.el (define-keymap, define-keymap--define): Change how + these functions call each other. + (defvar-keymap): Change interface to be more like `define-keymap'. + + * lisp/emacs-lisp/lisp-mode.el (lisp-indent--defvar-keymap): Remove. + (lisp-indent-function): Don't use it. + +2021-10-05 Daniel Martín <mardani29@yahoo.es> + + Update documentation about how M-x completes obsolete commands + + * doc/emacs/m-x.texi (M-x): Mention that Emacs offers completion for + commands marked obsolete in the current version of Emacs (bug#51017). + +2021-10-05 Miha Rihtaršič <miha@kamnitnik.top> + + In term-mode, handle ANSI codes, specifying italic and other modes + + * etc/e/eterm-color.ti: Add new capabilities + * lisp/term.el: New faces and variables to support new ANSI modes. + (term-termcap-format): Add new capabilities + (term-emulate-terminal): When saving cursor, additionally save the new + variables. + (term--handle-colors-list): Handle ANSI codes, specifying italic other + modes. + * test/lisp/term-tests.el (ansi-test-strings): Adjust tests. + +2021-10-05 Miha Rihtaršič <miha@kamnitnik.top> + + Add support for 256-color and 24bit ANSI colors in term-mode + + (term-ansi-face-already-done): Make obsolete + (term--maybe-brighten-color): Remove + (term--color-as-hex): New function + (term-handle-colors-array): Make obsolete in favor of the new + function 'term--handle-colors-list'. + (term--handle-colors-list): New function, that can also handle ANSI + codes 38 and 48. + (term-handle-ansi-escape): Use it + + * test/lisp/term-tests.el (ansi-test-strings): Add tests for 256-color + and 24bit ANSI colors + +2021-10-05 Miha Rihtaršič <miha@kamnitnik.top> + + Add support for 256-color and 24bit ANSI colors in ansi-color + + * lisp/ansi-color.el (ansi-color--code-as-hex): New function to + convert from 256-color and 24-bit ANSI codes. + (ansi-color--face-vec-face): Add support for ANSI color codes greater + than 16 + (ansi-color--update-face-vec): Add support for ANSI codes 38 and 48 + which can specify 256-color and 24bit ANSI colors. + + * test/lisp/ansi-color-tests.el (ansi-color-tests--strings): Add tests + for ANSI codes 38 and 34 + +2021-10-05 Miha Rihtaršič <miha@kamnitnik.top> + + Optimize ansi-color.el + + (ansi-color-context-region): + (ansi-color-context): Adjust doc string to the new format of + ansi-color context. + + (ansi-color--find-face): Rename to ansi-color--face-vec-face + (ansi-color--face-vec-face): Adjust to the new format ansi-color + context. + + (ansi-color-filter-apply): + (ansi-color-apply): + (ansi-color-filter-region): + (ansi-color-apply-on-region): Adjust to the new format of ansi-color + context in order to speed these functions up. + + (ansi-color-apply-sequence): Make it obsolete. + (ansi-color--update-face-vec): New function to handle the new format + of ansi-color context. + + (ansi-color-get-face-1): Make obsolete as this function isn't used any + more (bug#50806). + +2021-10-05 Lars Ingebrigtsen <larsi@gnus.org> + + Make `memory-report-object-size' work standalone + + * lisp/emacs-lisp/memory-report.el (memory-report--type-size): + Default to nil so that the test in `memory-report-object-size' works. + (memory-report--set-size): Initialize + memory-report-object-size. + +2021-10-04 Stefan Kangas <stefan@marxist.se> + + Use format-prompt for many more prompts + + * lisp/bookmark.el (bookmark-completing-read): + * lisp/calc/calc-prog.el (calc-user-define-formula): + * lisp/calc/calc-store.el (calc-permanent-variable): + * lisp/calc/calc-units.el (calc-convert-units) + (calc-convert-exact-units, calc-convert-temperature): + * lisp/cedet/semantic/complete.el + (semantic-complete-read-tag-engine): + * lisp/cus-edit.el (customize-read-group): + * lisp/dired-aux.el (dired-do-chxxx): + * lisp/dired-x.el (dired-mark-unmarked-files): + * lisp/emacs-lisp/debug.el (cancel-debug-on-entry) + (cancel-debug-on-variable-change): + * lisp/emacs-lisp/edebug.el (edebug-cancel-on-entry) + (edebug-remove-instrumentation): + * lisp/epa.el (epa-read-file-name, epa-export-keys): + * lisp/faces.el (read-face-name): + * lisp/format.el (format-decode-buffer, format-decode-region): + * lisp/gnus/gnus-art.el (gnus-read-save-file-name): + * lisp/gnus/gnus-util.el (gnus-completing-read): + * lisp/gnus/message.el (message-check-news-header-syntax): + * lisp/info.el (Info-follow-reference): + * lisp/international/mule-diag.el (describe-font) + (describe-fontset): + * lisp/international/quail.el (quail-show-keyboard-layout): + * lisp/language/cyril-util.el + (standard-display-cyrillic-translit): + * lisp/mail/rmailkwd.el (rmail-read-label): + * lisp/mail/rmailmm.el (rmail-mime-save): + * lisp/mail/rmailout.el (rmail-output-read-file-name): + * lisp/man.el (Man-goto-section, Man-follow-manual-reference): + * lisp/menu-bar.el (emacs-index--prompt): + * lisp/net/ange-ftp.el (ange-ftp-get-passwd): + * lisp/proced.el (proced-send-signal): + * lisp/progmodes/cpp.el (cpp-choose-face): + * lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation): + * lisp/progmodes/etags.el (visit-tags-table) + (visit-tags-table-buffer): + * lisp/progmodes/grep.el (grep-read-files): + * lisp/progmodes/hideif.el (hide-ifdef-define): + * lisp/progmodes/pascal.el (pascal-goto-defun): + * lisp/progmodes/prolog.el (prolog-read-predicate): + * lisp/progmodes/sql.el (sql-get-login-ext): + * lisp/ses.el (ses-define-local-printer): + * lisp/textmodes/artist.el (artist-figlet-choose-font): + * lisp/textmodes/tex-mode.el (tex-compile): + * lisp/vc/diff.el (diff): + * lisp/vc/ediff-ptch.el (ediff-prompt-for-patch-file): + * lisp/vc/ediff-util.el (ediff-read-file-name): + * lisp/vc/pcvs.el (cvs-mode-mark-on-state): + * lisp/vc/vc.el (vc-diff-build-argument-list-internal) + (vc-revision-other-window, vc-retrieve-tag): + * lisp/wid-edit.el: Prefer format-prompt unconditionally. + + * lisp/org/org-capture.el (org-capture-fill-template): + * lisp/org/org-refile.el (org-refile-get-location): + * lisp/progmodes/python.el (python-eldoc-at-point): + * lisp/progmodes/verilog-mode.el (verilog-surelint-off) + (verilog-goto-defun): + * lisp/progmodes/xref.el (xref--read-identifier): Prefer format-prompt + when it is fboundp. + +2021-10-04 Lars Ingebrigtsen <larsi@gnus.org> + + Fix syntax error in define-keymap doc string + + * lisp/subr.el (define-keymap): Fix syntax error in (fn. + +2021-10-04 Robert Pluim <rpluim@gmail.com> + + Fix problem with 'vertical-motion' and emoji + + * src/font.c (font_range): Pass correct position to + font_for_char (Bug#51012). + +2021-10-04 Mattias Engdegård <mattiase@acm.org> + + Run ERT tests with `lexical-binding` bound to `t` + + * lisp/emacs-lisp/ert.el (ert-deftest, ert--run-test-internal): + Use t rather than the ambient file value for `lexical-binding` to + avoid bad lexbind coverage by mistake. + +2021-10-04 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 95a0227ff7 (origin/emacs-28) Avoid exiting when outputting error mess... + b7ae0232be ; * src/Makefile.in (../native-lisp): More tweaks of the r... + 6e79f8a444 Remove implemented emoji items + 00bcba5125 project.el NEWS tagging + 704a39f508 thing-at-mouse NEWS tagging + 3a9d5f04fb Mention ffap-file-name-with-spaces in the ffap doc strin + + # Conflicts: + # etc/NEWS + +2021-10-04 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 3b8dda6c90 Add safety check in x_menu_show + e1fb731393 Tweak x_connection_closed when I/O error + 595e506c82 * lisp/erc/erc.el (erc-user-mode): Set "+i" by default. + d00f3d4c05 Port unused decls to C2x + 317eb2d5b5 Improve structure of TODO + c0793cd9de Don't use some obsolete names in documentation + 87153cc915 Tweak x_hide_tip for consistency + 7e871dcd27 Remove encode_terminal_code UNINITs + 2a00634880 Port pdumper.c maybe_unused to C2x + 6d9b3c0eaa Port systhreads.h to C2x + fd274d7d24 Pacify -Wanalyzer-null-argument in lisp_malloc + cc3fc94f09 Pacify gcc 11.2.1 -Wanalyzer-null-argument + d3a832a61a Simplify hack-read-symbol-shorthands again (bug#50946) + 4831426158 Fix recipe for 'native-lisp' directory + 0bb42ef803 ; * lisp/time-stamp.el (time-stamp-format): Doc string. + 732c70a0d9 Simplify socket symlink-attack checking + fc32a3bd95 ; * doc/lispref/files.texi (Reading from Files): Fix wording. + 3cc77aa976 Clarify (elisp) insert-file-contents with BEG or END not o... + 5deeb0947d * src/Makefile.in: Simplify conditionals. + 121a5abeae Move context-menu selection items Defun/List/Symbol to pro... + 0c341e6e84 * lisp/tab-bar.el (tab-bar-detach-tab): Handle frame selec... + 931a7276c0 * lisp/tab-line.el (tab-line-format): Add face-modified to... + 3863919a00 Fix unmounting in Tramp + 7a6d34cd1f * etc/themes/light-blue-theme.el: Add "Maintainer: emacs-d... + c1b1e1f545 Define HAVE_NATIVE_COMP in src/Makefile.in + 137fa2d716 Rename elisp-shorthands to read-symbol-shorthands + e6fbc45b7b Font-lock shorthands in elisp-mode for quick visual recogn... + 17e6f3bee5 ; Fix last change in tramp-sshfs.el + 3dae1e33d1 Suppress superfluous error messages in Tramp + b228ec9fab Fix reading the tail of a file in shorthands.el + 7fb2789509 Fix substitution of pretty quotes in code in easy-mmode + b47d7ce1b8 Fix agent directory deletion + b1a8a66fb0 ; * etc/TODO: Fix previous commit; delete the right thing. + 6c01a21365 Clarify the purpose of internal--format-docstring-line + 55dadbc57e * lisp/net/dictionary.el (context-menu-dictionary): Move m... + bb209cd5ab Update to Org 9.5-30-g10dc9d + 4341e79a5f Remove bogus ":safe t" custom properties + b6f6b593c6 Fix 'apropos-compact-layout' + 62d6cecfcd Remove bogus ":safe nil" custom properties + f9111d8784 The safe-local-variable property is a function (bug#50944) + 3dc094abee ; Some minor tweaks to TODO + a5b4356d37 Revert "; * etc/TODO: Move elpa.gnu.org items to the end." + 7bc0cee115 Revert "* etc/TODO: Rearrange to start with "Simple tasks"." + 3489471417 Fix selection of fonts for Arabic on Posix platforms + 13e5943386 ; Fix a typo in a doc string + bd60fca2fa Fix ox-koma-letter compilation warnings + 340e527bed Preload paren.el + a9052248da Improve documentation of 'shift-select-mode' + d505971894 ; Standardize some license headers + 9307889d68 Simplify shorthand injection (bug#50946) + 5c77cc9584 ; * admin/release-branch.txt: Tweak previous. + + # Conflicts: + # etc/NEWS + # test/lisp/subr-tests.el + +2021-10-04 Eli Zaretskii <eliz@gnu.org> + + Revert "Fix problem with outputting error messages while dumping Emacs" + + This reverts commit 1428962590e216163f079ff838f39667383aec56. + A better fix was committed to the emacs-28 branch and will be + merged to master. + +2021-10-04 Lars Ingebrigtsen <larsi@gnus.org> + + Remove :copy from define-keymap + + * doc/lispref/keymaps.texi (Changing Key Bindings): Update + documentation. + + * lisp/subr.el (define-keymap): + (define-keymap--define): Remove :copy from the signature. + + * lisp/net/eww.el (eww-link-keymap): Use :parent. + +2021-10-04 Lars Ingebrigtsen <larsi@gnus.org> + + Fix gnus-group-mode-map breakage from previous patch + + * lisp/gnus/gnus-group.el (:keymap): Restore gnus-group-list-map + key strokes to the correct location. + +2021-10-04 Lars Ingebrigtsen <larsi@gnus.org> + + Document with-memoization + + * doc/misc/cl.texi (Modify Macros): Document with-memoization. + +2021-10-04 Lars Ingebrigtsen <larsi@gnus.org> + + Add new command 'ensure-empty-lines'. + + * doc/lispref/text.texi (Commands for Insertion): Document it. + + * lisp/emacs-lisp/subr-x.el (ensure-empty-lines): New command. + +2021-10-04 Michael Albinus <michael.albinus@gmx.de> + + * test/infra/gitlab-ci.yml (test-native-comp-speed0): Fix thinko. + +2021-10-04 Lars Ingebrigtsen <larsi@gnus.org> + + Add new user option 'translate-upper-case-key-bindings' + + * doc/lispref/commands.texi (Key Sequence Input): Document it. + + * lisp/cus-start.el (standard): defcustom it. + + * src/keyboard.c (read_key_sequence): Use it. + (syms_of_keyboard): New variable 'translate-upper-case-key-bindings'. + +2021-10-04 Lars Ingebrigtsen <larsi@gnus.org> + + Remove MozRepl stuff from js.el + + * lisp/progmodes/js.el: Remove all the mozrepl stuff from js.el + (bug#40771). + +2021-10-04 Carlos Pita <carlosjosepita@gmail.com> + + Avoid a warning in python-eldoc-setup-code + + * lisp/progmodes/python.el (python-eldoc-setup-code): Avoid a + deprecation warning about formatargspec (bug#50996). + +2021-10-04 Gregory Heytings <gregory@heytings.org> + + Fix problem with outputting error messages while dumping Emacs + + * src/print.c (print_error_message): Don't call + substitute-command-keys while bootstrapping. + +2021-10-04 Lars Ingebrigtsen <larsi@gnus.org> + + Allow computing :doc-spec info-look elements at run time + + * lisp/info-look.el (info-lookup--expand-info): New function. + (:mode, info-lookup-add-help): Adjust doc string. + (info-lookup-add-help*): Allow adding a dynamic expansion. + (info-lookup): Expand. + (:mode): Use a dynamic expansion for Python to postpone the lookup. + (info-complete): Expand. + +2021-10-04 Lars Ingebrigtsen <larsi@gnus.org> + + Update NEWS for 'define-keymap' + +2021-10-04 Lars Ingebrigtsen <larsi@gnus.org> + + Convert some keymaps to defvar-keymap + + * lisp/simple.el (special-mode-map): + * lisp/net/shr.el (shr-map): + * lisp/net/eww.el (eww-link-keymap): + (eww-mode-map): + (eww-submit-map): + (eww-bookmark-mode-map): + (eww-history-mode-map): + (eww-buffers-mode-map): + * lisp/gnus/message.el (message-mode-map): Use defvar-keymap. + + * lisp/gnus/gnus-eform.el (gnus-edit-form-mode-map): + * lisp/gnus/gnus-dired.el (gnus-dired-mode-map): + * lisp/gnus/gnus-bookmark.el (gnus-bookmark-bmenu-mode-map): Use + defvar-keymap. + + * lisp/gnus/gnus-group.el (gnus-group-mode-map): Use define-keymap. + + * lisp/gnus/gnus-html.el (gnus-html-image-map): Use defvar-keymap. + + * lisp/gnus/gnus.el: Autoload gnus-score-edit-all-score. + +2021-10-04 Lars Ingebrigtsen <larsi@gnus.org> + + Add 'define-keymap' and 'defvar-keymap' + + * doc/lispref/keymaps.texi (Changing Key Bindings): Document + define-keymap and defvar-keymap. + + * lisp/subr.el (define-keymap): New function. + (define-keymap--define): New function. + (defvar-keymap): New macro. + + * lisp/emacs-lisp/lisp-mode.el (lisp-indent--defvar-keymap): New + function. + (lisp-indent-function): Use it to indent defvar-keymap. + +2021-10-03 Michael Albinus <michael.albinus@gmx.de> + + * test/infra/gitlab-ci.yml (.native-comp-template): Revert change. + +2021-10-03 Michael Albinus <michael.albinus@gmx.de> + + Improve native compilation on emba + + * test/infra/Dockerfile.emba (emacs-native-comp) + (emacs-native-comp-speed1, emacs-native-comp-speed2): New stages. + (emacs-native-comp-speed0): Adapt. + + * test/infra/gitlab-ci.yml (.build-template): Add 'needs: []'. + (.native-comp-template): Use 'only:' instead of 'rules:'. + (build-native-comp-speed0): Rename from 'build-native-bootstrap-speed0'. + (build-native-comp-speed1, build-native-comp-speed2) + (test-native-comp-speed0): New jobs. + +2021-10-03 Lars Ingebrigtsen <larsi@gnus.org> + + Obsolete the light-blue theme + + * etc/themes/light-blue-theme.el (light-blue): Make theme obsolete + since it's not maintained and seems to serve no particular use + case (bug#47047). + +2021-10-03 Lars Ingebrigtsen <larsi@gnus.org> + + Allow obsoleting themes + + * lisp/cus-theme.el (customize-themes): Don't list obsolete themes. + + * lisp/custom.el (load-theme): Issue a warning if the theme is + obsolete (bug#47047). + +2021-10-02 Stefan Kangas <stefan@marxist.se> + + Expand internal--format-docstring-line test + + * test/lisp/subr-tests.el (subr-test-internal--format-docstring-line): + Check for error on newline. + +2021-10-02 Stefan Kangas <stefan@marxist.se> + + Support 'strong-italic' facemenu face in html-mode + + * lisp/textmodes/sgml-mode.el (sgml-face-tag-alist) + (sgml-mode-facemenu-add-face-function, html-face-tag-alist): + Support 'strong-italic' facemenu face. + +2021-10-02 Alexandre Duret-Lutz <adl@lrde.epita.fr> + + gnus-icalendar: Missing attendees are not REQ-PARTICIPANT + + * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event--get-attendee-names) + (gnus-icalendar-event-from-ical): Do not default to REQ-PARTICIPANT + if the user was not found as an attendee. + * test/lisp/gnus/gnus-icalendar-tests.el + (gnus-icalendary-weekly-byday): Remove the ROLE property to test + that it correctly defaults to REQ-PARTICIPANT. The case where the + user is not listed is covered by gnus-icalendar-parse already + (bug#50749). + +2021-10-01 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/cl-generic.el: Fix test/lisp/loadhist-tests + + Revert 2fcd34f202 which was redundant anyway since e165bf3d4 + had fixed it in a better way anyway (a way which doesn't litter the + `load-history`). + +2021-10-01 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/cl-generic.el (cl--generic-get-dispatcher): Fix regression + +2021-10-01 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/subr-x.el (with-memoization): New macro + + Extracted from `cl-generic.el`. + + * lisp/emacs-lisp/cl-generic.el (cl--generic-get-dispatcher) + (cl--generic-build-combined-method, cl-generic-generalizers): Use it. + (cl--generic-with-memoization): Delete. + +2021-10-01 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 626696c3c8 (origin/emacs-28) * doc/lispref/control.texi (pcase Macro)... + 2895cb8d49 ; * lisp/time-stamp.el: Fix wording in some documentation ... + 1e79c9e9c0 ; * admin/release-branch.txt: Small edits. + f1f57a541e Fix some custom types + +2021-10-01 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + 5ee5a90213 (origin/emacs-28) ; Fix oddities in etc/NEWS + + # Conflicts: + # etc/NEWS + +2021-10-01 Glenn Morris <rgm@gnu.org> + + Merge from origin/emacs-28 + + ad0798a395 * etc/TODO: Add interactive mode tagging. + 879ef5b19a * etc/TODO: Rearrange to start with "Simple tasks". + d73f0e96a7 ; * etc/TODO: Move elpa.gnu.org items to the end. + 7cf1229706 ; * etc/TODO: Mention a relevant bug report. + f733b909ff * etc/TODO: Remove outdated item. (Bug#50904) + 94c247d659 ; Oops, fix up last commit + 88378acbfc Rename arguments of ERC's '/whois' and simplify doc string + 205eb7f801 ; s/class/type + 86da812afb Migrate Xref off EIEIO + 5c73dfcbcb * admin/release-branch.txt: New file. + f060d1c9a4 * lisp/dired.el (dired-omit-mode): Declare, to avoid compi... + + # Conflicts: + # etc/NEWS + +2021-10-01 Lars Ingebrigtsen <larsi@gnus.org> + + Fix one-clause movement in erts-mode--goto-start-of-test + + * lisp/progmodes/erts-mode.el (erts-mode--goto-start-of-test): Fix + so this works in one-clause tests. + +2021-10-01 Lars Ingebrigtsen <larsi@gnus.org> + + Fix text in erts-run-test message + + * lisp/progmodes/erts-mode.el (erts-run-test): New command and + keystroke. + +2021-10-01 Lars Ingebrigtsen <larsi@gnus.org> + + Add new command erts-run-test + + * lisp/progmodes/erts-mode.el (erts-run-test): New command and + keystroke. + +2021-10-01 Lars Ingebrigtsen <larsi@gnus.org> + + Refactor out ert-test--erts-test + + * lisp/emacs-lisp/ert.el (ert-test--erts-test): Refactor out the + bulk of the function for easier reuse. + +2021-10-01 Peter Münster <pm@a16n.net> + + New command for unmarking all images in image-dired + + * lisp/image-dired.el (image-dired-unmark-all-marks): Remove marks from + Dired buffer and update the view of the thumbnails (bug#50920). + +2021-10-01 Alexandre Duret-Lutz <adl@lrde.epita.fr> + + default role for attendees is REQ-PARTICIPANT + + * lisp/gnus/gnus-icalendar.el + (gnus-icalendar-event--get-attendee-names, + gnus-icalendar-event-from-ical): When the ROLE property + is missing from an ATTENDEE line, follow RFC5546 and default + to REQ-PARTICIPANT. + +2021-10-01 Alexandre Duret-Lutz <adl@lrde.epita.fr> + + allow party crashers to respond to ical events + + If an ical invitation is sent to a mailing list, the recipients + are probably not listed as attendees. However there are + legitimate situations where these unlisted (or indirectly listed) + recipients are still expected to respond. RFC5546 allows that, + calling those respondents "party crashers". + + * lisp/gnus/gnus-icalendar.el + (gnus-icalendar-event:inline-reply-buttons): Display the response + buttons even if the user was not found in the list of attendees, + but change the labels of those buttons to make clear they are + not explicitly invited. + (gnus-icalendar-event--build-reply-event-body): Add an attendee + line for the user in case one was not found. + +2021-10-01 Alexandre Duret-Lutz <adl@lrde.epita.fr> + + reply to the organizer of an ical event + + RFC5546 specifies that participant status (accepted, tentative, + declined) should be sent to the organizer of the event. That + organizer is not necessarily the sender of the invitation; for + instance Google Calendar uses custom email addresses to receive these + notifications. + + * lisp/gnus/gnus-icalendar.el (gnus-icalendar-send-buffer-by-mail): + Replace the default recipient of the reply by the organizer of the + event. + (gnus-icalendar-reply) Pass that organizer to the previous function. + +2021-10-01 akater <nuclearspace@gmail.com> + + Restore the flet indentation fixes + + * lisp/emacs-lisp/lisp-mode.el (lisp--local-defform-body-p): New + function. + (lisp-indent-function): Use it to fix cl-flet indentation. + +2021-10-01 Lars Ingebrigtsen <larsi@gnus.org> + + Add a new command to mark a region as a test in erts-mode + + * lisp/progmodes/erts-mode.el (erts-mode--in-test-p): Fix test. + (erts-tag-region): New command and keystroke. + +2021-10-01 Lars Ingebrigtsen <larsi@gnus.org> + + Allow skipping erts tests + + * doc/misc/ert.texi (erts files): Document it. + + * lisp/emacs-lisp/ert.el (ert-test-erts-file): Allow skipping tests. + +2021-10-01 Lars Ingebrigtsen <larsi@gnus.org> + + Add more indentation tests for Emacs Lisp mode + +2021-10-01 Lars Ingebrigtsen <larsi@gnus.org> + + Add new functionality to write buffer-based tests + + * doc/misc/ert.texi (erts files): New node. + + * lisp/files.el (auto-mode-alist): Map .erts to erts-mode. + + * lisp/emacs-lisp/ert.el (ert-test-erts-file): New function. + + * lisp/emacs-lisp/ert.el (ert--erts-specifications) + (ert--erts-unquote): Helper functions. + + * lisp/progmodes/erts-mode.el: New mode and file. + +2021-10-01 Ihor Radchenko <yantar92@gmail.com> + + Save position in mark ring before jumping to definition + + * lisp/help-mode.el (help-function-def--button-function): Current + point is saved in the mark ring before jumping to definition. + +2021-09-30 Eli Zaretskii <eliz@gnu.org> + + Update emacs-module sources for Emacs 29 + + * configure.ac (module_env_snippet_29): New. + + * src/module-env-28.h: Remove the comment with instructions for + the next release. + * src/module-env-29.h: New file. + +2021-09-30 Eli Zaretskii <eliz@gnu.org> + + Bump Emacs version to 29.0.50 + + * README: + * configure.ac: + * nt/README.W32: + * msdos/sed2v2.inp: + * src/msdos.c (internal_terminal_init): + * etc/refcards/ru-refcard.tex: + * etc/NEWS: Bump Emacs version to 29.0.50. + * etc/NEWS.28: New file. + + * lisp/cus-edit.el (customize-changed-options-previous-release): + Update the reference version of Emacs. + +2021-09-05 João Távora <joaotavora@gmail.com> + + Fixup last commit + + Per https://github.com/joaotavora/eglot/issues/726. + + I'm still not entirely convinced using all-completion here is a good + idea. As usual the completion list we get from the server is + pre-filtered to whatever the server wishes. Letting the completion + style do its own filtering (most completion styles use + completion-regexp-list and all-completions themselves) is completely + useless here. + + Let's hope it's not harmful. + + * eglot.el (eglot-completion-at-point): Fix all-completions call + +2021-09-05 João Távora <joaotavora@gmail.com> + + Respect completion-regexp-alist in eglot's completion table + + See GitHub discussion https://github.com/joaotavora/eglot/issues/726 + + Suggested-by: Felicián Németh <felician.nemeth@gmail.com> + Suggested-by: JD Smith + + * eglot.el (eglot-completion-at-point): use all-completions. + +2021-09-01 João Távora <joaotavora@gmail.com> + + Fix typo in user-visible eglot-ignored-server-capabilities + + The name with the typo, eglot-ignored-server-capabilites, is still + supported. + + Per https://github.com/joaotavora/eglot/issues/724. + + * NEWS.md: Mention change + + * eglot.el (eglot-ignored-server-capabilities): New defcustom. + +2021-08-17 João Távora <joaotavora@gmail.com> + + Fall back to prompting user if eglot-alternatives fails + + * eglot.el (eglot-alternatives): Don't error in interactive case. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/719 + +2021-08-17 João Távora <joaotavora@gmail.com> + + Let eglot-flymake-backend be in flymake-d-functions even if eglot off + + This is useful when using eglot-stay-out-of and a pattern like: + + (defun my/js-mode-hook () + (add-hook 'flymake-diagnostic-functions 'some-eslint-backend nil t)) + (setq-local eglot-stay-out-of '(flymake)) + (add-hook 'flymake-diagnostic-functions 'eglot-flymake-backend nil t)) + + (add-hook 'js-mode-hook 'my/js-mode-hook) + + Then, _both_ backends will run unconditionally, but Eglot backend only + actually reports diagnostics if Eglot is on. + + * eglot.el (eglot-flymake-backend): If buffer isn't being managed + by Eglot, behave as a noop. + +2021-08-16 Yuuki Harano <masm+github@masm11.me> + + Make PGTK's additions conditioinal + + * src/.gdbinit: Make them enclosed in condition. + * src/alloc.c: Define defined_HAVE_PGTK and make it externally visible. + +2021-08-16 Yuuki Harano <masm+github@masm11.me> + + * lisp/term/pgtk-win.el (pgtk-preedit-text): Write doc string + + * lisp/term/pgtk-win.el (pgtk-face-at-pos): Remove unused function + +2021-08-15 Yuuki Harano <masm+github@masm11.me> + + * lisp/term/pgtk-win.el: Remove some font stuff + + pgtk-popup-font-panel does not exist. + pgtk-respond-to-change-font is not used. + +2021-08-15 Yuuki Harano <masm+github@masm11.me> + + * lisp/term/pgtk-win.el (pgtk-pop-up-frames): Remove since it is not used + + * configure.ac: Add a notice to --with-pgtk + +2021-08-15 Yuuki Harano <masm+github@masm11.me> + + * configure.ac: Remove imagemagick special support code for pgtk + + When emacs did not support imagemagick 7 and I had imagemagick both 6 and 7, + I wanted to use imagemagick 6. + The code is not needed any more. + +2021-07-21 Brian Leung <bkleung89@gmail.com> + João Távora <joaotavora@gmail.com + + Add support for locationlink + + Fix https://github.com/joaotavora/eglot/issues/711. + + LocationLink was added in version 3.14 of the protocol and is + sometimes used in lieu of Location for definition- and + reference-related requests. + + * eglot.el (eglot--lsp-interface-alist): Update with LocationLink. + (eglot-client-capabilities): Advertise + textDocument.{definition,declaration,implementation,typeDefinition}.linkSupport. + (eglot--lsp-xrefs-for-method): Accept LocationLinks. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/712 + +2021-06-18 Yuuki Harano <masm+github@masm11.me> + + Fix a frame created without scroll/menu/toolbar is empty + + * src/pgtkterm.c (size_allocate): Get frame pointer through user_data. + (pgtk_set_event_handler): Pass it. + +2021-06-18 Yuuki Harano <masm+github@masm11.me> + + Revert "Revert "* src/pgtkfns.c: Do not show an empty frame prematurely"" + + This reverts commit b0d688673b0be774c3735eef304f69568bd59bcf. + + The commit 83c35b8 causes the empty frame bug, so I reverted. + Now, I debugged so re-apply the commit. + +2021-06-13 João Távora <joaotavora@gmail.com> + + Transpose order of "pylsp" and "pyls" alternatives + + When operating remotely, searching for an executable that don't exist + takes longer than usual. Better to put the most likely server first + in the list to minimize the slowdown. + + * eglot.el (eglot-server-programs): Transpose python mode alternatives + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/703 + +2021-06-13 João Távora <joaotavora@gmail.com> + + Don't call eglot--executable-find more than needed + + * eglot.el (eglot-alternatives): Complexify. + (eglot--guess-contact): No need to 'executable-find' if path + absolute. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/703 + +2021-06-13 Yuuki Harano <masm+github@masm11.me> + + Revert "* src/pgtkfns.c: Do not show an empty frame prematurely" + + This reverts commit 83c35b86da233870231e30d114ffa4640eb10081. + +2021-06-13 Yuuki Harano <masm+github@masm11.me> + + Revert "; * src/pgtkfns.c (Fx_create_frame): Fix coding style" + + This reverts commit 4b91168c657e3476b8a0a3f539ee6bcb1b71e3d5. + +2021-06-13 Jindřich Makovička <makovick@gmail.com> + + * src/pgtkfns.c: Do not show an empty frame prematurely + + Set only the child widgets visible, leave the outer window + to pgtk_make_frame_visible . + +2021-06-11 Liu Hui <ilupin@users.noreply.github.com> (tiny change) + + Consider tramp in eglot-alternatives + + * eglot.el (eglot-alternatives): Use eglot--executable-find. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/702 + +2021-06-08 Jindřich Makovička <makovick@gmail.com> + + * src/pgtkselect.c: Avoid Glib assertion warnings + + Do not call g_object_get_qdata, when the clipboard has no owner, + and obj is NULL. Just return Qnil immediately. + +2021-06-05 Yuuki Harano <masm+github@masm11.me> + + Support frame-scale-factor on pgtk frames + + * src/pgtkfns.c (pgtk_frame_scale_factor): New function to get frame + scale factor. + * src/frame.h: Call it when a pgtk frame. + * src/pgtkterm.h: Add the declaration. + +2021-05-30 Jindřich Makovička <makovick@gmail.com> + + * src/pgtkterm.c: Honor system DPI settings + +2021-05-29 Yuuki Harano <masm+github@masm11.me> + + Disable hyper key when super and hyper conflict + + * src/pgtkterm.c (x_find_modifier_meanings): If super_mod_mask and + hyper_mod_mask are equal, then disable hyper. + +2021-05-26 João Távora <joaotavora@gmail.com> + + Use project-files to know which directory watchers to skip + + The directory-finding logic is probably a bit slower than using + eglot--directories-recursively, but since it honors `.gitignores` and + ignores more directories it's much faster overall. And guaranteed to + create less watchers. + + Thanks to Dmitry Gutov <dgutov@yandex.ru> for the idea. + + * eglot.el (eglot--directories-recursively): Remove. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/697 + +2021-05-26 João Távora <joaotavora@gmail.com> + + Hard code an exception to "node_modules" directories + + * eglot.el (eglot--directories-recursively): Fix. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/697 + GitHub-reference: per https://github.com/joaotavora/eglot/issues/645 + +2021-05-26 João Távora <joaotavora@gmail.com> + + Again speed up directory watching + + Previously, given a number of globs, Eglot would try to place system + watchers only in those subdirectories that could potentially be + matched by a glob. This meant traversing the whole tree, which could + be impractical. Just place watchers in every subdirectory of the + project (you may run out of watchers). + + * eglot.el (eglot-register-capability): Simplify. + (eglot--files-recursively): Delete. + (eglot--directories-recursively): Fix. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/697 + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/645 + +2021-05-22 João Távora <joaotavora@gmail.com> + + Support multiple servers out-of-box for same mode + + Also per https://github.com/joaotavora/eglot/issues/537. + + * eglot.el (eglot-alternatives): new helper. + (eglot-server-programs): Use it. Use clangd and pylsp. + + * NEWS.md: Mention feature. + + * README.md (Connecting to a server): Mention pylsp and clangd. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/688 + +2021-05-22 Augusto Stoffel <arstoffel@gmail.com> + + Allow staying out of flymake-mode, eldoc-mode + + * eglot.el (eglot--managed-mode): don't enable flymake or eldoc when + those symbols belong to eglot-stay-out-of. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/671 + +2021-05-22 Colin Woodbury <colin@fosskers.ca> + + * src/frame.c (Fframep): Update framep docstring + +2021-05-19 Yuuki Harano <masm+github@masm11.me> + + Fix compile error when PGTK_DEBUG is enabled + + * src/pgtkterm.c (pgtk_set_window_size): Remove "pixelwise" arg, + which is already non-existent. + +2021-05-19 Yuuki Harano <masm+github@masm11.me> + + * src/image.c: Fix compile error related xpm in image.c + + Use the same code as NS. + +2021-05-17 Troy Hinckley <t.macman@gmail.com> + + Fix tests and documentation for hook + + Auto detect mode suffix in hook keyword + +2021-05-16 Michael Livshin <mlivshin@gmail.com> + João Távora <joaotavora@gmail.com> + + Manage cross-referenced files outside project in same server + + Close https://github.com/joaotavora/eglot/issues/686, Close https://github.com/joaotavora/eglot/issues/695. + + + * eglot.el (eglot-extend-to-xref): new defcustom, default to + nil. + (eglot--servers-by-xrefed-file): new hash table, mapping file names + to servers. + (eglot--managed-mode): use eglot-current-server, instead of + eglot--cached-server directly. + (eglot--current-server-or-lose): ditto. + (eglot--maybe-activate-editing-mode): ditto. + (eglot-current-server): move all cached-server update logic here -- if + eglot--cached-server is nil, try to find it using current project or + (optionally) xref location. + (eglot--xref-make-match): record the xref location. + + * README.md (Customization): Mention new defcustom. + + * NEWS.md: Mention new feature + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/76 + +2021-05-15 Yuuki Harano <masm+github@masm11.me> + + Revert "Update texts while busy" + + This reverts commit 8a649cba44cc637b5326cee9fe3febc55c653719. + Because the position of the initial frame is not desired, unless + initial-frame-alist is set. + +2021-05-15 Yuuki Harano <masm+github@masm11.me> + + Update texts while busy + + Pgtk didn't update text and C-g didn't take effect while it is busy. + By timer interrupts, we can call pgtk_read_socket, and update texts + and handle C-g. + + * src/pgtkterm.c (start_timer): New function to start timer. + (pgtk_show_hourglass): Remove code to start timer. + (pgtk_hide_hourglass): Remove code to stop timer. + (pgtk_term_init): Call start_timer(). + +2021-05-14 Yuuki Harano <masm+github@masm11.me> + + Create a variable to enable selection on multi display + + * src/pgtkselect.c (pgtk_selection_usable): If it is true, always + returns true. + (syms_of_pgtkselect): New bool variable. + +2021-05-13 Yuuki Harano <masm+github@masm11.me> + + Treat all the wayland connection as the same display + + On Wayland, + even if without WAYLAND_DISPLAY, --display DISPLAY works, but + gdk_display_get_name() always return "wayland-0", which may be + different from DISPLAY. + If with WAYLAND_DISPLAY, then it always returns WAYLAND_DISPLAY. + So pgtk emacs is confused and enter multi display environment. + To workaround this situation, treat all the wayland-* as the same + display. + + * src/pgtkfns.c (is_wayland_display): New function to decide it is a + wayland connection. + (pgtk_display_info_for_name): If both are wayland connection, then + they are the same display. + +2021-05-13 Jim Porter <itsjimporter@gmail.com> + João Távora <joaotavora@gmail.com> + + Correct path/uri when using tramp from ms windows + + + * eglot.el (eglot--connect): Ensure drive letter doesn't sneak into + rootPath. (eglot--path-to-uri): Only add a leading "/" for local MS + Windows paths. (eglot--uri-to-path): Only remove leading "/" from + local MS Windows paths. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/679 + +2021-05-13 João Távora <joaotavora@gmail.com> + + Provide context for finer project-find-functions + + * eglot.el (eglot--guess-contact): Use eglot--current-project. + (eglot): Adjust docstring. + (eglot-lsp-context): New variable. + (eglot--current-project): New helper. + (eglot--maybe-activate-editing-mode, eglot--eclipse-jdt-contact): + Use eglot--current-project. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/687 + +2021-05-12 Jeff Walsh <fejfighter@gmail.com> + + * src/pgtkterm.c remove duplicated code + + * src/pgtkterm.c (pgtk_update_window_begin): + (pgtk_update_window_end): + (pgtk_redisplay_interface): Remove duplicate code and default to the + generic gui_update_window_begin/end implementations + +2021-05-10 Yuuki Harano <masm+github@masm11.me> + + Fix frame size shrinking when turning fringe/scrollbars on/off + + In 66a36f1, I keeped passing text size by mistake. + + * src/pgtkterm.c (pgtk_set_window_size): Don't use + FRAME_PIXEL_TO_TEXT_WIDTH/HEIGHT to pass pixel size. + +2021-05-09 Yuuki Harano <masm+github@masm11.me> + + Fix pgtk_make_frame_visible doesn't work + + * src/pgtkterm.c (pgtk_wait_for_map_event): New function to wait for + map events. The content is moved from pgtk_make_frame_visible. + (pgtk_make_frame_visible): Call pgtk_wait_for_map_event, instead of + process here directly. + (pgtk_make_frame_invisible): Call pgtk_wait_for_map_event to wait + for multiple map events. + +2021-05-08 Yuuki Harano <masm+github@masm11.me> + + * src/pgtkmenu.c (show_help_event): Let emacs not show menu tooltips + +2021-05-08 Yuuki Harano <masm+github@masm11.me> + + Entrust Gtk with handling tooltips + + Previously, tooltips for menu items are below the menu. + To solve it, set tooltip text on menu items in advance, and entrust + gtk with handling tooltips. + + * src/gtkutil.c (xg_show_tooltip): New function for pgtk to set + tooltip text on the widget. + (xg_hide_tooltip): New function for pgtk to clear tooltip text on the + widget. + (xg_create_frame_widgets): Don't set initial tooltips text, and don't + use qttip_cb. + (xg_create_frame_outer_widgets): Ditto. + (make_menu_item): Set tooltip text on the menu item. + * src/gtkutil.h: New declaration of xg_show_tooltip for pgtk. + * src/pgtkfns.c (Fx_show_tip): Calls xg_show_tooltip, and always ok. + +2021-04-30 Steve Purcell <steve@sanityinc.com> + João Távora <joaotavora@gmail.com> + + Fix emacs 28 warning by avoiding positional args in define-minor-mode + + * eglot.el (eglot--managed-mode): Avoid positional args. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/685 + +2021-04-29 Steve Purcell <steve@sanityinc.com> + João Távora <joaotavora@gmail.com> + + Allow lsp languageid to be overridden via eglot-server-programs + + Close https://github.com/joaotavora/eglot/issues/678. Per https://github.com/joaotavora/eglot/issues/677 + + * eglot-tests.el (eglot--guessing-contact): Add + GUESSED-LANG-ID-SYM param. + (eglot-server-programs-guess-lang): New test. + + * eglot.el (eglot-server-programs): Augment entries for caml-mode + and tuareg-mode. Enhance docstring. + (eglot--lookup-mode): New helper. + (eglot--guess-contact): Call eglot--lookup-mode. + (eglot, eglot-reconnect): Pass language-id to eglot--connect + (eglot--connect): Receive LANGUAGE-ID + (eglot--TextDocumentItem): Simplify. Use + `eglot--current-server-or-lose' + + * README.md (Handling quirky servers): Mention new feature. + +2021-04-28 Augusto Stoffel <arstoffel@gmail.com> + + Add a completion-category-defaults entry + + Setting completion-styles buffer-locally is harder to customize and + can break some completion UIs. + + Emacs bughttps://github.com/joaotavora/eglot/issues/48073 + + * eglot.el: Add a completion-category-defaults entry, if applicable. + (eglot--managed-mode): Don't set `completion-styles' + (eglot-completion-at-point): Add style metadata to + completion table. + +2021-04-25 Steve Purcell <steve@sanityinc.com> + + Switch default langserver for ocaml to ocamllsp + + The repo for ocaml-language-server has been archived and inactive + for quite some time: + + https://github.com/ocaml-lsp/ocaml-language-server + + Meanwhile, ocaml-lsp is the generally-preferred option, and is actively + maintained in the ocaml org itself: + + https://github.com/ocaml/ocaml-lsp/ + + * eglot.el (eglot-server-programs): switch caml-mode entry. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/677 + +2021-04-23 João Távora <joaotavora@gmail.com> + + Declare eglot--cached-server before use + + Per https://github.com/joaotavora/eglot/issues/670. + + Otherwise the dynamic binding of it in in eglot--connect won't work. + + * eglot.el (eglot--cached-server): Move up. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/673 + +2021-04-20 João Távora <joaotavora@gmail.com> + + Make eglot-current-server work in notification handlers + + * eglot.el (eglot--connect): Ensure `eglot--cached-server` bound + when calling notification/request methods. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/670 + +2021-04-17 Daniel Perez Alvarez <danielpza@protonmail.com> (tiny change) + + feat: add update custom packages command + +2021-04-13 Yuuki Harano <masm+github@masm11.me> + + Workaround touchscreen events are ignored on sway + + On sway, gdk_device_get_window_at_position() in + xg_event_is_for_scrollbar always returns NULL, and all the touchscreen + press events are mishandled as on scrollbar. + We don't need to call xg_event_is_for_scrollbar, so removed the call. + + * src/pgtkterm.c (button_event): Don't call xg_event_is_for_scrollbar. + +2021-04-12 João Távora <joaotavora@gmail.com> + + Add a passing test demonstrating clangd + tramp works + + ... It works at least within the minimal, well-controlled reproducible + settings of this test. Maybe if we knew something more about the + setup of the user who submitted this report we would be able to + concoct a failing test, but we don't. + + * eglot-tests.el (subr-x): Require it + (eglot--make-file-or-dir): Return expanded file name. + (eglot-tests--lsp-abiding-column-1): New helper. + (eglot-lsp-abiding-column): Use it. + (eglot--tramp-test): Fix `skip-unless` condition. + (eglot--tramp-test-2): New test. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/667 + +2021-04-12 Dmitry Gutov <dgutov@yandex.ru> + + Merge pull request from mohkale/company-kind + + (feature): Add :company-kind to eglot-completion-at-point + + GitHub-reference: https://github.com/joaotavora/eglot/issues/656 + +2021-04-12 Mohsin Kaleem <mohkale@kisara.moe> + + Add :company-kind to eglot-completion-at-point + + * eglot.el (eglot-completion-at-point): Add a :company-kind field to the + completion-at-point function so that company can associate completion + candidates with lsp types. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/652 + +2021-04-10 Mohsin Kaleem <mohkale@kisara.moe> + + Highlight relevant part of xref hits using xref-match face + + Also close https://github.com/joaotavora/eglot/issues/657. + + (eglot--xref-make-match): Use face 'xref-match instead of 'highlight. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/650 + +2021-04-10 João Távora <joaotavora@gmail.com> + + Attempt to speed up initial directory/glob correspondence + + In https://github.com/joaotavora/eglot/issues/602, not only a new glob processing system was implemented, but + also a new, more correct, way to look for directories that might hold + files matched by one of these globs. + + Answering this question is important because the file watchers for + 'workspace/didChangeWatchedFiles' are placed on a per-directory basis. + Previously, a glob such as /foo/**/bar/*.el would fail to produce + practical file-watching effects because /foo/**/bar/ isn't really a + directory. + + However, answering this question is also expensive, as the globs sent + by the LSP server are meant to match files, not directories. The only + way is to list all files under the project's root directory and test + each glob on each one. If it matches at least one file, that file's + directory is meant to be watched. + + We suspect that in https://github.com/joaotavora/eglot/issues/645 and https://github.com/joaotavora/eglot/issues/633 we are falling victim to LSP server + who serve a tremendous unoptimized number of globs, one for each file. + So instead of sending just '/foo/**/bar/*.el' they send + '/foo/**/bar/quux.el', '/foo/**/bar/quuz.el', etc... which would + tremendeously slow down the process. But this is only a suspicion. + + This commit tries some simple optimizations: if a directory is known + to be watch-worthy because one of its files matched a single glob, no + more files under that directory are tried. This should help somewhat. + + Also fixed a bug in 'eglot--files-recursively', though I suspect that + doesn't make that much of a difference. + + * eglot.el (eglot--directories-matched-by-globs): New helper. + (eglot--files-recursively): Fix bug. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/645 + +2021-04-03 João Távora <joaotavora@gmail.com> + + Generalize eglot-flymake-backend + + Loosen coupling between eglot-flymake-backend and flymake-mode. The + flymake-mode check in 'eglot-handle-notification publishDiagnostics' + was a hack (and it wasn't even functioning correctly on M-x + eglot-shutdown/eglot-reconnect). + + This should also allow eglot-flymake-backend to be driven by + diagnostic-annotating frontends other than Flymake, such as the + popular Flycheck package. + + * eglot.el (eglot--managed-mode): Use eglot--report-to-flymake. + (eglot-handle-notification textDocument/publishDiagnostics): Use + eglot--report-to-flymake. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/596 + +2021-03-26 rvs314 <71688932+rvs314@users.noreply.github.com> (tiny change) + + Offer better control over "languageid" value sent to lsp + + Handles the issue of languages whose major mode has a + different name than the name that the LSP server expects for + the language. One can now: + + (put 'favourite-major-mode 'eglot-language-id "foobarbaz") + + And "foobarbaz" will be used as the LSP "languageId" value. + + * eglot.el (eglot--TextDocumentItem): Consult 'eglot-language-id. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/525 + +2021-03-19 Johnathan C. Maudlin <13183098+jcmdln@users.noreply.github.com> (tiny change) + + Add support for zls, the zig language server + + * eglot.el (eglot-server-programs): Add zig-mode entry. + + * README.md (Connecting to a server): Mention zls. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/646 + +2021-03-15 bc² <odanoburu@users.noreply.github.com> (tiny change) + João Távora <joaotavora@gmail.com> + + Add new command eglot-shutdown-all + + Also closes https://github.com/joaotavora/eglot/issues/644 + + * NEWS.md: mention new command + + * README.md (Commands and keybindings): mention new command. Tweak + documentation for eglot-shutdown and eglot-reconnect. + + * eglot.el (eglot-shutdown): Tweak docstring. + (eglot-shutdown-all): New command. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/643 + +2021-03-13 Jimmy Yuen Ho Wong <wyuenho@gmail.com> + + Properly sort use-package-statistics-report + +2021-03-11 Yuuki Harano <masm+github@masm11.me> + + Fix some leaks + + * src/pgtkterm.c (x_free_frame_resources): Free cursors. + (pgtk_delete_terminal): Free cursors and events. + +2021-03-07 Jimmy Yuen Ho Wong <wyuenho@gmail.com> + + Fix void-variable use-package-enable-imenu-support + +2021-03-06 João Távora <joaotavora@gmail.com> + + Autoload eglot-workspace-configuration's safe-l-v spec + + This is useful for those who edit files in a certain source tree where + this directory-local variable is set, but without having yet loaded + eglot.el. Those users would be bothered by the usual + risky-local-variable prompt. + + * eglot.el (eglot-workspace-configuration): Add autoload cookie. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/555 + +2021-03-06 Brian Leung <bkleung89@gmail.com> + + Indicate support for activeparameter + + * eglot.el (eglot-client-capabilities): Indicate :activeParameterSupport. + + Fixup of commit bdf57d5d4e888a6a7b4066b87497da8a8d9e36de. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/605 + +2021-03-06 João Távora <joaotavora@gmail.com> + + Simplify eglot--apply-workspace-edit + + Suggested by Brian Leung. + + * eglot.el (eglot--apply-workspace-edit): simplify + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/620 + +2021-03-06 Augusto Stoffel <arstoffel@gmail.com> + João Távora <joaotavora@gmail.com> + + Remove highlight overlays immediately when symbol edited + + * eglot.el (eglot--highlight-piggyback): Add modification-hooks + property to the created overlays. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/626 + +2021-03-06 Theodor Thornhill <theo@thornhill.no> + João Távora + + Convert colon to hex in uri + + On windows, in the path portion of the URI, ':' must be hexified to + '%3A'. In the URL scheme, the ':' stays. + + * eglot.el (eglot--uri-path-allowed-chars): define what characters are + allowed in path portion of URI. + + * eglot.el (eglot--path-to-uri): ensure colon in 'file://' stays, but + and others are hexified. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/638 + +2021-03-06 Brian Cully <bjc@kublai.com> + João Távora <joaotavora@gmail.com> + + Add tramp support + + Also close https://github.com/joaotavora/eglot/issues/463, close https://github.com/joaotavora/eglot/issues/84. + + Thanks to Brian Cully for the original simple idea. The basic + technique is to pass :file-handler t to make-process, then tweak + eglot--uri-to-path and eglot--path-to-uri, along with some other + functions, to be aware of "trampy" paths". + + Crucially, a "stty hack" was needed. It has been encapsulated in a + new a new eglot--cmd helper, which contains a comment explaining the + hack. + + + * eglot.el (eglot--executable-find): Shim two-arg executable-find + function only available on Emacs 27. + (eglot--guess-contact): Use eglot--executable-find. + (eglot--cmd): New helper. + (eglot--connect): Use eglot--cmd. Use :file-handler arg to + make-process. + (eglot--connect, eglot--path-to-uri): Be aware of trampy file + names. + + * eglot-tests.el (eglot-tests--auto-detect-running-server-1): New helper. + (eglot--guessing-contact): Better mock for executable-find. + (eglot--tramp-test): New test. + + * NEWS.md: mention TRAMP support. + + * README.md: mention TRAMP support. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/637 + +2021-03-03 Theodor Thornhill <theo@thornhill.no> + + Correctly protect against zero-length completion items + + Close https://github.com/joaotavora/eglot/issues/636. + + * eglot.el (eglot-completion-at-point): check for zero length string in proxy + rather than the item. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/635 + +2021-03-02 Yuuki Harano <masm+github@masm11.me> + + Fix unicode strings can't be pasted correctly + + * lisp/select.el (x-select-request-type): Use text/plain;charset=utf-8 + instead. + (gui--selection-value-internal): same. + (gui-get-selection): Treat text/plain;charset=utf-8 as utf-8. + * src/pgtkselect.c (Fpgtk_get_selection_internal): Support + text/plain;charset=utf-8 as foreign-selection. + (syms_of_pgtkselect): Add new symbol. + +2021-03-02 Yuuki Harano <masm+github@masm11.me> + + Support selection type text/plain on wayland + + Apps on XWayland need this. + + * lisp/select.el (x-select-request-type): Add choice `text/plain'. + (gui--selection-value-internal): Add text/plain to the default list. + +2021-02-27 Theodor Thornhill <theo@thornhill.no> + João Távora <joaotavora@gmail.com> + + Protect against empty uris on windows + + Per https://github.com/joaotavora/eglot/issues/630. + + * eglot.el (eglot--uri-to-path): Check string length + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/610 + +2021-02-26 João Távora <joaotavora@gmail.com> + + Urify better + + See also + https://microsoft.github.io/language-server-protocol/specifications/specification-current/#uri. + + * eglot.el (eglot--path-to-uri): use directory-file-name. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/627 + +2021-02-26 João Távora <joaotavora@gmail.com> + + Fixup last commit to fix + + * eglot.el (eglot-handle-request): Fixup. Use let* + + GitHub-reference: https://github.com/joaotavora/eglot/issues/627 + +2021-02-26 João Távora <joaotavora@gmail.com> + + Handle empty actions array in window/showmessagerequest + + * eglot.el (eglot-handle-request window/showMessageRequest): + Handle empty actions. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/627 + +2021-02-24 Philipp Stephani <phst@google.com> + + Remove uses of deprecated ‘flet’ macro + + Instead, use the non-deprecated ‘cl-flet’ and ‘cl-letf’ macros from the + ‘cl-lib’ package. + + This also allows us to remove the ‘plist-delete’ helper function, which was + only used to effectively un-deprecate ‘flet’. + +2021-02-24 João Távora <joaotavora@gmail.com> + + Handle null reply for textdocument/definition + + * eglot.el (eglot--lsp-xrefs-for-method): Handle null response + from textDocument/definition & friends. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/625 + +2021-02-23 Yuuki Harano <masm+github@masm11.me> + + Make scrollbars ignore scroll-bar-fore/background. + + * src/pgtkfns.c (pgtk_set_scroll_bar_foreground): Handle frame + parameters but actually ignore it. + (pgtk_set_scroll_bar_background): The same. + +2021-02-22 Naoya Yamashita <conao3@gmail.com> + + add testcase + +2021-02-22 Naoya Yamashita <conao3@gmail.com> + + add autoload keyword + + :autoload is similar to :command but this generate autoload + statement as *no-interactive* function. + +2021-02-21 Jonathan del Strother <me@delstrother.com> (tiny change) + João Távora <joaotavora@gmail.com> + + Silence messages while formatting markup + + Also fix https://github.com/joaotavora/eglot/issues/501. + + Prior to this, activating gfm-view-mode could echo messages + like "markdown-mode math support enabled" to the minibuffer. + + Message are both silenced from from the minibuffer and the + *Messaages* log. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/502 + +2021-02-20 Yuuki Harano <masm+github@masm11.me> + + Work around I can't copy and paste unicode string to wayland chromium + + * src/pgtkselect.c (Fpgtk_own_selection_internal): + Remove text/plain, since unicode strings are not correctly + encoded/decoded between Gtk and chromium(wayland) with it. + +2021-02-16 Yuuki Harano <masm+github@masm11.me> + + Fix I can't paste international text from clipboard + + * lisp/select.el (gui--selection-value-internal): + Try UTF8_STRING when pgtk as well as x. + +2021-02-16 Yurii Kholodkov <urist.mckorobochka@gmail.com> (tiny change) + + fix docstring. was: invalid function name + +2021-02-14 Basil L. Contovounesios <contovob@tcd.ie> + + Fix unused macro build warning in image.c + + * src/image.c + [HAVE_PGTK] (DONT_CREATE_TRANSFORMED_IMAGEMAGICK_IMAGE): Define only + if HAVE_IMAGEMAGICK is also defined, as it is otherwise + unused (bug#46491). + (image_set_transform): Reduce nesting of preprocessor conditionals. + +2021-02-11 Robert Pluim <rpluim@gmail.com> + + Don't crash if we can't find a monitor model name + + This can happen when running emacs over a forwarded X11 connection. + + * src/pgtkfns.c (pgtk_get_monitor_scale_factor): Return 0 if we're + passed a NULL model name. + +2021-02-11 Yuuki Harano <masm+github@masm11.me> + + Support getting a image from clipboard + + * src/pgtkselect.c (Fpgtk_get_selection_internal): Reimplement + referring selection_data_to_lisp_data in xselect.c + (syms_of_pgtkselect): Add symbols. + +2021-02-10 John Wiegley <johnw@newartisans.com> + + Merge pull request from minad/improved-unbind + + GitHub-reference: https://github.com/jwiegley/use-package/issues/910 + +2021-02-10 Daniel Mendler <mail@daniel-mendler.de> + + unbind-key: Ensure that keys are removed from the keymap + + * The removal from the keymap is performed by bind-key--remove + * Use the same argument normalization as bind-key + +2021-02-10 Daniel Mendler <mail@daniel-mendler.de> + + bind-key: Use new symbols for kmapvar + +2021-02-07 John Wiegley <johnw@newartisans.com> + + Merge pull request from tzz/tzz/use-package-use-theme + + Add use-package-use-theme and avoid missing theme errors + GitHub-reference: https://github.com/jwiegley/use-package/issues/907 + +2021-02-06 Ted Zlatanov <tzz@lifelogs.com> + + Add use-package-use-theme and avoid missing theme errors + +2021-02-06 Yuuki Harano <masm+github@masm11.me> + + Remove unused arg as xmenu.c + + * src/pgtkmenu.c (Fx_menu_bar_open_internal): Remove unused arg. + (pgtk_activate_menubar): Remove unused arg. + (set_frame_menubar): Remove unused arg. + (initialize_frame_menubar): Remove unused arg. + +2021-02-06 Misha Gusarov <dottedmag@dottedmag.net> (tiny change) + + Make reading GNOME settings optional. + + * src/pgtkterm.c (pgtk_term_init): Make reading GNOME settings optional. + (pgtk_text_scaling_factor): New function to read text scaling factor. + +2021-02-06 Ted Zlatanov <tzz@lifelogs.com> + + Merge pull request from kljohann/custom-use-single-let + + Use a single let binding when expanding consecutive :custom forms + GitHub-reference: https://github.com/jwiegley/use-package/issues/906 + +2021-02-03 Johann Klähn <johann@jklaehn.de> (tiny change) + + Use a single let binding when expanding consecutive :custom forms + +2021-02-03 João Távora <joaotavora@gmail.com> + + Simplify dir-watching strategy of w/didchangewatchedfiles + + Instead of massaging the globPattern to match directories instead of + files, which is fragile, gather the list of directories to watch by + matching the globPattern against every file recursively (except hidden + files and dirs). + + This is still not 100% correct, but should do the right thing is most + cases. Notably, if the correct dirs are being watched, the glob + pattern is matched against all existing and new files in those + directories, which does include hidden files. + + * eglot.el (eglot-register-capability): match file globs against + files only. + (eglot--files-recursively): Rename from eglot--directories-recursively. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/602 + +2021-02-02 João Távora <joaotavora@gmail.com> + + Tweak glob-parsing grammar + + Alternative groups {} don't bork on forward slash. + + * eglot.el (eglot--glob-parse): Tweak {} grammar. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/602 + +2021-02-01 Philip Kaludercic <philipk@posteo.net> + João Távora <joaotavora@gmail.com> + + Make eglot-ignored-server-capabilites defcustom a set + + + * eglot.el (eglot-ignored-server-capabilites): Now a set. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/467 + +2021-02-01 João Távora <joaotavora@gmail.com> + + Speed up glob matching 2x + + with-temp-buffer was taking a lot of time, presumably because it kills + the buffer. Since emacs is single-threaded, we can safely reuse a + single buffer. + + * eglot.el (eglot--glob-parse): Simplify grammar. + (eglot--glob-compile): Don't with-temp-buffer. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/602 + +2021-02-01 John Wiegley <johnw@newartisans.com> + + Merge pull request from tzz/tzz/remove-use-package-from-custom-enabled-themes + + Remove use-package theme from global list of custom-enabled-themes + GitHub-reference: https://github.com/jwiegley/use-package/issues/899 + +2021-02-01 Felicián Németh <felician.nemeth@gmail.com> + João Távora <joaotavora@gmail.com> + + Support phps-mode + + phps-mode is available from ELPA, php-mode isn't. + + * eglot.el (eglot-server-programs): Recognize phps-mode as a PHP mode. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/418 + +2021-02-01 Brian Leung <bkleung89@gmail.com> (tiny change) + + Remove duplicate entry for "registration" lsp type + + * eglot.el (eglot--lsp-interface-alist): Remove extra Registration entry. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/612 + +2021-02-01 João Távora <joaotavora@gmail.com> + + Prefer typescript-language-server for js&ts + + * README.md (Connecting to a server): Prefer + typescript-language-server. + + * eglot.el (eglot-server-programs): Use + typescript-language-server. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/566 + +2021-02-01 João Távora <joaotavora@gmail.com> + + Also override global flymake-diagnostic-functions + + The global value of the flymake-diagnostic-functions is likely to be + of little use in Eglot-managed buffers, so don't run it. Likely the + value flymake-proc-legacy-flymake is there which is not only likely of + little uses but also causes trouble in some situations. + + The user can easily avert this by leveraging the variable + eglot-stay-out-of. + + * eglot.el (eglot--managed-mode): Don't run global + flymake-diagnostic-functions. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/616 + +2021-02-01 Brian Leung <bkleung89@gmail.com> + + Explicitly require seq.el + + `seq-empty-p' is not autoloaded in Emacs >= 26.3, so it must be + explicitly required. + + * eglot.el: Require seq.el. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/613 + +2021-02-01 Brian Leung <bkleung89@gmail.com> + João Távora <joaotavora@gmail.com> + + Support activeparameter property for signatureinformation + + SignatureInformation.activeParameter is new in version 3.16.0 of the + protocol. When non-nil, it is used in place of + SignatureHelp.activeParameter. The latter was deemed insufficient in + languages where multiple signatures for the same function may exist + with arbitrary order of parameters, like Python. + + + * eglot.el (eglot--lsp-interface-alist): Add + SignatureInformation.activeParameter. + + * eglot.el (eglot--sig-info): Prioritize + SignatureInformation.activeParameter over + SignatureHelp.activeParameter. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/605 + +2021-01-31 João Távora <joaotavora@gmail.com> + + Fully handle lsp glob syntax + + Thanks to Brian Leung and Dan Peterson for testing and helping me spot + bugs. + + * eglot-tests.el (eglot--glob-match): New test. + + * eglot.el (eglot--wildcard-to-regexp): Delete. + (eglot-register-capability): Rework. + (eglot--glob-parse, eglot--glob-compile, eglot--glob-emit-self) + (eglot--glob-emit-**, eglot--glob-emit-*, eglot--glob-emit-?) + (eglot--glob-emit-{}, eglot--glob-emit-range) + (eglot--directories-recursively): New helpers. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/602 + +2021-01-30 João Távora <joaotavora@gmail.com> + + Flush pending changes to server before code actions request + + Otherwise the actions returned by the server might be stale when the + user selects them. + + * eglot.el (eglot-code-actions): Issue jsonrpc-request with deferred=t. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/609 + +2021-01-30 Yuuki Harano <masm+github@masm11.me> + + Support child frame border width + + * src/pgtkfns.c (x_set_child_frame_border_width): Port code for X. + (pgtk_frame_parm_handlers): Add hook. + (Fx_create_frame): Get default parameter. + * src/pgtkterm.c (x_draw_stretch_glyph_string): Re-port code for X. + (pgtk_clear_under_internal_border): Re-port code for X. + +2021-01-30 Yichao Yu <yyc1992@gmail.com> + + Add support for setting cursor location using Gtk IM Context + + The existing XIC implementation doesn't work when using Gtk IM Context. + Instead, `gtk_im_context_set_cursor_location` should be used + to update the cursor information for the input method. + + * src/pgtkim.c (pgtk_im_set_cursor_location): New function to tell gtk + cursor location. + * src/pgtkterm.c (pgtk_draw_window_cursor): Remove invalid code and + add new code to call the function. + * src/pgtkterm.h: Add the function declaration. + +2021-01-29 João Távora <joaotavora@gmail.com> + + #fix 608: fix bug in eglot-code-actions + + Suggested by GitHub user "vconcat". + + * eglot.el (eglot-code-actions): Use a vector for transmitting + action-kind. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/606 + +2021-01-28 João Távora <joaotavora@gmail.com> + + * eglot.el (eglot): tweak docstring grammar. + +2021-01-28 Andrii Kolomoiets <andreyk.mad@gmail.com> + João Távora <joaotavora@gmail.com> + + Offer shortcut commands to commonly invoked code actions + + See also https://github.com/joaotavora/eglot/issues/598. + + Make eglot-code-actions accept a new action-kind argument. If there + is only one action of that kind, apply it. This allows us to create + actions shortcuts like eglot-code-action-organize-imports, etc. + + * eglot.el (eglot-code-actions): Accept new argument action-kind. + (eglot--code-action): New function-defining helper macro. + (eglot-code-action-organize-imports) + (eglot-code-action-extract) + (eglot-code-action-inline) + (eglot-code-action-rewrite) + (eglot-code-action-quickfix): New commands. + + * README.md: Mention new feature. + + * NEWS.md: Mention new feature. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/411 + +2021-01-28 ssnnoo <43703153+ssnnoo@users.noreply.github.com> (tiny change) + + Add fortls for fotran (f90-mode) + + * eglot.el (eglot-server-programs): Add fortls + + * README.md: mention fortls + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/603 + +2021-01-27 Brian Leung <bkleung89@gmail.com> (tiny change) + + Add rnix-lsp server for nix-mode, community suggestion + + * eglot.el (eglot-server-programs): Add rnix-lsp + + * README.md: mention rnix-lsp + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/599 + +2021-01-23 Yuuki Harano <masm+github@masm11.me> + + Add scale factor in display-monitor-attributes-list. + + * lisp/frame.el (display-monitor-attributes-list): Add the comment. + * src/frame.c (make_monitor_attribute_list): Include the scale factor value. + (syms_of_frame): Declare intern'ed scale-factor. + * src/frame.h (struct MonitorInfo): Add scale_factor member. + * src/pgtkfns.c (Fpgtk_display_monitor_attributes_list): Set the value. + +2021-01-20 Yuuki Harano <masm+github@masm11.me> + + Make imagemagick images less blurry. + + * src/image.c: New macro to specify non-scaled mode. + (image_set_transform): Don't skip even if imagemagick. + (imagemagick_load_image): Don't calculate desired size. + +2021-01-16 Felicián Németh <felician.nemeth@gmail.com> + João Távora <joaotavora@gmail.com> + + Fix eglot-completion-at-point for multiple matches + + The test-completion case shouldn't return t when there are multiple + matches. Similarly, the try-completion should return t only if the + match is exact. See (info "(elisp)Programmed Completion"). + + * eglot.el (eglot-completion-at-point): Instead of testing + memberships, use test-completion and try-completion suggested + by (info "(elisp)Programmed Completion"). + + * eglot-tests.el (non-unique-completions): Add new test. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/365 + +2021-01-16 Andrii Kolomoiets <andreyk.mad@gmail.com> + + Run exit-function only for finished completion + + Per https://github.com/joaotavora/eglot/issues/594. + + * eglot.el (eglot-completion-at-point): Respect 'status' argument in + completion's exit function. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/592 + +2021-01-13 Augusto Stoffel <arstoffel@gmail.com> + + Use `path-separator', not ":", in eclipse/jdt custom code + + This is needed on Windows. + + * eglot.el (eglot--eclipse-jdt-contact): Replace literal ":" by `path-separator'. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/513 + +2021-01-13 Augusto Stoffel <arstoffel@gmail.com> + + Define a face for symbol highlight + + Also per https://github.com/joaotavora/eglot/issues/583. + + * eglot.el (eglot-highlight-symbol-face): New face. + (eglot--highlight-piggyback): Use it. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/584 + +2021-01-13 João Távora <joaotavora@gmail.com> + + Unbreak interactivee eglot--connect for complex contact specs + + The previous commit for https://github.com/joaotavora/eglot/issues/526 was completely botched. One has to check + current-prefix-arg for the presence of C-u, not eglot--guess-contact + INTERACTIVE arg. + + * eglot.el (eglot--guess-contact): Be more careful when + processing guess. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/593 + +2021-01-11 Yuuki Harano <masm+github@masm11.me> + + Fix visual-bell on X + + * src/pgtkterm.c (pgtk_flash): Change size source. + + On X, surface_orig is not an image surface but xlib surface, so I + cannot get its size with cairo_image_surface_get_{width,height}. + +2021-01-11 Yuuki Harano <masm+github@masm11.me> + + Free unneeded context + + * src/pgtkterm.c (pgtk_flash): Free unneeded cairo_t. + +2021-01-10 João Távora <joaotavora@gmail.com> + + C-u m-x eglot discards class guessed by eglot--guess-contact + + This will prevent C-u M-x eglot RET rust-analyzer from bringing into + play the eglot-rls server class, which is only valid for the default + RLS server. + + Found when testing for https://github.com/joaotavora/eglot/issues/526, though this bug might not necessarily be + the problem being reported there. + + * eglot.el (eglot--guess-contact): Don't assume guessed class if + INTERACTIVE. + +2021-01-10 Ted Zlatanov <tzz@lifelogs.com> + + Remove use-package theme from global list of custom-enabled-themes + + * eval-when-compile for cases where use-package is only required at + compile time + + * remove the 'use-package theme from custom-enabled-themes so e.g. + (mapc #'disable-theme custom-enabled-themes) + won't kill user settings. + +2021-01-10 Yuuki Harano <masm+github@masm11.me> + + Fix gtk icon theme does not reflect + + * lisp/term/pgtk-win.el (x-gtk-stock-map): Port from X. + (icon-map-list): Port from X. + (x-gtk-stock-cache): Port from X. + (x-gtk-map-stock): Port from X. + * src/pgtkterm.c (syms_of_pgtkterm): Remove duplicated definition. + +2021-01-06 John Wiegley <johnw@newartisans.com> + + Merge pull request from tzz/tzz/set-comment-and-synthetic-theme + + GitHub-reference: https://github.com/jwiegley/use-package/issues/881 + +2021-01-05 Jürgen Hötzel <juergen@hoetzel.info> (tiny change) + + Flex completion style is not available on emacs < 27 + + * eglot.el (eglot--managed-mode): check if flex style available + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/582 + +2021-01-03 Yuuki Harano <masm+github@masm11.me> + + Add a function to set monitor scale factor manually + + * src/pgtkfns.c (pgtk_get_monitor_scale_factor): New function to get + manual scale factor from alist. + (Fpgtk_set_monitor_scale_factor): New function to set manual scale + factor into alist. + (Fx_display_pixel_width): Use manual scale factor first, if not set, + use gdk's one. + (Fx_display_pixel_height): Use manual scale factor first, if not set, + use gdk's one. + (Fpgtk_display_monitor_attributes_list): Use manual scale factor + first, if not set, use gdk's one. + (syms_of_pgtkfns): initialize alist. + +2021-01-03 Yuuki Harano <masm+github@masm11.me> + + Fix display-pixel-width/height to return physical pixel size. + + * src/pgtkfns.c (Fx_display_pixel_width): + (Fx_display_pixel_height): Return bottom/right-most of all the monitors. + +2021-01-03 Yuuki Harano <masm+github@masm11.me> + + Make display-mm-width/height consider multi-monitor. + + * src/pgtkfns.c (Fx_display_mm_height): + (Fx_display_mm_width): Calculate width/height mm assuming monitor + other than origin does not overlap. + +2021-01-03 Yuuki Harano <masm+github@masm11.me> + + Fix pgtk-display-monitor-attributes-list to return physical pixel sizes. + + * src/pgtkfns.c (Fpgtk_display_monitor_attributes_list): Re-port it. + +2020-12-26 Yuuki Harano <masm+github@masm11.me> + + Follow get-buffer-create change + + * src/pgtkfns.c (Fx_show_tip): Pass nil to get-buffer-create. + +2020-12-22 João Távora <joaotavora@gmail.com> + + Don't block in eglot-imenu if performing non-essential task + + eglot-imenu is used by imenu which in turn is used by which-func-mode + called from an idle timer. We don't want it to block in that + situation. Latest which-func mode now sets "non-essential" when + performing its duties, so we leverage that in eglot-imenu. + + * eglot.el (eglot-imenu): Use non-essential. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/212 + +2020-12-22 João Távora <joaotavora@gmail.com> + + Use flex completion if available by default + + * eglot.el (eglot--managed-mode): Set completion-styles. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/575 + +2020-12-16 João Távora <joaotavora@gmail.com> + + Bump eglot version to 1.7 + + * eglot.el (Version): Bump to 1.7. + (Package-Requires): Bump dependency versions. + +2020-12-16 João Távora <joaotavora@gmail.com> + + Allow eglot to stay out of xref configuration + + * eglot.el (eglot-stay-out-of): Rework docstring. + (eglot--managed-mode): Can now stay out of xref. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/569 + +2020-12-16 João Távora <joaotavora@gmail.com> + + Cosmetic whitespace fix (indentation, long lines, tabs->spaces) + + * eglot.el (eglot-server-programs, for, eglot--after-change) + (eglot-code-actions, eglot-register-capability) + (eglot-register-capability): Fix whitespace. + +2020-12-16 TANIGUCHI Kohei <a.d.xvii.kal.mai@gmail.com> (tiny change) + + Use haskell-language-server in eglot-server-programs + + Use haskell-language-server instead of deprecated Haskell IDE Engine + + https://github.com/haskell/haskell-language-server + https://github.com/haskell/haskell-ide-engine#deprecated + + * README.md: Replace Haskell IDE Engine with haskell-language-server + + * eglot.el (eglot-server-programs): Replace hie-wrapper with + haskell-language-server-wrapper + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/572 + +2020-12-15 João Távora <joaotavora@gmail.com> + + Robustify previous fix of onchange breakage + + From the in-code comments: + + ;; githubhttps://github.com/joaotavora/eglot/issues/259 and githubhttps://github.com/joaotavora/eglot/issues/367: With `capitalize-word' or somesuch, + ;; `before-change-functions' always records the whole word's `b-beg' + ;; and `b-end'. Similarly, when coalescing two lines into one, + ;; `fill-paragraph' they mark the end of the first line up to the end + ;; of the second line. In both situations, args received here + ;; contradict that information: `beg' and `end' will differ by 1 and + ;; will likely only encompass the letter that was capitalized or, in + ;; the sentence-joining situation, the replacement of the newline with + ;; a space. That's we keep markers _and_ positions so we're able to + ;; detect and correct this. We ignore `beg', `len' and + ;; `pre-change-len' and send "fuller" information about the region + ;; from the markers. I've also experimented with doing this + ;; unconditionally but it seems to break when newlines are added. + + * eglot.el (eglot--after-change): Robustify fix. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/367 + +2020-12-14 João Távora <joaotavora@gmail.com> + + Don't let m-x fill-paragraph break didchange + + M-x fill-paragraph represents some paragraph-fillling changes very + summarily. Filling + + 1 // foo + 2 bar + + Into + + 1 // foo bar + + Only makes two changes: a deletion of the "// " and a replacement of a + newline with a space character. The second change fooled Eglot's fix + for https://github.com/joaotavora/eglot/issues/259, by making a change similar to the one it is made to detect + and correct. That fix should target things that happen on the same + line, this not being one of those things. + + * eglot.el (eglot--after-change): Only apply fix to https://github.com/joaotavora/eglot/issues/259 if + case-fiddling happens on same line. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/367 + +2020-12-13 Yuuki Harano <masm+github@masm11.me> + + * src/pgtkterm.c (map_event): Remove record_asynch_buffer_change call. + +2020-12-08 Yuuki Harano <masm+github@masm11.me> + + Fix DEL key behavior + + * lisp/simple.el (normal-erase-is-backspace-setup-frame): Include pgtk + in window-system group. + +2020-11-29 Ted Zlatanov <tzz@lifelogs.com> + + Create new "use-package" themse and use it for :custom with custom-theme-set-variables + + set property theme-value to avoid saving variable + +2020-11-29 Ted Zlatanov <tzz@lifelogs.com> + + Revert "use-package-core.el: use the Emacs set-default function to avoid saving :custom vars twice" + + This reverts commit 8c31c57106e2938d627bf4107627c003620d2dd5. + +2020-11-29 Ted Zlatanov <tzz@lifelogs.com> + + set saved-variable-comment from :custom + + GitHub-reference: https://github.com/jwiegley/use-package/issues/861 + +2020-11-28 Yuuki Harano <masm+github@masm11.me> + + Merge branch 'master' into feature/pgtk + + * src/pgtkterm.c (scroll_event): Shut up warnings + +2020-11-28 Yuuki Harano <masm+github@masm11.me> + + Improve smooth scroll + + * src/pgtkterm.c (scroll_event): Accumulate deltas and calculate + the number of lines. + (pgtk_term_init): Set smooth scroll parameters. + * src/pgtkterm.h (scroll): New members to store parameters. + +2020-11-27 Yuuki Harano <masm+github@masm11.me> + + Enable harfbuzz + + * src/pgtkfns.c (Fx_create_frame): Register ftcrhb font driver if enabled. + +2020-11-26 Yuuki Harano <masm+github@masm11.me> + + Add support for hyper modifier key + + * src/pgtkterm.c (x_find_modifier_meanings): Autodetect key mask. + (pgtk_gtk_to_emacs_modifiers): Use autodetected mask instead of GDK's. + (pgtk_emacs_to_gtk_modifiers): Use autodetected mask instead of GDK's. + (key_press_event): Ignore hyper as well as super. + * src/pgtkterm.h (struct pgtk_display_info): New member for hyper. + +2020-11-25 Yuuki Harano <masm+github@masm11.me> + + Fix compilation issue when --enable-checking=glyphs + + * src/pgtkfns.c (Fx_create_frame): Remove code surrounded by GLYPH_DEBUG. + (x_create_tip_frame): Remove code surrounded by GLYPH_DEBUG. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Fix crash when .schema.xml is not installed + + * src/pgtkfns.c (parse_resource_key): Check return value. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Add copyright line + + * etc/org.gnu.emacs.defaults.gschema.xml: Add copyright line. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Work around gtk_im_context_filter_keypress() issue with super key + + * src/pgtkterm.c (x_find_modifier_meanings): Convert virtual super + to non-virtual one. + (pgtk_gtk_to_emacs_modifiers): Use non-virtual one. + (pgtk_emacs_to_gtk_modifiers): Use non-virtual one. + (key_press_event): Don't call pgtk_im_context_filter_keypress while + super is pressed. + * src/pgtkterm.h (struct pgtk_display_info): New member. + +2020-11-23 Jeff Walsh <jeff.walsh@drtusers-MacBook-Pro.local> + + lisp/term/pgtk-win.el: Add copyright file header + +2020-11-23 Jeff Walsh <jeff.walsh@drtusers-MacBook-Pro.local> + + Update copyright dates for PGTK files + + * src/pgtkfns.c: + * src/pgtkgui.h: + * src/pgtkim.c: + * src/pgtkmenu.c: + * src/pgtkselect.c: + * src/pgtkselect.h: + * src/pgtkterm.c: + * src/pgtkterm.h: Update copyright dates - No Functional Changes + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Fix startup failure on svg-unsupported environments + + * src/pgtkterm.c (pgtk_bitmap_icon): Re-port X-code. + (pgtk_term_init): Add member initialization. + * src/pgtkterm.h (struct pgtk_display_info): Add member. + (struct pgtk_output): Add member. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Avoid weird behavior when resizing with top-left corner + + * src/frame.c (syms_of_frame): Defaults frame_resize_pixelwise to true. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Don't use gtk_window_resize to resize offscreen window + + * src/xwidget.c (Fmake_xwidget): Use gtk_container_check_resize instead. + (Fxwidget_resize): Use gtk_container_check_resize instead. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Avoid gtk warnings on X + + * src/xwidget.c (xwidget_osr_draw_cb): Call it to avoid alloc_needes. + +2020-11-23 Kira Bruneau <kira.bruneau@gmail.com> + + Avoid mutating invocation-name (tiny change) + + * lisp/term/pgtk-win.el (window-system-initialization): copy invocation-name. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Fix Gtk warnings + + * src/gtkutil.c (xg_frame_set_char_size): Call appropriate function + (xg_set_undecorated): Do nothing if child frame. + (xg_set_no_focus_on_map): Do nothing if child frame. + (xg_set_no_accept_focus): Do nothing if child frame. + (xg_set_frame_icon): Do nothing if child frame. + (xg_get_file_name): Do nothing if child frame. + (xg_get_font): + * src/pgtkterm.c (pgtk_focus_frame): Do nothing if child frames. + (x_set_frame_alpha): Select correct widget. + (x_new_focus_frame): Focus only when non-child frames. + (pgtk_set_event_handler): Don't set for child frames. + * src/pgtkfns.c (xg_set_icon): Do nothing if child frames. + (xg_set_icon_from_xpm_data): Do nothing if child frames. + (pgtk_set_sticky): Do nothing if child frames. + (Fx_show_tip): Do nothing if child frames. + (Fpgtk_set_mouse_absolute_pixel_position): Select correct widget. + (Fpgtk_mouse_absolute_pixel_position): Select correct widget. + * src/pgtkmenu.c (pgtk_menu_show): + (pgtk_dialog_show): + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Fix crash on drag and drop + + * src/pgtkterm.c (pgtk_select): Move dispatch before + g_main_context_query. + (drag_drop): Remove drag_drop. + (drag_data_received): Rename arg. + (pgtk_set_event_handler): Remove drag-drop callback. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Fix mouse cursor doesn't appear on motion events on xwidgets + + * src/xwidget.c (xwidget_osr_event_forward): Propagate motion notify. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Fix tooltips don't hide on events + + * src/pgtkterm.c: New variable to indicate whether any event occurs. + (configure_event): Clear help string on a event. + (leave_notify_event): Clear help string on a event. + (motion_notify_event): Use gen_help_event. + (pgtk_set_event_handler): Hook configure-event for outer widgets. + (pgtk_term_init): Clear the flag. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Fix crash on creating child frames. + + * src/pgtkfns.c (frame_geometry): Returns nil when no widget. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Fix crash when child frame updates toolbar + + * src/gtkutil.c (update_frame_tool_bar): Do nothing when child frame. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Exclude Xlib's modifier keys + + * src/pgtkterm.c (IsModifierKey): New macro. + (key_press_event): Exclude Xlib's modifier keys. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Re-implement childframe with emacsgtkfixed + + * src/emacsgtkfixed.c (G_DEFINE_TYPE): Make emacs_fixed_get_type public. + * src/emacsgtkfixed.h (EMACS_TYPE_FIXED): Make emacs_fixed_get_type public. + * src/gtkutil.c (xg_frame_set_char_size): Call appropriate functions + by whether the frame is a child frame or not. + (xg_create_frame_widgets): Use GTK_WINDOW_TOPLEVEL when creating child frame. + (xg_create_frame_outer_widgets): New function. + (xg_set_skip_taskbar): Call only when top-level frame. + (xg_set_no_accept_focus): See appropriate widget. + * src/gtkutil.h: New declaration. + * src/pgtkfns.c (pgtk_set_name_internal): Do only when top-level frame. + (Fx_create_frame): Reparent the frame. + (frame_geometry): Call appropriate functions + (syms_of_pgtkfns): Port from X code. + * src/pgtkterm.c (x_free_frame_resources): Destroy appropriate widget. + (x_calc_absolute_position): Port from X code. + (x_set_offset): Re-port from X code. + (pgtk_set_window_size): Use appropriate widget. + (pgtk_make_frame_visible): Use appropriate widget. + (pgtk_make_frame_invisible): Use appropriate widget. + (x_set_parent_frame): Reparent the frame. + (x_set_z_group): Process only when top-level frame. + (pgtk_text_icon): Process only when top-level frame. + (set_fullscreen_state): Process only when top-level frame. + (frame_highlight): Hold ref. + (frame_unhighlight): Hold ref. + (pgtk_window_is_of_frame_recursive): Prune child frames. + (pgtk_window_is_of_frame): Prune child frames. + (print_widget_tree_recursive): Don't call this when not debugging. + (pgtk_handle_draw): Don't call this when not debugging. + (pgtk_set_event_handler): expect map-event for edit_widget not outer widget. + * src/pgtkterm.h (FRAME_WIDGET): New macro. + +2020-11-23 Jeff Walsh <fejfighter@gmail.com> + + Add support for x-support-frames + + * src/pgtkfns.c (Fx_export_frames): + (syms_of_pgtkfns): port from X11 version + * src/pgtkterm.c (pgtk_cr_accumulate_data): + (pgtk_cr_destroy): + (pgtk_cr_export_frames): port from X11 + * src/pgtkterm.h: add defs + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Enable GtkIMContext by default + + * lisp/term/pgtk-win.el: Call pgtk-use-im-context after init. + + * src/pgtkim.c (pgtk_im_use_context): New function. + (pgtk_im_init): Call pgtk_im_use_context. + (Fpgtk_use_im_context): Call pgtk_im_use_context. + (syms_of_pgtkim): New variable Vpgtk_use_im_context_on_new_connection. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Remove duplicated syms_of_xwidget call + + * src/emacs.c (main): Remove duplicated syms_of_xwidget() call. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Self-implement tooltip + + * src/gtkutil.c (xg_create_frame_widgets): Use popup for tooltip. + * src/pgtkfns.c (unwind_create_tip_frame): Port X code. + (x_create_tip_frame): Re-port X code. + (x_hide_tip): Re-port X code. + (Fx_show_tip): Re-port X code. + (frame_geometry): Get left_pos and top_pos here. + (syms_of_pgtkfns): Add variables for tooltip. + * src/pgtkterm.c (pgtk_set_event_handler): Set event handler for tooltip. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Add PGTK to system-configuration-features + + * configure.ac: Set HAVE_PGTK when configuring for PGTK, and + add PGTK for iteration. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Re-port image drawing code from X + + * src/pgtkterm.c (x_cr_draw_image): Re-port X code. + (x_draw_image_foreground): Re-port X code. + (x_draw_image_glyph_string): Re-port X code. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Make pointer visible when motion notify event + + * src/pgtkterm.c (motion_notify_event): set pending_signals to true. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Fix non-English layout does not work + + * src/pgtkterm.c (key_press_event): Use Vlocale_coding_system. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Fix font lock is not applied on continued lines + + * src/pgtkterm.c (pgtk_parse_color): Remove alpha bits. + +2020-11-23 Jeff Walsh <fejfighter@gmail.com> + + Restore support for terminal only emacs in PGTK (add --with-pgtk) + + * configure.ac: add "--with-pgtk" switch for building pgtk terminal + support. + Adjust X11 window system tests to no clobber pgtk preferences + +2020-11-23 Jeff Walsh <fejfighter@gmail.com> + + Add font chooser functionality + + * src/pgtkfns.c (Fpgtk_popup_font_panel): repurpose X/gtk font chooser code + (syms_of_pgtkfns): add new symbol + +2020-11-23 Jeff Walsh <fejfighter@gmail.com> + + Fix migrating Child frames + + * src/pgtkterm.c: + (x_calc_absolute_position): Remove Function that has no effect + (x_set_offset): titlebar off should not be stored as an offset, only + used to calculate final move locations + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + * src/keyboard.c (make_lispy_event): Fix coding style + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Change coding style + + * src/gtkutil.c (xg_display_open): + (xg_get_image_for_pixmap): + (xg_frame_resized): + (xg_create_frame_widgets): + (x_wm_set_size_hint): + (xg_frame_restack): + (xg_finish_scroll_bar_creation): + (xg_update_scrollbar_pos): + (xg_update_horizontal_scrollbar_pos): + (xg_set_toolkit_scroll_bar_thumb): + (xg_event_is_for_scrollbar): + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Fix coding style + + * src/emacs.c (main): Fix coding style + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Change coding style + + * src/image.c (image_create_pattern_from_pixbuf): Change coding style + (image_create_bitmap_from_data): Change coding style + (image_create_bitmap_from_file): Change coding style + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + * src/pgtkselect.h: Change coding style + + * src/pgtkim.c: Change coding style + + * src/pgtkterm.h: Change coding style + + * src/pgtkterm.h: Remove unused code + + * src/pgtkgui.h: change coding style + + * src/pgtkmenu.c: change coding style + + * src/pgtkselect.c: change coding style + + * src/pgtkfns.c: change coding style + + * src/pgtkterm.c: change coding style + + * src/pgtkmenu.c (set_frame_menubar): Suppress gcc warning + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + * src/pgtkterm.c (pgtk_defined_color): support gtk special colors + + Color functions take the frame + + * src/gtkutil.c (xg_check_special_colors): pass frame as argument. + * src/pgtkfns.c (x_set_foreground_color, x_set_background_color, + x_set_cursor_color, pgtk_set_scroll_bar_foreground, + pgtk_set_scroll_bar_background, Fxw_color_defined_p, + Fxw_color_values): pass frame as argument. + * src/pgtkterm.c (pgtk_parse_color): take frame as argument. + (pgtk_lisp_to_color): take frame as argument, and pass it. + + Remove pgtk_lisp_to_color + + * src/pgtkfns.c (x_set_foreground_color, x_set_background_color, + x_set_cursor_color): use x_decode_color instead of pgtk_lisp_to_color. + (Fxw_color_defined_p, Fxw_color_values): + use pgtk_defined_color instead of pgtk_lisp_to_color. + * src/pgtkterm.c (pgtk_lisp_to_color): remove. + + * src/gtkutil.c (xg_check_special_colors): change color format + + * src/pgtkterm.h: remove pgtk_lisp_to_color declaration + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + * pgtkmenu.c (set_frame_menubar): fix empty menu. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + Make icons and titles work like on X + + * pgtk-win.el (frame-title-format, icon-title-format): remove. + * pgtkfns.c (pgtk_set_name_as_filename): remove. + * pgtkfns.c (pgtk_set_name_internal): remove gtk_window_set_icon_name call. + * pgtkfns.c (pgtk_set_name): change value of update_mode_lines. + * pgtkfns.c (pgtk_explicitly_set_name): + prefer the symbol to an immediate value. + * pgtkfns.c (pgtk_implicitly_set_name): remove pgtk_set_name_as_filename call. + * pgtkfns.c (x_set_icon_type, x_set_icon_name): re-port from X code. + * pgtkfns.c (xg_set_icon, xg_set_icon_from_xpm_data): port from X code. + * pgtkterm.c (pgtk_bitmap_icon, pgtk_text_icon, pgtk_create_terminal): + port from X code. + * pgtkterm.h: add function declarations. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + * pgtk-win.el: fix compile-time warnings. + + * src/pgtkterm.c: Remove incorrect mark_object call. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + follow x_set_internal_border_width change. + + * ../src/pgtkfns.c (x_set_internal_border_width): + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + restore frame_rehighlight_hook. + + * src/frame.c (gui_set_border_width): + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + use pgtk_menu_set_in_use. + + * ../src/pgtkfns.c: + (Fx_file_dialog, clean_up_dialog): + + * src/pgtkmenu.c (pgtk_menu_wait_for_event): + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + implement popup/context menu + + * ../src/pgtkterm.c (x_draw_glyph_string_background) + (x_draw_glyph_string_foreground) + (x_draw_composite_glyph_string_foreground) + (x_draw_glyphless_glyph_string_foreground, x_draw_relief_rect) + (x_draw_box_rect, x_draw_glyph_string_box, x_draw_image_relief) + (x_draw_image_foreground, x_draw_image_glyph_string) + (button_event): + + * src/pgtkterm.h (struct pgtk_display_info): + + * src/pgtkmenu.c (pgtk_menu_set_in_use) + (pgtk_menu_wait_for_event, Fx_menu_bar_open_internal) + (popup_widget_loop, pgtk_activate_menubar) + (popup_deactivate_callback, show_help_event): new functions + (menu_highlight_callback): remove + (update_frame_menubar, popup_selection_callback, pop_down_menu) + (create_and_show_popup_menu, cleanup_widget_value_tree) + (pgtk_menu_show, dialog_selection_callback): new + (create_and_show_dialog, pgtk_dialog_show, pgtk_popup_dialog) + (popup_activated, Fmenu_or_popup_active_p, syms_of_pgtkmenu): + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + minimize gtkutil.c differences. + + * src/pgtkterm.h: remove compile time ifdefs + + * src/gtkutil.h: block out unused decl + + * src/gtkutil.c: + (xg_get_pixbuf_from_pix_and_mask, xg_height_or_width_changed) + (xg_create_frame_widgets, x_wm_set_size_hint) + (xg_event_is_for_menubar, update_frame_tool_bar): + + resolve argument type mismatch. + fix compatibility. + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + improve code readability. + + * src/gtkutil.c (xg_create_frame_widgets): + +2020-11-23 Jeff Walsh <jewalsh@redhat.com> + + Set screen/display dpi res to make broadway work as expected + + * src/pgtkterm.c (pgtk_initialize_display_info) + (window_state_event, pgtk_term_init): + + * src/gtkutil.c (xg_create_frame_widgets): + + * src/pgtkterm.c (pgtk_initialize_display_info) + (window_state_event, pgtk_term_init): + + * src/ftcrfont.c (ftcrfont_open): + +2020-11-23 Jeff Walsh <jawalsh@localhost.localdomain> + + Some work toward posframe on wayland + + * src/pgtkterm.c (flip_cr_context, x_set_offset): update for new functionality + (pgtk_set_window_size): remove dead code + (x_set_parent_frame): cleanup trace code + (pgtk_cr_update_surface_desired_size): add comment + + * src/pgtkmenu.c (Fmenu_or_popup_active_p): + + * src/pgtkfns.c (pgtk_frame_parm_handlers, Fx_create_frame): + + * src/gtkutil.c (xg_create_frame_widgets, x_wm_set_size_hint): + + * src/gtkutil.c (xg_create_frame_widgets): + + hacky GTK offsets that will need better calculations + + Get parent frame's editor widget allocation for the offset + + Fix child-frame offsets for negative values + + Add some function comments around the new double context handling + +2020-11-23 Jeff Walsh <jawalsh@localhost.localdomain> + + End Resize flickering by copying surface rather than just clearing + + * src/pgtkterm.h (FRAME_NATIVE_WINDOW): + + * src/pgtkterm.c (pgtk_set_window_size): cleanup traces + (x_draw_bar_cursor, pgtk_handle_draw, syms_of_pgtkterm): + +2020-11-23 Jeff Walsh <jawalsh@localhost.localdomain> + + Bring pgtk more inline with X11-cairo builds + + * src/pgtkterm.h (struct pgtk_output): + + * src/pgtkterm.c (FRAME_CR_ACTIVE_CONTEXT, flip_cr_context) + (x_draw_bar_cursor, pgtk_scroll_run, pgtk_update_end) + (pgtk_cr_draw_image, pgtk_flash, pgtk_handle_draw) + (pgtk_cr_update_surface_desired_size, pgtk_begin_cr_clip) + (pgtk_cr_destroy_frame_context): + + * src/image.c (image_create_pattern_from_pixbuf): + + - Don't create a context each time, just hold a reference + + - Pull in a few cairo image changes from master + + - Remove redundant code in pgtk_update_begin() + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + update redisplay_interface. + + * src/pgtkfns.c (Fx_create_frame, pgtk_default_font_parameter): + + * src/pgtkterm.c (pgtk_redisplay_interface): + + * src/pgtkterm.h: + +2020-11-23 Yuuki Harano <masm+github@masm11.me> + + emacsclient should use both of DISPLAY and WAYLAND_DISPLAY. + + * lisp/server.el (server-create-window-system-frame): error out when + not on a supported window + + * lib-src/emacsclient.c (decode_options): handle WALAND_DISPLAY on PGTK + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Before sleep, dispatch draw events. + + * src/pgtkterm.c (pgtk_select): remove sigio signal + (pgtk_term_init): dispatch draw + +2020-11-21 Jeff Walsh <jawalsh@localhost.localdomain> + + End Resize flickering by copying surface rather than just clearing + + * src/pgtkterm.h (struct pgtk_output): store desired sizes + + * src/pgtkterm.c (FRAME_CR_SURFACE_DESIRED_HEIGHT) + (FRAME_CR_SURFACE_DESIRED_WIDTH, size_allocate, configure_event) + (pgtk_cr_update_surface_desired_size): add "desired" size for handling + surface change + + * src/gtkutil.c (xg_frame_resized, xg_create_frame_widgets): remove + surface destroy, turn off double buffer call + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Add support for Jpeglib + + configure.ac: enable jpeglib support for pgtk + + jpeglib を使えるようにした。 + + imagemagick がうまく機能してるので気付かなかった… + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Let gtk handle scaling. + + * src/gtkutil.c (xg_get_scale): + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + implement pre-edit input method + + * src/termhooks.h (enum event_kind): new pgtk value + + * src/pgtkterm.h (struct pgtk_display_info): + + * src/pgtkterm.c (x_free_frame_resources, pgtk_delete_terminal) + (pgtk_enqueue_string, pgtk_enqueue_preedit, key_press_event) + (focus_in_event, focus_out_event, pgtk_term_init): call pgtkim + + * src/pgtkim.c: new file + (im_context_commit_cb, im_context_retrieve_surrounding_cb) + (make_color_string, im_context_preedit_changed_cb) + (im_context_preedit_end_cb, im_context_preedit_start_cb) + (pgtk_im_focus_in, pgtk_im_focus_out, pgtk_im_filter_keypress) + (pgtk_im_finish, Fpgtk_use_im_context, syms_of_pgtkim): + + * src/pgtkfns.c (check_pgtk_display_info): + + * src/keyboard.c (kbd_buffer_get_event, make_lispy_event) + (keys_of_keyboard): + + * src/emacs.c (main): add syms_of_pgtkim + + * lisp/term/pgtk-win.el (pgtk-preedit-text): new defun + + * configure.ac (XWIDGETS_OBJ): add pgtkim.o + + input method 対応 + + preedit を overlay で表示するようにした。 + + preedit 表示後すぐに反映されなかったのを修正 + + この機能を ON/OFF できるようにした。 + + default off. + + 確定と同時に次の preedit が始まった場合に表示位置がおかしかったのを修正。 + + sample. + + preedit をテキストで渡すようにした + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Support focus on click event + + * src/pgtkterm.c (enter_notify_event, leave_notify_event) + (focus_in_event, focus_out_event): support focus on click + + focus-on-click な環境に対応。 + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + experimental support of tab-bar. + + * src/window.h: compile conditional + + * src/pgtkterm.h: function decls + + * src/pgtkterm.c (x_draw_image_relief, pgtk_create_terminal) + (motion_notify_event, button_event): tabbar support + + * src/pgtkfns.c (x_set_tab_bar_lines, x_change_tab_bar_height) + (pgtk_frame_parm_handlers, Fx_create_frame, frame_geometry): tabbar support + + 余計なイベントが生成されていたのを修正。 + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Make multipdisplay work by limiting selection while enabled + + * src/pgtkterm.c (pgtk_mouse_position): + + * src/pgtkselect.c (pgtk_selection_usable): new function + (Fpgtk_own_selection_internal, Fpgtk_disown_selection_internal) + (Fpgtk_selection_exists_p, Fpgtk_selection_owner_p) + (Fpgtk_get_selection_internal): check usable selection + + multi-display で落ちる理由を一つ潰した。 + + まだまだありそう。 + + multi-display 時は selection を使えないようにした。 + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Improve drawing efficiency by refactoring code + + * ../src/pgtkterm.c (fill_background, fill_background_by_face) + (x_draw_glyph_string_background, x_draw_glyph_string_bg_rect) + (x_draw_image_glyph_string, x_draw_stretch_glyph_string) + (pgtk_clear_under_internal_border): Refator duplicate code + + 更に効率化。 + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + improve some efficiency - simplify draws + + * src/pgtkterm.h (struct pgtk_bitmap_record): + + * src/pgtkterm.c (create_background_surface_by_face): + + * src/image.c (image_create_pattern_from_pixbuf) + (image_create_bitmap_from_data, image_create_bitmap_from_file): + + 少し効率化。 + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + implement restacking and cleanup frame z order + + src/pgtkfns.c: + (pgtk_frame_restack, Fpgtk_frame_restack, syms_of_pgtkfns): + + pgtk-frame-restack を実装だけ。 + + ついでに、pgtk-frame-list-z-order は無意味なので削除した。 + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + implement pgtk-frame-list-z-order same as frame-list. + + * src/pgtkfns.c (Fpgtk_frame_list_z_order): return frame list as it's + the same + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Implement Scroll-bar-forground and scroll-bar-background + + * src/pgtkterm.h (struct pgtk_output): + + * src/pgtkterm.c (x_free_frame_resources): + + * src/pgtkfns.c (pgtk_set_scroll_bar_foreground) + (pgtk_set_scroll_bar_background, pgtk_frame_parm_handlers) + (Fx_create_frame): + + * src/gtkutil.c (xg_finish_scroll_bar_creation):handle scrollbar css values + + * etc/org.gnu.emacs.defaults.gschema.xml: add scroll bar fields + + scroll-bar-foreground, scroll-bar-background 実装。 + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + implement set-tool-bar-position and set-sticky + + * ../src/pgtkfns.c (pgtk_set_tool_bar_position) + (pgtk_frame_parm_handlers): + + tool-bar-position 実装。 + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + TIMERFD support for PGTK, prevent calling when timerfd<0 + + * ../src/atimer.c (set_alarm): + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Add PGTK support for fullscreen + + * src/gtkutil.c (x_wm_set_size_hint): Fullscreen support for PGTK + + fullscreen にできるようにした。 + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Use gsettings instead of X resource database + + * src/pgtkfns.c (pgtk_is_lower_char, pgtk_is_upper_char) + (pgtk_is_numeric_char, parse_resource_key) + (pgtk_get_defaults_value, pgtk_set_defaults_value) + (Fpgtk_set_resource, pgtk_get_string_resource): handle gsettings scheme + + * m4/gsettings.m4: new file + + * etc/org.gnu.emacs.defaults.gschema.xml: new file + + * configure.ac (GLIB_DISABLE_DEPRECATION_WARNINGS) + (gsettingsschemadir): + + * Makefile.in (gsettingsschemadir, GLIB_COMPILE_SCHEMAS) + (install, uninstall, clean): + + * .gitignore: add gschema + + *.gschema.valid は生成ファイルなので無視。 + + schema の置き場所を変更。 + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Implement Meta key detection + + * ../src/pgtkterm.c (x_find_modifier_meanings, ) + (key_press_event, construct_mouse_click, scroll_event) + (pgtk_term_init): + + * src/pgtkterm.h (struct pgtk_display_info): + + * ../src/gtkutil.c (xg_tool_bar_callback): + + meta キーの検出を実装。 + + X11 で alt キーを meta キーとして使えなくなっていたのを修正。 + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Implement invisible-pointer to create blinking effect + + * src/pgtkterm.h (struct pgtk_display_info): add cursor and callback + + * src/pgtkterm.c (x_setup_pointer_blanking) + (XTtoggle_invisible_pointer, x_toggle_visible_pointer): new functions + (pgtk_create_terminal, pgtk_term_init): use gdkcursor + + * src/pgtkgui.h: define Emacs_cursor as a GdkCursor + + invisible pointer 実装。 + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + init border_pixel. + + * ../src/pgtkfns.c (Fx_create_frame): remove if preprocessor + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + border_color/pixel width + + * src/pgtkterm.h (struct pgtk_output): + + * src/pgtkterm.c (x_free_frame_resources, frame_highlight) + (frame_unhighlight, pgtk_frame_rehighlight): use css information + + * src/pgtkfns.c (x_set_border_color, pgtk_frame_parm_handlers) + (Fx_create_frame): new functions connected + + * src/frame.c (gui_set_border_width): ifdef for PGTK + + border_color/pixel 対応。 + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Add support for handing the internal border + + src/pgtkterm.c (pgtk_clear_under_internal_border): remove #if 0 + src/pgtkfns.c (x_set_internal_border_width): add clear and fill support + + internal-border 対応。 + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Addframe highlighting support + + * ../src/pgtkterm.c: + (pgtk_focus_frame, set_opacity_recursively, x_set_frame_alpha) + (frame_highlight, frame_unhighlight, pgtk_frame_rehighlight) + (XTframe_rehighlight, x_new_focus_frame, pgtk_create_terminal): + + frame の highlight に対応。 + + とりあえず opacity のみ対応。 + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Add Stipple support for PGTK + + * ../src/pgtkterm.c (create_background_surface_by_face) + (create_background_surface, x_draw_glyph_string_background) + (x_draw_glyph_string_bg_rect, x_draw_image_glyph_string) + (x_draw_stretch_glyph_string, pgtk_draw_fringe_bitmap): handle stipple + + * ../src/image.c (image_create_bitmap_from_file, ) + (syms_of_image): Add pgtk support + + * ../lisp/faces.el (face-valid-attribute-values): add pgtk support + + stipple 対応。 + + stipple がまともに動いてなかったので修正。 + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Add support for make-frame-(in)visible + + * ../src/pgtkterm.c (pgtk_make_frame_visible_wait_for_map_event_cb) + (pgtk_make_frame_visible_wait_for_map_event_timeout) + (x_make_frame_visible, x_new_font) + (pgtk_make_frame_visible_invisible, pgtk_make_frame_visible) + (pgtk_redisplay_interface, pgtk_create_terminal, map_event) + (syms_of_pgtkterm): + + make-frame-visible/invisible 実装。 + +2020-11-21 Jeff Walsh <fejfighter@gmail.com> + + Early toolbar improvements + + * src/xdisp.c (redisplay_tool_bar): + + * src/pgtkterm.h: + + * src/pgtkterm.c: + (pgtk_make_frame_visible, pgtk_make_frame_invisible) + (pgtk_update_begin, pgtk_parse_color, pgtk_query_colors) + (syms_of_pgtkterm): + + * src/pgtkfns.c: cleanup function + + * src/image.c (image_create_bitmap_from_file): + + * src/gtkutil.c (xg_get_pixbuf_from_pix_and_mask): + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Add Preferred geometry settings + + * ../src/pgtkterm.h (struct pgtk_output): + + * ../src/pgtkterm.c (pgtk_set_window_size): + + * ../src/gtkutil.c (x_wm_set_size_hint): + + * ../src/emacsgtkfixed.c (emacs_fixed_get_preferred_width) + (emacs_fixed_get_preferred_height): + + Fixup toolbar handling + + toolbar, menubar の ON/OFF でサイズが変化していっていたのを修正。 + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Migrate to Emacs_GC + + * ../src/xfaces.c (x_create_gc, x_free_gc): + + * ../src/pgtkterm.h (struct pgtk_output, struct pgtk_output): + + * ../src/pgtkterm.c (x_set_cursor_gc, x_set_mouse_face_gc) + (x_setup_relief_color, x_draw_image_foreground_1) + (x_draw_image_foreground) + (pgtk_cr_draw_image, pgtk_draw_fringe_bitmap) + (pgtk_begin_cr_clip, pgtk_set_cr_source_with_gc_foreground) + (pgtk_set_cr_source_with_gc_background): + + * ../src/pgtkgui.h: + + * ../src/dispextern.h (struct glyph_string): clean up XGCValues emulation + + XGCValues, GC 廃止。 + + Emacs_GC に統一。 + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Add pgtk-read-file-name function + + * ../src/pgtkfns.c (read_file_name_closed_cb) + (Fpgtk_read_file_name, syms_of_pgtkfns): add function + + pgtk-read-file-name を作成。 + + toolbar からよく呼ばれるので… + +2020-11-21 Jeff Walsh <fejfighter@gmail.com> + + Implement menubar for pgtk emacs + + * src/xdisp.c (display_menu_bar): add pgtk case + + * ../src/pgtkterm.c (pgtk_create_terminal): update hooks + (pgtk_menu_show): delete + + * src/pgtkterm.h: add decls + + * src/pgtkmenu.c: new file + + * ../src/pgtkfns.c (x_set_menu_bar_lines) + (x_change_tool_bar_height, x_set_tool_bar_lines) + (Fx_create_frame): + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Cleanup x_* to gui_ to match upstream work + + * ../src/pgtkterm.h (struct pgtk_display_info): + + * ../src/pgtkterm.c (mark_pgtkterm, x_free_frame_resources) + (pgtk_update_window_end, pgtk_mouse_position) + (pgtk_redisplay_interface, pgtk_query_frame_background_color) + (pgtk_delete_terminal, pgtk_create_terminal) + (pgtk_query_frame_background_color, frame_highlight) + (motion_notify_event, button_event, scroll_event): + + * ../src/pgtkfns.c (x_set_cursor_color, x_icon) + (pgtk_frame_parm_handlers, x_default_font_parameter) + (Fx_create_frame): + + "for the time being, commit" -- rename x->gui, frame_X_X(f) macros + + ひとまず commit。 + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Simplify compilation condition + + * ../src/menu.c (single_menu_item): + + change condition. + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + replace listn with list. + + * ../src/pgtkfns.c (frame_geometry): + + replace listn with list. + +2020-11-21 Yuuki Harano <masm+github@masm11.me> + + Fix xdg-open handling + + * ../src/pgtkterm.c (pgtk_term_init, NUM_ARGV, pgtk_term_init): + + * ../lisp/net/browse-url.el (browse-url): + + xdg-open できなかったのを修正。 + +2020-11-21 Yuuki Harano <masm@masm11.ddo.jp> + + Add support for cursor_foreground_colors + + * ../src/pgtkterm.c (x_set_cursor_gc): + + * ../src/pgtkfns.c (x_set_cursor_color, Fx_create_frame) + (syms_of_pgtkfns): + + * src/pgtkterm.h (struct pgtk_output): + + cursor_foreground_color 対応。 + + あんまり意味なかった感じ。 + +2020-11-21 Yuuki Harano <masm@masm11.ddo.jp> + + Don't mark name_list_element as it's not required + + * ../src/pgtkterm.c (mark_pgtkterm): + + これは余分。 + +2020-11-21 Yuuki Harano <masm@masm11.ddo.jp> + + Add set_skip_taskbar frame parm + + * src/pgtkfns.c (x_set_skip_taskbar, pgtk_frame_parm_handlers): + Add set_skip_taskbar + +2020-11-21 Yuuki Harano <masm@masm11.ddo.jp> + + Add set_undecorated frame parameter + + * src/pgtkfns.c (x_set_undecorated, pgtk_frame_parm_handlers): Add + undecorated frame parameter handle + +2020-11-21 Yuuki Harano <masm@masm11.ddo.jp> + + Introduce Pure GTK3 port + + * src/xsettings.h: + + * src/xsettings.c: + (dpyinfo_valid, store_tool_bar_style_changed) + (XSETTINGS_FONT_NAME, get_prop_window, read_settings) + (apply_xft_settings, read_and_apply_settings) + (xft_settings_event, init_xsettings, xsettings_initialize): + + * src/xfaces.c: + (x_create_gc, x_free_gc): + + * src/xdisp.c (redisplay_tool_bar, redisplay_internal) + (draw_glyphs_debug, draw_glyphs, mouse_face_from_buffer_pos) + (note_mouse_highlight): + + * src/terminal.c (Fterminal_live_p): + + * src/termhooks.h (enum output_method, GCALIGNED_STRUCT) + (TERMINAL_FONT_CACHE): + + * src/process.c (wait_reading_process_output): + + * src/pgtkterm.h: + + * src/pgtkterm.c: + + * src/pgtkselect.h: + + * src/pgtkselect.c: + + * src/pgtkgui.h: + + * src/pgtkfns.c: + + * src/image.c: + (XGetPixel, XPutPixel, image_create_bitmap_from_data) + (image_create_bitmap_from_file, free_bitmap_record) + (image_destroy_x_image, gui_put_x_image, image_get_x_image) + (Create_Pixmap_From_Bitmap_Data, xbm_load_image, ) + (xpm_load_image, lookup_rgb_color, image_disable_image) + (image_build_heuristic_mask, imagemagick_load_image): + + * src/gtkutil.h: + + * src/gtkutil.c (PGTK_TRACE, xg_set_screen, xg_display_open) + (xg_display_close, xg_create_default_cursor) + (xg_get_pixbuf_from_pix_and_mask, xg_check_special_colors) + (qttip_cb, hierarchy_ch_cb, xg_prepare_tooltip, ) + (xg_show_tooltip, xg_hide_tooltip, xg_frame_resized) + (xg_frame_set_char_size, xg_height_or_width_changed) + (xg_set_widget_bg, style_changed_cb, xg_create_frame_widgets) + (xg_free_frame_widgets, x_wm_set_size_hint, xg_frame_restack) + (xg_mark_data, xg_update_frame_menubar, free_frame_menubar) + (xg_update_submenu, xg_finish_scroll_bar_creation) + (xg_update_scrollbar_pos, xg_update_horizontal_scrollbar_pos) + (xg_set_toolkit_scroll_bar_thumb, xg_event_is_for_scrollbar) + (draw_page, xg_pack_tool_bar, xg_create_tool_bar) + (xg_update_tool_bar_sizes, update_frame_tool_bar) + (free_frame_tool_bar, xg_change_toolbar_position): + + * src/ftcrfont.c: + (ftcrfont_draw): + + * src/fringe.c: + (init_fringe_bitmap): + + * src/frame.h (GCALIGNED_STRUCT, FRAME_WINDOW_P): + + * src/frame.c (Fframep): + + * src/font.h: + + * src/font.c (syms_of_font): + + * src/emacsgtkfixed.c: + (emacs_fixed_get_preferred_width) + (emacs_fixed_get_preferred_height, XSetWMSizeHints): + + * src/emacs.c (main): + + * src/dispnew.c (init_display_interactive): + + * src/dispextern.h: + + * src/alloc.c: + (garbage_collect): + + * src/Makefile.in (PGTK_OBJ, PGTK_LIBS, base_obj, LIBES): + + * src/.gdbinit: + + * lisp/url/url-privacy.el (url-setup-privacy-info): + + * lisp/term/pgtk-win.el (featurep): + + * lisp/startup.el (command-line, fancy-splash-frame): + + * lisp/net/eww.el (eww-form-submit, eww-form-file) + (eww-form-checkbox, eww-form-select): + + * lisp/mwheel.el (mouse-wheel-down-event, mouse-wheel-up-event): + + * lisp/loadup.el (featurep): + + * lisp/international/mule-cmds.el (set-coding-system-map): + + * lisp/frame.el (pgtk-frame-geometry, frame-geometry) + (w32-frame-edges, frame-edges) + (pgtk-mouse-absolute-pixel-position) + (mouse-absolute-pixel-position) + (pgtk-set-mouse-absolute-pixel-position) + (pgtk-frame-list-z-order, frame-list-z-order) + (pgtk-frame-restack, frame-restack, display-mouse-p) + (display-graphic-p, display-symbol-keys-p, ) + (display-pixel-height, display-mm-height, display-mm-width) + (display-backing-store, display-save-under, display-color-cells) + (display-planes, display-visual-class) + (pgtk-display-monitor-attributes-list) + (display-monitor-attributes-list): + + * lisp/faces.el (face-spec-set-match-display, tool-bar): + + * lisp/cus-edit.el (custom-button, custom-button-mouse) + (custom-button-pressed, custom-display): + + * configure.ac (AUTO_DEPEND, XARGS_LIMIT, XWIDGETS_OBJ): + +2020-11-10 John Wiegley <johnw@newartisans.com> + + Update version to 2.4.1 + +2020-11-03 João Távora <joaotavora@gmail.com> + + Don't force eglot-strict-mode completely in eglot--dcase + + Doing so was by design, since there's much ambiguity between the + CodeAction and Command objects. But 'disallow-non-standard-keys is + not necessary to disambiguate, and proved harmful in this bug. + + * eglot.el (eglot--dcase): Don't disallow + (eglot--check-dspec): Fix docstring. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/558 + +2020-11-01 Damien Merenne <damien@bloom-life.com> + João Távora <joaotavora@gmail.com> + + Handle lsp 3.15's ispreferred code action property + + * eglot.el (eglot--lsp-interface-alist): Add :isPreferred to CodeAction. + (eglot-client-capabilities): Announce :isPreferredSupport. + (eglot-code-actions): Consider preferred CodeAction item. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/558 + +2020-10-24 João Távora <joaotavora@gmail.com> + + Don't send json null (elisp nil) down the wire + + * eglot.el (eglot-initialization-options) + (eglot-client-capabilities): Use eglot--{}, not nil. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/300 + +2020-08-30 R Primus <rprimus@users.noreply.github.com> (tiny change) + + Unbreak haskell's hie-wrapper built-in incantation + + * eglot.el (eglot-server-programs): Add required argument for hie-wrapper + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/528 + +2020-08-21 Paul M. Rodriguez <paulmrodriguez@gmail.com> (tiny change) + + Provide suitable default to m-x eglot-rename + + + * eglot.el (eglot-rename): Provide a default value. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/524 + +2020-08-21 Naoya Yamashita <conao3@gmail.com> + + add multiple and eval :custom-face usage + + This commit follows suggestion at https://github.com/jwiegley/use-package/issues/696, https://github.com/jwiegley/use-package/issues/821 + +2020-08-16 João Távora <joaotavora@gmail.com> + + Correct paren mismatch blunder introduced by earlier commit + + Per https://github.com/joaotavora/eglot/issues/512. + + * eglot.el (eglot-server-programs): properly close parenthesis. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/521 + +2020-08-16 Steven vanZyl <rushsteve1@rushsteve1.us> (tiny change) + João Távora <joaotavora@gmail.com> + + Add built-int support for godot engine + + + * README.md: mention Godot + + * eglot.el (eglot-server-programs): Add godot engine via port + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/511 + +2020-08-11 Kaleb Elwert <belak@coded.io> (tiny change) + + Remove use-package-font-lock-keywords + +2020-08-05 John Wiegley <johnw@newartisans.com> + + Merge pull request from wyuenho/patch-1 + + GitHub-reference: https://github.com/jwiegley/use-package/issues/846 + +2020-08-03 Philipp Stephani <phst@google.com> + + Migrate remaining files to lexical binding + +2020-07-27 Andrew Schwartzmeyer <andrew@schwartzmeyer.com> (tiny change) + João Távora <joaotavora@gmail.com> + + Ensure completion terminates in correct buffer + + To design a completion-in-region-function replacement that leverages + the elements in completion-at-point-functions, we must ensure that + their :exit-function parts execute in the correct buffer. That is the + buffer where the text to be completed lives, not necessarily the + buffer being used for user interaction. + + Later on, this guarantee should be provided by Emacs itself, perhaps + by putting the correct with-current-buffer call in completion--done. + + + * eglot.el (eglot-completion-at-point): Ensure :exit-function's + buffer is where the source is. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/505 + +2020-07-21 Jimmy Yuen Ho Wong <wyuenho@gmail.com> + + Merge branch 'master' into patch-1 + +2020-07-21 John Wiegley <johnw@newartisans.com> + + Merge pull request from tzz/custom-set-default + + GitHub-reference: https://github.com/jwiegley/use-package/issues/855 + +2020-07-13 João Távora <joaotavora@gmail.com> + + Use a hash-table for storing resolved completions + + * eglot.el (eglot-completion-at-point): use a hash-table for + storing resolved completions. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/510 + +2020-07-13 João Távora <joaotavora@gmail.com> + + Reload eldoc if needed on emacs < 28 + + ElDoc is preloaded in Emacs, so `require`-ing won't guarantee we are + using the latest version from GNU Elpa when we load eglot.el. Use an + heuristic to see if we need to `load` it in Emacs < 28. + + * eglot.el (Package-Requires): Require eldoc 1.5.0 + (top): Sometimes load eldoc + +2020-07-12 Ted Zlatanov <tzz@lifelogs.com> + + Update the documentation for :custom as per + + GitHub-reference: https://github.com/jwiegley/use-package/issues/850 + +2020-07-12 Jimmy Yuen Ho Wong <wyuenho@gmail.com> + + Fix broken test due to + + GitHub-reference: https://github.com/jwiegley/use-package/issues/850 + +2020-07-11 João Távora <joaotavora@gmail.com> + + Fix sorting of completion items + + This fixes a problem pointed out by Yuwei Tian <ibluefocus@gmail.com>. + + * eglot.el (eglot-completion-at-point): Fix getting :sortText content + of the completion item. + + GitHub-reference: closes https://github.com/joaotavora/eglot/issues/509 + +2020-07-09 João Távora <joaotavora@gmail.com> + + * eglot.el (package-requires): require flymake 1.0.9 and eldoc 1.2.0 + +2020-07-09 João Távora <joaotavora@gmail.com> + + Delegate "hover" and "signature" doc synchronization efforts to eldoc + + Uses Eldoc's eldoc-documentation-functions variable. In Eldoc v1.0.0 + that variable was already available as a way of handling/composing + multiple docstrings from different sources, but it didn't work + practically with multiple concurrent async sources. This was fixed in + 1.1.0, which Eglot now requires. + + This fixes the synchronization problems reported in https://github.com/joaotavora/eglot/issues/494 and also + issue https://github.com/joaotavora/eglot/issues/439. It is likely that some of the exact doc-composing + functionality in Eglot, (developed during those issues) was lost, and + has to be remade, quite likely in Eldoc itself. + + Flymake is now also an Eldoc producer, and therefore the problems of + github issues https://github.com/joaotavora/eglot/issues/481 and https://github.com/joaotavora/eglot/issues/454 will also soon be fixed as soon as Eglot + starts using the upcoming Flymake 1.0.9. + + * NEWS.md: New entry. + + * README.md (eglot-put-doc-in-help-buffer) + (eglot-auto-display-help-buffer): Remove mention to these options. + + * eglot.el + (Package-Requires:) Require eldoc.el 1.1.0. + (eglot--when-live-buffer): Rename from eglot--with-live-buffer. + (eglot--when-buffer-window): New macro. + (eglot--after-change, eglot--on-shutdown, eglot-ensure): Use eglot--when-live-buffer. + (eglot--managed-mode): Use eglot-documentation-functions and eldoc-documentation-strategy. + (eglot--highlights): Move down. + (eglot-signature-eldoc-function, eglot-hover-eldoc-function) + (eglot--highlight-piggyback): New eldoc functions. + (eglot--help-buffer, eglot--update-doc) + (eglot-auto-display-help-buffer, eglot-put-doc-in-help-buffer) + (eglot--truncate-string, eglot-doc-too-large-for-echo-area) + (eglot-help-at-point): Remove all of this. + (eglot--apply-workspace-edit): Call eldoc manually after an edit. + (eglot-mode-map): Remap display-local-help to eldoc-doc-buffer + +2020-07-07 Jimmy Yuen Ho Wong <wyuenho@gmail.com> + + better tests + +2020-07-07 Jimmy Yuen Ho Wong <wyuenho@gmail.com> + + add test for + + GitHub-reference: https://github.com/jwiegley/use-package/issues/845 + +2020-07-07 Jimmy Yuen Ho Wong <wyuenho@gmail.com> + + Support keymap symbol in bind-key + + GitHub-reference: fix https://github.com/jwiegley/use-package/issues/845 + +2020-06-29 John Wiegley <johnw@newartisans.com> + + Merge pull request from tzz/custom-set-default + + use-package-core.el: use the Emacs set-default function to avoid saving :custom vars twice + GitHub-reference: https://github.com/jwiegley/use-package/issues/850 + +2020-06-22 Ted Zlatanov <tzz@lifelogs.com> + + use-package-core.el: use the Emacs set-default function to avoid saving :custom vars twice + +2020-06-18 John Wiegley <johnw@newartisans.com> + + Merge pull request from jjlee/call-hooks-even-if-no-config + + GitHub-reference: https://github.com/jwiegley/use-package/issues/840 + +2020-06-18 John Wiegley <johnw@newartisans.com> + + Merge branch 'master' into call-hooks-even-if-no-config + +2020-05-31 João Távora <joaotavora@gmail.com> + + Fix small problems around eglot's help buffer + + Specifically: + + - correctly format the message shown to the user about doc being truncated + - don't show message if the buffer is showing in some frame's window + - correctly name the help buffer switched to with `C-h .'. + + This is still not ideal: + + - When the `C-h .' suggestion is shown to the user, typing that keybinding + shouldn't result in a new LSP request to fetch probably the same info; + - All this functionality belongs in eldoc.el. + + * eglot.el (eglot-help-at-point): Fix buffer name. + (eglot--update-doc): Provide more help. + +2020-05-30 Andrii Kolomoiets <andreyk.mad@gmail.com> + João Távora <joaotavora@gmail.com> + + Simplify eglot-code-actions + + If no region is active, ask for code actions at point, even if there + are no diagnostics at point. + + + * eglot.el (eglot-code-actions): Simplify. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/473 + +2020-05-26 Andrii Kolomoiets <andreyk.mad@gmail.com> + + Use filter-buffer-substring to get buffer text + + This way modes used to represent hover info text, such as + gfm-view-mode can e.g. filter out invisible text by providing own + `filter-buffer-substring-function'. + + * eglot.el (eglot--format-markup): Use `filter-buffer-substring'. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/482 + +2020-05-26 João Távora <joaotavora@gmail.com> + + Replace uses of project-roots with project-root + + * eglot.el (Package-Requires): Require project 0.3.0. + (eglot--connect, eglot-handle-request) + (eglot-initialization-options, eglot--eclipse-jdt-contact): Use + project-root. + +2020-05-26 Gary Oberbrunner <garyo@oberbrunner.com> (tiny change) + + Also consider label of a completionitem for snippets + + + * eglot.el (eglot-completion-at-point): Consider label when + expanding snippets. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/480 + +2020-05-25 Andrii Kolomoiets <andreyk.mad@gmail.com> + Andreii Kolomoiets <andreyk.mad@gmail.com> + + Rework computation of string given to eldoc (again) + + + Also do some refactoring to join similar logic in + eglot-doc-too-large-for-echo-area and eglot--truncate-string. + + * eglot.el (eglot-doc-too-large-for-echo-area): Now returns the + number of lines available. + (eglot--truncate-string): New helper. + (eglot--first-line-of-doc, eglot--top-lines-of-doc): Remove. + (eglot--update-doc): Use new helpers. + + * eglot-tests.el (hover-multiline-doc-locus): New test + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/459 + +2020-05-25 Philipp Stephani <p.stephani2@gmail.com> + João Távora <joaotavora@gmail.com> + + Fix type error in eglot--xref-make-match + + Its first argument is passed to xref-make-match, which expects a string + as its SUMMARY argument, but symbol-at-point returns a symbol. + + + * eglot.el (eglot--lsp-xrefs-for-method): use symbol-name. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/488 + +2020-05-21 Rudolf Schlatte <rudi@constantly.at> + + Add support for erlang_ls + + * README.md: Mention erlang_ls + + * eglot.el (eglot-server-programs): Add erlang_ls + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/471 + +2020-05-20 John Wiegley <johnw@newartisans.com> + + Merge pull request from nahuel/patch-1 + + GitHub-reference: https://github.com/jwiegley/use-package/issues/843 + +2020-05-20 Nahuel Greco <ngreco@gmail.com> + + typo, should be a vector, not a bytecode object + + Solves https://github.com/jwiegley/use-package/issues/842 + +2020-05-18 João Távora <joaotavora@gmail.com> + + Correctly place diagnostics in narrowed buffers + + * eglot.el (eglot--lsp-position-to-point) + (eglot-handle-notification): save-restriction and widen + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/479 + +2020-05-16 João Távora <joaotavora@gmail.com> + + Require xref, project and eldoc from gnu elpa + + * Makefile (ELPADEPS): Install Xref, Project and Eldoc. + + * eglot.el (Package-Requires): Require Xref, Project and Eldoc + from GNU ELPA. + +2020-05-14 Dan Davison <dandavison7@gmail.com> + + Prompt for executable if supplied name does not exist + + * eglot.el (eglot--guess-contact): Interpret a list containing a + single string as an executable when forming the interactive prompt. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/474 + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/478 + +2020-05-12 Dan Davison <dandavison7@gmail.com> (tiny change) + + Don't call flymake report function if flymake is disabled + + Also fix https://github.com/joaotavora/eglot/issues/472. + + + * eglot.el (eglot-handle-notification): Check that flymake-mode is + active before calling flymake report function. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/468 + +2020-05-09 John Lee <jjl@pobox.com> (tiny change) + + Add special value back again, in case needed for backwards compat + + I don't know why this special value exists, but perhaps old client code uses it. + + The additional `t' in the macro expansion is accidental but not harmful I guess. + +2020-05-09 John Lee <jjl@pobox.com> (tiny change) + + Even when there's no :config, run any pre/post config hooks + + i.e., following the existing docs for use-package-inject-hooks, these hooks are + run: + + use-package--foo--pre-config-hook + use-package--foo--post-config-hook + + This should make config customisations more predictable (for example, spacemacs + uses these hooks extensively to allow 'layers' to be customized). + + I got rid of the "special" default value for :config, because it doesn't seem to + be treated any differently than nil. + + Fixes https://github.com/jwiegley/use-package/issues/785 + +2020-05-07 Tobias Rittweiler <trittweiler@gmail.com> + + Fix "free variable" warning + + * eglot.el (eglot-events-buffer): Use `eglot-current-server' instead + of `eglot--cached-server' because the latter is declared later in + the file. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/460 + +2020-05-06 Andrii Kolomoiets <andreyk.mad@gmail.com> + + Remove trailing whitespaces + + * eglot.el (defvar company-backends, eglot-code-actions): + Remove trailing whitespace + +2020-05-03 João Távora <joaotavora@gmail.com> + + Simplify bug-reporting instructions + + We assume the user has a recent enough jsonrpc.el that consolidates + events and stderr int the same transcript. + + * README.md (Reporting bugs): Simplify instructions. + + * eglot.el (eglot-events-buffer): Can work with no server. + +2020-05-03 João Távora <joaotavora@gmail.com> + + Survive hover responses with empty markdown strings + + * eglot.el (eglot-help-at-point): Protect against null eglot--hover-info + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/433 + +2020-05-03 João Távora <joaotavora@gmail.com> + + Remap display-local-help (c-h .) to eglot-help-at-point + + * eglot.el (eglot-help-at-point): Fallback to display-local-help if no + hover doc + (eglot-mode-map): Remap display-local-help to eglot-help-at-point.. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/437 + +2020-05-03 Theodor Thornhill <theo@thornhill.no> + João Távora <joaotavora@gmail.com> + + Tweak handling of eldoc-echo-area-use-multiline-p + + Also close https://github.com/joaotavora/eglot/issues/453 + + + * eglot.el (eglot--first-line-of-doc): New helper. + (eglot--update-doc): Tweak docstring. Simplify. + (eglot-put-doc-in-help-buffer): Tweak docstring + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/443 + +2020-05-02 João Távora <joaotavora@gmail.com> + + Fontify markdown source code blocks by default + + * eglot.el (eglot--format-markup): Set + markdown-fontify-code-blocks-natively to t locally. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/408 + +2020-05-02 Felicián Németh <felician.nemeth@gmail.com> + + Declare markdown support iff gfm-view-mode installed + + * eglot.el (eglot-client-capabilities): Support markdown only when + gfm-view-mode is installed. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/408 + +2020-05-02 Theodor Thornhill <theo@thornhill.no> + João Távora <joaotavora@gmail.com> + + Always string-trim markup + + + * eglot.el: (eglot--format-markup): Factor string trim out + so we string-trim for all cases + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/450 + +2020-05-02 João Távora <joaotavora@gmail.com> + + Kind of honor eldoc-echo-area-use-multiline-p + + A reworking of an idea and original implementation by Andrii + Kolomoiets <andreyk.mad@gmail.com>. It doesn't honor it completely + because the semantics for a non-t, non-nil value are tricky. And we + don't always exactly know what the symbol prefix reliably. + + * eglot.el (eglot--update-doc): Kind of honor + eldoc-echo-area-use-multiline-p. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/443 + +2020-05-02 Dan Davison <dandavison7@gmail.com> + + Unbreak eglot--guess-contact for host-and-port case + + * eglot.el (eglot--guess-contact): Fix bug in (host port) connection + case. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/446 + +2020-05-02 Dan Davison <dandavison7@gmail.com> + João Távora <joaotavora@gmail.com> + + Tweak docstring of eglot-server-programs + + + * eglot.el (eglot-server-programs): Fix typos and phrasing. + +2020-05-02 Ingo Lohmar <ingo.lohmar@posteo.net> + + Support hierarchical documentsymbol in eglot-imenu + + A reworking of an original implementation by Ingo Lohmar + <ingo.lohmar@github.com> + + * eglot.el (eglot-client-capabilities, defvar): Add + DocumentSymbol. + (eglot-client-capabilities): Add + :hierarchicalDocumentSymbolSupport. + (eglot--parse-DocumentSymbol): Remove. + (eglot-imenu): Rewrite. + + * NEWS.md (1.7): Mention new feature + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/303 + +2020-05-02 João Távora <joaotavora@gmail.com> + + Also check types when destructuring lsp objects + + The problem in this issue is that the disambiguation between Command + and CodeAction objects can only be performed by checking the types of + the keys involved. So we added that to the spec and check it at + runtime. + + * eglot.el (eglot--lsp-interface-alist): Add types to + Command. Tweak docstring. + (eglot--check-object): Renamed from eglot--call-with-interface. + (eglot--ensure-type): New helper. + (eglot--interface): New helper. + (eglot--check-dspec): Renamed from eglot--check-interface. + (eglot--dbind): Simplify. + (eglot-code-actions): Adjust indentation. + + * eglot-tests.el (eglot-dcase-issue-452): New test. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/452 + +2020-04-27 Andrii Kolomoiets <andreyk.mad@gmail.com> + João Távora <joaotavora@gmail.com> + + Hide eldoc-message on empty hover info + + + * eglot.el (eglot-eldoc-function): Pass nil to eglot--update-doc + on empty hover info. + (eglot--update-doc): Skip update eglot help buffer if string + is nil. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/439 + +2020-04-27 Tobias Rittweiler <trittweiler@gmail.com> + + Tests: print contents of *eglot ...* buffers in batch mode. + + Useful for the CI on github. To be able to see more of the context of + a failure. + + * eglot.el (eglot-server-initialized-hook): Changed semantics. Now + called when an instance of `eglot-lsp-server' is created as part of + the "connect to server" flow. Previously, there was no difference + between this hook and `eglot-connect-hook' which continues to be run + once a connection was successfully established. The + `eglot-server-initialized-hook' will now capture ALL server instances + including those that failed to be started. This change was necessary + to make the test suite be able to dump the output of processes that + fail to start when running the test suite in batch mode ("make check" + and the CI.) In PR https://github.com/joaotavora/eglot/issues/448 it was decided that it is ok to change the + semantics of this hook rather than introducing a new hook. + (eglot--connect): Change place of where the hook is run. + (eglot-connect-hook): Initialized now with + `eglot-signal-didChangeConfiguration' which was kept in + `eglot-server-initialized-hook' before. + + * eglot-tests.el (eglot--call-with-fixture): Use + `eglot-server-initialized-hook' rather than `eglot-connect-hook'. And + dump the contents of the *EGLOT ...* buffers when run in + `noninteractive' (i.e. batch) mode. + (eglot--cleanup-after-test): New auxiliary function. Extracted + verbatim out of `eglot--call-with-fixture` in order to lower the + latter's LOC. + +2020-04-24 Trevor Murphy <trevormurphy@google.com> + + Create match xrefs when possible + + "Match xrefs" are created with `xref-make-match' instead of + `xref-make'. Match xrefs support `xref-query-replace-in-results' from + the results buffer. + + * eglot.el (eglot--xref-make-match): Calculate xref match length from + the eglot range. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/435 + +2020-04-24 João Távora <joaotavora@gmail.com> + + * eglot.el (eglot-put-doc-in-help-buffer): tiny docstring fix. + +2020-04-24 João Távora <joaotavora@gmail.com> + + Don't reupdate help buffer if already rendered + + * eglot.el (eglot--update-doc): Don't reupdate if doc buffer + already exists. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/445 + +2020-04-23 Andrii Kolomoiets <andreyk.mad@gmail.com> + + Use text-mode for plaintext markup + + * eglot.el (eglot--format-markup): Use text-mode for + plaintext markup. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/444 + +2020-04-16 Felicián Németh <felician.nemeth@gmail.com> + + Update dependencies and copyright years + + * eglot.el: Update dependencies and copyright years. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/413 + +2020-04-16 Theodor Thornhill <theo@thornhill.no> + João Távora <joaotavora@gmail.com> + + Simplify a bit of code + + + * eglot.el (eglot-move-to-lsp-abiding-column): use + already existing function to refer to lsp-abiding-column + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/397 + +2020-04-16 João Távora <joaotavora@gmail.com> + + * eglot.el (version): bump to 1.6 + + * NEWS.md: Bump to 1.6 + +2020-04-16 Felicián Németh <felician.nemeth@gmail.com> + João Távora <joaotavora@gmail.com> + + Abide by lsp when reporting and moving to columns + + * eglot.el (eglot-current-column-function): Set to + eglot-lsp-abiding-column. + (eglot-move-to-column-function): Set to + eglot-move-to-lsp-abiding-column. + + * NEWS.md: Log the change here as well. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/361 + +2020-04-16 João Távora <joaotavora@gmail.com> + + Fix eglot-move-to-lsp-abiding-column () + + Ensure conformance with the this part of the specification: "if the + character value is greater than the line length it defaults back to + the line length." + + * eglot.el: (eglot-move-to-lsp-abiding-column): Don't move beyond + line-end. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/361 + +2020-04-16 Felicián Németh <felician.nemeth@gmail.com> + + Send shutdown and exit messages without arguments + + Fix regression introduced in 70e6157b (https://github.com/joaotavora/eglot/issues/315). According to the + LSP specification the exit notification and the shutdown request + shouldn't have arguments ("params: void"). Note that jsonrpc.el + send nil as null on the wire. + + * eglot.el (eglot-shutdown): Change back the arguments of + :shutdown and :exit to nil. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/430 + +2020-03-22 John Wiegley <johnw@newartisans.com> + + Merge pull request from jwiegley/johnw/clarify + + Clarify the documentation for :after + GitHub-reference: https://github.com/jwiegley/use-package/issues/820 + +2020-03-20 Felicián Németh <felician.nemeth@gmail.com> + + Ignore empty hover info + + This just mimics a similar check in `eglot-help-at-point'. + + * eglot.el (eglot-eldoc-function): Check emptiness of `contents' more + carefully. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/425 + +2020-03-04 John Wiegley <johnw@newartisans.com> + + Clarify the documentation for :after + +2020-01-13 Felicián Németh <felician.nemeth@gmail.com> + + Make a public reader for project-nickname + + Close https://github.com/joaotavora/eglot/issues/399. + + * eglot.el (eglot-lsp-server): Add a public reader for + project-nickname as eglot-project-nickname. + (eglot--connect, eglot--read-server, eglot--mode-line-format): Use + the public variant. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/354 + +2020-01-13 Felicián Németh <felician.nemeth@gmail.com> + + Add public hook eglot-managed-mode-hook + + Per https://github.com/joaotavora/eglot/issues/354. + + * eglot.el (eglot-managed-p): New function. + (eglot--managed-mode-hook): Obsolete it. + (eglot-managed-mode-hook): New hook variable. + (eglot--managed-mode): Run the new hook. + + * README.md (Customization): Mention the new hook. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/182 + +2020-01-13 Vladimir Panteleev <git@thecybershadow.net> (tiny change) + + Introduce and use eglot--{}, the empty json object + + * eglot.el (Constants): Add eglot--{}. + (eglot-shutdown, eglot--connect): Use it. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/315 + +2020-01-13 Vladimir Panteleev <git@thecybershadow.net> (tiny change) + + Call shutdown/exit methods with params:{}, not null + + "null" is not a valid JSON value for "params" according to the + JSON-RPC specification. + + * eglot.el (eglot-shutdown): Do the same thing as for "initialized", + and use an empty hash table to be serialized to {}. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/315 + +2020-01-09 Felicián Németh <felician.nemeth@gmail.com> + + Support bug-reference-prog-mode + + * eglot.el (Local Variables): Add bug-reference-bug-regexp and + bug-reference-url-format. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/405 + +2020-01-08 Felicián Németh <felician.nemeth@gmail.com> + + Revert the last change about column calculation + +2020-01-08 Felicián Németh <felician.nemeth@gmail.com> + + Document the changes in column calculation + + * eglot.el (eglot-current-column-function) + (eglot-move-to-column-function): Document the change of the + default value. + + * NEWS.md: Log the change here as well. + +2020-01-08 João Távora <joaotavora@gmail.com> + + Abide by lsp when reporting and moving to columns + + * eglot.el (eglot-current-column-function): Set to + eglot-lsp-abiding-column. + (eglot-move-to-column-function): Set to + eglot-move-to-lsp-abiding-column. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/361 + +2020-01-05 Felicián Németh <felician.nemeth@gmail.com> + + Merge pull request from joaotavora/scratch/fix-277-exit-notification + + Fix https://github.com/joaotavora/eglot/issues/277: Send exit as a notification + + GitHub-reference: https://github.com/joaotavora/eglot/issues/400 + +2020-01-05 Felicián Németh <felician.nemeth@gmail.com> + + Send exit as a notification + + This is what the specification requires. @PerMildner, thanks for + reporting and analyzing the issue. + + * eglot.el (eglot-shutdown): Use `notify' instead of `request' for the + `exit' LSP method. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/277 + +2020-01-02 João Távora <joaotavora@gmail.com> + + Avoid double shutdowns and simplify shutdown logic + + * eglot.el (eglot-shutdown): Don't turn off eglot--managed-mode here. + (eglot--on-shutdown): Rather here, but without autoshutdown. + (eglot--managed-mode): Don't check eglot--shutdown-requested. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/389 + +2020-01-02 Theodor Thornhill <theo@thornhill.no> (tiny change) + João Távora <joaotavora@gmail.com> + + Use completing-read in eglot-code-actions + + See also https://github.com/joaotavora/eglot/issues/386. + + * eglot.el (eglot-code-actions): Replace tmm with completing-read + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/393 + +2019-12-30 Evgeni Kolev <evgenysw@gmail.com> + + * eglot.el (eglot-eldoc-function): fix outdated docstring. + + Fix https://github.com/joaotavora/eglot/issues/387 + +2019-12-28 Steve Purcell <steve@sanityinc.com> + João Távora <joaotavora@gmail.com> + + Add elm-language-server as the language server for elm + + * README.md (Connecting to a server): Add elm-language-server + + * eglot.el (eglot-server-programs): Add elm-language-server + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/383 + +2019-12-26 Theodor Thornhill <theo@thornhill.no> (tiny change) + João Távora <joaotavora@gmail.com> + + New eglot-confirm-server-initiated-edits defcustom + + * eglot.el (eglot-confirm-server-initiated-edits): New defcustom. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/382 + +2019-12-18 Augusto Stoffel <arstoffel@gmail.com> (tiny change) + + Add built-in support for tex and friends + + plain-tex-mode and latex-mode are derived from tex-mode. Some other + TeX-related modes are not, so they require an explicit mention in + eglot-server-programs. + + * README.md (Connecting to a server): Add Digestif to the list + + * eglot.el (eglot-server-programs): Add Digestif for TeX-related modes + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/379 + +2019-12-17 Antoine Kalmbach <ane@iki.fi> (tiny change) + + Add metals as the language server for scala + + * README.md (Connecting to a server): Add metals to the list + + * eglot.el (eglot-server-programs): Add metals for scala-mode + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/376 + +2019-12-08 João Távora <joaotavora@gmail.com> + + Allow non-standard keys in textdocument/publishdiagnostics. + + * eglot.el (eglot-handle-notification): Allow other keys for + textDocument/publishDiagnostics. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/357 + +2019-11-30 João Távora <joaotavora@gmail.com> + + Unbreak window/showmessagerequest + + * eglot.el (eglot-handle-request): Answer with a proper + MessageActionItem. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/362 + +2019-11-26 John Wiegley <johnw@newartisans.com> + + Merge pull request from DamienCassou/typos + + Fix typos + GitHub-reference: https://github.com/jwiegley/use-package/issues/808 + +2019-11-26 Damien Cassou <damien.cassou@gmail.com> + + Fix typos + + Typos found with codespell. + +2019-11-20 João Távora <joaotavora@gmail.com> + + Resolve compilation warnings + + * eglot.el (company-tooltip-align-annotations): Forward declare. + (eglot--cached-server): Renamed from eglot--cached-current-server. + (eglot--managed-mode, eglot-current-server) + (eglot--current-server-or-lose) + (eglot--maybe-activate-editing-mode): use it. + (eglot-completion-at-point): Don't use insertTextFormat. + +2019-11-20 João Távora <joaotavora@gmail.com> + + Locally tweak imenu-create-index-function + + * eglot.el (eglot--managed-mode): locally tweak + imenu-create-index-function. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/351 + +2019-11-18 Felicián Németh <felician.nemeth@gmail.com> + + Fail when eglot-find-* finds no references + + * eglot.el (eglot--lsp-xref-helper): Display message when no + references have been found instead of calling xref-find-references. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/339 + +2019-11-17 Xu Chunyang <4550353+xuchunyang@users.noreply.github.com> (tiny change) + + Waste less space in completion annotations + + * eglot.el (eglot-completion-at-point): don't add "(snippet)" + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/349 + +2019-11-17 João Távora <joaotavora@gmail.com> + + * eglot.el (eglot-completion-at-point): remove spurious unrelated change. + +2019-11-15 João Távora <joaotavora@gmail.com> + + Ensure process starts in project's root + + Also fix https://github.com/joaotavora/eglot/issues/347. + + * eglot.el (eglot--connect): Bind default-directory around make + process. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/330 + +2019-11-15 João Távora <joaotavora@gmail.com> + + Let other imenu functions work if lsp server's doesn't + + * eglot.el (eglot--stay-out-of-p): New helper. + (eglot--setq-saving): Use it. + (eglot--managed-mode): Use add-function :before-until for + imenu-create-index-function. + (eglot-imenu): Don't error. Fix indentation. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/343 + +2019-11-13 Felicián Németh <felician.nemeth@gmail.com> + + Support serverinfo of lsp 3.15.0 + + Add support for serverInfo from the upcoming specification. This + changeset just stores the info sent by the server and slightly changes + a greeting message. But it opens up the possibility to identify + servers even when eglot uses a TCP connection and therefore makes + possible to implement server specific features (in eglot-x). + + Old message: + ``` + Connected! Server `EGLOT (test-ccls/c++-mode)' now managing `c++-mode' buffers in project `test-ccls'. + ``` + + New message: + ``` + Connected! Server `ccls' now managing `c++-mode' buffers in project `test-ccls'. + ``` + + * eglot.el (eglot--lsp-interface-alist): Extend it with serverInfo. + (eglot-lsp-server): Add member variable server-info. + (eglot--connect): Store server-info and display server's name + when connected. + +2019-11-12 r-zip <rzpilgrim@gmail.com> (tiny change) + + Set nobreak-char-display to nil in *eglot-help* + + * eglot.el (eglot-help-at-point): set nobreak-char-display + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/345 + +2019-11-10 João Távora <joaotavora@gmail.com> + + Protect against empty-string inserttext in completions + + * eglot.el (eglot-completion-at-point): Don't use insertText as a + proxy. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/341 + +2019-11-10 João Távora <joaotavora@gmail.com> + + Provide stable eglot-current-server helper + + It's better if eglot--current-server is removed, since it was being + abused by other packages, and has side effects. The only place where + it was really needed was eglot--maybe-activate-editing-mode, so the + find-and-cache logic has been moved there. All other places that can + handle a nil server now use eglot-current-server, the external + version. + + * eglot.el (eglot-shutdown, eglot, eglot--read-server) + (eglot--mode-line-format): Use eglot-current-server. + (eglot--connect): Update comment. + (eglot--current-server): Remove. + (eglot-current-server): New helper. + (eglot--maybe-activate-editing-mode): find and cache the server here. + + * eglot-tests.el (auto-detect-running-server) + (auto-shutdown, auto-reconnect, eglot-ensure) + (slow-async-connection): Use eglot-current-server. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/342 + +2019-11-09 John Wiegley <johnw@newartisans.com> + + Merge pull request from tarsiiformes/typos + + Fix typos + GitHub-reference: https://github.com/jwiegley/use-package/issues/804 + +2019-11-09 João Távora <joaotavora@gmail.com> + + Don't choke on workspace/configuration with no scopeuri + + * eglot.el (eglot-handle-request): Don't choke on nil scopeUri. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/340 + +2019-11-06 Jonas Bernoulli <jonas@bernoul.li> + + Fix typos + +2019-11-05 Ingo Lohmar <ingo.lohmar@posteo.net> + + Only set eglot--cached-current-server by (more aggressive) caching + + * eglot.el (eglot--current-server): Always set cache value. + (eglot--maybe-activate-editing-mode): No need to set cached server. + +2019-11-05 Ingo Lohmar <ingo.lohmar@posteo.net> + + Simplify "maybe"-activation, dump "server" arg + + * eglot.el (eglot--maybe-activate-editing-mode): Remove `server' arg. + +2019-11-01 Ingo Lohmar <ingo.lohmar@posteo.net> + + Merge -onoff proxy code into minor mode function + + This simplifies bookkeeping and keeping the state of locally cached + servers, their managed buffers, and the buffer-local mode consistent. + + The "on" case of the -onoff code now expects that + `eglot--cached-current-server' has been set already, the "off" case uses + the same value. + + * eglot.el (eglot--managed-mode-onoff): Remove. + (eglot--managed-mode): Adopt code. + (eglot--managed-mode-off): New minimal wrapper. + +2019-10-30 João Távora <joaotavora@gmail.com> + + Use completionitem/resolve more abundantly + + It was already used to resolve documentation bits of completions, but + it can also be useful to resolve snippet templates and such. + + To resolve a completion, you need some part of a completion to start + with. If it has a :data field exists and the server supports + :resolveProvider, fetch the new object, otherwise use whatever we had + already. + + * eglot.el (eglot-completion-at-point): Add another local + function for resolving completions. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/50 + +2019-10-28 Xu Chunyang <4550353+xuchunyang@users.noreply.github.com> (tiny change) + + Support markdown for textdocument/hover () + + * eglot.el (eglot-client-capabilities): announce markdown support for hover. + (eglot--format-markup): Format hover info with Markdown. + + Fixes: https://github.com/joaotavora/eglot/issues/328 + + GitHub-reference: https://github.com/joaotavora/eglot/issues/329 + +2019-10-27 Xu Chunyang <4550353+xuchunyang@users.noreply.github.com> (tiny change) + + Don't run mode hooks in eglot--format-markup + + * eglot.el (eglot--format-markup): Use delay-mode-hooks. + +2019-10-26 João Távora <joaotavora@gmail.com> + + Support workspace/configuration + + This helps users configure servers such as Gopls, which doesn't + support didChangeConfiguration signals. + + * README.md (Per-project server configuration): New section. + + * eglot.el (eglot-workspace-configuration): Fix docstring. + (eglot-signal-didChangeConfiguration): Rename a variable. + (eglot-handle-request workspace/configuration): New request + handler. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/326 + +2019-10-24 João Távora <joaotavora@gmail.com> + + Expand readme.md section on handling quirky servers + + Also remove explicit cquery support (cquery seems to be dead anyway). + + * README.md (Handling quirky servers): New section. + + * eglot.el (eglot-initialization-options eglot-cquery): Remove. + +2019-10-22 João Távora <joaotavora@gmail.com> + + Unbreak imenu + + * eglot.el (eglot-imenu): Unbreak. + +2019-10-21 João Távora <joaotavora@gmail.com> + + Force company to align completion annotations in eglot sessions + + * eglot.el (eglot--managed-mode): force + company-tooltip-align-annotations to t. + +2019-10-21 João Távora <joaotavora@gmail.com> + + Fix race condition when company-completing quickly + + For some reason, probably related to the way that Eglot tries to + maintain the responsiveness of Company completion tooltips (see + below), the user's explicit input will sometimes be surprisingly + deleted by Company, leading to a horrible completion experience. + + This is sometimes hard to reproduce, but appears to match this + description perfectly: + https://github.com/joaotavora/eglot/issues/319#issuecomment-542955432 + + Fortunately, Company has a good fix for this, which is to pass + `:company-require-match 'never` in the completion-at-point function. + This is the fix applied in this commit. + + However, this line shouldn't be required since the default value for + `company-require-match` is `company-explicit-action-p`, presumably + meaning that the auto-deletion should never take place for characters + typed by the user. + + This points to a bug in Company, or at least something which may have + been exacerbated by the way that Eglot aggressively fetches + completions from the server by passing :cancel-on-input to + `jsonrpc-request`, discarding out-of-date replies. Perhaps that + discarding step bears with it some side-effects that make the + `company-explicit-action-p` test return `nil` instead of the correct + `t`. Company interprets this as carte blanche to delete the last + inserted character. + + * eglot.el (eglot-completion-at-point): Use :company-require-match + 'never. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/319 + +2019-10-21 João Távora <joaotavora@gmail.com> + + Unbreak m-x vc-revert, which reverts preserving modes + + Unlike the normal revert-buffer command, vc-revert, doesn't re-apply + the major mode, meaning it was missing a didOpen to pair with the + didClose that is unconditionally sent on both commands. + + Needed to use the dynamic variable revert-buffer-preserve-modes, and, + curiously, also forward-declare it to appease the byte compiler. + + * eglot.el (eglot--managed-mode): Use after-revert-hook. + (revert-buffer-preserve-modes): Forward declare. + (eglot--after-revert-hook): Signal didOpen when preserving-modes. + (eglot--maybe-activate-editing-mode): Tweak comment. + +2019-10-21 João Távora <joaotavora@gmail.com> + + (again): fix issue with replace-buffer-contents + + Manually calling the before/after change hooks for Emacs 26.1's buggy + replace-buffer-contents must be done with absolute positions, not + markers. + + * eglot.el (eglot--apply-text-edits): Call change hooks with + buffer positions, not markers. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/259 + +2019-10-20 João Távora <joaotavora@gmail.com> + + * eglot.el (version): bump to 1.5 + + * NEWS.md: update. + +2019-10-19 João Távora <joaotavora@gmail.com> + + Let user keep control of some variables during eglot sessions + + * NEWS.md: Mention new variable eglot-stay-out-of + + * eglot.el (eglot-stay-out-of): New variable. + (eglot--setq-saving): Use it. + (eglot--managed-mode): Use eglot--setq-saving for imenu. No need + to remove 'eglot-flymake-backend from diagnostic functions. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/324 + +2019-10-19 João Távora <joaotavora@gmail.com> + + Don't immediately request completions in eglot-completion-at-point + + Yet another adjustment to this function. According to the + documentation of completion-at-point-functions, we should strive to + make functions like eglot-completion-at-point "cheap to run". + Requesting completion from the server immediately after calling the + function goes against that. The reason we were doing it is that it + might have helped compute more accurate "bounds" for the return value + (START and END) from possible TextEdit completion items. But I've + decided it's not worth the effort, at least for now. + + * eglot.el (eglot-completion-at-point): Request completions + asynchronously. + +2019-10-16 João Távora <joaotavora@gmail.com> + + Protect against zero-length completions + + Apparently the Vue Language Server sends such things (see https://github.com/joaotavora/eglot/issues/319). + + * eglot.el (eglot-completion-at-point): Protect against + zero-length completions. + +2019-10-16 João Távora <joaotavora@gmail.com> + + Don't choke on single-location reply to td/definition + + * eglot.el (eglot--lsp-xrefs-for-method): Accept non-vector + Location. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/321 + +2019-10-16 João Távora <joaotavora@gmail.com> + + Unbreak eglot--setq-saving if symbol is unbound + + * eglot.el (eglot--setq-saving): check if symbol is bound + +2019-10-16 João Távora <joaotavora@gmail.com> + + Use of company-capf backend in eglot-managed buffers + + * eglot.el (company-backends): forward-declare + (eglot--managed-mode): Force company-backends to company-capf + +2019-10-16 João Távora <joaotavora@gmail.com> + + Play along with lsp's filtertext hacks + + Reworked important parts of eglot-completion-at-point. + + One of the tasks was to cleanup the nomenclature so it's easier to + spot how LSP and Emacs's views of completion techniques differ. When + reading this rather long function, remember an "item" is a plist + representing the LSP completionItem object, and "proxy" is a + propertized string that Emacs's frontends will use to represent that + completion. When the completion is close to done, the :exit-function + is called, to potentially rework the inserted text so that the final + result might be quite different from the proxy (it might be a snippet, + or even a surprising text edit). + + The most important change in this commit reworks the way the + completion "bounds" are calculated in the buffer. This is the region + that Emacs needs to know that is being targeted for the completion. A + server can specify this region by using textEdit-based completions all + consistently pointing to the same range. If it does so, Emacs will + use that region instead of its own understanding of symbol + boundaries (provided by thingatpt.el and syntax tables). + + To implement server-side completion filtering, the server can also + provide a filterText "cookie" in each completion, which, when + prefix-matched to the intended region, selects or rejects the + completion. Given the feedback in + https://github.com/microsoft/language-server-protocol/issues/651, we + have no choice but to play along with that inneficient and grotesque + strategy to implement flex-style matching. Like ever in LSP, we do so + while being backward-compatible to all previously supported behavior. + + * eglot.el (eglot-completion-at-point): rework. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/235 + +2019-10-16 João Távora <joaotavora@gmail.com> + + Always filter completions client-side by prefix + + Prefix completion is all we get in LSP because there are some servers + that send *all* completions every time. This is horrible, but it's the + currently defined behavior. See + https://github.com/microsoft/language-server-protocol/issues/651. + + * eglot.el (eglot-completion-at-point): Use all-completions. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/319 + +2019-10-15 João Távora <joaotavora@gmail.com> + + Fix bug in workspace/didchangewatchedfiles + + * eglot.el (eglot-register-capability): Fix a bug and a couple of + warnings. + +2019-10-15 Tom Tromey <tom@tromey.com> + + Add support for the ada language server + + * eglot.el (eglot-server-programs): Add ada-mode entry. + + * README.md (Connecting to a server): Add Ada entry. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/316 + +2019-10-14 João Távora <joaotavora@gmail.com> + + Fix eglot-completion-at-point to work with bare completion-at-point + + Fixes https://github.com/joaotavora/eglot/issues/313, fixes https://github.com/joaotavora/eglot/issues/311, fixes https://github.com/joaotavora/eglot/issues/279 + + As is well known, LSP's and Emacs's completion mechanics don't fit + very well together, mostly because Emacs expects completion to be a + something of a pure function of a string argument and LSP treats as a + function of a concrete buffer position. + + A further complication arises because some completion frontends like + "bare" completion-at-point make Emacs modify the buffer's contents + during the completion process, while other (notably company-mode) + don't do that. Thus, 'eglot-completion-at-point' must take extra care + to answer to the questions listed in the "(elisp)Programmed + Completion" info node based on its (quite hacky) "completions" local + var and _not_ based on the intermediate buffer contents. That var is + also used to cache the last LSP response and allow the :exit-function + callback to retrieve much more than just the completion text in + + In yet another related problem, :exit-function won't be called at all + with completion-at-point if the completion table doesn't answer + properly to test-completion. A previous use of + completion-table-dynamic was found to be unsuitable here: we must + answer all the requests separately. + + * eglot.el (eglot-completion-at-point): Rework. + +2019-10-13 João Távora <joaotavora@gmail.com> + + Unbreak xref-find-definitions + + * eglot-tests.el (basic-xref): New test. + + * eglot.el (eglot--collecting-xrefs): Add an edebug spec. + (eglot--lsp-xrefs-for-method): Actually collect xref. + (xref-backend-apropos): Fix indentation slightly. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/318 + +2019-10-11 João Távora <joaotavora@gmail.com> + + Misc improvements to the xref glue code + + * eglot.el (eglot-xref-backend): Don't check capability here. + (eglot--collecting-xrefs): Reworked from eglot--handling-xrefs. + (eglot--handling-xrefs): Remove. + (xref-backend-apropos, eglot--lsp-xrefs-for-method): Use eglot--collecting-xrefs. + +2019-10-11 João Távora <joaotavora@gmail.com> + + Rework and correct major part of xref glue code + + See comments of https://github.com/joaotavora/eglot/pull/314. Up to + now, xref-backend-indentifier-completion-table was a gross hack that + only worked sometimes. It relied on some fugly gymnastics to cache a + response from :textDocument/documentSymbol and somehow used that + information to build a completion table. But it doesn't work well. + + Summarily, LSP doesn't lend itself well to the xref interface of + prompting for an arbitrary identifier and then go look for whichever + type of references of that identifier. All the LSP + :textDocument/{definition,references,implementation,...} methods + expect to know the exact context of the search the user is about to + perform, in the form of a document location. That conflicts with the + xref "arbitrary string" requirement. + + Therefore, the slightly limited, but much more correct way, for Eglot + to function is to override the user's preference of + xref-prompt-for-identifier, temporarily setting it to nil in + eglot--managed-mode (ideally, though, xref-prompt-for-identifier + should be a function of the backend.) + + Later on, a possibly better behaved identifier completion table can be + built on top of the :workspace/symbol LSP method. + + * eglot.el (xref-backend-identifier-at-point): Rewrite. + (eglot--lsp-xrefs-for-method): New helper. + (eglot--lsp-xref-helper): Use eglot--lsp-xrefs-for-method. + (eglot--xref-definitions-method): Delete. + (eglot--lsp-xref-refs): New variable. + (xref-backend-references, xref-backend-definitions): Use + eglot--lsp-xrefs-for-method. + (eglot--managed-mode): Set xref-prompt-for-identifier + to nil. + (eglot--xref-reset-known-symbols, eglot--xref-known-symbols): Delete + (xref-backend-identifier-completion-table): Nullify. + (eglot-find-declaration, eglot-find-implementation) + (eglot-find-typeDefinition): Use eglot--lsp-xref-helper. + +2019-10-11 Felicián Németh <felician.nemeth@gmail.com> + + Support goto-{declaration, implementation, typedefinition} + + Closes https://github.com/joaotavora/eglot/issues/302. + + * eglot.el (eglot--xref-definitions-method): New variable. + (xref-backend-definitions): Use it. + (eglot-find-declaration, eglot-find-implementation, + eglot-find-typeDefinition): New functions. + + * README.md (Language features): Add new capabilities. + + * eglot.el (eglot-client-capabilities): Add new capabilities. + (eglot-ignored-server-capabilites): Add new capability. + +2019-10-05 ambihelical <ambihelical@users.noreply.github.com> (tiny change) + João Távora <joaotavora@gmail.com> + + Allow user to set idle time to wait before processing changes + + * eglot.el (eglot-send-changes-idle-time): New defcustom. + (eglot--after-change): Use it. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/258 + +2019-10-05 João Távora <joaotavora@gmail.com> + + Much less noisy mode line + + * eglot.el (eglot--mode-line-format): Simplify. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/236 + +2019-10-05 João Távora <joaotavora@gmail.com> + + Unbreak elm language server which does use :triggercharacters + + Only query completionProvider -> triggerCharacter information if the + server has provided it. Elm's, and probably other's, do not provide + it, which doesn't mean they don't support completion. + + * eglot.el (eglot-completion-at-point): Check that completion + capability is a list before treating it like one. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/285 + +2019-10-05 João Távora <joaotavora@gmail.com> + + Revert "treat null/nil server capabilities as false" + + This reverts commit 645bcfc6e57181c39dae1f238758e76c1759a765. + + A capability of "null" is downright invalid, and must NOT be mistaken + for a value of "{}" (which indicates the presence of the capability) + or "False" (which indicates its asence). See + https://github.com/microsoft/language-server-protocol/issues/830#issuecomment-537849292 + for a clarification from the LSP maintainer. + +2019-10-05 Vladimir Panteleev <git@thecybershadow.net> (tiny change) + + Don't send dummy json object in "initialized" notification () + + Eglot uses a JSON object { __dummy__ : true } as a placeholder instead + of the empty object {}. It does this out of necessity, since encoding + an empty object can't currently be easily using the current jsonrpc.el + library. However, this also causes the parameter to be actually sent + to the server. + + Since the JSON-RPC specification states "The names MUST match exactly, + including case, to the method's expected parameters" this is + non-conforming to the protocol. + + The LSP specification does not seem to indicate how servers should + handle method calls with parameters they do not support. As such, + ignoring the parameter, or reporting an error, or crashing all seem to + be "valid" behaviors as far as the specification is concerned. + + We can avoid this by using an empty hash table instead of a dummy + parameter. Currently, an empty hash table is the only Emacs Lisp + object which jsonrpc.el serializes to an empty JSON object in + jsonrpc--json-encode. + + * eglot.el (eglot--connect): Use make-hash-table instead of dummy + object. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/312 + +2019-10-05 Ingo Lohmar <ingo.lohmar@posteo.net> + João Távora <joaotavora@gmail.com> + + Optionally shutdown after killing last buffer of managed project () + + This should close issue https://github.com/joaotavora/eglot/issues/217, also cf. https://github.com/joaotavora/eglot/issues/270. + + * eglot.el (eglot-autoshutdown): New defcustom. + (eglot--managed-mode-onoff): Shutdown if so configured and + no managed buffers left. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/309 + +2019-10-05 Ingo Lohmar <ingo.lohmar@posteo.net> + João Távora <joaotavora@gmail.com> + + On buffer kill, first send didclose then teardown local structures + + It used to be the reverse way around, which doesn't make sense. + + * eglot.el (eglot-managed-mode): Fix order in `kill-buffer-hook' + +2019-09-26 galeo <galeo@users.noreply.github.com> (tiny change) + + Also use signature label offsets for parameter info + + According to the LSP specification, a parameter of a callable-signature + has a label and a optional doc-commet. The label of a parameter + information is either a string or an inclusive start and exclusive end + offsets within its containing signature label. + + Previously, this was only taken in account for highlighting the + parameter in the definition signature. + + * eglot.el (eglot--sig-info): Handle signature label offsets + when printing the signature parameter information. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/272 + +2019-09-24 Felicián Németh <felician.nemeth@gmail.com> + + Merge pull request from jorams/nil-capabilities-as-false + + Treat null/nil server capabilities as false + + GitHub-reference: https://github.com/joaotavora/eglot/issues/298 + +2019-09-23 Ingo Lohmar <ingo.lohmar@posteo.net> + + Use gopls server as the default for go () + + Developers recommend it: see + https://github.com/sourcegraph/go-langserver/blob/master/README.md + + * eglot.el (eglot-server-programs): Use gopls. + + * README.md: mention gopls instead of go-langserver. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/304 + +2019-09-20 Joram Schrijver <i@joram.io> (tiny change) + + Treat null/nil server capabilities as false + + Some language servers may specify null for some capabilities in the list + of server capabilities. This does not conform to the specification, but + treating it as false is more reasonable than treating it as true. + + A current example is the PHP language server. which specifies null for + every capability it does not handle, like documentHighlightProvider. + This would cause Eglot to send constant textDocument/documentHighlight + requests, which all timed out. + + * eglot.el (eglot--server-capable): Change the handling of null values + for capabilities to treat them as false instead of true. + +2019-09-10 Felicián Németh <felician.nemeth@gmail.com> + + Change the default of eglot-move-to-column-function + + Previous default (move-to-column) works on visual columns, the LSP + specification and the new default (eglot-move-to-column) use "real" + columns. Fixes https://github.com/joaotavora/eglot/issues/293 and https://github.com/joaotavora/eglot/issues/297. + + * eglot.el (eglot-move-to-column): New function. + (eglot-move-to-column-function): Use it as default. + +2019-08-18 David Florness <edwargix@gmail.com> (tiny change) + + Require array package to use current-line () + + The jsonrpc package (one of eglot's dependencies) recently + updated and removed the line requiring the array package. Since + current-line is provided by array and is used by eglot, require + array explicitly. + + Here's jsonrpc's guilty commit: + + https://git.savannah.gnu.org/cgit/emacs.git/commit/lisp/jsonrpc.el?id=c676444a43e4634c1f98ec286b5bd9e46b23216b + + + * eglot.el (array): Require it. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/294 + +2019-08-12 Jürgen Hötzel <juergen@archlinux.org> + + Expand directory watcher globs containing ** () + + Previously, if the server requested a glob pattern like foo/**/* + to be watched, we would just error. Now we watch foo/bar/ and + foo/baz/ as if the server had requested those two watchers + instead of just the one with the **. + + As a limitation, the implementation of file-expand-wildcards + doesn't fully handle ** globstars (** matches at most one path + segment). + + * eglot.el (eglot-register-capability workspace/didChangeWatchedFiles): + Use file-expand-wildcards to make a ** glob into multiple **-less + globs. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/293 + +2019-07-18 Jürgen Hötzel <juergen@hoetzel.info> (tiny change) + + Fix invalid guess for php language server () + + * eglot.el (eglot-server-programs): Change the position of the php + language server, otherwise it will always be hidden by the c-mode + server (php-mode is derived from c-mode). + + GitHub-reference: https://github.com/joaotavora/eglot/issues/288 + +2019-07-16 John Wiegley <johnw@newartisans.com> + + Use `require', not `load', when byte-compiling () + + Use `require', not `load', when byte-compiling + GitHub-reference: https://github.com/jwiegley/use-package/issues/783 + +2019-07-16 Radon Rosborough <radon.neon@gmail.com> + + Update tests + + Switch from `require' to `load' + `featurep' + +2019-07-12 Radon Rosborough <radon.neon@gmail.com> + + Use `require', not `load', when byte-compiling + +2019-07-02 haqle314 <16577773+haqle314@users.noreply.github.com> (tiny change) + + Fix a typo + + * eglot.el (eglot--lsp-position-to-point): fix eglot--warn + call + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/273 + +2019-06-27 Ingo Lohmar <ingo.lohmar@posteo.net> + + Simplify eldoc usage () + + * eglot-tests.el (hover-after-completions): Protect test. Rewrite + docstring. + + * eglot.el (eglot--managed-mode): Don't mess with eldoc-message-function. + (eglot--eldoc-hint): Remove. + (eglot--update-doc): Rename and rewrite from eglot--eldoc-message. + (eglot-eldoc-function): Don't set eglot--eldoc-hint. + Call eglot--update-doc. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/269 + +2019-06-27 João Távora <joaotavora@gmail.com> + + Leniently handle invalid positions sent by some servers + + * eglot.el (eglot--lsp-position-to-point): Leniently squash + invalid character positions to 0. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/273 + +2019-06-20 Justin Talbott <justin@waymondo.com> + + update bind-chords to use of eval-after-load when maps declared + + also improve :chord keyword syntax processing to more closely mimic bind-keys since the same binding + normalizer is used. + + also add tests for use-package-chords to cover these test cases + +2019-06-14 Justin Talbott <justin@waymondo.com> + + rename function + + extract use-package-hook-handler-flatten-mode-symbols function + +2019-06-14 Justin Talbott <justin@waymondo.com> + + use `use-package-as-one` for normalizing `:ensure-system-package` + + This makes the preferred syntax consistent with other `use-package` + keywords. All of these are now valid: + + ``` + (use-package format-all + :ensure-system-package + (prettier . "npm i -g prettier") + (rufo . "gem install rufo")) + + (use-package format-all + :ensure-system-package + ((prettier . "npm i -g prettier") + (rufo . "gem install rufo"))) + + (use-package format-all + :ensure-system-package + (prettier . "npm i -g prettier")) + ``` + +2019-05-29 John Wiegley <johnw@newartisans.com> + + Make custom-face evaluate elisp. () + + Make custom-face evaluate elisp. + GitHub-reference: https://github.com/jwiegley/use-package/issues/773 + +2019-05-29 Vincent Zhang <seagle0128@gmail.com> (tiny change) + + Make custom-face evaluate elisp + + Fix https://github.com/jwiegley/use-package/issues/696. + +2019-05-12 Akash Hiremath <akashh246@gmail.com> (tiny change) + + Add built-in support for elixir's elixir-ls () + + * README.md: add elixir-ls. + + * eglot.el (eglot-server-programs): add elixir-ls. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/264 + +2019-05-10 João Távora <joaotavora@gmail.com> + + Work around a bug in emacs's change detection + + When using capitalize-word, or any case-fiddling function, + before-change-functions will record e.g. the whole word's start and + end, even though only the first character has changed. Not only is + this longer than needed but also conflicts with what we get in + after-change-functions, which records just the one-char-long change. + + Also, if the word didn't need any fiddling at all then + before-change-function will run but after-change-functions won't: an + "orphan" before-change will erroneously be sent to the server. + + * eglot.el (eglot--after-change): Detect problematic case and fix + change description. + (eglot--before-change): Store markers of changed region. + (eglot--signal-textDocument/didChange): Weed out orphan changes. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/259 + +2019-05-09 João Távora <joaotavora@gmail.com> + + Fix case when eglot-put-doc-in-help-buffer is nil + + * eglot.el (eglot--eldoc-message): Check eglot-put-doc-in-help-buffer. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/263 + +2019-05-08 Michal Krzywkowski <k.michal@zoho.com> + + Only consider eglot's own diagnostics in eglot-code-actions + + * eglot.el (eglot-code-actions): Filter out non-eglot diagnostics + before sending a request to the server. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/260 + +2019-04-30 vjoki <vjoki@users.noreply.github.com> (tiny change) + + Fix local function call in directory watcher () + + + * eglot.el (eglot-register-capability + workspace/didChangeWatchFiles): fix call to handle-event. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/255 + +2019-04-14 Naoya Yamashita <conao3@gmail.com> + + * use-package-core.el (use-package): fix declare style + + use-package specified lisp-indent-function to indent like defun. + + Currently, use-package main macro specify indent as (declare (indent 1)), + then change indent mode like defun. + + (declare (indent defun)) is same effect. + And it is useful when redefining use-package. + +2019-04-05 John Wiegley <johnw@newartisans.com> + + Merge pull request from stribb/master + + Add a line of documentation for (use-pacakage ... :hook). + GitHub-reference: https://github.com/jwiegley/use-package/issues/759 + +2019-04-04 Andrew Stribblehill <stribb@gmail.com> (tiny change) + + Add a line of documentation for (use-pacakage ... :hook) + +2019-02-13 João Távora <joaotavora@gmail.com> + + Unbreak build + + Messed up the name of eglot-xref-lessp-function. + + * eglot.el (eglot--handling-xrefs): Use eglot-xref-lessp-function + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/220 + +2019-02-11 João Távora <joaotavora@gmail.com> + + * eglot.el (xref-backend-references): don't use return-from. + +2019-02-11 João Távora <joaotavora@gmail.com> + + Don't sort xref's by default + + But use a eglot-xref-lessp-function in case someone wants to tweak + this. + + * eglot.el (eglot-xref-lessp-function): New variable. + (eglot--handling-xrefs): Use it. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/220 + +2019-02-11 João Távora <joaotavora@gmail.com> + + Use a less buggy flymake + + * eglot.el (Package-Requires) Require flymake 1.0.5 + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/223 + +2019-02-05 João Távora <joaotavora@gmail.com> + + Don't teardown company if started via trigger chars + + Reported by zhanghj in https://github.com/company-mode/company-mode/issues/866 + + * eglot.el (eglot-completion-at-point): More carefully calculate + :company-prefix-length + +2019-01-14 João Távora <joaotavora@gmail.com> + + Consider mode derivation when guessing servers + + * eglot.el (eglot-server-programs): Remove js2-mode and rjsx-mode. + (eglot--guess-contact): Use provided-mode-derived-p + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/177 + +2019-01-14 João Távora <joaotavora@gmail.com> + + Protect against null messages from eldoc + + * eglot.el (eglot--eldoc-message): Protect against nil FORMAT. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/209 + +2019-01-10 Sergey Kostyaev <s-kostyaev@users.noreply.github.com> + + Fix bug introduced by commit fixing this issue + + * eglot.el (eglot--sig-info): Protect against invalid label. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/121 + +2019-01-09 Brady Trainor <mail@bradyt.com> (tiny change) + + Add built-in support for dart's dart_language_server + + Closes https://github.com/joaotavora/eglot/issues/194. + + + * README.md (Connecting to a server): Add dart_language_server. + + * eglot.el (eglot-server-programs): Add dart_language_server. + +2019-01-09 João Távora <joaotavora@gmail.com> + + Handle label offsets in parameterinformation + + At least ccls uses this. + + * eglot.el (eglot-client-capabilities): Declare support for + :labelOffsetSupport. + (eglot--sig-info): Handle label offsets in ParameterInformation + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/201 + +2019-01-07 João Távora <joaotavora@gmail.com> + + Display truncated docstring if too large for echo area + + * eglot.el (eglot--eldoc-message): Display first line doc. + +2019-01-06 João Távora <joaotavora@gmail.com> + + Rename new defcustoms with friendlier names + + * eglot.el (eglot-doc-too-large-for-echo-area): Rename from + eglot-eldoc-extra-buffer-if-too-large. + (eglot-put-doc-in-help-buffer): Rename from + eglot-eldoc-extra-buffer. + (eglot-auto-display-help-buffer): Rename from + eglot-auto-display-eldoc-extra-buffer. + (eglot--eldoc-message): Use new variable names. + +2019-01-06 João Távora <joaotavora@gmail.com> + + Fix test failure introduced by previous commit + + Remove the hack of unsetting eldoc-last-message in + eglot--eldoc-message. This allows any subsequent eglot-eldoc-function + calls (prompted by simple cursor movement) to return it immediately, + thus refreshing the help buffer with the same contents. For this to + work, we also have to set eglot--eldoc-hint globally in + eglot-eldoc-function. + + An alternative to making the test pass would be to keep the hack of + unsetting eldoc-last-message only in the case that we actually get to + display the help buffer. This would actually be more efficient, but + potentially more hacky. + + The bottom line here is that eldoc doesn't have a good API to deal + with asynchronous docstring fetching. See this thread: + + https://lists.gnu.org/archive/html/emacs-devel/2018-05/msg00151.html + + * eglot.el (eglot--eldoc-message): Don't unset eldoc-last-message. + (eglot-eldoc-function): Set eglot--eldoc-hint for synchronous + operation too. + +2019-01-05 João Távora <joaotavora@gmail.com> + + Show large docs in help buffer instead of echo are by default + + * eglot.el (eglot--managed-mode): Add and remove from eglot--eldoc-message + (eglot--eldoc-hint, eglot--help-buffer): New helpers. + (eglot-eldoc-extra-buffer) + (eglot-auto-display-eldoc-extra-buffer): New defcustoms. + (eglot--eldoc-message): New helper. + (eglot-eldoc-function): Set eglot--eldoc-hint. + (eglot-help-at-point): Use new helpers. + (eglot-eldoc-extra-buffer-if-too-large): New predicate. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/198 + +2019-01-05 João Távora <joaotavora@gmail.com> + + Prevent eldoc flicker when moving around + + * eglot.el (eglot-eldoc-function): Return eldoc-last-message + immediately. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/198 + +2019-01-05 João Távora <joaotavora@gmail.com> + + Handle (un)registercapability requests via generic functions + + * eglot.el (Version): Bump to 1.4 + (eglot-register-capability, eglot-unregister-capability): New + generic functions. + (eglot--register-unregister): Call eglot-register-capability, + eglot-unregister-capability. + (eglot-register-capability s (eql + workspace/didChangeWatchedFiles)): Rename from + eglot--register-workspace/didChangeWatchedFiles. + (eglot-unregister-capability s (eql + workspace/didChangeWatchedFiles)): Rename from + eglot--unregister-workspace/didChangeWatchedFiles. + +2019-01-05 João Távora <joaotavora@gmail.com> + + Appease checkdoc + + * eglot.el (eglot--post-self-insert-hook) + (eglot--pre-command-hook, eglot--before-change) + (eglot--eclipse-jdt-contact): Fix docstrings. + +2019-01-02 João Távora <joaotavora@gmail.com> + + * eglot.el (eglot-workspace-configuration): safe when listp. + +2019-01-02 João Távora <joaotavora@gmail.com> + + Run connection hooks with proper dir-locals + + eglot-connect-hook and eglot-server-initialized-hook must run in a + buffer with properly setup directory-local variables for the project. + + This is crucial for things like eglot-signal-didChangeConfiguration, + which needs a properly setup value of eglot-workspace-configuration to + succeed. + + I could have chosen any of the buffers where Eglot is activating + itself, but the approach using + hack-dir-local-variables-non-file-buffer seems more correct, despite + the name. + + * eglot.el (eglot--connect): Run connection hooks with proper + dir-locals. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/196 + +2019-01-01 João Távora <joaotavora@gmail.com> + + Allow read-only modes for markup rendering + + gfm-mode is read-only, so it must be set after the string has been + inserted in the temporary buffer. + + * eglot.el (eglot--format-markup): Insert string before setting + mode. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/197 + +2018-12-27 João Távora <joaotavora@gmail.com> + + Remove a hard dependency on flymake-mode + + * eglot.el (eglot-handle-notification): Don't specifically check for + flymake-mode before reporting diagnostics. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/195 + +2018-12-23 João Távora <joaotavora@gmail.com> + + Slightly simplify eglot-completion-at-point + + * eglot.el (eglot-completion-at-point): Don't propertize + completion string with all LSP properties. + +2018-12-23 João Távora <joaotavora@gmail.com> + + Actually make completion sorting work + + * eglot.el (eglot-completion-at-point): Complicate severely. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/190 + +2018-12-22 João Távora <joaotavora@gmail.com> + + Fix previous commit where workaround had been removed + + Do remove the workaround, but not more than that. + + * eglot.el (eglot-completion-at-point): set local var strings. + +2018-12-22 João Távora <joaotavora@gmail.com> + + Use gfm-view-mode + + * eglot.el (eglot--format-markup): Use gfm-view-mode instead of gfm-mode. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/188 + +2018-12-22 João Távora <joaotavora@gmail.com> + + Remove workaround for company bug that has been fixed + + See https://github.com/company-mode/company-mode/pull/845. + + * eglot.el (eglot-completion-at-point): Remove workaround for + company-mode bug. + +2018-12-19 João Távora <joaotavora@gmail.com> + + * eglot.el (package-requires): require jsonrpc 1.0.7. + +2018-12-16 João Távora <joaotavora@gmail.com> + + Take over flymake and eldoc completely while managing buffers + + Take a pragmatic approach and override all other Flymake and Eglot + backends while Eglot is enabled. Restore previous values after + eglot-shutdown. + + Certainly cases might arise where using more than one datasource + besides LSP while Eglot is managing the buffer is useful. But + currently contrary, it confuses users enabling Eglot in buffers that + already have flymake/eldoc backends configured. + + The reasons are slightly different for Eldoc and Flymake: + + - For Eldoc the :before-until strategy only makes sense for + synchronous backends, which Eglot isn't. This conflicts with + python.el default python-eldoc-function, which is also asynchronous. + + - For Flymake, the default backends in Emacs (python-mode, c-mode, and + a few others) are mainly repetitions of what LSP does. The global + value is still run though (in case you want to put, say, a + spell-checking backend there). + + * eglot.el (eglot--saved-bindings, eglot--setq-saving): New + helpers. + (eglot--managed-mode): Use them. + +2018-12-16 João Távora <joaotavora@gmail.com> + + Be more careful when making xref summaries + + * eglot.el (eglot--xref-make): Only highlight to end-of-line at + most. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/187 + +2018-12-16 João Távora <joaotavora@gmail.com> + + Don't make bogus responses to client/(un)registercapability + + * eglot.el (eglot--register-unregister): Response is void. + +2018-12-16 João Távora <joaotavora@gmail.com> + + Add edebug specs to destructuring macros + + * eglot.el (eglot--dbind, eglot--lambda, eglot--dcase): Add edebug + specs. + +2018-12-16 João Távora <joaotavora@gmail.com> + + Rewrite eglot--sig-info a bit for readability + + * eglot.el (eglot--sig-info): Rewrite a bit. + +2018-12-16 Fredrik Bergroth <fbergroth@gmail.com> (tiny change) + + Adjust active param highlighting in first line of signature (3/3) + + Highlight only first active parameter match (even if there are many) + + + * eglot.el (eglot--sig-info): Simplify. + +2018-12-16 Fredrik Bergroth <fbergroth@gmail.com> (tiny change) + + Adjust active param highlighting in first line of signature (2/3) + + Use regex with word boundaries when scanning for active param, to + avoid matching substrings. + + + * eglot.el (eglot--sig-info): Use `re-search-forward`. + +2018-12-16 Fredrik Bergroth <fbergroth@gmail.com> (tiny change) + + Adjust active param highlighting in first line of signature (1/3) + + JT@2018/12/16: Previously, the whole first line of the rendered + documentation was searched for, potentially highlighting params + in the wrong place. + + + * eglot.el (eglot--sig-info): Search for active parameter within + `params-start` and `params-end`. + +2018-12-16 Fredrik Bergroth <fbergroth@gmail.com> (tiny change) + + Apply eglot--format-markup to signature documentation + + + * eglot.el (eglot--sig-info): Call eglot--format-markup on signature + documentation. + +2018-12-09 João Távora <joaotavora@gmail.com> + + * eglot.el (version): bump to 1.3 + +2018-12-07 João Távora <joaotavora@gmail.com> + + Be lenient by default to unknown methods or notifications + + * eglot.el (eglot-strict-mode): Describe meaning of + disallow-non-standard-keys. + (eglot-handle-notification, eglot-handle-request): Check + eglot-strict-mode. + +2018-12-07 João Távora <joaotavora@gmail.com> + + Handle array params to server notification or requests + + * eglot.el (eglot-handle-notification): Remove extraneous id + (eglot--connect): If params is an array, make it a list. + +2018-12-07 João Távora <joaotavora@gmail.com> + + Scratch/use elpa flymake () + + Use GNU ELPA's Flymake + + * eglot.el (Package-Requires): require Flymake 1.0.2. + (version< emacs-version "27.0"): Remove horrible hack + + * Makefile (ELPADEPS): Renamed from JSONRPC. + (%.elc): Use it. + (eglot-check): Use it. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/178 + +2018-12-06 João Távora <joaotavora@gmail.com> + + Warn about suspicious interface usage at compile-time + + For fun, set eglot-strict-mode to '(disallow-non-standard-keys + enforce-required-keys enforce-optional-keys) when compiling, or just + use flymake-mode in eglot.el. + + * eglot.el (eglot--lsp-interface-alist): Use in compile-time. + Order alphabetically. Fix a few bugs. + (eglot-strict-mode): Disallow non-standard-keys when compiling. + Update docstring. + (eglot--keywordize-vars, eglot--check-interface): New + compile-time-helpers. + (eglot--dbind, eglot--dcase): Use new helpers. + +2018-12-06 João Távora <joaotavora@gmail.com> + + Use eglot--dbind and eglot--lambda throughout + + The default behavior of these macros is to be lenient towards servers + sending unknown keys, which should fix the issue. + + * eglot.el (eglot--lsp-interface-alist): Add a bunch of new interfaces. + (eglot--connect, eglot-handle-notification) + (xref-backend-identifier-completion-table) + (xref-backend-definitions, xref-backend-apropos) + (xref-backend-references, eglot-completion-at-point) + (eglot--sig-info, eglot-help-at-point, eglot-eldoc-function) + (eglot-imenu, eglot--apply-text-edits) + (eglot--apply-workspace-edit) + (eglot--register-workspace/didChangeWatchedFiles): Use + eglot--dbind and eglot--lambda to destructure LSP objects. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/144 + +2018-12-04 João Távora <joaotavora@gmail.com> + + Adjust previous fix + + * eglot.el (eglot--before-change): Don't reset + eglot--last-inserted-char here. + (eglot--pre-command-hook): Do it here. + (eglot--managed-mode): Add/remove eglot--pre-command-hook to/from + pre-command-hook. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/173 + +2018-12-04 João Távora <joaotavora@gmail.com> + + Fix bug introduced by previous fix + + * eglot.el (eglot--CompletionParams): Don't use last-input-event. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/173 + +2018-12-03 João Távora <joaotavora@gmail.com> + + Handle codeaction/command polymorphism with eglot--dcase + + * eglot-tests.el (eglot-dcase): Augment test. + + * eglot.el (eglot--lsp-interface-alist): Add Command interface. + (eglot--dcase): Fix indentation. When given interface, always + assume strict mode. + (eglot-code-actions): Use eglot--dcase. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/164 + +2018-12-03 João Távora <joaotavora@gmail.com> + + Robustify previous fix against non-standard insertion bindings + + * eglot.el (eglot--managed-mode): Manage post-self-insert-hook. + (eglot--last-inserted-char): New variable. + (eglot--post-self-insert-hook): Set it. + (eglot--before-change): Reset it. + (eglot--CompletionParams): Use it. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/173 + +2018-12-03 Michal Krzywkowski <k.michal@zoho.com> + + Properly clear old diagnostics when making new ones + + * eglot.el (eglot-handle-notification + textDocument/publishDiagnostics): Call flymake report function with + :region. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/159 + +2018-12-02 Mario Rodas <marsam@users.noreply.github.com> (tiny change) + + Use javascript-typescript-langserver for typescript-mode () + + + * eglot.el (eglot-server-programs): add typescript-mode to + javascript-typescript-langserver's contact + + GitHub-reference: https://github.com/joaotavora/eglot/issues/174 + +2018-12-02 João Távora <joaotavora@gmail.com> + + Support completioncontext to help servers like ccls + + * eglot.el (eglot-client-capabilities): Announce + textDocument/completion/contextSupport. + (eglot--CompletionParams): New helper. + (eglot-completion-at-point): Use it. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/173 + +2018-12-01 João Távora <joaotavora@gmail.com> + + Don't break in indirect buffers + + Indirect buffers, such as the ones created by ediff-regions-wordwise, + have eglot enabled but not buffer-file-name. Resort to the finding + the file-name of the original buffer for these. + + * eglot.el (eglot--TextDocumentIdentifier): Work in indirect + buffers. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/116 + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/150 + +2018-12-01 Michal Krzywkowski <k.michal@zoho.com> + + Use eglot--dbind for destructuring + + * eglot.el (eglot--lsp-interface-alist): Add CodeAction, + FileSystemWatcher, Registration, TextDocumentEdit, WorkspaceEdit. + (eglot-handle-notification): Use eglot--dbind. + (eglot--apply-workspace-edit): Use eglot--dbind and eglot--lambda. + (eglot-code-actions): Use eglot--lambda. + (eglot--register-workspace/didChangeWatchedFiles): Use eglot--lambda. + +2018-11-30 João Távora <joaotavora@gmail.com> + + Introduce eglot--dcase + + * eglot.el (eglot--dcase): New macro. + + * eglot-tests.el (eglot-dcase-with-interface) + (eglot-dcase-no-interface): New tests. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/171 + GitHub-reference: per https://github.com/joaotavora/eglot/issues/156 + +2018-11-30 João Távora <joaotavora@gmail.com> + + Simplify interface of eglot--dbind macro + + * eglot.el (eglot--dbind): Use new interface. + (eglot--lambda): Use new eglot--dbind interface. + (eglot--lsp-interface-alist): Fix docstring. + (eglot--call-with-interface): Simplify. + (eglot--plist-keys): New helper. + + * eglot-tests.el (eglot-strict-interfaces): + Add a new test clause. + +2018-11-28 Michal Krzywkowski <k.michal@zoho.com> + + Touch up last commit + + * eglot.el (eglot-current-column): Rename from eglot--current-column. + (eglot-current-column-function): Use it as value and mention in docstring. + (eglot--xref-make): Use eglot-current-column. + +2018-11-27 Michal Krzywkowski <k.michal@zoho.com> + + * eglot.el (eglot--current-column): new helper. + + (eglot-current-column-function): Set to eglot--current-column. + (eglot--pos-to-lsp-position): Don't bind tab-width anymore. + (eglot--xref-make): Use eglot--current-column. + +2018-11-27 João Távora <joaotavora@gmail.com> + + Improve performance of xref summary line collection + + * eglot.el (eglot--temp-location-buffers): New variable. + (eglot--handling-xrefs): New macro. + (eglot--xref-make): Use eglot--temp-location-buffers. + (xref-backend-definitions, xref-backend-references) + (xref-backend-apropos): Use eglot--handling-xrefs. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/52 + GitHub-reference: per https://github.com/joaotavora/eglot/issues/127 + +2018-11-27 João Távora <joaotavora@gmail.com> + + Use entire line as xref summary when available + + After an original implementation by Michael Livshin. Also close https://github.com/joaotavora/eglot/issues/127. + + * eglot.el (eglot--xref-make): Rework. + (xref-backend-definitions, xref-backend-references) + (xref-backend-apropos): Simplify call to `eglot--xref-make'. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/52 + +2018-11-23 João Távora <joaotavora@gmail.com> + + Revert "codeaction command can be a command object ()" + + This reverts commit 1e7f94d75a30628be56ad00de8c6245f5f3e9fdf. + + The spec doesn't define Command as implemented in the commit. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/164 + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/165 + +2018-11-23 Michal Krzywkowski <k.michal@zoho.com> + + Codeaction command can be a command object () + + * eglot.el (eglot-code-actions): Handle case when the :command field + is not a string. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/164 + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/165 + +2018-11-23 João Távora <joaotavora@gmail.com> + + Control strictness towards incoming lsp messages + + A new variable, eglot-strict-mode controls whether Eglot is strict or + lax with regard to incoming LSP messages. + + 1. Bug reports should be tested with eglot-strict-mode set to + '(disallow-non-standard-keys enforce-required-keys) + + 2. Users struggling to get non-standard servers working set this + variable to '(), nil. For now, by popular demand, this is the + default value. + + Note that this commit in particular introduces a new infrastructure, + but does not yet alter any code in Eglot to use it. Neither is the + variable eglot--lsp-interface-alist populated. + + * eglot-tests.el (eglot-strict-interfaces): New test. + + * eglot.el (eglot--lsp-interface-alist): New variable. + (eglot-strict-mode): New variable. + (eglot--call-with-interface): New helper. + (eglot--dbind): New macro. + (eglot--lambda): New macro. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/144 + GitHub-reference: per https://github.com/joaotavora/eglot/issues/156 + +2018-11-22 João Távora <joaotavora@gmail.com> + + * eglot.el (version): bump to 1.2 + + * eglot.el (eglot-completion-at-point): less chatter. + +2018-11-22 João Távora <joaotavora@gmail.com> + + Correctly insert textedit-less snippets + + Fixes a slight regression from https://github.com/joaotavora/eglot/issues/160. + + * eglot.el (eglot-completion-at-point): When there is plain + `insertText' snippet, delete the full completion text. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/167 + +2018-11-22 João Távora <joaotavora@gmail.com> + + Fix potential security issue fontifying lsp doc + + Previously, a server could mistankely or maliciously call *-mode + functions by in the response to a completion or hover request, + specifically in the :documentation field of the response. + + Although there are plenty of similar avenues of attack in Emacs, it's + probably a good idea not to let LSP servers decide which functions to + call in an Emacs session running Eglot. + + * eglot.el (eglot--format-markup): Call major-mode to fontify + buffer, not some dynamically constructed function name. + (eglot-completion-at-point): Ensure eglot--format-markup runs in + source buffer. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/154 + +2018-11-22 Alex Branham <alex.branham@gmail.com> (tiny change) + + Add support for r's languageserver () + + + * eglot.el (eglot-server-programs): Add R language server. + * README.md (Installation and usage): Mention it. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/161 + +2018-11-21 Michal Krzywkowski <k.michal@zoho.com> + + Properly delete inserted text after completion + + * eglot.el (eglot-completion-at-point): In :exit-function, delete only + the region of buffer that was inserted by completion. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/160 + +2018-11-19 John Wiegley <johnw@newartisans.com> + + Merge pull request from conao3/fix_default_value + + fix gethash default value for use-package-statistics-time + GitHub-reference: https://github.com/jwiegley/use-package/issues/681 + +2018-11-19 Michal Krzywkowski <k.michal@zoho.com> + + Treat tab characters as 1 column wide in position conversion functions + + Fixes https://github.com/joaotavora/eglot/issues/158. + + * eglot.el (eglot--pos-to-lsp-position): Call + eglot-current-column-function with tab-width bound to 1. + (eglot--lsp-position-to-point): Call eglot-move-to-column-function + with tab-width bound to 1. + +2018-11-17 Michal Krzywkowski <k.michal@zoho.com> + + Format documentation of signature parameters + + * eglot.el (eglot--sig-info): Call `eglot--format-markup` on parameter + :documentation. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/144 + +2018-11-13 João Távora <joaotavora@gmail.com> + + Add ability to report lsp-compliant columns + + * eglot.el (eglot-current-column-function): New variable. + (eglot-lsp-abiding-column): New helper. + (eglot--pos-to-lsp-position): Use eglot-current-column-function. + (eglot-move-to-column-function): Tweak docstring. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/125 + +2018-11-13 Michal Krzywkowski <k.michal@zoho.com> + + Add support for textedits in completion + + * eglot.el (eglot-completion-at-point): Apply the CompletionItem's + :textEdit and :additionalTextEdits when they're present. + +2018-11-13 João Távora <joaotavora@gmail.com> + + Tweak solution to with a hint from fangrui song + + * eglot.el (eglot-move-to-lsp-abiding-column): Simplify slightly. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/125 + +2018-11-12 João Távora <joaotavora@gmail.com> + + Complex completions work when chosen from *completions* + + * eglot.el (eglot-completion-at-point): Make exit-function work + even if its arguments was stripped of its properties. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/148 + +2018-11-12 João Távora <joaotavora@gmail.com> + + Add ability to move to lsp-precise columns + + Also close https://github.com/joaotavora/eglot/issues/125. + + Idea and much of design contributed by Michał Krzywkowski + <k.michal@zoho.com> + + This introduces the variable eglot-move-to-column-function. + + According to the standard, LSP column/character offsets are based + on a count of UTF-16 code units, not actual visual columns. So + when LSP says position 3 of a line containing just \"aXbc\", + where X is a multi-byte character, it actually means `b', not + `c'. This is what the function + `eglot-move-to-lsp-abiding-column' does. + + However, many servers don't follow the spec this closely, and + thus this variable should be set to `move-to-column' in buffers + managed by those servers. + + * eglot.el (eglot-move-to-column-function): New variable. + (eglot-move-to-lsp-abiding-column): New function. + (eglot--lsp-position-to-point): Use eglot-move-to-column-function. + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/124 + +2018-11-10 John Wiegley <johnw@newartisans.com> + + Merge pull request from tarsiiformes/silencio + + Silence byte-compiler on Emacs 25 + GitHub-reference: https://github.com/jwiegley/use-package/issues/733 + +2018-11-10 Jonas Bernoulli <jonas@bernoul.li> + + Silence byte-compiler on Emacs 25 + + Emacs 25 defined a global variable `features', which triggers a + warning "Lexical argument shadows the dynamic variable features". + That's not `use-package's fault, but we should suppress the warning + anyway, so that there is no additional noise that would cause us to + potentially overlook warnings that absolutely have to be addressed. + +2018-11-08 João Távora <joaotavora@gmail.com> + + Fix a bug introduced by previous bugfix + + This commit fixes a bug but introduced another when completing a + symbol in xref-find-definitions. + + commit ee58d92a7de1c8b1914c77177a7d5e755f1de827 + Author: Michał Krzywkowski <k.michal@zoho.com> + Date: Sun Nov 4 16:59:05 2018 +0100 + + * eglot.el (xref-backend-identifier-completion-table): Use vector. + +2018-11-07 João Távora <joaotavora@gmail.com> + + Move constants to top instead of forward-declaring + + * eglot.el (eglot--symbol-kind-names, eglot--kind-names): Move to + top of file. + +2018-11-07 Mario Rodas <marsam@users.noreply.github.com> (tiny change) + + Support ocaml-language-server out of the box () + + + * eglot.el (eglot-server-programs): Add ocaml-language-server. + + * README.md (Installation and usage): Mention ocaml-language-server + + GitHub-reference: https://github.com/joaotavora/eglot/issues/149 + +2018-11-07 Michal Krzywkowski <k.michal@zoho.com> + + * eglot.el (eglot-client-capabilities): mention supported symbolkinds. + +2018-11-07 Michal Krzywkowski <k.michal@zoho.com> + + Make imenu hierarchical + + * eglot.el (eglot-imenu): Use :containerName to build a nested imenu + index alist. + +2018-11-04 Michal Krzywkowski <k.michal@zoho.com> + + Fix a bug when response to definitions request is a single location + + It's valid to return just a single Location for a definitions request. + + * eglot.el (xref-backend-definitions): Coerce response to a vector. + +2018-11-04 João Távora <joaotavora@gmail.com> + + Simplify eglot-code-action. fix compilation warning + + * eglot.el (eglot-code-actions): Simplify. + (eglot-client-capabilities): Mention supported codeActionKind's + directly. + (eglot--code-action-kinds): Remove. + +2018-11-04 Michal Krzywkowski <k.michal@zoho.com> + + Add support for code action literals + + Code action literals allow the server to simply return a WorkspaceEdit + for a code action, so the client does not have to execute a command. + + * eglot.el (eglot-client-capabilities): Add :codeActionLiteralSupport. + (eglot--code-action-kinds): New variable. + (eglot-code-actions): Apply provided WorkspaceEdit. + +2018-11-04 Michal Krzywkowski <k.michal@zoho.com> + + Use the container name of a symbol in imenu + + * eglot.el (eglot-imenu): Prepend :containerName to each symbol, when + provided. + +2018-10-31 Michal Krzywkowski <k.michal@zoho.com> + + Don't ignore unknown symbolkinds in imenu + + Some servers provide custom SymbolKinds. For example, ccls says that + symbols defined with #define are of kind 255. + + * eglot.el (eglot-imenu): Don't delete elements with unknown symbol + kind from the return list, instead put them in `(Unknown)` group. + +2018-10-31 Michal Krzywkowski <k.michal@zoho.com> + + Remove duplicates from imenu + + * eglot.el (eglot-imenu): Don't append the result list to itself, + which causes duplicates. + +2018-10-30 Alex Branham <alex.branham@gmail.com> + + Require subr-x at compile time () + + if-let and when-let are macros that the byte compiler can expand + at compile time. No need to require subr-x at run time. + + * eglot.el (subr-x): Require only when compiling. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/139 + +2018-10-30 João Távora <joaotavora@gmail.com> + + Accept deprecated field in symbolinformation + + * eglot.el (xref-backend-identifier-completion-table) + (eglot-imenu): Accept and ignore "deprecated" + + GitHub-reference: fix https://github.com/joaotavora/eglot/issues/138 + +2018-10-24 John Wiegley <johnw@newartisans.com> + + Merge pull request from jwiegley/use-package-chords-suppress-compiler-message + + prefix argument with _ to suppress Unused lexical argument warning + GitHub-reference: https://github.com/jwiegley/use-package/issues/713 + +2018-10-24 Dale Sedivec <dale@codefu.org> (tiny change) + + Fix misspelling of "outstanding" () + + + * eglot.el (eglot--mode-line-format): Fix a typo. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/74 + +2018-10-18 Michal Krzywkowski <k.michal@zoho.com> + + Handle case when project was not found in eclipse.jdt.ls contact + +2018-10-18 Michal Krzywkowski <k.michal@zoho.com> + + Override eglot-execute-command for eclipse.jdt.ls server + + * eglot.el (eglot-execute-command eglot-eclipse-jdt): New defmethod. + +2018-10-18 Michal Krzywkowski <k.michal@zoho.com> + + Add support for eclipse.jdt.ls server + + * eglot.el (eglot-server-programs): Add java-mode entry. + (eglot-eclipse-jdt): New class. + (eglot-initialization-options): Override for eglot-eclipse-jdt. + (eglot--eclipse-jdt-contact): New function. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/63 + +2018-10-18 Michal Krzywkowski <k.michal@zoho.com> + + Allow function contacts to be interactive + + * eglot.el (eglot-server-programs): Mention that the function must + accept one argument. + (eglot--guess-contact): Pass to functional contacts the interactive + value. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/63 + +2018-10-15 Michal Krzywkowski <k.michal@zoho.com> + + Improve signature help + + * eglot.el (eglot--sig-info): Don't lose existing information. + Attempt to highlight the active parameter by searching for it's + :label in signature's :label. Append to the result first sentence + of signature's :documentation, if present. + +2018-10-15 Michal Krzywkowski <k.michal@zoho.com> + + Sort references and definitions by line number + + * eglot.el (eglot--sort-xrefs): New function. + (xref-backend-definitions): + (xref-backend-references): + (xref-backend-apropos): Use it. + +2018-10-15 Michal Krzywkowski <k.michal@zoho.com> + + Merge pull request from mkcms/fix-diagnostics-wrong-type-argument + + Handle case when diagnostic :character is out of range + + GitHub-reference: https://github.com/joaotavora/eglot/issues/104 + +2018-10-15 Michal Krzywkowski <k.michal@zoho.com> + + Handle case when diagnostic :character is out of range + + * eglot.el (eglot-handle-notification): Don't error out when + flymake-diag-region returns nil. + +2018-10-15 Michal Krzywkowski <k.michal@zoho.com> + + Eglot-ignored-server-capabilites: prefer all choices over "other" + + Previously the "Other" choice matched every value, so it was always + shown in the customize buffer. + + * eglot.el (eglot-ignored-server-capabilites): Make the "Other" choice + the last possible option. + +2018-10-03 Michal Krzywkowski <k.michal@zoho.com> + + Make eglot-ignored-server-capabilites more user-friendly () + + * eglot.el (eglot-ignored-server-capabilites): Add list of possible + choices to :type, along with a user-friendly description. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/126 + +2018-09-24 Michal Krzywkowski <k.michal@zoho.com> + + Correctly map documentsymbol's :kind to its name () + + Previously we were mapping :kind in DocumentSymbol with + names from the CompletionItemKind enum, whereas we should + have used the SymbolKind enum. + + * eglot.el (eglot--symbol-kind-names): New variable. + (eglot-imenu): Use it instead of eglot--kind-names. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/121 + +2018-09-24 whatacold <whatacold@gmail.com> (tiny change) + + Autoload eglot-ensure () + + + * eglot.el (eglot-ensure): Add autoload cookie + + GitHub-reference: https://github.com/joaotavora/eglot/issues/120 + +2018-09-17 João Távora <joaotavora@gmail.com> + + Don't block kill-buffer-hook if server somehow hangs + + * eglot.el (eglot--signal-textDocument/didClose): Use + with-demoted-errors. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/115 + +2018-09-13 Justin Talbott <justin@waymondo.com> + + Merge pull request from lrochfort/ensure-system-package_use-sudo + + [Fix https://github.com/jwiegley/use-package/issues/720] Install system packages using system-packages-install + GitHub-reference: https://github.com/jwiegley/use-package/issues/721 + +2018-09-12 Laurence Rochfort <laurence.rochfort@gmail.com> (tiny change) + + [] Install system packages using system-packages-install + + :ensure-system-package was installing packages by running + system-packages-get-command via async-shell-command. This meant that + system-packages-use-sudo wasn't being honored. + + This patch makes :ensure-system-package use system-packages-install + for all cases, except where a custom install command is supplied, in + which case async-shell-command is used. + + This issue was introduced in 9f034a0bcfdd8c4 [https://github.com/jwiegley/use-package/issues/673], as a fix for + [https://github.com/jwiegley/use-package/issues/661]. Prior to that commit, system-packages-use-sudo was being + honored. + + This patch also fixes a bug where a cons containing a lone symbol in a + list of conses causes nil to used as the package to install. + GitHub-reference: fix https://github.com/jwiegley/use-package/issues/720 + +2018-09-08 Aleksey Kladov <aleksey.kladov@gmail.com> (tiny change) + + Don't send other notifications before initialized + + + * eglot.el (eglot--connect): send initialized before + activating minor mode. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/100 + +2018-09-07 João Távora <joaotavora@gmail.com> + + Prefer ccls over cquery for c/c++ + + * README.md (Installation and usage): Prefer ccls to cquery. Mention clangd. + + * eglot.el (eglot-server-programs): Suggest ccls for c/c++ by default. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/94 + +2018-09-07 João Távora <joaotavora@gmail.com> + + Fix serious breakage introduced by + + string-prefix-p doesn't work on symbols + + * eglot.el (eglot-handle-notification): Coerce method name to string. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/93 + +2018-09-07 Fangrui Song <i@maskray.me> + + Don't warn on implementation-specific notifications () + + Only warn when method name doesn't start with '$'. Per the spec: + + "if a server or client receives notifications or requests + starting with ‘$/’ it is free to ignore them if they are unknown." + + * eglot.el (eglot-handle-notification t t): Check method name for $. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/93 + +2018-08-27 Evgeni Kolev <evgenysw@gmail.com> (tiny change) + + When exiting emacs, don't ask the user to confirm killing processes () + + + * eglot.el (eglot--connect, eglot--inferior-bootstrap): pass noquery t to + make-process. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/83 + +2018-08-25 João Távora <joaotavora@gmail.com> + + Handle case when :textdocumentsync isn't a number + + Also closes https://github.com/joaotavora/eglot/issues/87. + + * eglot.el (eglot--signal-textDocument/didChange): Grab :change + from :textDocumentSync server capability. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/86 + +2018-08-20 João Távora <joaotavora@gmail.com> + + Correctly delete text before expanding snippet completions + + Suggested by Amol Mandhane. + + * eglot.el (eglot-completion-at-point): Use length of obj in + :exit-function + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/82 + +2018-08-20 Phillip Dixon <phillip.dixon@gmail.com> (tiny change) + + Ignore extra keys in textdocument/publishdiagnostics () + + According to the "discussion" in https://reviews.llvm.org/D50571, it + was deemed sufficient that VSCode is fine with the non-standard + extension -- jt + + + * eglot.el (eglot-handle-notification): Add &allow-other-keys + + GitHub-reference: https://github.com/joaotavora/eglot/issues/81 + +2018-08-19 João Távora <joaotavora@gmail.com> + + Consider :triggercharacters in company completion + + * eglot.el (eglot-completion-at-point): Take advantage of + :company-prefix-length. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/80 + +2018-08-18 João Távora <joaotavora@gmail.com> + + Improve snippet support + + * eglot.el (eglot-client-capabilities): Don't always declare + snippet support. + (eglot--snippet-expansion-fn): New helper. + (eglot-completion-at-point): Better annotations when snippets + are supported. + +2018-08-18 Evgeni Kolev <evgenysw@gmail.com> (tiny change) + + Add go-langserver () + + + * README.md (Installation and usage): Add go-langserver. + * eglot.el (eglot-server-programs): Add go-langserver. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/74 + +2018-08-18 João Távora <joaotavora@gmail.com> + + Don't error if server replies with empty hover message + + * eglot.el (eglot-eldoc-function): Check non-nil contents. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/74 + +2018-08-17 Michal Krzywkowski <k.michal@zoho.com> + + Fix textdocument/hover responses where markedstring is a plist () + + * eglot.el (eglot--hover-info): Forward all non-vector content to + eglot--format-markup. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/72 + +2018-08-17 João Távora <joaotavora@gmail.com> + + Support snippet completions + + * eglot.el (eglot-client-capabilities): Declare support for + snippet-based completions. + (eglot-completion-at-point): Expand snippet completions with + YASnippet if that is found. + (eglot-note, eglot-warning, eglot-error): Diagnostic + overlay priorities have to be slightly lower than yasnippet's, + which must be reasonably high. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/50 + +2018-08-17 João Távora <joaotavora@gmail.com> + + Fix eglot-capabilities when querying for multiple features + + * eglot-tests.el (eglot-capabilities): New test. + + * eglot.el (eglot--server-capable): Fix problems with queries for + multiple capabilities. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/74 + +2018-08-13 Justin Talbott <justin@waymondo.com> + + prefix argument with _ to suppress Unused lexical argument warning + + per @tarsius’s comment + https://github.com/jwiegley/use-package/commit/5d9c854a6cf12fff2326ee5653e87e2d3d550a8d#commitcomment-29996666 + +2018-08-13 João Távora <joaotavora@gmail.com> + + Prompt for server in interactive eglot-shutdown + + * eglot.el (eglot--read-server): New helper. + (eglot-shutdown): Use it. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/73 + +2018-08-12 James Nguyen <james@jojojames.com> + + Add kotlin-language-server () + + https://github.com/fwcd/KotlinLanguageServer + + copyright-paperwork-exempt: yes + + * README.md (Installation and Usage): declare Kotlin support. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/70 + +2018-08-12 João Távora <joaotavora@gmail.com> + + Handle edits to same position in the correct order + + In eglot--apply-text-edits, the markers returned by + eglot--lsp-position-to-point are of the "stay" type, i.e. have an + insertion-type of nil. This causes multiple insertion edits to the + same location to happen in the reverse order in which they appear in + the LSP message, which is a violation of the spec and a bug. + + There are more ways to solve this (see related discuttion in + https://github.com/joaotavora/eglot/pull/64), but the easiest way is + to revert the order in which the edits are processed. This is because + the spec tells us that the order is only relevant in precisely this + "same position" case. So if we reverse the order we fix this bug and + don't break anything else. + + * eglot.el (eglot--apply-text-edits): Apply edits in reverse.. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/64 + +2018-08-12 João Távora <joaotavora@gmail.com> + + Control the size of the events buffer + + * eglot.el (eglot-events-buffer-size): New defcustom. + (eglot--connect): Use it. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/41 + +2018-08-12 João Távora <joaotavora@gmail.com> + + Implement asynchronous server connection + + A new defcustom eglot-sync-connect controls this feature. If it is t, + eglot should behave like previously, waiting synchronously for a + connection to be established, with the exception that there is now a + non-nil timeout set to eglot-connect-timeout, which defaults to 30 + seconds. + + eglot-connect is now considerably more complicated as it replicates + most of the work that jsonrpc-request does vis-a-vis handling errors, + timeouts and user quits.. + + * eglot-tests.el + (eglot--call-with-dirs-and-files): Simplify cleanup logic. + (slow-sync-connection-wait) + (slow-sync-connection-intime, slow-async-connection) + (slow-sync-error): New tests. + + * eglot.el (eglot-sync-connect): New defcustom. + (eglot-ensure, eglot): Simplify. + (eglot--connect): Honor eglot-sync-connect. Complicate + considerably. + (eglot-connect-timeout): New defcustom. + (Package-requires): Require jsonrpc 1.0.6 + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/68 + +2018-08-11 Michal Krzywkowski <k.michal@zoho.com> + + Kill server's output and events buffers from eglot-shutdown () + + * eglot.el + (Package-Requires): Require jsonrpc 1.0.5 + (eglot-shutdown): Kill events and stderr buffers of the + server, unless new PRESERVE-BUFFERS argument is non-nil. + eglot-reconnect): Preserve buffers on shutdown. + + * eglot-tests.el (eglot--call-with-dirs-and-files): Call + eglot-shutdown with non-nil PRESERVE-BUFFERS arg. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/66 + +2018-08-11 João Távora <joaotavora@gmail.com> + + Improve eglot-execute-command api to ease overriding by servers + + * eglot.el (eglot-execute-command): COMMAND can be a symbol. + (eglot-code-actions): Pass symbols to eglot-command. + +2018-08-11 Michal Krzywkowski <k.michal@zoho.com> + + Add a generic eglot-execute-command api + + * eglot.el (eglot-execute-command): New defgeneric and method. Use it + to request :workspace/executeCommand. + (eglot-code-actions): Use it. + +2018-08-11 Michal Krzywkowski <k.michal@zoho.com> + + * eglot.el (eglot-cquery): capitalize docstring. + +2018-08-09 João Távora <joaotavora@gmail.com> + + * eglot.el (advice-add jsonrpc-request): add &allow-other-keys + +2018-08-09 João Távora <joaotavora@gmail.com> + + Require jsonrpc.el 1.0.2 (gnu elpa didn't build 1.0.1) + + * eglot.el (Package-Requires): Require jsonrpc 1.0.2 + +2018-08-09 João Távora <joaotavora@gmail.com> + + Snappier completions that don't hinder typing + + This should improve company-capf's performance. + + * eglot.el (Package-Requires): Require jsonrpc 1.0,1 + (eglot-completion-at-point): Use completion-table-dynamic. Pass + CANCEL-ON-INPUT to jsonrpc-request. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/61 + +2018-08-09 Michal Krzywkowski <k.michal@zoho.com> + + Notify server of recent changes before save notification + + * eglot.el (eglot--signal-textDocument/didSave): Call + eglot--signal-textDocument/didChange. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/60 + +2018-08-07 João Távora <joaotavora@gmail.com> + + * eglot.el (eglot-initialization-options): fix spurious typo. + +2018-08-07 João Távora <joaotavora@gmail.com> + + Accept functions as entries in eglot-server-programs + + CONTACT in the (MAJOR-MODE . CONTACT) association in + eglot-server-programs can now be a function of no arguments producing + any value previously valid for contact. The function is called at + time of `M-x eglot` or `eglot-ensure`. This is useful for servers + requiring command-line invocations that depend on the specific + momentary environment. + + * eglot.el (eglot-server-programs): CONTACT can be a function of no + arguments. + (eglot--guess-contact, eglot--connect): Accept function + CONTACTs. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/63 + +2018-08-05 João Távora <joaotavora@gmail.com> + + Eglot-workspace-configuration's keys needn't be keywords + + * eglot.el (eglot-signal-didChangeConfiguration): Convert + alist keys into a json-compatible plist. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/59 + +2018-08-03 João Távora <joaotavora@gmail.com> + + Default eglot-handle-notifictiona|request must &allow-other-keys + + * eglot.el (eglot-handle-notification, eglot-handle-request): Add + &allow-other-keys + +2018-08-03 Michal Krzywkowski <k.michal@zoho.com> + + Fix placement of diagnostics with same start and end positions + + Some servers such as cquery and clangd publish diagnostic with + identical start and end positions. + + * eglot.el (eglot-handle-notification + :textDocument/publishDiagnostics): Add 1 to :line since LSP lines + are 0-based. Don't subtract 1 from :character, since both emacs and + LSP have 0-based columns. + +2018-08-02 João Távora <joaotavora@gmail.com> + + Erase company-doc buffer in between doc requests + + * eglot.el (eglot-completion-at-point): Erase temporary + "*eglot-doc*" buffer for company's doc. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/58 + +2018-07-30 Michal Krzywkowski <k.michal@zoho.com> + + * eglot.el (eglot-client-capabilities): fix a typo. + +2018-07-28 Michal Krzywkowski <k.michal@zoho.com> + + Implement textdocument/rangeformatting + + * eglot.el (eglot-format): New command. + (eglot-format-buffer): Use it as implementation. + (eglot-client-capabilities): Add :rangeFormatting. + * eglot-tests.el (formatting): Also test range formatting. + * README.md (Commands and keybindings): Mention eglot-format. + (Language features): Tick textDocument/rangeFormatting. + +2018-07-28 Michal Krzywkowski <k.michal@zoho.com> + + Correctly make lsp positions in narrowed buffers + + * eglot.el (eglot--pos-to-lsp-position): Fix return value when + narrowing is in effect. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/54 + +2018-07-28 Väinö Järvelä <vaino.jarvela@gmail.com> (tiny change) + + Fix typo in willsavewaituntil rpc request () + + + * eglot.el (eglot--signal-textDocument/willSave): Fix typo. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/51 + +2018-07-28 Michal Krzywkowski <k.michal@zoho.com> + + Work around emacs bugs 32237, 32278 () + + See: + https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32237 + https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32278 + + * eglot.el (eglot--apply-text-edits): Inhibit modification hooks and + call them manually for the changed region. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/53 + +2018-07-27 João Távora <joaotavora@gmail.com> + + Be less verbose when using eglot-ensure + + * eglot.el (eglot-ensure): Don't message when a buffer is already + managed. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/48 + +2018-07-26 Alan Zimmerman <alan.zimm@gmail.com> + + Add entry for haskell-ide-engine in eglot-server-programs () + + * eglot.el (eglot-server-programs): Add entry for haskell-mode + + GitHub-reference: https://github.com/joaotavora/eglot/issues/49 + +2018-07-25 João Távora <joaotavora@gmail.com> + + Fix messages of eglot-ensure + + * eglot.el (eglot-ensure): fix messages. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/48 + +2018-07-22 João Távora <joaotavora@gmail.com> + + Don't turn on flymake-mode any more than is needed + + If flymake-mode is in eglot--managed-mode-hook, it will be called even + if eglot--managed-mode is being turned off, which could be problematic + because it triggers a check if flymake-start-on-flymake-mode is t. + + * eglot.el (eglot--managed-mode): Turn on flymake-mode and + eldoc-mode here. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/44 + +2018-07-20 João Távora <joaotavora@gmail.com> + + Robustify in the face of manual mode changes + + When manually changing the major-mode of a managed buffer, this sends + a didClose and tears down Eglot-related stuff like if were killing the + buffer. After changing the mode, we have to recheck that we are now + not managed by another server (or by the same server, in case we + changed the mode to be the same mode). + + * eglot.el (eglot-shutdown): Use eglot--with-live-buffer + (eglot--on-shutdown): Use eglot--with-live-buffer + (eglot--managed-mode): Use change-major-mode-hook. + (eglot--managed-mode-onoff): Change protocol. Turn off when called + with no arguments. + (eglot--maybe-activate-editing-mode): Don't do anything if mode is + already active. Suitable for calling from + after-change-major-mode-hook. + (after-change-major-mode-hook): Add + eglot--maybe-activate-editing-mode. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/44 + +2018-07-15 John Wiegley <johnw@newartisans.com> + + Merge pull request from justbur/autoload-keymap + + Correct prefix keys after use-package-autoload-keymap + GitHub-reference: https://github.com/jwiegley/use-package/issues/686 + +2018-07-11 João Távora <joaotavora@gmail.com> + + Implement workspace/didchangeconfiguration () + + * README.md (Supported Protocol Features, Commands and + keybindings): mention workspace/didChangeConfiguration. + + * eglot.el (eglot-server-initialized-hook): New hook. + (eglot--connect): Run it. + (eglot-workspace-configuration): New variable. + (eglot-signal-didChangeConfiguration): New command. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/29 + GitHub-reference: close https://github.com/joaotavora/eglot/issues/40 + +2018-07-11 João Távora <joaotavora@gmail.com> + + Handle experimental/unknown server methods gracefully + + * eglot.el (eglot-handle-notification t t, eglot-handle-request t + t): Add default handlers for unknown methods. + (eglot-handle-notification $cquery/progress) + (eglot-handle-notification $cquery/setInactiveRegions) + (eglot-handle-notification $cquery/publishSemanticHighlighting): + Remove these no-ops. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/39 + +2018-07-10 John Wiegley <johnw@newartisans.com> + + Merge pull request from jwiegley/ensure-system-package-filepath + + allow :ensure-system-package to check the presence of files at path + GitHub-reference: https://github.com/jwiegley/use-package/issues/703 + +2018-07-09 Justin Talbott <justin@waymondo.com> + + allow :ensure-system-package to check the presence of files at path + + closes https://github.com/jwiegley/use-package/issues/660 + +2018-07-09 João Távora <joaotavora@gmail.com> + + Jsonrpc.el is now a gnu elpa dependency + + * Makefile (ELFILES): Don't include jsonrpc. + (jsonrpc-check): Remove target. + (check): Don't run jsonrpc-check + + * README.md (either): Mention "packaged in a single file" again + + * eglot.el (Package-Requires): Require jsonrpc 1.0.0 + (Version): Bump to 1.1 + + * jsonrpc.el: Remove + + * jsonrpc-tests.el: Remove + +2018-07-08 João Távora <joaotavora@gmail.com> + + * eglot.el (eglot-completion-at-point): fix broken indentation + +2018-07-08 Ricardo Martins <ricardo@scarybox.net> (tiny change) + + Format documentation in completion annotations + + Fixes an issue with the latest RLS, where the server returns a plist + instead of a plain string as documentation for completion candidates, + which broke the `annotation-function`. This change was introduced by + https://github.com/rust-lang-nursery/rls/commit/206a9fb41e837333d0e67187a6a9fe24868b77a4 + + + * eglot.el (eglot-completion-at-point): Use eglot--format-markup + +2018-07-06 João Távora <joaotavora@gmail.com> + + Unbreak completion when no possible annotation + + * eglot.el (eglot-completion-at-point): Handle case where no doc, + detail or kind. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/37 + +2018-07-03 John Wiegley <johnw@newartisans.com> + + Merge pull request from killdash9/patch-1 + + Place :chords at beginning of use-package-keywords + GitHub-reference: https://github.com/jwiegley/use-package/issues/697 + +2018-07-02 João Távora <joaotavora@gmail.com> + + Handle outrageously large and buggy line numbers + + * eglot.el (eglot--lsp-position-to-point): Truncate line number to + most-positive-fixnum. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/34 + +2018-07-01 João Távora <joaotavora@gmail.com> + + Inhibit auto-reconnect until connection is established + + Otherwise, a server that crashes on startup is enough to throw Eglot + into a reconnection infloop. + + * eglot.el (eglot-lsp-server): Initialize "inhibit-autoreconnect" + slot to t. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/36 + +2018-06-29 João Távora <joaotavora@gmail.com> + + Bind default-directory when launching servers + + Apparently, not doing so trips some servers, like Scala's. + + * eglot.el (eglot--connect): Bind default-directory. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/33 + +2018-06-28 Russell Black <black.russell@gmail.com> + + Place :chords at beginning of use-package-keywords + + When it is at the end, the keys don't get bound until after the package has been loaded, which is bad. Placing it at the beginning allows the key bindings to be mapped to auto-loaded functions before the package is loaded, so that a key chord press triggers the package load. + +2018-06-25 John Wiegley <johnw@newartisans.com> + + Merge pull request from killdash9/patch-1 + + New style of auto-deferral for chords + GitHub-reference: https://github.com/jwiegley/use-package/issues/658 + +2018-06-25 John Wiegley <johnw@newartisans.com> + + Merge branch 'master' into patch-1 + +2018-06-25 João Távora <joaotavora@gmail.com> + + Cache buffer's managing server + + * eglot.el (eglot--cached-current-server): New variable. + (eglot--managed-mode-onoff): Set it. + (eglot--current-server): Read it. + (eglot--maybe-activate-editing-mode): Add assertion. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/32 + +2018-06-25 João Távora <joaotavora@gmail.com> + + Unbreak imenu for cquery servers (and probably more) + + * eglot.el (eglot-imenu): Don't try to make a group for symbols + without kind. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/31 + +2018-06-25 João Távora <joaotavora@gmail.com> + + Unbreak basic imenu functionality + + * eglot.el (eglot--managed-mode): Add missing quote to + imenu-create-index-function. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/31 + +2018-06-25 Ricardo Martins <1706+meqif@users.noreply.github.com> (tiny change) + + Fix typo in the solargraph server program + + + * eglot.el (eglot-server-programs): Fix typo. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/30 + +2018-06-23 João Távora <joaotavora@gmail.com> + + Fix some rather silly bugs in some interactive specs + + * eglot.el (eglot-events-buffer, eglot-stderr-buffer) + (eglot-forget-pending-continuations): Fix interactive specs. + +2018-06-23 João Távora <joaotavora@gmail.com> + + Implement tcp autostart/autoconnect (and support ruby's solargraph) + + * README.md (Installation and usage): Mention support for + Solargraph + (Connecting via TCP): New section + (Connecting automatically): New section + + * eglot.el (eglot-server-programs): Add ruby-mode. + Overhaul docstring. + (eglot-lsp-server): Add inferior-process slot. + (eglot--on-shutdown): Kill any autostarted inferior-process + (eglot--guess-contact): Allow prompting with :autoport parameter. + (eglot--connect): Consider :autoport case. + (eglot--inferior-bootstrap): New helper. + +2018-06-22 João Távora <joaotavora@gmail.com> + + Merge branch 'jsonrpc-refactor', bump version to 1.0 + + * eglot.el (Version): Bump to 1.0 + +2018-06-22 João Távora <joaotavora@gmail.com> + + * eglot.el (version): bump to 0.11 + + Merge master into jsonrpc-refactor (using imerge) + +2018-06-21 João Távora <joaotavora@gmail.com> + + Empty ranges are valid in lsp + + The previous hack in eglot--range-region, designed to appease cquery's + occasional practice of publishing diagnostics with empty regions, was + moved to the proper notification handler. + + Reported by mkcms <k.michal@zoho.com>. + + * eglot.el (eglot--range-region): Allow empty ranges, which are + allowed in LSP. + (eglot-handle-notification :textDocument/publishDiagnostics): Maybe + fallback to flymake-diag-region here. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/27 + +2018-06-21 João Távora <joaotavora@gmail.com> + + Apply text edits as a single undoable edit + + As suggested by mkcms <k.michal@zoho.com>, but do it in + eglot--apply-text-edits, where it benefits all its users. + + Also, just using undo-boundary is not enough, one needs + undo-amalgamate-change-group to mess with the boundaries already in + buffer-undo-list. + + * eglot.el (eglot--apply-text-edits): Use + undo-amalgamate-change-group. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/22 + +2018-06-21 João Távora <joaotavora@gmail.com> + + Report progress when applying edits + + Use make-progress-reporter in eglot--apply-text-edits + + As suggested by mkcms <k.michal@zoho.com>, but do it in + eglot--apply-text-edits, where it benefits all its users. + + * eglot.el (eglot--apply-text-edits): Use a progress reporter. + Fix marker point recovery. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/23 + +2018-06-21 João Távora <joaotavora@gmail.com> + + Apply text edits atomically + + As suggested by mkcms <k.michal@zoho.com>, but do it in + eglot--apply-text-edits, where it benefits all its users. + + * eglot.el (eglot--apply-text-edits): Use atomic-change-group. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/22 + +2018-06-21 João Távora <joaotavora@gmail.com> + + Defer textdocument/formatting requests + + * eglot.el (eglot-format-buffer): Pass DEFERRED to eglot--request. + +2018-06-21 João Távora <joaotavora@gmail.com> + + Simplify eglot-format-buffer + + Use replace-buffer-contents, as suggested by mkcms + <k.michal@zoho.com>, but do it in eglot--apply-text-edits, where it + benefits all its users. + + * README.md (Commands and keybindings): Mention + eglot-format-buffer. + + * eglot.el (eglot-format-buffer): Don't try to heuristically + preserve point here. + (eglot--apply-text-edits): Use replace-buffer-contents. + + * eglot-tests.el (formatting): adjust test to strictly check for point + position. + + GitHub-reference: per https://github.com/joaotavora/eglot/issues/22 + +2018-06-20 João Távora <joaotavora@gmail.com> + + Guess server for js2-mode and rjsx-mode + + * eglot.el (eglot-server-programs): Add entries for js2-mode and + rjsx-mode. Coalesce entries for c++ and c-mode. Improve + docstring. + (eglot--guess-contact): Allow lists are keys in + eglot-server-programs. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/26 + +2018-06-20 João Távora <joaotavora@gmail.com> + + Improve eglot-ensure and mention it in readme.md + + * README.md (Installation and Usage): Mention eglot-ensure. + + * eglot.el (eglot-ensure): No-op for non-file buffers. + (eglot--connect): Don't fallback to 'eglot-lsp-server here. + (eglot--guess-contact): Error if something can't be guessed. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/25 + +2018-06-16 Rami Chowdhury <460769+necaris@users.noreply.github.com> (tiny change) + + Use gfm-mode for formatted strings () + + * eglot.el (eglot--format-markup): Use gfm-mode instead of + markdown-mode. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/20 + +2018-06-15 João Távora <joaotavora@gmail.com> + + Minor cleanup to new textdocument/formatting feature + + * README.md (Language feature): Tick textDocument/formatting + + * eglot.el (eglot-client-capabilities): Add formatting capability. + Also move codeAction capability to the correct section. + + (eglot-format-buffer): Remove unused lexical variable before-point. + +2018-06-15 Michal Krzywkowski <k.michal@zoho.com> + + Implement formatting () + + Implement textDocument/formatting + + * eglot.el (eglot-format-buffer): New command to format + current buffer. + + * eglot-tests.el (formatting): New test. + + GitHub-reference: https://github.com/joaotavora/eglot/issues/19 + +2018-06-14 John Wiegley <johnw@newartisans.com> + + Merge pull request from jabranham/enable-lexical-binding + + Enable lexical binding + GitHub-reference: https://github.com/jwiegley/use-package/issues/657 + +2018-06-13 Alex Branham <alex.branham@gmail.com> + + Fix use-package-normalize-function + + Fix use-package-normalize-function tests + +2018-06-13 Alex Branham <alex.branham@gmail.com> + + Enable lexical binding + + This supersedes https://github.com/jwiegley/use-package/issues/617 and closes https://github.com/jwiegley/use-package/issues/648 + +2018-06-13 John Wiegley <johnw@newartisans.com> + + Merge pull request from taingra/master + + Added an Introduction taken from the README + GitHub-reference: https://github.com/jwiegley/use-package/issues/692 + +2018-06-13 John Wiegley <johnw@newartisans.com> + + Update use-package.texi + +2018-06-13 Thomas Ingram <taingram@mtu.edu> (tiny change) + + Added an Introduction taken from the README + +2018-06-13 João Távora <joaotavora@gmail.com> + + * eglot.el (version): bump to 0.10 + +2018-06-13 João Távora <joaotavora@gmail.com> + + Fix a bug when eglot--request times out + + * eglot.el (eglot--request): Better timeout + message. + (eglot--async-request): Must return the timer. + +2018-06-13 João Távora <joaotavora@gmail.com> + + * eglot.el (eglot-shutdown): accept timeout param. + +2018-06-13 João Távora <joaotavora@gmail.com> + + Fix bug in querying server capabilities + + This lead to javascript-typescript-stdio being sent an incremental + didChange notif, which it doesn't support. + + * eglot.el (eglot--server-capable): Fix bug. + +2018-06-10 João Távora <joaotavora@gmail.com> + + * eglot.el (version): bump to 0.9 + + Merge branch 'master' into jsonrpc-refactor + +2018-06-10 João Távora <joaotavora@gmail.com> + + New eglot-ensure to put in a major-mode's hook + + * eglot.el (Commentary): Mention eglo-ensure. + (eglot--connect): Rearrange args. + (eglot--guess-contact): Rename from eglot--interactive. + (eglot): Use eglot--guess-contact. + (eglot, eglot-reconnect): Rearrange call to eglot--connect. + (eglot-ensure): New command to put in mode hook. + + * eglot-tests.el (eglot--tests-connect): New helper. + (auto-detect-running-server, auto-reconnect, rls-watches-files) + (rls-basic-diagnostics, rls-hover-after-edit, rls-rename) + (basic-completions, hover-after-completions): Use it. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/17 + +2018-06-10 João Távora <joaotavora@gmail.com> + + Remove connection grabbing antics from jsonrpc.el + + * eglot.el (eglot--managed-mode): Don't touch + jsonrpc-find-connection-functions. + (eglot--current-server-or-lose, eglot--current-server): New + functions (resuscitate). + (eglot-shutdown, eglot, eglot-reconnect) + (eglot--server-capable, eglot--maybe-activate-editing-mode) + (eglot-clear-status, eglot--mode-line-format) + (eglot--signal-textDocument/didChange) + (eglot--signal-textDocument/didOpen) + (eglot--signal-textDocument/didSave) + (xref-backend-identifier-completion-table) + (xref-backend-definitions, xref-backend-references) + (xref-backend-apropos, eglot-completion-at-point) + (eglot-help-at-point, eglot-eldoc-function, eglot-imenu) + (eglot-rename, eglot-code-actions): Use eglot--current-server and + eglot--current-server-or-lose. + (eglot-events-buffer, eglot-stderr-buffer) + (eglot-forget-pending-continuations): New commands. + (eglot--mode-line-format): Use eglot-stderr-buffer. + + * jsonrpc.el (jsonrpc-find-connection-functions) + (jsonrpc-current-connection, jsonrpc-current-connection-or-lose): + Remove. + (jsonrpc-stderr-buffer, jsonrpc-events-buffer): Simplify. + (jsonrpc-forget-pending-continuations): No longer interactive. + + * eglot-tests.el (auto-detect-running-server, auto-reconnect): Use + eglot--current-server. + +2018-06-10 João Távora <joaotavora@gmail.com> + + Simplify jsonrpc status setting + + * eglot.el (eglot--connect): Don't set jsonrpc-status. + (eglot-clear-status): New interactive command. + (eglot--mode-line-format): Simplify. + + * jsonrpc.el (jsonrpc--async-request-1): Simplify. + (jsonrpc-connection): Replace status with last-error. + (jsonrpc-clear-status): Delete. + (jsonrpc--connection-receive): Set last-error. + +2018-06-09 João Távora <joaotavora@gmail.com> + + Request dispatcher's return value determines response + + No more jsonrpc-reply. + + * eglot.el (eglot-handle-request window/showMessageRequest): + Simplify. + (eglot--register-unregister): Simplify. + (eglot-handle-request workspace/applyEdit): Simplify. + (eglot--apply-text-edits): Signal a jsonrpc-error. + (eglot--apply-workspace-edit): Simplify. + + * jsonrpc-tests.el (jsonrpc--with-emacsrpc-fixture): Don't + jsonrpc--reply. + + * jsonrpc.el (jsonrpc-error, jsonrpc-connection, jsonrpc-request): + Improve docstring. + (jsonrpc-error): Polymorphic args. + (jsonrpc--unanswered-request-id): Remove. + (jsonrpc--connection-receive): Rework and simplify. + (jsonrpc-reply): Simplify. + +2018-06-09 João Távora <joaotavora@gmail.com> + + Merge branch 'master' into jsonrpc-refactor + +2018-06-09 João Távora <joaotavora@gmail.com> + + Fix indentation f@#$%^ by previous commit + + Courtesy of aggressive-indent-mode... Aggressive it is... + +2018-06-09 João Távora <joaotavora@gmail.com> + + Attempt to handle rls sophisticated globs for didchangewwatchedfiles + + * eglot.el (eglot--wildcard-to-regexp): New helper. + (eglot--register-workspace/didChangeWatchedFiles): Use it. + +2018-06-08 João Távora <joaotavora@gmail.com> + + Check flymake-mode before calling report-fn + + * eglot.el (eglot-handle-notification): Check flymake-mode. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/16 + +2018-06-08 João Távora <joaotavora@gmail.com> + + Merge master into jsonrpc-refactor + +2018-06-08 João Távora <joaotavora@gmail.com> + + Simplify jsonrpc connection shutdown + + * eglot.el (eglot--process): Delete. + (eglot-shutdown): Use jsonrpc-shutdown. + (eglot--on-shutdown): Simplify. + (eglot-reconnect): Simplify. + (eglot--connect): Simplify. + + * jsonrpc-tests.el (jsonrpc--with-emacsrpc-fixture): Simplify. + + * jsonrpc.el (jsonrpc-process-type, jsonrpc-running-p) + (jsonrpc-shutdown): New methods. + + * eglot-tests.el (auto-reconnect): Use jsonrpc--process. + (eglot--call-with-dirs-and-files): Use jsonrpc-running-p. + +2018-06-08 João Távora <joaotavora@gmail.com> + + Support json.c. api purely based on classes + + No more jsonrpc-connect. + + This is a big commit because of a data loss problem. It should be at + least two separate commits (json.c-support and new API) + + * eglot.el (eglot-server-programs): Rework docstring. + (eglot-handle-request): Don't take ID param + (eglot-lsp-server): No more initargs. + (eglot--interactive): Return 5 args. + (eglot): Take 5 args. + (eglot-reconnect): Pass 6 args to eglot--connect. + (eglot--dispatch): Remove. + (eglot--connect): Take 6 args. Rework. + (eglot-handle-notification): Change all specializations + to use a non-keyword symbol spec. + (eglot-handle-request): Remove ID param from all + specializations. Don't pass ID to jsonrpc-reply. + (eglot--register-unregister): Don't take JSONRPC-ID arg. + Don't pass ID to jsonrpc-reply. + + * jsonrpc-tests.el (returns-3, signals-an--32603-JSONRPC-error) + (times-out, stretching-it-but-works) + (json-el-cant-serialize-this, jsonrpc-connection-ready-p) + (deferred-action-intime, deferred-action-toolate) + (deferred-action-timeout): Pass JSON objects compatible with + json.c + (jsonrpc--test-client, jsonrpc--test-endpoint): New classes + (jsonrpc--with-emacsrpc-fixture): Don't use jsonrpc-connect. + (jsonrpc-connection-ready-p): Update signature. + + * jsonrpc.el: Rewrite commentary. + (jsonrpc-connection): Rework class. + (jsonrpc-process-connection): Rework class. + (initialize-instance): New methods.. + (jsonrpc--json-read, jsonrpc--json-encode): Reindent. + (jsonrpc-connect): Delete. + (jsonrpc--json-read, jsonrpc--json-encode): + New functions for working with json.c + (jsonrpc--process-filter): Call them. + (jsonrpc--unanswered-request-id): New variable. + (jsonrpc--connection-receive): Use jsonrpc--unanswered-request-id + (jsonrpc-connection-send): Take keyword params to build message + instead of message. + (jsonrpc-notify, jsonrpc--async-request-1): Use new + jsonrpc-connection-send. + (jsonrpc-reply): Simplify. + + * eglot-tests.el (rls-watches-files, rls-basic-diagnostics) + (rls-hover-after-edit): Correctly compare using string= and + non-keyword symbols. + +2018-06-06 João Távora <joaotavora@gmail.com> + + Slightly polish the flymake integration + + For backends, like RLS, that don't textDocument/publishDiagnostics + right away, assume that the file is clean. Since Flymake allows + multiple reportings, it should be OK. + + * eglot.el (eglot--unreported-diagnostics): Move variable up here. + (eglot--maybe-activate-editing-mode): Assume no diagnostics on + open. + +2018-06-06 João Távora <joaotavora@gmail.com> + + * eglot.el (eglot--make-process): use 'utf-8-emacs-unix + + Attempt to improve the situation reported in https://github.com/joaotavora/eglot/issues/14. + +2018-06-05 João Távora <joaotavora@gmail.com> + + Merge master into jsonrpc-refactor (using imerge) + +2018-06-05 João Távora <joaotavora@gmail.com> + + Shoosh compiler + + * eglot.el (eglot-server-ready-p): Use cl-defmethod + +2018-06-05 João Távora <joaotavora@gmail.com> + + Cleanup the flymake 26.1 hack slightly + + * eglot.el (eglot-handle-notification): Use proper flymake + diagnostic types. + (eglot-code-actions): Use eglot--diag-data. + (eglot--make-diag, eglot--diag-data): New aliases to + `flymake-diagnostic-data' and `flymake-make-diagnostic'. + (eglot-error eglot-warning eglot-note) + (dolist eglot-error eglot-warning eglot-note): put + flymake-overlay-control in these. + (eglot-error eglot-warning eglot-note): put corresponding + flymake-category. + (horrible hack at the end): Move the Flymake 26.1 hack here. + +2018-06-04 João Távora <joaotavora@gmail.com> + + Support purposely ignoring a server capability + + * eglot.el (eglot-ignored-server-capabilites): New defcustom. + (eglot--server-capable): Use it. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/12 + +2018-06-04 brotzeit <brotzeitmacher@gmail.com> + + Fix typos + + Close https://github.com/joaotavora/eglot/issues/13. + + * eglot.el (eglot--all-major-modes) + (eglot--notify, eglot--xref-reset-known-symbols): Fix typos. + +2018-06-03 Justin Burkett <justin@burkett.cc> + + Correct prefix keys after use-package-autoload-keymap + + By adding events of the form (cons t event) to unread-command-events, Emacs + correctly updates this-command-keys for the subsequent use of the prefix. + + Before this change, packages like my which-key were not getting the correct + prefix after use-package-autoload-keymap loaded the relevant package. + + See https://github.com/justbur/emacs-which-key/issues/192 + +2018-06-01 João Távora <joaotavora@gmail.com> + + Fix another merge-related bug in eglot-eldoc-function + + * eglot.el (eglot-eldoc-function): Correctly destructure + eglot--range-region. + +2018-06-01 João Távora <joaotavora@gmail.com> + + * eglot.el (eglot-eldoc-function): remove spurious log message + + * eglot.el (version): bump to 0.8 + +2018-06-01 João Távora <joaotavora@gmail.com> + + Fix completionitem/resolve + + Should fix interoperation with company-quickhelp. + + * eglot.el (eglot-completion-at-point): Correctly pass properties + to completionItem/resolve. + +2018-06-01 João Távora <joaotavora@gmail.com> + + Explicitly trigger eldoc after workspace edits + + It's usually a nice thing to do. + + * eglot.el (eglot--apply-workspace-edit): Call + eglot-eldoc-function. + +2018-06-01 João Távora <joaotavora@gmail.com> + + New command m-x eglot-code-actions + + Also available when left-clicking diagnostics. + + * README.md: Mention eglot-code-actions. Slightly rewrite + differences to lsp-mode. + + * eglot.el (eglot-code-actions): New command. + (eglot-handle-notification :textDocument/publishDiagnostics): Use + eglot--make-diag and eglot--overlay-diag-props. + (eglot--mode-line-props): Use eglot--mouse-call. + (eglot--mouse-call): Renamed from eglot--mode-line-call. + (eglot-client-capabilities): List :executeCommand and :codeAction + as capabilities. + (eglot--diag, advice-add flymake--highlight-line): Horrible hack. + (eglot--overlay-diag-props): Horrible hack. + +2018-06-01 João Távora <joaotavora@gmail.com> + + Revert an unfinished feature that made it to the last commit + + commit ee6ab89666704232f744d6262040979b0142c44b + Author: João Távora <joaotavora@gmail.com> + Date: Fri Jun 1 14:43:30 2018 +0100 + + Add MELPA badge + +2018-06-01 João Távora <joaotavora@gmail.com> + + Add melpa badge + + * README.mdown: Now in MELPA too + +2018-06-01 João Távora <joaotavora@gmail.com> + + Prevent possible cquery choke on :initializationoptions + + Hopefully help debug https://github.com/joaotavora/eglot/issues/10. + + * eglot.el (eglot-initialization-options): Use `list' + +2018-05-30 João Távora <joaotavora@gmail.com> + + Merge master into jsonrpc-refactor (using imerge) + +2018-05-29 João Távora <joaotavora@gmail.com> + + * eglot.el (version): bump to 0.7 + +2018-05-28 João Távora <joaotavora@gmail.com> + + More yak shaving + + * eglot.el (eglot--with-live-buffer, eglot--widening): New macros. + (eglot--lambda): Move up here. + (eglot--process-filter): Simplify with eglot--with-live-buffer. + (eglot--async-request): Simplify with eglot--with-live-buffer. + (eglot--TextDocumentItem): Simplify with eglot--widening. + (eglot--signal-textDocument/didChange, eglot--apply-text-edits): + Simplify with eglot--widening. + +2018-05-28 João Távora <joaotavora@gmail.com> + + New m-x eglot-stderr-buffer useful for debugging + + * eglot.el (eglot--make-process): Save stderr buffer in process. + (eglot-stderr-buffer): New interactive command. + (eglot--mode-line-format): Bind C-mouse-1 to new + eglot-stderr-buffer. + +2018-05-27 João Távora <joaotavora@gmail.com> + + On reconnection, ignore errors of shutting down hung server + + * eglot.el + (eglot, eglot-reconnect): Ignore any errors on shutdown. + +2018-05-27 João Távora <joaotavora@gmail.com> + + Be more criterious before running the idle timer + + * eglot.el (eglot--change-idle-timer): make a defvar-local + (eglot--after-change): Only run timer if the buffer is live. + +2018-05-27 João Távora <joaotavora@gmail.com> + + Make eglot--recent-changes a simpler list + + * eglot.el (eglot-server-ready-p): Don't add default method here. + (eglot-server-ready-p): Do it here. + (eglot--outstanding-edits-p): Remove. + (eglot--before-change, eglot--after-change) + (eglot--signal-textDocument/didChange): Use eglot--recent-changes + as a list. Simplify. + (eglot--signal-textDocument/didOpen): Use eglot--recent-changes as + a list. + +2018-05-27 João Távora <joaotavora@gmail.com> + + Set eglot--versioned-identifier to 0 on didopen + + Else cquery will rightfully complain about this. + + * eglot.el (eglot--signal-textDocument/didOpen): Also set + eglot--versioned-identifier to 0. + +2018-05-27 João Távora <joaotavora@gmail.com> + + Correctly apply workspace edits in documentchanges form + + This was breaking M-x eglot-rename for cquery + + * eglot.el (eglot--apply-workspace-edit): Fix and simplify. + +2018-05-27 João Távora <joaotavora@gmail.com> + + * eglot.el (version): bump to 0.6 + +2018-05-27 João Távora <joaotavora@gmail.com> + + Hopefully fix the flymake bootstrap problem + + Immediately after M-x eglot, eglot's use of flymake was having trouble + detecting the first diagnostics sent from the server, resulting in an + annoying "Wait" in the mode-line. + + * eglot.el (eglot--current-flymake-report-fn): Move up here. + (eglot--managed-mode): Set eglot--current-flymake-report-fn to nil + on teardown. + (eglot--maybe-activate-editing-mode): Simplify. + (eglot-handle-notification textDocument/publishDiagnostics): Set unreported-diagnostics to a cons. + (eglot-handle-notification eglot-rls window/progress): Simplify. + + * eglot-tests.el (rls-basic-diagnostics): Simplify test. + +2018-05-27 João Távora <joaotavora@gmail.com> + + Set spinner in textdocument/didchange as it matters to rls + + Otherwise, the asynch eldoc action will immediately send the + textDocument/documentHighlight requests, without understanding that + they need to be deferred a bit more. + + * eglot.el (eglot--signal-textDocument/didChange): Set the spinner + here. + +2018-05-27 João Távora <joaotavora@gmail.com> + + Fix assorted cquery-related bugs + + Some versions of cquery send a :role key as part of the response to + textDocument/documentHighlight. Ignore it for now. + + Also cquery sometimes send 0-length ranges upon which we now fallback + to flymake-diag-region. + + Finally, in eglot-eldoc-funciton, the previous hack of calling the + eglot--hover-info outside of the when-buffer-window macrolet contained + a bug. It must be called in the correct buffer. Revert the hack and do + it by querying from eglot.el if ert is running tests. + + * eglot.el (eglot--range-region): Return a cons and fallback to + flymake-diag-region if server returned a useless range. + (eglot-handle-notification, eglot--hover-info): Update call to + eglot--range-region. + (eglot-help-at-point): Ensure `eglot--hover-info` runs in right + buffer. + (eglot-eldoc-function): Don't abuse eldoc-last-message like this. + Also update call to eglot--range-region. Consider ert-running-test + (eglot--apply-text-edits): Use pcase-lambda. + (ert): require it. + +2018-05-26 João Távora <joaotavora@gmail.com> + + * eglot.el (version): bump to 0.5 + +2018-05-26 João Távora <joaotavora@gmail.com> + + Merge branch 'cquery-support' into master + + The conflicts in eglot.el where fixed by calling the new eglot--debug + helper coming from 'cquery-support'. This helper was converted to + allow a non-string format passed directly to eglot--log-event. + + Also fixed some compilation warnings. + + * eglot.el (eglot--debug): Allow non-string FORMAT to be a JSON + object. (eglot-handle-notification :$cquery/progress) + (eglot-handle-notification :$cquery/setInactiveRegions) + (eglot-handle-notification :$cquery/publishSemanticHighlighting): + Solve compilation warnings. + +2018-05-26 João Távora <joaotavora@gmail.com> + + Really ensure eglot--shutdown deletes a process completely + + * eglot.el (eglot-lsp-server): rename slot "moribund" to + "shutdown-requested" + (eglot--connect): Don't check if shutdown was requested here. + (eglot--process-sentinel): Set shutdown-requested to + :sentinel-done here. + (eglot-shutdown): use eglot--shutdown-requested. Improve check + for process liveness. + +2018-05-26 João Távora <joaotavora@gmail.com> + + Get rid of eglot--obj, an uninteresting abstraction + + * eglot.el (eglot--obj): Get rid of this. It wasn't widely used + anyway. + (eglot-client-capabilities) + (eglot--connect, eglot--async-request, eglot--notify) + (eglot--reply, eglot--pos-to-lsp-position, eglot-handle-request) + (eglot--register-unregister, eglot-handle-request) + (eglot--TextDocumentIdentifier) + (eglot--VersionedTextDocumentIdentifier) + (eglot--TextDocumentItem, eglot--TextDocumentPositionParams) + (eglot--signal-textDocument/didChange) + (eglot--signal-textDocument/didSave) + (xref-backend-identifier-completion-table) + (xref-backend-references, xref-backend-apropos, eglot-imenu) + (eglot-rename): Use list instead of eglot--obj. + +2018-05-26 João Távora <joaotavora@gmail.com> + + Cleanup deferred request mechanism with a readable log + + * eglot.el (eglot-lsp-server): Rework doc of deferred-actions + slot. + (defvar eglot--next-request-id): Move down, now buffer local. + (defun eglot--next-request-id): Remove. + (eglot--call-deferred): Be more informative. + (eglot--async-request): Simplify. + +2018-05-26 João Távora <joaotavora@gmail.com> + + Simplify eglot--server-receive + + * eglot.el (eglot--obj): Cleanup whitespace. + (eglot--server-receive): Simplify. + +2018-05-26 João Távora <joaotavora@gmail.com> + + Don't rely on flymake's idle timer for textdocument/didchange + + * eglot.el (eglot--after-change): Set idle timer here. + (eglot--change-idle-timer): New var. + (eglot--signal-textDocument/didChange): No seed to set spinner here. + (eglot-flymake-backend) Don't send didChange here. + +2018-05-25 João Távora <joaotavora@gmail.com> + + Document current api breaches a bit + + * eglot-tests.el (eglot--call-with-dirs-and-files) + (auto-reconnect): use eglot--process + + * eglot.el (eglot-shutdown, eglot, eglot-reconnect) + (eglot--connect): Use eglot--process + (eglot--process): Alias to concentrate the hack here. + (eglot--signal-textDocument/didChange): Tweak comment. + +2018-05-25 João Távora <joaotavora@gmail.com> + + Merge branch use-eieio-server-defclass into jsonrpc-refactor + +2018-05-24 Josh Elsasser <jelsasser@appneta.com> + + Log debug messages through eglot--debug + + * eglot.el (eglot--async-request, eglot--process-sentinel): + (eglot--call-deferred): Use eglot--debug to log messages to + the server events buffer. + (eglot--server-receive): Demote "Notification unimplemented" + message on missing handlers to a pure debug message. + +2018-05-24 Josh Elsasser <jelsasser@appneta.com> + + Demote unvisited diagnostics logging to debug level + + The PublishDiagnostic spec (LSP Specification, 3.0) does not + strictly forbid the server from publishing diagnostics before + a file has been visited. + + * eglot.el (eglot--server-textDocument/publishDiagnostics): Log + the "received diagnostics for unvisited file" warning as debug + to avoid spamming users of compliant language servers. + +2018-05-24 Josh Elsasser <jelsasser@appneta.com> + + Introduce eglot--debug for unimportant messages + + * eglot.el (eglot--debug): New function to log noisy or trivial + messages to the eglot events buffer. + +2018-05-24 Josh Elsasser <jelsasser@appneta.com> + + Add cquery support for c/c++ projects + + Implements minimal support for the core cquery language + server. None of its extensions are implemented yet. + + * eglot.el (eglot-server-programs): Add cquery to list + of guessed programs for c-mode and c++-mode. + (eglot-initialization-options eglot-cquery): Specialize init + options to pass cquery a cache directory and disable a flood + of $cquery/progress messages. + (eglot-handle-notification $cquery/publishSemanticHighlighting): + (eglot-handle-notification $cquery/setInactiveRegions): + (eglot-handle-notification $cquery/progress): New no-op functions + to avoid filling logs with "unknown message" warnings. + (eglot-cquery): New eglot-lsp-server subclass. + + * README.md: Mention cquery in the README. + +2018-05-22 João Távora <joaotavora@gmail.com> + + Fix indentation broken by the defclass monster commit + + * eglot.el (for, eglot-handle-notification publishDiagnostics) + (eglot-handle-request registerCapability, eglot-handle-request + unregisterCapability, eglot-handle-request applyEdit): fix + indentation. + +2018-05-22 João Távora <joaotavora@gmail.com> + + Introduce new api methods for experimental clients to use + + Should help Josh Elsasser implement pull request https://github.com/joaotavora/eglot/issues/6. + + * eglot.el (eglot--obj): Move upwards in file. + (eglot-server-ready-p): Tweak comment. + (eglot-initialization-options): New API defgeneric.. + (eglot-client-capabilities): New API defgeneric. + (eglot--client-capabilities): Remove. + (eglot--connect): Call new API methods here. + +2018-05-22 João Távora <joaotavora@gmail.com> + + Do rust's rls hack properly with new class-based api + + * eglot.el (eglot-server-ready-p): New API method. + (eglot-handle-request, eglot-handle-notification): New + defgeneric's. + (eglot--ready-predicates, eglot--server-ready-p): Remove. + (eglot--async-request): Call eglot-server-ready-p. + (eglot--request): Tweak comment. + (eglot--rls-probably-ready-for-p): Remove. + (eglot-server-ready-p eglot-rls): Adapts earlier + eglot--rls-probably-ready-for-p. + (eglot-handle-notification eglot-rls): Specialize to eglot-rls. + (eglot-rls): New eglot-lsp-server subclass. + + * eglot-tests.el (auto-detect-running-server) + (auto-reconnect, basic-completions) + (hover-after-completions): Use eglot--interactive + +2018-05-22 João Távora <joaotavora@gmail.com> + + Use an eieio class to represent a server. + + Allow clients of eglot.el to use specific server classes to represent + experimental servers. + + Wherever you used to read "proc" you now probably read "server", + unless it's really the process properties that are sought after. + + Should help Josh Elsasser implement pull request https://github.com/joaotavora/eglot/issues/6. + + * eglot-tests.el (eglot--call-with-dirs-and-files) + (auto-detect-running-server, auto-reconnect, basic-completions) + (hover-after-completions): Adapt to server defclass instead of + proc. + + * eglot.el + (eglot-server-programs): Add docstring. + (eglot--processes-by-project): Removed. + (eglot--servers-by-project): New variable. + (eglot--current-process): Removed. + (eglot--current-server): New function. + (eglot-server): New class. + (cl-print-object eglot-server): New method. + (eglot--current-process-or-lose): Removed. + (eglot--current-server-or-lose): New function. + (eglot--define-process-var): Remove. + (eglot--make-process): Rework. + (eglot--project-short-name): Remove. + (eglot--connect): Rework. + (eglot--interactive): Rework to allow custom classes. + (eglot, eglot-reconnect, eglot--process-sentinel) + (eglot--process-filter, eglot-events-buffer, eglot--log-event): + Rework. + (eglot--process-receive): Removed. + (eglot--server-receive): New function. + (eglot--send): Renamed from eglot--process-send. + (eglot--process-send): Removed. + (eglot-forget-pending-continuations) + (eglot-clear-status, eglot--call-deferred) + (eglot--server-ready-p, eglot--async-request, eglot--request) + (eglot--notify, eglot--reply, eglot--managed-mode-onoff) + (eglot--maybe-activate-editing-mode, eglot--mode-line-format): + Rework. + (eglot-shutdown): Rework. + (eglot-handle-notification *, eglot-handle-request *) + (eglot--register-unregister) + (eglot--signal-textDocument/didOpen) + (eglot--signal-textDocument/didClose) + (eglot--signal-textDocument/willSave) + (eglot--signal-textDocument/didSave) + (xref-backend-identifier-completion-table) + (xref-backend-definitions, xref-backend-references) + (xref-backend-apropos, eglot-completion-at-point) + (eglot-help-at-point, eglot-eldoc-function, eglot-imenu) + (eglot-rename) + (eglot--register-workspace/didChangeWatchedFiles) + (eglot--unregister-workspace/didChangeWatchedFiles) + (eglot--rls-probably-ready-for-p, eglot-handle-notification): + Rework (proc->server) + + fixup + + * eglot-tests.el (eglot--call-with-dirs-and-files) + (auto-detect-running-server, auto-reconnect, basic-completions) + (hover-after-completions): + + * eglot.el (eglot--processes-by-project): Removed. + (eglot--servers-by-project): New variable. + (eglot--current-process): Removed. + (eglot--current-server): New function. + +2018-05-21 João Távora <joaotavora@gmail.com> + + Introduce eglot-handle-request and eglot-handle-notification as api + + * eglot.el (eglot--process-receive): Call eglot-handle-request and + eglot-handle-notification. + (eglot-handle-notification, eglot-handle-request): New generic + functions. + (eglot--server-window/showMessage) + (eglot--server-window/progress) + (eglot--server-telemetry/event, eglot--server-window/logMessage): + Convert to eglot-handle-notification. + (eglot-handle-request, eglot--server-client/registerCapability) + (eglot--server-client/unregisterCapability) + (eglot-handle-request): Convert to eglot-handle-request. + +2018-05-20 João Távora <joaotavora@gmail.com> + + Get rid of jsonrpc.el customization group and timeout + + * eglot.el (eglot-shutdown, eglot--signal-textDocument/willSave): + Pass :timeout to jsonrpc-request. + (defadvice jsonrpc-request): Add :timeout kwarg + + * jsonrpc.el (defgroup jsonrpc, jsonrpc-request-timeout): Remove. + (jrpc-default-request-timeout): New constant. + (jsonrpc-async-request): Use it. + (jsonrpc-request): Accept timeout kwarg and pass it on. + +2018-05-20 João Távora <joaotavora@gmail.com> + + Heroically merge master into jsonrpc-refactor (using imerge) + +2018-05-20 João Távora <joaotavora@gmail.com> + + Rename jrpc.el to jsonrpc.el + + * eglot.el [everywhere]: jrpc -> jsonrpc everywhere. + Reindent. + + * eglot-tests.el [everywhere]: jrpc -> jsonrpc everywhere. + + * jsonrpc.el: New file. + + * Makefile: jrpc.el -> jsonrpc.el + +2018-05-19 João Távora <joaotavora@gmail.com> + + Fix a bug introduced in the previous commit + + * eglot.el (eglot--format-markup): Ignore errors when calling + possibly unknown functions. + (eglot-completion-at-point): Use eglot--format-markup + (eglot--hover-info): Yak shaving + +2018-05-19 João Távora <joaotavora@gmail.com> + + Rewrite a couple of defs and shave a yak + + * eglot.el (eglot--define-process-var): Simplify. + (eglot--format-markup): Rewrite. + (eglot--warn, eglot--pos-to-lsp-position) + (eglot--lsp-position-to-point, eglot--server-capable) + (eglot--maybe-activate-editing-mode) + (eglot--server-textDocument/publishDiagnostics) + (eglot--server-workspace/applyEdit, eglot--hover-info): Yak + shaving. + +2018-05-19 João Távora <joaotavora@gmail.com> + + * eglot.el (version): bump to 0.4 + +2018-05-19 John Wiegley <johnw@newartisans.com> + + Merge pull request from akhramov/fix/ensure-system-package-cleanup + + ensure-system-package cleanup + GitHub-reference: https://github.com/jwiegley/use-package/issues/683 + +2018-05-19 Artyom Khramov <futu.fata@gmail.com> (tiny change) + + Ensure system package cleanup + + The function introduced in https://github.com/jwiegley/use-package/issues/673 wasn't declared at compile time, and + it made byte compiler unhappy. Moreover, it was forgotten to remove + redundant compile time variables. Thanks @tarsius for pointing that + out. + + This change + * Removes redundant variable declarations + * Adds `system-packages-get-command` function declaration. + +2018-05-19 João Távora <joaotavora@gmail.com> + + Add some completion tests for pyls + + * eglot-tests.el (edebug): Require it. + (eglot--call-with-dirs-and-files): Simplify. + (eglot--call-with-test-timeout): Don't timeout if edebug. + (auto-detect-running-server, auto-reconnect): Skip unless rls is + found. + (basic-completions): New test. + (hover-after-completions): New failing test. + + * eglot.el (eglot-eldoc-function): Force write + eldoc-last-message, for tests sake. + +2018-05-19 João Távora <joaotavora@gmail.com> + + Handle managed buffers in own process var + + This should save some trouble when testing noninteractively. Because + eglot--shutdown didn't turn off the minor mode, test code running + immediately after it could still make didClose requests, for example. + The sentinel was the previous responsible for turning off the minor + mode and didn't get a chance to run in that case. Now eglot--shutdown + is also responsible for turning off the minor mode. + + All this should be hidden behind eglot--managed-mode-onoff. + + * eglot.el (eglot--managed-buffers): New process-local variable. + (eglot--process-sentinel): Turn off managed mode. + (eglot--managed-mode-onoff): New function. + (eglot--managed-mode): Don't offer to kill server here. + (eglot--buffer-managed-p): Remove. + (eglot--maybe-activate-editing-mode): Activate mode here. + (eglot-shutdown): Turn off minor mode here. + (eglot--server-window/progress): Simplify slightly. + +2018-05-19 João Távora <joaotavora@gmail.com> + + Robustness fixes for the request mechanism + + * eglot.el (eglot--async-request): Pass actual id to eglot--log-event + (eglot--request): Also cancel any continuations. + +2018-05-19 João Távora <joaotavora@gmail.com> + + Check capabilities before sending :completionitem/resolve + + * eglot.el (eglot--server-capable): Rewrite. + (eglot-completion-at-point): Check caps before sending + :completionItem/resolve + +2018-05-19 João Távora <joaotavora@gmail.com> + + Better decide what text exactly to present as completions + + For inserting, :insertText takes precedence over :label. + For annotating, first sentence of :documentation, then :detail, + then :kind name. + + Also remember to send didChange in the :exit-function + + * eglot.el (eglot-completion-function): Rework main function and + :annotation-function, and :exit-function + +2018-05-19 João Távora <joaotavora@gmail.com> + + * eglot.el (eglot-clear-status): remember to update modeline + +2018-05-19 João Távora <joaotavora@gmail.com> + + Collect regions to change as markers, then edit + + * eglot.el (eglot--lsp-position-to-point): Accept MARKER optional + arg. + (eglot--range-region): Accept MARKERS optional arg. Return a list. + (eglot--server-textDocument/publishDiagnostics) + (eglot--hover-info, eglot-eldoc-function): eglot--range-region + returns a list, not a cons. + (eglot--apply-text-edits): First collect regions as markers, then + edit. + + GitHub-reference: close https://github.com/joaotavora/eglot/issues/4 + +2018-05-19 João Távora <joaotavora@gmail.com> + + If we're going to send rootpath, better send an absolute one + + javascript-typescript-langserver complained. + + * eglot.el (eglot--connect): Use expand-file-name. + +2018-05-19 João Távora <joaotavora@gmail.com> + + Robustify timer handling for eglot--async-request + + This basically cherry-picks an earlier commit for the jsonrpc-refactor + branch: + a2aa1ed..: João Távora 2018-05-18 Robustify timer handling for jrpc-async-request + + * jrpc.el (jrpc--async-request): Improve timeout handling. Return a list (ID TIMER) + (jrpc--request): Protect against user-quits, canceling timer + +2018-05-19 João Távora <joaotavora@gmail.com> + + Simplify some infrastructure functions + + * eglot.el (eglot--contact): Simplify docstring. + (eglot--make-process): Simplify. + (eglot--connect): Simplify. + (eglot--interactive): Simplify and correct odd bug. + (eglot--process-sentinel): Correct messages. Delete before + attempting reconnection. + (eglot-shutdown): Simplify. + +2018-05-19 Naoya Yamashita <conao3@gmail.com> + + fix gethash default value for use-package-statistics-time + + float-time expect list like (HIGH LOW USEC PSEC) + > HIGH has the most significant bits of the seconds, while LOW has the + > least significant 16 bits. USEC and PSEC are the microsecond and + > picosecond counts. + by `current-time` in editfns.c + +2018-05-18 João Távora <joaotavora@gmail.com> + + Jrpc.el should know nothing of mode-line updates + + * eglot.el (eglot--dispatch): METHOD can be a symbol. + Call force-mode-line-update here. + +2018-05-18 João Távora <joaotavora@gmail.com> + + Improve jrpc.el's doc (and change jrpc-request's protocol a tiny bit) + + * jrpc.el (jrpc-async-request) + (jrpc-request,jrpc-notify,jrpc-reply): Improve docstring. + (jrpc-connect): Improve docstring and add autoload cookie + (jrpc-request): DEFERRED param is now &key + (defgroup jrpc): Fix description. + + * eglot.el (advice-add jrpc-request): Use &key deferred. + (eglot-completion-at-point): Pass :deferred to jrpc-request + +2018-05-18 João Távora <joaotavora@gmail.com> + + Merge branch 'master' into jsonrpc-refactor (using good ol' git merge) + +2018-05-17 João Távora <joaotavora@gmail.com> + + * eglot.el (version): bump to 0.3 + +2018-05-17 João Távora <joaotavora@gmail.com> + + Make it work on windows + + Apparently passing :coding 'no-conversion to make-process on windows + is essential to receive any text at all in the process filter. + + Also needed to tweak uri-to-path and path-to-uri. + + Thanks to lsp-mode.el for these hints + + * eglot.el (eglot--make-process): Pass :coding 'no-conversion to + make-process. + (eglot--path-to-uri): Add a forward slash if windows-nt. + (eglot--uri-to-path): Remove a forward slash if windows-nt. + (eglot--server-textDocument/publishDiagnostics): Simplify and use + eglot--uri-to-path. + +2018-05-17 João Távora <joaotavora@gmail.com> + + Fix eglot--error and eglot--message helpers + + * eglot.el (eglot--error, eglot--message): + Safely interpret %s. + +2018-05-17 João Távora <joaotavora@gmail.com> + + * eglot.el (eglot--lambda): add missing indent spec. + +2018-05-16 João Távora <joaotavora@gmail.com> + + Simplify some function calling infrastructure + + eglot--mapply is a confusing abstraction. Hide some of that confusion + behind eglot--lambda. More stably dispatch server notifications and + requests without introspecting their contents. + + * eglot.el (eglot--process-receive): Simplify. + (eglot--async-request): Improve doc. + (eglot--request): Simplify. + (eglot--mapply): Remove. + (xref-backend-identifier-completion-table) + (xref-backend-definitions, xref-backend-references) + (xref-backend-apropos, eglot-completion-at-point) + (eglot-eldoc-function, eglot-imenu, eglot--apply-text-edits): + Don't use eglot--mapply, use normal mapcar/mapc. + +2018-05-16 João Távora <joaotavora@gmail.com> + + Replace eglot--with-lsp-range with a function and pcase-let + + * eglot.el (eglot--with-lsp-range): Remove. + (eglot--range-region): New function. + (eglot--server-textDocument/publishDiagnostics) + (eglot--hover-info, eglot-eldoc-function) + (eglot--apply-text-edits): Use it. + +2018-05-16 João Távora <joaotavora@gmail.com> + + Simpler callback protocol for jsonrpc parameters and results + + Instead of introspecting the :params or :result object to discover if + an object is present, and changing the Elisp function call type + (funcall vs apply) accordingly, always funcall. It's up to the + application to destructure if it wishes. jrpc-lambda can help with + that and keep the application code simple. + + * eglot.el (eglot--on-shutdown): Fix indentation. + (eglot--dispatch): Simplify. + (xref-backend-identifier-completion-table) + (xref-backend-definitions, xref-backend-references) + (xref-backend-apropos, eglot-completion-at-point) + (eglot-eldoc-function, eglot-imenu, eglot--apply-text-edits): + Don't use jrpc-mapply. + + * jrpc.el (jrpc--process-receive): Allow only keys defined in + JSONRPC2.0 + (jrpc--process-receive): Don't overload function call type based + on remote response. + (jrpc-lambda): Return a unary lambda. + (jrpc-request): Simplify. + (jrpc-mapply): Remove. + +2018-05-16 João Távora <joaotavora@gmail.com> + + More flexible jrpc.el and improve eglot.el's doc + + Generalize and rework CONTACT arg to jrpc-connect + + * eglot.el (eglot--command-history): Tweak docstring. + (eglot--interactive): Rework. + (eglot): Rework docstring. COMMAND is now CONTACT. + (eglot--connect): Use new jrpc-connect protocol. + (eglot-server-programs): Reword doc. + + * jrpc.el (jrpc--make-process): Use new form of CONTACT. + (jrpc-connect): Explain new semantics of CONTACT. + +2018-05-15 João Távora <joaotavora@gmail.com> + + Merge master into jsonrpc-refactor (using imerge) + +2018-05-15 João Távora <joaotavora@gmail.com> + + Add php's php-language-server to built-in guessed servers + + Closes https://github.com/joaotavora/eglot/issues/1. The problem in that issue is that php-language-server has a + bug when it's not passed it the deprecated ":rootPath" field. The bug + doesn't happen if the ":processId" field is also absent. Eglot was + triggering the bug, because it didn't pass ":rootPath", but there's + nothing wrong in doing so. + + * README.md: Add php-language-server to the built-in list. + + * eglot.el (eglot-server-programs): Add php-language-server. + (eglot--connect): Also pass (deprecated) rootPath. + +2018-05-15 João Távora <joaotavora@gmail.com> + + Bump version and slightly improve doc + + * eglot.el: Bump version. Add nicer Commentary header. + (eglot): Improve docstring. + + * README.md: Update + +2018-05-14 João Távora <joaotavora@gmail.com> + + More quietly report request timeouts as events + + * eglot.el (eglot--sync-request): Use eglot--log-event + +2018-05-14 João Távora <joaotavora@gmail.com> + + Shutdown server if connection initialization fails + + Also tweak autoreconnection logic + + * eglot.el (eglot--connect): Immediately `eglot-shutdown` if + connection initialization failed. Don't treat interactive calls + specially. + (eglot--process-sentinel): Tweak messages. + +2018-05-14 João Távora <joaotavora@gmail.com> + + Fix a ridiculous bug when generating transient projects + + * eglot.el (eglot--find-current-process, eglot--interactive): Fix + horrible bug. + +2018-05-14 João Távora <joaotavora@gmail.com> + + Fix a ridiculous bug when generating transient projects + + * eglot.el (eglot--find-current-process, eglot--interactive): Fix + horrible bug. + +2018-05-14 João Távora <joaotavora@gmail.com> + + Jrpc-connect is now passed a generic dispatching function + + * eglot.el (eglot--dispatch): New helper. + (eglot--connect): Use it. + + * jrpc.el (jrpc--dispatcher, jrpc--request-continuations) + (jrpc--server-request-ids): New process-local var. + (jrpc--pending-continuations, jrpc--method-prefix): Remove. + (jrpc-connect): Take DISPATCHER instead of PREFIX. + (jrpc--process-receive): Use proc's dispatcher. + (jrpc--process-send): Make private. + (jrpc-forget-pending-continuations, jrpc-async-request) + (jrpc-reply, jrpc-notify): Use new function names. + +2018-05-14 João Távora <joaotavora@gmail.com> + + Merge master into jsonrpc-refactor (using imerge) + +2018-05-14 João Távora <joaotavora@gmail.com> + + Proper server shutdown when jrpc.el is used + + The shutdown hook can't be a buffer-local thing, it has + to be a server property. Also, on shutdown in eglot.el, + remember to first unmanage buffers and only then affect + eglot--processes-by-project. + + * eglot.el (eglot--on-shutdown): reverse order of first + two sexps. + (eglot--connect): Pass a shutdown function to jrpc-connect + (eglot--managed-mode): Don't use jrpc-server-moribund-hook + (eglot--buffer-managed-p): Simplify. Use eglot--find-current-process. + +2018-05-14 João Távora <joaotavora@gmail.com> + + Support didchangewatchedfiles with dynamic registration + + RLS uses this, presumaly for knowing about Cargo.toml changes and stuff. + + * README.md: Update protocol compliance. + + * eglot.el (filenotify): Require it. + (eglot--file-watches): New process-local var. + (eglot--process-sentinel): Kill all watches + (eglot--register-unregister): New helper. + (eglot--server-client/registerCapability): Simplify. + (eglot--server-client/unregisterCapability): New method. + (eglot--register-workspace/didChangeWatchedFiles) + (eglot--unregister-workspace/didChangeWatchedFiles): New + capability. + (eglot--client-capabilities): Update. + +2018-05-14 João Távora <joaotavora@gmail.com> + + Remove an unused variable + + * eglot.el (eglot--expect-carriage-return): Get rid of this. + +2018-05-14 João Távora <joaotavora@gmail.com> + + Now send willsavewaituntil + + * eglot.el (eglot--client-capabilities): Report willSaveWaitUntil. + (eglot--server-workspace/applyEdit): Fix docstring. + (eglot--signal-textDocument/willSave): Send willSaveWaitUntil + (eglot--signal-textDocument/didOpen) + (eglot--signal-textDocument/didClose): Don't eglot--obj. + (eglot--apply-text-edits): Simplify. Use current buffer. + (eglot--apply-workspace-edit): Use new eglot--apply-text-edits. + +2018-05-14 João Távora <joaotavora@gmail.com> + + Don't define a menu if nothing to show there for now + + * eglot.el (eglot-menu): Remove it. + (eglot--mode-line-format): Don't define a menu. + +2018-05-13 João Távora <joaotavora@gmail.com> + + Use rls in travis ci and add actual tests + + Also run a hook when connected + + * eglot-tests.el (eglot--with-dirs-and-files) + (eglot--make-file-or-dirs, eglot--call-with-dirs-and-files) + (eglot--find-file-noselect): New helpers. + (auto-detect-running-server, auto-reconnect): New actual tests. + + * eglot.el (eglot-connect): Run hook when connected + (eglot-connect-hook): New variable + + * .travis.yml: Use rust stable and install rls + + * README.md: Update mention of automated tests + +2018-05-13 João Távora <joaotavora@gmail.com> + + Fix automatic project creation + + * eglot.el (eglot): Take PROJECT arg. Return process. + (eglot--interactive): Returns a project. + +2018-05-13 João Távora <joaotavora@gmail.com> + + Work with any old directory, no formal project needed + + Actually, uses a "transient project" which project-current returns if + desperate. + + * README.md: Update + + * eglot.el (eglot--current-process) + (eglot--current-process-or-lose): Simplify. + (eglot): Maybe prompt user for project. + +2018-05-13 João Távora <joaotavora@gmail.com> + + Ask server for textdocument/signaturehelp if it supports it + + * eglot.el (eglot--client-capabilities): Capable of signature Help. + (eglot--sig-info): Helper for eglot-eldoc-function. + (eglot-eldoc-function): Send textDocument/signatureHelp + + * README.md: Update to mention textDocument/signatureHelp + +2018-05-13 João Távora <joaotavora@gmail.com> + + Fix copyright header. obviously not since 2003 + +2018-05-13 Justin Talbott <justin@waymondo.com> + + Merge pull request from andschwa/remap-command + + Document that remapping commands is supported with bind-key + GitHub-reference: https://github.com/jwiegley/use-package/issues/674 + +2018-05-12 João Távora <joaotavora@gmail.com> + + Refactor json-rpc lib jrpc.el from eglot.el + + * eglot.el [too many to mention]: Move lower level functions to + jrpc.el. Hook onto jrpc's external interfaces. + + * jrpc.el: New file + +2018-05-12 João Távora <joaotavora@gmail.com> + + Reinstate the catch/loop/throw idiom in eglot-request + + This reverts parts of commit fabee14ed5b32c30c6ac5cb1ce88f387522a6a1e. + + Unfortunately, this may cause problems when calling the error + callbacks directly as in the process sentinel. In that particular + scenario the accept-process-output won't have return, because no + output has is being handled. Consequently, if we're unlucky, we have + another 30 seconds to way before the flag is tested and the loop + exits. + + * eglot.el (eglot-request): Use catch/loop/throw again + +2018-05-12 João Távora <joaotavora@gmail.com> + + Fix copyright header. obviously not since 2003 + +2018-05-12 João Távora <joaotavora@gmail.com> + + New command eglot-help-at-point and a readme update + + * README.md (Commands and keybindings): New section. + + * eglot.el (eglot-eldoc-function): Use eglot--hover-info. + Don't care about kind in highlightSymbol + (eglot--hover-info): New helper. + (eglot-help-at-point): New command. + +2018-05-11 João Távora <joaotavora@gmail.com> + + Get rid of catch/loop/throw idiom (suggested by thien-thi nguyen) + + * eglot.el (eglot--process-filter) + (eglot--request): Replace catch/loop/throw idiom with let/test/loop/set + +2018-05-11 João Távora <joaotavora@gmail.com> + + Rework autoreconnection logic + + Can't be a global var, has to be a per process thing. + + * eglot.el (eglot-autoreconnect): New defcustom + (eglot--inhibit-autoreconnect): Renamed from eglot--inhibit-autoreconnect + (eglot--connect): Run autoreconnect timer here. + (eglot--inhibit-auto-reconnect): Removed. + (eglot--process-sentinel): Don't run timer here. Rework. + (eglot, eglot-reconnect): Pass INTERACTIVE to eglot--connect. + +2018-05-10 João Távora <joaotavora@gmail.com> + + Duh, json.el is in emacs, and json-mode.el is useless here + + * eglot.el (Package-Requires): Don't require json-mode + +2018-05-10 João Távora <joaotavora@gmail.com> + + Prepare to submit to gnu elpa + + * eglot.el: Update headers. + +2018-05-10 João Távora <joaotavora@gmail.com> + + (eglot--xref-make): fix use of cl-destructuring-bind. + +2018-05-10 João Távora <joaotavora@gmail.com> + + Misc little adjustments for readability + + * eglot.el (eglot--log-event, eglot--process-receive) + (eglot--xref-make, xref-backend-apropos): Use cl-destructuring-bind. + (eglot--server-window/showMessageRequest): Compact. + +2018-05-10 João Távora <joaotavora@gmail.com> + + Support :completionitem/resolve + + This is quite handy with company and company-quickhelp + + * eglot.el (eglot-completion-at-point): Send + :completionItem/resolve + + * README.md: Mention completionItem/resolve + +2018-05-10 João Távora <joaotavora@gmail.com> + + Rename functions. eglot--request is now the synchronous one + + * eglot.el (eglot--connect, eglot-shutdown) + (xref-backend-identifier-completion-table) + (xref-backend-definitions, xref-backend-references) + (xref-backend-apropos, eglot-completion-at-point, eglot-rename): + Call eglot--request. + (eglot--async-request): Renamed from eglot--request. + (eglot--request): Renamed from eglot--sync-request. + (eglot--TextDocumentIdentifier) + (eglot--VersionedTextDocumentIdentifier) + (eglot--TextDocumentPositionParams, eglot--TextDocumentItem): + Renamed from the more verbose eglot--current-buffer-* variant. + (eglot-rename, eglot-imenu, eglot-eldoc-function) + (eglot-completion-at-point, xref-backend-definitions) + (xref-backend-identifier-at-point) + (eglot--signal-textDocument/didSave) + (xref-backend-identifier-completion-table) + (eglot--signal-textDocument/didClose) + (eglot--signal-textDocument/didOpen) + (eglot--signal-textDocument/didChange): Use new function names. + +2018-05-10 João Távora <joaotavora@gmail.com> + + Friendlier m-x eglot + + * eglot.el (eglot-server-programs): Renamed from eglot-executables + (eglot--interactive): Redesign + (eglot): Docstring. + (eglot--connect): Now a synchronous gig. + (eglot--interactive): Friendlier. + (eglot): Improve docstring, rework a bit. + (eglot-reconnect): Rework a bit. + (eglot--process-sentinel): Insert "byebye" ruler here. + + * README.md: Update + +2018-05-10 João Távora <joaotavora@gmail.com> + + Improve eglot-eldoc-function + + Use the :range key if the server provided it. Also simplify code with + a new eglot--with-lsp-range macro. + + * eglot.el (eglot--format-markup): Tweak comment. + (eglot--with-lsp-range): New helper macro. + (eglot--server-textDocument/publishDiagnostics) + (eglot--apply-text-edits): Use it. + (eglot-eldoc-function): Use range if server provides it. + +2018-05-10 João Távora <joaotavora@gmail.com> + + Reduce log chatter + + * eglot.el (eglot--process-sentinel, eglot--request): Use + eglot--log-event. + (eglot--log-event): Print "message" if type unknown. + (eglot--debug, eglot--log): Remove. + (eglot--server-window/logMessage, eglot--server-telemetry/event): + Make noops. + (eglot--call-deferred): Also reduce chatter here. + +2018-05-10 João Távora <joaotavora@gmail.com> + + Only call deferred actions after a full message has been received + + Otherwise it can be quite wasteful. + + * eglot.el (eglot--process-filter): Don't eglot--call-deferred here. + (eglot--process-receive): Do it here. + +2018-05-10 João Távora <joaotavora@gmail.com> + + Resist server failure during synchronous requests + + Calling the error handler unprotected could lead to the rest of the + sentinel not running at all. This defeated the auto-reconnection in + Rust, for example. + + * eglot.el (eglot--process-sentinel): Rework. + +2018-05-10 João Távora <joaotavora@gmail.com> + + Simplify mode-line updating logic + + * eglot.el (eglot--define-process-var): Simplify. + (eglot--short-name, eglot--spinner, eglot--status): Don't + auto-update mode-line. + (eglot--process-receive): Update it here. + +2018-05-10 João Távora <joaotavora@gmail.com> + + More rls-specifics: update flymake diags when indexing done + + RLS could/should report diagnostics for every opened file, even if + there aren't any problems. Because it doesn't, loop for every buffer + managed by the process and call eglot--current-flymake-report-fn + + * eglot.el + (eglot--server-window/progress): Call eglot--current-flymake-report-fn + +2018-05-10 João Távora <joaotavora@gmail.com> + + Adjust flymake integration + + When opening a new file (signaling textDocument/didOpen) it makes + sense to call the flymake callback (if it exists) with no diagnostics, + just to get rid of that "Wait", since we don't know if later in this + callback cycle the server will ever report new diagnostics. + + * eglot.el (eglot--managed-mode): Don't call flymake-mode or eldoc-mode + (eglot--managed-mode-hook): Add them here. + (eglot--maybe-activate-editing-mode): Call flymake callback. + (eglot--server-textDocument/publishDiagnostics): Set unreported + diagnostics to nil if invoking callback. + +2018-05-10 João Távora <joaotavora@gmail.com> + + Shorten summary line to appease package-lint.el + +2018-05-10 João Távora <joaotavora@gmail.com> + + More correctly setup rust-mode-related autoloads + + By autoloading the add-hook form and the eglot--setup-rls-idiosyncrasies + definition, a user can start rust-mode without loading eglot.el along + with it. + + * eglot.el (rust-mode-hook) + (eglot--setup-rls-idiosyncrasies): Wrap in autoloaded progn. + +2018-05-09 João Távora <joaotavora@gmail.com> + + Add minimal headers, commentary and autoloads + +2018-05-09 João Távora <joaotavora@gmail.com> + + Fancier rls spinner + + * eglot.el (eglot--mode-line-format): Use (nth 3) of + eglot--spinner. + (eglot--server-window/progress): Save detail message in spinner. + +2018-05-09 João Távora <joaotavora@gmail.com> + + New "deferred requests" that wait until server is ready + + Calling textDocument/hover or textDocument/documentHighlight before + the server has had a chance to process a textDocument/didChange is + normally useless. The matter is worse for servers like RLS which only + become ready much later and send a special notif for it (see + https://github.com/rust-lang-nursery/rls/issues/725). + + So, keeping the same coding style add a DEFERRED arg to eglot--request + that makes it maybe not run the function immediately. Add a bunch of + logic for probing readiness of servers. + + * README.md: Update + + * eglot.el (eglot--deferred-actions): New process-local var. + (eglot--process-filter): Call deferred actions. + (eglot--request): Rewrite. + (eglot--sync-request): Rewrite. + (eglot--call-deferred, eglot--ready-predicates) + (eglot--server-ready-p): New helpers. + (eglot--signal-textDocument/didChange): Set spinner and call + deferred actions. + (eglot-completion-at-point): Pass DEFERRED to eglot-sync-request. + (eglot-eldoc-function): Pass DEFERRED to eglot-request + (eglot--rls-probably-ready-for-p): New helper. + (rust-mode-hook): Add eglot--setup-rls-idiosyncrasies + (eglot--setup-rls-idiosyncrasies): New helper. + +2018-05-09 João Távora <joaotavora@gmail.com> + + Call eglot-eldoc-function after completion finishes + + * eglot.el (eglot-completion-at-point): Call + eglot-eldoc-function after completion finishes. + +2018-05-09 João Távora <joaotavora@gmail.com> + + Simplify `eglot-shutdown` + + * eglot.el (eglot, eglot-reconnect) + (eglot--managed-mode): Call new eglot-shutdown. + (eglot-shutdown): Simplify. + (eglot--process-sentinel): Also call error functions. + (eglot--process-filter): Reindent. + +2018-05-09 João Távora <joaotavora@gmail.com> + + Get rid of eglot-mode + + * eglot.el (eglot--managed-mode): Don't call eglot-mode. When + shutting down, offer to kill server. + (mode-line-misc-info): Update to use eglot--managed-mode + +2018-05-09 João Távora <joaotavora@gmail.com> + + Simplify eglot--signal-textdocument/didchange + + * eglot.el (eglot--recent-before-changes) + (eglot--recent-after-changes): Delete. + (eglot--recent-changes): New var. + (eglot--outstanding-edits-p, eglot--before-change) + (eglot--after-change): Rewrite. + (eglot--signal-textDocument/didChange): Rewrite. + (eglot--signal-textDocument/didOpen): Initialize + buffer-local eglot--recent-changes here. + +2018-05-09 João Távora <joaotavora@gmail.com> + + Fix odd bugs and tweak stuff + + * eglot.el (eglot--log-event): Insert before markers. + (eglot--process-receive): Shave lines. + (xref-backend-references): Use cl-return-from. + (eglot--log-event): Simplify + (eglot-completion-at-point): Saner annotation + +2018-05-08 João Távora <joaotavora@gmail.com> + + Support workspace/applyedit + + * eglot.el (eglot--reply): Don't send result or error if not + provided. + (eglot--server-workspace/applyEdit): New server method. + (eglot--apply-text-edits): Rework. + (eglot--apply-workspace-edit): New helper. + (eglot-rename): Simplify. + +2018-05-08 João Távora <joaotavora@gmail.com> + + Support textdocument/rename + + * README.md: Mention rename support. + + * eglot.el (eglot--uri-to-path): Handle uri hidden in keywords. + (eglot--apply-text-edits): New helper. + (eglot-rename): New interactive command. + (eglot--client-capabilities): Add rename capability. + +2018-05-08 João Távora <joaotavora@gmail.com> + + Reasonable textdocument/documenthighlight support + + * README.md: Update. + + * eglot.el (eglot--current-buffer-TextDocumentPositionParams): New + helper. + (xref-backend-identifier-completion-table): Refactor a bit. + (xref-backend-identifier-at-point): Use when-let and + eglot--current-buffer-TextDocumentPositionParams + (xref-backend-definitions, xref-backend-references): Refactor a + bit. + (eglot-completion-at-point): Use + eglot--current-buffer-TextDocumentPositionParams + (eglot-eldoc-function): Rewrite to handle + textDocument/documentHighlight. + (eglot--highlights): New variable. + (eglot--client-capabilities): Update with support for documentHighlight. + +2018-05-07 João Távora <joaotavora@gmail.com> + + Fix odd bugs + + * eglot.el (eglot--process-receive, eglot--request): Set status to + actual error message. + (eglot--managed-mode): Manage imenu-create-index-function + correctly. + (eglot--mode-line-format): Print error status. + +2018-05-07 João Távora <joaotavora@gmail.com> + + When killing server, always wait 3 seconds + + * eglot.el (eglot--request): Accept TIMEOUT param. + +2018-05-07 João Távora <joaotavora@gmail.com> + + Try to fix some textdocument/completion bugs + + * eglot.el (eglot-completion-at-point): Rework slightly. + +2018-05-07 João Távora <joaotavora@gmail.com> + + Half-decent imenu support via textdocument/documentsymbol + + * README.md: Update capability + + * eglot.el (eglot--lsp-position-to-point): New function. + (eglot--managed-mode): Handle imenu-create-index-function. + (eglot--server-textDocument/publishDiagnostics): Use + eglot--lsp-position-to-point. + (eglot-imenu): New function. + (eglot--client-capabilities): Capable of documentSymbol. + +2018-05-07 João Távora <joaotavora@gmail.com> + + Only request stuff that server says it's capable of + + * eglot.el (eglot--server-capable): New helper. + (eglot-xref-backend) + (xref-backend-identifier-completion-table) + (xref-backend-references, xref-backend-apropos) + (eglot-completion-at-point, eglot-eldoc-function): Use it. + +2018-05-07 João Távora <joaotavora@gmail.com> + + Simplify mode-line code with a helper. + + * eglot.el (eglot--mdoe-line-props): New helper. + (eglot--mode-line-format): Use it. + +2018-05-07 João Távora <joaotavora@gmail.com> + + Get rid of eglot--buffer-open-count + + Hasn't really proved useful yet. + + * eglot.el (eglot--buffer-open-count): Remove. + (eglot--signal-textDocument/didOpen) + (eglot--signal-textDocument/didClose): Simplify. + +2018-05-07 João Távora <joaotavora@gmail.com> + + Get rid of eglot--special-buffer-process + + Hasn't really proved useful yet. + + * eglot.el (eglot--special-buffer-process): Delete. + (eglot--current-process): Simplify. + (eglot--events-buffer): Simplify. + +2018-05-07 João Távora <joaotavora@gmail.com> + + * eglot.el: reformat to shave off some lines. + +2018-05-07 João Távora <joaotavora@gmail.com> + + Fix bug in hover support + + * eldoc.el (eglot-eldoc-function): Use eglot--format-markup. + (subr-x): Require it. + (eglot--format-markup): Pacify byte-compiler. + +2018-05-07 João Távora <joaotavora@gmail.com> + + Clean up client capabilities + + * eglot.el (eglot--client-capabilities): Clean up client + capabilities. + +2018-05-07 João Távora <joaotavora@gmail.com> + + Half-baked textdocument/hover support + + * eglot.el (eglot--format-markup): New helper. + (eglot--managed-mode): Handle eldoc-documentation-function. + (eglot-eldoc-function): New function. + + * README.md: update + +2018-05-07 João Távora <joaotavora@gmail.com> + + Tweak the async request engine. + + * eglot.el (eglot--request): Return the continuation id. + (eglot--lambda): Move up in the file. + (eglot--sync-request): Use a catch-tag. + +2018-05-07 João Távora <joaotavora@gmail.com> + + Explain why didopen on after-revert-hook is a bad idea + + The reason is that the global find-file-hook is called again, and that + already does the didOpen. Too many didOpen's would be bad. + + * eglot.el (eglot--managed-mode): Remove commented lines. + +2018-05-07 João Távora <joaotavora@gmail.com> + + Half-decent completion support + + * README.md: Update. + + * eglot.el (eglot--kind-names): New variable. + (eglot--managed-mode): Handle completion-at-point-functions. + (eglot-completion-at-point): New function. + +2018-05-07 João Távora <joaotavora@gmail.com> + + Solve another textdocument/didchange bug + + * eglot.el (eglot--signal-textDocument/didChange): Rework a bit. + (eglot--after-change): Store the actual after-text in the + eglot--recent-after-changes. + +2018-05-07 João Távora <joaotavora@gmail.com> + + Support javascript's javascript-typescript-langserver + + * README.md: Improve a bit + + * eglot.el (eglot--make-process): Take MANAGED-MAJOR-MODE arg + (eglot-executables): Add basic javascript support. + (eglot--connect): Pass mode to eglot--make-process + (eglot--interactive): Check that guessed command is a listp. + (eglot): Minor improvement to message. + (eglot--current-buffer-TextDocumentItem): Guess language from mode + symbol. + +2018-05-07 João Távora <joaotavora@gmail.com> + + Increase request timeout length to 10 seconds + + * eglot.el (eglot-request-timeout): New var. + (eglot--request): Use it. + +2018-05-07 João Távora <joaotavora@gmail.com> + + Workaround two suspected emacs bugs + + * eglot.el (eglot--process-filter): Use a proper unique tag. Use + unwind-protect. + (eglot--sync-request): Rework. + (eglot--server-client/registerCapability): Use a proper done tag. + +2018-05-07 João Távora <joaotavora@gmail.com> + + Etoomanylambdas + + * eglot.el (eglot--sync-request): Remove a lambda. + +2018-05-07 João Távora <joaotavora@gmail.com> + + Fix the odd bug here and there + + * eglot.el (eglot--connect): Activate editing mode where + applicable here. + (eglot, eglot-reconnect): Not here or here. + (eglot--process-sentinel): Catch auto-reconnect errors. + (eglot--notify): Dont send 'id=null', it messes up js's lsp + (eglot--reply): Do send id here. + (eglot--log-event): Simplify protocol. Complexify implementation. + (eglot--process-receive, eglot--process-send): Simplify + eglot--log-event call. + (eglot--request, eglot--notify, eglot--reply): Simplify + eglot--process-send call + (eglot--server-client/registerCapability): Fix bug when replying + with wrong id. + (eglot--xref-reset-known-symbols): Take DUMMY arg. + +2018-05-06 João Távora <joaotavora@gmail.com> + + Half-decent xref support + + * eglot.el + (eglot--xref-known-symbols): New hacky var. + (eglot--xref-reset-known-symbols): New helper. + (xref-find-definitions, xref-find-references): Advise after to + call the new helper. + (xref-backend-identifier-completion-table): Rework. + (eglot--xref-make): New helper. + (xref-backend-definitions): Use it. + (xref-backend-references, xref-backend-apropos): Implement. + (eglot--obj): Add a debug spec. + (eglot--lambda): Add debug spec. + +2018-05-04 João Távora <joaotavora@gmail.com> + + Very basic xref support + + * eglot.el (eglot--pos-to-lisp-position): Move up. + (eglot--mapply, eglot--lambda): New helpers. + (eglot--uri-to-path): New helper. + (eglot--managed-mode): Manage xref-backend-functions. + (eglot-xref-backend): New function. + (xref-backend-identifier-completion-table) + (xref-backend-identifier-at-point) + (xref-backend-definitions): New methods. + (xref-backend-references) + (xref-backend-apropos): New methods, still unimplemented. + +2018-05-04 João Távora <joaotavora@gmail.com> + + New helper eglot--sync-request + + This should help with xref definitions + + * eglot.el (eglot--request): Rework a bit. Continuation is always + cleared on timeout, regardless of user-supplied fn. + (eglot--sync-request): New function. + (eglot--process-receive): watch out for vector results. + +2018-05-04 João Távora <joaotavora@gmail.com> + + Cleanup mistake with textdocumentitem and textdocumentidentifier + + Also introduce eglot--path-to-uri + + * eglot.el (eglot--path-to-uri): Rename from eglot--uri and rework. + (eglot--connect): Use it. + (eglot--current-buffer-TextDocumentIdentifier): New function. + (eglot--current-buffer-VersionedTextDocumentIdentifier) + (eglot--signal-textDocument/didChange) + (eglot--signal-textDocument/didClose) + (eglot--signal-textDocument/willSave) + (eglot--signal-textDocument/didSave): Use it. + +2018-05-04 João Távora <joaotavora@gmail.com> + + Handle dynamic registration in general (but nothing specific yet) + + * eglot.el (eglot--server-client/registerCapability): Implement. + (eglot--register-workspace/didChangeWatchedFiles): Dummy registrator. + +2018-05-04 João Távora <joaotavora@gmail.com> + + Honor textdocumentsync + + * eglot.el (eglot--signal-textDocument/didChange): Honor textDocumentSync + +2018-05-04 João Távora <joaotavora@gmail.com> + + Be quite explicit about our lack of capabilities right now + + * eglot.el (eglot--client-capabilities): Spread out. + +2018-05-04 João Távora <joaotavora@gmail.com> + + Use rooturi instead of rootpath + + * eglot.el (eglot--connect) + (eglot--current-buffer-VersionedTextDocumentIdentifier): Use + eglot--uri. + (eglot--uri): New function. + +2018-05-04 João Távora <joaotavora@gmail.com> + + Make reported capabilities into its own function + + * eglot.el (eglot--client-capabilities): New function. + (eglot--connect): Use it. + +2018-05-04 João Távora <joaotavora@gmail.com> + + Include source info in diagnostics + + * eglot.el (eglot--server-textDocument/publishDiagnostics): + Include source info. + +2018-05-04 João Távora <joaotavora@gmail.com> + + Reply to client/registercapability (don't handle it yet) + + * eglot.el (eglot--server-client/registerCapability): New + function. + +2018-05-04 João Távora <joaotavora@gmail.com> + + Handle requests from server correctly + + * eglot.el (eglot--process-receive): Redesign. + (eglot--process-send): Take REPLY arg. Discover if message is error. + (eglot--reply): new function + (eglot--log-event): Tweak docstring. + (eglot--process-receive): Reply with -32601 if unimplemented. + (eglot--server-window/showMessageRequest) + (eglot--server-client/registerCapability): Use eglot--reply + +2018-05-04 João Távora <joaotavora@gmail.com> + + Don't auto-reconnect if last attempt lasted less than 3 seconds + + * eglot.el (eglot--inhibit-auto-reconnect): New var. + (eglot--process-sentinel): Use it. + +2018-05-04 João Távora <joaotavora@gmail.com> + + Workaround rls's regusal to treat nil as empty json object + + * eglot.el (eglot--connect): Use dummy params. + +2018-05-04 João Távora <joaotavora@gmail.com> + + Eglot-editing-mode becomes eglot--managed-mode + + * eglot.el (eglot--sentinel): Use eglot--managed-mode. + (eglot--managed-mode-map): Renamed from eglot-editing-mode-map. + (eglot--managed-mode): Renamed from eglot-editing-mode. + (eglot-mode): Simplify. + (eglot--buffer-managed-p): New function. + (eglot--maybe-activate-editing-mode): Simplify. + +2018-05-04 João Távora <joaotavora@gmail.com> + + Make m-x eglot's interactive spec a separate function + + * eglot.el (eglot--interactive): New function. + (eglot): Rework a little. + +2018-05-04 João Távora <joaotavora@gmail.com> + + When user declines to reconnect, first quit existing server + + * eglot.el (eglot): Rework reconnection logic. + +2018-05-04 João Távora <joaotavora@gmail.com> + + Connect to lsp server via tcp + + * eglot.el (eglot--make-process): Rename from + eglot-make-local-process. + (eglot): Fix docstring and rework. + (eglot--bootstrap-fn): Remove + (eglot--contact): New process-local var. + (eglot--connect): Take CONTACT arg. + (eglot--reconnect): Rework. + +2018-05-04 João Távora <joaotavora@gmail.com> + + More correctly keep track of didopen/didclose per buffer + + * eglot.el (eglot--buffer-open-count): Now a process-local var. + (eglot--signal-textDocument/didOpen, eglot--signal-textDocument/didClose): + Use it. + +2018-05-03 João Távora <joaotavora@gmail.com> + + Fix mode-line mouse-clicks from outside selected window + + * eglot.el (eglot--mode-line-call): New helper. + (eglot--mode-line-format): Use it. + +2018-05-03 João Távora <joaotavora@gmail.com> + + * eglot.el (eglot--process-receive): skip null method notifs. + +2018-05-03 João Távora <joaotavora@gmail.com> + + Trim some edges and add a bunch of boring rpc methods + + * eglot.el (eglot--connect): Don't call eglot--protocol-initialize. + (eglot--process-filter): Break long line. + (eglot--process-receive): Also pass id to handler if a server request. + (eglot--log): New helper. + (eglot-editing-mode): Manage before-revert-hook, + after-revert-hook, before-save-hook, after-save-hook. + (eglot--protocol-initialize): Removed. + (eglot--server-window/showMessage): Simplify. + (eglot--server-window/showMessageRequest) + (eglot--server-window/logMessage, eglot--server-telemetry/event): + New handlers. + (eglot--signal-textDocument/willSave) + (eglot--signal-textDocument/didSave): New notifications. + (eglot--signal-textDocument/didOpen) + (eglot--signal-textDocument/didClose): Check + eglot--buffer-open-count. + (eglot--buffer-open-count): New var. + +2018-05-03 João Távora <joaotavora@gmail.com> + + Fix a couple of rust-related edge cases + + * eglot.el (eglot--server-window/progress): Allow other keys. + (eglot--server-textDocument/publishDiagnostics): Allow :group in diagnostic + spec. + +2018-05-03 João Távora <joaotavora@gmail.com> + + Fix textdocument/didchange + + * eglot.el (eglot-editing-mode): Manage before-change-functions. + (eglot--recent-changes): Deleted. + (eglot--recent-before-changes): New var. + (eglot--recent-after-changes): Renamed from eglot--recent-changes. + (eglot--pos-to-lsp-position, eglot--before-change): New helpers. + (eglot--after-change): Rework. + (eglot--signal-textDocument/didChange): Rework. + +2018-05-03 João Távora <joaotavora@gmail.com> + + Rename rpc methods for clarity + + * eglot.el (eglot--process-receive): Search for RPC server methods + under `eglot--server-' + (eglot-editing-mode, eglot--maybe-activate-editing-mode): Use new + signal names. + (eglot--server-window/showMessage): Rename from + eglot--window/showMessage. + (eglot--server-textDocument/publishDiagnostics): Renamed from + eglot--textDocument/publishDiagnostics. + (eglot--current-buffer-versioned-identifier): Remove. + (eglot--current-buffer-VersionedTextDocumentIdentifier): Use + eglot--versioned-identifier. + (eglot--signal-textDocument/didChange): Renamed from + eglot--maybe-signal-didChange. + (eglot--signal-textDocument/didOpen): Renamed from + eglot--signalDidOpen. + (eglot--signal-textDocument/didClose): Rename from + eglot--signalDidClose. + (eglot-flymake-backend): Call eglot--signal-textDocument/didChange. + (eglot--server-window/progress): Rename from + eglot--window/progress. + +2018-05-03 João Távora <joaotavora@gmail.com> + + Reorganize file + + * eglot.el (eglot-mode-line): Move up. + (eglot-make-local-process, eglot--all-major-modes, eglot--obj) + (eglot--project-short-name, eglot--all-major-modes) + (eglot-reconnect, eglot--maybe-activate-editing-mode) + (eglot--protocol-initialize) + (eglot--window/showMessage, eglot--current-flymake-report-fn) + (eglot--unreported-diagnostics) + (eglot--textDocument/publishDiagnostics, eglot--signalDidOpen) + (eglot--signalDidClose): Move around. + (eglot-quit-server): Renamed to eglot-shutdown. + (eglot-shutdown): New function + +2018-05-03 João Távora <joaotavora@gmail.com> + + Delete two useless forward declarations + + * eglot.el (eglot-mode, eglot-editing-mode-map): Remove forward decls. + +2018-05-03 João Távora <joaotavora@gmail.com> + + Fix flymake diagnostic positions + + It's better not to use flymake-diag-region here. + + * eglot.el (eglot--textDocument/publishDiagnostics): + Calculate position by hand. + +2018-05-03 João Távora <joaotavora@gmail.com> + + Must re-announce didopen after reconnect + + * eglot.el (eglot-reconnect): Also call + eglot--maybe-activate-editing-mode for all buffers. + +2018-05-03 João Távora <joaotavora@gmail.com> + + Fix another flymake sync bug + + * eglot.el (eglot-flymake-backend): Only report unreported sometimes. + (eglot--maybe-activate-editing-mode): Start flymake explicitly + when didOpen. + (eglot--textDocument/publishDiagnostics): No need to set + unreported-diagnostics to nil. + (flymake): Require it. + +2018-05-03 João Távora <joaotavora@gmail.com> + + Make m-x eglot the main entry point + + * eglot.el (eglot-new-process): Removed + (eglot): Rename from eglot-new-process. + (eglot-editing-mode): Mention M-x eglot + + * README.md: Use M-x eglot + +2018-05-03 João Távora <joaotavora@gmail.com> + + Fix assorted bugs + + * eglot.el (eglot--special-buffer-process): Must be buffer-local. + (eglot--define-process-var): Fix disaster waiting to happen. + (eglot--process-receive): Explicitly pass PROC to + eglot--pending-continuations. + (eglot--textDocument/publishDiagnostics): Clear unreported diagnostics + +2018-05-03 João Távora <joaotavora@gmail.com> + + Watch for files opened under umbrella of existing process + + * eglot.el (eglot--connect): Call success-fn with a proc. + (eglot-reconnect): Adapt to new eglot--connect. + (eglot-new-process): Call eglot--maybe-activate-editing-mode + (eglot--maybe-activate-editing-mode): New function. + (find-file-hook): Add it here. + +2018-05-03 João Távora <joaotavora@gmail.com> + + Multiple servers per project are possible + + A server manages a specific major-mode within a project. + + * eglot.el (eglot--processes-by-project): Add docstring. + (eglot--current-process): Search new eglot--processes-by-project + format. + (eglot--major-mode): New variable. + (eglot--moribund, eglot--project): Update docstring. + (eglot--project-short-name, eglot--all-major-modes): New helpers. + (eglot--connect): Rework. + (eglot-new-process): Rework severely. + (eglot--command-history): New variable. + (eglot--process-sentinel): Use new + eglot--processes-by-project. Update mode line. + (eglot-editing-mode): Don't start processes, just suggest it. + +2018-05-03 João Távora <joaotavora@gmail.com> + + Appease checkdoc.el + + * eglot.el (eglot--process-send, eglot--next-request-id) + (eglot--current-buffer-VersionedTextDocumentIdentifier) + (eglot--current-buffer-TextDocumentItem) + (eglot--after-change, eglot--signalDidOpen) + (eglot--signalDidClose, eglot--maybe-signal-didChange): + Add docstring. + +2018-05-03 João Távora <joaotavora@gmail.com> + + Simplify flymake integration + + And get rid of the ridiculous environment thingy + + * eglot.el (eglot--process-sentinel): Continuations are triplets. + (eglot--environment-vars, eglot--environment): Remove. + (eglot--process-receive): Simplify. + (eglot--unreported-diagnostics): New variable. + (eglot--textDocument/publishDiagnostics): Simplify. + (eglot-flymake-backend): Report unreported diagnostics. + +2018-05-03 João Távora <joaotavora@gmail.com> + + Signal textdocument/didclose + + * eglot.el (eglot-editing-mode): Signal didClose. + (eglot--signalDidClose): New. + +2018-05-03 João Távora <joaotavora@gmail.com> + + Rework connection restarting again + + Quitting a process removes it from the project. + + * eglot.el (eglot-editing-mode,eglot-mode): Forward declare. + (eglot--project): New process-local var. + (eglot--connect): Takes a project. + (eglot-new-process): Rework. + (eglot--sentinel): Remove proc from eglot--processes-by-project. + +2018-05-03 João Távora <joaotavora@gmail.com> + + Redesign and simplify parser + + Fix horrible bugs. This is the correct way. + + * eglot.el (eglot--process-filter): Redesign. + +2018-05-02 João Távora <joaotavora@gmail.com> + + Auto-reconnect on unexpected connection loss + + * eglot.el (eglot-reconnect): Only quit if indeed not quit + already. + (eglot-new-process): Burn the command in the bootstrap fn. + (eglot--process-sentinel): Automatically reconnect if closed + unexpectedly. + (eglot--warn): Also message to *Messages* + +2018-05-02 João Távora <joaotavora@gmail.com> + + Ready to start fixing flymake integration + + * eglot.el (eglot-editing-mode): Turn on flymake-mode. + (eglot-flymake-backend): Always start by reporting no diagnostics. + (eglot--textDocument/publishDiagnostics): No annoying message. + +2018-05-02 João Távora <joaotavora@gmail.com> + + Slightly more user friendly start + + * eglot.el (eglot-new-process): signal DidOpen for every file in project. + (eglot-editing-mode): Offer to start process. + +2018-05-02 João Távora <joaotavora@gmail.com> + + Don't clutter ui with warnings + + * eglot.el (warnings): require it. + (eglot--warn): set warning-minimum-level + +2018-05-02 João Távora <joaotavora@gmail.com> + + Rework commands for connecting and reconnecting + + * eglot.el (eglot--current-process-or-lose): Add doc. + (eglot--command): Remove. + (eglot--bootstrap-fn): New process-local variable. + (eglot--connect): Redesign. + (eglot-make-local-process): New function. + (eglot-reconnect): New interactive command. + (eglot-new-process): Redesign. + (eglot--process-sentinel): Add doc. + (eglot--protocol-initialize): Rework. + (eglot--mode-line-format): Use eglot-reconnect. + +2018-05-02 João Távora <joaotavora@gmail.com> + + Less obstrusive flymake stuff for now + + * eglot.el (eglot--after-change, eglot-flymake-backend): Fix. + +2018-05-02 João Távora <joaotavora@gmail.com> + + Events buffer uses eglot-mode, source buffers use eglot-editing-mode + + * eglot.el (eglot--special-buffer-process): New var. + (eglot--current-process): Consider eglot--special-buffer-process. + (eglot-events-buffer): Use eglot-mode + (eglot-editing-mode): New minor mode. + (eglot-mode): Turns on eglot-editing-mode maybe. + +2018-05-02 João Távora <joaotavora@gmail.com> + + Change status to error every time an error is found + + * eglot.el (eglot--process-receive): Also set error status. + (eglot--request): Fix a compilation warning. + +2018-05-02 João Távora <joaotavora@gmail.com> + + Correctly report what we currently are capable of + + Which is almost nothing. + + * eglot.el (eglot--protocol-initialize): Clean up. + +2018-05-02 João Távora <joaotavora@gmail.com> + + Add eglot-clear-status interactive command + + * eglot.el (eglot-clear-status): New + (eglot-forget-pending-continuations): Fix bug. + (eglot--mode-line-format): Add link to eglot-clear-status. + +2018-05-02 João Távora <joaotavora@gmail.com> + + Auto update mode-line after setting some process properties + + * eglot.el (eglot--define-process-var): Rework. + (eglot--short-name, eglot--spinner, eglot--status): Update mode-line + after setting it. + +2018-05-02 João Távora <joaotavora@gmail.com> + + Start experimenting with python + + * eglot.el (eglot-executables): Add pyls. + +2018-05-02 João Távora <joaotavora@gmail.com> + + Don't switch to possibly dead buffer in sentinel + + * eglot.el (eglot--process-sentinel): Don't with-current-buffer. + +2018-05-02 João Távora <joaotavora@gmail.com> + + Report server status in the mode-line + + * eglot.el (eglot--status): New var. + (eglot--log-event): Try to be more useful for other stuff. + (eglot--protocol-initialize): Set status to nil on + successful connect. + (eglot--window/showMessage): Set status to error if needed. + (eglot--mode-line-format): Display status if serious. + +2018-05-01 João Távora <joaotavora@gmail.com> + + Implement spinners and rls's window/progress + + * eglot.el (eglot--window/progress): New. + (eglot--mode-line-format): Rework. + (eglot--snpinner): New var. + (compile): require it. + +2018-05-01 João Távora <joaotavora@gmail.com> + + Fix parser to accept multiple messages in one chunk + + * eglot.el (eglot--process-filter): Redesign slightly. + (eglot--message-mark): Remove. don't need this. + +2018-05-01 João Távora <joaotavora@gmail.com> + + Lay groundwork for uniform treatment of network connections + + * eglot.el (eglot--connect): New helper. + (eglot-new-process): Use it. + (pcase): Require it. + +2018-05-01 João Távora <joaotavora@gmail.com> + + Doc fixes + + * eglot.el (eglot-mode-map): Move up before minor mode. + +2018-05-01 João Távora <joaotavora@gmail.com> + + * eglot.el (eglot-mode-map): move up before minor mode. + +2018-04-30 João Távora <joaotavora@gmail.com> + + Start working on this again + + * eglot.el (url-util): Require it. + (eglot--process-sentinel): pending continuations now are quads (added env). + (eglot--process-filter): Unwind message markers correctly if handling fails. + (eglot--obj): Simple macro. + (eglot--log-event): Add some info to logged event. + (eglot--environment-vars, eglot--environment): Helper vars. + (eglot--process-receive): Improve. + (eglot--process-send): Niver log. + (eglot--request): Use eglot--obj. Add environment. + (eglot--notify): New helper. + (eglot--protocol-initialize): RLS must like file:// + (eglot--current-flymake-report-fn): New var. + (eglot--textDocument/publishDiagnostics): Use flymake from Emacs 26. + (eglot-mode): Proper minor mode. + (eglot--recent-changes, eglot--versioned-identifier): New stuff. + (eglot--current-buffer-versioned-identifier) + (eglot--current-buffer-VersionedTextDocumentIdentifier) + (eglot--current-buffer-TextDocumentItem, eglot--after-change) + (eglot--signalDidOpen, eglot--maybe-signal-didChange): New stuff. + (eglot-flymake-backend): More or less a flymake backend function. + +2018-04-30 João Távora <joaotavora@gmail.com> + + Fix mode line + + * eglot.el (mode-line-misc-info): conditionalize to eglot-mode + +2018-04-30 João Távora <joaotavora@gmail.com> + + Fix some byte-compilation warnings + +2018-04-30 Andrew Schwartzmeyer <andrew@schwartzmeyer.com> (tiny change) + + Document that remapping commands is supported with bind-key + +2018-04-26 Justin Talbott <justin@waymondo.com> + + Merge pull request from akhramov/fix/ensure-system-package-noconfirm + + [Fix https://github.com/jwiegley/use-package/issues/661] ensure-system-package: honor system-packages customizations + GitHub-reference: https://github.com/jwiegley/use-package/issues/673 + +2018-04-25 Artyom Khramov <futu.fata@gmail.com> (tiny change) + + [] ensure-system-package: honor system-packages customizations + + ensure-system-package doesn't honor system-packages + customizations (https://github.com/jwiegley/use-package/issues/661), because system-packages didn't provide an API + to retrieve shell command to be executed. + + This change makes use of the new system-packages' + `system-package-get-command` function and therefore fixes the issue. + GitHub-reference: fix https://github.com/jwiegley/use-package/issues/661 + +2018-03-24 Russell Black <black.russell@gmail.com> + + Update use-package-chords.el + +2018-03-23 Russell Black <black.russell@gmail.com> + + Update use-package-chords.el + + new style of auto-deferral for chords + +2018-03-16 Justin Talbott <justin@waymondo.com> + + Merge pull request from waymondo/master + + :ensure-system-package - allow cdr of cons to be a package name symbol + GitHub-reference: https://github.com/jwiegley/use-package/issues/654 + +2018-03-16 Justin Talbott <justin@waymondo.com> + + :ensure-system-package allow cdr of cons to be a package name symbol + + closes https://github.com/jwiegley/use-package/issues/652 + +2018-03-14 John Wiegley <johnw@newartisans.com> + + Merge pull request from valignatev/master + + Encourage installation via https instead of http + GitHub-reference: https://github.com/jwiegley/use-package/issues/651 + +2018-03-14 Valentin Ignatev <valentjedi@gmail.com> + + Encourage installation via https instead of http + +2018-03-13 John Wiegley <johnw@newartisans.com> + + Merge pull request from DamienCassou/fix-report-again + + Fix report again after revert + GitHub-reference: https://github.com/jwiegley/use-package/issues/647 + +2018-03-12 Damien Cassou <damien.cassou@gmail.com> + + Fix compile-time warnings due to the statistics-reporting code + + The code worked because the file is using dynamic binding. + +2018-03-12 Damien Cassou <damien.cassou@gmail.com> + + Add missing require + + This is used for `hash-table-keys`. + + Fix https://github.com/jwiegley/use-package/issues/644. + +2018-03-12 John Wiegley <johnw@newartisans.com> + + Merge pull request from jwiegley/revert-645-fix-report + + Revert "Fix report" + GitHub-reference: https://github.com/jwiegley/use-package/issues/646 + +2018-03-12 John Wiegley <johnw@newartisans.com> + + Revert "Fix report" + +2018-03-12 John Wiegley <johnw@newartisans.com> + + Merge pull request from DamienCassou/fix-report + + Fix report + GitHub-reference: https://github.com/jwiegley/use-package/issues/645 + +2018-03-11 Damien Cassou <damien.cassou@gmail.com> + + Fix compile-time warnings due to the statistics-reporting code + + The code worked because the file is using dynamic binding. + +2018-03-11 Damien Cassou <damien.cassou@gmail.com> + + Add missing require + + This is used for `hash-table-keys`. + + Fix https://github.com/jwiegley/use-package/issues/644. + +2018-03-08 John Wiegley <johnw@newartisans.com> + + Merge pull request from DamienCassou/tabulated-list + + Use a tabulated-list to display package configuration statistics + GitHub-reference: https://github.com/jwiegley/use-package/issues/642 + +2018-03-08 Damien Cassou <damien.cassou@gmail.com> + + Use a tabulated-list to display package configuration statistics + + Fix https://github.com/jwiegley/use-package/issues/641 + +2018-03-05 John Wiegley <johnw@newartisans.com> + + Merge pull request from matthewbauer/patch-1 + + Support ":package" in use-package + GitHub-reference: https://github.com/jwiegley/use-package/issues/633 + +2018-02-25 Matthew Justin Bauer <mjbauer95@gmail.com> + + Support ":package" in use-package + + bind-key supports the keyword ":package" but use-package does not know that. Adding this should be helpful. In the future, maybe we could automatically fill in with the use-package package, but that could be a breaking change. + +2018-02-06 John Wiegley <johnw@newartisans.com> + + Merge pull request from justbur/normalize-fix + + Fix usage of plist argument in use-package-normalize-plist + GitHub-reference: https://github.com/jwiegley/use-package/issues/625 + +2018-02-06 Justin Burkett <justin@burkett.cc> + + Fix usage of plist argument in use-package-normalize-plist + + Previously the argument was never used. + +2018-02-06 John Wiegley <johnw@newartisans.com> + + Merge pull request from justbur/ignore-keywords + + Add use-package-ignore-unknown-keywords option + GitHub-reference: https://github.com/jwiegley/use-package/issues/624 + +2018-02-06 Justin Burkett <justin@burkett.cc> + + Add use-package-ignore-unknown-keywords option + + This option allows use-package to skip over keywords it doesn't recognize. + +2018-01-27 John Wiegley <johnw@newartisans.com> + + Revert "Merge pull request from jabranham/lexical-bindings" + + This reverts commit d21787f1d64a740c0e00899835d9200a0e4690df, reversing + changes made to fd8a3510fd1a555b925f57b2870917e3c4ea0206. + GitHub-reference: https://github.com/jwiegley/use-package/issues/617 + +2018-01-27 John Wiegley <johnw@newartisans.com> + + Revert "Move variable bindings to the bottom of each file" + + This reverts commit c29193bf0724633adf7183dad2d0b6faf7d029ab. + +2018-01-27 John Wiegley <johnw@newartisans.com> + + Move variable bindings to the bottom of each file + +2018-01-27 John Wiegley <johnw@newartisans.com> + + Merge pull request from jabranham/lexical-bindings + + [WIP] Lexical bindings + GitHub-reference: https://github.com/jwiegley/use-package/issues/617 + +2018-01-27 Alex Branham <alex.branham@gmail.com> + + Don't remove sharp quotes + + Test still requires cl + + Fix byte compiler warnings + + Use lexical bindings and remove cl package + +2018-01-27 John Wiegley <johnw@newartisans.com> + + Merge pull request from jabranham/system-packages-update + + System packages update + GitHub-reference: https://github.com/jwiegley/use-package/issues/616 + +2018-01-26 Alex Branham <alex.branham@gmail.com> + + lexical binding + + Prefer non-obsolete var names + +2018-01-08 John Wiegley <johnw@newartisans.com> + + Merge pull request from jabranham/fix-byte-compiler + + Prefer org-table-align to orgtbl-ctrl-c-ctrl-c + GitHub-reference: https://github.com/jwiegley/use-package/issues/611 + +2018-01-08 Alex Branham <alex.branham@gmail.com> + + Prefer org-table-align to orgtbl-ctrl-c-ctrl-c + + org-table-align is an autoloaded function so the byte compiler can + find it. orgtbl-ctrl-c-ctrl-c isn't so we get a warning about + undefined functions. + +2017-12-26 John Wiegley <johnw@newartisans.com> + + Merge pull request from justbur/elisp-cap + + Handle automatic macro expansion by elisp-completion-at-point + GitHub-reference: https://github.com/jwiegley/use-package/issues/599 + +2017-12-26 John Wiegley <johnw@newartisans.com> + + Merge pull request from nickmccurdy/render-report-table + + Render the use-package-report table using Org + GitHub-reference: https://github.com/jwiegley/use-package/issues/592 + +2017-12-20 wouter bolsterlee <wouter@bolsterl.ee> (tiny change) + + Fix sanity check for correct :custom-face format + + Instead of testing the length of each form passed to :custom-face, + the sanity check would test the number of forms passed to :custom-face, + causing it to fail when more than 2 face customisations are used. + + Fixes https://github.com/jwiegley/use-package/issues/600. + +2017-12-19 Justin Burkett <justin@burkett.cc> + + Handle automatic macro expansion by elisp-completion-at-point + + The function `elisp--local-variables' inserts an unbound variable, + `elisp--witness--lisp', into macro forms to determine the locally bound + variables for `elisp-completion-at-point'. It ends up throwing a lot of errors + since it can occupy the position of a keyword (or look like a second argument to + a keyword that takes one). Deleting it when it's at the top level should be + harmless since there should be no locally bound variables to discover here + anyway. + +2017-12-17 John Wiegley <johnw@newartisans.com> + + Guard a call to display-warning with ignore + + Fixes https://github.com/jwiegley/use-package/issues/589 + +2017-12-16 Nick McCurdy <nick@nickmccurdy.com> + + Render the use-package-report table using Org + + I noticed that the "Gathering Statistics" instructions for rendering the Org + table could be automated for convenience. Now the table is reformatted + automatically, and you can still manually sort it. I'm not sorting it by default + to maintain the same order of use-package forms for easier troubleshooting. + +2017-12-16 John Wiegley <johnw@newartisans.com> + + All the second argument in use-package-defaults lists to be a function + + Address the question raised in https://github.com/jwiegley/use-package/issues/591 + +2017-12-13 John Wiegley <johnw@newartisans.com> + + Add a test related to + + GitHub-reference: https://github.com/jwiegley/use-package/issues/589 + +2017-12-13 John Wiegley <johnw@newartisans.com> + + Add more tests related to issue + + GitHub-reference: https://github.com/jwiegley/use-package/issues/572 + +2017-12-11 John Wiegley <johnw@newartisans.com> + + Minor simplification of a function + +2017-12-11 John Wiegley <johnw@newartisans.com> + + bind-keys fixes related to + + GitHub-reference: https://github.com/jwiegley/use-package/issues/482 + +2017-12-10 John Wiegley <johnw@newartisans.com> + + Add a clarifying test for + + GitHub-reference: https://github.com/jwiegley/use-package/issues/482 + +2017-12-09 John Wiegley <johnw@newartisans.com> + + Fix a scoping issues with multiple occurrences of :bind + + Fixes https://github.com/jwiegley/use-package/issues/585 + +2017-12-08 John Wiegley <johnw@newartisans.com> + + Start building a use-package linter in use-package-lint.el + + use-package-normalize/:disabled has the wrong number of arguments + + Remove several unnecessary calls to `ignore' + + Add another :bind test + +2017-12-07 John Wiegley <johnw@newartisans.com> + + Add further note to NEWS.md + + Add tests for two more issues + + Fix the tests + + Clarify a note in NEWS.md + +2017-12-07 John Wiegley <johnw@newartisans.com> + + Changes to the way auto-deferral is indicated + + This change adds a new extension hook `use-package-autoloads/<KEYWORD>` for + specifying exactly which autoloads a keyword should imply. This is the proper + way to indicate autoloads, rather than adding to the `:commands` entry as was + done before. + + Further, autoloading now must occur in order to cause implied deferred + loading; if :bind is used with only lambda forms, for example, this will not + cause deferred loading without `:defer t`. + +2017-12-07 John Wiegley <johnw@newartisans.com> + + Introduce new customization variable `use-package-merge-key-alist' + +2017-12-07 John Wiegley <johnw@newartisans.com> + + Use cl-gentemp in another place + + This avoids "Variable unknown" errors if a byte-compiled init.elc happening to + encounter an error while evaluating an :init or :config block. + +2017-12-06 John Wiegley <johnw@newartisans.com> + + Correctly fix the problem of unreferenced symbols after compilation + + Fixes https://github.com/jwiegley/use-package/issues/571 + +2017-12-06 John Wiegley <johnw@newartisans.com> + + Revert "Pre-expand lexical-let, since otherwise it requires cl to be loaded" + + This reverts commit 7cc17cee8f8ae2093d98efebf429cd10e9b0b81c. + +2017-12-06 John Wiegley <johnw@newartisans.com> + + Pre-expand lexical-let, since otherwise it requires cl to be loaded + + Fixes https://github.com/jwiegley/use-package/issues/571 + +2017-12-06 John Wiegley <johnw@newartisans.com> + + Add documentation for `use-package-report' + + use-package-defaults predicate must also receive the package name + + Remove Package-Requires for diminish and delight, as these are optional + + Add a comment as to why max-lisp-eval-depth is set in -tests.el + +2017-12-06 John Wiegley <johnw@newartisans.com> + + Add missing autoload cookie, and make lack of a normalizer an error + + Fixes https://github.com/jwiegley/use-package/issues/566 + +2017-12-06 John Wiegley <johnw@newartisans.com> + + Don't compute the verbose debug text unless it's requested + +2017-12-06 John Wiegley <johnw@newartisans.com> + + Add :bind test for a single cons cell + + Relates to https://github.com/jwiegley/use-package/issues/566 + +2017-12-06 John Wiegley <johnw@newartisans.com> + + Add support for gathering statistics on use-package declarations + +2017-12-06 John Wiegley <johnw@newartisans.com> + + Respect keyword ordering in use-package-deferring-keywords + + Relates to https://github.com/jwiegley/use-package/issues/565 + +2017-12-06 John Wiegley <johnw@newartisans.com> + + Clarify :config with setq versus :custom + + Fixes https://github.com/jwiegley/use-package/issues/564 + +2017-12-06 John Wiegley <johnw@newartisans.com> + + Update some GPL version references + + Fixes https://github.com/jwiegley/use-package/issues/563 + +2017-12-06 John Wiegley <johnw@newartisans.com> + + Allow the expansion of :after (:or foo bar) to be byte-compiled + + Make the expanded text for :after cleaner + +2017-12-05 John Wiegley <johnw@newartisans.com> + + Several changes as suggested by flycheck + +2017-12-05 John Wiegley <johnw@newartisans.com> + + Don't auto-defer if the package itself was given to :load + + Otherwise, we'd be senselessly waiting for the package to load. + +2017-12-05 John Wiegley <johnw@newartisans.com> + + Enable all tests on Travis + + Allow `:load t' to mean the same as :load of the package name + + Whitespace change + + Default running-on-travis to t + + Enable 4 tests that work when not run on Travis + + For now, stub out test that breaks Travis + + Stub some referenced variables, for Travis + + Add note in NEWS.md about :requires vs. :if + +2017-12-05 John Wiegley <johnw@newartisans.com> + + Lower the priority of :if/:when/:unless in use-package-keywords + + Fixes https://github.com/jwiegley/use-package/issues/560 + +2017-12-05 John Wiegley <johnw@newartisans.com> + + Enhance fix-expansion to take surrounding let bindings into account + +2017-12-05 John Wiegley <johnw@newartisans.com> + + Rewrite normalization of :bind and :bind* + + Fixes https://github.com/jwiegley/use-package/issues/550 + +2017-12-05 John Wiegley <johnw@newartisans.com> + + Normalize errors should be errors, that are then caught by :catch + +2017-12-05 John Wiegley <johnw@newartisans.com> + + Avoid using pcase and many other macros in macro-expanded forms + + This is related to https://github.com/jwiegley/use-package/issues/550 + +2017-12-05 John Wiegley <johnw@newartisans.com> + + Fix bad interaction between bind-keys* and the :package keyword + + Fixes https://github.com/jwiegley/use-package/issues/558 + +2017-12-05 John Wiegley <johnw@newartisans.com> + + Add missing autoload cookies + + Fixes https://github.com/jwiegley/use-package/issues/555 + +2017-12-05 Radon Rosborough <radon.neon@gmail.com> + + Fix function accidentally made interactive + +2017-12-04 John Wiegley <johnw@newartisans.com> + + Use cl-gensym + +2017-12-04 John Wiegley <johnw@newartisans.com> + + Fix the case where :ensure is given no arguments + + Fixes https://github.com/jwiegley/use-package/issues/543 + +2017-12-04 John Wiegley <johnw@newartisans.com> + + Some Emacsen don't have gensym + + Fixes https://github.com/jwiegley/use-package/issues/544 + +2017-12-04 John Wiegley <johnw@newartisans.com> + + Add note in NEWS.md about :after and autoloaded keybindings + +2017-12-04 John Wiegley <johnw@newartisans.com> + + Add a note to `bind-key` on the usage of the KEYMAP argument + + Fixes https://github.com/jwiegley/use-package/issues/542 + +2017-12-04 John Wiegley <johnw@newartisans.com> + + Add a bind-key test + +2017-12-04 John Wiegley <johnw@newartisans.com> + + Support :ensure (pkg :pin archive) + + Fixes https://github.com/jwiegley/use-package/issues/506 + +2017-12-04 John Wiegley <johnw@newartisans.com> + + Add several missing comments + + Swap the order of two definitions + +2017-12-04 John Wiegley <johnw@newartisans.com> + + Fix an argument process problem with bind-key + + Fixes https://github.com/jwiegley/use-package/issues/334 + +2017-12-04 John Wiegley <johnw@newartisans.com> + + Comment out two tests that break on Travis + + Rename up-* files to use-package-* for consistency + + Merge branch 'split-bind-key' + + Commit .texi file, as it requires several dependencies to generate + + Merge branch 'master' into next + + Add a test-in-progress for issue 506 + +2017-12-04 John Wiegley <johnw@newartisans.com> + + Add new customization variables `use-package-hook-name-suffix' + + Fixes https://github.com/jwiegley/use-package/issues/530 + +2017-12-04 John Wiegley <johnw@newartisans.com> + + Split key binding functionality out into its own file + + Please the byte-compiler + + Require cl for the use-package tests + + Expand use-package-core as a macro, to avoid load time dependency + +2017-12-04 John Wiegley <johnw@newartisans.com> + + :ensure can be a list; correct handling of multiple :ensure keywords + + Fixes https://github.com/jwiegley/use-package/issues/539 + +2017-12-04 John Wiegley <johnw@newartisans.com> + + Ensure that :commands always declare-function at compile time + +2017-12-04 John Wiegley <johnw@newartisans.com> + + Add a new :catch keyword, and move :preface before such handling + + Fixes https://github.com/jwiegley/use-package/issues/534 + +2017-12-04 John Wiegley <johnw@newartisans.com> + + Fix duplication in an error message + + Add expand-maximally macro to up-tests.el + +2017-12-04 John Wiegley <johnw@newartisans.com> + + Revert "Reduce some code duplication" + + This reverts commit 1e560c514004747062276ca59ddf425a3edc44cd. + +2017-12-04 John Wiegley <johnw@newartisans.com> + + Move :preface handling within the code + + Add two new tests + + Reduce some code duplication + + Normalize some whitespace and ordering in new code + +2017-12-04 John Wiegley <johnw@newartisans.com> + + Move :init back to happening after all autoloads have occurred + + Fixes https://github.com/jwiegley/use-package/issues/535 + +2017-12-04 John Wiegley <johnw@newartisans.com> + + Move :init back to happening after all autoloads have occurred + + Fixes https://github.com/jwiegley/use-package/issues/535 + +2017-12-04 Justin Talbott <justin@waymondo.com> + + Add `use-package-chords` and `use-package-ensure-system-package` + + Also update docs on usage + + connect to https://github.com/jwiegley/use-package/issues/516 + +2017-12-04 John Wiegley <johnw@newartisans.com> + + Change order of :defines and :functions within `use-package-keywords' + + Add further notes to NEWS.md, in light of recent breakages + + Add new customization variable `use-package-deferring-keywords' + + Minor comment change + + up-ensure's customization variables are now in their own group + + Remove code from up-core.el that is now in up-diminish.el + + Add notes to NEWS.md + + Correction to a macro expansion + + Delete an unneeded blank line + + Reduce some code duplication + + Normalize the code emitted by :mode, :interpreter, :magic, etc + + Add 'errors as another option to `use-package-verbose' + + Only emit the debugging context text once + +2017-12-03 John Wiegley <johnw@newartisans.com> + + Correction to error detection at both :init and :config times + + Report errors during deferred :config as intelligent warnings also + + Drop some unnecessary detail from a warning message + + Minor simplification + + Fix a byte-compiler warning in up-ensure.el + + Move optional jumping functionality to its own module + + Break out ensure/diminish/delight into their own support files + + Move the use-package-keywords defcustom to the top of the file + + Disable a test that is not working on Travis + + Move functions around for better logical grouping + + More variable renaming needed in the tests + + Change most use-package-- prefixes to just use-package- + + Remove a local variable binding + + Always catch errors during configuration + + Separate out all tests, the better to identify which one failed + + Define macroexpand-1 for older Emacsen + +2017-12-03 John Wiegley <johnw@newartisans.com> + + A great deal of internal reorganization and simplification + + All handlers now address their own domain of work; :after has become safer; + keyword normalization is multi-stage process; setting use-package-verbose to + `debug' produces useful output in the *use-package* buffer in the case of load + time errors; use-package errors (even internal) won't stop Emacs from + starting (though a serious internal bug that errors out every use-package form + may stop anything from being configured!); and more. + +2017-12-02 Radon Rosborough <radon.neon@gmail.com> + + Fix `use-package-ensure-function' docstring typo + +2017-12-01 John Wiegley <johnw@newartisans.com> + + If use-package-verbose is t, show loading times when :after is used + +2017-12-01 John Wiegley <johnw@newartisans.com> + + Remove the :defer-install keyword + + This may reappear as its own add-on to use-package in the future. See https://github.com/jwiegley/use-package/issues/442. + +2017-12-01 John Wiegley <johnw@newartisans.com> + + :demand should not override an explicit use of :after + + Fixes https://github.com/jwiegley/use-package/issues/529 + +2017-12-01 John Wiegley <johnw@newartisans.com> + + Remove some debug code that crept in + + Add tests for the last two keywords + + Add many more tests + + Always wrap the expanded body from use-package in (progn) + +2017-12-01 John Wiegley <johnw@newartisans.com> + + Comment out :no-require test for now + + It works on my machine, but not with what Travis runs. + +2017-12-01 John Wiegley <johnw@newartisans.com> + + Don't factor out a volatile variable + + Possibly fixes https://github.com/jwiegley/use-package/issues/527 + +2017-12-01 John Wiegley <johnw@newartisans.com> + + Add many new tests + +2017-12-01 John Wiegley <johnw@newartisans.com> + + Generate :defines and :functions correctly + + So they actually inhibit byte-compilation warnings as they were meant to. + +2017-12-01 John Wiegley <johnw@newartisans.com> + + Correct the ordering of :preface, :load-path, :defines and :functions + + Whitespace fix + + Move :hook before :defer + + Don't macroexpand bind-keys, leave that to the evaluator + + Always use `load' when loading for the sake of compilation + + Sort keywords at the appropriate time + + Change the :config default, if none has been set in vars + + :no-require t should never require + + Code reformatting + +2017-11-30 John Wiegley <johnw@newartisans.com> + + Allow match-expansion to take multiple cases + + Add test for use-package-test-normalize/:ensure + + Add the missing plist-delete + + Remove an unneeded defvar + +2017-11-30 John Wiegley <johnw@newartisans.com> + + A final fix to :ensure + :load-path + + Fixes https://github.com/jwiegley/use-package/issues/190 + +2017-11-30 John Wiegley <johnw@newartisans.com> + + Add a test case for :ensure, following up from + + GitHub-reference: https://github.com/jwiegley/use-package/issues/190 + +2017-11-30 John Wiegley <johnw@newartisans.com> + + Don't check for an :ensure that use-package-always-ensure may have added + + Fixes https://github.com/jwiegley/use-package/issues/190 + +2017-11-30 John Wiegley <johnw@newartisans.com> + + Add a use-package-version variable + + Add two new tests + + Add stubs for future tests of all keywords + +2017-11-30 John Wiegley <johnw@newartisans.com> + + Allow :ensure to take a nil value again + + Fixes https://github.com/jwiegley/use-package/issues/526 + +2017-11-30 John Wiegley <johnw@newartisans.com> + + Only add :ensure nil on :load-path if use-package-always-ensure is t + + Restructure some code + +2017-11-30 John Wiegley <johnw@newartisans.com> + + Using :load-path without also using :ensure now implies :ensure nil + + Fixes https://github.com/jwiegley/use-package/issues/190 + +2017-11-30 John Wiegley <johnw@newartisans.com> + + Correction to use-package--recognize-function + + Finishes https://github.com/jwiegley/use-package/issues/525 + +2017-11-30 John Wiegley <johnw@newartisans.com> + + Allow keys to be bound to nil + + Fixes https://github.com/jwiegley/use-package/issues/525 + +2017-11-29 John Wiegley <johnw@newartisans.com> + + Fix a missing `and' + + Use backquote rather than quote + + Correct use-package-normalize-mode + + Whitespace fix + + Update version and copyright + +2017-11-29 John Wiegley <johnw@newartisans.com> + + Allow :bind ("C-c C-c" . (lambda () (ding))) and #'(lambda ...) + + Fixes https://github.com/jwiegley/use-package/issues/333 + Fixes https://github.com/jwiegley/use-package/issues/461 + +2017-11-29 John Wiegley <johnw@newartisans.com> + + Reorder some items in NEWS.md + + Add NEWS.md file + +2017-11-29 John Wiegley <johnw@newartisans.com> + + Merge pull request from basil-conto/version + + Require Emacs version >= 24.3 + GitHub-reference: https://github.com/jwiegley/use-package/issues/519 + +2017-11-29 Basil L. Contovounesios <contovob@tcd.ie> + + Require Emacs version >= 24.3 + + Re: https://github.com/jwiegley/use-package/issues/457 + +2017-11-29 John Wiegley <johnw@newartisans.com> + + Merge pull request from basil-conto/520 + + Require cl-lib and do not use seq functions + GitHub-reference: https://github.com/jwiegley/use-package/issues/521 + +2017-11-29 John Wiegley <johnw@newartisans.com> + + Merge branch 'master' into 520 + + Add a missing (require 'seq) + +2017-11-29 Basil L. Contovounesios <contovob@tcd.ie> + + Require cl-lib and do not use seq functions + + cl-lib is also required for a separate call to cl-mapcan. + + Fixes https://github.com/jwiegley/use-package/issues/520 + +2017-11-29 John Wiegley <johnw@newartisans.com> + + When use-package-inject-hooks is non-nil, always fire init/config hooks + + This used to not happen if `:init` or `:config` was missing, or set to nil as + with `:init nil`. + + Fixes https://github.com/jwiegley/use-package/issues/250 + +2017-11-28 John Wiegley <johnw@newartisans.com> + + Print map keys in describe-personal-keybindings + + Fixes https://github.com/jwiegley/use-package/issues/406 + +2017-11-28 John Wiegley <johnw@newartisans.com> + + Repeating a bind no longer causes duplicates in personal-keybindings + + Fixes https://github.com/jwiegley/use-package/issues/446 + +2017-11-28 John Wiegley <johnw@newartisans.com> + + When byte-compiling, correctly output declare-function directives + + Fixes https://github.com/jwiegley/use-package/issues/474 + +2017-11-28 John Wiegley <johnw@newartisans.com> + + Make diminish a soft dependency, as delight already was + + Fixes https://github.com/jwiegley/use-package/issues/493 + +2017-11-28 John Wiegley <johnw@newartisans.com> + + Allow :diminish to take no argument, once again + + Fix for single :custom (foo bar) + +2017-11-28 John Wiegley <johnw@newartisans.com> + + Allow :custom (foo1 bar1) (foo2 bar2) etc + + Fixes https://github.com/jwiegley/use-package/issues/518 + +2017-11-28 John Wiegley <johnw@newartisans.com> + + Add support for `:hook` + + Fixes https://github.com/jwiegley/use-package/issues/444 + +2017-11-28 John Wiegley <johnw@newartisans.com> + + Append to *use-package* when debugging, don't clear it + + Fixes https://github.com/jwiegley/use-package/issues/476 + +2017-11-28 John Wiegley <johnw@newartisans.com> + + Make unrecognized keywords a warning + + This could actually be used to store your own metadata in use-package + declarations, to be (read) later by simply parsing init file contents. + + Fixes https://github.com/jwiegley/use-package/issues/483 + +2017-11-28 John Wiegley <johnw@newartisans.com> + + Upgrade license to GPL 3 + + Fixes https://github.com/jwiegley/use-package/issues/499 + +2017-11-28 John Wiegley <johnw@newartisans.com> + + Don't allow :commands, :bind, etc., to be given an empty list + + This makes the following an error: + + :commands + :commands nil + :commands () + + Fixes https://github.com/jwiegley/use-package/issues/512 + +2017-11-28 John Wiegley <johnw@newartisans.com> + + Explicit :defer t should override use-package-always-demand + + Fixes https://github.com/jwiegley/use-package/issues/514 + +2017-11-28 John Wiegley <johnw@newartisans.com> + + Merge pull request from drrlvn/patch-1 + + Remove duplicate documentation of :mode + GitHub-reference: https://github.com/jwiegley/use-package/issues/489 + +2017-11-28 John Wiegley <johnw@newartisans.com> + + Corrections to the normalization of :custom + +2017-11-28 John Wiegley <johnw@newartisans.com> + + Merge pull request from joewreschnig/implicit-diminish + + Allow `:diminish` with no arguments. + GitHub-reference: https://github.com/jwiegley/use-package/issues/472 + +2017-11-21 John Wiegley <johnw@newartisans.com> + + Merge pull request from waymondo/master + + Allow customized values to be nil + GitHub-reference: https://github.com/jwiegley/use-package/issues/515 + +2017-11-20 Justin Talbott <justin@waymondo.com> + + allow customized values to be nil + +2017-11-20 John Wiegley <johnw@newartisans.com> + + Merge pull request from canatella/add-customization-keywords + + Add customization keywords + GitHub-reference: https://github.com/jwiegley/use-package/issues/508 + +2017-11-10 Damien Merenne <dam@cosinux.org> + + Add support for face customization + + Allows customization of faces using customize-set-faces. This makes it + easier to manage customization in version control. Instead of having all the + faces written in a custom.el, the faces can be customized where the rest + of the package is configured. + +2017-11-10 Damien Merenne <dam@cosinux.org> + + Add support for variable customization + + Allows customization of variable using customize-set-variables. This makes it + easier to manage customization in version control. Instead of having all the + variables written in a custom.el, the variable can be customized where the rest + of the package is configured. + +2017-10-30 John Wiegley <johnw@newartisans.com> + + Merge pull request from carldotac/master + + Fix documentation typos + GitHub-reference: https://github.com/jwiegley/use-package/issues/513 + +2017-10-30 Carl Lieberman <dev@carl.ac> + + Fix typos in docstring + +2017-10-13 John Wiegley <johnw@newartisans.com> + + Merge pull request from emacsjanitors/demote-manually + + Don't use with-demoted-errors in use-package-ensure-elpa + GitHub-reference: https://github.com/jwiegley/use-package/issues/507 + +2017-10-13 Jonas Bernoulli <jonas@bernoul.li> + + Cosmetic changes to use-package-ensure-elpa + +2017-10-13 Jonas Bernoulli <jonas@bernoul.li> + + Don't use with-demoted-errors in use-package-ensure-elpa + + It expects a literal string as argument at macro-expansion + time, but we need to construct the message. + +2017-10-09 Andreas Politz <politza@hochschule-trier.de> + + Remove redundant checks for the empty overlay tree + + * src/alloc.c (mark_buffer): Remove b->overlays check. + * src/buffer.c (copy_overlays): Also. + * src/buffer.c (swap_buffer_overlays, overlays_in): Also. + (next_overlay_change, previous_overlay_change): Also. + (overlay_touches_p, Foverlay_lists): Also. + (evaporate_overlays): Also. + * src/xdisp.c (load_overlay_strings): Also. + +2017-10-07 Andreas Politz <politza@hochschule-trier.de> + + Make boolean struct member use one bit + + * src/itree.h (struct interval_tree): Add bit descriptor. + +2017-10-07 Andreas Politz <politza@hochschule-trier.de> + + Optimize struct layout for space + + * src/itree.h (struct interval_node): Move color member near the end. + +2017-10-07 Andreas Politz <politza@hochschule-trier.de> + + Make boolean struct member use one bit + + * src/itree.h (struct interval_node): Add bit descriptor. + +2017-10-07 Andreas Politz <politza@hochschule-trier.de> + + Expand overlay multibyte tests + + * test/src/buffer-tests.el (test-overlay-multibyte-transition-1): + Expand test. + (test-overlay-multibyte-transition-2): New test. + +2017-10-06 Andreas Politz <politza@hochschule-trier.de> + + Adapt overlays when multibyteness changes + + * src/buffer.c + (set_overlays_multibyte): New function. + (set-buffer-multibyte): Use function. + +2017-10-06 Andreas Politz <politza@hochschule-trier.de> + + Add a function collecting all interval nodes + + * src/itree.c (interval_tree_nodes): New function + +2017-10-05 Andreas Politz <politza@hochschule-trier.de> + + Fix assignment of offset to newly inserted nodes. + + * src/itree.c (interval_tree_insert): Fix offset. + +2017-10-05 Andreas Politz <politza@hochschule-trier.de> + + Add offsets when inspecting a node's children's values + + *src/itree.c (interval_tree_insert_gap): Add offset. + +2017-10-05 Andreas Politz <politza@hochschule-trier.de> + + Add test exposing overlay bug + + * test/src/buffer-tests.el (overlay-autogenerated-test-64): New test. + +2017-10-05 Andreas Politz <politza@hochschule-trier.de> + + Add test regarding overlay and buffer encoding + + * test/src/buffer-tests.el (test-overlay-multibyte-transition-1): + New test exposing a bug regarding overlays when changing the + multibyteness of a buffer. + +2017-10-04 Andreas Politz <politza@hochschule-trier.de> + + Provide a new tree data-structure for overlays. + + * src/itree.c + (interval_generator_narrow, interval_generator_next) + (interval_node_init, interval_node_begin) + (interval_node_end, interval_node_set_region) + (interval_tree_create, interval_tree_clear) + (interval_tree_init, interval_tree_destroy) + (interval_tree_size, interval_tree_insert) + (interval_tree_contains, interval_tree_remove) + (interval_tree_validate, interval_tree_iter_start) + (interval_tree_iter_finish, interval_tree_iter_next) + (interval_tree_iter_ensure_space, interval_tree_max_height) + (interval_tree_insert_gap, interval_tree_delete_gap) + (interval_generator_create, interval_generator_reset) + (interval_generator_ensure_space, interval_node_intersects) + (interval_generator_next, interval_generator_narrow) + (interval_generator_destroy, interval_stack_create) + (interval_stack_destroy, interval_stack_clear) + (interval_stack_ensure_space, interval_stack_push) + (interval_stack_push_flagged, interval_stack_pop) + (interval_tree_update_limit, interval_tree_inherit_offset) + (interval_tree_propagate_limit, interval_tree_rotate_left) + (interval_tree_rotate_right, interval_tree_insert_fix) + (interval_tree_remove_fix, interval_tree_transplant) + (interval_tree_subtree_min): New file and new functions. + + * src/itree.h: New file. + + * configure.ac: Create Makefile for manual overlay tests. + + * src/Makefile.in: Add itree.o target. + + * src/alloc.c (build_overlay, mark_overlay, mark_buffer) + (sweep_misc, sweep_buffers): Adapt to new tree data-structure. + + * src/buffer.c (overlays_in, overlays_at): Remove unused arguments + prev_ptr and change_req, adapt to new data-structure and reuse + code. + (copy_overlays, drop_overlays, delete_all_overlays) + (reset_buffer, kill-buffer, buffer-swap-text, next_overlay_change) + (previous_overlay_change, mouse_face_overlay_overlaps) + (disable_line_numbers_overlay_at_eob, overlay_touches_p) + (overlay_strings, adjust_overlays_for_insert) + (adjust_overlays_for_delete, overlayp, make-overlay, move-overlay) + (delete-overlay, overlay-start, overlay-end, overlay-buffer) + (overlay-properties, overlays-at, overlays-in) + (next-overlay-change, previous-overlay-change, overlay-put) + (overlay-get, report_overlay_modification, evaporate_overlays) + (init_buffer_once): Adapt to changes and tree data-structure. + (overlay-lists, overlay-recenter): Functions are now obsolete, but + kept anyway. + (set_buffer_overlays_before, set_buffer_overlays_after) + (recenter_overlay_lists,fix_start_end_in_overlays,fix_overlays_before) + (unchain_overlay,): Removed functions of the old list + data-structure. + (swap_buffer_overlays, make_sortvec_item): New functions. + (sort_overlays): Adapt to changes and tree data-structure. + (sortvec): Moved to buffer.h . + (make_lispy_interval_node, overlay_tree, overlay-tree) + [ITREE_DEBUG]: New debugging functions. + + * src/buffer.h (overlays_before, overlays_after): Removed struct + member of the list data-structure. + (overlays): Added tree struct member. + (sortvec): Moved here from buffer.c . + (GET_OVERLAYS_AT): Adapt to changes. + (set_buffer_intervals, OVERLAY_START, OVERLAY_END, OVERLAY_PLIST): + Adapt to tree data-structure. + (OVERLAY_POSITION): Removed macro of the list data-structure. + (OVERLAY_REAR_ADVANCE_P, OVERLAY_FRONT_ADVANCE_P): New macros. + (overlay_start, overlay_end) + (set_overlay_region, maybe_alloc_buffer_overlays) + (free_buffer_overlays, add_buffer_overlay) + (remove_buffer_overlay, buffer_overlay_iter_start) + (buffer_overlay_iter_next, buffer_overlay_iter_finish) + (buffer_overlay_iter_narrow): New functions. + (compare_overlays, make_sortvec_item): Export functions. + + * src/editfns.c (overlays_around): Reuse overlays_in. + (get-pos-property): Adapt to tree data-structure. + (transpose-regions): Remove call to deleted function. + + * src/fileio.c: (insert-file-contents): Remove + references to deleted struct member. + + * src/fns.c (internal_equal): Adapt to tree data-structure. + + * src/indent.c (check_display_width): Adapt to tree + data-structure. + (skip_invisible): Remove call to deleted function. + + * src/insdel.c (adjust_markers_for_insert): Remove calls to + deleted functions. + + * src/intervals.c (adjust_for_invis_intang): Adapt to tree + data-structure. + + * src/keyboard.c (adjust_point_for_property): Adapt to tree + data-structure. + + * src/lisp.h (Lisp_Overlay): Modified struct layout. + + * src/print.c (temp_output_buffer_setup, print_object): Adapt to + tree data-structure. + + * src/textprop.c (get_char_property_and_overlay): Adapt to tree + data-structure. Take advantage of the new data-structure. + + * src/window.h (overlay_matches_window): New function. + + * src/xdisp.c (next_overlay_change): Removed function. Use + next-overlay-change, which does not use xmalloc anymore. + (handle_single_display_spec, load_overlay_strings) + (back_to_previous_visible_line_start, note_mouse_highlight): Adapt + to tree data-structure. + (move_it_to, display_line): Remove calls to deleted functions. + + * src/xfaces.c (face_at_buffer_position): Adapt to changes and + tree data-structure. + + * test/src/buffer-tests.el: Many tests regarding overlays added. + + * test/manual/noverlay/itree-tests.c: New file with tests of the + tree data-structure on the C level. + * test/manual/noverlay/Makefile.in: New file. + * test/manual/noverlay/check-sanitize.sh: New file. + * test/manual/noverlay/emacs-compat.h: New file. + * test/manual/noverlay/.gitignore: New file. + + * test/manual/noverlay/overlay-perf.el: New file providing + performance tests. + * test/manual/noverlay/many-errors.h: New file. + +2017-08-16 João Távora <joaotavora@gmail.com> + + Overhaul async mechanism safety + +2017-08-16 João Távora <joaotavora@gmail.com> + + Simplify `eglot--protocol-initialize` + + * eglot.el (eglot--protocol-initialize): Simplify + +2017-08-16 João Távora <joaotavora@gmail.com> + + Experimental diagnostic overlays + + Minor cleanup + + Cancel timeouts when process dies unexpectedly + + Organize a bit + + Improve `eglot--current-process' + + Handle notifications + + Introduce and use `eglot--current-process-or-lose' + + Add a mode-line construct and some minor fanciness + + Rename eglot--continuations eglot--pending-continuations + + Remove a couple of comments + +2017-08-15 João Távora <joaotavora@gmail.com> + + Initial commit + +2017-08-13 John Wiegley <johnw@newartisans.com> + + Merge pull request from raxod502/feat/fix-install-deferred + + Fix bug in use-package-install-deferred-package + GitHub-reference: https://github.com/jwiegley/use-package/issues/479 + +2017-07-30 Dror Levin <spatz@psybear.com> + + Remove duplicate documentation of :mode + +2017-07-10 John Wiegley <johnw@newartisans.com> + + Merge pull request from joewreschnig/481-delight-docs + + Document :delight in the doc string and README. + GitHub-reference: https://github.com/jwiegley/use-package/issues/484 + +2017-07-10 Joe Wreschnig <joe.wreschnig@gmail.com> + + Document :delight in the doc string and README + +2017-07-08 Joe Wreschnig <joe.wreschnig@gmail.com> + + Allow `:diminish` with no arguments + + When given no arguments, have :diminish assume it should diminish a + mode named after the current package (the package’s name, with “-mode” + appended, if it’s not already) to an empty string. + + When given only a string to diminish an implicit package name to, do + not append “-mode” to the package name if it already ends with + it. (This is a backwards-incompatible change if someone was + diminishing a package named “foo-mode” implementing `foo-mode-mode`.) + + Add test cases for `use-package-normalize-diminish`. + + This addresses some of the redundancy mentioned in issue https://github.com/jwiegley/use-package/issues/288. + +2017-07-02 John Wiegley <johnw@newartisans.com> + + Merge pull request from joewreschnig/477-delight-wrappers + + Allow multiple :delight arguments, or omitting the mode. (https://github.com/jwiegley/use-package/issues/477) + GitHub-reference: https://github.com/jwiegley/use-package/issues/480 + +2017-07-02 Joe Wreschnig <joe.wreschnig@gmail.com> + + Allow :major as the third argument in :delight calls + +2017-07-02 Joe Wreschnig <joe.wreschnig@gmail.com> + + Allow multiple :delight arguments, or omitting the mode. () + + This allows using forms such as + + (use-package foo :delight) + ;; => (delight 'foo-mode) + (use-package foo :delight " f") + ;; => (delight 'foo-mode " f") + (use-package foo :delight (a-mode) (b-mode " b") + ;; => (delight 'a-mode) (delight 'b-mode " b") + + This brings support for `:delight` in line with `:diminish`. + GitHub-reference: https://github.com/jwiegley/use-package/issues/477 + +2017-06-30 Radon Rosborough <radon.neon@gmail.com> + + Fix bug in use-package-install-deferred-package + + Previously, deferred installation didn't work because I didn't convert + the result of a `completing-read' back from a string to a symbol, + which meant the hash-table lookup failed. + +2017-06-16 John Wiegley <johnw@newartisans.com> + + Merge pull request from joewreschnig/magic-469 + + Add `:magic` and `:magic-fallback` keywords (issue https://github.com/jwiegley/use-package/issues/469). + GitHub-reference: https://github.com/jwiegley/use-package/issues/473 + +2017-06-15 Joe Wreschnig <joe.wreschnig@gmail.com> + + Add `:magic` and `:magic-fallback` keywords (issue) + + These keywords work equivalently to `:mode` or `:interpreter`, but for + `magic-mode-alist` and `magic-fallback-mode-alist`. + + The handler function implementation is now passed a list to add to, + and shared by all four of them. + GitHub-reference: https://github.com/jwiegley/use-package/issues/469 + +2017-05-22 David Leatherman <git@david.leatherman.fm> (tiny change) + + Protect against errors during package install + + If the network is missing and there is a new use-package with :ensure, + startup would fail part of the way through due package.el being unable + to reach the package repo. This will catch that error and report it + while allowing startup to continue. + +2017-05-09 John Wiegley <johnw@newartisans.com> + + Merge pull request from raxod502/feat/failed-autoload-msg + + Fix quoting error in failed autoload message + GitHub-reference: https://github.com/jwiegley/use-package/issues/456 + +2017-05-07 Radon Rosborough <radon.neon@gmail.com> + + Fix quoting error in failed autoload message + +2017-04-05 John Wiegley <johnw@newartisans.com> + + Merge pull request from raxod502/normalize-nil + + Make use-package-normalize-value handle nil better + GitHub-reference: https://github.com/jwiegley/use-package/issues/449 + +2017-04-05 Radon Rosborough <radon.neon@gmail.com> + + Make use-package-normalize-value handle nil better + + The previous version of `use-package-normalize-value', when passed + nil, would return the list (symbol-value (quote nil)). This meant that + keywords which used `use-package-normalize-value' or the higher-level + normalizer `use-package-normalize-test' would get a non-nil + argument (i.e. the above list) even when the user specified nil to the + package. + + This had the concrete impact of making it so that :defer-install nil + was treated as :defer-install t. + +2017-04-03 John Wiegley <johnw@newartisans.com> + + Merge pull request from raxod502/fix-bind-key-filter + + Don't mutilate keyword arguments in :bind + GitHub-reference: https://github.com/jwiegley/use-package/issues/447 + +2017-04-03 Radon Rosborough <radon.neon@gmail.com> + + Add comment explaining keyword-argument patch + +2017-04-03 Radon Rosborough <radon.neon@gmail.com> + + Don't mutilate keyword arguments in :bind + + The parsing logic in `use-package-normalize-pairs' is not designed to + deal with keyword arguments. However, `use-package-normalize-pairs' is + used to process the arguments to :bind, which can include keyword + arguments. These keyword arguments are supposed to be passed untouched + to the underlying `bind-keys' function, but there is a clause in + `use-package-normalize-pairs' that replaces lists with their first + element. Thus an invocation like: + + (use-package company + :bind (:map company-active-map + :filter (company-explicit-action-p) + ("RET" . company-complete-selection))) + + Generates code like this: + + (bind-keys + :map company-active-map + :filter company-explicit-action-p + ("RET" . company-complete-selection)) + + Which generates an error since `company-explicit-action-p' is now + being referenced as a variable rather than a function. + + The proper solution is to refactor the logic that goes into parsing + uses of :bind, but this commit adds a temporary patch to eliminate the + above problem, while trying to be as reverse-compatible as possible. + In particular it just inhibits the list-to-first-element + transformation when the previous element processed was a keyword. + +2017-03-27 John Wiegley <johnw@newartisans.com> + + Merge pull request from raxod502/fix-after + + Fix :after keyword + GitHub-reference: https://github.com/jwiegley/use-package/issues/439 + +2017-03-27 John Wiegley <johnw@newartisans.com> + + Merge pull request from raxod502/always-defer-install + + Add use-package-always-defer-install + GitHub-reference: https://github.com/jwiegley/use-package/issues/443 + +2017-03-26 Radon Rosborough <radon.neon@gmail.com> + + Add use-package-always-defer-install + + See https://github.com/jwiegley/use-package/pull/433#issuecomment-289317875 + +2017-03-19 Radon Rosborough <radon.neon@gmail.com> + + Fix :after keyword + + Commit [1] broke the functionality of :after (see [2]) due to an + extraneous quote being added. + + [1]: bd2afa53c7580d23ed8008267b80e1834b6e6600 + [2]: https://github.com/jwiegley/use-package/pull/433#issuecomment-287606553 + +2017-03-19 John Wiegley <johnw@newartisans.com> + + Merge pull request from raxod502/defer-install + + [RFC] Support for deferred installation + GitHub-reference: https://github.com/jwiegley/use-package/issues/433 + +2017-03-18 Radon Rosborough <radon.neon@gmail.com> + + Merge remote-tracking branch 'origin/master' into defer-install + + Resolve merge conflicts. + +2017-03-18 Radon Rosborough <radon.neon@gmail.com> + + Update docstring, installation prompt message + + Various improvements for deferred installation + +2017-03-08 Radon Rosborough <radon.neon@gmail.com> + + Get :defer-install completely working, in theory + + A quoting error has been fixed in `use-package-handler/:defer'. + `use-package-install-deferred-package' has been updated to return t + if the package was actually installed, and nil otherwise. + The fake autoloads generated during deferred installation are + doctored so Emacs does not think they were defined in the user's + init-file. + The docstrings of the fake autoloads have been improved. + Arguments and interactivity are now correctly passed to the + autoloaded function. + The autoload now skips requiring the feature and calling the + original function if the user declines to install the package. This + prevents unprofessional errors. + +2017-03-08 Radon Rosborough <radon.neon@gmail.com> + + Improve deferred installation mechanism + + This time around, I've gotten rid of the advice on `require' (that was + never going to work) and instead made `use-package' try to handle + loading the package at the appropriate time. In particular, when + deferred installation is active, all the autoloads generated by + `use-package' are not regular autoloads, but regular functions that + will install the relevant package, require the relevant feature, and + only then call the newly defined (autoloaded) function. + + Some smarter logic has been added to make sure things like `:demand' + play nicely with the autoloading system; see the extensive comment in + `use-package-handler/:defer-install' for more information on how that + works. + + There was a section in `use-package-install-deferred-package' which + referred to a nonexistent variable `use-package--deferred-features'; + that has been removed. + + There is now, in addition to `use-package-ensure-function', a new + variable called `use-package-pre-ensure-function'. This is intended + for use by package managers which, unlike package.el, activate + autoloads package-by-package instead of all at once. Even if a package + is marked for deferred installation, the user would likely want its + autoloads activated immediately *if* it was already installed. The + logic for doing that can now be put in + `use-package-pre-ensure-function'. + +2017-03-08 Radon Rosborough <radon.neon@gmail.com> + + Merge branch 'generalized-ensure' into defer-install + +2017-03-08 Radon Rosborough <radon.neon@gmail.com> + + Update docstring for use-package-ensure-function + + Now it properly reflects the API changes recently made. + +2017-03-08 Radon Rosborough <radon.neon@gmail.com> + + First cut at :defer-install keyword + + This new keyword, if provided along with a non-nil value, causes the + action of :ensure to be deferred until "necessary". Package + installation can be triggered by the user calling the new interactive + function `use-package-install-deferred-package', or by the feature + declared by the `use-package' form being required. This latter + behavior seems to be the simplest way to make sure that package + installation actually takes place when it needs to, but it requires + that an advice be added to `require', which may be considered overly + intrusive. (Also, it's generally considered bad practice for functions + in Emacs to put advice on other functions in Emacs.) Thus it may make + sense to add an option or function to explicitly enable this behavior, + if there does not turn out to be a better way to accomplish deferred + installation. + + Documentation has not been updated to reflect :defer-install yet. + +2017-03-08 Radon Rosborough <radon.neon@gmail.com> + + Extend capabilities of use-package-ensure-function + + Modify the expected API of `use-package-ensure-function' so that it is + passed three arguments: the name of the package declared in the + `use-package' form; the argument passed to `:ensure'; and the current + `state' plist created by previous handlers. (Previously, it was only + given a single argument, which was the argument passed to `:ensure', + or the name of the package declared in the `use-package' form, if the + former was `t'. + + This allows for more flexibility in the capabilities of the + `use-package-ensure-function' implementation. For example, its + behavior can change depending on the values of other keywords, if + those keywords modify the `state' plist appropriately. + +2017-02-18 John Wiegley <johnw@newartisans.com> + + Revert "Return `t' after calling `eval-after-load'" + + This reverts commit 87a8ff6d693f3cc79ea423ca8c8e0a60b0bc596c. + +2017-02-16 John Wiegley <johnw@newartisans.com> + + Support multiple symbols passed to :after + + The following expressions are now permitted: + + foo ; load after foo is loaded + foo bar ; load after both foo and bar are loaded + :all foo bar ; same as previous + :any foo bar ; load after either foo or bar is loaded + :any (:all foo bar) baz ; more complex combinations... + :any (:all foo bar) (:all baz wow) + :all (:any foo bar) (:any baz wow) + + Fixes https://github.com/jwiegley/use-package/issues/283 + +2017-02-16 John Wiegley <johnw@newartisans.com> + + :mode and :interpreter can now accept (rx ...) forms + + Fixes https://github.com/jwiegley/use-package/issues/204 + +2017-02-16 John Wiegley <johnw@newartisans.com> + + Return `t' after calling `eval-after-load' + + Fixes https://github.com/jwiegley/use-package/issues/174 + +2017-02-16 John Wiegley <johnw@newartisans.com> + + Add autoload cookie for use-package-autoload-keymap + + Fixes https://github.com/jwiegley/use-package/issues/337 + +2017-02-13 John Wiegley <johnw@newartisans.com> + + Merge pull request from justbur/find-form + + Add function use-package-jump-to-package-form + GitHub-reference: https://github.com/jwiegley/use-package/issues/359 + +2017-02-13 John Wiegley <johnw@newartisans.com> + + Merge pull request from justbur/imenu3 + + Improve imenu support + GitHub-reference: https://github.com/jwiegley/use-package/issues/356 + +2017-02-13 John Wiegley <johnw@newartisans.com> + + Merge pull request from raxod502/fix-use-package-defaults + + Fix use-package-defaults + GitHub-reference: https://github.com/jwiegley/use-package/issues/430 + +2017-02-13 Radon Rosborough <radon.neon@gmail.com> + + Fix use-package-defaults + + This patch should address issues https://github.com/jwiegley/use-package/issues/428 and https://github.com/jwiegley/use-package/issues/429. See https://github.com/jwiegley/use-package/issues/426 for + discussion. In brief, the issue was that use-package-sort-keywords was + not applied when the predicates in use-package-defaults did not return + true, when it should have been applied unconditionally. + +2017-02-13 Radon Rosborough <radon.neon@gmail.com> + + Unrevert "Add use-package-defaults" + + This reverts commit 013425edeb1829f5d21514f77d41763347538b14. + +2017-02-13 John Wiegley <johnw@newartisans.com> + + Revert "Add use-package-defaults" + + This reverts commit 3dec23c0860ad297436b9b71b221491ae3790cce. + +2017-02-12 John Wiegley <johnw@newartisans.com> + + Merge pull request from raxod502/use-package-defaults + + Add use-package-defaults + GitHub-reference: https://github.com/jwiegley/use-package/issues/426 + +2017-01-16 Radon Rosborough <radon.neon@gmail.com> + + Add use-package-defaults + + Previously, the :config, :ensure, and :pin keywords had default + values (dependent on the values of the use-package-always-ensure and + use-package-always-pin). This change allows the user to customize the + default values used for those keywords, and add default values for + their own keywords in a non-hacky way. + + This functionality would be useful for (as an example) the + quelpa-use-package package, which needs to use an advice to override + the functionality of :ensure. The same problem prevents adding a + use-package-always-quelpa variable in any reasonable way, without a + way to customize the default values of keywords. + +2017-01-16 John Wiegley <johnw@newartisans.com> + + Merge pull request from raxod502/use-package-ensure-function + + Add use-package-ensure-function + GitHub-reference: https://github.com/jwiegley/use-package/issues/427 + +2017-01-15 Radon Rosborough <radon.neon@gmail.com> + + Add use-package-ensure-function + + This allows the user to customize the :ensure keyword by using a + different package manager than package.el. + +2016-12-22 John Wiegley <johnw@newartisans.com> + + Add new customization option `use-package-always-demand` + + This is equivalent to adding `:demand t` to all `use-package` declarations, + and has the same semantics as doing so (meaning it can be overridden locally + using `:defer t` in a declaration). + + Fixes https://github.com/jwiegley/use-package/issues/423 + +2016-12-18 John Wiegley <johnw@newartisans.com> + + Merge pull request from basil-conto/preface + + Increase :preface priority + GitHub-reference: https://github.com/jwiegley/use-package/issues/418 + +2016-12-18 John Wiegley <johnw@newartisans.com> + + Merge pull request from tarsius/outline + + Support outline-minor-mode + GitHub-reference: https://github.com/jwiegley/use-package/issues/420 + +2016-12-18 John Wiegley <johnw@newartisans.com> + + Merge pull request from tarsius/bind-later + + Delay decision whether to use eval-after-load until run-time + GitHub-reference: https://github.com/jwiegley/use-package/issues/419 + +2016-12-18 Jonas Bernoulli <jonas@bernoul.li> + + Delay decision whether to use eval-after-load until run-time + + Just because a keymap variable is bound at macro-expansion-time + doesn't mean that it must be bound at run-time too. + + Change `bind-keys-form', which is used by `bind-keys' and other + macros, to return a form which delays the decision on whether to + wrap the binding forms with `eval-after-load' until run-time. + + Fixes https://github.com/jwiegley/use-package/issues/378. + +2016-12-17 Jonas Bernoulli <jonas@bernoul.li> + + Support outline-minor-mode + + In "use-package.el" prefix headings with ";;;" instead of just + ";;". In "bind-key.el" add the missing ";;; Code:" heading. + In both libraries set `outline-regexp' to an appropriate value. + +2016-12-16 Basil L. Contovounesios <contovob@tcd.ie> + + Increase :preface priority + + Reconcile order of `use-package-keywords' with the README + description of `:preface' as occurring before everything but + `:disabled'. + +2016-10-31 John Wiegley <johnw@newartisans.com> + + Merge pull request from phst/bug398 + + Declare package-read-all-archive-contents + GitHub-reference: https://github.com/jwiegley/use-package/issues/402 + +2016-10-31 Philipp Stephani <phst@google.com> + + Declare package-read-all-archive-contents + + Fixes https://github.com/jwiegley/use-package/issues/398 + +2016-10-31 Philipp Stephani <phst@google.com> + + Remove tests, which don’t work + + Fixes https://github.com/jwiegley/use-package/issues/399 + +2016-10-31 Noam Postavsky <npostavs@gmail.com> + + Don't allow implicit package name arg for binders + + It's unlikely that + + (use-package foopkg :bind "<some-key>") + + intendes to bind <some-key> to 'foopkg command. + +2016-10-31 Noam Postavsky <npostavs@gmail.com> + + Don't allow nil as a mode function + + This means (use-package foopkg :mode (".foo")) will add (".foo" + . foopkg) into auto-mode-alist instead of the broken (".foo" . nil), + this is more consistent with the behavior of (use-package foopkg + :mode (".foo" ".bar")). + +2016-10-31 Noam Postavsky <npostavs@gmail.com> + + Refactor pair normalizers; add tests for them + + This is not a pure refactoring, it also fixes a bug where + :bind ([keysym] . "string") would actually bind keysym to nil (i.e., + unbind it). It now binds to "string" as expected. + +2016-10-31 Noam Postavsky <npostavs@gmail.com> + + Remove obsolete mplist tests + + The mplist functions were removed in the 2.0 + refactoring (4ae584f3ff0e9bda05420ec3b8598e59374b0899). + +2016-10-17 John Wiegley <johnw@newartisans.com> + + Bump version to 2.3 + +2016-08-15 John Wiegley <johnw@newartisans.com> + + Merge pull request from appleby/master + + Ensure package-pinned-packages is bound before referencing it. + GitHub-reference: https://github.com/jwiegley/use-package/issues/376 + +2016-08-15 Mike Appleby <mike@app.leby.org> (tiny change) + + Ensure package-pinned-packages is bound before referencing it + + Add a bound-and-true-p guard to package-pinned-packages before + referencing it in use-package-ensure-elpa. + + Package pinning was introduced in Emacs 24.4, and hence + package-pinned-packages in unbound by default in earlier versions. + + Relevant commits: + 72452b5 Merge pull request https://github.com/jwiegley/use-package/issues/367 from ketbra/master + 5053f75 Make pin and ensure compatible + + Fixes https://github.com/jwiegley/use-package/issues/375 + +2016-07-22 John Wiegley <johnw@newartisans.com> + + Remove the use of a tab + +2016-07-22 John Wiegley <johnw@newartisans.com> + + Merge pull request from ketbra/master + + Update use-package.el + GitHub-reference: https://github.com/jwiegley/use-package/issues/367 + +2016-07-21 Matthew Feinberg <ketbra@users.noreply.github.com> (tiny change) + + Make pin and ensure compatible + + `:pin` does not work with `:ensure`, because it doesn't add the package to package-pinned-packages until after reading the package archive contents. This change causes the package archive contents to be reread if the package is pinned and `:ensure` is being used. + +2016-07-18 John Wiegley <johnw@newartisans.com> + + Merge pull request from npostavs/state-noconst + + Some minor fixes + GitHub-reference: https://github.com/jwiegley/use-package/issues/342 + +2016-07-17 Noam Postavsky <npostavs@gmail.com> + + Fix declare-function call: FILE must be a string + + use-package-as-string: use noerror parameter + +2016-07-17 Noam Postavsky <npostavs@gmail.com> + + Don't pass a constant as the state + + for use-package-process-keywords, because the function may modify the + list object. Modifying a quoted constant can lead to unexpected side + effects (e.g. values from previous use-package forms end up in + subsequent ones). + +2016-07-06 John Wiegley <johnw@newartisans.com> + + Version 2.2 + +2016-07-05 John Wiegley <johnw@newartisans.com> + + Merge pull request from justbur/bump-init + + Move :init forms before :after and :demand + GitHub-reference: https://github.com/jwiegley/use-package/issues/360 + +2016-06-23 Justin Burkett <justin@burkett.cc> + + Move :init forms before :after and :demand + + The docstring of use-package says that :init should run before the + package is loaded but using :after moves the require statement ahead of + :init when any package specified in :after is already loaded. In the + following example, in the first case bar-x might get set before or after + bar is loaded depending on if foo is already loaded at the time, while + the second case always sets bar-x first. + + (use-package bar + :after (foo) + :init (setq bar-x 2) + :config (bar-mode)) + + (use-package bar + :init (setq bar-x 2) + :config (bar-mode)) + + This commit fixes the issue and makes sure that bar-x is set before bar + is loaded by use-package. Fixes https://github.com/jwiegley/use-package/issues/352. + +2016-06-22 Justin Burkett <justin@burkett.cc> + + Add function use-package-jump-to-package-form + + This is an attempt at resolving https://github.com/jwiegley/use-package/issues/329. The new interactive function + use-package-jump-to-package-form will prompt with a completing read of + all known packages. After selecting a package, use-package-find-require + searches load-history to see where the package was required and then I + attempt to find the correct use-package form using + use-package-form-regexp. + + It will fail if the use-package form you are looking for did not + actually load the package. For example it could be something that is a + dependency of a library that was already loaded. In some sense this is a + feature because it is helpful to know that the library was already + loaded when your use-package form was encountered. It will also fail if + your use-package declaration doesn't match the regexp used, but this is + easily adjusted. + +2016-06-15 Justin Burkett <justin@burkett.cc> + + Improve imenu support + + Instead of using defvar for lisp-mode-symbol-regexp, wait until + lisp-mode is loaded and check for its existence to avoid making + use-package the place where this variable is declared. + +2016-06-14 John Wiegley <johnw@newartisans.com> + + Merge pull request from justbur/imenu2 + + Fix imenu support for older versions + GitHub-reference: https://github.com/jwiegley/use-package/issues/355 + +2016-06-13 Justin Burkett <justin@burkett.cc> + + Fix imenu support for older versions + + lisp-mode-symbol-regexp was not defined in Emacs 24.5. + +2016-06-13 John Wiegley <johnw@newartisans.com> + + Merge pull request from justbur/imenu + + Add imenu support for use-package forms + GitHub-reference: https://github.com/jwiegley/use-package/issues/354 + +2016-06-13 John Wiegley <johnw@newartisans.com> + + Merge pull request from robario/patch-1 + + Fix to ignore load error caused via :after + GitHub-reference: https://github.com/jwiegley/use-package/issues/350 + +2016-06-13 Justin Burkett <justin@burkett.cc> + + Add imenu support for use-package forms + + Also add require forms and group both under menu "Package". + +2016-06-05 robario <webmaster@robario.com> (tiny change) + + Fix to ignore load error caused via :after + +2016-04-03 John Wiegley <johnw@newartisans.com> + + Merge pull request from xuchunyang/fix-package-install + + Mark package as selected with package-install + GitHub-reference: https://github.com/jwiegley/use-package/issues/336 + +2016-03-31 Chunyang Xu <xuchunyang56@gmail.com> + + Mark package as selected with package-install + + Fixes https://github.com/jwiegley/use-package/issues/327 + +2016-02-27 John Wiegley <johnw@newartisans.com> + + :map no longer accepts lists; only eval-after-load if necessary + + Fixes https://github.com/jwiegley/use-package/issues/324 + +2016-02-26 John Wiegley <johnw@newartisans.com> + + Normalize some error text + +2016-02-26 John Wiegley <johnw@newartisans.com> + + Only printing debug messages if use-package-verbose is `debug' + + Fixes https://github.com/jwiegley/use-package/issues/271 + +2016-02-26 John Wiegley <johnw@newartisans.com> + + Merge pull request from ljos/master + + Quote variable in bind-keys* + GitHub-reference: https://github.com/jwiegley/use-package/issues/325 + +2016-02-26 John Wiegley <johnw@newartisans.com> + + Repair :map handling in bind-key.el + + GitHub-reference: fixes https://github.com/jwiegley/use-package/issues/324 + +2016-02-26 Bjarte Johansen <bjarte.johansen@gmail.com> + + Quote variable in `bind-keys*' + + * bind-key.el (bind-keys*): `override-global-map' needs to be quoted so + the symbol is passed to `bind-keys-form' and not the value. + GitHub-reference: fixes https://github.com/jwiegley/use-package/issues/323 + +2016-02-25 John Wiegley <johnw@newartisans.com> + + Add configuration variable `use-package-check-before-init' + + Fixes https://github.com/jwiegley/use-package/issues/306 + +2016-02-25 John Wiegley <johnw@newartisans.com> + + Use `add-to-list' defensively instead of `push' + + GitHub-reference: fixes https://github.com/jwiegley/use-package/issues/293 + +2016-02-25 John Wiegley <johnw@newartisans.com> + + Add variable `use-package-always-defer' + + GitHub-reference: fixes https://github.com/jwiegley/use-package/issues/202 + +2016-02-25 John Wiegley <johnw@newartisans.com> + + Restore :bind-keymap, it does something special still + + Remove :bind-keymaps, and only apply :map bindings after load + +2016-02-25 John Wiegley <johnw@newartisans.com> + + Support multiples uses of :map with :bind + + GitHub-reference: fixes https://github.com/jwiegley/use-package/issues/121 + +2016-02-25 John Wiegley <johnw@newartisans.com> + + Add some variable settings to use-package-tests.el, thanks tarsius + +2016-02-25 John Wiegley <johnw@newartisans.com> + + Merge pull request from alezost/keymap-doc-fix + + Handle the case when keymap has a broken documentation + GitHub-reference: https://github.com/jwiegley/use-package/issues/223 + +2016-02-25 John Wiegley <johnw@newartisans.com> + + Add another `declare' + +2016-02-25 John Wiegley <johnw@newartisans.com> + + Handle :unless correctly + + GitHub-reference: fixes https://github.com/jwiegley/use-package/issues/197 + +2016-02-09 John Wiegley <johnw@newartisans.com> + + Add a comment about a recent change + +2016-02-09 John Wiegley <johnw@newartisans.com> + + Merge pull request from waymondo/master + + Allow string values in cons for :bind keywords + GitHub-reference: https://github.com/jwiegley/use-package/issues/303 + +2016-02-06 John Wiegley <johnw@newartisans.com> + + Merge pull request from dudebout/patch-1 + + Upper casing Cs corresponding to Ctrl + GitHub-reference: https://github.com/jwiegley/use-package/issues/316 + +2016-02-06 John Wiegley <johnw@newartisans.com> + + Add an autoload cookie for `use-package' + +2016-02-05 Nicolas Dudebout <nicolas.dudebout@gmail.com> + + Upper casing Cs corresponding to Ctrl + + A number of Cs corresponding to Ctrl have been lower cased in comments in eb6b81dfe. + +2016-02-04 John Wiegley <johnw@newartisans.com> + + Merge pull request from thierryvolpiatto/fix_package_install + + When :ensure is used install package as a selected package. + GitHub-reference: https://github.com/jwiegley/use-package/issues/314 + +2016-02-04 Thierry Volpiatto <thierry.volpiatto@gmail.com> + + Ensure package-install support a second argument + + * use-package.el (use-package-ensure-elpa): Do it. + +2016-02-04 Thierry Volpiatto <thierry.volpiatto@gmail.com> + + When :ensure is used install package as a selected package + + Also shutup bytecompiler about package-archive-contents. + + * use-package.el (use-package-ensure-elpa): Add package to selected package + by using second arg of package install. + +2016-01-25 John Wiegley <johnw@newartisans.com> + + Merge pull request from kovrik/fix-pin-performance + + Do not package-initialize on each :pin + GitHub-reference: https://github.com/jwiegley/use-package/issues/308 + +2016-01-21 John Wiegley <johnw@newartisans.com> + + Merge pull request from phillord/fix/always-pin-typo + + Fix errant variable name. + GitHub-reference: https://github.com/jwiegley/use-package/issues/312 + +2016-01-21 Phillip Lord <phillip.lord@russet.org.uk> + + Fix errant variable name + +2016-01-20 John Wiegley <johnw@newartisans.com> + + Merge pull request from phillord/feature/always-pin + + Add new option `-always-pin' + GitHub-reference: https://github.com/jwiegley/use-package/issues/310 + +2016-01-20 Phillip Lord <phillip.lord@russet.org.uk> + + Add new option `-always-pin' + + `use-package-always-pin' allows a default archive (or manual) to be + specified for all use-package statements, unless explicitly overridden. + +2016-01-19 Ivan Goncharov <kovrik0@gmail.com> + + Change condition that checks if package has been initialized + +2016-01-17 Ivan Goncharov <kovrik0@gmail.com> + + Do not package-initialize on each :pin + +2016-01-12 John Wiegley <johnw@newartisans.com> + + Merge pull request from kovrik/issue-299 + + Move :pin out of macro expansion phase + GitHub-reference: https://github.com/jwiegley/use-package/issues/302 + +2016-01-12 John Wiegley <johnw@newartisans.com> + + Add a missing comma + + Add a PREDICATE option to bind-key, and :filter to `bind-keys' + +2016-01-08 Justin Talbott <justin@waymondo.com> + + allow string values in cons for :bind keywords + + It is possible with `bind-key` and `define-key` (and also `bind-chord` + and `key-chord-define`) to define a binding to a string's value, i.e: + + ``` elisp + (bind-key "C-;" "the ") + (bind-chord "^^" "λ") + ``` + + This adds an option for `(use-package-normalize-pairs)` that allows + string values to be given with the `:bind` (and also `:chord`) keywords + to expand into these definitions. + +2016-01-06 John Wiegley <johnw@newartisans.com> + + Guard against a case where :load-paths is nil + +2016-01-05 Ivan Goncharov <kovrik0@gmail.com> + + Move :pin out of macro expansion phase fixes + + Move :pin out of macro expansion phase + +2015-12-20 John Wiegley <johnw@newartisans.com> + + Use cl-mapcan rather than apply 'nconc; thanks wasamasa + +2015-11-12 John Wiegley <johnw@newartisans.com> + + Merge pull request from kovrik/byte-compile-ensure-fix + + Install packages when byte-compiling (fix by @npostavs) + GitHub-reference: https://github.com/jwiegley/use-package/issues/285 + +2015-11-12 Ivan Goncharov <kovrik0@gmail.com> + + Install packages when byte-compiling (fix by @npostavs) + +2015-11-09 John Wiegley <johnw@newartisans.com> + + Apply a fix from npostavs relating to + + GitHub-reference: https://github.com/jwiegley/use-package/issues/279 + +2015-11-09 John Wiegley <johnw@newartisans.com> + + Merge pull request from kovrik/master + + Move :ensure option execution from macro expansion phase to runtime phase + GitHub-reference: https://github.com/jwiegley/use-package/issues/273 + +2015-11-05 John Wiegley <johnw@newartisans.com> + + Merge pull request from phillord/feature/after + + Support for after keyword. + GitHub-reference: https://github.com/jwiegley/use-package/issues/276 + +2015-11-04 Phillip Lord <phillip.lord@russet.org.uk> + + Support for after keyword + + After provides `eval-after-load' functionality for any number of + features. This helps to avoid deeply nested `use-package' statements. + + Closes https://github.com/jwiegley/use-package/issues/274 + +2015-11-02 Ivan Goncharov <kovrik0@gmail.com> + + Move :ensure option from macro expansion phase to runtime phase + +2015-09-26 John Wiegley <johnw@newartisans.com> + + Bump version to 2.1 + +2015-09-23 John Wiegley <johnw@newartisans.com> + + Merge pull request from waymondo/extend-bind-handler + + Pass in symbol of bind macro, for more extensible reuse of same handler + GitHub-reference: https://github.com/jwiegley/use-package/issues/259 + +2015-09-23 Justin Talbott <justin@waymondo.com> + + pass in symbol of bind macro, for more extensible reuse of same handler + + related to https://github.com/jwiegley/use-package/issues/258 + +2015-09-06 John Wiegley <johnw@newartisans.com> + + Revert "Merge pull request from edvorg/master" + + This reverts commit 38b213c6c382f87b7f6e60d0c97d37f2951c2482, reversing + changes made to 7d34df4f5dd26b6d8b0899e6508c9af5dedf2dc4. + GitHub-reference: https://github.com/jwiegley/use-package/issues/247 + +2015-08-30 Edward Knyshov <edvorg@gmail.com> + + error handling for use-package + + GitHub-reference: https://github.com/jwiegley/use-package/issues/246 + +2015-08-18 John Wiegley <johnw@newartisans.com> + + Merge pull request from matklad/master + + fix quotation error + GitHub-reference: https://github.com/jwiegley/use-package/issues/245 + +2015-08-17 Aleksey Kladov <aleksey.kladov@gmail.com> + + fix quotation error + +2015-08-14 John Wiegley <johnw@newartisans.com> + + Merge pull request from npostavs/string-packages + + Re-add support for string package names + GitHub-reference: https://github.com/jwiegley/use-package/issues/225 + +2015-08-14 Noam Postavsky <npostavs@gmail.com> + + Re-add support for string package names + + e.g. (use-package "isearch") rather than (use-package isearch) + +2015-08-01 John Wiegley <johnw@newartisans.com> + + Merge pull request from nickalcock/master + + Support :bind (:map '(...)). + GitHub-reference: https://github.com/jwiegley/use-package/issues/235 + +2015-07-31 Nick Alcock <nick.alcock@oracle.com> + + Support :bind (:map '(...)) + + We transform it into (:map foo (...) (...)) in the normalizer, and + no longer warn about unknown sorts of arg. + +2015-06-22 John Wiegley <johnw@newartisans.com> + + Merge pull request from thomasf/master + + Refresh package.el archives if package is missing. + GitHub-reference: https://github.com/jwiegley/use-package/issues/210 + +2015-06-22 Alex Kost <alezost@gmail.com> + + Handle the case when keymap has a broken documentation + +2015-06-11 John Wiegley <johnw@newartisans.com> + + Merge pull request from killdash9/keymap + + bind-keymap fixes. + GitHub-reference: https://github.com/jwiegley/use-package/issues/199 + +2015-06-10 John Wiegley <johnw@newartisans.com> + + Merge pull request from syl20bnr/fix_hook_injection + + Fix calls to run-hooks for :init and :config injected hooks + GitHub-reference: https://github.com/jwiegley/use-package/issues/213 + +2015-05-19 Sylvain Benner <sylvain.benner@gmail.com> + + Fix calls to run-hooks for :init and :config injected hooks + +2015-05-08 Thomas Frössman <thomasf@jossystem.se> + + Refresh package.el archives if package is missing + +2015-04-11 Russell Black <black.russell@gmail.com> + + bind-keymap fixes + + Override argument no longer ignored. Not adding keymap to list of + commands. `eval' no longer appears to be necessary, using direct + invocation of bind-key*. + +2015-03-25 John Wiegley <johnw@newartisans.com> + + Keymap bindings must be interactive + +2015-03-24 John Wiegley <johnw@newartisans.com> + + Failed to require a package is just a message + + Minor fix to :diminish + +2015-03-23 John Wiegley <johnw@newartisans.com> + + Fix a bug in the :delight support + +2015-03-22 John Wiegley <johnw@newartisans.com> + + Add :delight support, thanks to darkfeline on GitHub + + Fixes https://github.com/jwiegley/use-package/issues/189 + +2015-03-21 John Wiegley <johnw@newartisans.com> + + Add new customization use-package-always-ensure + + Fixes https://github.com/jwiegley/use-package/issues/27 + +2015-03-21 John Wiegley <johnw@newartisans.com> + + unbind-key now removes key from personal-keybindings + + Fixes https://github.com/jwiegley/use-package/issues/74 + +2015-03-21 John Wiegley <johnw@newartisans.com> + + Fix file headers + +2015-03-21 John Wiegley <johnw@newartisans.com> + + Add autoload stanzas to bind-key + + Fixes https://github.com/jwiegley/use-package/issues/33 + +2015-03-21 John Wiegley <johnw@newartisans.com> + + Correction to an eval-after-load expansion + +2015-03-21 John Wiegley <johnw@newartisans.com> + + Change use-package to use bind-keys and bind-keys* + + Fixes https://github.com/jwiegley/use-package/issues/129 + +2015-03-21 John Wiegley <johnw@newartisans.com> + + Change bind-key* behavior to mimic bind-keys* + + Fixes https://github.com/jwiegley/use-package/issues/148 + +2015-03-21 John Wiegley <johnw@newartisans.com> + + Whitespace cleanups + +2015-03-21 John Wiegley <johnw@newartisans.com> + + Allow :map in bind-keys to accept multiple maps + + Fixes https://github.com/jwiegley/use-package/issues/129 + +2015-03-21 John Wiegley <johnw@newartisans.com> + + :pin should return `t' + + Modular support appears to be working + +2015-03-19 John Wiegley <johnw@newartisans.com> + + Began work on modular handling of keywords + +2015-03-19 John Wiegley <johnw@newartisans.com> + + Rename use-package-with-elapsed-timer at an internal name + + See https://github.com/jwiegley/use-package/issues/185 + +2015-03-19 John Wiegley <johnw@newartisans.com> + + Remove code I did not intend to commit + +2015-03-19 John Wiegley <johnw@newartisans.com> + + Merge pull request from npostavs/macroexp-progn + + use-package-progn: replace with macroexp-progn + GitHub-reference: https://github.com/jwiegley/use-package/issues/186 + +2015-03-19 John Wiegley <johnw@newartisans.com> + + Fix some docstrings + +2015-03-19 Noam Postavsky <npostavs@gmail.com> + + use-package-progn: replace with macroexp-progn + +2015-03-19 John Wiegley <johnw@newartisans.com> + + Merge pull request from npostavs/name-keymap + + get-binding-description: return keymap symbol + GitHub-reference: https://github.com/jwiegley/use-package/issues/184 + +2015-03-19 Noam Postavsky <npostavs@gmail.com> + + get-binding-description: return keymap symbol + + instead of "#<keymap>". + +2015-03-19 John Wiegley <johnw@newartisans.com> + + Use push instead of add-to-list + + Remove a hack that is not needed anymore + +2015-03-18 John Wiegley <johnw@newartisans.com> + + macroexpand nested uses of use-package in :init and :config + + Wrap the :preface in an eval-and-compile block + + Remove a use of macroexpand + + Make a warning more specific + + More work to silence the byte-compiler + +2015-03-17 John Wiegley <johnw@newartisans.com> + + Other minor improvements for byte-compiling + + Several minor improvements and fixes + + Change some code for consistency's sake + +2015-03-17 John Wiegley <johnw@newartisans.com> + + Merge pull request from killdash9/keymap + + minor fixes to get bind-keymap working in 2.0 + GitHub-reference: https://github.com/jwiegley/use-package/issues/176 + +2015-03-17 Russell Black <black.russell@gmail.com> + + minor fixes to get bind-keymap working in 2.0 + +2015-03-16 John Wiegley <johnw@newartisans.com> + + Always return t on a successful init-time load + + Fixes https://github.com/jwiegley/use-package/issues/174 + +2015-03-16 John Wiegley <johnw@newartisans.com> + + Add to the load-path before the :preface + + Fixes https://github.com/jwiegley/use-package/issues/172 + +2015-03-16 John Wiegley <johnw@newartisans.com> + + More fixes related to byte-compilation + + A few changes for byte-compilation + + :defer now accepts an optional number of seconds + + Permit minimal expansion of macro bodies, and other fixes + + Collapse some whitespace + +2015-03-16 John Wiegley <johnw@newartisans.com> + + Allow vectors to be passed to :bind again + + Fixes https://github.com/jwiegley/use-package/issues/166 + +2015-03-16 John Wiegley <johnw@newartisans.com> + + Add code to workaround an inefficiency with eval-after-load + + This is currently disabled, as it leads to strange byte-compilation + errors that need to be tracked down. + +2015-03-16 John Wiegley <johnw@newartisans.com> + + Output Compiling message only if verbose is enabled + + Allow :pin to accept a symbol + +2015-03-15 John Wiegley <johnw@newartisans.com> + + Relax a path normalization check + + Correct an erroneous symbol reference + + Update docstring for :disabled + +2015-03-15 John Wiegley <johnw@newartisans.com> + + Merge pull request from npostavs/eval-after-name + + use--package: eval-after-load name + GitHub-reference: https://github.com/jwiegley/use-package/issues/168 + +2015-03-15 John Wiegley <johnw@newartisans.com> + + Undo an erroneous change + +2015-03-15 John Wiegley <johnw@newartisans.com> + + Add -hook to the injected hooks + + Fixes https://github.com/jwiegley/use-package/issues/161 + +2015-03-15 John Wiegley <johnw@newartisans.com> + + Restore an earlier fix to + + Fixes https://github.com/jwiegley/use-package/issues/167 + GitHub-reference: https://github.com/jwiegley/use-package/issues/53 + +2015-03-15 John Wiegley <johnw@newartisans.com> + + BREAKING CHANGE: Remove :idle and :idle-priority + + I am removing this feature for now because it can result in a nasty + inconsistency. Consider the following definition: + + (use-package vkill + :commands vkill + :idle (some-important-configuration-here) + :bind ("C-x L" . vkill-and-helm-occur) + :init + (defun vkill-and-helm-occur () + (interactive) + (vkill) + (call-interactively #'helm-occur)) + + :config + (setq vkill-show-all-processes t)) + + If I load my Emacs and wait until the idle timer fires, then this is the + sequence of events: + + :init :idle <load> :config + + But if I load Emacs and immediately type C-x L without waiting for the + idle timer to fire, this is the sequence of events: + + :init <load> :config :idle + + It's possible that the user could use `featurep` in their idle to test + for this case, but that's a subtlety I'd rather avoid. + + What I would consider is this: `:idle [N]` is a keyword that simply + implies `:defer`, with an option number of N to specify a second count. + After that many seconds, if the package has not yet been loaded by + autoloading, it will be loaded via the idle timer. + + This approach has the benefit of complete consistency for both the idle + and the autoloaded cases. Although, the fact that it implies `:defer` + means we don't have to consider what it means to add `:idle` behavior to + a demand-loaded configuration. + +2015-03-15 Noam Postavsky <npostavs@gmail.com> + + use--package: eval-after-load name + + instead of name-string. This prevents triggering by config file names + that have the same name as the package. + + Reprise of c6d79d2cb40bd141f62eaca6dca47fb2e8e6943f + +2015-03-15 John Wiegley <johnw@newartisans.com> + + Support optional injection of hooks, for Spacemacs + +2015-03-15 John Wiegley <johnw@newartisans.com> + + Add :preface, occurring before everything except :disabled + + This can be used to establish function and variable definitions that + will 1) make the byte-compiler happy (it won't complain about functions + whose definitions are unknown because you have them within a guard + block), and 2) allow you to define code that can be used in an `:if` + test. + +2015-03-15 John Wiegley <johnw@newartisans.com> + + Some minor code reformatting + + Fix to :ensure normalization + +2015-03-15 John Wiegley <johnw@newartisans.com> + + Merge pull request from thomasf/master + + Fix :ensure value interpretation + GitHub-reference: https://github.com/jwiegley/use-package/issues/163 + +2015-03-15 John Wiegley <johnw@newartisans.com> + + Merge pull request from npostavs/warning + + use-package-expand: use display-warning + GitHub-reference: https://github.com/jwiegley/use-package/issues/162 + +2015-03-14 Thomas Frössman <thomasf@jossystem.se> + + Fix :ensure value interpretation + +2015-03-14 Noam Postavsky <npostavs@gmail.com> + + use-package-expand: use display-warning + + instead of with-demoted-errors. This prevents errors from getting lost + in the *Messages* buffer. + +2015-03-14 John Wiegley <johnw@newartisans.com> + + Begin refactoring for 2.0; NOTE: BREAKING CHANGES + + The major change is that :init is now always performed before loading a + file, whether loading is deferred or not. This is a change from before, + where the semantics of :init varied between demand and defer. The new + usage is now entirely consistent. + + Also, because :init and :config now mean "before" and "after", the + :pre-* and :post-* keywords are gone, as they should no longer be + necessary. + + Lastly, an effort has been made to make your Emacs start even in the + presence of use-package configuration failures. So after this change, + be sure to check your *Messages* buffer. Most likely, you will have + several instances where you are using :init, but should be using :config + (this was the case for me in a number of places). + +2015-03-13 John Wiegley <johnw@newartisans.com> + + Many stylistics cleanups and simplifications + +2015-03-13 John Wiegley <johnw@newartisans.com> + + Revert "Don't add autoload for existing commands" + + This reverts commit a2b23f8326d06690c8092ecc5e83ba2e4dd3c336. + +2015-03-13 John Wiegley <johnw@newartisans.com> + + Stylistic changes + + Minor style edits + + Minor changes + + Show more informative errors when they occur + +2015-01-18 John Wiegley <johnw@newartisans.com> + + Merge pull request from tarsius/master + + Allow using expanded macro without loading feature + GitHub-reference: https://github.com/jwiegley/use-package/issues/151 + +2015-01-18 Jonas Bernoulli <jonas@bernoul.li> + + Allow using expanded macro without loading feature + + In the macro `use-package-with-elapased-timer' use `bound-and-true-p' + go get the values of the customizable options `use-package-verbose' + and `use-package-minimum-reported-time'. This way the library only + has to be required at compile time, provided these options are not + actually customized. If the user has changed the values, then she + also has to load the library at runtime or the macros fall back to + the default of doing their job silently. See https://github.com/jwiegley/use-package/issues/149. + +2015-01-04 John Wiegley <johnw@newartisans.com> + + Merge pull request from killdash9/keymap + + Passing t into keymap function + GitHub-reference: https://github.com/jwiegley/use-package/issues/145 + +2015-01-03 Russell Black <black.russell@gmail.com> + + Passing t into keymap function + +2015-01-02 John Wiegley <johnw@newartisans.com> + + Merge pull request from killdash9/keymap + + :bind-keymap - bind a key prefix to an autoloaded package keymap + GitHub-reference: https://github.com/jwiegley/use-package/issues/142 + +2015-01-02 John Wiegley <johnw@newartisans.com> + + Merge pull request from thiagowfx/patch-1 + + fix small typo (key > keymap) + GitHub-reference: https://github.com/jwiegley/use-package/issues/144 + +2015-01-02 Thiago Barroso Perrotta <thiagoperrotta95@gmail.com> + + fix small typo (key > keymap) + +2014-12-31 Russell Black <black.russell@gmail.com> + + :bind-keymap - bind a key prefix to an autoloaded package keymap + +2014-12-20 John Wiegley <johnw@newartisans.com> + + Merge pull request from vermiculus/master + + Do not quote lambda expressions + GitHub-reference: https://github.com/jwiegley/use-package/issues/140 + +2014-12-19 Sean Allred <code@seanallred.com> + + Do not quote lambda expressions + + http://emacs.stackexchange.com/a/3596 + + Quoting lambda expressions is at best redundant and at worst + detrimental; this commit removes all use of the sharp-quote to reduce + confusion. + +2014-12-17 John Wiegley <johnw@newartisans.com> + + Merge pull request from YoungFrog/fixautoloads + + Don't add autoload for existing commands + GitHub-reference: https://github.com/jwiegley/use-package/issues/138 + +2014-12-17 John Wiegley <johnw@newartisans.com> + + Merge pull request from peterhoeg/master + + Check if an archive is valid when pinning + GitHub-reference: https://github.com/jwiegley/use-package/issues/137 + +2014-12-17 Peter Hoeg <peter@speartail.com> + + Check if package-archives are valid when pinning + +2014-12-17 Nicolas Richard <theonewiththeevillook@yahoo.fr> + + Don't add autoload for existing commands + +2014-12-16 Peter Hoeg <peter@speartail.com> + + pure cleanup + +2014-12-16 John Wiegley <johnw@newartisans.com> + + Merge pull request from peterhoeg/master + + Support for pinning package to archive + GitHub-reference: https://github.com/jwiegley/use-package/issues/136 + +2014-12-11 Peter Hoeg <peter@speartail.com> + + support for pinning package to archive + +2014-09-18 John Wiegley <johnw@newartisans.com> + + Merge pull request from Silex/master + + Fix "compiling" typo + GitHub-reference: https://github.com/jwiegley/use-package/issues/125 + +2014-09-18 John Wiegley <johnw@newartisans.com> + + Merge pull request from waymondo/master + + Add :bind* keyword for `bind-key*` + GitHub-reference: https://github.com/jwiegley/use-package/issues/126 + +2014-09-16 Justin Talbott <justin@waymondo.com> + + add :bind* keyword for `bind-key*` + +2014-09-16 Philippe Vaucher <philippe.vaucher@gmail.com> + + Fix "compiling" typo + +2014-09-14 John Wiegley <johnw@newartisans.com> + + Merge pull request from thomasf/master + + Display which package that has compile errors + GitHub-reference: https://github.com/jwiegley/use-package/issues/124 + +2014-09-14 Thomas Frössman <thomasf@jossystem.se> + + Display which package that has compile errors + +2014-09-08 John Wiegley <johnw@newartisans.com> + + Merge pull request from tarsius/master + + assume the declare-function macro exists + GitHub-reference: https://github.com/jwiegley/use-package/issues/123 + +2014-09-07 Jonas Bernoulli <jonas@bernoul.li> + + assume the declare-function macro exists + + Since `declare-function' was added in Emacs 23.1 (five years ago), we + don't need to assert that it is defined. If the assertion was without + any problems there would be no harm in keeping it, but unfortunately it + causes a compile warning. Because `declare-function' is a macro with + always expands to `nil' the value of (fboundp 'declare-function) ends + up being unused. + +2014-06-20 John Wiegley <johnw@newartisans.com> + + Merge pull request from BernardHurley/master + + bind-keys macro changed to allow prefix map to have a menu string. + GitHub-reference: https://github.com/jwiegley/use-package/issues/112 + +2014-06-20 Bernard Hurley <bernard@marcade.biz> + + bind-keys macro changed to allow prefix map to have a menu string + +2014-05-31 John Wiegley <johnw@newartisans.com> + + Merge pull request from npostavs/desc-vector + + Avoid putting vector key sequences in personal-keybindings + GitHub-reference: https://github.com/jwiegley/use-package/issues/110 + +2014-05-31 Noam Postavsky <npostavs@gmail.com> + + bind-key: cleanup + +2014-05-31 Noam Postavsky <npostavs@gmail.com> + + bind-key: no vector keys in personal-keybindings + + describe-personal-keybindings requires the key sequences to be stored as + strings. + +2014-05-31 Noam Postavsky <npostavs@gmail.com> + + personal-keybindings: add docstring + + fix typo in bind-key docstring + +2014-05-25 John Wiegley <johnw@newartisans.com> + + Merge pull request from alezost/bind-keys + + Add bind-keys* + GitHub-reference: https://github.com/jwiegley/use-package/issues/107 + +2014-05-25 Alex Kost <alezost@gmail.com> + + Add bind-keys* macro + +2014-05-17 John Wiegley <johnw@newartisans.com> + + Merge pull request from thomasf/master + + Don't abort compiling package loading fails + GitHub-reference: https://github.com/jwiegley/use-package/issues/106 + +2014-05-17 Thomas Frössman <thomasf@jossystem.se> + + Don't abort compiling if package loading fails + +2014-05-08 John Wiegley <johnw@newartisans.com> + + Revert "Merge pull request from alexko/master" + + This reverts commit 8c04377608bd9b27d6fc6c37990984185563a907, reversing + changes made to a9ba368fa79e4c15b624de73e30c87c98475d466. + GitHub-reference: https://github.com/jwiegley/use-package/issues/104 + +2014-05-07 John Wiegley <johnw@newartisans.com> + + Merge pull request from alexko/master + + if package can't be located, treat it the same way as disabled + GitHub-reference: https://github.com/jwiegley/use-package/issues/104 + +2014-05-07 John Wiegley <johnw@newartisans.com> + + Merge pull request from YoungFrog/fix-mult-mode + + Eval backquote earlier and support non-`progn' lists. + GitHub-reference: https://github.com/jwiegley/use-package/issues/95 + +2014-05-06 Alex Kosorukoff <alex@3form.com> + + if package can't be located, treat it the same way as disabled + + There will be a message "Unable to locate <package-name>" in the log. + +2014-05-05 Nicolas Richard <theonewiththeevillook@yahoo.fr> + + Eval backquote earlier and support non-`progn' lists + + * use-package.el (use-package-plist-get): add optional args: `eval-backquote' + and `no-progn' to control how arguments are retrieved. + (use-package-plist-get-value): remove this function + (use-package): replace calls to old function to modified function. + + Fixes issue https://github.com/jwiegley/use-package/issues/94. + + Rationale : + - use-package-plist-get-value was just another layer for no good reason, + and IMO its name was totally unclear. + - we now eval-as-backquote earlier, allowing constructs like: + (let ((my-list-of-commands-in-foo '(foo1 foo2))) + (use-package foo :commands ,@my-list-of-commands-in-foo)) + +2014-04-14 John Wiegley <johnw@newartisans.com> + + Merge pull request from YoungFrog/keynameeval + + * bind-key.el (bind-key): don't eval key-name at macro expansion time. + GitHub-reference: https://github.com/jwiegley/use-package/issues/102 + +2014-04-14 Nicolas Richard <theonewiththeevillook@yahoo.fr> + + * bind-key.el (bind-key): don't eval key-name at macro expansion time + +2014-04-14 John Wiegley <johnw@newartisans.com> + + Merge pull request from npostavs/bind-vectors + + bind-keys: bind directly to prefix-map + GitHub-reference: https://github.com/jwiegley/use-package/issues/101 + +2014-04-14 Noam Postavsky <npostavs@gmail.com> + + bind-keys: bind directly to prefix-map + + instead of constructing equivalent key sequence by string concatenation. + This allows specifying vector key sequences, as in bind-key (since + f0776c2aeb3f7f0af66597e10a3e4469ca26629d). + +2014-04-14 Noam Postavsky <npostavs@gmail.com> + + bind-keys: ,@(when map (list map)) => map + + Omitting map is same as passing nil. + +2014-04-14 Noam Postavsky <npostavs@gmail.com> + + fix typo + + Actually the reader accepts (list 'a'b) = (list 'a 'b); it still looks + wrong. + +2014-03-17 John Wiegley <johnw@newartisans.com> + + Merge pull request from YoungFrog/idle-interval + + Add new option use-package-idle-interval. + GitHub-reference: https://github.com/jwiegley/use-package/issues/99 + +2014-03-17 Nicolas Richard <theonewiththeevillook@yahoo.fr> + + Add new option use-package-idle-interval + + * use-package.el (use-package-idle-interval): new defcustom + (use-package-start-idle-timer): use it + (use-package-idle-eval): use it + * README.md: document it + + This addresses bug https://github.com/jwiegley/use-package/issues/77 + +2014-03-17 John Wiegley <johnw@newartisans.com> + + Merge pull request from ffevotte/idle-priority + + Add a :idle-priority keyword to change the running order of idle functions + GitHub-reference: https://github.com/jwiegley/use-package/issues/98 + +2014-03-17 François Févotte <fevotte@gmail.com> + + :idle-priority keyword to change the running order of idle functions + + Lower-priority idle functions are run first. Idle functions with no + specified priority default to 5 and all functions with the same priority + are run in the order in which they are evaluated, meaning the behavior + is backwards compatible. + + Updated documentation as well. + +2014-03-10 John Wiegley <johnw@newartisans.com> + + Merge pull request from tarsius/master + + use-package-with-elapsed-timer: respect option at runtime + GitHub-reference: https://github.com/jwiegley/use-package/issues/96 + +2014-03-09 Jonas Bernoulli <jonas@bernoul.li> + + use-package-font-lock-keywords: add use-package-with-elapsed-timer + + use-package-with-elapsed-timer: add declare indent rule + +2014-03-09 Jonas Bernoulli <jonas@bernoul.li> + + use-package-with-elapsed-timer: respect option at runtime + + Previously the option `use-package-verbose' was consulted at macro + expansion time, and as a result customizing the option did nothing, + without also recompiling `use-package.el'. + +2014-03-02 John Wiegley <johnw@newartisans.com> + + Merge pull request from npostavs/bind-vector + + let bind-key accept vectors, add docstring + GitHub-reference: https://github.com/jwiegley/use-package/issues/92 + +2014-03-01 Noam Postavsky <npostavs@gmail.com> + + let bind-key accept vectors, add docstring + +2014-02-18 John Wiegley <johnw@newartisans.com> + + Merge pull request from Fuco1/variable-col-width + + Add variable column width + GitHub-reference: https://github.com/jwiegley/use-package/issues/90 + +2014-02-18 John Wiegley <johnw@newartisans.com> + + Merge pull request from Fuco1/special-form-desc + + Add better descriptions for lambdas, closures, keymaps + GitHub-reference: https://github.com/jwiegley/use-package/issues/89 + +2014-02-18 Matus Goljer <dota.keys@gmail.com> + + Add variable column width + + Add better descriptions for lambdas, closures, keymaps + +2014-02-17 John Wiegley <johnw@newartisans.com> + + Merge pull request from Fuco1/bind-keys + + Add `bind-keys` macro + GitHub-reference: https://github.com/jwiegley/use-package/issues/87 + +2014-02-13 Matus Goljer <dota.keys@gmail.com> + + Add `bind-keys` macro + +2014-02-12 Nicolas Richard <theonewiththeevillook@yahoo.fr> + + Move tests to separate file + +2014-02-10 Nicolas Richard <theonewiththeevillook@yahoo.fr> + + Allow multiple forms after keywords + + * use-package.el (use-package-mplist-get): + (use-package-plist-get): + (use-package-mplist-keys): new functions + + (plist-get-value): + (use-package): use new functions + + (plist-keys): remove function + + The idea is to allow a modified kind of plist where keys are all + keywords that appear in the list, and values are the intermediary + elements. If a keyword is present but it's another keyword just after it + (like (use-package :defer :config (setq foo 'bar))), its associated + value will be t. If a keyword is not present, its value associated value + will be nil. Otherwise the value will be the list of elements between + the keyword and the next keyword. + +2014-02-05 Adam Spiers <emacs@adamspiers.org> + + stop describe-personal-keybindings adding trailing space + + When emacs is configured to highlight trailing whitespace, + the *Personal Keybindings* buffer looked pretty ugly. + This fixes that. + +2014-01-06 John Wiegley <johnw@newartisans.com> + + Merge pull request from aspiers/best-practices + + Start addressing some of @jaalto's submitted issues. + GitHub-reference: https://github.com/jwiegley/use-package/issues/79 + +2014-01-06 Adam Spiers <emacs@adamspiers.org> + + fix bind-key URL (fixes) + + Also makes a start on https://github.com/jwiegley/use-package/issues/32. + GitHub-reference: https://github.com/jwiegley/use-package/issues/58 + +2014-01-06 Adam Spiers <emacs@adamspiers.org> + + add 'use-package-' prefix to 'with-elapsed-timer' + + Fixes https://github.com/jwiegley/use-package/issues/35. + +2014-01-06 John Wiegley <johnw@newartisans.com> + + Merge pull request from aspiers/hyperlink-all-bindings + + hyperlink functions in Comments column + GitHub-reference: https://github.com/jwiegley/use-package/issues/76 + +2014-01-06 John Wiegley <johnw@newartisans.com> + + Merge pull request from aspiers/docs + + Synchronize docs and then remove one copy to prevent future issues. + GitHub-reference: https://github.com/jwiegley/use-package/issues/78 + +2014-01-06 Adam Spiers <emacs@adamspiers.org> + + fix DRY violation by only having documentation in one place + + The documentation in README.md was previously identical to that + in the Commentary section of use-package.el, modulo the following + differences: + + - No elisp comment ";; " prefix + - Code blocks indented 4 columns not 2, as required by Markdown + - Elisp symbols marked in backtick delimiters for monospace, not + emacs backtick/forward tick pairs. + + Unfortunately due to this duplication, sometimes only one of the + two files got updated, so they got out of sync. With us all being + human, this is likely to continue to happen as long as the + duplication exists ;-) Therefore since most users are likely to + encounter README.md before the elisp, and bearing in mind that + Markdown is a much more flexible format for documentation than + elisp comments (richer formatting, can be exported to numerous + other formats etc.), it is better to replace the docs in + use-package.el with a pointer to the README.md. + +2014-01-04 Adam Spiers <emacs@adamspiers.org> + + hyperlink functions in Comments column + + Previously, only the functions in the Command column were hyper-linked. + Also clarify the meaning of the "was" entries in the Comments column. + +2013-12-16 John Wiegley <johnw@newartisans.com> + + Merge pull request from aspiers/short-mode + + allow :mode and :interpreter to accept a string + GitHub-reference: https://github.com/jwiegley/use-package/issues/73 + +2013-12-16 Adam Spiers <emacs@adamspiers.org> + + allow :mode and :interpreter to accept a string + + Fixes https://github.com/jwiegley/use-package/issues/72. + +2013-12-09 John Wiegley <johnw@newartisans.com> + + Merge pull request from tarsius/defun + + use-package: use defun as lisp-indent-function + GitHub-reference: https://github.com/jwiegley/use-package/issues/69 + +2013-12-09 Jonas Bernoulli <jonas@bernoul.li> + + use-package: use defun as lisp-indent-function + + When `use-package' is called with only one keyword it is useful to + write: + + (use-package foo :init + (progn + ... long lines ...)) + + instead of + + (use-package foo + :init (progn + ... *too* long lines ...)) + + or + + (use-package foo + :init + (progn + ... long lines ...)) + + Even when there are multiple keywords or when one never wants to format + the calls to `use-package' as in the first example the use of `defun' + does not really pose a problem. + +2013-12-04 John Wiegley <johnw@newartisans.com> + + Add a :demand directive, to override deferred loading () + + GitHub-reference: https://github.com/jwiegley/use-package/issues/65 + +2013-12-04 John Wiegley <johnw@newartisans.com> + + fboundp is a function, not a variable + + Fixes https://github.com/jwiegley/use-package/issues/68 + +2013-12-04 John Wiegley <johnw@newartisans.com> + + Merge pull request from dabrahams/patch-1 + + Backward compatibility with emacs-22.1 + GitHub-reference: https://github.com/jwiegley/use-package/issues/67 + +2013-12-02 Dave Abrahams <dave@boostpro.com> + + Backward compatibility with emacs-22.1 + + This change supports the emacs that ships with MacOS X, the last version not encumbered by GPLv3. + +2013-12-02 John Wiegley <johnw@newartisans.com> + + Default use-package-verbose to nil + +2013-11-05 John Wiegley <johnw@newartisans.com> + + Merge pull request from Silex/master + + Remove el-get support + GitHub-reference: https://github.com/jwiegley/use-package/issues/64 + +2013-11-05 Philippe Vaucher <philippe.vaucher@gmail.com> + + Remove el-get support + +2013-10-28 John Wiegley <johnw@newartisans.com> + + Merge pull request from aethanyc/add-missing-keyword + + Add :pre-load to use-package-keywords + GitHub-reference: https://github.com/jwiegley/use-package/issues/62 + +2013-10-25 Ting-Yu Lin <aethanyc@gmail.com> + + Add :pre-load to use-package-keywords + + The :pre-load keyword cannot be used unless it is in + `use-package-keywords' list. + +2013-10-15 John Wiegley <johnw@newartisans.com> + + Merge pull request from PhilHudson/master + + Properly enable runtime dependency for :idle stanza (issue https://github.com/jwiegley/use-package/issues/60) + GitHub-reference: https://github.com/jwiegley/use-package/issues/61 + +2013-10-15 Phil Hudson <phil.hudson@iname.com> + + Properly enable runtime dependency for :idle stanza (issue) + + See issue https://github.com/jwiegley/use-package/issues/60. + GitHub-reference: https://github.com/jwiegley/use-package/issues/60 + +2013-10-14 John Wiegley <johnw@newartisans.com> + + Merge pull request from npostavs/comma + + remove extra comma (added by 026c46c) + GitHub-reference: https://github.com/jwiegley/use-package/issues/59 + +2013-10-14 Noam Postavsky <npostavs@gmail.com> + + remove extra comma (added by 026c46c) + +2013-10-12 John Wiegley <johnw@newartisans.com> + + Merge pull request from npostavs/cleanup + + Cleanup + GitHub-reference: https://github.com/jwiegley/use-package/issues/57 + +2013-10-12 Noam Postavsky <npostavs@gmail.com> + + let with-elapsed-timer return last form + + make `with-elapsed-timer' hygienic + + with-elapsed-timer: only check verbosity once + +2013-10-12 Noam Postavsky <npostavs@gmail.com> + + remove after-init-hook for override-global-mode + + The INIT-VALUE argument to define-minor-mode is t, so it's enabled by + default. + +2013-10-12 Noam Postavsky <npostavs@gmail.com> + + macroexpand not needed + + Since lambda thunking replaced quoting in a76d167. + + To see why, observe that cases 3 and 4 disassemble to identical code. + The difference between cases 1 and 2 shows why the macroexpand was + needed originally. + + (defmacro test-quote (name-string) + `(eval-after-load "foo" + `(with-elapsed-timer ,(format "Configuring package %s" name-string) + (message "test-quote")))) + + (defmacro test-expand-quote (name-string) + `(eval-after-load "foo" + ,(macroexpand-all + `(with-elapsed-timer ,(format "Configuring package %s" name-string) + (message "test-expand-quote"))))) + + (defmacro test-lambda (name-string) + `(eval-after-load "foo" + `(,(lambda () + (with-elapsed-timer ,(format "Configuring package %s" name-string) + (message "test-lambda")))))) + + (defmacro test-expand-lambda (name-string) + `(eval-after-load "foo" + `(,(lambda () + ,(macroexpand-all + `(with-elapsed-timer ,(format "Configuring package %s" name-string) + (message "test-lambda"))))))) + + (disassemble (lambda () (test-quote "testing..."))) + (disassemble (lambda () (test-expand-quote "testing..."))) + (disassemble (lambda () (test-lambda "testing..."))) + (disassemble (lambda () (test-expand-lambda "testing..."))) + +2013-10-12 Noam Postavsky <npostavs@gmail.com> + + cl not needed since flet was removed in 82903da + +2013-10-07 John Wiegley <johnw@newartisans.com> + + Merge pull request from phillord/first-keyword + + Add a ":first" keyword for those occasions that it's necessary. + GitHub-reference: https://github.com/jwiegley/use-package/issues/42 + +2013-09-27 John Wiegley <johnw@newartisans.com> + + Merge pull request from npostavs/quasiquote + + Quasiquote + GitHub-reference: https://github.com/jwiegley/use-package/issues/56 + +2013-09-25 Noam Postavsky <npostavs@gmail.com> + + use plist-get-value for all non-sexp args + +2013-09-25 Noam Postavsky <npostavs@gmail.com> + + plist-get-value treats arg as backquoted + + This allows use of variables or even arbitrary expressions to construct + use-package arguments: + + (use-package some-package + :mode ,mode-spec + :bind (,binding + ,@more-bindings + ,@(cl-loop for i from ?a to ?z + collect `(,(string i) . nifty-function)))) + +2013-09-25 John Wiegley <johnw@newartisans.com> + + Merge pull request from dudebout/fixes- + + Removes `plist-get-sexp` + GitHub-reference: https://github.com/jwiegley/use-package/issues/55 + GitHub-reference: https://github.com/jwiegley/use-package/issues/54 + +2013-09-25 Nicolas Dudebout <nicolas.dudebout@gmail.com> + + Removes `plist-get-sexp` + + This function was not working as advertised. + Then `funcall` was evaluated too early and all the benefits of late evaluation for autoloads was lost. + Furthermore, this function was not really needed in the first place: + + ``` + (use-package foo + :config my-foo-function) + ``` + + can easily be replaced by the following: + + ``` + (use-package foo + :config (my-foo-function)) + ``` + +2013-09-24 John Wiegley <johnw@newartisans.com> + + Merge pull request from dudebout/variable-and-function-support + + Enables using variables and functions as arguments + GitHub-reference: https://github.com/jwiegley/use-package/issues/54 + +2013-09-24 Nicolas Dudebout <nicolas.dudebout@gmail.com> + + Enables using variables and functions as arguments + + This change an extra level on indirection for two cases: + + + when an association or an alist is required, it is possible to pass a + variable containing an association or an alist + + when a sexp to be evaluated is required, it is possible to pass a + function instead + +2013-09-17 John Wiegley <johnw@newartisans.com> + + Merge pull request from npostavs/eval-after-name + + pass name (not name-string) to eval-after-load + GitHub-reference: https://github.com/jwiegley/use-package/issues/53 + +2013-09-16 Noam Postavsky <npostavs@gmail.com> + + pass name (not name-string) to eval-after-load + + Fixes https://github.com/jwiegley/use-package/issues/52: the :config block would be triggered when loading a config + file with the same name as the package and again when loading the + package itself. + +2013-09-15 John Wiegley <johnw@newartisans.com> + + Merge pull request from aethanyc/fix-highlight + + Fix highlight use-package for Emacs snapshot + GitHub-reference: https://github.com/jwiegley/use-package/issues/49 + +2013-09-13 Ting-Yu Lin <aethanyc@gmail.com> + + Fix highlight use-package for Emacs snapshot + + The commit 57f80d4 fixed the highlight by following the regexp as for + require. However in Emacs truck, it only highlights first part of the + package name. + + This change follows the regexp for require on emacs truck. See line + 2327 on font-lock.el in the following patch. + http://bzr.savannah.gnu.org/lh/emacs/trunk/revision/111821 + +2013-09-04 John Wiegley <johnw@newartisans.com> + + Merge pull request from npostavs/hilite-redux + + highlight use-package before typing package name + GitHub-reference: https://github.com/jwiegley/use-package/issues/47 + +2013-09-04 John Wiegley <johnw@newartisans.com> + + Merge pull request from aethanyc/improve-output-buffer + + Improve (describe-personal-keybindings) output + GitHub-reference: https://github.com/jwiegley/use-package/issues/48 + +2013-09-04 Ting-Yu Lin <aethanyc@gmail.com> + + Improve (describe-personal-keybindings) output + + Create *Personal Keybindings* by with-output-to-temp-buffer. It + redirects standard output to the buffer and display it in help mode. So + we can get help mode keybindings such as "q" for free. + + Quote the command-desc output so that it is made into a hyperlink. + +2013-09-03 Noam Postavsky <npostavs@gmail.com> + + highlight use-package before typing package name + + This follow the same pattern as the highlighting for provide and require + from `lisp-font-lock-keywords-2' in font-lock.el + +2013-08-16 John Wiegley <johnw@newartisans.com> + + Merge pull request from npostavs/master + + also check `byte-compile-current-file' for compile time loads, fixes issue https://github.com/jwiegley/use-package/issues/44 + GitHub-reference: https://github.com/jwiegley/use-package/issues/45 + +2013-08-15 Noam Postavsky <npostavs@gmail.com> + + also check `byte-compile-current-file' for compile time loads, fixes issue + + `eval-when-compile' is really `eval-when-macroexpand' which includes + loading from source + GitHub-reference: https://github.com/jwiegley/use-package/issues/44 + +2013-08-15 Phillip Lord <phillip.lord@russet.org.uk> + + Changed :first to :pre-load + + Updated and extended documentation. + +2013-08-13 John Wiegley <johnw@newartisans.com> + + Merge pull request from npostavs/master + + Byte compilation, fixes for https://github.com/jwiegley/use-package/issues/29 and https://github.com/jwiegley/use-package/issues/30 + GitHub-reference: https://github.com/jwiegley/use-package/issues/43 + +2013-08-13 Noam Postavsky <npostavs@gmail.com> + + use lambda around deferred :config forms to compile them, fixes issue + + GitHub-reference: https://github.com/jwiegley/use-package/issues/30 + +2013-08-13 Noam Postavsky <npostavs@gmail.com> + + use `eval-when-compile' for loading package at compile time, fixes issue + + GitHub-reference: https://github.com/jwiegley/use-package/issues/29 + +2013-08-13 Phillip Lord <phillip.lord@russet.org.uk> + + Add a ":first" keyword for those occasions that it's necessary + +2013-08-12 John Wiegley <johnw@newartisans.com> + + Merge pull request from npostavs/master + + refine use-package highlighting regexp + GitHub-reference: https://github.com/jwiegley/use-package/issues/41 + +2013-08-11 Noam Postavsky <npostavs@gmail.com> + + refine use-package highlighting regexp + +2013-07-28 John Wiegley <johnw@newartisans.com> + + Merge pull request from purcell/patch-2 + + Fix initial line to satisfy package.el + GitHub-reference: https://github.com/jwiegley/use-package/issues/40 + +2013-07-28 Steve Purcell <steve@sanityinc.com> + + Fix initial line to satisfy package.el + +2013-07-03 Phil Hudson <phil.hudson@iname.com> + + Validate keywords. Error if any keyword is unrecognized + + Conflicts: + use-package.el + +2013-06-26 John Wiegley <johnw@newartisans.com> + + Merge pull request from phillord/ensure-doc + + Ensure doc + GitHub-reference: https://github.com/jwiegley/use-package/issues/37 + +2013-06-26 Phillip Lord <phillip.lord@russet.org.uk> + + Added documentation to use-package macro + + Documentation added for :ensure keyword + +2013-05-15 John Wiegley <johnw@newartisans.com> + + Merge pull request from milkypostman/master + + package header should be the full filename + ext + GitHub-reference: https://github.com/jwiegley/use-package/issues/28 + +2013-05-15 Donald Curtis <dcurtis@milkbox.net> + + package header should, hold, sold be the full filename + ext + + this fixes a bug in using `(package-buffer-info)` + +2013-04-27 John Wiegley <johnw@newartisans.com> + + Merge pull request from tarsius/font-lock + + fontify use-package form + GitHub-reference: https://github.com/jwiegley/use-package/issues/25 + +2013-04-27 John Wiegley <johnw@newartisans.com> + + Merge pull request from tarsius/master + + some small cleanups + GitHub-reference: https://github.com/jwiegley/use-package/issues/24 + +2013-04-27 Jonas Bernoulli <jonas@bernoul.li> + + fontify use-package form + + add dots; cleanup whitespace + + quiet byte-compiler; ensure package.el is loaded + +2013-04-27 Jonas Bernoulli <jonas@bernoul.li> + + don't use obsolete flet + + Unfortunately there isn't a proper dynamically scoped + replacement, so we have to resort to using funcall. + +2013-04-27 Jonas Bernoulli <jonas@bernoul.li> + + enforce use of spaces for indentation + +2013-04-23 John Wiegley <johnw@newartisans.com> + + Merge pull request from purcell/patch-1 + + Add Package-Requires header for ELPA installations + GitHub-reference: https://github.com/jwiegley/use-package/issues/22 + +2013-04-23 Steve Purcell <steve@sanityinc.com> + + Add Package-Requires header for ELPA installations + +2013-04-16 John Wiegley <johnw@newartisans.com> + + Merge pull request from npostavs/easy-diminish + + needed extra layer of nesting for diminish calls + GitHub-reference: https://github.com/jwiegley/use-package/issues/21 + +2013-04-16 Noam Postavsky <npostavs@gmail.com> + + needed extra layer of nesting for diminish calls + +2013-04-14 John Wiegley <johnw@newartisans.com> + + Merge pull request from npostavs/easy-diminish + + let :diminish "string" guess correct mode symbol + GitHub-reference: https://github.com/jwiegley/use-package/issues/20 + +2013-04-14 John Wiegley <johnw@newartisans.com> + + Merge pull request from npostavs/bind-override + + let bind-key* override minor modes with emulation-mode-map-alists + GitHub-reference: https://github.com/jwiegley/use-package/issues/19 + +2013-04-14 Noam Postavsky <npostavs@gmail.com> + + let :diminish "string" guess correct mode symbol + +2013-04-13 Noam Postavsky <npostavs@gmail.com> + + let bind-key* override minor modes with emulation-mode-map-alists + +2013-03-23 John Wiegley <johnw@newartisans.com> + + Merge pull request from PhilHudson/master + + Macro expansion redux + GitHub-reference: https://github.com/jwiegley/use-package/issues/17 + +2013-03-23 Phil Hudson <phil.hudson@iname.com> + + Runtime client code independence redux + + Tweak to previous fix for expanding macros correctly at code-planting time. Specifically, eval `use-package-minimum-reported-time' at code-planting time not at runtime (which would require use-package.el to be loaded first). + +2013-02-18 John Wiegley <johnw@newartisans.com> + + Corrected a typo + +2013-02-12 John Wiegley <johnw@newartisans.com> + + Merge pull request from phillord/master + + Support for idle loading of packages + GitHub-reference: https://github.com/jwiegley/use-package/issues/16 + +2013-02-12 Phillip Lord <phillip.lord@russet.org.uk> + + Merge branch 'master' of https://github.com/jwiegley/use-package + +2013-02-12 Phillip Lord <phillip.lord@russet.org.uk> + + idle initiation of packages + + A new feature which adds support for idle startup and loading of packages. + +2013-02-06 John Wiegley <johnw@newartisans.com> + + Merge pull request from phillord/master + + Load time display option. + GitHub-reference: https://github.com/jwiegley/use-package/issues/15 + +2013-02-05 Phillip Lord <phillip.lord@russet.org.uk> + + Added minimum load time display option + + Makes the minimum load time before use-package displays + a message a customizable option. + +2013-01-28 John Wiegley <johnw@newartisans.com> + + Merge pull request from bdd/master + + Remove trailing whitespace + GitHub-reference: https://github.com/jwiegley/use-package/issues/14 + +2013-01-28 Berk D. Demir <bdd@mindcast.org> + + Cleanup trailing whitespace + + Just `M-x delete-trailing-whitespace' on use-package.el + +2013-01-23 John Wiegley <johnw@newartisans.com> + + Merge pull request from PhilHudson/macroexpand + + Macroexpand quoted eval-after-load block early + GitHub-reference: https://github.com/jwiegley/use-package/issues/13 + +2013-01-23 Phil Hudson <phil.hudson@iname.com> + + Macroexpand quoted eval-after-load block early + + The main `use-package' macro incorrectly planted code containing a call to the `with-elapsed-timer' macro in a quoted block to be run by `eval-after-load'. If package use-package was not loaded at runtime, the block would error saying correctly that `with-elapsed-timer' is undefined. This mod correctly macroexpands the block at code generation time. + +2013-01-18 John Wiegley <johnw@newartisans.com> + + Merge pull request from phillord/master + + Better support for ELPA. + GitHub-reference: https://github.com/jwiegley/use-package/issues/11 + +2013-01-18 Phillip Lord <phillip.lord@russet.org.uk> + + Support packages where autoload and elpa name are different + + Some packages such as ECB already provide an autoload file, + so it is this that use-package needs to require. However, + the ELPA name is ecb. This commit allows ensure to take an + argument (other than t). + +2013-01-17 John Wiegley <johnw@newartisans.com> + + Merge pull request from phillord/master + + Inline documentation + GitHub-reference: https://github.com/jwiegley/use-package/issues/10 + +2013-01-17 Phillip Lord <phillip.lord@russet.org.uk> + + Documentation for the use-package macro + +2013-01-17 Phillip Lord <phillip.lord@russet.org.uk> + + Reverting "Documentation for the use-package macro." + + Revert "Documentation for the use-package macro." + + This reverts commit abc0ebc92dc1cf9ef9adfe133d0b30bf7382b65c. + +2013-01-17 Phillip Lord <phillip.lord@russet.org.uk> + + Documentation for the use-package macro + +2013-01-12 John Wiegley <johnw@newartisans.com> + + Merge pull request from phillord/master + + ELPA support + GitHub-reference: https://github.com/jwiegley/use-package/issues/9 + +2012-12-31 Phillip Lord <phillip.lord@russet.org.uk> + + ELPA package support + +2012-11-20 John Wiegley <johnw@newartisans.com> + + Merge pull request from PhilHudson/master + + Support optional diminish replacement string parameter using conses + GitHub-reference: https://github.com/jwiegley/use-package/issues/4 + +2012-11-20 Phil Hudson <phil.hudson@iname.com> + + Support diminishing to a replacement string as well as to nothing + + `diminish' accepts an optional second argument, a replacement string. This change supports all the following arguments to ':diminish': + + * package + * (package . "pkg") + * (package1 package2) + * ((package1 . "p1") (package2 . "p2)) + + The second and fourth formats are new with this change. + +2012-07-30 John Wiegley <johnw@newartisans.com> + + Use-package now accepts function as argument + +2012-07-11 John Wiegley <johnw@newartisans.com> + + Only use user-site-lisp-directory if defined + +2012-06-26 John Wiegley <johnw@newartisans.com> + + Correct return value from with-elapsed-timer + +2012-06-22 John Wiegley <johnw@newartisans.com> + + More updates to support el-get + + Byte-compilation related fix + +2012-06-21 John Wiegley <johnw@newartisans.com> + + Added :pre-init + +2012-06-20 John Wiegley <johnw@newartisans.com> + + Establish autoloads after :init + +2012-06-17 John Wiegley <johnw@newartisans.com> + + Added :mode and :interpreter keywords + + Add a note about how to use :load-path + + If :load-path is absolute, don't expand it + + Die typos, die + + Fixed a typo + + Minor reformatting + + Minor grammatical nit + + Integrated support for working with el-get + + Make use-package-verbose customizable + + Have loading timer include time to require + + Fixed a typo in bind-key.el + + README and other updates + +2022-04-04 Eli Zaretskii <eliz@gnu.org> + + * Version 28.1 released. + +2022-04-03 Eli Zaretskii <eliz@gnu.org> + + Bump Emacs version to 28.1 + + * README: + * configure.ac: + * nt/README.W32: + * msdos/sed2v2.inp: Bump Emacs version to 28.1 + +This file records repository revisions from +commit f2ae39829812098d8269eafbc0fcb98959ee5bb7 (exclusive) to +commit 92a7132bd6c76a43860fa01ca3363857d8dfc8f3 (inclusive). +See ChangeLog.3 for earlier changes. + +;; Local Variables: +;; coding: utf-8 +;; End: + + Copyright (C) 2022, 2024 Free Software Foundation, Inc. + + This file is part of GNU Emacs. + + GNU Emacs is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + GNU Emacs is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. diff --git a/GNUmakefile b/GNUmakefile index 64d083e5da7d..16064672c65e 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -1,6 +1,6 @@ # Build Emacs from a fresh tarball or version-control checkout. -# Copyright (C) 2011-2023 Free Software Foundation, Inc. +# Copyright (C) 2011-2024 Free Software Foundation, Inc. # # This file is part of GNU Emacs. # @@ -36,31 +36,31 @@ ifeq (help,$(filter help,$(MAKECMDGOALS))) help: - @echo "NOTE: This is a brief summary of some common make targets." - @echo "For more detailed information, please read the files INSTALL," - @echo "INSTALL.REPO, Makefile or visit this URL:" - @echo "https://www.gnu.org/prep/standards/html_node/Standard-Targets.html" - @echo "" - @echo "make all -- compile and build Emacs" - @echo "make install -- install Emacs" - @echo "make TAGS -- update tags tables" - @echo "make clean -- delete built files but preserve configuration" - @echo "make mostlyclean -- like 'make clean', but leave those files that" - @echo " usually do not need to be recompiled" - @echo "make distclean -- delete all build and configuration files," - @echo " leave only files included in source distribution" - @echo "make maintainer-clean -- delete almost everything that can be regenerated" - @echo "make extraclean -- like maintainer-clean, and also delete" - @echo " backup and autosave files" - @echo "make bootstrap -- delete all compiled files to force a new bootstrap" - @echo " from a clean slate, then build in the normal way" - @echo "make uninstall -- remove files installed by 'make install'" - @echo "make check -- run the Emacs test suite" - @echo "make docs -- generate Emacs documentation in info format" - @echo "make html -- generate documentation in html format" - @echo "make ps -- generate documentation in ps format" - @echo "make pdf -- generate documentation in pdf format " - @exit + $(info $ NOTE: This is a brief summary of some common make targets.) + $(info $ For more detailed information, please read the files INSTALL,) + $(info $ INSTALL.REPO, Makefile or visit this URL:) + $(info $ https://www.gnu.org/prep/standards/html_node/Standard-Targets.html) + $(info $ ) + $(info $ make all -- compile and build Emacs) + $(info $ make install -- install Emacs) + $(info $ make TAGS -- update tags tables) + $(info $ make clean -- delete built files but preserve configuration) + $(info $ make mostlyclean -- like 'make clean', but leave those files that) + $(info $ usually do not need to be recompiled) + $(info $ make distclean -- delete all build and configuration files,) + $(info $ leave only files included in source distribution) + $(info $ make maintainer-clean -- delete almost everything that can be regenerated) + $(info $ make extraclean -- like maintainer-clean, and also delete) + $(info $ backup and autosave files) + $(info $ make bootstrap -- delete all compiled files to force a new bootstrap) + $(info $ from a clean slate, then build in the normal way) + $(info $ make uninstall -- remove files installed by 'make install') + $(info $ make check -- run the Emacs test suite) + $(info $ make docs -- generate Emacs documentation in info format) + $(info $ make html -- generate documentation in html format) + $(info $ make ps -- generate documentation in ps format) + $(info $ make pdf -- generate documentation in pdf format ) + @: .PHONY: help @@ -79,7 +79,7 @@ else ifeq ($(filter-out %clean,$(or $(MAKECMDGOALS),default)),) $(MAKECMDGOALS): - @echo >&2 'No Makefile; skipping $@.' + $(warning No Makefile; skipping $@.) else @@ -97,20 +97,25 @@ default $(ORDINARY_GOALS): Makefile .NOTPARALLEL: configure: - @echo >&2 'There seems to be no "configure" file in this directory.' - @echo >&2 Running ./autogen.sh ... + $(warning There seems to be no "configure" file in this directory.) + $(warning Running ./autogen.sh ...) ./autogen.sh @echo >&2 '"configure" file built.' Makefile: configure - @echo >&2 'There seems to be no Makefile in this directory.' - @echo >&2 'Running ./configure ...' + $(warning There seems to be no Makefile in this directory.) +ifeq ($(configure),default) + $(warning Running ./configure ...) ./configure +else + $(warning Running ./configure $(configure)...) + ./configure $(configure) +endif @echo >&2 'Makefile built.' # 'make bootstrap' in a fresh checkout needn't run 'configure' twice. bootstrap: Makefile - $(MAKE) -f Makefile all + $(MAKE) -f Makefile bootstrap-all .PHONY: bootstrap default $(ORDINARY_GOALS) diff --git a/INSTALL b/INSTALL index 5468c0d25953..73fdc5a07ae0 100644 --- a/INSTALL +++ b/INSTALL @@ -1,14 +1,16 @@ GNU Emacs Installation Guide -Copyright (C) 1992, 1994, 1996-1997, 2000-2023 Free Software Foundation, +Copyright (C) 1992, 1994, 1996-1997, 2000-2024 Free Software Foundation, Inc. See the end of the file for license conditions. -This file contains general information on building GNU Emacs. -For more information specific to the MS-Windows, GNUstep/macOS, and -MS-DOS ports, also read the files nt/INSTALL, nextstep/INSTALL, and -msdos/INSTALL. For information about building from a repository checkout -(rather than a release), also read the file INSTALL.REPO. +This file contains general information on building GNU Emacs. For +more information specific to the MS-Windows, GNUstep/macOS, and MS-DOS +ports, also read the files nt/INSTALL, nextstep/INSTALL, and +msdos/INSTALL. + +For information about building from a Git checkout (rather than an +Emacs release), read the INSTALL.REPO file first. BASIC INSTALLATION @@ -185,8 +187,9 @@ X11 is being used. libz (for PNG): https://www.zlib.net/ X libjpeg for JPEG: https://www.ijg.org/ X libtiff for TIFF: http://www.simplesystems.org/libtiff/ - X libgif for GIF: http://giflib.sourceforge.net/ + X libgif for GIF: https://giflib.sourceforge.net/ librsvg2 for SVG: https://wiki.gnome.org/Projects/LibRsvg + libwebp for WebP: https://developers.google.com/speed/webp/ If you supply the appropriate --without-LIB option, 'configure' will omit the corresponding library from Emacs, even if that makes for a @@ -225,6 +228,38 @@ e.g. 'emacs25'). On Red Hat-based systems, the corresponding command is On FreeBSD, the command is 'pkg install -y `pkg rquery %dn emacs-devel`'. +* Alternative window systems + +If you want to use Emacs on one of the alternative window systems +available on GNU/Linux and some Unix systems, such as Wayland or +Broadway, you can build the PGTK ("Pure GTK") port of Emacs, which +utilizes the GTK+ toolkit to support those window systems. To this +end, invoke the configure script with the '--with-pgtk' option, like +this: + + ./configure --with-pgtk + +This build is only supported with GTK+ version 3, and it is an error +to specify any other X-specific configuration option when PGTK is +enabled. + +If you use exclusively X, do not use the PGTK port. There are a +number of respects in which the regular --with-x-toolkit=gtk build +works better. The PGTK port should not be considered a simple upgrade +from --with-x-toolkit=gtk. + +With the PGTK build, you will be able to switch between running Emacs +on X, Wayland and Broadway using the 'GDK_BACKEND' environment +variable. GTK+ should automatically detect and use the correct value +for your system, but you can also specify it manually. For example, +to force GTK+ to run under Broadway, start Emacs like this: + + GDK_BACKEND=broadway emacs ... + +(where '...' denotes any further options you may want to pass to Emacs). + +The GNUstep build also supports the Wayland window system. If that is +what you want, see nextstep/INSTALL. DETAILED BUILDING AND INSTALLATION: @@ -313,6 +348,7 @@ or more of these options: --without-gif for GIF image support --without-png for PNG image support --without-rsvg for SVG image support + --without-webp for WebP image support Although ImageMagick support is disabled by default due to security and stability concerns, you can enable it with --with-imagemagick. @@ -322,6 +358,10 @@ Use --without-toolkit-scroll-bars to disable Motif or Xaw3d scroll bars. Use --without-xim to inhibit the default use of X Input Methods. In this case, the X resource useXIM can be used to turn on use of XIM. +Use --without-xinput2 to disable the use of version 2 of the X Input +Extension. This disables support for touchscreens, pinch gestures, +and scroll wheels that report scroll deltas at pixel-level precision. + Use --disable-largefile to omit support for files larger than 2GB, and --disable-year2038 to omit support for timestamps past the year 2038, on systems which allow omitting such support. This may help when @@ -354,6 +394,12 @@ typical 32-bit host, Emacs integers have 62 bits instead of 30. Use --with-cairo to compile Emacs with Cairo drawing. +Use --with-cairo-xcb to also utilize the Cairo XCB backend on systems +where it is available. While such a configuration is moderately +faster when running over X connections with high latency, it is likely +to crash when a new frame is created on a display connection opened +after a display connection is closed. + Use --with-modules to build Emacs with support for dynamic modules. This needs a C compiler that supports '__attribute__ ((cleanup (...)))', as in GCC 3.4 and later. @@ -446,12 +492,12 @@ shell such as Bash, which uses these variables: ./configure \ CPPFLAGS='-I/foo/myinclude' LDFLAGS='-L/bar/mylib' \ - CFLAGS='-O3' LIBS='-lfoo -lbar' + CFLAGS='-Og' LIBS='-lfoo -lbar' (this is all one shell command). This tells 'configure' to instruct the preprocessor to look in the '/foo/myinclude' directory for header files (in addition to the standard directories), instruct the linker -to look in '/bar/mylib' for libraries, pass the -O3 optimization +to look in '/bar/mylib' for libraries, pass the -Og optimization switch to the compiler, and link against libfoo and libbar libraries in addition to the standard ones. diff --git a/INSTALL.REPO b/INSTALL.REPO index 9a2f3d3b0bc5..dd05a9fc4333 100644 --- a/INSTALL.REPO +++ b/INSTALL.REPO @@ -8,9 +8,15 @@ directory on your local machine: To build the repository code, simply run 'make' in the 'emacs' directory. This should work if your files are freshly checked out -from the repository, and if you have the proper tools installed. If -it doesn't work, or if you have special build requirements, the -following information may be helpful. +from the repository, and if you have the proper tools installed; the +default configuration options will be used. Other configuration +options can be specified by setting a 'configure' variable, for +example: + + $ make configure="--prefix=/opt/emacs CFLAGS='-O0 -g3'" + +If the above doesn't work, or if you have special build requirements, +the following information may be helpful. Building Emacs from the source-code repository requires some tools that are not needed when building from a release. You will need: @@ -58,7 +64,16 @@ To update loaddefs.el (and similar files), do: If either of the above partial procedures fails, try 'make bootstrap'. If CPU time is not an issue, 'make bootstrap' is a more thorough way -to rebuild, avoiding spurious problems. +to rebuild, avoiding spurious problems. 'make bootstrap' rebuilds +Emacs with the same configuration options as the previous build; it +can also be used to rebuild Emacs with other configuration options by +setting a 'configure' variable, for example: + + $ make bootstrap configure="CFLAGS='-O0 -g3'" + +To rebuild Emacs with the default configuration options, you can use: + + $ make bootstrap configure=default Occasionally, there are changes that 'make bootstrap' won't be able to handle. The most thorough cleaning can be achieved by 'git clean -fdx' @@ -83,7 +98,7 @@ never platform-specific. -Copyright (C) 2002-2023 Free Software Foundation, Inc. +Copyright (C) 2002-2024 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/Makefile.in b/Makefile.in index aa42f7860454..996f7b8d8c7e 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,6 +1,6 @@ ### @configure_input@ -# Copyright (C) 1992-2023 Free Software Foundation, Inc. +# Copyright (C) 1992-2024 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -51,7 +51,15 @@ # # make bootstrap # Removes all the compiled files to force a new bootstrap from a -# clean slate, and then build in the normal way. +# clean slate, and then build in the normal way. If the FAST Make +# variable is set, then the autom4te.cache directory and the +# config.cache file are not removed. This lets you say +# +# ./configure -C +# make FAST=true bootstrap +# +# and use the cached results from the configure run, which is much +# faster though it does not work in general. # # make docs # Make Emacs documentation files from their sources; requires makeinfo. @@ -102,6 +110,11 @@ HAVE_NATIVE_COMP = @HAVE_NATIVE_COMP@ USE_STARTUP_NOTIFICATION = @USE_STARTUP_NOTIFICATION@ +HAVE_BE_APP = @HAVE_BE_APP@ + +HAVE_PGTK = @HAVE_PGTK@ +HAVE_GSETTINGS = @HAVE_GSETTINGS@ + # ==================== Where To Install Things ==================== # Location to install Emacs.app under GNUstep / macOS. @@ -211,7 +224,7 @@ icondir=$(datarootdir)/icons iconsrcdir=$(srcdir)/etc/images/icons # Where to install the gsettings schema file. -gsettingsschemadir = @gsettingsschemadir@ +gsettingsschemadir = $(datadir)/glib-2.0/schemas # ==================== Emacs-specific directories ==================== @@ -314,10 +327,14 @@ GLIB_COMPILE_SCHEMAS = glib-compile-schemas # Program name transformation. TRANSFORM = @program_transform_name@ +# Prevent any settings in the user environment causing problems. +unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH + # What emacs should be called when installed. EMACS_NAME = `echo emacs | sed '$(TRANSFORM)'` EMACS = ${EMACS_NAME}${EXEEXT} EMACSFULL = `echo emacs-${version} | sed '$(TRANSFORM)'`${EXEEXT} +EMACS_PDMP = `./src/emacs${EXEEXT} --fingerprint`.pdmp # Subdirectories to make recursively. SUBDIR = $(NTDIR) lib lib-src src lisp @@ -349,10 +366,79 @@ endif gsettings_SCHEMAS = etc/org.gnu.emacs.defaults.gschema.xml -all: ${SUBDIR} info $(gsettings_SCHEMAS:.xml=.valid) +all: + $(MAKE) actual-all || $(MAKE) advice-on-failure make-target=all exit-status=$$? + $(MAKE) sanity-check make-target=all + +# This target is used by the 'bootstrap' target in GNUmakefile, instead of 'all'. +bootstrap-all: + $(MAKE) actual-all || $(MAKE) advice-on-failure make-target=bootstrap exit-status=$$? + $(MAKE) sanity-check make-target=bootstrap + +.PHONY: bootstrap-all actual-all advice-on-failure sanity-check + +actual-all: ${SUBDIR} info $(gsettings_SCHEMAS:.xml=.valid) src-depending-on-lisp + +# ADVICE-ON-FAILURE-BEGIN:all +# You could try to: +# - run "make bootstrap", which might fix the problem +# - run "make V=1", which displays the full commands invoked by make, +# to further investigate the problem +# ADVICE-ON-FAILURE-END:all + +# ADVICE-ON-FAILURE-BEGIN:bootstrap +# You could try to: +# - run "make extraclean" and run "make" again (or, equivalently, run +# "make bootstrap configure=default"), to rebuild Emacs with the +# default configuration options, which might fix the problem +# - run "git clean -fdx" and run "make bootstrap" again, which might +# fix the problem if "make bootstrap configure=default" did not +# !BEWARE! "git clean -fdx" deletes all files that are not under +# !BEWARE! version control, which means that all changes to such +# !BEWARE! files will be lost and cannot be restored later +# - run "make V=1", which displays the full commands invoked by make, +# to further investigate the problem +# - report the problem and ask for help by sending an email to +# bug-gnu-emacs@gnu.org, mentioning at least the build error +# message, the platform, and the repository revision displayed by +# "git rev-parse HEAD" +# ADVICE-ON-FAILURE-END:bootstrap + +advice-on-failure: + @[ -f .no-advice-on-failure ] && exit ${exit-status}; true + @echo >&2 '***' + @echo >&2 '*** '"\"make ${make-target}\" failed with exit status ${exit-status}." + @echo >&2 '***' + @cat Makefile | \ + sed -n '/^# ADVICE-ON-FAILURE-BEGIN:${make-target}/,$${p;/^# ADVICE-ON-FAILURE-END:${make-target}/q;};' | \ + sed 's/^# /*** /' | grep -v '^\*\*\* ADVICE-ON-FAILURE-' >&2 + @echo >&2 '***' + @exit ${exit-status} + +sanity-check: + @[ -f .no-advice-on-failure ] && exit 0; true + @v=$$(src/emacs${EXEEXT} --batch --eval \ + '(progn (defun f (n) (if (= 0 n) 1 (* n (f (- n 1))))) (princ (f 10)))' \ + 2> /dev/null); \ + [ "X$$v" = "X3628800" ] && exit 0; \ + echo >&2 '***'; \ + echo >&2 '*** '"\"make ${make-target}\" succeeded, but Emacs is not functional."; \ + echo >&2 '***'; \ + cat Makefile | \ + sed -n '/^# ADVICE-ON-FAILURE-BEGIN:${make-target}/,$${p;/^# ADVICE-ON-FAILURE-END:${make-target}/q;};' | \ + sed 's/^# /*** /' | grep -v '^\*\*\* ADVICE-ON-FAILURE-' >&2; \ + echo >&2 '***'; \ + exit 1 .PHONY: all ${SUBDIR} blessmail epaths-force epaths-force-w32 epaths-force-ns-self-contained etc-emacsver +# Changes in lisp may require us to reconsider the build in src. For +# example, if loaddefs.{el,elc} were built in lisp, we need a new +# .pdmp containing the new autoloads. +.PHONY: src-depending-on-lisp +src-depending-on-lisp: lisp + ${MAKE} -C src BIN_DESTDIR='$(BIN_DESTDIR)' ELN_DESTDIR='$(ELN_DESTDIR)' + # If configure were to just generate emacsver.tex from emacsver.tex.in # in the normal way, the timestamp of emacsver.tex would always be # newer than that of the pdf files, which are prebuilt in release tarfiles. @@ -431,6 +517,10 @@ epaths-force-ns-self-contained: epaths-force -e 's;${ns_appdir}/;;') && \ ${srcdir}/build-aux/move-if-change epaths.h.$$$$ src/epaths.h +ifneq ($(NTDIR),) +$(NTDIR): lib +endif + lib-src src: $(NTDIR) lib src: lib-src @@ -442,18 +532,16 @@ lisp: src lib lib-src lisp nt: Makefile $(MAKE) -C $@ all -# Ideally, VCSWITNESS should be a file that is modified whenever the -# repository registers a commit from either a local checkin or a -# repository pull. In git there is no single file that guarantees -# this, but the local log for the current head should be close enough. -# +trampolines: src lisp +ifeq ($(HAVE_NATIVE_COMP),yes) + $(MAKE) -C lisp trampolines +endif + # Pass an unexpanded $srcdir to src's Makefile, which then # expands it using its own value of srcdir (which points to the # source directory of src/). -dirstate = .git/logs/HEAD -VCSWITNESS = $(if $(wildcard $(srcdir)/$(dirstate)),$$(srcdir)/../$(dirstate)) src: Makefile - $(MAKE) -C $@ VCSWITNESS='$(VCSWITNESS)' BIN_DESTDIR='$(BIN_DESTDIR)' \ + $(MAKE) -C $@ BIN_DESTDIR='$(BIN_DESTDIR)' \ ELN_DESTDIR='$(ELN_DESTDIR)' all blessmail: Makefile src @@ -501,7 +589,7 @@ $(srcdir)/configure: $(srcdir)/configure.ac $(srcdir)/m4/*.m4 ## don't have to duplicate the list of utilities to install in ## this Makefile as well. -install: all install-arch-indep install-etcdoc install-arch-dep install-$(NTDIR) blessmail install-eln install-gsettings-schemas +install: actual-all install-arch-indep install-etcdoc install-arch-dep install-$(NTDIR) blessmail install-eln install-gsettings-schemas @true ## Ensure that $subdir contains a subdirs.el file. @@ -527,8 +615,14 @@ install-arch-dep: src install-arch-indep install-etcdoc install-$(NTDIR) $(MAKE) -C lib-src install ifeq (${ns_self_contained},no) ${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} "$(DESTDIR)${bindir}/$(EMACSFULL)" +ifeq (${HAVE_BE_APP},yes) + ${INSTALL_PROGRAM} $(INSTALL_STRIP) src/Emacs "$(DESTDIR)${prefix}/apps/Emacs" +endif ifeq (${DUMPING},pdumper) - ${INSTALL_DATA} src/emacs.pdmp "$(DESTDIR)${libexecdir}/emacs/${version}/${configuration}"/emacs.pdmp +ifeq (${HAVE_BE_APP},yes) + ${INSTALL_DATA} src/Emacs.pdmp "$(DESTDIR)${libexecdir}/emacs/${version}/${configuration}"/Emacs.pdmp +endif + ${INSTALL_DATA} src/emacs.pdmp "$(DESTDIR)${libexecdir}/emacs/${version}/${configuration}"/emacs-${EMACS_PDMP} endif -chmod 755 "$(DESTDIR)${bindir}/$(EMACSFULL)" ifndef NO_BIN_LINK @@ -611,8 +705,8 @@ install-arch-indep: lisp install-info install-man ${INSTALL_ARCH_INDEP_EXTRA} [ -d $${dir} ] || exit 1 ; \ dest="$$1" ; shift ; \ if [ -d "$${dest}" ]; then \ - exp_dest=`cd "$${dest}" && /bin/pwd`; \ - [ "$$exp_dest" = "`cd $${dir} && /bin/pwd`" ] && continue ; \ + exp_dest=`cd "$${dest}" && pwd -P`; \ + [ "$$exp_dest" = "`cd $${dir} && pwd -P`" ] && continue ; \ else true; \ fi; \ rm -rf "$${dest}" ; \ @@ -668,15 +762,13 @@ install-arch-indep: lisp install-info install-man ${INSTALL_ARCH_INDEP_EXTRA} install-etcdoc: src install-arch-indep -unset CDPATH; \ umask 022; ${MKDIR_P} "$(DESTDIR)${etcdocdir}" ; \ - exp_etcdocdir=`cd "$(DESTDIR)${etcdocdir}"; /bin/pwd`; \ - if [ "`cd ./etc; /bin/pwd`" != "$$exp_etcdocdir" ]; \ + exp_etcdocdir=`cd "$(DESTDIR)${etcdocdir}"; pwd -P`; \ + if [ "`cd ./etc; pwd -P`" != "$$exp_etcdocdir" ]; \ then \ docfile="DOC"; \ printf 'Copying %s to %s ...\n' "etc/$$docfile" \ "$(DESTDIR)${etcdocdir}"; \ ${INSTALL_DATA} etc/$${docfile} "$(DESTDIR)${etcdocdir}/$${docfile}"; \ - $(set_installuser); \ - chown $${installuser} "$(DESTDIR)${etcdocdir}/$${docfile}" || true ; \ else true; fi ## FIXME: @@ -686,9 +778,9 @@ install-etcdoc: src install-arch-indep install-info: info umask 022; ${MKDIR_P} "$(DESTDIR)${infodir}" -unset CDPATH; \ - thisdir=`/bin/pwd`; \ - exp_infodir=`cd "$(DESTDIR)${infodir}" && /bin/pwd`; \ - if [ "`cd ${srcdir}/info && /bin/pwd`" = "$$exp_infodir" ]; then \ + thisdir=`pwd -P`; \ + exp_infodir=`cd "$(DESTDIR)${infodir}" && pwd -P`; \ + if [ "`cd ${srcdir}/info && pwd -P`" = "$$exp_infodir" ]; then \ true; \ else \ [ -f "$(DESTDIR)${infodir}/dir" ] || \ @@ -717,7 +809,7 @@ install-info: info ## but not sure if portable. install-man: umask 022; ${MKDIR_P} "$(DESTDIR)${man1dir}" - thisdir=`/bin/pwd`; \ + thisdir=`pwd -P`; \ cd ${mansrcdir}; \ for page in *.1; do \ test "$$page" = ChangeLog.1 && continue; \ @@ -738,6 +830,9 @@ EMACS_ICON=emacs ifeq (${USE_STARTUP_NOTIFICATION},no) USE_STARTUP_NOTIFICATION_SED_CMD=-e "/^StartupNotify=true$$/d" endif +ifeq ($(HAVE_PGTK),yes) +USE_WAYLAND_DISPLAY_SED_CMD=-e "s/display=[^ ]*/reuse-frame/" +endif install-etc: umask 022; ${MKDIR_P} "$(DESTDIR)${desktopdir}" tmp=etc/emacs.tmpdesktop; rm -f $${tmp}; \ @@ -749,9 +844,10 @@ install-etc: rm -f $${tmp} tmp=etc/emacsclient.tmpdesktop; rm -f $${tmp}; \ client_name=`echo emacsclient | sed '$(TRANSFORM)'`${EXEEXT}; \ - sed -e "/^Exec=emacsclient/ s|emacsclient|${bindir}/$${client_name}|" \ + sed -e "/^Exec=/ s|emacsclient|${bindir}/$${client_name}|" \ -e "/^Icon=emacs/ s/emacs/${EMACS_NAME}/" \ $(USE_STARTUP_NOTIFICATION_SED_CMD) \ + $(USE_WAYLAND_DISPLAY_SED_CMD) \ ${srcdir}/etc/emacsclient.desktop > $${tmp}; \ ${INSTALL_DATA} $${tmp} "$(DESTDIR)${desktopdir}/$${client_name}.desktop"; \ rm -f $${tmp} @@ -763,8 +859,9 @@ install-etc: rm -f $${tmp} tmp=etc/emacsclient-mail.tmpdesktop; rm -f $${tmp}; \ client_name=`echo emacsclient | sed '$(TRANSFORM)'`${EXEEXT}; \ - sed -e "/^Exec=emacsclient/ s|emacsclient|${bindir}/$${client_name}|" \ + sed -e "/^Exec=/ s|emacsclient|${bindir}/$${client_name}|" \ -e "/^Icon=emacs/ s/emacs/${EMACS_NAME}/" \ + $(USE_WAYLAND_DISPLAY_SED_CMD) \ ${srcdir}/etc/emacsclient-mail.desktop > $${tmp}; \ ${INSTALL_DATA} $${tmp} "$(DESTDIR)${desktopdir}/$${client_name}-mail.desktop"; \ rm -f $${tmp} @@ -784,7 +881,7 @@ install-etc: ${srcdir}/etc/emacs.service > $${tmp}; \ $(INSTALL_DATA) $${tmp} "$(DESTDIR)$(systemdunitdir)/${EMACS_NAME}.service"; \ rm -f $${tmp} - thisdir=`/bin/pwd`; \ + thisdir=`pwd -P`; \ cd ${iconsrcdir} || exit 1; umask 022 ; \ for dir in */*/apps */*/mimetypes; do \ [ -d $${dir} ] || continue ; \ @@ -821,8 +918,8 @@ uninstall: uninstall-$(NTDIR) uninstall-doc uninstall-gsettings-schemas -unset CDPATH; \ for dir in "$(DESTDIR)${lispdir}" "$(DESTDIR)${etcdir}" "$(ELN_DESTDIR)" ; do \ if [ -d "$${dir}" ]; then \ - case `cd "$${dir}" ; /bin/pwd` in \ - "`cd ${srcdir} ; /bin/pwd`"* ) ;; \ + case `cd "$${dir}" ; pwd -P` in \ + "`cd ${srcdir} ; pwd -P`"* ) ;; \ * ) rm -rf "$${dir}" ;; \ esac ; \ case "$${dir}" in \ @@ -833,7 +930,7 @@ uninstall: uninstall-$(NTDIR) uninstall-doc uninstall-gsettings-schemas fi ; \ done -rm -rf "$(DESTDIR)${libexecdir}/emacs/${version}" - thisdir=`/bin/pwd`; \ + thisdir=`pwd -P`; \ (info_misc=`MAKEFLAGS= $(MAKE) --no-print-directory -s -C doc/misc echo-info`; \ if cd "$(DESTDIR)${infodir}"; then \ for elt in ${INFO_NONMISC} $${info_misc}; do \ @@ -919,7 +1016,7 @@ clean: $(clean_dirs:=_clean) clean-gsettings-schemas ### 'bootclean' ### Delete all files that need to be remade for a clean bootstrap. top_bootclean=\ - rm -f config.cache config.log ${srcdir}/doc/man/emacs.1 + rm -f config.log ${srcdir}/doc/man/emacs.1 ### 'distclean' ### Delete all files from the current directory that are created by @@ -929,15 +1026,18 @@ top_bootclean=\ ### distribution. top_distclean=\ ${top_bootclean}; \ - rm -f config.status config.log~ \ + rm -f config.cache config.status config.log~ \ Makefile makefile lib/gnulib.mk ${SUBDIR_MAKEFILES} distclean_dirs = $(clean_dirs) leim lisp admin/grammars $(foreach dir,$(distclean_dirs),$(eval $(call submake_template,$(dir),distclean))) -distclean: $(distclean_dirs:=_distclean) +distclean: $(distclean_dirs:=_distclean) clean-gsettings-schemas ${top_distclean} +ifeq ($(HAVE_NATIVE_COMP),yes) + rm -rf native-lisp +endif ### 'bootstrap-clean' ### Delete everything that can be reconstructed by 'make' and that @@ -948,6 +1048,10 @@ bootstrap-clean: $(distclean_dirs:=_bootstrap-clean) [ ! -f config.log ] || mv -f config.log config.log~ rm -rf ${srcdir}/info rm -f ${srcdir}/etc/refcards/emacsver.tex + rm -rf native-lisp/ lisp/leim/ja-dic/ +ifndef FAST + rm -fr autom4te.cache config.cache +endif ${top_bootclean} ### 'maintainer-clean' @@ -1061,8 +1165,8 @@ info_dir_deps = \ ## but then we would need to depend on ${INFOS}, which would ## slow down parallelization. ${srcdir}/info/dir: ${info_dir_deps} - $(AM_V_at)${MKDIR_P} ${srcdir}/info - $(AM_V_GEN)(cd ${srcdir}/doc && \ + $(AM_V_GEN)${MKDIR_P} ${srcdir}/info + $(AM_V_at)(cd ${srcdir}/doc && \ AWK='${AWK}' ../build-aux/make-info-dir ${info_dir_inputs} \ ) >$@.tmp && mv $@.tmp $@ @@ -1141,17 +1245,30 @@ check-info: info ### This first cleans the lisp subdirectory, removing all compiled ### Lisp files. Then re-run make to build all the files anew. -.PHONY: bootstrap +.PHONY: bootstrap actual-bootstrap + +bootstrap: + $(MAKE) actual-bootstrap || $(MAKE) advice-on-failure make-target=bootstrap exit-status=$$? + $(MAKE) sanity-check make-target=bootstrap -# Bootstrapping does the following: +# Without a 'configure' variable, bootstrapping does the following: # * Remove files to start from a bootstrap-clean slate. # * Run autogen.sh. # * Rebuild Makefile, to update the build procedure itself. # * Do the actual build. -bootstrap: bootstrap-clean +# With a 'configure' variable, bootstrapping does the following: +# * Remove files to start from an extraclean slate. +# * Do the actual build, during which the 'configure' variable is +# used (see the Makefile goal in GNUmakefile). +actual-bootstrap: +ifndef configure + $(MAKE) bootstrap-clean cd $(srcdir) && ./autogen.sh autoconf $(MAKE) MAKEFILE_NAME=force-Makefile force-Makefile - $(MAKE) all +else + $(MAKE) extraclean +endif + $(MAKE) actual-all .PHONY: ChangeLog change-history change-history-commit change-history-nocommit .PHONY: preferred-branch-is-current unchanged-history-files @@ -1161,7 +1278,7 @@ emacslog = build-aux/gitlog-to-emacslog # The ChangeLog history files are called ChangeLog.1, ChangeLog.2, ..., # ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX). $(CHANGELOG_N) stands for # the newest (highest-numbered) ChangeLog history file. -CHANGELOG_HISTORY_INDEX_MAX = 3 +CHANGELOG_HISTORY_INDEX_MAX = 4 CHANGELOG_N = ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX) # Convert git commit log to ChangeLog file. make-dist uses this. @@ -1171,7 +1288,7 @@ ChangeLog: ./$(emacslog) -o $(CHANGELOG) -n $(CHANGELOG_HISTORY_INDEX_MAX) # Check that we are in a good state for changing history. -PREFERRED_BRANCH = emacs-28 +PREFERRED_BRANCH = emacs-29 preferred-branch-is-current: git branch | grep -q '^\* $(PREFERRED_BRANCH)$$' unchanged-history-files: @@ -1223,9 +1340,30 @@ gitmerge: -l ${srcdir}/admin/gitmerge.el \ --eval '(setq gitmerge-minimum-missing ${GITMERGE_NMIN})' -f gitmerge -@GSETTINGS_RULES@ - install-gsettings-schemas: +ifeq ($(HAVE_PGTK)$(HAVE_GSETTINGS),yesyes) + $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)" + $(INSTALL_DATA) $(srcdir)/$(gsettings_SCHEMAS) "$(DESTDIR)$(gsettingsschemadir)" + if [ -z "$(DESTDIR)" ]; then $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); fi +endif + uninstall-gsettings-schemas: +ifeq ($(HAVE_PGTK)$(HAVE_GSETTINGS),yesyes) + for x in $(gsettings_SCHEMAS); do \ + xx=`echo $$x | sed -e 's|.*/||'`; \ + rm -f "$(DESTDIR)$(gsettingsschemadir)/$${xx}"; \ + done + if [ -z "$(DESTDIR)" ]; then $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); fi +endif + clean-gsettings-schemas: -$(gsettings_SCHEMAS:.xml=.valid): +ifeq ($(HAVE_PGTK)$(HAVE_GSETTINGS),yesyes) + rm -f $(gsettings_SCHEMAS:.xml=.valid) +endif + +$(gsettings_SCHEMAS:.xml=.valid): $(srcdir)/$(gsettings_SCHEMAS) +ifeq ($(HAVE_PGTK)$(HAVE_GSETTINGS),yesyes) + $(GLIB_COMPILE_SCHEMAS) --strict --dry-run --schema-file=$(srcdir)/$(gsettings_SCHEMAS) + $(MKDIR_P) $(@D) + touch $@ +endif diff --git a/README b/README index dfa6fbc208dc..a968b29f71c3 100644 --- a/README +++ b/README @@ -1,8 +1,8 @@ -Copyright (C) 2001-2023 Free Software Foundation, Inc. +Copyright (C) 2001-2024 Free Software Foundation, Inc. See the end of the file for license conditions. -This directory tree holds version 28.3 of GNU Emacs, the extensible, +This directory tree holds version 29.2.50 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. The file INSTALL in this directory says how to build and install GNU diff --git a/admin/CPP-DEFINES b/admin/CPP-DEFINES index 68c12438f5ac..06986ec8f48f 100644 --- a/admin/CPP-DEFINES +++ b/admin/CPP-DEFINES @@ -24,6 +24,7 @@ DARWIN_OS Compiling on macOS or pure Darwin (and using s/darwin.h). SOLARIS2 USG USG5_4 +HAIKU Compiling on Haiku. ** Distinguishing GUIs ** @@ -32,16 +33,38 @@ HAVE_NS Use the NeXT/OpenStep/Cocoa UI under macOS or GNUstep. NS_IMPL_GNUSTEP Compile support for GNUstep implementation of NS GUI API. NS_IMPL_COCOA Compile support for Cocoa (Apple) implementation of NS GUI API. HAVE_X11 Compile support for the X11 GUI. +HAVE_PGTK Compile support for using GTK itself without directly using X Windows APIs. +HAVE_HAIKU Compile support for the Haiku window system. HAVE_X_WINDOWS Compile support for X Window system (It looks like, nowadays, if HAVE_X11 is set, HAVE_X_WINDOWS must be, and vice versa. At least, this is true for configure, and msdos; not sure about nt.) -HAVE_X11R6 -HAVE_X11R6_XIM -HAVE_X11XTR6 + +** X Windows features ** +HAVE_X11R6 Whether or not the system has X11R6. (Always defined.) +HAVE_X11R6_XIM Whether or not the system supports XIM features introduced in R6. +HAVE_X11XTR6 Whether or not the Xt is from X11R6 or newer. + USE_LUCID Use the Lucid toolkit for menus&scrollbars. Requires HAVE_X11. USE_MOTIF Use the Motif toolkit for menus&scrollbars. Requires HAVE_X11. -USE_GTK Use the Gtk toolkit for menus&scrollbars. Requires HAVE_X11. +USE_GTK Use the Gtk toolkit for menus&scrollbars. Requires HAVE_X11 or HAVE_PGTK. +HAVE_GTK3 Use GTK version 3 or later. Requires HAVE_X11. + +HAVE_XCB_SHAPE Whether or not XCB supports the Nonrectangular Window Shape extension. +HAVE_XCOMPOSITE Whether or not the XCOMPOSITE extension library is present. +HAVE_XDBE Whether or not to use the Xdbe extension for double buffering. +HAVE_XFIXES Whether or not the Xfixes extension library is present. +HAVE_XINERAMA Whether or not the Xinerama extension library is present. +HAVE_XINPUT2 Whether or not to use version 2 of the X Input Extension for input. +HAVE_XINPUT2_1 Whether or not version 2.1 of the X Input Extension is supported. +HAVE_XINPUT2_2 Whether or not version 2.2 of the X Input Extension is supported. +HAVE_XINPUT2_3 Whether or not version 2.3 of the X Input Extension is supported. +HAVE_XINPUT2_4 Whether or not version 2.4 of the X Input Extension is supported. +HAVE_XKB Whether or not the XKB extension library is present. +HAVE_XRANDR Whether or not the RandR extension library is present. +HAVE_XSHAPE Whether or not the Nonrectangular Window Shape extension library is present. +HAVE_XSYNC Whether or not the X Synchronization Extension library is present. +USE_XCB Whether or not the XCB library is used to optimize some X requests. ** Frame types ** @@ -287,6 +310,8 @@ HAVE_UTIMENSAT HAVE_UTMP_H HAVE_VFORK HAVE_VFORK_H +HAVE_WEBP +HAVE_SQLITE3 HAVE_WCHAR_H HAVE_WCHAR_T HAVE_WINDOW_SYSTEM diff --git a/admin/ChangeLog.1 b/admin/ChangeLog.1 index ed8b148b99b4..65f0b94c071b 100644 --- a/admin/ChangeLog.1 +++ b/admin/ChangeLog.1 @@ -2577,7 +2577,7 @@ ;; coding: utf-8 ;; End: - Copyright (C) 2001-2023 Free Software Foundation, Inc. + Copyright (C) 2001-2024 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/admin/MAINTAINERS b/admin/MAINTAINERS index 02b8cf39bd6e..98bbfa5bd7cc 100644 --- a/admin/MAINTAINERS +++ b/admin/MAINTAINERS @@ -5,6 +5,11 @@ what parts of the Emacs distribution. The areas can be defined "arbitrarily", but should provide fairly well-defined boundaries so that there are not too many ambiguities. +The (co-)maintainers of Emacs are: + + Eli Zaretskii <eliz@gnu.org> + Stefan Kangas <stefankangas@gmail.com> + ============================================================================== 1. Areas that someone wants to be maintaining (i.e. has a particularly keen interest in). There's no need to list files where you are @@ -58,10 +63,7 @@ Artur Malabarba Michael Albinus Tramp - lisp/net/tramp*.el lisp/url/url-tramp.el - doc/misc/tramp*.texi - test/lisp/net/tramp*-tests.el test/lisp/url/url-tramp-tests.el D-Bus @@ -138,6 +140,31 @@ Andrea Corallo lisp/emacs-lisp/comp-cstr.el test/src/comp-*.el +Stefan Kangas + admin/automerge + admin/update_autogen + +Po Lu + The Haiku port: + src/haikuterm.c + src/haikufns.c + src/haikuimage.c + src/haikuselect.c + src/haiku_io.c + src/haiku.c + src/haiku_select.cc + src/haiku_support.cc + src/haiku_font_support.cc + src/haiku_draw_support.cc + src/haikugui.h + src/haikuterm.h + src/haikuselect.h + src/haiku_support.h + lisp/term/haiku-win.el + doc/emacs/haiku.texi + + Haiku battery support in lisp/battery.el + ============================================================================== 2. Areas that someone is willing to maintain, although he would not necessarily mind if someone else was the official maintainer. @@ -228,6 +255,7 @@ Michael Albinus lisp/net/ange-ftp.el lisp/notifications.el lisp/shadowfile.el + test/infra/* test/lisp/autorevert-tests.el test/lisp/files-tests.el (file-name-non-special) test/lisp/shadowfile-tests.el @@ -253,19 +281,60 @@ Vibhav Pant lisp/net/browse-url.el lisp/erc/* -Alan Third - The NS port: - nextstep/* - src/ns* - src/*.m - lisp/term/ns-win.el - doc/emacs/macos.texi - Amin Bandali Eshell lisp/eshell/* doc/misc/eshell.texi +Po Lu + The X port + src/xterm.c + src/xfns.c + X11 and GTK xwidget support in src/xwidget.c + Precision pixel scrolling in lisp/pixel-scroll.el + +============================================================================== +3. Externally maintained packages. +============================================================================== + +Tramp + Maintainer: Michael Albinus + Repository: git://git.savannah.gnu.org/tramp.git + Mailing List: tramp-devel@gnu.org + Bug Reports: M-x tramp-bug + Notes: For backward compatibility requirements, see + lisp/net/trampver.el. + + lisp/net/tramp*.el + doc/misc/tramp*.texi + test/lisp/net/tramp*-tests.el + +Modus themes + Maintainer: Protesilaos Stavrou + Repository: https://git.sr.ht/~protesilaos + Mailing list: https://lists.sr.ht/~protesilaos/modus-themes + Bug Reports: M-x modus-themes-report-bug + + doc/misc/modus-themes.org + etc/themes/modus*.el + +Org Mode + Home Page: https://orgmode.org/ + Maintainer: Org Mode developers + Repository: git://git.sv.gnu.org/emacs/org-mode.git + Mailing list: emacs-orgmode@gnu.org + Bug Reports: M-x org-submit-bug-report + Notes: Org Mode is maintained as a separate project that is + periodically merged into Emacs. To view or participate in + Org Mode development, please go to https://orgmode.org/ and + follow the instructions there. + + lisp/org/*.el + etc/org/* + etc/refcards/orgcard.tex + doc/misc/org.org + doc/misc/org-setup.org + ;;; Local Variables: ;;; coding: utf-8 diff --git a/admin/README b/admin/README index 37e55005571d..419039b4fbab 100644 --- a/admin/README +++ b/admin/README @@ -1,4 +1,4 @@ -Copyright (C) 2001-2023 Free Software Foundation, Inc. +Copyright (C) 2001-2024 Free Software Foundation, Inc. See the end of the file for license conditions. @@ -39,6 +39,11 @@ Build Emacs in various ways. Install emacs quickly ("incrementally"). +** run-codespell + +Run the codespell tool on the Emacs sources. Requires codespell to be +installed first. + ** alloc-colors.c A utility program that allocates a given number of colors on X. Can @@ -57,15 +62,16 @@ Tests for custom types and load problems. Show files added/removed between two tar files. -Brief description of sub-directories: +* Brief description of sub-directories. charsets scripts for generating charset map files in ../etc/charsets -coccinelle patches to make coccinelle work with - the latest Emacs version. Since they - apply a few minor changes in Emacs internals - in multiple places, they are trivial for - copyright purposes. +coccinelle semantic patches for use with the static code + analyzer coccinelle. Since they apply a few + minor changes in Emacs internals in multiple + places, they are trivial for copyright + purposes. +codespell supporting files for the run-codespell script. grammars wisent and bovine grammars, used to produce files in lisp/cedet/. notes miscellaneous notes related to administrative diff --git a/admin/admin.el b/admin/admin.el index a351cf2d8267..30bc147940c5 100644 --- a/admin/admin.el +++ b/admin/admin.el @@ -1,6 +1,6 @@ ;;; admin.el --- utilities for Emacs administration -*- lexical-binding: t; -*- -;; Copyright (C) 2001-2023 Free Software Foundation, Inc. +;; Copyright (C) 2001-2024 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. @@ -88,6 +88,9 @@ Optional argument DATE is the release date, default today." (kill-buffer) (message "No need to update `%s'" file))) +(defvar admin-git-command (executable-find "git") + "The `git' program to use.") + (defun set-version (root version) "Set Emacs version to VERSION in relevant files under ROOT. Root must be the root of an Emacs source tree." @@ -96,6 +99,8 @@ Root must be the root of an Emacs source tree." (read-string "Version number: " emacs-version))) (unless (file-exists-p (expand-file-name "src/emacs.c" root)) (user-error "%s doesn't seem to be the root of an Emacs source tree" root)) + (unless admin-git-command + (user-error "Could not find git; please install git and move NEWS manually")) (message "Setting version numbers...") ;; There's also a "version 3" (standing for GPLv3) at the end of ;; `README', but since `set-version-in-file' only replaces the first @@ -105,7 +110,7 @@ Root must be the root of an Emacs source tree." (submatch (1+ (in "0-9.")))))) (set-version-in-file root "configure.ac" version (rx (and "AC_INIT" (1+ (not (in ?,))) - ?, (0+ space) + ?, (0+ space) ?\[ (submatch (1+ (in "0-9.")))))) (set-version-in-file root "nt/README.W32" version (rx (and "version" (1+ space) @@ -119,9 +124,6 @@ Root must be the root of an Emacs source tree." ;; Major version only. (when (string-match "\\([0-9]\\{2,\\}\\)" version) (let ((newmajor (match-string 1 version))) - (set-version-in-file root "src/msdos.c" newmajor - (rx (and "Vwindow_system_version" (1+ not-newline) - ?\( (submatch (1+ (in "0-9"))) ?\)))) (set-version-in-file root "etc/refcards/ru-refcard.tex" newmajor "\\\\newcommand{\\\\versionemacs}\\[0\\]\ {\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs"))) @@ -157,7 +159,13 @@ Root must be the root of an Emacs source tree." Documentation changes might not have been completed!")))) (when (and majorbump (not (file-exists-p oldnewsfile))) - (rename-file newsfile oldnewsfile) + (call-process admin-git-command nil nil nil + "mv" newsfile oldnewsfile) + (when (y-or-n-p "Commit move of NEWS file?") + (call-process admin-git-command nil nil nil + "commit" "-m" (format "; Move etc/%s to etc/%s" + (file-name-nondirectory newsfile) + (file-name-nondirectory oldnewsfile)))) (find-file oldnewsfile) ; to prompt you to commit it (copy-file oldnewsfile newsfile) (with-temp-buffer diff --git a/admin/alloc-colors.c b/admin/alloc-colors.c index 1c597bf8ff43..25910ad9148c 100644 --- a/admin/alloc-colors.c +++ b/admin/alloc-colors.c @@ -1,6 +1,6 @@ /* Allocate X colors. Used for testing with dense colormaps. -Copyright (C) 2001-2023 Free Software Foundation, Inc. +Copyright (C) 2001-2024 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -23,6 +23,7 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */ #include <stdlib.h> #include <stdarg.h> #include <unistd.h> +#include <string.h> void fatal (const char *fmt, ...) diff --git a/admin/authors.el b/admin/authors.el index 0ea4a1aa6ebf..083023a3dad6 100644 --- a/admin/authors.el +++ b/admin/authors.el @@ -1,6 +1,6 @@ ;;; authors.el --- utility for maintaining Emacs's AUTHORS file -*- lexical-binding: t; -*- -;; Copyright (C) 2000-2023 Free Software Foundation, Inc. +;; Copyright (C) 2000-2024 Free Software Foundation, Inc. ;; Author: Gerd Moellmann <gerd@gnu.org> ;; Maintainer: emacs-devel@gnu.org @@ -48,7 +48,9 @@ files.") ("Alexander Gramiak" "Alex Gramiak") ("Alexandru Harsanyi" "Alex Harsanyi") ("Álvar Jesús Ibeas Martín" "Álvar Ibeas") + (nil "ambihelical") ("Andrea Corallo" "AndreaCorallo") + ("Andrii Kolomoiets" "andreyk\\.mad@gmail\\.com") ("Andrew Csillag" "Drew Csillag") ("Andrew G Cohen" "Andrew Cohen") ("Anna M. Bigatti" "Anna Bigatti") @@ -56,19 +58,26 @@ files.") ("Barry A. Warsaw" "Barry A. Warsaw, Century Computing, Inc." "Barry A. Warsaw, ITB" "Barry Warsaw") ("Bastien Guerry" "Bastien .*bzg") + ("Benjamin Carlsson" "glacials" "ben@twos\\.dev") + ("Benjamin Schwerdtner" "Benjamin\\.Schwerdtner@gmail\\.com" "Ben Schw") ("Bill Carpenter" "WJ Carpenter") ("Bill Mann" "William F. Mann") ("Bill Rozas" "Guillermo J. Rozas") - (nil "binjo.cn@gmail.com") - (nil "bug-gnu-emacs@gnu.org") ; mistake + ("Billy Zheng" "vil963@gmail\\.com") + (nil "binjo\\.cn@gmail\\.com") + (nil "bug-gnu-emacs@gnu\\.org") ; mistake ("Björn Torkelsson" "Bjorn Torkelsson") ("Brian Fox" "Brian J. Fox") ("Brian P Templeton" "BT Templeton") ("Brian Sniffen" "Brian T. Sniffen") + (nil "brotzeitmacher@gmail\\.com") (nil "castor@my-dejanews") - (nil "chengang31@gmail.com") + (nil "chengang31@gmail\\.com") (nil "chuntaro") ("Clément Pit-Claudel" "Clément Pit--Claudel") + (nil "Cristian" "crstml@libero\\.it") + ("Le Trung Dan" "daanturo@gmail\\.com" "Daanturo") + ("Daniel Freeman" "dannyfreeman") ("David Abrahams" "Dave Abrahams") ("David J. Biesack" "David Biesack") ("David De La Harpe Golden" "David Golden") @@ -78,10 +87,10 @@ files.") ("David M. Koppelman" "David Koppelman") ("David M. Smith" "David Smith" "David M Smith") ("David O'Toole" "David T. O'Toole") - (nil "dalanicolai") + ("Daniel Laurens Nicolai" "dalanicolai") (nil "deech@deech") ("Deepak Goel" "D. Goel") - ("Earl Hyatt" "Earl" "ej32u@protonmail.com") + ("Earl Hyatt" "Earl" "ej32u@protonmail\\.com") ("Ed L. Cashin" "Ed L Cashin") ("Edward M. Reingold" "Ed\\(ward\\( M\\)?\\)? Reingold" "Reingold Edward M") ("Emilio C. Lopes" "Emilio Lopes") @@ -90,18 +99,29 @@ files.") ("Etienne Prud’Homme" "Etienne Prud'Homme") ("Fabián Ezequiel Gallina" "Fabian Ezequiel Gallina" "Fabi.n E\\. Gallina") (nil "felix.*EmacsWiki") + (nil "felix\\.dick@web\\.de") + ("Felicián Németh" "Felician Nemeth") (nil "foudfou") + ("Feraidoon Mehri" + "NightMachinary" + "rudiwillalwaysloveyou@gmail\\.com" "fifymehry@gmail\\.com") ("Francis Litterio" "Fran Litterio") ("Francis J. Wright" "Dr Francis J. Wright" "Francis Wright") ("François Pinard" "Francois Pinard") ("Francesco Potortì" "Francesco Potorti" "Francesco Potorti`") ("Frederic Pierresteguy" "Fred Pierresteguy") (nil "^FSF") + (nil "galeo") + ("Garid Zorigoo" "garid3000" "garidzorigoo@gmail\\.com") ("Gerd Möllmann" "Gerd Moellmann") + (nil "haqle314") + ("Grégoire Jadi" "Gregoire Jadi") ("Hallvard B. Furuseth" "Hallvard B Furuseth" "Hallvard Furuseth") + (nil "hokomo@airmail\\.cc" "hokomo") ("Hrvoje Nikšić" "Hrvoje Niksic") ("Ian Dunn" "^Ian D\\>") ;; lisp/org/ChangeLog.1 2010-11-11. + ("Ignacio Casso" "ignacio\\.decasso@imdea\\.org" "ignaciocasso@hotmail\\.com") (nil "immerrr") (nil "aaa bbb") (nil "Code Extracted") ; lisp/newcomment.el's "Author:" header @@ -109,6 +129,7 @@ files.") ("J. Alexander Branham" "Alex Branham") ("Jaeyoun Chung" "Jae-youn Chung" "Jae-you Chung" "Chung Jae-youn") ("Jan Djärv" "Jan D\\>" "Jan Djarv") + ("Jan Synáček" "Jan Synacek") ("João Távora" "João Tãvora") ("Jay K. Adams" "Jay Adams") ("J.D. Smith" "Jd Smith") @@ -118,7 +139,10 @@ files.") ("Jérémie Courrèges-Anglas" "Jeremie Courreges-Anglas") ("Jeremy Bertram Maitin-Shepard" "Jeremy Maitin-Shepard") ("Jérémy Compostella" "Jeremy Compostella") + (nil "jgarte@" "jgart") + (nil "jicksaw@pm\\.me" "jicksaw") ("Jimmy Aguilar Mena" "Ergus") + ("Jindřich Makovička" "Jindrich Makovicka") ("Johan Bockgård" "Johan Bockgard") ("John F. Carr" "John F Carr") ("John J Foerch" "John Foerch") @@ -131,6 +155,7 @@ files.") ("Juan León Lahoz García" "Juan-Leon Lahoz Garcia") ("Jürgen Hötzel" "Juergen Hoetzel") (nil "k3tu0isui") + (nil "kby@tilde\\.team") ("K. Shane Hartman" "Shane Hartman") ("Kai Großjohann" "Kai Grossjohann") ("Karl Berry" "K. Berry") @@ -140,8 +165,15 @@ files.") ("Kenichi Handa" "Ken'ichi Handa" "Kenichi HANDA" "K\\. Handa") ("Kevin Greiner" "Kevin J. Greiner") ("Kim F. Storm" "Kim Storm") + ("Kjartan Óli Ágústsson" "Kjartan Oli Agustsson") + ;; The dash is a kludge, so this contributor is not ignored. + ("kobarity-" "kobarity@gmail\\.com") + ("Koen van Greevenbroek" "realcomplex" "koenvg@posteo\\.net") ("Kyle Jones" "Kyle E. Jones") ("Lars Magne Ingebrigtsen" "Lars Ingebrigtsen") + ("Laurence Warne" "lWarne" "laurencewarne@gmail\\.com") + (nil "lensplaysgames@gmail\\.com") + (nil "lorniu@gmail\\.com") (nil "LynX@bk.ru") (nil "lu4nx") ("Marcus G. Daniels" "Marcus Daniels") @@ -163,14 +195,20 @@ files.") ("Michael R. Cook" "Michael Cook") ("Michael Sperber" "Mike Sperber" "Michael Sperber \\[Mr. Preprocessor\\]") ("Michalis V" "^mvar") - ("Miha Rihtaršič" "Miha Rihtarsic") + ("Miha Rihtaršič" "Miha Rihtarsic" "miha@kamnitnik\\.top" "miha") ("Mikio Nakajima" "Nakajima Mikio") + (nil "montag451@laposte\\.net") + (nil "na@aisrntairetnraoitn") ("Nelson Jose dos Santos Ferreira" "Nelson Ferreira") + ("Noah Peart" "noah\\.v\\.peart@gmail\\.com") ("Noorul Islam" "Noorul Islam K M") ;;; ("Tetsurou Okazaki" "OKAZAKI Tetsurou") ; FIXME? + (nil "odanoburu@") + (nil "one\\.last\\.kiss@outlook\\.com") + ("Cao ZhenXiang" "mail@ookami\\.one") ("Óscar Fuentes" "Oscar Fuentes") (nil "pillule") - (nil "psyberbits@gmail.com") + (nil "psyberbits@gmail\\.com") ("Paul Eggert" "Paul R\\. Eggert") ("Pavel Janík" "Pavel Janík Ml." "Pavel Janik Ml." "Pavel Janik") ("Pavel Kobiakov" "Pavel Kobyakov") @@ -183,14 +221,18 @@ files.") ("Philipp Stephani" "Philipp .*phst@google") ("Piotr Zieliński" "Piotr Zielinski") ("Po Lu" "Po Lu Via") ; looks like a mistake + ("Po Lu" "oldosfan" "luangruo@yahoo\\.com") ("Przemysław Wojnowski" "Przemyslaw Wojnowski") - ("R. Bernstein" "rb@dustyfeet.com") + ("Qifan Wang" "LdBeth" "andpuke@foxmail\\.com") + ("R. Bernstein" "rb@dustyfeet\\.com") ("Rainer Schöpf" "Rainer Schoepf") ("Raja R. Harinath" "Raja R Harinath") ("Rasmus Pank Roulund" "Rasmus .*rasmus@gmx") + (nil "rbrtb@") ("Richard G. Bielawski" "Richard G Bielawski" "Richard Bielawski") ("Richard King" "Dick King") ("Richard M. Stallman" "Richard Stallman" "rms@gnu.org") + (nil "webmaster@robario\\.com") ("Robert J. Chassell" "Bob Chassell") ("Roberto Huelga Díaz" "Roberto Huelga") ("Rodney J. Whitby" "Rod Whitby") @@ -198,17 +240,21 @@ files.") ("Ron Schnell" "Ronnie Schnell") ("Rui-Tao Dong" "Rui-Tao Dong ~{6-HpLN~}") ("Ryan Thompson" "Ryan .*rct@thompsonclan") + (nil "rvs314") (nil "rzl24ozi") ("Sacha Chua" "Sandra Jean Chua") ("Sam Steingold" "Sam Shteingold") ("Satyaki Das" "Indexed search by Satyaki Das") ("Sébastien Vauban" "Sebastien Vauban") ("Sergey Litvinov" "Litvinov Sergey") - ("Simen Heggestøyl" "simenheg@gmail.com") + ("Simen Heggestøyl" "simenheg@gmail\\.com") (nil "prime.wizard") ("Shun-ichi Goto" "Shun-ichi GOTO") + ;; The trailing dash is a kludge, so this contributor is not ignored. + ("skykanin-" "skykanin@users\\.noreply\\.github\\.com") ;; There are other Stefans. ;;; ("Stefan Monnier" "Stefan") + (nil "ssnnoo") ("Steven L. Baur" "SL Baur" "Steven L Baur") ("Stewart M. Clamen" "Stewart Clamen") ("Stuart D. Herring" "Stuart Herring" "Davis Herring") @@ -222,6 +268,7 @@ files.") ("Thomas Dye" "Tom Dye") ("Thomas Horsley" "Tom Horsley") ; FIXME ? ("Thomas Wurgler" "Tom Wurgler") + (nil "thuna\\.cing@gmail\\.com") ("Toby Cubitt" "Toby S\\. Cubitt") ("Tomohiko Morioka" "MORIOKA Tomohiko") ("Torbjörn Axelsson" "Torbjvrn Axelsson") @@ -230,23 +277,29 @@ files.") ("Tsugutomo Enami" "enami tsugutomo") ("Ulrich Müller" "Ulrich Mueller") (nil "vividsnow") + (nil "Valenoern" "valenoern@distributary\\.network") ("Vincent Del Vecchio" "Vince Del Vecchio") + ("M Visuwesh" "visuweshm@gmail\\.com") + (nil "vjoki@") + (nil "whatacold@gmail\\.com") ("William M. Perry" "Bill Perry") ("Wlodzimierz Bzyl" "W.*dek Bzyl") (nil "xyblor") + ("Yilkal Argaw" "yilkalargaw" "yilkalargawworkneh@gmail\\.com") ("Yoni Rabkin" "Yoni Rabkin Katzenell") ("Yoshinori Koseki" "KOSEKI Yoshinori" "小関 吉則") + ("Yuzhana Ego" "YugaEgo" "yet@ego\\.team") ("Yutaka NIIBE" "NIIBE Yutaka") (nil "stardiviner") - (nil "lin.sun") + (nil "lin\\.sun") ("Nitish Chinta" "nitishch") ("Carlos Pita" "memeplex") ("Vinicius Jose Latorre" "viniciusjl") ("Gaby Launay" "galaunay") ("Dick R. Chiang" "dickmao") - ("Lin Zhou" "georgealbert@qq.com") - (nil "yan@metatem.net") - (nil "gnu_lists@halloleo.hailmail.net") + ("Lin Zhou" "georgealbert@qq\\.com") + (nil "yan@metatem\\.net") + (nil "gnu_lists@halloleo\\.hailmail\\.net") ) "Alist of author aliases. @@ -397,6 +450,8 @@ Changes to files matching one of the regexps in this list are not listed.") "autogen/missing" "autogen" "autogen/copy_autogen" ; not generated, but trivial and now removed "dir_top" + ;; Imported into Emacs but externally maintained. + "publicsuffix.txt" "SKK-JISYO.L" ;; Only existed briefly, then renamed: "images/icons/allout-widgets-dark-bg" "images/icons/allout-widgets-light-bg" @@ -918,9 +973,30 @@ Changes to files in this list are not listed.") "emacsclient.c" "etags.c" "hexl.c" "make-docfile.c" "movemail.c" "test-distrib.c" "testfile" "tpu-edt.doc" ; see below + ;; etc/images/gnus/ + "etc/images/gnus/important.pbm" + "etc/images/gnus/receipt.pbm" + "etc/images/gnus/unimportant.pbm" "iso-swed.el" + ;; lisp/obsolete/ "lisp/obsolete/vc-mcvs.el" "obsolete/vc-mcvs.el" + "lisp/obsolete/patcomp.el" + "lisp/obsolete/abbrevlist.el" + "lisp/obsolete/assoc.el" + "obsolete/assoc.el" + "lisp/obsolete/complete.el" + "lisp/obsolete/cust-print.el" + "lisp/obsolete/erc-hecomplete.el" + "lisp/obsolete/mailpost.el" + "obsolete/mailpost.el" + "lisp/obsolete/mouse-sel.el" + "lisp/obsolete/old-emacs-lock.el" + "obsolete/old-emacs-lock.el" + "lisp/obsolete/patcomp.el" + "lisp/obsolete/pc-select.el" + "lisp/obsolete/s-region.el" + "obsolete/pc-select.el" "nnwarchive.el" "nnultimate.el" "nnslashdot.el" @@ -956,7 +1032,41 @@ Changes to files in this list are not listed.") "flymake-ui.el" "pinentry.el" "ledit.el" - "lmenu.el") + "lmenu.el" + "src/pgtkselect.h" + "test/manual/noverlay/many-errors.h" + "lisp/better-pixel-scroll.el" + "test/infra/default-gitlab-ci.yml" + "test/infra/test-jobs-generator.sh" + "org-install.el" + ;; use-package stuff removed after it was added + "etc/USE-PACKAGE-NEWS" + "lisp/use-package/bind-chord.el" + "lisp/use-package/use-package-chords.el" + "lisp/use-package/use-package-chords-tests.el" + "test/lisp/use-package/use-package-chords-tests.el" + ;; Eglot stuff removed after it was added + "README.mdown" + "README.md" + ".travis.yml" + ;; Tree-sitter stuff + "admin/notes/tree-sitter/html-manual/Parser_002dbased-Font-Lock.html" + "admin/notes/tree-sitter/html-manual/Parsing-Program-Source.html" + "admin/notes/tree-sitter/html-manual/build-manual.sh" + "admin/notes/tree-sitter/html-manual/Accessing-Node.html" + "admin/notes/tree-sitter/html-manual/Language-Definitions.html" + "admin/notes/tree-sitter/html-manual/Multiple-Languages.html" + "admin/notes/tree-sitter/html-manual/Parser_002dbased-Indentation.html" + "admin/notes/tree-sitter/html-manual/Pattern-Matching.html" + "admin/notes/tree-sitter/html-manual/Retrieving-Node.html" + "admin/notes/tree-sitter/html-manual/Tree_002dsitter-C-API.html" + "admin/notes/tree-sitter/html-manual/Using-Parser.html" + "admin/notes/tree-sitter/html-manual/manual.css" + "admin/notes/tree-sitter/build-module/build.sh" + "admin/notes/tree-sitter/build-module/batch.sh" + "doc/misc/gnus-coding.texi" + "gnus-coding.texi" + ) "File names which are valid, but no longer exist (or cannot be found) in the repository.") @@ -988,7 +1098,7 @@ in the repository.") ;; to how a file was mentioned in the respective ChangeLog. It is ;; advisable to run a Grep command such as ;; -;; fgrep -R BASENAME . --include='ChangeLog*' +;; grep -F -R BASENAME . --include='ChangeLog*' ;; ;; where BASENAME is the old basename of the renamed file. This will ;; show all the different reference forms of the file in the various @@ -1335,6 +1445,153 @@ in the repository.") ("test/lisp/url/url-handlers-test.el" . "url-handlers-tests.el") ("test/src/dired-tests.el" . "dired-tests.el") (".dir-locals.el" . ".dir-locals.el") + ;; use-package files that were moved when use-package was added: + ("use-package.texi" . "use-package.texi") + ("use-package-core.el" . "use-package-core.el") + ("bind-key.el" . "use-package-bind-key.el") + ("use-package.el" . "use-package.el") + ("use-package-tests.el" . "use-package-tests.el") + ;; pgtk stuff which used incorrect file names + ("pgtkmenu.c" . "pgtkmenu.c") + ("pgtk-win.el" . "pgtk-win.el") + ("pgtkfns.c" . "pgtkfns.c") + ("pgtkterm.c" . "pgtkterm.c") + ("pgtkterm.h" . "pgtkterm.h") + ("../src/pgtkfns.c" . "pgtkfns.c") + ("../src/pgtkterm.c" . "pgtkterm.c") + ("../src/pgtkterm.h" . "pgtkterm.h") + ("../src/atimer.c" . "atimer.c") + ("../src/gtkutil.c" . "gtkutil.c") + ("../src/image.c" . "image.c") + ("../lisp/faces.el" . "faces.el") + ("../src/pgkterm.h" . "pgkterm.h") + ("pgkterm.c" . "pgkterm.c") + ("../src/emacsgtkfixed.c" . "emacsgtkfixed.c") + ("../src/xfaces.c" . "xfaces.c") + ("../src/pgtkgui.h" . "pgtkgui.h") + ("../src/dispextern.h" . "dispextern.h") + ("../src/menu.c" . "menu.c") + ("../lisp/net/browse-url.el" . "browse-url.el") + ;; miscellany + ("nsterm.m" . "nsterm.m") + ("jsonrpc.el" . "jsonrpc.el") + ("jsonrpc-tests.el" . "jsonrpc-tests.el") + ("jrpc.el" . "jsonrpc.el") + ("eldoc.el" . "eldoc.el") + ("lisp/progmodes/ts-mode.el" . "typescript-ts-mode.el") + ("icalendar-tests.el" . "icalendar-tests.el") + ("lisp/progmodes/css-ts-mode.el" . "css-mode.el") + ("lisp/erc/erc-tests.el" . "erc-tests.el") + ("lisp/erc/erc-scenarios-base-reconnect.el" . "erc-scenarios-base-reconnect.el") + ("test/lisp/erc-tests.el" . "erc-tests.el") + ("eglot.el" . "eglot.el") + ("eglot-tests.el" . "eglot-tests.el") + ("NEWS.md" . "EGLOT-NEWS") + ("test/lisp/comp-tests.el" . "comp-tests.el") + ("package-vc.el" . "package-vc.el") + ("package.el" . "package.el") + ("lisp/net/tramp-docker.el" . "tramp-container.el") + ("xterm.c" . "xterm.c") + ("lisp/osc.el" . "ansi-osc.el") + ("test/lisp/osc-tests.el" . "ansi-osc-tests.el") + ("lisp/ansi-osc.el" . "ansi-osc-tests.el") + ("test/lisp/thumbs-tests.el" . "thumbs-tests.el") + ("rmail.el" . "rmail.el") + ("window.el" . "window.el") + ("nsmenu.m" . "nsmenu.m") + ("nsfont.m" . "nsfont.m") + ("nsfns.m" . "nsfns.m") + ("src/nsterm.c" . "nsterm.m") + ("subr.el" . "subr.el") + ("test/lisp/image-dired-tests.el" . "image-dired-tests.el") + ("modus-themes.org" . "modus-themes.org") + ("emacs-authors-mode.el" . "emacs-authors-mode.el") + ("lisp/textmodes/etc-authors-mode.el" . "emacs-authors-mode.el") + ("bytecomp.el" . "bytecomp.el") + ("test/lisp/makesum-tests.el" . "makesum-tests.el") + ("rcirc.el" . "rcirc.el") + ("haiku_support.cc" . "haiku_support.cc") + ("gnus-art.el" . "gnus-art.el") + ("mh-mime.el" . "mh-mime.el") + ("terminal.c" . "terminal.c") + ("eudc.texi" . "eudc.texi") + ("gnus-search.el" . "gnus-search.el") + ("lisp/gnus-search.el" . "gnus-search.el") + ("ETAGS_good_1" . "ETAGS_good_1") + ("ETAGS_good_2" . "ETAGS_good_2") + ("ETAGS_good_3" . "ETAGS_good_3") + ("ETAGS_good_4" . "ETAGS_good_4") + ("ETAGS_good_5" . "ETAGS_good_5") + ("ETAGS_good_6" . "ETAGS_good_6") + ("test/lisp/eshell-em-script-tests.el" . "eshell-em-script-tests.el") + ("test/lisp/eshell-em-glob-tests.el" . "eshell-em-glob-tests.el") + ("lisp/eshell/esh-var-tests.el" . "esh-var-tests.el") + ("test/lisp/eshell/esh-var-test.el" . "esh-var-tests.el") + ("gnus-logic.el" . "gnus-logic.el") + ("sh-script.el" . "sh-script.el") + ("repeat.el" . "repeat.el") + ("files.el" . "files.el") + ("lisp/emacs-lisp/generate-file.el" . "generate-lisp-file.el") + ("pp.el" . "pp.el") + ("src/help-fns.el" . "help-fns.el") + ("print.c" . "print.c") + ("shell.el" . "shell.el") + ("xdisp.c" . "xdisp.c") + ("haikufns.c" . "haikufns.c") + ("haikuterm.c" . "haikuterm.c") + ("haikumenu.c" . "haikumenu.c") + ("haikufont.c" . "haikufont.c") + ("src/haiku_support.c" . "haiku_support.cc") + ("src/haiku_draw_support.c" . "haiku_draw_support.cc") + ("haiku-win.el" . "haiku-win.el") + ("elisp-mode.el" . "elisp-mode.el") + ("doc-view.el" . "doc-view.el") + ("src/lisp/net/rcirc.el" . "rcirc.el") + ("project.el" . "project.el") + ("emacsbug.el" . "emacsbug.el") + ("timefns.c" . "timefns.c") + ("xwidget.c" . "xwidget.c") + ("src/xwidget.el" . "xwidget.el") + ("lisp/net/lisp/net/tramp-sshfs.el" . "tramp-sshfs.el") + ("tramp-sudoedit.el" . "tramp-sudoedit.el") + ("test/lisp/mail/undigest.el" . "undigest-tests.el") + ("Activate.c" . "Activate.c") + ("quail.el" . "quail.el") + ("sed1v2.inp" . "sed1v2.inp") + ("ruby-parenless-call-arguments-indent.rb" . "ruby-parenless-call-arguments-indent.rb") + ("commands.texi" . "doc/lispref/commands.texi") + ("message.el" . "message.el") + ("lisp/debug-early.el" . "debug-early.el") + ("tabulated-list.el" . "tabulated-list.el") + ("mouse.el" . "mouse.el") + ("hi-lock.el" . "hi-lock.el") + ("man.el" . "man.el") + ("doc/emacs/frames.tex" . "frames.texi") + ("lisp/emacs-list/eieio-compat.el" . "eieio-compat.el") + ("epa.el" . "epa.el") + ("lisp/emacs-lisp/macroexpand.el" . "macroexp.el") + ("src/pixel-scroll.el" . "pixel-scroll.el") + ("test/lisp/mh-e/mh-utils.el" . "mh-utils-tests.el") + ("compile.el" . "compile.el") + ("compile-tests.el" . "compile-tests.el") + ("Makefile.in" . "Makefile.in") + ("Makefie.in" . "Makefile.in") + ("test/lisp/net/netrc-tests.el" . "auth-source-tests.el") + ("test/lisp/ert-x-tests.el" . "ert-x-tests.el") + ("lisp/mh-e-mh-scan.el" . "mh-scan.el") + ("lisp/progmodes/c-fonts.el" . "cc-fonts.el") + ("lisp/emacs/lisp/cl-generic.el" . "cl-generic.el") + ("doc/lisprefdisplay.texi" . "display.texi") + ("erc.el" . "erc.el") + ("erc-tests.el" . "erc-tests.el") + ("vc/vc-mtn.el" . "vc-mtn.el") + ("net/rlogin.el" . "rlogin.el") + ("emacs-lisp/eieio-compat.el" . "eieio-compat.el") + ("mh-compat.el" . "mh-compat.el") + ("url-about.el" . "url-about.el") + ("url-dired.el" . "url-dired.el") + ("lisp/text-modes/tex-mode.el" . "tex-mode.el") + ("editfns.c" . "editfns.c") ) "Alist of files which have been renamed during their lifetime. Elements are (OLDNAME . NEWNAME).") @@ -1881,7 +2138,7 @@ list of their contributions.\n") (insert "\n ")) (insert " " file)) (insert "\n"))))) - (insert "\nLocal" " Variables:\nmode: etc-authors\ncoding: " + (insert "\nLocal" " Variables:\nmode: emacs-authors\ncoding: " (symbol-name authors-coding-system) "\nEnd:\n") (message "Generating buffer %s... done" buffer-name) (unless noninteractive diff --git a/admin/automerge b/admin/automerge index ffdb46932564..e751183f5f45 100755 --- a/admin/automerge +++ b/admin/automerge @@ -1,10 +1,10 @@ #!/bin/bash ### automerge - automatically merge the Emacs release branch to master -## Copyright (C) 2018-2023 Free Software Foundation, Inc. +## Copyright (C) 2018-2024 Free Software Foundation, Inc. ## Author: Glenn Morris <rgm@gnu.org> -## Maintainer: emacs-devel@gnu.org +## Maintainer: Stefan Kangas <stefankangas@gmail.com> ## This file is part of GNU Emacs. @@ -35,16 +35,7 @@ ## it with the -d option in the repository directory, in case a pull ## updates this script while it is working. -die () # write error to stderr and exit -{ - [ $# -gt 0 ] && echo "$PN: $@" >&2 - exit 1 -} - -PN=${0##*/} # basename of script -PD=${0%/*} - -[ "$PD" = "$0" ] && PD=. # if PATH includes PWD +source "${0%/*}/emacs-shell-lib" usage () { @@ -108,7 +99,8 @@ OPTIND=1 [ "$nocd" ] || { - cd $PD # this should be the admin directory + # $PD should be the admin directory + cd $PD || die "Could not change directory to $PD" cd ../ } @@ -126,9 +118,7 @@ OPTIND=1 [ "$test" ] && build=1 -tempfile=/tmp/$PN.$$ - -trap "rm -f $tempfile 2> /dev/null" EXIT +tempfile="$(emacs_mktemp)" [ -e Makefile ] && [ "$build" ] && { @@ -148,7 +138,7 @@ trap "rm -f $tempfile 2> /dev/null" EXIT rev=$(git rev-parse HEAD) -[ $(git rev-parse @{u}) = $rev ] || die "Local state does not match origin" +[ "$(git rev-parse @{u})" = "$rev" ] || die "Local state does not match origin" merge () @@ -157,12 +147,12 @@ merge () if $emacs --batch -Q -l ./admin/gitmerge.el \ --eval "(setq gitmerge-minimum-missing $nmin)" -f gitmerge \ - >| $tempfile 2>&1; then + >| "$tempfile" 2>&1; then echo "merged ok" return 0 else - grep -E "Nothing to merge|Number of missing commits" $tempfile && \ + grep -E "Nothing to merge|Number of missing commits" "$tempfile" && \ exit 0 cat "$tempfile" 1>&2 @@ -186,13 +176,13 @@ git diff --stat --cached origin/master | grep -q "etc/NEWS " && \ echo "Running autoreconf..." -autoreconf -i -I m4 2>| $tempfile +autoreconf -i -I m4 2>| "$tempfile" retval=$? ## Annoyingly, autoreconf puts the "installing `./foo' messages on stderr. if [ "$quiet" ]; then - grep -v 'installing `\.' $tempfile 1>&2 + grep -v 'installing `\.' "$tempfile" 1>&2 else cat "$tempfile" 1>&2 fi @@ -231,7 +221,7 @@ echo "Tests finished ok" echo "Checking for remote changes..." git fetch || die "fetch error" -[ $(git rev-parse @{u}) = $rev ] || { +[ "$(git rev-parse @{u})" = "$rev" ] || { echo "Upstream has changed" @@ -240,7 +230,7 @@ git fetch || die "fetch error" ## Ref eg https://lists.gnu.org/r/emacs-devel/2014-12/msg01435.html ## Instead, we throw away what we just did, and do the merge again. echo "Resetting..." - git reset --hard $rev + git reset --hard "$rev" echo "Pulling..." git pull --ff-only || die "pull error" @@ -256,5 +246,3 @@ git push || die "push error" exit 0 - -### automerge ends here diff --git a/admin/build-configs b/admin/build-configs index 5447a7a34768..74418c5c0909 100755 --- a/admin/build-configs +++ b/admin/build-configs @@ -1,7 +1,7 @@ #! /usr/bin/perl # Build Emacs in several different configurations. -# Copyright (C) 2001-2023 Free Software Foundation, Inc. +# Copyright (C) 2001-2024 Free Software Foundation, Inc. # This file is part of GNU Emacs. diff --git a/admin/charsets/Makefile.in b/admin/charsets/Makefile.in index 4c62bb19dc5f..4026a9d90c12 100644 --- a/admin/charsets/Makefile.in +++ b/admin/charsets/Makefile.in @@ -1,6 +1,6 @@ ### @configure_input@ -# Copyright (C) 2015-2023 Free Software Foundation, Inc. +# Copyright (C) 2015-2024 Free Software Foundation, Inc. # Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 # National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/admin/charsets/mapconv b/admin/charsets/mapconv index 4a68d3da53ba..ba012ddf4b75 100755 --- a/admin/charsets/mapconv +++ b/admin/charsets/mapconv @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (C) 2015-2023 Free Software Foundation, Inc. +# Copyright (C) 2015-2024 Free Software Foundation, Inc. # Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 # National Institute of Advanced Industrial Science and Technology (AIST) diff --git a/admin/charsets/mapfiles/README b/admin/charsets/mapfiles/README index 30889c9e9efc..81dad59290db 100644 --- a/admin/charsets/mapfiles/README +++ b/admin/charsets/mapfiles/README @@ -1,4 +1,4 @@ -Copyright (C) 2009-2023 Free Software Foundation, Inc. +Copyright (C) 2009-2024 Free Software Foundation, Inc. Copyright (C) 2009, 2010, 2011 National Institute of Advanced Industrial Science and Technology (AIST) Registration Number H13PRO009 diff --git a/admin/charsets/mapfiles/stdenc.txt b/admin/charsets/mapfiles/stdenc.txt index e39486a3195a..1c898bac0ba0 100644 --- a/admin/charsets/mapfiles/stdenc.txt +++ b/admin/charsets/mapfiles/stdenc.txt @@ -54,7 +54,7 @@ # # [v0.1, 5 May 1995] First release. # -# Use the Unicode reporting form <http://www.unicode.org/reporting.html> +# Use the Unicode reporting form <https://www.unicode.org/reporting.html> # for any questions or comments or to report errors in the data. # 0020 20 # SPACE # space diff --git a/admin/charsets/mapfiles/symbol.txt b/admin/charsets/mapfiles/symbol.txt index b98baf6cf0cb..0a5aac8b6116 100644 --- a/admin/charsets/mapfiles/symbol.txt +++ b/admin/charsets/mapfiles/symbol.txt @@ -57,7 +57,7 @@ # # [v0.1, 5 May 1995] First release. # -# Use the Unicode reporting form <http://www.unicode.org/reporting.html> +# Use the Unicode reporting form <https://www.unicode.org/reporting.html> # for any questions or comments or to report errors in the data. # 0020 20 # SPACE # space diff --git a/admin/check-doc-strings b/admin/check-doc-strings index 135090b34cec..b119b50885b7 100755 --- a/admin/check-doc-strings +++ b/admin/check-doc-strings @@ -290,13 +290,7 @@ while (my $file = <FIND>) { } } -my @pkgs; -if (-d "../xemacs-packages") { - @pkgs = qw (libs/edebug libs/xemacs-base comm/eudc oa/edit-utils); -} else { - @pkgs = (); -} -for (@pkgs) { s@^@../xemacs-packages/@; } +my @pkgs = (); open (FIND, "find lisp @pkgs -name '*.el' -print |") or die; while (my $file = <FIND>) { my $contents = FileContents $file; diff --git a/admin/check-man-pages b/admin/check-man-pages new file mode 100755 index 000000000000..8f05b75d81ce --- /dev/null +++ b/admin/check-man-pages @@ -0,0 +1,56 @@ +#!/bin/bash +### check-man-pages - check man pages for errors + +## Copyright (C) 2022-2024 Free Software Foundation, Inc. + +## Author: Stefan Kangas <stefankangas@gmail.com> + +## This file is part of GNU Emacs. + +## GNU Emacs is free software: you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation, either version 3 of the License, or +## (at your option) any later version. + +## GNU Emacs is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. + +## You should have received a copy of the GNU General Public License +## along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. + +### Commentary: + +## Check Emacs man pages for errors using `man'. + +### Code: + +source "${0%/*}/emacs-shell-lib" + +exit_status=0 + +cd "$PD"/../doc/man +for page in *.1; do + # ctags.1 just includes the man page etags.1, which AFAICT will + # default to the one installed on the system (!), instead of the + # one in the repository. So checking it is pointless, and we will + # in any case already check etags.1 separately. + if [ "$page" == "ctags.1" ]; then + continue + fi + log=$(emacs_mktemp) + LC_ALL=C.UTF-8 MANROFFSEQ='' MANWIDTH=80 \ + man --warnings=all,mac -E UTF-8 -l -Tutf8 -Z "$page" >/dev/null 2> "$log" + log_size=$(stat --format=%s "$log") + if [ "$log_size" -ne 0 ]; then + echo "doc/man/$page:" + # Point to the correct file for *compilation* buffers. + cat "$log" \ + | sed 's/troff: man1\/\([^ ]\+\)\.1/troff: doc\/man\/\1.1/' \ + | sed "s/<standard input>/doc\/man\/$page/" + exit_status=1 + fi +done + +exit $exit_status diff --git a/admin/coccinelle/window.cocci b/admin/coccinelle/window.cocci index 1448febfcc14..4543fb2ce15f 100644 --- a/admin/coccinelle/window.cocci +++ b/admin/coccinelle/window.cocci @@ -106,9 +106,6 @@ Lisp_Object O; - W->column_number_displayed + WVAR (W, column_number_displayed) | -- W->redisplay_end_trigger -+ WVAR (W, redisplay_end_trigger) -| - W->combination_limit + WVAR (W, combination_limit) | @@ -225,9 +222,6 @@ Lisp_Object O; - XWINDOW (O)->column_number_displayed + WVAR (XWINDOW (O), column_number_displayed) | -- XWINDOW (O)->redisplay_end_trigger -+ WVAR (XWINDOW (O), redisplay_end_trigger) -| - XWINDOW (O)->combination_limit + WVAR (XWINDOW (O), combination_limit) | diff --git a/admin/codespell/README b/admin/codespell/README new file mode 100644 index 000000000000..fcc5e3b41d08 --- /dev/null +++ b/admin/codespell/README @@ -0,0 +1,27 @@ +This directory contains supporting files for running codespell. +See the ./admin/run-codespell script. + +codespell.dictionary + + This file contains additional, Emacs-specific corrections. When + fixing typos in Emacs, consider adding them to this file. + +codespell.exclude + + This file contains lines that are correct and should be ignored by + codespell. Add any false positives to this file. + + The lines must match lines in the Emacs source tree exactly, + including any whitespace. + +codespell.ignore + + This file contains any words that are correct in the context of + Emacs, or that we otherwise choose to ignore. Use your best + judgment when adding words to this file. Common typos that are + only correct in highly specific contexts should probably be in + codespell.exclude instead. + +codespell.rc + + This file contains the Emacs specific codespell configuration. diff --git a/admin/codespell/codespell.dictionary b/admin/codespell/codespell.dictionary new file mode 100644 index 000000000000..b082a48fe996 --- /dev/null +++ b/admin/codespell/codespell.dictionary @@ -0,0 +1,17 @@ +alis->alist, alias, alas, axis, alms, +boostrap-clean->bootstrap-clean +brunches->branches +defalis->defalias +defalises->defaliases +ecmacs->emacs +ehsell->eshell +emcs->emacs +finis->finish +firs->first +file-writeable-p->file-writable-p +hep->help +least-favourite->least-favorite +lien->line +liens->lines +mecas->emacs +sehell->eshell, shell, diff --git a/admin/codespell/codespell.exclude b/admin/codespell/codespell.exclude new file mode 100644 index 000000000000..2503f4a9a164 --- /dev/null +++ b/admin/codespell/codespell.exclude @@ -0,0 +1,1551 @@ +Bonus: Return a cons cell: (COMPILED . UPTODATE). +Bonus: Return a cons cell: (COMPILED . UPTODATE)." +(defun semantic-grammar-create-package (&optional force uptodate) +If the Lisp code seems up to date, do nothing (if UPTODATE + (if uptodate (setq output nil))) +;; Updated by the RIPE Network Coordination Center. +;; Thanks to jond@miter.org (Jonathan Doughty) for help with code for + \"VHDL Modeling Guidelines\". +# PCRE LICENSE +# General Purpose Licence (GPL), or Lesser General Purpose Licence (LGPL), +# then the terms of that licence shall supersede any condition above with + Li, Luo et al. "The CRI-CAM02UCS colour rendering index." COLOR research + Luo et al. "Uniform colour spaces based on CIECAM02 colour appearance + "[o]utput/save MIME part; save [a]ll parts; \n" +;; Jari Aalto <jaalto@tre.tele.nokia.fi> +;; Alon Albert <alon@milcse.rtsg.mot.com> +;; Jari Aalto <jaalto@tre.tele.nokia.fi>. + ("IRCnet: EU, AT, Linz" IRCnet "linz.irc.at" ((6666 6668))) + ["Januar" "Februar" "März" "April" "Mai" "Juni" "Juli" "August" +Both types of item should be moved en bloc to the new category, + return dum// -7- + struct Dum { + mutable a::b::Foo::Dum dumdum; + "Mot de Passe :" ; localized (Bug#29729) + (leapyear, ydhms_diff, guess_time_tm, __mktime_internal): Use it. + * config.bat: Build-in the first step towards X11 support with + * configure.ac (emacs_config_features): Don’t worry about GIR. + * configure.ac (WEBKIT, GIR, CAIRO): Use EMACS_CHECK_MODULES, not PKG_. + * configure.ac (emacs_config_features): Add XWIDGETS, WEBKIT, GIR. +1995-04-20 Kevin Rodgers <kevinr@ihs.com> +(seq-mapn #'concat '("moskito" "bite") ["bee" "sting"]) +Steven E. Harris (seh at panix.com), +Kevin Rodgers (kevin.rodgers at ihs.com), +plot,x,alog(x+5*sin(x) + 2), +be shown. On positions 3,4, and 7, the @samp{alog} function will be +As is my wont, I started hacking on it almost immediately. I first +The latter criterion is the "je ne sais quoi" of the artistic aspect of +order but are now listed consecutively en bloc. + "mot de passe" "Mot de passe") + Reported by Mor Zahavi <morzahavi@me.com>. (Bug#51271) + * etc/refcards/fr-refcard.tex (section{Formater}): Remove mention + Reported by Ture Pålsson. + 9261a219ec * doc/emacs/windows.texi (Window Convenience): Describe mor... + 650a664ccd Let imenu to work on the menu bar when its list is a singl... + "\\(?:Currentl?y\\|Now\\) drawing from '\\(AC\\|Battery\\) Power'" + ;; Move done items en bloc to top of done items section. + * erc-complete.el: * added docfixes (thanks ore) + (interactive "DDelete directory from file cache: ") + some Agian scripts. */ + Rename from "Gnus Maintainance Guide". + * gnus-coding.texi (Gnus Maintainance Guide): Update to mention Emacs + * gnus-coding.texi (Gnus Maintainance Guide): Fix title typo. + * gnus-coding.texi (Gnus Maintainance Guide): Update conventions for +2005-10-23 Lars Hansen <larsh@soem.dk> +1998-07-17 Gordon Matzigkeit <gord@fig.org> +1998-04-26 James Troup <J.J.Troup@scm.brad.ac.uk> +2003-06-11 Daniel Néri <done@mayonnaise.net> +2001-07-26 10:00:00 Steven E. Harris <seh@speakeasy.org> +2001-01-15 Jack Twilley <jmt@tbe.net> + + matching LAMDA as a word. Noted by Stefan Monnier. + completion variant for every "LAMDA" name (bug#30513). + "foto" + ("foto" . 0.375) + Add configury for GMP library + Include w32inevt.h, basetyps.h and unknwn.h. + * make-docfile.c (write_c_args): Correctly handle prefixes of "defalt". + * hexl.c [DOSNT]: Include fcntl.h. + * make-docfile.c (write_c_args): Print an argument named "defalt" +2003-03-07 Kevin Rodgers <kevin.rodgers@ihs.com> (tiny change) +2003-03-06 Kevin Rodgers <kevin.rodgers@ihs.com> (tiny change) + "Speedwave", "Simili", "Synopsys Design Compiler", "Cadence NC", + with-parsed-tramp-file-name macro which is wont to produce such stuff. +2004-12-29 Sanghyuk Suh <han9kin@mac.com> +2007-02-28 Lars Hansen <larsh@soem.dk> +2006-11-24 Lars Hansen <larsh@soem.dk> +2006-10-29 Lars Hansen <larsh@soem.dk> +2006-09-12 Lars Hansen <larsh@soem.dk> +2006-06-23 Lars Hansen <larsh@soem.dk> +2006-05-14 Lars Hansen <larsh@soem.dk> +2006-05-13 Lars Hansen <larsh@soem.dk> +2006-02-09 Lars Hansen <larsh@soem.dk> +2006-02-06 Lars Hansen <larsh@soem.dk> +2005-11-22 Lars Hansen <larsh@soem.dk> +2005-11-08 Lars Hansen <larsh@soem.dk> +2005-11-03 Lars Hansen <larsh@soem.dk> +2005-11-02 Lars Hansen <larsh@soem.dk> +2005-10-08 Lars Hansen <larsh@soem.dk> +2005-08-10 Lars Hansen <larsh@soem.dk> +2005-07-12 Lars Hansen <larsh@soem.dk> +2011-02-22 Seppo Sade <sepposade1@gmail.com> (tiny change) +2012-09-21 Joel Bion <jpbion@westvi.com> (tiny change) + * rmail.el: Major changes from Bob Weiner <weiner@pts.mot.com> + * rmailsum.el: Big rewrite from weiner@pts.mot.com. +1995-05-19 Kevin Rodgers <kevinr@ihs.com> (tiny change) +1994-08-29 Tom Tromey (tromey@creche.colorado.edu) +1994-07-11 Kevin Rodgers <kevinr@ihs.com> (tiny change) +1994-06-17 Kevin Rodgers (kevinr@ihs.com) (tiny change) +1995-12-13 Kevin Rodgers <kevinr@ihs.com> +1995-11-10 Kevin Rodgers <kevinr@ihs.com> +1995-06-30 Kevin Rodgers <kevinr@ihs.com> +1998-07-07 Kevin Rodgers <kevinr@ihs.com> (tiny change) +1998-06-03 Kevin Rodgers <kevinr@ihs.com> (tiny change) +1997-12-22 Kevin Rodgers <kevinr@ihs.com> (tiny change) +1997-11-02 Kevin Rodgers <kevinr@ihs.com> +1997-10-21 Brad Howes <bhowes@cssun3.corp.mot.com> +1997-06-22 Howard Melman <melman@absolut.osf.org> +1997-03-24 Kevin Rodgers <kevinr@ihs.com> +1996-11-04 Kevin Rodgers <kevinr@ihs.com> +1996-10-20 Kevin Rodgers <kevinr@ihs.com> +1996-09-12 Kevin Rodgers <kevinr@ihs.com> +1999-11-16 Reto Zimmermann <reto@synopsys.com> +1999-06-12 Reto Zimmermann <reto@synopsys.com> +1999-05-15 Reto Zimmermann <reto@Synopsys.COM> +1998-08-26 Kevin Rodgers <kevinr@ihs.com> (tiny change) + directories. From Kevin Rodgers <kevinr@ihs.com>. + "du Radis" "de la Ruche" "du Gainier" + Iinclude string.h, stdlib.h unconditionally. +2006-04-23 Lars Hansen <larsh@soem.dk> +2006-04-20 Lars Hansen <larsh@soem.dk> +2005-11-10 Lars Hansen <larsh@soem.dk> + explicitly sets the defalt value. + Unexpect wait_object in case of x errors (memory leak). + (receive_incremental_selection): Don't unexpect wait_object when done + append "CCL: Quitted" when the CCL program is quitted. + the loop. When quitted, show a proper error message. + (read_minibuf_noninteractive): If defalt is cons, set val to its car. + (read_minibuf): If defalt is cons, set histstring to its car. + (Fcompleting_read): If defalt is cons, set val to its car. + but it still has blocs in it, don't return it to the system, + any, in the DEFALT argument into the root of the Emacs build or + * fileio.c (Fexpand_file_name): Default DEFALT at beginning, +1992-03-03 Wilson H. Tien (wtien@urbana.mcd.mot.com) + * fileio.c (Fexpand_file_name): Pass DEFALT through + * ralloc.c (relocate_some_blocs): Handle BLOC == NIL_BLOC. + malloc heap, zero it out even if we don't have any blocs in the + (r_alloc_sbrk): Provide hysteresis in relocating the blocs. + (get_bloc): Return zero if we can't allocate the new bloc. + * ralloc.c (r_re_alloc): Instead of allocating a new bloc at the + original bloc, just expand the original block. This saves a copy + If string quotes don't match up, don't take value from OFROM; + Globally replaced INTERRUPTABLE with INTERRUPTIBLE. + * fileio.c (Fread_file_name): If defalt is nil and user tries to use +1995-03-23 Kevin Rodgers <kevinr@ihs.com> (tiny change) + * fileio.c (Fexpand_file_name): Look for a handler for defalt. +1994-09-21 Tom Tromey <tromey@creche.colorado.edu> + (r_alloc_sbrk): Refuse to move blocs, if frozen. +1994-08-26 Kevin Rodgers <kevinr@ihs.com> + (Fcall_process_region) [DOSNT]: Canonicalize slashes in filename. + * minibuf.c (read_minibuf): Do use DEFALT in place of empty input + * minibuf.c (read_minibuf): Return DEFALT here, if minibuffer is empty. + (read_minibuf): Now static. New arg DEFALT. Callers changed. + CHAR_TABLE_ORDINARY_SLOTS for top, defalt, parent, and purpose. + is moved before `contents' so that XCHAT_TABLE (val)->defalt can + for an ASCII font, not defalt slot. + /* And if the configury during frame creation has been + Bob Desinger <hpsemc!bd@hplabs.hp.com> +/* Calculate the checksum of a SOM header record. */ + to preserve. Then we map these VAs to the section entries in the +#include <unknwn.h> + /* weiner@footloose.sps.mot.com reports that this causes + (VARN+1 SLOTN+1)) +dum@dots{} Nice tune, that@dots{} la la la@dots{} What, you're back? +C'est la vie. + ("gnus-warning" "duplicat\\(e\\|ion\\) of message" "duplicate") +James Troup, +@cindex @code{multline}, AMS-LaTeX environment +@code{align}, @code{gather}, @code{multline}, @code{flalign}, + \openin 1 #1.pdf \ifeof 1 + \openin 1 #1.PDF \ifeof 1 + \openin 1 #1.png \ifeof 1 + \openin 1 #1.jpg \ifeof 1 + \openin 1 #1.jpeg \ifeof 1 + \openin 1 #1.JPG \ifeof 1 + \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} + \openin 1 \jobname.\indexname s + % If the index file exists but is empty, then \openin leaves \ifeof +\setbox\balancedcolumns=\vbox{shouldnt see this}% + \openin 1 \tocreadfilename\space + \openin 1 \jobname.aux +\openin 1 = epsf.tex + \openin 1 txi-#1.tex + \openin 1 txi-#1.tex + @openin 1 texinfo.cnf + '("En" "To" "Tre")) +=project.clj=, =build.boot= or =deps.edn=, falling back on + ("(.H)J" (1 :otf=beng=half+)) +- (".H" :otf=beng=blwf,half,vatu+) ++ (".+H" :otf=beng=blwf,half,vatu+) + \quad \B{p}art: a)uthor (from), s)ubject, x)refs (cross-post), d)ate, l)ines, + message-i)d, t)references (parent), f)ollowup, b)ody, h)ead (all headers);\\* +\key{show subtree in indirect buffer, ded.\ frame}{C-c C-x b} +@tindex alog +mode setting. With the Inverse flag [@code{alog}], this command is +@r{ a b@: I B @: @: 2 @:alog@:(a,b) b^a} +@r{ a b@: I f I @: @: 2 @:alog@:(a,b) b^a} + Change comment about the iif hook to reflect the actual reason. + "I + E (ln), L (exp), B (alog: B^X); f E (lnp1), f L (expm1)" + (let (numer denom) + (setq numer (car (math-read-expr-list))) + (if (and (Math-num-integerp numer) + (list 'frac numer denom) + (list '/ numer denom)))) + (calc-binary-op "alog" 'calcFunc-alog arg) + (let ((dum (math-lud-pivot-check sum))) + (if (or (math-zerop big) (Math-lessp big dum)) + (setq big dum + (calc-pop-push-record-list 0 "larg" + (interactive "NNumber of columns = ") + (calc-binary-op "cros" 'calcFunc-cross arg))) + (calc-binary-op "unio" 'calcFunc-vunion arg '(vec) 'calcFunc-rdup))) + (calc-tabular-command 'calcFunc-table "Index" "tabl" + (ptd (file-truename pd))) + (string-match (concat "^" (regexp-quote ptd)) ftn))) + (let ((aci (autoconf-parameters-for-macro "AC_INIT")) + ((> (length aci) 1) + (setq name (nth 0 aci) + ver (nth 1 aci) + bugrep (nth 2 aci))) + (princ "\nKnown members of ") + (peom (save-excursion (c-end-of-macro) (point)))) + (when (> (point) peom) + (let ((larg (car args)) + (if (stringp larg) + (setq larg (semantic-tag-new-variable + larg nil nil))) + (srecode-semantic-tag (semantic-tag-name larg) + :prime larg) + (princ "\n--------------------------------------------\n\nNumber of tables: ") +;; avk@rtsg.mot.com (Andrew V. Klein) for a dired tip. + (args docstring interactive orig &optional befores arounds afters) +and BEFORES, AROUNDS and AFTERS are the lists of advices with which ORIG + (dolist (advice befores) + (let* ((nam (buffer-substring (match-beginning 2) (match-end 2))) + (setq nmlst (cons nam nmlst) + "If we are in an rmail summary buffer, then chart out the froms." + (let* ((nam (buffer-substring (match-beginning 1) (match-end 1))) + (m (member nam nmlst))) + (message "Scanned username %s" nam) + (setq nmlst (cons nam nmlst) + ((memq word '(concat concating)) + (crypted (cl-loop with str = (make-string (* 2 (length orig-name)) 0) + for c-sym = (concat prefix crypted "_" human-readable "_" + (concat prefix crypted "_" human-readable "_0")))) + (let* ((acces (plist-get soptions :accessor)) + (when acces + (push `(cl-defmethod (setf ,acces) (value (this ,name)) + (push `(cl-defmethod ,acces ((this ,name)) + (push `(cl-defmethod ,acces ((this (subclass ,name))) +;; => "(\\(c\\(atch\\|ond\\(ition-case\\)?\\)\\|if\\|let\\*?\\|prog[12n]\\|save-\\(current-buffer\\|excursion\\|match-data\\|restriction\\|window-excursion\\)\\|throw\\|un\\(less\\|wind-protect\\)\\|wh\\(en\\|ile\\)\\)\\>" +G-C-g: Keyboard Quit |Ex Ext Cmd|Fill Regio| REPLACE | UND W | +;; lisp example from Jari Aalto <jaalto@tre.tele.nokia.fi> +;; perl example from Jari Aalto <jaalto@tre.tele.nokia.fi> +;; '(("\\<\\(uno\\|due\\|tre\\)\\>" . 'font-lock-keyword-face) + "define\\|e\\(?:l\\(?:if\\|se\\)\\|ndif\\|rror\\)\\|file\\|i\\(?:f\\(?:n?def\\)?\\|mport\\|nclude\\)\\|line\\|pragma\\|undef\\|warning" +2003-06-11 Daniel Néri <dne@mayonnaise.net> + (lambda (valu symb) + (let ((anumber (string-to-number + (< anumber bnumber))))) + (curren . 164) + ;; Now we must merge the Dows with the Doms. To do that, we + (dows dow-list) + ;; second add all possible dows + (while (setq day (pop dows)) +;; Added by gord@enci.ucalgary.ca (Gordon Matzigkeit). + didnt nnmaildir--file nnmaildir-article-file-name + (setq didnt (cons (nnmaildir--art-num article) didnt))) + (setq didnt (cons (nnmaildir--art-num article) didnt)) + didnt))) + (insert "\nKnown Certificates:\n")))) +;; We could use `symbol-file' but this is a wee bit more efficient. + (beng . bengali) + (maka . makasar) + ,(font-spec :registry "iso10646-1" :otf '(beng nil (rphf)))) + (khmer ,(font-spec :registry "iso10646-1" :otf '(khmr nil (pres)))) + ("wee" . "Latin-2") ; MS Windows Lower Sorbian + ;; Unicode uses the spelling "lamda" in character + (string-match "\\<LAMDA\\>" new-name)) + "WINDOWS-1258 (Viet Nam)" + "mot de passe" ; fr +Je/sli czytasz ten tekst, to albo przegl/adasz plik /xr/od/lowy +W drugim przypadku mo/zesz usun/a/c tekst z ekranu, stosuj/ac + przekodowuj/a zaznaczony fragment wzgl/ednie ca/ly buffor. + Poni/zsze przyk/lady powinny wyja/sni/c, jakich parametr/ow + Funkcje biblioteki odwo/luj/a si/e do pi/eciu zmiennych, kt/ore + ("capetown" "Cape Town, South Africa") + (progn (error msg "preced") 0))) + <larsh@soem.dk> 2005-08-10. + (dolist (slot '(answers authorities additionals)) + queries answers authorities additionals) + (setq additionals (dns-read-bytes 2)) + (additionals ,additionals)) + [nil ; 1 ACI Item N + ("¤" . "(#)") +;; Author: Alon Albert <alon@milcse.rtsg.mot.com> + "Mark region appropriately. The next char REGION is d(efun),s(-exp),b(uffer), +l(ines)." + (t (message "Mark: d(efun),s(-exp),b(uf),p(arag),P(age),f(unct),w(ord),e(os),l(ines)") + "Verify spelling for the objects specified by char UNIT : [b(uffer), + (t (message "Spell check: b(uffer), r(egion), s(tring), w(ord)") +sWith: " ) +(defun org-babel-perl--var-to-perl (var &optional varn) + (if varn + (concat "my $" (symbol-name varn) "=" (when lvar "\n") + (if org-agenda-entry-text-mode " ETxt" "") + ("curren" "\\textcurrency{}" nil "¤" "curr." "¤" "¤") + (interactive "nNumber of clones to produce: ") +N is the number of WHATs to shift. +multlinewidth The width of the multline environment. + (list :tag "multlinewidth (width to use for the multline environment)" + "align" "gather" "multline" "flalign" "alignat" + ("ca" :default "Autor") + ("cs" :default "Autor") + ("de" :default "Autor") + ("es" :default "Autor") + ("et" :default "Autor") + ("pl" :default "Autor") + ("pt_BR" :default "Autor") + ("ro" :default "Autor") + ("sl" :default "Seznam tabel") + ("nl" :default "Zie tabel %s" + :html "Zie tabel %s" :latex "Zie tabel~%s") + ("et" :default "Tabel") + ("nl" :default "Tabel") + ("ro" :default "Tabel") + ("ro" :default "Tabele") + ("da" :default "Tabel %d") + ("et" :default "Tabel %d") + ("nl" :default "Tabel %d:" :html "Tabel %d:") + ("ro" :default "Tabel %d") + ("pl" :html "Spis treści") + (thier their (their)) + (whats up) (whats new) (what\'s up) (what\'s new) + refer refered referred refers + (c++-mode . "#\\(assert\\|cpu\\|define\\|endif\\|el\\(if\\|se\\)\\|i\\(dent\\|f\\(def\\|ndef\\)?\\|mport\\|nclude\\(_next\\)?\\)\\|line\\|machine\\|pragma\\|system\\|un\\(assert\\|def\\)\\|warning\\)\\>")) + "^\\(?:Error\\|Warnin\\(g\\)\\) \\(?:[FEW][0-9]+ \\)?\ +: \\(?:see declaration\\|\\(?:warnin\\(g\\)\\|[a-z ]+\\) C[0-9]+:\\)" + "^\\([^ \n]+\\)(\\([0-9]+\\)): \\(?:error\\|warnin\\(g\\)\\|remar\\(k\\)\\)" + "^\"\\(.*\\)\",\\([0-9]+\\)\\s-+\\(?:Error\\|Warnin\\(g\\)\\)\\[[0-9]+\\]:" + \\(?:warnin\\(g\\)\\|informationa\\(l\\)\\)?" 1 2 3 (4 . 5)) + "^ *\\([0-9]+\\)\\.[ \t]+.*\n +\\(<-*>\n\\*\\*\\* \\(?:Error\\|Warnin\\(g\\)\\)\\)" + "^\\(?:Error\\|Warnin\\(g\\)\\):.*\n.* line \\([0-9]+\\) char\ + ": \\(?:ERROR\\|WARNIN\\(G\\)\\|REMAR\\(K\\)\\) \\(?:[[:alnum:] ]+, \\)?\ + (" --?o\\(?:utfile\\|utput\\)?[= ]\\(\\S +\\)" . 1) + "^[ \t]*\\(format\\)[ \t]*\\([a-zA-Z0-9_]+\\)?[ \t]*=[ \t]*$" ;FRMAT + (insert "\n[U]nknown conditionals: ") + (struc info file tags-file &optional view where) +STRUC is an `ebrowse-bs' structure (or a structure including that) +FILE is not taken out of STRUC here because the filename in STRUC + (ebrowse-bs-name struc))) + (setf ebrowse-temp-position-to-view struc + (ebrowse-find-pattern struc info)))) + "cexp" "log" "alog" "dlog" "clog" "log10" + '("ASCII" "addto" "also" "and" "angle" "atleast" "batchmode" + "bre~ak" "bti~tle" "c~hange" "cl~ear" "col~umn" "conn~ect" + "repf~ooter" "reph~eader" "r~un" "sav~e" "sho~w" "shutdown" + "copyc~ommit" "copytypecheck" "def~ine" "describe" +That is, all code between \"// synopsys translate_off\" and +\"// synopsys translate_on\" is highlighted using a different background color +option to intermix between input/output/inouts. + :help "Help on AUTOINOUT - adding inouts from cells"] + (eval-when-compile (verilog-regexp-words '("Outputs" "Inouts" "Inputs" "Interfaces" "Interfaced")))) + '("surefire" "0in" "auto" "leda" "rtl_synthesis" "synopsys" + (structres nil) + (setq structres (verilog-in-struct-nested-p)) + (cond ((not structres) nil) + ;;((and structres (equal (char-after) ?\})) (throw 'nesting 'struct-close)) + ((> structres 0) (throw 'nesting 'nested-struct)) + ((= structres 0) (throw 'nesting 'block)) + (list 'block structres)) +// Created : <credate> + (search-forward "<credate>") (replace-match "" t t) +Return an array of [outputs inouts inputs wire reg assign const gparam intf]." + (when (looking-at "[^\n]*\\(auto\\|synopsys\\)\\s +enum\\s +\\([a-zA-Z0-9_]+\\)") +Return an array of [ outputs inouts inputs ] signals for modules that are + (while (re-search-forward "\\s *(?\\s *// Inouts" end-inst-point t) + (if (looking-at "[^\n]*\\(auto\\|synopsys\\)\\s +enum\\s +\\([a-zA-Z0-9_]+\\)") + "// Inouts" + Inouts are not supported, as assignments must be unidirectional. + (verilog-auto-inst-port-list "// Inouts\n" + This ONLY detects inouts of AUTOINSTants (see `verilog-read-sub-decls'). + // Beginning of automatic inouts + // Inouts +from only extracting inouts starting with i: + (verilog-insert-indent "// Beginning of automatic inouts (from unused autoinst inouts)\n") + // Beginning of automatic in/out/inouts + (verilog-insert-indent "// Beginning of automatic in/out/inouts (from specific module)\n") + // Beginning of automatic in/out/inouts (from modport) + (verilog-insert-indent "// Beginning of automatic in/out/inouts (from modport)\n") +finds all inputs and inouts in the module, and if that input is not otherwise +First, parameters are built into an enumeration using the synopsys enum + \"synopsys enum\" may be used in place of \"auto enum\". + default: state_ascii_r = \"%Erro\"; + `verilog-auto-inout' for AUTOINOUT making hierarchy inouts + `verilog-auto-unused' for AUTOUNUSED unused inputs/inouts + ;; duluth: *E,430 (test.vhd,13): identifier (POSITIV) is not declared + ("GHDL" "ghdl" "-i --workdir=\\1 --ieee=synopsys -fexplicit " "make" "-f \\1" + ;; ERROR: test.vhd(14): Unknown identifier: positiv + ;; ProVHDL, Synopsys LEDA: provhdl -w work -f test.vhd + ;; Synopsys, VHDL Analyzer (sim): vhdlan -nc test.vhd + ("Synopsys" "vhdlan" "-nc -work \\1" "make" "-f \\1" + nil "mkdir \\1" "./" "work/" "Makefile" "synopsys" + ;; Synopsys, VHDL Analyzer (syn): vhdlan -nc -spc test.vhd + ("Synopsys Design Compiler" "vhdlan" "-nc -spc -work \\1" "make" "-f \\1" + ("Synopsys" "-vhdl87 \\2" "-f \\1 top_level" ((".*/datapath/.*" . "-optimize \\3") (".*_tb\\.vhd" . nil)))) +(defcustom vhdl-directive-keywords '("psl" "pragma" "synopsys") + (eq (vhdl-decision-query nil "(d)eclaration or (b)ody?") ?b)) + (eq (vhdl-decision-query nil "(d)eclaration or (b)ody?") ?b))) +;; Author: Alex Rezinsky <alexr@msil.sps.mot.com> +;; Thanks to Gord Wait <Gord_Wait@spectrumsignal.com> for +;; Thanks to Paul Furnanz <pfurnanz@synopsys.com> for XEmacs compatibility +;; Thanks to Kevin Rodgers <kevinr@ihs.com> for handling control characters +;; * Check `ps-paper-type': Sudhakar Frederick <sfrederi@asc.corp.mot.com> +;; Thanks to Kevin Rodgers <kevinr@ihs.com> for adding support for color and +;; Thanks to Avishai Yacobi, avishaiy@mcil.comm.mot.com, for writing the +;; Ralf Brown's Interrupt List. file INTERRUP.F, D-2138, Table 01400 + ("portugues" ; Portuguese mode + ("portugues" "pt_PT") +;; of the document. If WRAPP is true then wrap the search to the +(defun reftex-isearch-switch-to-next-file (crt-buf &optional wrapp) + (if wrapp +f / c Toggle follow mode / Toggle display of [c]ontext. + F t c Toggle: [F]ile borders, [t]able of contents, [c]ontext +\\`l' \\`i' \\`c' \\`F' Toggle display of [l]abels, [i]ndex, [c]ontext, [F]ile borders. + ;; OK, get the makro name + ("multline" ?e nil nil t) + "nbsp" "iexcl" "cent" "pound" "curren" "yen" "brvbar" "sect" +;; |ment\| +;; horizontale disigatan fenestron, si- horizontally split window similar to +;; ^jus anta^ue faris C-x C-f. file if you just did C-x C-f. +;; per C-x u kaj plue modifu la du continue to edit the two buffers. +;; Programistoj eble ^satus la eblecon Programmers might like the ability +;; iliajn finojn dum redaktado. won't see their end during editing. + "news:" "nfs://" "nntp://" "opaquelocktoken:" "pop://" "pres:" +;; Bob Weiner <weiner@footloose.sps.mot.com>, + control whether we try to do keep-alives for our connections. + keep-alives to time out on cached documents with no known + ;; seconds for the keep-alives to time out on some servers. + msglen = ccl->quit_silently ? 0 : sprintf (msg, "\nCCL: Quitted."); + Quitted" to the generated text when + CCL program is quitted. */ + followings. */ + /* Followings are target of code detection. */ + /* Followings are NOT target of code detection. */ + /* The followings are extra attributes for each type. */ + Aadd, + case Aadd : accum += next; break; + case Aadd : mpz_add (mpz[0], *accum, *next); break; + case Aadd : overflow = INT_ADD_WRAPV (accum, next, &a); break; + return nargs == 1 ? a : arith_driver (Aadd, nargs, args, a); + /* The followings are used only for a font-entity and a font-object. */ + /* The followings are used only for a font-object. */ + /* We have already tried this element and the followings +/* According to RBIL (INTERRUP.A, V-1000), 160 is the maximum possible + hole between the first bloc and the end of malloc storage. */ + /* First bloc in this heap. */ + /* Last bloc in this heap. */ + struct heap *heap; /* Heap this bloc is in. */ +/* Find the bloc referenced by the address in PTR. Returns a pointer + callers that always expect a bloc to be returned should abort +/* Allocate a bloc of SIZE bytes and append it to the chain of blocs. + Returns a pointer to the new bloc, or zero if we couldn't allocate + /* Put this bloc on the doubly-linked list of blocs. */ +/* Calculate new locations of blocs in the list beginning with BLOC, +in the quitted window. + trough color and main window's background color. + means the truck and arrow colors, and "trough" means the + bg[ACTIVE] = "blue"@ @ @ @ # @r{Trough color.} +also for the trough of a scroll bar, i.e., @code{bg[ACTIVE] = "red"} +sets the scroll bar trough to red. Buttons that have been armed + (while (search-forward "nam" nil t) + (search-forward "som") + (search-forward "Nam") + (0 ":rando!~u@bivkhq8yav938.irc PRIVMSG tester :[09:17:51] u thur?") + (0.01 ":alice/foonet PRIVMSG #chan/foonet :bob: Sir, his wife some two months since fled from his house: her pretence is a pilgrimage to Saint Jaques le Grand; which holy undertaking with most austere sanctimony she accomplished; and, there residing, the tenderness of her nature became as a prey to her grief; in fine, made a groan of her last breath, and now she sings in heaven.") + "sav" + (if valu + (cons symb valu))) + (sample-text . "Er is een aantal manieren waarop je dit kan doen") +Tai Daeng (also known as Red Tai or Tai Rouge), + ;; Ith character and the followings matches precomposable + sprintf (css, "scrollbar trough { background-color: #%06x; }", + OFROM[I] is position of the earliest comment-starter seen + sprintf (css, "scrollbar trough { background-color: #%02x%02x%02x; }", + /* Note: "background" is the thumb color, and "trough" is the color behind + (uptodate t)) + (while (and files uptodate) + (setq uptodate nil))))) + uptodate))) + ptrdiff_t acount = 0; /* The # of consecutive times A won. */ + acount = 0; + ++acount; + if (acount >= min_gallop) + acount = k; + } while (acount >= GALLOP_WIN_MIN || bcount >= GALLOP_WIN_MIN); + ptrdiff_t acount = 0; /* The # of consecutive times A won. */ + ++acount; + if (acount >= min_gallop) + acount = 0; + acount = k; + } while (acount >= GALLOP_WIN_MIN || bcount >= GALLOP_WIN_MIN); + 154cd116be (origin/emacs-27) * admin/release-process: Adapt bug numbe... + a38da0d cc-mode.texi: Work around makeinfo alignment bug. Fix proble... + fd35804971 (origin/emacs-26) * doc/lispref/strings.texi (Case Convers... + be in line with the raison d'être of compiling printer which is speed. +mace <mace@kirjakaapeli.lib.hel.fi> +at that position, the result is @samp{fro!b}, with point between the +doesnt +minimize(xfit(gaus(a,b,c,d,x), x, [a,b,c], data)_5, d, guess) +where @code{gaus} represents the Gaussian model with background, +* Score Decays:: It can be useful to let scores wither away. +providers if they were to do this---their @emph{raison d'être} is to +While this design may be internally consistent with the raison d'être of +Finally, just to whet your appetite for what can be done with the +Wedler, Alan Williams, Roland Winkler, Hans-Christoph Wirth, Eli + "Some Place\nIn some City\nSome country.") +@c andrewm@@optimation.co.nz +Emacs Macht Alle Computer Schoen +GLib-GObject-WARNING **: /build/buildd/glib2.0-2.14.5/gobject/gsignal.c:1741: instance `0x8206790' has no handler with id `1234' at t-compilation-perl-gtk.pl line 3. + \quad \B{A}ction: I)ncrease, L)ower;\\* + (calc-unary-op "flor" 'calcFunc-ffloor arg) + (calc-unary-op "flor" 'calcFunc-floor arg))))) + ["de la Vertu" "du Génie" "du Travail" "de la Raison" "des Récompenses" + "de la Cuve" "de la Pomme de terre" "de l'Immortelle" + "de la Raison" "des Récompenses" "de la Révolution"] + (string-match "config\\(ure\\.\\(in\\|ac\\)\\|\\.status\\)?$" f) + ("\\.\\(dll\\|drv\\|386\\|vxd\\|fon\\|fnt\\|fot\\|ttf\\|grp\\)$" . t) + (insert (format "\nIn %s:\n" form))) + (format "\nIn macro %s:" (cadr form))) + (format "\nIn variable %s:" (cadr form))) + (insert "\nIn " package) + "\nIn order to use version `%s' of gnus, you will need to set\n" +znak/ow diakrytycznych. Funkcje te mo/zna pogrupowa/c nast/epuj/aco. + oraz ich warto/sci domy/slne s/a nast/epuj/ace: + (insert "\nIn " (emacs-version)) + "[n]ew messages; [']ticked messages; [s]earch;\n" + (?/ "Limit to [c]c, ran[g]e, fro[m], [s]ubject, [t]o; [w]iden") + (dictionary-send-command "show strat") +r(egion), s(tring), w(ord) ]." + "ncl" "nfd" "ngu" "nin" "nma" "nmu" "nod" "nop" "npp" "nsf" + (theyre they\'re (they are)) + (insert "\n[K]nown conditionals: ") + "[T]rue Face" "[F]alse Face" "[W]rite")) + "[ \t]*in\\(?:put\\|clude\\)[ \t]*{\\(.*%s\\)}"))) + (let ((siz (cond ((numberp size) + (and (< siz 0) + siz)) + "\tHow to report bugs and contribute improvements to Emacs\n" + "\tHow to obtain the latest version of Emacs\n" + (insert "\tHow to report bugs and contribute improvements to Emacs\n\n") + (insert "\tHow to get the latest version of GNU Emacs\n") + ("/mod\\(?:ules\\|probe\\)\\.conf" . "alias\\|in\\(?:clude\\|stall\\)\\|options\\|remove") + ("/dictionary\\.lst\\'" . "DICT\\|HYPH\\|THES") + ;; use-mark sizeA dateA sizeB dateB filename +;; nin, nil are placeholders. See ediff-make-new-meta-list-element in +;; Andrew McRae <andrewm@optimation.co.nz> + * xmenu.c (apply_systemfont_to_menu): *childs was incorrectly used. +DEFUN ("catch", Fcatch, Scatch, 1, UNEVALLED, 0, + defsubr (&Scatch); +DEFUN ("elt", Felt, Selt, 2, 2, 0, + defsubr (&Selt); + (should (equal (string-truncate-left "longstring" 8) "...tring"))) + (0.06 ":joe!~u@6d9pasqcqwb2s.irc PRIVMSG #chan :mike: Lady, I will commend you to mine own heart.") + (perl "GLib-GObject-WARNING **: /build/buildd/glib2.0-2.14.5/gobject/gsignal.c:1741: instance `0x8206790' has no handler with id `1234' at t-compilation-perl-gtk.pl line 3." + (rxp "Error: Mismatched end tag: expected </geroup>, got </group>\nin unnamed entity at line 71 char 8 of file:///home/reto/test/group.xml" + (rxp "Warning: Start tag for undeclared element geroup\nin unnamed entity at line 4 char 8 of file:///home/reto/test/group.xml" + (string= (python-util-strip-string "\n str \nin \tg \n\r") "str \nin \tg")) + (insert "hel") + (format "\nIn function %s:" (cadr form))) + (t "\nIn top level expression:")))) + All suggested by Ned Ludd. +;; 2002-07-27 Added DELETESCRIPT. Suggested by Ned Ludd. +;; Ned Ludd. +To: Ned Freed <ned@innosoft.com> +@strong{Te Deum} + If the termcap entry does not define the "ti" or "te" string, + and the "te" string is used to set it back on exit. + (te (solar-time-equation date ut))) + (setq ut (- ut te)) + (let ((te (semantic-tag-end aftertag))) + (when (not te) + (goto-char te) + ("te" . "Telugu") + ("\\.te?xt\\'" . text-mode) + ("\\.te?xi\\'" . texinfo-mode) + '(("\\.te?xt$\\|\\.doc$\\|read.*me\\|\\.c?$\\|\\.h$\\|\\.bat$\\|\\.asm$\\|makefile" "cat %s | sed 's/\r$//'") + ("\\.\\(te?xt\\|doc\\|c\\|h\\)$" "text/plain") + (not (string-match "\\.te?xi\\'" name)) ;; not .texi + (?\ተ "te") + (?\ቴ "tE") + (?\ጠ "Te") + (?\ጤ "TE") + (?\∃ "TE") + (?\て "te") + (?\テ "Te") + ("te" "Telugu" utf-8) ; Telugu + "సంకేతపదము" ; te + * org-clock.el (org-clocktable-steps): Allow ts and te to be day + issue face m te ts dt ov) + te nil ts nil) + te (match-string 3) + te (float-time (org-time-string-to-time te)) + dt (- te ts)))) + (setq tlend (or te tlend) tlstart (or ts tlstart)) + ts te s h m remove) + (setq te (org-insert-time-stamp (or at-time now) 'with-hm 'inactive)) + (org-time-string-to-time te) + te (org-duration-from-minutes (+ (* 60 h) m))) + (te (float-time + (dt (- (if tend (min te tend) te) + (te (plist-get params :tend)) + te (nth 1 cc))) + (unless (or block (and ts te)) + (te (plist-get params :tend)) + te (nth 1 cc))) + (when (integerp te) (setq te (calendar-gregorian-from-absolute te))) + (when (and te (listp te)) + (setq te (format "%4d-%02d-%02d" (nth 2 te) (car te) (nth 1 te)))) + (if te (setq te (org-matcher-time te))) + (org-clock-sum ts te + ts te h m s neg) + te (match-string 3)) + (apply #'encode-time (org-parse-time-string te))) +;; Emulate more complete preprocessor support for tbl (.TS/.TE) +This applies to text between .TE and .TS directives. + ;; ((looking-at "[te]") (setq c nil)) ; reject t(roff) and e(ven page) + (set-marker to (woman-find-next-control-line "TE")) + tty->TS_end_termcap_modes = tgetstr ("te", address); + const char *TS_end_termcap_modes; /* "te" */ + (0 ":joe!~u@286u8jcpis84e.irc PRIVMSG #chan :[09:19:19] mike: Chi non te vede, non te pretia.") + (0.1 ":mike!~u@wvys46tx8tpmk.irc PRIVMSG #chan :joe: Chi non te vede, non te pretia.") + "un moyen, et te trompant ainsi sur la route =C3=A0 suivre les voil=C3=A0 bi=\n" + "ent=C3=B4t qui te d=C3=A9gradent, car si leur musique est vulgaire ils te f=\n" + "abriquent pour te la vendre une =C3=A2me vulgaire.")) + "un moyen, et te trompant ainsi sur la route à suivre les voilà bi" + "entôt qui te dégradent, car si leur musique est vulgaire ils te f" + "abriquent pour te la vendre une âme vulgaire.")) + (".TS" . ".TE") + (define-key vhdl-template-map "te" #'vhdl-template-terminal) + ("te" "telugu") + (format "%s.TE\n" +:NR:te=\\E[47l:ti=\\E[47h\ + ;; don't define :te=\\E[2J\\E[?47l\\E8:ti=\\E7\\E[?47h\ + nil nil nil nil "FA" "C." "dP" "TE" "~TE" "/0" +(defalias 'woman2-TE #'woman2-fi) +;;; Preliminary table support (.TS/.TE) + ;; ".TE -- End of table code for the tbl processor." + 8804ac857b * src/buffer.c (syms_of_buffer) <ctl-arrow>: Doc fix. (Bu... + da00a6f317 Fix Xaw widget text disappearing when built with cairo (bu... +2020-11-10 Andrew G Cohen <cohen@andy.bu.edu> +2020-09-23 Andrew G Cohen <cohen@andy.bu.edu> +2020-09-11 Andrew G Cohen <cohen@andy.bu.edu> +2020-09-10 Andrew G Cohen <cohen@andy.bu.edu> +2020-09-09 Andrew G Cohen <cohen@andy.bu.edu> +2020-09-07 Andrew G Cohen <cohen@andy.bu.edu> +2020-09-05 Andrew G Cohen <cohen@andy.bu.edu> +2020-08-29 Andrew G Cohen <cohen@andy.bu.edu> +2020-08-27 Andrew G Cohen <cohen@andy.bu.edu> + 121be3e118 ; * etc/NEWS: Remove temporary note on documentation. (Bu... + 224e8d1464 Make call_process call signal_after_change. This fixes bu... + 891f7de8ed * test/lisp/simple-tests.el: Full path to Emacs binary (bu... + 8b7c776 * lisp/simple.el (kill-do-not-save-duplicates): Doc fix. (Bu... + beb4eac * doc/lispref/display.texi (Showing Images): Fix a typo. (Bu... + 60b5c10 Provide more details in doc-string of 'delete-windows-on' (Bu... + 57bcdc7 Don't call XGetGeometry for frames without outer X window (Bu... + f64c277 (origin/emacs-26) Let bookmark-jump override window-point (Bu... + 4bd43b0 Increase max-lisp-eval-depth adjustment while in debugger (bu... + 55c9bb9f3c Fix comint-get-old-input-default for output field case (Bu... + e244fed Clarify that nil doesn't match itself as a cl-case clause (Bu... + e21f018 * doc/lispref/functions.texi (Inline Functions): Fix typo (Bu... + c59ecb005e New customization variable for python-mode indentation (Bu... + a36a090 * lisp/progmodes/verilog-mode.el (verilog-mode): Fix typo (Bu... + 98ca7d5 Improve edit-kbd-macro prompting in case of remapped keys (Bu... + 804b37ca63 Save and restore text-pixel height and width of frames (Bu... + 9715317dfd * lisp/dired.el (dired-find-alternate-file): Doc fix. (Bu... + 234b1e3864 Flymake backends must check proc obsoleteness in source bu... + dc8812829b Remove resizable attribute on macOS undecorated frames (bu... + 43fac3beae Make "unsafe directory" error message more informative (Bu... +2017-04-25 Andrew G Cohen <cohen@andy.bu.edu> +2017-04-23 Andrew G Cohen <cohen@andy.bu.edu> + dbb3410 python.el: Fix detection of native completion in Python 3 (bu... + 4b2d77d * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Fix (bu... + d59bcbc Handle mouse leaving initial window in `mouse-set-region' (Bu... + 586b213 * lisp/url/url.el (url-retrieve-synchronously): Doc fix. (Bu... + f3653ec * configure.ac (HAVE_MODULES): Treat gnu like gnu-linux. (Bu... +2010-12-15 Andrew Cohen <cohen@andy.bu.edu> +2010-12-14 Andrew Cohen <cohen@andy.bu.edu> +2010-12-13 Andrew Cohen <cohen@andy.bu.edu> +;; Author: Joe Wells <jbw@bigbird.bu.edu> + (define-key calc-mode-map "bu" 'calc-unpack-bits) + (ruby-mode "*.r[bu]" "*.rake" "*.gemspec" "*.erb" "*.haml" +2002-03-31 Andrew Cohen <cohen@andy.bu.edu> (tiny change) +2013-05-04 Andrew Cohen <cohen@bu.edu> +2013-04-25 Andrew Cohen <cohen@bu.edu> +2013-04-24 Andrew Cohen <cohen@bu.edu> +2013-04-14 Andrew Cohen <cohen@bu.edu> +2013-04-10 Andrew Cohen <cohen@bu.edu> +2013-04-04 Andrew Cohen <cohen@bu.edu> +2013-04-01 Andrew Cohen <cohen@bu.edu> +2013-03-31 Andrew Cohen <cohen@bu.edu> +2013-03-30 Andrew Cohen <cohen@bu.edu> +2013-03-29 Andrew Cohen <cohen@bu.edu> +2013-03-27 Andrew Cohen <cohen@bu.edu> +2013-03-26 Andrew Cohen <cohen@bu.edu> +2012-07-22 Andrew Cohen <cohen@bu.edu> +2011-09-12 Andrew Cohen <cohen@andy.bu.edu> +2011-09-05 Andrew Cohen <cohen@andy.bu.edu> +2011-09-01 Andrew Cohen <cohen@andy.bu.edu> +2011-08-11 Andrew Cohen <cohen@andy.bu.edu> +2011-08-05 Andrew Cohen <cohen@andy.bu.edu> +2011-08-04 Andrew Cohen <cohen@andy.bu.edu> +2011-08-03 Andrew Cohen <cohen@andy.bu.edu> +2011-08-02 Andrew Cohen <cohen@andy.bu.edu> +2011-07-24 Andrew Cohen <cohen@andy.bu.edu> +2011-07-23 Andrew Cohen <cohen@andy.bu.edu> +2011-07-20 Andrew Cohen <cohen@andy.bu.edu> +2011-07-14 Andrew Cohen <cohen@andy.bu.edu> +2011-07-02 Andrew Cohen <cohen@andy.bu.edu> +2011-07-01 Andrew Cohen <cohen@andy.bu.edu> +2011-06-30 Andrew Cohen <cohen@andy.bu.edu> +2011-06-21 Andrew Cohen <cohen@andy.bu.edu> +2011-02-22 Andrew Cohen <cohen@andy.bu.edu> +2010-12-17 Andrew Cohen <cohen@andy.bu.edu> +2010-12-16 Andrew Cohen <cohen@andy.bu.edu> +2010-12-10 Andrew Cohen <cohen@andy.bu.edu> +2010-12-08 Andrew Cohen <cohen@andy.bu.edu> +2010-12-07 Andrew Cohen <cohen@andy.bu.edu> +2010-12-06 Andrew Cohen <cohen@andy.bu.edu> +2010-12-05 Andrew Cohen <cohen@andy.bu.edu> +2010-12-04 Andrew Cohen <cohen@andy.bu.edu> +2010-12-03 Andrew Cohen <cohen@andy.bu.edu> +2010-12-02 Andrew Cohen <cohen@andy.bu.edu> +2010-12-01 Andrew Cohen <cohen@andy.bu.edu> +2010-11-29 Andrew Cohen <cohen@andy.bu.edu> +2010-11-28 Andrew Cohen <cohen@andy.bu.edu> +2010-11-27 Andrew Cohen <cohen@andy.bu.edu> +2010-11-23 Andrew Cohen <cohen@andy.bu.edu> +2010-11-21 Andrew Cohen <cohen@andy.bu.edu> +2010-11-17 Andrew Cohen <cohen@andy.bu.edu> +2010-11-11 Andrew Cohen <cohen@andy.bu.edu> +2010-11-06 Andrew Cohen <cohen@andy.bu.edu> +2010-11-04 Andrew Cohen <cohen@andy.bu.edu> +2010-11-03 Andrew Cohen <cohen@andy.bu.edu> +2010-11-01 Andrew Cohen <cohen@andy.bu.edu> +2010-10-31 Andrew Cohen <cohen@andy.bu.edu> +2010-10-30 Andrew Cohen <cohen@andy.bu.edu> +2010-10-22 Andrew Cohen <cohen@andy.bu.edu> +2010-10-18 Andrew Cohen <cohen@andy.bu.edu> +2010-10-16 Andrew Cohen <cohen@andy.bu.edu> +2010-10-15 Andrew Cohen <cohen@andy.bu.edu> +2010-10-14 Andrew Cohen <cohen@andy.bu.edu> +2010-10-10 Andrew Cohen <cohen@andy.bu.edu> +2010-09-25 Andrew Cohen <cohen@andy.bu.edu> (tiny change) +2010-09-23 Andrew Cohen <cohen@andy.bu.edu> +2004-02-26 Andrew Cohen <cohen@andy.bu.edu> + <cohen@andy.bu.edu>. + syntax table here. Reported by Andrew Cohen <cohen@andy.bu.edu>. + ;; Fix by Mike Dugan <dugan@bucrf16.bu.edu>. +;; Author: Andrew Cohen <cohen@andy.bu.edu> + (?\ቡ "bu") + (?\ぶ "bu") + (?\ブ "Bu") +;; Author: Joe Wells <jbw@cs.bu.edu> +;; Tue Mar 23 21:23:18 1993 Joe Wells (jbw at csd.bu.edu) +;; Mon Mar 22 21:20:56 1993 Joe Wells (jbw at bigbird.bu.edu) +;; Mon Mar 22 20:16:57 1993 Joe Wells (jbw at bigbird.bu.edu) +;; Mon Mar 22 00:46:12 1993 Joe Wells (jbw at bigbird.bu.edu) +;; Sun Mar 21 21:41:06 1993 Joe Wells (jbw at bigbird.bu.edu) +;; Sun Mar 21 14:39:38 1993 Joe Wells (jbw at bigbird.bu.edu) +;; Mon Feb 1 22:23:31 1993 Joe Wells (jbw at bigbird.bu.edu) +;; Mon Apr 6 23:59:09 1992 Joe Wells (jbw at bigbird.bu.edu) +;; Sun Apr 5 19:39:08 1992 Joe Wells (jbw at bigbird.bu.edu) +;; Sun Feb 2 14:45:24 1992 Joe Wells (jbw at bigbird.bu.edu) + " --------Unsent Message below:" ; from sendmail at BU +;; Mostly rewritten by Andrew Cohen <cohen@bu.edu> from 2010 + ((string= "*" bullet) "\\(bu") + (gud-def gud-finish "bu\\t" "\C-f" "Finish executing current function.") + ("bu" "*" "\267" . t) ; bullet + '("+l" "#s" "#bu"))) + da6234e2df Make sure pixel sizes are zero when setting window size fo... + d38fd9229c0 Narrow scope of modification hook renabling in org-src fo... +is the last word in the buffer that starts with @samp{fo}. A numeric +after the first @samp{FO}; the @samp{F} in that @samp{FO} might not be +expression @samp{fo}, which matches only the string @samp{fo}. To do +expression. Thus, @samp{fo*} has a repeating @samp{o}, not a repeating +@samp{fo}. It matches @samp{f}, @samp{fo}, @samp{foo}, and so on. +$ ls -li fo* +(file-name-all-completions "fo" "") + nil t "fo") +Complete a foo: fo@point{} +and @samp{o} to get the regular expression @samp{fo}, which matches only +the string @samp{fo}. Still trivial. To do something more powerful, you +fo +@samp{fo#.el} matches @file{f.el}, @file{fo.el}, @file{foo.el}, etc. +@samp{fo#.el} matches @file{fo.el}, @file{foo.el}, @file{fooo.el}, + <style:text-properties fo:background-color="#ff0000"/> + <style:paragraph-properties fo:break-before="page"/> + \futurelet\next\fo@t +M-f Fo Alias (keep?) +% | fo | + fo ;; List of final overloaded functions + (if (get s 'constant-flag) fo ov)) + (when fo + (mapc #'mode-local-print-binding fo)) + :eval (string-match-p "^[fo]+" "foobar")) + :eval (and (string-match "^\\([fo]+\\)b" "foobar") + ("fo" . "Faroese") + (?\ፎ "fo") + ("fo" . "Latin-1") ; Faroese + ("fo" "Faroe Islands") + M-f -> Fo Alias (keep?) + ;; quotes (for example), we end up completing "fo" to "foobar and throwing + ;; completing "fo" to "foO" when completing against "FOO" (bug#4219). + <style:table-properties style:rel-width=\"%s%%\" fo:margin-top=\"0cm\" fo:margin-bottom=\"0.20cm\" table:align=\"center\"/> + <style:paragraph-properties fo:background-color=\"%s\" fo:padding=\"0.049cm\" fo:border=\"0.51pt solid #000000\" style:shadow=\"none\"> + <style:text-properties fo:color=\"%s\"/> + (format " fo:min-width=\"%0.2fcm\"" (or width .2)))) + (concat (format " fo:min-height=\"%0.2fcm\"" (or height .2)) + <style:text-properties fo:color=\"%s\"/> + ;; Are we coalescing two tokens together, e.g. "fo o" + ;; user from completing "fo" to "foo/" when she +;; | | | fo | | fo | | | +page-height == bm + print-height + tm - fo - fh + ("fo+bar" nil "2nd") + ("fo*bar" nil "3rd"))) + (should (equal (ert--abbreviate-string "foo" 2 nil) "fo")) + (should (equal (string-limit "foo" 2) "fo")) + (should (equal (string-limit "foó" 10 nil 'utf-8) "fo\303\263")) + (should (equal (string-limit "foó" 3 nil 'utf-8) "fo")) + (should (equal (string-limit "foó" 4 nil 'utf-8) "fo\303\263")) + (should (equal (string-limit "foóa" 4 nil 'utf-8) "fo\303\263")) + (should (equal (string-limit "foóá" 4 nil 'utf-8) "fo\303\263")) + (should (equal (string-limit "foóa" 4 nil 'iso-8859-1) "fo\363a")) + (should (equal (string-limit "foóá" 4 nil 'iso-8859-1) "fo\363\341")) + (should (equal (string-limit "foó" 10 t 'utf-8) "fo\303\263")) + (should (equal (string-limit "foó" 4 t 'utf-8) "fo\303\263")) + (should (equal (string-limit "foóa" 4 t 'iso-8859-1) "fo\363a")) + (should (equal (string-limit "foóá" 4 t 'iso-8859-1) "fo\363\341")) + " fo")) + (("foo" 2 nil nil "...") . "fo") ;; XEmacs failure? + (non-directories '("/abso-folder/fo" "rela-folder/fo" + "/testdir/Mail/rela-folder/fo" + (format "+%s/fo" mh-test-rel-folder) nil 'lambda))))) + (format "+%s/fo" mh-test-abs-folder) nil 'lambda))))) + (should (equal (file-name-completion "fo" tmp-name) "foo.")) + (sort (file-name-all-completions "fo" tmp-name) #'string-lessp) + (should (equal (file-name-completion "fo" tmp-name) "foo")) + (equal (file-name-all-completions "fo" tmp-name) '("foo"))) + (should (equal (file-name-completion "fo" tmp-name) "foo")) + (should (equal (string-replace "fo" "bar" "lafofofozot") + (should (= (replace-regexp-in-region "fo+" "new" (point-min) (point-max)) + (should (= (replace-regexp-in-region "fo+" "new" (point-min) 14) + (should-error (replace-regexp-in-region "fo+" "new" (point-min) 30))) + (should (= (replace-regexp-in-region "Fo+" "new" (point-min)) + (should-not (yank-media--utf-16-p "fo")) + (should (equal (fns-tests--with-region base64-encode-region "fo") "Zm8=")) + (should (equal (base64-encode-string "fo") "Zm8=")) + (should (equal (fns-tests--with-region base64url-encode-region "fo") "Zm8=")) + (should (equal (fns-tests--with-region base64url-encode-region "fo" t) "Zm8")) + (should (equal (fns-tests--with-region base64url-encode-region (fns-tests--string-repeat "fo" 50) t) + (should (equal (base64url-encode-string "fo") "Zm8=")) + (should (equal (base64url-encode-string "fo" t) "Zm8")) + (should (equal (base64url-encode-string (fns-tests--string-repeat "fo" 50) t) (concat (fns-tests--string-repeat "Zm9mb2Zv" 16) "Zm9mbw"))) + (should (equal (base64-decode-string "Zm8=") "fo")) + (should (equal (base64-decode-string "Zm8" t) "fo")) + (should (equal (base64-decode-string "Zm8=" t) "fo")) + (fns-tests--string-repeat "fo" 50))) +@samp{o} (oblique), @samp{ri} (reverse italic), or @samp{ot} (other). +@deffn Method project-update-version :AFTER ot +The @code{:version} of the project @var{OT} has been updated. +@deffn Method project-remove-file :AFTER ot fnnd +Remove the current buffer from project target @var{OT}. +@deffn Method project-delete-target :AFTER ot +Delete the current target @var{OT} from its parent project. +@deffn Method project-edit-file-target :AFTER ot +Edit the target @var{OT} associated with this file. +@deffn Method project-add-file :AFTER ot file +Add the current buffer into project target @var{OT}. +- (font (nil phetsarath\ ot unicode-bmp))) + "Remove the current buffer from project target OT. +(cl-defmethod project-update-version ((ot ede-project)) + "The :version of the project OT has been updated. + (error "project-update-version not supported by %s" (eieio-object-name ot))) + ;; no so ea we ne se nw sw up do in ot + ;; no so ea we ne se nw sw up do in ot + (define-key vhdl-template-map "ot" #'vhdl-template-others) + { 200, { "italic" ,"i", "ot" }}, +(cl-defmethod oclosure-interactive-form ((ot oclosure-test)) + (let ((snd (oclosure-test--snd ot))) + (math-simplify-divisor): Only bind math-simplify-divisor-[nd]over + @result{} Nd + "s section[eg- emacs / p4-blame]:\nD source-dir: \nD output-dir: ") +(define-key ctl-x-map "nd" 'narrow-to-defun) + (aref ["th" "st" "nd" "rd"] (% n 10)))) + (let* ((nd date) + (setq nd (list (car date) (1+ (cadr date)) + (setq nd (list (car date) (1- (cadr date)) + (setq nd (calendar-gregorian-from-absolute ; date standardization + (calendar-absolute-from-gregorian nd))) + (list nd ut))) + (interactive "*P\nd") + (interactive "^p\nd") + (interactive "^p\nd\nd") + (if (string= "" nd) + (concat "\\`" (regexp-quote nd))) + (nd (file-name-nondirectory auto-save-list-file-prefix))) + ((= digit 2) "nd") + \"s section[eg- emacs / p4-blame]:\\nD source-dir: \\nD output-dir: \") + (interactive "D source directory: \nD output directory: ") +(defun mailcap-parse-mailcap-extras (st nd) + (narrow-to-region st nd) + ("New York" . "ny") ("North Carolina" . "nc") ("North Dakota" . "nd") + '(Lu Ll Lt Lm Lo Mn Mc Me Nd Nl No Pc Pd +(xsdre-def-derived-category 'N '(union Nd Nl No)) + "cm=^p=%+ %+ :cr=^p^a:le=^p^b:nd=^p^f:" +p(aragraph), P(age), f(unction in C/Pascal etc.), w(ord), e(nd of sentence), +;; - an ordinal suffix (st, nd, rd, th) for the year + - an ordinal suffix (st, nd, rd, th) for the year + '(", *\\(e\\(nd\\|rr\\)\\)\\> *\\(= *\\([0-9]+\\)\\)?" + "\\<\\(&&\\|and\\|b\\(egin\\|reak\\)\\|c\\(ase\\|o\\(mpile_opt\\|ntinue\\)\\)\\|do\\|e\\(lse\\|nd\\(case\\|else\\|for\\|if\\|rep\\|switch\\|while\\)?\\|q\\)\\|for\\(ward_function\\)?\\|g\\(oto\\|[et]\\)\\|i\\(f\\|nherits\\)\\|l[et]\\|mod\\|n\\(e\\|ot\\)\\|o\\(n_\\(error\\|ioerror\\)\\|[fr]\\)\\|re\\(peat\\|turn\\)\\|switch\\|then\\|until\\|while\\|xor\\|||\\)\\>") + "and\\|begin\\|case\\|do\\|e\\(lse\\|nd\\)\\|for\\|i[fn]\\|" + (interactive "P\nd") + (interactive "*p\nd") + Right (tty) = tgetstr ("nd", address); + "c\nd\n"))) + (insert "a\nb\nc\nd\ne\nf") + (insert "a\nb\nc\nd\ne") + (interactive "i\nd\nP") + * lisp/term.el (term-termcap-format): Fix a typo in the "ue=" +Urban Engberg (ue at cci.dk), + * quail/latin-post.el ("german-postfix"): Do not translate ue to + (define-key calc-mode-map "ue" 'calc-explain-units) + le ue pe) + (bindat--make :ue ,(bindat--toplevel 'unpack type) + Trivial patch from Urban Engberg <ue@ccieurope.com>. + ("ü" "ue") + ("Ü" "Ue") +;; AE -> Ä OE -> Ö UE -> Ü +;; ae -> ä oe -> ö ue -> ü ss -> ß +;; AEE -> AE OEE -> OE UEE -> UE +;; aee -> ae oee -> oe uee -> ue sss -> ss" +;; ("UE" ?Ü) +;; ("ue" ?ü) +;; ("UEE" "UE") +;; ("uee" "ue") + ("Uuml" "\\\"{U}" nil "Ü" "Ue" "Ü" "Ü") + ("uuml" "\\\"{u}" nil "ü" "ue" "ü" "ü") +:so=\\E[7m:se=\\E[m:us=\\E[4m:ue=\\E[m:md=\\E[1m:mr=\\E[7m:me=\\E[m\ + (("\"U" "\\\"U") . "Ue") ; "U,\"U -> Ue + (("\"u" "\\\"u") . "ue") ; "u,\"u -> ue +/^#undef INTERNAL_TERMINAL *$/s,^.*$,#define INTERNAL_TERMINAL "pc|bios|IBM PC with color display::co#80:li#25:Co#16:pa#256:km:ms:cm=<CM>:cl=<CL>:ce=<CE>::se=</SO>:so=<SO>:us=<UL>:ue=</UL>:md=<BD>:mh=<DIM>:mb=<BL>:mr=<RV>:me=<NV>::AB=<BG %d>:AF=<FG %d>:op=<DefC>:", + * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue, + tty->TS_exit_underline_mode = tgetstr ("ue", address); +:bl=^G:do=^J:le=^H:ta=^I:se=\\E[27m:ue=\\E[24m\ + const char *TS_enter_underline_mode; /* "ue" -- end underlining. */ + ((equal (aref (car lines) 0) "fpr") + (let* ((fpr (epg-sub-key-fingerprint subkey)) + (candidates (epg-list-keys context fpr 'secret)) + (error "Found %d secret keys with same fingerprint %s" candno fpr)) + (fpr (epg-sub-key-fingerprint primary))) + (string-match-p (concat fingerprint "$") fpr) + (dolist (fpr signer-fprs nil) + fpr + (substring fpr -16 nil))) + (let ((fpr (if (eq protocol 'OpenPGP) + (should (string-match-p (concat "-r " fpr) match)))) + time. The reverse is true in Ireland, where standard time "IST" +(e.g., especially with l(ist) and k(ill)). +;; <http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.42.6421&rep=rep1&type=pdf> + ;; <http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.42.6421&rep=rep1&type=pdf>. + ("ist" "İstanbul, Turkey") + consistency (e.g., esp. with l(ist) and k(ill). + (?F "[l]ist; [v]isit folder;\n" + "[s]equences, [l]ist,\n" + "exec~ute" "exit" "get" "help" "ho~st" "[$]" "i~nput" "l~ist" + (calendar-standard-time-zone-name "IST") + "1972-07-01 05:29:59.999 +0530 (IST)")) + (let ((thi (if (math-lessp hi '(float -2 0)) + (math-float lo) (math-float thi) 'inf) + lo thi))) +Joakim Hove wrote @file{html2text.el}, a html to plain text converter. +Hove, Denis Howe, Lars Ingebrigtsen, Andrew Innes, Seiichiro Inoue, + * html2text.el: New file from Joakim Hove <hove@phys.ntnu.no>. +;; Author: Joakim Hove <hove@phys.ntnu.no> +Damon Anton Permezel wrote @file{hanoi.el}, an animated demonstration of +Jeff Peck, Damon Anton Permezel, Tom Perrine, William M. Perry, Per +;; Author: Damon Anton Permezel +; Author (a) 1985, Damon Anton Permezel +;; JAVE I preferred ecmascript-mode. +;;JAVE break needs labels +;JAVE this just instantiates a default empty ebrowse struct? +JAVE: stub for needs-refresh, because, how do we know if BROWSE files +;JAVE what it actually seems to do is split the original tree in "tables" associated with files + ;(semantic-fetch-tags) ;JAVE could this go here? +JAVE this thing would need to be recursive to handle java and csharp" +; (re-search-forward (concat "/\\*" indicator "\\*/")); JAVE this isn't generic enough for different languages + clen cidx) + (setq clen (length lao-consonant)) + str (if (= clen 1) + * bidi.c (bidi_level_of_next_char): clen should be EMACS_NT, not int. + if (ident_length == 6 && memcmp (ident_start, "defalt", 6) == 0) + if (! NILP (XCHAR_TABLE (table)->defalt)) + Fcopy_sequence (XCHAR_TABLE (table)->defalt)); +make_sub_char_table (int depth, int min_char, Lisp_Object defalt) + XSUB_CHAR_TABLE (table)->contents[i] = defalt; + set_char_table_defalt (copy, XCHAR_TABLE (table)->defalt); + val = tbl->defalt; + Lisp_Object defalt, bool is_uniprop, bool is_subtable) + defalt, is_uniprop); + val = defalt; + Lisp_Object defalt, bool is_uniprop) + defalt, is_uniprop, true); + defalt, is_uniprop, true); + tbl->defalt, is_uniprop, false); + tbl->defalt, is_uniprop, false); + val = XCHAR_TABLE (char_table)->defalt; + this = XCHAR_TABLE (top)->defalt; + ? (dp)->defalt \ +decode_env_path (const char *evarname, const char *defalt, bool empty) + path = ns_relocate (defalt); + path = defalt; + (name, defalt) + if (NILP (defalt)) + CHECK_STRING (defalt); + if (CHAR_TABLE_P (vector) && ! NILP (XCHAR_TABLE (vector)->defalt)) + (*elt_describer) (XCHAR_TABLE (vector)->defalt, args); + The size counts the defalt, parent, purpose, ascii, + Lisp_Object defalt; + val = tbl->defalt; + counts the ordinary slots and the top, defalt, parent, and purpose +verify (offsetof (struct Lisp_Char_Table, defalt) == header_size); + XCHAR_TABLE (table)->defalt = val; + string, and DEFALT is a string, read from DEFALT instead of VAL. */ +string_to_object (Lisp_Object val, Lisp_Object defalt) + if (STRINGP (defalt)) + else if (CONSP (defalt) && STRINGP (XCAR (defalt))) + Lisp_Object defalt) + val = string_to_object (val, CONSP (defalt) ? XCAR (defalt) : defalt); + DEFALT specifies the default value for the sake of history commands. + Lisp_Object histvar, Lisp_Object histpos, Lisp_Object defalt, + specbind (Qminibuffer_default, defalt); + val = read_minibuf_noninteractive (prompt, expflag, defalt); + else if (STRINGP (defalt)) + else if (CONSP (defalt) && STRINGP (XCAR (defalt))) + val = string_to_object (val, defalt); + Lisp_Object defalt = Fassq (prop, Vtext_property_default_nonsticky); + if (ignore_previous_character || (CONSP (defalt) && !NILP (XCDR (defalt)))) + val = dp->defalt; + Lisp_Object name, defalt; + defalt = current_buffer->directory; + newdir = SDATA (defalt); + val = defalt; + val = XCAR (defalt); + histstring = defalt; + histstring = XCAR (defalt); + EIEIO: Promote the CLOS behavior over the EIEIO-specific behavior + Change the implementation of `:initform` to better match the CLOS semantics, + (CLOS compatibility, Wish List): Adjust to new featureset. +@cindex CLOS +(@acronym{CLOS}), this support is based on @dfn{generic functions}. +The Emacs generic functions closely follow @acronym{CLOS}, including +use of similar names, so if you have experience with @acronym{CLOS}, + * eieio.texi (Accessing Slots, CLOS compatibility): Adjust wording + (Method Invocation, CLOS compatibility): + * eieio.texi (Class Values, CLOS compatibility): + EIEIO and CLOS from 'Building Classes' to here. + (Class Values, CLOS compatibility): Mention that + * eieio.texi (top): Make clear that EIEIO is not a full CLOS +to Emacs Lisp programmers. CLOS and Common Lisp streams are fine +a subset of CLOS functionality. @xref{Top, , Introduction, eieio, EIEIO}.) +The Common Lisp Object System (CLOS) is not implemented, +CLOS functionality. +bugs in @ede{}. A knowledge of Emacs Lisp, and some @eieio{}(CLOS) is +@ede{} uses @eieio{}, the CLOS package for Emacs, to define two object +concepts of the Common Lisp Object System (CLOS). It provides a +* CLOS compatibility:: What are the differences? +Lisp Object System (CLOS) and also differs from it in several aspects, +on the other hand you are already familiar with CLOS, you should be +aware that @eieio{} does not implement the full CLOS specification and +@pxref{CLOS compatibility}). +and methods using inheritance similar to CLOS. +Method definitions similar to CLOS. +Public and private classifications for slots (extensions to CLOS) +Customization support in a class (extension to CLOS) +Due to restrictions in the Emacs Lisp language, CLOS cannot be +setf. Here are some important CLOS features that @eieio{} presently +This CLOS method tag is non-functional. +will use the list as a value. This is incompatible with CLOS (which would +This option is in the CLOS spec, but is not fully compliant in @eieio{}. +This option is specific to Emacs, and is not in the CLOS spec. +what CLOS does when a monotonic class structure is defined. +Unsupported CLOS option. Enables the use of a different base class other +Unsupported CLOS option. Specifies a list of initargs to be used when +@xref{CLOS compatibility}, for more details on CLOS tags versus +The following accessors are defined by CLOS to reference or modify +This is not a CLOS function. It is therefore +of CLOS. +objects. In CLOS, this would be named @code{STANDARD-CLASS}, and that +This function takes arguments in a different order than in CLOS. +In @var{clos}, the argument list is (@var{class} @var{object} @var{slot-name}), but +@node CLOS compatibility +@chapter CLOS compatibility +CLOS. +CLOS supports the @code{describe} command, but @eieio{} provides +@eieio{} is an incomplete implementation of CLOS@. Finding ways to +improve the compatibility would help make CLOS style programs run +@c LocalWords: cb cdr charquote checkcache cindex CLOS +System (CLOS). It is used by the other CEDET packages. +CLOS class and slot documentation. + "Convert a list of CLOS class slot PARTLIST to `variable' tags." +C++ and CLOS can define methods that are not in the body of a class +Some languages such as C++ and CLOS permit the declaration of member +the class. C++ and CLOS both permit methods of a class to be defined +;; Standard CLOS name. +This may prevent classes from CLOS applications from being used with EIEIO +since EIEIO does not support all CLOS tags.") + ;; not by CLOS and is mildly inconsistent with the :initform thingy, so + ;; (but not CLOS) but is a bad idea (for one: it's slower). + "Abstractly modify a CLOS object." + "Instance of a CLOS class." +;; CLOS, the Common Lisp Object System. In addition, EIEIO also adds +The following are extensions on CLOS: +Options in CLOS not supported in EIEIO: + ;; test, so we can let typep have the CLOS documented behavior +;;; Handy CLOS macros +;; CLOS name, maybe? +The CLOS function `class-direct-superclasses' is aliased to this function." +The CLOS function `class-direct-subclasses' is aliased to this function." +;; Official CLOS functions. +;;; CLOS queries into classes and slots +;; FIXME: CLOS uses "&rest INITARGS" instead. +In CLOS, the argument list is (CLASS OBJECT SLOT-NAME), but +;;; Unimplemented functions from CLOS + ;; CLOS and EIEIO + ;; this works for SOS, STklos, SCOOPS, Meroon and Tiny CLOS. + ;; EIEIO's :initform is not 100% compatible with CLOS in +;; Also test behavior of `call-next-method'. From clos.org: + ;; CLOS form of make-instance + (interactive "p\nd\nd") + (interactive "p\nd") + (let (st nd pt) + (setq nd (match-beginning 0) + pt nd) + (setq nd (match-beginning 0) + (setq nd (match-beginning 0)))) + (setq nd (match-beginning 0))) + (or st nd)))) + (narrow-to-region (or st (point-min)) (or nd (point-max))) + (when nd + (goto-char nd) + (fortran-blink-match "e\\(nd[ \t]*if\\|lse\\([ \t]*if\\)?\\)\\b" + ;; FIXME: `foo a!nd bar' should transpose into `bar and foo'. + (make-directory nd t) + (speedbar-goto-this-file nd) + (let ((nd (file-name-nondirectory file))) + (concat "] \\(" (regexp-quote nd) +:nd=\\E[C:up=\\E[A:ce=\\E[K:ho=\\E[H:pt\ +(defun url-http-content-length-after-change-function (_st nd _length) + (funcall byte-count-to-string-function (- nd url-http-end-of-headers)) + (url-percentage (- nd url-http-end-of-headers) + (funcall byte-count-to-string-function (- nd url-http-end-of-headers)) + (url-percentage (- nd url-http-end-of-headers) + (if (> (- nd url-http-end-of-headers) url-http-content-length) +(defun url-http-chunked-encoding-after-change-function (st nd length) + url-http-chunked-counter st nd length) + (if (> nd (+ url-http-chunked-start url-http-chunked-length)) + nd)) +(defun url-http-wait-for-headers-change-function (_st nd _length) + (setq nd (- nd (url-http-clean-headers))))) + (when (> nd url-http-end-of-headers) + (marker-position url-http-end-of-headers) nd + (- nd url-http-end-of-headers)))) + ((> nd url-http-end-of-headers) + nd + (- nd url-http-end-of-headers))) + Lu, Ll, Lt, Lm, Lo, Mn, Mc, Me, Nd, Nl, No, Pc, Pd, Ps, Pe, Pi, Pf, Po, + const char *cm_right; /* right (nd) */ + (should (equal (ert-test-result-messages result) "a\nb\nc\nd\n"))))) + (insert "a\nb\nc\nd\n") + (insert "a\nb\nc\nd\n") + (insert "a\nb\nc\nd\n") + (insert "a\nb\nc\nd\n") + (insert "a\nb\nc\nd\n") + (should (string= (buffer-string) "Abc\nd efg\n(h ijk).")))) + (nd (read-directory-name "Create directory: " +DESCRIPTION:In this meeting\\, we will cover topics from product and enginee +@item @samp{.crate} --- +@cindex @file{crate} file archive suffix +@cindex file archive suffix @file{crate} +;; * ".crate" - Cargo (Rust) packages + "crate" ;; Cargo (Rust) packages. Not in libarchive testsuite. + ;; RFC5546 refers to uninvited attendees as "party crashers". +That includes both spelling (e.g., "behavior", not "behaviour") and + * doc/lispref/control.texi (Signalling Errors) + * doc/lispref/control.texi (Signalling Errors) +Re "behavior" vs "behaviour", etc. ++ [[https://protesilaos.com/codelog/2020-07-08-modus-themes-nuanced-colours/][Modus themes: major review of "nuanced" colours]] (2020-07-08) ++ [[https://protesilaos.com/codelog/2020-09-14-modus-themes-review-blues/][Modus themes: review of blue colours]] (2020-09-14) ++ [[https://protesilaos.com/codelog/2021-01-11-modus-themes-review-select-faint-colours/][Modus themes: review of select "faint" colours]] (2021-01-11) ++ [[https://protesilaos.com/codelog/2022-01-02-review-modus-themes-org-habit-colours/][Modus themes: review of the org-habit graph colours]] (2022-01-02) ++ [[https://protesilaos.com/codelog/2022-04-20-modus-themes-case-study-avy/][Modus themes: case study on Avy faces and colour combinations]] (2022-04-20) ++ [[https://protesilaos.com/codelog/2022-04-21-modus-themes-colour-theory/][Emacs: colour theory and techniques used in the Modus themes]] (2022-04-21) + * :- initialise + * :- finalise + "initialise", "finalise", "mutable", "module", "interface", "implementation", +;;; ( A cancelled ) Ignore this cache entry; + (.DEFAULT): Use $(FLAVOUR) instead of $@ for clarity. +1998-04-26 Justin Sheehy <justin@linus.mitre.org> +1997-10-25 David S. Goldberg <dsg@linus.mitre.org> +;; Updated by the RIPE Network Coordination Centre. +;; Thanks to jond@mitre.org (Jonathan Doughty) for help with code for + (when (and ok tod (not (string-match "\\`DONE\\|CANCELLED" evt))) +"all" "analyse" "analyze" "and" "array" "asc" "as" "asymmetric" + \"VHDL Modelling Guidelines\". + {WSAECANCELLED , "Operation cancelled"}, /* not sure */ + {WSA_E_CANCELLED , "Operation already cancelled"}, /* really not sure */ + 2013-09-26 dup2, dup3: work around another cygwin crasher + cc3ad9a ; * CONTRIBUTE: Clarify rules for committing to release branc... +Paul Raines (raines at slack.stanford.edu), + \qquad date: b)efore, a)t, n)this,\\* +place an (I)nstall flag on the available version and a (D)elete flag + Improved verbiage of prompt. Aliases are now inserted "[b]efore" + or "[a]fter" the existing alias instead of "[i]nsert" or + "[b]efore or [a]fter: ") + (let* ((max (read-char "Number of [e]ntries [t]odos [T]ags [E]ffort? ")) + (mark_image): Move from allo.c. +Forward propagate immediate involed in assignments." ; FIXME: Typo. Involved or invoked? + (setq te (org-insert-time-stamp (or at-time now) 'with-hm 'inactive)) + (org-time-string-to-time te) + (te (org-time-string-to-seconds se)) + (dt (- (if tend (min te tend) te) + te (match-string 3)) + (setq s (- (org-time-string-to-seconds te) + ("te" :babel-ini-only "telugu" :polyglossia "telugu" :lang-name "Telugu") +2016-09-10 Toke Høiland-Jørgensen <toke@toke.dk> (tiny change) + Reported by Toke Høiland-Jørgensen <toke@toke.dk>. +2012-07-17 Toke Høiland-Jørgensen <toke@toke.dk> (tiny change) +2012-06-17 Toke Høiland-Jørgensen <toke@toke.dk> (tiny change) +(doctor-put-meaning toke 'toke) + "\\|" ; per toke.c + const struct sockaddr *to, int tolen); +2014-11-26 Toke Høiland-Jørgensen <toke@toke.dk> (tiny change) + ptrdiff_t tolen = strlen (key_symbols[i].to); + eassert (tolen <= fromlen); + memcpy (match, key_symbols[i].to, tolen); + memmove (match + tolen, match + fromlen, + len -= fromlen - tolen; + p = match + tolen; + const struct sockaddr * to, int tolen); + const struct sockaddr * to, int tolen) + int rc = pfn_sendto (SOCK_HANDLE (s), buf, len, flags, to, tolen); +Put dialogue in buffer." + "Function called by ], the ket. View registers and call ]]." +;; Matches a char which is a constituent of a variable or number, or a ket +(defun verilog-expand-vector-internal (bra ket) + "Given start brace BRA, and end brace KET, expand one line into many lines." + (regexp-quote ket) + (int-to-string (car vec)) ket sig-tail "\n")) + "Given start brace BRA, and end brace KET, expand one line into many lines." + m | mo | mot | moti | motif ) val=motif ;; + i | in | ino | inot | inoti | inotif | inotify ) val=inotify ;; +2001-04-23 Kahlil Hodgson <kahlil@discus.anu.edu.au> + (funcall expect 20 "ingenuous"))))) + (0.1 ":joe!~u@kd7gmjbnbkn8c.irc PRIVMSG #chan :mike: Mehercle! if their sons be ingenuous, they shall want no instruction; if their daughters be capable, I will put it to them. But, vir sapit qui pauca loquitur. A soul feminine saluteth us.")) + (search-forward "return te") + "fn test() -> i32 { let test=3; return te; }")))) + ts te h m s neg) + te (match-string 3)) + (setq s (- (org-time-string-to-seconds te) + Rename from whitespace-skipping-for-quotes-not-ouside. + (whitespace-skipping-for-quotes-not-ouside) +Thread-Modell: posix +Thread-Modell: posix +(ert-deftest indent-sexp-cant-go () +(ert-deftest thunk-let-bound-vars-cant-be-set-test () + (mml-secure-cust-fpr-lookup context 'encrypt "sub@example.org"))) + (let ((p-e-fprs (mml-secure-cust-fpr-lookup + (p-s-fprs (mml-secure-cust-fpr-lookup + (let ((p-e-fprs (mml-secure-cust-fpr-lookup + (p-s-fprs (mml-secure-cust-fpr-lookup + (let ((s-e-fprs (mml-secure-cust-fpr-lookup + (s-s-fprs (mml-secure-cust-fpr-lookup +(ert-deftest doesnt-time-out () +(ert-deftest json-el-cant-serialize-this () + (should (equal (try-completion "B-hel" subvtable) + (should (equal (all-completions "B-hel" subvtable) '("-hello"))) + (should (equal (completion-boundaries "B-hel" subvtable +(ert-deftest ruby-regexp-doesnt-start-in-string () + Rename from wisent-inaccessable-symbols, fixing a misspelling. + ("calc-math" calcFunc-alog calcFunc-arccos + ( ?B 2 calcFunc-alog ) + (change-log-function-face, change-log-acknowledgement-face): + (bs-appearance) <defgroup>: Renamed from bs-appearence. + typo `fortran-strip-sqeuence-nos'. + * progmodes/fortran.el (fortran-strip-sqeuence-nos): Doc fix. + (fortran-strip-sqeuence-nos): Make arg optional. Fix regexp and +1999-06-01 Jae-youn Chung <jay@compiler.kaist.ac.kr> +doc/emacs/docstyle.texi:14: fied ==> field +(define-obsolete-variable-alias 'hfy-optimisations 'hfy-optimizations "25.1") +(define-obsolete-function-alias 'hfy-colour-vals #'hfy-color-vals "27.1") +(define-obsolete-function-alias 'hfy-colour #'hfy-color "27.1") +(define-obsolete-variable-alias 'eglot-ignored-server-capabilities + setenv ("TZ", "IST-02IDT-03,M4.1.6/00:00,M9.5.6/01:00", 0); + "kana-TA", "kana-CHI", "kana-TSU", "kana-TE", + (internal--after-with-selected-window): Fix typo seleted->selected. + * subr.el (internal--before-with-seleted-window) + (internal--after-with-seleted-window): New functions. + * follow.el (follow-inactive-menu): Rename from follow-deactive-menu. + * emacs-lisp/cconv.el (cconv-analyse-form): Warn use of ((λ ...) ...). + (feedmail-sendmail-f-doesnt-sell-me-out) + (feedmail-sendmail-f-doesnt-sell-me-out) + Respect feedmail-sendmail-f-doesnt-sell-me-out. + * terminal.el (te-get-char, te-tic-sentinel): +from server-external-socket-initialised, since it should be + * lisp/server.el: (server-external-socket-initialised): New + Rename from help-fns--analyse-function. + c-ambiguous-overloadable-or-identifier-prefices. Caller changed. + * lisp/progmodes/cc-langs.el (c-ambiguous-overloadable-or-identifier-prefices) + Rename from nndiary-last-occurence. + Rename from nndiary-next-occurence. All uses changed. + lisp/textmodes/flyspell.el (flyspell-ajust-cursor-point): Rename to + * test/file-organization.org: Rename from test/file-organisation.org. + character class (namely ‘fo’ leaving ‘o’ in the string), but since the + change-log-acknowledgement-face): + 9daf1cf * etc/NEWS: Improve wording of vc-git-log-output-coding-syste... + a05fb21 * lisp/emacs-lisp/package.el (package-install-selected-packag... + 5cc6919 Fix a caching bug, which led to inordinately slow c-beginnin... + (mml-secure-cust-usage-lookup, mml-secure-cust-fpr-lookup) + * test/file-organisation.org: New file. + ("test/file-organisation.org" . "file-organization.org") + `message-insert-formated-citation-line'. + info.addons = (\"hald-addon-acpi\") + deactive->inactive, inactivate->deactivate spelling fixes (Bug#10150) + (org-detach-overlay): Rename from `org-detatch-overlay'. + (change-log-acknowledgement): Remove "-face" suffix from face names. + (appt-visible): Rename from appt-visable. + (pascal-seperator-keywords): Renamed to pascal-separator-keywords. + mouse-union-first-prefered. + * sc.el (sc-consistent-cite-p): Renamed from sc-consistant-cite-p. + bibtex-name-alignement. + "d-elete, u-ndelete, x-punge, f-ind, o-ther window, R-ename, C-opy, h-elp")) + (erc-coding-sytem-for-target): Removed. + (erc-coding-sytem-for-target): New. +Paul Raines (raines at slac.stanford.edu), + "union" "unsafe" "use" "where" "while" (crate) (self) (super) + term-ansi-face-alredy-done. + (ebnf-syntactic): Change group name and tag from "ebnf-syntatic". + "ebnf-syntatic". + Rename from ucs-input-inactivate. + Rename from hangul-input-method-inactivate. + * terminal.el (te-create-terminfo): Use make-temp-file + (org-detatch-overlay, org-move-overlay, org-overlay-put): + 'gnus-score-find-favourite-words + 'nndiary-last-occurence + 'nndiary-next-occurence +(define-obsolete-function-alias 'org-truely-invisible-p +(define-obsolete-variable-alias 'eglot-ignored-server-capabilites + ("`fo" . "format" ) +(define-obsolete-function-alias 'rtree-normalise-range + `org-attch-delete'. Add a security query before deleting the + `org-toggel-region-headings'. + "3 Oktober 2000 16:30 multiline + "September" "Oktober" "November" "Dezember"]) + "de la Cognée" "de l'Ellébore" "du Brocoli" + 1fe596d89f (origin/emacs-27) Fix another compilation problem in a bui... + "du Buis" "du Lichen" "de l'If" + if (c == BIG) { /* caint get thar from here */ + Christoph Groth <cwg@falma.de> and Liu Xin <x_liu@neusoft.com>. + "passord" ; nb + (should (equal (rfc6068-unhexify-string "caf%C3%A9") "café"))) + (equal (rfc6068-parse-mailto-url "mailto:user@example.org?subject=caf%C3%A9&body=caf%C3%A9") +;; Paul Lew <paullew@cisco.com> suggested implementing fixed width + (TUNG@WAIF.MIT.EDU <8704130324.AA10879@prep.ai.mit.edu>) + (ruby-ts-mode "*.r[bu]" "*.rake" "*.gemspec" "*.erb" "*.haml" +(doctor-put-meaning cunt 'sexnoun) +(doctor-put-meaning cunts 'sexnoun) +(doctor-put-meaning skool 'school) + Add ".crate" to Tramp archive file suffixes. + * lisp/net/tramp-archive.el (tramp-archive-suffixes): Add ".crate". +2021-11-10 Benj <Benjamin.Schwerdtner@gmail.com> (tiny change) + allow party crashers to respond to ical events + calling those respondents "party crashers". +2019-12-17 Antoine Kalmbach <ane@iki.fi> (tiny change) +2014-02-18 Matus Goljer <dota.keys@gmail.com> +2014-02-13 Matus Goljer <dota.keys@gmail.com> +2004-05-20 Magnus Henoch <mange@freemail.hu> +2004-11-14 Magnus Henoch <mange@freemail.hu> +2006-10-16 Magnus Henoch <mange@freemail.hu> +2006-11-01 Magnus Henoch <mange@freemail.hu> +2006-11-08 Magnus Henoch <mange@freemail.hu> +2006-11-15 Magnus Henoch <mange@freemail.hu> +2006-11-26 Magnus Henoch <mange@freemail.hu> +2006-12-08 Magnus Henoch <mange@freemail.hu> +2007-01-14 Magnus Henoch <mange@freemail.hu> +2007-10-28 Magnus Henoch <mange@freemail.hu> +2007-12-03 Magnus Henoch <mange@freemail.hu> +2008-02-04 Magnus Henoch <mange@freemail.hu> +2008-03-09 Magnus Henoch <mange@freemail.hu> +2008-09-30 Magnus Henoch <mange@freemail.hu> + (secnd (cdr (cadr dlist)))) + (car secnd))) ; fetch_date + secnd (cdr secnd)) + (car secnd))) ; Keep_flag + secnd (cdr secnd)) + (car secnd))) ; NOV_entry_position +@c LocalWords: DesBrisay Dcc devel dir dired docstring filll forw +Older versions of the themes provided options ~grayscale~ (or ~greyscale~) + > The requestor should delete [...] the property specified in the + We are not the requestor, so we should not be deleting this property + needs to remain available as the requestor will generally want to read + [t]ime [s]cheduled [d]eadline [c]reated cloc[k]ing + (message "Sparse tree: [r]egexp [t]odo [T]odo-kwd [m]atch [p]roperty +;; -grey Render in greyscale as 8bits/pixel. + -grey Render in greyscale as 8bits/pixel. + (if (looking-at "p\\(ublic\\|rotected\\|rivate\\)") + "\\=p\\(r\\(ivate\\|otected\\)\\|ublic\\)\\>[^_]" nil t) + "\\(p\\(r\\(ivate\\|otected\\)\\|ublic\\)\\|more\\)\\>" + * sysdep.c (WRITABLE): Renamed from WRITEABLE. +DEFUN ("cond", Fcond, Scond, 0, UNEVALLED, 0, + defsubr (&Scond); + /* XXX: who is wrong, the requestor or the implementation? */ + /* "Data" to send a requestor for a failed MULTIPLE subtarget. */ + /* This formula is from a paper titled `Colour metric' by Thiadmer Riemersma. + (0.1 ":mike!~u@286u8jcpis84e.irc PRIVMSG #chan :joe: Good gentleman, go your gait, and let poor volk pass. An chud ha' bin zwaggered out of my life, 'twould not ha' bin zo long as 'tis by a vortnight. Nay, come not near th' old man; keep out, che vor ye, or ise try whether your costard or my ballow be the harder. Chill be plain with you.") + db "create table if not exists test10 (col1 text, col2 blob, col3 numbre)") + (const :format "[%v] %t\n" :tag "Alias for `gray-background'" greyscale) +2008-09-11 Magnus Henoch <mange@freemail.hu> + <mange@freemail.hu>. +2006-10-07 Magnus Henoch <mange@freemail.hu> +2006-09-07 Magnus Henoch <mange@freemail.hu> + Reported by Magnus Henoch <mange@freemail.hu>. +2005-09-24 Magnus Henoch <mange@freemail.hu> +2005-09-17 Magnus Henoch <mange@freemail.hu> +2005-09-10 Magnus Henoch <mange@freemail.hu> +2005-08-09 Magnus Henoch <mange@freemail.hu> +2008-10-16 Magnus Henoch <mange@freemail.hu> +2008-10-01 Magnus Henoch <mange@freemail.hu> +2008-07-02 Magnus Henoch <mange@freemail.hu> +2008-04-23 Magnus Henoch <mange@freemail.hu> +2008-03-28 Magnus Henoch <mange@freemail.hu> + * bibtex.el (bibtex-entry): Add OPTkey/annote. If OPTcrossref set +;; :booktitle :month :annote :abstract + (:annote . "An annotation. It is not used by the standard bibliography styles, but may be used by others that produce an annotated bibliography.") + :annote (or (cdr (assoc "annote" entry)) "[no annotation]") + '(("annote" "Personal annotation (ignored)")) + (r2b-put-field "annote" r2bv-annote) +2006-10-29 Magnus Henoch <mange@freemail.hu> +2006-10-28 Magnus Henoch <mange@freemail.hu> +2006-10-27 Magnus Henoch <mange@freemail.hu> +2006-10-12 Magnus Henoch <mange@freemail.hu> +2006-10-11 Magnus Henoch <mange@freemail.hu> +2006-10-09 Magnus Henoch <mange@freemail.hu> +2008-10-16 Magnus Henoch <mange@freemail.hu> +2007-12-31 Magnus Henoch <mange@freemail.hu> +2007-12-05 Magnus Henoch <mange@freemail.hu> + (ENUMABLE): Remove; no longer needed. + * lisp.h (ENUMABLE) [!_AIX]: Don't define to 0 merely because we're + * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): New macros. + * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): Delete macros. + * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): New macros. +2023-06-29 Andrew G Cohen <cohen@andy.bu.edu> +2023-05-07 Andrew G Cohen <cohen@andy.bu.edu> + C-x b fo + avoid failures due to MS-Windows "numeric tails" (mis)feature and +2022-04-07 Andrew G Cohen <cohen@andy.bu.edu> +2022-04-03 Andrew G Cohen <cohen@andy.bu.edu> +2022-03-22 Andrew G Cohen <cohen@andy.bu.edu> +2022-03-20 Andrew G Cohen <cohen@andy.bu.edu> +2022-03-17 Andrew G Cohen <cohen@andy.bu.edu> +2022-03-17 Andrew G Cohen <cohen@andy.bu.edu> +2022-03-04 Andrew G Cohen <cohen@andy.bu.edu> +2022-02-18 Andrew G Cohen <cohen@andy.bu.edu> +2022-02-18 Andrew G Cohen <cohen@andy.bu.edu> +2022-02-11 Andrew G Cohen <cohen@andy.bu.edu> +2022-02-08 Andrew G Cohen <cohen@andy.bu.edu> +2022-02-03 Andrew G Cohen <cohen@andy.bu.edu> +2021-12-21 Andrew G Cohen <cohen@andy.bu.edu> +2021-12-18 Andrew G Cohen <cohen@andy.bu.edu> + 6d5886e780 * test/lisp/repeat-tests.el (repeat-tests-call-b): Test fo... + 0771d8939a * etc/PROBLEMS: Mention problems with regexp matcher. (Bu... + 59df93e2dd * lisp/help.el (help--analyze-key): Add new arg BUFFER (bu... + 3832b983cf In Fdelete_other_windows_internal fix new total window siz... + 3a9d5f04fb Mention ffap-file-name-with-spaces in the ffap doc strin + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. +@item Unform +J. Otto Tennant, +extern struct servent *hes_getservbyname (/* char *, char * */); + struct servent *servent; + servent = hes_getservbyname (service, "tcp"); + if (servent) + servent = getservbyname (service, "tcp"); + if (servent) + struct servent *srv = getservbyname (service, protocol); +2003-04-10 Sebastian Tennant <seb@albert.vcisp.net> (tiny change) + Reported by Sebastian Tennant <sebyte@smolny.plus.com>. + causing truncation of AUTOWIRE signals. Reported by Bruce Tennant. + Tennant. +1997-10-21 Jens Lautenbacher <jens@metrix.de> + unform Use unformatted display: add(a, mul(b,c)). + (memq calc-language '(nil flat unform)) + (memq calc-language '(nil flat unform))) + '(flat big unform)))) +;; Sebastian Tennant <sebyte@smolny.plus.com> + (message "Mark as unread: (n)one / (a)ll / all (d)ownloaded articles? (n) ") + (wheight (window-height)) + (rest (- wheight pheight))) + (vai #xA500) + (vai\ . vai) + ts te h m s neg) + te (match-string 3)) + (setq s (- (org-time-string-to-seconds te) +(defun dun-listify-string (strin) + (while (setq end-pos (string-match "[ ,:;]" (substring strin pos))) + (substring strin pos end-pos)))))) +(defun dun-listify-string2 (strin) + (while (setq end-pos (string-search " " (substring strin pos))) + (substring strin pos end-pos)))))) +"any" "append" "as" "asc" "ascic" "async" "at_begin" "at_end" "audit" + "attribute" "(d)eclaration or (s)pecification?" t) ?s) + "quantity" "(f)ree, (b)ranch, or (s)ource quantity?" t))) + "Spacify table frame. + ("\\oint" . ?∮) +struct servent * sys_getservbyname (const char * name, const char * proto); + Supplement, Latin Extended-A/B, Vai, Supplemental Punctuation, Tai + Remove the "mis;tak-+;;" line from the code; apparently this + it->dpvec_char_len if dpend reached. + 3:000MSTRIN[0]STRIN[1]STRIN[2] + [2:000MSTRIN[0]STRIN[1]STRIN[2]] + Lisp_Object *dpvec, *dpend; + struct servent *svc_info +struct servent * (PASCAL *pfn_getservbyname) (const char * name, const char * proto); +struct servent * + struct servent * serv; + struct servent *srv = sys_getservbyname (service, protocol); + /* Reset bits 4 (Phonetic), 12 (Vai), 14 (Nko), 27 (Balinese). */ + DEFSYM (Qvai, "vai"); + it->dpend = v->contents + v->header.size; + it->dpend = default_invis_vector + 3; + it->dpend = v->contents + v->header.size; + it->dpend = it->dpvec + ctl_len; + if (it->dpvec + it->current.dpvec_index >= it->dpend) + if (it->dpend - it->dpvec > 0 /* empty dpvec[] is invalid */ + if (it->current.dpvec_index < it->dpend - it->dpvec - 1) + && it->dpvec + it->current.dpvec_index + 1 >= it->dpend))) + && it->dpvec + it->current.dpvec_index != it->dpend); +VERY VERY LONG STRIN | VERY VERY LONG STRIN + (ert-info ("Joined by bouncer to #foo, pal persent") + (ert-info ("Joined by bouncer to #chan@foonet, pal persent") + (ert-info ("Joined by bouncer to #chan@barnet, pal persent") +.UE . diff --git a/admin/codespell/codespell.ignore b/admin/codespell/codespell.ignore new file mode 100644 index 000000000000..34de02e969b7 --- /dev/null +++ b/admin/codespell/codespell.ignore @@ -0,0 +1,41 @@ +acknowledgements +afile +ake +analogue +ans +bloc +blocs +callint +clen +crossreference +crossreferences +debbugs +dedented +dependant +doas +ede +grey +gud +ifset +inout +keypair +keyserver +keyservers +lightening +mapp +master +mimicks +mitre +msdos +ot +parm +parms +reenable +reenabled +requestor +sie +spawnve +statics +stdio +texline +typdef diff --git a/admin/codespell/codespell.rc b/admin/codespell/codespell.rc new file mode 100644 index 000000000000..9ef5f40369c1 --- /dev/null +++ b/admin/codespell/codespell.rc @@ -0,0 +1,4 @@ +[codespell] +skip=.git/*,*.elc,*.eln,*.gpg,*.gz,*.icns,*.jpg,*.kbx,*.key,*.pbm,*.png,*.rnc,*.so,*.tiff,*.tit,*.xml,*.xpm,*.zip,*random_seed +builtin=clear,rare,en-GB_to_en-US +quiet-level=35 diff --git a/admin/cus-test.el b/admin/cus-test.el index 360a55c7bf4f..64c742ea8554 100644 --- a/admin/cus-test.el +++ b/admin/cus-test.el @@ -1,6 +1,6 @@ ;;; cus-test.el --- tests for custom types and load problems -*- lexical-binding: t; -*- -;; Copyright (C) 1998, 2000, 2002-2023 Free Software Foundation, Inc. +;; Copyright (C) 1998, 2000, 2002-2024 Free Software Foundation, Inc. ;; Author: Markus Rost <rost@math.uni-bielefeld.de> ;; Created: 13 Sep 1998 @@ -131,7 +131,7 @@ Names should be as they appear in loaddefs.el.") ;; Don't create a file `abbrev-file-name'. (setq save-abbrevs nil) -;; Avoid compile logs from adviced functions. +;; Avoid compile logs from advised functions. (eval-after-load "bytecomp" '(setq ad-default-compilation-action 'never)) @@ -145,7 +145,8 @@ Names should be as they appear in loaddefs.el.") (require 'cus-load) (defvar cus-test-errors nil - "List of problematic variables found by `cus-test-apropos'.") + "List of problematic variables found by `cus-test-apropos'. +Each element is (VARIABLE . PROBLEM); see `cus-test--format-errors'.") (defvar cus-test-tested-variables nil "List of options tested by last call of `cus-test-apropos'.") @@ -156,7 +157,7 @@ Names should be as they appear in loaddefs.el.") "Set by `cus-test-apropos' to a list of options with :get property.") (defvar cus-test-vars-with-changed-state nil - "Set by `cus-test-apropos' to a list of options with state 'changed.") + "Set by `cus-test-apropos' to a list of options with state \\='changed.") (defvar cus-test-deps-errors nil "List of require/load problems found by `cus-test-deps'.") @@ -181,6 +182,15 @@ Set by `cus-test-noloads'.") ;; (defvar cus-test-vars-cus-loaded nil ;; "A list of options loaded by `custom-load-symbol'.") +(defun cus-test--format-error (err) + "Format an element of `cus-test-errors'." + (pcase err + (`(,var :type-error ,value ,type) + (format "variable: %s\n value: %S\n type: %S" var value type)) + (`(,var :other-error ,e) + (format "variable: %s\n error: %S" var e)) + (_ (format "%S" err)))) + (defun cus-test-apropos (regexp) "Check the options matching REGEXP. The detected problematic options are stored in `cus-test-errors'." @@ -200,8 +210,7 @@ The detected problematic options are stored in `cus-test-errors'." (let* ((type (custom-variable-type symbol)) (conv (widget-convert type)) (get (or (get symbol 'custom-get) 'default-value)) - values - mismatch) + values) (when (default-boundp symbol) (push (funcall get symbol) values) (push (eval (car (get symbol 'standard-value)) t) values)) @@ -215,7 +224,9 @@ The detected problematic options are stored in `cus-test-errors'." ;; TODO for booleans, check for values that can be ;; evaluated and are not t or nil. Usually a bug. (unless (widget-apply conv :match value) - (setq mismatch 'mismatch))) + (let ((err (list symbol :type-error value type))) + (unless (member err cus-test-errors) + (push err cus-test-errors))))) values) ;; Store symbols with a custom-get property. @@ -231,13 +242,12 @@ The detected problematic options are stored in `cus-test-errors'." (and (consp c-value) (boundp symbol) (not (equal (eval (car c-value) t) (symbol-value symbol))) - (add-to-list 'cus-test-vars-with-changed-state symbol))) - - (if mismatch - (push symbol cus-test-errors))) + (add-to-list 'cus-test-vars-with-changed-state symbol)))) (error - (push symbol cus-test-errors) + (let ((err (list symbol :other-error alpha))) + (unless (member err cus-test-errors) + (push err cus-test-errors))) (message "Error for %s: %s" symbol alpha)))) (cus-test-get-options regexp)) (message "%s options tested" @@ -272,7 +282,7 @@ currently defined groups." (if group (memq symbol groups) (or - ;; (user-variable-p symbol) + ;; (custom-variable-p symbol) (get symbol 'standard-value) ;; (get symbol 'saved-value) (get symbol 'custom-type))) @@ -292,7 +302,7 @@ currently defined groups." (insert "No errors found by cus-test.") (insert "The following variables seem to have problems:\n\n") (dolist (e cus-test-errors) - (insert (symbol-name e) "\n"))))) + (insert (cus-test--format-error e) "\n"))))) (defun cus-test-load-custom-loads () "Call `custom-load-symbol' on all atoms." @@ -399,7 +409,7 @@ Returns a list of variables with suspicious types." (message "No problems found") nil) (message "The following options might have problems:") - (cus-test-message cus-test-errors) + (cus-test-message (mapcar #'cus-test--format-error cus-test-errors)) cus-test-errors)) (defun cus-test-deps () diff --git a/admin/diff-tar-files b/admin/diff-tar-files index b0b752a56cf8..9b34d9c4538c 100755 --- a/admin/diff-tar-files +++ b/admin/diff-tar-files @@ -1,6 +1,6 @@ -#! /bin/sh +#!/bin/bash -# Copyright (C) 2001-2023 Free Software Foundation, Inc. +# Copyright (C) 2001-2024 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -17,6 +17,7 @@ # You should have received a copy of the GNU General Public License # along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. +source "${0%/*}/emacs-shell-lib" if [ $# != 2 ]; then cat <<EOF @@ -31,9 +32,8 @@ fi old_tar=$1 new_tar=$2 -old_tmp=/tmp/old.$$ -new_tmp=/tmp/new.$$ -trap "rm -f $old_tmp $new_tmp; exit 1" 1 2 15 +old_tmp="$(emacs_mktemp ${PN}-old)" +new_tmp="$(emacs_mktemp ${PN}-new)" tar tf "$old_tar" | sed -e 's,^[^/]*,,' | sort > $old_tmp tar tf "$new_tar" | sed -e 's,^[^/]*,,' | sort > $new_tmp diff --git a/admin/emacs-shell-lib b/admin/emacs-shell-lib new file mode 100644 index 000000000000..1c4d895fdb4c --- /dev/null +++ b/admin/emacs-shell-lib @@ -0,0 +1,87 @@ +#!/bin/bash +### emacs-shell-lib - shared code for Emacs shell scripts + +## Copyright (C) 2022-2024 Free Software Foundation, Inc. + +## Author: Stefan Kangas <stefankangas@gmail.com> + +## This file is part of GNU Emacs. + +## GNU Emacs is free software: you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation, either version 3 of the License, or +## (at your option) any later version. + +## GNU Emacs is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. + +## You should have received a copy of the GNU General Public License +## along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. + +### Code: + +# Set an explicit umask. +umask 077 + +# Treat unset variables as an error. +set -o nounset + +# Exit immediately on error. +set -o errexit + +# Avoid non-standard command output from non-C locales. +unset LANG LC_ALL LC_MESSAGES + +PN=${0##*/} # basename of script +PD=${0%/*} # script directory + +[ "$PD" = "$0" ] && PD=. # if PATH includes PWD + +die () # write error to stderr and exit +{ + [ $# -gt 0 ] && echo "$PN: $@" >&2 + exit 1 +} + +emacs_tempfiles=() + +emacs_tempfiles_cleanup () +{ + for file in ${emacs_tempfiles[@]}; do + rm -f "${file}" 2> /dev/null + done +} + +trap ' + ret=$? + emacs_tempfiles_cleanup + exit $ret +' EXIT + +emacs_mktemp () +{ + local readonly file="${1-}" + local tempfile + local prefix + + if [ -z "$file" ]; then + prefix="$PN" + else + prefix="$1" + fi + + if [ -x "$(command -v mktemp)" ]; then + tempfile=$(mktemp "${TMPDIR-/tmp}/${prefix}.XXXXXXXXXX") + else + tempfile="${TMPDIR-/tmp}/${prefix}.$RANDOM$$" + (umask 077 && touch "$tempfile") + fi + + [ -z "${tempfile}" ] && die "Creating temporary file failed" + + emacs_tempfiles+=("${tempfile}") + + echo "$tempfile" +} diff --git a/admin/emake b/admin/emake index bdaabc026b39..6e2f9e0e0944 100755 --- a/admin/emake +++ b/admin/emake @@ -1,5 +1,22 @@ #!/bin/bash +# Copyright (C) 2022-2024 Free Software Foundation, Inc. + +# This file is part of GNU Emacs. + +# GNU Emacs is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# GNU Emacs is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. + # This script is meant to be used as ./admin/emake, and will compile # the Emacs tree with virtually all of the informational messages # removed, and with errors/warnings highlighted in red. It'll give a @@ -13,14 +30,27 @@ cores=1 # Determine the number of cores. if [ -f /proc/cpuinfo ]; then - cores=$(($(egrep "^physical id|^cpu cores" /proc/cpuinfo |\ + cores=$(($(grep -E "^physical id|^cpu cores" /proc/cpuinfo |\ awk '{ print $4; }' |\ sed '$!N;s/\n/ /' |\ uniq |\ sed 's/^[0-9]*/+/'))) fi -make -j$cores "$@" 2>&1 | \ +NOCOLOR=0 +NOCHECK=0 +FASTOPT="FAST=true" +QUIETER=0 +while : +do + [[ "X$1" == "X--no-color" ]] && { NOCOLOR=1; shift; continue; } + [[ "X$1" == "X--no-check" ]] && { NOCHECK=1; shift; continue; } + [[ "X$1" == "X--no-fast" ]] && { FASTOPT=""; shift; continue; } + [[ "X$1" == "X--quieter" ]] && { QUIETER=1; shift; continue; } + break +done + +make $FASTOPT -j$cores "$@" 2>&1 | \ sed -u 's# \.\./\.\./# # s# \.\./# # s#^Configuring local git # Configuring local git # @@ -28,20 +58,23 @@ s#^Installing git hooks...# Installing git hooks...# s#^Running # Running # s#^Configured for # Configured for # s#^./temacs.*# \\& # +s#^make.*Error# \\& # +s#^Dumping under the name.*# \\& # +:a;/\\$/N;s/\\\n//;ta ' | \ -egrep --line-buffered -v "^make|\ +grep -E --line-buffered -v "^make|\ ^Loading|\ SCRAPE|\ INFO.*Scraping.*[.] ?\$|\ INFO.*Scraping.*done\$|\ GEN.*etc/DOC|\ +GEN.*autoloads|\ ^Waiting for git|\ ^Finding pointers|\ ^Using load-path|\ ^Adding name|\ ^Dump mode|\ ^Dumping finger|\ -^Dumping under the name|\ ^Byte counts|\ ^Reloc counts|\ ^Pure-hashed|\ @@ -78,18 +111,42 @@ The GNU allocators don't work|\ ^git config |\ ^'\.git/|\ ^\^\(\(|\ -^'build-aux/git-hooks\ +^ANCIENT=yes make|\ +^touch -t|\ +^'build-aux/git-hooks|\ +^GNUmakefile:[0-9]*: There seems to be no |\ +^GNUmakefile:[0-9]*: Running |\ +^GNUmakefile:[0-9]*: No Makefile|\ +^rm -f |\ +^rm -rf|\ +^find \. |\ +^rm -fr deps|\ +^if test -f \./\.gdbinit|\ +^true|\ +^for file in |\ +^rmdir|\ +^\[ \"\.\" = \"\.\" \]\ " | \ while read do C="" - [[ "X${REPLY:0:1}" != "X " ]] && C="\033[1;31m" - [[ "X${REPLY:0:3}" == "X " ]] && C="\033[1;31m" - [[ "X$C" == "X" ]] && printf "%s\n" "$REPLY" || printf "$C%s\033[0m\n" "$REPLY" + (($NOCOLOR == 0)) && [[ "X${REPLY:0:1}" != "X " ]] && C="\033[1;31m" + (($NOCOLOR == 0)) && [[ "X${REPLY:0:3}" == "X " ]] && C="\033[1;31m" + if (($QUIETER == 0)) + then + [[ "X$C" == "X" ]] && printf "%s\n" "$REPLY" || printf "$C%s\033[0m\n" "$REPLY" + else + [[ "X$C" == "X" ]] && printf "%-80s\r" "$REPLY" || printf "$C%-80s\033[0m\n" "$REPLY" + fi done +# If make failed, exit now with its error code. +((${PIPESTATUS[0]} != 0)) && exit ${PIPESTATUS[0]} + +(($NOCHECK == 1)) && exit 0 + # Run a "make check" on all test files belonging to files that have # changed since last time. make -j$cores check-maybe 2>&1 | \ sed -n '/contained unexpected results/,$p' | \ - egrep --line-buffered -v "^make" + grep -E --line-buffered -v "^make" diff --git a/admin/find-gc.el b/admin/find-gc.el index cce4a8402a71..3f7336510e51 100644 --- a/admin/find-gc.el +++ b/admin/find-gc.el @@ -1,6 +1,6 @@ ;;; find-gc.el --- detect functions that call the garbage collector -*- lexical-binding: t; -*- -;; Copyright (C) 1992, 2001-2023 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2001-2024 Free Software Foundation, Inc. ;; Maintainer: emacs-devel@gnu.org diff --git a/admin/git-bisect-start b/admin/git-bisect-start new file mode 100755 index 000000000000..3951f291598a --- /dev/null +++ b/admin/git-bisect-start @@ -0,0 +1,1778 @@ +#!/bin/bash + +### Start a git bisection, ensuring that commits in branches that are +### the result of merging external trees into the Emacs repository, as +### well as certain commits on which Emacs fails to build, are skipped. + +## Copyright (C) 2022-2024 Free Software Foundation, Inc. + +## This file is part of GNU Emacs. + +## GNU Emacs is free software: you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation, either version 3 of the License, or +## (at your option) any later version. + +## GNU Emacs is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. + +## You should have received a copy of the GNU General Public License +## along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. + +### Commentary: + +## This script can be executed directly, at the root of the Emacs +## repository, with: +## +## ./admin/git-bisect-start +## +## The arguments to that script, if any, are passed to 'git bisect +## start' (see 'git help bisect' for a description of the arguments +## that can be used with 'git bisect start'). +## +## It can also be executed automatically, when 'git bisect start' is +## called, with the help of the following wrapper script, that should +## be named 'git' and should be placed before the actual git binary in +## PATH. This is useful in particular when git is used through an +## interface such as Magit. +## +## #!/bin/bash +## REAL_GIT=$(which -a git | sed -n 2p) +## [ -z $REAL_GIT ] && { echo "fatal: 'git' not found"; exit 128; } +## if [[ "$($REAL_GIT rev-parse --show-toplevel 2> /dev/null)" == "$(pwd)" ]] && +## [ -x ./admin/git-bisect-start ] && +## [[ "$1" == "bisect" && "$2" == "start" ]] +## then +## shift 2 +## exec env REAL_GIT=$REAL_GIT ./admin/git-bisect-start "$@" +## else +## exec $REAL_GIT "$@" +## fi + +### Code: + +[ -z $REAL_GIT ] && REAL_GIT=git + +$REAL_GIT bisect start "$@" + +## After the merge of an external tree, the last commit in the +## external tree and all its parents should be skipped, because Emacs +## cannot be built on these commits, as they only contain the files of +## the external tree. That last commit that should be placed after a +## '# SKIP-BRANCH ' below is the parent of the merge commit in the +## external tree, that is, the parent of the merge commit that is not +## already on master. In other words, it is the parent of the merge +## commit for which 'git rev-list --max-parents=0 <commit>' does not +## include ce5584125c44a1a2fbb46e810459c50b227a95e2 (which is the root +## commit of the Emacs repository). + +for C in $(cat $0 | grep '^# SKIP-BRANCH ' | sed 's/^# SKIP-BRANCH //') +do + $REAL_GIT bisect skip $($REAL_GIT rev-list $C) +done + +# Prune commits 1e5b753bf4..806734c1b1 introduced by 0186faf2a1 +# (Eglot merge on Oct 20 2022) +# SKIP-BRANCH 806734c1b1f433de43d59d9a5e3a1e89d64315f6 + +# Prune commits 31ea42e15e..58cc931e92 introduced by 4a1e9d61b5 +# (use-package merge on Nov 30 2022) +# SKIP-BRANCH 58cc931e92ece70c3e64131ee12a799d65409100 + +## The list below is the exhaustive list of all commits between Dec 1 +## 2016 and Aug 10 2023 on which building Emacs with the default +## options, on a GNU/Linux computer and with GCC, fails. It is +## possible (though unlikely) that building Emacs with non-default +## options, with other compilers, or on other platforms, would succeed +## on some of these commits. It is of course also possible (and +## likely) that building Emacs on some commits not present in that +## list will fail with non-default options, with other compilers, or +## on other platforms. + +$REAL_GIT bisect skip $(cat $0 | grep '^# SKIP-SINGLE ' | sed 's/^# SKIP-SINGLE //') + +# SKIP-SINGLE f37f93f364aed34275f515a8c933f48a0e2735b9 +# SKIP-SINGLE ba8e883fa30f1267c27751c1ee9df25a5dde4c0c +# SKIP-SINGLE 3ef50c1ff691b0a6c2f56da76f7c1c9b572d8be8 +# SKIP-SINGLE 54f52a1390c394f42203f39d0b4d73318203e092 +# SKIP-SINGLE 128cacda1c79983f0b64773afc029bc757cfb7b8 +# SKIP-SINGLE fa7d1f075fb862ae4ca28390abf33d625dbd2813 +# SKIP-SINGLE 16ac7c0fc91b5eb09f2a129fc2c01281369f897a +# SKIP-SINGLE 8ad92413b9349613f9815bd0aaf523896a84b479 +# SKIP-SINGLE 137898d89359c63ec05d7bb5eedc2d2f59102a11 +# SKIP-SINGLE 66a5abb102ec1d6e4c327632ef235d1eb6433291 +# SKIP-SINGLE e4deba098e0281538a0e7b04d849989f17e5bcc7 +# SKIP-SINGLE de4624c99ea5bbe38ad5aff7b6461cc5c740d0be +# SKIP-SINGLE bfa88520136dd6b187ba101e6db5a5f8f0d5e874 +# SKIP-SINGLE f441451658ecb8d0d8ba386d9fd3eebf3b17d549 +# SKIP-SINGLE bf7f7c0d82a56ed1b76358657e74ca2833b19fe2 +# SKIP-SINGLE a1cb68be6c94513c436fd52e4453cb7afe28f2ba +# SKIP-SINGLE 25d38a06eceb0853190a2d9acf53d85686f524bd +# SKIP-SINGLE a7e4870f165e9fd36d5cfcabb19b215b94373602 +# SKIP-SINGLE 6a82d19db18f8480342cc4c1a0ad76c75df41941 +# SKIP-SINGLE cd0e63652445c90af7167b48d83e410af1e6e590 +# SKIP-SINGLE 097b1686b6ac518ba8c2ae225eb62560c2010431 +# SKIP-SINGLE 27accec97022a49b362feeb36293fdce2947eb43 +# SKIP-SINGLE e0e95199b93a232e5d4da67823364676ca9cb67c +# SKIP-SINGLE 36cbe217c818000d90fea132f0c8041f06748502 +# SKIP-SINGLE 6b4195f2ace1f6328c5a833fde40f39babef4fa6 +# SKIP-SINGLE 4e6140b28324a9a63d54084c920206d00aed094e +# SKIP-SINGLE 19cb3985a3795539b51d70625904e95a6e581eef +# SKIP-SINGLE c52a9b6ddd9166571e6bc8bb9426b0267874f9fa +# SKIP-SINGLE 8189b97e5ca12aff8ea34617431a868010643b5b +# SKIP-SINGLE 0d3c57dcf3187864c0b6fd6115ee80ad33faf553 +# SKIP-SINGLE 23a130ee0d61fc39cee157921679809017a02b39 +# SKIP-SINGLE fbe6b90b0ced594cf74d5fd0dc9a32666f0d7d38 +# SKIP-SINGLE 5f3379b33866ff7dc16856b6c29712eae860af0e +# SKIP-SINGLE 46193d5209780d21b848374d8c377fb6c8896d1b +# SKIP-SINGLE 522f16dac945eee351cefb066af40f0d1a683f38 +# SKIP-SINGLE 1fcbd352f8116aca1ecdb62e84f3d86b89bc446f +# SKIP-SINGLE 086c4eaf9d4ecc5074088115fa01c0b2fb061246 +# SKIP-SINGLE 37956463d67795819fe7d8fe02d6249388364783 +# SKIP-SINGLE 309b46420e83826ed1e0b947f98a47e8525e3c36 +# SKIP-SINGLE 8c0f326ea237e8acd03c51c1b3a44d237c044562 +# SKIP-SINGLE 88549ec38e9bb30e338a9985d0de4e6263b40fb7 +# SKIP-SINGLE 99af58d74e431da6b55f21272bf72a9f56ce0900 +# SKIP-SINGLE 630e2d2e6aeba60f178c6ef2b283622070b873b3 +# SKIP-SINGLE 79f017d5c3019f8bc2a5014beda28bb3b829a8e3 +# SKIP-SINGLE 78f869687e86d4a9f91003dbbbbacde2e2741487 +# SKIP-SINGLE 3ea055c90ed0b6c486518265300fa7219f8e5a29 +# SKIP-SINGLE b91bfa10413182654a76d0ba337198f39a4d0e8e +# SKIP-SINGLE 7cc95d4d86e5a9f2df248d2aa7c8cc423c8f06e3 +# SKIP-SINGLE cb70725584a754a491ddad82c42278f17c714a2f +# SKIP-SINGLE 0b544b676473dedf34c6cb6a3315bec1f42d7162 +# SKIP-SINGLE 8929746489bb257d1e29c3bab629b3b67e3117d2 +# SKIP-SINGLE 064541af6a71bf45d530fe34b7e00c8123ee93d8 +# SKIP-SINGLE 501ad546263ed2a902be1c9d8c1bb3af5794066b +# SKIP-SINGLE 236648fe2623a10c8ca02637b79cd0ceffd0b6b9 +# SKIP-SINGLE 1b4442bee921d6698fc8ecac1c95c39f7ca2efe4 +# SKIP-SINGLE 8ed8ef307d9a28f6c3336a448c7fbdfe8a733d83 +# SKIP-SINGLE adfb6f1dc26a927cf4bab24bdfae54b51e3ae0ec +# SKIP-SINGLE 6220faeb4e9be16b9dec728e72ea8dff2cfe35ba +# SKIP-SINGLE 5ec3a58462e99533ea5200de356302181d634d0b +# SKIP-SINGLE 04ea55fa471f0c75eeee6ccea33cf91c81fc246c +# SKIP-SINGLE e9ec1c5b26139057f85548184ee4b47f3e29f564 +# SKIP-SINGLE ee9970734facdff57c79811a7b60973a0b9ec6b2 +# SKIP-SINGLE 4c1d7acf81a4dcec97fa4daf9e9f414e1321bfdb +# SKIP-SINGLE 01ebe5dc0b1c71191f6a713fec245a188d587772 +# SKIP-SINGLE d8cca4d8c56a90ec9215d7bfb0b0edfa3a36ad4f +# SKIP-SINGLE 382f6603ad4ba2a69b3961bdc68580ce77d222f9 +# SKIP-SINGLE 490fc5a5029c0d8e527a0c7f423ba83fd6afda60 +# SKIP-SINGLE cadb044fc2e69266308cdcabe6181be0f624b484 +# SKIP-SINGLE fea1ad36a0f7b1538984ab0f077095a53c570aa4 +# SKIP-SINGLE 84eef501554324b22c7a838aabed77aa79315121 +# SKIP-SINGLE 44c95c58b26b7b9d75965a83930ec3d77ffae28f +# SKIP-SINGLE de456d1e4a1d7e34be6d040e0d8a04c42b14e62e +# SKIP-SINGLE ce16aba66d39c076aeef0c898403e44cbfbfabbb +# SKIP-SINGLE 89159e78bb449d3c13506a37d4a5df4424958279 +# SKIP-SINGLE 4db844a4532592ed2542c05a1747dad7ed319e15 +# SKIP-SINGLE 5b0fdefb4ca54b0d3dac3047ac1e4b380beb6ba7 +# SKIP-SINGLE c1e71d3899daca49e216dfa3a6e6e07169d02e1e +# SKIP-SINGLE 735ae5cd3a76735c1b51913eaeff5df5f0b2b53e +# SKIP-SINGLE e0150de010af2d9770380217f90bdc09592c968e +# SKIP-SINGLE d22ddf5944b97ca7f853d034f9e2e812d9bf5552 +# SKIP-SINGLE 46dafe4103d1d24a9ec9b3a7a561829bcd5807aa +# SKIP-SINGLE 622c24a2b75a564b9861fc3ca7a7878741e8568d +# SKIP-SINGLE 6e45de6bacc508db11b15b2c8ba86aad8c0570df +# SKIP-SINGLE 2d0a3feda61186319b7c834ee08c96926dd7ab92 +# SKIP-SINGLE 53f8f4bf2db097f4a2c68194c55a87c5a1176c8c +# SKIP-SINGLE 2205546269bf5af01d766dc38720f71046b08dfa +# SKIP-SINGLE e589018b48f802d69f62ab1e7e266df1c7d8cf68 +# SKIP-SINGLE fe304efa5155cd6a5c20a0731475a0ad6d087c4c +# SKIP-SINGLE a1f93c1dfa53dbe007faa09ab0c6e913e86e3ffe +# SKIP-SINGLE a02885a37031ec0e199dcb38ff9cb93e65e7b7cb +# SKIP-SINGLE b20d05c6d76ddaf7e70da1430c9aac56ef1d6b31 +# SKIP-SINGLE 5317193fe55d130a456fe0cf06c56f027d617b09 +# SKIP-SINGLE 03f63888923404cd99023b853294f92536d3c87c +# SKIP-SINGLE ea9acccd643272962831b63d932e283b8ecca7a7 +# SKIP-SINGLE 6df3eea9380f3684475e205a680804f3ff355402 +# SKIP-SINGLE 6fa9cc0593150a318f0e08e69ec10672d548a7c1 +# SKIP-SINGLE 4713dd425beac5cb459704e67dcb8f6faf714375 +# SKIP-SINGLE 2f6769f9cdb799e880fdcc09057353a0a2349bfc +# SKIP-SINGLE 8bb5d7adaf45264900385530c7f76175ba490a77 +# SKIP-SINGLE 43c84577a3055d5ddf1f5d1b999e6ecca6139f60 +# SKIP-SINGLE 66dc8dd6d13d37ef23b52873293d95d87dca497f +# SKIP-SINGLE 1c91bc9221d12618c9fb5507561dd35b7e392cb6 +# SKIP-SINGLE ace38bafa6ae0d40bf3fac9f998c8ecbe36d5f41 +# SKIP-SINGLE d354fc38286cba05b3ba2fefb9d9cd6d30deac3d +# SKIP-SINGLE eb52828a439f674733ba70844b795c6673733572 +# SKIP-SINGLE 401e41df0c6aee6c071a26e0b89f16c70375fc2d +# SKIP-SINGLE d812d20fbc3e1eff0f10443baed801adda9031cd +# SKIP-SINGLE a3b8618d79657af0d7fea9cb6fd914ccf0f67849 +# SKIP-SINGLE 89898e43c7ceef28bb3c2116b4d8a3ec96d9c8da +# SKIP-SINGLE 72d7961d678f9c5f4cb812e0bb9b6dffafb47c68 +# SKIP-SINGLE b1fe497a445a8be1b50c5b5952f3380ee9546710 +# SKIP-SINGLE 0ca61907cf4fe8afc723ed1e89e1a15ee69507ce +# SKIP-SINGLE e8875bcbe067ea020dba95530ec4e9485942babd +# SKIP-SINGLE a6b375ba4bfc9453abc428dcb73e65bfcf61b794 +# SKIP-SINGLE d490770dd09f1121b637eebdad82531de654189b +# SKIP-SINGLE b389379c87481b6bc647ceb4d323f861281cad72 +# SKIP-SINGLE 4364a769b489c044c4e9eeac6cfbabcc844ab332 +# SKIP-SINGLE cd56490fef9cf585708b9d11de2f3f2ec1e2d5b2 +# SKIP-SINGLE 992e2019d3c535a61df064de25f664c01b8c309f +# SKIP-SINGLE 41a5b76f79e2ef12a089e94406159e2d0e1fad1f +# SKIP-SINGLE 3533623c4a007df80d57fe2dbc47d7e40d85041c +# SKIP-SINGLE 21fa90b0488b2344b9b93ccc77263968d1b903b7 +# SKIP-SINGLE aca21d42d3c1327ddc202a03585416f2821e6839 +# SKIP-SINGLE 0f8343394675480f18c121520eed2203bbe1d6ec +# SKIP-SINGLE d831312d668fbedeffe3711b13cd455309da84a1 +# SKIP-SINGLE 0c98dec5c9d0e0146a1519b9a7e099aae668c059 +# SKIP-SINGLE 491531b20d05a0f2cc747aa01e697a764c34a99d +# SKIP-SINGLE 861824dbecc96339c68b1e15008a21c31e04721b +# SKIP-SINGLE a13eaddce2ddbe3ba0b7f4c81715bc0fcdba99f6 +# SKIP-SINGLE 4ad6be65f68a5c875ecbaa9e66d8ced28f43670a +# SKIP-SINGLE 2d42bf7f5e57001a836b7b4e6303fac9d3f00a1d +# SKIP-SINGLE 2e3a33659fb85330ec76a67b2113472e7e0b546a +# SKIP-SINGLE d0397f4a5764d3be93be3e3d35bccc1bf27522cf +# SKIP-SINGLE d5ead735a07e619e514dd10b9e84e5d788b8a5f0 +# SKIP-SINGLE b8e0d203febffe7446cbc5e0ee7d9bf168854a88 +# SKIP-SINGLE 932698b7891668318ba9ca93375d8d27d52a07f5 +# SKIP-SINGLE 09eaf661eb6ea49c6324d8819a872c523133dc2b +# SKIP-SINGLE 630df0587e1069b2cd2f2536d5fb61175adac3a2 +# SKIP-SINGLE edc63bf94f3cd3f52fab86fe7b92a3ec6a19de40 +# SKIP-SINGLE 47122295521c63febe9fc64680430812da3a3acf +# SKIP-SINGLE 750721c3943e5837d7d9292d6462a144a49347c7 +# SKIP-SINGLE 1cad61030160ebc4b73e1f4212155a180d417be3 +# SKIP-SINGLE c68cce94c46140f2ad1411550427d3cc2658ec02 +# SKIP-SINGLE 8750a4546a1da4f03243df12c7e5b89f2c32d27e +# SKIP-SINGLE 8d96feae07c618f591a952f8f10ae949735b4050 +# SKIP-SINGLE 92879a1b035baf297158812ccdbaf6ae1d157e16 +# SKIP-SINGLE bdd0c8600fcd33b6f8a535a66343591a29575042 +# SKIP-SINGLE 58430f29968a5661caff630d20dbbe7c864fe08d +# SKIP-SINGLE f3b24e90dc9fad355102e1fdf2828ca33d447a07 +# SKIP-SINGLE 1bf7ca623b3d3e02617cf0b5f8d7f980384838d3 +# SKIP-SINGLE 0ef7f64407525a1e1bcc8aef4d1fd19a1cf60ec6 +# SKIP-SINGLE 23d3eeb798c7edc27898b0dbd4c2364a6ca6247d +# SKIP-SINGLE 28718c4449972640c39a7be1b62ccc7f50c6e801 +# SKIP-SINGLE e6750596ef55352c260c200747bec3303e181fe8 +# SKIP-SINGLE fc05d4fec98387097c30a5c60e2f343cb797af26 +# SKIP-SINGLE 96644ed496cfc36ef886c401250203c57d77ab75 +# SKIP-SINGLE 86e512ed10d83e2d233cfb95bff68b6c05729686 +# SKIP-SINGLE a855473b7079b467ac01dbcee89cb57b3599fdac +# SKIP-SINGLE e8adf68824178ea25a5fda0c53233a42883de861 +# SKIP-SINGLE 393228bd7a96b121f2ffba5fb7072a6cbf5ecefd +# SKIP-SINGLE ad128fee434a954da2ead75647b6396ddbf91f6a +# SKIP-SINGLE 056548283884d61b1b9637c3e56855ce3a17274d +# SKIP-SINGLE aa779b0f15faa114fa5e3f59b17e628b1a837af8 +# SKIP-SINGLE cb8fcbc3cbd8f6cf95bb858b72188d752672cf6b +# SKIP-SINGLE 0397f85c6f9b0a5325f774e2a56e7cd85176e228 +# SKIP-SINGLE 22fc91704be4737865b3715e5278dc78029791bd +# SKIP-SINGLE 6d58dda40a0a43d14dffdd995f0cb3dcc329fa4b +# SKIP-SINGLE 5772b920f40a8c9f0a5266caf8d0f4729f6d2c13 +# SKIP-SINGLE b104d764216026d77680a79993a051725e5ab94c +# SKIP-SINGLE 89b5a8283375f83b8f0e174a3a8760158b99be6e +# SKIP-SINGLE 1784ce6080e4895a48ce71747a136d9642baa73e +# SKIP-SINGLE a3e9694078e24d19db860aa4ff8dec8bc34b59b7 +# SKIP-SINGLE 5e47c2e52b9b7616668c5586084e0128b231272a +# SKIP-SINGLE 7a762fbbfc1c05be8de3d253251f5e7b32da2c73 +# SKIP-SINGLE eebb9783e1674732b7c63d50211b524ff0fea7bd +# SKIP-SINGLE d533f5f2a783e4c6448f841e709f4528f498b7ea +# SKIP-SINGLE 85f6aa33f55da97b13b5e81616f16a517d24f3d5 +# SKIP-SINGLE 59f3c86659c061e2673eb0da0bc78528d30f8f76 +# SKIP-SINGLE b91455633b03add918af3eb166ac797fd6c95722 +# SKIP-SINGLE 6c106712a8d2ffd0c932541cb50cc59a6df732f4 +# SKIP-SINGLE 65d428228bb57ce434a8eb5a4eeb2274171586b8 +# SKIP-SINGLE 4219240e1df6abbd842f4474fe7862f341cc355a +# SKIP-SINGLE 6f6639d6ed6c6314b2643f6c22498fc2e23d34c7 +# SKIP-SINGLE 633db417fc3e905b28b017facdf596b36914b44d +# SKIP-SINGLE 28e6584861a7f80b199edcd0d9eb3d97e344958f +# SKIP-SINGLE 9b4b2e9fc8dfd37ad8f44940a16330c477f896ea +# SKIP-SINGLE c3ac93bb9ff8b1fe1fc32f99c725e6cc209aa6ca +# SKIP-SINGLE 885c512603f946dfb7a45c181e94b8677be2678d +# SKIP-SINGLE 2cb9805702a4f15ca7ee4ef4edb6e6048b1d3320 +# SKIP-SINGLE 66d37175ecac41dfb2f854dbb148dcc7ca87b345 +# SKIP-SINGLE bb47c72de35312b742a1964b31ff315727baed00 +# SKIP-SINGLE 2c39565dc046d428127735552db6e7814631d4d4 +# SKIP-SINGLE 3c2e8eff8cc9a4a535f473b3e150cb056d8f891d +# SKIP-SINGLE d79cf638f278e50c22feb53d6ba556f5ce9d7853 +# SKIP-SINGLE 06e452a57287c797cb96a6d4b45220358daab379 +# SKIP-SINGLE 85b4e88194cae541a0093a9166f4306e6fd3109e +# SKIP-SINGLE 9613690f6e51e2f2aa2bcbbede3e209d08cfaaad +# SKIP-SINGLE 6735df4443fe0aa60862a95c38746edf2b053862 +# SKIP-SINGLE f07c325d1f49e4b722f76aa730ac5d084bd0e77a +# SKIP-SINGLE 151496a4b96430924bc148f85b9c8471d1e132b1 +# SKIP-SINGLE 9793a4616833a26157b4c60278ec17a9be233d8f +# SKIP-SINGLE dad1aeb30760ef524e95e636c22346b051233a38 +# SKIP-SINGLE 8ba61ffd8cebb0ff9f7a219022f3c1f3eac2f6d0 +# SKIP-SINGLE e9ca57cfcbaf1a8dfc6bde5a2afd5f3c7b357cb1 +# SKIP-SINGLE 682118f5a06eebdc38767047e65d42aa9356cfe8 +# SKIP-SINGLE 2825d849451be45ea738e2d2b2567c834fe5a0fb +# SKIP-SINGLE 0263216ec39d0914f17b662a3e45b4163ab6cc78 +# SKIP-SINGLE 3ba07bfc3ec43aa10d8e2d06a8f36f7022287573 +# SKIP-SINGLE e442879b5a963a6eb37403fe09f476e7ee8e0f55 +# SKIP-SINGLE 4575ae5a9c5589ac903362486951f0d36c8ff8ee +# SKIP-SINGLE 67afa75e2b97c08976f0e5a8502dac5851d45f93 +# SKIP-SINGLE 64eb2fc74013a221927f9bef920e367758e1bc15 +# SKIP-SINGLE 37dd95866a004a9db1d77f075715243246033773 +# SKIP-SINGLE 8af26410a91c3c9679bb0281ddd71f0dd77ec97c +# SKIP-SINGLE 76715f8921dca740880cd22c644a6328cd810846 +# SKIP-SINGLE 678881e428073b39a906c1ffd01e1b76e271cb5d +# SKIP-SINGLE 155ec5096928ddb121fb725fca65436d6353cb67 +# SKIP-SINGLE cc3d7580fc1cab3119e5e05c427575a2668cbb4f +# SKIP-SINGLE e2a78b0d6d844f29acaaddd775c7b1cd6dec7af8 +# SKIP-SINGLE 45eb3b3513619d97d046a8efbe0d16fafc75a734 +# SKIP-SINGLE 27980e36040d0693fe997de6b6b73c09c3ce1cb5 +# SKIP-SINGLE cca0e79ea81712786f92a6668c61001e60d24f32 +# SKIP-SINGLE 3dea8f8f53f81a1d15a55c9e3c87a7eade7ca273 +# SKIP-SINGLE d0fac17abdf6883bbf82b1752988db38d05282e6 +# SKIP-SINGLE 8fb995b9e360270b6a4d7b7732a127a6234eba23 +# SKIP-SINGLE a770fb44288c75fa2b0471ceaf00bf741376e40f +# SKIP-SINGLE c7e393bc4130c871a92fef7e9ac0c7c1832aa614 +# SKIP-SINGLE 0d868917efb46400cf7dd57a1cdbba7404f322a7 +# SKIP-SINGLE 025adce2cf43f4ce9f3c543c1b8973541e1414d2 +# SKIP-SINGLE 872faabbd8cb0f5518777b2d4fe7de187f684a92 +# SKIP-SINGLE d14808cd271abf6a723bf495a6a01c14d18b5893 +# SKIP-SINGLE 23eab9a6a67604b5ebcdc99efc42fbfd3345c0b0 +# SKIP-SINGLE 6d4bf2cedab365411f0aedb373b63291086658e9 +# SKIP-SINGLE 5875fbaa2dfd919a2ba22db1d20ffa6c4c6e13bd +# SKIP-SINGLE babe0d4508273c5fe0a3228b3d2b4d3dcb72cd58 +# SKIP-SINGLE eb83344fc7c08ec08b51e7700f1ac2632afa462c +# SKIP-SINGLE 5c3dba24ef5f40825a01e30d2790c66df202b8b1 +# SKIP-SINGLE 47b7a5bd492e92dda928843e28a707b9682cb32f +# SKIP-SINGLE accb7b7ecc19f85c2750ded1046a464bc73c6a52 +# SKIP-SINGLE 10a45096988f6f19e36e2e7865b6eb35c0929b6d +# SKIP-SINGLE fe859a07870d5204adfd5c9a7f83bf69658d37c8 +# SKIP-SINGLE 61f3a4b4fcc43241caaac63195205774ab1a5732 +# SKIP-SINGLE 410e65e4ce6f871fd1b8a2ef4b227cbeeb17c1dd +# SKIP-SINGLE 4fbdccedd58ffe4cd5f7ed7b744123cc25084bc4 +# SKIP-SINGLE a9140091dd0df7e89ddbaabec17608a20f06f7b0 +# SKIP-SINGLE 0c9bce3fc490d6f5e935883e9690871cce4f9150 +# SKIP-SINGLE 6c560a3b16f9015a19044395f0ef41b718d73496 +# SKIP-SINGLE cd06d173a602bf0aa8a227ff1626dc70013fe480 +# SKIP-SINGLE d1ea675d2cfccfb043c8e853c410427ca62dd921 +# SKIP-SINGLE 5e841bc9e5ff878b3dce36a712386ed6f53b6e60 +# SKIP-SINGLE 284f635da833d2dbf0102af3442197b46adf78c5 +# SKIP-SINGLE 41e20ee4bc01576d23fb8fd4f875385ce57eb36a +# SKIP-SINGLE a411517faf624657aa58979f5463115115093309 +# SKIP-SINGLE da9541dd1086b7bab52940c82915efe114bb7419 +# SKIP-SINGLE fe6c507f5ce0fd744b5bd1d0db6ea175e1188a7f +# SKIP-SINGLE e08e0880f9892fba747abdb95b1f3382ebd17e32 +# SKIP-SINGLE b6d8d34aede02a6af7a614f32b86292ee4ba1757 +# SKIP-SINGLE c4bacb1215bfdf058b374312256c27eaea1304a4 +# SKIP-SINGLE 534c33cf375182c97291d2dd242f936df5953321 +# SKIP-SINGLE d8a6d82c4d34286b377fd7bddd4be0116e8dd4b9 +# SKIP-SINGLE b3df3729596332a39404c364798a61bfef2adcc2 +# SKIP-SINGLE 134edc10367a8434167656e631865c85b5f10c42 +# SKIP-SINGLE d3a0ddedba53b9e2c99274c8ec125d53f991da5d +# SKIP-SINGLE 4498e5a13a3b63a3024ceef102ae3b5c50f58be1 +# SKIP-SINGLE 9813905f834aa43eb194023f579c7e7951d96d0f +# SKIP-SINGLE ec2e5a54b3b6324f1039f355fa646034918f6dba +# SKIP-SINGLE 4a04046b7200b9c7201c252c23a8c313d4687b5f +# SKIP-SINGLE bfcff8f88a472bd1a64922da094cd007d3b7a70a +# SKIP-SINGLE b552fc05c231ca6800330a318d3a74ddd0f5a13c +# SKIP-SINGLE 01963fbbe10d290ba037cd523d21ebbcd2536b40 +# SKIP-SINGLE c31823a51bba1e4f0c87af1a08ce856cc600f5c8 +# SKIP-SINGLE 66c388c21aa83d3ddb5a1827f81dd432514242ac +# SKIP-SINGLE 77b1148b5164c71c4ba673173eed2a37918d4f78 +# SKIP-SINGLE 63091313490beee4c5ed9767195c2a3df98f0332 +# SKIP-SINGLE f0c0b2cea3ffea7e3c53ff24c58e7a08ac40babb +# SKIP-SINGLE 1ac5c6c3cfc4c50347af893aa72926cdf2edb8c1 +# SKIP-SINGLE 926a394997eaae55b797a90cb2cd037bbe3c3db4 +# SKIP-SINGLE 31c60dfbd8541c9f1b1bc8127dde85e5d5af51b5 +# SKIP-SINGLE be3ab9f301bf741b0410c1f9fb1c5ce6dda1c39a +# SKIP-SINGLE 4bfde2a79046519815e2bb8a8eb72e22eca0641f +# SKIP-SINGLE 7bba702e1ad1ed343618e44cf5bbc2a1f079be0c +# SKIP-SINGLE c64cb02cca320811032bb300ea6d12cf59acf65d +# SKIP-SINGLE f208d5ae77cf381c6f1db9b1aef76d5e9805a106 +# SKIP-SINGLE c113d6f3c1e12fed3aa627e74a2a43be0350c31c +# SKIP-SINGLE fa3af359df8754423a197682d31245ad88c02033 +# SKIP-SINGLE 6fe661342a24edcaea255c3ba9a37613031554da +# SKIP-SINGLE b93e5463885f9c99e74b52d2f569ad06ec2d0ff8 +# SKIP-SINGLE 8a11e430ec261c08cc928a7a5b05ee1027f50368 +# SKIP-SINGLE 699fce296b13d7db386b1cb5cecf2710e5196691 +# SKIP-SINGLE 698ff554ac2699ec48fefc85a1307cbc4a183b0d +# SKIP-SINGLE ab9e58b8e39f19cb35513f77310141a344a4de15 +# SKIP-SINGLE 648fdbbcec159e6bfdb7cd06d32c59e8a17a055e +# SKIP-SINGLE 52e17e53b7dbafb4877d98d99188c335db6a3b5b +# SKIP-SINGLE 394282142563fe1341eba1845672e2412bf8c7d9 +# SKIP-SINGLE f0151e17d296bfdeb1ca3f002c9b430c8302a6e7 +# SKIP-SINGLE 90c25b245259e99013dfb9292bea054a0ab4ffb6 +# SKIP-SINGLE b26c2767edd98787297879c4570a2702eef031be +# SKIP-SINGLE 8c17995f7f948955c765562f32526d0a3b87398e +# SKIP-SINGLE 093f5d0045cc5facd3728e385a71ef84f218bdfe +# SKIP-SINGLE 18a7e5414c534db38eedb06b16ef68f2c17b98fd +# SKIP-SINGLE 34f01eb88f87fb8bd5b816d76a2527b5277862a7 +# SKIP-SINGLE a1deb6cac305a73e799c63e2fbfe7221790e1e61 +# SKIP-SINGLE 58a3c54c7ea86ea6b715483e7b017008a78fbf14 +# SKIP-SINGLE 2da3305c3c335adcbc9e541b7c50e4e814df87d1 +# SKIP-SINGLE 2c5a3f413b7477544ba8f5b18ed233ea6ab6f2aa +# SKIP-SINGLE 45a0ce0905e495ae93b39e75cedb34ac95c6ea71 +# SKIP-SINGLE b67a6cb8dd7f8e6757a54f1547f631f26fe26e74 +# SKIP-SINGLE c2e27949d5917256bb419dcdae73566079844b4d +# SKIP-SINGLE 0701634aa788b316f331ccbb6c44dfd8304a271d +# SKIP-SINGLE 8b379bbeca9b3765e2b1e948d9d9c90ab92ff4b6 +# SKIP-SINGLE f6ab713bbc3dc8fccf5fe490615aa2b679071010 +# SKIP-SINGLE a7f71e8dfae9b1571a2ad34e44f000ff4a391644 +# SKIP-SINGLE f21ec24524c705e18674a2e9e4db37b11fa3ebab +# SKIP-SINGLE d715ae8788e16b22f7f68cb82b51a40ad95c78c2 +# SKIP-SINGLE 7bbb56bc430465a6807a8129a322c704c89e3eba +# SKIP-SINGLE 7f6b0c1ee93663892c6220b982f7bc3275dcaa85 +# SKIP-SINGLE 18c83aedd91023a677153abeafe561eddb430146 +# SKIP-SINGLE 68b8980eee5683128035800d6a04c27c764fcc5f +# SKIP-SINGLE 26577415400b88c66add5ac8848e6e370739bc21 +# SKIP-SINGLE 5b525f4f56f458d88b66be73cae2d1fc5b382db4 +# SKIP-SINGLE 9fac0e70e3f5b7d0b12b77cac50078e01f68ee70 +# SKIP-SINGLE c717a5bf53a9f08f2123968b62800a8450589719 +# SKIP-SINGLE 73ab8f4b8cb6f08e7b694bdadcd42751b3916dae +# SKIP-SINGLE e2e63dc3f062ec3dee56f003efb3e093b56692d4 +# SKIP-SINGLE d16b73fb4a9d87ec220444d220c6b45879806fc0 +# SKIP-SINGLE 982af7f516efb190d19946bff7bb37567328b4b9 +# SKIP-SINGLE 9645b5752a3e40754d22d9e805778e95fdc86337 +# SKIP-SINGLE 1743da11d0fdbb24f6c6e8d084e98d0b6e4d3f62 +# SKIP-SINGLE 7556772ac2e375d3812665dd8e31548e0dd1f7ee +# SKIP-SINGLE e4636297c630a81e1e201210b4e6da7e99b823a7 +# SKIP-SINGLE 5fb3782e95d512ddb9a23e7d713de5980c7c4c2a +# SKIP-SINGLE 7e911d007d25df9a483eaad54956a4273405574e +# SKIP-SINGLE daf32f1f87b3d71cddd9ab2e9e4c3f5b523ae409 +# SKIP-SINGLE 0dc5a85a1c3772a6e78f077719d82f437f626b1e +# SKIP-SINGLE 0c450e09b8eea8839d10c329debb3be37ccd9a34 +# SKIP-SINGLE a7aae1473c1aed7758b550a23cda61ee17668e23 +# SKIP-SINGLE 48daf77a9d963c05ee198b3ab108c7f0b3686da6 +# SKIP-SINGLE 8f522efe9a963cd3523ea6863f9bd44881cdf6b7 +# SKIP-SINGLE b82f34f996c25deda1b89fc7006833335bb1a6fa +# SKIP-SINGLE d38110efa75372d4c3be702f157d3a8c6b7f37b5 +# SKIP-SINGLE 30026cfe666e9647aeef73e26df5ffca2fa2c662 +# SKIP-SINGLE dff4f9c759f5cf19047719716ea5ee8ffdc3006e +# SKIP-SINGLE 6eb122c8db9d6a445b2002f025e01215ab560843 +# SKIP-SINGLE 79a01866a01754b9f566af76ef96e80cd90d094b +# SKIP-SINGLE 34f1035e878a06ad181ff7fc533cd1fa0a565847 +# SKIP-SINGLE b478444099655f36f7b243e21e8f98051299ca8f +# SKIP-SINGLE feae2de4242d7288f94c4bb41a9b7deed8679da0 +# SKIP-SINGLE 7fc0292f5c49d11fc39853f8bc25586d54221e6a +# SKIP-SINGLE 278b7c1b52be11e8c49b8252953e8e84d45765c3 +# SKIP-SINGLE 2385dddb3338fd0f34aac0633dde78dd650f7d94 +# SKIP-SINGLE 5ea28ea4d12140ebcfaa293b6f29521a80b3de25 +# SKIP-SINGLE 981c309325d55e8c5947274e4df6346ea51a056a +# SKIP-SINGLE 11c3ec3df6ad79ee5175094f0cf14248d9724aa2 +# SKIP-SINGLE 21f5bd6154f254a53942a9823c9c708ffa4b22a4 +# SKIP-SINGLE 9a56b9bf71af83292d6831e08a8179b7cf5ee7d8 +# SKIP-SINGLE 120f691e99d7d98a959ec9a6075cb4e473831bee +# SKIP-SINGLE c4fcaf5e729fe5ff9249a56b1d0f5927ef3932a5 +# SKIP-SINGLE 9aa13cd4beccfe41e8f4930cb029bd60e7788e93 +# SKIP-SINGLE 8aeba640460adbad283d4a18f91cce8e0364c40d +# SKIP-SINGLE f521225736b2a6ab38bb94298fb4d3ace3d9a9ec +# SKIP-SINGLE eac531b760aa805c293339eba78e58b5b89fa211 +# SKIP-SINGLE a590a8058d52c1cbe0f80b7ed0d8b0abed7bf7ef +# SKIP-SINGLE f0f2a53b27187903c86189bd03f072ac6ddaba9c +# SKIP-SINGLE d8c2da46e7e51a11882dabd593af29f4146aa0b3 +# SKIP-SINGLE 7844846e3fedac8f32f0d81d3c5e906715d39fd2 +# SKIP-SINGLE 3886a5c140b03f07c8faea7cacad0a791bc54fa5 +# SKIP-SINGLE a397fa06d18d6ae37a3a1288f269e1ae9eb3b569 +# SKIP-SINGLE ad33e3e549e24c48259c6bdfb069e41be0a31f98 +# SKIP-SINGLE afe4969a3b3b38014387a828b66f5dbc3a462a57 +# SKIP-SINGLE 5c74b806a6fb0a4cb237300ab0a5418a109ced5e +# SKIP-SINGLE d9c6b4378ac851f5e730daa0ae36c9ee2d0292fe +# SKIP-SINGLE 7362554eafd7e255b3d96a4f711e11708dee950f +# SKIP-SINGLE b293aa91bcc7f553ffbc6c67027f3c86d06ffbd7 +# SKIP-SINGLE 232a36f17e2796c52cb0b1afd5872c454b92ce62 +# SKIP-SINGLE c4687d920db081f29e93cca8156793d545a827e2 +# SKIP-SINGLE 3fc859d9550ff6d35dbb453eb75c3296f23a94cb +# SKIP-SINGLE 11192b29adf4ee500f5056d1b02d35908f858b53 +# SKIP-SINGLE 3ba1b52e277261286738b637e45a675b7d587f58 +# SKIP-SINGLE 498468a2367524c7bd763826df5aad2b76345912 +# SKIP-SINGLE c4b886831acb82643a38f48c91456b15363bed75 +# SKIP-SINGLE b18f92a942dca6f95c9a74835644e482f3b1b907 +# SKIP-SINGLE 6c77a9e046de682aaace72aaf3af78e6ba9e5489 +# SKIP-SINGLE 976b7fcc8ced57fa12a0504899974b5b2057c943 +# SKIP-SINGLE f0290502f3354f9ed7e8ec84c24ac13a7bad2fc0 +# SKIP-SINGLE 4946ed48fee637eba75b674b9ad568b9df26bac9 +# SKIP-SINGLE 2875340c9fcc3bd6a799a3c4a4d875fc753ea7b1 +# SKIP-SINGLE 037b9897a464bf25ef9587ee860cc7f20376a97c +# SKIP-SINGLE e666bf781f1d3d74068e8d2b505e35dd75b5b423 +# SKIP-SINGLE 00f7fd7d427b85e69a53403a1d10ac122a92a95d +# SKIP-SINGLE 0bb5a47402313634b0e8654355e519388851e07f +# SKIP-SINGLE c00236a880567c72dcdba5fc90d6de1125616c76 +# SKIP-SINGLE 1c08dc82121d50e80bd2dcb0d1f39654cc6762dd +# SKIP-SINGLE f4cb9cc9034c09a8798df3d98f6fa9313a777a96 +# SKIP-SINGLE a5a1b53807a9449298f62c761223e6a1c5654bf7 +# SKIP-SINGLE 92e285fdf0821d8a01db598c4e2ac7e2e0fbb3cf +# SKIP-SINGLE fdb31d6a2709bff751c2ad240c41b30db1848b44 +# SKIP-SINGLE 9514dbf7ed70b6c08a11fd58c7889ff49e30ac13 +# SKIP-SINGLE 4beb850efb99b881fb8b648ad7bb43c6539a2431 +# SKIP-SINGLE 5f63ac26ccc18bcf9e364b74af4424f9e3677cf8 +# SKIP-SINGLE 726d8c5bae847a3240b758a1d25135865e9304f0 +# SKIP-SINGLE 44db9b912f1d8165383b5b30732fa9caa3d3a185 +# SKIP-SINGLE cedc19297e47473ae599faa7cbcb2f3f6c9d5846 +# SKIP-SINGLE e678021f0c3db705c91831cff466561fd73c3040 +# SKIP-SINGLE ef59b67e4657fa80d1528b9d476c67f01abecc35 +# SKIP-SINGLE 2ccce1bc3954ce5f2faa0dcf7fa68ec5cae710ca +# SKIP-SINGLE 568883c9be8bfbb15ea48ae0de2c117894e8db4e +# SKIP-SINGLE b6d6e7feb75b792c74fe3e1d036b9edf540d771e +# SKIP-SINGLE 15ac087712250b5ffeb4d162761b2495a5e572a3 +# SKIP-SINGLE 36ab5c6d49f8fbfb858844743223414e6f2f2564 +# SKIP-SINGLE 080dacda7896e0eb5ee54b1550097e45a4f423de +# SKIP-SINGLE df62baa7d4e8ce0760f32122899ae3c803180907 +# SKIP-SINGLE 8b1d9b8e5ed8035bd2f42517bb6bc3c8a6d6f0ae +# SKIP-SINGLE ca8d5ed6ecd5ca3eafa2923ee04e56dc474bd964 +# SKIP-SINGLE df0a7547cbaf19152a74b5dda760e5d1f6c92ecc +# SKIP-SINGLE 12639610f78f9006b70933bfc6898c1312f95290 +# SKIP-SINGLE fd3c00ff92826b466a3292a05072eb5b4f23a701 +# SKIP-SINGLE 0a74771ee9c406cf98d391378340c79645c88d52 +# SKIP-SINGLE 5dae0a9a55101aeb668f90e1fece1ffbab5e7ee2 +# SKIP-SINGLE b275ddd63a24b15dd8f90ea0c4f27341a8dfa977 +# SKIP-SINGLE 5ecb71c1e65038b79933c06e1c0303b3e58ef4b5 +# SKIP-SINGLE 42362d991443689162c3e0bf1eb683a85481a391 +# SKIP-SINGLE a88e5f0f199ad018d57d07016dce20e5462dbbca +# SKIP-SINGLE 4c8b46514d87856e5e2044bce804ad0156097d04 +# SKIP-SINGLE c5bb62f99db4b1c70e68e7c7a30ede8227f199a3 +# SKIP-SINGLE 79436f0c744a65ed2757f0119f5bd13e2fbef995 +# SKIP-SINGLE 54677f96f3ad8e489e04c8bc7875e1ec4d6b9a79 +# SKIP-SINGLE 9a8f33f285295daff8ed02d35ece5e8fe11ac887 +# SKIP-SINGLE f0671c60637e218a54f9f3ac8e5950d17884f50b +# SKIP-SINGLE 4496a3f5ba899c89e45cd478a22b25ddf77869ec +# SKIP-SINGLE b3cbdfc86474932e4ef8d1237ed100a6f4f4c854 +# SKIP-SINGLE a647a97320e72db275a05961ae09e487ee3063e2 +# SKIP-SINGLE ee4feb005ffe1d35ffc4d390d18b88ecfdebe2c2 +# SKIP-SINGLE 88671e638b308886a9d6b5a590ee1aee56746d7b +# SKIP-SINGLE a10405386f83333184c94a0a194b404e4273e2d0 +# SKIP-SINGLE d0fcb15fa9858eb600b0a8f35ebbdf5aadc2cd7c +# SKIP-SINGLE d0173ecd0ce8c2ac458cd84c25216f59f3fc9889 +# SKIP-SINGLE ac08a7f26c53d65df7d9c2a5d76300a6a1a8106b +# SKIP-SINGLE 694ece772220346aef12520bc66ca401d08809bb +# SKIP-SINGLE 740462da6153b111a8196b003791a55c7f7fa878 +# SKIP-SINGLE 8234a62e6fb9f706f410a96e2ce9877c19e44a20 +# SKIP-SINGLE 26ce5664ae431ec141e852a4183844d83c3f8856 +# SKIP-SINGLE 54e0b112d3a91c86230bc4329e00ae8f2faa05e8 +# SKIP-SINGLE 6c9acd13d0d2aa181d21bf78d6530b3399520533 +# SKIP-SINGLE b3db331e8c36ef9706ad16c12055079bcd93c022 +# SKIP-SINGLE 3345399e87fe6100ef82c399337760ab01182240 +# SKIP-SINGLE a248dfe2c3341ed73de38c2feea64ec12f053aaa +# SKIP-SINGLE 48f5530e7922e4c46db1c4ab82b1c3532db724c9 +# SKIP-SINGLE d7071c64575bd3116e154f93915ff099c6e0f3a0 +# SKIP-SINGLE e2855d93ee41bf23a72fdcb49bd5347512989f6f +# SKIP-SINGLE f4de790beec514808eafd1cb22fa5eacdecd4552 +# SKIP-SINGLE e05253cb9bc4a35c7dedc3cbb2830e37d385a339 +# SKIP-SINGLE 60a81f44e49c77ef9143a665f94f89109002133d +# SKIP-SINGLE 4a639f3ae9594f0d16835d5151b6dda7e83e1a1f +# SKIP-SINGLE ce254ffa44e33352605e49aaa7d5fc4f545c1add +# SKIP-SINGLE 9a87c4404fd0097e2efa14f63b97a9df8df6c07d +# SKIP-SINGLE 7f5f60d54340aa0b36f22057fd3f2665fbcd5d67 +# SKIP-SINGLE a214a29e48397cf259327e1ffb44479648301e47 +# SKIP-SINGLE 5411beae0225937446eb8509c56277b120a2eb92 +# SKIP-SINGLE ba51c31b47a62e6815d8cb2cb34ecd642a677105 +# SKIP-SINGLE 10adad440b2eb3b09d9d4e876023dd13d8b3dab9 +# SKIP-SINGLE 6a3624eecbc0a116b293d05e044b8b40a86022e9 +# SKIP-SINGLE 44023f3db21c0365ceeb179657447d7cdb1feb8f +# SKIP-SINGLE ba2bbea816ac5a20fa3090b634a17ed0d4a1c2ca +# SKIP-SINGLE 9650e5a1a90768953ce9f3eef014616180bfed8e +# SKIP-SINGLE 831f5e606125c48f783daee9643d101b7fad665f +# SKIP-SINGLE f0b1519fbd0fea728238758d6bec074c32be1142 +# SKIP-SINGLE ea421cfefef6826dd99a9cc884b46178b2c0e1a8 +# SKIP-SINGLE d4a5aba954c838b32317560dd84e6681578b0e32 +# SKIP-SINGLE d2d229043674c59dead9a58a9ae20f8e62427fc1 +# SKIP-SINGLE 4fc8524df0e2ce0579d6bc298dc07d1e442587c6 +# SKIP-SINGLE 0c94e69fa6ed5a4f5d551f37f7f2632d2f2b2952 +# SKIP-SINGLE 960aa0c7985f6c61a26f99653c6e9ae9369e944e +# SKIP-SINGLE c039822082983d6618b6e06c73a31cf6b63467cc +# SKIP-SINGLE a421c277237ab6b5923473f6dbb9c196b16bc833 +# SKIP-SINGLE d901221e2bb2168cd1f05e3b2355e078c45f1f42 +# SKIP-SINGLE 954eb9b4a0b9d616db9646f081d11b2c6dd19581 +# SKIP-SINGLE 8ef0a1814eca5dc7f32e2784b3fa61498d220a70 +# SKIP-SINGLE 99258421bbb123e6f277610dcf94e022dde3a5c0 +# SKIP-SINGLE d0e6a276643b2590eebf81e305b006c768653b10 +# SKIP-SINGLE 0bf55d3a8131da02999fe694caf34096d7408952 +# SKIP-SINGLE 71b363e2b3c709e64f8ef8ab7446cc3a19573eeb +# SKIP-SINGLE 23874aee8825a6f670b6c2da9eca2d9cf643b3af +# SKIP-SINGLE 4fe02acb6b0556c4b17c7a8e01f41698f5109512 +# SKIP-SINGLE 95eb82644d348c59af9f4ec10ad315bf5e498353 +# SKIP-SINGLE eae7f30a9a338b5713d7808c9f791e1a7f79b3cf +# SKIP-SINGLE 630fcab4fcfa9afab4688d803892d76cf6f46961 +# SKIP-SINGLE 37989f9431bc32f7ebac76cfc02f5e1d03486bcf +# SKIP-SINGLE e97826ab845597fe09be43b2df888e96c7502bee +# SKIP-SINGLE 0c60b3bae71a010e6abdcfd4d8d38b92c7874609 +# SKIP-SINGLE ab5611c25b92ca06238de3d0ae53226176c2ae0d +# SKIP-SINGLE 407f5aac70f1481dfb365db7ba2e435f439498d0 +# SKIP-SINGLE 3681402bf163a3b5a7b7642f553e87693028649e +# SKIP-SINGLE 16fe8a4678d20eac893bd05941071396b67bc84d +# SKIP-SINGLE a99a3fbc40076aa3965feb759e816a8a25621c6a +# SKIP-SINGLE 42b08f8a9ada7791c992894e88f648909e1ecc95 +# SKIP-SINGLE 41bfb91f5db878d139d5c0c631c569475018a7c2 +# SKIP-SINGLE 77c9236957a195a4ad0f50e8f19653a5c6918c8e +# SKIP-SINGLE 41e5c9400cd9eeeecff2262907c09c3b10a5cde7 +# SKIP-SINGLE 3850be836ec7223c895901dd21f2a4e429314b94 +# SKIP-SINGLE 065dd0b5c6a7e11e79fe5ec02b153bb53bde0e77 +# SKIP-SINGLE 207b15147366be47d58c40a6f03888243602b11e +# SKIP-SINGLE 6a546e63d0134861b208ab1bac259f71fcb30b83 +# SKIP-SINGLE f6b58e8016c7ce7b332a3b2a8a56bd2f9987d95a +# SKIP-SINGLE ab3f36fac2da2979713109561f086d95bb26d580 +# SKIP-SINGLE 437c75cfcda4a0e9fd387d22aa8c0177c835c66b +# SKIP-SINGLE 13f3b52fa422bed85fd7d50b43a167bb011e9070 +# SKIP-SINGLE f7c52087b2a836ab8913b7718ad37230a2895ef3 +# SKIP-SINGLE 3d0a3a51b8f1635ec872fc3f0a54c2d58ba48b4e +# SKIP-SINGLE 76fcc2a69a96a7ab68b82ebc96c234dd58ef7e61 +# SKIP-SINGLE a82f1929fef5072a4b04e326b467cca8a8a21c0e +# SKIP-SINGLE 4bb671f1c6adb6cbdcf90abe73967c24e5296372 +# SKIP-SINGLE 11b34169f802908348e99d0a52b9c50a64028964 +# SKIP-SINGLE b91cbf80aeb4487ad3e1fa0e64e3cb5549ec663c +# SKIP-SINGLE 787444c7690d97d8702db059cb51ac506cb8a5e4 +# SKIP-SINGLE a1fd3d6eacaf425eadd121dcacee95a26f96505f +# SKIP-SINGLE 0f526028b1830e72df1c39220c5efdc7e545885b +# SKIP-SINGLE 9b44051ea530247e73dbc0bdc2998d2dbf9688c1 +# SKIP-SINGLE 6317f9e7b847f83e6a6d0f9ce9233a0566d84f0c +# SKIP-SINGLE 0f59ce58fc558643f97175a32f2a82cc209f2bb4 +# SKIP-SINGLE 06fc663f519eefb431912ebdae8711ed016e0703 +# SKIP-SINGLE f59a96f5655c0ac2846a06cbad11ef3039476fb0 +# SKIP-SINGLE d8f3f8736c7d36b220a478f98deae9f82f25a4f7 +# SKIP-SINGLE 8b8b8539d7415f1decde46d088c89c2fc69b1010 +# SKIP-SINGLE 4320307843b44fa049ba7e8217f0349932ff56e5 +# SKIP-SINGLE 0cf4a9fdfc63577c97ff0d0e46f49cd685c5291f +# SKIP-SINGLE fd42b6c696564cdb44999f6d4d3f91a63799191a +# SKIP-SINGLE 009089f0d69a26e9779628e5b9c1d139eddf20d2 +# SKIP-SINGLE 7c9a3556e3d66c1ebe75f675341117bb28041da8 +# SKIP-SINGLE 37a04737218281fecf7b4e8b9a58839e25f02815 +# SKIP-SINGLE 3bc77cca86fbed8c12fb6c10c51e1237d65c9143 +# SKIP-SINGLE 13816f14b2f459a97d309f202f218282888e9bc9 +# SKIP-SINGLE e1128305102bab268272770b4a77361dcd9efb5d +# SKIP-SINGLE 942702f506de1c7c3eff4e13470248be1a26e778 +# SKIP-SINGLE 00c493f01703f619a62e08bea17a49ce12f2367b +# SKIP-SINGLE c9f367950652a3728cc94c7a7faf0aa55c2aae9f +# SKIP-SINGLE c33c2ef5119a3e1ba9c97ca03e001916f83d09f9 +# SKIP-SINGLE d5ffb4949044ae58fb418b1b214cc7c6eb16a29c +# SKIP-SINGLE f9ea53442e6f492f1543a5e21479e72be8eff4c3 +# SKIP-SINGLE aee75b87719abfaed605e33ed0c9e3a9a81417d8 +# SKIP-SINGLE 76dd30a98590f2266290a70f2e3d4d272c092310 +# SKIP-SINGLE e176d04d45adbb51f6bfa0b5a0352927056f3519 +# SKIP-SINGLE 26aeca29801a8e8950141d9d54aeb9a22ee6c5ad +# SKIP-SINGLE 2ee2c67736cd76a52a2eb1002d0ec15e883082e0 +# SKIP-SINGLE 105e7180230dc22db91af2c8cbfa6fc3d2fee7e6 +# SKIP-SINGLE 3ed524c908d4aefd174ae6a8adc2bdaabb4bc4da +# SKIP-SINGLE c47892201b2b9f1ef903ff2a12bb9ed9e64d19de +# SKIP-SINGLE 6d230fc2c04532b4abf2474411b2995c237d5cc8 +# SKIP-SINGLE ce4375f57f9b89d68fb639590f3e4a0a28e3a627 +# SKIP-SINGLE 6a34ff5d9c13688a7264b2654f04982c5a3cfc6b +# SKIP-SINGLE ec00ef8d48afaef65527c02ea013ba4489ed279d +# SKIP-SINGLE eca71dd5c7a8b7013eb20e1457eddf62776e6c29 +# SKIP-SINGLE 6761e69a2bce255bbd78e08b5c592f4de19253f5 +# SKIP-SINGLE 93aeb781e1da3cab6ae90c90cd3668862155ab85 +# SKIP-SINGLE f97c03ebca440229ff953baee9e458a3ddcdaa70 +# SKIP-SINGLE 33d8b736b0330f51050ca1fc389527d708b1eb23 +# SKIP-SINGLE d392276b63cd0d9eb16f0e624bd8da9737cc66cb +# SKIP-SINGLE 9f15b4c3ca98e6af3dfe61f70d0043ae896167ac +# SKIP-SINGLE 9ee6b685a338cd06d4b053e39f3e2da505d20612 +# SKIP-SINGLE 809bd5aa34727151bdf40230e2fbc3151760466b +# SKIP-SINGLE a2ed435e3aa18c0e6d4997cbb9a81426c952a622 +# SKIP-SINGLE 5c188552341204daf53f0ae2aa4e0c73ec4feb1e +# SKIP-SINGLE bf91dd23fb7dd37650dfdb218358c8bac659c5a6 +# SKIP-SINGLE 03d2dda12f9e5d877edd15e31d6076361ccbd75a +# SKIP-SINGLE fb41165adf7c6a354876a26fd7a6cc686f3fe142 +# SKIP-SINGLE fb309c14f0f5075cd649c083abf2a0713b949030 +# SKIP-SINGLE 5eb8d3dba14d94386f42dbb8fcdd28a98d10ac64 +# SKIP-SINGLE d6ae5369b0682ada2e7d801a3cc54f671ed03bf3 +# SKIP-SINGLE 0720354082858f59db9f70ada33efc424126d668 +# SKIP-SINGLE 0f68de830acb5eef41307efc119f3f16fdb35ab3 +# SKIP-SINGLE a18e54f54bdcd5d9b2c11b0307b0a157f52e5926 +# SKIP-SINGLE e0e0b92c1d3fe39085731db04bacd9def31f3940 +# SKIP-SINGLE 515644edc0ed2e73198f4c4eeb822715b2589dc9 +# SKIP-SINGLE 0b9bec6863e138efee77c2948c355b53951e6d18 +# SKIP-SINGLE 283b0db31c87a8bed736a8459ab16ae066ceb024 +# SKIP-SINGLE 10c6303d242ce8f01f38e78da71d01c7a379e651 +# SKIP-SINGLE 96bca89e5b03b6d5ab7ac8bda8216adfc1911205 +# SKIP-SINGLE 475b4768c856c0a25ee236faf0c30b39d5cd804a +# SKIP-SINGLE 67ac8603eaa5618622d746f4097a0ba6ca2f76b3 +# SKIP-SINGLE 45158ed98b345145eb3e9f8c27b0591433465ff1 +# SKIP-SINGLE cf72d9de0f46960d260e3f5eba843ff01f30eff0 +# SKIP-SINGLE face460c41f59b5097748159ce64a5a09b277dc7 +# SKIP-SINGLE 59f7b155119b5718b83f0bac7409dd597002c89b +# SKIP-SINGLE 1d3c0d1716eb2025c1dd2e07195b55bb5781fdd3 +# SKIP-SINGLE adac6fa11a95b5c3dd5ae5766b1539687d5931f5 +# SKIP-SINGLE 4847522fd4030af7ddb92b789545bc4e253524ee +# SKIP-SINGLE 96e2863f2e85bc907e5fc0cb7d86e0b6ff54317a +# SKIP-SINGLE 8d08a8a1070435e12b77517808df34a8093abc67 +# SKIP-SINGLE 7ba9a4c895b61d5c12118a18cb337f621bea4442 +# SKIP-SINGLE 922c4128034149abb130c6a9a06efa72659ffaf3 +# SKIP-SINGLE e4684a2f9d07ca6ad836028514dda8e3e6643bf8 +# SKIP-SINGLE eab243d22203e0aa56576b00568a93f18e8196cd +# SKIP-SINGLE 50604ff3872a46baec8578b35db92d9892a35396 +# SKIP-SINGLE 63a1f317d05c8eed256251e7952e621a37b5cf7b +# SKIP-SINGLE f24c0c7111d9a11921c057eb8d77ca4287294c0d +# SKIP-SINGLE 689bb582623450826a9e2cdcc2aa63aaa6ab5764 +# SKIP-SINGLE aadb83da748c6befaabab0583fd38bac7fb094ba +# SKIP-SINGLE 661567b7cd8092e1b41346b77e97201ea4d2efc2 +# SKIP-SINGLE f0e83548ee9d08a558363f73d6ec8e6f30e1cab0 +# SKIP-SINGLE 1a4aa391eea22fc053aa40c1827c7726de5fa7ac +# SKIP-SINGLE 3b58bac273b517844210c9ecd07757625dc9804d +# SKIP-SINGLE 26db0a032640a107bb0155b2f1eb7a586dbd8985 +# SKIP-SINGLE c6d819ecb5dafddb7b4dffa4c84f5264a3061d53 +# SKIP-SINGLE a90803a4d1bc47fcfc3b9a3af519cd8441bd92de +# SKIP-SINGLE ca907fe89b16d59b067669f1c43af3eace1509ea +# SKIP-SINGLE cae7d6cd58868916bcec34d9572736e7541b9710 +# SKIP-SINGLE 6bbbf3fd829f5000acb63536b5019b5be62d3e66 +# SKIP-SINGLE 01334409d6b03ef101bfd5cc8f5589220fa16483 +# SKIP-SINGLE f69a2b851d80602a158f8878811a63b219eb7fc4 +# SKIP-SINGLE 4a00e47d4d75528ec69291c03615bd669c58ed7e +# SKIP-SINGLE 4a526ab48d10a26c9f58bde504023dd83017b088 +# SKIP-SINGLE 4cc1374786dcc28b80da546e708f7360f102abd4 +# SKIP-SINGLE f8a454f3efa10d59b8228b5c1373bfc9fb8ed718 +# SKIP-SINGLE 63078fb5af152934c5aa5facc5afd7f8e1907ade +# SKIP-SINGLE 0cbe9c204e938977fef12dd4cc47d43a702ebfa9 +# SKIP-SINGLE 0ae14c17a24545dacf8ed309b2a75f8f1ed7da5c +# SKIP-SINGLE 65c0d931f79672e15c6dfd633b619eabfbe9183a +# SKIP-SINGLE 1f91b8c6eedc12fce03e76ebf8b9c039c5a0a0b4 +# SKIP-SINGLE abac70f198fc6502e3b4d81f9d9590e9d7432378 +# SKIP-SINGLE 9ff098615f92cf9fe4aa0f1c6835dbf9198daa6c +# SKIP-SINGLE d19bb4861553fe82b86ef09db6cb6b1fe1eae829 +# SKIP-SINGLE b8127e988e2af662bdcd7cf25d281469a5142df6 +# SKIP-SINGLE bf253dd2e9e41a14b813692828ffc43ed24391ae +# SKIP-SINGLE de1f89c202427a8bcb783f0b44fd02326b320a65 +# SKIP-SINGLE 734eb8f940c197e4b3548e7b79d716203e37aa8d +# SKIP-SINGLE 8f1670b40fc9a779303207710a913b769170e82a +# SKIP-SINGLE 9da698575addc4b9c007d7d6c1590bc5ac245bdc +# SKIP-SINGLE 7d3da0a37edd57f6a31dff4864bcf1753de48698 +# SKIP-SINGLE 5630ebaf74f2f86e5d59fe4cba5ba96333e9fa6f +# SKIP-SINGLE 9c31066ccdd6dbc7e9bd7a9a56de5c3103841018 +# SKIP-SINGLE bb25117eb40a08824142a5a56acc14d3fb4c89a4 +# SKIP-SINGLE 82a018e0622221910a7a02f683601c9f8c569cb1 +# SKIP-SINGLE d66d6ec5138049b98d99c4dcdd2c78582a6afe0f +# SKIP-SINGLE d9db77704026ab0871325d431cae765981d167c2 +# SKIP-SINGLE c0ac7d039fb003444769700d60d06538341ba884 +# SKIP-SINGLE 8f3af3f61f43f2090bef30edbb9f8ae1a36c2e5d +# SKIP-SINGLE bdea0f62b55e986136f5677369f354e4f5849863 +# SKIP-SINGLE 414a2b5bbc6ce441a8102254c593699e503d4f57 +# SKIP-SINGLE 89abc8d66f7668060305e9f0e5dc3ebfddfff3fa +# SKIP-SINGLE 9b5f8ebb5bb970c34400b149190b2d16886ae814 +# SKIP-SINGLE 59d53e1fde516b911c29cedf338779df29f59dff +# SKIP-SINGLE 84caa1a404cb89a6f02aa1cb517f5251e7e0e022 +# SKIP-SINGLE 6eb77feeee2d85cca1d6695f809072c357875ba8 +# SKIP-SINGLE eaade31040503efdce5c0daccd4c06f856d3fe2f +# SKIP-SINGLE d9670ef135893c41d33e5bd12c69659bb5d6158f +# SKIP-SINGLE e3ed0208a8ce25ed1d6c82e7e5bb3058d074afc5 +# SKIP-SINGLE 86a22004c9bdd1e93aac773cfda1932061f3b724 +# SKIP-SINGLE 6e205873992a2f8eeaecb30adf56346481a2c192 +# SKIP-SINGLE 772357698a226cdbf123d04d58573b79fd8814a2 +# SKIP-SINGLE c8d745d10a45ca3f378d7434f1cff73ae02ba42d +# SKIP-SINGLE b45122b7132bb4b7e41fff5434e669e4ca671b8c +# SKIP-SINGLE fcab7f72e1765b883537a0ae2c3a82a802539375 +# SKIP-SINGLE a49be9dba96575b68f0657c21eebcfbb56463021 +# SKIP-SINGLE 4c33696014d28975bce559a333c845fffc695428 +# SKIP-SINGLE 4a0adfec2a1caabca3bf99881f98f24ad12216f9 +# SKIP-SINGLE be1b64bdb515d8328228138982850475d15a0feb +# SKIP-SINGLE c6be6fd6ccca9b9af1d9c5916d3da39f965e0ec5 +# SKIP-SINGLE 5976919a3325c4512e450b9649a510f05e7d4fcd +# SKIP-SINGLE 0a014a386200532d92974d255b0b3f6b33d07a22 +# SKIP-SINGLE 82778374fef72583ac7c64f96187f56b1641ddea +# SKIP-SINGLE 10d7284a2a1e8a543b31e5c99c2fc0c26c8eb681 +# SKIP-SINGLE baf16746960ad5f7baaf21b44feff9c8f3a4fc29 +# SKIP-SINGLE 2fb2862facf3eb70897a2e5ba342971ce696bc5d +# SKIP-SINGLE bbf8b1df90f327a74423b2ccbfe557da9b04dd9d +# SKIP-SINGLE d87d9e41f5890fbe7d279053c9c7328890c94b2f +# SKIP-SINGLE 89172ac4376403b987bad897cdcfd22f9e5d97c8 +# SKIP-SINGLE c31b471cadcb9b8171de04b09a044bb775682a3a +# SKIP-SINGLE 4088e467b3be3fcf6a1813bc74de7c4d3c193f1f +# SKIP-SINGLE 8124ddf387451ec95ee4f8e0f726ab234bd8b762 +# SKIP-SINGLE 2cd60cb592930d985565612e0f22766b98fcf341 +# SKIP-SINGLE 403a7e59d5c79d81ee018fd9e648a2af744211c1 +# SKIP-SINGLE a8d358ed231b7656be50b034484b498b0b222445 +# SKIP-SINGLE 9709ff1436d547664e6b3ca252cd37665467b4de +# SKIP-SINGLE bd3cd579cb43ace253e245a7026b172f216f3a1f +# SKIP-SINGLE a317620a52746ea4346eabf4559a1caac2b63011 +# SKIP-SINGLE 47b22e55141da090a3d4688851eaa808f9489078 +# SKIP-SINGLE 69cbf2b2f304f82c6d77cd663d4211bf125ebe74 +# SKIP-SINGLE 83a146b24ec230539c4520a4315b8bcdeebdb434 +# SKIP-SINGLE 17ecb1c728edebd00a787fd6c4bdf8b7722e9a2f +# SKIP-SINGLE aba160b043588171eac8235105d45b30a7f141f5 +# SKIP-SINGLE 05b733e86c108bdacd3ff45d05d560d7b8778a9b +# SKIP-SINGLE ca28d5fd72d3cc7e960f4f2bd1d8cf00ac3622dd +# SKIP-SINGLE 6d1c453726cf8a903c6bc555bacf20b7a4ac8651 +# SKIP-SINGLE 747c6a0dc8e53d66c785500d122957f4a17a9325 +# SKIP-SINGLE 351576f913ded76fc2e984c3ad42d47c5c5bc482 +# SKIP-SINGLE 94cae7b2bc02f49f238496ae4c386bcb9cafaeea +# SKIP-SINGLE bbde29c012868e130388d9975beded563643a7a7 +# SKIP-SINGLE 33ce5fe9da02f0d0f4e0c32b86dde5c5e81c9565 +# SKIP-SINGLE c74f30c8e0f1799ebca7eb144c56506a53290243 +# SKIP-SINGLE d7173579a7e9a0f71ccd02fdc9f694b49aadbd47 +# SKIP-SINGLE 7abf1ca1212d91d0d50d3dd4f6386fac98fd2209 +# SKIP-SINGLE b7d1b2e9462e8d81ec44c41d82d1b840ebc831f0 +# SKIP-SINGLE cb2e6461f3db45df70334016b2a8411605eb847f +# SKIP-SINGLE 6963deed24b13b448835be0d72d9b943ae2a345f +# SKIP-SINGLE e4b32e3c572ef0786d2e6215ceeffb21d6046177 +# SKIP-SINGLE deeae4c415166eb144d008f0e904ffa70034c146 +# SKIP-SINGLE 634f71a2238b9e29d6bcab196092edfef19ebaef +# SKIP-SINGLE e39f5e5c806dc0f7ee0f3520993ba061af7cb040 +# SKIP-SINGLE 03045e2e73eba5578218e09127055ab07a7c398b +# SKIP-SINGLE c158b52ea421b4ea49adb79c445b712d18ad8273 +# SKIP-SINGLE 89c144b83077aea584e9bbbf04e1d786220aec4c +# SKIP-SINGLE d6d5062bbae5ee708a0b80ad9b5f400320239fcc +# SKIP-SINGLE 7edbb163b322072da6666240a698b5dc5fc6aaef +# SKIP-SINGLE 77e80ae0136d1d79c0ee33b9780445aa6498664d +# SKIP-SINGLE 6a69e49f01fdd025912e2d4397ebe2f51e3f188d +# SKIP-SINGLE 59035c17d08f0999ba96c74d1763eedb0347d11e +# SKIP-SINGLE 24dcbf47d826f46821ed484f93ffb89d306a0b2d +# SKIP-SINGLE 63ecf01d0b0897b948296eaaffd690290d536b72 +# SKIP-SINGLE b9f37a2a09ac6bcef1a03cc49489f15ff01a74b7 +# SKIP-SINGLE c702e25a7a9e1ba2b75942dcc00402947757786d +# SKIP-SINGLE 5f1039630dc8bf63f65df5c7882246f267d01295 +# SKIP-SINGLE b32900474fb5e4afdfd0c0015f6b08d58b5e7847 +# SKIP-SINGLE a8517ba3ceb21f3fb5c452226d5ca6a3981ae852 +# SKIP-SINGLE a70e54f6f7a6e711bcc49fce4e117d9c3e9d71a1 +# SKIP-SINGLE a2b9d58b2e2f56679b33995e2d86b0624c0b1905 +# SKIP-SINGLE 5adfe6520b5a3ff2e3bacc603487c4f12e54dfc7 +# SKIP-SINGLE ef6c633b9d5532d8888535a43ec8abc7de0a34f7 +# SKIP-SINGLE 1b9b19ebf911a959948de513afe3f639e23f346a +# SKIP-SINGLE 4c6272373d4e5a6fbb8668f4980bbafbdc28405e +# SKIP-SINGLE f74ab3e9ef7a5a63efdb4a7e0bca0c9cc71bf575 +# SKIP-SINGLE 038f46c2526fcc3643a74a6c3e9fda40691f4067 +# SKIP-SINGLE fca675dae325a974c625893fb0ad1aa88abeab8f +# SKIP-SINGLE 59a428ed6ccd7ee41e847b1d63889845fae7ebd5 +# SKIP-SINGLE 314f9fcf6cb8a6f513022a40ee384ff0e4ca513a +# SKIP-SINGLE 555450c7b1b1c02126bd9fc86486090fe2b829b5 +# SKIP-SINGLE 06ad74581385cd1930a073b2fda314230b254608 +# SKIP-SINGLE 17259826f263f87d45eb98c8effe0ba7ee774f5d +# SKIP-SINGLE 4814c6b1184a2b3fe673c5389ce0a8d2c67aec09 +# SKIP-SINGLE ac47ef773e0cf734a3e3e4237aca50704a0a68be +# SKIP-SINGLE 29fcb6ca1280fc01c652dcecc331b20cd88a5729 +# SKIP-SINGLE 37a794ce21aa52180c3b5037c3825efee91ee7a0 +# SKIP-SINGLE 3d9d7b34511bc3601efa2ab4ad24d62c73b80cc0 +# SKIP-SINGLE 2b51859d447cf2914cb64936f18231363d971b21 +# SKIP-SINGLE 82eb75bd542ddc97b94a21bab25387f34c86f54a +# SKIP-SINGLE 9913638cc596a018c7d687652a3abb61325dc4f1 +# SKIP-SINGLE ff7093d74b51f094b65314e3567fc96a3a37ffdf +# SKIP-SINGLE c05d414844f6e1e0af05ef0cbcabe3313f5089d0 +# SKIP-SINGLE 43172dd01fc7344f71f6e1d92fe051942f360355 +# SKIP-SINGLE 5d6e42e013caf236f5f1c7a8bca6d76916bb404a +# SKIP-SINGLE 7e92976bc7973a4b4be0719b06d3751e57ad80ea +# SKIP-SINGLE 6d4d9225afcca63f36b318b11be945146007b00e +# SKIP-SINGLE 2f559c267806f8524d43bc46c5814c69074b0b0a +# SKIP-SINGLE f23894516ac731bc858158c3e7198db8aa54bfb6 +# SKIP-SINGLE 41f1fd53c830666c1274a602ca48c433da2425d6 +# SKIP-SINGLE 6cd45fbf37bd344c87b83424ecaccc8119c30dad +# SKIP-SINGLE d88d35ffed6c1073a0695ba1e980cb8ea7f09c3a +# SKIP-SINGLE 17cf659fdfab02d7c5008d4a4b1df11f93b4764d +# SKIP-SINGLE 6ac6e5b4752a596436b35419e7ca111b04f35d95 +# SKIP-SINGLE 3f841a942b22c4b6b140654d3d8de535b08b672a +# SKIP-SINGLE e672990d882ce53167b22969eec6b32e96503573 +# SKIP-SINGLE 211db146a2f475047b38b010ea55c27c08701114 +# SKIP-SINGLE 6df64d170a93970fd57932980fceed6bf1853ccb +# SKIP-SINGLE 94c542da1ac13fc6052d02fc7b960176c09bbaa8 +# SKIP-SINGLE 895bb4c9112c715a1bfa66d9af0d945f4719db55 +# SKIP-SINGLE b9b5cf4196e7a5368c5e36c0c5e0364b5d3e15b3 +# SKIP-SINGLE 999e625bc94d08eadf92d42d5bb0fd6f6d35c268 +# SKIP-SINGLE bfc298ca31d11c09d49d792a88a9f72415bb4513 +# SKIP-SINGLE 76021e1e06c5c1af05b658310505da333bc0c214 +# SKIP-SINGLE 90425b6d4b314f8f4c26cbf61ec24fdffec4c0f7 +# SKIP-SINGLE a102f471b3973d46d6954bc31c6170ddffd508da +# SKIP-SINGLE c698ac791b3755c340ff945c137f6732cd4e20e4 +# SKIP-SINGLE a2b1795b96b5ac5981220b1056f6ea222bc193f5 +# SKIP-SINGLE a2257a531d0cd4c1d2bbfe374f490fa956be0330 +# SKIP-SINGLE 3b696d1cdcc79505313b2f087fbf742e503a1998 +# SKIP-SINGLE 4c03c46946d95a7e9079a087b5e0e835f5a5beac +# SKIP-SINGLE e3163f1d4cec335b5941c9bea267fe161c5ab83d +# SKIP-SINGLE dc52036074c46d1772557436cda2866b346b4d16 +# SKIP-SINGLE 9413488ab4e8752a2fe88ce9f42ca83ffbe5f1a8 +# SKIP-SINGLE ad5488cad62b04ff1ae28cbbe2a0dcb2af817f27 +# SKIP-SINGLE cf0053a66a8055e05e9842c41f60c2130f4dd642 +# SKIP-SINGLE ed2d884872ab18e38ac7d8ba17e1d3a3446029e8 +# SKIP-SINGLE d34eb7a39f15524dd13681864be14f85d15b4a0b +# SKIP-SINGLE 620794aa93107115b52f3622c7b6934ebc3fc8ac +# SKIP-SINGLE 5e06f2fc31a12012d73ef741715a68e47f0c3a09 +# SKIP-SINGLE 8bf2e4e282ff3c0661ebea70e574cce16bdcc356 +# SKIP-SINGLE 5ebc3fc47cfefb9f6726e9308f153c0df6941c12 +# SKIP-SINGLE 79d4b6915c0dc3e27ca18353bf53ceb31a14ded2 +# SKIP-SINGLE 20d42249ce8d7fad1e377621e717b238df3a4b05 +# SKIP-SINGLE 4d7a51eba2c780d10a0b0dac33936c178c677f50 +# SKIP-SINGLE 70a7c65742244403422d7c3e4b79a2046c1cefb7 +# SKIP-SINGLE c8a0b81f8ffe093910dd3ad2852dd47a15587d9e +# SKIP-SINGLE 6f6362207f7d39b5fb10b2968d238e37848a5a9d +# SKIP-SINGLE eb6ac423aa21a50d86056fdda4b2bd58278dbef4 +# SKIP-SINGLE 6a65498228c80a6cafc514dee7092b64e9bb84c4 +# SKIP-SINGLE b6540a8ef5b2725812760f5a9a5cdaef591cb5b4 +# SKIP-SINGLE 765e57e2d25d34280b25b925dd8ede4cbfd39020 +# SKIP-SINGLE f5ab0db4b03c497112fdcde3b8b270c3fa14a3c3 +# SKIP-SINGLE 7cd401f63db705acb8ede6624c293843b41e7e20 +# SKIP-SINGLE 941937d295dce322e00a1d77b61041e6bda5cfd8 +# SKIP-SINGLE 52089993aa3231ccdfd0469aeb7c3e7b6b89edad +# SKIP-SINGLE f4603ab67438ec1a31b35918608dc4db410be9c5 +# SKIP-SINGLE 311c278c5bb26291fbe6d2e28130c43a08dce096 +# SKIP-SINGLE c4d723e865e86a83cf87d4cc42e7dbca799dc4ff +# SKIP-SINGLE bdcd8dd9fe4a9926a0dbc46ee1180ef53a91bf17 +# SKIP-SINGLE 24fe275711aa0964051f3b95c9bc9b4a3e524826 +# SKIP-SINGLE 281d3a7aadefb673917bc585224c9bf7dae449e6 +# SKIP-SINGLE 291531a7e46edcf52f49e193114e818c111d7af6 +# SKIP-SINGLE fd6c673cfa76b30d3910963982e2c28ca208e827 +# SKIP-SINGLE 15e31a4a1fa359cfabda074903fce79f4982245b +# SKIP-SINGLE 916a87f0a9748b4c31f20496fff3223553f5226e +# SKIP-SINGLE d73dd4c12c92db4419df1b96b1562c5c821bf877 +# SKIP-SINGLE ac036532599bdd49ab3bdd36437a06a12224a620 +# SKIP-SINGLE b72d1c5b157214bc8feb4e6364ba624f9feae271 +# SKIP-SINGLE 4ed657604d669b4ba05a9280734c5f006939cdab +# SKIP-SINGLE 92fc5baf17ccd0999f631d469708523de50ac06e +# SKIP-SINGLE b30bbf030bacdb0b66c0296d1368db7b4c07558c +# SKIP-SINGLE 643771818e36a8448744f061184cb3411b13291e +# SKIP-SINGLE af51e6556daaa4e847209f79ac9dbc1a3ecc8836 +# SKIP-SINGLE 757a95906805b1d7fcbe4b536841a7b53ce0c047 +# SKIP-SINGLE ab69bb63641d12f8a53a262f37908d8234935e13 +# SKIP-SINGLE b6288d1322ec476c156c165496d08e8f782bcb03 +# SKIP-SINGLE 74635dafacb9ebb640a4a69108dabdd897c2498f +# SKIP-SINGLE 29e17e08b395db8e08e4c91a543750f8021376e8 +# SKIP-SINGLE 0c33a8ff4bd20fcb5f2d4d2a27907c77804f4e42 +# SKIP-SINGLE b6e7df0926b1a569a582b0d3ff0da0c27ad368bd +# SKIP-SINGLE bb8f8f5cfa0f66729c6c6a333bee5bd4ba16c24c +# SKIP-SINGLE 7dc99d5d51fcadafcd7e38f169ef8b353db61e81 +# SKIP-SINGLE bdadeff503d1796758a498dee218751520bb0cf8 +# SKIP-SINGLE 128cc4a2f401e96936e9e5791e65fbdc35ace6b2 +# SKIP-SINGLE 3e18100038a0514b1ea6bee01a141f1477fdfbf6 +# SKIP-SINGLE 5992502ca42263855e327239eeb7f51b59a2703d +# SKIP-SINGLE f63e1740edac418c2ab88d72e1ee56cecfec038a +# SKIP-SINGLE 5dda07d22c8d974b31e196a802414c267fac5cc9 +# SKIP-SINGLE 9901f47ef77e777ebe0183624024527ce691256d +# SKIP-SINGLE e65d2f364cf40891d15009e9764143a45c2d164c +# SKIP-SINGLE b9c228438d34b15ae2804a563d4d52b5e0de62ad +# SKIP-SINGLE 9273afa89034783aa26d4f5bb43cf22afce57e74 +# SKIP-SINGLE df59970cc41cee834f2432a18a098ec7de16f7ae +# SKIP-SINGLE a42d67628942244b0cb90276c4e0ec77e967c0bc +# SKIP-SINGLE 26da67d10b93e2997679e27b56a072e4767102c2 +# SKIP-SINGLE e1757517c33d9c6428ecab8bc277aea14ec0c96f +# SKIP-SINGLE 7720dceba1079151c37aa0a3117ac22dac45a119 +# SKIP-SINGLE b670b2d8be07dd47274e4e771437b6c4e8649d66 +# SKIP-SINGLE 39e224ba18485d7da68d13579c74afb2cc86f382 +# SKIP-SINGLE a5e428a638718223b0ab667382a8493a135db0ca +# SKIP-SINGLE b3dc6e8f06892869e0dcf39fd226b63752ce6cf9 +# SKIP-SINGLE f46bfdf3234548f664824b7c96838d3f918950d7 +# SKIP-SINGLE 6465002b8a51d065a662cb589e8e1cf0a78ad160 +# SKIP-SINGLE dba7034ea10fb394b0dcf91256b7df094218119f +# SKIP-SINGLE 63bcc81d1df8524b20dab1fd45b2cba4d822a786 +# SKIP-SINGLE c77ad1866d0e559db41118ad5a2c306c81fa3c21 +# SKIP-SINGLE 318c4772af4fa04fd8dc498bdc252b691b3cdab5 +# SKIP-SINGLE bebe5a9791f7db3f088e0c07b2fd68e1d21bb161 +# SKIP-SINGLE 79f7d40fa850806450621f2fa4c73974399bd7f9 +# SKIP-SINGLE 1b72dad74f2e193e8da8de58ef8c46341897269a +# SKIP-SINGLE 8b22849a5cef3e81e8b81cf7f32c186471607e06 +# SKIP-SINGLE 868b6b454ea75361a706ab57b45b6a49b124231d +# SKIP-SINGLE a2cf65d2030c7856d029e43fec378efe42934400 +# SKIP-SINGLE 976357769fe33e36afb37d5cd663587f46e88d0e +# SKIP-SINGLE 759a15d446b7f728d2d146cb1bfd6d722df9e998 +# SKIP-SINGLE 7726cb254503c2c3d082ffb8aed9c12cbeeec12e +# SKIP-SINGLE e25cf441152746a4686ab7adca8d3302e0740189 +# SKIP-SINGLE 6e1e1bdc2c6ee45ac12283f8e8096723d60d93a1 +# SKIP-SINGLE d025ce26f849ae8429f5250eeaf6f4915befe804 +# SKIP-SINGLE 80826b8220c6f26609ce916ceee3a0bd143a1b41 +# SKIP-SINGLE 8da012e224276e42c15d613c0aac3ce3e1a3d939 +# SKIP-SINGLE 13651c52ca6c90265fe568a62db1f81152cfbfa7 +# SKIP-SINGLE 231c71706b3b5eec8038986f54198a8983ae83c0 +# SKIP-SINGLE 45a4510738a0878267fca5fdd687981c70209023 +# SKIP-SINGLE c7341aad72ee4cfca5c989ef982f07fbd14d8837 +# SKIP-SINGLE f78257006c46ac537aba00658b11a75a11bd1fce +# SKIP-SINGLE a556a2ef5b45a25ff5df9a7cf3dc50e1ec46224b +# SKIP-SINGLE fb9711df98be83c357321761d06e902e5410da79 +# SKIP-SINGLE 13811eba32c8d43126e3d137ddcedbdab4dd81c6 +# SKIP-SINGLE c87027e054ec247f3c7b80b2159cfcc633bfab7c +# SKIP-SINGLE 099f9159c4312ad17e51fd3c9571cf525fc01b15 +# SKIP-SINGLE f9723f947a919f70aeb54a9cb6515a4ead3c90d3 +# SKIP-SINGLE 53947aa60b193ec9a34442d4492ddee9ea36ff30 +# SKIP-SINGLE 5aee49d203aeae2dabd1263736c0c6bf799f4f8e +# SKIP-SINGLE 721d1102986ad16bc71dc7a460ad08cbbe3ae979 +# SKIP-SINGLE 15e4c44564829f2eb3a7845ae94e064540ac1a4c +# SKIP-SINGLE 8c149505a08ddec931b54e358f4d43e847920861 +# SKIP-SINGLE af7bfaad6a6efa67cab0855b93ebdd920548a007 +# SKIP-SINGLE 988a5133dc86e28e4b097d2c8d64d25e37bb6c5d +# SKIP-SINGLE 1deb54f5c9c0b4f3c594e4f4aa76b42a67643976 +# SKIP-SINGLE e1d945421522f5b944b35e70cc0a535acc942230 +# SKIP-SINGLE ac297b67bb5fbd4488023ca693a1dc62f012da5d +# SKIP-SINGLE 210a3c0b3ad2a944bfed4e87a5039a9e4e14329a +# SKIP-SINGLE a11dc2c8ad5f4162fbad497ce7a813d9f58837b4 +# SKIP-SINGLE 8f446c06498b0c41e58d9265aa72c4615a220956 +# SKIP-SINGLE 79dc3a717e23cf66d04cf3ec3392bd7635839bd0 +# SKIP-SINGLE 187c1eed6f5e21088c5b9b129c65b3e2fe512d1b +# SKIP-SINGLE d88694315f88baa24d4e0bd40be450218088292b +# SKIP-SINGLE f3fd0293d9112e5e1ad9ad3bfb1e982dcb0d032b +# SKIP-SINGLE d6ab30499153b2d6b9565039714f210930a10f65 +# SKIP-SINGLE 592bfe5a978c949883472e66bd6c00f58808a506 +# SKIP-SINGLE b3d858da8d577449e2ab40572422fdd1bdf8b538 +# SKIP-SINGLE 4da353c6a3900ddacab00d685432fba12099dbd0 +# SKIP-SINGLE 1001af9b847c1c338638ba1aee037dd8451882d0 +# SKIP-SINGLE 87bf022f2f5457febf23c2ce792c549928771bbd +# SKIP-SINGLE 203b6ce9fa148ca05fc2688a8a1a607dc922acd7 +# SKIP-SINGLE edcadf5c440a95c0c6a564d89eb9beac64e229fc +# SKIP-SINGLE 3ee58c64e57cde232a062cb199688b2686488ef1 +# SKIP-SINGLE 5c406adac75e1b007545991fb7f20068bcaa5b22 +# SKIP-SINGLE 7ce2c17a0fbde3203f311c6b91d8bb2ba77adeda +# SKIP-SINGLE 65eb55ff4194c67ede020ceabd7b92e7d2128908 +# SKIP-SINGLE 097f36bc75a6570e64f80451ae4bbe2172d610e0 +# SKIP-SINGLE f867699b23ad012ad71f08f88ecf3e0e8df045da +# SKIP-SINGLE a5803441934b5a128f02169c37e4e00b25b4fc10 +# SKIP-SINGLE 8bfe8ce8d0885e8022b2bea82d1cff9cbed86fb1 +# SKIP-SINGLE 96fc40d7dbdc77efa7b2e01f231bef9e19e96786 +# SKIP-SINGLE efd20b8c4bec0b6edfeb0c415719cb7b230496ba +# SKIP-SINGLE 34d1a15307a4cb1f667e8af6ecca523369c436c1 +# SKIP-SINGLE 1e9bd1df4c1def12750b2ce6dc335c1921a21686 +# SKIP-SINGLE e642113184136a66fee782c3cdec832ec2ba4c0b +# SKIP-SINGLE b8aeb2e35d99e14970d15561fcf161ce78fd2426 +# SKIP-SINGLE 16b2a5471eaa7ae2514398720696b3da12514e84 +# SKIP-SINGLE 5cbb6ad8951e8393c3cd728738214a0c87e149be +# SKIP-SINGLE b3038fa86716edfe9f015c3d0a4c53b9a61c975e +# SKIP-SINGLE 2b56339f75811a670a18439fedd17de932662c78 +# SKIP-SINGLE c43a9d940a9d033f7770f241f920a537167b211b +# SKIP-SINGLE 37381fb9b2cc225d127d8eb7cfc0e42c27cc1413 +# SKIP-SINGLE d234e9bc8ae3c8ea1ecb82970a4fd1fd89850249 +# SKIP-SINGLE 70fc2a742d28697b0bb05c16665f038f6f79c86e +# SKIP-SINGLE 3943db1ab27a29105520bb4e2975e68540e3f055 +# SKIP-SINGLE c6680e15d7c46b9c15358c5bcca4c70b3b2608be +# SKIP-SINGLE 1121416cfde99f0738d0dac63b6fdd2667de2c5e +# SKIP-SINGLE 15b4f9d8786d4ecc9eab81d114f09448de2b9ce9 +# SKIP-SINGLE 68472f45a6a441b1436b5949c0384dd57111077c +# SKIP-SINGLE a80140032be992d170925f274fad215de97d9a50 +# SKIP-SINGLE 7e3d6657e7a952c2eaf9d814ac639613ec81ac1d +# SKIP-SINGLE 7ad90d410813dae9d2fda3c251d14678b8f104d0 +# SKIP-SINGLE a5524504164ed9077984b90ecf5067d1e8bcbdb2 +# SKIP-SINGLE 2a5c81a5c92d15e8db471d16f3a014a338f9c271 +# SKIP-SINGLE 6ce8092a01519acd2afe29a68b11809280677ad7 +# SKIP-SINGLE 28cd3abbdf24660d8c3587ee983037f82058b87c +# SKIP-SINGLE 38a5a36a17578a5e06ab18986ce6dae68938e1be +# SKIP-SINGLE f42b2b0143f5f6e6fd9741b482cd98785feb95da +# SKIP-SINGLE 17807af213da9eb08507d47dff142a1f8672b4e7 +# SKIP-SINGLE bebd14acc1f646c79702fca4f7081df30a49a66c +# SKIP-SINGLE 770e52e7001ccdd309a47cbf8b8c9862bfd44ab5 +# SKIP-SINGLE 2b48e5f979610de9c92df24d7cc6c47b6d8d83da +# SKIP-SINGLE 5a9d4d67043e86831df9c8b3dcb398c45b01bb06 +# SKIP-SINGLE f4d2f75a0782c53bfb09b70bc75de3c974ae5002 +# SKIP-SINGLE b21539f6083bb7be6ce3b7d7701b270bc0bf384b +# SKIP-SINGLE 1f2529df7d4663597d6ac72ac001def4cd049c1b +# SKIP-SINGLE 25127da57f5de6ca42c90206f1bb7de0efb41ea0 +# SKIP-SINGLE 54e18532e7e731ec556e4039d677592215a78ac3 +# SKIP-SINGLE 5238cd1e6a9b3c310743fdb4497f8f16d965367e +# SKIP-SINGLE 01442a9ac9c6e6a652b628cf18b90a7e30bff845 +# SKIP-SINGLE ffa59bb1611609879151b6dfa94772f9e2144849 +# SKIP-SINGLE 6696b561d4d37aebdbb42833d8b5a8d1f4e14482 +# SKIP-SINGLE 530faee2752c7b316fa21f2ac4d1266d3e7a38e6 +# SKIP-SINGLE 53f9bc6908a4da8f5c985e8f204a479c828c432d +# SKIP-SINGLE c69c185109c90ecc486ab707ed32d7bb7aa467d5 +# SKIP-SINGLE 89cbff32e41771a64ba62e449ec797d55f86f15c +# SKIP-SINGLE 3c5e3ca2badeda8637e84586eace6ba619f0110a +# SKIP-SINGLE d5f6dc131b63d6bde096c03927c05a490c707c41 +# SKIP-SINGLE 9d8ce520f03217e5aaf08b3e252a1bb82c3fc641 +# SKIP-SINGLE 05f89e8ef4eb5fbcd04fcc9c0dcb92f90ad6b28c +# SKIP-SINGLE 79483a5873a90bb28178af59acfdb00040c3d23d +# SKIP-SINGLE bb0496e7e55a7fca89c51eb0b85dcfa6904ea3ec +# SKIP-SINGLE 4acc4ac66753ff1556be907f2611b48ffc3fc79c +# SKIP-SINGLE f7e10297d18b17f55b4a8442a3307db00605d46d +# SKIP-SINGLE 73ced8c23ec3d5cdfa6d926af649235104707d85 +# SKIP-SINGLE 8cc8adb04d2861fb1b1bbb38e53feccf3a2fc1c5 +# SKIP-SINGLE f8b07ff4f318d799a471c9363903e3929fd5c844 +# SKIP-SINGLE eb1d22b136a3f7a49b4060553b79ee188f55a498 +# SKIP-SINGLE 6487d4ac5da92aab4d54b5702bba24a5a1ce8432 +# SKIP-SINGLE 1f3ba658fccdb0b35bdbbdfeb8591dba72ee983f +# SKIP-SINGLE 43b6f05dfb46637a414520b27430fbe3b0f005fa +# SKIP-SINGLE 65cc8efa333bbb66acd7b19f4b39c3138995e864 +# SKIP-SINGLE d432cbeb27c1f0a2e59c6853b61ecba3615f645e +# SKIP-SINGLE 886ded1b70f24c52ee526f0c4a69ca06829fb2a3 +# SKIP-SINGLE c5ed3a72a8a70931ef9b0f9d69f73ff0fd40cadb +# SKIP-SINGLE 208a11d3f0ede17b29da45c2491b703b6942a764 +# SKIP-SINGLE 1b809f378f6263bc099da45c5e4a42c89fef8d71 +# SKIP-SINGLE 5c890bfc191d0cf18dccbbf50ebdcde946a0d7fb +# SKIP-SINGLE b16d553ecd1b0478ba28dca5d898fd22aa130fd8 +# SKIP-SINGLE 3568c5d86fc8d37d761245c19246f76803fb1f16 +# SKIP-SINGLE 1e09364d677b0fb57efd18369c55e8c2d0e826f5 +# SKIP-SINGLE de1b33f5a8c6ceee9be59285f70370c3cb2efd34 +# SKIP-SINGLE caf155c4638d4704b2a099657153c9abc115720b +# SKIP-SINGLE 79e133da034cd2d7cccfc5a6eb7db340f2dc45a8 +# SKIP-SINGLE 7be160d80002cd000f33da38d3a2f7a2920c1bf5 +# SKIP-SINGLE f6d6ccc984ac241e1a5f61d770bf77c15f30ad07 +# SKIP-SINGLE b23daca20788ab6b54362c5bdb0470887de106fb +# SKIP-SINGLE 0fc8671d10ccab52d78afdaeb715bcc9e52c0ac0 +# SKIP-SINGLE ba0a61d10a5aedaf4b7bb61aa3626f385d6aba12 +# SKIP-SINGLE c6f42387e32a4e99cd9ddd203ab51f3c5694054e +# SKIP-SINGLE 46e7613ad3b88807d25cfab3d78bf46c9e2fe13e +# SKIP-SINGLE 843b55f6822bc1e8b97b91222e7bc03b5caa9919 +# SKIP-SINGLE ed943db794987cb6fc87b55d68d6164190ba9a24 +# SKIP-SINGLE b799cc271d69fc494da1fe04ca8ec6c529a19a19 +# SKIP-SINGLE 289d6b2265e19822ed5ad44e5c62e9bf3750f606 +# SKIP-SINGLE b42df36757e7c86f33730090a8a0789e957f8fba +# SKIP-SINGLE 527b8a807143253ed8e52de004fb3cc9a17123c0 +# SKIP-SINGLE 2e669305fca1d20e9224dfe0146cef8267c47071 +# SKIP-SINGLE 99f8a1c91733a8aaa47818e78dfe86c5635ce086 +# SKIP-SINGLE a8e3b29b2b73292c8497fee8932b04fa07a2c08a +# SKIP-SINGLE 8264e8deaf6d67492964b63bb729ab6fcc350781 +# SKIP-SINGLE 50dd037338784381300f411c64d39a9fbaaa7f5a +# SKIP-SINGLE a2323c7ccb0eab1b6395d5d1d7e18db617354e13 +# SKIP-SINGLE 91d539b0772d4b2a6bdc3fbccf92dc1fcc7f747a +# SKIP-SINGLE 4ea90a711d11b14be728241a4454f8c5ee7b6478 +# SKIP-SINGLE c3b53559965a4c6f48274c3cbcb43eb6ef23ae14 +# SKIP-SINGLE 97267d2bf1fbb9279d32f75eda9dbcf0c4316edd +# SKIP-SINGLE e704a6956d86ae394ecb029e066bf8d8c061baf3 +# SKIP-SINGLE 809934f0220e1d9a1780ab97d04fececf2b934eb +# SKIP-SINGLE 31ec1a7d329cc9374b16c5831d30248c99e93dfb +# SKIP-SINGLE d93bca019713e98228aca9f4d1a4838a72b1cf92 +# SKIP-SINGLE d168110a322389a9f991d7a5bdd1cf777642c990 +# SKIP-SINGLE fe7263803c37c836b3484861fbe13674a5063b4e +# SKIP-SINGLE 29c7f8c915c3889dfd5b25878aa0692f826cd38f +# SKIP-SINGLE 6e73e07a6f5cbdd1c5ae6e0f3fbd0f8f56813f1a +# SKIP-SINGLE 3b9dad88e02f05773c599808266febf3e4128222 +# SKIP-SINGLE fddd63f8b854f6bfa91403f69ba694ccb54197bc +# SKIP-SINGLE 97eec9db79443f99eecfd84af73e5249748b9796 +# SKIP-SINGLE 11e22452b0ab6f2ea7679665ed8e9abcbc03eae9 +# SKIP-SINGLE 79d585c2befb81ac5480a9577eaeb6e8915cae23 +# SKIP-SINGLE 59698d924e541b1768a61caafd0dfa40b5ed4b34 +# SKIP-SINGLE 77e194971c5370856a63cf02397d79f85d6b342b +# SKIP-SINGLE abd8c9b4d71651b00552d3d5dea119f22adf3874 +# SKIP-SINGLE 69caa111c290eb1f02013c407f4ac2549b172c36 +# SKIP-SINGLE 8933cf86a1c64fc3302188629356084bcbfc65dc +# SKIP-SINGLE 6e90768143ff47e96a70d91534344161a1d85f46 +# SKIP-SINGLE ffdb91c6b344b6b341e75ae981ebdb3e66b94130 +# SKIP-SINGLE 2601aa9105d935441ed25370feeeae3e717cc791 +# SKIP-SINGLE 8d5dfafab7dc40d4b74dc0b56d1b314fd8cac390 +# SKIP-SINGLE 4467073c50d2c7fbbb30530d1a0a25f8272ff56f +# SKIP-SINGLE 4459dcc07865f6ae1f21f624fcb09cf8fdaecdb5 +# SKIP-SINGLE 21e475ea0c0d04ae7634f377ed64fe179388b133 +# SKIP-SINGLE c0d24d5316626a3d5e76f99a0f418463cb355459 +# SKIP-SINGLE df06cfe4a9859a00d7ea046be8f82f1b9e4564ec +# SKIP-SINGLE 1ae8a18d949e3a3dc3f7a6f2284ecb35871416ca +# SKIP-SINGLE 6e974130d709e9e8624dab5c24a6639c0331cb77 +# SKIP-SINGLE ca194ae5c9d63c032827af6c58132b066bce7fbd +# SKIP-SINGLE 6927f237679e73343aea0d70e356fc247c05c4d6 +# SKIP-SINGLE 673d281b82886490707f3356a87b5a992d1dc0ed +# SKIP-SINGLE a902af6c1b04abcac4d6d221a2b0086cc076bda1 +# SKIP-SINGLE e2613f41213c89bfd90d34a7a5fb120e7366ec6d +# SKIP-SINGLE 3a964dc5c124d1b5402e7e5cf7a6b6f28310e67b +# SKIP-SINGLE ac4dd5f244032148595fb787ff926882390b36b9 +# SKIP-SINGLE 952550258dcf06bc03662974aa6b6db9d792aedb +# SKIP-SINGLE 667e002e91a26c20089c5843254a39b771b64ab7 +# SKIP-SINGLE efd80237ca6085f28497bded259a92a48bb6005e +# SKIP-SINGLE 22910e71e5092250b2134dae07bd8e2a82e4f750 +# SKIP-SINGLE b9683230ecaada87f23bdba59ef044c4b0374216 +# SKIP-SINGLE da383aeb8e629f642b46e9c64b2ffcec9976c23f +# SKIP-SINGLE 0689a4ac508a213f29c11ed6230596885d42f89b +# SKIP-SINGLE 1fdbeffe3a65cb23abb43a4ea59df9553c9246f9 +# SKIP-SINGLE 40842f67afb2931de6789237a49570f99b70404f +# SKIP-SINGLE 4e1f92feb3a861f93b7a285715d03be930b41b91 +# SKIP-SINGLE a0f060939456f3680823e34f430e482fcde2f5dd +# SKIP-SINGLE 5dd2d50f3d5e65b85c87da86e2e8a6d087fe5767 +# SKIP-SINGLE 0776ac06803100e36d2ff7532744186f70bfcb56 +# SKIP-SINGLE e490ffcf953cd2a82aef86e05da24352db5d4568 +# SKIP-SINGLE 58de11fe1339a1248f9b0bccb3a3601a9d8f56c6 +# SKIP-SINGLE 515eb6989575dc1d8e8f996ec65494e637f24ffe +# SKIP-SINGLE 9034dd053163d6fc383d1ea4223c0b4dd7e9fb39 +# SKIP-SINGLE 13824c44d28427931a7e3284adec9a3a38cd2323 +# SKIP-SINGLE 681faf9f0bc41972932b72ef34c026419b6eb54d +# SKIP-SINGLE 63cbb54d7e163f74657dba46829262282ccda0df +# SKIP-SINGLE 3478e64c88fe0187f49343ed778d7e9231cf5837 +# SKIP-SINGLE d1aacceae939318f419e0c265358e041c53f1eea +# SKIP-SINGLE 164aac0a9919fb34896ddd824394a65802343a50 +# SKIP-SINGLE bf9ec3d91a79414deac039f7bf83352a9b0a9a85 +# SKIP-SINGLE dc94ca7b2b878c9a88be72fea118bf6557259ffd +# SKIP-SINGLE 9fc1fdcbf330b0a85cd019bb75afcb8d36243524 +# SKIP-SINGLE 758753431af51f7ac79a55d426b915443e66a077 +# SKIP-SINGLE 49c748e336ee3c50e28d2aeda6396efc358d961b +# SKIP-SINGLE 6fecf6ef2552a9b44c4311b7d5af3af0a5a54dbe +# SKIP-SINGLE 71857d410635743d437ce1ee73dff69de50030d6 +# SKIP-SINGLE d4a6e42e92ee215659d09b0456032714aab73ca5 +# SKIP-SINGLE ceb9da3b7125fbdf0da04a3b158ac1e792c87f4f +# SKIP-SINGLE 252d06dd5d177ad3d6d0464eb3e65dd6ce4cce79 +# SKIP-SINGLE 155dba943263236ba2c41926bae3cc45229b15bc +# SKIP-SINGLE a602d548dfaa1dcd44c3af017ccbbcd3586ca023 +# SKIP-SINGLE dd3f6b13f673433e590c55b24232cf0a7e70de6e +# SKIP-SINGLE c1e45419c7ad9679771718e91205502d30da6f2d +# SKIP-SINGLE ec0527d8e9a7f12898c8fe9fdb6daec21c1d2ba8 +# SKIP-SINGLE b2164df86ba80cf4b7f3499596fbcf803395b6e7 +# SKIP-SINGLE 3d49ad73e5a93625629c96b6c0b921bb019ea9da +# SKIP-SINGLE 89068554d7d0e9970a7269a0963e7a2bd0b1cc99 +# SKIP-SINGLE 483df14d5c4e04ff2a9fec18b68399c0ab2b56b4 +# SKIP-SINGLE 0934363c96ff774ce242b51529688bbfbb48ba02 +# SKIP-SINGLE 159dbd5eb211e36d98e200781f2eae93f0973aeb +# SKIP-SINGLE 56254fb98c3369392dc2bd4383b7ff2ea24f2dc4 +# SKIP-SINGLE 4633e02726fbd683332eb64dee97b109aef4361f +# SKIP-SINGLE 79eb840753edb2dd9e0bf1d4befb8e3e1275e009 +# SKIP-SINGLE aec08e609e6c672c6e85d91b84f45e38019ccc9e +# SKIP-SINGLE 7d9d3951c6736d5606828e2727a7319856511ddb +# SKIP-SINGLE e793a73fbea3167368bd173211c1995e07dcf913 +# SKIP-SINGLE 404023299429a2619c6e4bc5da80eb248d060ef9 +# SKIP-SINGLE 59ff342869062caba72af7834c00b36753fa7461 +# SKIP-SINGLE e4300777e8cc7559ea29faaeab6cafd3f7ebf3b7 +# SKIP-SINGLE e40f5a91eed69b5d6131671ba1699ce3ccb92f16 +# SKIP-SINGLE aa6cacd7138519aa8906c850950020d0546ae355 +# SKIP-SINGLE 2e595b3e8b887068e47e64116d5a910c1045a229 +# SKIP-SINGLE 91e7df281ee628eb56e7d016093a751f4e04366f +# SKIP-SINGLE 0aa9f478e962e3e2d146871fa37267709404c52e +# SKIP-SINGLE 2671ea0de8e90e20241fe0441f4f8b79eeccdb12 +# SKIP-SINGLE 958d6b4cf77af951d1ad40c02c5d5dcc28f31120 +# SKIP-SINGLE e36d3fc452735d1a1a2293e18b8e4ef944f8793d +# SKIP-SINGLE c094b8c20a79c731cd36e86a3a6bc777606586bc +# SKIP-SINGLE ae9bfaa891c4f3cacb118aef6e35432d5fbeb88d +# SKIP-SINGLE 9d14e410dac11990cf0e95a1a77e83827323530d +# SKIP-SINGLE 148b136651413d8eca0f805c786fb04b9c5878b8 +# SKIP-SINGLE 3c972723e44c9428ea990562033acfbd84ed29d9 +# SKIP-SINGLE 194c299470e087aeeff5c496c7dfc6400e1185a7 +# SKIP-SINGLE 8f5d2a3181d22f858ede3fb6a1452f99272901fe +# SKIP-SINGLE d50e0bdbac8e6683c6af4efa172c1b801d250486 +# SKIP-SINGLE 1e8074f5ea9e61a6fba33ab2af0c79b9af7d7a24 +# SKIP-SINGLE 9e79575486fb6aeb0deb23e17cb2ce9ec02b5fd7 +# SKIP-SINGLE 3be2a6b8b4098e5cf118d196e4cba37054d8292b +# SKIP-SINGLE 0fd79ee039de664bc06b0dbcaee786f88a2b079c +# SKIP-SINGLE de477ec683482a5dd27d791d7fdcfc4021ed3cb7 +# SKIP-SINGLE 8df7f89af672f0592b6a31be9d1687b1369692f6 +# SKIP-SINGLE 19206fd1e764cfe89234ae9245bafa88ef1ec354 +# SKIP-SINGLE 92ffe44834b8f77ee3f4d37edfdb19f30a376869 +# SKIP-SINGLE 5e5cde55e5be6e2d388252c3ccb0d019aee6b89e +# SKIP-SINGLE f6339412eebdc027b00263ae2b5c38a029e2f7b4 +# SKIP-SINGLE 32d12840e666d1d07c92cc31f0b12965451f7726 +# SKIP-SINGLE 895215854db66ee8017e5ad5c3215eb089d33e07 +# SKIP-SINGLE 469fe6a040d6df612c00ea169670c6d8d7e58563 +# SKIP-SINGLE 9e131f55d8d5a1eeb44e7c5a3a5e56804be60dba +# SKIP-SINGLE 73d6b19024db10b65ba368bd079223157d73e737 +# SKIP-SINGLE f25ad39983cc3e89b007390bc0fd860f48379497 +# SKIP-SINGLE e0ca8f791c2e4396f1e40d86c136ae547b40185d +# SKIP-SINGLE fc520f8b7090fb95e61a498b5b23be6041475bd3 +# SKIP-SINGLE cea0d61a69ef443924fdd4e4c429d7103b4acb9a +# SKIP-SINGLE dd0727e1ec1f535b9b06be88173b4d3ccd55abcb +# SKIP-SINGLE 3e6c69de9d1ae99ebb71eb2ed04bdb9ee42cbb80 +# SKIP-SINGLE 34e3ad5ae449f4801af09d1df89d57350d0dc579 +# SKIP-SINGLE e726a00381e0f2d8dbfa52a10c82116a8352adf0 +# SKIP-SINGLE 32b9b22f66b1afcc614d5f76860d56d5630c5bc4 +# SKIP-SINGLE 0b43e7a49327ce32c67648eb898551002f135ef5 +# SKIP-SINGLE 81b589518c2e574b084907c7d7fb8e6e5049800b +# SKIP-SINGLE ed77d1a8c0f005d4f158b635d39db0d5d79fe1ee +# SKIP-SINGLE bc60ce7ffdf39fc3288938337e7f6c0706b37082 +# SKIP-SINGLE 35dbc79cc3233129da90ae2f4916d73e189b63cc +# SKIP-SINGLE 41b1d223c6ab7bca1b626a4c07a4f2dda2855feb +# SKIP-SINGLE bf79dad3f20345ddf095325ce22c0f2a3408d3ba +# SKIP-SINGLE c4dab6c179a78ae17d02becf66a098bd72a12233 +# SKIP-SINGLE 4c7faf33776c6566fdb374ae2b54960fc70c3228 +# SKIP-SINGLE c469efbd8361cffff72fb6a4aeaeea40c5adf110 +# SKIP-SINGLE 9ea5a915bd1b9458af1587d63170888346e8baec +# SKIP-SINGLE a516ab79c300517d5c3ab68c45ff9c90bda6c67a +# SKIP-SINGLE d45e72fe5a9205b2e146d27e8e26233ee8518331 +# SKIP-SINGLE aa6a05c146e94c0afc35b5354d68da55aecb2db7 +# SKIP-SINGLE e2494bdaeea309c6b270dc09beba34da5f193573 +# SKIP-SINGLE dfc7338828a8db6cf177633f942efcb0d7930aaa +# SKIP-SINGLE 6927841ecba6494858cc3af7c0500e6cd3c4923a +# SKIP-SINGLE 105c7562dc38de31cda6dfed00a1c260a6e72ea2 +# SKIP-SINGLE 4844aaac199de9af8da0a62b5ae92b1f5a7abb2c +# SKIP-SINGLE 7fa11be2fae2b9fa5981e01da05cb618859d77ca +# SKIP-SINGLE 2f6b519eaeb3be4ee6a912b40a21686be12d4d88 +# SKIP-SINGLE 3f98188b864fb4f16a7c2878a96c880ec55452dd +# SKIP-SINGLE 7ca865dc52a31374c68dc870246353db5acc023c +# SKIP-SINGLE 5db380abad0482ae74aa71761f0da2b2351ce97a +# SKIP-SINGLE d353c08d2bf25ea8e42ae4664c3a276d549937b5 +# SKIP-SINGLE 20ab7e07afef7a878565bac97f63bafe5f9d6e04 +# SKIP-SINGLE 35075267a67b6474416e0e413d0d60c1f5f5fc36 +# SKIP-SINGLE d633db5189f335873a03544f9f41dcaf77c8e31d +# SKIP-SINGLE 88e1f8b02086aaf652e3058b36b7612c073c04b3 +# SKIP-SINGLE c8ea3f09e09b18b909f5a6c5434185b8dbf2fa63 +# SKIP-SINGLE ecdda194a82c8c52bdb948160f55ebbabe733d79 +# SKIP-SINGLE 4765487d5d24fc8a2a06c329dc9cc3bed9803391 +# SKIP-SINGLE d5499e3eb2765ddf212e3f21fed7b356b8f0ec76 +# SKIP-SINGLE c274bd5c52fd64c888b1c713060da881bf72caa7 +# SKIP-SINGLE d96db7b2e8c35ec2970d12c96e2328b684626f24 +# SKIP-SINGLE 935cc42795686710f82b8928b6802f20be8f27c0 +# SKIP-SINGLE 52d5771e0a803f57b8cdd7675bf15f2f9b946039 +# SKIP-SINGLE 9e1186a73279f9e6416cc594171482be5a223820 +# SKIP-SINGLE 905fabe5904c9588bf0c5d0ae15ca0ed354b3656 +# SKIP-SINGLE ba0264e19153281bcf264e99c01c130c701151e2 +# SKIP-SINGLE c1fa5bd8ee3c7f37a9b9304eab6b522cf8718472 +# SKIP-SINGLE 4290f64dc9948264b5d9bdad2330ee15aafe6589 +# SKIP-SINGLE 5a10e6377c2b97420e5617f114bb374d67ec1a58 +# SKIP-SINGLE 2a2b3f583430df8495b566a1dfb1f41c4d61292f +# SKIP-SINGLE 58398dea254dcfdab58d5439061a513b48cfe895 +# SKIP-SINGLE 5acf75cec1c2cef383a7c022171f5a1d195c09ca +# SKIP-SINGLE aab5d7b3f3bb6fb82924aaabdfdd6e2a79ad3141 +# SKIP-SINGLE b3023de5431fc308e2a6db61ed4fdd18db785324 +# SKIP-SINGLE 02ae85e8aa735b0d9a312f811d03204bf8fdbd51 +# SKIP-SINGLE d1f315751d960f003317713a65cc480b3d0ee726 +# SKIP-SINGLE 760107639be7657c4a209c9c04b17c79fc19f2c6 +# SKIP-SINGLE 8b7aaf3e56c63cae7e2affc249179e5022451595 +# SKIP-SINGLE 56fb536e78f3e3019b85995ba1d788065c3ac415 +# SKIP-SINGLE 02ef00d89c64d713f29f4ed12dbcae9f8d31bb9a +# SKIP-SINGLE 6dc4e3b95ca9589f24530979cdc83ea346d1ca45 +# SKIP-SINGLE ec464789dfc5179c72e6929ea99a72f508c562b6 +# SKIP-SINGLE 5ed566cae08d4f39920bea81fd6bf2160f38348f +# SKIP-SINGLE be0cf9e2995df4d0ff504561afdefba00b49438f +# SKIP-SINGLE 8c153047e78e078b2001be9cf16ef3bbaa375a39 +# SKIP-SINGLE f14f6180b78656eec2f4dad5b79eb5da20bd0b70 +# SKIP-SINGLE 3f746d44decf9f991ee2a0a0529a2bba9ad12988 +# SKIP-SINGLE a0524584e93a66278dcf7bb998398f7484f9e8b5 +# SKIP-SINGLE b2a5bf142fb25094ff623dc93d2ce916aee3d971 +# SKIP-SINGLE 2f68673a712508f70de20f485422c7e01b8ab21b +# SKIP-SINGLE 45694a25948146e860738cb4e01de7e7e9aa91b0 +# SKIP-SINGLE 91bc24c46768aab4a851c87edaea05c7476ff779 +# SKIP-SINGLE d2e0d1452b976a51579cf044257326850804c562 +# SKIP-SINGLE 3294ad44ebcd024b4ada68d00bedca33acc52de6 +# SKIP-SINGLE 3933ece030150908c9189c11cf683bb3df9e4e18 +# SKIP-SINGLE 7fa37d7a1439bf8cd76b336ea95d3a1982b3ae03 +# SKIP-SINGLE b257a7894b6b8536ee16e6b334207c8f5c887280 +# SKIP-SINGLE cdbb02a597298b7812b456fca3d61e223dc40b7c +# SKIP-SINGLE 41c09d347feb94b9070a9aa2c78ccf65be7fd268 +# SKIP-SINGLE c7f141d67829ccef64a5e4e961f098f09774afe2 +# SKIP-SINGLE de0b7af169345442852622bb337483398c583a9e +# SKIP-SINGLE 6fbea946bfd0119cf517211d058ea277c9209a87 +# SKIP-SINGLE cd479aa8bd498da4d7980a7fe7a37e238761482f +# SKIP-SINGLE 36af7004e2bf0db1d9c2fd1312215a931c1db3df +# SKIP-SINGLE 3fd58ad37e12845fab905c00e87ae1d49755504a +# SKIP-SINGLE 58965d91e7fb5a26a5422357f44d6e841f67db74 +# SKIP-SINGLE c50718dcfa54293b695f8a3fa5cd4d77848ee084 +# SKIP-SINGLE 5276519255c27e7dd01cbc3fea00d1c29f44d514 +# SKIP-SINGLE d9bd334ef367f3e16967ae2ed714ff419f2b5328 +# SKIP-SINGLE 3d6af11c42453065d5ace1223fe99228b7927318 +# SKIP-SINGLE b7f227ed8bece1a8fafd36ce5f0ee0d5913b6f8b +# SKIP-SINGLE ee93a06b8b1922b31e12cfe60566779f185ddeba +# SKIP-SINGLE db03eda6369a9d4af3c72a8ab6ec29e3cc58acc4 +# SKIP-SINGLE cdaa3b51f1500ca1d91452037efe68fa0f7808bc +# SKIP-SINGLE c6029ed34ea83c7c0adbd723d63bd78ff0ec0796 +# SKIP-SINGLE 77882158b2aeff7f235c409d6572173ae4c3a38f +# SKIP-SINGLE 67a218d33926931b20096edce3eaba2958283bde +# SKIP-SINGLE d3c4833d1350e26a2ae35e00eaf2d6bef1724679 +# SKIP-SINGLE 2bab0f2db6fff3a99d3bc498d6139ee42aab96ea +# SKIP-SINGLE 4313c695cd6370667ccf086cef0d9201fdf796ca +# SKIP-SINGLE a25cd7f68aa5babb7cc9002d89ff02077937927b +# SKIP-SINGLE cd41ce8c6c107901a499bf55dd2b0383befd37af +# SKIP-SINGLE 280b8c96ccaeb95548adda78466ef2b1c3cf4546 +# SKIP-SINGLE 57a978fd74454392a041ac65a5abba8d012b88cc +# SKIP-SINGLE fc53961c1df8bee07b6a1d461d31f449b66f1d65 +# SKIP-SINGLE 350e97d78e7803650c6dd2bf46fcfece8e2b4b32 +# SKIP-SINGLE 304e2a3a05feee6578aadfa0228dde734fe850cf +# SKIP-SINGLE 874e2525035d45efa6fa374a2ebec3740ecc1457 +# SKIP-SINGLE e2df22fa016247dccc632b2cb4fc5b8ffb4c3c7c +# SKIP-SINGLE 0069085be2d0e6c7d439372b06b866df4c669891 +# SKIP-SINGLE 72278f21e0ef0c79f756bca08577297d11e22518 +# SKIP-SINGLE 616da8fa8efa9023f56fa731072d877e2150afbc +# SKIP-SINGLE 51f8e86374a57efe5b8e5c31d96078e63c023da4 +# SKIP-SINGLE a29a3ad55d650af6230e2cfe8ef1ef45b5feb133 +# SKIP-SINGLE 7a9f8ed6fba0d6728cbf185696bdc1a95b1acfea +# SKIP-SINGLE 7f298bab5234073b1565a7008f63b89979a925d4 +# SKIP-SINGLE ad1baff0a12cb22c5c515e0ba3ed29d4b876451b +# SKIP-SINGLE fe82c0743b3feecb9b80549ef4bb3dc8529891a8 +# SKIP-SINGLE 89c589bae47fa7faa7273a9df0f4be836e9da29b +# SKIP-SINGLE 6d8638e5e494fb0ceafffe19bbf349fff643e12d +# SKIP-SINGLE e89532c7c7c5098a77f3ec6fb5def98b1f9034a2 +# SKIP-SINGLE 15a9e73a1793a61b87d3f460e2e4bc5b7df1e6a8 +# SKIP-SINGLE 4e091c8ddf6bf421a4dd0210a3a4b77a3ecf24f5 +# SKIP-SINGLE e2b774e64a903e856356971c0fc3a3835d3883c1 +# SKIP-SINGLE 82b602dc2f52775a4082d24d64380867da051350 +# SKIP-SINGLE 8ae173a8373c12f17acc9d7b22910cd106c12b4b +# SKIP-SINGLE cfb295f1e55e4d04beaad5d57ede494c436cf277 +# SKIP-SINGLE 9a9634dc725278a6a676fa4590f53543cada34b2 +# SKIP-SINGLE fdbe3362c5a72be7d4c930a614fe5853bf6eff1f +# SKIP-SINGLE 72c7ee2e525d87b58a28aea8af8cef31f607d7c0 +# SKIP-SINGLE 85f1ad0c798b5556c37185f4930929d5aa386a5e +# SKIP-SINGLE e1553142fefaf39d4742d1a161de2bce691204b2 +# SKIP-SINGLE 39aa623479128b465b01490845f0781c03eece8d +# SKIP-SINGLE 286e308561d00a31e0321919ef36d9bc6dadbeb3 +# SKIP-SINGLE 8af91dee9a9031ac0d49848b16bd288685f1f370 +# SKIP-SINGLE 8783700b23e70874c4996908bf02c010ae6f3fe1 +# SKIP-SINGLE 344b48f490416cb1200e19b28d356e7fb5b04387 +# SKIP-SINGLE 409327ff68f9ccdc8099f6a2ba2fee76abaaab70 +# SKIP-SINGLE f25f4699d760c5409a1571dcfdf4ed0fdac9e0ec +# SKIP-SINGLE 5cceb6d6acf6299f1347133aec7097b8771ff952 +# SKIP-SINGLE f5f296b0800de4cd459e41b4a7b1cb97673e8dbb +# SKIP-SINGLE 9aef9e2cb6b547f62911d06e90081af32134de66 +# SKIP-SINGLE 43e9c8e9d28dcb659a43e58778e2745d1279051f +# SKIP-SINGLE fbf2bfba0770b7f575d8ef06ca3a08cf1a38cc2d +# SKIP-SINGLE 7ca456da7f72feeeec571ece3c373e2b3a3d327b +# SKIP-SINGLE 0e7361a5ccce084613d54d6ba3954ffca6074817 +# SKIP-SINGLE 2a9797b422fe8a28bfaab49974ea2be21ae2502e +# SKIP-SINGLE 5d73bc5c69f56ce1b22c950d19ef6406b662949f +# SKIP-SINGLE 16986a9cc42ef4de580456f4acc5feba682ac8b1 +# SKIP-SINGLE 2d2cdb4741a3c1e42c8ed771303a878fd428911b +# SKIP-SINGLE 4725c123f33eb9579b695748fa9f85c9af3eb01a +# SKIP-SINGLE 0c7024d0d9172322052de2ee571ba64afff905f0 +# SKIP-SINGLE 20d44771201ef96fcfd6aebffe05aa50c5fa8074 +# SKIP-SINGLE 7a551e92005dc9964c1a74a2896b5dbf0ca231b9 +# SKIP-SINGLE c681f374788235cbaf1dca062450202e90fd2a86 +# SKIP-SINGLE b92a5174939fba17ffb5235dd926c7063c13b1d1 +# SKIP-SINGLE 6cabef8799eb053c593f0a5241503ccbfb616c8a +# SKIP-SINGLE 3e5856b21a83a52dda8c0b3ab541d106d809d625 +# SKIP-SINGLE 86581698acc1a0991592e018c1ba749f3ded21be +# SKIP-SINGLE baa39e48495e100af6704af9287b544e612c245a +# SKIP-SINGLE 9c67e8e56d40926454e00b5652c2b519ae0b507b +# SKIP-SINGLE e961a31507e6fba86a5d45fec7fa616e80028882 +# SKIP-SINGLE 65456668ab1048fe8d77dc76a9e4d84481c218a5 +# SKIP-SINGLE c96157c8f8290bc2049dc947b6d264564659a545 +# SKIP-SINGLE a7ed5071b70f07da4c99198126c48cc6b448090a +# SKIP-SINGLE 1e624452004e17bec2070b0c0b9f5639f66df1f8 +# SKIP-SINGLE 3f25b22cadc9f73583e83b00f828ee00efa8764e +# SKIP-SINGLE 938e68bb280c96eaf163bd932ab2582fbe27e780 +# SKIP-SINGLE 3069849bd4c1048a8f8c0467d26560fad939e791 +# SKIP-SINGLE d45253996670509e668d266d577f48deb9c7018f +# SKIP-SINGLE 43f25120c9a2578df3df47491ed68a0566ff6f61 +# SKIP-SINGLE 9d266f2a6c0e51f184d55c8bba4551abdeca02bc +# SKIP-SINGLE 76eb88df0243dd15492e71f068fd476be8efc800 +# SKIP-SINGLE 32870d2f207536bb7932beeb2e0ec9a4e0146560 +# SKIP-SINGLE 625ea08652053617034bf8ceee0d6cfae34f2dcc +# SKIP-SINGLE 657947dc7cf01a13a4fa260691a6fa0147107950 +# SKIP-SINGLE 4fa13b2d838e11cbe3b713f3172721cb61d499f3 +# SKIP-SINGLE f17ca55a0a3c9de1061285763cbf0bd3754f6718 +# SKIP-SINGLE 4c5f1737c4815bd6d167108343a61da9a3882f32 +# SKIP-SINGLE ac9bc819bc438f21bd38a995812d756727ed8e2a +# SKIP-SINGLE 7d7e9ef46a1b310fb3f481cdf8023082f5ec1618 +# SKIP-SINGLE d6362b632e3c76cb55a05248aa221e426c5adb5a +# SKIP-SINGLE 00df4566af9dff0a27fd6da566ef1e53268a6d47 +# SKIP-SINGLE 655957087c8654577e7c59004f16be7abcc2c46c +# SKIP-SINGLE e41af3971de8f71b5241698a8b29349905f1a969 +# SKIP-SINGLE 59eaa30b07e9a79a9b2bb6ade0be9aac846384e2 +# SKIP-SINGLE 5d77eb4b7c00d0652b190166c393efa16d0775a9 +# SKIP-SINGLE c6384e9bfbc765229ea9676ba1044b9db28fec2d +# SKIP-SINGLE 409f0430b6a0c138836e5067141bf6b2a7beb6b3 +# SKIP-SINGLE 2f03053e568f38a1dce5ffe02ad1359069ef84c8 +# SKIP-SINGLE d5c6d69b4fea2d5a1167a0bcc0b9994a5939b97e +# SKIP-SINGLE 28490cd65ba50ce4e1f411556e1faa36f1db84ec +# SKIP-SINGLE d06127e5736b0564daf99a41c77c8c23d394e759 +# SKIP-SINGLE b440fa0a6b48a95323fa922b88e9a9a73d6c6360 +# SKIP-SINGLE 62e37ecc4020b3a5b18cfdcff9a7cb259fd8145a +# SKIP-SINGLE ddbc33343cca8c66d841cc16eac77ea626e50e23 +# SKIP-SINGLE 902649a170ab651cffe2bbb421e1331b23c7ed01 +# SKIP-SINGLE 7bc615fd23c1304f8682f2443db235fbc37bfde9 +# SKIP-SINGLE 7f57d80846b5f674c49a717d6fc086c14f506415 +# SKIP-SINGLE 639821d49ab9497908d8d3bcd472aed558c251e1 +# SKIP-SINGLE 75b65b3f67eb9a4e5722780cb915b880e667d674 +# SKIP-SINGLE 306e49285a04c02f0a575a7d7b2f82eeb032c86b +# SKIP-SINGLE d1ef0243eb6e7cd9720236eb0e900fe7163b3c2b +# SKIP-SINGLE 162c3da7a0ae4cb5e1b0e34731621ec13ac01e43 +# SKIP-SINGLE ab70ab19be64902123b0e2c08191d5ebf70feb62 +# SKIP-SINGLE 8175497ccac1b3afc2208260be91423e2bca2d25 +# SKIP-SINGLE 63f8a838eccf201d6290d0dc8f83881f41785afb +# SKIP-SINGLE e0760599b045a7ef3828ae4b624246b6beec2e75 +# SKIP-SINGLE 34e50dc4a23505dce0499f120477e2e1a1327432 +# SKIP-SINGLE 06db8015ea05cc17efb16684de23533ee315be61 +# SKIP-SINGLE ecb216fd93dc959bda283d27d759b253ee0e2798 +# SKIP-SINGLE 0d195584f20bba1c1de165fbc4162417737755c4 +# SKIP-SINGLE 829c7e3566ed425c0204067c654a58970af6d4fe +# SKIP-SINGLE 7e9c2e295283b4dcf4f88cf25a094e37731543fc +# SKIP-SINGLE 3a0c94ac0b5d5098f9140c5ab4231d6dd06ec393 +# SKIP-SINGLE 3a5c4bdc0c079f72bad98e01f70343ba9e9b0043 +# SKIP-SINGLE 908aab6144bf9f62dd5b2c2f1776ed177fa6d18f +# SKIP-SINGLE c78dc25a5351b1a4191028ba252c892ae1dd2438 +# SKIP-SINGLE 67f9705fc0fc5ecc91172ab02df8c1f31fe654e2 +# SKIP-SINGLE 25c6bc7a3d3679b26406bbcac33954186db491f2 +# SKIP-SINGLE faf44e2c61734cfe2422498ed27b4f645635120d +# SKIP-SINGLE e333f040e9f68bdce2b5735b4b9dd68944199056 +# SKIP-SINGLE 5cd3db73bed06e394ea8e7b0e332b1b1e5bd9571 +# SKIP-SINGLE 4489450f37deafb013b1f0fc00c89f0973fda14a +# SKIP-SINGLE 98ed6db34f76cfe37d70d8ad82d29fcfa2a56e24 +# SKIP-SINGLE 2ec403f777adf39d3e972667513086f2053530dd +# SKIP-SINGLE c5e3b99467dd07522f9522cc77cddbaa69222a7b +# SKIP-SINGLE ab4edbf60eca767775e18d8d0e318c28a74792b3 +# SKIP-SINGLE a5a047a07f2d4f98fc67b40eb1f1a1d711905381 +# SKIP-SINGLE f5084ed197cfea8387ffa7dd72b72933905fe699 +# SKIP-SINGLE e06953b02a0e7b26b33c511a22896d0db4e5d63d +# SKIP-SINGLE 77cb95c851edc338c94cb35effdc8c9ffc64a461 +# SKIP-SINGLE eecc2d45b94513ba95789dfe0ef58aeb8b029049 +# SKIP-SINGLE 663d768d44be150439a58cd858615cac3c1f572f +# SKIP-SINGLE 838fc77254286de318b65602b31c6d3915594a8e +# SKIP-SINGLE a7042fa051c69b8c647fce3ec52b74974b5ea2be +# SKIP-SINGLE 2332c3eb55b2c8541ea83d4a847c56f888239f6a +# SKIP-SINGLE 077c66405261381704da33e6858f4b6639763f5a +# SKIP-SINGLE 2b4d46f99be3735823666c2a6d9f058cedeb031c +# SKIP-SINGLE 5858921f409f6ee9d2e08dbdcd1719969a4f5544 +# SKIP-SINGLE 29418f954eb114bf3c108b6e03569036f854ae45 +# SKIP-SINGLE 07292b1344549a164eff9d548f819235a14a0b4e +# SKIP-SINGLE 1bed1f0b8e9095d66f905ed7b409a397f1972262 +# SKIP-SINGLE 98f5b74808a54ad9093888b72b2c04e085f4b369 +# SKIP-SINGLE 1ae314dfda1a7746fb31957ac3eedefd70b3c1fe +# SKIP-SINGLE 488a6efe323927a4064afc193b66cd11e2caf77c +# SKIP-SINGLE 9fbbb2355298f75e8fd09b35306e843ce45b9e25 +# SKIP-SINGLE 076a25810127cb8c56ff0f5272a3d8b98192ee77 +# SKIP-SINGLE f847ecc40bc768d97ba57083fd669ca0104e500f +# SKIP-SINGLE b471f7f6141b3db8fb00f62f12900846f59beb9a +# SKIP-SINGLE 5fbb7a126d19b41848b57e7e012619fa13cfa4d2 +# SKIP-SINGLE d4e8c90b66b4aba66ff1a12a0894a33af91feb0e +# SKIP-SINGLE 243ee7b244797aae460b9e2a7224f75599f3a9b8 +# SKIP-SINGLE 951dd2a4d98aafe88bf2c6c2f86901230e3f0cd2 +# SKIP-SINGLE c924b6afb6810d6b9585092fc5693e3c9efcd1cf +# SKIP-SINGLE ce9e7204138261f71d0e1636036727d8b05ac81e +# SKIP-SINGLE e0e3299c01d3ad7236a7a950f43f54a1bff548d8 +# SKIP-SINGLE 784f53a2152181b687f9543ddba9c393dda1c715 +# SKIP-SINGLE 673a55780d2194f74c5774de83d0dce5131e7a31 +# SKIP-SINGLE 8ad4c4009e1c7360df6f59175b1a701d7f4ecfae +# SKIP-SINGLE d9d66764e2a02db9f19f5c76ce34ac7d8bc1edc6 +# SKIP-SINGLE f6dc55f516a88765bbd8b8c34f0ec663b8948373 +# SKIP-SINGLE b86deb617b109bcb40e9c95b10a033a209c1d8fd +# SKIP-SINGLE c5f24f76eb1653d64c2ae90764e395cf6e050657 +# SKIP-SINGLE b028d4f7dfbd72790679423a8dcce9994b07834d +# SKIP-SINGLE e3663d0e9c6ec32a70226947767850924b90bba7 +# SKIP-SINGLE f9f9b43df5bdadb54a1ba14e1624aa254d9f092d +# SKIP-SINGLE 5416ae5990337f5fb2b3e0fbf9c4575508da808e +# SKIP-SINGLE 99096528494a653d1ee9d7832ee3956a613aeb95 +# SKIP-SINGLE 6b91ea5a6159791d1d1e5006f8cbc384c0da1701 +# SKIP-SINGLE bd8e19e1e2ccfb76c1fccc4dff1f8774185cfea4 +# SKIP-SINGLE 88d54756d46101b97b7fde97b4bc3b62f7bd6c06 +# SKIP-SINGLE 32e87f09c8c2711c421363d0361693dcfbe5a688 +# SKIP-SINGLE 69ab588bb54178df0d3be6b4c04dabb49f5a2ac9 +# SKIP-SINGLE f331be1f074d68e7e5cdbac324419e07c186492a +# SKIP-SINGLE 040991a4697b50ebcb54e498e7de54b8d0885101 +# SKIP-SINGLE 5070278539a8e47988cd9529c9c2e4ada8c92472 +# SKIP-SINGLE 0be9a639fca70c278d1b79fcea5d6beebdf7799c +# SKIP-SINGLE 31f75430999b9021fc68739af231261608aac255 +# SKIP-SINGLE 77f1533ccbba1a5dc0824770046696181a2b7b6c +# SKIP-SINGLE 57e37e9128b4f6f9a2aae0bc25de6c208d58e5d0 +# SKIP-SINGLE c6dce90d7e57486db687606bffd92d580a7d25ca +# SKIP-SINGLE c88a1631e3f76926bf0fed49fa1b704d6eaf2155 +# SKIP-SINGLE 8607f018fd8bef7443415ff2e356d035843ad828 +# SKIP-SINGLE 1cd42bfb8a5ff2aade43f31b864a8d2cd643d5a3 +# SKIP-SINGLE f0e9085a17be8866c123b120e3252c52845ec38e +# SKIP-SINGLE 9d3f8912b431ed5540d9d06d85b7e338732268c9 +# SKIP-SINGLE c8909fa3688aca164e4fd38f6293c4a201e148eb +# SKIP-SINGLE 10f96a8c57b031b521ae8ba5a02413b94ece423b +# SKIP-SINGLE c2ecb08775dc24618de507d2d1ce0f9b0debe17e +# SKIP-SINGLE cb183f6467401fb5ed2b7fc98ca75be9d943cbe3 +# SKIP-SINGLE 76b86d98534da2c9e6cf8fd1c7edcbe53d84eb82 +# SKIP-SINGLE 85073998cb47567cb30fb41f12135bd799ad2588 +# SKIP-SINGLE f1e058d46b5a83ddd0423a3616aa50ac3ec7f551 +# SKIP-SINGLE f46eb3d3ca759ab3944cedda1339a6d1760298cd +# SKIP-SINGLE 9fab83ed7a90209e3873039e7ae4993c667e2759 +# SKIP-SINGLE c957832cbf3e87e5a25f7c2bdb70abd959391d98 +# SKIP-SINGLE e5043db2f1f3d0ce6618eb45419e85f0d58fbf19 +# SKIP-SINGLE e8df6c311fcf59bf23d31b9db2bb8fec9d78fbe7 +# SKIP-SINGLE da87895df2d6b21468b187f5a4e2ca8710e35ee7 +# SKIP-SINGLE 6203b9db347d2d002c0cb660d5b4daeea54bf3ad +# SKIP-SINGLE f6e92035a7c3c29aa980e1bebf9c48f1bb7264d8 +# SKIP-SINGLE 7ebbd4efc3d45403cf845d35c36c21756baeeba8 +# SKIP-SINGLE b584569014abb1fe9f59decd86ea097a189d9bb5 +# SKIP-SINGLE 17422c2cfcbf1670ba4dbe3ecdf3c5ff719201cc +# SKIP-SINGLE 2349ecb3216bb9f7808ac58e5ce6abd6bcf90387 +# SKIP-SINGLE 6fb6cb075f05629a562275064851bef6b72d5dd2 +# SKIP-SINGLE 6a2399c55e9505be06cb98ffbe1a3878f9e96fb2 +# SKIP-SINGLE 4ba76224eaf5fade94438bf990bf5eb05912b530 +# SKIP-SINGLE 77e6a704ac819580b81400ff1d8503d142cb3905 +# SKIP-SINGLE 524d10c86b539ef6fe27f31ed3df2590d1849a83 +# SKIP-SINGLE baacad1771e3551ffdb1b88c41224fa1957e766c +# SKIP-SINGLE 9ed53535f5543910f746662618927052dd718991 +# SKIP-SINGLE f6483526cd4b4b9ed7d830599add82ecb45009e6 +# SKIP-SINGLE c4122067d90857594508f6c00e8af87d91ddb7d4 +# SKIP-SINGLE 1bb7b43e1cfb911737bc4807671910238277470f +# SKIP-SINGLE 5532ae81cff138a2f6d30c3541210311a4894ac1 +# SKIP-SINGLE ccd2509ed31f953408240357e9b84c3d3b3f6a2b +# SKIP-SINGLE bc66ff98756fa28bbc733ef81103cac6730438fa +# SKIP-SINGLE 9b5ecffeb00f22ca6663aa14e7807c9886ed1716 +# SKIP-SINGLE bb8376145abadd901b0d8f7f586bef658e2b333c +# SKIP-SINGLE 092776c7ebf20b4d1208a0e0d860a1f3abd7d119 +# SKIP-SINGLE 434fc2a22e4fd65fd63018e9373cbf56b51f8ab2 +# SKIP-SINGLE 591759d508024a666a863cf918287744e72b1267 +# SKIP-SINGLE 75c8cc5eab51d1080424687167fec4feb34f68c1 +# SKIP-SINGLE f6e3de3f63616d7bd52c1390f9dea70fa33e49c2 +# SKIP-SINGLE bb8a46e559ec39437a1524b3e9746746768effcc +# SKIP-SINGLE 52c8fdde1667ac4b5d7f2af5eff94d6512d83caa +# SKIP-SINGLE 8bc6e31502244ca16bbf7b163a7a321ec9094882 +# SKIP-SINGLE 3a4406975338eb6dad9327b5d17f67a677114e6a +# SKIP-SINGLE 02f78c09b0a97ba044a43682a366a9d7732b885d +# SKIP-SINGLE 954b6e1dc3edb6a8260be810c3f02c335e90b6b8 +# SKIP-SINGLE 79ee266f13fa5c657b24dc45d5f573c393a671b6 +# SKIP-SINGLE c4179117afd37a03a7ba322e66b5bd6bae5637bd +# SKIP-SINGLE 45b8204e09b7d399b792bb26c799efe48835c4a7 +# SKIP-SINGLE 2a762336da4d886a4f1b3ee463fd66393d739309 +# SKIP-SINGLE e45d8dbeea488ac14fe486e5582266980d29e82c +# SKIP-SINGLE 253126bf339a16589e86acd51c0f96da07e658d9 +# SKIP-SINGLE e868955bff3b97bad88bd09b4401e87cab94011c +# SKIP-SINGLE 6e60d464188994bdce97f1aef3b81fae3fd28583 +# SKIP-SINGLE 5868580e94ed93ce4f0ec88b03b232f5cd29178d +# SKIP-SINGLE 18947103fabf8070738b3bd9c5a8d02f90988a3d +# SKIP-SINGLE 3114eb807864e19cd8ffdc5d8f8e11366a619769 +# SKIP-SINGLE c352392420236d4fa7a8ac7f324f1a0358ad3584 +# SKIP-SINGLE a915d836fce238cd57233f67e8d2451a26d2fb6b +# SKIP-SINGLE 5c1b9e65b9d1c73ccc4ce18842d10bc507cdee38 +# SKIP-SINGLE 57b904f4bab7aea7ddb9d3b36229008a47b32ff1 +# SKIP-SINGLE 2f6b017e3dc646d317b56fb453c90aaa44c27089 +# SKIP-SINGLE fa9bede36c18d063f6f599e102cd42f9d0afc071 +# SKIP-SINGLE 0c7a7df98e1fb0bc156707b379e4147fac97359a +# SKIP-SINGLE 0480e9c445d59fd5ec9b38ebe3919fee2aabf8d2 +# SKIP-SINGLE 5a2c1a743b54f7d3355f9b1dc893bbe72e8df6bc +# SKIP-SINGLE 629f222ba2abf5a149c381e27c89e88963f7466d +# SKIP-SINGLE ef6e18a6b9ab103f3f076b35100d09cff1687396 +# SKIP-SINGLE 9e339415b4c068242e7cd785d2ac95420f1934ba +# SKIP-SINGLE 8c385f05120bdf905a027fe99eab23a59d0f837e +# SKIP-SINGLE c4ad36cd2daab764649db451c4a3f1a35c5f519a +# SKIP-SINGLE b755f45f65090665dd40ed0f0dc4eb6f9e4923a0 +# SKIP-SINGLE 1ea503ed4b3a14b3dc0a597cfbfe57d73b871422 +# SKIP-SINGLE eba65824364474bde89bdce5f57a772d74a2c409 +# SKIP-SINGLE 17b65f52921b6a9314a2709f0e5c3ef88b37f2ab +# SKIP-SINGLE 170924e945f4cceda12b5e1681391c3b828a3dec +# SKIP-SINGLE cea1e95d386270e1e682719232f2cfad384fab91 +# SKIP-SINGLE b341864d9002fd081a8a6dfeb5a5a00373738a2f +# SKIP-SINGLE 6cf2a9c55dbf8dfbc93409340065cf02881502b1 +# SKIP-SINGLE 50e33639fe190f0a1c47b8e4c0fcc4735cb60909 +# SKIP-SINGLE af288d813b3c31a528ddcbdce08f497855a56e94 +# SKIP-SINGLE 007d8c485906be46d40e74ddb8046e065c722786 +# SKIP-SINGLE 08a1c32d0bcaa9369a34e7f7d6d01c3885f62e21 +# SKIP-SINGLE ceb9591e5dcb5264573371a573433fd76320954e +# SKIP-SINGLE 1787e651d376486909e736478b1be92c949a368d +# SKIP-SINGLE 734df28368c7f7c21b1068a67d4ae89e64d4a3d3 +# SKIP-SINGLE c5147882a91e51b59c7da035e9ef38a4731b943d +# SKIP-SINGLE 6b475da972d7e2ff7a2a3cafc1aea2a4937e64e9 +# SKIP-SINGLE 7e36fd64d2ce06b821e0f57f6d850ff4386608bf +# SKIP-SINGLE c120b0ebdb20cfff73dd1d43541f1ba1bbc54b74 +# SKIP-SINGLE 0b3f785c4a272b909108108cf7931779ae48cfba +# SKIP-SINGLE f071e61d106e6f3c17b660e3aa1a5b7890ea5d41 +# SKIP-SINGLE 6a3caeab580f61f88c4ad49ff32cdf74eea4fb97 +# SKIP-SINGLE 06b5ec4bbde119d14d866fc3713a4ed390d531f2 +# SKIP-SINGLE 795e01ac248d389a581589b13a02465a2f99202f +# SKIP-SINGLE aaaa4ca77e440499ec852069efaea42410ebe30b +# SKIP-SINGLE 6f28810f6ba112059c09bc3bfbb2ef8e5c3f15ee +# SKIP-SINGLE 773cce640fc5d67cb1a64622defa073d7ec5fcc4 +# SKIP-SINGLE 260e47e9a3c9b3baecef81e69c218989dc0cd7a4 +# SKIP-SINGLE e504eabe88727141e70ae9793be71d4285f839a5 +# SKIP-SINGLE eeeae5e9ee34da5539046ff8dac4f4fffa19a5b9 +# SKIP-SINGLE 861e1fb595eb1f01ca5c137fb4830695f9c1e7d2 +# SKIP-SINGLE 7c5d4348330b206aff1f8e5bc4fd241d6a6dc0b5 +# SKIP-SINGLE 1575ee2eeb1ebb5b73b4b76fc7dc7f5702748540 +# SKIP-SINGLE ce5ae0117e3ea009ccdd8d8f4c1365301d24f90b +# SKIP-SINGLE 851a8f65e9a6b00b51f6a41f4c8f2ec2a797862b +# SKIP-SINGLE 5159789e55d64c7482dff3dc1a621d01f530f83c +# SKIP-SINGLE 25cb49ad565c764c390a411661088970db1f2b22 +# SKIP-SINGLE 9c4dddad456e23892a80303da26774a13250b647 +# SKIP-SINGLE 4c328daf0130fc139e827a8a8d6689e2b15c73ea +# SKIP-SINGLE 1ee7c3041ac84b6c6f3f4f5275c417d91727312e +# SKIP-SINGLE c9df4cace0f88197e69ae45d18bfc1692eecca05 +# SKIP-SINGLE b49250ada978c7b21cb93177c874c81a27fa4fec +# SKIP-SINGLE 377ee8158b2fab3efccb4e9b262e6129b51e28f8 +# SKIP-SINGLE bd13ce184bfaf43f905faff64c5306ff3518f892 +# SKIP-SINGLE 914f68da059d5aeed3459e3944769aa4370a4075 +# SKIP-SINGLE e7b09065dae0aa8018c959ad3c69626bbcce8f17 +# SKIP-SINGLE 9f7c359f4023570616c9961487069ba1122a5bb0 +# SKIP-SINGLE a3651d3237e91f788211e507d61c2dcf886c185f +# SKIP-SINGLE 62c8c8e51a23540cd189d6b2a22dd1a1cdbbf2cb +# SKIP-SINGLE 7a4380b9051ddd0bcc4d5c90abe0f826a9b922dc +# SKIP-SINGLE 23bb724c922de95573f73b22ae311696ae08464e +# SKIP-SINGLE ddae8d4a13d58720a3118355fabc225a9d907160 +# SKIP-SINGLE a31538ea5b006c3901ab85354725993b689a259d +# SKIP-SINGLE 1cdb24fe35a9ff2e4f92c5acc93a5a5b0e70d93f +# SKIP-SINGLE 7c750343be6309a78d3fd289959bca241d9daf5d +# SKIP-SINGLE bde8e87cb7b3be0e0bc9e72c3634f108570cac3e +# SKIP-SINGLE 013c7d6aaef5f90730b1cfe42a01534d891e895a +# SKIP-SINGLE 85d0c11119fbd14d508d228f5edf4cf53fb4e4cb +# SKIP-SINGLE 53584db07ed3411d659678425c4481997e56c834 +# SKIP-SINGLE bb0a427e9d3c29c17c1b03773697989328f53056 +# SKIP-SINGLE 4ef50ccd3f8bc177ef6dd7183a9268bb8057f064 +# SKIP-SINGLE 285f8c7cfecee0c91568cd850139c48ec3f21a28 +# SKIP-SINGLE 96d44c4321724556819e2f718f1d94470d753d07 +# SKIP-SINGLE 1f74e9112e28faa57a7bf56547a9ebf8f6618273 +# SKIP-SINGLE 3a784d1321487be4031555d19ace635598bba21c +# SKIP-SINGLE 4552b01d8c8052f607dca2fcddcf7b2e270f1db6 +# SKIP-SINGLE b6568c1389128d47538b646d940427949ddf58d0 +# SKIP-SINGLE 6d5b34d9de7b2f1b346d9aff123ad20c942166dc +# SKIP-SINGLE d9d90666f545dc25be63c1b16c030ce1aa96510e +# SKIP-SINGLE e645bcc26d468ab6b8e16b6160c203c5db70ec6b +# SKIP-SINGLE 0aea1cf8190aa804a0d11a67b4a3cb4b715ae82d +# SKIP-SINGLE 7e6d1d1c47196bf1bb5254f5c9014e25bdaf9833 +# SKIP-SINGLE 784e509bded0fe41dd9908022a92c54ac8c21a2c +# SKIP-SINGLE bc4cbbcc57a56a23c64576c8c23ecf6afb1c747b +# SKIP-SINGLE 523261b454058d0b28df2c3de1eab55fe378aa69 +# SKIP-SINGLE 29d23b7fa00ed8263baa060d487b526d51fa6986 +# SKIP-SINGLE 9371d488be62a37788b499a7e44b1f5db158e212 +# SKIP-SINGLE 60418e6f09c67924e3e05eb4948e109d8f7c4073 +# SKIP-SINGLE 9153cf8158489d387a6a0d9d0ede9a2528c35f0a +# SKIP-SINGLE d11e34ce76aac8680337f247419657e042e4cf34 +# SKIP-SINGLE 2541bec21bf3cf090071e434dac170d52394594e +# SKIP-SINGLE 007e66bccb2cb8382158e5e24727fd1b4478cd69 +# SKIP-SINGLE 753b7a1cff6b8ce2367a94d27b615ac31f1067ba +# SKIP-SINGLE 7c63b632e4e2241a28f08015cc981a72e18d7867 +# SKIP-SINGLE 91ae9f3d12885373d38c3e8d693f7dc210f9d471 +# SKIP-SINGLE 314cbef84944145e2160736ce32812403ed99cd9 +# SKIP-SINGLE 1a88a28ace24c8b4fb1e4780948b50dd37ada539 +# SKIP-SINGLE 98327e371938033f7ccefd1c5226cd102cb29ad1 +# SKIP-SINGLE 9d814bea4600ac28dcdbf9caf386467551d7d9be +# SKIP-SINGLE 73769dc2b872441eb0b8565e1090e97fc0b5d521 +# SKIP-SINGLE 283043621756fd004906ecdd5ba829a47cb3fc57 +# SKIP-SINGLE 05ece1eb8b7ce28d366d02df89449d453be8d37e +# SKIP-SINGLE 248c13dcfe1b9618811a6fe67e967b25b1a8f139 +# SKIP-SINGLE 38c35bf0f6a938001dfecbe439addf8fb62897c6 +# SKIP-SINGLE 9065d745151e1995b80a1f4d5a04e2af111ad928 +# SKIP-SINGLE e78e69b33189c653d1588b810283969ac3cca137 +# SKIP-SINGLE 909091d7578b7225601b202fb9257dedae879e9a +# SKIP-SINGLE 706ed85285515e7047e16608815c1d02d4907b07 +# SKIP-SINGLE 7013b0179cbe5cce19e114d7673770d1425d3005 +# SKIP-SINGLE 2de25accaf31aef643557ec476041c770fc7ac15 +# SKIP-SINGLE 2b1fdbffcb595bcd72fa9aa3db674c6985042bcb +# SKIP-SINGLE 1480865e641b06d570f5ab56011f8e3e5481da7d +# SKIP-SINGLE 8c13e8497821881b5197a1717e9e53b9991859d0 +# SKIP-SINGLE a6db8464e150c49724c71c5969b97f205ee2dec5 +# SKIP-SINGLE cfbfd393b450d4eb7ac0b7922b44208688553c9e +# SKIP-SINGLE 382e018856a884a96a94ad551dbc1d7b0317b2e5 +# SKIP-SINGLE 8360e12f0ea3a3ccf0305adab3c7ea7e38af36c1 +# SKIP-SINGLE 56e8607dc99b90c43f82001cbf073e58a4698298 +# SKIP-SINGLE 956889d8ff1c79db45ca9b1711f406961e71c272 +# SKIP-SINGLE e2e937300f5a68ce1e2a349a583859a29394ac5f +# SKIP-SINGLE 176830fe2bb1c80ee128e515f6223cddc8b0a2ca +# SKIP-SINGLE 3f069bd796b0024033640051b5f74ba9834985f8 +# SKIP-SINGLE 435ba92ccc4c46914c261de57f71ac6d92c20178 +# SKIP-SINGLE ad6d8f7df180a9563d3f064f29c6366f114b8de0 +# SKIP-SINGLE 8d7ad65665833ae99b7e7119dae37afa438968a4 +# SKIP-SINGLE 10032f424ccf611783f5b92742e91e70595587c4 +# SKIP-SINGLE 4b1714571c8c6cf7ae2ee2602c66b7c903c45a4a +# SKIP-SINGLE f27a330b99eebbe7f4690163358b4cacbd4e17a1 +# SKIP-SINGLE b73539832d9c4e802925cb8f261a13473da383b3 +# SKIP-SINGLE f50cb7d7c4b37cd8e4bb1ffa5d3f9273c7e19e10 +# SKIP-SINGLE 96015c9c8cc1720e8ee7cd9cea4de48126dd9122 +# SKIP-SINGLE 2bd0b9475384adfb4dd2cc794bbe1d8621546717 +# SKIP-SINGLE d9a2673ee95cf7172a622dc0229ddf72aec8e8c1 +# SKIP-SINGLE 0116e27b26cb4a98f2de8dca12d8e9d90d222992 +# SKIP-SINGLE 96601cd90ba1b8a650d0e41dad2a58cb9e270f1b +# SKIP-SINGLE 99e40959f4036debe099f144ed2664a38e23563d +# SKIP-SINGLE 207a0d9408cb97b9ae78469e2487e3075ade03f8 +# SKIP-SINGLE 64fee21d5f85db465198970a4d636cb17d500f26 +# SKIP-SINGLE 48bd17923a98f49a30bdce2f3a52e03fe45d63f0 +# SKIP-SINGLE 9058601308db4892fbc3e599b83fe4326fef9886 +# SKIP-SINGLE a3003492ace0571e5179500b42bbe44cb9763dbb +# SKIP-SINGLE 197f994384cb37ae4ae7a771815bbe565d4ae242 +# SKIP-SINGLE 1970726e26a979243925fabe32686ba2ee757c6b +# SKIP-SINGLE 1de6ebf2878485a0ef6b778df7d6a14d5b22a01c +# SKIP-SINGLE 013ab7e2a83afa7fb577c356ae686439a2906f34 +# SKIP-SINGLE 1c3ca3bb649b7e812a84b4a559463462d4357080 +# SKIP-SINGLE 48ed4228a75907ae1bb7a2d4314ffb3277c75e3a +# SKIP-SINGLE b9025c507a3a7dae4de19b18cafaa09b18183832 +# SKIP-SINGLE 8d8464bd5a98598e7a6fe63370545c7f07574926 +# SKIP-SINGLE 11c4177430230ef41cb700c48afecf475cf39893 +# SKIP-SINGLE cf3c89423fabc2c5a7891a5b5465fa995e461218 +# SKIP-SINGLE 8d5d7509b0a2c248084fa349b0b188d4de4af804 +# SKIP-SINGLE b6e2799aa1c3887c2995e115e6ff2f69d59f0e44 +# SKIP-SINGLE 1795839babcf8572a79aaee3c76ca5b357937a59 +# SKIP-SINGLE abfd00e5c02ec0aed8bbac1eca0d0db1874f020a +# SKIP-SINGLE 8aef401b4f66a64ddfa9390590fb2cae1f96d522 +# SKIP-SINGLE d5bf26f488b7968feed9f43e612a90da2aab15a8 +# SKIP-SINGLE 5d0912f1445e33f1ccf23a84f0dc6d08c4ee2b60 +# SKIP-SINGLE 95692f6754c3a8f55a90df2d6f7ce62be55cdcfc +# SKIP-SINGLE a3edacd3f547195740304139cb68aaa94d7b18ee +# SKIP-SINGLE ae4ff4f25fbf704446f8f38d8e818f223b79042b +# SKIP-SINGLE 9686b015a0d71d08828afb0cfe6e477bbc4909ae +# SKIP-SINGLE 621e732ade0f3dc165498ebde4d55d5aacb05b56 +# SKIP-SINGLE 200dbf7d302e659e618f74bde81c7b3ccd795639 +# SKIP-SINGLE 03663b8798a06bf18ff1e235ac0fb87870f8fe77 +# SKIP-SINGLE 4897c98b6c496801aad2477c289a40a300eee27f +# SKIP-SINGLE e6585e0be2efc3f2eaec7210b036169fbdffa9ce +# SKIP-SINGLE 8ec786349e18068bff39b1387bc4a88d62265e34 +# SKIP-SINGLE 0eba9cf65119a68596c4bf3689086a517d51ce72 +# SKIP-SINGLE ede3535051a8f3b209b830adcaba9cb1ddf58685 +# SKIP-SINGLE 2f94f6de9d64f9fd89284dac171e166e7d721dcd +# SKIP-SINGLE ab5258b19255ebff04df01d6f55888f43c42dcb9 +# SKIP-SINGLE dc7acb1aafe9b0b84481ac51a5bd5125d263537e +# SKIP-SINGLE 348e4504c6d5588443809ec28da3c3c693368e16 +# SKIP-SINGLE 970f94a2dd8bc4be4d71f1075421093ca6f87d28 +# SKIP-SINGLE 6b2c8dc9050c5c0514fa404733ce1d4a37d00e39 +# SKIP-SINGLE 6c3e65a75f582ca007a7fbcc4b866680e3b0e626 +# SKIP-SINGLE 8e8667246a4c06c8362515cbd6bead889babb748 +# SKIP-SINGLE bb4b511c4c63762bfd3b96623323a882cc57ecb6 +# SKIP-SINGLE 567258ab4309a7406cd4087d28cd0e820b17e157 +# SKIP-SINGLE 5fa9458511a17ff79a822e5cf8cc00f7bfb89364 +# SKIP-SINGLE 6d55d93379fa531f81327be6e506610474846758 +# SKIP-SINGLE eedb7111185569e426726fe15242f8ba08f89b31 +# SKIP-SINGLE 4c2cc21354a500b0fc48994b7b60648ef5f00a2d +# SKIP-SINGLE d7168e8575794b7af4e7e2bde51ca0663bbc2eac +# SKIP-SINGLE aad13e61dbf949ca6dea1ff492baca82f40a5738 +# SKIP-SINGLE 184106be2678f18ae90ccd35d69c2ccd61198b0a +# SKIP-SINGLE dfba4347c71d70b8357979ff0fb4bb070b0ed60c +# SKIP-SINGLE a19beb4ad43fe8225d384fc64e2406b7d24621a5 +# SKIP-SINGLE 77c2f05d773271cb59ebfd994b06a4075cacbfa8 +# SKIP-SINGLE ff5caf68c936ec90825efc4fd878d13703fb0400 +# SKIP-SINGLE 1c499c18afd6a709272fe60a540a27093e589fff +# SKIP-SINGLE 5b7e999e24f6cd446961ac441f69af021528623b +# SKIP-SINGLE 9c2cbfa49db96eae95bb40c5fc3ce7f09781a97d +# SKIP-SINGLE 375dac936fcca902874ecfd1c57b713581641725 +# SKIP-SINGLE 0a35c991c19a6dd0a707f2baa868f8989242c3ab +# SKIP-SINGLE e2ee646b162b87e832c8032b9d90577bd21f21f8 +# SKIP-SINGLE 35d2fe176cb438d55552cacbdf25c3692c054d51 +# SKIP-SINGLE de3d8ae71b43f80244c4d813ff1503b8551f0026 +# SKIP-SINGLE a496509cedb17109d0e6297a74e2ff8ed526333c +# SKIP-SINGLE a6a586ffc1bd302e30d80cb88b06e1e7e1573f63 +# SKIP-SINGLE f5d142f66370b29af58360faeea90d1112756bc5 +# SKIP-SINGLE 46e8ab23eaeb5e453042f430fc016cf9ffc2ac37 +# SKIP-SINGLE eb72569dbef91862a765cd4d9f380220244b4549 +# SKIP-SINGLE c4b77b82decb757af0aff1b7420203fa0805b483 +# SKIP-SINGLE 0ee01457a84e031d490553949a2deacd4865a5bb +# SKIP-SINGLE 6c68d9bd3a18c74384fc764179fd92a024d6c35d +# SKIP-SINGLE a46e231a5f27c46933cc53865cee452ad1a0c0d3 +# SKIP-SINGLE c045d5322c2c1658f215bf59d431fcc8f96ffc12 +# SKIP-SINGLE dabb713eb05aff62deb6872a3498327934f18c8d +# SKIP-SINGLE b8c05636ca4b28a7adc62e82a5fed528b402396d +# SKIP-SINGLE e72afa9dbf92f45d00c87c90ead364d52f73024f +# SKIP-SINGLE 9d3aacedf0c217af207d39e390f376914160396b +# SKIP-SINGLE 6bdbb4cbfc2deb7d3a02e1428768e101f3dbd265 +# SKIP-SINGLE 2752573dfb76873dbe783e89a1fbf01d157c54e3 +# SKIP-SINGLE 62e990db7a2fad16756e019b331c28ad5a5a89fe +# SKIP-SINGLE 6253e7e74249c7cdfa86723f0b91a1d207cb143e diff --git a/admin/gitmerge.el b/admin/gitmerge.el index f8f728a24ada..63b11c680074 100644 --- a/admin/gitmerge.el +++ b/admin/gitmerge.el @@ -1,6 +1,6 @@ ;;; gitmerge.el --- help merge one Emacs branch into another -*- lexical-binding: t; -*- -;; Copyright (C) 2010-2023 Free Software Foundation, Inc. +;; Copyright (C) 2010-2024 Free Software Foundation, Inc. ;; Authors: David Engster <deng@randomsample.de> ;; Stefan Monnier <monnier@iro.umontreal.ca> @@ -37,10 +37,10 @@ ;; up-to-date). ;; - Mark commits you'd like to skip, meaning to only merge their ;; metadata (merge strategy 'ours'). -;; - Hit 'm' to start merging. Skipped commits will be merged separately. +;; - Hit 'm' to start merging. Skipped commits will be merged separately. ;; - If conflicts cannot be resolved automatically, you'll have to do -;; it manually. In that case, resolve the conflicts and restart -;; gitmerge, which will automatically resume. It will add resolved +;; it manually. In that case, resolve the conflicts and restart +;; gitmerge, which will automatically resume. It will add resolved ;; files, commit the pending merge and continue merging the rest. ;; - Inspect master branch, and if everything looks OK, push. @@ -68,8 +68,7 @@ bump Emacs version\\|Auto-commit")) (defvar gitmerge-minimum-missing 10 "Minimum number of missing commits to consider merging in batch mode.") -(defvar gitmerge-status-file (expand-file-name "gitmerge-status" - user-emacs-directory) +(defvar gitmerge-status-file (locate-user-emacs-file "gitmerge-status") "File where missing commits will be saved between sessions.") (defvar gitmerge-ignore-branches-regexp @@ -98,11 +97,14 @@ If nil, the function `gitmerge-default-branch' guesses.") (defvar gitmerge-mode-map (let ((map (make-keymap))) - (define-key map [(l)] 'gitmerge-show-log) - (define-key map [(d)] 'gitmerge-show-diff) - (define-key map [(f)] 'gitmerge-show-files) - (define-key map [(s)] 'gitmerge-toggle-skip) - (define-key map [(m)] 'gitmerge-start-merge) + (define-key map [(l)] #'gitmerge-show-log) + (define-key map [(d)] #'gitmerge-show-diff) + (define-key map [(f)] #'gitmerge-show-files) + (define-key map [(s)] #'gitmerge-toggle-skip) + (define-key map [(m)] #'gitmerge-start-merge) + ;; For convenience: + (define-key map [(n)] #'next-line) + (define-key map [(p)] #'previous-line) map) "Keymap for gitmerge major mode.") @@ -122,20 +124,21 @@ If nil, the function `gitmerge-default-branch' guesses.") (with-temp-buffer (if (not branch) (insert-file-contents "configure.ac") - (call-process "git" nil t nil "show" (format "%s:configure.ac" branch)) + (let ((coding-system-for-read vc-git-log-output-coding-system)) + (call-process "git" nil t nil "show" (format "%s:configure.ac" branch))) (goto-char (point-min))) - (re-search-forward "^AC_INIT([^,]+, \\([0-9]+\\)\\.") + (re-search-forward "^AC_INIT([^,]+, \\[?\\([0-9]+\\)\\.") (string-to-number (match-string 1)))) (defun gitmerge-default-branch () - "Default for branch that should be merged; eg \"origin/emacs-26\"." + "Default for branch that should be merged; e.g. \"origin/emacs-28\"." (or gitmerge-default-branch (format "origin/emacs-%s" (1- (gitmerge-emacs-version))))) (defun gitmerge-get-sha1 () "Get SHA1 from commit at point." (save-excursion - (goto-char (point-at-bol)) + (goto-char (line-beginning-position)) (when (looking-at "^[A-Z ]\\s-*\\([a-f0-9]+\\)") (match-string 1)))) @@ -148,7 +151,8 @@ If nil, the function `gitmerge-default-branch' guesses.") (pop-to-buffer (get-buffer-create gitmerge-output-buffer)) (fundamental-mode) (erase-buffer) - (call-process "git" nil t nil "log" "-1" commit) + (let ((coding-system-for-read vc-git-log-output-coding-system)) + (call-process "git" nil t nil "log" "-1" commit)) (goto-char (point-min)) (gitmerge-highlight-skip-regexp))))) @@ -160,7 +164,8 @@ If nil, the function `gitmerge-default-branch' guesses.") (when commit (pop-to-buffer (get-buffer-create gitmerge-output-buffer)) (erase-buffer) - (call-process "git" nil t nil "diff-tree" "-p" commit) + (let ((coding-system-for-read vc-git-log-output-coding-system)) + (call-process "git" nil t nil "diff-tree" "-p" commit)) (goto-char (point-min)) (diff-mode))))) @@ -173,7 +178,9 @@ If nil, the function `gitmerge-default-branch' guesses.") (pop-to-buffer (get-buffer-create gitmerge-output-buffer)) (erase-buffer) (fundamental-mode) - (call-process "git" nil t nil "diff" "--name-only" (concat commit "^!")) + (let ((coding-system-for-read vc-git-log-output-coding-system)) + (call-process "git" nil t nil "diff" "--name-only" + (concat commit "^!"))) (goto-char (point-min)))))) (defun gitmerge-toggle-skip () @@ -183,7 +190,7 @@ If nil, the function `gitmerge-default-branch' guesses.") skip) (when commit (save-excursion - (goto-char (point-at-bol)) + (goto-char (line-beginning-position)) (when (looking-at "^\\([A-Z ]\\)\\s-*\\([a-f0-9]+\\)") (setq skip (string= (match-string 1) " ")) (goto-char (match-beginning 2)) @@ -191,7 +198,7 @@ If nil, the function `gitmerge-default-branch' guesses.") (dolist (ct gitmerge--commits) (when (string-match commit (car ct)) (setcdr ct (when skip "M")))) - (goto-char (point-at-bol)) + (goto-char (line-beginning-position)) (setq buffer-read-only nil) (delete-char 1) (insert (if skip "M" " ")) @@ -216,9 +223,10 @@ if and why this commit should be skipped." ;; Go through the log and remember all commits that match ;; `gitmerge-skip-regexp' or are marked by --cherry-mark. (with-temp-buffer - (call-process "git" nil t nil "log" "--cherry-mark" "--left-only" - "--no-decorate" - (concat from "..." (car (vc-git-branches)))) + (let ((coding-system-for-read vc-git-log-output-coding-system)) + (call-process "git" nil t nil "log" "--cherry-mark" "--left-only" + "--no-decorate" + (concat from "..." (car (vc-git-branches))))) (goto-char (point-max)) (while (re-search-backward "^commit \\(.+\\) \\([0-9a-f]+\\).*" nil t) (let ((cherrymark (match-string 1)) @@ -241,9 +249,10 @@ if and why this commit should be skipped." "Create the buffer for choosing commits." (with-current-buffer (get-buffer-create gitmerge-buffer) (erase-buffer) - (call-process "git" nil t nil "log" "--left-only" - "--pretty=format:%h %<(20,trunc) %an: %<(100,trunc) %s" - (concat from "..." (car (vc-git-branches)))) + (let ((coding-system-for-read vc-git-log-output-coding-system)) + (call-process "git" nil t nil "log" "--left-only" + "--pretty=format:%h %<(20,trunc) %an: %<(100,trunc) %s" + (concat from "..." (car (vc-git-branches))))) (goto-char (point-min)) (while (looking-at "^\\([a-f0-9]+\\)") (let ((skipreason (gitmerge-skip-commit-p (match-string 1) commits))) @@ -326,7 +335,8 @@ Returns non-nil if conflicts remain." ;; (pop-to-buffer (current-buffer)) (debug 'before-resolve) )) ;; Try to resolve the conflicts. - (let (temp) + (let ((coding-system-for-read vc-git-log-output-coding-system) + temp) (cond ;; FIXME when merging release branch to master, we still ;; need to detect and handle the case where NEWS was modified @@ -392,9 +402,10 @@ is nil, only the single commit BEG is merged." (if end "s were " " was ") "skipped:\n\n") "")) - (apply #'call-process "git" nil t nil "log" "--oneline" - (if end (list (concat beg "~.." end)) - `("-1" ,beg))) + (let ((coding-system-for-read vc-git-log-output-coding-system)) + (apply #'call-process "git" nil t nil "log" "--oneline" + (if end (list (concat beg "~.." end)) + `("-1" ,beg)))) (insert "\n") ;; Truncate to 72 chars so that the resulting ChangeLog line fits in 80. (goto-char (point-min)) @@ -408,8 +419,9 @@ MISSING must be a list of SHA1 strings." (with-current-buffer (get-buffer-create gitmerge-output-buffer) (erase-buffer) (let* ((skip (cdar missing)) + (coding-system-for-read vc-git-log-output-coding-system) (beg (car (pop missing))) - end commitmessage) + end commitmessage commitmessage1 commitmessage-file status) ;; Determine last revision with same boolean skip status. (while (and missing (eq (null (cdar missing)) @@ -423,12 +435,32 @@ MISSING must be a list of SHA1 strings." (if end (concat ".." (substring end 0 6)) "")) (unless end (setq end beg)) - (unless (zerop - (apply #'call-process "git" nil t nil "merge" "--no-ff" - (append (when skip '("-s" "ours")) - `("-m" ,commitmessage ,end)))) + (when (eq system-type 'windows-nt) + ;; Command lines on MS-Windows cannot include newlines. + ;; Since "git merge" doesn't accept a -F FILE option, we + ;; commit the merge with a shortened single-line log message, + ;; and then invoke "git commit --amend" with the full log + ;; message from a temporary file. + (setq commitmessage1 + ;; Make sure the commit message is at most a single line. + (car (split-string commitmessage "[\f\n\r\v]+"))) + (setq commitmessage-file (make-nearby-temp-file "gitmerge-msg")) + (let ((coding-system-for-write vc-git-commits-coding-system)) + (write-region commitmessage nil commitmessage-file nil 'silent))) + (unless (setq status + (zerop + (apply #'call-process "git" nil t nil "merge" "--no-ff" + (append (when skip '("-s" "ours")) + (if commitmessage-file + `("-m" ,commitmessage1 ,end) + `("-m" ,commitmessage ,end)))))) (gitmerge-write-missing missing from) - (gitmerge-resolve-unmerged))) + (gitmerge-resolve-unmerged)) + (when (and commitmessage-file (file-exists-p commitmessage-file)) + (if status + (call-process "git" nil t nil + "commit" "--amend" "-F" commitmessage-file)) + (delete-file commitmessage-file))) missing)) (defun gitmerge-resolve-unmerged () @@ -436,12 +468,13 @@ MISSING must be a list of SHA1 strings." Throw an user-error if we cannot resolve automatically." (with-current-buffer (get-buffer-create gitmerge-output-buffer) (erase-buffer) - (let (files conflicted) + (let ((coding-system-for-read vc-git-log-output-coding-system) + files conflicted) ;; List unmerged files (if (not (zerop (call-process "git" nil t nil "diff" "--name-only" "--diff-filter=U"))) - (error "Error listing unmerged files. Resolve manually.") + (error "Error listing unmerged files. Resolve manually.") (goto-char (point-min)) (while (not (eobp)) (push (buffer-substring (point) (line-end-position)) files) @@ -479,17 +512,19 @@ Throw an user-error if we cannot resolve automatically." (defun gitmerge-repo-clean () "Return non-nil if repository is clean." (with-temp-buffer + (let ((coding-system-for-read vc-git-log-output-coding-system)) (call-process "git" nil t nil "diff" "--staged" "--name-only") (call-process "git" nil t nil "diff" "--name-only") - (zerop (buffer-size)))) + (zerop (buffer-size))))) (defun gitmerge-commit () "Commit, and return non-nil if it succeeds." (with-current-buffer (get-buffer-create gitmerge-output-buffer) - (erase-buffer) - (eq 0 (call-process "git" nil t nil "commit" "--no-edit")))) + (let ((coding-system-for-read vc-git-log-output-coding-system)) + (erase-buffer) + (eq 0 (call-process "git" nil t nil "commit" "--no-edit"))))) (defun gitmerge-maybe-resume () "Check if we have to resume a merge. @@ -599,12 +634,18 @@ Branch FROM will be prepended to the list." (with-current-buffer (gitmerge-setup-log-buffer gitmerge--commits gitmerge--from) (goto-char (point-min)) - (insert (propertize "Commands: " 'font-lock-face 'bold) - "(s) Toggle skip, (l) Show log, (d) Show diff, " - "(f) Show files, (m) Start merge\n" - (propertize "Flags: " 'font-lock-face 'bold) - "(C) Detected backport (cherry-mark), (R) Log matches " - "regexp, (M) Manually picked\n\n") + (insert (substitute-command-keys + (concat + (propertize "Commands: " 'font-lock-face 'bold) + "\\<gitmerge-mode-map>" + "(\\[gitmerge-toggle-skip]) Toggle skip, " + "(\\[gitmerge-show-log]) Show log, " + "(\\[gitmerge-show-diff]) Show diff, " + "(\\[gitmerge-show-files]) Show files, " + "(\\[gitmerge-start-merge]) Start merge\n" + (propertize "Flags: " 'font-lock-face 'bold) + "(C) Detected backport (cherry-mark), (R) Matches skip " + "regexp, (M) Manually picked\n\n"))) (gitmerge-mode) (pop-to-buffer (current-buffer)) (if noninteractive (gitmerge-start-merge)))))) diff --git a/admin/grammars/Makefile.in b/admin/grammars/Makefile.in index 375d39668f24..5904c07dfcd7 100644 --- a/admin/grammars/Makefile.in +++ b/admin/grammars/Makefile.in @@ -1,6 +1,6 @@ ### @configure_input@ -## Copyright (C) 2013-2023 Free Software Foundation, Inc. +## Copyright (C) 2013-2024 Free Software Foundation, Inc. ## This file is part of GNU Emacs. @@ -31,10 +31,11 @@ top_builddir = @top_builddir@ -include ${top_builddir}/src/verbose.mk # Prevent any settings in the user environment causing problems. -unexport EMACSDATA EMACSDOC EMACSPATH +unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH EMACS = ${top_builddir}/src/emacs -emacs = EMACSLOADPATH= "${EMACS}" -batch --no-site-file --no-site-lisp --eval '(setq load-prefer-newer t)' +emacs = "${EMACS}" -batch --no-site-file --no-site-lisp \ + --eval '(setq load-prefer-newer t)' make_bovine = ${emacs} -l semantic/bovine/grammar -f bovine-batch-make-parser make_wisent = ${emacs} -l semantic/wisent/grammar -f wisent-batch-make-parser diff --git a/admin/grammars/c.by b/admin/grammars/c.by index a152e3d86967..b3ebd3324fb0 100644 --- a/admin/grammars/c.by +++ b/admin/grammars/c.by @@ -1,5 +1,5 @@ ;;; c.by -- LL grammar for C/C++ language specification -;; Copyright (C) 1999-2023 Free Software Foundation, Inc. +;; Copyright (C) 1999-2024 Free Software Foundation, Inc. ;; ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; David Ponce <david@dponce.com> diff --git a/admin/grammars/grammar.wy b/admin/grammars/grammar.wy index 1821948ffcb0..a81a2df4a6fb 100644 --- a/admin/grammars/grammar.wy +++ b/admin/grammars/grammar.wy @@ -1,6 +1,6 @@ ;;; semantic-grammar.wy -- LALR grammar of Semantic input grammars ;; -;; Copyright (C) 2002-2023 Free Software Foundation, Inc. +;; Copyright (C) 2002-2024 Free Software Foundation, Inc. ;; ;; Author: David Ponce <david@dponce.com> ;; Created: 26 Aug 2002 diff --git a/admin/grammars/java-tags.wy b/admin/grammars/java-tags.wy index 578172c0b7bd..0f8f50fd606a 100644 --- a/admin/grammars/java-tags.wy +++ b/admin/grammars/java-tags.wy @@ -1,6 +1,6 @@ ;;; java-tags.wy -- Semantic LALR grammar for Java -;; Copyright (C) 2002-2023 Free Software Foundation, Inc. +;; Copyright (C) 2002-2024 Free Software Foundation, Inc. ;; ;; Author: David Ponce <david@dponce.com> ;; Created: 26 Aug 2002 diff --git a/admin/grammars/js.wy b/admin/grammars/js.wy index fc68471face8..13e8b756e477 100644 --- a/admin/grammars/js.wy +++ b/admin/grammars/js.wy @@ -1,6 +1,6 @@ ;;; javascript-jv.wy -- LALR grammar for Javascript -;; Copyright (C) 2005-2023 Free Software Foundation, Inc. +;; Copyright (C) 2005-2024 Free Software Foundation, Inc. ;; Copyright (C) 1998-2011 Ecma International. ;; Author: Joakim Verona diff --git a/admin/grammars/make.by b/admin/grammars/make.by index 7bee4ed0ab4d..f7a8023b1cff 100644 --- a/admin/grammars/make.by +++ b/admin/grammars/make.by @@ -1,6 +1,6 @@ ;;; make.by -- BY notation for Makefiles. -;; Copyright (C) 1999-2023 Free Software Foundation, Inc. +;; Copyright (C) 1999-2024 Free Software Foundation, Inc. ;; ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; David Ponce <david@dponce.com> diff --git a/admin/grammars/python.wy b/admin/grammars/python.wy index 081a4d7ea3f2..cf01ff6f5f99 100644 --- a/admin/grammars/python.wy +++ b/admin/grammars/python.wy @@ -1,6 +1,6 @@ ;;; python.wy -- LALR grammar for Python -;; Copyright (C) 2002-2023 Free Software Foundation, Inc. +;; Copyright (C) 2002-2024 Free Software Foundation, Inc. ;; Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, ;; 2009, 2010 Python Software Foundation; All Rights Reserved diff --git a/admin/grammars/scheme.by b/admin/grammars/scheme.by index 288557db54e7..d96529e63894 100644 --- a/admin/grammars/scheme.by +++ b/admin/grammars/scheme.by @@ -1,6 +1,6 @@ ;;; scheme.by -- Scheme BNF language specification -;; Copyright (C) 2001-2023 Free Software Foundation, Inc. +;; Copyright (C) 2001-2024 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. diff --git a/admin/grammars/srecode-template.wy b/admin/grammars/srecode-template.wy index 7c0d03d53e1d..3dc8b533f33e 100644 --- a/admin/grammars/srecode-template.wy +++ b/admin/grammars/srecode-template.wy @@ -1,6 +1,6 @@ ;;; srecode-template.wy --- Semantic Recoder Template parser -;; Copyright (C) 2005-2023 Free Software Foundation, Inc. +;; Copyright (C) 2005-2024 Free Software Foundation, Inc. ;; Author: Eric M. Ludlam <zappo@gnu.org> ;; Keywords: syntax @@ -126,7 +126,7 @@ variable : SET symbol insertable-string-list newline (VARIABLE-TAG $2 nil $3) | SET symbol number newline - ;; This so a common error w/ priority works. + ;; This so a common error with priority works. ;; Note that "number" still has a string value in the lexer. (VARIABLE-TAG $2 nil (list $3)) | SHOW symbol newline diff --git a/admin/last-chance.el b/admin/last-chance.el index c5bb8bb196f3..c9cc88031f28 100644 --- a/admin/last-chance.el +++ b/admin/last-chance.el @@ -1,6 +1,6 @@ ;;; last-chance.el --- dangling deterrence -*- lexical-binding: t; -*- -;; Copyright (C) 2016-2023 Free Software Foundation, Inc. +;; Copyright (C) 2016-2024 Free Software Foundation, Inc. ;; Author: Thien-Thi Nguyen <ttn@gnu.org> ;; Maintainer: emacs-devel@gnu.org @@ -41,7 +41,7 @@ ;; ;; will show you any references to `change-log-date-face' in the ;; *.el files in a new buffer (in Grep mode). Hopefully you see -;; only the obsolete declaration and can proceed w/ its removal. +;; only the obsolete declaration and can proceed with its removal. ;; If not, please DTRT and refrain from the removal until those ;; references are properly transitioned. ;; diff --git a/admin/make-emacs b/admin/make-emacs index f31c2383fc0a..e6ab6a51f7b7 100755 --- a/admin/make-emacs +++ b/admin/make-emacs @@ -2,7 +2,7 @@ # Build Emacs with various options for profiling, debugging, # with and without warnings enabled etc. -# Copyright (C) 2001-2023 Free Software Foundation, Inc. +# Copyright (C) 2001-2024 Free Software Foundation, Inc. # This file is part of GNU Emacs. diff --git a/admin/make-manuals b/admin/make-manuals index b2cd7ceb004b..477daa09a4c3 100755 --- a/admin/make-manuals +++ b/admin/make-manuals @@ -1,7 +1,7 @@ #!/bin/bash ### make-manuals - create the Emacs manuals to upload to the gnu.org website -## Copyright 2018-2023 Free Software Foundation, Inc. +## Copyright 2018-2024 Free Software Foundation, Inc. ## Author: Glenn Morris <rgm@gnu.org> ## Maintainer: emacs-devel@gnu.org @@ -33,13 +33,7 @@ ### Code: -die () # write error to stderr and exit -{ - [ $# -gt 0 ] && echo "$PN: $@" >&2 - exit 1 -} - -PN=${0##*/} # basename of script +source "${0%/*}/emacs-shell-lib" usage () { @@ -94,8 +88,7 @@ OPTIND=1 [ -e admin/admin.el ] || die "admin/admin.el not found" -tempfile=/tmp/$PN.$$ -trap "rm -f $tempfile 2> /dev/null" EXIT +tempfile="$(emacs_mktemp)" [ "$continue" ] || rm -rf $outdir diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt index 3aee05c3d06c..5704e8e89225 100644 --- a/admin/make-tarball.txt +++ b/admin/make-tarball.txt @@ -22,6 +22,11 @@ Steps to take before starting on the first pretest in any release sequence: You can use 'gnupload --delete' (see below for more gnupload details). (We currently don't bother with this.) +4. Check that all new Lisp libraries belong to sensible packages. + Run "make -C lisp finder-data" and check the diff of the generated + file against the previously released Emacs version to see what has + changed. + General steps (for each step, check for possible errors): 1. git pull # fetch from the repository @@ -52,11 +57,12 @@ General steps (for each step, check for possible errors): ./autogen.sh ./configure --with-native-compilation && make - For a release (as opposed to pretest), delete any left-over "---" - and "+++" markers from etc/NEWS, as well as the "Temporary note" - section at the beginning of that file, and commit etc/NEWS if it - was modified. For a bug fix release (e.g. 28.2), delete any empty - headlines too. + For a release (as opposed to pretest), visit etc/NEWS and use the + "M-x emacs-news-delete-temporary-markers" command to delete any + left-over "---" and "+++" markers from etc/NEWS, as well as the + "Temporary note" section at the beginning of that file, and commit + etc/NEWS if it was modified. For a bug fix release (e.g. 28.2), + delete any empty headlines too. 2. Regenerate the versioned ChangeLog.N and etc/AUTHORS files. @@ -67,16 +73,26 @@ General steps (for each step, check for possible errors): PREFERRED_BRANCH = emacs-NN where NN is the version on the release branch from which you are - producing the tarball. If NN is incorrect, update Makefile.in and - re-run 'configure' to update Makefile. - - If the versioned ChangeLog.N file is too large, start a new one - by bumping N, and also update the line in top-level Makefile.in - which says + producing the tarball. If NN is incorrect (which it usually is + when starting a pretest of a new major release), update + Makefile.in and re-run 'configure' to update Makefile. + + For the first pretest of a new major release, consider starting a + new top-level ChangeLog.N file if the last versioned ChangeLog.N + file is too large. A good point to start a new ChangeLog.N file + is when the last one gets larger than 5 MiB, or when you make the + first pretest of a new major release, whichever happens later. If + so, start a new ChangeLog.N file by bumping N, and also update the + line in top-level Makefile.in which says CHANGELOG_HISTORY_INDEX_MAX = N by incrementing the value of N by 1; then regenerate Makefile. + After bumping N, you need to actually create and commit + ChangeLog.N with the updated N, otherwise "M-x authors" below will + fail. The easiest way of creating the new ChangeLog.N is to + rename the file ChangeLog (without the .N suffix) left over from + the last major release (it is usually unversioned) and commit it. Now: @@ -98,11 +114,12 @@ General steps (for each step, check for possible errors): the relevant entry. If a file was deleted or renamed, consider adding an appropriate entry to variables authors-ignored-files, authors-valid-file-names, or authors-renamed-files-alist in - authors.el. + authors.el. If some authors are "ignored", consider adding + entries to the author-aliases variable. If necessary, repeat 'C-u M-x authors' after making those changes. Save the "*Authors*" buffer as etc/AUTHORS. - Check the diff looks reasonable. Maybe add entries to + Check the diff looks reasonable. Maybe add more entries to authors-ambiguous-files or authors-aliases, and repeat. Commit any fixes to authors.el. @@ -149,6 +166,13 @@ General steps (for each step, check for possible errors): 4. autoreconf -i -I m4 --force make bootstrap + The below script checks for any mistakes in the source text of + manual pages. Fix any errors and re-run the script to verify. + + ./admin/check-man-pages + + Then do this: + make -C etc/refcards make -C etc/refcards clean @@ -161,7 +185,13 @@ General steps (for each step, check for possible errors): messages from TeX, but those seem to be harmless, as the result looks just fine.) -5. Copy lisp/loaddefs.el to lisp/ldefs-boot.el. +5. Copy lisp/loaddefs.el to lisp/ldefs-boot.el. After copying, edit + ldefs-boot.el to add + + ;; no-byte-compile: t + + to its file-local variables section, otherwise make-dist will + complain. Commit ChangeLog.N, etc/AUTHORS, lisp/ldefs-boot.el, and the files changed by M-x set-version. Note that the set-version changes @@ -180,7 +210,11 @@ General steps (for each step, check for possible errors): you need to repeat from step 4 onwards. (You can commit the files from step 2 and 3 earlier to reduce the chance of this.) -6. ./make-dist --snapshot --no-compress +6. If there has been a change in who is the Emacs maintainer since + the last release, update doc/misc/ack.texi and admin/MAINTAINERS + to reflect this. You can commit this separately. + +7. ./make-dist --snapshot --no-compress Check the contents of the new tar with admin/diff-tar-files against the previous release (if this is the first pretest) or the @@ -209,7 +243,7 @@ General steps (for each step, check for possible errors): The output of this command might be easier to compare to the tarball than the one you get from find. -7. tar xf emacs-NEW.tar; cd emacs-NEW +8. tar xf emacs-NEW.tar; cd emacs-NEW ./configure --prefix=/tmp/emacs && make check && make install Use 'script' or M-x compile to save the compilation log in @@ -219,7 +253,7 @@ General steps (for each step, check for possible errors): M-x ediff. Especially check that Info files aren't built, and that no autotools (autoconf etc) run. -8. You can now tag the release/pretest and push it together with the +9. You can now tag the release/pretest and push it together with the last commit: cd EMACS_ROOT_DIR && git tag -a TAG -m "Emacs TAG" @@ -245,7 +279,7 @@ General steps (for each step, check for possible errors): git tag -a emacs-28.1-rc1 -m "Emacs 28.1 RC1" git tag -a emacs-28.1 -m "Emacs 28.1 release" -9. Decide what compression schemes to offer. +10. Decide what compression schemes to offer. For a release, at least gz and xz: gzip --best --no-name -c emacs-NEW.tar > emacs-NEW.tar.gz xz -c emacs-NEW.tar > emacs-NEW.tar.xz @@ -289,14 +323,14 @@ General steps (for each step, check for possible errors): For a pretest, place the files in /incoming/alpha instead, so that they appear on https://alpha.gnu.org/. -10. After five minutes, verify that the files are visible at +11. After five minutes, verify that the files are visible at https://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, or https://ftp.gnu.org/gnu/emacs/ for a release. Download them and check the signatures and SHA1/SHA256 checksums. Check they build (./configure --with-native-compilation). -11. Send an announcement to: emacs-devel, and bcc: info-gnu-emacs@gnu.org. +12. Send an announcement to: emacs-devel, and bcc: info-gnu-emacs@gnu.org. For a pretest, also bcc: platform-testers@gnu.org. For a release, also bcc: info-gnu@gnu.org. (The reason for using bcc: is to make it less likely that people @@ -320,9 +354,9 @@ General steps (for each step, check for possible errors): (Use e.g. `M-x mml-secure-message-sign' in `message-mode' to sign an email.) -12. After a release, update the Emacs pages as described below. +13. After a release, update the Emacs pages as described below. -13. After a release, bump the Emacs version on the release branch. +14. After a release, bump the Emacs version on the release branch. There is no need to bump the version after a pretest; the version is bumped before the next pretest or release instead. @@ -401,6 +435,13 @@ Now change to the 'manual' directory and invoke upload-manuals: If upload-manuals fails, resolve the problems and re-invoke it. This requires running make-manuals again, since upload-manuals destructively modifies the 'manual' directory where you invoke it. + + If new files fail to be "cvs add"ed, they need to be manually + removed from under /path/to/webpages/cvs/checkout before retrying + upload-manuals, because if they exist, they will not be handled as + "new" files, and will not be "cvs add"ed by the next run of the + script. + Also, upload-manuals invokes "cvs commit -f", so if you run it several times, some files will be committed more than once even though they were not changed in-between. Suck it up. diff --git a/admin/merge-gnulib b/admin/merge-gnulib index 815ffbd180c2..fabc83c9d02a 100755 --- a/admin/merge-gnulib +++ b/admin/merge-gnulib @@ -4,7 +4,7 @@ # # admin/merge-gnulib -# Copyright 2012-2023 Free Software Foundation, Inc. +# Copyright 2012-2024 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -40,10 +40,10 @@ GNULIB_MODULES=' getloadavg getopt-gnu getrandom gettime gettimeofday gitlog-to-changelog ieee754-h ignore-value intprops largefile libgmp lstat manywarnings memmem-simple mempcpy memrchr minmax mkostemp mktime - nproc nstrftime + nanosleep nproc nstrftime pathmax pipe2 pselect pthread_sigmask qcopy-acl readlink readlinkat regex - sig2str sigdescr_np socklen stat-time std-gnu11 stdalign stddef stdio + sig2str sigdescr_np socklen stat-time std-gnu11 stdalign stdbool stddef stdio stpcpy strnlen strtoimax symlink sys_stat sys_time tempname time time_r time_rz timegm timer-time timespec-add timespec-sub update-copyright unlocked-io utimensat @@ -51,10 +51,10 @@ GNULIB_MODULES=' ' AVOIDED_MODULES=' - btowc close crypto/af_alg dup fchdir fstat langinfo lock + btowc chmod close crypto/af_alg dup fchdir fstat langinfo lock mbrtowc mbsinit memchr mkdir msvc-inval msvc-nothrow nl_langinfo openat-die opendir pthread-h raise - save-cwd select setenv sigprocmask stat stdarg stdbool + save-cwd select setenv sigprocmask stat stdarg threadlib tzset unsetenv utime utime-h wchar wcrtomb wctype-h ' @@ -102,6 +102,12 @@ test -x "$gnulib_srcdir"/gnulib-tool || { exit 1 } +# gnulib-tool has problems with a bare checkout (Bug#32452#65). +test -f configure || ./autogen.sh || exit + +# Old caches can confuse autoconf when some Gnulib-related changes take effect. +rm -fr autom4te.cache || exit + avoided_flags= for module in $AVOIDED_MODULES; do avoided_flags="$avoided_flags --avoid=$module" @@ -109,7 +115,9 @@ done "$gnulib_srcdir"/gnulib-tool --dir="$src" $GNULIB_TOOL_FLAGS \ $avoided_flags $GNULIB_MODULES && -rm -- "$src"lib/gl_openssl.h "$src"m4/fcntl-o.m4 \ +rm -- "$src"lib/gl_openssl.h \ + "$src"lib/stdio-read.c "$src"lib/stdio-write.c \ + "$src"m4/fcntl-o.m4 \ "$src"m4/gl-openssl.m4 \ "$src"m4/gnulib-cache.m4 "$src"m4/gnulib-tool.m4 \ "$src"m4/manywarnings-c++.m4 \ diff --git a/admin/merge-pkg-config b/admin/merge-pkg-config index ba3c48b546bb..8bceb0ba2ca8 100755 --- a/admin/merge-pkg-config +++ b/admin/merge-pkg-config @@ -4,7 +4,7 @@ # # admin/merge-pkg-config -# Copyright 2014-2023 Free Software Foundation, Inc. +# Copyright 2014-2024 Free Software Foundation, Inc. # This file is part of GNU Emacs. diff --git a/admin/notes/bug-triage b/admin/notes/bug-triage index 3d9a275c9d26..6fad55dc1e39 100644 --- a/admin/notes/bug-triage +++ b/admin/notes/bug-triage @@ -1,10 +1,10 @@ HOW TO TRIAGE EMACS BUGS -*- outline -*- -This document just describes the procedure of triaging bugs, for information on -how to work with the bug tracker, see the bugtracker file in this same directory -for the basics. You can also install the debbugs ELPA package for access to M-x -debbugs-gnu, an emacs interface to debbugs, and M-x debbugs-org, an emacs -interface via org-mode. +This document describes the procedure of triaging bugs. For information on how +to work with the bug tracker, see the file "bugtracker" in the same directory as +this file for the basics. You can also install the GNU ELPA package 'debbugs' +for access to 'M-x debbugs-gnu', an Emacs interface to the debbugs bug tracker, +and 'M-x debbugs-org', an Emacs interface via org-mode. * Bug backlog triage procedure @@ -15,9 +15,10 @@ the ones that are not reproducible on the current release. calling debbugs-gnu-emacs-release-blocking-reports. If you want to check this for another Emacs version but the next-to-be-released-one, use the "C-u" prefix. - 1. After that, enter debbugs mode (either debbugs-gnu, debbugs-org, or via the - web browser), and accept the default list option of bugs that have severity - serious, important, or normal. + 1. After that, enter debbugs mode (either using 'M-x debbugs-gnu', + 'M-x debbugs-org', or via the web browser), and accept the + default list option of bugs that have severity "serious", + "important", or "normal". 2. For each bug, we want to primarily make sure it is still reproducible. A bug can and should stay open as long as it is still a bug and no one has fixed it. The following is a @@ -73,7 +74,7 @@ the ones that are not reproducible on the current release. know if you are able to? If I don't hear back in a few weeks, I'll just close this bug as unreproducible." [ ] Check that the priority is reasonable. Most bugs should be - marked as normal, but crashers and security issues can be + marked as normal, but crashes and security issues can be marked as serious. 3. Your changes will take some time to take effect. After a period of minutes to hours, you will get a mail telling you the control message has been @@ -90,21 +91,51 @@ necessary information for others to act on. For each new bug, ask the following questions: - 1. Is the bug report written in a way to be easy to reproduce (starts from - "emacs -Q", etc.)? If not, ask the reporter to try and reproduce it on an - emacs without customization. - 2. Is the bug report written against the latest emacs? If not, try to - reproduce on the latest version, and if it can't be reproduced, ask the - reporter to try again with the latest version. + 1. Is the bug report written in a way to be easy to reproduce + (starts from "emacs -Q", etc.)? If not, ask the reporter to try + and reproduce it on an emacs without customization. + 2. Is the bug report written against the latest emacs? If not, try + to reproduce on the latest version, and if it can't be + reproduced, ask the reporter to try again with the latest + version. 3. Is the bug the same as another bug? If so, merge the bugs. - 4. What is the priority of the bug? Add a priority: serious, important, - normal, minor, or wishlist. - 5. Who should be the owner? This depends on what component the bug is part - of. You can look at the admin/MAINTAINERS file (then you can just search - emacs-devel to match the name with an email address). + 4. What is the priority of the bug? Add a priority: "serious", + "important", "normal", "minor, or "wishlist". + 5. Who should be the owner? This depends on what component the bug + is part of. You can look at the "Maintainer" comment header in + the relevant Lisp files. If you can't find the name there, look + at admin/MAINTAINERS file (then you can just search emacs-devel + to match the name with an email address). In the debbugs-gnu buffer, bugs are marked in the "State" column according to the communication flow. Red bugs mean that nobody has -answered, these bugs need primary attention. Green bugs flag that +answered; these bugs need primary attention. Green bugs flag that there is a recent communication about, and orange bugs flag that the bug hasn't been touched for at least two weeks. + +* Bugs in GNU ELPA and NonGNU ELPA packages + +The goal here is to ping the relevant maintainers, as Emacs core +developers aren't always up-to-date with recent developments in all +GNU ELPA packages, and can't do anything with reports about bugs in +NonGNU ELPA packages. + +This is how we deal with them: + + 1. Bugs in GNU ELPA packages can always be reported to our bug + tracker, even if they are usually tracked by other means. Search + for the maintainer of that package, e.g. on + https://elpa.gnu.org/packages and take note of their email + address. Send a reply with an email body like "<name> is the + maintainer of <package>, so I'm copying them in here.", and + include their email address in Cc. + 2. Bugs in NonGNU ELPA packages should be sent to their maintainers, + because we can't do anything to fix them. If you suspect that + the bug is about a NonGNU ELPA package, it's usually polite to + ask the reporter if this is indeed the case (in case you + misunderstood something), and then to point them in the right + direction. Such bugs can be closed once the confusion has been + resolved. + 3. Bugs in third-party packages that are not in any of the above + repositories are handled in the same way as packages in NonGNU + ELPA. diff --git a/admin/notes/bugtracker b/admin/notes/bugtracker index deb06f552cc3..b47061884d6d 100644 --- a/admin/notes/bugtracker +++ b/admin/notes/bugtracker @@ -39,7 +39,7 @@ tags 123 moreinfo|unreproducible|wontfix|patch|notabug For a list of all bugs, see https://debbugs.gnu.org/db/pa/lemacs.html This is a static page, updated once a day. There is also a dynamic -list, generated on request. This accepts various options, eg to see +list, generated on request. This accepts various options, e.g., to see the most recent bugs: https://debbugs.gnu.org/cgi/pkgreport.cgi?newest=100 @@ -98,7 +98,7 @@ you might want to have a dialog with the owner address, outside of normal bug reporting.) ** When reporting a new bug, to send a Cc to another address -(e.g. bug-cc-mode@gnu.org), do NOT just use a Cc: header. +(e.g., bug-cc-mode@gnu.org), do NOT just use a Cc: header. Instead, use "X-Debbugs-Cc:". This ensures the Cc address(es) will get a mail with the bug report number in. If you do not do this, each reply in the subsequent discussion might end up creating a new bug. @@ -138,7 +138,8 @@ The "maintainer email address" is "bug-gnu-emacs@gnu.org" in most cases. ** To not get acknowledgment mail from the tracker, add an "X-Debbugs-No-Ack:" header (with any value). If you use Gnus, -you can add an element to gnus-posting-styles to do this automatically, eg: +you can add an element to gnus-posting-styles to do this automatically, +e.g.: ("gnu-emacs\\(-pretest\\)?-bug" ("X-Debbugs-No-Ack" "yes")) @@ -222,14 +223,14 @@ Mail-Followup-To: 123@debbugs.gnu.org, person-who-closed ** Setting bug parameters. There are two ways to set the parameters of bugs in the database (tags, severity level, etc). When you report a new bug, you can -provide a "pseudo-header" at the start of the report, eg: +provide a "pseudo-header" at the start of the report, e.g.: Package: emacs Version: 23.0.60 Severity: minor This can also include tags, or any X-Debbugs- setting. -Some things (e.g. submitter) don't seem to work here. +Some things (e.g., submitter) don't seem to work here. Otherwise, send mail to the control server, control@debbugs.gnu.org. At the start of the message body, supply the desired commands, one per @@ -258,12 +259,12 @@ where VERSION is XX.YY numerical version number, like 42.1. *** To reopen a closed bug: reopen 123 -*** Bugs can be tagged in various ways (eg wontfix, patch, etc). +*** Bugs can be tagged in various ways (e.g., wontfix, patch, etc). The available tags are: patch wontfix moreinfo unreproducible fixed notabug help security confirmed easy See https://debbugs.gnu.org/Developer#tags The list of tags can be prefixed with +, - or =, meaning to add (the -default), remove, or reset the tags. E.g.: +default), remove, or reset the tags. E.g.: tags 123 + wontfix @@ -310,7 +311,7 @@ This will add a usertag "any-tag-you-like" to bug#1234. The tag will be associated with the user "emacs". If you omit the first line, the tag will be associated with your email address. -The syntax of the usertags command is the same as that of tags (eg wrt +The syntax of the usertags command is the same as that of tags (e.g., wrt the optional [=+-] argument). b) In an initial submission, in the pseudo-header: @@ -340,15 +341,15 @@ than one email address, but it does not seem to work for me.) **** To find bugs tagged with a specific usertag: This works just like a normal tags search, but with the addition of a -"users" field. Eg: +"users" field. E.g.: https://debbugs.gnu.org/cgi/pkgreport.cgi?users=emacs;tag=calendar *** To merge bugs: -Eg when bad replies create a bunch of new bugs for the same report. -Bugs must all be in the same state (e.g. same package(s) and severity +e.g., when bad replies create a bunch of new bugs for the same report. +Bugs must all be in the same state (e.g., same package(s) and severity -- see 'reassign' and 'severity' below), but need not have the same -tags (tags are merged). E.g.: +tags (tags are merged). E.g.: merge 123 124 125 ... @@ -557,7 +558,7 @@ debbugs-submit. Approved mail is passed on to the tracker. tracker, since mail from whitelisted senders goes straight through.) NOTE: An alternative to this would be to use listhelper AT nongnu.org -as a moderator address. Eg the emacs-bug-tracker list uses this. +as a moderator address. E.g., the emacs-bug-tracker list uses this. It does basic spam processing on the moderator requests and automatically rejects the obviously bogus ones. Someone still has to accept the good ones though. The advantage of this would not be having diff --git a/admin/notes/copyright b/admin/notes/copyright index ae09707bac8f..fe94b5c68d94 100644 --- a/admin/notes/copyright +++ b/admin/notes/copyright @@ -1,4 +1,4 @@ -Copyright (C) 2007-2023 Free Software Foundation, Inc. +Copyright (C) 2007-2024 Free Software Foundation, Inc. See the end of the file for license conditions. diff --git a/admin/notes/emba b/admin/notes/emba index 91ac0f390ef9..36eb98a17214 100644 --- a/admin/notes/emba +++ b/admin/notes/emba @@ -1,6 +1,6 @@ -*- mode: outline; coding: utf-8 -*- -Copyright (C) 2019-2023 Free Software Foundation, Inc. +Copyright (C) 2019-2024 Free Software Foundation, Inc. See the end of the file for license conditions. NOTES FOR EMACS CONTINUOUS BUILD ON EMBA @@ -8,7 +8,8 @@ NOTES FOR EMACS CONTINUOUS BUILD ON EMBA A continuous build for Emacs can be found at <https://emba.gnu.org/emacs/emacs>, a Gitlab instance. It watches the Emacs git repository and starts a pipeline (jobset) if there are new -changes. This happens for all Emacs branches. +changes. This happens for all Emacs branches which belong to the +defined workflow (see below). * Mail notifications @@ -20,7 +21,7 @@ If you want to receive these notifications, please subscribe at <https://lists.gnu.org/mailman/listinfo/emacs-buildstatus>. Alternatively, these notifications can be read via gmane at -<nntp+news.gmane.org:gmane.emacs.buildstatus>. +<nntp+news.gmane.io:gmane.emacs.buildstatus>. The messages contain a URL to the log file of the failed job, like <https://emba.gnu.org/emacs/emacs/-/jobs/739/raw>. @@ -28,29 +29,49 @@ The messages contain a URL to the log file of the failed job, like * Emacs jobset The Emacs jobset is defined in the Emacs source tree, file -'.gitlab-ci.yml'. It could be adapted for every Emacs branch, see +'.gitlab-ci.yml'. All related files are located in directory +'test/infra'. They could be adapted for every Emacs branch, see <https://emba.gnu.org/help/ci/yaml/README.md>. +Only branches whose name starts with 'master', 'emacs', 'feature', or +'fix' are considered. This is declared in the workflow rules of file +'test/infra/gitlab-ci.yml'. + +A jobset on Gitlab is called a pipeline. Emacs pipelines run through +the stages 'build-images', 'platform-images' and 'native-comp-images' +(create an Emacs instance by 'make bootstrap' with different +configuration parameters) as well as 'normal', 'platforms' and +'native-comp' (run respective test jobs based on the produced images). + +The jobs for stage 'normal' are contained in the file +'test/infra/test-jobs.yml'. This file is generated by calling 'make +-C test generate-test-jobs' in the Emacs source tree, and the +resulting file should be pushed to the Emacs git repository afterwards. + Every job runs in a Debian docker container. It uses the local clone of the Emacs git repository to perform a bootstrap and test of Emacs. -This could happen for several jobs with changed configuration, compile +This could happen for several jobs with changed configuration, compile, and test parameters. -There are different types of jobs: 'prep-image-base' is responsible to -prepare the environment for the following jobs. 'build-image-*' jobs -are responsible to compile Emacs in different configuration. The -corresponding 'test-*' jobs run the ert tests. +The 'build-image-*' jobs of the different '*-images' stages run only +if there are severe changes in the Emacs sources, like in Makefiles +etc. Otherwise they are skipped, and the corresponding 'test-*' jobs +run just 'make -C test ...' in the respective Docker image from a +previous build run. -A special job is 'test-all-inotify', which runs 'make check-expensive'. -While most of the jobs run as soon as a respective file has been -committed into the Emacs git repository, this test job runs scheduled, -every 8 hours. +Jobs in the 'build-images' and 'normal' stages are triggered by +changes of respective files in the Emacs git repository. All other +jobs run scheduled in a pipeline every 8 hours. The log files for every test job are kept on the server for a week. They can be downloaded from the server, visiting the URL <https://emba.gnu.org/emacs/emacs/-/pipelines>, and selecting the job in question. +Every pipeline generates a JUnit test report for the respective test +jobs, which can be inspected on the pipeline web page. This test +report counts completed ERT tests, aborted tests are not counted. + * Emba configuration The emba configuration files are hosted on diff --git a/admin/notes/git-workflow b/admin/notes/git-workflow index d109cdaa354a..717fc5507767 100644 --- a/admin/notes/git-workflow +++ b/admin/notes/git-workflow @@ -16,14 +16,14 @@ Initial setup Then we want to clone the repository. We normally want to have both the current master and (if there is one) the active release branch -(eg emacs-27). +(eg emacs-28). mkdir ~/emacs cd ~/emacs git clone <membername>@git.sv.gnu.org:/srv/git/emacs.git master cd master git config push.default current -git worktree add ../emacs-27 emacs-27 +git worktree add ../emacs-28 emacs-28 You now have both branches conveniently accessible, and you can do "git pull" in them once in a while to keep updated. @@ -67,10 +67,10 @@ which will look like commit 958b768a6534ae6e77a8547a56fc31b46b63710b -cd ~/emacs/emacs-27 +cd ~/emacs/emacs-28 git cherry-pick -xe 958b768a6534ae6e77a8547a56fc31b46b63710b -and add "Backport:" to the commit string. Then +and optionally add "Backport:" to the commit string. Then git push @@ -109,7 +109,7 @@ up-to-date by doing a pull. Then start Emacs with emacs -l admin/gitmerge.el -f gitmerge You'll be asked for the branch to merge, which will default to -(eg) 'origin/emacs-27', which you should accept. Merging a local tracking +(eg) 'origin/emacs-28', which you should accept. Merging a local tracking branch is discouraged, since it might not be up-to-date, or worse, contain commits from you which are not yet pushed upstream. diff --git a/admin/notes/hydra b/admin/notes/hydra index 12d3f3560203..8ee32df07a7a 100644 --- a/admin/notes/hydra +++ b/admin/notes/hydra @@ -1,6 +1,6 @@ -*- mode: outline; coding: utf-8 -*- -Copyright (C) 2013-2023 Free Software Foundation, Inc. +Copyright (C) 2013-2024 Free Software Foundation, Inc. See the end of the file for license conditions. NOTES FOR EMACS CONTINUOUS BUILD ON HYDRA diff --git a/admin/notes/kind-communication b/admin/notes/kind-communication new file mode 100644 index 000000000000..80b2afb27b20 --- /dev/null +++ b/admin/notes/kind-communication @@ -0,0 +1,21 @@ +The GNU Project encourages contributions from anyone who wishes to +advance the development of the GNU system, regardless of gender, race, +ethnic group, physical appearance, religion, cultural background, and +any other demographic characteristics, as well as personal political +views. + +People are sometimes discouraged from participating in GNU development +because of certain patterns of communication that strike them as +unfriendly, unwelcoming, rejecting, or harsh. This discouragement +particularly affects members of disprivileged demographics, but it is +not limited to them. Therefore, we ask all contributors to make a +conscious effort, in GNU Project discussions, to communicate in ways +that avoid that outcome — to avoid practices that will predictably and +unnecessarily risk putting some contributors off. + +The GNU Kind Communications Guidelines suggest specific ways to +accomplish that goal. You can find the latest version at +https://www.gnu.org/philosophy/kind-communication.html + +When sending messages to Emacs mailing lists, we ask you to read and +respect these guidelines. diff --git a/admin/notes/multi-tty b/admin/notes/multi-tty index d0b63f166fd9..f021799b2944 100644 --- a/admin/notes/multi-tty +++ b/admin/notes/multi-tty @@ -1,6 +1,6 @@ -*- coding: utf-8; mode: text; -*- -Copyright (C) 2007-2023 Free Software Foundation, Inc. +Copyright (C) 2007-2024 Free Software Foundation, Inc. See the end of the file for license conditions. From README.multi-tty in the multi-tty branch. @@ -480,8 +480,6 @@ THINGS TO DO ** Have a look at set_frame_matrix_frame. -** Check if we got term-setup-hook right. - ** I think tip_frame should be display-local. ** Check display reference count handling in x_create_tip_frame. diff --git a/admin/notes/repo b/admin/notes/repo index f6004a97db1f..2be707db27f2 100644 --- a/admin/notes/repo +++ b/admin/notes/repo @@ -42,6 +42,24 @@ yet another fun excursion into the exciting world of version control. https://lists.gnu.org/r/emacs-devel/2010-04/msg00086.html +* feature and scratch branches + +Besides the master branch, which is where development takes place, and +the "emacs-NN" release branches, we also have branches whose names +start with "scratch/" and "feature/". The "feature/" prefix is used +for feature branches that are intended to live for some time, while +"scratch/" is for one-off throw-away-after-use branches. + +We do not intend to "git merge" from scratch branches, so force-pushes +are tolerated, as well as commits with poor style, incomplete commit +messages, etc. + +We do expect to "git merge" from feature branches so: no force push, +and no commits that don't have a proper commit message. + +Automatic tests are run for feature/* branches on EMBA. +See: https://emba.gnu.org/emacs/emacs/-/pipelines + * Installing changes from gnulib Some of the files in Emacs are copied from gnulib. To synchronize @@ -110,6 +128,14 @@ again. This is a semi-automated way to find the revision that introduced a bug. Browse 'git help bisect' for technical instructions. +It is recommended to start a bisection with the admin/git-bisect-start +script. Using that script ensures that commits in branches that are +the result of merging external trees into the Emacs repository, as +well as certain commits on which Emacs fails to build, are skipped +during the bisection process. That script can also be executed +automatically when 'git bisect start' is called, with the help of a +wrapper script that is included in its commentary section. + * Maintaining ChangeLog history Older ChangeLog entries are kept in history files named ChangeLog.1, @@ -124,6 +150,11 @@ This ChangeLog file is not put into the repository. 'make change-history' copies all newer ChangeLog entries into the start of the newest ChangeLog history file. These ChangeLog entries are thereafter considered to be old, so later uses of 'make ChangeLog' -and/or 'make change-history' will no longer copy the entries. To -alter ChangeLog history, run 'make change-history', then edit -the ChangeLog history files manually and commit your changes. +and/or 'make change-history' will no longer copy the entries. + +To alter ChangeLog history, run 'make change-history' and commit the +changes made by that command. Then edit the ChangeLog history files +manually and commit those changes in a second, distinct commit. +Altering ChangeLog history like this can make things harder for those +who handle merging branches and Emacs releases, so reserve it for +correcting more serious mistakes. diff --git a/admin/notes/tree-sitter/starter-guide b/admin/notes/tree-sitter/starter-guide new file mode 100644 index 000000000000..846614f14465 --- /dev/null +++ b/admin/notes/tree-sitter/starter-guide @@ -0,0 +1,458 @@ +STARTER GUIDE ON WRITING MAJOR MODE WITH TREE-SITTER -*- org -*- + +This document guides you on adding tree-sitter support to a major +mode. + +TOC: + +- Building Emacs with tree-sitter +- Install language definitions +- Setup +- Naming convention +- Font-lock +- Indent +- Imenu +- Navigation +- Which-func +- More features? +- Common tasks (code snippets) +- Manual +- Appendix 1 + +* Building Emacs with tree-sitter + +You can either install tree-sitter by your package manager, or from +source: + + git clone https://github.com/tree-sitter/tree-sitter.git + cd tree-sitter + make + make install + +Then pull the tree-sitter branch (or the master branch, if it has +merged) and rebuild Emacs. + +* Install language definitions + +Tree-sitter by itself doesn’t know how to parse any particular +language. We need to install language definitions (or “grammars”) for +a language to be able to parse it. There are a couple of ways to get +them. + +You can use this script that I put together here: + + https://github.com/casouri/tree-sitter-module + +This script automatically pulls and builds language definitions for C, +C++, Rust, JSON, Go, HTML, JavaScript, CSS, Python, Typescript, +C#, etc. Better yet, I pre-built these language definitions for +GNU/Linux and macOS, they can be downloaded here: + + https://github.com/casouri/tree-sitter-module/releases/tag/v2.1 + +To build them yourself, run + + git clone git@github.com:casouri/tree-sitter-module.git + cd tree-sitter-module + ./batch.sh + +and language definitions will be in the /dist directory. You can +either copy them to standard dynamic library locations of your system, +eg, /usr/local/lib, or leave them in /dist and later tell Emacs where +to find language definitions by setting ‘treesit-extra-load-path’. + +Language definition sources can be found on GitHub under +tree-sitter/xxx, like tree-sitter/tree-sitter-python. The tree-sitter +organization has all the "official" language definitions: + + https://github.com/tree-sitter + +Alternatively, you can use treesit-install-language-grammar command +and follow its instructions. If everything goes right, it should +automatically download and compile the language grammar for you. + +* Setting up for adding major mode features + +Start Emacs and load tree-sitter with + + (require 'treesit) + +Now check if Emacs is built with tree-sitter library + + (treesit-available-p) + +Make sure Emacs can find the language grammar you want to use + + (treesit-language-available-p 'lang) + +* Tree-sitter major modes + +Tree-sitter modes should be separate major modes, so other modes +inheriting from the original mode don't break if tree-sitter is +enabled. For example js2-mode inherits js-mode, we can't enable +tree-sitter in js-mode, lest js-mode would not setup things that +js2-mode expects to inherit from. So it's best to use separate major +modes. + +If the tree-sitter variant and the "native" variant could share some +setup, you can create a "base mode", which only contains the common +setup. For example, python.el defines python-base-mode (shared), +python-mode (native), and python-ts-mode (tree-sitter). + +In the tree-sitter mode, check if we can use tree-sitter with +treesit-ready-p, it will error out if tree-sitter is not ready. + +In Emacs 30 we'll introduce some mechanism to more gracefully inherit +modes and fallback to other modes. + +* Naming convention + +Use tree-sitter for text (documentation, comment), use treesit for +symbol (variable, function). + +* Font-lock + +Tree-sitter works like this: You provide a query made of patterns and +capture names, tree-sitter finds the nodes that match these patterns, +tag the corresponding capture names onto the nodes and return them to +you. The query function returns a list of (capture-name . node). For +font-lock, we use face names as capture names. And the captured node +will be fontified in their capture name. + +The capture name could also be a function, in which case (NODE +OVERRIDE START END) is passed to the function for fontification. START +and END are the start and end of the region to be fontified. The +function should only fontify within that region. The function should +also allow more optional arguments with (&rest _), for future +extensibility. For OVERRIDE check out the docstring of +treesit-font-lock-rules. + +** Query syntax + +There are two types of nodes, named, like (identifier), +(function_definition), and anonymous, like "return", "def", "(", +"}". Parent-child relationship is expressed as + + (parent (child) (child) (child (grand_child))) + +Eg, an argument list (1, "3", 1) could be: + + (argument_list "(" (number) (string) (number) ")") + +Children could have field names in its parent: + + (function_definition name: (identifier) type: (identifier)) + +Match any of the list: + + ["true" "false" "none"] + +Capture names can come after any node in the pattern: + + (parent (child) @child) @parent + +The query above captures both parent and child. + + ["return" "continue" "break"] @keyword + +The query above captures all the keywords with capture name +"keyword". + +These are the common syntax, see all of them in the manual +("Parsing Program Source" section). + +** Query references + +But how do one come up with the queries? Take python for an example, +open any python source file, type M-x treesit-explore-mode RET. Now +you should see the parse-tree in a separate window, automatically +updated as you select text or edit the buffer. Besides this, you can +consult the grammar of the language definition. For example, Python’s +grammar file is at + + https://github.com/tree-sitter/tree-sitter-python/blob/master/grammar.js + +Neovim also has a bunch of queries to reference: + + https://github.com/nvim-treesitter/nvim-treesitter/tree/master/queries + +The manual explains how to read grammar files in the bottom of section +"Tree-sitter Language Definitions". + +** Debugging queries + +If your query has problems, use ‘treesit-query-validate’ to debug the +query. It will pop a buffer containing the query (in text format) and +mark the offending part in red. + +** Code + +To enable tree-sitter font-lock, set ‘treesit-font-lock-settings’ and +‘treesit-font-lock-feature-list’ buffer-locally and call +‘treesit-major-mode-setup’. For example, see +‘python--treesit-settings’ in python.el. Below is a snippet of it. + +Just like the current font-lock, if the to-be-fontified region already +has a face (ie, an earlier match fontified part/all of the region), +the new face is discarded rather than applied. If you want later +matches always override earlier matches, use the :override keyword. + +Each rule should have a :feature, like function-name, +string-interpolation, builtin, etc. Users can then enable/disable each +feature individually. See Appendix 1 at the bottom for a set of common +features names. + +#+begin_src elisp +(defvar python--treesit-settings + (treesit-font-lock-rules + :feature 'comment + :language 'python + '((comment) @font-lock-comment-face) + + :feature 'string + :language 'python + '((string) @font-lock-string-face + (string) @contextual) ; Contextual special treatment. + + :feature 'function-name + :language 'python + '((function_definition + name: (identifier) @font-lock-function-name-face)) + + :feature 'class-name + :language 'python + '((class_definition + name: (identifier) @font-lock-type-face)) + + ...)) +#+end_src + +Then in ‘python-mode’, enable tree-sitter font-lock: + +#+begin_src elisp +(treesit-parser-create 'python) +(setq-local treesit-font-lock-settings python--treesit-settings) +(setq-local treesit-font-lock-feature-list + '((comment string function-name) + (class-name keyword builtin) + (string-interpolation decorator))) +... +(treesit-major-mode-setup) +#+end_src + +Concretely, something like this: + +#+begin_src elisp +(define-derived-mode python-mode prog-mode "Python" + ... + (cond + ;; Tree-sitter. + ((treesit-ready-p 'python) + (treesit-parser-create 'python) + (setq-local treesit-font-lock-settings python--treesit-settings) + (setq-local treesit-font-lock-feature-list + '((comment string function-name) + (class-name keyword builtin) + (string-interpolation decorator))) + (treesit-major-mode-setup)) + (t + ;; No tree-sitter, do nothing or fallback to another mode. + ...))) +#+end_src + +* Indent + +Indent works like this: We have a bunch of rules that look like + + (MATCHER ANCHOR OFFSET) + +When the indentation process starts, point is at the BOL of a line, we +want to know which column to indent this line to. Let NODE be the node +at point, we pass this node to the MATCHER of each rule, one of them +will match the node (eg, "this node is a closing bracket!"). Then we +pass the node to the ANCHOR, which returns a point, eg, the BOL of the +previous line. We find the column number of that point (eg, 4), add +OFFSET to it (eg, 0), and that is the column we want to indent the +current line to (4 + 0 = 4). + +Matchers and anchors are functions that takes (NODE PARENT BOL &rest +_). Matches return nil/non-nil for no match/match, and anchors return +the anchor point. Below are some convenient builtin matchers and anchors. + +For MATCHER we have + + (parent-is TYPE) => matches if PARENT’s type matches TYPE as regexp + (node-is TYPE) => matches NODE’s type + (query QUERY) => matches if querying PARENT with QUERY + captures NODE. + + (match NODE-TYPE PARENT-TYPE NODE-FIELD + NODE-INDEX-MIN NODE-INDEX-MAX) + + => checks everything. If an argument is nil, don’t match that. Eg, + (match nil TYPE) is the same as (parent-is TYPE) + +For ANCHOR we have + + first-sibling => start of the first sibling + parent => start of parent + parent-bol => BOL of the line parent is on. + standalone-parent => Like parent-bol but handles more edge cases + prev-sibling => start of previous sibling + no-indent => current position (don’t indent) + prev-line => start of previous line + +There is also a manual section for indent: "Parser-based Indentation". + +When writing indent rules, you can use ‘treesit-check-indent’ to +check if your indentation is correct. To debug what went wrong, set +‘treesit--indent-verbose’ to non-nil. Then when you indent, Emacs +tells you which rule is applied in the echo area. + +#+begin_src elisp +(defvar typescript-mode-indent-rules + (let ((offset typescript-indent-offset)) + `((typescript + ;; This rule matches if node at point is "}", ANCHOR is the + ;; parent node’s BOL, and offset is 0. + ((node-is "}") parent-bol 0) + ((node-is ")") parent-bol 0) + ((node-is "]") parent-bol 0) + ((node-is ">") parent-bol 0) + ((node-is "\\.") parent-bol ,offset) + ((parent-is "ternary_expression") parent-bol ,offset) + ((parent-is "named_imports") parent-bol ,offset) + ((parent-is "statement_block") parent-bol ,offset) + ((parent-is "type_arguments") parent-bol ,offset) + ((parent-is "variable_declarator") parent-bol ,offset) + ((parent-is "arguments") parent-bol ,offset) + ((parent-is "array") parent-bol ,offset) + ((parent-is "formal_parameters") parent-bol ,offset) + ((parent-is "template_substitution") parent-bol ,offset) + ((parent-is "object_pattern") parent-bol ,offset) + ((parent-is "object") parent-bol ,offset) + ((parent-is "object_type") parent-bol ,offset) + ((parent-is "enum_body") parent-bol ,offset) + ((parent-is "arrow_function") parent-bol ,offset) + ((parent-is "parenthesized_expression") parent-bol ,offset) + ...)))) +#+end_src + +To setup indentation for your major mode, set +‘treesit-simple-indent-rules’ to your rules, and call +‘treesit-major-mode-setup’: + +#+begin_src elisp +(setq-local treesit-simple-indent-rules typescript-mode-indent-rules) +(treesit-major-mode-setup) +#+end_src + +* Imenu + +Set ‘treesit-simple-imenu-settings’ and call +‘treesit-major-mode-setup’. + +* Navigation + +Set ‘treesit-defun-type-regexp’ and call +‘treesit-major-mode-setup’. You can additionally set +‘treesit-defun-name-function’. + +* Which-func + +If you have an imenu implementation, set ‘which-func-functions’ to +nil, and which-func will automatically use imenu’s data. + +If you want an independent implementation for which-func, you can +find the current function by ‘treesit-defun-at-point’. + +* More features? + +Obviously this list is just a starting point, if there are features in +the major mode that would benefit from a parse tree, adding tree-sitter +support for that would be great. But in the minimal case, just adding +font-lock is awesome. + +* Common tasks + +How to... + +** Get the buffer text corresponding to a node? + +(treesit-node-text node) + +BTW ‘treesit-node-string’ does different things. + +** Scan the whole tree for stuff? + +(treesit-search-subtree) +(treesit-search-forward) +(treesit-induce-sparse-tree) + +** Move to next node that...? + +(treesit-search-forward-goto) + +** Get the root node? + +(treesit-buffer-root-node) + +** Get the node at point? + +(treesit-node-at (point)) + +* Manual + +I suggest you read the manual section for tree-sitter in Info. The +section is Parsing Program Source. Typing + + C-h i d m elisp RET g Parsing Program Source RET + +will bring you to that section. You don’t need to read through every +sentence, just read the text paragraphs and glance over function +names. + +* Appendix 1 + +Below is a set of common features used by built-in major mode. + +Basic tokens: + +delimiter ,.; (delimit things) +operator == != || (produces a value) +bracket []{}() +misc-punctuation (other punctuation that you want to highlight) + +constant true, false, null +number +keyword +comment (includes doc-comments) +string (includes chars and docstrings) +string-interpolation f"text {variable}" +escape-sequence "\n\t\\" +function every function identifier +variable every variable identifier +type every type identifier +property a.b <--- highlight b +key { a: b, c: d } <--- highlight a, c +error highlight parse error + +Abstract features: + +assignment: the LHS of an assignment (thing being assigned to), eg: + +a = b <--- highlight a +a.b = c <--- highlight b +a[1] = d <--- highlight a + +definition: the thing being defined, eg: + +int a(int b) { <--- highlight a + return 0 +} + +int a; <-- highlight a + +struct a { <--- highlight a + int b; <--- highlight b +} diff --git a/admin/notes/tree-sitter/treesit_record_change b/admin/notes/tree-sitter/treesit_record_change new file mode 100644 index 000000000000..e80df4adfa79 --- /dev/null +++ b/admin/notes/tree-sitter/treesit_record_change @@ -0,0 +1,218 @@ +NOTES ON TREESIT_RECORD_CHANGE + +It is vital that Emacs informs tree-sitter of every change made to the +buffer, lest tree-sitter's parse tree would be corrupted/out of sync. + +Almost all buffer changes in Emacs are made through functions in +insdel.c (see below for exceptions), I augmented functions in insdel.c +with calls to treesit_record_change. Below is a manifest of all the +relevant functions in insdel.c as of Emacs 29: + +Function Calls +---------------------------------------------------------------------- +copy_text (*1) +insert insert_1_both +insert_and_inherit insert_1_both +insert_char insert +insert_string insert +insert_before_markers insert_1_both +insert_before_markers_and_inherit insert_1_both +insert_1_both treesit_record_change +insert_from_string insert_from_string_1 +insert_from_string_before_markers insert_from_string_1 +insert_from_string_1 treesit_record_change +insert_from_gap_1 treesit_record_change +insert_from_gap insert_from_gap_1 +insert_from_buffer treesit_record_change +insert_from_buffer_1 (used by insert_from_buffer) (*2) +replace_range treesit_record_change +replace_range_2 (caller needs to call treesit_r_c) +del_range del_range_1 +del_range_1 del_range_2 +del_range_byte del_range_2 +del_range_both del_range_2 +del_range_2 treesit_record_change + +(*1) This functions is used only to copy from string to string when +used outside of insdel.c, and when used inside insdel.c, the caller +calls treesit_record_change. + +(*2) This function is a static function, and insert_from_buffer is its +only caller. So it should be fine to call treesit_record_change in +insert_from_buffer but not insert_from_buffer_1. I also left a +reminder comment. + + +EXCEPTIONS + + +There are a couple of functions that replaces characters in-place +rather than insert/delete. They are in casefiddle.c and editfns.c. + +In casefiddle.c, do_casify_unibyte_region and +do_casify_multibyte_region modifies buffer, but they are static +functions and are called by casify_region, which calls +treesit_record_change. Other higher-level functions calls +casify_region to do the work. + +In editfns.c, subst-char-in-region and translate-region-internal might +replace characters in-place, I made them to call +treesit_record_change. transpose-regions uses memcpy to move text +around, it calls treesit_record_change too. + +I found these exceptions by grepping for signal_after_change and +checking each caller manually. Below is all the result as of Emacs 29 +and some comment for each one. Readers can use + +(highlight-regexp "^[^[:space:]]+?\\.c:[[:digit:]]+:[^z-a]+?$" 'highlight) + +to make things easier to read. + +grep [...] --color=auto -i --directories=skip -nH --null -e signal_after_change *.c + +callproc.c:789: calling prepare_to_modify_buffer and signal_after_change. +callproc.c:793: is one call to signal_after_change in each of the +callproc.c:800: signal_after_change hasn't. A continue statement +callproc.c:804: again, and this time signal_after_change gets called, + +Not code. + +callproc.c:820: signal_after_change (PT - nread, 0, nread); +callproc.c:863: signal_after_change (PT - process_coding.produced_char, + +Both are called in call-process. I don’t think we’ll ever use +tree-sitter in call-process’s stdio buffer, right? I didn’t check +line-by-line, but it seems to only use insert_1_both and del_range_2. + +casefiddle.c:558: signal_after_change (start, end - start - added, end - start); + +Called in casify-region, calls treesit_record_change. + +decompress.c:195: signal_after_change (data->orig, data->start - data->orig, + +Called in unwind_decompress, uses del_range_2, insdel function. + +decompress.c:334: signal_after_change (istart, iend - istart, unwind_data.nbytes); + +Called in zlib-decompress-region, uses del_range_2, insdel function. + +editfns.c:2139: signal_after_change (BEGV, size_a, ZV - BEGV); + +Called in replace-buffer-contents, which calls del_range and +Finsert_buffer_substring, both are ok. + +editfns.c:2416: signal_after_change (changed, + +Called in subst-char-in-region, which either calls replace_range (a +insdel function) or modifies buffer content by itself (need to call +treesit_record_change). + +editfns.c:2544: /* Reload as signal_after_change in last iteration may GC. */ + +Not code. + +editfns.c:2604: signal_after_change (pos, 1, 1); + +Called in translate-region-internal, which has three cases: + +if (nc != oc && nc >= 0) { + if (len != str_len) { + replace_range() + } else { + while (str_len-- > 0) + *p++ = *str++; + } +} +else if (nc < 0) { + replace_range() +} + +replace_range is ok, but in the case where it manually modifies buffer +content, it needs to call treesit_record_change. + +editfns.c:4779: signal_after_change (start1, end2 - start1, end2 - start1); + +Called in transpose-regions. It just uses memcpy’s and doesn’t use +insdel functions; needs to call treesit_record_change. + +fileio.c:4825: signal_after_change (PT, 0, inserted); + +Called in insert_file_contents. Uses insert_1_both (very first in the +function); del_range_1 and del_range_byte (the optimized way to +implement replace when decoding isn’t needed); del_range_byte and +insert_from_buffer (the optimized way used when decoding is needed); +decode_coding_gap or insert_from_gap_1 (I’m not sure the condition for +this, but anyway it’s safe). The function also calls memcpy and +memmove, but they are irrelevant: memcpy is used for decoding, and +memmove is moving stuff inside the gap for decode_coding_gap. + +I’d love someone to verify this function, since it’s so complicated +and large, but from what I can tell it’s safe. + +fns.c:3998: signal_after_change (XFIXNAT (beg), 0, inserted_chars); + +Called in base64-decode-region, uses insert_1_both and del_range_both, +safe. + +insdel.c:681: signal_after_change (opoint, 0, len); +insdel.c:696: signal_after_change (opoint, 0, len); +insdel.c:741: signal_after_change (opoint, 0, len); +insdel.c:757: signal_after_change (opoint, 0, len); +insdel.c:976: signal_after_change (opoint, 0, PT - opoint); +insdel.c:996: signal_after_change (opoint, 0, PT - opoint); +insdel.c:1187: signal_after_change (opoint, 0, PT - opoint); +insdel.c:1412: signal_after_change. */ +insdel.c:1585: signal_after_change (from, nchars_del, GPT - from); +insdel.c:1600: prepare_to_modify_buffer and never call signal_after_change. +insdel.c:1603: region once. Apart from signal_after_change, any caller of this +insdel.c:1747: signal_after_change (from, to - from, 0); +insdel.c:1789: signal_after_change (from, to - from, 0); +insdel.c:1833: signal_after_change (from, to - from, 0); +insdel.c:2223:signal_after_change (ptrdiff_t charpos, ptrdiff_t lendel, ptrdiff_t lenins) +insdel.c:2396: signal_after_change (begpos, endpos - begpos - change, endpos - begpos); + +I’ve checked all insdel functions. We can assume insdel functions are +all safe. + +json.c:790: signal_after_change (PT, 0, inserted); + +Called in json-insert, calls either decode_coding_gap or +insert_from_gap_1, both are safe. Calls memmove but it’s for +decode_coding_gap. + +keymap.c:2873: /* Insert calls signal_after_change which may GC. */ + +Not code. + +print.c:219: signal_after_change (PT - print_buffer.pos, 0, print_buffer.pos); + +Called in print_finish, calls copy_text and insert_1_both, safe. + +process.c:6365: process buffer is changed in the signal_after_change above. +search.c:2763: (see signal_before_change and signal_after_change). Try to error + +Not code. + +search.c:2777: signal_after_change (sub_start, sub_end - sub_start, SCHARS (newtext)); + +Called in replace_match. Calls replace_range, upcase-region, +upcase-initials-region (both calls casify_region in the end), safe. +Calls memcpy but it’s for string manipulation. + +textprop.c:1261: signal_after_change (XFIXNUM (start), XFIXNUM (end) - XFIXNUM (start), +textprop.c:1272: signal_after_change (XFIXNUM (start), XFIXNUM (end) - XFIXNUM (start), +textprop.c:1283: signal_after_change (XFIXNUM (start), XFIXNUM (end) - XFIXNUM (start), +textprop.c:1458: signal_after_change (XFIXNUM (start), XFIXNUM (end) - XFIXNUM (start), +textprop.c:1652: signal_after_change (XFIXNUM (start), XFIXNUM (end) - XFIXNUM (start), +textprop.c:1661: signal_after_change (XFIXNUM (start), XFIXNUM (end) - XFIXNUM (start), +textprop.c:1672: signal_after_change (XFIXNUM (start), XFIXNUM (end) - XFIXNUM (start), +textprop.c:1750: before changes are made and signal_after_change when we are done. +textprop.c:1752: and call signal_after_change before returning if MODIFIED. */ +textprop.c:1764: signal_after_change (XFIXNUM (start), +textprop.c:1778: signal_after_change (XFIXNUM (start), XFIXNUM (end) - XFIXNUM (start), +textprop.c:1791: signal_after_change (XFIXNUM (start), XFIXNUM (end) - XFIXNUM (start), +textprop.c:1810: signal_after_change (XFIXNUM (start), + +We don’t care about text property changes. + +Grep finished with 51 matches found at Wed Jun 28 15:12:23 diff --git a/admin/notes/unicode b/admin/notes/unicode index 70c5f1c9ea4f..e11667d989e3 100644 --- a/admin/notes/unicode +++ b/admin/notes/unicode @@ -1,6 +1,6 @@ -*-mode: text; coding: utf-8;-*- -Copyright (C) 2002-2023 Free Software Foundation, Inc. +Copyright (C) 2002-2024 Free Software Foundation, Inc. See the end of the file for license conditions. Importing a new Unicode Standard version into Emacs @@ -15,18 +15,34 @@ Emacs uses the following files from the Unicode Character Database . BidiMirroring.txt . IVD_Sequences.txt . NormalizationTest.txt + . PropertyValueAliases.txt + . ScriptExtensions.txt + . Scripts.txt . SpecialCasing.txt + . confusables.txt . emoji-data.txt . emoji-zwj-sequences.txt + . emoji-variation-sequences.txt . emoji-sequences.txt . BidiCharacterTest.txt -First, the first 10 files need to be copied into admin/unidata/, and -the file https://www.unicode.org/copyright.html should be copied over +Emacs also uses the file emoji-test.txt which should be imported from +the Unicode's Public/emoji/ directory, and IdnaMappingTable.txt from +the Public/idna/ directory. + +First, the first 15 files, emoji-test.txt and IdnaMappingTable.txt +need to be copied into admin/unidata/, and the file +https://www.unicode.org/copyright.html should be copied over copyright.html in admin/unidata (some of them might need trailing whitespace removed before they can be committed to the Emacs repository). +Next, review the assignment of default values of the Bidi Class +property to blocks in the file extracted/DerivedBidiClass.txt from the +UCD (search for "unassigned" in that file). Any changes should be +reflected in the unidata-gen.el file, where it sets up the default +values around line 210. + Then Emacs should be rebuilt for them to take effect. Rebuilding Emacs updates several derived files elsewhere in the Emacs source tree, mainly in lisp/international/. @@ -74,6 +90,11 @@ might need to be updated because it knows about used and unused ranges of Unicode codepoints, which a new release of the Unicode Standard could change. +The data used by ucs-normalize.el might need to be updated. +Specifically, the values of 'ucs-normalize-composition-exclusions' and +'check-range", defined at the beginning of ucs-normalize.el, should be +verified against the latest Unicode data files. + Next, test normalization functions against NormalizationTests.txt, in the test/ directory run: @@ -127,6 +148,20 @@ generated for auto-composition-emoji-eligible-codepoints by admin/unidata/emoji-zwj.awk. Note that your emoji font might not have glyphs for the newest codepoints yet. +Visit "emoji-variation-sequences.txt", and run the following lisp +fragment to actually insert the described codepoints, then check that +all the text in parentheses displays correctly (it can be helpful to +have `glyphless-char-display-control' customized to show hex codes for +variation selectors). + +(save-excursion + (goto-char (point-min)) + (while (re-search-forward "^\\([0-9A-Z]+\\) \\([0-9A-Z]+\\).*(\\([^)]+\\))" nil t) + (let ((ch (string-to-number (match-string 1) 16)) + (sel (string-to-number (match-string 2) 16)) + (sp (match-string 3))) + (replace-match (format "%s %c%c " sp ch sel) nil nil nil 3)))) + Finally, etc/NEWS should be updated to announce the support for the new Unicode version. diff --git a/admin/notes/www b/admin/notes/www index d6e15ffe955f..0a2d4aa9859a 100644 --- a/admin/notes/www +++ b/admin/notes/www @@ -1,6 +1,6 @@ -*- outline -*- -Copyright (C) 2013-2023 Free Software Foundation, Inc. +Copyright (C) 2013-2024 Free Software Foundation, Inc. See the end of the file for license conditions. NOTES FOR EMACS WWW PAGES diff --git a/admin/notes/years b/admin/notes/years index 3df8139f9b94..113e6608d3f0 100644 --- a/admin/notes/years +++ b/admin/notes/years @@ -10,9 +10,10 @@ results for plausibility, then commit them. A few known problems with the build-aux/update-copyright script: . it doesn't update config.bat, msdos/depfiles.bat, - nt/configure.bat, etc/tutorials/TUTORIAL.cn, and - etc/tutorials/TUTORIAL.he because the "Copyright" statement begins - in these files after a prefix that is more than 5 characters long + nt/configure.bat, etc/tutorials/TUTORIAL.cn, + etc/tutorials/TUTORIAL.el_GR, and etc/tutorials/TUTORIAL.he + because the "Copyright" statement begins in these files + after a prefix that is more than 5 characters long . it doesn't update etc/tutorials/TUTORIAL.nl and etc/tutorials/TUTORIAL.ro for some reason . it doesn't update the second Copyright notice, the one that gets diff --git a/admin/nt/README-UNDUMP.W32 b/admin/nt/README-UNDUMP.W32 index b151df1eb0fc..8b13d10159b2 100644 --- a/admin/nt/README-UNDUMP.W32 +++ b/admin/nt/README-UNDUMP.W32 @@ -1,4 +1,4 @@ -Copyright (C) 2001-2023 Free Software Foundation, Inc. +Copyright (C) 2001-2024 Free Software Foundation, Inc. See the end of the file for license conditions. Emacs for Windows diff --git a/admin/nt/dist-build/README-scripts b/admin/nt/dist-build/README-scripts index 6b1adbe03e1b..e99fbe070620 100644 --- a/admin/nt/dist-build/README-scripts +++ b/admin/nt/dist-build/README-scripts @@ -131,7 +131,7 @@ The process is the same as for building from the master branch, except that the release branch should already exist as a worktree, and the version number must be added to the command line with `build-zips.sh -V 27 -s`. The final zips will be named after the branch rather than -the version (e.g emacs-27-2019-12-26.zip) rather than than the Emacs +the version (e.g emacs-27-2019-12-26.zip) rather than the Emacs version (e.g emacs-27.0.50.zip). diff --git a/admin/nt/dist-build/README-windows-binaries b/admin/nt/dist-build/README-windows-binaries index f53558960c41..c51cea733337 100644 --- a/admin/nt/dist-build/README-windows-binaries +++ b/admin/nt/dist-build/README-windows-binaries @@ -1,4 +1,4 @@ -Copyright (C) 2001-2023 Free Software Foundation, Inc. +Copyright (C) 2001-2024 Free Software Foundation, Inc. See the end of the file for license conditions. Precompiled Distributions of diff --git a/admin/nt/dist-build/build-dep-zips.py b/admin/nt/dist-build/build-dep-zips.py index 6b5cc54ac4ca..fb0aca87731a 100755 --- a/admin/nt/dist-build/build-dep-zips.py +++ b/admin/nt/dist-build/build-dep-zips.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 -## Copyright (C) 2017-2023 Free Software Foundation, Inc. +## Copyright (C) 2017-2024 Free Software Foundation, Inc. ## This file is part of GNU Emacs. @@ -20,6 +20,8 @@ import os import shutil import re +import functools +import operator from subprocess import check_output @@ -112,7 +114,7 @@ def ntldd_munge(out): ## Packages to fiddle with ## Source for gcc-libs is part of gcc SKIP_SRC_PKGS=["mingw-w64-gcc-libs"] -SKIP_DEP_PKGS=["mingw-w64-glib2"] +SKIP_DEP_PKGS=frozenset(["mingw-w64-x86_64-glib2"]) MUNGE_SRC_PKGS={"mingw-w64-libwinpthread-git":"mingw-w64-winpthreads-git"} MUNGE_DEP_PKGS={ "mingw-w64-x86_64-libwinpthread":"mingw-w64-x86_64-libwinpthread-git", @@ -121,19 +123,17 @@ def ntldd_munge(out): ## Currently no packages seem to require this! ARCH_PKGS=[] -SRC_REPO="https://sourceforge.net/projects/msys2/files/REPOS/MINGW/Sources" +SRC_REPO="https://repo.msys2.org/mingw/sources" -def immediate_deps(pkg): - package_info = check_output(["pacman", "-Si", pkg]).decode("utf-8").split("\n") +def immediate_deps(pkgs): + package_info = check_output(["pacman", "-Si"] + pkgs).decode("utf-8").splitlines() - ## Extract the "Depends On" line - depends_on = [x for x in package_info if x.startswith("Depends On")][0] - ## Remove "Depends On" prefix - dependencies = depends_on.split(":")[1] - - ## Split into dependencies - dependencies = dependencies.strip().split(" ") + ## Extract the packages listed for "Depends On:" lines. + dependencies = [line.split(":")[1].split() for line in package_info + if line.startswith("Depends On")] + ## Flatten dependency lists from multiple packages into one list. + dependencies = functools.reduce(operator.iconcat, dependencies, []) ## Remove > signs TODO can we get any other punctuation here? dependencies = [d.split(">")[0] for d in dependencies if d] @@ -149,16 +149,18 @@ def extract_deps(): print( "Extracting deps" ) # Get a list of all dependencies needed for packages mentioned above. - pkgs = PKG_REQ[:] - n = 0 - while n < len(pkgs): - subdeps = immediate_deps(pkgs[n]) - for p in subdeps: - if not (p in pkgs or p in SKIP_DEP_PKGS): - pkgs.append(p) - n = n + 1 + pkgs = set(PKG_REQ) + newdeps = pkgs + print("adding...") + while True: + subdeps = frozenset(immediate_deps(list(newdeps))) + newdeps = subdeps - SKIP_DEP_PKGS - pkgs + if not newdeps: + break + print('\n'.join(newdeps)) + pkgs |= newdeps - return sorted(pkgs) + return list(pkgs) def download_source(tarball): @@ -167,7 +169,7 @@ def download_source(tarball): if not os.path.exists("../emacs-src-cache/{}".format(tarball)): print("Downloading {}...".format(tarball)) check_output_maybe( - "wget -a ../download.log -O ../emacs-src-cache/{} {}/{}/download" + "wget -a ../download.log -O ../emacs-src-cache/{} {}/{}" .format(tarball, SRC_REPO, tarball), shell=True ) @@ -255,7 +257,7 @@ def clean(): if( args.l ): print("List of dependencies") - print( extract_deps() ) + print( deps ) exit(0) if args.s: diff --git a/admin/nt/dist-build/build-zips.sh b/admin/nt/dist-build/build-zips.sh index 2d2e6ac3ff43..3b9db3deef52 100755 --- a/admin/nt/dist-build/build-zips.sh +++ b/admin/nt/dist-build/build-zips.sh @@ -1,6 +1,6 @@ #!/bin/bash -## Copyright (C) 2017-2023 Free Software Foundation, Inc. +## Copyright (C) 2017-2024 Free Software Foundation, Inc. ## This file is part of GNU Emacs. @@ -148,7 +148,7 @@ done if [ -z $ACTUAL_VERSION ]; then ACTUAL_VERSION=` - sed -n 's/^AC_INIT(GNU Emacs,[ ]*\([^ ,)]*\).*/\1/p' < ../../../configure.ac + sed -n 's/^AC_INIT(\[*GNU Emacs]*,[ ]*\[*\([^] ,)]*\).*/\1/p' < ../../../configure.ac ` fi diff --git a/admin/quick-install-emacs b/admin/quick-install-emacs index a996b4cca77a..985e71d99770 100755 --- a/admin/quick-install-emacs +++ b/admin/quick-install-emacs @@ -1,7 +1,7 @@ #!/bin/sh ### quick-install-emacs --- do a halfway-decent job of installing emacs quickly -## Copyright (C) 2001-2023 Free Software Foundation, Inc. +## Copyright (C) 2001-2024 Free Software Foundation, Inc. ## Author: Miles Bader <miles@gnu.org> @@ -172,10 +172,10 @@ test x"$prefix" = x && { prefix="`get_config_var prefix`" || exit 4 ; } test x"$ARCH" = x && { ARCH="`get_config_var host`" || exit 4 ; } VERSION=` - sed -n 's/^AC_INIT([ ]*emacs[ ]*,[ ]*\([^ ),]*\).*/\1/p' <$SRC/configure.ac + sed -n 's/^AC_INIT([ ]*\[*emacs]*[ ]*,[ ]*\[*\([^] ),]*\).*/\1/p' <$SRC/configure.ac ` || exit 4 test -n "$VERSION" || VERSION=` - sed -n 's/^AC_INIT([ ]*GNU Emacs[ ]*,[ ]*\([^ ),]*\).*/\1/p' <$SRC/configure.ac + sed -n 's/^AC_INIT([ ]*\[*GNU Emacs]*[ ]*,[ ]*\[*\([^] ),]*\).*/\1/p' <$SRC/configure.ac ` || exit 4 test -n "$VERSION" || { printf '%s\n' >&2 "$me: no version in configure.ac"; exit 4; } diff --git a/admin/run-codespell b/admin/run-codespell new file mode 100755 index 000000000000..991b72073b23 --- /dev/null +++ b/admin/run-codespell @@ -0,0 +1,68 @@ +#!/bin/bash +### run-codespell - run codespell on Emacs + +## Copyright (C) 2023-2024 Free Software Foundation, Inc. + +## Author: Stefan Kangas <stefankangas@gmail.com> + +## This file is part of GNU Emacs. + +## GNU Emacs is free software: you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation, either version 3 of the License, or +## (at your option) any later version. + +## GNU Emacs is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. + +## You should have received a copy of the GNU General Public License +## along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. + +### Commentary: + +## Run codespell on the Emacs source tree. +## +## codespell 2.2.2 or later is recommended. Earlier versions had a +## bug where the line count was incorrect for files containing "^L" +## characters. + +source "${0%/*}/emacs-shell-lib" + +CODESPELL_DIR="${PD}/codespell" + +CODESPELL_RC="${CODESPELL_DIR}/codespell.rc" +CODESPELL_EXCLUDE="${CODESPELL_DIR}/codespell.exclude" +CODESPELL_IGNORE="${CODESPELL_DIR}/codespell.ignore" +CODESPELL_DICTIONARY="${CODESPELL_DIR}/codespell.dictionary" + +emacs_run_codespell () +{ + git ls-files |\ + grep -v -E -e '^(lib|m4)/.*' |\ + grep -v -E -e '^admin/(charsets|codespell|unidata)/.*' |\ + grep -v -E -e '^doc/misc/texinfo.tex$' |\ + grep -v -E -e '^etc/(AUTHORS|HELLO|publicsuffix.txt)$' |\ + grep -v -E -e '^etc/refcards/(cs|de|fr|pl|pt|sk)-.+.tex$' |\ + grep -v -E -e '^etc/tutorials/TUTORIAL\..+' |\ + grep -v -E -e '^leim/(MISC|SKK)-DIC/.*' |\ + grep -v -E -e '^lisp/language/ethio-util.el' |\ + grep -v -E -e '^lisp/ldefs-boot.el' |\ + grep -v -E -e '^lisp/leim/.*' |\ + grep -v -E -e '^test/lisp/net/puny-resources/IdnaTestV2.txt' |\ + grep -v -E -e '^test/manual/(etags|indent)/.*' |\ + grep -v -E -e '^test/src/regex-resources/.*' |\ + xargs codespell \ + --config "$CODESPELL_RC" \ + --exclude-file "$CODESPELL_EXCLUDE" \ + --ignore-words "$CODESPELL_IGNORE" \ + --disable-colors \ + --write-changes \ + $@ +} + +emacs_run_codespell +emacs_run_codespell --dictionary "$CODESPELL_DICTIONARY" + +exit 0 diff --git a/admin/unidata/BidiBrackets.txt b/admin/unidata/BidiBrackets.txt index 89698f588ae0..e138e7f5bea6 100644 --- a/admin/unidata/BidiBrackets.txt +++ b/admin/unidata/BidiBrackets.txt @@ -1,6 +1,6 @@ -# BidiBrackets-14.0.0.txt -# Date: 2021-06-30, 23:59:00 GMT [AG, LI, KW] -# © 2021 Unicode®, Inc. +# BidiBrackets-15.0.0.txt +# Date: 2022-05-03, 18:42:00 GMT [AG, LI, KW] +# © 2022 Unicode®, Inc. # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. # For terms of use, see https://www.unicode.org/terms_of_use.html # diff --git a/admin/unidata/BidiMirroring.txt b/admin/unidata/BidiMirroring.txt index bd8e2c5d0017..5861d6e7f4b7 100644 --- a/admin/unidata/BidiMirroring.txt +++ b/admin/unidata/BidiMirroring.txt @@ -1,6 +1,6 @@ -# BidiMirroring-14.0.0.txt -# Date: 2021-08-08, 22:55:00 GMT [KW, RP] -# © 2021 Unicode®, Inc. +# BidiMirroring-15.0.0.txt +# Date: 2022-05-03, 18:47:00 GMT [KW, RP] +# © 2022 Unicode®, Inc. # For terms of use, see https://www.unicode.org/terms_of_use.html # # Unicode Character Database @@ -15,7 +15,7 @@ # value, for which there is another Unicode character that typically has a glyph # that is the mirror image of the original character's glyph. # -# The repertoire covered by the file is Unicode 14.0.0. +# The repertoire covered by the file is Unicode 15.0.0. # # The file contains a list of lines with mappings from one code point # to another one for character-based mirroring. diff --git a/admin/unidata/Blocks.txt b/admin/unidata/Blocks.txt index cc5d61988bb5..12684594c9f0 100644 --- a/admin/unidata/Blocks.txt +++ b/admin/unidata/Blocks.txt @@ -1,10 +1,10 @@ -# Blocks-14.0.0.txt -# Date: 2021-01-22, 23:29:00 GMT [KW] -# © 2021 Unicode®, Inc. -# For terms of use, see http://www.unicode.org/terms_of_use.html +# Blocks-15.0.0.txt +# Date: 2022-01-28, 20:58:00 GMT [KW] +# © 2022 Unicode®, Inc. +# For terms of use, see https://www.unicode.org/terms_of_use.html # # Unicode Character Database -# For documentation, see http://www.unicode.org/reports/tr44/ +# For documentation, see https://www.unicode.org/reports/tr44/ # # Format: # Start Code..End Code; Block Name @@ -15,7 +15,7 @@ # and underbars are ignored. # For example, "Latin Extended-A" and "latin extended a" are equivalent. # For more information on the comparison of property values, -# see UAX #44: http://www.unicode.org/reports/tr44/ +# see UAX #44: https://www.unicode.org/reports/tr44/ # # All block ranges start with a value where (cp MOD 16) = 0, # and end with a value where (cp MOD 16) = 15. In other words, @@ -241,6 +241,7 @@ FFF0..FFFF; Specials 10D00..10D3F; Hanifi Rohingya 10E60..10E7F; Rumi Numeral Symbols 10E80..10EBF; Yezidi +10EC0..10EFF; Arabic Extended-C 10F00..10F2F; Old Sogdian 10F30..10F6F; Sogdian 10F70..10FAF; Old Uyghur @@ -272,11 +273,13 @@ FFF0..FFFF; Specials 11A50..11AAF; Soyombo 11AB0..11ABF; Unified Canadian Aboriginal Syllabics Extended-A 11AC0..11AFF; Pau Cin Hau +11B00..11B5F; Devanagari Extended-A 11C00..11C6F; Bhaiksuki 11C70..11CBF; Marchen 11D00..11D5F; Masaram Gondi 11D60..11DAF; Gunjala Gondi 11EE0..11EFF; Makasar +11F00..11F5F; Kawi 11FB0..11FBF; Lisu Supplement 11FC0..11FFF; Tamil Supplement 12000..123FF; Cuneiform @@ -284,7 +287,7 @@ FFF0..FFFF; Specials 12480..1254F; Early Dynastic Cuneiform 12F90..12FFF; Cypro-Minoan 13000..1342F; Egyptian Hieroglyphs -13430..1343F; Egyptian Hieroglyph Format Controls +13430..1345F; Egyptian Hieroglyph Format Controls 14400..1467F; Anatolian Hieroglyphs 16800..16A3F; Bamum Supplement 16A40..16A6F; Mro @@ -309,6 +312,7 @@ FFF0..FFFF; Specials 1D000..1D0FF; Byzantine Musical Symbols 1D100..1D1FF; Musical Symbols 1D200..1D24F; Ancient Greek Musical Notation +1D2C0..1D2DF; Kaktovik Numerals 1D2E0..1D2FF; Mayan Numerals 1D300..1D35F; Tai Xuan Jing Symbols 1D360..1D37F; Counting Rod Numerals @@ -316,9 +320,11 @@ FFF0..FFFF; Specials 1D800..1DAAF; Sutton SignWriting 1DF00..1DFFF; Latin Extended-G 1E000..1E02F; Glagolitic Supplement +1E030..1E08F; Cyrillic Extended-D 1E100..1E14F; Nyiakeng Puachue Hmong 1E290..1E2BF; Toto 1E2C0..1E2FF; Wancho +1E4D0..1E4FF; Nag Mundari 1E7E0..1E7FF; Ethiopic Extended-B 1E800..1E8DF; Mende Kikakui 1E900..1E95F; Adlam @@ -348,6 +354,7 @@ FFF0..FFFF; Specials 2CEB0..2EBEF; CJK Unified Ideographs Extension F 2F800..2FA1F; CJK Compatibility Ideographs Supplement 30000..3134F; CJK Unified Ideographs Extension G +31350..323AF; CJK Unified Ideographs Extension H E0000..E007F; Tags E0100..E01EF; Variation Selectors Supplement F0000..FFFFF; Supplementary Private Use Area-A diff --git a/admin/unidata/IVD_Sequences.txt b/admin/unidata/IVD_Sequences.txt index 886d8519ab5b..86a4ab5138f6 100644 --- a/admin/unidata/IVD_Sequences.txt +++ b/admin/unidata/IVD_Sequences.txt @@ -2,6 +2,9 @@ # # History: # +# 2022-09-13 Registration of additional sequences in the Adobe-Japan1 +# collection. +# # 2020-11-06 Registration of additional sequences in the MSARG # collection. # @@ -32,7 +35,7 @@ # For more details on the IVD, see UTS #37: # https://www.unicode.org/reports/tr37/ # -# Copyright 2006-2020 Unicode, Inc. +# Copyright 2006-2022 Unicode, Inc. # For terms of use, see: https://www.unicode.org/copyright.html#8 # 3402 E0100; Adobe-Japan1; CID+13698 @@ -39337,4 +39340,5 @@ FA29 E0100; Adobe-Japan1; CID+8687 2EB71 E0101; Moji_Joho; MJ059252 2EB79 E0100; Moji_Joho; MJ059255 2EB79 E0101; Moji_Joho; MJ059256 +31350 E0100; Adobe-Japan1; CID+19130 # EOF diff --git a/admin/unidata/IdnaMappingTable.txt b/admin/unidata/IdnaMappingTable.txt new file mode 100644 index 000000000000..e4c061179290 --- /dev/null +++ b/admin/unidata/IdnaMappingTable.txt @@ -0,0 +1,9026 @@ +# IdnaMappingTable.txt +# Date: 2022-05-02, 19:29:26 GMT +# © 2022 Unicode®, Inc. +# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. +# For terms of use, see https://www.unicode.org/terms_of_use.html +# +# Unicode IDNA Compatible Preprocessing for UTS #46 +# Version: 15.0.0 +# +# For documentation and usage, see https://www.unicode.org/reports/tr46 +# +0000..002C ; disallowed_STD3_valid # 1.1 <control-0000>..COMMA +002D..002E ; valid # 1.1 HYPHEN-MINUS..FULL STOP +002F ; disallowed_STD3_valid # 1.1 SOLIDUS +0030..0039 ; valid # 1.1 DIGIT ZERO..DIGIT NINE +003A..0040 ; disallowed_STD3_valid # 1.1 COLON..COMMERCIAL AT +0041 ; mapped ; 0061 # 1.1 LATIN CAPITAL LETTER A +0042 ; mapped ; 0062 # 1.1 LATIN CAPITAL LETTER B +0043 ; mapped ; 0063 # 1.1 LATIN CAPITAL LETTER C +0044 ; mapped ; 0064 # 1.1 LATIN CAPITAL LETTER D +0045 ; mapped ; 0065 # 1.1 LATIN CAPITAL LETTER E +0046 ; mapped ; 0066 # 1.1 LATIN CAPITAL LETTER F +0047 ; mapped ; 0067 # 1.1 LATIN CAPITAL LETTER G +0048 ; mapped ; 0068 # 1.1 LATIN CAPITAL LETTER H +0049 ; mapped ; 0069 # 1.1 LATIN CAPITAL LETTER I +004A ; mapped ; 006A # 1.1 LATIN CAPITAL LETTER J +004B ; mapped ; 006B # 1.1 LATIN CAPITAL LETTER K +004C ; mapped ; 006C # 1.1 LATIN CAPITAL LETTER L +004D ; mapped ; 006D # 1.1 LATIN CAPITAL LETTER M +004E ; mapped ; 006E # 1.1 LATIN CAPITAL LETTER N +004F ; mapped ; 006F # 1.1 LATIN CAPITAL LETTER O +0050 ; mapped ; 0070 # 1.1 LATIN CAPITAL LETTER P +0051 ; mapped ; 0071 # 1.1 LATIN CAPITAL LETTER Q +0052 ; mapped ; 0072 # 1.1 LATIN CAPITAL LETTER R +0053 ; mapped ; 0073 # 1.1 LATIN CAPITAL LETTER S +0054 ; mapped ; 0074 # 1.1 LATIN CAPITAL LETTER T +0055 ; mapped ; 0075 # 1.1 LATIN CAPITAL LETTER U +0056 ; mapped ; 0076 # 1.1 LATIN CAPITAL LETTER V +0057 ; mapped ; 0077 # 1.1 LATIN CAPITAL LETTER W +0058 ; mapped ; 0078 # 1.1 LATIN CAPITAL LETTER X +0059 ; mapped ; 0079 # 1.1 LATIN CAPITAL LETTER Y +005A ; mapped ; 007A # 1.1 LATIN CAPITAL LETTER Z +005B..0060 ; disallowed_STD3_valid # 1.1 LEFT SQUARE BRACKET..GRAVE ACCENT +0061..007A ; valid # 1.1 LATIN SMALL LETTER A..LATIN SMALL LETTER Z +007B..007F ; disallowed_STD3_valid # 1.1 LEFT CURLY BRACKET..<control-007F> +0080..009F ; disallowed # 1.1 <control-0080>..<control-009F> +00A0 ; disallowed_STD3_mapped ; 0020 # 1.1 NO-BREAK SPACE +00A1..00A7 ; valid ; ; NV8 # 1.1 INVERTED EXCLAMATION MARK..SECTION SIGN +00A8 ; disallowed_STD3_mapped ; 0020 0308 # 1.1 DIAERESIS +00A9 ; valid ; ; NV8 # 1.1 COPYRIGHT SIGN +00AA ; mapped ; 0061 # 1.1 FEMININE ORDINAL INDICATOR +00AB..00AC ; valid ; ; NV8 # 1.1 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK..NOT SIGN +00AD ; ignored # 1.1 SOFT HYPHEN +00AE ; valid ; ; NV8 # 1.1 REGISTERED SIGN +00AF ; disallowed_STD3_mapped ; 0020 0304 # 1.1 MACRON +00B0..00B1 ; valid ; ; NV8 # 1.1 DEGREE SIGN..PLUS-MINUS SIGN +00B2 ; mapped ; 0032 # 1.1 SUPERSCRIPT TWO +00B3 ; mapped ; 0033 # 1.1 SUPERSCRIPT THREE +00B4 ; disallowed_STD3_mapped ; 0020 0301 # 1.1 ACUTE ACCENT +00B5 ; mapped ; 03BC # 1.1 MICRO SIGN +00B6 ; valid ; ; NV8 # 1.1 PILCROW SIGN +00B7 ; valid # 1.1 MIDDLE DOT +00B8 ; disallowed_STD3_mapped ; 0020 0327 # 1.1 CEDILLA +00B9 ; mapped ; 0031 # 1.1 SUPERSCRIPT ONE +00BA ; mapped ; 006F # 1.1 MASCULINE ORDINAL INDICATOR +00BB ; valid ; ; NV8 # 1.1 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +00BC ; mapped ; 0031 2044 0034 #1.1 VULGAR FRACTION ONE QUARTER +00BD ; mapped ; 0031 2044 0032 #1.1 VULGAR FRACTION ONE HALF +00BE ; mapped ; 0033 2044 0034 #1.1 VULGAR FRACTION THREE QUARTERS +00BF ; valid ; ; NV8 # 1.1 INVERTED QUESTION MARK +00C0 ; mapped ; 00E0 # 1.1 LATIN CAPITAL LETTER A WITH GRAVE +00C1 ; mapped ; 00E1 # 1.1 LATIN CAPITAL LETTER A WITH ACUTE +00C2 ; mapped ; 00E2 # 1.1 LATIN CAPITAL LETTER A WITH CIRCUMFLEX +00C3 ; mapped ; 00E3 # 1.1 LATIN CAPITAL LETTER A WITH TILDE +00C4 ; mapped ; 00E4 # 1.1 LATIN CAPITAL LETTER A WITH DIAERESIS +00C5 ; mapped ; 00E5 # 1.1 LATIN CAPITAL LETTER A WITH RING ABOVE +00C6 ; mapped ; 00E6 # 1.1 LATIN CAPITAL LETTER AE +00C7 ; mapped ; 00E7 # 1.1 LATIN CAPITAL LETTER C WITH CEDILLA +00C8 ; mapped ; 00E8 # 1.1 LATIN CAPITAL LETTER E WITH GRAVE +00C9 ; mapped ; 00E9 # 1.1 LATIN CAPITAL LETTER E WITH ACUTE +00CA ; mapped ; 00EA # 1.1 LATIN CAPITAL LETTER E WITH CIRCUMFLEX +00CB ; mapped ; 00EB # 1.1 LATIN CAPITAL LETTER E WITH DIAERESIS +00CC ; mapped ; 00EC # 1.1 LATIN CAPITAL LETTER I WITH GRAVE +00CD ; mapped ; 00ED # 1.1 LATIN CAPITAL LETTER I WITH ACUTE +00CE ; mapped ; 00EE # 1.1 LATIN CAPITAL LETTER I WITH CIRCUMFLEX +00CF ; mapped ; 00EF # 1.1 LATIN CAPITAL LETTER I WITH DIAERESIS +00D0 ; mapped ; 00F0 # 1.1 LATIN CAPITAL LETTER ETH +00D1 ; mapped ; 00F1 # 1.1 LATIN CAPITAL LETTER N WITH TILDE +00D2 ; mapped ; 00F2 # 1.1 LATIN CAPITAL LETTER O WITH GRAVE +00D3 ; mapped ; 00F3 # 1.1 LATIN CAPITAL LETTER O WITH ACUTE +00D4 ; mapped ; 00F4 # 1.1 LATIN CAPITAL LETTER O WITH CIRCUMFLEX +00D5 ; mapped ; 00F5 # 1.1 LATIN CAPITAL LETTER O WITH TILDE +00D6 ; mapped ; 00F6 # 1.1 LATIN CAPITAL LETTER O WITH DIAERESIS +00D7 ; valid ; ; NV8 # 1.1 MULTIPLICATION SIGN +00D8 ; mapped ; 00F8 # 1.1 LATIN CAPITAL LETTER O WITH STROKE +00D9 ; mapped ; 00F9 # 1.1 LATIN CAPITAL LETTER U WITH GRAVE +00DA ; mapped ; 00FA # 1.1 LATIN CAPITAL LETTER U WITH ACUTE +00DB ; mapped ; 00FB # 1.1 LATIN CAPITAL LETTER U WITH CIRCUMFLEX +00DC ; mapped ; 00FC # 1.1 LATIN CAPITAL LETTER U WITH DIAERESIS +00DD ; mapped ; 00FD # 1.1 LATIN CAPITAL LETTER Y WITH ACUTE +00DE ; mapped ; 00FE # 1.1 LATIN CAPITAL LETTER THORN +00DF ; deviation ; 0073 0073 # 1.1 LATIN SMALL LETTER SHARP S +00E0..00F6 ; valid # 1.1 LATIN SMALL LETTER A WITH GRAVE..LATIN SMALL LETTER O WITH DIAERESIS +00F7 ; valid ; ; NV8 # 1.1 DIVISION SIGN +00F8..00FF ; valid # 1.1 LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS +0100 ; mapped ; 0101 # 1.1 LATIN CAPITAL LETTER A WITH MACRON +0101 ; valid # 1.1 LATIN SMALL LETTER A WITH MACRON +0102 ; mapped ; 0103 # 1.1 LATIN CAPITAL LETTER A WITH BREVE +0103 ; valid # 1.1 LATIN SMALL LETTER A WITH BREVE +0104 ; mapped ; 0105 # 1.1 LATIN CAPITAL LETTER A WITH OGONEK +0105 ; valid # 1.1 LATIN SMALL LETTER A WITH OGONEK +0106 ; mapped ; 0107 # 1.1 LATIN CAPITAL LETTER C WITH ACUTE +0107 ; valid # 1.1 LATIN SMALL LETTER C WITH ACUTE +0108 ; mapped ; 0109 # 1.1 LATIN CAPITAL LETTER C WITH CIRCUMFLEX +0109 ; valid # 1.1 LATIN SMALL LETTER C WITH CIRCUMFLEX +010A ; mapped ; 010B # 1.1 LATIN CAPITAL LETTER C WITH DOT ABOVE +010B ; valid # 1.1 LATIN SMALL LETTER C WITH DOT ABOVE +010C ; mapped ; 010D # 1.1 LATIN CAPITAL LETTER C WITH CARON +010D ; valid # 1.1 LATIN SMALL LETTER C WITH CARON +010E ; mapped ; 010F # 1.1 LATIN CAPITAL LETTER D WITH CARON +010F ; valid # 1.1 LATIN SMALL LETTER D WITH CARON +0110 ; mapped ; 0111 # 1.1 LATIN CAPITAL LETTER D WITH STROKE +0111 ; valid # 1.1 LATIN SMALL LETTER D WITH STROKE +0112 ; mapped ; 0113 # 1.1 LATIN CAPITAL LETTER E WITH MACRON +0113 ; valid # 1.1 LATIN SMALL LETTER E WITH MACRON +0114 ; mapped ; 0115 # 1.1 LATIN CAPITAL LETTER E WITH BREVE +0115 ; valid # 1.1 LATIN SMALL LETTER E WITH BREVE +0116 ; mapped ; 0117 # 1.1 LATIN CAPITAL LETTER E WITH DOT ABOVE +0117 ; valid # 1.1 LATIN SMALL LETTER E WITH DOT ABOVE +0118 ; mapped ; 0119 # 1.1 LATIN CAPITAL LETTER E WITH OGONEK +0119 ; valid # 1.1 LATIN SMALL LETTER E WITH OGONEK +011A ; mapped ; 011B # 1.1 LATIN CAPITAL LETTER E WITH CARON +011B ; valid # 1.1 LATIN SMALL LETTER E WITH CARON +011C ; mapped ; 011D # 1.1 LATIN CAPITAL LETTER G WITH CIRCUMFLEX +011D ; valid # 1.1 LATIN SMALL LETTER G WITH CIRCUMFLEX +011E ; mapped ; 011F # 1.1 LATIN CAPITAL LETTER G WITH BREVE +011F ; valid # 1.1 LATIN SMALL LETTER G WITH BREVE +0120 ; mapped ; 0121 # 1.1 LATIN CAPITAL LETTER G WITH DOT ABOVE +0121 ; valid # 1.1 LATIN SMALL LETTER G WITH DOT ABOVE +0122 ; mapped ; 0123 # 1.1 LATIN CAPITAL LETTER G WITH CEDILLA +0123 ; valid # 1.1 LATIN SMALL LETTER G WITH CEDILLA +0124 ; mapped ; 0125 # 1.1 LATIN CAPITAL LETTER H WITH CIRCUMFLEX +0125 ; valid # 1.1 LATIN SMALL LETTER H WITH CIRCUMFLEX +0126 ; mapped ; 0127 # 1.1 LATIN CAPITAL LETTER H WITH STROKE +0127 ; valid # 1.1 LATIN SMALL LETTER H WITH STROKE +0128 ; mapped ; 0129 # 1.1 LATIN CAPITAL LETTER I WITH TILDE +0129 ; valid # 1.1 LATIN SMALL LETTER I WITH TILDE +012A ; mapped ; 012B # 1.1 LATIN CAPITAL LETTER I WITH MACRON +012B ; valid # 1.1 LATIN SMALL LETTER I WITH MACRON +012C ; mapped ; 012D # 1.1 LATIN CAPITAL LETTER I WITH BREVE +012D ; valid # 1.1 LATIN SMALL LETTER I WITH BREVE +012E ; mapped ; 012F # 1.1 LATIN CAPITAL LETTER I WITH OGONEK +012F ; valid # 1.1 LATIN SMALL LETTER I WITH OGONEK +0130 ; mapped ; 0069 0307 # 1.1 LATIN CAPITAL LETTER I WITH DOT ABOVE +0131 ; valid # 1.1 LATIN SMALL LETTER DOTLESS I +0132..0133 ; mapped ; 0069 006A # 1.1 LATIN CAPITAL LIGATURE IJ..LATIN SMALL LIGATURE IJ +0134 ; mapped ; 0135 # 1.1 LATIN CAPITAL LETTER J WITH CIRCUMFLEX +0135 ; valid # 1.1 LATIN SMALL LETTER J WITH CIRCUMFLEX +0136 ; mapped ; 0137 # 1.1 LATIN CAPITAL LETTER K WITH CEDILLA +0137..0138 ; valid # 1.1 LATIN SMALL LETTER K WITH CEDILLA..LATIN SMALL LETTER KRA +0139 ; mapped ; 013A # 1.1 LATIN CAPITAL LETTER L WITH ACUTE +013A ; valid # 1.1 LATIN SMALL LETTER L WITH ACUTE +013B ; mapped ; 013C # 1.1 LATIN CAPITAL LETTER L WITH CEDILLA +013C ; valid # 1.1 LATIN SMALL LETTER L WITH CEDILLA +013D ; mapped ; 013E # 1.1 LATIN CAPITAL LETTER L WITH CARON +013E ; valid # 1.1 LATIN SMALL LETTER L WITH CARON +013F..0140 ; mapped ; 006C 00B7 # 1.1 LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATIN SMALL LETTER L WITH MIDDLE DOT +0141 ; mapped ; 0142 # 1.1 LATIN CAPITAL LETTER L WITH STROKE +0142 ; valid # 1.1 LATIN SMALL LETTER L WITH STROKE +0143 ; mapped ; 0144 # 1.1 LATIN CAPITAL LETTER N WITH ACUTE +0144 ; valid # 1.1 LATIN SMALL LETTER N WITH ACUTE +0145 ; mapped ; 0146 # 1.1 LATIN CAPITAL LETTER N WITH CEDILLA +0146 ; valid # 1.1 LATIN SMALL LETTER N WITH CEDILLA +0147 ; mapped ; 0148 # 1.1 LATIN CAPITAL LETTER N WITH CARON +0148 ; valid # 1.1 LATIN SMALL LETTER N WITH CARON +0149 ; mapped ; 02BC 006E # 1.1 LATIN SMALL LETTER N PRECEDED BY APOSTROPHE +014A ; mapped ; 014B # 1.1 LATIN CAPITAL LETTER ENG +014B ; valid # 1.1 LATIN SMALL LETTER ENG +014C ; mapped ; 014D # 1.1 LATIN CAPITAL LETTER O WITH MACRON +014D ; valid # 1.1 LATIN SMALL LETTER O WITH MACRON +014E ; mapped ; 014F # 1.1 LATIN CAPITAL LETTER O WITH BREVE +014F ; valid # 1.1 LATIN SMALL LETTER O WITH BREVE +0150 ; mapped ; 0151 # 1.1 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE +0151 ; valid # 1.1 LATIN SMALL LETTER O WITH DOUBLE ACUTE +0152 ; mapped ; 0153 # 1.1 LATIN CAPITAL LIGATURE OE +0153 ; valid # 1.1 LATIN SMALL LIGATURE OE +0154 ; mapped ; 0155 # 1.1 LATIN CAPITAL LETTER R WITH ACUTE +0155 ; valid # 1.1 LATIN SMALL LETTER R WITH ACUTE +0156 ; mapped ; 0157 # 1.1 LATIN CAPITAL LETTER R WITH CEDILLA +0157 ; valid # 1.1 LATIN SMALL LETTER R WITH CEDILLA +0158 ; mapped ; 0159 # 1.1 LATIN CAPITAL LETTER R WITH CARON +0159 ; valid # 1.1 LATIN SMALL LETTER R WITH CARON +015A ; mapped ; 015B # 1.1 LATIN CAPITAL LETTER S WITH ACUTE +015B ; valid # 1.1 LATIN SMALL LETTER S WITH ACUTE +015C ; mapped ; 015D # 1.1 LATIN CAPITAL LETTER S WITH CIRCUMFLEX +015D ; valid # 1.1 LATIN SMALL LETTER S WITH CIRCUMFLEX +015E ; mapped ; 015F # 1.1 LATIN CAPITAL LETTER S WITH CEDILLA +015F ; valid # 1.1 LATIN SMALL LETTER S WITH CEDILLA +0160 ; mapped ; 0161 # 1.1 LATIN CAPITAL LETTER S WITH CARON +0161 ; valid # 1.1 LATIN SMALL LETTER S WITH CARON +0162 ; mapped ; 0163 # 1.1 LATIN CAPITAL LETTER T WITH CEDILLA +0163 ; valid # 1.1 LATIN SMALL LETTER T WITH CEDILLA +0164 ; mapped ; 0165 # 1.1 LATIN CAPITAL LETTER T WITH CARON +0165 ; valid # 1.1 LATIN SMALL LETTER T WITH CARON +0166 ; mapped ; 0167 # 1.1 LATIN CAPITAL LETTER T WITH STROKE +0167 ; valid # 1.1 LATIN SMALL LETTER T WITH STROKE +0168 ; mapped ; 0169 # 1.1 LATIN CAPITAL LETTER U WITH TILDE +0169 ; valid # 1.1 LATIN SMALL LETTER U WITH TILDE +016A ; mapped ; 016B # 1.1 LATIN CAPITAL LETTER U WITH MACRON +016B ; valid # 1.1 LATIN SMALL LETTER U WITH MACRON +016C ; mapped ; 016D # 1.1 LATIN CAPITAL LETTER U WITH BREVE +016D ; valid # 1.1 LATIN SMALL LETTER U WITH BREVE +016E ; mapped ; 016F # 1.1 LATIN CAPITAL LETTER U WITH RING ABOVE +016F ; valid # 1.1 LATIN SMALL LETTER U WITH RING ABOVE +0170 ; mapped ; 0171 # 1.1 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE +0171 ; valid # 1.1 LATIN SMALL LETTER U WITH DOUBLE ACUTE +0172 ; mapped ; 0173 # 1.1 LATIN CAPITAL LETTER U WITH OGONEK +0173 ; valid # 1.1 LATIN SMALL LETTER U WITH OGONEK +0174 ; mapped ; 0175 # 1.1 LATIN CAPITAL LETTER W WITH CIRCUMFLEX +0175 ; valid # 1.1 LATIN SMALL LETTER W WITH CIRCUMFLEX +0176 ; mapped ; 0177 # 1.1 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX +0177 ; valid # 1.1 LATIN SMALL LETTER Y WITH CIRCUMFLEX +0178 ; mapped ; 00FF # 1.1 LATIN CAPITAL LETTER Y WITH DIAERESIS +0179 ; mapped ; 017A # 1.1 LATIN CAPITAL LETTER Z WITH ACUTE +017A ; valid # 1.1 LATIN SMALL LETTER Z WITH ACUTE +017B ; mapped ; 017C # 1.1 LATIN CAPITAL LETTER Z WITH DOT ABOVE +017C ; valid # 1.1 LATIN SMALL LETTER Z WITH DOT ABOVE +017D ; mapped ; 017E # 1.1 LATIN CAPITAL LETTER Z WITH CARON +017E ; valid # 1.1 LATIN SMALL LETTER Z WITH CARON +017F ; mapped ; 0073 # 1.1 LATIN SMALL LETTER LONG S +0180 ; valid # 1.1 LATIN SMALL LETTER B WITH STROKE +0181 ; mapped ; 0253 # 1.1 LATIN CAPITAL LETTER B WITH HOOK +0182 ; mapped ; 0183 # 1.1 LATIN CAPITAL LETTER B WITH TOPBAR +0183 ; valid # 1.1 LATIN SMALL LETTER B WITH TOPBAR +0184 ; mapped ; 0185 # 1.1 LATIN CAPITAL LETTER TONE SIX +0185 ; valid # 1.1 LATIN SMALL LETTER TONE SIX +0186 ; mapped ; 0254 # 1.1 LATIN CAPITAL LETTER OPEN O +0187 ; mapped ; 0188 # 1.1 LATIN CAPITAL LETTER C WITH HOOK +0188 ; valid # 1.1 LATIN SMALL LETTER C WITH HOOK +0189 ; mapped ; 0256 # 1.1 LATIN CAPITAL LETTER AFRICAN D +018A ; mapped ; 0257 # 1.1 LATIN CAPITAL LETTER D WITH HOOK +018B ; mapped ; 018C # 1.1 LATIN CAPITAL LETTER D WITH TOPBAR +018C..018D ; valid # 1.1 LATIN SMALL LETTER D WITH TOPBAR..LATIN SMALL LETTER TURNED DELTA +018E ; mapped ; 01DD # 1.1 LATIN CAPITAL LETTER REVERSED E +018F ; mapped ; 0259 # 1.1 LATIN CAPITAL LETTER SCHWA +0190 ; mapped ; 025B # 1.1 LATIN CAPITAL LETTER OPEN E +0191 ; mapped ; 0192 # 1.1 LATIN CAPITAL LETTER F WITH HOOK +0192 ; valid # 1.1 LATIN SMALL LETTER F WITH HOOK +0193 ; mapped ; 0260 # 1.1 LATIN CAPITAL LETTER G WITH HOOK +0194 ; mapped ; 0263 # 1.1 LATIN CAPITAL LETTER GAMMA +0195 ; valid # 1.1 LATIN SMALL LETTER HV +0196 ; mapped ; 0269 # 1.1 LATIN CAPITAL LETTER IOTA +0197 ; mapped ; 0268 # 1.1 LATIN CAPITAL LETTER I WITH STROKE +0198 ; mapped ; 0199 # 1.1 LATIN CAPITAL LETTER K WITH HOOK +0199..019B ; valid # 1.1 LATIN SMALL LETTER K WITH HOOK..LATIN SMALL LETTER LAMBDA WITH STROKE +019C ; mapped ; 026F # 1.1 LATIN CAPITAL LETTER TURNED M +019D ; mapped ; 0272 # 1.1 LATIN CAPITAL LETTER N WITH LEFT HOOK +019E ; valid # 1.1 LATIN SMALL LETTER N WITH LONG RIGHT LEG +019F ; mapped ; 0275 # 1.1 LATIN CAPITAL LETTER O WITH MIDDLE TILDE +01A0 ; mapped ; 01A1 # 1.1 LATIN CAPITAL LETTER O WITH HORN +01A1 ; valid # 1.1 LATIN SMALL LETTER O WITH HORN +01A2 ; mapped ; 01A3 # 1.1 LATIN CAPITAL LETTER OI +01A3 ; valid # 1.1 LATIN SMALL LETTER OI +01A4 ; mapped ; 01A5 # 1.1 LATIN CAPITAL LETTER P WITH HOOK +01A5 ; valid # 1.1 LATIN SMALL LETTER P WITH HOOK +01A6 ; mapped ; 0280 # 1.1 LATIN LETTER YR +01A7 ; mapped ; 01A8 # 1.1 LATIN CAPITAL LETTER TONE TWO +01A8 ; valid # 1.1 LATIN SMALL LETTER TONE TWO +01A9 ; mapped ; 0283 # 1.1 LATIN CAPITAL LETTER ESH +01AA..01AB ; valid # 1.1 LATIN LETTER REVERSED ESH LOOP..LATIN SMALL LETTER T WITH PALATAL HOOK +01AC ; mapped ; 01AD # 1.1 LATIN CAPITAL LETTER T WITH HOOK +01AD ; valid # 1.1 LATIN SMALL LETTER T WITH HOOK +01AE ; mapped ; 0288 # 1.1 LATIN CAPITAL LETTER T WITH RETROFLEX HOOK +01AF ; mapped ; 01B0 # 1.1 LATIN CAPITAL LETTER U WITH HORN +01B0 ; valid # 1.1 LATIN SMALL LETTER U WITH HORN +01B1 ; mapped ; 028A # 1.1 LATIN CAPITAL LETTER UPSILON +01B2 ; mapped ; 028B # 1.1 LATIN CAPITAL LETTER V WITH HOOK +01B3 ; mapped ; 01B4 # 1.1 LATIN CAPITAL LETTER Y WITH HOOK +01B4 ; valid # 1.1 LATIN SMALL LETTER Y WITH HOOK +01B5 ; mapped ; 01B6 # 1.1 LATIN CAPITAL LETTER Z WITH STROKE +01B6 ; valid # 1.1 LATIN SMALL LETTER Z WITH STROKE +01B7 ; mapped ; 0292 # 1.1 LATIN CAPITAL LETTER EZH +01B8 ; mapped ; 01B9 # 1.1 LATIN CAPITAL LETTER EZH REVERSED +01B9..01BB ; valid # 1.1 LATIN SMALL LETTER EZH REVERSED..LATIN LETTER TWO WITH STROKE +01BC ; mapped ; 01BD # 1.1 LATIN CAPITAL LETTER TONE FIVE +01BD..01C3 ; valid # 1.1 LATIN SMALL LETTER TONE FIVE..LATIN LETTER RETROFLEX CLICK +01C4..01C6 ; mapped ; 0064 017E # 1.1 LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER DZ WITH CARON +01C7..01C9 ; mapped ; 006C 006A # 1.1 LATIN CAPITAL LETTER LJ..LATIN SMALL LETTER LJ +01CA..01CC ; mapped ; 006E 006A # 1.1 LATIN CAPITAL LETTER NJ..LATIN SMALL LETTER NJ +01CD ; mapped ; 01CE # 1.1 LATIN CAPITAL LETTER A WITH CARON +01CE ; valid # 1.1 LATIN SMALL LETTER A WITH CARON +01CF ; mapped ; 01D0 # 1.1 LATIN CAPITAL LETTER I WITH CARON +01D0 ; valid # 1.1 LATIN SMALL LETTER I WITH CARON +01D1 ; mapped ; 01D2 # 1.1 LATIN CAPITAL LETTER O WITH CARON +01D2 ; valid # 1.1 LATIN SMALL LETTER O WITH CARON +01D3 ; mapped ; 01D4 # 1.1 LATIN CAPITAL LETTER U WITH CARON +01D4 ; valid # 1.1 LATIN SMALL LETTER U WITH CARON +01D5 ; mapped ; 01D6 # 1.1 LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON +01D6 ; valid # 1.1 LATIN SMALL LETTER U WITH DIAERESIS AND MACRON +01D7 ; mapped ; 01D8 # 1.1 LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE +01D8 ; valid # 1.1 LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE +01D9 ; mapped ; 01DA # 1.1 LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON +01DA ; valid # 1.1 LATIN SMALL LETTER U WITH DIAERESIS AND CARON +01DB ; mapped ; 01DC # 1.1 LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE +01DC..01DD ; valid # 1.1 LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE..LATIN SMALL LETTER TURNED E +01DE ; mapped ; 01DF # 1.1 LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON +01DF ; valid # 1.1 LATIN SMALL LETTER A WITH DIAERESIS AND MACRON +01E0 ; mapped ; 01E1 # 1.1 LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON +01E1 ; valid # 1.1 LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON +01E2 ; mapped ; 01E3 # 1.1 LATIN CAPITAL LETTER AE WITH MACRON +01E3 ; valid # 1.1 LATIN SMALL LETTER AE WITH MACRON +01E4 ; mapped ; 01E5 # 1.1 LATIN CAPITAL LETTER G WITH STROKE +01E5 ; valid # 1.1 LATIN SMALL LETTER G WITH STROKE +01E6 ; mapped ; 01E7 # 1.1 LATIN CAPITAL LETTER G WITH CARON +01E7 ; valid # 1.1 LATIN SMALL LETTER G WITH CARON +01E8 ; mapped ; 01E9 # 1.1 LATIN CAPITAL LETTER K WITH CARON +01E9 ; valid # 1.1 LATIN SMALL LETTER K WITH CARON +01EA ; mapped ; 01EB # 1.1 LATIN CAPITAL LETTER O WITH OGONEK +01EB ; valid # 1.1 LATIN SMALL LETTER O WITH OGONEK +01EC ; mapped ; 01ED # 1.1 LATIN CAPITAL LETTER O WITH OGONEK AND MACRON +01ED ; valid # 1.1 LATIN SMALL LETTER O WITH OGONEK AND MACRON +01EE ; mapped ; 01EF # 1.1 LATIN CAPITAL LETTER EZH WITH CARON +01EF..01F0 ; valid # 1.1 LATIN SMALL LETTER EZH WITH CARON..LATIN SMALL LETTER J WITH CARON +01F1..01F3 ; mapped ; 0064 007A # 1.1 LATIN CAPITAL LETTER DZ..LATIN SMALL LETTER DZ +01F4 ; mapped ; 01F5 # 1.1 LATIN CAPITAL LETTER G WITH ACUTE +01F5 ; valid # 1.1 LATIN SMALL LETTER G WITH ACUTE +01F6 ; mapped ; 0195 # 3.0 LATIN CAPITAL LETTER HWAIR +01F7 ; mapped ; 01BF # 3.0 LATIN CAPITAL LETTER WYNN +01F8 ; mapped ; 01F9 # 3.0 LATIN CAPITAL LETTER N WITH GRAVE +01F9 ; valid # 3.0 LATIN SMALL LETTER N WITH GRAVE +01FA ; mapped ; 01FB # 1.1 LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE +01FB ; valid # 1.1 LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE +01FC ; mapped ; 01FD # 1.1 LATIN CAPITAL LETTER AE WITH ACUTE +01FD ; valid # 1.1 LATIN SMALL LETTER AE WITH ACUTE +01FE ; mapped ; 01FF # 1.1 LATIN CAPITAL LETTER O WITH STROKE AND ACUTE +01FF ; valid # 1.1 LATIN SMALL LETTER O WITH STROKE AND ACUTE +0200 ; mapped ; 0201 # 1.1 LATIN CAPITAL LETTER A WITH DOUBLE GRAVE +0201 ; valid # 1.1 LATIN SMALL LETTER A WITH DOUBLE GRAVE +0202 ; mapped ; 0203 # 1.1 LATIN CAPITAL LETTER A WITH INVERTED BREVE +0203 ; valid # 1.1 LATIN SMALL LETTER A WITH INVERTED BREVE +0204 ; mapped ; 0205 # 1.1 LATIN CAPITAL LETTER E WITH DOUBLE GRAVE +0205 ; valid # 1.1 LATIN SMALL LETTER E WITH DOUBLE GRAVE +0206 ; mapped ; 0207 # 1.1 LATIN CAPITAL LETTER E WITH INVERTED BREVE +0207 ; valid # 1.1 LATIN SMALL LETTER E WITH INVERTED BREVE +0208 ; mapped ; 0209 # 1.1 LATIN CAPITAL LETTER I WITH DOUBLE GRAVE +0209 ; valid # 1.1 LATIN SMALL LETTER I WITH DOUBLE GRAVE +020A ; mapped ; 020B # 1.1 LATIN CAPITAL LETTER I WITH INVERTED BREVE +020B ; valid # 1.1 LATIN SMALL LETTER I WITH INVERTED BREVE +020C ; mapped ; 020D # 1.1 LATIN CAPITAL LETTER O WITH DOUBLE GRAVE +020D ; valid # 1.1 LATIN SMALL LETTER O WITH DOUBLE GRAVE +020E ; mapped ; 020F # 1.1 LATIN CAPITAL LETTER O WITH INVERTED BREVE +020F ; valid # 1.1 LATIN SMALL LETTER O WITH INVERTED BREVE +0210 ; mapped ; 0211 # 1.1 LATIN CAPITAL LETTER R WITH DOUBLE GRAVE +0211 ; valid # 1.1 LATIN SMALL LETTER R WITH DOUBLE GRAVE +0212 ; mapped ; 0213 # 1.1 LATIN CAPITAL LETTER R WITH INVERTED BREVE +0213 ; valid # 1.1 LATIN SMALL LETTER R WITH INVERTED BREVE +0214 ; mapped ; 0215 # 1.1 LATIN CAPITAL LETTER U WITH DOUBLE GRAVE +0215 ; valid # 1.1 LATIN SMALL LETTER U WITH DOUBLE GRAVE +0216 ; mapped ; 0217 # 1.1 LATIN CAPITAL LETTER U WITH INVERTED BREVE +0217 ; valid # 1.1 LATIN SMALL LETTER U WITH INVERTED BREVE +0218 ; mapped ; 0219 # 3.0 LATIN CAPITAL LETTER S WITH COMMA BELOW +0219 ; valid # 3.0 LATIN SMALL LETTER S WITH COMMA BELOW +021A ; mapped ; 021B # 3.0 LATIN CAPITAL LETTER T WITH COMMA BELOW +021B ; valid # 3.0 LATIN SMALL LETTER T WITH COMMA BELOW +021C ; mapped ; 021D # 3.0 LATIN CAPITAL LETTER YOGH +021D ; valid # 3.0 LATIN SMALL LETTER YOGH +021E ; mapped ; 021F # 3.0 LATIN CAPITAL LETTER H WITH CARON +021F ; valid # 3.0 LATIN SMALL LETTER H WITH CARON +0220 ; mapped ; 019E # 3.2 LATIN CAPITAL LETTER N WITH LONG RIGHT LEG +0221 ; valid # 4.0 LATIN SMALL LETTER D WITH CURL +0222 ; mapped ; 0223 # 3.0 LATIN CAPITAL LETTER OU +0223 ; valid # 3.0 LATIN SMALL LETTER OU +0224 ; mapped ; 0225 # 3.0 LATIN CAPITAL LETTER Z WITH HOOK +0225 ; valid # 3.0 LATIN SMALL LETTER Z WITH HOOK +0226 ; mapped ; 0227 # 3.0 LATIN CAPITAL LETTER A WITH DOT ABOVE +0227 ; valid # 3.0 LATIN SMALL LETTER A WITH DOT ABOVE +0228 ; mapped ; 0229 # 3.0 LATIN CAPITAL LETTER E WITH CEDILLA +0229 ; valid # 3.0 LATIN SMALL LETTER E WITH CEDILLA +022A ; mapped ; 022B # 3.0 LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON +022B ; valid # 3.0 LATIN SMALL LETTER O WITH DIAERESIS AND MACRON +022C ; mapped ; 022D # 3.0 LATIN CAPITAL LETTER O WITH TILDE AND MACRON +022D ; valid # 3.0 LATIN SMALL LETTER O WITH TILDE AND MACRON +022E ; mapped ; 022F # 3.0 LATIN CAPITAL LETTER O WITH DOT ABOVE +022F ; valid # 3.0 LATIN SMALL LETTER O WITH DOT ABOVE +0230 ; mapped ; 0231 # 3.0 LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON +0231 ; valid # 3.0 LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON +0232 ; mapped ; 0233 # 3.0 LATIN CAPITAL LETTER Y WITH MACRON +0233 ; valid # 3.0 LATIN SMALL LETTER Y WITH MACRON +0234..0236 ; valid # 4.0 LATIN SMALL LETTER L WITH CURL..LATIN SMALL LETTER T WITH CURL +0237..0239 ; valid # 4.1 LATIN SMALL LETTER DOTLESS J..LATIN SMALL LETTER QP DIGRAPH +023A ; mapped ; 2C65 # 4.1 LATIN CAPITAL LETTER A WITH STROKE +023B ; mapped ; 023C # 4.1 LATIN CAPITAL LETTER C WITH STROKE +023C ; valid # 4.1 LATIN SMALL LETTER C WITH STROKE +023D ; mapped ; 019A # 4.1 LATIN CAPITAL LETTER L WITH BAR +023E ; mapped ; 2C66 # 4.1 LATIN CAPITAL LETTER T WITH DIAGONAL STROKE +023F..0240 ; valid # 4.1 LATIN SMALL LETTER S WITH SWASH TAIL..LATIN SMALL LETTER Z WITH SWASH TAIL +0241 ; mapped ; 0242 # 4.1 LATIN CAPITAL LETTER GLOTTAL STOP +0242 ; valid # 5.0 LATIN SMALL LETTER GLOTTAL STOP +0243 ; mapped ; 0180 # 5.0 LATIN CAPITAL LETTER B WITH STROKE +0244 ; mapped ; 0289 # 5.0 LATIN CAPITAL LETTER U BAR +0245 ; mapped ; 028C # 5.0 LATIN CAPITAL LETTER TURNED V +0246 ; mapped ; 0247 # 5.0 LATIN CAPITAL LETTER E WITH STROKE +0247 ; valid # 5.0 LATIN SMALL LETTER E WITH STROKE +0248 ; mapped ; 0249 # 5.0 LATIN CAPITAL LETTER J WITH STROKE +0249 ; valid # 5.0 LATIN SMALL LETTER J WITH STROKE +024A ; mapped ; 024B # 5.0 LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL +024B ; valid # 5.0 LATIN SMALL LETTER Q WITH HOOK TAIL +024C ; mapped ; 024D # 5.0 LATIN CAPITAL LETTER R WITH STROKE +024D ; valid # 5.0 LATIN SMALL LETTER R WITH STROKE +024E ; mapped ; 024F # 5.0 LATIN CAPITAL LETTER Y WITH STROKE +024F ; valid # 5.0 LATIN SMALL LETTER Y WITH STROKE +0250..02A8 ; valid # 1.1 LATIN SMALL LETTER TURNED A..LATIN SMALL LETTER TC DIGRAPH WITH CURL +02A9..02AD ; valid # 3.0 LATIN SMALL LETTER FENG DIGRAPH..LATIN LETTER BIDENTAL PERCUSSIVE +02AE..02AF ; valid # 4.0 LATIN SMALL LETTER TURNED H WITH FISHHOOK..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL +02B0 ; mapped ; 0068 # 1.1 MODIFIER LETTER SMALL H +02B1 ; mapped ; 0266 # 1.1 MODIFIER LETTER SMALL H WITH HOOK +02B2 ; mapped ; 006A # 1.1 MODIFIER LETTER SMALL J +02B3 ; mapped ; 0072 # 1.1 MODIFIER LETTER SMALL R +02B4 ; mapped ; 0279 # 1.1 MODIFIER LETTER SMALL TURNED R +02B5 ; mapped ; 027B # 1.1 MODIFIER LETTER SMALL TURNED R WITH HOOK +02B6 ; mapped ; 0281 # 1.1 MODIFIER LETTER SMALL CAPITAL INVERTED R +02B7 ; mapped ; 0077 # 1.1 MODIFIER LETTER SMALL W +02B8 ; mapped ; 0079 # 1.1 MODIFIER LETTER SMALL Y +02B9..02C1 ; valid # 1.1 MODIFIER LETTER PRIME..MODIFIER LETTER REVERSED GLOTTAL STOP +02C2..02C5 ; valid ; ; NV8 # 1.1 MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD +02C6..02D1 ; valid # 1.1 MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON +02D2..02D7 ; valid ; ; NV8 # 1.1 MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN +02D8 ; disallowed_STD3_mapped ; 0020 0306 # 1.1 BREVE +02D9 ; disallowed_STD3_mapped ; 0020 0307 # 1.1 DOT ABOVE +02DA ; disallowed_STD3_mapped ; 0020 030A # 1.1 RING ABOVE +02DB ; disallowed_STD3_mapped ; 0020 0328 # 1.1 OGONEK +02DC ; disallowed_STD3_mapped ; 0020 0303 # 1.1 SMALL TILDE +02DD ; disallowed_STD3_mapped ; 0020 030B # 1.1 DOUBLE ACUTE ACCENT +02DE ; valid ; ; NV8 # 1.1 MODIFIER LETTER RHOTIC HOOK +02DF ; valid ; ; NV8 # 3.0 MODIFIER LETTER CROSS ACCENT +02E0 ; mapped ; 0263 # 1.1 MODIFIER LETTER SMALL GAMMA +02E1 ; mapped ; 006C # 1.1 MODIFIER LETTER SMALL L +02E2 ; mapped ; 0073 # 1.1 MODIFIER LETTER SMALL S +02E3 ; mapped ; 0078 # 1.1 MODIFIER LETTER SMALL X +02E4 ; mapped ; 0295 # 1.1 MODIFIER LETTER SMALL REVERSED GLOTTAL STOP +02E5..02E9 ; valid ; ; NV8 # 1.1 MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER EXTRA-LOW TONE BAR +02EA..02EB ; valid ; ; NV8 # 3.0 MODIFIER LETTER YIN DEPARTING TONE MARK..MODIFIER LETTER YANG DEPARTING TONE MARK +02EC ; valid # 3.0 MODIFIER LETTER VOICING +02ED ; valid ; ; NV8 # 3.0 MODIFIER LETTER UNASPIRATED +02EE ; valid # 3.0 MODIFIER LETTER DOUBLE APOSTROPHE +02EF..02FF ; valid ; ; NV8 # 4.0 MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW +0300..033F ; valid # 1.1 COMBINING GRAVE ACCENT..COMBINING DOUBLE OVERLINE +0340 ; mapped ; 0300 # 1.1 COMBINING GRAVE TONE MARK +0341 ; mapped ; 0301 # 1.1 COMBINING ACUTE TONE MARK +0342 ; valid # 1.1 COMBINING GREEK PERISPOMENI +0343 ; mapped ; 0313 # 1.1 COMBINING GREEK KORONIS +0344 ; mapped ; 0308 0301 # 1.1 COMBINING GREEK DIALYTIKA TONOS +0345 ; mapped ; 03B9 # 1.1 COMBINING GREEK YPOGEGRAMMENI +0346..034E ; valid # 3.0 COMBINING BRIDGE ABOVE..COMBINING UPWARDS ARROW BELOW +034F ; ignored # 3.2 COMBINING GRAPHEME JOINER +0350..0357 ; valid # 4.0 COMBINING RIGHT ARROWHEAD ABOVE..COMBINING RIGHT HALF RING ABOVE +0358..035C ; valid # 4.1 COMBINING DOT ABOVE RIGHT..COMBINING DOUBLE BREVE BELOW +035D..035F ; valid # 4.0 COMBINING DOUBLE BREVE..COMBINING DOUBLE MACRON BELOW +0360..0361 ; valid # 1.1 COMBINING DOUBLE TILDE..COMBINING DOUBLE INVERTED BREVE +0362 ; valid # 3.0 COMBINING DOUBLE RIGHTWARDS ARROW BELOW +0363..036F ; valid # 3.2 COMBINING LATIN SMALL LETTER A..COMBINING LATIN SMALL LETTER X +0370 ; mapped ; 0371 # 5.1 GREEK CAPITAL LETTER HETA +0371 ; valid # 5.1 GREEK SMALL LETTER HETA +0372 ; mapped ; 0373 # 5.1 GREEK CAPITAL LETTER ARCHAIC SAMPI +0373 ; valid # 5.1 GREEK SMALL LETTER ARCHAIC SAMPI +0374 ; mapped ; 02B9 # 1.1 GREEK NUMERAL SIGN +0375 ; valid # 1.1 GREEK LOWER NUMERAL SIGN +0376 ; mapped ; 0377 # 5.1 GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA +0377 ; valid # 5.1 GREEK SMALL LETTER PAMPHYLIAN DIGAMMA +0378..0379 ; disallowed # NA <reserved-0378>..<reserved-0379> +037A ; disallowed_STD3_mapped ; 0020 03B9 # 1.1 GREEK YPOGEGRAMMENI +037B..037D ; valid # 5.0 GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL +037E ; disallowed_STD3_mapped ; 003B # 1.1 GREEK QUESTION MARK +037F ; mapped ; 03F3 # 7.0 GREEK CAPITAL LETTER YOT +0380..0383 ; disallowed # NA <reserved-0380>..<reserved-0383> +0384 ; disallowed_STD3_mapped ; 0020 0301 # 1.1 GREEK TONOS +0385 ; disallowed_STD3_mapped ; 0020 0308 0301 #1.1 GREEK DIALYTIKA TONOS +0386 ; mapped ; 03AC # 1.1 GREEK CAPITAL LETTER ALPHA WITH TONOS +0387 ; mapped ; 00B7 # 1.1 GREEK ANO TELEIA +0388 ; mapped ; 03AD # 1.1 GREEK CAPITAL LETTER EPSILON WITH TONOS +0389 ; mapped ; 03AE # 1.1 GREEK CAPITAL LETTER ETA WITH TONOS +038A ; mapped ; 03AF # 1.1 GREEK CAPITAL LETTER IOTA WITH TONOS +038B ; disallowed # NA <reserved-038B> +038C ; mapped ; 03CC # 1.1 GREEK CAPITAL LETTER OMICRON WITH TONOS +038D ; disallowed # NA <reserved-038D> +038E ; mapped ; 03CD # 1.1 GREEK CAPITAL LETTER UPSILON WITH TONOS +038F ; mapped ; 03CE # 1.1 GREEK CAPITAL LETTER OMEGA WITH TONOS +0390 ; valid # 1.1 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS +0391 ; mapped ; 03B1 # 1.1 GREEK CAPITAL LETTER ALPHA +0392 ; mapped ; 03B2 # 1.1 GREEK CAPITAL LETTER BETA +0393 ; mapped ; 03B3 # 1.1 GREEK CAPITAL LETTER GAMMA +0394 ; mapped ; 03B4 # 1.1 GREEK CAPITAL LETTER DELTA +0395 ; mapped ; 03B5 # 1.1 GREEK CAPITAL LETTER EPSILON +0396 ; mapped ; 03B6 # 1.1 GREEK CAPITAL LETTER ZETA +0397 ; mapped ; 03B7 # 1.1 GREEK CAPITAL LETTER ETA +0398 ; mapped ; 03B8 # 1.1 GREEK CAPITAL LETTER THETA +0399 ; mapped ; 03B9 # 1.1 GREEK CAPITAL LETTER IOTA +039A ; mapped ; 03BA # 1.1 GREEK CAPITAL LETTER KAPPA +039B ; mapped ; 03BB # 1.1 GREEK CAPITAL LETTER LAMDA +039C ; mapped ; 03BC # 1.1 GREEK CAPITAL LETTER MU +039D ; mapped ; 03BD # 1.1 GREEK CAPITAL LETTER NU +039E ; mapped ; 03BE # 1.1 GREEK CAPITAL LETTER XI +039F ; mapped ; 03BF # 1.1 GREEK CAPITAL LETTER OMICRON +03A0 ; mapped ; 03C0 # 1.1 GREEK CAPITAL LETTER PI +03A1 ; mapped ; 03C1 # 1.1 GREEK CAPITAL LETTER RHO +03A2 ; disallowed # NA <reserved-03A2> +03A3 ; mapped ; 03C3 # 1.1 GREEK CAPITAL LETTER SIGMA +03A4 ; mapped ; 03C4 # 1.1 GREEK CAPITAL LETTER TAU +03A5 ; mapped ; 03C5 # 1.1 GREEK CAPITAL LETTER UPSILON +03A6 ; mapped ; 03C6 # 1.1 GREEK CAPITAL LETTER PHI +03A7 ; mapped ; 03C7 # 1.1 GREEK CAPITAL LETTER CHI +03A8 ; mapped ; 03C8 # 1.1 GREEK CAPITAL LETTER PSI +03A9 ; mapped ; 03C9 # 1.1 GREEK CAPITAL LETTER OMEGA +03AA ; mapped ; 03CA # 1.1 GREEK CAPITAL LETTER IOTA WITH DIALYTIKA +03AB ; mapped ; 03CB # 1.1 GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA +03AC..03C1 ; valid # 1.1 GREEK SMALL LETTER ALPHA WITH TONOS..GREEK SMALL LETTER RHO +03C2 ; deviation ; 03C3 # 1.1 GREEK SMALL LETTER FINAL SIGMA +03C3..03CE ; valid # 1.1 GREEK SMALL LETTER SIGMA..GREEK SMALL LETTER OMEGA WITH TONOS +03CF ; mapped ; 03D7 # 5.1 GREEK CAPITAL KAI SYMBOL +03D0 ; mapped ; 03B2 # 1.1 GREEK BETA SYMBOL +03D1 ; mapped ; 03B8 # 1.1 GREEK THETA SYMBOL +03D2 ; mapped ; 03C5 # 1.1 GREEK UPSILON WITH HOOK SYMBOL +03D3 ; mapped ; 03CD # 1.1 GREEK UPSILON WITH ACUTE AND HOOK SYMBOL +03D4 ; mapped ; 03CB # 1.1 GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL +03D5 ; mapped ; 03C6 # 1.1 GREEK PHI SYMBOL +03D6 ; mapped ; 03C0 # 1.1 GREEK PI SYMBOL +03D7 ; valid # 3.0 GREEK KAI SYMBOL +03D8 ; mapped ; 03D9 # 3.2 GREEK LETTER ARCHAIC KOPPA +03D9 ; valid # 3.2 GREEK SMALL LETTER ARCHAIC KOPPA +03DA ; mapped ; 03DB # 1.1 GREEK LETTER STIGMA +03DB ; valid # 3.0 GREEK SMALL LETTER STIGMA +03DC ; mapped ; 03DD # 1.1 GREEK LETTER DIGAMMA +03DD ; valid # 3.0 GREEK SMALL LETTER DIGAMMA +03DE ; mapped ; 03DF # 1.1 GREEK LETTER KOPPA +03DF ; valid # 3.0 GREEK SMALL LETTER KOPPA +03E0 ; mapped ; 03E1 # 1.1 GREEK LETTER SAMPI +03E1 ; valid # 3.0 GREEK SMALL LETTER SAMPI +03E2 ; mapped ; 03E3 # 1.1 COPTIC CAPITAL LETTER SHEI +03E3 ; valid # 1.1 COPTIC SMALL LETTER SHEI +03E4 ; mapped ; 03E5 # 1.1 COPTIC CAPITAL LETTER FEI +03E5 ; valid # 1.1 COPTIC SMALL LETTER FEI +03E6 ; mapped ; 03E7 # 1.1 COPTIC CAPITAL LETTER KHEI +03E7 ; valid # 1.1 COPTIC SMALL LETTER KHEI +03E8 ; mapped ; 03E9 # 1.1 COPTIC CAPITAL LETTER HORI +03E9 ; valid # 1.1 COPTIC SMALL LETTER HORI +03EA ; mapped ; 03EB # 1.1 COPTIC CAPITAL LETTER GANGIA +03EB ; valid # 1.1 COPTIC SMALL LETTER GANGIA +03EC ; mapped ; 03ED # 1.1 COPTIC CAPITAL LETTER SHIMA +03ED ; valid # 1.1 COPTIC SMALL LETTER SHIMA +03EE ; mapped ; 03EF # 1.1 COPTIC CAPITAL LETTER DEI +03EF ; valid # 1.1 COPTIC SMALL LETTER DEI +03F0 ; mapped ; 03BA # 1.1 GREEK KAPPA SYMBOL +03F1 ; mapped ; 03C1 # 1.1 GREEK RHO SYMBOL +03F2 ; mapped ; 03C3 # 1.1 GREEK LUNATE SIGMA SYMBOL +03F3 ; valid # 1.1 GREEK LETTER YOT +03F4 ; mapped ; 03B8 # 3.1 GREEK CAPITAL THETA SYMBOL +03F5 ; mapped ; 03B5 # 3.1 GREEK LUNATE EPSILON SYMBOL +03F6 ; valid ; ; NV8 # 3.2 GREEK REVERSED LUNATE EPSILON SYMBOL +03F7 ; mapped ; 03F8 # 4.0 GREEK CAPITAL LETTER SHO +03F8 ; valid # 4.0 GREEK SMALL LETTER SHO +03F9 ; mapped ; 03C3 # 4.0 GREEK CAPITAL LUNATE SIGMA SYMBOL +03FA ; mapped ; 03FB # 4.0 GREEK CAPITAL LETTER SAN +03FB ; valid # 4.0 GREEK SMALL LETTER SAN +03FC ; valid # 4.1 GREEK RHO WITH STROKE SYMBOL +03FD ; mapped ; 037B # 4.1 GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL +03FE ; mapped ; 037C # 4.1 GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL +03FF ; mapped ; 037D # 4.1 GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL +0400 ; mapped ; 0450 # 3.0 CYRILLIC CAPITAL LETTER IE WITH GRAVE +0401 ; mapped ; 0451 # 1.1 CYRILLIC CAPITAL LETTER IO +0402 ; mapped ; 0452 # 1.1 CYRILLIC CAPITAL LETTER DJE +0403 ; mapped ; 0453 # 1.1 CYRILLIC CAPITAL LETTER GJE +0404 ; mapped ; 0454 # 1.1 CYRILLIC CAPITAL LETTER UKRAINIAN IE +0405 ; mapped ; 0455 # 1.1 CYRILLIC CAPITAL LETTER DZE +0406 ; mapped ; 0456 # 1.1 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I +0407 ; mapped ; 0457 # 1.1 CYRILLIC CAPITAL LETTER YI +0408 ; mapped ; 0458 # 1.1 CYRILLIC CAPITAL LETTER JE +0409 ; mapped ; 0459 # 1.1 CYRILLIC CAPITAL LETTER LJE +040A ; mapped ; 045A # 1.1 CYRILLIC CAPITAL LETTER NJE +040B ; mapped ; 045B # 1.1 CYRILLIC CAPITAL LETTER TSHE +040C ; mapped ; 045C # 1.1 CYRILLIC CAPITAL LETTER KJE +040D ; mapped ; 045D # 3.0 CYRILLIC CAPITAL LETTER I WITH GRAVE +040E ; mapped ; 045E # 1.1 CYRILLIC CAPITAL LETTER SHORT U +040F ; mapped ; 045F # 1.1 CYRILLIC CAPITAL LETTER DZHE +0410 ; mapped ; 0430 # 1.1 CYRILLIC CAPITAL LETTER A +0411 ; mapped ; 0431 # 1.1 CYRILLIC CAPITAL LETTER BE +0412 ; mapped ; 0432 # 1.1 CYRILLIC CAPITAL LETTER VE +0413 ; mapped ; 0433 # 1.1 CYRILLIC CAPITAL LETTER GHE +0414 ; mapped ; 0434 # 1.1 CYRILLIC CAPITAL LETTER DE +0415 ; mapped ; 0435 # 1.1 CYRILLIC CAPITAL LETTER IE +0416 ; mapped ; 0436 # 1.1 CYRILLIC CAPITAL LETTER ZHE +0417 ; mapped ; 0437 # 1.1 CYRILLIC CAPITAL LETTER ZE +0418 ; mapped ; 0438 # 1.1 CYRILLIC CAPITAL LETTER I +0419 ; mapped ; 0439 # 1.1 CYRILLIC CAPITAL LETTER SHORT I +041A ; mapped ; 043A # 1.1 CYRILLIC CAPITAL LETTER KA +041B ; mapped ; 043B # 1.1 CYRILLIC CAPITAL LETTER EL +041C ; mapped ; 043C # 1.1 CYRILLIC CAPITAL LETTER EM +041D ; mapped ; 043D # 1.1 CYRILLIC CAPITAL LETTER EN +041E ; mapped ; 043E # 1.1 CYRILLIC CAPITAL LETTER O +041F ; mapped ; 043F # 1.1 CYRILLIC CAPITAL LETTER PE +0420 ; mapped ; 0440 # 1.1 CYRILLIC CAPITAL LETTER ER +0421 ; mapped ; 0441 # 1.1 CYRILLIC CAPITAL LETTER ES +0422 ; mapped ; 0442 # 1.1 CYRILLIC CAPITAL LETTER TE +0423 ; mapped ; 0443 # 1.1 CYRILLIC CAPITAL LETTER U +0424 ; mapped ; 0444 # 1.1 CYRILLIC CAPITAL LETTER EF +0425 ; mapped ; 0445 # 1.1 CYRILLIC CAPITAL LETTER HA +0426 ; mapped ; 0446 # 1.1 CYRILLIC CAPITAL LETTER TSE +0427 ; mapped ; 0447 # 1.1 CYRILLIC CAPITAL LETTER CHE +0428 ; mapped ; 0448 # 1.1 CYRILLIC CAPITAL LETTER SHA +0429 ; mapped ; 0449 # 1.1 CYRILLIC CAPITAL LETTER SHCHA +042A ; mapped ; 044A # 1.1 CYRILLIC CAPITAL LETTER HARD SIGN +042B ; mapped ; 044B # 1.1 CYRILLIC CAPITAL LETTER YERU +042C ; mapped ; 044C # 1.1 CYRILLIC CAPITAL LETTER SOFT SIGN +042D ; mapped ; 044D # 1.1 CYRILLIC CAPITAL LETTER E +042E ; mapped ; 044E # 1.1 CYRILLIC CAPITAL LETTER YU +042F ; mapped ; 044F # 1.1 CYRILLIC CAPITAL LETTER YA +0430..044F ; valid # 1.1 CYRILLIC SMALL LETTER A..CYRILLIC SMALL LETTER YA +0450 ; valid # 3.0 CYRILLIC SMALL LETTER IE WITH GRAVE +0451..045C ; valid # 1.1 CYRILLIC SMALL LETTER IO..CYRILLIC SMALL LETTER KJE +045D ; valid # 3.0 CYRILLIC SMALL LETTER I WITH GRAVE +045E..045F ; valid # 1.1 CYRILLIC SMALL LETTER SHORT U..CYRILLIC SMALL LETTER DZHE +0460 ; mapped ; 0461 # 1.1 CYRILLIC CAPITAL LETTER OMEGA +0461 ; valid # 1.1 CYRILLIC SMALL LETTER OMEGA +0462 ; mapped ; 0463 # 1.1 CYRILLIC CAPITAL LETTER YAT +0463 ; valid # 1.1 CYRILLIC SMALL LETTER YAT +0464 ; mapped ; 0465 # 1.1 CYRILLIC CAPITAL LETTER IOTIFIED E +0465 ; valid # 1.1 CYRILLIC SMALL LETTER IOTIFIED E +0466 ; mapped ; 0467 # 1.1 CYRILLIC CAPITAL LETTER LITTLE YUS +0467 ; valid # 1.1 CYRILLIC SMALL LETTER LITTLE YUS +0468 ; mapped ; 0469 # 1.1 CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS +0469 ; valid # 1.1 CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS +046A ; mapped ; 046B # 1.1 CYRILLIC CAPITAL LETTER BIG YUS +046B ; valid # 1.1 CYRILLIC SMALL LETTER BIG YUS +046C ; mapped ; 046D # 1.1 CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS +046D ; valid # 1.1 CYRILLIC SMALL LETTER IOTIFIED BIG YUS +046E ; mapped ; 046F # 1.1 CYRILLIC CAPITAL LETTER KSI +046F ; valid # 1.1 CYRILLIC SMALL LETTER KSI +0470 ; mapped ; 0471 # 1.1 CYRILLIC CAPITAL LETTER PSI +0471 ; valid # 1.1 CYRILLIC SMALL LETTER PSI +0472 ; mapped ; 0473 # 1.1 CYRILLIC CAPITAL LETTER FITA +0473 ; valid # 1.1 CYRILLIC SMALL LETTER FITA +0474 ; mapped ; 0475 # 1.1 CYRILLIC CAPITAL LETTER IZHITSA +0475 ; valid # 1.1 CYRILLIC SMALL LETTER IZHITSA +0476 ; mapped ; 0477 # 1.1 CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT +0477 ; valid # 1.1 CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT +0478 ; mapped ; 0479 # 1.1 CYRILLIC CAPITAL LETTER UK +0479 ; valid # 1.1 CYRILLIC SMALL LETTER UK +047A ; mapped ; 047B # 1.1 CYRILLIC CAPITAL LETTER ROUND OMEGA +047B ; valid # 1.1 CYRILLIC SMALL LETTER ROUND OMEGA +047C ; mapped ; 047D # 1.1 CYRILLIC CAPITAL LETTER OMEGA WITH TITLO +047D ; valid # 1.1 CYRILLIC SMALL LETTER OMEGA WITH TITLO +047E ; mapped ; 047F # 1.1 CYRILLIC CAPITAL LETTER OT +047F ; valid # 1.1 CYRILLIC SMALL LETTER OT +0480 ; mapped ; 0481 # 1.1 CYRILLIC CAPITAL LETTER KOPPA +0481 ; valid # 1.1 CYRILLIC SMALL LETTER KOPPA +0482 ; valid ; ; NV8 # 1.1 CYRILLIC THOUSANDS SIGN +0483..0486 ; valid # 1.1 COMBINING CYRILLIC TITLO..COMBINING CYRILLIC PSILI PNEUMATA +0487 ; valid # 5.1 COMBINING CYRILLIC POKRYTIE +0488..0489 ; valid ; ; NV8 # 3.0 COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN +048A ; mapped ; 048B # 3.2 CYRILLIC CAPITAL LETTER SHORT I WITH TAIL +048B ; valid # 3.2 CYRILLIC SMALL LETTER SHORT I WITH TAIL +048C ; mapped ; 048D # 3.0 CYRILLIC CAPITAL LETTER SEMISOFT SIGN +048D ; valid # 3.0 CYRILLIC SMALL LETTER SEMISOFT SIGN +048E ; mapped ; 048F # 3.0 CYRILLIC CAPITAL LETTER ER WITH TICK +048F ; valid # 3.0 CYRILLIC SMALL LETTER ER WITH TICK +0490 ; mapped ; 0491 # 1.1 CYRILLIC CAPITAL LETTER GHE WITH UPTURN +0491 ; valid # 1.1 CYRILLIC SMALL LETTER GHE WITH UPTURN +0492 ; mapped ; 0493 # 1.1 CYRILLIC CAPITAL LETTER GHE WITH STROKE +0493 ; valid # 1.1 CYRILLIC SMALL LETTER GHE WITH STROKE +0494 ; mapped ; 0495 # 1.1 CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK +0495 ; valid # 1.1 CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK +0496 ; mapped ; 0497 # 1.1 CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER +0497 ; valid # 1.1 CYRILLIC SMALL LETTER ZHE WITH DESCENDER +0498 ; mapped ; 0499 # 1.1 CYRILLIC CAPITAL LETTER ZE WITH DESCENDER +0499 ; valid # 1.1 CYRILLIC SMALL LETTER ZE WITH DESCENDER +049A ; mapped ; 049B # 1.1 CYRILLIC CAPITAL LETTER KA WITH DESCENDER +049B ; valid # 1.1 CYRILLIC SMALL LETTER KA WITH DESCENDER +049C ; mapped ; 049D # 1.1 CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE +049D ; valid # 1.1 CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE +049E ; mapped ; 049F # 1.1 CYRILLIC CAPITAL LETTER KA WITH STROKE +049F ; valid # 1.1 CYRILLIC SMALL LETTER KA WITH STROKE +04A0 ; mapped ; 04A1 # 1.1 CYRILLIC CAPITAL LETTER BASHKIR KA +04A1 ; valid # 1.1 CYRILLIC SMALL LETTER BASHKIR KA +04A2 ; mapped ; 04A3 # 1.1 CYRILLIC CAPITAL LETTER EN WITH DESCENDER +04A3 ; valid # 1.1 CYRILLIC SMALL LETTER EN WITH DESCENDER +04A4 ; mapped ; 04A5 # 1.1 CYRILLIC CAPITAL LIGATURE EN GHE +04A5 ; valid # 1.1 CYRILLIC SMALL LIGATURE EN GHE +04A6 ; mapped ; 04A7 # 1.1 CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK +04A7 ; valid # 1.1 CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK +04A8 ; mapped ; 04A9 # 1.1 CYRILLIC CAPITAL LETTER ABKHASIAN HA +04A9 ; valid # 1.1 CYRILLIC SMALL LETTER ABKHASIAN HA +04AA ; mapped ; 04AB # 1.1 CYRILLIC CAPITAL LETTER ES WITH DESCENDER +04AB ; valid # 1.1 CYRILLIC SMALL LETTER ES WITH DESCENDER +04AC ; mapped ; 04AD # 1.1 CYRILLIC CAPITAL LETTER TE WITH DESCENDER +04AD ; valid # 1.1 CYRILLIC SMALL LETTER TE WITH DESCENDER +04AE ; mapped ; 04AF # 1.1 CYRILLIC CAPITAL LETTER STRAIGHT U +04AF ; valid # 1.1 CYRILLIC SMALL LETTER STRAIGHT U +04B0 ; mapped ; 04B1 # 1.1 CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE +04B1 ; valid # 1.1 CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE +04B2 ; mapped ; 04B3 # 1.1 CYRILLIC CAPITAL LETTER HA WITH DESCENDER +04B3 ; valid # 1.1 CYRILLIC SMALL LETTER HA WITH DESCENDER +04B4 ; mapped ; 04B5 # 1.1 CYRILLIC CAPITAL LIGATURE TE TSE +04B5 ; valid # 1.1 CYRILLIC SMALL LIGATURE TE TSE +04B6 ; mapped ; 04B7 # 1.1 CYRILLIC CAPITAL LETTER CHE WITH DESCENDER +04B7 ; valid # 1.1 CYRILLIC SMALL LETTER CHE WITH DESCENDER +04B8 ; mapped ; 04B9 # 1.1 CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE +04B9 ; valid # 1.1 CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE +04BA ; mapped ; 04BB # 1.1 CYRILLIC CAPITAL LETTER SHHA +04BB ; valid # 1.1 CYRILLIC SMALL LETTER SHHA +04BC ; mapped ; 04BD # 1.1 CYRILLIC CAPITAL LETTER ABKHASIAN CHE +04BD ; valid # 1.1 CYRILLIC SMALL LETTER ABKHASIAN CHE +04BE ; mapped ; 04BF # 1.1 CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER +04BF ; valid # 1.1 CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER +04C0 ; disallowed # 1.1 CYRILLIC LETTER PALOCHKA +04C1 ; mapped ; 04C2 # 1.1 CYRILLIC CAPITAL LETTER ZHE WITH BREVE +04C2 ; valid # 1.1 CYRILLIC SMALL LETTER ZHE WITH BREVE +04C3 ; mapped ; 04C4 # 1.1 CYRILLIC CAPITAL LETTER KA WITH HOOK +04C4 ; valid # 1.1 CYRILLIC SMALL LETTER KA WITH HOOK +04C5 ; mapped ; 04C6 # 3.2 CYRILLIC CAPITAL LETTER EL WITH TAIL +04C6 ; valid # 3.2 CYRILLIC SMALL LETTER EL WITH TAIL +04C7 ; mapped ; 04C8 # 1.1 CYRILLIC CAPITAL LETTER EN WITH HOOK +04C8 ; valid # 1.1 CYRILLIC SMALL LETTER EN WITH HOOK +04C9 ; mapped ; 04CA # 3.2 CYRILLIC CAPITAL LETTER EN WITH TAIL +04CA ; valid # 3.2 CYRILLIC SMALL LETTER EN WITH TAIL +04CB ; mapped ; 04CC # 1.1 CYRILLIC CAPITAL LETTER KHAKASSIAN CHE +04CC ; valid # 1.1 CYRILLIC SMALL LETTER KHAKASSIAN CHE +04CD ; mapped ; 04CE # 3.2 CYRILLIC CAPITAL LETTER EM WITH TAIL +04CE ; valid # 3.2 CYRILLIC SMALL LETTER EM WITH TAIL +04CF ; valid # 5.0 CYRILLIC SMALL LETTER PALOCHKA +04D0 ; mapped ; 04D1 # 1.1 CYRILLIC CAPITAL LETTER A WITH BREVE +04D1 ; valid # 1.1 CYRILLIC SMALL LETTER A WITH BREVE +04D2 ; mapped ; 04D3 # 1.1 CYRILLIC CAPITAL LETTER A WITH DIAERESIS +04D3 ; valid # 1.1 CYRILLIC SMALL LETTER A WITH DIAERESIS +04D4 ; mapped ; 04D5 # 1.1 CYRILLIC CAPITAL LIGATURE A IE +04D5 ; valid # 1.1 CYRILLIC SMALL LIGATURE A IE +04D6 ; mapped ; 04D7 # 1.1 CYRILLIC CAPITAL LETTER IE WITH BREVE +04D7 ; valid # 1.1 CYRILLIC SMALL LETTER IE WITH BREVE +04D8 ; mapped ; 04D9 # 1.1 CYRILLIC CAPITAL LETTER SCHWA +04D9 ; valid # 1.1 CYRILLIC SMALL LETTER SCHWA +04DA ; mapped ; 04DB # 1.1 CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS +04DB ; valid # 1.1 CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS +04DC ; mapped ; 04DD # 1.1 CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS +04DD ; valid # 1.1 CYRILLIC SMALL LETTER ZHE WITH DIAERESIS +04DE ; mapped ; 04DF # 1.1 CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS +04DF ; valid # 1.1 CYRILLIC SMALL LETTER ZE WITH DIAERESIS +04E0 ; mapped ; 04E1 # 1.1 CYRILLIC CAPITAL LETTER ABKHASIAN DZE +04E1 ; valid # 1.1 CYRILLIC SMALL LETTER ABKHASIAN DZE +04E2 ; mapped ; 04E3 # 1.1 CYRILLIC CAPITAL LETTER I WITH MACRON +04E3 ; valid # 1.1 CYRILLIC SMALL LETTER I WITH MACRON +04E4 ; mapped ; 04E5 # 1.1 CYRILLIC CAPITAL LETTER I WITH DIAERESIS +04E5 ; valid # 1.1 CYRILLIC SMALL LETTER I WITH DIAERESIS +04E6 ; mapped ; 04E7 # 1.1 CYRILLIC CAPITAL LETTER O WITH DIAERESIS +04E7 ; valid # 1.1 CYRILLIC SMALL LETTER O WITH DIAERESIS +04E8 ; mapped ; 04E9 # 1.1 CYRILLIC CAPITAL LETTER BARRED O +04E9 ; valid # 1.1 CYRILLIC SMALL LETTER BARRED O +04EA ; mapped ; 04EB # 1.1 CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS +04EB ; valid # 1.1 CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS +04EC ; mapped ; 04ED # 3.0 CYRILLIC CAPITAL LETTER E WITH DIAERESIS +04ED ; valid # 3.0 CYRILLIC SMALL LETTER E WITH DIAERESIS +04EE ; mapped ; 04EF # 1.1 CYRILLIC CAPITAL LETTER U WITH MACRON +04EF ; valid # 1.1 CYRILLIC SMALL LETTER U WITH MACRON +04F0 ; mapped ; 04F1 # 1.1 CYRILLIC CAPITAL LETTER U WITH DIAERESIS +04F1 ; valid # 1.1 CYRILLIC SMALL LETTER U WITH DIAERESIS +04F2 ; mapped ; 04F3 # 1.1 CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE +04F3 ; valid # 1.1 CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE +04F4 ; mapped ; 04F5 # 1.1 CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS +04F5 ; valid # 1.1 CYRILLIC SMALL LETTER CHE WITH DIAERESIS +04F6 ; mapped ; 04F7 # 4.1 CYRILLIC CAPITAL LETTER GHE WITH DESCENDER +04F7 ; valid # 4.1 CYRILLIC SMALL LETTER GHE WITH DESCENDER +04F8 ; mapped ; 04F9 # 1.1 CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS +04F9 ; valid # 1.1 CYRILLIC SMALL LETTER YERU WITH DIAERESIS +04FA ; mapped ; 04FB # 5.0 CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK +04FB ; valid # 5.0 CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK +04FC ; mapped ; 04FD # 5.0 CYRILLIC CAPITAL LETTER HA WITH HOOK +04FD ; valid # 5.0 CYRILLIC SMALL LETTER HA WITH HOOK +04FE ; mapped ; 04FF # 5.0 CYRILLIC CAPITAL LETTER HA WITH STROKE +04FF ; valid # 5.0 CYRILLIC SMALL LETTER HA WITH STROKE +0500 ; mapped ; 0501 # 3.2 CYRILLIC CAPITAL LETTER KOMI DE +0501 ; valid # 3.2 CYRILLIC SMALL LETTER KOMI DE +0502 ; mapped ; 0503 # 3.2 CYRILLIC CAPITAL LETTER KOMI DJE +0503 ; valid # 3.2 CYRILLIC SMALL LETTER KOMI DJE +0504 ; mapped ; 0505 # 3.2 CYRILLIC CAPITAL LETTER KOMI ZJE +0505 ; valid # 3.2 CYRILLIC SMALL LETTER KOMI ZJE +0506 ; mapped ; 0507 # 3.2 CYRILLIC CAPITAL LETTER KOMI DZJE +0507 ; valid # 3.2 CYRILLIC SMALL LETTER KOMI DZJE +0508 ; mapped ; 0509 # 3.2 CYRILLIC CAPITAL LETTER KOMI LJE +0509 ; valid # 3.2 CYRILLIC SMALL LETTER KOMI LJE +050A ; mapped ; 050B # 3.2 CYRILLIC CAPITAL LETTER KOMI NJE +050B ; valid # 3.2 CYRILLIC SMALL LETTER KOMI NJE +050C ; mapped ; 050D # 3.2 CYRILLIC CAPITAL LETTER KOMI SJE +050D ; valid # 3.2 CYRILLIC SMALL LETTER KOMI SJE +050E ; mapped ; 050F # 3.2 CYRILLIC CAPITAL LETTER KOMI TJE +050F ; valid # 3.2 CYRILLIC SMALL LETTER KOMI TJE +0510 ; mapped ; 0511 # 5.0 CYRILLIC CAPITAL LETTER REVERSED ZE +0511 ; valid # 5.0 CYRILLIC SMALL LETTER REVERSED ZE +0512 ; mapped ; 0513 # 5.0 CYRILLIC CAPITAL LETTER EL WITH HOOK +0513 ; valid # 5.0 CYRILLIC SMALL LETTER EL WITH HOOK +0514 ; mapped ; 0515 # 5.1 CYRILLIC CAPITAL LETTER LHA +0515 ; valid # 5.1 CYRILLIC SMALL LETTER LHA +0516 ; mapped ; 0517 # 5.1 CYRILLIC CAPITAL LETTER RHA +0517 ; valid # 5.1 CYRILLIC SMALL LETTER RHA +0518 ; mapped ; 0519 # 5.1 CYRILLIC CAPITAL LETTER YAE +0519 ; valid # 5.1 CYRILLIC SMALL LETTER YAE +051A ; mapped ; 051B # 5.1 CYRILLIC CAPITAL LETTER QA +051B ; valid # 5.1 CYRILLIC SMALL LETTER QA +051C ; mapped ; 051D # 5.1 CYRILLIC CAPITAL LETTER WE +051D ; valid # 5.1 CYRILLIC SMALL LETTER WE +051E ; mapped ; 051F # 5.1 CYRILLIC CAPITAL LETTER ALEUT KA +051F ; valid # 5.1 CYRILLIC SMALL LETTER ALEUT KA +0520 ; mapped ; 0521 # 5.1 CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK +0521 ; valid # 5.1 CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK +0522 ; mapped ; 0523 # 5.1 CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK +0523 ; valid # 5.1 CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK +0524 ; mapped ; 0525 # 5.2 CYRILLIC CAPITAL LETTER PE WITH DESCENDER +0525 ; valid # 5.2 CYRILLIC SMALL LETTER PE WITH DESCENDER +0526 ; mapped ; 0527 # 6.0 CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER +0527 ; valid # 6.0 CYRILLIC SMALL LETTER SHHA WITH DESCENDER +0528 ; mapped ; 0529 # 7.0 CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK +0529 ; valid # 7.0 CYRILLIC SMALL LETTER EN WITH LEFT HOOK +052A ; mapped ; 052B # 7.0 CYRILLIC CAPITAL LETTER DZZHE +052B ; valid # 7.0 CYRILLIC SMALL LETTER DZZHE +052C ; mapped ; 052D # 7.0 CYRILLIC CAPITAL LETTER DCHE +052D ; valid # 7.0 CYRILLIC SMALL LETTER DCHE +052E ; mapped ; 052F # 7.0 CYRILLIC CAPITAL LETTER EL WITH DESCENDER +052F ; valid # 7.0 CYRILLIC SMALL LETTER EL WITH DESCENDER +0530 ; disallowed # NA <reserved-0530> +0531 ; mapped ; 0561 # 1.1 ARMENIAN CAPITAL LETTER AYB +0532 ; mapped ; 0562 # 1.1 ARMENIAN CAPITAL LETTER BEN +0533 ; mapped ; 0563 # 1.1 ARMENIAN CAPITAL LETTER GIM +0534 ; mapped ; 0564 # 1.1 ARMENIAN CAPITAL LETTER DA +0535 ; mapped ; 0565 # 1.1 ARMENIAN CAPITAL LETTER ECH +0536 ; mapped ; 0566 # 1.1 ARMENIAN CAPITAL LETTER ZA +0537 ; mapped ; 0567 # 1.1 ARMENIAN CAPITAL LETTER EH +0538 ; mapped ; 0568 # 1.1 ARMENIAN CAPITAL LETTER ET +0539 ; mapped ; 0569 # 1.1 ARMENIAN CAPITAL LETTER TO +053A ; mapped ; 056A # 1.1 ARMENIAN CAPITAL LETTER ZHE +053B ; mapped ; 056B # 1.1 ARMENIAN CAPITAL LETTER INI +053C ; mapped ; 056C # 1.1 ARMENIAN CAPITAL LETTER LIWN +053D ; mapped ; 056D # 1.1 ARMENIAN CAPITAL LETTER XEH +053E ; mapped ; 056E # 1.1 ARMENIAN CAPITAL LETTER CA +053F ; mapped ; 056F # 1.1 ARMENIAN CAPITAL LETTER KEN +0540 ; mapped ; 0570 # 1.1 ARMENIAN CAPITAL LETTER HO +0541 ; mapped ; 0571 # 1.1 ARMENIAN CAPITAL LETTER JA +0542 ; mapped ; 0572 # 1.1 ARMENIAN CAPITAL LETTER GHAD +0543 ; mapped ; 0573 # 1.1 ARMENIAN CAPITAL LETTER CHEH +0544 ; mapped ; 0574 # 1.1 ARMENIAN CAPITAL LETTER MEN +0545 ; mapped ; 0575 # 1.1 ARMENIAN CAPITAL LETTER YI +0546 ; mapped ; 0576 # 1.1 ARMENIAN CAPITAL LETTER NOW +0547 ; mapped ; 0577 # 1.1 ARMENIAN CAPITAL LETTER SHA +0548 ; mapped ; 0578 # 1.1 ARMENIAN CAPITAL LETTER VO +0549 ; mapped ; 0579 # 1.1 ARMENIAN CAPITAL LETTER CHA +054A ; mapped ; 057A # 1.1 ARMENIAN CAPITAL LETTER PEH +054B ; mapped ; 057B # 1.1 ARMENIAN CAPITAL LETTER JHEH +054C ; mapped ; 057C # 1.1 ARMENIAN CAPITAL LETTER RA +054D ; mapped ; 057D # 1.1 ARMENIAN CAPITAL LETTER SEH +054E ; mapped ; 057E # 1.1 ARMENIAN CAPITAL LETTER VEW +054F ; mapped ; 057F # 1.1 ARMENIAN CAPITAL LETTER TIWN +0550 ; mapped ; 0580 # 1.1 ARMENIAN CAPITAL LETTER REH +0551 ; mapped ; 0581 # 1.1 ARMENIAN CAPITAL LETTER CO +0552 ; mapped ; 0582 # 1.1 ARMENIAN CAPITAL LETTER YIWN +0553 ; mapped ; 0583 # 1.1 ARMENIAN CAPITAL LETTER PIWR +0554 ; mapped ; 0584 # 1.1 ARMENIAN CAPITAL LETTER KEH +0555 ; mapped ; 0585 # 1.1 ARMENIAN CAPITAL LETTER OH +0556 ; mapped ; 0586 # 1.1 ARMENIAN CAPITAL LETTER FEH +0557..0558 ; disallowed # NA <reserved-0557>..<reserved-0558> +0559 ; valid # 1.1 ARMENIAN MODIFIER LETTER LEFT HALF RING +055A..055F ; valid ; ; NV8 # 1.1 ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK +0560 ; valid # 11.0 ARMENIAN SMALL LETTER TURNED AYB +0561..0586 ; valid # 1.1 ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LETTER FEH +0587 ; mapped ; 0565 0582 # 1.1 ARMENIAN SMALL LIGATURE ECH YIWN +0588 ; valid # 11.0 ARMENIAN SMALL LETTER YI WITH STROKE +0589 ; valid ; ; NV8 # 1.1 ARMENIAN FULL STOP +058A ; valid ; ; NV8 # 3.0 ARMENIAN HYPHEN +058B..058C ; disallowed # NA <reserved-058B>..<reserved-058C> +058D..058E ; valid ; ; NV8 # 7.0 RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN +058F ; valid ; ; NV8 # 6.1 ARMENIAN DRAM SIGN +0590 ; disallowed # NA <reserved-0590> +0591..05A1 ; valid # 2.0 HEBREW ACCENT ETNAHTA..HEBREW ACCENT PAZER +05A2 ; valid # 4.1 HEBREW ACCENT ATNAH HAFUKH +05A3..05AF ; valid # 2.0 HEBREW ACCENT MUNAH..HEBREW MARK MASORA CIRCLE +05B0..05B9 ; valid # 1.1 HEBREW POINT SHEVA..HEBREW POINT HOLAM +05BA ; valid # 5.0 HEBREW POINT HOLAM HASER FOR VAV +05BB..05BD ; valid # 1.1 HEBREW POINT QUBUTS..HEBREW POINT METEG +05BE ; valid ; ; NV8 # 1.1 HEBREW PUNCTUATION MAQAF +05BF ; valid # 1.1 HEBREW POINT RAFE +05C0 ; valid ; ; NV8 # 1.1 HEBREW PUNCTUATION PASEQ +05C1..05C2 ; valid # 1.1 HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT +05C3 ; valid ; ; NV8 # 1.1 HEBREW PUNCTUATION SOF PASUQ +05C4 ; valid # 2.0 HEBREW MARK UPPER DOT +05C5 ; valid # 4.1 HEBREW MARK LOWER DOT +05C6 ; valid ; ; NV8 # 4.1 HEBREW PUNCTUATION NUN HAFUKHA +05C7 ; valid # 4.1 HEBREW POINT QAMATS QATAN +05C8..05CF ; disallowed # NA <reserved-05C8>..<reserved-05CF> +05D0..05EA ; valid # 1.1 HEBREW LETTER ALEF..HEBREW LETTER TAV +05EB..05EE ; disallowed # NA <reserved-05EB>..<reserved-05EE> +05EF ; valid # 11.0 HEBREW YOD TRIANGLE +05F0..05F4 ; valid # 1.1 HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW PUNCTUATION GERSHAYIM +05F5..05FF ; disallowed # NA <reserved-05F5>..<reserved-05FF> +0600..0603 ; disallowed # 4.0 ARABIC NUMBER SIGN..ARABIC SIGN SAFHA +0604 ; disallowed # 6.1 ARABIC SIGN SAMVAT +0605 ; disallowed # 7.0 ARABIC NUMBER MARK ABOVE +0606..060A ; valid ; ; NV8 # 5.1 ARABIC-INDIC CUBE ROOT..ARABIC-INDIC PER TEN THOUSAND SIGN +060B ; valid ; ; NV8 # 4.1 AFGHANI SIGN +060C ; valid ; ; NV8 # 1.1 ARABIC COMMA +060D..060F ; valid ; ; NV8 # 4.0 ARABIC DATE SEPARATOR..ARABIC SIGN MISRA +0610..0615 ; valid # 4.0 ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL HIGH TAH +0616..061A ; valid # 5.1 ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH..ARABIC SMALL KASRA +061B ; valid ; ; NV8 # 1.1 ARABIC SEMICOLON +061C ; disallowed # 6.3 ARABIC LETTER MARK +061D ; valid ; ; NV8 # 14.0 ARABIC END OF TEXT MARK +061E ; valid ; ; NV8 # 4.1 ARABIC TRIPLE DOT PUNCTUATION MARK +061F ; valid ; ; NV8 # 1.1 ARABIC QUESTION MARK +0620 ; valid # 6.0 ARABIC LETTER KASHMIRI YEH +0621..063A ; valid # 1.1 ARABIC LETTER HAMZA..ARABIC LETTER GHAIN +063B..063F ; valid # 5.1 ARABIC LETTER KEHEH WITH TWO DOTS ABOVE..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE +0640 ; valid ; ; NV8 # 1.1 ARABIC TATWEEL +0641..0652 ; valid # 1.1 ARABIC LETTER FEH..ARABIC SUKUN +0653..0655 ; valid # 3.0 ARABIC MADDAH ABOVE..ARABIC HAMZA BELOW +0656..0658 ; valid # 4.0 ARABIC SUBSCRIPT ALEF..ARABIC MARK NOON GHUNNA +0659..065E ; valid # 4.1 ARABIC ZWARAKAY..ARABIC FATHA WITH TWO DOTS +065F ; valid # 6.0 ARABIC WAVY HAMZA BELOW +0660..0669 ; valid # 1.1 ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE +066A..066D ; valid ; ; NV8 # 1.1 ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR +066E..066F ; valid # 3.2 ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF +0670..0674 ; valid # 1.1 ARABIC LETTER SUPERSCRIPT ALEF..ARABIC LETTER HIGH HAMZA +0675 ; mapped ; 0627 0674 # 1.1 ARABIC LETTER HIGH HAMZA ALEF +0676 ; mapped ; 0648 0674 # 1.1 ARABIC LETTER HIGH HAMZA WAW +0677 ; mapped ; 06C7 0674 # 1.1 ARABIC LETTER U WITH HAMZA ABOVE +0678 ; mapped ; 064A 0674 # 1.1 ARABIC LETTER HIGH HAMZA YEH +0679..06B7 ; valid # 1.1 ARABIC LETTER TTEH..ARABIC LETTER LAM WITH THREE DOTS ABOVE +06B8..06B9 ; valid # 3.0 ARABIC LETTER LAM WITH THREE DOTS BELOW..ARABIC LETTER NOON WITH DOT BELOW +06BA..06BE ; valid # 1.1 ARABIC LETTER NOON GHUNNA..ARABIC LETTER HEH DOACHASHMEE +06BF ; valid # 3.0 ARABIC LETTER TCHEH WITH DOT ABOVE +06C0..06CE ; valid # 1.1 ARABIC LETTER HEH WITH YEH ABOVE..ARABIC LETTER YEH WITH SMALL V +06CF ; valid # 3.0 ARABIC LETTER WAW WITH DOT ABOVE +06D0..06D3 ; valid # 1.1 ARABIC LETTER E..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE +06D4 ; valid ; ; NV8 # 1.1 ARABIC FULL STOP +06D5..06DC ; valid # 1.1 ARABIC LETTER AE..ARABIC SMALL HIGH SEEN +06DD ; disallowed # 1.1 ARABIC END OF AYAH +06DE ; valid ; ; NV8 # 1.1 ARABIC START OF RUB EL HIZB +06DF..06E8 ; valid # 1.1 ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH NOON +06E9 ; valid ; ; NV8 # 1.1 ARABIC PLACE OF SAJDAH +06EA..06ED ; valid # 1.1 ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM +06EE..06EF ; valid # 4.0 ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V +06F0..06F9 ; valid # 1.1 EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE +06FA..06FE ; valid # 3.0 ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC SIGN SINDHI POSTPOSITION MEN +06FF ; valid # 4.0 ARABIC LETTER HEH WITH INVERTED V +0700..070D ; valid ; ; NV8 # 3.0 SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS +070E ; disallowed # NA <reserved-070E> +070F ; disallowed # 3.0 SYRIAC ABBREVIATION MARK +0710..072C ; valid # 3.0 SYRIAC LETTER ALAPH..SYRIAC LETTER TAW +072D..072F ; valid # 4.0 SYRIAC LETTER PERSIAN BHETH..SYRIAC LETTER PERSIAN DHALATH +0730..074A ; valid # 3.0 SYRIAC PTHAHA ABOVE..SYRIAC BARREKH +074B..074C ; disallowed # NA <reserved-074B>..<reserved-074C> +074D..074F ; valid # 4.0 SYRIAC LETTER SOGDIAN ZHAIN..SYRIAC LETTER SOGDIAN FE +0750..076D ; valid # 4.1 ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE +076E..077F ; valid # 5.1 ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE +0780..07B0 ; valid # 3.0 THAANA LETTER HAA..THAANA SUKUN +07B1 ; valid # 3.2 THAANA LETTER NAA +07B2..07BF ; disallowed # NA <reserved-07B2>..<reserved-07BF> +07C0..07F5 ; valid # 5.0 NKO DIGIT ZERO..NKO LOW TONE APOSTROPHE +07F6..07FA ; valid ; ; NV8 # 5.0 NKO SYMBOL OO DENNEN..NKO LAJANYALAN +07FB..07FC ; disallowed # NA <reserved-07FB>..<reserved-07FC> +07FD ; valid # 11.0 NKO DANTAYALAN +07FE..07FF ; valid ; ; NV8 # 11.0 NKO DOROME SIGN..NKO TAMAN SIGN +0800..082D ; valid # 5.2 SAMARITAN LETTER ALAF..SAMARITAN MARK NEQUDAA +082E..082F ; disallowed # NA <reserved-082E>..<reserved-082F> +0830..083E ; valid ; ; NV8 # 5.2 SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU +083F ; disallowed # NA <reserved-083F> +0840..085B ; valid # 6.0 MANDAIC LETTER HALQA..MANDAIC GEMINATION MARK +085C..085D ; disallowed # NA <reserved-085C>..<reserved-085D> +085E ; valid ; ; NV8 # 6.0 MANDAIC PUNCTUATION +085F ; disallowed # NA <reserved-085F> +0860..086A ; valid # 10.0 SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA +086B..086F ; disallowed # NA <reserved-086B>..<reserved-086F> +0870..0887 ; valid # 14.0 ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT +0888 ; valid ; ; NV8 # 14.0 ARABIC RAISED ROUND DOT +0889..088E ; valid # 14.0 ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL +088F ; disallowed # NA <reserved-088F> +0890..0891 ; disallowed # 14.0 ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE +0892..0897 ; disallowed # NA <reserved-0892>..<reserved-0897> +0898..089F ; valid # 14.0 ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA +08A0 ; valid # 6.1 ARABIC LETTER BEH WITH SMALL V BELOW +08A1 ; valid # 7.0 ARABIC LETTER BEH WITH HAMZA ABOVE +08A2..08AC ; valid # 6.1 ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH +08AD..08B2 ; valid # 7.0 ARABIC LETTER LOW ALEF..ARABIC LETTER ZAIN WITH INVERTED V ABOVE +08B3..08B4 ; valid # 8.0 ARABIC LETTER AIN WITH THREE DOTS BELOW..ARABIC LETTER KAF WITH DOT BELOW +08B5 ; valid # 14.0 ARABIC LETTER QAF WITH DOT BELOW AND NO DOTS ABOVE +08B6..08BD ; valid # 9.0 ARABIC LETTER BEH WITH SMALL MEEM ABOVE..ARABIC LETTER AFRICAN NOON +08BE..08C7 ; valid # 13.0 ARABIC LETTER PEH WITH SMALL V..ARABIC LETTER LAM WITH SMALL ARABIC LETTER TAH ABOVE +08C8..08D2 ; valid # 14.0 ARABIC LETTER GRAF..ARABIC LARGE ROUND DOT INSIDE CIRCLE BELOW +08D3 ; valid # 11.0 ARABIC SMALL LOW WAW +08D4..08E1 ; valid # 9.0 ARABIC SMALL HIGH WORD AR-RUB..ARABIC SMALL HIGH SIGN SAFHA +08E2 ; disallowed # 9.0 ARABIC DISPUTED END OF AYAH +08E3 ; valid # 8.0 ARABIC TURNED DAMMA BELOW +08E4..08FE ; valid # 6.1 ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT +08FF ; valid # 7.0 ARABIC MARK SIDEWAYS NOON GHUNNA +0900 ; valid # 5.2 DEVANAGARI SIGN INVERTED CANDRABINDU +0901..0903 ; valid # 1.1 DEVANAGARI SIGN CANDRABINDU..DEVANAGARI SIGN VISARGA +0904 ; valid # 4.0 DEVANAGARI LETTER SHORT A +0905..0939 ; valid # 1.1 DEVANAGARI LETTER A..DEVANAGARI LETTER HA +093A..093B ; valid # 6.0 DEVANAGARI VOWEL SIGN OE..DEVANAGARI VOWEL SIGN OOE +093C..094D ; valid # 1.1 DEVANAGARI SIGN NUKTA..DEVANAGARI SIGN VIRAMA +094E ; valid # 5.2 DEVANAGARI VOWEL SIGN PRISHTHAMATRA E +094F ; valid # 6.0 DEVANAGARI VOWEL SIGN AW +0950..0954 ; valid # 1.1 DEVANAGARI OM..DEVANAGARI ACUTE ACCENT +0955 ; valid # 5.2 DEVANAGARI VOWEL SIGN CANDRA LONG E +0956..0957 ; valid # 6.0 DEVANAGARI VOWEL SIGN UE..DEVANAGARI VOWEL SIGN UUE +0958 ; mapped ; 0915 093C # 1.1 DEVANAGARI LETTER QA +0959 ; mapped ; 0916 093C # 1.1 DEVANAGARI LETTER KHHA +095A ; mapped ; 0917 093C # 1.1 DEVANAGARI LETTER GHHA +095B ; mapped ; 091C 093C # 1.1 DEVANAGARI LETTER ZA +095C ; mapped ; 0921 093C # 1.1 DEVANAGARI LETTER DDDHA +095D ; mapped ; 0922 093C # 1.1 DEVANAGARI LETTER RHA +095E ; mapped ; 092B 093C # 1.1 DEVANAGARI LETTER FA +095F ; mapped ; 092F 093C # 1.1 DEVANAGARI LETTER YYA +0960..0963 ; valid # 1.1 DEVANAGARI LETTER VOCALIC RR..DEVANAGARI VOWEL SIGN VOCALIC LL +0964..0965 ; valid ; ; NV8 # 1.1 DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA +0966..096F ; valid # 1.1 DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE +0970 ; valid ; ; NV8 # 1.1 DEVANAGARI ABBREVIATION SIGN +0971..0972 ; valid # 5.1 DEVANAGARI SIGN HIGH SPACING DOT..DEVANAGARI LETTER CANDRA A +0973..0977 ; valid # 6.0 DEVANAGARI LETTER OE..DEVANAGARI LETTER UUE +0978 ; valid # 7.0 DEVANAGARI LETTER MARWARI DDA +0979..097A ; valid # 5.2 DEVANAGARI LETTER ZHA..DEVANAGARI LETTER HEAVY YA +097B..097C ; valid # 5.0 DEVANAGARI LETTER GGA..DEVANAGARI LETTER JJA +097D ; valid # 4.1 DEVANAGARI LETTER GLOTTAL STOP +097E..097F ; valid # 5.0 DEVANAGARI LETTER DDDA..DEVANAGARI LETTER BBA +0980 ; valid # 7.0 BENGALI ANJI +0981..0983 ; valid # 1.1 BENGALI SIGN CANDRABINDU..BENGALI SIGN VISARGA +0984 ; disallowed # NA <reserved-0984> +0985..098C ; valid # 1.1 BENGALI LETTER A..BENGALI LETTER VOCALIC L +098D..098E ; disallowed # NA <reserved-098D>..<reserved-098E> +098F..0990 ; valid # 1.1 BENGALI LETTER E..BENGALI LETTER AI +0991..0992 ; disallowed # NA <reserved-0991>..<reserved-0992> +0993..09A8 ; valid # 1.1 BENGALI LETTER O..BENGALI LETTER NA +09A9 ; disallowed # NA <reserved-09A9> +09AA..09B0 ; valid # 1.1 BENGALI LETTER PA..BENGALI LETTER RA +09B1 ; disallowed # NA <reserved-09B1> +09B2 ; valid # 1.1 BENGALI LETTER LA +09B3..09B5 ; disallowed # NA <reserved-09B3>..<reserved-09B5> +09B6..09B9 ; valid # 1.1 BENGALI LETTER SHA..BENGALI LETTER HA +09BA..09BB ; disallowed # NA <reserved-09BA>..<reserved-09BB> +09BC ; valid # 1.1 BENGALI SIGN NUKTA +09BD ; valid # 4.0 BENGALI SIGN AVAGRAHA +09BE..09C4 ; valid # 1.1 BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN VOCALIC RR +09C5..09C6 ; disallowed # NA <reserved-09C5>..<reserved-09C6> +09C7..09C8 ; valid # 1.1 BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI +09C9..09CA ; disallowed # NA <reserved-09C9>..<reserved-09CA> +09CB..09CD ; valid # 1.1 BENGALI VOWEL SIGN O..BENGALI SIGN VIRAMA +09CE ; valid # 4.1 BENGALI LETTER KHANDA TA +09CF..09D6 ; disallowed # NA <reserved-09CF>..<reserved-09D6> +09D7 ; valid # 1.1 BENGALI AU LENGTH MARK +09D8..09DB ; disallowed # NA <reserved-09D8>..<reserved-09DB> +09DC ; mapped ; 09A1 09BC # 1.1 BENGALI LETTER RRA +09DD ; mapped ; 09A2 09BC # 1.1 BENGALI LETTER RHA +09DE ; disallowed # NA <reserved-09DE> +09DF ; mapped ; 09AF 09BC # 1.1 BENGALI LETTER YYA +09E0..09E3 ; valid # 1.1 BENGALI LETTER VOCALIC RR..BENGALI VOWEL SIGN VOCALIC LL +09E4..09E5 ; disallowed # NA <reserved-09E4>..<reserved-09E5> +09E6..09F1 ; valid # 1.1 BENGALI DIGIT ZERO..BENGALI LETTER RA WITH LOWER DIAGONAL +09F2..09FA ; valid ; ; NV8 # 1.1 BENGALI RUPEE MARK..BENGALI ISSHAR +09FB ; valid ; ; NV8 # 5.2 BENGALI GANDA MARK +09FC ; valid # 10.0 BENGALI LETTER VEDIC ANUSVARA +09FD ; valid ; ; NV8 # 10.0 BENGALI ABBREVIATION SIGN +09FE ; valid # 11.0 BENGALI SANDHI MARK +09FF..0A00 ; disallowed # NA <reserved-09FF>..<reserved-0A00> +0A01 ; valid # 4.0 GURMUKHI SIGN ADAK BINDI +0A02 ; valid # 1.1 GURMUKHI SIGN BINDI +0A03 ; valid # 4.0 GURMUKHI SIGN VISARGA +0A04 ; disallowed # NA <reserved-0A04> +0A05..0A0A ; valid # 1.1 GURMUKHI LETTER A..GURMUKHI LETTER UU +0A0B..0A0E ; disallowed # NA <reserved-0A0B>..<reserved-0A0E> +0A0F..0A10 ; valid # 1.1 GURMUKHI LETTER EE..GURMUKHI LETTER AI +0A11..0A12 ; disallowed # NA <reserved-0A11>..<reserved-0A12> +0A13..0A28 ; valid # 1.1 GURMUKHI LETTER OO..GURMUKHI LETTER NA +0A29 ; disallowed # NA <reserved-0A29> +0A2A..0A30 ; valid # 1.1 GURMUKHI LETTER PA..GURMUKHI LETTER RA +0A31 ; disallowed # NA <reserved-0A31> +0A32 ; valid # 1.1 GURMUKHI LETTER LA +0A33 ; mapped ; 0A32 0A3C # 1.1 GURMUKHI LETTER LLA +0A34 ; disallowed # NA <reserved-0A34> +0A35 ; valid # 1.1 GURMUKHI LETTER VA +0A36 ; mapped ; 0A38 0A3C # 1.1 GURMUKHI LETTER SHA +0A37 ; disallowed # NA <reserved-0A37> +0A38..0A39 ; valid # 1.1 GURMUKHI LETTER SA..GURMUKHI LETTER HA +0A3A..0A3B ; disallowed # NA <reserved-0A3A>..<reserved-0A3B> +0A3C ; valid # 1.1 GURMUKHI SIGN NUKTA +0A3D ; disallowed # NA <reserved-0A3D> +0A3E..0A42 ; valid # 1.1 GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN UU +0A43..0A46 ; disallowed # NA <reserved-0A43>..<reserved-0A46> +0A47..0A48 ; valid # 1.1 GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI +0A49..0A4A ; disallowed # NA <reserved-0A49>..<reserved-0A4A> +0A4B..0A4D ; valid # 1.1 GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA +0A4E..0A50 ; disallowed # NA <reserved-0A4E>..<reserved-0A50> +0A51 ; valid # 5.1 GURMUKHI SIGN UDAAT +0A52..0A58 ; disallowed # NA <reserved-0A52>..<reserved-0A58> +0A59 ; mapped ; 0A16 0A3C # 1.1 GURMUKHI LETTER KHHA +0A5A ; mapped ; 0A17 0A3C # 1.1 GURMUKHI LETTER GHHA +0A5B ; mapped ; 0A1C 0A3C # 1.1 GURMUKHI LETTER ZA +0A5C ; valid # 1.1 GURMUKHI LETTER RRA +0A5D ; disallowed # NA <reserved-0A5D> +0A5E ; mapped ; 0A2B 0A3C # 1.1 GURMUKHI LETTER FA +0A5F..0A65 ; disallowed # NA <reserved-0A5F>..<reserved-0A65> +0A66..0A74 ; valid # 1.1 GURMUKHI DIGIT ZERO..GURMUKHI EK ONKAR +0A75 ; valid # 5.1 GURMUKHI SIGN YAKASH +0A76 ; valid ; ; NV8 # 11.0 GURMUKHI ABBREVIATION SIGN +0A77..0A80 ; disallowed # NA <reserved-0A77>..<reserved-0A80> +0A81..0A83 ; valid # 1.1 GUJARATI SIGN CANDRABINDU..GUJARATI SIGN VISARGA +0A84 ; disallowed # NA <reserved-0A84> +0A85..0A8B ; valid # 1.1 GUJARATI LETTER A..GUJARATI LETTER VOCALIC R +0A8C ; valid # 4.0 GUJARATI LETTER VOCALIC L +0A8D ; valid # 1.1 GUJARATI VOWEL CANDRA E +0A8E ; disallowed # NA <reserved-0A8E> +0A8F..0A91 ; valid # 1.1 GUJARATI LETTER E..GUJARATI VOWEL CANDRA O +0A92 ; disallowed # NA <reserved-0A92> +0A93..0AA8 ; valid # 1.1 GUJARATI LETTER O..GUJARATI LETTER NA +0AA9 ; disallowed # NA <reserved-0AA9> +0AAA..0AB0 ; valid # 1.1 GUJARATI LETTER PA..GUJARATI LETTER RA +0AB1 ; disallowed # NA <reserved-0AB1> +0AB2..0AB3 ; valid # 1.1 GUJARATI LETTER LA..GUJARATI LETTER LLA +0AB4 ; disallowed # NA <reserved-0AB4> +0AB5..0AB9 ; valid # 1.1 GUJARATI LETTER VA..GUJARATI LETTER HA +0ABA..0ABB ; disallowed # NA <reserved-0ABA>..<reserved-0ABB> +0ABC..0AC5 ; valid # 1.1 GUJARATI SIGN NUKTA..GUJARATI VOWEL SIGN CANDRA E +0AC6 ; disallowed # NA <reserved-0AC6> +0AC7..0AC9 ; valid # 1.1 GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN CANDRA O +0ACA ; disallowed # NA <reserved-0ACA> +0ACB..0ACD ; valid # 1.1 GUJARATI VOWEL SIGN O..GUJARATI SIGN VIRAMA +0ACE..0ACF ; disallowed # NA <reserved-0ACE>..<reserved-0ACF> +0AD0 ; valid # 1.1 GUJARATI OM +0AD1..0ADF ; disallowed # NA <reserved-0AD1>..<reserved-0ADF> +0AE0 ; valid # 1.1 GUJARATI LETTER VOCALIC RR +0AE1..0AE3 ; valid # 4.0 GUJARATI LETTER VOCALIC LL..GUJARATI VOWEL SIGN VOCALIC LL +0AE4..0AE5 ; disallowed # NA <reserved-0AE4>..<reserved-0AE5> +0AE6..0AEF ; valid # 1.1 GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE +0AF0 ; valid ; ; NV8 # 6.1 GUJARATI ABBREVIATION SIGN +0AF1 ; valid ; ; NV8 # 4.0 GUJARATI RUPEE SIGN +0AF2..0AF8 ; disallowed # NA <reserved-0AF2>..<reserved-0AF8> +0AF9 ; valid # 8.0 GUJARATI LETTER ZHA +0AFA..0AFF ; valid # 10.0 GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE +0B00 ; disallowed # NA <reserved-0B00> +0B01..0B03 ; valid # 1.1 ORIYA SIGN CANDRABINDU..ORIYA SIGN VISARGA +0B04 ; disallowed # NA <reserved-0B04> +0B05..0B0C ; valid # 1.1 ORIYA LETTER A..ORIYA LETTER VOCALIC L +0B0D..0B0E ; disallowed # NA <reserved-0B0D>..<reserved-0B0E> +0B0F..0B10 ; valid # 1.1 ORIYA LETTER E..ORIYA LETTER AI +0B11..0B12 ; disallowed # NA <reserved-0B11>..<reserved-0B12> +0B13..0B28 ; valid # 1.1 ORIYA LETTER O..ORIYA LETTER NA +0B29 ; disallowed # NA <reserved-0B29> +0B2A..0B30 ; valid # 1.1 ORIYA LETTER PA..ORIYA LETTER RA +0B31 ; disallowed # NA <reserved-0B31> +0B32..0B33 ; valid # 1.1 ORIYA LETTER LA..ORIYA LETTER LLA +0B34 ; disallowed # NA <reserved-0B34> +0B35 ; valid # 4.0 ORIYA LETTER VA +0B36..0B39 ; valid # 1.1 ORIYA LETTER SHA..ORIYA LETTER HA +0B3A..0B3B ; disallowed # NA <reserved-0B3A>..<reserved-0B3B> +0B3C..0B43 ; valid # 1.1 ORIYA SIGN NUKTA..ORIYA VOWEL SIGN VOCALIC R +0B44 ; valid # 5.1 ORIYA VOWEL SIGN VOCALIC RR +0B45..0B46 ; disallowed # NA <reserved-0B45>..<reserved-0B46> +0B47..0B48 ; valid # 1.1 ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI +0B49..0B4A ; disallowed # NA <reserved-0B49>..<reserved-0B4A> +0B4B..0B4D ; valid # 1.1 ORIYA VOWEL SIGN O..ORIYA SIGN VIRAMA +0B4E..0B54 ; disallowed # NA <reserved-0B4E>..<reserved-0B54> +0B55 ; valid # 13.0 ORIYA SIGN OVERLINE +0B56..0B57 ; valid # 1.1 ORIYA AI LENGTH MARK..ORIYA AU LENGTH MARK +0B58..0B5B ; disallowed # NA <reserved-0B58>..<reserved-0B5B> +0B5C ; mapped ; 0B21 0B3C # 1.1 ORIYA LETTER RRA +0B5D ; mapped ; 0B22 0B3C # 1.1 ORIYA LETTER RHA +0B5E ; disallowed # NA <reserved-0B5E> +0B5F..0B61 ; valid # 1.1 ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL +0B62..0B63 ; valid # 5.1 ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL +0B64..0B65 ; disallowed # NA <reserved-0B64>..<reserved-0B65> +0B66..0B6F ; valid # 1.1 ORIYA DIGIT ZERO..ORIYA DIGIT NINE +0B70 ; valid ; ; NV8 # 1.1 ORIYA ISSHAR +0B71 ; valid # 4.0 ORIYA LETTER WA +0B72..0B77 ; valid ; ; NV8 # 6.0 ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS +0B78..0B81 ; disallowed # NA <reserved-0B78>..<reserved-0B81> +0B82..0B83 ; valid # 1.1 TAMIL SIGN ANUSVARA..TAMIL SIGN VISARGA +0B84 ; disallowed # NA <reserved-0B84> +0B85..0B8A ; valid # 1.1 TAMIL LETTER A..TAMIL LETTER UU +0B8B..0B8D ; disallowed # NA <reserved-0B8B>..<reserved-0B8D> +0B8E..0B90 ; valid # 1.1 TAMIL LETTER E..TAMIL LETTER AI +0B91 ; disallowed # NA <reserved-0B91> +0B92..0B95 ; valid # 1.1 TAMIL LETTER O..TAMIL LETTER KA +0B96..0B98 ; disallowed # NA <reserved-0B96>..<reserved-0B98> +0B99..0B9A ; valid # 1.1 TAMIL LETTER NGA..TAMIL LETTER CA +0B9B ; disallowed # NA <reserved-0B9B> +0B9C ; valid # 1.1 TAMIL LETTER JA +0B9D ; disallowed # NA <reserved-0B9D> +0B9E..0B9F ; valid # 1.1 TAMIL LETTER NYA..TAMIL LETTER TTA +0BA0..0BA2 ; disallowed # NA <reserved-0BA0>..<reserved-0BA2> +0BA3..0BA4 ; valid # 1.1 TAMIL LETTER NNA..TAMIL LETTER TA +0BA5..0BA7 ; disallowed # NA <reserved-0BA5>..<reserved-0BA7> +0BA8..0BAA ; valid # 1.1 TAMIL LETTER NA..TAMIL LETTER PA +0BAB..0BAD ; disallowed # NA <reserved-0BAB>..<reserved-0BAD> +0BAE..0BB5 ; valid # 1.1 TAMIL LETTER MA..TAMIL LETTER VA +0BB6 ; valid # 4.1 TAMIL LETTER SHA +0BB7..0BB9 ; valid # 1.1 TAMIL LETTER SSA..TAMIL LETTER HA +0BBA..0BBD ; disallowed # NA <reserved-0BBA>..<reserved-0BBD> +0BBE..0BC2 ; valid # 1.1 TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN UU +0BC3..0BC5 ; disallowed # NA <reserved-0BC3>..<reserved-0BC5> +0BC6..0BC8 ; valid # 1.1 TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI +0BC9 ; disallowed # NA <reserved-0BC9> +0BCA..0BCD ; valid # 1.1 TAMIL VOWEL SIGN O..TAMIL SIGN VIRAMA +0BCE..0BCF ; disallowed # NA <reserved-0BCE>..<reserved-0BCF> +0BD0 ; valid # 5.1 TAMIL OM +0BD1..0BD6 ; disallowed # NA <reserved-0BD1>..<reserved-0BD6> +0BD7 ; valid # 1.1 TAMIL AU LENGTH MARK +0BD8..0BE5 ; disallowed # NA <reserved-0BD8>..<reserved-0BE5> +0BE6 ; valid # 4.1 TAMIL DIGIT ZERO +0BE7..0BEF ; valid # 1.1 TAMIL DIGIT ONE..TAMIL DIGIT NINE +0BF0..0BF2 ; valid ; ; NV8 # 1.1 TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND +0BF3..0BFA ; valid ; ; NV8 # 4.0 TAMIL DAY SIGN..TAMIL NUMBER SIGN +0BFB..0BFF ; disallowed # NA <reserved-0BFB>..<reserved-0BFF> +0C00 ; valid # 7.0 TELUGU SIGN COMBINING CANDRABINDU ABOVE +0C01..0C03 ; valid # 1.1 TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA +0C04 ; valid # 11.0 TELUGU SIGN COMBINING ANUSVARA ABOVE +0C05..0C0C ; valid # 1.1 TELUGU LETTER A..TELUGU LETTER VOCALIC L +0C0D ; disallowed # NA <reserved-0C0D> +0C0E..0C10 ; valid # 1.1 TELUGU LETTER E..TELUGU LETTER AI +0C11 ; disallowed # NA <reserved-0C11> +0C12..0C28 ; valid # 1.1 TELUGU LETTER O..TELUGU LETTER NA +0C29 ; disallowed # NA <reserved-0C29> +0C2A..0C33 ; valid # 1.1 TELUGU LETTER PA..TELUGU LETTER LLA +0C34 ; valid # 7.0 TELUGU LETTER LLLA +0C35..0C39 ; valid # 1.1 TELUGU LETTER VA..TELUGU LETTER HA +0C3A..0C3B ; disallowed # NA <reserved-0C3A>..<reserved-0C3B> +0C3C ; valid # 14.0 TELUGU SIGN NUKTA +0C3D ; valid # 5.1 TELUGU SIGN AVAGRAHA +0C3E..0C44 ; valid # 1.1 TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN VOCALIC RR +0C45 ; disallowed # NA <reserved-0C45> +0C46..0C48 ; valid # 1.1 TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI +0C49 ; disallowed # NA <reserved-0C49> +0C4A..0C4D ; valid # 1.1 TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA +0C4E..0C54 ; disallowed # NA <reserved-0C4E>..<reserved-0C54> +0C55..0C56 ; valid # 1.1 TELUGU LENGTH MARK..TELUGU AI LENGTH MARK +0C57 ; disallowed # NA <reserved-0C57> +0C58..0C59 ; valid # 5.1 TELUGU LETTER TSA..TELUGU LETTER DZA +0C5A ; valid # 8.0 TELUGU LETTER RRRA +0C5B..0C5C ; disallowed # NA <reserved-0C5B>..<reserved-0C5C> +0C5D ; valid # 14.0 TELUGU LETTER NAKAARA POLLU +0C5E..0C5F ; disallowed # NA <reserved-0C5E>..<reserved-0C5F> +0C60..0C61 ; valid # 1.1 TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL +0C62..0C63 ; valid # 5.1 TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL +0C64..0C65 ; disallowed # NA <reserved-0C64>..<reserved-0C65> +0C66..0C6F ; valid # 1.1 TELUGU DIGIT ZERO..TELUGU DIGIT NINE +0C70..0C76 ; disallowed # NA <reserved-0C70>..<reserved-0C76> +0C77 ; valid ; ; NV8 # 12.0 TELUGU SIGN SIDDHAM +0C78..0C7F ; valid ; ; NV8 # 5.1 TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU SIGN TUUMU +0C80 ; valid # 9.0 KANNADA SIGN SPACING CANDRABINDU +0C81 ; valid # 7.0 KANNADA SIGN CANDRABINDU +0C82..0C83 ; valid # 1.1 KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA +0C84 ; valid ; ; NV8 # 11.0 KANNADA SIGN SIDDHAM +0C85..0C8C ; valid # 1.1 KANNADA LETTER A..KANNADA LETTER VOCALIC L +0C8D ; disallowed # NA <reserved-0C8D> +0C8E..0C90 ; valid # 1.1 KANNADA LETTER E..KANNADA LETTER AI +0C91 ; disallowed # NA <reserved-0C91> +0C92..0CA8 ; valid # 1.1 KANNADA LETTER O..KANNADA LETTER NA +0CA9 ; disallowed # NA <reserved-0CA9> +0CAA..0CB3 ; valid # 1.1 KANNADA LETTER PA..KANNADA LETTER LLA +0CB4 ; disallowed # NA <reserved-0CB4> +0CB5..0CB9 ; valid # 1.1 KANNADA LETTER VA..KANNADA LETTER HA +0CBA..0CBB ; disallowed # NA <reserved-0CBA>..<reserved-0CBB> +0CBC..0CBD ; valid # 4.0 KANNADA SIGN NUKTA..KANNADA SIGN AVAGRAHA +0CBE..0CC4 ; valid # 1.1 KANNADA VOWEL SIGN AA..KANNADA VOWEL SIGN VOCALIC RR +0CC5 ; disallowed # NA <reserved-0CC5> +0CC6..0CC8 ; valid # 1.1 KANNADA VOWEL SIGN E..KANNADA VOWEL SIGN AI +0CC9 ; disallowed # NA <reserved-0CC9> +0CCA..0CCD ; valid # 1.1 KANNADA VOWEL SIGN O..KANNADA SIGN VIRAMA +0CCE..0CD4 ; disallowed # NA <reserved-0CCE>..<reserved-0CD4> +0CD5..0CD6 ; valid # 1.1 KANNADA LENGTH MARK..KANNADA AI LENGTH MARK +0CD7..0CDC ; disallowed # NA <reserved-0CD7>..<reserved-0CDC> +0CDD ; valid # 14.0 KANNADA LETTER NAKAARA POLLU +0CDE ; valid # 1.1 KANNADA LETTER FA +0CDF ; disallowed # NA <reserved-0CDF> +0CE0..0CE1 ; valid # 1.1 KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL +0CE2..0CE3 ; valid # 5.0 KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL +0CE4..0CE5 ; disallowed # NA <reserved-0CE4>..<reserved-0CE5> +0CE6..0CEF ; valid # 1.1 KANNADA DIGIT ZERO..KANNADA DIGIT NINE +0CF0 ; disallowed # NA <reserved-0CF0> +0CF1..0CF2 ; valid # 5.0 KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA +0CF3 ; valid # 15.0 KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT +0CF4..0CFF ; disallowed # NA <reserved-0CF4>..<reserved-0CFF> +0D00 ; valid # 10.0 MALAYALAM SIGN COMBINING ANUSVARA ABOVE +0D01 ; valid # 7.0 MALAYALAM SIGN CANDRABINDU +0D02..0D03 ; valid # 1.1 MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA +0D04 ; valid # 13.0 MALAYALAM LETTER VEDIC ANUSVARA +0D05..0D0C ; valid # 1.1 MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L +0D0D ; disallowed # NA <reserved-0D0D> +0D0E..0D10 ; valid # 1.1 MALAYALAM LETTER E..MALAYALAM LETTER AI +0D11 ; disallowed # NA <reserved-0D11> +0D12..0D28 ; valid # 1.1 MALAYALAM LETTER O..MALAYALAM LETTER NA +0D29 ; valid # 6.0 MALAYALAM LETTER NNNA +0D2A..0D39 ; valid # 1.1 MALAYALAM LETTER PA..MALAYALAM LETTER HA +0D3A ; valid # 6.0 MALAYALAM LETTER TTTA +0D3B..0D3C ; valid # 10.0 MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA +0D3D ; valid # 5.1 MALAYALAM SIGN AVAGRAHA +0D3E..0D43 ; valid # 1.1 MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN VOCALIC R +0D44 ; valid # 5.1 MALAYALAM VOWEL SIGN VOCALIC RR +0D45 ; disallowed # NA <reserved-0D45> +0D46..0D48 ; valid # 1.1 MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI +0D49 ; disallowed # NA <reserved-0D49> +0D4A..0D4D ; valid # 1.1 MALAYALAM VOWEL SIGN O..MALAYALAM SIGN VIRAMA +0D4E ; valid # 6.0 MALAYALAM LETTER DOT REPH +0D4F ; valid ; ; NV8 # 9.0 MALAYALAM SIGN PARA +0D50..0D53 ; disallowed # NA <reserved-0D50>..<reserved-0D53> +0D54..0D56 ; valid # 9.0 MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL +0D57 ; valid # 1.1 MALAYALAM AU LENGTH MARK +0D58..0D5E ; valid ; ; NV8 # 9.0 MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH..MALAYALAM FRACTION ONE FIFTH +0D5F ; valid # 8.0 MALAYALAM LETTER ARCHAIC II +0D60..0D61 ; valid # 1.1 MALAYALAM LETTER VOCALIC RR..MALAYALAM LETTER VOCALIC LL +0D62..0D63 ; valid # 5.1 MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL +0D64..0D65 ; disallowed # NA <reserved-0D64>..<reserved-0D65> +0D66..0D6F ; valid # 1.1 MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE +0D70..0D75 ; valid ; ; NV8 # 5.1 MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE QUARTERS +0D76..0D78 ; valid ; ; NV8 # 9.0 MALAYALAM FRACTION ONE SIXTEENTH..MALAYALAM FRACTION THREE SIXTEENTHS +0D79 ; valid ; ; NV8 # 5.1 MALAYALAM DATE MARK +0D7A..0D7F ; valid # 5.1 MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K +0D80 ; disallowed # NA <reserved-0D80> +0D81 ; valid # 13.0 SINHALA SIGN CANDRABINDU +0D82..0D83 ; valid # 3.0 SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA +0D84 ; disallowed # NA <reserved-0D84> +0D85..0D96 ; valid # 3.0 SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA +0D97..0D99 ; disallowed # NA <reserved-0D97>..<reserved-0D99> +0D9A..0DB1 ; valid # 3.0 SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA +0DB2 ; disallowed # NA <reserved-0DB2> +0DB3..0DBB ; valid # 3.0 SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA +0DBC ; disallowed # NA <reserved-0DBC> +0DBD ; valid # 3.0 SINHALA LETTER DANTAJA LAYANNA +0DBE..0DBF ; disallowed # NA <reserved-0DBE>..<reserved-0DBF> +0DC0..0DC6 ; valid # 3.0 SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA +0DC7..0DC9 ; disallowed # NA <reserved-0DC7>..<reserved-0DC9> +0DCA ; valid # 3.0 SINHALA SIGN AL-LAKUNA +0DCB..0DCE ; disallowed # NA <reserved-0DCB>..<reserved-0DCE> +0DCF..0DD4 ; valid # 3.0 SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA +0DD5 ; disallowed # NA <reserved-0DD5> +0DD6 ; valid # 3.0 SINHALA VOWEL SIGN DIGA PAA-PILLA +0DD7 ; disallowed # NA <reserved-0DD7> +0DD8..0DDF ; valid # 3.0 SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA +0DE0..0DE5 ; disallowed # NA <reserved-0DE0>..<reserved-0DE5> +0DE6..0DEF ; valid # 7.0 SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE +0DF0..0DF1 ; disallowed # NA <reserved-0DF0>..<reserved-0DF1> +0DF2..0DF3 ; valid # 3.0 SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA +0DF4 ; valid ; ; NV8 # 3.0 SINHALA PUNCTUATION KUNDDALIYA +0DF5..0E00 ; disallowed # NA <reserved-0DF5>..<reserved-0E00> +0E01..0E32 ; valid # 1.1 THAI CHARACTER KO KAI..THAI CHARACTER SARA AA +0E33 ; mapped ; 0E4D 0E32 # 1.1 THAI CHARACTER SARA AM +0E34..0E3A ; valid # 1.1 THAI CHARACTER SARA I..THAI CHARACTER PHINTHU +0E3B..0E3E ; disallowed # NA <reserved-0E3B>..<reserved-0E3E> +0E3F ; valid ; ; NV8 # 1.1 THAI CURRENCY SYMBOL BAHT +0E40..0E4E ; valid # 1.1 THAI CHARACTER SARA E..THAI CHARACTER YAMAKKAN +0E4F ; valid ; ; NV8 # 1.1 THAI CHARACTER FONGMAN +0E50..0E59 ; valid # 1.1 THAI DIGIT ZERO..THAI DIGIT NINE +0E5A..0E5B ; valid ; ; NV8 # 1.1 THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT +0E5C..0E80 ; disallowed # NA <reserved-0E5C>..<reserved-0E80> +0E81..0E82 ; valid # 1.1 LAO LETTER KO..LAO LETTER KHO SUNG +0E83 ; disallowed # NA <reserved-0E83> +0E84 ; valid # 1.1 LAO LETTER KHO TAM +0E85 ; disallowed # NA <reserved-0E85> +0E86 ; valid # 12.0 LAO LETTER PALI GHA +0E87..0E88 ; valid # 1.1 LAO LETTER NGO..LAO LETTER CO +0E89 ; valid # 12.0 LAO LETTER PALI CHA +0E8A ; valid # 1.1 LAO LETTER SO TAM +0E8B ; disallowed # NA <reserved-0E8B> +0E8C ; valid # 12.0 LAO LETTER PALI JHA +0E8D ; valid # 1.1 LAO LETTER NYO +0E8E..0E93 ; valid # 12.0 LAO LETTER PALI NYA..LAO LETTER PALI NNA +0E94..0E97 ; valid # 1.1 LAO LETTER DO..LAO LETTER THO TAM +0E98 ; valid # 12.0 LAO LETTER PALI DHA +0E99..0E9F ; valid # 1.1 LAO LETTER NO..LAO LETTER FO SUNG +0EA0 ; valid # 12.0 LAO LETTER PALI BHA +0EA1..0EA3 ; valid # 1.1 LAO LETTER MO..LAO LETTER LO LING +0EA4 ; disallowed # NA <reserved-0EA4> +0EA5 ; valid # 1.1 LAO LETTER LO LOOT +0EA6 ; disallowed # NA <reserved-0EA6> +0EA7 ; valid # 1.1 LAO LETTER WO +0EA8..0EA9 ; valid # 12.0 LAO LETTER SANSKRIT SHA..LAO LETTER SANSKRIT SSA +0EAA..0EAB ; valid # 1.1 LAO LETTER SO SUNG..LAO LETTER HO SUNG +0EAC ; valid # 12.0 LAO LETTER PALI LLA +0EAD..0EB2 ; valid # 1.1 LAO LETTER O..LAO VOWEL SIGN AA +0EB3 ; mapped ; 0ECD 0EB2 # 1.1 LAO VOWEL SIGN AM +0EB4..0EB9 ; valid # 1.1 LAO VOWEL SIGN I..LAO VOWEL SIGN UU +0EBA ; valid # 12.0 LAO SIGN PALI VIRAMA +0EBB..0EBD ; valid # 1.1 LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN NYO +0EBE..0EBF ; disallowed # NA <reserved-0EBE>..<reserved-0EBF> +0EC0..0EC4 ; valid # 1.1 LAO VOWEL SIGN E..LAO VOWEL SIGN AI +0EC5 ; disallowed # NA <reserved-0EC5> +0EC6 ; valid # 1.1 LAO KO LA +0EC7 ; disallowed # NA <reserved-0EC7> +0EC8..0ECD ; valid # 1.1 LAO TONE MAI EK..LAO NIGGAHITA +0ECE ; valid # 15.0 LAO YAMAKKAN +0ECF ; disallowed # NA <reserved-0ECF> +0ED0..0ED9 ; valid # 1.1 LAO DIGIT ZERO..LAO DIGIT NINE +0EDA..0EDB ; disallowed # NA <reserved-0EDA>..<reserved-0EDB> +0EDC ; mapped ; 0EAB 0E99 # 1.1 LAO HO NO +0EDD ; mapped ; 0EAB 0EA1 # 1.1 LAO HO MO +0EDE..0EDF ; valid # 6.1 LAO LETTER KHMU GO..LAO LETTER KHMU NYO +0EE0..0EFF ; disallowed # NA <reserved-0EE0>..<reserved-0EFF> +0F00 ; valid # 2.0 TIBETAN SYLLABLE OM +0F01..0F0A ; valid ; ; NV8 # 2.0 TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK BKA- SHOG YIG MGO +0F0B ; valid # 2.0 TIBETAN MARK INTERSYLLABIC TSHEG +0F0C ; mapped ; 0F0B # 2.0 TIBETAN MARK DELIMITER TSHEG BSTAR +0F0D..0F17 ; valid ; ; NV8 # 2.0 TIBETAN MARK SHAD..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS +0F18..0F19 ; valid # 2.0 TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS +0F1A..0F1F ; valid ; ; NV8 # 2.0 TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG +0F20..0F29 ; valid # 2.0 TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE +0F2A..0F34 ; valid ; ; NV8 # 2.0 TIBETAN DIGIT HALF ONE..TIBETAN MARK BSDUS RTAGS +0F35 ; valid # 2.0 TIBETAN MARK NGAS BZUNG NYI ZLA +0F36 ; valid ; ; NV8 # 2.0 TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN +0F37 ; valid # 2.0 TIBETAN MARK NGAS BZUNG SGOR RTAGS +0F38 ; valid ; ; NV8 # 2.0 TIBETAN MARK CHE MGO +0F39 ; valid # 2.0 TIBETAN MARK TSA -PHRU +0F3A..0F3D ; valid ; ; NV8 # 2.0 TIBETAN MARK GUG RTAGS GYON..TIBETAN MARK ANG KHANG GYAS +0F3E..0F42 ; valid # 2.0 TIBETAN SIGN YAR TSHES..TIBETAN LETTER GA +0F43 ; mapped ; 0F42 0FB7 # 2.0 TIBETAN LETTER GHA +0F44..0F47 ; valid # 2.0 TIBETAN LETTER NGA..TIBETAN LETTER JA +0F48 ; disallowed # NA <reserved-0F48> +0F49..0F4C ; valid # 2.0 TIBETAN LETTER NYA..TIBETAN LETTER DDA +0F4D ; mapped ; 0F4C 0FB7 # 2.0 TIBETAN LETTER DDHA +0F4E..0F51 ; valid # 2.0 TIBETAN LETTER NNA..TIBETAN LETTER DA +0F52 ; mapped ; 0F51 0FB7 # 2.0 TIBETAN LETTER DHA +0F53..0F56 ; valid # 2.0 TIBETAN LETTER NA..TIBETAN LETTER BA +0F57 ; mapped ; 0F56 0FB7 # 2.0 TIBETAN LETTER BHA +0F58..0F5B ; valid # 2.0 TIBETAN LETTER MA..TIBETAN LETTER DZA +0F5C ; mapped ; 0F5B 0FB7 # 2.0 TIBETAN LETTER DZHA +0F5D..0F68 ; valid # 2.0 TIBETAN LETTER WA..TIBETAN LETTER A +0F69 ; mapped ; 0F40 0FB5 # 2.0 TIBETAN LETTER KSSA +0F6A ; valid # 3.0 TIBETAN LETTER FIXED-FORM RA +0F6B..0F6C ; valid # 5.1 TIBETAN LETTER KKA..TIBETAN LETTER RRA +0F6D..0F70 ; disallowed # NA <reserved-0F6D>..<reserved-0F70> +0F71..0F72 ; valid # 2.0 TIBETAN VOWEL SIGN AA..TIBETAN VOWEL SIGN I +0F73 ; mapped ; 0F71 0F72 # 2.0 TIBETAN VOWEL SIGN II +0F74 ; valid # 2.0 TIBETAN VOWEL SIGN U +0F75 ; mapped ; 0F71 0F74 # 2.0 TIBETAN VOWEL SIGN UU +0F76 ; mapped ; 0FB2 0F80 # 2.0 TIBETAN VOWEL SIGN VOCALIC R +0F77 ; mapped ; 0FB2 0F71 0F80 #2.0 TIBETAN VOWEL SIGN VOCALIC RR +0F78 ; mapped ; 0FB3 0F80 # 2.0 TIBETAN VOWEL SIGN VOCALIC L +0F79 ; mapped ; 0FB3 0F71 0F80 #2.0 TIBETAN VOWEL SIGN VOCALIC LL +0F7A..0F80 ; valid # 2.0 TIBETAN VOWEL SIGN E..TIBETAN VOWEL SIGN REVERSED I +0F81 ; mapped ; 0F71 0F80 # 2.0 TIBETAN VOWEL SIGN REVERSED II +0F82..0F84 ; valid # 2.0 TIBETAN SIGN NYI ZLA NAA DA..TIBETAN MARK HALANTA +0F85 ; valid ; ; NV8 # 2.0 TIBETAN MARK PALUTA +0F86..0F8B ; valid # 2.0 TIBETAN SIGN LCI RTAGS..TIBETAN SIGN GRU MED RGYINGS +0F8C..0F8F ; valid # 6.0 TIBETAN SIGN INVERTED MCHU CAN..TIBETAN SUBJOINED SIGN INVERTED MCHU CAN +0F90..0F92 ; valid # 2.0 TIBETAN SUBJOINED LETTER KA..TIBETAN SUBJOINED LETTER GA +0F93 ; mapped ; 0F92 0FB7 # 2.0 TIBETAN SUBJOINED LETTER GHA +0F94..0F95 ; valid # 2.0 TIBETAN SUBJOINED LETTER NGA..TIBETAN SUBJOINED LETTER CA +0F96 ; valid # 3.0 TIBETAN SUBJOINED LETTER CHA +0F97 ; valid # 2.0 TIBETAN SUBJOINED LETTER JA +0F98 ; disallowed # NA <reserved-0F98> +0F99..0F9C ; valid # 2.0 TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER DDA +0F9D ; mapped ; 0F9C 0FB7 # 2.0 TIBETAN SUBJOINED LETTER DDHA +0F9E..0FA1 ; valid # 2.0 TIBETAN SUBJOINED LETTER NNA..TIBETAN SUBJOINED LETTER DA +0FA2 ; mapped ; 0FA1 0FB7 # 2.0 TIBETAN SUBJOINED LETTER DHA +0FA3..0FA6 ; valid # 2.0 TIBETAN SUBJOINED LETTER NA..TIBETAN SUBJOINED LETTER BA +0FA7 ; mapped ; 0FA6 0FB7 # 2.0 TIBETAN SUBJOINED LETTER BHA +0FA8..0FAB ; valid # 2.0 TIBETAN SUBJOINED LETTER MA..TIBETAN SUBJOINED LETTER DZA +0FAC ; mapped ; 0FAB 0FB7 # 2.0 TIBETAN SUBJOINED LETTER DZHA +0FAD ; valid # 2.0 TIBETAN SUBJOINED LETTER WA +0FAE..0FB0 ; valid # 3.0 TIBETAN SUBJOINED LETTER ZHA..TIBETAN SUBJOINED LETTER -A +0FB1..0FB7 ; valid # 2.0 TIBETAN SUBJOINED LETTER YA..TIBETAN SUBJOINED LETTER HA +0FB8 ; valid # 3.0 TIBETAN SUBJOINED LETTER A +0FB9 ; mapped ; 0F90 0FB5 # 2.0 TIBETAN SUBJOINED LETTER KSSA +0FBA..0FBC ; valid # 3.0 TIBETAN SUBJOINED LETTER FIXED-FORM WA..TIBETAN SUBJOINED LETTER FIXED-FORM RA +0FBD ; disallowed # NA <reserved-0FBD> +0FBE..0FC5 ; valid ; ; NV8 # 3.0 TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE +0FC6 ; valid # 3.0 TIBETAN SYMBOL PADMA GDAN +0FC7..0FCC ; valid ; ; NV8 # 3.0 TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL +0FCD ; disallowed # NA <reserved-0FCD> +0FCE ; valid ; ; NV8 # 5.1 TIBETAN SIGN RDEL NAG RDEL DKAR +0FCF ; valid ; ; NV8 # 3.0 TIBETAN SIGN RDEL NAG GSUM +0FD0..0FD1 ; valid ; ; NV8 # 4.1 TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK MNYAM YIG GI MGO RGYAN +0FD2..0FD4 ; valid ; ; NV8 # 5.1 TIBETAN MARK NYIS TSHEG..TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA +0FD5..0FD8 ; valid ; ; NV8 # 5.2 RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS +0FD9..0FDA ; valid ; ; NV8 # 6.0 TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS +0FDB..0FFF ; disallowed # NA <reserved-0FDB>..<reserved-0FFF> +1000..1021 ; valid # 3.0 MYANMAR LETTER KA..MYANMAR LETTER A +1022 ; valid # 5.1 MYANMAR LETTER SHAN A +1023..1027 ; valid # 3.0 MYANMAR LETTER I..MYANMAR LETTER E +1028 ; valid # 5.1 MYANMAR LETTER MON E +1029..102A ; valid # 3.0 MYANMAR LETTER O..MYANMAR LETTER AU +102B ; valid # 5.1 MYANMAR VOWEL SIGN TALL AA +102C..1032 ; valid # 3.0 MYANMAR VOWEL SIGN AA..MYANMAR VOWEL SIGN AI +1033..1035 ; valid # 5.1 MYANMAR VOWEL SIGN MON II..MYANMAR VOWEL SIGN E ABOVE +1036..1039 ; valid # 3.0 MYANMAR SIGN ANUSVARA..MYANMAR SIGN VIRAMA +103A..103F ; valid # 5.1 MYANMAR SIGN ASAT..MYANMAR LETTER GREAT SA +1040..1049 ; valid # 3.0 MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE +104A..104F ; valid ; ; NV8 # 3.0 MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE +1050..1059 ; valid # 3.0 MYANMAR LETTER SHA..MYANMAR VOWEL SIGN VOCALIC LL +105A..1099 ; valid # 5.1 MYANMAR LETTER MON NGA..MYANMAR SHAN DIGIT NINE +109A..109D ; valid # 5.2 MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON AI +109E..109F ; valid ; ; NV8 # 5.1 MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION +10A0..10C5 ; disallowed # 1.1 GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE +10C6 ; disallowed # NA <reserved-10C6> +10C7 ; mapped ; 2D27 # 6.1 GEORGIAN CAPITAL LETTER YN +10C8..10CC ; disallowed # NA <reserved-10C8>..<reserved-10CC> +10CD ; mapped ; 2D2D # 6.1 GEORGIAN CAPITAL LETTER AEN +10CE..10CF ; disallowed # NA <reserved-10CE>..<reserved-10CF> +10D0..10F6 ; valid # 1.1 GEORGIAN LETTER AN..GEORGIAN LETTER FI +10F7..10F8 ; valid # 3.2 GEORGIAN LETTER YN..GEORGIAN LETTER ELIFI +10F9..10FA ; valid # 4.1 GEORGIAN LETTER TURNED GAN..GEORGIAN LETTER AIN +10FB ; valid ; ; NV8 # 1.1 GEORGIAN PARAGRAPH SEPARATOR +10FC ; mapped ; 10DC # 4.1 MODIFIER LETTER GEORGIAN NAR +10FD..10FF ; valid # 6.1 GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN +1100..1159 ; valid ; ; NV8 # 1.1 HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG YEORINHIEUH +115A..115E ; valid ; ; NV8 # 5.2 HANGUL CHOSEONG KIYEOK-TIKEUT..HANGUL CHOSEONG TIKEUT-RIEUL +115F..1160 ; disallowed # 1.1 HANGUL CHOSEONG FILLER..HANGUL JUNGSEONG FILLER +1161..11A2 ; valid ; ; NV8 # 1.1 HANGUL JUNGSEONG A..HANGUL JUNGSEONG SSANGARAEA +11A3..11A7 ; valid ; ; NV8 # 5.2 HANGUL JUNGSEONG A-EU..HANGUL JUNGSEONG O-YAE +11A8..11F9 ; valid ; ; NV8 # 1.1 HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG YEORINHIEUH +11FA..11FF ; valid ; ; NV8 # 5.2 HANGUL JONGSEONG KIYEOK-NIEUN..HANGUL JONGSEONG SSANGNIEUN +1200..1206 ; valid # 3.0 ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE HO +1207 ; valid # 4.1 ETHIOPIC SYLLABLE HOA +1208..1246 ; valid # 3.0 ETHIOPIC SYLLABLE LA..ETHIOPIC SYLLABLE QO +1247 ; valid # 4.1 ETHIOPIC SYLLABLE QOA +1248 ; valid # 3.0 ETHIOPIC SYLLABLE QWA +1249 ; disallowed # NA <reserved-1249> +124A..124D ; valid # 3.0 ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE +124E..124F ; disallowed # NA <reserved-124E>..<reserved-124F> +1250..1256 ; valid # 3.0 ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO +1257 ; disallowed # NA <reserved-1257> +1258 ; valid # 3.0 ETHIOPIC SYLLABLE QHWA +1259 ; disallowed # NA <reserved-1259> +125A..125D ; valid # 3.0 ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE +125E..125F ; disallowed # NA <reserved-125E>..<reserved-125F> +1260..1286 ; valid # 3.0 ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XO +1287 ; valid # 4.1 ETHIOPIC SYLLABLE XOA +1288 ; valid # 3.0 ETHIOPIC SYLLABLE XWA +1289 ; disallowed # NA <reserved-1289> +128A..128D ; valid # 3.0 ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE +128E..128F ; disallowed # NA <reserved-128E>..<reserved-128F> +1290..12AE ; valid # 3.0 ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KO +12AF ; valid # 4.1 ETHIOPIC SYLLABLE KOA +12B0 ; valid # 3.0 ETHIOPIC SYLLABLE KWA +12B1 ; disallowed # NA <reserved-12B1> +12B2..12B5 ; valid # 3.0 ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE +12B6..12B7 ; disallowed # NA <reserved-12B6>..<reserved-12B7> +12B8..12BE ; valid # 3.0 ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO +12BF ; disallowed # NA <reserved-12BF> +12C0 ; valid # 3.0 ETHIOPIC SYLLABLE KXWA +12C1 ; disallowed # NA <reserved-12C1> +12C2..12C5 ; valid # 3.0 ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE +12C6..12C7 ; disallowed # NA <reserved-12C6>..<reserved-12C7> +12C8..12CE ; valid # 3.0 ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE WO +12CF ; valid # 4.1 ETHIOPIC SYLLABLE WOA +12D0..12D6 ; valid # 3.0 ETHIOPIC SYLLABLE PHARYNGEAL A..ETHIOPIC SYLLABLE PHARYNGEAL O +12D7 ; disallowed # NA <reserved-12D7> +12D8..12EE ; valid # 3.0 ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE YO +12EF ; valid # 4.1 ETHIOPIC SYLLABLE YOA +12F0..130E ; valid # 3.0 ETHIOPIC SYLLABLE DA..ETHIOPIC SYLLABLE GO +130F ; valid # 4.1 ETHIOPIC SYLLABLE GOA +1310 ; valid # 3.0 ETHIOPIC SYLLABLE GWA +1311 ; disallowed # NA <reserved-1311> +1312..1315 ; valid # 3.0 ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE +1316..1317 ; disallowed # NA <reserved-1316>..<reserved-1317> +1318..131E ; valid # 3.0 ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE GGO +131F ; valid # 4.1 ETHIOPIC SYLLABLE GGWAA +1320..1346 ; valid # 3.0 ETHIOPIC SYLLABLE THA..ETHIOPIC SYLLABLE TZO +1347 ; valid # 4.1 ETHIOPIC SYLLABLE TZOA +1348..135A ; valid # 3.0 ETHIOPIC SYLLABLE FA..ETHIOPIC SYLLABLE FYA +135B..135C ; disallowed # NA <reserved-135B>..<reserved-135C> +135D..135E ; valid # 6.0 ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING VOWEL LENGTH MARK +135F ; valid # 4.1 ETHIOPIC COMBINING GEMINATION MARK +1360 ; valid ; ; NV8 # 4.1 ETHIOPIC SECTION MARK +1361..137C ; valid ; ; NV8 # 3.0 ETHIOPIC WORDSPACE..ETHIOPIC NUMBER TEN THOUSAND +137D..137F ; disallowed # NA <reserved-137D>..<reserved-137F> +1380..138F ; valid # 4.1 ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE +1390..1399 ; valid ; ; NV8 # 4.1 ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT +139A..139F ; disallowed # NA <reserved-139A>..<reserved-139F> +13A0..13F4 ; valid # 3.0 CHEROKEE LETTER A..CHEROKEE LETTER YV +13F5 ; valid # 8.0 CHEROKEE LETTER MV +13F6..13F7 ; disallowed # NA <reserved-13F6>..<reserved-13F7> +13F8 ; mapped ; 13F0 # 8.0 CHEROKEE SMALL LETTER YE +13F9 ; mapped ; 13F1 # 8.0 CHEROKEE SMALL LETTER YI +13FA ; mapped ; 13F2 # 8.0 CHEROKEE SMALL LETTER YO +13FB ; mapped ; 13F3 # 8.0 CHEROKEE SMALL LETTER YU +13FC ; mapped ; 13F4 # 8.0 CHEROKEE SMALL LETTER YV +13FD ; mapped ; 13F5 # 8.0 CHEROKEE SMALL LETTER MV +13FE..13FF ; disallowed # NA <reserved-13FE>..<reserved-13FF> +1400 ; valid ; ; NV8 # 5.2 CANADIAN SYLLABICS HYPHEN +1401..166C ; valid # 3.0 CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA +166D..166E ; valid ; ; NV8 # 3.0 CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP +166F..1676 ; valid # 3.0 CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS NNGAA +1677..167F ; valid # 5.2 CANADIAN SYLLABICS WOODS-CREE THWEE..CANADIAN SYLLABICS BLACKFOOT W +1680 ; disallowed # 3.0 OGHAM SPACE MARK +1681..169A ; valid # 3.0 OGHAM LETTER BEITH..OGHAM LETTER PEITH +169B..169C ; valid ; ; NV8 # 3.0 OGHAM FEATHER MARK..OGHAM REVERSED FEATHER MARK +169D..169F ; disallowed # NA <reserved-169D>..<reserved-169F> +16A0..16EA ; valid # 3.0 RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X +16EB..16F0 ; valid ; ; NV8 # 3.0 RUNIC SINGLE PUNCTUATION..RUNIC BELGTHOR SYMBOL +16F1..16F8 ; valid # 7.0 RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC +16F9..16FF ; disallowed # NA <reserved-16F9>..<reserved-16FF> +1700..170C ; valid # 3.2 TAGALOG LETTER A..TAGALOG LETTER YA +170D ; valid # 14.0 TAGALOG LETTER RA +170E..1714 ; valid # 3.2 TAGALOG LETTER LA..TAGALOG SIGN VIRAMA +1715 ; valid # 14.0 TAGALOG SIGN PAMUDPOD +1716..171E ; disallowed # NA <reserved-1716>..<reserved-171E> +171F ; valid # 14.0 TAGALOG LETTER ARCHAIC RA +1720..1734 ; valid # 3.2 HANUNOO LETTER A..HANUNOO SIGN PAMUDPOD +1735..1736 ; valid ; ; NV8 # 3.2 PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION +1737..173F ; disallowed # NA <reserved-1737>..<reserved-173F> +1740..1753 ; valid # 3.2 BUHID LETTER A..BUHID VOWEL SIGN U +1754..175F ; disallowed # NA <reserved-1754>..<reserved-175F> +1760..176C ; valid # 3.2 TAGBANWA LETTER A..TAGBANWA LETTER YA +176D ; disallowed # NA <reserved-176D> +176E..1770 ; valid # 3.2 TAGBANWA LETTER LA..TAGBANWA LETTER SA +1771 ; disallowed # NA <reserved-1771> +1772..1773 ; valid # 3.2 TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U +1774..177F ; disallowed # NA <reserved-1774>..<reserved-177F> +1780..17B3 ; valid # 3.0 KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU +17B4..17B5 ; disallowed # 3.0 KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA +17B6..17D3 ; valid # 3.0 KHMER VOWEL SIGN AA..KHMER SIGN BATHAMASAT +17D4..17D6 ; valid ; ; NV8 # 3.0 KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH +17D7 ; valid # 3.0 KHMER SIGN LEK TOO +17D8..17DB ; valid ; ; NV8 # 3.0 KHMER SIGN BEYYAL..KHMER CURRENCY SYMBOL RIEL +17DC ; valid # 3.0 KHMER SIGN AVAKRAHASANYA +17DD ; valid # 4.0 KHMER SIGN ATTHACAN +17DE..17DF ; disallowed # NA <reserved-17DE>..<reserved-17DF> +17E0..17E9 ; valid # 3.0 KHMER DIGIT ZERO..KHMER DIGIT NINE +17EA..17EF ; disallowed # NA <reserved-17EA>..<reserved-17EF> +17F0..17F9 ; valid ; ; NV8 # 4.0 KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON +17FA..17FF ; disallowed # NA <reserved-17FA>..<reserved-17FF> +1800..1805 ; valid ; ; NV8 # 3.0 MONGOLIAN BIRGA..MONGOLIAN FOUR DOTS +1806 ; disallowed # 3.0 MONGOLIAN TODO SOFT HYPHEN +1807..180A ; valid ; ; NV8 # 3.0 MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU +180B..180D ; ignored # 3.0 MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE +180E ; disallowed # 3.0 MONGOLIAN VOWEL SEPARATOR +180F ; ignored # 14.0 MONGOLIAN FREE VARIATION SELECTOR FOUR +1810..1819 ; valid # 3.0 MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE +181A..181F ; disallowed # NA <reserved-181A>..<reserved-181F> +1820..1877 ; valid # 3.0 MONGOLIAN LETTER A..MONGOLIAN LETTER MANCHU ZHA +1878 ; valid # 11.0 MONGOLIAN LETTER CHA WITH TWO DOTS +1879..187F ; disallowed # NA <reserved-1879>..<reserved-187F> +1880..18A9 ; valid # 3.0 MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI DAGALGA +18AA ; valid # 5.1 MONGOLIAN LETTER MANCHU ALI GALI LHA +18AB..18AF ; disallowed # NA <reserved-18AB>..<reserved-18AF> +18B0..18F5 ; valid # 5.2 CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S +18F6..18FF ; disallowed # NA <reserved-18F6>..<reserved-18FF> +1900..191C ; valid # 4.0 LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA +191D..191E ; valid # 7.0 LIMBU LETTER GYAN..LIMBU LETTER TRA +191F ; disallowed # NA <reserved-191F> +1920..192B ; valid # 4.0 LIMBU VOWEL SIGN A..LIMBU SUBJOINED LETTER WA +192C..192F ; disallowed # NA <reserved-192C>..<reserved-192F> +1930..193B ; valid # 4.0 LIMBU SMALL LETTER KA..LIMBU SIGN SA-I +193C..193F ; disallowed # NA <reserved-193C>..<reserved-193F> +1940 ; valid ; ; NV8 # 4.0 LIMBU SIGN LOO +1941..1943 ; disallowed # NA <reserved-1941>..<reserved-1943> +1944..1945 ; valid ; ; NV8 # 4.0 LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK +1946..196D ; valid # 4.0 LIMBU DIGIT ZERO..TAI LE LETTER AI +196E..196F ; disallowed # NA <reserved-196E>..<reserved-196F> +1970..1974 ; valid # 4.0 TAI LE LETTER TONE-2..TAI LE LETTER TONE-6 +1975..197F ; disallowed # NA <reserved-1975>..<reserved-197F> +1980..19A9 ; valid # 4.1 NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW XVA +19AA..19AB ; valid # 5.2 NEW TAI LUE LETTER HIGH SUA..NEW TAI LUE LETTER LOW SUA +19AC..19AF ; disallowed # NA <reserved-19AC>..<reserved-19AF> +19B0..19C9 ; valid # 4.1 NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2 +19CA..19CF ; disallowed # NA <reserved-19CA>..<reserved-19CF> +19D0..19D9 ; valid # 4.1 NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE +19DA ; valid ; ; XV8 # 5.2 NEW TAI LUE THAM DIGIT ONE +19DB..19DD ; disallowed # NA <reserved-19DB>..<reserved-19DD> +19DE..19DF ; valid ; ; NV8 # 4.1 NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV +19E0..19FF ; valid ; ; NV8 # 4.0 KHMER SYMBOL PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC +1A00..1A1B ; valid # 4.1 BUGINESE LETTER KA..BUGINESE VOWEL SIGN AE +1A1C..1A1D ; disallowed # NA <reserved-1A1C>..<reserved-1A1D> +1A1E..1A1F ; valid ; ; NV8 # 4.1 BUGINESE PALLAWA..BUGINESE END OF SECTION +1A20..1A5E ; valid # 5.2 TAI THAM LETTER HIGH KA..TAI THAM CONSONANT SIGN SA +1A5F ; disallowed # NA <reserved-1A5F> +1A60..1A7C ; valid # 5.2 TAI THAM SIGN SAKOT..TAI THAM SIGN KHUEN-LUE KARAN +1A7D..1A7E ; disallowed # NA <reserved-1A7D>..<reserved-1A7E> +1A7F..1A89 ; valid # 5.2 TAI THAM COMBINING CRYPTOGRAMMIC DOT..TAI THAM HORA DIGIT NINE +1A8A..1A8F ; disallowed # NA <reserved-1A8A>..<reserved-1A8F> +1A90..1A99 ; valid # 5.2 TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE +1A9A..1A9F ; disallowed # NA <reserved-1A9A>..<reserved-1A9F> +1AA0..1AA6 ; valid ; ; NV8 # 5.2 TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA +1AA7 ; valid # 5.2 TAI THAM SIGN MAI YAMOK +1AA8..1AAD ; valid ; ; NV8 # 5.2 TAI THAM SIGN KAAN..TAI THAM SIGN CAANG +1AAE..1AAF ; disallowed # NA <reserved-1AAE>..<reserved-1AAF> +1AB0..1ABD ; valid # 7.0 COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW +1ABE ; valid ; ; NV8 # 7.0 COMBINING PARENTHESES OVERLAY +1ABF..1AC0 ; valid # 13.0 COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER TURNED W BELOW +1AC1..1ACE ; valid # 14.0 COMBINING LEFT PARENTHESIS ABOVE LEFT..COMBINING LATIN SMALL LETTER INSULAR T +1ACF..1AFF ; disallowed # NA <reserved-1ACF>..<reserved-1AFF> +1B00..1B4B ; valid # 5.0 BALINESE SIGN ULU RICEM..BALINESE LETTER ASYURA SASAK +1B4C ; valid # 14.0 BALINESE LETTER ARCHAIC JNYA +1B4D..1B4F ; disallowed # NA <reserved-1B4D>..<reserved-1B4F> +1B50..1B59 ; valid # 5.0 BALINESE DIGIT ZERO..BALINESE DIGIT NINE +1B5A..1B6A ; valid ; ; NV8 # 5.0 BALINESE PANTI..BALINESE MUSICAL SYMBOL DANG GEDE +1B6B..1B73 ; valid # 5.0 BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG +1B74..1B7C ; valid ; ; NV8 # 5.0 BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING +1B7D..1B7E ; valid ; ; NV8 # 14.0 BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG +1B7F ; disallowed # NA <reserved-1B7F> +1B80..1BAA ; valid # 5.1 SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PAMAAEH +1BAB..1BAD ; valid # 6.1 SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA +1BAE..1BB9 ; valid # 5.1 SUNDANESE LETTER KHA..SUNDANESE DIGIT NINE +1BBA..1BBF ; valid # 6.1 SUNDANESE AVAGRAHA..SUNDANESE LETTER FINAL M +1BC0..1BF3 ; valid # 6.0 BATAK LETTER A..BATAK PANONGONAN +1BF4..1BFB ; disallowed # NA <reserved-1BF4>..<reserved-1BFB> +1BFC..1BFF ; valid ; ; NV8 # 6.0 BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT +1C00..1C37 ; valid # 5.1 LEPCHA LETTER KA..LEPCHA SIGN NUKTA +1C38..1C3A ; disallowed # NA <reserved-1C38>..<reserved-1C3A> +1C3B..1C3F ; valid ; ; NV8 # 5.1 LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK +1C40..1C49 ; valid # 5.1 LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE +1C4A..1C4C ; disallowed # NA <reserved-1C4A>..<reserved-1C4C> +1C4D..1C7D ; valid # 5.1 LEPCHA LETTER TTA..OL CHIKI AHAD +1C7E..1C7F ; valid ; ; NV8 # 5.1 OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD +1C80 ; mapped ; 0432 # 9.0 CYRILLIC SMALL LETTER ROUNDED VE +1C81 ; mapped ; 0434 # 9.0 CYRILLIC SMALL LETTER LONG-LEGGED DE +1C82 ; mapped ; 043E # 9.0 CYRILLIC SMALL LETTER NARROW O +1C83 ; mapped ; 0441 # 9.0 CYRILLIC SMALL LETTER WIDE ES +1C84..1C85 ; mapped ; 0442 # 9.0 CYRILLIC SMALL LETTER TALL TE..CYRILLIC SMALL LETTER THREE-LEGGED TE +1C86 ; mapped ; 044A # 9.0 CYRILLIC SMALL LETTER TALL HARD SIGN +1C87 ; mapped ; 0463 # 9.0 CYRILLIC SMALL LETTER TALL YAT +1C88 ; mapped ; A64B # 9.0 CYRILLIC SMALL LETTER UNBLENDED UK +1C89..1C8F ; disallowed # NA <reserved-1C89>..<reserved-1C8F> +1C90 ; mapped ; 10D0 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER AN +1C91 ; mapped ; 10D1 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER BAN +1C92 ; mapped ; 10D2 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER GAN +1C93 ; mapped ; 10D3 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER DON +1C94 ; mapped ; 10D4 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER EN +1C95 ; mapped ; 10D5 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER VIN +1C96 ; mapped ; 10D6 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER ZEN +1C97 ; mapped ; 10D7 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER TAN +1C98 ; mapped ; 10D8 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER IN +1C99 ; mapped ; 10D9 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER KAN +1C9A ; mapped ; 10DA # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER LAS +1C9B ; mapped ; 10DB # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER MAN +1C9C ; mapped ; 10DC # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER NAR +1C9D ; mapped ; 10DD # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER ON +1C9E ; mapped ; 10DE # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER PAR +1C9F ; mapped ; 10DF # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER ZHAR +1CA0 ; mapped ; 10E0 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER RAE +1CA1 ; mapped ; 10E1 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER SAN +1CA2 ; mapped ; 10E2 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER TAR +1CA3 ; mapped ; 10E3 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER UN +1CA4 ; mapped ; 10E4 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER PHAR +1CA5 ; mapped ; 10E5 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER KHAR +1CA6 ; mapped ; 10E6 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER GHAN +1CA7 ; mapped ; 10E7 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER QAR +1CA8 ; mapped ; 10E8 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER SHIN +1CA9 ; mapped ; 10E9 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER CHIN +1CAA ; mapped ; 10EA # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER CAN +1CAB ; mapped ; 10EB # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER JIL +1CAC ; mapped ; 10EC # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER CIL +1CAD ; mapped ; 10ED # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER CHAR +1CAE ; mapped ; 10EE # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER XAN +1CAF ; mapped ; 10EF # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER JHAN +1CB0 ; mapped ; 10F0 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER HAE +1CB1 ; mapped ; 10F1 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER HE +1CB2 ; mapped ; 10F2 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER HIE +1CB3 ; mapped ; 10F3 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER WE +1CB4 ; mapped ; 10F4 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER HAR +1CB5 ; mapped ; 10F5 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER HOE +1CB6 ; mapped ; 10F6 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER FI +1CB7 ; mapped ; 10F7 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER YN +1CB8 ; mapped ; 10F8 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER ELIFI +1CB9 ; mapped ; 10F9 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER TURNED GAN +1CBA ; mapped ; 10FA # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER AIN +1CBB..1CBC ; disallowed # NA <reserved-1CBB>..<reserved-1CBC> +1CBD ; mapped ; 10FD # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER AEN +1CBE ; mapped ; 10FE # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER HARD SIGN +1CBF ; mapped ; 10FF # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN +1CC0..1CC7 ; valid ; ; NV8 # 6.1 SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA +1CC8..1CCF ; disallowed # NA <reserved-1CC8>..<reserved-1CCF> +1CD0..1CD2 ; valid # 5.2 VEDIC TONE KARSHANA..VEDIC TONE PRENKHA +1CD3 ; valid ; ; NV8 # 5.2 VEDIC SIGN NIHSHVASA +1CD4..1CF2 ; valid # 5.2 VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC SIGN ARDHAVISARGA +1CF3..1CF6 ; valid # 6.1 VEDIC SIGN ROTATED ARDHAVISARGA..VEDIC SIGN UPADHMANIYA +1CF7 ; valid # 10.0 VEDIC SIGN ATIKRAMA +1CF8..1CF9 ; valid # 7.0 VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE +1CFA ; valid # 12.0 VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA +1CFB..1CFF ; disallowed # NA <reserved-1CFB>..<reserved-1CFF> +1D00..1D2B ; valid # 4.0 LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL +1D2C ; mapped ; 0061 # 4.0 MODIFIER LETTER CAPITAL A +1D2D ; mapped ; 00E6 # 4.0 MODIFIER LETTER CAPITAL AE +1D2E ; mapped ; 0062 # 4.0 MODIFIER LETTER CAPITAL B +1D2F ; valid # 4.0 MODIFIER LETTER CAPITAL BARRED B +1D30 ; mapped ; 0064 # 4.0 MODIFIER LETTER CAPITAL D +1D31 ; mapped ; 0065 # 4.0 MODIFIER LETTER CAPITAL E +1D32 ; mapped ; 01DD # 4.0 MODIFIER LETTER CAPITAL REVERSED E +1D33 ; mapped ; 0067 # 4.0 MODIFIER LETTER CAPITAL G +1D34 ; mapped ; 0068 # 4.0 MODIFIER LETTER CAPITAL H +1D35 ; mapped ; 0069 # 4.0 MODIFIER LETTER CAPITAL I +1D36 ; mapped ; 006A # 4.0 MODIFIER LETTER CAPITAL J +1D37 ; mapped ; 006B # 4.0 MODIFIER LETTER CAPITAL K +1D38 ; mapped ; 006C # 4.0 MODIFIER LETTER CAPITAL L +1D39 ; mapped ; 006D # 4.0 MODIFIER LETTER CAPITAL M +1D3A ; mapped ; 006E # 4.0 MODIFIER LETTER CAPITAL N +1D3B ; valid # 4.0 MODIFIER LETTER CAPITAL REVERSED N +1D3C ; mapped ; 006F # 4.0 MODIFIER LETTER CAPITAL O +1D3D ; mapped ; 0223 # 4.0 MODIFIER LETTER CAPITAL OU +1D3E ; mapped ; 0070 # 4.0 MODIFIER LETTER CAPITAL P +1D3F ; mapped ; 0072 # 4.0 MODIFIER LETTER CAPITAL R +1D40 ; mapped ; 0074 # 4.0 MODIFIER LETTER CAPITAL T +1D41 ; mapped ; 0075 # 4.0 MODIFIER LETTER CAPITAL U +1D42 ; mapped ; 0077 # 4.0 MODIFIER LETTER CAPITAL W +1D43 ; mapped ; 0061 # 4.0 MODIFIER LETTER SMALL A +1D44 ; mapped ; 0250 # 4.0 MODIFIER LETTER SMALL TURNED A +1D45 ; mapped ; 0251 # 4.0 MODIFIER LETTER SMALL ALPHA +1D46 ; mapped ; 1D02 # 4.0 MODIFIER LETTER SMALL TURNED AE +1D47 ; mapped ; 0062 # 4.0 MODIFIER LETTER SMALL B +1D48 ; mapped ; 0064 # 4.0 MODIFIER LETTER SMALL D +1D49 ; mapped ; 0065 # 4.0 MODIFIER LETTER SMALL E +1D4A ; mapped ; 0259 # 4.0 MODIFIER LETTER SMALL SCHWA +1D4B ; mapped ; 025B # 4.0 MODIFIER LETTER SMALL OPEN E +1D4C ; mapped ; 025C # 4.0 MODIFIER LETTER SMALL TURNED OPEN E +1D4D ; mapped ; 0067 # 4.0 MODIFIER LETTER SMALL G +1D4E ; valid # 4.0 MODIFIER LETTER SMALL TURNED I +1D4F ; mapped ; 006B # 4.0 MODIFIER LETTER SMALL K +1D50 ; mapped ; 006D # 4.0 MODIFIER LETTER SMALL M +1D51 ; mapped ; 014B # 4.0 MODIFIER LETTER SMALL ENG +1D52 ; mapped ; 006F # 4.0 MODIFIER LETTER SMALL O +1D53 ; mapped ; 0254 # 4.0 MODIFIER LETTER SMALL OPEN O +1D54 ; mapped ; 1D16 # 4.0 MODIFIER LETTER SMALL TOP HALF O +1D55 ; mapped ; 1D17 # 4.0 MODIFIER LETTER SMALL BOTTOM HALF O +1D56 ; mapped ; 0070 # 4.0 MODIFIER LETTER SMALL P +1D57 ; mapped ; 0074 # 4.0 MODIFIER LETTER SMALL T +1D58 ; mapped ; 0075 # 4.0 MODIFIER LETTER SMALL U +1D59 ; mapped ; 1D1D # 4.0 MODIFIER LETTER SMALL SIDEWAYS U +1D5A ; mapped ; 026F # 4.0 MODIFIER LETTER SMALL TURNED M +1D5B ; mapped ; 0076 # 4.0 MODIFIER LETTER SMALL V +1D5C ; mapped ; 1D25 # 4.0 MODIFIER LETTER SMALL AIN +1D5D ; mapped ; 03B2 # 4.0 MODIFIER LETTER SMALL BETA +1D5E ; mapped ; 03B3 # 4.0 MODIFIER LETTER SMALL GREEK GAMMA +1D5F ; mapped ; 03B4 # 4.0 MODIFIER LETTER SMALL DELTA +1D60 ; mapped ; 03C6 # 4.0 MODIFIER LETTER SMALL GREEK PHI +1D61 ; mapped ; 03C7 # 4.0 MODIFIER LETTER SMALL CHI +1D62 ; mapped ; 0069 # 4.0 LATIN SUBSCRIPT SMALL LETTER I +1D63 ; mapped ; 0072 # 4.0 LATIN SUBSCRIPT SMALL LETTER R +1D64 ; mapped ; 0075 # 4.0 LATIN SUBSCRIPT SMALL LETTER U +1D65 ; mapped ; 0076 # 4.0 LATIN SUBSCRIPT SMALL LETTER V +1D66 ; mapped ; 03B2 # 4.0 GREEK SUBSCRIPT SMALL LETTER BETA +1D67 ; mapped ; 03B3 # 4.0 GREEK SUBSCRIPT SMALL LETTER GAMMA +1D68 ; mapped ; 03C1 # 4.0 GREEK SUBSCRIPT SMALL LETTER RHO +1D69 ; mapped ; 03C6 # 4.0 GREEK SUBSCRIPT SMALL LETTER PHI +1D6A ; mapped ; 03C7 # 4.0 GREEK SUBSCRIPT SMALL LETTER CHI +1D6B ; valid # 4.0 LATIN SMALL LETTER UE +1D6C..1D77 ; valid # 4.1 LATIN SMALL LETTER B WITH MIDDLE TILDE..LATIN SMALL LETTER TURNED G +1D78 ; mapped ; 043D # 4.1 MODIFIER LETTER CYRILLIC EN +1D79..1D9A ; valid # 4.1 LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK +1D9B ; mapped ; 0252 # 4.1 MODIFIER LETTER SMALL TURNED ALPHA +1D9C ; mapped ; 0063 # 4.1 MODIFIER LETTER SMALL C +1D9D ; mapped ; 0255 # 4.1 MODIFIER LETTER SMALL C WITH CURL +1D9E ; mapped ; 00F0 # 4.1 MODIFIER LETTER SMALL ETH +1D9F ; mapped ; 025C # 4.1 MODIFIER LETTER SMALL REVERSED OPEN E +1DA0 ; mapped ; 0066 # 4.1 MODIFIER LETTER SMALL F +1DA1 ; mapped ; 025F # 4.1 MODIFIER LETTER SMALL DOTLESS J WITH STROKE +1DA2 ; mapped ; 0261 # 4.1 MODIFIER LETTER SMALL SCRIPT G +1DA3 ; mapped ; 0265 # 4.1 MODIFIER LETTER SMALL TURNED H +1DA4 ; mapped ; 0268 # 4.1 MODIFIER LETTER SMALL I WITH STROKE +1DA5 ; mapped ; 0269 # 4.1 MODIFIER LETTER SMALL IOTA +1DA6 ; mapped ; 026A # 4.1 MODIFIER LETTER SMALL CAPITAL I +1DA7 ; mapped ; 1D7B # 4.1 MODIFIER LETTER SMALL CAPITAL I WITH STROKE +1DA8 ; mapped ; 029D # 4.1 MODIFIER LETTER SMALL J WITH CROSSED-TAIL +1DA9 ; mapped ; 026D # 4.1 MODIFIER LETTER SMALL L WITH RETROFLEX HOOK +1DAA ; mapped ; 1D85 # 4.1 MODIFIER LETTER SMALL L WITH PALATAL HOOK +1DAB ; mapped ; 029F # 4.1 MODIFIER LETTER SMALL CAPITAL L +1DAC ; mapped ; 0271 # 4.1 MODIFIER LETTER SMALL M WITH HOOK +1DAD ; mapped ; 0270 # 4.1 MODIFIER LETTER SMALL TURNED M WITH LONG LEG +1DAE ; mapped ; 0272 # 4.1 MODIFIER LETTER SMALL N WITH LEFT HOOK +1DAF ; mapped ; 0273 # 4.1 MODIFIER LETTER SMALL N WITH RETROFLEX HOOK +1DB0 ; mapped ; 0274 # 4.1 MODIFIER LETTER SMALL CAPITAL N +1DB1 ; mapped ; 0275 # 4.1 MODIFIER LETTER SMALL BARRED O +1DB2 ; mapped ; 0278 # 4.1 MODIFIER LETTER SMALL PHI +1DB3 ; mapped ; 0282 # 4.1 MODIFIER LETTER SMALL S WITH HOOK +1DB4 ; mapped ; 0283 # 4.1 MODIFIER LETTER SMALL ESH +1DB5 ; mapped ; 01AB # 4.1 MODIFIER LETTER SMALL T WITH PALATAL HOOK +1DB6 ; mapped ; 0289 # 4.1 MODIFIER LETTER SMALL U BAR +1DB7 ; mapped ; 028A # 4.1 MODIFIER LETTER SMALL UPSILON +1DB8 ; mapped ; 1D1C # 4.1 MODIFIER LETTER SMALL CAPITAL U +1DB9 ; mapped ; 028B # 4.1 MODIFIER LETTER SMALL V WITH HOOK +1DBA ; mapped ; 028C # 4.1 MODIFIER LETTER SMALL TURNED V +1DBB ; mapped ; 007A # 4.1 MODIFIER LETTER SMALL Z +1DBC ; mapped ; 0290 # 4.1 MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK +1DBD ; mapped ; 0291 # 4.1 MODIFIER LETTER SMALL Z WITH CURL +1DBE ; mapped ; 0292 # 4.1 MODIFIER LETTER SMALL EZH +1DBF ; mapped ; 03B8 # 4.1 MODIFIER LETTER SMALL THETA +1DC0..1DC3 ; valid # 4.1 COMBINING DOTTED GRAVE ACCENT..COMBINING SUSPENSION MARK +1DC4..1DCA ; valid # 5.0 COMBINING MACRON-ACUTE..COMBINING LATIN SMALL LETTER R BELOW +1DCB..1DE6 ; valid # 5.1 COMBINING BREVE-MACRON..COMBINING LATIN SMALL LETTER Z +1DE7..1DF5 ; valid # 7.0 COMBINING LATIN SMALL LETTER ALPHA..COMBINING UP TACK ABOVE +1DF6..1DF9 ; valid # 10.0 COMBINING KAVYKA ABOVE RIGHT..COMBINING WIDE INVERTED BRIDGE BELOW +1DFA ; valid # 14.0 COMBINING DOT BELOW LEFT +1DFB ; valid # 9.0 COMBINING DELETION MARK +1DFC ; valid # 6.0 COMBINING DOUBLE INVERTED BREVE BELOW +1DFD ; valid # 5.2 COMBINING ALMOST EQUAL TO BELOW +1DFE..1DFF ; valid # 5.0 COMBINING LEFT ARROWHEAD ABOVE..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW +1E00 ; mapped ; 1E01 # 1.1 LATIN CAPITAL LETTER A WITH RING BELOW +1E01 ; valid # 1.1 LATIN SMALL LETTER A WITH RING BELOW +1E02 ; mapped ; 1E03 # 1.1 LATIN CAPITAL LETTER B WITH DOT ABOVE +1E03 ; valid # 1.1 LATIN SMALL LETTER B WITH DOT ABOVE +1E04 ; mapped ; 1E05 # 1.1 LATIN CAPITAL LETTER B WITH DOT BELOW +1E05 ; valid # 1.1 LATIN SMALL LETTER B WITH DOT BELOW +1E06 ; mapped ; 1E07 # 1.1 LATIN CAPITAL LETTER B WITH LINE BELOW +1E07 ; valid # 1.1 LATIN SMALL LETTER B WITH LINE BELOW +1E08 ; mapped ; 1E09 # 1.1 LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE +1E09 ; valid # 1.1 LATIN SMALL LETTER C WITH CEDILLA AND ACUTE +1E0A ; mapped ; 1E0B # 1.1 LATIN CAPITAL LETTER D WITH DOT ABOVE +1E0B ; valid # 1.1 LATIN SMALL LETTER D WITH DOT ABOVE +1E0C ; mapped ; 1E0D # 1.1 LATIN CAPITAL LETTER D WITH DOT BELOW +1E0D ; valid # 1.1 LATIN SMALL LETTER D WITH DOT BELOW +1E0E ; mapped ; 1E0F # 1.1 LATIN CAPITAL LETTER D WITH LINE BELOW +1E0F ; valid # 1.1 LATIN SMALL LETTER D WITH LINE BELOW +1E10 ; mapped ; 1E11 # 1.1 LATIN CAPITAL LETTER D WITH CEDILLA +1E11 ; valid # 1.1 LATIN SMALL LETTER D WITH CEDILLA +1E12 ; mapped ; 1E13 # 1.1 LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW +1E13 ; valid # 1.1 LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW +1E14 ; mapped ; 1E15 # 1.1 LATIN CAPITAL LETTER E WITH MACRON AND GRAVE +1E15 ; valid # 1.1 LATIN SMALL LETTER E WITH MACRON AND GRAVE +1E16 ; mapped ; 1E17 # 1.1 LATIN CAPITAL LETTER E WITH MACRON AND ACUTE +1E17 ; valid # 1.1 LATIN SMALL LETTER E WITH MACRON AND ACUTE +1E18 ; mapped ; 1E19 # 1.1 LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW +1E19 ; valid # 1.1 LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW +1E1A ; mapped ; 1E1B # 1.1 LATIN CAPITAL LETTER E WITH TILDE BELOW +1E1B ; valid # 1.1 LATIN SMALL LETTER E WITH TILDE BELOW +1E1C ; mapped ; 1E1D # 1.1 LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE +1E1D ; valid # 1.1 LATIN SMALL LETTER E WITH CEDILLA AND BREVE +1E1E ; mapped ; 1E1F # 1.1 LATIN CAPITAL LETTER F WITH DOT ABOVE +1E1F ; valid # 1.1 LATIN SMALL LETTER F WITH DOT ABOVE +1E20 ; mapped ; 1E21 # 1.1 LATIN CAPITAL LETTER G WITH MACRON +1E21 ; valid # 1.1 LATIN SMALL LETTER G WITH MACRON +1E22 ; mapped ; 1E23 # 1.1 LATIN CAPITAL LETTER H WITH DOT ABOVE +1E23 ; valid # 1.1 LATIN SMALL LETTER H WITH DOT ABOVE +1E24 ; mapped ; 1E25 # 1.1 LATIN CAPITAL LETTER H WITH DOT BELOW +1E25 ; valid # 1.1 LATIN SMALL LETTER H WITH DOT BELOW +1E26 ; mapped ; 1E27 # 1.1 LATIN CAPITAL LETTER H WITH DIAERESIS +1E27 ; valid # 1.1 LATIN SMALL LETTER H WITH DIAERESIS +1E28 ; mapped ; 1E29 # 1.1 LATIN CAPITAL LETTER H WITH CEDILLA +1E29 ; valid # 1.1 LATIN SMALL LETTER H WITH CEDILLA +1E2A ; mapped ; 1E2B # 1.1 LATIN CAPITAL LETTER H WITH BREVE BELOW +1E2B ; valid # 1.1 LATIN SMALL LETTER H WITH BREVE BELOW +1E2C ; mapped ; 1E2D # 1.1 LATIN CAPITAL LETTER I WITH TILDE BELOW +1E2D ; valid # 1.1 LATIN SMALL LETTER I WITH TILDE BELOW +1E2E ; mapped ; 1E2F # 1.1 LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE +1E2F ; valid # 1.1 LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE +1E30 ; mapped ; 1E31 # 1.1 LATIN CAPITAL LETTER K WITH ACUTE +1E31 ; valid # 1.1 LATIN SMALL LETTER K WITH ACUTE +1E32 ; mapped ; 1E33 # 1.1 LATIN CAPITAL LETTER K WITH DOT BELOW +1E33 ; valid # 1.1 LATIN SMALL LETTER K WITH DOT BELOW +1E34 ; mapped ; 1E35 # 1.1 LATIN CAPITAL LETTER K WITH LINE BELOW +1E35 ; valid # 1.1 LATIN SMALL LETTER K WITH LINE BELOW +1E36 ; mapped ; 1E37 # 1.1 LATIN CAPITAL LETTER L WITH DOT BELOW +1E37 ; valid # 1.1 LATIN SMALL LETTER L WITH DOT BELOW +1E38 ; mapped ; 1E39 # 1.1 LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON +1E39 ; valid # 1.1 LATIN SMALL LETTER L WITH DOT BELOW AND MACRON +1E3A ; mapped ; 1E3B # 1.1 LATIN CAPITAL LETTER L WITH LINE BELOW +1E3B ; valid # 1.1 LATIN SMALL LETTER L WITH LINE BELOW +1E3C ; mapped ; 1E3D # 1.1 LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW +1E3D ; valid # 1.1 LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW +1E3E ; mapped ; 1E3F # 1.1 LATIN CAPITAL LETTER M WITH ACUTE +1E3F ; valid # 1.1 LATIN SMALL LETTER M WITH ACUTE +1E40 ; mapped ; 1E41 # 1.1 LATIN CAPITAL LETTER M WITH DOT ABOVE +1E41 ; valid # 1.1 LATIN SMALL LETTER M WITH DOT ABOVE +1E42 ; mapped ; 1E43 # 1.1 LATIN CAPITAL LETTER M WITH DOT BELOW +1E43 ; valid # 1.1 LATIN SMALL LETTER M WITH DOT BELOW +1E44 ; mapped ; 1E45 # 1.1 LATIN CAPITAL LETTER N WITH DOT ABOVE +1E45 ; valid # 1.1 LATIN SMALL LETTER N WITH DOT ABOVE +1E46 ; mapped ; 1E47 # 1.1 LATIN CAPITAL LETTER N WITH DOT BELOW +1E47 ; valid # 1.1 LATIN SMALL LETTER N WITH DOT BELOW +1E48 ; mapped ; 1E49 # 1.1 LATIN CAPITAL LETTER N WITH LINE BELOW +1E49 ; valid # 1.1 LATIN SMALL LETTER N WITH LINE BELOW +1E4A ; mapped ; 1E4B # 1.1 LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW +1E4B ; valid # 1.1 LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW +1E4C ; mapped ; 1E4D # 1.1 LATIN CAPITAL LETTER O WITH TILDE AND ACUTE +1E4D ; valid # 1.1 LATIN SMALL LETTER O WITH TILDE AND ACUTE +1E4E ; mapped ; 1E4F # 1.1 LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS +1E4F ; valid # 1.1 LATIN SMALL LETTER O WITH TILDE AND DIAERESIS +1E50 ; mapped ; 1E51 # 1.1 LATIN CAPITAL LETTER O WITH MACRON AND GRAVE +1E51 ; valid # 1.1 LATIN SMALL LETTER O WITH MACRON AND GRAVE +1E52 ; mapped ; 1E53 # 1.1 LATIN CAPITAL LETTER O WITH MACRON AND ACUTE +1E53 ; valid # 1.1 LATIN SMALL LETTER O WITH MACRON AND ACUTE +1E54 ; mapped ; 1E55 # 1.1 LATIN CAPITAL LETTER P WITH ACUTE +1E55 ; valid # 1.1 LATIN SMALL LETTER P WITH ACUTE +1E56 ; mapped ; 1E57 # 1.1 LATIN CAPITAL LETTER P WITH DOT ABOVE +1E57 ; valid # 1.1 LATIN SMALL LETTER P WITH DOT ABOVE +1E58 ; mapped ; 1E59 # 1.1 LATIN CAPITAL LETTER R WITH DOT ABOVE +1E59 ; valid # 1.1 LATIN SMALL LETTER R WITH DOT ABOVE +1E5A ; mapped ; 1E5B # 1.1 LATIN CAPITAL LETTER R WITH DOT BELOW +1E5B ; valid # 1.1 LATIN SMALL LETTER R WITH DOT BELOW +1E5C ; mapped ; 1E5D # 1.1 LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON +1E5D ; valid # 1.1 LATIN SMALL LETTER R WITH DOT BELOW AND MACRON +1E5E ; mapped ; 1E5F # 1.1 LATIN CAPITAL LETTER R WITH LINE BELOW +1E5F ; valid # 1.1 LATIN SMALL LETTER R WITH LINE BELOW +1E60 ; mapped ; 1E61 # 1.1 LATIN CAPITAL LETTER S WITH DOT ABOVE +1E61 ; valid # 1.1 LATIN SMALL LETTER S WITH DOT ABOVE +1E62 ; mapped ; 1E63 # 1.1 LATIN CAPITAL LETTER S WITH DOT BELOW +1E63 ; valid # 1.1 LATIN SMALL LETTER S WITH DOT BELOW +1E64 ; mapped ; 1E65 # 1.1 LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE +1E65 ; valid # 1.1 LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE +1E66 ; mapped ; 1E67 # 1.1 LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE +1E67 ; valid # 1.1 LATIN SMALL LETTER S WITH CARON AND DOT ABOVE +1E68 ; mapped ; 1E69 # 1.1 LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE +1E69 ; valid # 1.1 LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE +1E6A ; mapped ; 1E6B # 1.1 LATIN CAPITAL LETTER T WITH DOT ABOVE +1E6B ; valid # 1.1 LATIN SMALL LETTER T WITH DOT ABOVE +1E6C ; mapped ; 1E6D # 1.1 LATIN CAPITAL LETTER T WITH DOT BELOW +1E6D ; valid # 1.1 LATIN SMALL LETTER T WITH DOT BELOW +1E6E ; mapped ; 1E6F # 1.1 LATIN CAPITAL LETTER T WITH LINE BELOW +1E6F ; valid # 1.1 LATIN SMALL LETTER T WITH LINE BELOW +1E70 ; mapped ; 1E71 # 1.1 LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW +1E71 ; valid # 1.1 LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW +1E72 ; mapped ; 1E73 # 1.1 LATIN CAPITAL LETTER U WITH DIAERESIS BELOW +1E73 ; valid # 1.1 LATIN SMALL LETTER U WITH DIAERESIS BELOW +1E74 ; mapped ; 1E75 # 1.1 LATIN CAPITAL LETTER U WITH TILDE BELOW +1E75 ; valid # 1.1 LATIN SMALL LETTER U WITH TILDE BELOW +1E76 ; mapped ; 1E77 # 1.1 LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW +1E77 ; valid # 1.1 LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW +1E78 ; mapped ; 1E79 # 1.1 LATIN CAPITAL LETTER U WITH TILDE AND ACUTE +1E79 ; valid # 1.1 LATIN SMALL LETTER U WITH TILDE AND ACUTE +1E7A ; mapped ; 1E7B # 1.1 LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS +1E7B ; valid # 1.1 LATIN SMALL LETTER U WITH MACRON AND DIAERESIS +1E7C ; mapped ; 1E7D # 1.1 LATIN CAPITAL LETTER V WITH TILDE +1E7D ; valid # 1.1 LATIN SMALL LETTER V WITH TILDE +1E7E ; mapped ; 1E7F # 1.1 LATIN CAPITAL LETTER V WITH DOT BELOW +1E7F ; valid # 1.1 LATIN SMALL LETTER V WITH DOT BELOW +1E80 ; mapped ; 1E81 # 1.1 LATIN CAPITAL LETTER W WITH GRAVE +1E81 ; valid # 1.1 LATIN SMALL LETTER W WITH GRAVE +1E82 ; mapped ; 1E83 # 1.1 LATIN CAPITAL LETTER W WITH ACUTE +1E83 ; valid # 1.1 LATIN SMALL LETTER W WITH ACUTE +1E84 ; mapped ; 1E85 # 1.1 LATIN CAPITAL LETTER W WITH DIAERESIS +1E85 ; valid # 1.1 LATIN SMALL LETTER W WITH DIAERESIS +1E86 ; mapped ; 1E87 # 1.1 LATIN CAPITAL LETTER W WITH DOT ABOVE +1E87 ; valid # 1.1 LATIN SMALL LETTER W WITH DOT ABOVE +1E88 ; mapped ; 1E89 # 1.1 LATIN CAPITAL LETTER W WITH DOT BELOW +1E89 ; valid # 1.1 LATIN SMALL LETTER W WITH DOT BELOW +1E8A ; mapped ; 1E8B # 1.1 LATIN CAPITAL LETTER X WITH DOT ABOVE +1E8B ; valid # 1.1 LATIN SMALL LETTER X WITH DOT ABOVE +1E8C ; mapped ; 1E8D # 1.1 LATIN CAPITAL LETTER X WITH DIAERESIS +1E8D ; valid # 1.1 LATIN SMALL LETTER X WITH DIAERESIS +1E8E ; mapped ; 1E8F # 1.1 LATIN CAPITAL LETTER Y WITH DOT ABOVE +1E8F ; valid # 1.1 LATIN SMALL LETTER Y WITH DOT ABOVE +1E90 ; mapped ; 1E91 # 1.1 LATIN CAPITAL LETTER Z WITH CIRCUMFLEX +1E91 ; valid # 1.1 LATIN SMALL LETTER Z WITH CIRCUMFLEX +1E92 ; mapped ; 1E93 # 1.1 LATIN CAPITAL LETTER Z WITH DOT BELOW +1E93 ; valid # 1.1 LATIN SMALL LETTER Z WITH DOT BELOW +1E94 ; mapped ; 1E95 # 1.1 LATIN CAPITAL LETTER Z WITH LINE BELOW +1E95..1E99 ; valid # 1.1 LATIN SMALL LETTER Z WITH LINE BELOW..LATIN SMALL LETTER Y WITH RING ABOVE +1E9A ; mapped ; 0061 02BE # 1.1 LATIN SMALL LETTER A WITH RIGHT HALF RING +1E9B ; mapped ; 1E61 # 2.0 LATIN SMALL LETTER LONG S WITH DOT ABOVE +1E9C..1E9D ; valid # 5.1 LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE..LATIN SMALL LETTER LONG S WITH HIGH STROKE +1E9E ; mapped ; 0073 0073 # 5.1 LATIN CAPITAL LETTER SHARP S +1E9F ; valid # 5.1 LATIN SMALL LETTER DELTA +1EA0 ; mapped ; 1EA1 # 1.1 LATIN CAPITAL LETTER A WITH DOT BELOW +1EA1 ; valid # 1.1 LATIN SMALL LETTER A WITH DOT BELOW +1EA2 ; mapped ; 1EA3 # 1.1 LATIN CAPITAL LETTER A WITH HOOK ABOVE +1EA3 ; valid # 1.1 LATIN SMALL LETTER A WITH HOOK ABOVE +1EA4 ; mapped ; 1EA5 # 1.1 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE +1EA5 ; valid # 1.1 LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE +1EA6 ; mapped ; 1EA7 # 1.1 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE +1EA7 ; valid # 1.1 LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE +1EA8 ; mapped ; 1EA9 # 1.1 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE +1EA9 ; valid # 1.1 LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE +1EAA ; mapped ; 1EAB # 1.1 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE +1EAB ; valid # 1.1 LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE +1EAC ; mapped ; 1EAD # 1.1 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW +1EAD ; valid # 1.1 LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW +1EAE ; mapped ; 1EAF # 1.1 LATIN CAPITAL LETTER A WITH BREVE AND ACUTE +1EAF ; valid # 1.1 LATIN SMALL LETTER A WITH BREVE AND ACUTE +1EB0 ; mapped ; 1EB1 # 1.1 LATIN CAPITAL LETTER A WITH BREVE AND GRAVE +1EB1 ; valid # 1.1 LATIN SMALL LETTER A WITH BREVE AND GRAVE +1EB2 ; mapped ; 1EB3 # 1.1 LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE +1EB3 ; valid # 1.1 LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE +1EB4 ; mapped ; 1EB5 # 1.1 LATIN CAPITAL LETTER A WITH BREVE AND TILDE +1EB5 ; valid # 1.1 LATIN SMALL LETTER A WITH BREVE AND TILDE +1EB6 ; mapped ; 1EB7 # 1.1 LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW +1EB7 ; valid # 1.1 LATIN SMALL LETTER A WITH BREVE AND DOT BELOW +1EB8 ; mapped ; 1EB9 # 1.1 LATIN CAPITAL LETTER E WITH DOT BELOW +1EB9 ; valid # 1.1 LATIN SMALL LETTER E WITH DOT BELOW +1EBA ; mapped ; 1EBB # 1.1 LATIN CAPITAL LETTER E WITH HOOK ABOVE +1EBB ; valid # 1.1 LATIN SMALL LETTER E WITH HOOK ABOVE +1EBC ; mapped ; 1EBD # 1.1 LATIN CAPITAL LETTER E WITH TILDE +1EBD ; valid # 1.1 LATIN SMALL LETTER E WITH TILDE +1EBE ; mapped ; 1EBF # 1.1 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE +1EBF ; valid # 1.1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE +1EC0 ; mapped ; 1EC1 # 1.1 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE +1EC1 ; valid # 1.1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE +1EC2 ; mapped ; 1EC3 # 1.1 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE +1EC3 ; valid # 1.1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE +1EC4 ; mapped ; 1EC5 # 1.1 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE +1EC5 ; valid # 1.1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE +1EC6 ; mapped ; 1EC7 # 1.1 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW +1EC7 ; valid # 1.1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW +1EC8 ; mapped ; 1EC9 # 1.1 LATIN CAPITAL LETTER I WITH HOOK ABOVE +1EC9 ; valid # 1.1 LATIN SMALL LETTER I WITH HOOK ABOVE +1ECA ; mapped ; 1ECB # 1.1 LATIN CAPITAL LETTER I WITH DOT BELOW +1ECB ; valid # 1.1 LATIN SMALL LETTER I WITH DOT BELOW +1ECC ; mapped ; 1ECD # 1.1 LATIN CAPITAL LETTER O WITH DOT BELOW +1ECD ; valid # 1.1 LATIN SMALL LETTER O WITH DOT BELOW +1ECE ; mapped ; 1ECF # 1.1 LATIN CAPITAL LETTER O WITH HOOK ABOVE +1ECF ; valid # 1.1 LATIN SMALL LETTER O WITH HOOK ABOVE +1ED0 ; mapped ; 1ED1 # 1.1 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED1 ; valid # 1.1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED2 ; mapped ; 1ED3 # 1.1 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED3 ; valid # 1.1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED4 ; mapped ; 1ED5 # 1.1 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED5 ; valid # 1.1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED6 ; mapped ; 1ED7 # 1.1 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE +1ED7 ; valid # 1.1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE +1ED8 ; mapped ; 1ED9 # 1.1 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW +1ED9 ; valid # 1.1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW +1EDA ; mapped ; 1EDB # 1.1 LATIN CAPITAL LETTER O WITH HORN AND ACUTE +1EDB ; valid # 1.1 LATIN SMALL LETTER O WITH HORN AND ACUTE +1EDC ; mapped ; 1EDD # 1.1 LATIN CAPITAL LETTER O WITH HORN AND GRAVE +1EDD ; valid # 1.1 LATIN SMALL LETTER O WITH HORN AND GRAVE +1EDE ; mapped ; 1EDF # 1.1 LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE +1EDF ; valid # 1.1 LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE +1EE0 ; mapped ; 1EE1 # 1.1 LATIN CAPITAL LETTER O WITH HORN AND TILDE +1EE1 ; valid # 1.1 LATIN SMALL LETTER O WITH HORN AND TILDE +1EE2 ; mapped ; 1EE3 # 1.1 LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW +1EE3 ; valid # 1.1 LATIN SMALL LETTER O WITH HORN AND DOT BELOW +1EE4 ; mapped ; 1EE5 # 1.1 LATIN CAPITAL LETTER U WITH DOT BELOW +1EE5 ; valid # 1.1 LATIN SMALL LETTER U WITH DOT BELOW +1EE6 ; mapped ; 1EE7 # 1.1 LATIN CAPITAL LETTER U WITH HOOK ABOVE +1EE7 ; valid # 1.1 LATIN SMALL LETTER U WITH HOOK ABOVE +1EE8 ; mapped ; 1EE9 # 1.1 LATIN CAPITAL LETTER U WITH HORN AND ACUTE +1EE9 ; valid # 1.1 LATIN SMALL LETTER U WITH HORN AND ACUTE +1EEA ; mapped ; 1EEB # 1.1 LATIN CAPITAL LETTER U WITH HORN AND GRAVE +1EEB ; valid # 1.1 LATIN SMALL LETTER U WITH HORN AND GRAVE +1EEC ; mapped ; 1EED # 1.1 LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE +1EED ; valid # 1.1 LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE +1EEE ; mapped ; 1EEF # 1.1 LATIN CAPITAL LETTER U WITH HORN AND TILDE +1EEF ; valid # 1.1 LATIN SMALL LETTER U WITH HORN AND TILDE +1EF0 ; mapped ; 1EF1 # 1.1 LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW +1EF1 ; valid # 1.1 LATIN SMALL LETTER U WITH HORN AND DOT BELOW +1EF2 ; mapped ; 1EF3 # 1.1 LATIN CAPITAL LETTER Y WITH GRAVE +1EF3 ; valid # 1.1 LATIN SMALL LETTER Y WITH GRAVE +1EF4 ; mapped ; 1EF5 # 1.1 LATIN CAPITAL LETTER Y WITH DOT BELOW +1EF5 ; valid # 1.1 LATIN SMALL LETTER Y WITH DOT BELOW +1EF6 ; mapped ; 1EF7 # 1.1 LATIN CAPITAL LETTER Y WITH HOOK ABOVE +1EF7 ; valid # 1.1 LATIN SMALL LETTER Y WITH HOOK ABOVE +1EF8 ; mapped ; 1EF9 # 1.1 LATIN CAPITAL LETTER Y WITH TILDE +1EF9 ; valid # 1.1 LATIN SMALL LETTER Y WITH TILDE +1EFA ; mapped ; 1EFB # 5.1 LATIN CAPITAL LETTER MIDDLE-WELSH LL +1EFB ; valid # 5.1 LATIN SMALL LETTER MIDDLE-WELSH LL +1EFC ; mapped ; 1EFD # 5.1 LATIN CAPITAL LETTER MIDDLE-WELSH V +1EFD ; valid # 5.1 LATIN SMALL LETTER MIDDLE-WELSH V +1EFE ; mapped ; 1EFF # 5.1 LATIN CAPITAL LETTER Y WITH LOOP +1EFF ; valid # 5.1 LATIN SMALL LETTER Y WITH LOOP +1F00..1F07 ; valid # 1.1 GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI +1F08 ; mapped ; 1F00 # 1.1 GREEK CAPITAL LETTER ALPHA WITH PSILI +1F09 ; mapped ; 1F01 # 1.1 GREEK CAPITAL LETTER ALPHA WITH DASIA +1F0A ; mapped ; 1F02 # 1.1 GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA +1F0B ; mapped ; 1F03 # 1.1 GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA +1F0C ; mapped ; 1F04 # 1.1 GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA +1F0D ; mapped ; 1F05 # 1.1 GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA +1F0E ; mapped ; 1F06 # 1.1 GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI +1F0F ; mapped ; 1F07 # 1.1 GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI +1F10..1F15 ; valid # 1.1 GREEK SMALL LETTER EPSILON WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA +1F16..1F17 ; disallowed # NA <reserved-1F16>..<reserved-1F17> +1F18 ; mapped ; 1F10 # 1.1 GREEK CAPITAL LETTER EPSILON WITH PSILI +1F19 ; mapped ; 1F11 # 1.1 GREEK CAPITAL LETTER EPSILON WITH DASIA +1F1A ; mapped ; 1F12 # 1.1 GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA +1F1B ; mapped ; 1F13 # 1.1 GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA +1F1C ; mapped ; 1F14 # 1.1 GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA +1F1D ; mapped ; 1F15 # 1.1 GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA +1F1E..1F1F ; disallowed # NA <reserved-1F1E>..<reserved-1F1F> +1F20..1F27 ; valid # 1.1 GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI +1F28 ; mapped ; 1F20 # 1.1 GREEK CAPITAL LETTER ETA WITH PSILI +1F29 ; mapped ; 1F21 # 1.1 GREEK CAPITAL LETTER ETA WITH DASIA +1F2A ; mapped ; 1F22 # 1.1 GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA +1F2B ; mapped ; 1F23 # 1.1 GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA +1F2C ; mapped ; 1F24 # 1.1 GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA +1F2D ; mapped ; 1F25 # 1.1 GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA +1F2E ; mapped ; 1F26 # 1.1 GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI +1F2F ; mapped ; 1F27 # 1.1 GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI +1F30..1F37 ; valid # 1.1 GREEK SMALL LETTER IOTA WITH PSILI..GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI +1F38 ; mapped ; 1F30 # 1.1 GREEK CAPITAL LETTER IOTA WITH PSILI +1F39 ; mapped ; 1F31 # 1.1 GREEK CAPITAL LETTER IOTA WITH DASIA +1F3A ; mapped ; 1F32 # 1.1 GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA +1F3B ; mapped ; 1F33 # 1.1 GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA +1F3C ; mapped ; 1F34 # 1.1 GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA +1F3D ; mapped ; 1F35 # 1.1 GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA +1F3E ; mapped ; 1F36 # 1.1 GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI +1F3F ; mapped ; 1F37 # 1.1 GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI +1F40..1F45 ; valid # 1.1 GREEK SMALL LETTER OMICRON WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA +1F46..1F47 ; disallowed # NA <reserved-1F46>..<reserved-1F47> +1F48 ; mapped ; 1F40 # 1.1 GREEK CAPITAL LETTER OMICRON WITH PSILI +1F49 ; mapped ; 1F41 # 1.1 GREEK CAPITAL LETTER OMICRON WITH DASIA +1F4A ; mapped ; 1F42 # 1.1 GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA +1F4B ; mapped ; 1F43 # 1.1 GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA +1F4C ; mapped ; 1F44 # 1.1 GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA +1F4D ; mapped ; 1F45 # 1.1 GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA +1F4E..1F4F ; disallowed # NA <reserved-1F4E>..<reserved-1F4F> +1F50..1F57 ; valid # 1.1 GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI +1F58 ; disallowed # NA <reserved-1F58> +1F59 ; mapped ; 1F51 # 1.1 GREEK CAPITAL LETTER UPSILON WITH DASIA +1F5A ; disallowed # NA <reserved-1F5A> +1F5B ; mapped ; 1F53 # 1.1 GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA +1F5C ; disallowed # NA <reserved-1F5C> +1F5D ; mapped ; 1F55 # 1.1 GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA +1F5E ; disallowed # NA <reserved-1F5E> +1F5F ; mapped ; 1F57 # 1.1 GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI +1F60..1F67 ; valid # 1.1 GREEK SMALL LETTER OMEGA WITH PSILI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI +1F68 ; mapped ; 1F60 # 1.1 GREEK CAPITAL LETTER OMEGA WITH PSILI +1F69 ; mapped ; 1F61 # 1.1 GREEK CAPITAL LETTER OMEGA WITH DASIA +1F6A ; mapped ; 1F62 # 1.1 GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA +1F6B ; mapped ; 1F63 # 1.1 GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA +1F6C ; mapped ; 1F64 # 1.1 GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA +1F6D ; mapped ; 1F65 # 1.1 GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA +1F6E ; mapped ; 1F66 # 1.1 GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI +1F6F ; mapped ; 1F67 # 1.1 GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI +1F70 ; valid # 1.1 GREEK SMALL LETTER ALPHA WITH VARIA +1F71 ; mapped ; 03AC # 1.1 GREEK SMALL LETTER ALPHA WITH OXIA +1F72 ; valid # 1.1 GREEK SMALL LETTER EPSILON WITH VARIA +1F73 ; mapped ; 03AD # 1.1 GREEK SMALL LETTER EPSILON WITH OXIA +1F74 ; valid # 1.1 GREEK SMALL LETTER ETA WITH VARIA +1F75 ; mapped ; 03AE # 1.1 GREEK SMALL LETTER ETA WITH OXIA +1F76 ; valid # 1.1 GREEK SMALL LETTER IOTA WITH VARIA +1F77 ; mapped ; 03AF # 1.1 GREEK SMALL LETTER IOTA WITH OXIA +1F78 ; valid # 1.1 GREEK SMALL LETTER OMICRON WITH VARIA +1F79 ; mapped ; 03CC # 1.1 GREEK SMALL LETTER OMICRON WITH OXIA +1F7A ; valid # 1.1 GREEK SMALL LETTER UPSILON WITH VARIA +1F7B ; mapped ; 03CD # 1.1 GREEK SMALL LETTER UPSILON WITH OXIA +1F7C ; valid # 1.1 GREEK SMALL LETTER OMEGA WITH VARIA +1F7D ; mapped ; 03CE # 1.1 GREEK SMALL LETTER OMEGA WITH OXIA +1F7E..1F7F ; disallowed # NA <reserved-1F7E>..<reserved-1F7F> +1F80 ; mapped ; 1F00 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI +1F81 ; mapped ; 1F01 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI +1F82 ; mapped ; 1F02 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI +1F83 ; mapped ; 1F03 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI +1F84 ; mapped ; 1F04 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI +1F85 ; mapped ; 1F05 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI +1F86 ; mapped ; 1F06 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI +1F87 ; mapped ; 1F07 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI +1F88 ; mapped ; 1F00 03B9 # 1.1 GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI +1F89 ; mapped ; 1F01 03B9 # 1.1 GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI +1F8A ; mapped ; 1F02 03B9 # 1.1 GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI +1F8B ; mapped ; 1F03 03B9 # 1.1 GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI +1F8C ; mapped ; 1F04 03B9 # 1.1 GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI +1F8D ; mapped ; 1F05 03B9 # 1.1 GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI +1F8E ; mapped ; 1F06 03B9 # 1.1 GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI +1F8F ; mapped ; 1F07 03B9 # 1.1 GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1F90 ; mapped ; 1F20 03B9 # 1.1 GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI +1F91 ; mapped ; 1F21 03B9 # 1.1 GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI +1F92 ; mapped ; 1F22 03B9 # 1.1 GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI +1F93 ; mapped ; 1F23 03B9 # 1.1 GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI +1F94 ; mapped ; 1F24 03B9 # 1.1 GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI +1F95 ; mapped ; 1F25 03B9 # 1.1 GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI +1F96 ; mapped ; 1F26 03B9 # 1.1 GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI +1F97 ; mapped ; 1F27 03B9 # 1.1 GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI +1F98 ; mapped ; 1F20 03B9 # 1.1 GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI +1F99 ; mapped ; 1F21 03B9 # 1.1 GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI +1F9A ; mapped ; 1F22 03B9 # 1.1 GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI +1F9B ; mapped ; 1F23 03B9 # 1.1 GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI +1F9C ; mapped ; 1F24 03B9 # 1.1 GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI +1F9D ; mapped ; 1F25 03B9 # 1.1 GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI +1F9E ; mapped ; 1F26 03B9 # 1.1 GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI +1F9F ; mapped ; 1F27 03B9 # 1.1 GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1FA0 ; mapped ; 1F60 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI +1FA1 ; mapped ; 1F61 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI +1FA2 ; mapped ; 1F62 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI +1FA3 ; mapped ; 1F63 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI +1FA4 ; mapped ; 1F64 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI +1FA5 ; mapped ; 1F65 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI +1FA6 ; mapped ; 1F66 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI +1FA7 ; mapped ; 1F67 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI +1FA8 ; mapped ; 1F60 03B9 # 1.1 GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI +1FA9 ; mapped ; 1F61 03B9 # 1.1 GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI +1FAA ; mapped ; 1F62 03B9 # 1.1 GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI +1FAB ; mapped ; 1F63 03B9 # 1.1 GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI +1FAC ; mapped ; 1F64 03B9 # 1.1 GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI +1FAD ; mapped ; 1F65 03B9 # 1.1 GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI +1FAE ; mapped ; 1F66 03B9 # 1.1 GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI +1FAF ; mapped ; 1F67 03B9 # 1.1 GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI +1FB0..1FB1 ; valid # 1.1 GREEK SMALL LETTER ALPHA WITH VRACHY..GREEK SMALL LETTER ALPHA WITH MACRON +1FB2 ; mapped ; 1F70 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI +1FB3 ; mapped ; 03B1 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI +1FB4 ; mapped ; 03AC 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI +1FB5 ; disallowed # NA <reserved-1FB5> +1FB6 ; valid # 1.1 GREEK SMALL LETTER ALPHA WITH PERISPOMENI +1FB7 ; mapped ; 1FB6 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI +1FB8 ; mapped ; 1FB0 # 1.1 GREEK CAPITAL LETTER ALPHA WITH VRACHY +1FB9 ; mapped ; 1FB1 # 1.1 GREEK CAPITAL LETTER ALPHA WITH MACRON +1FBA ; mapped ; 1F70 # 1.1 GREEK CAPITAL LETTER ALPHA WITH VARIA +1FBB ; mapped ; 03AC # 1.1 GREEK CAPITAL LETTER ALPHA WITH OXIA +1FBC ; mapped ; 03B1 03B9 # 1.1 GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI +1FBD ; disallowed_STD3_mapped ; 0020 0313 # 1.1 GREEK KORONIS +1FBE ; mapped ; 03B9 # 1.1 GREEK PROSGEGRAMMENI +1FBF ; disallowed_STD3_mapped ; 0020 0313 # 1.1 GREEK PSILI +1FC0 ; disallowed_STD3_mapped ; 0020 0342 # 1.1 GREEK PERISPOMENI +1FC1 ; disallowed_STD3_mapped ; 0020 0308 0342 #1.1 GREEK DIALYTIKA AND PERISPOMENI +1FC2 ; mapped ; 1F74 03B9 # 1.1 GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI +1FC3 ; mapped ; 03B7 03B9 # 1.1 GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI +1FC4 ; mapped ; 03AE 03B9 # 1.1 GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI +1FC5 ; disallowed # NA <reserved-1FC5> +1FC6 ; valid # 1.1 GREEK SMALL LETTER ETA WITH PERISPOMENI +1FC7 ; mapped ; 1FC6 03B9 # 1.1 GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI +1FC8 ; mapped ; 1F72 # 1.1 GREEK CAPITAL LETTER EPSILON WITH VARIA +1FC9 ; mapped ; 03AD # 1.1 GREEK CAPITAL LETTER EPSILON WITH OXIA +1FCA ; mapped ; 1F74 # 1.1 GREEK CAPITAL LETTER ETA WITH VARIA +1FCB ; mapped ; 03AE # 1.1 GREEK CAPITAL LETTER ETA WITH OXIA +1FCC ; mapped ; 03B7 03B9 # 1.1 GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI +1FCD ; disallowed_STD3_mapped ; 0020 0313 0300 #1.1 GREEK PSILI AND VARIA +1FCE ; disallowed_STD3_mapped ; 0020 0313 0301 #1.1 GREEK PSILI AND OXIA +1FCF ; disallowed_STD3_mapped ; 0020 0313 0342 #1.1 GREEK PSILI AND PERISPOMENI +1FD0..1FD2 ; valid # 1.1 GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA +1FD3 ; mapped ; 0390 # 1.1 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA +1FD4..1FD5 ; disallowed # NA <reserved-1FD4>..<reserved-1FD5> +1FD6..1FD7 ; valid # 1.1 GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI +1FD8 ; mapped ; 1FD0 # 1.1 GREEK CAPITAL LETTER IOTA WITH VRACHY +1FD9 ; mapped ; 1FD1 # 1.1 GREEK CAPITAL LETTER IOTA WITH MACRON +1FDA ; mapped ; 1F76 # 1.1 GREEK CAPITAL LETTER IOTA WITH VARIA +1FDB ; mapped ; 03AF # 1.1 GREEK CAPITAL LETTER IOTA WITH OXIA +1FDC ; disallowed # NA <reserved-1FDC> +1FDD ; disallowed_STD3_mapped ; 0020 0314 0300 #1.1 GREEK DASIA AND VARIA +1FDE ; disallowed_STD3_mapped ; 0020 0314 0301 #1.1 GREEK DASIA AND OXIA +1FDF ; disallowed_STD3_mapped ; 0020 0314 0342 #1.1 GREEK DASIA AND PERISPOMENI +1FE0..1FE2 ; valid # 1.1 GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA +1FE3 ; mapped ; 03B0 # 1.1 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA +1FE4..1FE7 ; valid # 1.1 GREEK SMALL LETTER RHO WITH PSILI..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI +1FE8 ; mapped ; 1FE0 # 1.1 GREEK CAPITAL LETTER UPSILON WITH VRACHY +1FE9 ; mapped ; 1FE1 # 1.1 GREEK CAPITAL LETTER UPSILON WITH MACRON +1FEA ; mapped ; 1F7A # 1.1 GREEK CAPITAL LETTER UPSILON WITH VARIA +1FEB ; mapped ; 03CD # 1.1 GREEK CAPITAL LETTER UPSILON WITH OXIA +1FEC ; mapped ; 1FE5 # 1.1 GREEK CAPITAL LETTER RHO WITH DASIA +1FED ; disallowed_STD3_mapped ; 0020 0308 0300 #1.1 GREEK DIALYTIKA AND VARIA +1FEE ; disallowed_STD3_mapped ; 0020 0308 0301 #1.1 GREEK DIALYTIKA AND OXIA +1FEF ; disallowed_STD3_mapped ; 0060 # 1.1 GREEK VARIA +1FF0..1FF1 ; disallowed # NA <reserved-1FF0>..<reserved-1FF1> +1FF2 ; mapped ; 1F7C 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI +1FF3 ; mapped ; 03C9 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI +1FF4 ; mapped ; 03CE 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI +1FF5 ; disallowed # NA <reserved-1FF5> +1FF6 ; valid # 1.1 GREEK SMALL LETTER OMEGA WITH PERISPOMENI +1FF7 ; mapped ; 1FF6 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI +1FF8 ; mapped ; 1F78 # 1.1 GREEK CAPITAL LETTER OMICRON WITH VARIA +1FF9 ; mapped ; 03CC # 1.1 GREEK CAPITAL LETTER OMICRON WITH OXIA +1FFA ; mapped ; 1F7C # 1.1 GREEK CAPITAL LETTER OMEGA WITH VARIA +1FFB ; mapped ; 03CE # 1.1 GREEK CAPITAL LETTER OMEGA WITH OXIA +1FFC ; mapped ; 03C9 03B9 # 1.1 GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI +1FFD ; disallowed_STD3_mapped ; 0020 0301 # 1.1 GREEK OXIA +1FFE ; disallowed_STD3_mapped ; 0020 0314 # 1.1 GREEK DASIA +1FFF ; disallowed # NA <reserved-1FFF> +2000..200A ; disallowed_STD3_mapped ; 0020 # 1.1 EN QUAD..HAIR SPACE +200B ; ignored # 1.1 ZERO WIDTH SPACE +200C..200D ; deviation ; # 1.1 ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER +200E..200F ; disallowed # 1.1 LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK +2010 ; valid ; ; NV8 # 1.1 HYPHEN +2011 ; mapped ; 2010 # 1.1 NON-BREAKING HYPHEN +2012..2016 ; valid ; ; NV8 # 1.1 FIGURE DASH..DOUBLE VERTICAL LINE +2017 ; disallowed_STD3_mapped ; 0020 0333 # 1.1 DOUBLE LOW LINE +2018..2023 ; valid ; ; NV8 # 1.1 LEFT SINGLE QUOTATION MARK..TRIANGULAR BULLET +2024..2026 ; disallowed # 1.1 ONE DOT LEADER..HORIZONTAL ELLIPSIS +2027 ; valid ; ; NV8 # 1.1 HYPHENATION POINT +2028..202E ; disallowed # 1.1 LINE SEPARATOR..RIGHT-TO-LEFT OVERRIDE +202F ; disallowed_STD3_mapped ; 0020 # 3.0 NARROW NO-BREAK SPACE +2030..2032 ; valid ; ; NV8 # 1.1 PER MILLE SIGN..PRIME +2033 ; mapped ; 2032 2032 # 1.1 DOUBLE PRIME +2034 ; mapped ; 2032 2032 2032 #1.1 TRIPLE PRIME +2035 ; valid ; ; NV8 # 1.1 REVERSED PRIME +2036 ; mapped ; 2035 2035 # 1.1 REVERSED DOUBLE PRIME +2037 ; mapped ; 2035 2035 2035 #1.1 REVERSED TRIPLE PRIME +2038..203B ; valid ; ; NV8 # 1.1 CARET..REFERENCE MARK +203C ; disallowed_STD3_mapped ; 0021 0021 # 1.1 DOUBLE EXCLAMATION MARK +203D ; valid ; ; NV8 # 1.1 INTERROBANG +203E ; disallowed_STD3_mapped ; 0020 0305 # 1.1 OVERLINE +203F..2046 ; valid ; ; NV8 # 1.1 UNDERTIE..RIGHT SQUARE BRACKET WITH QUILL +2047 ; disallowed_STD3_mapped ; 003F 003F # 3.2 DOUBLE QUESTION MARK +2048 ; disallowed_STD3_mapped ; 003F 0021 # 3.0 QUESTION EXCLAMATION MARK +2049 ; disallowed_STD3_mapped ; 0021 003F # 3.0 EXCLAMATION QUESTION MARK +204A..204D ; valid ; ; NV8 # 3.0 TIRONIAN SIGN ET..BLACK RIGHTWARDS BULLET +204E..2052 ; valid ; ; NV8 # 3.2 LOW ASTERISK..COMMERCIAL MINUS SIGN +2053..2054 ; valid ; ; NV8 # 4.0 SWUNG DASH..INVERTED UNDERTIE +2055..2056 ; valid ; ; NV8 # 4.1 FLOWER PUNCTUATION MARK..THREE DOT PUNCTUATION +2057 ; mapped ; 2032 2032 2032 2032 #3.2 QUADRUPLE PRIME +2058..205E ; valid ; ; NV8 # 4.1 FOUR DOT PUNCTUATION..VERTICAL FOUR DOTS +205F ; disallowed_STD3_mapped ; 0020 # 3.2 MEDIUM MATHEMATICAL SPACE +2060 ; ignored # 3.2 WORD JOINER +2061..2063 ; disallowed # 3.2 FUNCTION APPLICATION..INVISIBLE SEPARATOR +2064 ; ignored # 5.1 INVISIBLE PLUS +2065 ; disallowed # NA <reserved-2065> +2066..2069 ; disallowed # 6.3 LEFT-TO-RIGHT ISOLATE..POP DIRECTIONAL ISOLATE +206A..206F ; disallowed # 1.1 INHIBIT SYMMETRIC SWAPPING..NOMINAL DIGIT SHAPES +2070 ; mapped ; 0030 # 1.1 SUPERSCRIPT ZERO +2071 ; mapped ; 0069 # 3.2 SUPERSCRIPT LATIN SMALL LETTER I +2072..2073 ; disallowed # NA <reserved-2072>..<reserved-2073> +2074 ; mapped ; 0034 # 1.1 SUPERSCRIPT FOUR +2075 ; mapped ; 0035 # 1.1 SUPERSCRIPT FIVE +2076 ; mapped ; 0036 # 1.1 SUPERSCRIPT SIX +2077 ; mapped ; 0037 # 1.1 SUPERSCRIPT SEVEN +2078 ; mapped ; 0038 # 1.1 SUPERSCRIPT EIGHT +2079 ; mapped ; 0039 # 1.1 SUPERSCRIPT NINE +207A ; disallowed_STD3_mapped ; 002B # 1.1 SUPERSCRIPT PLUS SIGN +207B ; mapped ; 2212 # 1.1 SUPERSCRIPT MINUS +207C ; disallowed_STD3_mapped ; 003D # 1.1 SUPERSCRIPT EQUALS SIGN +207D ; disallowed_STD3_mapped ; 0028 # 1.1 SUPERSCRIPT LEFT PARENTHESIS +207E ; disallowed_STD3_mapped ; 0029 # 1.1 SUPERSCRIPT RIGHT PARENTHESIS +207F ; mapped ; 006E # 1.1 SUPERSCRIPT LATIN SMALL LETTER N +2080 ; mapped ; 0030 # 1.1 SUBSCRIPT ZERO +2081 ; mapped ; 0031 # 1.1 SUBSCRIPT ONE +2082 ; mapped ; 0032 # 1.1 SUBSCRIPT TWO +2083 ; mapped ; 0033 # 1.1 SUBSCRIPT THREE +2084 ; mapped ; 0034 # 1.1 SUBSCRIPT FOUR +2085 ; mapped ; 0035 # 1.1 SUBSCRIPT FIVE +2086 ; mapped ; 0036 # 1.1 SUBSCRIPT SIX +2087 ; mapped ; 0037 # 1.1 SUBSCRIPT SEVEN +2088 ; mapped ; 0038 # 1.1 SUBSCRIPT EIGHT +2089 ; mapped ; 0039 # 1.1 SUBSCRIPT NINE +208A ; disallowed_STD3_mapped ; 002B # 1.1 SUBSCRIPT PLUS SIGN +208B ; mapped ; 2212 # 1.1 SUBSCRIPT MINUS +208C ; disallowed_STD3_mapped ; 003D # 1.1 SUBSCRIPT EQUALS SIGN +208D ; disallowed_STD3_mapped ; 0028 # 1.1 SUBSCRIPT LEFT PARENTHESIS +208E ; disallowed_STD3_mapped ; 0029 # 1.1 SUBSCRIPT RIGHT PARENTHESIS +208F ; disallowed # NA <reserved-208F> +2090 ; mapped ; 0061 # 4.1 LATIN SUBSCRIPT SMALL LETTER A +2091 ; mapped ; 0065 # 4.1 LATIN SUBSCRIPT SMALL LETTER E +2092 ; mapped ; 006F # 4.1 LATIN SUBSCRIPT SMALL LETTER O +2093 ; mapped ; 0078 # 4.1 LATIN SUBSCRIPT SMALL LETTER X +2094 ; mapped ; 0259 # 4.1 LATIN SUBSCRIPT SMALL LETTER SCHWA +2095 ; mapped ; 0068 # 6.0 LATIN SUBSCRIPT SMALL LETTER H +2096 ; mapped ; 006B # 6.0 LATIN SUBSCRIPT SMALL LETTER K +2097 ; mapped ; 006C # 6.0 LATIN SUBSCRIPT SMALL LETTER L +2098 ; mapped ; 006D # 6.0 LATIN SUBSCRIPT SMALL LETTER M +2099 ; mapped ; 006E # 6.0 LATIN SUBSCRIPT SMALL LETTER N +209A ; mapped ; 0070 # 6.0 LATIN SUBSCRIPT SMALL LETTER P +209B ; mapped ; 0073 # 6.0 LATIN SUBSCRIPT SMALL LETTER S +209C ; mapped ; 0074 # 6.0 LATIN SUBSCRIPT SMALL LETTER T +209D..209F ; disallowed # NA <reserved-209D>..<reserved-209F> +20A0..20A7 ; valid ; ; NV8 # 1.1 EURO-CURRENCY SIGN..PESETA SIGN +20A8 ; mapped ; 0072 0073 # 1.1 RUPEE SIGN +20A9..20AA ; valid ; ; NV8 # 1.1 WON SIGN..NEW SHEQEL SIGN +20AB ; valid ; ; NV8 # 2.0 DONG SIGN +20AC ; valid ; ; NV8 # 2.1 EURO SIGN +20AD..20AF ; valid ; ; NV8 # 3.0 KIP SIGN..DRACHMA SIGN +20B0..20B1 ; valid ; ; NV8 # 3.2 GERMAN PENNY SIGN..PESO SIGN +20B2..20B5 ; valid ; ; NV8 # 4.1 GUARANI SIGN..CEDI SIGN +20B6..20B8 ; valid ; ; NV8 # 5.2 LIVRE TOURNOIS SIGN..TENGE SIGN +20B9 ; valid ; ; NV8 # 6.0 INDIAN RUPEE SIGN +20BA ; valid ; ; NV8 # 6.2 TURKISH LIRA SIGN +20BB..20BD ; valid ; ; NV8 # 7.0 NORDIC MARK SIGN..RUBLE SIGN +20BE ; valid ; ; NV8 # 8.0 LARI SIGN +20BF ; valid ; ; NV8 # 10.0 BITCOIN SIGN +20C0 ; valid ; ; NV8 # 14.0 SOM SIGN +20C1..20CF ; disallowed # NA <reserved-20C1>..<reserved-20CF> +20D0..20E1 ; valid ; ; NV8 # 1.1 COMBINING LEFT HARPOON ABOVE..COMBINING LEFT RIGHT ARROW ABOVE +20E2..20E3 ; valid ; ; NV8 # 3.0 COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING KEYCAP +20E4..20EA ; valid ; ; NV8 # 3.2 COMBINING ENCLOSING UPWARD POINTING TRIANGLE..COMBINING LEFTWARDS ARROW OVERLAY +20EB ; valid ; ; NV8 # 4.1 COMBINING LONG DOUBLE SOLIDUS OVERLAY +20EC..20EF ; valid ; ; NV8 # 5.0 COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS..COMBINING RIGHT ARROW BELOW +20F0 ; valid ; ; NV8 # 5.1 COMBINING ASTERISK ABOVE +20F1..20FF ; disallowed # NA <reserved-20F1>..<reserved-20FF> +2100 ; disallowed_STD3_mapped ; 0061 002F 0063 #1.1 ACCOUNT OF +2101 ; disallowed_STD3_mapped ; 0061 002F 0073 #1.1 ADDRESSED TO THE SUBJECT +2102 ; mapped ; 0063 # 1.1 DOUBLE-STRUCK CAPITAL C +2103 ; mapped ; 00B0 0063 # 1.1 DEGREE CELSIUS +2104 ; valid ; ; NV8 # 1.1 CENTRE LINE SYMBOL +2105 ; disallowed_STD3_mapped ; 0063 002F 006F #1.1 CARE OF +2106 ; disallowed_STD3_mapped ; 0063 002F 0075 #1.1 CADA UNA +2107 ; mapped ; 025B # 1.1 EULER CONSTANT +2108 ; valid ; ; NV8 # 1.1 SCRUPLE +2109 ; mapped ; 00B0 0066 # 1.1 DEGREE FAHRENHEIT +210A ; mapped ; 0067 # 1.1 SCRIPT SMALL G +210B..210E ; mapped ; 0068 # 1.1 SCRIPT CAPITAL H..PLANCK CONSTANT +210F ; mapped ; 0127 # 1.1 PLANCK CONSTANT OVER TWO PI +2110..2111 ; mapped ; 0069 # 1.1 SCRIPT CAPITAL I..BLACK-LETTER CAPITAL I +2112..2113 ; mapped ; 006C # 1.1 SCRIPT CAPITAL L..SCRIPT SMALL L +2114 ; valid ; ; NV8 # 1.1 L B BAR SYMBOL +2115 ; mapped ; 006E # 1.1 DOUBLE-STRUCK CAPITAL N +2116 ; mapped ; 006E 006F # 1.1 NUMERO SIGN +2117..2118 ; valid ; ; NV8 # 1.1 SOUND RECORDING COPYRIGHT..SCRIPT CAPITAL P +2119 ; mapped ; 0070 # 1.1 DOUBLE-STRUCK CAPITAL P +211A ; mapped ; 0071 # 1.1 DOUBLE-STRUCK CAPITAL Q +211B..211D ; mapped ; 0072 # 1.1 SCRIPT CAPITAL R..DOUBLE-STRUCK CAPITAL R +211E..211F ; valid ; ; NV8 # 1.1 PRESCRIPTION TAKE..RESPONSE +2120 ; mapped ; 0073 006D # 1.1 SERVICE MARK +2121 ; mapped ; 0074 0065 006C #1.1 TELEPHONE SIGN +2122 ; mapped ; 0074 006D # 1.1 TRADE MARK SIGN +2123 ; valid ; ; NV8 # 1.1 VERSICLE +2124 ; mapped ; 007A # 1.1 DOUBLE-STRUCK CAPITAL Z +2125 ; valid ; ; NV8 # 1.1 OUNCE SIGN +2126 ; mapped ; 03C9 # 1.1 OHM SIGN +2127 ; valid ; ; NV8 # 1.1 INVERTED OHM SIGN +2128 ; mapped ; 007A # 1.1 BLACK-LETTER CAPITAL Z +2129 ; valid ; ; NV8 # 1.1 TURNED GREEK SMALL LETTER IOTA +212A ; mapped ; 006B # 1.1 KELVIN SIGN +212B ; mapped ; 00E5 # 1.1 ANGSTROM SIGN +212C ; mapped ; 0062 # 1.1 SCRIPT CAPITAL B +212D ; mapped ; 0063 # 1.1 BLACK-LETTER CAPITAL C +212E ; valid ; ; NV8 # 1.1 ESTIMATED SYMBOL +212F..2130 ; mapped ; 0065 # 1.1 SCRIPT SMALL E..SCRIPT CAPITAL E +2131 ; mapped ; 0066 # 1.1 SCRIPT CAPITAL F +2132 ; disallowed # 1.1 TURNED CAPITAL F +2133 ; mapped ; 006D # 1.1 SCRIPT CAPITAL M +2134 ; mapped ; 006F # 1.1 SCRIPT SMALL O +2135 ; mapped ; 05D0 # 1.1 ALEF SYMBOL +2136 ; mapped ; 05D1 # 1.1 BET SYMBOL +2137 ; mapped ; 05D2 # 1.1 GIMEL SYMBOL +2138 ; mapped ; 05D3 # 1.1 DALET SYMBOL +2139 ; mapped ; 0069 # 3.0 INFORMATION SOURCE +213A ; valid ; ; NV8 # 3.0 ROTATED CAPITAL Q +213B ; mapped ; 0066 0061 0078 #4.0 FACSIMILE SIGN +213C ; mapped ; 03C0 # 4.1 DOUBLE-STRUCK SMALL PI +213D..213E ; mapped ; 03B3 # 3.2 DOUBLE-STRUCK SMALL GAMMA..DOUBLE-STRUCK CAPITAL GAMMA +213F ; mapped ; 03C0 # 3.2 DOUBLE-STRUCK CAPITAL PI +2140 ; mapped ; 2211 # 3.2 DOUBLE-STRUCK N-ARY SUMMATION +2141..2144 ; valid ; ; NV8 # 3.2 TURNED SANS-SERIF CAPITAL G..TURNED SANS-SERIF CAPITAL Y +2145..2146 ; mapped ; 0064 # 3.2 DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL D +2147 ; mapped ; 0065 # 3.2 DOUBLE-STRUCK ITALIC SMALL E +2148 ; mapped ; 0069 # 3.2 DOUBLE-STRUCK ITALIC SMALL I +2149 ; mapped ; 006A # 3.2 DOUBLE-STRUCK ITALIC SMALL J +214A..214B ; valid ; ; NV8 # 3.2 PROPERTY LINE..TURNED AMPERSAND +214C ; valid ; ; NV8 # 4.1 PER SIGN +214D ; valid ; ; NV8 # 5.0 AKTIESELSKAB +214E ; valid # 5.0 TURNED SMALL F +214F ; valid ; ; NV8 # 5.1 SYMBOL FOR SAMARITAN SOURCE +2150 ; mapped ; 0031 2044 0037 #5.2 VULGAR FRACTION ONE SEVENTH +2151 ; mapped ; 0031 2044 0039 #5.2 VULGAR FRACTION ONE NINTH +2152 ; mapped ; 0031 2044 0031 0030 #5.2 VULGAR FRACTION ONE TENTH +2153 ; mapped ; 0031 2044 0033 #1.1 VULGAR FRACTION ONE THIRD +2154 ; mapped ; 0032 2044 0033 #1.1 VULGAR FRACTION TWO THIRDS +2155 ; mapped ; 0031 2044 0035 #1.1 VULGAR FRACTION ONE FIFTH +2156 ; mapped ; 0032 2044 0035 #1.1 VULGAR FRACTION TWO FIFTHS +2157 ; mapped ; 0033 2044 0035 #1.1 VULGAR FRACTION THREE FIFTHS +2158 ; mapped ; 0034 2044 0035 #1.1 VULGAR FRACTION FOUR FIFTHS +2159 ; mapped ; 0031 2044 0036 #1.1 VULGAR FRACTION ONE SIXTH +215A ; mapped ; 0035 2044 0036 #1.1 VULGAR FRACTION FIVE SIXTHS +215B ; mapped ; 0031 2044 0038 #1.1 VULGAR FRACTION ONE EIGHTH +215C ; mapped ; 0033 2044 0038 #1.1 VULGAR FRACTION THREE EIGHTHS +215D ; mapped ; 0035 2044 0038 #1.1 VULGAR FRACTION FIVE EIGHTHS +215E ; mapped ; 0037 2044 0038 #1.1 VULGAR FRACTION SEVEN EIGHTHS +215F ; mapped ; 0031 2044 # 1.1 FRACTION NUMERATOR ONE +2160 ; mapped ; 0069 # 1.1 ROMAN NUMERAL ONE +2161 ; mapped ; 0069 0069 # 1.1 ROMAN NUMERAL TWO +2162 ; mapped ; 0069 0069 0069 #1.1 ROMAN NUMERAL THREE +2163 ; mapped ; 0069 0076 # 1.1 ROMAN NUMERAL FOUR +2164 ; mapped ; 0076 # 1.1 ROMAN NUMERAL FIVE +2165 ; mapped ; 0076 0069 # 1.1 ROMAN NUMERAL SIX +2166 ; mapped ; 0076 0069 0069 #1.1 ROMAN NUMERAL SEVEN +2167 ; mapped ; 0076 0069 0069 0069 #1.1 ROMAN NUMERAL EIGHT +2168 ; mapped ; 0069 0078 # 1.1 ROMAN NUMERAL NINE +2169 ; mapped ; 0078 # 1.1 ROMAN NUMERAL TEN +216A ; mapped ; 0078 0069 # 1.1 ROMAN NUMERAL ELEVEN +216B ; mapped ; 0078 0069 0069 #1.1 ROMAN NUMERAL TWELVE +216C ; mapped ; 006C # 1.1 ROMAN NUMERAL FIFTY +216D ; mapped ; 0063 # 1.1 ROMAN NUMERAL ONE HUNDRED +216E ; mapped ; 0064 # 1.1 ROMAN NUMERAL FIVE HUNDRED +216F ; mapped ; 006D # 1.1 ROMAN NUMERAL ONE THOUSAND +2170 ; mapped ; 0069 # 1.1 SMALL ROMAN NUMERAL ONE +2171 ; mapped ; 0069 0069 # 1.1 SMALL ROMAN NUMERAL TWO +2172 ; mapped ; 0069 0069 0069 #1.1 SMALL ROMAN NUMERAL THREE +2173 ; mapped ; 0069 0076 # 1.1 SMALL ROMAN NUMERAL FOUR +2174 ; mapped ; 0076 # 1.1 SMALL ROMAN NUMERAL FIVE +2175 ; mapped ; 0076 0069 # 1.1 SMALL ROMAN NUMERAL SIX +2176 ; mapped ; 0076 0069 0069 #1.1 SMALL ROMAN NUMERAL SEVEN +2177 ; mapped ; 0076 0069 0069 0069 #1.1 SMALL ROMAN NUMERAL EIGHT +2178 ; mapped ; 0069 0078 # 1.1 SMALL ROMAN NUMERAL NINE +2179 ; mapped ; 0078 # 1.1 SMALL ROMAN NUMERAL TEN +217A ; mapped ; 0078 0069 # 1.1 SMALL ROMAN NUMERAL ELEVEN +217B ; mapped ; 0078 0069 0069 #1.1 SMALL ROMAN NUMERAL TWELVE +217C ; mapped ; 006C # 1.1 SMALL ROMAN NUMERAL FIFTY +217D ; mapped ; 0063 # 1.1 SMALL ROMAN NUMERAL ONE HUNDRED +217E ; mapped ; 0064 # 1.1 SMALL ROMAN NUMERAL FIVE HUNDRED +217F ; mapped ; 006D # 1.1 SMALL ROMAN NUMERAL ONE THOUSAND +2180..2182 ; valid ; ; NV8 # 1.1 ROMAN NUMERAL ONE THOUSAND C D..ROMAN NUMERAL TEN THOUSAND +2183 ; disallowed # 3.0 ROMAN NUMERAL REVERSED ONE HUNDRED +2184 ; valid # 5.0 LATIN SMALL LETTER REVERSED C +2185..2188 ; valid ; ; NV8 # 5.1 ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND +2189 ; mapped ; 0030 2044 0033 #5.2 VULGAR FRACTION ZERO THIRDS +218A..218B ; valid ; ; NV8 # 8.0 TURNED DIGIT TWO..TURNED DIGIT THREE +218C..218F ; disallowed # NA <reserved-218C>..<reserved-218F> +2190..21EA ; valid ; ; NV8 # 1.1 LEFTWARDS ARROW..UPWARDS WHITE ARROW FROM BAR +21EB..21F3 ; valid ; ; NV8 # 3.0 UPWARDS WHITE ARROW ON PEDESTAL..UP DOWN WHITE ARROW +21F4..21FF ; valid ; ; NV8 # 3.2 RIGHT ARROW WITH SMALL CIRCLE..LEFT RIGHT OPEN-HEADED ARROW +2200..222B ; valid ; ; NV8 # 1.1 FOR ALL..INTEGRAL +222C ; mapped ; 222B 222B # 1.1 DOUBLE INTEGRAL +222D ; mapped ; 222B 222B 222B #1.1 TRIPLE INTEGRAL +222E ; valid ; ; NV8 # 1.1 CONTOUR INTEGRAL +222F ; mapped ; 222E 222E # 1.1 SURFACE INTEGRAL +2230 ; mapped ; 222E 222E 222E #1.1 VOLUME INTEGRAL +2231..225F ; valid ; ; NV8 # 1.1 CLOCKWISE INTEGRAL..QUESTIONED EQUAL TO +2260 ; disallowed_STD3_valid # 1.1 NOT EQUAL TO +2261..226D ; valid ; ; NV8 # 1.1 IDENTICAL TO..NOT EQUIVALENT TO +226E..226F ; disallowed_STD3_valid # 1.1 NOT LESS-THAN..NOT GREATER-THAN +2270..22F1 ; valid ; ; NV8 # 1.1 NEITHER LESS-THAN NOR EQUAL TO..DOWN RIGHT DIAGONAL ELLIPSIS +22F2..22FF ; valid ; ; NV8 # 3.2 ELEMENT OF WITH LONG HORIZONTAL STROKE..Z NOTATION BAG MEMBERSHIP +2300 ; valid ; ; NV8 # 1.1 DIAMETER SIGN +2301 ; valid ; ; NV8 # 3.0 ELECTRIC ARROW +2302..2328 ; valid ; ; NV8 # 1.1 HOUSE..KEYBOARD +2329 ; mapped ; 3008 # 1.1 LEFT-POINTING ANGLE BRACKET +232A ; mapped ; 3009 # 1.1 RIGHT-POINTING ANGLE BRACKET +232B..237A ; valid ; ; NV8 # 1.1 ERASE TO THE LEFT..APL FUNCTIONAL SYMBOL ALPHA +237B ; valid ; ; NV8 # 3.0 NOT CHECK MARK +237C ; valid ; ; NV8 # 3.2 RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW +237D..239A ; valid ; ; NV8 # 3.0 SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL +239B..23CE ; valid ; ; NV8 # 3.2 LEFT PARENTHESIS UPPER HOOK..RETURN SYMBOL +23CF..23D0 ; valid ; ; NV8 # 4.0 EJECT SYMBOL..VERTICAL LINE EXTENSION +23D1..23DB ; valid ; ; NV8 # 4.1 METRICAL BREVE..FUSE +23DC..23E7 ; valid ; ; NV8 # 5.0 TOP PARENTHESIS..ELECTRICAL INTERSECTION +23E8 ; valid ; ; NV8 # 5.2 DECIMAL EXPONENT SYMBOL +23E9..23F3 ; valid ; ; NV8 # 6.0 BLACK RIGHT-POINTING DOUBLE TRIANGLE..HOURGLASS WITH FLOWING SAND +23F4..23FA ; valid ; ; NV8 # 7.0 BLACK MEDIUM LEFT-POINTING TRIANGLE..BLACK CIRCLE FOR RECORD +23FB..23FE ; valid ; ; NV8 # 9.0 POWER SYMBOL..POWER SLEEP SYMBOL +23FF ; valid ; ; NV8 # 10.0 OBSERVER EYE SYMBOL +2400..2424 ; valid ; ; NV8 # 1.1 SYMBOL FOR NULL..SYMBOL FOR NEWLINE +2425..2426 ; valid ; ; NV8 # 3.0 SYMBOL FOR DELETE FORM TWO..SYMBOL FOR SUBSTITUTE FORM TWO +2427..243F ; disallowed # NA <reserved-2427>..<reserved-243F> +2440..244A ; valid ; ; NV8 # 1.1 OCR HOOK..OCR DOUBLE BACKSLASH +244B..245F ; disallowed # NA <reserved-244B>..<reserved-245F> +2460 ; mapped ; 0031 # 1.1 CIRCLED DIGIT ONE +2461 ; mapped ; 0032 # 1.1 CIRCLED DIGIT TWO +2462 ; mapped ; 0033 # 1.1 CIRCLED DIGIT THREE +2463 ; mapped ; 0034 # 1.1 CIRCLED DIGIT FOUR +2464 ; mapped ; 0035 # 1.1 CIRCLED DIGIT FIVE +2465 ; mapped ; 0036 # 1.1 CIRCLED DIGIT SIX +2466 ; mapped ; 0037 # 1.1 CIRCLED DIGIT SEVEN +2467 ; mapped ; 0038 # 1.1 CIRCLED DIGIT EIGHT +2468 ; mapped ; 0039 # 1.1 CIRCLED DIGIT NINE +2469 ; mapped ; 0031 0030 # 1.1 CIRCLED NUMBER TEN +246A ; mapped ; 0031 0031 # 1.1 CIRCLED NUMBER ELEVEN +246B ; mapped ; 0031 0032 # 1.1 CIRCLED NUMBER TWELVE +246C ; mapped ; 0031 0033 # 1.1 CIRCLED NUMBER THIRTEEN +246D ; mapped ; 0031 0034 # 1.1 CIRCLED NUMBER FOURTEEN +246E ; mapped ; 0031 0035 # 1.1 CIRCLED NUMBER FIFTEEN +246F ; mapped ; 0031 0036 # 1.1 CIRCLED NUMBER SIXTEEN +2470 ; mapped ; 0031 0037 # 1.1 CIRCLED NUMBER SEVENTEEN +2471 ; mapped ; 0031 0038 # 1.1 CIRCLED NUMBER EIGHTEEN +2472 ; mapped ; 0031 0039 # 1.1 CIRCLED NUMBER NINETEEN +2473 ; mapped ; 0032 0030 # 1.1 CIRCLED NUMBER TWENTY +2474 ; disallowed_STD3_mapped ; 0028 0031 0029 #1.1 PARENTHESIZED DIGIT ONE +2475 ; disallowed_STD3_mapped ; 0028 0032 0029 #1.1 PARENTHESIZED DIGIT TWO +2476 ; disallowed_STD3_mapped ; 0028 0033 0029 #1.1 PARENTHESIZED DIGIT THREE +2477 ; disallowed_STD3_mapped ; 0028 0034 0029 #1.1 PARENTHESIZED DIGIT FOUR +2478 ; disallowed_STD3_mapped ; 0028 0035 0029 #1.1 PARENTHESIZED DIGIT FIVE +2479 ; disallowed_STD3_mapped ; 0028 0036 0029 #1.1 PARENTHESIZED DIGIT SIX +247A ; disallowed_STD3_mapped ; 0028 0037 0029 #1.1 PARENTHESIZED DIGIT SEVEN +247B ; disallowed_STD3_mapped ; 0028 0038 0029 #1.1 PARENTHESIZED DIGIT EIGHT +247C ; disallowed_STD3_mapped ; 0028 0039 0029 #1.1 PARENTHESIZED DIGIT NINE +247D ; disallowed_STD3_mapped ; 0028 0031 0030 0029 #1.1 PARENTHESIZED NUMBER TEN +247E ; disallowed_STD3_mapped ; 0028 0031 0031 0029 #1.1 PARENTHESIZED NUMBER ELEVEN +247F ; disallowed_STD3_mapped ; 0028 0031 0032 0029 #1.1 PARENTHESIZED NUMBER TWELVE +2480 ; disallowed_STD3_mapped ; 0028 0031 0033 0029 #1.1 PARENTHESIZED NUMBER THIRTEEN +2481 ; disallowed_STD3_mapped ; 0028 0031 0034 0029 #1.1 PARENTHESIZED NUMBER FOURTEEN +2482 ; disallowed_STD3_mapped ; 0028 0031 0035 0029 #1.1 PARENTHESIZED NUMBER FIFTEEN +2483 ; disallowed_STD3_mapped ; 0028 0031 0036 0029 #1.1 PARENTHESIZED NUMBER SIXTEEN +2484 ; disallowed_STD3_mapped ; 0028 0031 0037 0029 #1.1 PARENTHESIZED NUMBER SEVENTEEN +2485 ; disallowed_STD3_mapped ; 0028 0031 0038 0029 #1.1 PARENTHESIZED NUMBER EIGHTEEN +2486 ; disallowed_STD3_mapped ; 0028 0031 0039 0029 #1.1 PARENTHESIZED NUMBER NINETEEN +2487 ; disallowed_STD3_mapped ; 0028 0032 0030 0029 #1.1 PARENTHESIZED NUMBER TWENTY +2488..249B ; disallowed # 1.1 DIGIT ONE FULL STOP..NUMBER TWENTY FULL STOP +249C ; disallowed_STD3_mapped ; 0028 0061 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER A +249D ; disallowed_STD3_mapped ; 0028 0062 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER B +249E ; disallowed_STD3_mapped ; 0028 0063 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER C +249F ; disallowed_STD3_mapped ; 0028 0064 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER D +24A0 ; disallowed_STD3_mapped ; 0028 0065 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER E +24A1 ; disallowed_STD3_mapped ; 0028 0066 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER F +24A2 ; disallowed_STD3_mapped ; 0028 0067 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER G +24A3 ; disallowed_STD3_mapped ; 0028 0068 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER H +24A4 ; disallowed_STD3_mapped ; 0028 0069 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER I +24A5 ; disallowed_STD3_mapped ; 0028 006A 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER J +24A6 ; disallowed_STD3_mapped ; 0028 006B 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER K +24A7 ; disallowed_STD3_mapped ; 0028 006C 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER L +24A8 ; disallowed_STD3_mapped ; 0028 006D 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER M +24A9 ; disallowed_STD3_mapped ; 0028 006E 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER N +24AA ; disallowed_STD3_mapped ; 0028 006F 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER O +24AB ; disallowed_STD3_mapped ; 0028 0070 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER P +24AC ; disallowed_STD3_mapped ; 0028 0071 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER Q +24AD ; disallowed_STD3_mapped ; 0028 0072 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER R +24AE ; disallowed_STD3_mapped ; 0028 0073 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER S +24AF ; disallowed_STD3_mapped ; 0028 0074 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER T +24B0 ; disallowed_STD3_mapped ; 0028 0075 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER U +24B1 ; disallowed_STD3_mapped ; 0028 0076 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER V +24B2 ; disallowed_STD3_mapped ; 0028 0077 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER W +24B3 ; disallowed_STD3_mapped ; 0028 0078 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER X +24B4 ; disallowed_STD3_mapped ; 0028 0079 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER Y +24B5 ; disallowed_STD3_mapped ; 0028 007A 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER Z +24B6 ; mapped ; 0061 # 1.1 CIRCLED LATIN CAPITAL LETTER A +24B7 ; mapped ; 0062 # 1.1 CIRCLED LATIN CAPITAL LETTER B +24B8 ; mapped ; 0063 # 1.1 CIRCLED LATIN CAPITAL LETTER C +24B9 ; mapped ; 0064 # 1.1 CIRCLED LATIN CAPITAL LETTER D +24BA ; mapped ; 0065 # 1.1 CIRCLED LATIN CAPITAL LETTER E +24BB ; mapped ; 0066 # 1.1 CIRCLED LATIN CAPITAL LETTER F +24BC ; mapped ; 0067 # 1.1 CIRCLED LATIN CAPITAL LETTER G +24BD ; mapped ; 0068 # 1.1 CIRCLED LATIN CAPITAL LETTER H +24BE ; mapped ; 0069 # 1.1 CIRCLED LATIN CAPITAL LETTER I +24BF ; mapped ; 006A # 1.1 CIRCLED LATIN CAPITAL LETTER J +24C0 ; mapped ; 006B # 1.1 CIRCLED LATIN CAPITAL LETTER K +24C1 ; mapped ; 006C # 1.1 CIRCLED LATIN CAPITAL LETTER L +24C2 ; mapped ; 006D # 1.1 CIRCLED LATIN CAPITAL LETTER M +24C3 ; mapped ; 006E # 1.1 CIRCLED LATIN CAPITAL LETTER N +24C4 ; mapped ; 006F # 1.1 CIRCLED LATIN CAPITAL LETTER O +24C5 ; mapped ; 0070 # 1.1 CIRCLED LATIN CAPITAL LETTER P +24C6 ; mapped ; 0071 # 1.1 CIRCLED LATIN CAPITAL LETTER Q +24C7 ; mapped ; 0072 # 1.1 CIRCLED LATIN CAPITAL LETTER R +24C8 ; mapped ; 0073 # 1.1 CIRCLED LATIN CAPITAL LETTER S +24C9 ; mapped ; 0074 # 1.1 CIRCLED LATIN CAPITAL LETTER T +24CA ; mapped ; 0075 # 1.1 CIRCLED LATIN CAPITAL LETTER U +24CB ; mapped ; 0076 # 1.1 CIRCLED LATIN CAPITAL LETTER V +24CC ; mapped ; 0077 # 1.1 CIRCLED LATIN CAPITAL LETTER W +24CD ; mapped ; 0078 # 1.1 CIRCLED LATIN CAPITAL LETTER X +24CE ; mapped ; 0079 # 1.1 CIRCLED LATIN CAPITAL LETTER Y +24CF ; mapped ; 007A # 1.1 CIRCLED LATIN CAPITAL LETTER Z +24D0 ; mapped ; 0061 # 1.1 CIRCLED LATIN SMALL LETTER A +24D1 ; mapped ; 0062 # 1.1 CIRCLED LATIN SMALL LETTER B +24D2 ; mapped ; 0063 # 1.1 CIRCLED LATIN SMALL LETTER C +24D3 ; mapped ; 0064 # 1.1 CIRCLED LATIN SMALL LETTER D +24D4 ; mapped ; 0065 # 1.1 CIRCLED LATIN SMALL LETTER E +24D5 ; mapped ; 0066 # 1.1 CIRCLED LATIN SMALL LETTER F +24D6 ; mapped ; 0067 # 1.1 CIRCLED LATIN SMALL LETTER G +24D7 ; mapped ; 0068 # 1.1 CIRCLED LATIN SMALL LETTER H +24D8 ; mapped ; 0069 # 1.1 CIRCLED LATIN SMALL LETTER I +24D9 ; mapped ; 006A # 1.1 CIRCLED LATIN SMALL LETTER J +24DA ; mapped ; 006B # 1.1 CIRCLED LATIN SMALL LETTER K +24DB ; mapped ; 006C # 1.1 CIRCLED LATIN SMALL LETTER L +24DC ; mapped ; 006D # 1.1 CIRCLED LATIN SMALL LETTER M +24DD ; mapped ; 006E # 1.1 CIRCLED LATIN SMALL LETTER N +24DE ; mapped ; 006F # 1.1 CIRCLED LATIN SMALL LETTER O +24DF ; mapped ; 0070 # 1.1 CIRCLED LATIN SMALL LETTER P +24E0 ; mapped ; 0071 # 1.1 CIRCLED LATIN SMALL LETTER Q +24E1 ; mapped ; 0072 # 1.1 CIRCLED LATIN SMALL LETTER R +24E2 ; mapped ; 0073 # 1.1 CIRCLED LATIN SMALL LETTER S +24E3 ; mapped ; 0074 # 1.1 CIRCLED LATIN SMALL LETTER T +24E4 ; mapped ; 0075 # 1.1 CIRCLED LATIN SMALL LETTER U +24E5 ; mapped ; 0076 # 1.1 CIRCLED LATIN SMALL LETTER V +24E6 ; mapped ; 0077 # 1.1 CIRCLED LATIN SMALL LETTER W +24E7 ; mapped ; 0078 # 1.1 CIRCLED LATIN SMALL LETTER X +24E8 ; mapped ; 0079 # 1.1 CIRCLED LATIN SMALL LETTER Y +24E9 ; mapped ; 007A # 1.1 CIRCLED LATIN SMALL LETTER Z +24EA ; mapped ; 0030 # 1.1 CIRCLED DIGIT ZERO +24EB..24FE ; valid ; ; NV8 # 3.2 NEGATIVE CIRCLED NUMBER ELEVEN..DOUBLE CIRCLED NUMBER TEN +24FF ; valid ; ; NV8 # 4.0 NEGATIVE CIRCLED DIGIT ZERO +2500..2595 ; valid ; ; NV8 # 1.1 BOX DRAWINGS LIGHT HORIZONTAL..RIGHT ONE EIGHTH BLOCK +2596..259F ; valid ; ; NV8 # 3.2 QUADRANT LOWER LEFT..QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT +25A0..25EF ; valid ; ; NV8 # 1.1 BLACK SQUARE..LARGE CIRCLE +25F0..25F7 ; valid ; ; NV8 # 3.0 WHITE SQUARE WITH UPPER LEFT QUADRANT..WHITE CIRCLE WITH UPPER RIGHT QUADRANT +25F8..25FF ; valid ; ; NV8 # 3.2 UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE +2600..2613 ; valid ; ; NV8 # 1.1 BLACK SUN WITH RAYS..SALTIRE +2614..2615 ; valid ; ; NV8 # 4.0 UMBRELLA WITH RAIN DROPS..HOT BEVERAGE +2616..2617 ; valid ; ; NV8 # 3.2 WHITE SHOGI PIECE..BLACK SHOGI PIECE +2618 ; valid ; ; NV8 # 4.1 SHAMROCK +2619 ; valid ; ; NV8 # 3.0 REVERSED ROTATED FLORAL HEART BULLET +261A..266F ; valid ; ; NV8 # 1.1 BLACK LEFT POINTING INDEX..MUSIC SHARP SIGN +2670..2671 ; valid ; ; NV8 # 3.0 WEST SYRIAC CROSS..EAST SYRIAC CROSS +2672..267D ; valid ; ; NV8 # 3.2 UNIVERSAL RECYCLING SYMBOL..PARTIALLY-RECYCLED PAPER SYMBOL +267E..267F ; valid ; ; NV8 # 4.1 PERMANENT PAPER SIGN..WHEELCHAIR SYMBOL +2680..2689 ; valid ; ; NV8 # 3.2 DIE FACE-1..BLACK CIRCLE WITH TWO WHITE DOTS +268A..2691 ; valid ; ; NV8 # 4.0 MONOGRAM FOR YANG..BLACK FLAG +2692..269C ; valid ; ; NV8 # 4.1 HAMMER AND PICK..FLEUR-DE-LIS +269D ; valid ; ; NV8 # 5.1 OUTLINED WHITE STAR +269E..269F ; valid ; ; NV8 # 5.2 THREE LINES CONVERGING RIGHT..THREE LINES CONVERGING LEFT +26A0..26A1 ; valid ; ; NV8 # 4.0 WARNING SIGN..HIGH VOLTAGE SIGN +26A2..26B1 ; valid ; ; NV8 # 4.1 DOUBLED FEMALE SIGN..FUNERAL URN +26B2 ; valid ; ; NV8 # 5.0 NEUTER +26B3..26BC ; valid ; ; NV8 # 5.1 CERES..SESQUIQUADRATE +26BD..26BF ; valid ; ; NV8 # 5.2 SOCCER BALL..SQUARED KEY +26C0..26C3 ; valid ; ; NV8 # 5.1 WHITE DRAUGHTS MAN..BLACK DRAUGHTS KING +26C4..26CD ; valid ; ; NV8 # 5.2 SNOWMAN WITHOUT SNOW..DISABLED CAR +26CE ; valid ; ; NV8 # 6.0 OPHIUCHUS +26CF..26E1 ; valid ; ; NV8 # 5.2 PICK..RESTRICTED LEFT ENTRY-2 +26E2 ; valid ; ; NV8 # 6.0 ASTRONOMICAL SYMBOL FOR URANUS +26E3 ; valid ; ; NV8 # 5.2 HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE +26E4..26E7 ; valid ; ; NV8 # 6.0 PENTAGRAM..INVERTED PENTAGRAM +26E8..26FF ; valid ; ; NV8 # 5.2 BLACK CROSS ON SHIELD..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE +2700 ; valid ; ; NV8 # 7.0 BLACK SAFETY SCISSORS +2701..2704 ; valid ; ; NV8 # 1.1 UPPER BLADE SCISSORS..WHITE SCISSORS +2705 ; valid ; ; NV8 # 6.0 WHITE HEAVY CHECK MARK +2706..2709 ; valid ; ; NV8 # 1.1 TELEPHONE LOCATION SIGN..ENVELOPE +270A..270B ; valid ; ; NV8 # 6.0 RAISED FIST..RAISED HAND +270C..2727 ; valid ; ; NV8 # 1.1 VICTORY HAND..WHITE FOUR POINTED STAR +2728 ; valid ; ; NV8 # 6.0 SPARKLES +2729..274B ; valid ; ; NV8 # 1.1 STRESS OUTLINED WHITE STAR..HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK +274C ; valid ; ; NV8 # 6.0 CROSS MARK +274D ; valid ; ; NV8 # 1.1 SHADOWED WHITE CIRCLE +274E ; valid ; ; NV8 # 6.0 NEGATIVE SQUARED CROSS MARK +274F..2752 ; valid ; ; NV8 # 1.1 LOWER RIGHT DROP-SHADOWED WHITE SQUARE..UPPER RIGHT SHADOWED WHITE SQUARE +2753..2755 ; valid ; ; NV8 # 6.0 BLACK QUESTION MARK ORNAMENT..WHITE EXCLAMATION MARK ORNAMENT +2756 ; valid ; ; NV8 # 1.1 BLACK DIAMOND MINUS WHITE X +2757 ; valid ; ; NV8 # 5.2 HEAVY EXCLAMATION MARK SYMBOL +2758..275E ; valid ; ; NV8 # 1.1 LIGHT VERTICAL BAR..HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT +275F..2760 ; valid ; ; NV8 # 6.0 HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT..HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT +2761..2767 ; valid ; ; NV8 # 1.1 CURVED STEM PARAGRAPH SIGN ORNAMENT..ROTATED FLORAL HEART BULLET +2768..2775 ; valid ; ; NV8 # 3.2 MEDIUM LEFT PARENTHESIS ORNAMENT..MEDIUM RIGHT CURLY BRACKET ORNAMENT +2776..2794 ; valid ; ; NV8 # 1.1 DINGBAT NEGATIVE CIRCLED DIGIT ONE..HEAVY WIDE-HEADED RIGHTWARDS ARROW +2795..2797 ; valid ; ; NV8 # 6.0 HEAVY PLUS SIGN..HEAVY DIVISION SIGN +2798..27AF ; valid ; ; NV8 # 1.1 HEAVY SOUTH EAST ARROW..NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW +27B0 ; valid ; ; NV8 # 6.0 CURLY LOOP +27B1..27BE ; valid ; ; NV8 # 1.1 NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW..OPEN-OUTLINED RIGHTWARDS ARROW +27BF ; valid ; ; NV8 # 6.0 DOUBLE CURLY LOOP +27C0..27C6 ; valid ; ; NV8 # 4.1 THREE DIMENSIONAL ANGLE..RIGHT S-SHAPED BAG DELIMITER +27C7..27CA ; valid ; ; NV8 # 5.0 OR WITH DOT INSIDE..VERTICAL BAR WITH HORIZONTAL STROKE +27CB ; valid ; ; NV8 # 6.1 MATHEMATICAL RISING DIAGONAL +27CC ; valid ; ; NV8 # 5.1 LONG DIVISION +27CD ; valid ; ; NV8 # 6.1 MATHEMATICAL FALLING DIAGONAL +27CE..27CF ; valid ; ; NV8 # 6.0 SQUARED LOGICAL AND..SQUARED LOGICAL OR +27D0..27EB ; valid ; ; NV8 # 3.2 WHITE DIAMOND WITH CENTRED DOT..MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET +27EC..27EF ; valid ; ; NV8 # 5.1 MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET..MATHEMATICAL RIGHT FLATTENED PARENTHESIS +27F0..27FF ; valid ; ; NV8 # 3.2 UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW +2800..28FF ; valid ; ; NV8 # 3.0 BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678 +2900..2A0B ; valid ; ; NV8 # 3.2 RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..SUMMATION WITH INTEGRAL +2A0C ; mapped ; 222B 222B 222B 222B #3.2 QUADRUPLE INTEGRAL OPERATOR +2A0D..2A73 ; valid ; ; NV8 # 3.2 FINITE PART INTEGRAL..EQUALS SIGN ABOVE TILDE OPERATOR +2A74 ; disallowed_STD3_mapped ; 003A 003A 003D #3.2 DOUBLE COLON EQUAL +2A75 ; disallowed_STD3_mapped ; 003D 003D # 3.2 TWO CONSECUTIVE EQUALS SIGNS +2A76 ; disallowed_STD3_mapped ; 003D 003D 003D #3.2 THREE CONSECUTIVE EQUALS SIGNS +2A77..2ADB ; valid ; ; NV8 # 3.2 EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW..TRANSVERSAL INTERSECTION +2ADC ; mapped ; 2ADD 0338 # 3.2 FORKING +2ADD..2AFF ; valid ; ; NV8 # 3.2 NONFORKING..N-ARY WHITE VERTICAL BAR +2B00..2B0D ; valid ; ; NV8 # 4.0 NORTH EAST WHITE ARROW..UP DOWN BLACK ARROW +2B0E..2B13 ; valid ; ; NV8 # 4.1 RIGHTWARDS ARROW WITH TIP DOWNWARDS..SQUARE WITH BOTTOM HALF BLACK +2B14..2B1A ; valid ; ; NV8 # 5.0 SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK..DOTTED SQUARE +2B1B..2B1F ; valid ; ; NV8 # 5.1 BLACK LARGE SQUARE..BLACK PENTAGON +2B20..2B23 ; valid ; ; NV8 # 5.0 WHITE PENTAGON..HORIZONTAL BLACK HEXAGON +2B24..2B4C ; valid ; ; NV8 # 5.1 BLACK LARGE CIRCLE..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR +2B4D..2B4F ; valid ; ; NV8 # 7.0 DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..SHORT BACKSLANTED SOUTH ARROW +2B50..2B54 ; valid ; ; NV8 # 5.1 WHITE MEDIUM STAR..WHITE RIGHT-POINTING PENTAGON +2B55..2B59 ; valid ; ; NV8 # 5.2 HEAVY LARGE CIRCLE..HEAVY CIRCLED SALTIRE +2B5A..2B73 ; valid ; ; NV8 # 7.0 SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR +2B74..2B75 ; disallowed # NA <reserved-2B74>..<reserved-2B75> +2B76..2B95 ; valid ; ; NV8 # 7.0 NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW +2B96 ; disallowed # NA <reserved-2B96> +2B97 ; valid ; ; NV8 # 13.0 SYMBOL FOR TYPE A ELECTRONICS +2B98..2BB9 ; valid ; ; NV8 # 7.0 THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX +2BBA..2BBC ; valid ; ; NV8 # 11.0 OVERLAPPING WHITE SQUARES..OVERLAPPING BLACK SQUARES +2BBD..2BC8 ; valid ; ; NV8 # 7.0 BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED +2BC9 ; valid ; ; NV8 # 12.0 NEPTUNE FORM TWO +2BCA..2BD1 ; valid ; ; NV8 # 7.0 TOP HALF BLACK CIRCLE..UNCERTAINTY SIGN +2BD2 ; valid ; ; NV8 # 10.0 GROUP MARK +2BD3..2BEB ; valid ; ; NV8 # 11.0 PLUTO FORM TWO..STAR WITH RIGHT HALF BLACK +2BEC..2BEF ; valid ; ; NV8 # 8.0 LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS..DOWNWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS +2BF0..2BFE ; valid ; ; NV8 # 11.0 ERIS FORM ONE..REVERSED RIGHT ANGLE +2BFF ; valid ; ; NV8 # 12.0 HELLSCHREIBER PAUSE SYMBOL +2C00 ; mapped ; 2C30 # 4.1 GLAGOLITIC CAPITAL LETTER AZU +2C01 ; mapped ; 2C31 # 4.1 GLAGOLITIC CAPITAL LETTER BUKY +2C02 ; mapped ; 2C32 # 4.1 GLAGOLITIC CAPITAL LETTER VEDE +2C03 ; mapped ; 2C33 # 4.1 GLAGOLITIC CAPITAL LETTER GLAGOLI +2C04 ; mapped ; 2C34 # 4.1 GLAGOLITIC CAPITAL LETTER DOBRO +2C05 ; mapped ; 2C35 # 4.1 GLAGOLITIC CAPITAL LETTER YESTU +2C06 ; mapped ; 2C36 # 4.1 GLAGOLITIC CAPITAL LETTER ZHIVETE +2C07 ; mapped ; 2C37 # 4.1 GLAGOLITIC CAPITAL LETTER DZELO +2C08 ; mapped ; 2C38 # 4.1 GLAGOLITIC CAPITAL LETTER ZEMLJA +2C09 ; mapped ; 2C39 # 4.1 GLAGOLITIC CAPITAL LETTER IZHE +2C0A ; mapped ; 2C3A # 4.1 GLAGOLITIC CAPITAL LETTER INITIAL IZHE +2C0B ; mapped ; 2C3B # 4.1 GLAGOLITIC CAPITAL LETTER I +2C0C ; mapped ; 2C3C # 4.1 GLAGOLITIC CAPITAL LETTER DJERVI +2C0D ; mapped ; 2C3D # 4.1 GLAGOLITIC CAPITAL LETTER KAKO +2C0E ; mapped ; 2C3E # 4.1 GLAGOLITIC CAPITAL LETTER LJUDIJE +2C0F ; mapped ; 2C3F # 4.1 GLAGOLITIC CAPITAL LETTER MYSLITE +2C10 ; mapped ; 2C40 # 4.1 GLAGOLITIC CAPITAL LETTER NASHI +2C11 ; mapped ; 2C41 # 4.1 GLAGOLITIC CAPITAL LETTER ONU +2C12 ; mapped ; 2C42 # 4.1 GLAGOLITIC CAPITAL LETTER POKOJI +2C13 ; mapped ; 2C43 # 4.1 GLAGOLITIC CAPITAL LETTER RITSI +2C14 ; mapped ; 2C44 # 4.1 GLAGOLITIC CAPITAL LETTER SLOVO +2C15 ; mapped ; 2C45 # 4.1 GLAGOLITIC CAPITAL LETTER TVRIDO +2C16 ; mapped ; 2C46 # 4.1 GLAGOLITIC CAPITAL LETTER UKU +2C17 ; mapped ; 2C47 # 4.1 GLAGOLITIC CAPITAL LETTER FRITU +2C18 ; mapped ; 2C48 # 4.1 GLAGOLITIC CAPITAL LETTER HERU +2C19 ; mapped ; 2C49 # 4.1 GLAGOLITIC CAPITAL LETTER OTU +2C1A ; mapped ; 2C4A # 4.1 GLAGOLITIC CAPITAL LETTER PE +2C1B ; mapped ; 2C4B # 4.1 GLAGOLITIC CAPITAL LETTER SHTA +2C1C ; mapped ; 2C4C # 4.1 GLAGOLITIC CAPITAL LETTER TSI +2C1D ; mapped ; 2C4D # 4.1 GLAGOLITIC CAPITAL LETTER CHRIVI +2C1E ; mapped ; 2C4E # 4.1 GLAGOLITIC CAPITAL LETTER SHA +2C1F ; mapped ; 2C4F # 4.1 GLAGOLITIC CAPITAL LETTER YERU +2C20 ; mapped ; 2C50 # 4.1 GLAGOLITIC CAPITAL LETTER YERI +2C21 ; mapped ; 2C51 # 4.1 GLAGOLITIC CAPITAL LETTER YATI +2C22 ; mapped ; 2C52 # 4.1 GLAGOLITIC CAPITAL LETTER SPIDERY HA +2C23 ; mapped ; 2C53 # 4.1 GLAGOLITIC CAPITAL LETTER YU +2C24 ; mapped ; 2C54 # 4.1 GLAGOLITIC CAPITAL LETTER SMALL YUS +2C25 ; mapped ; 2C55 # 4.1 GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL +2C26 ; mapped ; 2C56 # 4.1 GLAGOLITIC CAPITAL LETTER YO +2C27 ; mapped ; 2C57 # 4.1 GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS +2C28 ; mapped ; 2C58 # 4.1 GLAGOLITIC CAPITAL LETTER BIG YUS +2C29 ; mapped ; 2C59 # 4.1 GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS +2C2A ; mapped ; 2C5A # 4.1 GLAGOLITIC CAPITAL LETTER FITA +2C2B ; mapped ; 2C5B # 4.1 GLAGOLITIC CAPITAL LETTER IZHITSA +2C2C ; mapped ; 2C5C # 4.1 GLAGOLITIC CAPITAL LETTER SHTAPIC +2C2D ; mapped ; 2C5D # 4.1 GLAGOLITIC CAPITAL LETTER TROKUTASTI A +2C2E ; mapped ; 2C5E # 4.1 GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE +2C2F ; mapped ; 2C5F # 14.0 GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI +2C30..2C5E ; valid # 4.1 GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE +2C5F ; valid # 14.0 GLAGOLITIC SMALL LETTER CAUDATE CHRIVI +2C60 ; mapped ; 2C61 # 5.0 LATIN CAPITAL LETTER L WITH DOUBLE BAR +2C61 ; valid # 5.0 LATIN SMALL LETTER L WITH DOUBLE BAR +2C62 ; mapped ; 026B # 5.0 LATIN CAPITAL LETTER L WITH MIDDLE TILDE +2C63 ; mapped ; 1D7D # 5.0 LATIN CAPITAL LETTER P WITH STROKE +2C64 ; mapped ; 027D # 5.0 LATIN CAPITAL LETTER R WITH TAIL +2C65..2C66 ; valid # 5.0 LATIN SMALL LETTER A WITH STROKE..LATIN SMALL LETTER T WITH DIAGONAL STROKE +2C67 ; mapped ; 2C68 # 5.0 LATIN CAPITAL LETTER H WITH DESCENDER +2C68 ; valid # 5.0 LATIN SMALL LETTER H WITH DESCENDER +2C69 ; mapped ; 2C6A # 5.0 LATIN CAPITAL LETTER K WITH DESCENDER +2C6A ; valid # 5.0 LATIN SMALL LETTER K WITH DESCENDER +2C6B ; mapped ; 2C6C # 5.0 LATIN CAPITAL LETTER Z WITH DESCENDER +2C6C ; valid # 5.0 LATIN SMALL LETTER Z WITH DESCENDER +2C6D ; mapped ; 0251 # 5.1 LATIN CAPITAL LETTER ALPHA +2C6E ; mapped ; 0271 # 5.1 LATIN CAPITAL LETTER M WITH HOOK +2C6F ; mapped ; 0250 # 5.1 LATIN CAPITAL LETTER TURNED A +2C70 ; mapped ; 0252 # 5.2 LATIN CAPITAL LETTER TURNED ALPHA +2C71 ; valid # 5.1 LATIN SMALL LETTER V WITH RIGHT HOOK +2C72 ; mapped ; 2C73 # 5.1 LATIN CAPITAL LETTER W WITH HOOK +2C73 ; valid # 5.1 LATIN SMALL LETTER W WITH HOOK +2C74 ; valid # 5.0 LATIN SMALL LETTER V WITH CURL +2C75 ; mapped ; 2C76 # 5.0 LATIN CAPITAL LETTER HALF H +2C76..2C77 ; valid # 5.0 LATIN SMALL LETTER HALF H..LATIN SMALL LETTER TAILLESS PHI +2C78..2C7B ; valid # 5.1 LATIN SMALL LETTER E WITH NOTCH..LATIN LETTER SMALL CAPITAL TURNED E +2C7C ; mapped ; 006A # 5.1 LATIN SUBSCRIPT SMALL LETTER J +2C7D ; mapped ; 0076 # 5.1 MODIFIER LETTER CAPITAL V +2C7E ; mapped ; 023F # 5.2 LATIN CAPITAL LETTER S WITH SWASH TAIL +2C7F ; mapped ; 0240 # 5.2 LATIN CAPITAL LETTER Z WITH SWASH TAIL +2C80 ; mapped ; 2C81 # 4.1 COPTIC CAPITAL LETTER ALFA +2C81 ; valid # 4.1 COPTIC SMALL LETTER ALFA +2C82 ; mapped ; 2C83 # 4.1 COPTIC CAPITAL LETTER VIDA +2C83 ; valid # 4.1 COPTIC SMALL LETTER VIDA +2C84 ; mapped ; 2C85 # 4.1 COPTIC CAPITAL LETTER GAMMA +2C85 ; valid # 4.1 COPTIC SMALL LETTER GAMMA +2C86 ; mapped ; 2C87 # 4.1 COPTIC CAPITAL LETTER DALDA +2C87 ; valid # 4.1 COPTIC SMALL LETTER DALDA +2C88 ; mapped ; 2C89 # 4.1 COPTIC CAPITAL LETTER EIE +2C89 ; valid # 4.1 COPTIC SMALL LETTER EIE +2C8A ; mapped ; 2C8B # 4.1 COPTIC CAPITAL LETTER SOU +2C8B ; valid # 4.1 COPTIC SMALL LETTER SOU +2C8C ; mapped ; 2C8D # 4.1 COPTIC CAPITAL LETTER ZATA +2C8D ; valid # 4.1 COPTIC SMALL LETTER ZATA +2C8E ; mapped ; 2C8F # 4.1 COPTIC CAPITAL LETTER HATE +2C8F ; valid # 4.1 COPTIC SMALL LETTER HATE +2C90 ; mapped ; 2C91 # 4.1 COPTIC CAPITAL LETTER THETHE +2C91 ; valid # 4.1 COPTIC SMALL LETTER THETHE +2C92 ; mapped ; 2C93 # 4.1 COPTIC CAPITAL LETTER IAUDA +2C93 ; valid # 4.1 COPTIC SMALL LETTER IAUDA +2C94 ; mapped ; 2C95 # 4.1 COPTIC CAPITAL LETTER KAPA +2C95 ; valid # 4.1 COPTIC SMALL LETTER KAPA +2C96 ; mapped ; 2C97 # 4.1 COPTIC CAPITAL LETTER LAULA +2C97 ; valid # 4.1 COPTIC SMALL LETTER LAULA +2C98 ; mapped ; 2C99 # 4.1 COPTIC CAPITAL LETTER MI +2C99 ; valid # 4.1 COPTIC SMALL LETTER MI +2C9A ; mapped ; 2C9B # 4.1 COPTIC CAPITAL LETTER NI +2C9B ; valid # 4.1 COPTIC SMALL LETTER NI +2C9C ; mapped ; 2C9D # 4.1 COPTIC CAPITAL LETTER KSI +2C9D ; valid # 4.1 COPTIC SMALL LETTER KSI +2C9E ; mapped ; 2C9F # 4.1 COPTIC CAPITAL LETTER O +2C9F ; valid # 4.1 COPTIC SMALL LETTER O +2CA0 ; mapped ; 2CA1 # 4.1 COPTIC CAPITAL LETTER PI +2CA1 ; valid # 4.1 COPTIC SMALL LETTER PI +2CA2 ; mapped ; 2CA3 # 4.1 COPTIC CAPITAL LETTER RO +2CA3 ; valid # 4.1 COPTIC SMALL LETTER RO +2CA4 ; mapped ; 2CA5 # 4.1 COPTIC CAPITAL LETTER SIMA +2CA5 ; valid # 4.1 COPTIC SMALL LETTER SIMA +2CA6 ; mapped ; 2CA7 # 4.1 COPTIC CAPITAL LETTER TAU +2CA7 ; valid # 4.1 COPTIC SMALL LETTER TAU +2CA8 ; mapped ; 2CA9 # 4.1 COPTIC CAPITAL LETTER UA +2CA9 ; valid # 4.1 COPTIC SMALL LETTER UA +2CAA ; mapped ; 2CAB # 4.1 COPTIC CAPITAL LETTER FI +2CAB ; valid # 4.1 COPTIC SMALL LETTER FI +2CAC ; mapped ; 2CAD # 4.1 COPTIC CAPITAL LETTER KHI +2CAD ; valid # 4.1 COPTIC SMALL LETTER KHI +2CAE ; mapped ; 2CAF # 4.1 COPTIC CAPITAL LETTER PSI +2CAF ; valid # 4.1 COPTIC SMALL LETTER PSI +2CB0 ; mapped ; 2CB1 # 4.1 COPTIC CAPITAL LETTER OOU +2CB1 ; valid # 4.1 COPTIC SMALL LETTER OOU +2CB2 ; mapped ; 2CB3 # 4.1 COPTIC CAPITAL LETTER DIALECT-P ALEF +2CB3 ; valid # 4.1 COPTIC SMALL LETTER DIALECT-P ALEF +2CB4 ; mapped ; 2CB5 # 4.1 COPTIC CAPITAL LETTER OLD COPTIC AIN +2CB5 ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC AIN +2CB6 ; mapped ; 2CB7 # 4.1 COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE +2CB7 ; valid # 4.1 COPTIC SMALL LETTER CRYPTOGRAMMIC EIE +2CB8 ; mapped ; 2CB9 # 4.1 COPTIC CAPITAL LETTER DIALECT-P KAPA +2CB9 ; valid # 4.1 COPTIC SMALL LETTER DIALECT-P KAPA +2CBA ; mapped ; 2CBB # 4.1 COPTIC CAPITAL LETTER DIALECT-P NI +2CBB ; valid # 4.1 COPTIC SMALL LETTER DIALECT-P NI +2CBC ; mapped ; 2CBD # 4.1 COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI +2CBD ; valid # 4.1 COPTIC SMALL LETTER CRYPTOGRAMMIC NI +2CBE ; mapped ; 2CBF # 4.1 COPTIC CAPITAL LETTER OLD COPTIC OOU +2CBF ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC OOU +2CC0 ; mapped ; 2CC1 # 4.1 COPTIC CAPITAL LETTER SAMPI +2CC1 ; valid # 4.1 COPTIC SMALL LETTER SAMPI +2CC2 ; mapped ; 2CC3 # 4.1 COPTIC CAPITAL LETTER CROSSED SHEI +2CC3 ; valid # 4.1 COPTIC SMALL LETTER CROSSED SHEI +2CC4 ; mapped ; 2CC5 # 4.1 COPTIC CAPITAL LETTER OLD COPTIC SHEI +2CC5 ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC SHEI +2CC6 ; mapped ; 2CC7 # 4.1 COPTIC CAPITAL LETTER OLD COPTIC ESH +2CC7 ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC ESH +2CC8 ; mapped ; 2CC9 # 4.1 COPTIC CAPITAL LETTER AKHMIMIC KHEI +2CC9 ; valid # 4.1 COPTIC SMALL LETTER AKHMIMIC KHEI +2CCA ; mapped ; 2CCB # 4.1 COPTIC CAPITAL LETTER DIALECT-P HORI +2CCB ; valid # 4.1 COPTIC SMALL LETTER DIALECT-P HORI +2CCC ; mapped ; 2CCD # 4.1 COPTIC CAPITAL LETTER OLD COPTIC HORI +2CCD ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC HORI +2CCE ; mapped ; 2CCF # 4.1 COPTIC CAPITAL LETTER OLD COPTIC HA +2CCF ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC HA +2CD0 ; mapped ; 2CD1 # 4.1 COPTIC CAPITAL LETTER L-SHAPED HA +2CD1 ; valid # 4.1 COPTIC SMALL LETTER L-SHAPED HA +2CD2 ; mapped ; 2CD3 # 4.1 COPTIC CAPITAL LETTER OLD COPTIC HEI +2CD3 ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC HEI +2CD4 ; mapped ; 2CD5 # 4.1 COPTIC CAPITAL LETTER OLD COPTIC HAT +2CD5 ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC HAT +2CD6 ; mapped ; 2CD7 # 4.1 COPTIC CAPITAL LETTER OLD COPTIC GANGIA +2CD7 ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC GANGIA +2CD8 ; mapped ; 2CD9 # 4.1 COPTIC CAPITAL LETTER OLD COPTIC DJA +2CD9 ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC DJA +2CDA ; mapped ; 2CDB # 4.1 COPTIC CAPITAL LETTER OLD COPTIC SHIMA +2CDB ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC SHIMA +2CDC ; mapped ; 2CDD # 4.1 COPTIC CAPITAL LETTER OLD NUBIAN SHIMA +2CDD ; valid # 4.1 COPTIC SMALL LETTER OLD NUBIAN SHIMA +2CDE ; mapped ; 2CDF # 4.1 COPTIC CAPITAL LETTER OLD NUBIAN NGI +2CDF ; valid # 4.1 COPTIC SMALL LETTER OLD NUBIAN NGI +2CE0 ; mapped ; 2CE1 # 4.1 COPTIC CAPITAL LETTER OLD NUBIAN NYI +2CE1 ; valid # 4.1 COPTIC SMALL LETTER OLD NUBIAN NYI +2CE2 ; mapped ; 2CE3 # 4.1 COPTIC CAPITAL LETTER OLD NUBIAN WAU +2CE3..2CE4 ; valid # 4.1 COPTIC SMALL LETTER OLD NUBIAN WAU..COPTIC SYMBOL KAI +2CE5..2CEA ; valid ; ; NV8 # 4.1 COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA +2CEB ; mapped ; 2CEC # 5.2 COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI +2CEC ; valid # 5.2 COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI +2CED ; mapped ; 2CEE # 5.2 COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA +2CEE..2CF1 ; valid # 5.2 COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA..COPTIC COMBINING SPIRITUS LENIS +2CF2 ; mapped ; 2CF3 # 6.1 COPTIC CAPITAL LETTER BOHAIRIC KHEI +2CF3 ; valid # 6.1 COPTIC SMALL LETTER BOHAIRIC KHEI +2CF4..2CF8 ; disallowed # NA <reserved-2CF4>..<reserved-2CF8> +2CF9..2CFF ; valid ; ; NV8 # 4.1 COPTIC OLD NUBIAN FULL STOP..COPTIC MORPHOLOGICAL DIVIDER +2D00..2D25 ; valid # 4.1 GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE +2D26 ; disallowed # NA <reserved-2D26> +2D27 ; valid # 6.1 GEORGIAN SMALL LETTER YN +2D28..2D2C ; disallowed # NA <reserved-2D28>..<reserved-2D2C> +2D2D ; valid # 6.1 GEORGIAN SMALL LETTER AEN +2D2E..2D2F ; disallowed # NA <reserved-2D2E>..<reserved-2D2F> +2D30..2D65 ; valid # 4.1 TIFINAGH LETTER YA..TIFINAGH LETTER YAZZ +2D66..2D67 ; valid # 6.1 TIFINAGH LETTER YE..TIFINAGH LETTER YO +2D68..2D6E ; disallowed # NA <reserved-2D68>..<reserved-2D6E> +2D6F ; mapped ; 2D61 # 4.1 TIFINAGH MODIFIER LETTER LABIALIZATION MARK +2D70 ; valid ; ; NV8 # 6.0 TIFINAGH SEPARATOR MARK +2D71..2D7E ; disallowed # NA <reserved-2D71>..<reserved-2D7E> +2D7F ; valid # 6.0 TIFINAGH CONSONANT JOINER +2D80..2D96 ; valid # 4.1 ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE +2D97..2D9F ; disallowed # NA <reserved-2D97>..<reserved-2D9F> +2DA0..2DA6 ; valid # 4.1 ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO +2DA7 ; disallowed # NA <reserved-2DA7> +2DA8..2DAE ; valid # 4.1 ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO +2DAF ; disallowed # NA <reserved-2DAF> +2DB0..2DB6 ; valid # 4.1 ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO +2DB7 ; disallowed # NA <reserved-2DB7> +2DB8..2DBE ; valid # 4.1 ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO +2DBF ; disallowed # NA <reserved-2DBF> +2DC0..2DC6 ; valid # 4.1 ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO +2DC7 ; disallowed # NA <reserved-2DC7> +2DC8..2DCE ; valid # 4.1 ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO +2DCF ; disallowed # NA <reserved-2DCF> +2DD0..2DD6 ; valid # 4.1 ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO +2DD7 ; disallowed # NA <reserved-2DD7> +2DD8..2DDE ; valid # 4.1 ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO +2DDF ; disallowed # NA <reserved-2DDF> +2DE0..2DFF ; valid # 5.1 COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS +2E00..2E17 ; valid ; ; NV8 # 4.1 RIGHT ANGLE SUBSTITUTION MARKER..DOUBLE OBLIQUE HYPHEN +2E18..2E1B ; valid ; ; NV8 # 5.1 INVERTED INTERROBANG..TILDE WITH RING ABOVE +2E1C..2E1D ; valid ; ; NV8 # 4.1 LEFT LOW PARAPHRASE BRACKET..RIGHT LOW PARAPHRASE BRACKET +2E1E..2E2E ; valid ; ; NV8 # 5.1 TILDE WITH DOT ABOVE..REVERSED QUESTION MARK +2E2F ; valid # 5.1 VERTICAL TILDE +2E30 ; valid ; ; NV8 # 5.1 RING POINT +2E31 ; valid ; ; NV8 # 5.2 WORD SEPARATOR MIDDLE DOT +2E32..2E3B ; valid ; ; NV8 # 6.1 TURNED COMMA..THREE-EM DASH +2E3C..2E42 ; valid ; ; NV8 # 7.0 STENOGRAPHIC FULL STOP..DOUBLE LOW-REVERSED-9 QUOTATION MARK +2E43..2E44 ; valid ; ; NV8 # 9.0 DASH WITH LEFT UPTURN..DOUBLE SUSPENSION MARK +2E45..2E49 ; valid ; ; NV8 # 10.0 INVERTED LOW KAVYKA..DOUBLE STACKED COMMA +2E4A..2E4E ; valid ; ; NV8 # 11.0 DOTTED SOLIDUS..PUNCTUS ELEVATUS MARK +2E4F ; valid ; ; NV8 # 12.0 CORNISH VERSE DIVIDER +2E50..2E52 ; valid ; ; NV8 # 13.0 CROSS PATTY WITH RIGHT CROSSBAR..TIRONIAN SIGN CAPITAL ET +2E53..2E5D ; valid ; ; NV8 # 14.0 MEDIEVAL EXCLAMATION MARK..OBLIQUE HYPHEN +2E5E..2E7F ; disallowed # NA <reserved-2E5E>..<reserved-2E7F> +2E80..2E99 ; valid ; ; NV8 # 3.0 CJK RADICAL REPEAT..CJK RADICAL RAP +2E9A ; disallowed # NA <reserved-2E9A> +2E9B..2E9E ; valid ; ; NV8 # 3.0 CJK RADICAL CHOKE..CJK RADICAL DEATH +2E9F ; mapped ; 6BCD # 3.0 CJK RADICAL MOTHER +2EA0..2EF2 ; valid ; ; NV8 # 3.0 CJK RADICAL CIVILIAN..CJK RADICAL J-SIMPLIFIED TURTLE +2EF3 ; mapped ; 9F9F # 3.0 CJK RADICAL C-SIMPLIFIED TURTLE +2EF4..2EFF ; disallowed # NA <reserved-2EF4>..<reserved-2EFF> +2F00 ; mapped ; 4E00 # 3.0 KANGXI RADICAL ONE +2F01 ; mapped ; 4E28 # 3.0 KANGXI RADICAL LINE +2F02 ; mapped ; 4E36 # 3.0 KANGXI RADICAL DOT +2F03 ; mapped ; 4E3F # 3.0 KANGXI RADICAL SLASH +2F04 ; mapped ; 4E59 # 3.0 KANGXI RADICAL SECOND +2F05 ; mapped ; 4E85 # 3.0 KANGXI RADICAL HOOK +2F06 ; mapped ; 4E8C # 3.0 KANGXI RADICAL TWO +2F07 ; mapped ; 4EA0 # 3.0 KANGXI RADICAL LID +2F08 ; mapped ; 4EBA # 3.0 KANGXI RADICAL MAN +2F09 ; mapped ; 513F # 3.0 KANGXI RADICAL LEGS +2F0A ; mapped ; 5165 # 3.0 KANGXI RADICAL ENTER +2F0B ; mapped ; 516B # 3.0 KANGXI RADICAL EIGHT +2F0C ; mapped ; 5182 # 3.0 KANGXI RADICAL DOWN BOX +2F0D ; mapped ; 5196 # 3.0 KANGXI RADICAL COVER +2F0E ; mapped ; 51AB # 3.0 KANGXI RADICAL ICE +2F0F ; mapped ; 51E0 # 3.0 KANGXI RADICAL TABLE +2F10 ; mapped ; 51F5 # 3.0 KANGXI RADICAL OPEN BOX +2F11 ; mapped ; 5200 # 3.0 KANGXI RADICAL KNIFE +2F12 ; mapped ; 529B # 3.0 KANGXI RADICAL POWER +2F13 ; mapped ; 52F9 # 3.0 KANGXI RADICAL WRAP +2F14 ; mapped ; 5315 # 3.0 KANGXI RADICAL SPOON +2F15 ; mapped ; 531A # 3.0 KANGXI RADICAL RIGHT OPEN BOX +2F16 ; mapped ; 5338 # 3.0 KANGXI RADICAL HIDING ENCLOSURE +2F17 ; mapped ; 5341 # 3.0 KANGXI RADICAL TEN +2F18 ; mapped ; 535C # 3.0 KANGXI RADICAL DIVINATION +2F19 ; mapped ; 5369 # 3.0 KANGXI RADICAL SEAL +2F1A ; mapped ; 5382 # 3.0 KANGXI RADICAL CLIFF +2F1B ; mapped ; 53B6 # 3.0 KANGXI RADICAL PRIVATE +2F1C ; mapped ; 53C8 # 3.0 KANGXI RADICAL AGAIN +2F1D ; mapped ; 53E3 # 3.0 KANGXI RADICAL MOUTH +2F1E ; mapped ; 56D7 # 3.0 KANGXI RADICAL ENCLOSURE +2F1F ; mapped ; 571F # 3.0 KANGXI RADICAL EARTH +2F20 ; mapped ; 58EB # 3.0 KANGXI RADICAL SCHOLAR +2F21 ; mapped ; 5902 # 3.0 KANGXI RADICAL GO +2F22 ; mapped ; 590A # 3.0 KANGXI RADICAL GO SLOWLY +2F23 ; mapped ; 5915 # 3.0 KANGXI RADICAL EVENING +2F24 ; mapped ; 5927 # 3.0 KANGXI RADICAL BIG +2F25 ; mapped ; 5973 # 3.0 KANGXI RADICAL WOMAN +2F26 ; mapped ; 5B50 # 3.0 KANGXI RADICAL CHILD +2F27 ; mapped ; 5B80 # 3.0 KANGXI RADICAL ROOF +2F28 ; mapped ; 5BF8 # 3.0 KANGXI RADICAL INCH +2F29 ; mapped ; 5C0F # 3.0 KANGXI RADICAL SMALL +2F2A ; mapped ; 5C22 # 3.0 KANGXI RADICAL LAME +2F2B ; mapped ; 5C38 # 3.0 KANGXI RADICAL CORPSE +2F2C ; mapped ; 5C6E # 3.0 KANGXI RADICAL SPROUT +2F2D ; mapped ; 5C71 # 3.0 KANGXI RADICAL MOUNTAIN +2F2E ; mapped ; 5DDB # 3.0 KANGXI RADICAL RIVER +2F2F ; mapped ; 5DE5 # 3.0 KANGXI RADICAL WORK +2F30 ; mapped ; 5DF1 # 3.0 KANGXI RADICAL ONESELF +2F31 ; mapped ; 5DFE # 3.0 KANGXI RADICAL TURBAN +2F32 ; mapped ; 5E72 # 3.0 KANGXI RADICAL DRY +2F33 ; mapped ; 5E7A # 3.0 KANGXI RADICAL SHORT THREAD +2F34 ; mapped ; 5E7F # 3.0 KANGXI RADICAL DOTTED CLIFF +2F35 ; mapped ; 5EF4 # 3.0 KANGXI RADICAL LONG STRIDE +2F36 ; mapped ; 5EFE # 3.0 KANGXI RADICAL TWO HANDS +2F37 ; mapped ; 5F0B # 3.0 KANGXI RADICAL SHOOT +2F38 ; mapped ; 5F13 # 3.0 KANGXI RADICAL BOW +2F39 ; mapped ; 5F50 # 3.0 KANGXI RADICAL SNOUT +2F3A ; mapped ; 5F61 # 3.0 KANGXI RADICAL BRISTLE +2F3B ; mapped ; 5F73 # 3.0 KANGXI RADICAL STEP +2F3C ; mapped ; 5FC3 # 3.0 KANGXI RADICAL HEART +2F3D ; mapped ; 6208 # 3.0 KANGXI RADICAL HALBERD +2F3E ; mapped ; 6236 # 3.0 KANGXI RADICAL DOOR +2F3F ; mapped ; 624B # 3.0 KANGXI RADICAL HAND +2F40 ; mapped ; 652F # 3.0 KANGXI RADICAL BRANCH +2F41 ; mapped ; 6534 # 3.0 KANGXI RADICAL RAP +2F42 ; mapped ; 6587 # 3.0 KANGXI RADICAL SCRIPT +2F43 ; mapped ; 6597 # 3.0 KANGXI RADICAL DIPPER +2F44 ; mapped ; 65A4 # 3.0 KANGXI RADICAL AXE +2F45 ; mapped ; 65B9 # 3.0 KANGXI RADICAL SQUARE +2F46 ; mapped ; 65E0 # 3.0 KANGXI RADICAL NOT +2F47 ; mapped ; 65E5 # 3.0 KANGXI RADICAL SUN +2F48 ; mapped ; 66F0 # 3.0 KANGXI RADICAL SAY +2F49 ; mapped ; 6708 # 3.0 KANGXI RADICAL MOON +2F4A ; mapped ; 6728 # 3.0 KANGXI RADICAL TREE +2F4B ; mapped ; 6B20 # 3.0 KANGXI RADICAL LACK +2F4C ; mapped ; 6B62 # 3.0 KANGXI RADICAL STOP +2F4D ; mapped ; 6B79 # 3.0 KANGXI RADICAL DEATH +2F4E ; mapped ; 6BB3 # 3.0 KANGXI RADICAL WEAPON +2F4F ; mapped ; 6BCB # 3.0 KANGXI RADICAL DO NOT +2F50 ; mapped ; 6BD4 # 3.0 KANGXI RADICAL COMPARE +2F51 ; mapped ; 6BDB # 3.0 KANGXI RADICAL FUR +2F52 ; mapped ; 6C0F # 3.0 KANGXI RADICAL CLAN +2F53 ; mapped ; 6C14 # 3.0 KANGXI RADICAL STEAM +2F54 ; mapped ; 6C34 # 3.0 KANGXI RADICAL WATER +2F55 ; mapped ; 706B # 3.0 KANGXI RADICAL FIRE +2F56 ; mapped ; 722A # 3.0 KANGXI RADICAL CLAW +2F57 ; mapped ; 7236 # 3.0 KANGXI RADICAL FATHER +2F58 ; mapped ; 723B # 3.0 KANGXI RADICAL DOUBLE X +2F59 ; mapped ; 723F # 3.0 KANGXI RADICAL HALF TREE TRUNK +2F5A ; mapped ; 7247 # 3.0 KANGXI RADICAL SLICE +2F5B ; mapped ; 7259 # 3.0 KANGXI RADICAL FANG +2F5C ; mapped ; 725B # 3.0 KANGXI RADICAL COW +2F5D ; mapped ; 72AC # 3.0 KANGXI RADICAL DOG +2F5E ; mapped ; 7384 # 3.0 KANGXI RADICAL PROFOUND +2F5F ; mapped ; 7389 # 3.0 KANGXI RADICAL JADE +2F60 ; mapped ; 74DC # 3.0 KANGXI RADICAL MELON +2F61 ; mapped ; 74E6 # 3.0 KANGXI RADICAL TILE +2F62 ; mapped ; 7518 # 3.0 KANGXI RADICAL SWEET +2F63 ; mapped ; 751F # 3.0 KANGXI RADICAL LIFE +2F64 ; mapped ; 7528 # 3.0 KANGXI RADICAL USE +2F65 ; mapped ; 7530 # 3.0 KANGXI RADICAL FIELD +2F66 ; mapped ; 758B # 3.0 KANGXI RADICAL BOLT OF CLOTH +2F67 ; mapped ; 7592 # 3.0 KANGXI RADICAL SICKNESS +2F68 ; mapped ; 7676 # 3.0 KANGXI RADICAL DOTTED TENT +2F69 ; mapped ; 767D # 3.0 KANGXI RADICAL WHITE +2F6A ; mapped ; 76AE # 3.0 KANGXI RADICAL SKIN +2F6B ; mapped ; 76BF # 3.0 KANGXI RADICAL DISH +2F6C ; mapped ; 76EE # 3.0 KANGXI RADICAL EYE +2F6D ; mapped ; 77DB # 3.0 KANGXI RADICAL SPEAR +2F6E ; mapped ; 77E2 # 3.0 KANGXI RADICAL ARROW +2F6F ; mapped ; 77F3 # 3.0 KANGXI RADICAL STONE +2F70 ; mapped ; 793A # 3.0 KANGXI RADICAL SPIRIT +2F71 ; mapped ; 79B8 # 3.0 KANGXI RADICAL TRACK +2F72 ; mapped ; 79BE # 3.0 KANGXI RADICAL GRAIN +2F73 ; mapped ; 7A74 # 3.0 KANGXI RADICAL CAVE +2F74 ; mapped ; 7ACB # 3.0 KANGXI RADICAL STAND +2F75 ; mapped ; 7AF9 # 3.0 KANGXI RADICAL BAMBOO +2F76 ; mapped ; 7C73 # 3.0 KANGXI RADICAL RICE +2F77 ; mapped ; 7CF8 # 3.0 KANGXI RADICAL SILK +2F78 ; mapped ; 7F36 # 3.0 KANGXI RADICAL JAR +2F79 ; mapped ; 7F51 # 3.0 KANGXI RADICAL NET +2F7A ; mapped ; 7F8A # 3.0 KANGXI RADICAL SHEEP +2F7B ; mapped ; 7FBD # 3.0 KANGXI RADICAL FEATHER +2F7C ; mapped ; 8001 # 3.0 KANGXI RADICAL OLD +2F7D ; mapped ; 800C # 3.0 KANGXI RADICAL AND +2F7E ; mapped ; 8012 # 3.0 KANGXI RADICAL PLOW +2F7F ; mapped ; 8033 # 3.0 KANGXI RADICAL EAR +2F80 ; mapped ; 807F # 3.0 KANGXI RADICAL BRUSH +2F81 ; mapped ; 8089 # 3.0 KANGXI RADICAL MEAT +2F82 ; mapped ; 81E3 # 3.0 KANGXI RADICAL MINISTER +2F83 ; mapped ; 81EA # 3.0 KANGXI RADICAL SELF +2F84 ; mapped ; 81F3 # 3.0 KANGXI RADICAL ARRIVE +2F85 ; mapped ; 81FC # 3.0 KANGXI RADICAL MORTAR +2F86 ; mapped ; 820C # 3.0 KANGXI RADICAL TONGUE +2F87 ; mapped ; 821B # 3.0 KANGXI RADICAL OPPOSE +2F88 ; mapped ; 821F # 3.0 KANGXI RADICAL BOAT +2F89 ; mapped ; 826E # 3.0 KANGXI RADICAL STOPPING +2F8A ; mapped ; 8272 # 3.0 KANGXI RADICAL COLOR +2F8B ; mapped ; 8278 # 3.0 KANGXI RADICAL GRASS +2F8C ; mapped ; 864D # 3.0 KANGXI RADICAL TIGER +2F8D ; mapped ; 866B # 3.0 KANGXI RADICAL INSECT +2F8E ; mapped ; 8840 # 3.0 KANGXI RADICAL BLOOD +2F8F ; mapped ; 884C # 3.0 KANGXI RADICAL WALK ENCLOSURE +2F90 ; mapped ; 8863 # 3.0 KANGXI RADICAL CLOTHES +2F91 ; mapped ; 897E # 3.0 KANGXI RADICAL WEST +2F92 ; mapped ; 898B # 3.0 KANGXI RADICAL SEE +2F93 ; mapped ; 89D2 # 3.0 KANGXI RADICAL HORN +2F94 ; mapped ; 8A00 # 3.0 KANGXI RADICAL SPEECH +2F95 ; mapped ; 8C37 # 3.0 KANGXI RADICAL VALLEY +2F96 ; mapped ; 8C46 # 3.0 KANGXI RADICAL BEAN +2F97 ; mapped ; 8C55 # 3.0 KANGXI RADICAL PIG +2F98 ; mapped ; 8C78 # 3.0 KANGXI RADICAL BADGER +2F99 ; mapped ; 8C9D # 3.0 KANGXI RADICAL SHELL +2F9A ; mapped ; 8D64 # 3.0 KANGXI RADICAL RED +2F9B ; mapped ; 8D70 # 3.0 KANGXI RADICAL RUN +2F9C ; mapped ; 8DB3 # 3.0 KANGXI RADICAL FOOT +2F9D ; mapped ; 8EAB # 3.0 KANGXI RADICAL BODY +2F9E ; mapped ; 8ECA # 3.0 KANGXI RADICAL CART +2F9F ; mapped ; 8F9B # 3.0 KANGXI RADICAL BITTER +2FA0 ; mapped ; 8FB0 # 3.0 KANGXI RADICAL MORNING +2FA1 ; mapped ; 8FB5 # 3.0 KANGXI RADICAL WALK +2FA2 ; mapped ; 9091 # 3.0 KANGXI RADICAL CITY +2FA3 ; mapped ; 9149 # 3.0 KANGXI RADICAL WINE +2FA4 ; mapped ; 91C6 # 3.0 KANGXI RADICAL DISTINGUISH +2FA5 ; mapped ; 91CC # 3.0 KANGXI RADICAL VILLAGE +2FA6 ; mapped ; 91D1 # 3.0 KANGXI RADICAL GOLD +2FA7 ; mapped ; 9577 # 3.0 KANGXI RADICAL LONG +2FA8 ; mapped ; 9580 # 3.0 KANGXI RADICAL GATE +2FA9 ; mapped ; 961C # 3.0 KANGXI RADICAL MOUND +2FAA ; mapped ; 96B6 # 3.0 KANGXI RADICAL SLAVE +2FAB ; mapped ; 96B9 # 3.0 KANGXI RADICAL SHORT TAILED BIRD +2FAC ; mapped ; 96E8 # 3.0 KANGXI RADICAL RAIN +2FAD ; mapped ; 9751 # 3.0 KANGXI RADICAL BLUE +2FAE ; mapped ; 975E # 3.0 KANGXI RADICAL WRONG +2FAF ; mapped ; 9762 # 3.0 KANGXI RADICAL FACE +2FB0 ; mapped ; 9769 # 3.0 KANGXI RADICAL LEATHER +2FB1 ; mapped ; 97CB # 3.0 KANGXI RADICAL TANNED LEATHER +2FB2 ; mapped ; 97ED # 3.0 KANGXI RADICAL LEEK +2FB3 ; mapped ; 97F3 # 3.0 KANGXI RADICAL SOUND +2FB4 ; mapped ; 9801 # 3.0 KANGXI RADICAL LEAF +2FB5 ; mapped ; 98A8 # 3.0 KANGXI RADICAL WIND +2FB6 ; mapped ; 98DB # 3.0 KANGXI RADICAL FLY +2FB7 ; mapped ; 98DF # 3.0 KANGXI RADICAL EAT +2FB8 ; mapped ; 9996 # 3.0 KANGXI RADICAL HEAD +2FB9 ; mapped ; 9999 # 3.0 KANGXI RADICAL FRAGRANT +2FBA ; mapped ; 99AC # 3.0 KANGXI RADICAL HORSE +2FBB ; mapped ; 9AA8 # 3.0 KANGXI RADICAL BONE +2FBC ; mapped ; 9AD8 # 3.0 KANGXI RADICAL TALL +2FBD ; mapped ; 9ADF # 3.0 KANGXI RADICAL HAIR +2FBE ; mapped ; 9B25 # 3.0 KANGXI RADICAL FIGHT +2FBF ; mapped ; 9B2F # 3.0 KANGXI RADICAL SACRIFICIAL WINE +2FC0 ; mapped ; 9B32 # 3.0 KANGXI RADICAL CAULDRON +2FC1 ; mapped ; 9B3C # 3.0 KANGXI RADICAL GHOST +2FC2 ; mapped ; 9B5A # 3.0 KANGXI RADICAL FISH +2FC3 ; mapped ; 9CE5 # 3.0 KANGXI RADICAL BIRD +2FC4 ; mapped ; 9E75 # 3.0 KANGXI RADICAL SALT +2FC5 ; mapped ; 9E7F # 3.0 KANGXI RADICAL DEER +2FC6 ; mapped ; 9EA5 # 3.0 KANGXI RADICAL WHEAT +2FC7 ; mapped ; 9EBB # 3.0 KANGXI RADICAL HEMP +2FC8 ; mapped ; 9EC3 # 3.0 KANGXI RADICAL YELLOW +2FC9 ; mapped ; 9ECD # 3.0 KANGXI RADICAL MILLET +2FCA ; mapped ; 9ED1 # 3.0 KANGXI RADICAL BLACK +2FCB ; mapped ; 9EF9 # 3.0 KANGXI RADICAL EMBROIDERY +2FCC ; mapped ; 9EFD # 3.0 KANGXI RADICAL FROG +2FCD ; mapped ; 9F0E # 3.0 KANGXI RADICAL TRIPOD +2FCE ; mapped ; 9F13 # 3.0 KANGXI RADICAL DRUM +2FCF ; mapped ; 9F20 # 3.0 KANGXI RADICAL RAT +2FD0 ; mapped ; 9F3B # 3.0 KANGXI RADICAL NOSE +2FD1 ; mapped ; 9F4A # 3.0 KANGXI RADICAL EVEN +2FD2 ; mapped ; 9F52 # 3.0 KANGXI RADICAL TOOTH +2FD3 ; mapped ; 9F8D # 3.0 KANGXI RADICAL DRAGON +2FD4 ; mapped ; 9F9C # 3.0 KANGXI RADICAL TURTLE +2FD5 ; mapped ; 9FA0 # 3.0 KANGXI RADICAL FLUTE +2FD6..2FEF ; disallowed # NA <reserved-2FD6>..<reserved-2FEF> +2FF0..2FFB ; disallowed # 3.0 IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID +2FFC..2FFF ; disallowed # NA <reserved-2FFC>..<reserved-2FFF> +3000 ; disallowed_STD3_mapped ; 0020 # 1.1 IDEOGRAPHIC SPACE +3001 ; valid ; ; NV8 # 1.1 IDEOGRAPHIC COMMA +3002 ; mapped ; 002E # 1.1 IDEOGRAPHIC FULL STOP +3003..3004 ; valid ; ; NV8 # 1.1 DITTO MARK..JAPANESE INDUSTRIAL STANDARD SYMBOL +3005..3007 ; valid # 1.1 IDEOGRAPHIC ITERATION MARK..IDEOGRAPHIC NUMBER ZERO +3008..3029 ; valid ; ; NV8 # 1.1 LEFT ANGLE BRACKET..HANGZHOU NUMERAL NINE +302A..302D ; valid # 1.1 IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK +302E..3035 ; valid ; ; NV8 # 1.1 HANGUL SINGLE DOT TONE MARK..VERTICAL KANA REPEAT MARK LOWER HALF +3036 ; mapped ; 3012 # 1.1 CIRCLED POSTAL MARK +3037 ; valid ; ; NV8 # 1.1 IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL +3038 ; mapped ; 5341 # 3.0 HANGZHOU NUMERAL TEN +3039 ; mapped ; 5344 # 3.0 HANGZHOU NUMERAL TWENTY +303A ; mapped ; 5345 # 3.0 HANGZHOU NUMERAL THIRTY +303B ; valid ; ; NV8 # 3.2 VERTICAL IDEOGRAPHIC ITERATION MARK +303C ; valid # 3.2 MASU MARK +303D ; valid ; ; NV8 # 3.2 PART ALTERNATION MARK +303E ; valid ; ; NV8 # 3.0 IDEOGRAPHIC VARIATION INDICATOR +303F ; valid ; ; NV8 # 1.1 IDEOGRAPHIC HALF FILL SPACE +3040 ; disallowed # NA <reserved-3040> +3041..3094 ; valid # 1.1 HIRAGANA LETTER SMALL A..HIRAGANA LETTER VU +3095..3096 ; valid # 3.2 HIRAGANA LETTER SMALL KA..HIRAGANA LETTER SMALL KE +3097..3098 ; disallowed # NA <reserved-3097>..<reserved-3098> +3099..309A ; valid # 1.1 COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +309B ; disallowed_STD3_mapped ; 0020 3099 # 1.1 KATAKANA-HIRAGANA VOICED SOUND MARK +309C ; disallowed_STD3_mapped ; 0020 309A # 1.1 KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +309D..309E ; valid # 1.1 HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK +309F ; mapped ; 3088 308A # 3.2 HIRAGANA DIGRAPH YORI +30A0 ; valid ; ; NV8 # 3.2 KATAKANA-HIRAGANA DOUBLE HYPHEN +30A1..30FE ; valid # 1.1 KATAKANA LETTER SMALL A..KATAKANA VOICED ITERATION MARK +30FF ; mapped ; 30B3 30C8 # 3.2 KATAKANA DIGRAPH KOTO +3100..3104 ; disallowed # NA <reserved-3100>..<reserved-3104> +3105..312C ; valid # 1.1 BOPOMOFO LETTER B..BOPOMOFO LETTER GN +312D ; valid # 5.1 BOPOMOFO LETTER IH +312E ; valid # 10.0 BOPOMOFO LETTER O WITH DOT ABOVE +312F ; valid # 11.0 BOPOMOFO LETTER NN +3130 ; disallowed # NA <reserved-3130> +3131 ; mapped ; 1100 # 1.1 HANGUL LETTER KIYEOK +3132 ; mapped ; 1101 # 1.1 HANGUL LETTER SSANGKIYEOK +3133 ; mapped ; 11AA # 1.1 HANGUL LETTER KIYEOK-SIOS +3134 ; mapped ; 1102 # 1.1 HANGUL LETTER NIEUN +3135 ; mapped ; 11AC # 1.1 HANGUL LETTER NIEUN-CIEUC +3136 ; mapped ; 11AD # 1.1 HANGUL LETTER NIEUN-HIEUH +3137 ; mapped ; 1103 # 1.1 HANGUL LETTER TIKEUT +3138 ; mapped ; 1104 # 1.1 HANGUL LETTER SSANGTIKEUT +3139 ; mapped ; 1105 # 1.1 HANGUL LETTER RIEUL +313A ; mapped ; 11B0 # 1.1 HANGUL LETTER RIEUL-KIYEOK +313B ; mapped ; 11B1 # 1.1 HANGUL LETTER RIEUL-MIEUM +313C ; mapped ; 11B2 # 1.1 HANGUL LETTER RIEUL-PIEUP +313D ; mapped ; 11B3 # 1.1 HANGUL LETTER RIEUL-SIOS +313E ; mapped ; 11B4 # 1.1 HANGUL LETTER RIEUL-THIEUTH +313F ; mapped ; 11B5 # 1.1 HANGUL LETTER RIEUL-PHIEUPH +3140 ; mapped ; 111A # 1.1 HANGUL LETTER RIEUL-HIEUH +3141 ; mapped ; 1106 # 1.1 HANGUL LETTER MIEUM +3142 ; mapped ; 1107 # 1.1 HANGUL LETTER PIEUP +3143 ; mapped ; 1108 # 1.1 HANGUL LETTER SSANGPIEUP +3144 ; mapped ; 1121 # 1.1 HANGUL LETTER PIEUP-SIOS +3145 ; mapped ; 1109 # 1.1 HANGUL LETTER SIOS +3146 ; mapped ; 110A # 1.1 HANGUL LETTER SSANGSIOS +3147 ; mapped ; 110B # 1.1 HANGUL LETTER IEUNG +3148 ; mapped ; 110C # 1.1 HANGUL LETTER CIEUC +3149 ; mapped ; 110D # 1.1 HANGUL LETTER SSANGCIEUC +314A ; mapped ; 110E # 1.1 HANGUL LETTER CHIEUCH +314B ; mapped ; 110F # 1.1 HANGUL LETTER KHIEUKH +314C ; mapped ; 1110 # 1.1 HANGUL LETTER THIEUTH +314D ; mapped ; 1111 # 1.1 HANGUL LETTER PHIEUPH +314E ; mapped ; 1112 # 1.1 HANGUL LETTER HIEUH +314F ; mapped ; 1161 # 1.1 HANGUL LETTER A +3150 ; mapped ; 1162 # 1.1 HANGUL LETTER AE +3151 ; mapped ; 1163 # 1.1 HANGUL LETTER YA +3152 ; mapped ; 1164 # 1.1 HANGUL LETTER YAE +3153 ; mapped ; 1165 # 1.1 HANGUL LETTER EO +3154 ; mapped ; 1166 # 1.1 HANGUL LETTER E +3155 ; mapped ; 1167 # 1.1 HANGUL LETTER YEO +3156 ; mapped ; 1168 # 1.1 HANGUL LETTER YE +3157 ; mapped ; 1169 # 1.1 HANGUL LETTER O +3158 ; mapped ; 116A # 1.1 HANGUL LETTER WA +3159 ; mapped ; 116B # 1.1 HANGUL LETTER WAE +315A ; mapped ; 116C # 1.1 HANGUL LETTER OE +315B ; mapped ; 116D # 1.1 HANGUL LETTER YO +315C ; mapped ; 116E # 1.1 HANGUL LETTER U +315D ; mapped ; 116F # 1.1 HANGUL LETTER WEO +315E ; mapped ; 1170 # 1.1 HANGUL LETTER WE +315F ; mapped ; 1171 # 1.1 HANGUL LETTER WI +3160 ; mapped ; 1172 # 1.1 HANGUL LETTER YU +3161 ; mapped ; 1173 # 1.1 HANGUL LETTER EU +3162 ; mapped ; 1174 # 1.1 HANGUL LETTER YI +3163 ; mapped ; 1175 # 1.1 HANGUL LETTER I +3164 ; disallowed # 1.1 HANGUL FILLER +3165 ; mapped ; 1114 # 1.1 HANGUL LETTER SSANGNIEUN +3166 ; mapped ; 1115 # 1.1 HANGUL LETTER NIEUN-TIKEUT +3167 ; mapped ; 11C7 # 1.1 HANGUL LETTER NIEUN-SIOS +3168 ; mapped ; 11C8 # 1.1 HANGUL LETTER NIEUN-PANSIOS +3169 ; mapped ; 11CC # 1.1 HANGUL LETTER RIEUL-KIYEOK-SIOS +316A ; mapped ; 11CE # 1.1 HANGUL LETTER RIEUL-TIKEUT +316B ; mapped ; 11D3 # 1.1 HANGUL LETTER RIEUL-PIEUP-SIOS +316C ; mapped ; 11D7 # 1.1 HANGUL LETTER RIEUL-PANSIOS +316D ; mapped ; 11D9 # 1.1 HANGUL LETTER RIEUL-YEORINHIEUH +316E ; mapped ; 111C # 1.1 HANGUL LETTER MIEUM-PIEUP +316F ; mapped ; 11DD # 1.1 HANGUL LETTER MIEUM-SIOS +3170 ; mapped ; 11DF # 1.1 HANGUL LETTER MIEUM-PANSIOS +3171 ; mapped ; 111D # 1.1 HANGUL LETTER KAPYEOUNMIEUM +3172 ; mapped ; 111E # 1.1 HANGUL LETTER PIEUP-KIYEOK +3173 ; mapped ; 1120 # 1.1 HANGUL LETTER PIEUP-TIKEUT +3174 ; mapped ; 1122 # 1.1 HANGUL LETTER PIEUP-SIOS-KIYEOK +3175 ; mapped ; 1123 # 1.1 HANGUL LETTER PIEUP-SIOS-TIKEUT +3176 ; mapped ; 1127 # 1.1 HANGUL LETTER PIEUP-CIEUC +3177 ; mapped ; 1129 # 1.1 HANGUL LETTER PIEUP-THIEUTH +3178 ; mapped ; 112B # 1.1 HANGUL LETTER KAPYEOUNPIEUP +3179 ; mapped ; 112C # 1.1 HANGUL LETTER KAPYEOUNSSANGPIEUP +317A ; mapped ; 112D # 1.1 HANGUL LETTER SIOS-KIYEOK +317B ; mapped ; 112E # 1.1 HANGUL LETTER SIOS-NIEUN +317C ; mapped ; 112F # 1.1 HANGUL LETTER SIOS-TIKEUT +317D ; mapped ; 1132 # 1.1 HANGUL LETTER SIOS-PIEUP +317E ; mapped ; 1136 # 1.1 HANGUL LETTER SIOS-CIEUC +317F ; mapped ; 1140 # 1.1 HANGUL LETTER PANSIOS +3180 ; mapped ; 1147 # 1.1 HANGUL LETTER SSANGIEUNG +3181 ; mapped ; 114C # 1.1 HANGUL LETTER YESIEUNG +3182 ; mapped ; 11F1 # 1.1 HANGUL LETTER YESIEUNG-SIOS +3183 ; mapped ; 11F2 # 1.1 HANGUL LETTER YESIEUNG-PANSIOS +3184 ; mapped ; 1157 # 1.1 HANGUL LETTER KAPYEOUNPHIEUPH +3185 ; mapped ; 1158 # 1.1 HANGUL LETTER SSANGHIEUH +3186 ; mapped ; 1159 # 1.1 HANGUL LETTER YEORINHIEUH +3187 ; mapped ; 1184 # 1.1 HANGUL LETTER YO-YA +3188 ; mapped ; 1185 # 1.1 HANGUL LETTER YO-YAE +3189 ; mapped ; 1188 # 1.1 HANGUL LETTER YO-I +318A ; mapped ; 1191 # 1.1 HANGUL LETTER YU-YEO +318B ; mapped ; 1192 # 1.1 HANGUL LETTER YU-YE +318C ; mapped ; 1194 # 1.1 HANGUL LETTER YU-I +318D ; mapped ; 119E # 1.1 HANGUL LETTER ARAEA +318E ; mapped ; 11A1 # 1.1 HANGUL LETTER ARAEAE +318F ; disallowed # NA <reserved-318F> +3190..3191 ; valid ; ; NV8 # 1.1 IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK +3192 ; mapped ; 4E00 # 1.1 IDEOGRAPHIC ANNOTATION ONE MARK +3193 ; mapped ; 4E8C # 1.1 IDEOGRAPHIC ANNOTATION TWO MARK +3194 ; mapped ; 4E09 # 1.1 IDEOGRAPHIC ANNOTATION THREE MARK +3195 ; mapped ; 56DB # 1.1 IDEOGRAPHIC ANNOTATION FOUR MARK +3196 ; mapped ; 4E0A # 1.1 IDEOGRAPHIC ANNOTATION TOP MARK +3197 ; mapped ; 4E2D # 1.1 IDEOGRAPHIC ANNOTATION MIDDLE MARK +3198 ; mapped ; 4E0B # 1.1 IDEOGRAPHIC ANNOTATION BOTTOM MARK +3199 ; mapped ; 7532 # 1.1 IDEOGRAPHIC ANNOTATION FIRST MARK +319A ; mapped ; 4E59 # 1.1 IDEOGRAPHIC ANNOTATION SECOND MARK +319B ; mapped ; 4E19 # 1.1 IDEOGRAPHIC ANNOTATION THIRD MARK +319C ; mapped ; 4E01 # 1.1 IDEOGRAPHIC ANNOTATION FOURTH MARK +319D ; mapped ; 5929 # 1.1 IDEOGRAPHIC ANNOTATION HEAVEN MARK +319E ; mapped ; 5730 # 1.1 IDEOGRAPHIC ANNOTATION EARTH MARK +319F ; mapped ; 4EBA # 1.1 IDEOGRAPHIC ANNOTATION MAN MARK +31A0..31B7 ; valid # 3.0 BOPOMOFO LETTER BU..BOPOMOFO FINAL LETTER H +31B8..31BA ; valid # 6.0 BOPOMOFO LETTER GH..BOPOMOFO LETTER ZY +31BB..31BF ; valid # 13.0 BOPOMOFO FINAL LETTER G..BOPOMOFO LETTER AH +31C0..31CF ; valid ; ; NV8 # 4.1 CJK STROKE T..CJK STROKE N +31D0..31E3 ; valid ; ; NV8 # 5.1 CJK STROKE H..CJK STROKE Q +31E4..31EF ; disallowed # NA <reserved-31E4>..<reserved-31EF> +31F0..31FF ; valid # 3.2 KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO +3200 ; disallowed_STD3_mapped ; 0028 1100 0029 #1.1 PARENTHESIZED HANGUL KIYEOK +3201 ; disallowed_STD3_mapped ; 0028 1102 0029 #1.1 PARENTHESIZED HANGUL NIEUN +3202 ; disallowed_STD3_mapped ; 0028 1103 0029 #1.1 PARENTHESIZED HANGUL TIKEUT +3203 ; disallowed_STD3_mapped ; 0028 1105 0029 #1.1 PARENTHESIZED HANGUL RIEUL +3204 ; disallowed_STD3_mapped ; 0028 1106 0029 #1.1 PARENTHESIZED HANGUL MIEUM +3205 ; disallowed_STD3_mapped ; 0028 1107 0029 #1.1 PARENTHESIZED HANGUL PIEUP +3206 ; disallowed_STD3_mapped ; 0028 1109 0029 #1.1 PARENTHESIZED HANGUL SIOS +3207 ; disallowed_STD3_mapped ; 0028 110B 0029 #1.1 PARENTHESIZED HANGUL IEUNG +3208 ; disallowed_STD3_mapped ; 0028 110C 0029 #1.1 PARENTHESIZED HANGUL CIEUC +3209 ; disallowed_STD3_mapped ; 0028 110E 0029 #1.1 PARENTHESIZED HANGUL CHIEUCH +320A ; disallowed_STD3_mapped ; 0028 110F 0029 #1.1 PARENTHESIZED HANGUL KHIEUKH +320B ; disallowed_STD3_mapped ; 0028 1110 0029 #1.1 PARENTHESIZED HANGUL THIEUTH +320C ; disallowed_STD3_mapped ; 0028 1111 0029 #1.1 PARENTHESIZED HANGUL PHIEUPH +320D ; disallowed_STD3_mapped ; 0028 1112 0029 #1.1 PARENTHESIZED HANGUL HIEUH +320E ; disallowed_STD3_mapped ; 0028 AC00 0029 #1.1 PARENTHESIZED HANGUL KIYEOK A +320F ; disallowed_STD3_mapped ; 0028 B098 0029 #1.1 PARENTHESIZED HANGUL NIEUN A +3210 ; disallowed_STD3_mapped ; 0028 B2E4 0029 #1.1 PARENTHESIZED HANGUL TIKEUT A +3211 ; disallowed_STD3_mapped ; 0028 B77C 0029 #1.1 PARENTHESIZED HANGUL RIEUL A +3212 ; disallowed_STD3_mapped ; 0028 B9C8 0029 #1.1 PARENTHESIZED HANGUL MIEUM A +3213 ; disallowed_STD3_mapped ; 0028 BC14 0029 #1.1 PARENTHESIZED HANGUL PIEUP A +3214 ; disallowed_STD3_mapped ; 0028 C0AC 0029 #1.1 PARENTHESIZED HANGUL SIOS A +3215 ; disallowed_STD3_mapped ; 0028 C544 0029 #1.1 PARENTHESIZED HANGUL IEUNG A +3216 ; disallowed_STD3_mapped ; 0028 C790 0029 #1.1 PARENTHESIZED HANGUL CIEUC A +3217 ; disallowed_STD3_mapped ; 0028 CC28 0029 #1.1 PARENTHESIZED HANGUL CHIEUCH A +3218 ; disallowed_STD3_mapped ; 0028 CE74 0029 #1.1 PARENTHESIZED HANGUL KHIEUKH A +3219 ; disallowed_STD3_mapped ; 0028 D0C0 0029 #1.1 PARENTHESIZED HANGUL THIEUTH A +321A ; disallowed_STD3_mapped ; 0028 D30C 0029 #1.1 PARENTHESIZED HANGUL PHIEUPH A +321B ; disallowed_STD3_mapped ; 0028 D558 0029 #1.1 PARENTHESIZED HANGUL HIEUH A +321C ; disallowed_STD3_mapped ; 0028 C8FC 0029 #1.1 PARENTHESIZED HANGUL CIEUC U +321D ; disallowed_STD3_mapped ; 0028 C624 C804 0029 #4.0 PARENTHESIZED KOREAN CHARACTER OJEON +321E ; disallowed_STD3_mapped ; 0028 C624 D6C4 0029 #4.0 PARENTHESIZED KOREAN CHARACTER O HU +321F ; disallowed # NA <reserved-321F> +3220 ; disallowed_STD3_mapped ; 0028 4E00 0029 #1.1 PARENTHESIZED IDEOGRAPH ONE +3221 ; disallowed_STD3_mapped ; 0028 4E8C 0029 #1.1 PARENTHESIZED IDEOGRAPH TWO +3222 ; disallowed_STD3_mapped ; 0028 4E09 0029 #1.1 PARENTHESIZED IDEOGRAPH THREE +3223 ; disallowed_STD3_mapped ; 0028 56DB 0029 #1.1 PARENTHESIZED IDEOGRAPH FOUR +3224 ; disallowed_STD3_mapped ; 0028 4E94 0029 #1.1 PARENTHESIZED IDEOGRAPH FIVE +3225 ; disallowed_STD3_mapped ; 0028 516D 0029 #1.1 PARENTHESIZED IDEOGRAPH SIX +3226 ; disallowed_STD3_mapped ; 0028 4E03 0029 #1.1 PARENTHESIZED IDEOGRAPH SEVEN +3227 ; disallowed_STD3_mapped ; 0028 516B 0029 #1.1 PARENTHESIZED IDEOGRAPH EIGHT +3228 ; disallowed_STD3_mapped ; 0028 4E5D 0029 #1.1 PARENTHESIZED IDEOGRAPH NINE +3229 ; disallowed_STD3_mapped ; 0028 5341 0029 #1.1 PARENTHESIZED IDEOGRAPH TEN +322A ; disallowed_STD3_mapped ; 0028 6708 0029 #1.1 PARENTHESIZED IDEOGRAPH MOON +322B ; disallowed_STD3_mapped ; 0028 706B 0029 #1.1 PARENTHESIZED IDEOGRAPH FIRE +322C ; disallowed_STD3_mapped ; 0028 6C34 0029 #1.1 PARENTHESIZED IDEOGRAPH WATER +322D ; disallowed_STD3_mapped ; 0028 6728 0029 #1.1 PARENTHESIZED IDEOGRAPH WOOD +322E ; disallowed_STD3_mapped ; 0028 91D1 0029 #1.1 PARENTHESIZED IDEOGRAPH METAL +322F ; disallowed_STD3_mapped ; 0028 571F 0029 #1.1 PARENTHESIZED IDEOGRAPH EARTH +3230 ; disallowed_STD3_mapped ; 0028 65E5 0029 #1.1 PARENTHESIZED IDEOGRAPH SUN +3231 ; disallowed_STD3_mapped ; 0028 682A 0029 #1.1 PARENTHESIZED IDEOGRAPH STOCK +3232 ; disallowed_STD3_mapped ; 0028 6709 0029 #1.1 PARENTHESIZED IDEOGRAPH HAVE +3233 ; disallowed_STD3_mapped ; 0028 793E 0029 #1.1 PARENTHESIZED IDEOGRAPH SOCIETY +3234 ; disallowed_STD3_mapped ; 0028 540D 0029 #1.1 PARENTHESIZED IDEOGRAPH NAME +3235 ; disallowed_STD3_mapped ; 0028 7279 0029 #1.1 PARENTHESIZED IDEOGRAPH SPECIAL +3236 ; disallowed_STD3_mapped ; 0028 8CA1 0029 #1.1 PARENTHESIZED IDEOGRAPH FINANCIAL +3237 ; disallowed_STD3_mapped ; 0028 795D 0029 #1.1 PARENTHESIZED IDEOGRAPH CONGRATULATION +3238 ; disallowed_STD3_mapped ; 0028 52B4 0029 #1.1 PARENTHESIZED IDEOGRAPH LABOR +3239 ; disallowed_STD3_mapped ; 0028 4EE3 0029 #1.1 PARENTHESIZED IDEOGRAPH REPRESENT +323A ; disallowed_STD3_mapped ; 0028 547C 0029 #1.1 PARENTHESIZED IDEOGRAPH CALL +323B ; disallowed_STD3_mapped ; 0028 5B66 0029 #1.1 PARENTHESIZED IDEOGRAPH STUDY +323C ; disallowed_STD3_mapped ; 0028 76E3 0029 #1.1 PARENTHESIZED IDEOGRAPH SUPERVISE +323D ; disallowed_STD3_mapped ; 0028 4F01 0029 #1.1 PARENTHESIZED IDEOGRAPH ENTERPRISE +323E ; disallowed_STD3_mapped ; 0028 8CC7 0029 #1.1 PARENTHESIZED IDEOGRAPH RESOURCE +323F ; disallowed_STD3_mapped ; 0028 5354 0029 #1.1 PARENTHESIZED IDEOGRAPH ALLIANCE +3240 ; disallowed_STD3_mapped ; 0028 796D 0029 #1.1 PARENTHESIZED IDEOGRAPH FESTIVAL +3241 ; disallowed_STD3_mapped ; 0028 4F11 0029 #1.1 PARENTHESIZED IDEOGRAPH REST +3242 ; disallowed_STD3_mapped ; 0028 81EA 0029 #1.1 PARENTHESIZED IDEOGRAPH SELF +3243 ; disallowed_STD3_mapped ; 0028 81F3 0029 #1.1 PARENTHESIZED IDEOGRAPH REACH +3244 ; mapped ; 554F # 5.2 CIRCLED IDEOGRAPH QUESTION +3245 ; mapped ; 5E7C # 5.2 CIRCLED IDEOGRAPH KINDERGARTEN +3246 ; mapped ; 6587 # 5.2 CIRCLED IDEOGRAPH SCHOOL +3247 ; mapped ; 7B8F # 5.2 CIRCLED IDEOGRAPH KOTO +3248..324F ; valid ; ; NV8 # 5.2 CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE +3250 ; mapped ; 0070 0074 0065 #4.0 PARTNERSHIP SIGN +3251 ; mapped ; 0032 0031 # 3.2 CIRCLED NUMBER TWENTY ONE +3252 ; mapped ; 0032 0032 # 3.2 CIRCLED NUMBER TWENTY TWO +3253 ; mapped ; 0032 0033 # 3.2 CIRCLED NUMBER TWENTY THREE +3254 ; mapped ; 0032 0034 # 3.2 CIRCLED NUMBER TWENTY FOUR +3255 ; mapped ; 0032 0035 # 3.2 CIRCLED NUMBER TWENTY FIVE +3256 ; mapped ; 0032 0036 # 3.2 CIRCLED NUMBER TWENTY SIX +3257 ; mapped ; 0032 0037 # 3.2 CIRCLED NUMBER TWENTY SEVEN +3258 ; mapped ; 0032 0038 # 3.2 CIRCLED NUMBER TWENTY EIGHT +3259 ; mapped ; 0032 0039 # 3.2 CIRCLED NUMBER TWENTY NINE +325A ; mapped ; 0033 0030 # 3.2 CIRCLED NUMBER THIRTY +325B ; mapped ; 0033 0031 # 3.2 CIRCLED NUMBER THIRTY ONE +325C ; mapped ; 0033 0032 # 3.2 CIRCLED NUMBER THIRTY TWO +325D ; mapped ; 0033 0033 # 3.2 CIRCLED NUMBER THIRTY THREE +325E ; mapped ; 0033 0034 # 3.2 CIRCLED NUMBER THIRTY FOUR +325F ; mapped ; 0033 0035 # 3.2 CIRCLED NUMBER THIRTY FIVE +3260 ; mapped ; 1100 # 1.1 CIRCLED HANGUL KIYEOK +3261 ; mapped ; 1102 # 1.1 CIRCLED HANGUL NIEUN +3262 ; mapped ; 1103 # 1.1 CIRCLED HANGUL TIKEUT +3263 ; mapped ; 1105 # 1.1 CIRCLED HANGUL RIEUL +3264 ; mapped ; 1106 # 1.1 CIRCLED HANGUL MIEUM +3265 ; mapped ; 1107 # 1.1 CIRCLED HANGUL PIEUP +3266 ; mapped ; 1109 # 1.1 CIRCLED HANGUL SIOS +3267 ; mapped ; 110B # 1.1 CIRCLED HANGUL IEUNG +3268 ; mapped ; 110C # 1.1 CIRCLED HANGUL CIEUC +3269 ; mapped ; 110E # 1.1 CIRCLED HANGUL CHIEUCH +326A ; mapped ; 110F # 1.1 CIRCLED HANGUL KHIEUKH +326B ; mapped ; 1110 # 1.1 CIRCLED HANGUL THIEUTH +326C ; mapped ; 1111 # 1.1 CIRCLED HANGUL PHIEUPH +326D ; mapped ; 1112 # 1.1 CIRCLED HANGUL HIEUH +326E ; mapped ; AC00 # 1.1 CIRCLED HANGUL KIYEOK A +326F ; mapped ; B098 # 1.1 CIRCLED HANGUL NIEUN A +3270 ; mapped ; B2E4 # 1.1 CIRCLED HANGUL TIKEUT A +3271 ; mapped ; B77C # 1.1 CIRCLED HANGUL RIEUL A +3272 ; mapped ; B9C8 # 1.1 CIRCLED HANGUL MIEUM A +3273 ; mapped ; BC14 # 1.1 CIRCLED HANGUL PIEUP A +3274 ; mapped ; C0AC # 1.1 CIRCLED HANGUL SIOS A +3275 ; mapped ; C544 # 1.1 CIRCLED HANGUL IEUNG A +3276 ; mapped ; C790 # 1.1 CIRCLED HANGUL CIEUC A +3277 ; mapped ; CC28 # 1.1 CIRCLED HANGUL CHIEUCH A +3278 ; mapped ; CE74 # 1.1 CIRCLED HANGUL KHIEUKH A +3279 ; mapped ; D0C0 # 1.1 CIRCLED HANGUL THIEUTH A +327A ; mapped ; D30C # 1.1 CIRCLED HANGUL PHIEUPH A +327B ; mapped ; D558 # 1.1 CIRCLED HANGUL HIEUH A +327C ; mapped ; CC38 ACE0 # 4.0 CIRCLED KOREAN CHARACTER CHAMKO +327D ; mapped ; C8FC C758 # 4.0 CIRCLED KOREAN CHARACTER JUEUI +327E ; mapped ; C6B0 # 4.1 CIRCLED HANGUL IEUNG U +327F ; valid ; ; NV8 # 1.1 KOREAN STANDARD SYMBOL +3280 ; mapped ; 4E00 # 1.1 CIRCLED IDEOGRAPH ONE +3281 ; mapped ; 4E8C # 1.1 CIRCLED IDEOGRAPH TWO +3282 ; mapped ; 4E09 # 1.1 CIRCLED IDEOGRAPH THREE +3283 ; mapped ; 56DB # 1.1 CIRCLED IDEOGRAPH FOUR +3284 ; mapped ; 4E94 # 1.1 CIRCLED IDEOGRAPH FIVE +3285 ; mapped ; 516D # 1.1 CIRCLED IDEOGRAPH SIX +3286 ; mapped ; 4E03 # 1.1 CIRCLED IDEOGRAPH SEVEN +3287 ; mapped ; 516B # 1.1 CIRCLED IDEOGRAPH EIGHT +3288 ; mapped ; 4E5D # 1.1 CIRCLED IDEOGRAPH NINE +3289 ; mapped ; 5341 # 1.1 CIRCLED IDEOGRAPH TEN +328A ; mapped ; 6708 # 1.1 CIRCLED IDEOGRAPH MOON +328B ; mapped ; 706B # 1.1 CIRCLED IDEOGRAPH FIRE +328C ; mapped ; 6C34 # 1.1 CIRCLED IDEOGRAPH WATER +328D ; mapped ; 6728 # 1.1 CIRCLED IDEOGRAPH WOOD +328E ; mapped ; 91D1 # 1.1 CIRCLED IDEOGRAPH METAL +328F ; mapped ; 571F # 1.1 CIRCLED IDEOGRAPH EARTH +3290 ; mapped ; 65E5 # 1.1 CIRCLED IDEOGRAPH SUN +3291 ; mapped ; 682A # 1.1 CIRCLED IDEOGRAPH STOCK +3292 ; mapped ; 6709 # 1.1 CIRCLED IDEOGRAPH HAVE +3293 ; mapped ; 793E # 1.1 CIRCLED IDEOGRAPH SOCIETY +3294 ; mapped ; 540D # 1.1 CIRCLED IDEOGRAPH NAME +3295 ; mapped ; 7279 # 1.1 CIRCLED IDEOGRAPH SPECIAL +3296 ; mapped ; 8CA1 # 1.1 CIRCLED IDEOGRAPH FINANCIAL +3297 ; mapped ; 795D # 1.1 CIRCLED IDEOGRAPH CONGRATULATION +3298 ; mapped ; 52B4 # 1.1 CIRCLED IDEOGRAPH LABOR +3299 ; mapped ; 79D8 # 1.1 CIRCLED IDEOGRAPH SECRET +329A ; mapped ; 7537 # 1.1 CIRCLED IDEOGRAPH MALE +329B ; mapped ; 5973 # 1.1 CIRCLED IDEOGRAPH FEMALE +329C ; mapped ; 9069 # 1.1 CIRCLED IDEOGRAPH SUITABLE +329D ; mapped ; 512A # 1.1 CIRCLED IDEOGRAPH EXCELLENT +329E ; mapped ; 5370 # 1.1 CIRCLED IDEOGRAPH PRINT +329F ; mapped ; 6CE8 # 1.1 CIRCLED IDEOGRAPH ATTENTION +32A0 ; mapped ; 9805 # 1.1 CIRCLED IDEOGRAPH ITEM +32A1 ; mapped ; 4F11 # 1.1 CIRCLED IDEOGRAPH REST +32A2 ; mapped ; 5199 # 1.1 CIRCLED IDEOGRAPH COPY +32A3 ; mapped ; 6B63 # 1.1 CIRCLED IDEOGRAPH CORRECT +32A4 ; mapped ; 4E0A # 1.1 CIRCLED IDEOGRAPH HIGH +32A5 ; mapped ; 4E2D # 1.1 CIRCLED IDEOGRAPH CENTRE +32A6 ; mapped ; 4E0B # 1.1 CIRCLED IDEOGRAPH LOW +32A7 ; mapped ; 5DE6 # 1.1 CIRCLED IDEOGRAPH LEFT +32A8 ; mapped ; 53F3 # 1.1 CIRCLED IDEOGRAPH RIGHT +32A9 ; mapped ; 533B # 1.1 CIRCLED IDEOGRAPH MEDICINE +32AA ; mapped ; 5B97 # 1.1 CIRCLED IDEOGRAPH RELIGION +32AB ; mapped ; 5B66 # 1.1 CIRCLED IDEOGRAPH STUDY +32AC ; mapped ; 76E3 # 1.1 CIRCLED IDEOGRAPH SUPERVISE +32AD ; mapped ; 4F01 # 1.1 CIRCLED IDEOGRAPH ENTERPRISE +32AE ; mapped ; 8CC7 # 1.1 CIRCLED IDEOGRAPH RESOURCE +32AF ; mapped ; 5354 # 1.1 CIRCLED IDEOGRAPH ALLIANCE +32B0 ; mapped ; 591C # 1.1 CIRCLED IDEOGRAPH NIGHT +32B1 ; mapped ; 0033 0036 # 3.2 CIRCLED NUMBER THIRTY SIX +32B2 ; mapped ; 0033 0037 # 3.2 CIRCLED NUMBER THIRTY SEVEN +32B3 ; mapped ; 0033 0038 # 3.2 CIRCLED NUMBER THIRTY EIGHT +32B4 ; mapped ; 0033 0039 # 3.2 CIRCLED NUMBER THIRTY NINE +32B5 ; mapped ; 0034 0030 # 3.2 CIRCLED NUMBER FORTY +32B6 ; mapped ; 0034 0031 # 3.2 CIRCLED NUMBER FORTY ONE +32B7 ; mapped ; 0034 0032 # 3.2 CIRCLED NUMBER FORTY TWO +32B8 ; mapped ; 0034 0033 # 3.2 CIRCLED NUMBER FORTY THREE +32B9 ; mapped ; 0034 0034 # 3.2 CIRCLED NUMBER FORTY FOUR +32BA ; mapped ; 0034 0035 # 3.2 CIRCLED NUMBER FORTY FIVE +32BB ; mapped ; 0034 0036 # 3.2 CIRCLED NUMBER FORTY SIX +32BC ; mapped ; 0034 0037 # 3.2 CIRCLED NUMBER FORTY SEVEN +32BD ; mapped ; 0034 0038 # 3.2 CIRCLED NUMBER FORTY EIGHT +32BE ; mapped ; 0034 0039 # 3.2 CIRCLED NUMBER FORTY NINE +32BF ; mapped ; 0035 0030 # 3.2 CIRCLED NUMBER FIFTY +32C0 ; mapped ; 0031 6708 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY +32C1 ; mapped ; 0032 6708 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY +32C2 ; mapped ; 0033 6708 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH +32C3 ; mapped ; 0034 6708 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL +32C4 ; mapped ; 0035 6708 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY +32C5 ; mapped ; 0036 6708 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE +32C6 ; mapped ; 0037 6708 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY +32C7 ; mapped ; 0038 6708 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST +32C8 ; mapped ; 0039 6708 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER +32C9 ; mapped ; 0031 0030 6708 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER +32CA ; mapped ; 0031 0031 6708 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER +32CB ; mapped ; 0031 0032 6708 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER +32CC ; mapped ; 0068 0067 # 4.0 SQUARE HG +32CD ; mapped ; 0065 0072 0067 #4.0 SQUARE ERG +32CE ; mapped ; 0065 0076 # 4.0 SQUARE EV +32CF ; mapped ; 006C 0074 0064 #4.0 LIMITED LIABILITY SIGN +32D0 ; mapped ; 30A2 # 1.1 CIRCLED KATAKANA A +32D1 ; mapped ; 30A4 # 1.1 CIRCLED KATAKANA I +32D2 ; mapped ; 30A6 # 1.1 CIRCLED KATAKANA U +32D3 ; mapped ; 30A8 # 1.1 CIRCLED KATAKANA E +32D4 ; mapped ; 30AA # 1.1 CIRCLED KATAKANA O +32D5 ; mapped ; 30AB # 1.1 CIRCLED KATAKANA KA +32D6 ; mapped ; 30AD # 1.1 CIRCLED KATAKANA KI +32D7 ; mapped ; 30AF # 1.1 CIRCLED KATAKANA KU +32D8 ; mapped ; 30B1 # 1.1 CIRCLED KATAKANA KE +32D9 ; mapped ; 30B3 # 1.1 CIRCLED KATAKANA KO +32DA ; mapped ; 30B5 # 1.1 CIRCLED KATAKANA SA +32DB ; mapped ; 30B7 # 1.1 CIRCLED KATAKANA SI +32DC ; mapped ; 30B9 # 1.1 CIRCLED KATAKANA SU +32DD ; mapped ; 30BB # 1.1 CIRCLED KATAKANA SE +32DE ; mapped ; 30BD # 1.1 CIRCLED KATAKANA SO +32DF ; mapped ; 30BF # 1.1 CIRCLED KATAKANA TA +32E0 ; mapped ; 30C1 # 1.1 CIRCLED KATAKANA TI +32E1 ; mapped ; 30C4 # 1.1 CIRCLED KATAKANA TU +32E2 ; mapped ; 30C6 # 1.1 CIRCLED KATAKANA TE +32E3 ; mapped ; 30C8 # 1.1 CIRCLED KATAKANA TO +32E4 ; mapped ; 30CA # 1.1 CIRCLED KATAKANA NA +32E5 ; mapped ; 30CB # 1.1 CIRCLED KATAKANA NI +32E6 ; mapped ; 30CC # 1.1 CIRCLED KATAKANA NU +32E7 ; mapped ; 30CD # 1.1 CIRCLED KATAKANA NE +32E8 ; mapped ; 30CE # 1.1 CIRCLED KATAKANA NO +32E9 ; mapped ; 30CF # 1.1 CIRCLED KATAKANA HA +32EA ; mapped ; 30D2 # 1.1 CIRCLED KATAKANA HI +32EB ; mapped ; 30D5 # 1.1 CIRCLED KATAKANA HU +32EC ; mapped ; 30D8 # 1.1 CIRCLED KATAKANA HE +32ED ; mapped ; 30DB # 1.1 CIRCLED KATAKANA HO +32EE ; mapped ; 30DE # 1.1 CIRCLED KATAKANA MA +32EF ; mapped ; 30DF # 1.1 CIRCLED KATAKANA MI +32F0 ; mapped ; 30E0 # 1.1 CIRCLED KATAKANA MU +32F1 ; mapped ; 30E1 # 1.1 CIRCLED KATAKANA ME +32F2 ; mapped ; 30E2 # 1.1 CIRCLED KATAKANA MO +32F3 ; mapped ; 30E4 # 1.1 CIRCLED KATAKANA YA +32F4 ; mapped ; 30E6 # 1.1 CIRCLED KATAKANA YU +32F5 ; mapped ; 30E8 # 1.1 CIRCLED KATAKANA YO +32F6 ; mapped ; 30E9 # 1.1 CIRCLED KATAKANA RA +32F7 ; mapped ; 30EA # 1.1 CIRCLED KATAKANA RI +32F8 ; mapped ; 30EB # 1.1 CIRCLED KATAKANA RU +32F9 ; mapped ; 30EC # 1.1 CIRCLED KATAKANA RE +32FA ; mapped ; 30ED # 1.1 CIRCLED KATAKANA RO +32FB ; mapped ; 30EF # 1.1 CIRCLED KATAKANA WA +32FC ; mapped ; 30F0 # 1.1 CIRCLED KATAKANA WI +32FD ; mapped ; 30F1 # 1.1 CIRCLED KATAKANA WE +32FE ; mapped ; 30F2 # 1.1 CIRCLED KATAKANA WO +32FF ; mapped ; 4EE4 548C # 12.1 SQUARE ERA NAME REIWA +3300 ; mapped ; 30A2 30D1 30FC 30C8 #1.1 SQUARE APAATO +3301 ; mapped ; 30A2 30EB 30D5 30A1 #1.1 SQUARE ARUHUA +3302 ; mapped ; 30A2 30F3 30DA 30A2 #1.1 SQUARE ANPEA +3303 ; mapped ; 30A2 30FC 30EB #1.1 SQUARE AARU +3304 ; mapped ; 30A4 30CB 30F3 30B0 #1.1 SQUARE ININGU +3305 ; mapped ; 30A4 30F3 30C1 #1.1 SQUARE INTI +3306 ; mapped ; 30A6 30A9 30F3 #1.1 SQUARE UON +3307 ; mapped ; 30A8 30B9 30AF 30FC 30C9 #1.1 SQUARE ESUKUUDO +3308 ; mapped ; 30A8 30FC 30AB 30FC #1.1 SQUARE EEKAA +3309 ; mapped ; 30AA 30F3 30B9 #1.1 SQUARE ONSU +330A ; mapped ; 30AA 30FC 30E0 #1.1 SQUARE OOMU +330B ; mapped ; 30AB 30A4 30EA #1.1 SQUARE KAIRI +330C ; mapped ; 30AB 30E9 30C3 30C8 #1.1 SQUARE KARATTO +330D ; mapped ; 30AB 30ED 30EA 30FC #1.1 SQUARE KARORII +330E ; mapped ; 30AC 30ED 30F3 #1.1 SQUARE GARON +330F ; mapped ; 30AC 30F3 30DE #1.1 SQUARE GANMA +3310 ; mapped ; 30AE 30AC # 1.1 SQUARE GIGA +3311 ; mapped ; 30AE 30CB 30FC #1.1 SQUARE GINII +3312 ; mapped ; 30AD 30E5 30EA 30FC #1.1 SQUARE KYURII +3313 ; mapped ; 30AE 30EB 30C0 30FC #1.1 SQUARE GIRUDAA +3314 ; mapped ; 30AD 30ED # 1.1 SQUARE KIRO +3315 ; mapped ; 30AD 30ED 30B0 30E9 30E0 #1.1 SQUARE KIROGURAMU +3316 ; mapped ; 30AD 30ED 30E1 30FC 30C8 30EB #1.1 SQUARE KIROMEETORU +3317 ; mapped ; 30AD 30ED 30EF 30C3 30C8 #1.1 SQUARE KIROWATTO +3318 ; mapped ; 30B0 30E9 30E0 #1.1 SQUARE GURAMU +3319 ; mapped ; 30B0 30E9 30E0 30C8 30F3 #1.1 SQUARE GURAMUTON +331A ; mapped ; 30AF 30EB 30BC 30A4 30ED #1.1 SQUARE KURUZEIRO +331B ; mapped ; 30AF 30ED 30FC 30CD #1.1 SQUARE KUROONE +331C ; mapped ; 30B1 30FC 30B9 #1.1 SQUARE KEESU +331D ; mapped ; 30B3 30EB 30CA #1.1 SQUARE KORUNA +331E ; mapped ; 30B3 30FC 30DD #1.1 SQUARE KOOPO +331F ; mapped ; 30B5 30A4 30AF 30EB #1.1 SQUARE SAIKURU +3320 ; mapped ; 30B5 30F3 30C1 30FC 30E0 #1.1 SQUARE SANTIIMU +3321 ; mapped ; 30B7 30EA 30F3 30B0 #1.1 SQUARE SIRINGU +3322 ; mapped ; 30BB 30F3 30C1 #1.1 SQUARE SENTI +3323 ; mapped ; 30BB 30F3 30C8 #1.1 SQUARE SENTO +3324 ; mapped ; 30C0 30FC 30B9 #1.1 SQUARE DAASU +3325 ; mapped ; 30C7 30B7 # 1.1 SQUARE DESI +3326 ; mapped ; 30C9 30EB # 1.1 SQUARE DORU +3327 ; mapped ; 30C8 30F3 # 1.1 SQUARE TON +3328 ; mapped ; 30CA 30CE # 1.1 SQUARE NANO +3329 ; mapped ; 30CE 30C3 30C8 #1.1 SQUARE NOTTO +332A ; mapped ; 30CF 30A4 30C4 #1.1 SQUARE HAITU +332B ; mapped ; 30D1 30FC 30BB 30F3 30C8 #1.1 SQUARE PAASENTO +332C ; mapped ; 30D1 30FC 30C4 #1.1 SQUARE PAATU +332D ; mapped ; 30D0 30FC 30EC 30EB #1.1 SQUARE BAARERU +332E ; mapped ; 30D4 30A2 30B9 30C8 30EB #1.1 SQUARE PIASUTORU +332F ; mapped ; 30D4 30AF 30EB #1.1 SQUARE PIKURU +3330 ; mapped ; 30D4 30B3 # 1.1 SQUARE PIKO +3331 ; mapped ; 30D3 30EB # 1.1 SQUARE BIRU +3332 ; mapped ; 30D5 30A1 30E9 30C3 30C9 #1.1 SQUARE HUARADDO +3333 ; mapped ; 30D5 30A3 30FC 30C8 #1.1 SQUARE HUIITO +3334 ; mapped ; 30D6 30C3 30B7 30A7 30EB #1.1 SQUARE BUSSYERU +3335 ; mapped ; 30D5 30E9 30F3 #1.1 SQUARE HURAN +3336 ; mapped ; 30D8 30AF 30BF 30FC 30EB #1.1 SQUARE HEKUTAARU +3337 ; mapped ; 30DA 30BD # 1.1 SQUARE PESO +3338 ; mapped ; 30DA 30CB 30D2 #1.1 SQUARE PENIHI +3339 ; mapped ; 30D8 30EB 30C4 #1.1 SQUARE HERUTU +333A ; mapped ; 30DA 30F3 30B9 #1.1 SQUARE PENSU +333B ; mapped ; 30DA 30FC 30B8 #1.1 SQUARE PEEZI +333C ; mapped ; 30D9 30FC 30BF #1.1 SQUARE BEETA +333D ; mapped ; 30DD 30A4 30F3 30C8 #1.1 SQUARE POINTO +333E ; mapped ; 30DC 30EB 30C8 #1.1 SQUARE BORUTO +333F ; mapped ; 30DB 30F3 # 1.1 SQUARE HON +3340 ; mapped ; 30DD 30F3 30C9 #1.1 SQUARE PONDO +3341 ; mapped ; 30DB 30FC 30EB #1.1 SQUARE HOORU +3342 ; mapped ; 30DB 30FC 30F3 #1.1 SQUARE HOON +3343 ; mapped ; 30DE 30A4 30AF 30ED #1.1 SQUARE MAIKURO +3344 ; mapped ; 30DE 30A4 30EB #1.1 SQUARE MAIRU +3345 ; mapped ; 30DE 30C3 30CF #1.1 SQUARE MAHHA +3346 ; mapped ; 30DE 30EB 30AF #1.1 SQUARE MARUKU +3347 ; mapped ; 30DE 30F3 30B7 30E7 30F3 #1.1 SQUARE MANSYON +3348 ; mapped ; 30DF 30AF 30ED 30F3 #1.1 SQUARE MIKURON +3349 ; mapped ; 30DF 30EA # 1.1 SQUARE MIRI +334A ; mapped ; 30DF 30EA 30D0 30FC 30EB #1.1 SQUARE MIRIBAARU +334B ; mapped ; 30E1 30AC # 1.1 SQUARE MEGA +334C ; mapped ; 30E1 30AC 30C8 30F3 #1.1 SQUARE MEGATON +334D ; mapped ; 30E1 30FC 30C8 30EB #1.1 SQUARE MEETORU +334E ; mapped ; 30E4 30FC 30C9 #1.1 SQUARE YAADO +334F ; mapped ; 30E4 30FC 30EB #1.1 SQUARE YAARU +3350 ; mapped ; 30E6 30A2 30F3 #1.1 SQUARE YUAN +3351 ; mapped ; 30EA 30C3 30C8 30EB #1.1 SQUARE RITTORU +3352 ; mapped ; 30EA 30E9 # 1.1 SQUARE RIRA +3353 ; mapped ; 30EB 30D4 30FC #1.1 SQUARE RUPII +3354 ; mapped ; 30EB 30FC 30D6 30EB #1.1 SQUARE RUUBURU +3355 ; mapped ; 30EC 30E0 # 1.1 SQUARE REMU +3356 ; mapped ; 30EC 30F3 30C8 30B2 30F3 #1.1 SQUARE RENTOGEN +3357 ; mapped ; 30EF 30C3 30C8 #1.1 SQUARE WATTO +3358 ; mapped ; 0030 70B9 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO +3359 ; mapped ; 0031 70B9 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE +335A ; mapped ; 0032 70B9 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO +335B ; mapped ; 0033 70B9 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE +335C ; mapped ; 0034 70B9 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR +335D ; mapped ; 0035 70B9 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE +335E ; mapped ; 0036 70B9 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX +335F ; mapped ; 0037 70B9 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN +3360 ; mapped ; 0038 70B9 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT +3361 ; mapped ; 0039 70B9 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE +3362 ; mapped ; 0031 0030 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN +3363 ; mapped ; 0031 0031 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN +3364 ; mapped ; 0031 0032 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE +3365 ; mapped ; 0031 0033 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN +3366 ; mapped ; 0031 0034 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN +3367 ; mapped ; 0031 0035 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN +3368 ; mapped ; 0031 0036 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN +3369 ; mapped ; 0031 0037 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN +336A ; mapped ; 0031 0038 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN +336B ; mapped ; 0031 0039 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN +336C ; mapped ; 0032 0030 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY +336D ; mapped ; 0032 0031 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE +336E ; mapped ; 0032 0032 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO +336F ; mapped ; 0032 0033 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE +3370 ; mapped ; 0032 0034 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR +3371 ; mapped ; 0068 0070 0061 #1.1 SQUARE HPA +3372 ; mapped ; 0064 0061 # 1.1 SQUARE DA +3373 ; mapped ; 0061 0075 # 1.1 SQUARE AU +3374 ; mapped ; 0062 0061 0072 #1.1 SQUARE BAR +3375 ; mapped ; 006F 0076 # 1.1 SQUARE OV +3376 ; mapped ; 0070 0063 # 1.1 SQUARE PC +3377 ; mapped ; 0064 006D # 4.0 SQUARE DM +3378 ; mapped ; 0064 006D 0032 #4.0 SQUARE DM SQUARED +3379 ; mapped ; 0064 006D 0033 #4.0 SQUARE DM CUBED +337A ; mapped ; 0069 0075 # 4.0 SQUARE IU +337B ; mapped ; 5E73 6210 # 1.1 SQUARE ERA NAME HEISEI +337C ; mapped ; 662D 548C # 1.1 SQUARE ERA NAME SYOUWA +337D ; mapped ; 5927 6B63 # 1.1 SQUARE ERA NAME TAISYOU +337E ; mapped ; 660E 6CBB # 1.1 SQUARE ERA NAME MEIZI +337F ; mapped ; 682A 5F0F 4F1A 793E #1.1 SQUARE CORPORATION +3380 ; mapped ; 0070 0061 # 1.1 SQUARE PA AMPS +3381 ; mapped ; 006E 0061 # 1.1 SQUARE NA +3382 ; mapped ; 03BC 0061 # 1.1 SQUARE MU A +3383 ; mapped ; 006D 0061 # 1.1 SQUARE MA +3384 ; mapped ; 006B 0061 # 1.1 SQUARE KA +3385 ; mapped ; 006B 0062 # 1.1 SQUARE KB +3386 ; mapped ; 006D 0062 # 1.1 SQUARE MB +3387 ; mapped ; 0067 0062 # 1.1 SQUARE GB +3388 ; mapped ; 0063 0061 006C #1.1 SQUARE CAL +3389 ; mapped ; 006B 0063 0061 006C #1.1 SQUARE KCAL +338A ; mapped ; 0070 0066 # 1.1 SQUARE PF +338B ; mapped ; 006E 0066 # 1.1 SQUARE NF +338C ; mapped ; 03BC 0066 # 1.1 SQUARE MU F +338D ; mapped ; 03BC 0067 # 1.1 SQUARE MU G +338E ; mapped ; 006D 0067 # 1.1 SQUARE MG +338F ; mapped ; 006B 0067 # 1.1 SQUARE KG +3390 ; mapped ; 0068 007A # 1.1 SQUARE HZ +3391 ; mapped ; 006B 0068 007A #1.1 SQUARE KHZ +3392 ; mapped ; 006D 0068 007A #1.1 SQUARE MHZ +3393 ; mapped ; 0067 0068 007A #1.1 SQUARE GHZ +3394 ; mapped ; 0074 0068 007A #1.1 SQUARE THZ +3395 ; mapped ; 03BC 006C # 1.1 SQUARE MU L +3396 ; mapped ; 006D 006C # 1.1 SQUARE ML +3397 ; mapped ; 0064 006C # 1.1 SQUARE DL +3398 ; mapped ; 006B 006C # 1.1 SQUARE KL +3399 ; mapped ; 0066 006D # 1.1 SQUARE FM +339A ; mapped ; 006E 006D # 1.1 SQUARE NM +339B ; mapped ; 03BC 006D # 1.1 SQUARE MU M +339C ; mapped ; 006D 006D # 1.1 SQUARE MM +339D ; mapped ; 0063 006D # 1.1 SQUARE CM +339E ; mapped ; 006B 006D # 1.1 SQUARE KM +339F ; mapped ; 006D 006D 0032 #1.1 SQUARE MM SQUARED +33A0 ; mapped ; 0063 006D 0032 #1.1 SQUARE CM SQUARED +33A1 ; mapped ; 006D 0032 # 1.1 SQUARE M SQUARED +33A2 ; mapped ; 006B 006D 0032 #1.1 SQUARE KM SQUARED +33A3 ; mapped ; 006D 006D 0033 #1.1 SQUARE MM CUBED +33A4 ; mapped ; 0063 006D 0033 #1.1 SQUARE CM CUBED +33A5 ; mapped ; 006D 0033 # 1.1 SQUARE M CUBED +33A6 ; mapped ; 006B 006D 0033 #1.1 SQUARE KM CUBED +33A7 ; mapped ; 006D 2215 0073 #1.1 SQUARE M OVER S +33A8 ; mapped ; 006D 2215 0073 0032 #1.1 SQUARE M OVER S SQUARED +33A9 ; mapped ; 0070 0061 # 1.1 SQUARE PA +33AA ; mapped ; 006B 0070 0061 #1.1 SQUARE KPA +33AB ; mapped ; 006D 0070 0061 #1.1 SQUARE MPA +33AC ; mapped ; 0067 0070 0061 #1.1 SQUARE GPA +33AD ; mapped ; 0072 0061 0064 #1.1 SQUARE RAD +33AE ; mapped ; 0072 0061 0064 2215 0073 #1.1 SQUARE RAD OVER S +33AF ; mapped ; 0072 0061 0064 2215 0073 0032 #1.1 SQUARE RAD OVER S SQUARED +33B0 ; mapped ; 0070 0073 # 1.1 SQUARE PS +33B1 ; mapped ; 006E 0073 # 1.1 SQUARE NS +33B2 ; mapped ; 03BC 0073 # 1.1 SQUARE MU S +33B3 ; mapped ; 006D 0073 # 1.1 SQUARE MS +33B4 ; mapped ; 0070 0076 # 1.1 SQUARE PV +33B5 ; mapped ; 006E 0076 # 1.1 SQUARE NV +33B6 ; mapped ; 03BC 0076 # 1.1 SQUARE MU V +33B7 ; mapped ; 006D 0076 # 1.1 SQUARE MV +33B8 ; mapped ; 006B 0076 # 1.1 SQUARE KV +33B9 ; mapped ; 006D 0076 # 1.1 SQUARE MV MEGA +33BA ; mapped ; 0070 0077 # 1.1 SQUARE PW +33BB ; mapped ; 006E 0077 # 1.1 SQUARE NW +33BC ; mapped ; 03BC 0077 # 1.1 SQUARE MU W +33BD ; mapped ; 006D 0077 # 1.1 SQUARE MW +33BE ; mapped ; 006B 0077 # 1.1 SQUARE KW +33BF ; mapped ; 006D 0077 # 1.1 SQUARE MW MEGA +33C0 ; mapped ; 006B 03C9 # 1.1 SQUARE K OHM +33C1 ; mapped ; 006D 03C9 # 1.1 SQUARE M OHM +33C2 ; disallowed # 1.1 SQUARE AM +33C3 ; mapped ; 0062 0071 # 1.1 SQUARE BQ +33C4 ; mapped ; 0063 0063 # 1.1 SQUARE CC +33C5 ; mapped ; 0063 0064 # 1.1 SQUARE CD +33C6 ; mapped ; 0063 2215 006B 0067 #1.1 SQUARE C OVER KG +33C7 ; disallowed # 1.1 SQUARE CO +33C8 ; mapped ; 0064 0062 # 1.1 SQUARE DB +33C9 ; mapped ; 0067 0079 # 1.1 SQUARE GY +33CA ; mapped ; 0068 0061 # 1.1 SQUARE HA +33CB ; mapped ; 0068 0070 # 1.1 SQUARE HP +33CC ; mapped ; 0069 006E # 1.1 SQUARE IN +33CD ; mapped ; 006B 006B # 1.1 SQUARE KK +33CE ; mapped ; 006B 006D # 1.1 SQUARE KM CAPITAL +33CF ; mapped ; 006B 0074 # 1.1 SQUARE KT +33D0 ; mapped ; 006C 006D # 1.1 SQUARE LM +33D1 ; mapped ; 006C 006E # 1.1 SQUARE LN +33D2 ; mapped ; 006C 006F 0067 #1.1 SQUARE LOG +33D3 ; mapped ; 006C 0078 # 1.1 SQUARE LX +33D4 ; mapped ; 006D 0062 # 1.1 SQUARE MB SMALL +33D5 ; mapped ; 006D 0069 006C #1.1 SQUARE MIL +33D6 ; mapped ; 006D 006F 006C #1.1 SQUARE MOL +33D7 ; mapped ; 0070 0068 # 1.1 SQUARE PH +33D8 ; disallowed # 1.1 SQUARE PM +33D9 ; mapped ; 0070 0070 006D #1.1 SQUARE PPM +33DA ; mapped ; 0070 0072 # 1.1 SQUARE PR +33DB ; mapped ; 0073 0072 # 1.1 SQUARE SR +33DC ; mapped ; 0073 0076 # 1.1 SQUARE SV +33DD ; mapped ; 0077 0062 # 1.1 SQUARE WB +33DE ; mapped ; 0076 2215 006D #4.0 SQUARE V OVER M +33DF ; mapped ; 0061 2215 006D #4.0 SQUARE A OVER M +33E0 ; mapped ; 0031 65E5 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE +33E1 ; mapped ; 0032 65E5 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO +33E2 ; mapped ; 0033 65E5 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE +33E3 ; mapped ; 0034 65E5 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR +33E4 ; mapped ; 0035 65E5 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE +33E5 ; mapped ; 0036 65E5 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX +33E6 ; mapped ; 0037 65E5 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN +33E7 ; mapped ; 0038 65E5 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT +33E8 ; mapped ; 0039 65E5 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE +33E9 ; mapped ; 0031 0030 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN +33EA ; mapped ; 0031 0031 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN +33EB ; mapped ; 0031 0032 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE +33EC ; mapped ; 0031 0033 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN +33ED ; mapped ; 0031 0034 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN +33EE ; mapped ; 0031 0035 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN +33EF ; mapped ; 0031 0036 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN +33F0 ; mapped ; 0031 0037 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN +33F1 ; mapped ; 0031 0038 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN +33F2 ; mapped ; 0031 0039 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN +33F3 ; mapped ; 0032 0030 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY +33F4 ; mapped ; 0032 0031 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE +33F5 ; mapped ; 0032 0032 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO +33F6 ; mapped ; 0032 0033 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE +33F7 ; mapped ; 0032 0034 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR +33F8 ; mapped ; 0032 0035 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE +33F9 ; mapped ; 0032 0036 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX +33FA ; mapped ; 0032 0037 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN +33FB ; mapped ; 0032 0038 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT +33FC ; mapped ; 0032 0039 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE +33FD ; mapped ; 0033 0030 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY +33FE ; mapped ; 0033 0031 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE +33FF ; mapped ; 0067 0061 006C #4.0 SQUARE GAL +3400..4DB5 ; valid # 3.0 CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5 +4DB6..4DBF ; valid # 13.0 CJK UNIFIED IDEOGRAPH-4DB6..CJK UNIFIED IDEOGRAPH-4DBF +4DC0..4DFF ; valid ; ; NV8 # 4.0 HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION +4E00..9FA5 ; valid # 1.1 CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FA5 +9FA6..9FBB ; valid # 4.1 CJK UNIFIED IDEOGRAPH-9FA6..CJK UNIFIED IDEOGRAPH-9FBB +9FBC..9FC3 ; valid # 5.1 CJK UNIFIED IDEOGRAPH-9FBC..CJK UNIFIED IDEOGRAPH-9FC3 +9FC4..9FCB ; valid # 5.2 CJK UNIFIED IDEOGRAPH-9FC4..CJK UNIFIED IDEOGRAPH-9FCB +9FCC ; valid # 6.1 CJK UNIFIED IDEOGRAPH-9FCC +9FCD..9FD5 ; valid # 8.0 CJK UNIFIED IDEOGRAPH-9FCD..CJK UNIFIED IDEOGRAPH-9FD5 +9FD6..9FEA ; valid # 10.0 CJK UNIFIED IDEOGRAPH-9FD6..CJK UNIFIED IDEOGRAPH-9FEA +9FEB..9FEF ; valid # 11.0 CJK UNIFIED IDEOGRAPH-9FEB..CJK UNIFIED IDEOGRAPH-9FEF +9FF0..9FFC ; valid # 13.0 CJK UNIFIED IDEOGRAPH-9FF0..CJK UNIFIED IDEOGRAPH-9FFC +9FFD..9FFF ; valid # 14.0 CJK UNIFIED IDEOGRAPH-9FFD..CJK UNIFIED IDEOGRAPH-9FFF +A000..A48C ; valid # 3.0 YI SYLLABLE IT..YI SYLLABLE YYR +A48D..A48F ; disallowed # NA <reserved-A48D>..<reserved-A48F> +A490..A4A1 ; valid ; ; NV8 # 3.0 YI RADICAL QOT..YI RADICAL GA +A4A2..A4A3 ; valid ; ; NV8 # 3.2 YI RADICAL ZUP..YI RADICAL CYT +A4A4..A4B3 ; valid ; ; NV8 # 3.0 YI RADICAL DDUR..YI RADICAL JO +A4B4 ; valid ; ; NV8 # 3.2 YI RADICAL NZUP +A4B5..A4C0 ; valid ; ; NV8 # 3.0 YI RADICAL JJY..YI RADICAL SHAT +A4C1 ; valid ; ; NV8 # 3.2 YI RADICAL ZUR +A4C2..A4C4 ; valid ; ; NV8 # 3.0 YI RADICAL SHOP..YI RADICAL ZZIET +A4C5 ; valid ; ; NV8 # 3.2 YI RADICAL NBIE +A4C6 ; valid ; ; NV8 # 3.0 YI RADICAL KE +A4C7..A4CF ; disallowed # NA <reserved-A4C7>..<reserved-A4CF> +A4D0..A4FD ; valid # 5.2 LISU LETTER BA..LISU LETTER TONE MYA JEU +A4FE..A4FF ; valid ; ; NV8 # 5.2 LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP +A500..A60C ; valid # 5.1 VAI SYLLABLE EE..VAI SYLLABLE LENGTHENER +A60D..A60F ; valid ; ; NV8 # 5.1 VAI COMMA..VAI QUESTION MARK +A610..A62B ; valid # 5.1 VAI SYLLABLE NDOLE FA..VAI SYLLABLE NDOLE DO +A62C..A63F ; disallowed # NA <reserved-A62C>..<reserved-A63F> +A640 ; mapped ; A641 # 5.1 CYRILLIC CAPITAL LETTER ZEMLYA +A641 ; valid # 5.1 CYRILLIC SMALL LETTER ZEMLYA +A642 ; mapped ; A643 # 5.1 CYRILLIC CAPITAL LETTER DZELO +A643 ; valid # 5.1 CYRILLIC SMALL LETTER DZELO +A644 ; mapped ; A645 # 5.1 CYRILLIC CAPITAL LETTER REVERSED DZE +A645 ; valid # 5.1 CYRILLIC SMALL LETTER REVERSED DZE +A646 ; mapped ; A647 # 5.1 CYRILLIC CAPITAL LETTER IOTA +A647 ; valid # 5.1 CYRILLIC SMALL LETTER IOTA +A648 ; mapped ; A649 # 5.1 CYRILLIC CAPITAL LETTER DJERV +A649 ; valid # 5.1 CYRILLIC SMALL LETTER DJERV +A64A ; mapped ; A64B # 5.1 CYRILLIC CAPITAL LETTER MONOGRAPH UK +A64B ; valid # 5.1 CYRILLIC SMALL LETTER MONOGRAPH UK +A64C ; mapped ; A64D # 5.1 CYRILLIC CAPITAL LETTER BROAD OMEGA +A64D ; valid # 5.1 CYRILLIC SMALL LETTER BROAD OMEGA +A64E ; mapped ; A64F # 5.1 CYRILLIC CAPITAL LETTER NEUTRAL YER +A64F ; valid # 5.1 CYRILLIC SMALL LETTER NEUTRAL YER +A650 ; mapped ; A651 # 5.1 CYRILLIC CAPITAL LETTER YERU WITH BACK YER +A651 ; valid # 5.1 CYRILLIC SMALL LETTER YERU WITH BACK YER +A652 ; mapped ; A653 # 5.1 CYRILLIC CAPITAL LETTER IOTIFIED YAT +A653 ; valid # 5.1 CYRILLIC SMALL LETTER IOTIFIED YAT +A654 ; mapped ; A655 # 5.1 CYRILLIC CAPITAL LETTER REVERSED YU +A655 ; valid # 5.1 CYRILLIC SMALL LETTER REVERSED YU +A656 ; mapped ; A657 # 5.1 CYRILLIC CAPITAL LETTER IOTIFIED A +A657 ; valid # 5.1 CYRILLIC SMALL LETTER IOTIFIED A +A658 ; mapped ; A659 # 5.1 CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS +A659 ; valid # 5.1 CYRILLIC SMALL LETTER CLOSED LITTLE YUS +A65A ; mapped ; A65B # 5.1 CYRILLIC CAPITAL LETTER BLENDED YUS +A65B ; valid # 5.1 CYRILLIC SMALL LETTER BLENDED YUS +A65C ; mapped ; A65D # 5.1 CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS +A65D ; valid # 5.1 CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS +A65E ; mapped ; A65F # 5.1 CYRILLIC CAPITAL LETTER YN +A65F ; valid # 5.1 CYRILLIC SMALL LETTER YN +A660 ; mapped ; A661 # 6.0 CYRILLIC CAPITAL LETTER REVERSED TSE +A661 ; valid # 6.0 CYRILLIC SMALL LETTER REVERSED TSE +A662 ; mapped ; A663 # 5.1 CYRILLIC CAPITAL LETTER SOFT DE +A663 ; valid # 5.1 CYRILLIC SMALL LETTER SOFT DE +A664 ; mapped ; A665 # 5.1 CYRILLIC CAPITAL LETTER SOFT EL +A665 ; valid # 5.1 CYRILLIC SMALL LETTER SOFT EL +A666 ; mapped ; A667 # 5.1 CYRILLIC CAPITAL LETTER SOFT EM +A667 ; valid # 5.1 CYRILLIC SMALL LETTER SOFT EM +A668 ; mapped ; A669 # 5.1 CYRILLIC CAPITAL LETTER MONOCULAR O +A669 ; valid # 5.1 CYRILLIC SMALL LETTER MONOCULAR O +A66A ; mapped ; A66B # 5.1 CYRILLIC CAPITAL LETTER BINOCULAR O +A66B ; valid # 5.1 CYRILLIC SMALL LETTER BINOCULAR O +A66C ; mapped ; A66D # 5.1 CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O +A66D..A66F ; valid # 5.1 CYRILLIC SMALL LETTER DOUBLE MONOCULAR O..COMBINING CYRILLIC VZMET +A670..A673 ; valid ; ; NV8 # 5.1 COMBINING CYRILLIC TEN MILLIONS SIGN..SLAVONIC ASTERISK +A674..A67B ; valid # 6.1 COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC LETTER OMEGA +A67C..A67D ; valid # 5.1 COMBINING CYRILLIC KAVYKA..COMBINING CYRILLIC PAYEROK +A67E ; valid ; ; NV8 # 5.1 CYRILLIC KAVYKA +A67F ; valid # 5.1 CYRILLIC PAYEROK +A680 ; mapped ; A681 # 5.1 CYRILLIC CAPITAL LETTER DWE +A681 ; valid # 5.1 CYRILLIC SMALL LETTER DWE +A682 ; mapped ; A683 # 5.1 CYRILLIC CAPITAL LETTER DZWE +A683 ; valid # 5.1 CYRILLIC SMALL LETTER DZWE +A684 ; mapped ; A685 # 5.1 CYRILLIC CAPITAL LETTER ZHWE +A685 ; valid # 5.1 CYRILLIC SMALL LETTER ZHWE +A686 ; mapped ; A687 # 5.1 CYRILLIC CAPITAL LETTER CCHE +A687 ; valid # 5.1 CYRILLIC SMALL LETTER CCHE +A688 ; mapped ; A689 # 5.1 CYRILLIC CAPITAL LETTER DZZE +A689 ; valid # 5.1 CYRILLIC SMALL LETTER DZZE +A68A ; mapped ; A68B # 5.1 CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK +A68B ; valid # 5.1 CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK +A68C ; mapped ; A68D # 5.1 CYRILLIC CAPITAL LETTER TWE +A68D ; valid # 5.1 CYRILLIC SMALL LETTER TWE +A68E ; mapped ; A68F # 5.1 CYRILLIC CAPITAL LETTER TSWE +A68F ; valid # 5.1 CYRILLIC SMALL LETTER TSWE +A690 ; mapped ; A691 # 5.1 CYRILLIC CAPITAL LETTER TSSE +A691 ; valid # 5.1 CYRILLIC SMALL LETTER TSSE +A692 ; mapped ; A693 # 5.1 CYRILLIC CAPITAL LETTER TCHE +A693 ; valid # 5.1 CYRILLIC SMALL LETTER TCHE +A694 ; mapped ; A695 # 5.1 CYRILLIC CAPITAL LETTER HWE +A695 ; valid # 5.1 CYRILLIC SMALL LETTER HWE +A696 ; mapped ; A697 # 5.1 CYRILLIC CAPITAL LETTER SHWE +A697 ; valid # 5.1 CYRILLIC SMALL LETTER SHWE +A698 ; mapped ; A699 # 7.0 CYRILLIC CAPITAL LETTER DOUBLE O +A699 ; valid # 7.0 CYRILLIC SMALL LETTER DOUBLE O +A69A ; mapped ; A69B # 7.0 CYRILLIC CAPITAL LETTER CROSSED O +A69B ; valid # 7.0 CYRILLIC SMALL LETTER CROSSED O +A69C ; mapped ; 044A # 7.0 MODIFIER LETTER CYRILLIC HARD SIGN +A69D ; mapped ; 044C # 7.0 MODIFIER LETTER CYRILLIC SOFT SIGN +A69E ; valid # 8.0 COMBINING CYRILLIC LETTER EF +A69F ; valid # 6.1 COMBINING CYRILLIC LETTER IOTIFIED E +A6A0..A6E5 ; valid # 5.2 BAMUM LETTER A..BAMUM LETTER KI +A6E6..A6EF ; valid ; ; NV8 # 5.2 BAMUM LETTER MO..BAMUM LETTER KOGHOM +A6F0..A6F1 ; valid # 5.2 BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS +A6F2..A6F7 ; valid ; ; NV8 # 5.2 BAMUM NJAEMLI..BAMUM QUESTION MARK +A6F8..A6FF ; disallowed # NA <reserved-A6F8>..<reserved-A6FF> +A700..A716 ; valid ; ; NV8 # 4.1 MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR +A717..A71A ; valid # 5.0 MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOWER RIGHT CORNER ANGLE +A71B..A71F ; valid # 5.1 MODIFIER LETTER RAISED UP ARROW..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK +A720..A721 ; valid ; ; NV8 # 5.0 MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE +A722 ; mapped ; A723 # 5.1 LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF +A723 ; valid # 5.1 LATIN SMALL LETTER EGYPTOLOGICAL ALEF +A724 ; mapped ; A725 # 5.1 LATIN CAPITAL LETTER EGYPTOLOGICAL AIN +A725 ; valid # 5.1 LATIN SMALL LETTER EGYPTOLOGICAL AIN +A726 ; mapped ; A727 # 5.1 LATIN CAPITAL LETTER HENG +A727 ; valid # 5.1 LATIN SMALL LETTER HENG +A728 ; mapped ; A729 # 5.1 LATIN CAPITAL LETTER TZ +A729 ; valid # 5.1 LATIN SMALL LETTER TZ +A72A ; mapped ; A72B # 5.1 LATIN CAPITAL LETTER TRESILLO +A72B ; valid # 5.1 LATIN SMALL LETTER TRESILLO +A72C ; mapped ; A72D # 5.1 LATIN CAPITAL LETTER CUATRILLO +A72D ; valid # 5.1 LATIN SMALL LETTER CUATRILLO +A72E ; mapped ; A72F # 5.1 LATIN CAPITAL LETTER CUATRILLO WITH COMMA +A72F..A731 ; valid # 5.1 LATIN SMALL LETTER CUATRILLO WITH COMMA..LATIN LETTER SMALL CAPITAL S +A732 ; mapped ; A733 # 5.1 LATIN CAPITAL LETTER AA +A733 ; valid # 5.1 LATIN SMALL LETTER AA +A734 ; mapped ; A735 # 5.1 LATIN CAPITAL LETTER AO +A735 ; valid # 5.1 LATIN SMALL LETTER AO +A736 ; mapped ; A737 # 5.1 LATIN CAPITAL LETTER AU +A737 ; valid # 5.1 LATIN SMALL LETTER AU +A738 ; mapped ; A739 # 5.1 LATIN CAPITAL LETTER AV +A739 ; valid # 5.1 LATIN SMALL LETTER AV +A73A ; mapped ; A73B # 5.1 LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR +A73B ; valid # 5.1 LATIN SMALL LETTER AV WITH HORIZONTAL BAR +A73C ; mapped ; A73D # 5.1 LATIN CAPITAL LETTER AY +A73D ; valid # 5.1 LATIN SMALL LETTER AY +A73E ; mapped ; A73F # 5.1 LATIN CAPITAL LETTER REVERSED C WITH DOT +A73F ; valid # 5.1 LATIN SMALL LETTER REVERSED C WITH DOT +A740 ; mapped ; A741 # 5.1 LATIN CAPITAL LETTER K WITH STROKE +A741 ; valid # 5.1 LATIN SMALL LETTER K WITH STROKE +A742 ; mapped ; A743 # 5.1 LATIN CAPITAL LETTER K WITH DIAGONAL STROKE +A743 ; valid # 5.1 LATIN SMALL LETTER K WITH DIAGONAL STROKE +A744 ; mapped ; A745 # 5.1 LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE +A745 ; valid # 5.1 LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE +A746 ; mapped ; A747 # 5.1 LATIN CAPITAL LETTER BROKEN L +A747 ; valid # 5.1 LATIN SMALL LETTER BROKEN L +A748 ; mapped ; A749 # 5.1 LATIN CAPITAL LETTER L WITH HIGH STROKE +A749 ; valid # 5.1 LATIN SMALL LETTER L WITH HIGH STROKE +A74A ; mapped ; A74B # 5.1 LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY +A74B ; valid # 5.1 LATIN SMALL LETTER O WITH LONG STROKE OVERLAY +A74C ; mapped ; A74D # 5.1 LATIN CAPITAL LETTER O WITH LOOP +A74D ; valid # 5.1 LATIN SMALL LETTER O WITH LOOP +A74E ; mapped ; A74F # 5.1 LATIN CAPITAL LETTER OO +A74F ; valid # 5.1 LATIN SMALL LETTER OO +A750 ; mapped ; A751 # 5.1 LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER +A751 ; valid # 5.1 LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER +A752 ; mapped ; A753 # 5.1 LATIN CAPITAL LETTER P WITH FLOURISH +A753 ; valid # 5.1 LATIN SMALL LETTER P WITH FLOURISH +A754 ; mapped ; A755 # 5.1 LATIN CAPITAL LETTER P WITH SQUIRREL TAIL +A755 ; valid # 5.1 LATIN SMALL LETTER P WITH SQUIRREL TAIL +A756 ; mapped ; A757 # 5.1 LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER +A757 ; valid # 5.1 LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER +A758 ; mapped ; A759 # 5.1 LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE +A759 ; valid # 5.1 LATIN SMALL LETTER Q WITH DIAGONAL STROKE +A75A ; mapped ; A75B # 5.1 LATIN CAPITAL LETTER R ROTUNDA +A75B ; valid # 5.1 LATIN SMALL LETTER R ROTUNDA +A75C ; mapped ; A75D # 5.1 LATIN CAPITAL LETTER RUM ROTUNDA +A75D ; valid # 5.1 LATIN SMALL LETTER RUM ROTUNDA +A75E ; mapped ; A75F # 5.1 LATIN CAPITAL LETTER V WITH DIAGONAL STROKE +A75F ; valid # 5.1 LATIN SMALL LETTER V WITH DIAGONAL STROKE +A760 ; mapped ; A761 # 5.1 LATIN CAPITAL LETTER VY +A761 ; valid # 5.1 LATIN SMALL LETTER VY +A762 ; mapped ; A763 # 5.1 LATIN CAPITAL LETTER VISIGOTHIC Z +A763 ; valid # 5.1 LATIN SMALL LETTER VISIGOTHIC Z +A764 ; mapped ; A765 # 5.1 LATIN CAPITAL LETTER THORN WITH STROKE +A765 ; valid # 5.1 LATIN SMALL LETTER THORN WITH STROKE +A766 ; mapped ; A767 # 5.1 LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER +A767 ; valid # 5.1 LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER +A768 ; mapped ; A769 # 5.1 LATIN CAPITAL LETTER VEND +A769 ; valid # 5.1 LATIN SMALL LETTER VEND +A76A ; mapped ; A76B # 5.1 LATIN CAPITAL LETTER ET +A76B ; valid # 5.1 LATIN SMALL LETTER ET +A76C ; mapped ; A76D # 5.1 LATIN CAPITAL LETTER IS +A76D ; valid # 5.1 LATIN SMALL LETTER IS +A76E ; mapped ; A76F # 5.1 LATIN CAPITAL LETTER CON +A76F ; valid # 5.1 LATIN SMALL LETTER CON +A770 ; mapped ; A76F # 5.1 MODIFIER LETTER US +A771..A778 ; valid # 5.1 LATIN SMALL LETTER DUM..LATIN SMALL LETTER UM +A779 ; mapped ; A77A # 5.1 LATIN CAPITAL LETTER INSULAR D +A77A ; valid # 5.1 LATIN SMALL LETTER INSULAR D +A77B ; mapped ; A77C # 5.1 LATIN CAPITAL LETTER INSULAR F +A77C ; valid # 5.1 LATIN SMALL LETTER INSULAR F +A77D ; mapped ; 1D79 # 5.1 LATIN CAPITAL LETTER INSULAR G +A77E ; mapped ; A77F # 5.1 LATIN CAPITAL LETTER TURNED INSULAR G +A77F ; valid # 5.1 LATIN SMALL LETTER TURNED INSULAR G +A780 ; mapped ; A781 # 5.1 LATIN CAPITAL LETTER TURNED L +A781 ; valid # 5.1 LATIN SMALL LETTER TURNED L +A782 ; mapped ; A783 # 5.1 LATIN CAPITAL LETTER INSULAR R +A783 ; valid # 5.1 LATIN SMALL LETTER INSULAR R +A784 ; mapped ; A785 # 5.1 LATIN CAPITAL LETTER INSULAR S +A785 ; valid # 5.1 LATIN SMALL LETTER INSULAR S +A786 ; mapped ; A787 # 5.1 LATIN CAPITAL LETTER INSULAR T +A787..A788 ; valid # 5.1 LATIN SMALL LETTER INSULAR T..MODIFIER LETTER LOW CIRCUMFLEX ACCENT +A789..A78A ; valid ; ; NV8 # 5.1 MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN +A78B ; mapped ; A78C # 5.1 LATIN CAPITAL LETTER SALTILLO +A78C ; valid # 5.1 LATIN SMALL LETTER SALTILLO +A78D ; mapped ; 0265 # 6.0 LATIN CAPITAL LETTER TURNED H +A78E ; valid # 6.0 LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT +A78F ; valid # 8.0 LATIN LETTER SINOLOGICAL DOT +A790 ; mapped ; A791 # 6.0 LATIN CAPITAL LETTER N WITH DESCENDER +A791 ; valid # 6.0 LATIN SMALL LETTER N WITH DESCENDER +A792 ; mapped ; A793 # 6.1 LATIN CAPITAL LETTER C WITH BAR +A793 ; valid # 6.1 LATIN SMALL LETTER C WITH BAR +A794..A795 ; valid # 7.0 LATIN SMALL LETTER C WITH PALATAL HOOK..LATIN SMALL LETTER H WITH PALATAL HOOK +A796 ; mapped ; A797 # 7.0 LATIN CAPITAL LETTER B WITH FLOURISH +A797 ; valid # 7.0 LATIN SMALL LETTER B WITH FLOURISH +A798 ; mapped ; A799 # 7.0 LATIN CAPITAL LETTER F WITH STROKE +A799 ; valid # 7.0 LATIN SMALL LETTER F WITH STROKE +A79A ; mapped ; A79B # 7.0 LATIN CAPITAL LETTER VOLAPUK AE +A79B ; valid # 7.0 LATIN SMALL LETTER VOLAPUK AE +A79C ; mapped ; A79D # 7.0 LATIN CAPITAL LETTER VOLAPUK OE +A79D ; valid # 7.0 LATIN SMALL LETTER VOLAPUK OE +A79E ; mapped ; A79F # 7.0 LATIN CAPITAL LETTER VOLAPUK UE +A79F ; valid # 7.0 LATIN SMALL LETTER VOLAPUK UE +A7A0 ; mapped ; A7A1 # 6.0 LATIN CAPITAL LETTER G WITH OBLIQUE STROKE +A7A1 ; valid # 6.0 LATIN SMALL LETTER G WITH OBLIQUE STROKE +A7A2 ; mapped ; A7A3 # 6.0 LATIN CAPITAL LETTER K WITH OBLIQUE STROKE +A7A3 ; valid # 6.0 LATIN SMALL LETTER K WITH OBLIQUE STROKE +A7A4 ; mapped ; A7A5 # 6.0 LATIN CAPITAL LETTER N WITH OBLIQUE STROKE +A7A5 ; valid # 6.0 LATIN SMALL LETTER N WITH OBLIQUE STROKE +A7A6 ; mapped ; A7A7 # 6.0 LATIN CAPITAL LETTER R WITH OBLIQUE STROKE +A7A7 ; valid # 6.0 LATIN SMALL LETTER R WITH OBLIQUE STROKE +A7A8 ; mapped ; A7A9 # 6.0 LATIN CAPITAL LETTER S WITH OBLIQUE STROKE +A7A9 ; valid # 6.0 LATIN SMALL LETTER S WITH OBLIQUE STROKE +A7AA ; mapped ; 0266 # 6.1 LATIN CAPITAL LETTER H WITH HOOK +A7AB ; mapped ; 025C # 7.0 LATIN CAPITAL LETTER REVERSED OPEN E +A7AC ; mapped ; 0261 # 7.0 LATIN CAPITAL LETTER SCRIPT G +A7AD ; mapped ; 026C # 7.0 LATIN CAPITAL LETTER L WITH BELT +A7AE ; mapped ; 026A # 9.0 LATIN CAPITAL LETTER SMALL CAPITAL I +A7AF ; valid # 11.0 LATIN LETTER SMALL CAPITAL Q +A7B0 ; mapped ; 029E # 7.0 LATIN CAPITAL LETTER TURNED K +A7B1 ; mapped ; 0287 # 7.0 LATIN CAPITAL LETTER TURNED T +A7B2 ; mapped ; 029D # 8.0 LATIN CAPITAL LETTER J WITH CROSSED-TAIL +A7B3 ; mapped ; AB53 # 8.0 LATIN CAPITAL LETTER CHI +A7B4 ; mapped ; A7B5 # 8.0 LATIN CAPITAL LETTER BETA +A7B5 ; valid # 8.0 LATIN SMALL LETTER BETA +A7B6 ; mapped ; A7B7 # 8.0 LATIN CAPITAL LETTER OMEGA +A7B7 ; valid # 8.0 LATIN SMALL LETTER OMEGA +A7B8 ; mapped ; A7B9 # 11.0 LATIN CAPITAL LETTER U WITH STROKE +A7B9 ; valid # 11.0 LATIN SMALL LETTER U WITH STROKE +A7BA ; mapped ; A7BB # 12.0 LATIN CAPITAL LETTER GLOTTAL A +A7BB ; valid # 12.0 LATIN SMALL LETTER GLOTTAL A +A7BC ; mapped ; A7BD # 12.0 LATIN CAPITAL LETTER GLOTTAL I +A7BD ; valid # 12.0 LATIN SMALL LETTER GLOTTAL I +A7BE ; mapped ; A7BF # 12.0 LATIN CAPITAL LETTER GLOTTAL U +A7BF ; valid # 12.0 LATIN SMALL LETTER GLOTTAL U +A7C0 ; mapped ; A7C1 # 14.0 LATIN CAPITAL LETTER OLD POLISH O +A7C1 ; valid # 14.0 LATIN SMALL LETTER OLD POLISH O +A7C2 ; mapped ; A7C3 # 12.0 LATIN CAPITAL LETTER ANGLICANA W +A7C3 ; valid # 12.0 LATIN SMALL LETTER ANGLICANA W +A7C4 ; mapped ; A794 # 12.0 LATIN CAPITAL LETTER C WITH PALATAL HOOK +A7C5 ; mapped ; 0282 # 12.0 LATIN CAPITAL LETTER S WITH HOOK +A7C6 ; mapped ; 1D8E # 12.0 LATIN CAPITAL LETTER Z WITH PALATAL HOOK +A7C7 ; mapped ; A7C8 # 13.0 LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY +A7C8 ; valid # 13.0 LATIN SMALL LETTER D WITH SHORT STROKE OVERLAY +A7C9 ; mapped ; A7CA # 13.0 LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY +A7CA ; valid # 13.0 LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY +A7CB..A7CF ; disallowed # NA <reserved-A7CB>..<reserved-A7CF> +A7D0 ; mapped ; A7D1 # 14.0 LATIN CAPITAL LETTER CLOSED INSULAR G +A7D1 ; valid # 14.0 LATIN SMALL LETTER CLOSED INSULAR G +A7D2 ; disallowed # NA <reserved-A7D2> +A7D3 ; valid # 14.0 LATIN SMALL LETTER DOUBLE THORN +A7D4 ; disallowed # NA <reserved-A7D4> +A7D5 ; valid # 14.0 LATIN SMALL LETTER DOUBLE WYNN +A7D6 ; mapped ; A7D7 # 14.0 LATIN CAPITAL LETTER MIDDLE SCOTS S +A7D7 ; valid # 14.0 LATIN SMALL LETTER MIDDLE SCOTS S +A7D8 ; mapped ; A7D9 # 14.0 LATIN CAPITAL LETTER SIGMOID S +A7D9 ; valid # 14.0 LATIN SMALL LETTER SIGMOID S +A7DA..A7F1 ; disallowed # NA <reserved-A7DA>..<reserved-A7F1> +A7F2 ; mapped ; 0063 # 14.0 MODIFIER LETTER CAPITAL C +A7F3 ; mapped ; 0066 # 14.0 MODIFIER LETTER CAPITAL F +A7F4 ; mapped ; 0071 # 14.0 MODIFIER LETTER CAPITAL Q +A7F5 ; mapped ; A7F6 # 13.0 LATIN CAPITAL LETTER REVERSED HALF H +A7F6 ; valid # 13.0 LATIN SMALL LETTER REVERSED HALF H +A7F7 ; valid # 7.0 LATIN EPIGRAPHIC LETTER SIDEWAYS I +A7F8 ; mapped ; 0127 # 6.1 MODIFIER LETTER CAPITAL H WITH STROKE +A7F9 ; mapped ; 0153 # 6.1 MODIFIER LETTER SMALL LIGATURE OE +A7FA ; valid # 6.0 LATIN LETTER SMALL CAPITAL TURNED M +A7FB..A7FF ; valid # 5.1 LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M +A800..A827 ; valid # 4.1 SYLOTI NAGRI LETTER A..SYLOTI NAGRI VOWEL SIGN OO +A828..A82B ; valid ; ; NV8 # 4.1 SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4 +A82C ; valid # 13.0 SYLOTI NAGRI SIGN ALTERNATE HASANTA +A82D..A82F ; disallowed # NA <reserved-A82D>..<reserved-A82F> +A830..A839 ; valid ; ; NV8 # 5.2 NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC QUANTITY MARK +A83A..A83F ; disallowed # NA <reserved-A83A>..<reserved-A83F> +A840..A873 ; valid # 5.0 PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU +A874..A877 ; valid ; ; NV8 # 5.0 PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD +A878..A87F ; disallowed # NA <reserved-A878>..<reserved-A87F> +A880..A8C4 ; valid # 5.1 SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VIRAMA +A8C5 ; valid # 9.0 SAURASHTRA SIGN CANDRABINDU +A8C6..A8CD ; disallowed # NA <reserved-A8C6>..<reserved-A8CD> +A8CE..A8CF ; valid ; ; NV8 # 5.1 SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA +A8D0..A8D9 ; valid # 5.1 SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE +A8DA..A8DF ; disallowed # NA <reserved-A8DA>..<reserved-A8DF> +A8E0..A8F7 ; valid # 5.2 COMBINING DEVANAGARI DIGIT ZERO..DEVANAGARI SIGN CANDRABINDU AVAGRAHA +A8F8..A8FA ; valid ; ; NV8 # 5.2 DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET +A8FB ; valid # 5.2 DEVANAGARI HEADSTROKE +A8FC ; valid ; ; NV8 # 8.0 DEVANAGARI SIGN SIDDHAM +A8FD ; valid # 8.0 DEVANAGARI JAIN OM +A8FE..A8FF ; valid # 11.0 DEVANAGARI LETTER AY..DEVANAGARI VOWEL SIGN AY +A900..A92D ; valid # 5.1 KAYAH LI DIGIT ZERO..KAYAH LI TONE CALYA PLOPHU +A92E..A92F ; valid ; ; NV8 # 5.1 KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA +A930..A953 ; valid # 5.1 REJANG LETTER KA..REJANG VIRAMA +A954..A95E ; disallowed # NA <reserved-A954>..<reserved-A95E> +A95F ; valid ; ; NV8 # 5.1 REJANG SECTION MARK +A960..A97C ; valid ; ; NV8 # 5.2 HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH +A97D..A97F ; disallowed # NA <reserved-A97D>..<reserved-A97F> +A980..A9C0 ; valid # 5.2 JAVANESE SIGN PANYANGGA..JAVANESE PANGKON +A9C1..A9CD ; valid ; ; NV8 # 5.2 JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISELEH +A9CE ; disallowed # NA <reserved-A9CE> +A9CF..A9D9 ; valid # 5.2 JAVANESE PANGRANGKEP..JAVANESE DIGIT NINE +A9DA..A9DD ; disallowed # NA <reserved-A9DA>..<reserved-A9DD> +A9DE..A9DF ; valid ; ; NV8 # 5.2 JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN +A9E0..A9FE ; valid # 7.0 MYANMAR LETTER SHAN GHA..MYANMAR LETTER TAI LAING BHA +A9FF ; disallowed # NA <reserved-A9FF> +AA00..AA36 ; valid # 5.1 CHAM LETTER A..CHAM CONSONANT SIGN WA +AA37..AA3F ; disallowed # NA <reserved-AA37>..<reserved-AA3F> +AA40..AA4D ; valid # 5.1 CHAM LETTER FINAL K..CHAM CONSONANT SIGN FINAL H +AA4E..AA4F ; disallowed # NA <reserved-AA4E>..<reserved-AA4F> +AA50..AA59 ; valid # 5.1 CHAM DIGIT ZERO..CHAM DIGIT NINE +AA5A..AA5B ; disallowed # NA <reserved-AA5A>..<reserved-AA5B> +AA5C..AA5F ; valid ; ; NV8 # 5.1 CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TRIPLE DANDA +AA60..AA76 ; valid # 5.2 MYANMAR LETTER KHAMTI GA..MYANMAR LOGOGRAM KHAMTI HM +AA77..AA79 ; valid ; ; NV8 # 5.2 MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO +AA7A..AA7B ; valid # 5.2 MYANMAR LETTER AITON RA..MYANMAR SIGN PAO KAREN TONE +AA7C..AA7F ; valid # 7.0 MYANMAR SIGN TAI LAING TONE-2..MYANMAR LETTER SHWE PALAUNG SHA +AA80..AAC2 ; valid # 5.2 TAI VIET LETTER LOW KO..TAI VIET TONE MAI SONG +AAC3..AADA ; disallowed # NA <reserved-AAC3>..<reserved-AADA> +AADB..AADD ; valid # 5.2 TAI VIET SYMBOL KON..TAI VIET SYMBOL SAM +AADE..AADF ; valid ; ; NV8 # 5.2 TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI +AAE0..AAEF ; valid # 6.1 MEETEI MAYEK LETTER E..MEETEI MAYEK VOWEL SIGN AAU +AAF0..AAF1 ; valid ; ; NV8 # 6.1 MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM +AAF2..AAF6 ; valid # 6.1 MEETEI MAYEK ANJI..MEETEI MAYEK VIRAMA +AAF7..AB00 ; disallowed # NA <reserved-AAF7>..<reserved-AB00> +AB01..AB06 ; valid # 6.0 ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO +AB07..AB08 ; disallowed # NA <reserved-AB07>..<reserved-AB08> +AB09..AB0E ; valid # 6.0 ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO +AB0F..AB10 ; disallowed # NA <reserved-AB0F>..<reserved-AB10> +AB11..AB16 ; valid # 6.0 ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO +AB17..AB1F ; disallowed # NA <reserved-AB17>..<reserved-AB1F> +AB20..AB26 ; valid # 6.0 ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO +AB27 ; disallowed # NA <reserved-AB27> +AB28..AB2E ; valid # 6.0 ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO +AB2F ; disallowed # NA <reserved-AB2F> +AB30..AB5A ; valid # 7.0 LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG +AB5B ; valid ; ; NV8 # 7.0 MODIFIER BREVE WITH INVERTED BREVE +AB5C ; mapped ; A727 # 7.0 MODIFIER LETTER SMALL HENG +AB5D ; mapped ; AB37 # 7.0 MODIFIER LETTER SMALL L WITH INVERTED LAZY S +AB5E ; mapped ; 026B # 7.0 MODIFIER LETTER SMALL L WITH MIDDLE TILDE +AB5F ; mapped ; AB52 # 7.0 MODIFIER LETTER SMALL U WITH LEFT HOOK +AB60..AB63 ; valid # 8.0 LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER UO +AB64..AB65 ; valid # 7.0 LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA +AB66..AB67 ; valid # 12.0 LATIN SMALL LETTER DZ DIGRAPH WITH RETROFLEX HOOK..LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK +AB68 ; valid # 13.0 LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE +AB69 ; mapped ; 028D # 13.0 MODIFIER LETTER SMALL TURNED W +AB6A..AB6B ; valid ; ; NV8 # 13.0 MODIFIER LETTER LEFT TACK..MODIFIER LETTER RIGHT TACK +AB6C..AB6F ; disallowed # NA <reserved-AB6C>..<reserved-AB6F> +AB70 ; mapped ; 13A0 # 8.0 CHEROKEE SMALL LETTER A +AB71 ; mapped ; 13A1 # 8.0 CHEROKEE SMALL LETTER E +AB72 ; mapped ; 13A2 # 8.0 CHEROKEE SMALL LETTER I +AB73 ; mapped ; 13A3 # 8.0 CHEROKEE SMALL LETTER O +AB74 ; mapped ; 13A4 # 8.0 CHEROKEE SMALL LETTER U +AB75 ; mapped ; 13A5 # 8.0 CHEROKEE SMALL LETTER V +AB76 ; mapped ; 13A6 # 8.0 CHEROKEE SMALL LETTER GA +AB77 ; mapped ; 13A7 # 8.0 CHEROKEE SMALL LETTER KA +AB78 ; mapped ; 13A8 # 8.0 CHEROKEE SMALL LETTER GE +AB79 ; mapped ; 13A9 # 8.0 CHEROKEE SMALL LETTER GI +AB7A ; mapped ; 13AA # 8.0 CHEROKEE SMALL LETTER GO +AB7B ; mapped ; 13AB # 8.0 CHEROKEE SMALL LETTER GU +AB7C ; mapped ; 13AC # 8.0 CHEROKEE SMALL LETTER GV +AB7D ; mapped ; 13AD # 8.0 CHEROKEE SMALL LETTER HA +AB7E ; mapped ; 13AE # 8.0 CHEROKEE SMALL LETTER HE +AB7F ; mapped ; 13AF # 8.0 CHEROKEE SMALL LETTER HI +AB80 ; mapped ; 13B0 # 8.0 CHEROKEE SMALL LETTER HO +AB81 ; mapped ; 13B1 # 8.0 CHEROKEE SMALL LETTER HU +AB82 ; mapped ; 13B2 # 8.0 CHEROKEE SMALL LETTER HV +AB83 ; mapped ; 13B3 # 8.0 CHEROKEE SMALL LETTER LA +AB84 ; mapped ; 13B4 # 8.0 CHEROKEE SMALL LETTER LE +AB85 ; mapped ; 13B5 # 8.0 CHEROKEE SMALL LETTER LI +AB86 ; mapped ; 13B6 # 8.0 CHEROKEE SMALL LETTER LO +AB87 ; mapped ; 13B7 # 8.0 CHEROKEE SMALL LETTER LU +AB88 ; mapped ; 13B8 # 8.0 CHEROKEE SMALL LETTER LV +AB89 ; mapped ; 13B9 # 8.0 CHEROKEE SMALL LETTER MA +AB8A ; mapped ; 13BA # 8.0 CHEROKEE SMALL LETTER ME +AB8B ; mapped ; 13BB # 8.0 CHEROKEE SMALL LETTER MI +AB8C ; mapped ; 13BC # 8.0 CHEROKEE SMALL LETTER MO +AB8D ; mapped ; 13BD # 8.0 CHEROKEE SMALL LETTER MU +AB8E ; mapped ; 13BE # 8.0 CHEROKEE SMALL LETTER NA +AB8F ; mapped ; 13BF # 8.0 CHEROKEE SMALL LETTER HNA +AB90 ; mapped ; 13C0 # 8.0 CHEROKEE SMALL LETTER NAH +AB91 ; mapped ; 13C1 # 8.0 CHEROKEE SMALL LETTER NE +AB92 ; mapped ; 13C2 # 8.0 CHEROKEE SMALL LETTER NI +AB93 ; mapped ; 13C3 # 8.0 CHEROKEE SMALL LETTER NO +AB94 ; mapped ; 13C4 # 8.0 CHEROKEE SMALL LETTER NU +AB95 ; mapped ; 13C5 # 8.0 CHEROKEE SMALL LETTER NV +AB96 ; mapped ; 13C6 # 8.0 CHEROKEE SMALL LETTER QUA +AB97 ; mapped ; 13C7 # 8.0 CHEROKEE SMALL LETTER QUE +AB98 ; mapped ; 13C8 # 8.0 CHEROKEE SMALL LETTER QUI +AB99 ; mapped ; 13C9 # 8.0 CHEROKEE SMALL LETTER QUO +AB9A ; mapped ; 13CA # 8.0 CHEROKEE SMALL LETTER QUU +AB9B ; mapped ; 13CB # 8.0 CHEROKEE SMALL LETTER QUV +AB9C ; mapped ; 13CC # 8.0 CHEROKEE SMALL LETTER SA +AB9D ; mapped ; 13CD # 8.0 CHEROKEE SMALL LETTER S +AB9E ; mapped ; 13CE # 8.0 CHEROKEE SMALL LETTER SE +AB9F ; mapped ; 13CF # 8.0 CHEROKEE SMALL LETTER SI +ABA0 ; mapped ; 13D0 # 8.0 CHEROKEE SMALL LETTER SO +ABA1 ; mapped ; 13D1 # 8.0 CHEROKEE SMALL LETTER SU +ABA2 ; mapped ; 13D2 # 8.0 CHEROKEE SMALL LETTER SV +ABA3 ; mapped ; 13D3 # 8.0 CHEROKEE SMALL LETTER DA +ABA4 ; mapped ; 13D4 # 8.0 CHEROKEE SMALL LETTER TA +ABA5 ; mapped ; 13D5 # 8.0 CHEROKEE SMALL LETTER DE +ABA6 ; mapped ; 13D6 # 8.0 CHEROKEE SMALL LETTER TE +ABA7 ; mapped ; 13D7 # 8.0 CHEROKEE SMALL LETTER DI +ABA8 ; mapped ; 13D8 # 8.0 CHEROKEE SMALL LETTER TI +ABA9 ; mapped ; 13D9 # 8.0 CHEROKEE SMALL LETTER DO +ABAA ; mapped ; 13DA # 8.0 CHEROKEE SMALL LETTER DU +ABAB ; mapped ; 13DB # 8.0 CHEROKEE SMALL LETTER DV +ABAC ; mapped ; 13DC # 8.0 CHEROKEE SMALL LETTER DLA +ABAD ; mapped ; 13DD # 8.0 CHEROKEE SMALL LETTER TLA +ABAE ; mapped ; 13DE # 8.0 CHEROKEE SMALL LETTER TLE +ABAF ; mapped ; 13DF # 8.0 CHEROKEE SMALL LETTER TLI +ABB0 ; mapped ; 13E0 # 8.0 CHEROKEE SMALL LETTER TLO +ABB1 ; mapped ; 13E1 # 8.0 CHEROKEE SMALL LETTER TLU +ABB2 ; mapped ; 13E2 # 8.0 CHEROKEE SMALL LETTER TLV +ABB3 ; mapped ; 13E3 # 8.0 CHEROKEE SMALL LETTER TSA +ABB4 ; mapped ; 13E4 # 8.0 CHEROKEE SMALL LETTER TSE +ABB5 ; mapped ; 13E5 # 8.0 CHEROKEE SMALL LETTER TSI +ABB6 ; mapped ; 13E6 # 8.0 CHEROKEE SMALL LETTER TSO +ABB7 ; mapped ; 13E7 # 8.0 CHEROKEE SMALL LETTER TSU +ABB8 ; mapped ; 13E8 # 8.0 CHEROKEE SMALL LETTER TSV +ABB9 ; mapped ; 13E9 # 8.0 CHEROKEE SMALL LETTER WA +ABBA ; mapped ; 13EA # 8.0 CHEROKEE SMALL LETTER WE +ABBB ; mapped ; 13EB # 8.0 CHEROKEE SMALL LETTER WI +ABBC ; mapped ; 13EC # 8.0 CHEROKEE SMALL LETTER WO +ABBD ; mapped ; 13ED # 8.0 CHEROKEE SMALL LETTER WU +ABBE ; mapped ; 13EE # 8.0 CHEROKEE SMALL LETTER WV +ABBF ; mapped ; 13EF # 8.0 CHEROKEE SMALL LETTER YA +ABC0..ABEA ; valid # 5.2 MEETEI MAYEK LETTER KOK..MEETEI MAYEK VOWEL SIGN NUNG +ABEB ; valid ; ; NV8 # 5.2 MEETEI MAYEK CHEIKHEI +ABEC..ABED ; valid # 5.2 MEETEI MAYEK LUM IYEK..MEETEI MAYEK APUN IYEK +ABEE..ABEF ; disallowed # NA <reserved-ABEE>..<reserved-ABEF> +ABF0..ABF9 ; valid # 5.2 MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE +ABFA..ABFF ; disallowed # NA <reserved-ABFA>..<reserved-ABFF> +AC00..D7A3 ; valid # 2.0 HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH +D7A4..D7AF ; disallowed # NA <reserved-D7A4>..<reserved-D7AF> +D7B0..D7C6 ; valid ; ; NV8 # 5.2 HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E +D7C7..D7CA ; disallowed # NA <reserved-D7C7>..<reserved-D7CA> +D7CB..D7FB ; valid ; ; NV8 # 5.2 HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH +D7FC..D7FF ; disallowed # NA <reserved-D7FC>..<reserved-D7FF> +D800..DFFF ; disallowed # 2.0 <surrogate-D800>..<surrogate-DFFF> +E000..F8FF ; disallowed # 1.1 <private-use-E000>..<private-use-F8FF> +F900 ; mapped ; 8C48 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F900 +F901 ; mapped ; 66F4 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F901 +F902 ; mapped ; 8ECA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F902 +F903 ; mapped ; 8CC8 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F903 +F904 ; mapped ; 6ED1 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F904 +F905 ; mapped ; 4E32 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F905 +F906 ; mapped ; 53E5 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F906 +F907..F908 ; mapped ; 9F9C # 1.1 CJK COMPATIBILITY IDEOGRAPH-F907..CJK COMPATIBILITY IDEOGRAPH-F908 +F909 ; mapped ; 5951 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F909 +F90A ; mapped ; 91D1 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F90A +F90B ; mapped ; 5587 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F90B +F90C ; mapped ; 5948 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F90C +F90D ; mapped ; 61F6 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F90D +F90E ; mapped ; 7669 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F90E +F90F ; mapped ; 7F85 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F90F +F910 ; mapped ; 863F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F910 +F911 ; mapped ; 87BA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F911 +F912 ; mapped ; 88F8 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F912 +F913 ; mapped ; 908F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F913 +F914 ; mapped ; 6A02 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F914 +F915 ; mapped ; 6D1B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F915 +F916 ; mapped ; 70D9 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F916 +F917 ; mapped ; 73DE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F917 +F918 ; mapped ; 843D # 1.1 CJK COMPATIBILITY IDEOGRAPH-F918 +F919 ; mapped ; 916A # 1.1 CJK COMPATIBILITY IDEOGRAPH-F919 +F91A ; mapped ; 99F1 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F91A +F91B ; mapped ; 4E82 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F91B +F91C ; mapped ; 5375 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F91C +F91D ; mapped ; 6B04 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F91D +F91E ; mapped ; 721B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F91E +F91F ; mapped ; 862D # 1.1 CJK COMPATIBILITY IDEOGRAPH-F91F +F920 ; mapped ; 9E1E # 1.1 CJK COMPATIBILITY IDEOGRAPH-F920 +F921 ; mapped ; 5D50 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F921 +F922 ; mapped ; 6FEB # 1.1 CJK COMPATIBILITY IDEOGRAPH-F922 +F923 ; mapped ; 85CD # 1.1 CJK COMPATIBILITY IDEOGRAPH-F923 +F924 ; mapped ; 8964 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F924 +F925 ; mapped ; 62C9 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F925 +F926 ; mapped ; 81D8 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F926 +F927 ; mapped ; 881F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F927 +F928 ; mapped ; 5ECA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F928 +F929 ; mapped ; 6717 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F929 +F92A ; mapped ; 6D6A # 1.1 CJK COMPATIBILITY IDEOGRAPH-F92A +F92B ; mapped ; 72FC # 1.1 CJK COMPATIBILITY IDEOGRAPH-F92B +F92C ; mapped ; 90CE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F92C +F92D ; mapped ; 4F86 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F92D +F92E ; mapped ; 51B7 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F92E +F92F ; mapped ; 52DE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F92F +F930 ; mapped ; 64C4 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F930 +F931 ; mapped ; 6AD3 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F931 +F932 ; mapped ; 7210 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F932 +F933 ; mapped ; 76E7 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F933 +F934 ; mapped ; 8001 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F934 +F935 ; mapped ; 8606 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F935 +F936 ; mapped ; 865C # 1.1 CJK COMPATIBILITY IDEOGRAPH-F936 +F937 ; mapped ; 8DEF # 1.1 CJK COMPATIBILITY IDEOGRAPH-F937 +F938 ; mapped ; 9732 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F938 +F939 ; mapped ; 9B6F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F939 +F93A ; mapped ; 9DFA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F93A +F93B ; mapped ; 788C # 1.1 CJK COMPATIBILITY IDEOGRAPH-F93B +F93C ; mapped ; 797F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F93C +F93D ; mapped ; 7DA0 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F93D +F93E ; mapped ; 83C9 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F93E +F93F ; mapped ; 9304 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F93F +F940 ; mapped ; 9E7F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F940 +F941 ; mapped ; 8AD6 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F941 +F942 ; mapped ; 58DF # 1.1 CJK COMPATIBILITY IDEOGRAPH-F942 +F943 ; mapped ; 5F04 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F943 +F944 ; mapped ; 7C60 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F944 +F945 ; mapped ; 807E # 1.1 CJK COMPATIBILITY IDEOGRAPH-F945 +F946 ; mapped ; 7262 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F946 +F947 ; mapped ; 78CA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F947 +F948 ; mapped ; 8CC2 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F948 +F949 ; mapped ; 96F7 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F949 +F94A ; mapped ; 58D8 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F94A +F94B ; mapped ; 5C62 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F94B +F94C ; mapped ; 6A13 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F94C +F94D ; mapped ; 6DDA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F94D +F94E ; mapped ; 6F0F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F94E +F94F ; mapped ; 7D2F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F94F +F950 ; mapped ; 7E37 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F950 +F951 ; mapped ; 964B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F951 +F952 ; mapped ; 52D2 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F952 +F953 ; mapped ; 808B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F953 +F954 ; mapped ; 51DC # 1.1 CJK COMPATIBILITY IDEOGRAPH-F954 +F955 ; mapped ; 51CC # 1.1 CJK COMPATIBILITY IDEOGRAPH-F955 +F956 ; mapped ; 7A1C # 1.1 CJK COMPATIBILITY IDEOGRAPH-F956 +F957 ; mapped ; 7DBE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F957 +F958 ; mapped ; 83F1 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F958 +F959 ; mapped ; 9675 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F959 +F95A ; mapped ; 8B80 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F95A +F95B ; mapped ; 62CF # 1.1 CJK COMPATIBILITY IDEOGRAPH-F95B +F95C ; mapped ; 6A02 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F95C +F95D ; mapped ; 8AFE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F95D +F95E ; mapped ; 4E39 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F95E +F95F ; mapped ; 5BE7 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F95F +F960 ; mapped ; 6012 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F960 +F961 ; mapped ; 7387 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F961 +F962 ; mapped ; 7570 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F962 +F963 ; mapped ; 5317 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F963 +F964 ; mapped ; 78FB # 1.1 CJK COMPATIBILITY IDEOGRAPH-F964 +F965 ; mapped ; 4FBF # 1.1 CJK COMPATIBILITY IDEOGRAPH-F965 +F966 ; mapped ; 5FA9 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F966 +F967 ; mapped ; 4E0D # 1.1 CJK COMPATIBILITY IDEOGRAPH-F967 +F968 ; mapped ; 6CCC # 1.1 CJK COMPATIBILITY IDEOGRAPH-F968 +F969 ; mapped ; 6578 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F969 +F96A ; mapped ; 7D22 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F96A +F96B ; mapped ; 53C3 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F96B +F96C ; mapped ; 585E # 1.1 CJK COMPATIBILITY IDEOGRAPH-F96C +F96D ; mapped ; 7701 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F96D +F96E ; mapped ; 8449 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F96E +F96F ; mapped ; 8AAA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F96F +F970 ; mapped ; 6BBA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F970 +F971 ; mapped ; 8FB0 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F971 +F972 ; mapped ; 6C88 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F972 +F973 ; mapped ; 62FE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F973 +F974 ; mapped ; 82E5 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F974 +F975 ; mapped ; 63A0 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F975 +F976 ; mapped ; 7565 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F976 +F977 ; mapped ; 4EAE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F977 +F978 ; mapped ; 5169 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F978 +F979 ; mapped ; 51C9 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F979 +F97A ; mapped ; 6881 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F97A +F97B ; mapped ; 7CE7 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F97B +F97C ; mapped ; 826F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F97C +F97D ; mapped ; 8AD2 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F97D +F97E ; mapped ; 91CF # 1.1 CJK COMPATIBILITY IDEOGRAPH-F97E +F97F ; mapped ; 52F5 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F97F +F980 ; mapped ; 5442 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F980 +F981 ; mapped ; 5973 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F981 +F982 ; mapped ; 5EEC # 1.1 CJK COMPATIBILITY IDEOGRAPH-F982 +F983 ; mapped ; 65C5 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F983 +F984 ; mapped ; 6FFE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F984 +F985 ; mapped ; 792A # 1.1 CJK COMPATIBILITY IDEOGRAPH-F985 +F986 ; mapped ; 95AD # 1.1 CJK COMPATIBILITY IDEOGRAPH-F986 +F987 ; mapped ; 9A6A # 1.1 CJK COMPATIBILITY IDEOGRAPH-F987 +F988 ; mapped ; 9E97 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F988 +F989 ; mapped ; 9ECE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F989 +F98A ; mapped ; 529B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F98A +F98B ; mapped ; 66C6 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F98B +F98C ; mapped ; 6B77 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F98C +F98D ; mapped ; 8F62 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F98D +F98E ; mapped ; 5E74 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F98E +F98F ; mapped ; 6190 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F98F +F990 ; mapped ; 6200 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F990 +F991 ; mapped ; 649A # 1.1 CJK COMPATIBILITY IDEOGRAPH-F991 +F992 ; mapped ; 6F23 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F992 +F993 ; mapped ; 7149 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F993 +F994 ; mapped ; 7489 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F994 +F995 ; mapped ; 79CA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F995 +F996 ; mapped ; 7DF4 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F996 +F997 ; mapped ; 806F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F997 +F998 ; mapped ; 8F26 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F998 +F999 ; mapped ; 84EE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F999 +F99A ; mapped ; 9023 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F99A +F99B ; mapped ; 934A # 1.1 CJK COMPATIBILITY IDEOGRAPH-F99B +F99C ; mapped ; 5217 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F99C +F99D ; mapped ; 52A3 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F99D +F99E ; mapped ; 54BD # 1.1 CJK COMPATIBILITY IDEOGRAPH-F99E +F99F ; mapped ; 70C8 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F99F +F9A0 ; mapped ; 88C2 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9A0 +F9A1 ; mapped ; 8AAA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9A1 +F9A2 ; mapped ; 5EC9 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9A2 +F9A3 ; mapped ; 5FF5 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9A3 +F9A4 ; mapped ; 637B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9A4 +F9A5 ; mapped ; 6BAE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9A5 +F9A6 ; mapped ; 7C3E # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9A6 +F9A7 ; mapped ; 7375 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9A7 +F9A8 ; mapped ; 4EE4 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9A8 +F9A9 ; mapped ; 56F9 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9A9 +F9AA ; mapped ; 5BE7 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9AA +F9AB ; mapped ; 5DBA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9AB +F9AC ; mapped ; 601C # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9AC +F9AD ; mapped ; 73B2 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9AD +F9AE ; mapped ; 7469 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9AE +F9AF ; mapped ; 7F9A # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9AF +F9B0 ; mapped ; 8046 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9B0 +F9B1 ; mapped ; 9234 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9B1 +F9B2 ; mapped ; 96F6 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9B2 +F9B3 ; mapped ; 9748 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9B3 +F9B4 ; mapped ; 9818 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9B4 +F9B5 ; mapped ; 4F8B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9B5 +F9B6 ; mapped ; 79AE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9B6 +F9B7 ; mapped ; 91B4 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9B7 +F9B8 ; mapped ; 96B8 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9B8 +F9B9 ; mapped ; 60E1 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9B9 +F9BA ; mapped ; 4E86 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9BA +F9BB ; mapped ; 50DA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9BB +F9BC ; mapped ; 5BEE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9BC +F9BD ; mapped ; 5C3F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9BD +F9BE ; mapped ; 6599 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9BE +F9BF ; mapped ; 6A02 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9BF +F9C0 ; mapped ; 71CE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9C0 +F9C1 ; mapped ; 7642 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9C1 +F9C2 ; mapped ; 84FC # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9C2 +F9C3 ; mapped ; 907C # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9C3 +F9C4 ; mapped ; 9F8D # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9C4 +F9C5 ; mapped ; 6688 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9C5 +F9C6 ; mapped ; 962E # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9C6 +F9C7 ; mapped ; 5289 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9C7 +F9C8 ; mapped ; 677B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9C8 +F9C9 ; mapped ; 67F3 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9C9 +F9CA ; mapped ; 6D41 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9CA +F9CB ; mapped ; 6E9C # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9CB +F9CC ; mapped ; 7409 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9CC +F9CD ; mapped ; 7559 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9CD +F9CE ; mapped ; 786B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9CE +F9CF ; mapped ; 7D10 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9CF +F9D0 ; mapped ; 985E # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9D0 +F9D1 ; mapped ; 516D # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9D1 +F9D2 ; mapped ; 622E # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9D2 +F9D3 ; mapped ; 9678 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9D3 +F9D4 ; mapped ; 502B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9D4 +F9D5 ; mapped ; 5D19 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9D5 +F9D6 ; mapped ; 6DEA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9D6 +F9D7 ; mapped ; 8F2A # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9D7 +F9D8 ; mapped ; 5F8B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9D8 +F9D9 ; mapped ; 6144 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9D9 +F9DA ; mapped ; 6817 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9DA +F9DB ; mapped ; 7387 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9DB +F9DC ; mapped ; 9686 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9DC +F9DD ; mapped ; 5229 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9DD +F9DE ; mapped ; 540F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9DE +F9DF ; mapped ; 5C65 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9DF +F9E0 ; mapped ; 6613 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9E0 +F9E1 ; mapped ; 674E # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9E1 +F9E2 ; mapped ; 68A8 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9E2 +F9E3 ; mapped ; 6CE5 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9E3 +F9E4 ; mapped ; 7406 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9E4 +F9E5 ; mapped ; 75E2 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9E5 +F9E6 ; mapped ; 7F79 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9E6 +F9E7 ; mapped ; 88CF # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9E7 +F9E8 ; mapped ; 88E1 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9E8 +F9E9 ; mapped ; 91CC # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9E9 +F9EA ; mapped ; 96E2 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9EA +F9EB ; mapped ; 533F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9EB +F9EC ; mapped ; 6EBA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9EC +F9ED ; mapped ; 541D # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9ED +F9EE ; mapped ; 71D0 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9EE +F9EF ; mapped ; 7498 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9EF +F9F0 ; mapped ; 85FA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9F0 +F9F1 ; mapped ; 96A3 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9F1 +F9F2 ; mapped ; 9C57 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9F2 +F9F3 ; mapped ; 9E9F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9F3 +F9F4 ; mapped ; 6797 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9F4 +F9F5 ; mapped ; 6DCB # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9F5 +F9F6 ; mapped ; 81E8 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9F6 +F9F7 ; mapped ; 7ACB # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9F7 +F9F8 ; mapped ; 7B20 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9F8 +F9F9 ; mapped ; 7C92 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9F9 +F9FA ; mapped ; 72C0 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9FA +F9FB ; mapped ; 7099 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9FB +F9FC ; mapped ; 8B58 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9FC +F9FD ; mapped ; 4EC0 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9FD +F9FE ; mapped ; 8336 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9FE +F9FF ; mapped ; 523A # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9FF +FA00 ; mapped ; 5207 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA00 +FA01 ; mapped ; 5EA6 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA01 +FA02 ; mapped ; 62D3 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA02 +FA03 ; mapped ; 7CD6 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA03 +FA04 ; mapped ; 5B85 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA04 +FA05 ; mapped ; 6D1E # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA05 +FA06 ; mapped ; 66B4 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA06 +FA07 ; mapped ; 8F3B # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA07 +FA08 ; mapped ; 884C # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA08 +FA09 ; mapped ; 964D # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA09 +FA0A ; mapped ; 898B # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA0A +FA0B ; mapped ; 5ED3 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA0B +FA0C ; mapped ; 5140 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA0C +FA0D ; mapped ; 55C0 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA0D +FA0E..FA0F ; valid # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA0E..CJK COMPATIBILITY IDEOGRAPH-FA0F +FA10 ; mapped ; 585A # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA10 +FA11 ; valid # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA11 +FA12 ; mapped ; 6674 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA12 +FA13..FA14 ; valid # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA13..CJK COMPATIBILITY IDEOGRAPH-FA14 +FA15 ; mapped ; 51DE # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA15 +FA16 ; mapped ; 732A # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA16 +FA17 ; mapped ; 76CA # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA17 +FA18 ; mapped ; 793C # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA18 +FA19 ; mapped ; 795E # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA19 +FA1A ; mapped ; 7965 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA1A +FA1B ; mapped ; 798F # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA1B +FA1C ; mapped ; 9756 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA1C +FA1D ; mapped ; 7CBE # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA1D +FA1E ; mapped ; 7FBD # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA1E +FA1F ; valid # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA1F +FA20 ; mapped ; 8612 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA20 +FA21 ; valid # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA21 +FA22 ; mapped ; 8AF8 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA22 +FA23..FA24 ; valid # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA23..CJK COMPATIBILITY IDEOGRAPH-FA24 +FA25 ; mapped ; 9038 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA25 +FA26 ; mapped ; 90FD # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA26 +FA27..FA29 ; valid # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA27..CJK COMPATIBILITY IDEOGRAPH-FA29 +FA2A ; mapped ; 98EF # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA2A +FA2B ; mapped ; 98FC # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA2B +FA2C ; mapped ; 9928 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA2C +FA2D ; mapped ; 9DB4 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA2D +FA2E ; mapped ; 90DE # 6.1 CJK COMPATIBILITY IDEOGRAPH-FA2E +FA2F ; mapped ; 96B7 # 6.1 CJK COMPATIBILITY IDEOGRAPH-FA2F +FA30 ; mapped ; 4FAE # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA30 +FA31 ; mapped ; 50E7 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA31 +FA32 ; mapped ; 514D # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA32 +FA33 ; mapped ; 52C9 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA33 +FA34 ; mapped ; 52E4 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA34 +FA35 ; mapped ; 5351 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA35 +FA36 ; mapped ; 559D # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA36 +FA37 ; mapped ; 5606 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA37 +FA38 ; mapped ; 5668 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA38 +FA39 ; mapped ; 5840 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA39 +FA3A ; mapped ; 58A8 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA3A +FA3B ; mapped ; 5C64 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA3B +FA3C ; mapped ; 5C6E # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA3C +FA3D ; mapped ; 6094 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA3D +FA3E ; mapped ; 6168 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA3E +FA3F ; mapped ; 618E # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA3F +FA40 ; mapped ; 61F2 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA40 +FA41 ; mapped ; 654F # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA41 +FA42 ; mapped ; 65E2 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA42 +FA43 ; mapped ; 6691 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA43 +FA44 ; mapped ; 6885 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA44 +FA45 ; mapped ; 6D77 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA45 +FA46 ; mapped ; 6E1A # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA46 +FA47 ; mapped ; 6F22 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA47 +FA48 ; mapped ; 716E # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA48 +FA49 ; mapped ; 722B # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA49 +FA4A ; mapped ; 7422 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA4A +FA4B ; mapped ; 7891 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA4B +FA4C ; mapped ; 793E # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA4C +FA4D ; mapped ; 7949 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA4D +FA4E ; mapped ; 7948 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA4E +FA4F ; mapped ; 7950 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA4F +FA50 ; mapped ; 7956 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA50 +FA51 ; mapped ; 795D # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA51 +FA52 ; mapped ; 798D # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA52 +FA53 ; mapped ; 798E # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA53 +FA54 ; mapped ; 7A40 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA54 +FA55 ; mapped ; 7A81 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA55 +FA56 ; mapped ; 7BC0 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA56 +FA57 ; mapped ; 7DF4 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA57 +FA58 ; mapped ; 7E09 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA58 +FA59 ; mapped ; 7E41 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA59 +FA5A ; mapped ; 7F72 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA5A +FA5B ; mapped ; 8005 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA5B +FA5C ; mapped ; 81ED # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA5C +FA5D..FA5E ; mapped ; 8279 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA5D..CJK COMPATIBILITY IDEOGRAPH-FA5E +FA5F ; mapped ; 8457 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA5F +FA60 ; mapped ; 8910 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA60 +FA61 ; mapped ; 8996 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA61 +FA62 ; mapped ; 8B01 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA62 +FA63 ; mapped ; 8B39 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA63 +FA64 ; mapped ; 8CD3 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA64 +FA65 ; mapped ; 8D08 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA65 +FA66 ; mapped ; 8FB6 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA66 +FA67 ; mapped ; 9038 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA67 +FA68 ; mapped ; 96E3 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA68 +FA69 ; mapped ; 97FF # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA69 +FA6A ; mapped ; 983B # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA6A +FA6B ; mapped ; 6075 # 5.2 CJK COMPATIBILITY IDEOGRAPH-FA6B +FA6C ; mapped ; 242EE # 5.2 CJK COMPATIBILITY IDEOGRAPH-FA6C +FA6D ; mapped ; 8218 # 5.2 CJK COMPATIBILITY IDEOGRAPH-FA6D +FA6E..FA6F ; disallowed # NA <reserved-FA6E>..<reserved-FA6F> +FA70 ; mapped ; 4E26 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA70 +FA71 ; mapped ; 51B5 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA71 +FA72 ; mapped ; 5168 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA72 +FA73 ; mapped ; 4F80 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA73 +FA74 ; mapped ; 5145 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA74 +FA75 ; mapped ; 5180 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA75 +FA76 ; mapped ; 52C7 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA76 +FA77 ; mapped ; 52FA # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA77 +FA78 ; mapped ; 559D # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA78 +FA79 ; mapped ; 5555 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA79 +FA7A ; mapped ; 5599 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA7A +FA7B ; mapped ; 55E2 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA7B +FA7C ; mapped ; 585A # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA7C +FA7D ; mapped ; 58B3 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA7D +FA7E ; mapped ; 5944 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA7E +FA7F ; mapped ; 5954 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA7F +FA80 ; mapped ; 5A62 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA80 +FA81 ; mapped ; 5B28 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA81 +FA82 ; mapped ; 5ED2 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA82 +FA83 ; mapped ; 5ED9 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA83 +FA84 ; mapped ; 5F69 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA84 +FA85 ; mapped ; 5FAD # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA85 +FA86 ; mapped ; 60D8 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA86 +FA87 ; mapped ; 614E # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA87 +FA88 ; mapped ; 6108 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA88 +FA89 ; mapped ; 618E # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA89 +FA8A ; mapped ; 6160 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA8A +FA8B ; mapped ; 61F2 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA8B +FA8C ; mapped ; 6234 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA8C +FA8D ; mapped ; 63C4 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA8D +FA8E ; mapped ; 641C # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA8E +FA8F ; mapped ; 6452 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA8F +FA90 ; mapped ; 6556 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA90 +FA91 ; mapped ; 6674 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA91 +FA92 ; mapped ; 6717 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA92 +FA93 ; mapped ; 671B # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA93 +FA94 ; mapped ; 6756 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA94 +FA95 ; mapped ; 6B79 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA95 +FA96 ; mapped ; 6BBA # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA96 +FA97 ; mapped ; 6D41 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA97 +FA98 ; mapped ; 6EDB # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA98 +FA99 ; mapped ; 6ECB # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA99 +FA9A ; mapped ; 6F22 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA9A +FA9B ; mapped ; 701E # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA9B +FA9C ; mapped ; 716E # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA9C +FA9D ; mapped ; 77A7 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA9D +FA9E ; mapped ; 7235 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA9E +FA9F ; mapped ; 72AF # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA9F +FAA0 ; mapped ; 732A # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAA0 +FAA1 ; mapped ; 7471 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAA1 +FAA2 ; mapped ; 7506 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAA2 +FAA3 ; mapped ; 753B # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAA3 +FAA4 ; mapped ; 761D # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAA4 +FAA5 ; mapped ; 761F # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAA5 +FAA6 ; mapped ; 76CA # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAA6 +FAA7 ; mapped ; 76DB # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAA7 +FAA8 ; mapped ; 76F4 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAA8 +FAA9 ; mapped ; 774A # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAA9 +FAAA ; mapped ; 7740 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAAA +FAAB ; mapped ; 78CC # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAAB +FAAC ; mapped ; 7AB1 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAAC +FAAD ; mapped ; 7BC0 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAAD +FAAE ; mapped ; 7C7B # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAAE +FAAF ; mapped ; 7D5B # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAAF +FAB0 ; mapped ; 7DF4 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAB0 +FAB1 ; mapped ; 7F3E # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAB1 +FAB2 ; mapped ; 8005 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAB2 +FAB3 ; mapped ; 8352 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAB3 +FAB4 ; mapped ; 83EF # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAB4 +FAB5 ; mapped ; 8779 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAB5 +FAB6 ; mapped ; 8941 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAB6 +FAB7 ; mapped ; 8986 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAB7 +FAB8 ; mapped ; 8996 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAB8 +FAB9 ; mapped ; 8ABF # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAB9 +FABA ; mapped ; 8AF8 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FABA +FABB ; mapped ; 8ACB # 4.1 CJK COMPATIBILITY IDEOGRAPH-FABB +FABC ; mapped ; 8B01 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FABC +FABD ; mapped ; 8AFE # 4.1 CJK COMPATIBILITY IDEOGRAPH-FABD +FABE ; mapped ; 8AED # 4.1 CJK COMPATIBILITY IDEOGRAPH-FABE +FABF ; mapped ; 8B39 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FABF +FAC0 ; mapped ; 8B8A # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAC0 +FAC1 ; mapped ; 8D08 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAC1 +FAC2 ; mapped ; 8F38 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAC2 +FAC3 ; mapped ; 9072 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAC3 +FAC4 ; mapped ; 9199 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAC4 +FAC5 ; mapped ; 9276 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAC5 +FAC6 ; mapped ; 967C # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAC6 +FAC7 ; mapped ; 96E3 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAC7 +FAC8 ; mapped ; 9756 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAC8 +FAC9 ; mapped ; 97DB # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAC9 +FACA ; mapped ; 97FF # 4.1 CJK COMPATIBILITY IDEOGRAPH-FACA +FACB ; mapped ; 980B # 4.1 CJK COMPATIBILITY IDEOGRAPH-FACB +FACC ; mapped ; 983B # 4.1 CJK COMPATIBILITY IDEOGRAPH-FACC +FACD ; mapped ; 9B12 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FACD +FACE ; mapped ; 9F9C # 4.1 CJK COMPATIBILITY IDEOGRAPH-FACE +FACF ; mapped ; 2284A # 4.1 CJK COMPATIBILITY IDEOGRAPH-FACF +FAD0 ; mapped ; 22844 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAD0 +FAD1 ; mapped ; 233D5 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAD1 +FAD2 ; mapped ; 3B9D # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAD2 +FAD3 ; mapped ; 4018 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAD3 +FAD4 ; mapped ; 4039 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAD4 +FAD5 ; mapped ; 25249 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAD5 +FAD6 ; mapped ; 25CD0 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAD6 +FAD7 ; mapped ; 27ED3 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAD7 +FAD8 ; mapped ; 9F43 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAD8 +FAD9 ; mapped ; 9F8E # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAD9 +FADA..FAFF ; disallowed # NA <reserved-FADA>..<reserved-FAFF> +FB00 ; mapped ; 0066 0066 # 1.1 LATIN SMALL LIGATURE FF +FB01 ; mapped ; 0066 0069 # 1.1 LATIN SMALL LIGATURE FI +FB02 ; mapped ; 0066 006C # 1.1 LATIN SMALL LIGATURE FL +FB03 ; mapped ; 0066 0066 0069 #1.1 LATIN SMALL LIGATURE FFI +FB04 ; mapped ; 0066 0066 006C #1.1 LATIN SMALL LIGATURE FFL +FB05..FB06 ; mapped ; 0073 0074 # 1.1 LATIN SMALL LIGATURE LONG S T..LATIN SMALL LIGATURE ST +FB07..FB12 ; disallowed # NA <reserved-FB07>..<reserved-FB12> +FB13 ; mapped ; 0574 0576 # 1.1 ARMENIAN SMALL LIGATURE MEN NOW +FB14 ; mapped ; 0574 0565 # 1.1 ARMENIAN SMALL LIGATURE MEN ECH +FB15 ; mapped ; 0574 056B # 1.1 ARMENIAN SMALL LIGATURE MEN INI +FB16 ; mapped ; 057E 0576 # 1.1 ARMENIAN SMALL LIGATURE VEW NOW +FB17 ; mapped ; 0574 056D # 1.1 ARMENIAN SMALL LIGATURE MEN XEH +FB18..FB1C ; disallowed # NA <reserved-FB18>..<reserved-FB1C> +FB1D ; mapped ; 05D9 05B4 # 3.0 HEBREW LETTER YOD WITH HIRIQ +FB1E ; valid # 1.1 HEBREW POINT JUDEO-SPANISH VARIKA +FB1F ; mapped ; 05F2 05B7 # 1.1 HEBREW LIGATURE YIDDISH YOD YOD PATAH +FB20 ; mapped ; 05E2 # 1.1 HEBREW LETTER ALTERNATIVE AYIN +FB21 ; mapped ; 05D0 # 1.1 HEBREW LETTER WIDE ALEF +FB22 ; mapped ; 05D3 # 1.1 HEBREW LETTER WIDE DALET +FB23 ; mapped ; 05D4 # 1.1 HEBREW LETTER WIDE HE +FB24 ; mapped ; 05DB # 1.1 HEBREW LETTER WIDE KAF +FB25 ; mapped ; 05DC # 1.1 HEBREW LETTER WIDE LAMED +FB26 ; mapped ; 05DD # 1.1 HEBREW LETTER WIDE FINAL MEM +FB27 ; mapped ; 05E8 # 1.1 HEBREW LETTER WIDE RESH +FB28 ; mapped ; 05EA # 1.1 HEBREW LETTER WIDE TAV +FB29 ; disallowed_STD3_mapped ; 002B # 1.1 HEBREW LETTER ALTERNATIVE PLUS SIGN +FB2A ; mapped ; 05E9 05C1 # 1.1 HEBREW LETTER SHIN WITH SHIN DOT +FB2B ; mapped ; 05E9 05C2 # 1.1 HEBREW LETTER SHIN WITH SIN DOT +FB2C ; mapped ; 05E9 05BC 05C1 #1.1 HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT +FB2D ; mapped ; 05E9 05BC 05C2 #1.1 HEBREW LETTER SHIN WITH DAGESH AND SIN DOT +FB2E ; mapped ; 05D0 05B7 # 1.1 HEBREW LETTER ALEF WITH PATAH +FB2F ; mapped ; 05D0 05B8 # 1.1 HEBREW LETTER ALEF WITH QAMATS +FB30 ; mapped ; 05D0 05BC # 1.1 HEBREW LETTER ALEF WITH MAPIQ +FB31 ; mapped ; 05D1 05BC # 1.1 HEBREW LETTER BET WITH DAGESH +FB32 ; mapped ; 05D2 05BC # 1.1 HEBREW LETTER GIMEL WITH DAGESH +FB33 ; mapped ; 05D3 05BC # 1.1 HEBREW LETTER DALET WITH DAGESH +FB34 ; mapped ; 05D4 05BC # 1.1 HEBREW LETTER HE WITH MAPIQ +FB35 ; mapped ; 05D5 05BC # 1.1 HEBREW LETTER VAV WITH DAGESH +FB36 ; mapped ; 05D6 05BC # 1.1 HEBREW LETTER ZAYIN WITH DAGESH +FB37 ; disallowed # NA <reserved-FB37> +FB38 ; mapped ; 05D8 05BC # 1.1 HEBREW LETTER TET WITH DAGESH +FB39 ; mapped ; 05D9 05BC # 1.1 HEBREW LETTER YOD WITH DAGESH +FB3A ; mapped ; 05DA 05BC # 1.1 HEBREW LETTER FINAL KAF WITH DAGESH +FB3B ; mapped ; 05DB 05BC # 1.1 HEBREW LETTER KAF WITH DAGESH +FB3C ; mapped ; 05DC 05BC # 1.1 HEBREW LETTER LAMED WITH DAGESH +FB3D ; disallowed # NA <reserved-FB3D> +FB3E ; mapped ; 05DE 05BC # 1.1 HEBREW LETTER MEM WITH DAGESH +FB3F ; disallowed # NA <reserved-FB3F> +FB40 ; mapped ; 05E0 05BC # 1.1 HEBREW LETTER NUN WITH DAGESH +FB41 ; mapped ; 05E1 05BC # 1.1 HEBREW LETTER SAMEKH WITH DAGESH +FB42 ; disallowed # NA <reserved-FB42> +FB43 ; mapped ; 05E3 05BC # 1.1 HEBREW LETTER FINAL PE WITH DAGESH +FB44 ; mapped ; 05E4 05BC # 1.1 HEBREW LETTER PE WITH DAGESH +FB45 ; disallowed # NA <reserved-FB45> +FB46 ; mapped ; 05E6 05BC # 1.1 HEBREW LETTER TSADI WITH DAGESH +FB47 ; mapped ; 05E7 05BC # 1.1 HEBREW LETTER QOF WITH DAGESH +FB48 ; mapped ; 05E8 05BC # 1.1 HEBREW LETTER RESH WITH DAGESH +FB49 ; mapped ; 05E9 05BC # 1.1 HEBREW LETTER SHIN WITH DAGESH +FB4A ; mapped ; 05EA 05BC # 1.1 HEBREW LETTER TAV WITH DAGESH +FB4B ; mapped ; 05D5 05B9 # 1.1 HEBREW LETTER VAV WITH HOLAM +FB4C ; mapped ; 05D1 05BF # 1.1 HEBREW LETTER BET WITH RAFE +FB4D ; mapped ; 05DB 05BF # 1.1 HEBREW LETTER KAF WITH RAFE +FB4E ; mapped ; 05E4 05BF # 1.1 HEBREW LETTER PE WITH RAFE +FB4F ; mapped ; 05D0 05DC # 1.1 HEBREW LIGATURE ALEF LAMED +FB50..FB51 ; mapped ; 0671 # 1.1 ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER ALEF WASLA FINAL FORM +FB52..FB55 ; mapped ; 067B # 1.1 ARABIC LETTER BEEH ISOLATED FORM..ARABIC LETTER BEEH MEDIAL FORM +FB56..FB59 ; mapped ; 067E # 1.1 ARABIC LETTER PEH ISOLATED FORM..ARABIC LETTER PEH MEDIAL FORM +FB5A..FB5D ; mapped ; 0680 # 1.1 ARABIC LETTER BEHEH ISOLATED FORM..ARABIC LETTER BEHEH MEDIAL FORM +FB5E..FB61 ; mapped ; 067A # 1.1 ARABIC LETTER TTEHEH ISOLATED FORM..ARABIC LETTER TTEHEH MEDIAL FORM +FB62..FB65 ; mapped ; 067F # 1.1 ARABIC LETTER TEHEH ISOLATED FORM..ARABIC LETTER TEHEH MEDIAL FORM +FB66..FB69 ; mapped ; 0679 # 1.1 ARABIC LETTER TTEH ISOLATED FORM..ARABIC LETTER TTEH MEDIAL FORM +FB6A..FB6D ; mapped ; 06A4 # 1.1 ARABIC LETTER VEH ISOLATED FORM..ARABIC LETTER VEH MEDIAL FORM +FB6E..FB71 ; mapped ; 06A6 # 1.1 ARABIC LETTER PEHEH ISOLATED FORM..ARABIC LETTER PEHEH MEDIAL FORM +FB72..FB75 ; mapped ; 0684 # 1.1 ARABIC LETTER DYEH ISOLATED FORM..ARABIC LETTER DYEH MEDIAL FORM +FB76..FB79 ; mapped ; 0683 # 1.1 ARABIC LETTER NYEH ISOLATED FORM..ARABIC LETTER NYEH MEDIAL FORM +FB7A..FB7D ; mapped ; 0686 # 1.1 ARABIC LETTER TCHEH ISOLATED FORM..ARABIC LETTER TCHEH MEDIAL FORM +FB7E..FB81 ; mapped ; 0687 # 1.1 ARABIC LETTER TCHEHEH ISOLATED FORM..ARABIC LETTER TCHEHEH MEDIAL FORM +FB82..FB83 ; mapped ; 068D # 1.1 ARABIC LETTER DDAHAL ISOLATED FORM..ARABIC LETTER DDAHAL FINAL FORM +FB84..FB85 ; mapped ; 068C # 1.1 ARABIC LETTER DAHAL ISOLATED FORM..ARABIC LETTER DAHAL FINAL FORM +FB86..FB87 ; mapped ; 068E # 1.1 ARABIC LETTER DUL ISOLATED FORM..ARABIC LETTER DUL FINAL FORM +FB88..FB89 ; mapped ; 0688 # 1.1 ARABIC LETTER DDAL ISOLATED FORM..ARABIC LETTER DDAL FINAL FORM +FB8A..FB8B ; mapped ; 0698 # 1.1 ARABIC LETTER JEH ISOLATED FORM..ARABIC LETTER JEH FINAL FORM +FB8C..FB8D ; mapped ; 0691 # 1.1 ARABIC LETTER RREH ISOLATED FORM..ARABIC LETTER RREH FINAL FORM +FB8E..FB91 ; mapped ; 06A9 # 1.1 ARABIC LETTER KEHEH ISOLATED FORM..ARABIC LETTER KEHEH MEDIAL FORM +FB92..FB95 ; mapped ; 06AF # 1.1 ARABIC LETTER GAF ISOLATED FORM..ARABIC LETTER GAF MEDIAL FORM +FB96..FB99 ; mapped ; 06B3 # 1.1 ARABIC LETTER GUEH ISOLATED FORM..ARABIC LETTER GUEH MEDIAL FORM +FB9A..FB9D ; mapped ; 06B1 # 1.1 ARABIC LETTER NGOEH ISOLATED FORM..ARABIC LETTER NGOEH MEDIAL FORM +FB9E..FB9F ; mapped ; 06BA # 1.1 ARABIC LETTER NOON GHUNNA ISOLATED FORM..ARABIC LETTER NOON GHUNNA FINAL FORM +FBA0..FBA3 ; mapped ; 06BB # 1.1 ARABIC LETTER RNOON ISOLATED FORM..ARABIC LETTER RNOON MEDIAL FORM +FBA4..FBA5 ; mapped ; 06C0 # 1.1 ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM..ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM +FBA6..FBA9 ; mapped ; 06C1 # 1.1 ARABIC LETTER HEH GOAL ISOLATED FORM..ARABIC LETTER HEH GOAL MEDIAL FORM +FBAA..FBAD ; mapped ; 06BE # 1.1 ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM..ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM +FBAE..FBAF ; mapped ; 06D2 # 1.1 ARABIC LETTER YEH BARREE ISOLATED FORM..ARABIC LETTER YEH BARREE FINAL FORM +FBB0..FBB1 ; mapped ; 06D3 # 1.1 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM +FBB2..FBC1 ; valid ; ; NV8 # 6.0 ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW +FBC2 ; valid ; ; NV8 # 14.0 ARABIC SYMBOL WASLA ABOVE +FBC3..FBD2 ; disallowed # NA <reserved-FBC3>..<reserved-FBD2> +FBD3..FBD6 ; mapped ; 06AD # 1.1 ARABIC LETTER NG ISOLATED FORM..ARABIC LETTER NG MEDIAL FORM +FBD7..FBD8 ; mapped ; 06C7 # 1.1 ARABIC LETTER U ISOLATED FORM..ARABIC LETTER U FINAL FORM +FBD9..FBDA ; mapped ; 06C6 # 1.1 ARABIC LETTER OE ISOLATED FORM..ARABIC LETTER OE FINAL FORM +FBDB..FBDC ; mapped ; 06C8 # 1.1 ARABIC LETTER YU ISOLATED FORM..ARABIC LETTER YU FINAL FORM +FBDD ; mapped ; 06C7 0674 # 1.1 ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM +FBDE..FBDF ; mapped ; 06CB # 1.1 ARABIC LETTER VE ISOLATED FORM..ARABIC LETTER VE FINAL FORM +FBE0..FBE1 ; mapped ; 06C5 # 1.1 ARABIC LETTER KIRGHIZ OE ISOLATED FORM..ARABIC LETTER KIRGHIZ OE FINAL FORM +FBE2..FBE3 ; mapped ; 06C9 # 1.1 ARABIC LETTER KIRGHIZ YU ISOLATED FORM..ARABIC LETTER KIRGHIZ YU FINAL FORM +FBE4..FBE7 ; mapped ; 06D0 # 1.1 ARABIC LETTER E ISOLATED FORM..ARABIC LETTER E MEDIAL FORM +FBE8..FBE9 ; mapped ; 0649 # 1.1 ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM..ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM +FBEA..FBEB ; mapped ; 0626 0627 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM +FBEC..FBED ; mapped ; 0626 06D5 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM +FBEE..FBEF ; mapped ; 0626 0648 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM +FBF0..FBF1 ; mapped ; 0626 06C7 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM +FBF2..FBF3 ; mapped ; 0626 06C6 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM +FBF4..FBF5 ; mapped ; 0626 06C8 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM +FBF6..FBF8 ; mapped ; 0626 06D0 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM +FBF9..FBFB ; mapped ; 0626 0649 # 1.1 ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM..ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM +FBFC..FBFF ; mapped ; 06CC # 1.1 ARABIC LETTER FARSI YEH ISOLATED FORM..ARABIC LETTER FARSI YEH MEDIAL FORM +FC00 ; mapped ; 0626 062C # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM +FC01 ; mapped ; 0626 062D # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM +FC02 ; mapped ; 0626 0645 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM +FC03 ; mapped ; 0626 0649 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM +FC04 ; mapped ; 0626 064A # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM +FC05 ; mapped ; 0628 062C # 1.1 ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM +FC06 ; mapped ; 0628 062D # 1.1 ARABIC LIGATURE BEH WITH HAH ISOLATED FORM +FC07 ; mapped ; 0628 062E # 1.1 ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM +FC08 ; mapped ; 0628 0645 # 1.1 ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM +FC09 ; mapped ; 0628 0649 # 1.1 ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM +FC0A ; mapped ; 0628 064A # 1.1 ARABIC LIGATURE BEH WITH YEH ISOLATED FORM +FC0B ; mapped ; 062A 062C # 1.1 ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM +FC0C ; mapped ; 062A 062D # 1.1 ARABIC LIGATURE TEH WITH HAH ISOLATED FORM +FC0D ; mapped ; 062A 062E # 1.1 ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM +FC0E ; mapped ; 062A 0645 # 1.1 ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM +FC0F ; mapped ; 062A 0649 # 1.1 ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM +FC10 ; mapped ; 062A 064A # 1.1 ARABIC LIGATURE TEH WITH YEH ISOLATED FORM +FC11 ; mapped ; 062B 062C # 1.1 ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM +FC12 ; mapped ; 062B 0645 # 1.1 ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM +FC13 ; mapped ; 062B 0649 # 1.1 ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM +FC14 ; mapped ; 062B 064A # 1.1 ARABIC LIGATURE THEH WITH YEH ISOLATED FORM +FC15 ; mapped ; 062C 062D # 1.1 ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM +FC16 ; mapped ; 062C 0645 # 1.1 ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM +FC17 ; mapped ; 062D 062C # 1.1 ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM +FC18 ; mapped ; 062D 0645 # 1.1 ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM +FC19 ; mapped ; 062E 062C # 1.1 ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM +FC1A ; mapped ; 062E 062D # 1.1 ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM +FC1B ; mapped ; 062E 0645 # 1.1 ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM +FC1C ; mapped ; 0633 062C # 1.1 ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM +FC1D ; mapped ; 0633 062D # 1.1 ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM +FC1E ; mapped ; 0633 062E # 1.1 ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM +FC1F ; mapped ; 0633 0645 # 1.1 ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM +FC20 ; mapped ; 0635 062D # 1.1 ARABIC LIGATURE SAD WITH HAH ISOLATED FORM +FC21 ; mapped ; 0635 0645 # 1.1 ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM +FC22 ; mapped ; 0636 062C # 1.1 ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM +FC23 ; mapped ; 0636 062D # 1.1 ARABIC LIGATURE DAD WITH HAH ISOLATED FORM +FC24 ; mapped ; 0636 062E # 1.1 ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM +FC25 ; mapped ; 0636 0645 # 1.1 ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM +FC26 ; mapped ; 0637 062D # 1.1 ARABIC LIGATURE TAH WITH HAH ISOLATED FORM +FC27 ; mapped ; 0637 0645 # 1.1 ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM +FC28 ; mapped ; 0638 0645 # 1.1 ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM +FC29 ; mapped ; 0639 062C # 1.1 ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM +FC2A ; mapped ; 0639 0645 # 1.1 ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM +FC2B ; mapped ; 063A 062C # 1.1 ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM +FC2C ; mapped ; 063A 0645 # 1.1 ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM +FC2D ; mapped ; 0641 062C # 1.1 ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM +FC2E ; mapped ; 0641 062D # 1.1 ARABIC LIGATURE FEH WITH HAH ISOLATED FORM +FC2F ; mapped ; 0641 062E # 1.1 ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM +FC30 ; mapped ; 0641 0645 # 1.1 ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM +FC31 ; mapped ; 0641 0649 # 1.1 ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM +FC32 ; mapped ; 0641 064A # 1.1 ARABIC LIGATURE FEH WITH YEH ISOLATED FORM +FC33 ; mapped ; 0642 062D # 1.1 ARABIC LIGATURE QAF WITH HAH ISOLATED FORM +FC34 ; mapped ; 0642 0645 # 1.1 ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM +FC35 ; mapped ; 0642 0649 # 1.1 ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM +FC36 ; mapped ; 0642 064A # 1.1 ARABIC LIGATURE QAF WITH YEH ISOLATED FORM +FC37 ; mapped ; 0643 0627 # 1.1 ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM +FC38 ; mapped ; 0643 062C # 1.1 ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM +FC39 ; mapped ; 0643 062D # 1.1 ARABIC LIGATURE KAF WITH HAH ISOLATED FORM +FC3A ; mapped ; 0643 062E # 1.1 ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM +FC3B ; mapped ; 0643 0644 # 1.1 ARABIC LIGATURE KAF WITH LAM ISOLATED FORM +FC3C ; mapped ; 0643 0645 # 1.1 ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM +FC3D ; mapped ; 0643 0649 # 1.1 ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM +FC3E ; mapped ; 0643 064A # 1.1 ARABIC LIGATURE KAF WITH YEH ISOLATED FORM +FC3F ; mapped ; 0644 062C # 1.1 ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM +FC40 ; mapped ; 0644 062D # 1.1 ARABIC LIGATURE LAM WITH HAH ISOLATED FORM +FC41 ; mapped ; 0644 062E # 1.1 ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM +FC42 ; mapped ; 0644 0645 # 1.1 ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM +FC43 ; mapped ; 0644 0649 # 1.1 ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM +FC44 ; mapped ; 0644 064A # 1.1 ARABIC LIGATURE LAM WITH YEH ISOLATED FORM +FC45 ; mapped ; 0645 062C # 1.1 ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM +FC46 ; mapped ; 0645 062D # 1.1 ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM +FC47 ; mapped ; 0645 062E # 1.1 ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM +FC48 ; mapped ; 0645 0645 # 1.1 ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM +FC49 ; mapped ; 0645 0649 # 1.1 ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM +FC4A ; mapped ; 0645 064A # 1.1 ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM +FC4B ; mapped ; 0646 062C # 1.1 ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM +FC4C ; mapped ; 0646 062D # 1.1 ARABIC LIGATURE NOON WITH HAH ISOLATED FORM +FC4D ; mapped ; 0646 062E # 1.1 ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM +FC4E ; mapped ; 0646 0645 # 1.1 ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM +FC4F ; mapped ; 0646 0649 # 1.1 ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM +FC50 ; mapped ; 0646 064A # 1.1 ARABIC LIGATURE NOON WITH YEH ISOLATED FORM +FC51 ; mapped ; 0647 062C # 1.1 ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM +FC52 ; mapped ; 0647 0645 # 1.1 ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM +FC53 ; mapped ; 0647 0649 # 1.1 ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM +FC54 ; mapped ; 0647 064A # 1.1 ARABIC LIGATURE HEH WITH YEH ISOLATED FORM +FC55 ; mapped ; 064A 062C # 1.1 ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM +FC56 ; mapped ; 064A 062D # 1.1 ARABIC LIGATURE YEH WITH HAH ISOLATED FORM +FC57 ; mapped ; 064A 062E # 1.1 ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM +FC58 ; mapped ; 064A 0645 # 1.1 ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM +FC59 ; mapped ; 064A 0649 # 1.1 ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM +FC5A ; mapped ; 064A 064A # 1.1 ARABIC LIGATURE YEH WITH YEH ISOLATED FORM +FC5B ; mapped ; 0630 0670 # 1.1 ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM +FC5C ; mapped ; 0631 0670 # 1.1 ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM +FC5D ; mapped ; 0649 0670 # 1.1 ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM +FC5E ; disallowed_STD3_mapped ; 0020 064C 0651 #1.1 ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM +FC5F ; disallowed_STD3_mapped ; 0020 064D 0651 #1.1 ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM +FC60 ; disallowed_STD3_mapped ; 0020 064E 0651 #1.1 ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM +FC61 ; disallowed_STD3_mapped ; 0020 064F 0651 #1.1 ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM +FC62 ; disallowed_STD3_mapped ; 0020 0650 0651 #1.1 ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM +FC63 ; disallowed_STD3_mapped ; 0020 0651 0670 #1.1 ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM +FC64 ; mapped ; 0626 0631 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM +FC65 ; mapped ; 0626 0632 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM +FC66 ; mapped ; 0626 0645 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM +FC67 ; mapped ; 0626 0646 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM +FC68 ; mapped ; 0626 0649 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM +FC69 ; mapped ; 0626 064A # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM +FC6A ; mapped ; 0628 0631 # 1.1 ARABIC LIGATURE BEH WITH REH FINAL FORM +FC6B ; mapped ; 0628 0632 # 1.1 ARABIC LIGATURE BEH WITH ZAIN FINAL FORM +FC6C ; mapped ; 0628 0645 # 1.1 ARABIC LIGATURE BEH WITH MEEM FINAL FORM +FC6D ; mapped ; 0628 0646 # 1.1 ARABIC LIGATURE BEH WITH NOON FINAL FORM +FC6E ; mapped ; 0628 0649 # 1.1 ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM +FC6F ; mapped ; 0628 064A # 1.1 ARABIC LIGATURE BEH WITH YEH FINAL FORM +FC70 ; mapped ; 062A 0631 # 1.1 ARABIC LIGATURE TEH WITH REH FINAL FORM +FC71 ; mapped ; 062A 0632 # 1.1 ARABIC LIGATURE TEH WITH ZAIN FINAL FORM +FC72 ; mapped ; 062A 0645 # 1.1 ARABIC LIGATURE TEH WITH MEEM FINAL FORM +FC73 ; mapped ; 062A 0646 # 1.1 ARABIC LIGATURE TEH WITH NOON FINAL FORM +FC74 ; mapped ; 062A 0649 # 1.1 ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM +FC75 ; mapped ; 062A 064A # 1.1 ARABIC LIGATURE TEH WITH YEH FINAL FORM +FC76 ; mapped ; 062B 0631 # 1.1 ARABIC LIGATURE THEH WITH REH FINAL FORM +FC77 ; mapped ; 062B 0632 # 1.1 ARABIC LIGATURE THEH WITH ZAIN FINAL FORM +FC78 ; mapped ; 062B 0645 # 1.1 ARABIC LIGATURE THEH WITH MEEM FINAL FORM +FC79 ; mapped ; 062B 0646 # 1.1 ARABIC LIGATURE THEH WITH NOON FINAL FORM +FC7A ; mapped ; 062B 0649 # 1.1 ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM +FC7B ; mapped ; 062B 064A # 1.1 ARABIC LIGATURE THEH WITH YEH FINAL FORM +FC7C ; mapped ; 0641 0649 # 1.1 ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM +FC7D ; mapped ; 0641 064A # 1.1 ARABIC LIGATURE FEH WITH YEH FINAL FORM +FC7E ; mapped ; 0642 0649 # 1.1 ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM +FC7F ; mapped ; 0642 064A # 1.1 ARABIC LIGATURE QAF WITH YEH FINAL FORM +FC80 ; mapped ; 0643 0627 # 1.1 ARABIC LIGATURE KAF WITH ALEF FINAL FORM +FC81 ; mapped ; 0643 0644 # 1.1 ARABIC LIGATURE KAF WITH LAM FINAL FORM +FC82 ; mapped ; 0643 0645 # 1.1 ARABIC LIGATURE KAF WITH MEEM FINAL FORM +FC83 ; mapped ; 0643 0649 # 1.1 ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM +FC84 ; mapped ; 0643 064A # 1.1 ARABIC LIGATURE KAF WITH YEH FINAL FORM +FC85 ; mapped ; 0644 0645 # 1.1 ARABIC LIGATURE LAM WITH MEEM FINAL FORM +FC86 ; mapped ; 0644 0649 # 1.1 ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM +FC87 ; mapped ; 0644 064A # 1.1 ARABIC LIGATURE LAM WITH YEH FINAL FORM +FC88 ; mapped ; 0645 0627 # 1.1 ARABIC LIGATURE MEEM WITH ALEF FINAL FORM +FC89 ; mapped ; 0645 0645 # 1.1 ARABIC LIGATURE MEEM WITH MEEM FINAL FORM +FC8A ; mapped ; 0646 0631 # 1.1 ARABIC LIGATURE NOON WITH REH FINAL FORM +FC8B ; mapped ; 0646 0632 # 1.1 ARABIC LIGATURE NOON WITH ZAIN FINAL FORM +FC8C ; mapped ; 0646 0645 # 1.1 ARABIC LIGATURE NOON WITH MEEM FINAL FORM +FC8D ; mapped ; 0646 0646 # 1.1 ARABIC LIGATURE NOON WITH NOON FINAL FORM +FC8E ; mapped ; 0646 0649 # 1.1 ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM +FC8F ; mapped ; 0646 064A # 1.1 ARABIC LIGATURE NOON WITH YEH FINAL FORM +FC90 ; mapped ; 0649 0670 # 1.1 ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM +FC91 ; mapped ; 064A 0631 # 1.1 ARABIC LIGATURE YEH WITH REH FINAL FORM +FC92 ; mapped ; 064A 0632 # 1.1 ARABIC LIGATURE YEH WITH ZAIN FINAL FORM +FC93 ; mapped ; 064A 0645 # 1.1 ARABIC LIGATURE YEH WITH MEEM FINAL FORM +FC94 ; mapped ; 064A 0646 # 1.1 ARABIC LIGATURE YEH WITH NOON FINAL FORM +FC95 ; mapped ; 064A 0649 # 1.1 ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM +FC96 ; mapped ; 064A 064A # 1.1 ARABIC LIGATURE YEH WITH YEH FINAL FORM +FC97 ; mapped ; 0626 062C # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM +FC98 ; mapped ; 0626 062D # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM +FC99 ; mapped ; 0626 062E # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM +FC9A ; mapped ; 0626 0645 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM +FC9B ; mapped ; 0626 0647 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM +FC9C ; mapped ; 0628 062C # 1.1 ARABIC LIGATURE BEH WITH JEEM INITIAL FORM +FC9D ; mapped ; 0628 062D # 1.1 ARABIC LIGATURE BEH WITH HAH INITIAL FORM +FC9E ; mapped ; 0628 062E # 1.1 ARABIC LIGATURE BEH WITH KHAH INITIAL FORM +FC9F ; mapped ; 0628 0645 # 1.1 ARABIC LIGATURE BEH WITH MEEM INITIAL FORM +FCA0 ; mapped ; 0628 0647 # 1.1 ARABIC LIGATURE BEH WITH HEH INITIAL FORM +FCA1 ; mapped ; 062A 062C # 1.1 ARABIC LIGATURE TEH WITH JEEM INITIAL FORM +FCA2 ; mapped ; 062A 062D # 1.1 ARABIC LIGATURE TEH WITH HAH INITIAL FORM +FCA3 ; mapped ; 062A 062E # 1.1 ARABIC LIGATURE TEH WITH KHAH INITIAL FORM +FCA4 ; mapped ; 062A 0645 # 1.1 ARABIC LIGATURE TEH WITH MEEM INITIAL FORM +FCA5 ; mapped ; 062A 0647 # 1.1 ARABIC LIGATURE TEH WITH HEH INITIAL FORM +FCA6 ; mapped ; 062B 0645 # 1.1 ARABIC LIGATURE THEH WITH MEEM INITIAL FORM +FCA7 ; mapped ; 062C 062D # 1.1 ARABIC LIGATURE JEEM WITH HAH INITIAL FORM +FCA8 ; mapped ; 062C 0645 # 1.1 ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM +FCA9 ; mapped ; 062D 062C # 1.1 ARABIC LIGATURE HAH WITH JEEM INITIAL FORM +FCAA ; mapped ; 062D 0645 # 1.1 ARABIC LIGATURE HAH WITH MEEM INITIAL FORM +FCAB ; mapped ; 062E 062C # 1.1 ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM +FCAC ; mapped ; 062E 0645 # 1.1 ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM +FCAD ; mapped ; 0633 062C # 1.1 ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM +FCAE ; mapped ; 0633 062D # 1.1 ARABIC LIGATURE SEEN WITH HAH INITIAL FORM +FCAF ; mapped ; 0633 062E # 1.1 ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM +FCB0 ; mapped ; 0633 0645 # 1.1 ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM +FCB1 ; mapped ; 0635 062D # 1.1 ARABIC LIGATURE SAD WITH HAH INITIAL FORM +FCB2 ; mapped ; 0635 062E # 1.1 ARABIC LIGATURE SAD WITH KHAH INITIAL FORM +FCB3 ; mapped ; 0635 0645 # 1.1 ARABIC LIGATURE SAD WITH MEEM INITIAL FORM +FCB4 ; mapped ; 0636 062C # 1.1 ARABIC LIGATURE DAD WITH JEEM INITIAL FORM +FCB5 ; mapped ; 0636 062D # 1.1 ARABIC LIGATURE DAD WITH HAH INITIAL FORM +FCB6 ; mapped ; 0636 062E # 1.1 ARABIC LIGATURE DAD WITH KHAH INITIAL FORM +FCB7 ; mapped ; 0636 0645 # 1.1 ARABIC LIGATURE DAD WITH MEEM INITIAL FORM +FCB8 ; mapped ; 0637 062D # 1.1 ARABIC LIGATURE TAH WITH HAH INITIAL FORM +FCB9 ; mapped ; 0638 0645 # 1.1 ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM +FCBA ; mapped ; 0639 062C # 1.1 ARABIC LIGATURE AIN WITH JEEM INITIAL FORM +FCBB ; mapped ; 0639 0645 # 1.1 ARABIC LIGATURE AIN WITH MEEM INITIAL FORM +FCBC ; mapped ; 063A 062C # 1.1 ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM +FCBD ; mapped ; 063A 0645 # 1.1 ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM +FCBE ; mapped ; 0641 062C # 1.1 ARABIC LIGATURE FEH WITH JEEM INITIAL FORM +FCBF ; mapped ; 0641 062D # 1.1 ARABIC LIGATURE FEH WITH HAH INITIAL FORM +FCC0 ; mapped ; 0641 062E # 1.1 ARABIC LIGATURE FEH WITH KHAH INITIAL FORM +FCC1 ; mapped ; 0641 0645 # 1.1 ARABIC LIGATURE FEH WITH MEEM INITIAL FORM +FCC2 ; mapped ; 0642 062D # 1.1 ARABIC LIGATURE QAF WITH HAH INITIAL FORM +FCC3 ; mapped ; 0642 0645 # 1.1 ARABIC LIGATURE QAF WITH MEEM INITIAL FORM +FCC4 ; mapped ; 0643 062C # 1.1 ARABIC LIGATURE KAF WITH JEEM INITIAL FORM +FCC5 ; mapped ; 0643 062D # 1.1 ARABIC LIGATURE KAF WITH HAH INITIAL FORM +FCC6 ; mapped ; 0643 062E # 1.1 ARABIC LIGATURE KAF WITH KHAH INITIAL FORM +FCC7 ; mapped ; 0643 0644 # 1.1 ARABIC LIGATURE KAF WITH LAM INITIAL FORM +FCC8 ; mapped ; 0643 0645 # 1.1 ARABIC LIGATURE KAF WITH MEEM INITIAL FORM +FCC9 ; mapped ; 0644 062C # 1.1 ARABIC LIGATURE LAM WITH JEEM INITIAL FORM +FCCA ; mapped ; 0644 062D # 1.1 ARABIC LIGATURE LAM WITH HAH INITIAL FORM +FCCB ; mapped ; 0644 062E # 1.1 ARABIC LIGATURE LAM WITH KHAH INITIAL FORM +FCCC ; mapped ; 0644 0645 # 1.1 ARABIC LIGATURE LAM WITH MEEM INITIAL FORM +FCCD ; mapped ; 0644 0647 # 1.1 ARABIC LIGATURE LAM WITH HEH INITIAL FORM +FCCE ; mapped ; 0645 062C # 1.1 ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM +FCCF ; mapped ; 0645 062D # 1.1 ARABIC LIGATURE MEEM WITH HAH INITIAL FORM +FCD0 ; mapped ; 0645 062E # 1.1 ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM +FCD1 ; mapped ; 0645 0645 # 1.1 ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM +FCD2 ; mapped ; 0646 062C # 1.1 ARABIC LIGATURE NOON WITH JEEM INITIAL FORM +FCD3 ; mapped ; 0646 062D # 1.1 ARABIC LIGATURE NOON WITH HAH INITIAL FORM +FCD4 ; mapped ; 0646 062E # 1.1 ARABIC LIGATURE NOON WITH KHAH INITIAL FORM +FCD5 ; mapped ; 0646 0645 # 1.1 ARABIC LIGATURE NOON WITH MEEM INITIAL FORM +FCD6 ; mapped ; 0646 0647 # 1.1 ARABIC LIGATURE NOON WITH HEH INITIAL FORM +FCD7 ; mapped ; 0647 062C # 1.1 ARABIC LIGATURE HEH WITH JEEM INITIAL FORM +FCD8 ; mapped ; 0647 0645 # 1.1 ARABIC LIGATURE HEH WITH MEEM INITIAL FORM +FCD9 ; mapped ; 0647 0670 # 1.1 ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM +FCDA ; mapped ; 064A 062C # 1.1 ARABIC LIGATURE YEH WITH JEEM INITIAL FORM +FCDB ; mapped ; 064A 062D # 1.1 ARABIC LIGATURE YEH WITH HAH INITIAL FORM +FCDC ; mapped ; 064A 062E # 1.1 ARABIC LIGATURE YEH WITH KHAH INITIAL FORM +FCDD ; mapped ; 064A 0645 # 1.1 ARABIC LIGATURE YEH WITH MEEM INITIAL FORM +FCDE ; mapped ; 064A 0647 # 1.1 ARABIC LIGATURE YEH WITH HEH INITIAL FORM +FCDF ; mapped ; 0626 0645 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM +FCE0 ; mapped ; 0626 0647 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM +FCE1 ; mapped ; 0628 0645 # 1.1 ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM +FCE2 ; mapped ; 0628 0647 # 1.1 ARABIC LIGATURE BEH WITH HEH MEDIAL FORM +FCE3 ; mapped ; 062A 0645 # 1.1 ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM +FCE4 ; mapped ; 062A 0647 # 1.1 ARABIC LIGATURE TEH WITH HEH MEDIAL FORM +FCE5 ; mapped ; 062B 0645 # 1.1 ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM +FCE6 ; mapped ; 062B 0647 # 1.1 ARABIC LIGATURE THEH WITH HEH MEDIAL FORM +FCE7 ; mapped ; 0633 0645 # 1.1 ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM +FCE8 ; mapped ; 0633 0647 # 1.1 ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM +FCE9 ; mapped ; 0634 0645 # 1.1 ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM +FCEA ; mapped ; 0634 0647 # 1.1 ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM +FCEB ; mapped ; 0643 0644 # 1.1 ARABIC LIGATURE KAF WITH LAM MEDIAL FORM +FCEC ; mapped ; 0643 0645 # 1.1 ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM +FCED ; mapped ; 0644 0645 # 1.1 ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM +FCEE ; mapped ; 0646 0645 # 1.1 ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM +FCEF ; mapped ; 0646 0647 # 1.1 ARABIC LIGATURE NOON WITH HEH MEDIAL FORM +FCF0 ; mapped ; 064A 0645 # 1.1 ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM +FCF1 ; mapped ; 064A 0647 # 1.1 ARABIC LIGATURE YEH WITH HEH MEDIAL FORM +FCF2 ; mapped ; 0640 064E 0651 #1.1 ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM +FCF3 ; mapped ; 0640 064F 0651 #1.1 ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM +FCF4 ; mapped ; 0640 0650 0651 #1.1 ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM +FCF5 ; mapped ; 0637 0649 # 1.1 ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM +FCF6 ; mapped ; 0637 064A # 1.1 ARABIC LIGATURE TAH WITH YEH ISOLATED FORM +FCF7 ; mapped ; 0639 0649 # 1.1 ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM +FCF8 ; mapped ; 0639 064A # 1.1 ARABIC LIGATURE AIN WITH YEH ISOLATED FORM +FCF9 ; mapped ; 063A 0649 # 1.1 ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM +FCFA ; mapped ; 063A 064A # 1.1 ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM +FCFB ; mapped ; 0633 0649 # 1.1 ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM +FCFC ; mapped ; 0633 064A # 1.1 ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM +FCFD ; mapped ; 0634 0649 # 1.1 ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM +FCFE ; mapped ; 0634 064A # 1.1 ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM +FCFF ; mapped ; 062D 0649 # 1.1 ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM +FD00 ; mapped ; 062D 064A # 1.1 ARABIC LIGATURE HAH WITH YEH ISOLATED FORM +FD01 ; mapped ; 062C 0649 # 1.1 ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM +FD02 ; mapped ; 062C 064A # 1.1 ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM +FD03 ; mapped ; 062E 0649 # 1.1 ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM +FD04 ; mapped ; 062E 064A # 1.1 ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM +FD05 ; mapped ; 0635 0649 # 1.1 ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM +FD06 ; mapped ; 0635 064A # 1.1 ARABIC LIGATURE SAD WITH YEH ISOLATED FORM +FD07 ; mapped ; 0636 0649 # 1.1 ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM +FD08 ; mapped ; 0636 064A # 1.1 ARABIC LIGATURE DAD WITH YEH ISOLATED FORM +FD09 ; mapped ; 0634 062C # 1.1 ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM +FD0A ; mapped ; 0634 062D # 1.1 ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM +FD0B ; mapped ; 0634 062E # 1.1 ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM +FD0C ; mapped ; 0634 0645 # 1.1 ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM +FD0D ; mapped ; 0634 0631 # 1.1 ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM +FD0E ; mapped ; 0633 0631 # 1.1 ARABIC LIGATURE SEEN WITH REH ISOLATED FORM +FD0F ; mapped ; 0635 0631 # 1.1 ARABIC LIGATURE SAD WITH REH ISOLATED FORM +FD10 ; mapped ; 0636 0631 # 1.1 ARABIC LIGATURE DAD WITH REH ISOLATED FORM +FD11 ; mapped ; 0637 0649 # 1.1 ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM +FD12 ; mapped ; 0637 064A # 1.1 ARABIC LIGATURE TAH WITH YEH FINAL FORM +FD13 ; mapped ; 0639 0649 # 1.1 ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM +FD14 ; mapped ; 0639 064A # 1.1 ARABIC LIGATURE AIN WITH YEH FINAL FORM +FD15 ; mapped ; 063A 0649 # 1.1 ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM +FD16 ; mapped ; 063A 064A # 1.1 ARABIC LIGATURE GHAIN WITH YEH FINAL FORM +FD17 ; mapped ; 0633 0649 # 1.1 ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM +FD18 ; mapped ; 0633 064A # 1.1 ARABIC LIGATURE SEEN WITH YEH FINAL FORM +FD19 ; mapped ; 0634 0649 # 1.1 ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM +FD1A ; mapped ; 0634 064A # 1.1 ARABIC LIGATURE SHEEN WITH YEH FINAL FORM +FD1B ; mapped ; 062D 0649 # 1.1 ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM +FD1C ; mapped ; 062D 064A # 1.1 ARABIC LIGATURE HAH WITH YEH FINAL FORM +FD1D ; mapped ; 062C 0649 # 1.1 ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM +FD1E ; mapped ; 062C 064A # 1.1 ARABIC LIGATURE JEEM WITH YEH FINAL FORM +FD1F ; mapped ; 062E 0649 # 1.1 ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM +FD20 ; mapped ; 062E 064A # 1.1 ARABIC LIGATURE KHAH WITH YEH FINAL FORM +FD21 ; mapped ; 0635 0649 # 1.1 ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM +FD22 ; mapped ; 0635 064A # 1.1 ARABIC LIGATURE SAD WITH YEH FINAL FORM +FD23 ; mapped ; 0636 0649 # 1.1 ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM +FD24 ; mapped ; 0636 064A # 1.1 ARABIC LIGATURE DAD WITH YEH FINAL FORM +FD25 ; mapped ; 0634 062C # 1.1 ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM +FD26 ; mapped ; 0634 062D # 1.1 ARABIC LIGATURE SHEEN WITH HAH FINAL FORM +FD27 ; mapped ; 0634 062E # 1.1 ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM +FD28 ; mapped ; 0634 0645 # 1.1 ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM +FD29 ; mapped ; 0634 0631 # 1.1 ARABIC LIGATURE SHEEN WITH REH FINAL FORM +FD2A ; mapped ; 0633 0631 # 1.1 ARABIC LIGATURE SEEN WITH REH FINAL FORM +FD2B ; mapped ; 0635 0631 # 1.1 ARABIC LIGATURE SAD WITH REH FINAL FORM +FD2C ; mapped ; 0636 0631 # 1.1 ARABIC LIGATURE DAD WITH REH FINAL FORM +FD2D ; mapped ; 0634 062C # 1.1 ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM +FD2E ; mapped ; 0634 062D # 1.1 ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM +FD2F ; mapped ; 0634 062E # 1.1 ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM +FD30 ; mapped ; 0634 0645 # 1.1 ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM +FD31 ; mapped ; 0633 0647 # 1.1 ARABIC LIGATURE SEEN WITH HEH INITIAL FORM +FD32 ; mapped ; 0634 0647 # 1.1 ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM +FD33 ; mapped ; 0637 0645 # 1.1 ARABIC LIGATURE TAH WITH MEEM INITIAL FORM +FD34 ; mapped ; 0633 062C # 1.1 ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM +FD35 ; mapped ; 0633 062D # 1.1 ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM +FD36 ; mapped ; 0633 062E # 1.1 ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM +FD37 ; mapped ; 0634 062C # 1.1 ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM +FD38 ; mapped ; 0634 062D # 1.1 ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM +FD39 ; mapped ; 0634 062E # 1.1 ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM +FD3A ; mapped ; 0637 0645 # 1.1 ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM +FD3B ; mapped ; 0638 0645 # 1.1 ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM +FD3C..FD3D ; mapped ; 0627 064B # 1.1 ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM +FD3E..FD3F ; valid ; ; NV8 # 1.1 ORNATE LEFT PARENTHESIS..ORNATE RIGHT PARENTHESIS +FD40..FD4F ; valid ; ; NV8 # 14.0 ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH +FD50 ; mapped ; 062A 062C 0645 #1.1 ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM +FD51..FD52 ; mapped ; 062A 062D 062C #1.1 ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM..ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM +FD53 ; mapped ; 062A 062D 0645 #1.1 ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM +FD54 ; mapped ; 062A 062E 0645 #1.1 ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM +FD55 ; mapped ; 062A 0645 062C #1.1 ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM +FD56 ; mapped ; 062A 0645 062D #1.1 ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM +FD57 ; mapped ; 062A 0645 062E #1.1 ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM +FD58..FD59 ; mapped ; 062C 0645 062D #1.1 ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM..ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM +FD5A ; mapped ; 062D 0645 064A #1.1 ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM +FD5B ; mapped ; 062D 0645 0649 #1.1 ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM +FD5C ; mapped ; 0633 062D 062C #1.1 ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM +FD5D ; mapped ; 0633 062C 062D #1.1 ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM +FD5E ; mapped ; 0633 062C 0649 #1.1 ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM +FD5F..FD60 ; mapped ; 0633 0645 062D #1.1 ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM..ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM +FD61 ; mapped ; 0633 0645 062C #1.1 ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM +FD62..FD63 ; mapped ; 0633 0645 0645 #1.1 ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM..ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM +FD64..FD65 ; mapped ; 0635 062D 062D #1.1 ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM..ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM +FD66 ; mapped ; 0635 0645 0645 #1.1 ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM +FD67..FD68 ; mapped ; 0634 062D 0645 #1.1 ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM..ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM +FD69 ; mapped ; 0634 062C 064A #1.1 ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM +FD6A..FD6B ; mapped ; 0634 0645 062E #1.1 ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM..ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM +FD6C..FD6D ; mapped ; 0634 0645 0645 #1.1 ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM..ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM +FD6E ; mapped ; 0636 062D 0649 #1.1 ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM +FD6F..FD70 ; mapped ; 0636 062E 0645 #1.1 ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM..ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM +FD71..FD72 ; mapped ; 0637 0645 062D #1.1 ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM..ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM +FD73 ; mapped ; 0637 0645 0645 #1.1 ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM +FD74 ; mapped ; 0637 0645 064A #1.1 ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM +FD75 ; mapped ; 0639 062C 0645 #1.1 ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM +FD76..FD77 ; mapped ; 0639 0645 0645 #1.1 ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM..ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM +FD78 ; mapped ; 0639 0645 0649 #1.1 ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM +FD79 ; mapped ; 063A 0645 0645 #1.1 ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM +FD7A ; mapped ; 063A 0645 064A #1.1 ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM +FD7B ; mapped ; 063A 0645 0649 #1.1 ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM +FD7C..FD7D ; mapped ; 0641 062E 0645 #1.1 ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM..ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM +FD7E ; mapped ; 0642 0645 062D #1.1 ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM +FD7F ; mapped ; 0642 0645 0645 #1.1 ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM +FD80 ; mapped ; 0644 062D 0645 #1.1 ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM +FD81 ; mapped ; 0644 062D 064A #1.1 ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM +FD82 ; mapped ; 0644 062D 0649 #1.1 ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM +FD83..FD84 ; mapped ; 0644 062C 062C #1.1 ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM..ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM +FD85..FD86 ; mapped ; 0644 062E 0645 #1.1 ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM..ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM +FD87..FD88 ; mapped ; 0644 0645 062D #1.1 ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM..ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM +FD89 ; mapped ; 0645 062D 062C #1.1 ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM +FD8A ; mapped ; 0645 062D 0645 #1.1 ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM +FD8B ; mapped ; 0645 062D 064A #1.1 ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM +FD8C ; mapped ; 0645 062C 062D #1.1 ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM +FD8D ; mapped ; 0645 062C 0645 #1.1 ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM +FD8E ; mapped ; 0645 062E 062C #1.1 ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM +FD8F ; mapped ; 0645 062E 0645 #1.1 ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM +FD90..FD91 ; disallowed # NA <reserved-FD90>..<reserved-FD91> +FD92 ; mapped ; 0645 062C 062E #1.1 ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM +FD93 ; mapped ; 0647 0645 062C #1.1 ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM +FD94 ; mapped ; 0647 0645 0645 #1.1 ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM +FD95 ; mapped ; 0646 062D 0645 #1.1 ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM +FD96 ; mapped ; 0646 062D 0649 #1.1 ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM +FD97..FD98 ; mapped ; 0646 062C 0645 #1.1 ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM +FD99 ; mapped ; 0646 062C 0649 #1.1 ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM +FD9A ; mapped ; 0646 0645 064A #1.1 ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM +FD9B ; mapped ; 0646 0645 0649 #1.1 ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM +FD9C..FD9D ; mapped ; 064A 0645 0645 #1.1 ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM..ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM +FD9E ; mapped ; 0628 062E 064A #1.1 ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM +FD9F ; mapped ; 062A 062C 064A #1.1 ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM +FDA0 ; mapped ; 062A 062C 0649 #1.1 ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM +FDA1 ; mapped ; 062A 062E 064A #1.1 ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM +FDA2 ; mapped ; 062A 062E 0649 #1.1 ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM +FDA3 ; mapped ; 062A 0645 064A #1.1 ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM +FDA4 ; mapped ; 062A 0645 0649 #1.1 ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM +FDA5 ; mapped ; 062C 0645 064A #1.1 ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM +FDA6 ; mapped ; 062C 062D 0649 #1.1 ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM +FDA7 ; mapped ; 062C 0645 0649 #1.1 ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM +FDA8 ; mapped ; 0633 062E 0649 #1.1 ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM +FDA9 ; mapped ; 0635 062D 064A #1.1 ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM +FDAA ; mapped ; 0634 062D 064A #1.1 ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM +FDAB ; mapped ; 0636 062D 064A #1.1 ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM +FDAC ; mapped ; 0644 062C 064A #1.1 ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM +FDAD ; mapped ; 0644 0645 064A #1.1 ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM +FDAE ; mapped ; 064A 062D 064A #1.1 ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM +FDAF ; mapped ; 064A 062C 064A #1.1 ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM +FDB0 ; mapped ; 064A 0645 064A #1.1 ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM +FDB1 ; mapped ; 0645 0645 064A #1.1 ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM +FDB2 ; mapped ; 0642 0645 064A #1.1 ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM +FDB3 ; mapped ; 0646 062D 064A #1.1 ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM +FDB4 ; mapped ; 0642 0645 062D #1.1 ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM +FDB5 ; mapped ; 0644 062D 0645 #1.1 ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM +FDB6 ; mapped ; 0639 0645 064A #1.1 ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM +FDB7 ; mapped ; 0643 0645 064A #1.1 ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM +FDB8 ; mapped ; 0646 062C 062D #1.1 ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM +FDB9 ; mapped ; 0645 062E 064A #1.1 ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM +FDBA ; mapped ; 0644 062C 0645 #1.1 ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM +FDBB ; mapped ; 0643 0645 0645 #1.1 ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM +FDBC ; mapped ; 0644 062C 0645 #1.1 ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM +FDBD ; mapped ; 0646 062C 062D #1.1 ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM +FDBE ; mapped ; 062C 062D 064A #1.1 ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM +FDBF ; mapped ; 062D 062C 064A #1.1 ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM +FDC0 ; mapped ; 0645 062C 064A #1.1 ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM +FDC1 ; mapped ; 0641 0645 064A #1.1 ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM +FDC2 ; mapped ; 0628 062D 064A #1.1 ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM +FDC3 ; mapped ; 0643 0645 0645 #1.1 ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM +FDC4 ; mapped ; 0639 062C 0645 #1.1 ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM +FDC5 ; mapped ; 0635 0645 0645 #1.1 ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM +FDC6 ; mapped ; 0633 062E 064A #1.1 ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM +FDC7 ; mapped ; 0646 062C 064A #1.1 ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM +FDC8..FDCE ; disallowed # NA <reserved-FDC8>..<reserved-FDCE> +FDCF ; valid ; ; NV8 # 14.0 ARABIC LIGATURE SALAAMUHU ALAYNAA +FDD0..FDEF ; disallowed # 3.1 <noncharacter-FDD0>..<noncharacter-FDEF> +FDF0 ; mapped ; 0635 0644 06D2 #1.1 ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM +FDF1 ; mapped ; 0642 0644 06D2 #1.1 ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM +FDF2 ; mapped ; 0627 0644 0644 0647 #1.1 ARABIC LIGATURE ALLAH ISOLATED FORM +FDF3 ; mapped ; 0627 0643 0628 0631 #1.1 ARABIC LIGATURE AKBAR ISOLATED FORM +FDF4 ; mapped ; 0645 062D 0645 062F #1.1 ARABIC LIGATURE MOHAMMAD ISOLATED FORM +FDF5 ; mapped ; 0635 0644 0639 0645 #1.1 ARABIC LIGATURE SALAM ISOLATED FORM +FDF6 ; mapped ; 0631 0633 0648 0644 #1.1 ARABIC LIGATURE RASOUL ISOLATED FORM +FDF7 ; mapped ; 0639 0644 064A 0647 #1.1 ARABIC LIGATURE ALAYHE ISOLATED FORM +FDF8 ; mapped ; 0648 0633 0644 0645 #1.1 ARABIC LIGATURE WASALLAM ISOLATED FORM +FDF9 ; mapped ; 0635 0644 0649 #1.1 ARABIC LIGATURE SALLA ISOLATED FORM +FDFA ; disallowed_STD3_mapped ; 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645 #1.1 ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM +FDFB ; disallowed_STD3_mapped ; 062C 0644 0020 062C 0644 0627 0644 0647 #1.1 ARABIC LIGATURE JALLAJALALOUHOU +FDFC ; mapped ; 0631 06CC 0627 0644 #3.2 RIAL SIGN +FDFD ; valid ; ; NV8 # 4.0 ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM +FDFE..FDFF ; valid ; ; NV8 # 14.0 ARABIC LIGATURE SUBHAANAHU WA TAAALAA..ARABIC LIGATURE AZZA WA JALL +FE00..FE0F ; ignored # 3.2 VARIATION SELECTOR-1..VARIATION SELECTOR-16 +FE10 ; disallowed_STD3_mapped ; 002C # 4.1 PRESENTATION FORM FOR VERTICAL COMMA +FE11 ; mapped ; 3001 # 4.1 PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA +FE12 ; disallowed # 4.1 PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP +FE13 ; disallowed_STD3_mapped ; 003A # 4.1 PRESENTATION FORM FOR VERTICAL COLON +FE14 ; disallowed_STD3_mapped ; 003B # 4.1 PRESENTATION FORM FOR VERTICAL SEMICOLON +FE15 ; disallowed_STD3_mapped ; 0021 # 4.1 PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK +FE16 ; disallowed_STD3_mapped ; 003F # 4.1 PRESENTATION FORM FOR VERTICAL QUESTION MARK +FE17 ; mapped ; 3016 # 4.1 PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET +FE18 ; mapped ; 3017 # 4.1 PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET +FE19 ; disallowed # 4.1 PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS +FE1A..FE1F ; disallowed # NA <reserved-FE1A>..<reserved-FE1F> +FE20..FE23 ; valid # 1.1 COMBINING LIGATURE LEFT HALF..COMBINING DOUBLE TILDE RIGHT HALF +FE24..FE26 ; valid # 5.1 COMBINING MACRON LEFT HALF..COMBINING CONJOINING MACRON +FE27..FE2D ; valid # 7.0 COMBINING LIGATURE LEFT HALF BELOW..COMBINING CONJOINING MACRON BELOW +FE2E..FE2F ; valid # 8.0 COMBINING CYRILLIC TITLO LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF +FE30 ; disallowed # 1.1 PRESENTATION FORM FOR VERTICAL TWO DOT LEADER +FE31 ; mapped ; 2014 # 1.1 PRESENTATION FORM FOR VERTICAL EM DASH +FE32 ; mapped ; 2013 # 1.1 PRESENTATION FORM FOR VERTICAL EN DASH +FE33..FE34 ; disallowed_STD3_mapped ; 005F # 1.1 PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE +FE35 ; disallowed_STD3_mapped ; 0028 # 1.1 PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS +FE36 ; disallowed_STD3_mapped ; 0029 # 1.1 PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS +FE37 ; disallowed_STD3_mapped ; 007B # 1.1 PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET +FE38 ; disallowed_STD3_mapped ; 007D # 1.1 PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET +FE39 ; mapped ; 3014 # 1.1 PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET +FE3A ; mapped ; 3015 # 1.1 PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET +FE3B ; mapped ; 3010 # 1.1 PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET +FE3C ; mapped ; 3011 # 1.1 PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET +FE3D ; mapped ; 300A # 1.1 PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET +FE3E ; mapped ; 300B # 1.1 PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET +FE3F ; mapped ; 3008 # 1.1 PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET +FE40 ; mapped ; 3009 # 1.1 PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET +FE41 ; mapped ; 300C # 1.1 PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET +FE42 ; mapped ; 300D # 1.1 PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET +FE43 ; mapped ; 300E # 1.1 PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET +FE44 ; mapped ; 300F # 1.1 PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET +FE45..FE46 ; valid ; ; NV8 # 3.2 SESAME DOT..WHITE SESAME DOT +FE47 ; disallowed_STD3_mapped ; 005B # 4.0 PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET +FE48 ; disallowed_STD3_mapped ; 005D # 4.0 PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET +FE49..FE4C ; disallowed_STD3_mapped ; 0020 0305 # 1.1 DASHED OVERLINE..DOUBLE WAVY OVERLINE +FE4D..FE4F ; disallowed_STD3_mapped ; 005F # 1.1 DASHED LOW LINE..WAVY LOW LINE +FE50 ; disallowed_STD3_mapped ; 002C # 1.1 SMALL COMMA +FE51 ; mapped ; 3001 # 1.1 SMALL IDEOGRAPHIC COMMA +FE52 ; disallowed # 1.1 SMALL FULL STOP +FE53 ; disallowed # NA <reserved-FE53> +FE54 ; disallowed_STD3_mapped ; 003B # 1.1 SMALL SEMICOLON +FE55 ; disallowed_STD3_mapped ; 003A # 1.1 SMALL COLON +FE56 ; disallowed_STD3_mapped ; 003F # 1.1 SMALL QUESTION MARK +FE57 ; disallowed_STD3_mapped ; 0021 # 1.1 SMALL EXCLAMATION MARK +FE58 ; mapped ; 2014 # 1.1 SMALL EM DASH +FE59 ; disallowed_STD3_mapped ; 0028 # 1.1 SMALL LEFT PARENTHESIS +FE5A ; disallowed_STD3_mapped ; 0029 # 1.1 SMALL RIGHT PARENTHESIS +FE5B ; disallowed_STD3_mapped ; 007B # 1.1 SMALL LEFT CURLY BRACKET +FE5C ; disallowed_STD3_mapped ; 007D # 1.1 SMALL RIGHT CURLY BRACKET +FE5D ; mapped ; 3014 # 1.1 SMALL LEFT TORTOISE SHELL BRACKET +FE5E ; mapped ; 3015 # 1.1 SMALL RIGHT TORTOISE SHELL BRACKET +FE5F ; disallowed_STD3_mapped ; 0023 # 1.1 SMALL NUMBER SIGN +FE60 ; disallowed_STD3_mapped ; 0026 # 1.1 SMALL AMPERSAND +FE61 ; disallowed_STD3_mapped ; 002A # 1.1 SMALL ASTERISK +FE62 ; disallowed_STD3_mapped ; 002B # 1.1 SMALL PLUS SIGN +FE63 ; mapped ; 002D # 1.1 SMALL HYPHEN-MINUS +FE64 ; disallowed_STD3_mapped ; 003C # 1.1 SMALL LESS-THAN SIGN +FE65 ; disallowed_STD3_mapped ; 003E # 1.1 SMALL GREATER-THAN SIGN +FE66 ; disallowed_STD3_mapped ; 003D # 1.1 SMALL EQUALS SIGN +FE67 ; disallowed # NA <reserved-FE67> +FE68 ; disallowed_STD3_mapped ; 005C # 1.1 SMALL REVERSE SOLIDUS +FE69 ; disallowed_STD3_mapped ; 0024 # 1.1 SMALL DOLLAR SIGN +FE6A ; disallowed_STD3_mapped ; 0025 # 1.1 SMALL PERCENT SIGN +FE6B ; disallowed_STD3_mapped ; 0040 # 1.1 SMALL COMMERCIAL AT +FE6C..FE6F ; disallowed # NA <reserved-FE6C>..<reserved-FE6F> +FE70 ; disallowed_STD3_mapped ; 0020 064B # 1.1 ARABIC FATHATAN ISOLATED FORM +FE71 ; mapped ; 0640 064B # 1.1 ARABIC TATWEEL WITH FATHATAN ABOVE +FE72 ; disallowed_STD3_mapped ; 0020 064C # 1.1 ARABIC DAMMATAN ISOLATED FORM +FE73 ; valid # 3.2 ARABIC TAIL FRAGMENT +FE74 ; disallowed_STD3_mapped ; 0020 064D # 1.1 ARABIC KASRATAN ISOLATED FORM +FE75 ; disallowed # NA <reserved-FE75> +FE76 ; disallowed_STD3_mapped ; 0020 064E # 1.1 ARABIC FATHA ISOLATED FORM +FE77 ; mapped ; 0640 064E # 1.1 ARABIC FATHA MEDIAL FORM +FE78 ; disallowed_STD3_mapped ; 0020 064F # 1.1 ARABIC DAMMA ISOLATED FORM +FE79 ; mapped ; 0640 064F # 1.1 ARABIC DAMMA MEDIAL FORM +FE7A ; disallowed_STD3_mapped ; 0020 0650 # 1.1 ARABIC KASRA ISOLATED FORM +FE7B ; mapped ; 0640 0650 # 1.1 ARABIC KASRA MEDIAL FORM +FE7C ; disallowed_STD3_mapped ; 0020 0651 # 1.1 ARABIC SHADDA ISOLATED FORM +FE7D ; mapped ; 0640 0651 # 1.1 ARABIC SHADDA MEDIAL FORM +FE7E ; disallowed_STD3_mapped ; 0020 0652 # 1.1 ARABIC SUKUN ISOLATED FORM +FE7F ; mapped ; 0640 0652 # 1.1 ARABIC SUKUN MEDIAL FORM +FE80 ; mapped ; 0621 # 1.1 ARABIC LETTER HAMZA ISOLATED FORM +FE81..FE82 ; mapped ; 0622 # 1.1 ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM..ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM +FE83..FE84 ; mapped ; 0623 # 1.1 ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM +FE85..FE86 ; mapped ; 0624 # 1.1 ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM +FE87..FE88 ; mapped ; 0625 # 1.1 ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM..ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM +FE89..FE8C ; mapped ; 0626 # 1.1 ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM +FE8D..FE8E ; mapped ; 0627 # 1.1 ARABIC LETTER ALEF ISOLATED FORM..ARABIC LETTER ALEF FINAL FORM +FE8F..FE92 ; mapped ; 0628 # 1.1 ARABIC LETTER BEH ISOLATED FORM..ARABIC LETTER BEH MEDIAL FORM +FE93..FE94 ; mapped ; 0629 # 1.1 ARABIC LETTER TEH MARBUTA ISOLATED FORM..ARABIC LETTER TEH MARBUTA FINAL FORM +FE95..FE98 ; mapped ; 062A # 1.1 ARABIC LETTER TEH ISOLATED FORM..ARABIC LETTER TEH MEDIAL FORM +FE99..FE9C ; mapped ; 062B # 1.1 ARABIC LETTER THEH ISOLATED FORM..ARABIC LETTER THEH MEDIAL FORM +FE9D..FEA0 ; mapped ; 062C # 1.1 ARABIC LETTER JEEM ISOLATED FORM..ARABIC LETTER JEEM MEDIAL FORM +FEA1..FEA4 ; mapped ; 062D # 1.1 ARABIC LETTER HAH ISOLATED FORM..ARABIC LETTER HAH MEDIAL FORM +FEA5..FEA8 ; mapped ; 062E # 1.1 ARABIC LETTER KHAH ISOLATED FORM..ARABIC LETTER KHAH MEDIAL FORM +FEA9..FEAA ; mapped ; 062F # 1.1 ARABIC LETTER DAL ISOLATED FORM..ARABIC LETTER DAL FINAL FORM +FEAB..FEAC ; mapped ; 0630 # 1.1 ARABIC LETTER THAL ISOLATED FORM..ARABIC LETTER THAL FINAL FORM +FEAD..FEAE ; mapped ; 0631 # 1.1 ARABIC LETTER REH ISOLATED FORM..ARABIC LETTER REH FINAL FORM +FEAF..FEB0 ; mapped ; 0632 # 1.1 ARABIC LETTER ZAIN ISOLATED FORM..ARABIC LETTER ZAIN FINAL FORM +FEB1..FEB4 ; mapped ; 0633 # 1.1 ARABIC LETTER SEEN ISOLATED FORM..ARABIC LETTER SEEN MEDIAL FORM +FEB5..FEB8 ; mapped ; 0634 # 1.1 ARABIC LETTER SHEEN ISOLATED FORM..ARABIC LETTER SHEEN MEDIAL FORM +FEB9..FEBC ; mapped ; 0635 # 1.1 ARABIC LETTER SAD ISOLATED FORM..ARABIC LETTER SAD MEDIAL FORM +FEBD..FEC0 ; mapped ; 0636 # 1.1 ARABIC LETTER DAD ISOLATED FORM..ARABIC LETTER DAD MEDIAL FORM +FEC1..FEC4 ; mapped ; 0637 # 1.1 ARABIC LETTER TAH ISOLATED FORM..ARABIC LETTER TAH MEDIAL FORM +FEC5..FEC8 ; mapped ; 0638 # 1.1 ARABIC LETTER ZAH ISOLATED FORM..ARABIC LETTER ZAH MEDIAL FORM +FEC9..FECC ; mapped ; 0639 # 1.1 ARABIC LETTER AIN ISOLATED FORM..ARABIC LETTER AIN MEDIAL FORM +FECD..FED0 ; mapped ; 063A # 1.1 ARABIC LETTER GHAIN ISOLATED FORM..ARABIC LETTER GHAIN MEDIAL FORM +FED1..FED4 ; mapped ; 0641 # 1.1 ARABIC LETTER FEH ISOLATED FORM..ARABIC LETTER FEH MEDIAL FORM +FED5..FED8 ; mapped ; 0642 # 1.1 ARABIC LETTER QAF ISOLATED FORM..ARABIC LETTER QAF MEDIAL FORM +FED9..FEDC ; mapped ; 0643 # 1.1 ARABIC LETTER KAF ISOLATED FORM..ARABIC LETTER KAF MEDIAL FORM +FEDD..FEE0 ; mapped ; 0644 # 1.1 ARABIC LETTER LAM ISOLATED FORM..ARABIC LETTER LAM MEDIAL FORM +FEE1..FEE4 ; mapped ; 0645 # 1.1 ARABIC LETTER MEEM ISOLATED FORM..ARABIC LETTER MEEM MEDIAL FORM +FEE5..FEE8 ; mapped ; 0646 # 1.1 ARABIC LETTER NOON ISOLATED FORM..ARABIC LETTER NOON MEDIAL FORM +FEE9..FEEC ; mapped ; 0647 # 1.1 ARABIC LETTER HEH ISOLATED FORM..ARABIC LETTER HEH MEDIAL FORM +FEED..FEEE ; mapped ; 0648 # 1.1 ARABIC LETTER WAW ISOLATED FORM..ARABIC LETTER WAW FINAL FORM +FEEF..FEF0 ; mapped ; 0649 # 1.1 ARABIC LETTER ALEF MAKSURA ISOLATED FORM..ARABIC LETTER ALEF MAKSURA FINAL FORM +FEF1..FEF4 ; mapped ; 064A # 1.1 ARABIC LETTER YEH ISOLATED FORM..ARABIC LETTER YEH MEDIAL FORM +FEF5..FEF6 ; mapped ; 0644 0622 # 1.1 ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM +FEF7..FEF8 ; mapped ; 0644 0623 # 1.1 ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM +FEF9..FEFA ; mapped ; 0644 0625 # 1.1 ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM +FEFB..FEFC ; mapped ; 0644 0627 # 1.1 ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM +FEFD..FEFE ; disallowed # NA <reserved-FEFD>..<reserved-FEFE> +FEFF ; ignored # 1.1 ZERO WIDTH NO-BREAK SPACE +FF00 ; disallowed # NA <reserved-FF00> +FF01 ; disallowed_STD3_mapped ; 0021 # 1.1 FULLWIDTH EXCLAMATION MARK +FF02 ; disallowed_STD3_mapped ; 0022 # 1.1 FULLWIDTH QUOTATION MARK +FF03 ; disallowed_STD3_mapped ; 0023 # 1.1 FULLWIDTH NUMBER SIGN +FF04 ; disallowed_STD3_mapped ; 0024 # 1.1 FULLWIDTH DOLLAR SIGN +FF05 ; disallowed_STD3_mapped ; 0025 # 1.1 FULLWIDTH PERCENT SIGN +FF06 ; disallowed_STD3_mapped ; 0026 # 1.1 FULLWIDTH AMPERSAND +FF07 ; disallowed_STD3_mapped ; 0027 # 1.1 FULLWIDTH APOSTROPHE +FF08 ; disallowed_STD3_mapped ; 0028 # 1.1 FULLWIDTH LEFT PARENTHESIS +FF09 ; disallowed_STD3_mapped ; 0029 # 1.1 FULLWIDTH RIGHT PARENTHESIS +FF0A ; disallowed_STD3_mapped ; 002A # 1.1 FULLWIDTH ASTERISK +FF0B ; disallowed_STD3_mapped ; 002B # 1.1 FULLWIDTH PLUS SIGN +FF0C ; disallowed_STD3_mapped ; 002C # 1.1 FULLWIDTH COMMA +FF0D ; mapped ; 002D # 1.1 FULLWIDTH HYPHEN-MINUS +FF0E ; mapped ; 002E # 1.1 FULLWIDTH FULL STOP +FF0F ; disallowed_STD3_mapped ; 002F # 1.1 FULLWIDTH SOLIDUS +FF10 ; mapped ; 0030 # 1.1 FULLWIDTH DIGIT ZERO +FF11 ; mapped ; 0031 # 1.1 FULLWIDTH DIGIT ONE +FF12 ; mapped ; 0032 # 1.1 FULLWIDTH DIGIT TWO +FF13 ; mapped ; 0033 # 1.1 FULLWIDTH DIGIT THREE +FF14 ; mapped ; 0034 # 1.1 FULLWIDTH DIGIT FOUR +FF15 ; mapped ; 0035 # 1.1 FULLWIDTH DIGIT FIVE +FF16 ; mapped ; 0036 # 1.1 FULLWIDTH DIGIT SIX +FF17 ; mapped ; 0037 # 1.1 FULLWIDTH DIGIT SEVEN +FF18 ; mapped ; 0038 # 1.1 FULLWIDTH DIGIT EIGHT +FF19 ; mapped ; 0039 # 1.1 FULLWIDTH DIGIT NINE +FF1A ; disallowed_STD3_mapped ; 003A # 1.1 FULLWIDTH COLON +FF1B ; disallowed_STD3_mapped ; 003B # 1.1 FULLWIDTH SEMICOLON +FF1C ; disallowed_STD3_mapped ; 003C # 1.1 FULLWIDTH LESS-THAN SIGN +FF1D ; disallowed_STD3_mapped ; 003D # 1.1 FULLWIDTH EQUALS SIGN +FF1E ; disallowed_STD3_mapped ; 003E # 1.1 FULLWIDTH GREATER-THAN SIGN +FF1F ; disallowed_STD3_mapped ; 003F # 1.1 FULLWIDTH QUESTION MARK +FF20 ; disallowed_STD3_mapped ; 0040 # 1.1 FULLWIDTH COMMERCIAL AT +FF21 ; mapped ; 0061 # 1.1 FULLWIDTH LATIN CAPITAL LETTER A +FF22 ; mapped ; 0062 # 1.1 FULLWIDTH LATIN CAPITAL LETTER B +FF23 ; mapped ; 0063 # 1.1 FULLWIDTH LATIN CAPITAL LETTER C +FF24 ; mapped ; 0064 # 1.1 FULLWIDTH LATIN CAPITAL LETTER D +FF25 ; mapped ; 0065 # 1.1 FULLWIDTH LATIN CAPITAL LETTER E +FF26 ; mapped ; 0066 # 1.1 FULLWIDTH LATIN CAPITAL LETTER F +FF27 ; mapped ; 0067 # 1.1 FULLWIDTH LATIN CAPITAL LETTER G +FF28 ; mapped ; 0068 # 1.1 FULLWIDTH LATIN CAPITAL LETTER H +FF29 ; mapped ; 0069 # 1.1 FULLWIDTH LATIN CAPITAL LETTER I +FF2A ; mapped ; 006A # 1.1 FULLWIDTH LATIN CAPITAL LETTER J +FF2B ; mapped ; 006B # 1.1 FULLWIDTH LATIN CAPITAL LETTER K +FF2C ; mapped ; 006C # 1.1 FULLWIDTH LATIN CAPITAL LETTER L +FF2D ; mapped ; 006D # 1.1 FULLWIDTH LATIN CAPITAL LETTER M +FF2E ; mapped ; 006E # 1.1 FULLWIDTH LATIN CAPITAL LETTER N +FF2F ; mapped ; 006F # 1.1 FULLWIDTH LATIN CAPITAL LETTER O +FF30 ; mapped ; 0070 # 1.1 FULLWIDTH LATIN CAPITAL LETTER P +FF31 ; mapped ; 0071 # 1.1 FULLWIDTH LATIN CAPITAL LETTER Q +FF32 ; mapped ; 0072 # 1.1 FULLWIDTH LATIN CAPITAL LETTER R +FF33 ; mapped ; 0073 # 1.1 FULLWIDTH LATIN CAPITAL LETTER S +FF34 ; mapped ; 0074 # 1.1 FULLWIDTH LATIN CAPITAL LETTER T +FF35 ; mapped ; 0075 # 1.1 FULLWIDTH LATIN CAPITAL LETTER U +FF36 ; mapped ; 0076 # 1.1 FULLWIDTH LATIN CAPITAL LETTER V +FF37 ; mapped ; 0077 # 1.1 FULLWIDTH LATIN CAPITAL LETTER W +FF38 ; mapped ; 0078 # 1.1 FULLWIDTH LATIN CAPITAL LETTER X +FF39 ; mapped ; 0079 # 1.1 FULLWIDTH LATIN CAPITAL LETTER Y +FF3A ; mapped ; 007A # 1.1 FULLWIDTH LATIN CAPITAL LETTER Z +FF3B ; disallowed_STD3_mapped ; 005B # 1.1 FULLWIDTH LEFT SQUARE BRACKET +FF3C ; disallowed_STD3_mapped ; 005C # 1.1 FULLWIDTH REVERSE SOLIDUS +FF3D ; disallowed_STD3_mapped ; 005D # 1.1 FULLWIDTH RIGHT SQUARE BRACKET +FF3E ; disallowed_STD3_mapped ; 005E # 1.1 FULLWIDTH CIRCUMFLEX ACCENT +FF3F ; disallowed_STD3_mapped ; 005F # 1.1 FULLWIDTH LOW LINE +FF40 ; disallowed_STD3_mapped ; 0060 # 1.1 FULLWIDTH GRAVE ACCENT +FF41 ; mapped ; 0061 # 1.1 FULLWIDTH LATIN SMALL LETTER A +FF42 ; mapped ; 0062 # 1.1 FULLWIDTH LATIN SMALL LETTER B +FF43 ; mapped ; 0063 # 1.1 FULLWIDTH LATIN SMALL LETTER C +FF44 ; mapped ; 0064 # 1.1 FULLWIDTH LATIN SMALL LETTER D +FF45 ; mapped ; 0065 # 1.1 FULLWIDTH LATIN SMALL LETTER E +FF46 ; mapped ; 0066 # 1.1 FULLWIDTH LATIN SMALL LETTER F +FF47 ; mapped ; 0067 # 1.1 FULLWIDTH LATIN SMALL LETTER G +FF48 ; mapped ; 0068 # 1.1 FULLWIDTH LATIN SMALL LETTER H +FF49 ; mapped ; 0069 # 1.1 FULLWIDTH LATIN SMALL LETTER I +FF4A ; mapped ; 006A # 1.1 FULLWIDTH LATIN SMALL LETTER J +FF4B ; mapped ; 006B # 1.1 FULLWIDTH LATIN SMALL LETTER K +FF4C ; mapped ; 006C # 1.1 FULLWIDTH LATIN SMALL LETTER L +FF4D ; mapped ; 006D # 1.1 FULLWIDTH LATIN SMALL LETTER M +FF4E ; mapped ; 006E # 1.1 FULLWIDTH LATIN SMALL LETTER N +FF4F ; mapped ; 006F # 1.1 FULLWIDTH LATIN SMALL LETTER O +FF50 ; mapped ; 0070 # 1.1 FULLWIDTH LATIN SMALL LETTER P +FF51 ; mapped ; 0071 # 1.1 FULLWIDTH LATIN SMALL LETTER Q +FF52 ; mapped ; 0072 # 1.1 FULLWIDTH LATIN SMALL LETTER R +FF53 ; mapped ; 0073 # 1.1 FULLWIDTH LATIN SMALL LETTER S +FF54 ; mapped ; 0074 # 1.1 FULLWIDTH LATIN SMALL LETTER T +FF55 ; mapped ; 0075 # 1.1 FULLWIDTH LATIN SMALL LETTER U +FF56 ; mapped ; 0076 # 1.1 FULLWIDTH LATIN SMALL LETTER V +FF57 ; mapped ; 0077 # 1.1 FULLWIDTH LATIN SMALL LETTER W +FF58 ; mapped ; 0078 # 1.1 FULLWIDTH LATIN SMALL LETTER X +FF59 ; mapped ; 0079 # 1.1 FULLWIDTH LATIN SMALL LETTER Y +FF5A ; mapped ; 007A # 1.1 FULLWIDTH LATIN SMALL LETTER Z +FF5B ; disallowed_STD3_mapped ; 007B # 1.1 FULLWIDTH LEFT CURLY BRACKET +FF5C ; disallowed_STD3_mapped ; 007C # 1.1 FULLWIDTH VERTICAL LINE +FF5D ; disallowed_STD3_mapped ; 007D # 1.1 FULLWIDTH RIGHT CURLY BRACKET +FF5E ; disallowed_STD3_mapped ; 007E # 1.1 FULLWIDTH TILDE +FF5F ; mapped ; 2985 # 3.2 FULLWIDTH LEFT WHITE PARENTHESIS +FF60 ; mapped ; 2986 # 3.2 FULLWIDTH RIGHT WHITE PARENTHESIS +FF61 ; mapped ; 002E # 1.1 HALFWIDTH IDEOGRAPHIC FULL STOP +FF62 ; mapped ; 300C # 1.1 HALFWIDTH LEFT CORNER BRACKET +FF63 ; mapped ; 300D # 1.1 HALFWIDTH RIGHT CORNER BRACKET +FF64 ; mapped ; 3001 # 1.1 HALFWIDTH IDEOGRAPHIC COMMA +FF65 ; mapped ; 30FB # 1.1 HALFWIDTH KATAKANA MIDDLE DOT +FF66 ; mapped ; 30F2 # 1.1 HALFWIDTH KATAKANA LETTER WO +FF67 ; mapped ; 30A1 # 1.1 HALFWIDTH KATAKANA LETTER SMALL A +FF68 ; mapped ; 30A3 # 1.1 HALFWIDTH KATAKANA LETTER SMALL I +FF69 ; mapped ; 30A5 # 1.1 HALFWIDTH KATAKANA LETTER SMALL U +FF6A ; mapped ; 30A7 # 1.1 HALFWIDTH KATAKANA LETTER SMALL E +FF6B ; mapped ; 30A9 # 1.1 HALFWIDTH KATAKANA LETTER SMALL O +FF6C ; mapped ; 30E3 # 1.1 HALFWIDTH KATAKANA LETTER SMALL YA +FF6D ; mapped ; 30E5 # 1.1 HALFWIDTH KATAKANA LETTER SMALL YU +FF6E ; mapped ; 30E7 # 1.1 HALFWIDTH KATAKANA LETTER SMALL YO +FF6F ; mapped ; 30C3 # 1.1 HALFWIDTH KATAKANA LETTER SMALL TU +FF70 ; mapped ; 30FC # 1.1 HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK +FF71 ; mapped ; 30A2 # 1.1 HALFWIDTH KATAKANA LETTER A +FF72 ; mapped ; 30A4 # 1.1 HALFWIDTH KATAKANA LETTER I +FF73 ; mapped ; 30A6 # 1.1 HALFWIDTH KATAKANA LETTER U +FF74 ; mapped ; 30A8 # 1.1 HALFWIDTH KATAKANA LETTER E +FF75 ; mapped ; 30AA # 1.1 HALFWIDTH KATAKANA LETTER O +FF76 ; mapped ; 30AB # 1.1 HALFWIDTH KATAKANA LETTER KA +FF77 ; mapped ; 30AD # 1.1 HALFWIDTH KATAKANA LETTER KI +FF78 ; mapped ; 30AF # 1.1 HALFWIDTH KATAKANA LETTER KU +FF79 ; mapped ; 30B1 # 1.1 HALFWIDTH KATAKANA LETTER KE +FF7A ; mapped ; 30B3 # 1.1 HALFWIDTH KATAKANA LETTER KO +FF7B ; mapped ; 30B5 # 1.1 HALFWIDTH KATAKANA LETTER SA +FF7C ; mapped ; 30B7 # 1.1 HALFWIDTH KATAKANA LETTER SI +FF7D ; mapped ; 30B9 # 1.1 HALFWIDTH KATAKANA LETTER SU +FF7E ; mapped ; 30BB # 1.1 HALFWIDTH KATAKANA LETTER SE +FF7F ; mapped ; 30BD # 1.1 HALFWIDTH KATAKANA LETTER SO +FF80 ; mapped ; 30BF # 1.1 HALFWIDTH KATAKANA LETTER TA +FF81 ; mapped ; 30C1 # 1.1 HALFWIDTH KATAKANA LETTER TI +FF82 ; mapped ; 30C4 # 1.1 HALFWIDTH KATAKANA LETTER TU +FF83 ; mapped ; 30C6 # 1.1 HALFWIDTH KATAKANA LETTER TE +FF84 ; mapped ; 30C8 # 1.1 HALFWIDTH KATAKANA LETTER TO +FF85 ; mapped ; 30CA # 1.1 HALFWIDTH KATAKANA LETTER NA +FF86 ; mapped ; 30CB # 1.1 HALFWIDTH KATAKANA LETTER NI +FF87 ; mapped ; 30CC # 1.1 HALFWIDTH KATAKANA LETTER NU +FF88 ; mapped ; 30CD # 1.1 HALFWIDTH KATAKANA LETTER NE +FF89 ; mapped ; 30CE # 1.1 HALFWIDTH KATAKANA LETTER NO +FF8A ; mapped ; 30CF # 1.1 HALFWIDTH KATAKANA LETTER HA +FF8B ; mapped ; 30D2 # 1.1 HALFWIDTH KATAKANA LETTER HI +FF8C ; mapped ; 30D5 # 1.1 HALFWIDTH KATAKANA LETTER HU +FF8D ; mapped ; 30D8 # 1.1 HALFWIDTH KATAKANA LETTER HE +FF8E ; mapped ; 30DB # 1.1 HALFWIDTH KATAKANA LETTER HO +FF8F ; mapped ; 30DE # 1.1 HALFWIDTH KATAKANA LETTER MA +FF90 ; mapped ; 30DF # 1.1 HALFWIDTH KATAKANA LETTER MI +FF91 ; mapped ; 30E0 # 1.1 HALFWIDTH KATAKANA LETTER MU +FF92 ; mapped ; 30E1 # 1.1 HALFWIDTH KATAKANA LETTER ME +FF93 ; mapped ; 30E2 # 1.1 HALFWIDTH KATAKANA LETTER MO +FF94 ; mapped ; 30E4 # 1.1 HALFWIDTH KATAKANA LETTER YA +FF95 ; mapped ; 30E6 # 1.1 HALFWIDTH KATAKANA LETTER YU +FF96 ; mapped ; 30E8 # 1.1 HALFWIDTH KATAKANA LETTER YO +FF97 ; mapped ; 30E9 # 1.1 HALFWIDTH KATAKANA LETTER RA +FF98 ; mapped ; 30EA # 1.1 HALFWIDTH KATAKANA LETTER RI +FF99 ; mapped ; 30EB # 1.1 HALFWIDTH KATAKANA LETTER RU +FF9A ; mapped ; 30EC # 1.1 HALFWIDTH KATAKANA LETTER RE +FF9B ; mapped ; 30ED # 1.1 HALFWIDTH KATAKANA LETTER RO +FF9C ; mapped ; 30EF # 1.1 HALFWIDTH KATAKANA LETTER WA +FF9D ; mapped ; 30F3 # 1.1 HALFWIDTH KATAKANA LETTER N +FF9E ; mapped ; 3099 # 1.1 HALFWIDTH KATAKANA VOICED SOUND MARK +FF9F ; mapped ; 309A # 1.1 HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK +FFA0 ; disallowed # 1.1 HALFWIDTH HANGUL FILLER +FFA1 ; mapped ; 1100 # 1.1 HALFWIDTH HANGUL LETTER KIYEOK +FFA2 ; mapped ; 1101 # 1.1 HALFWIDTH HANGUL LETTER SSANGKIYEOK +FFA3 ; mapped ; 11AA # 1.1 HALFWIDTH HANGUL LETTER KIYEOK-SIOS +FFA4 ; mapped ; 1102 # 1.1 HALFWIDTH HANGUL LETTER NIEUN +FFA5 ; mapped ; 11AC # 1.1 HALFWIDTH HANGUL LETTER NIEUN-CIEUC +FFA6 ; mapped ; 11AD # 1.1 HALFWIDTH HANGUL LETTER NIEUN-HIEUH +FFA7 ; mapped ; 1103 # 1.1 HALFWIDTH HANGUL LETTER TIKEUT +FFA8 ; mapped ; 1104 # 1.1 HALFWIDTH HANGUL LETTER SSANGTIKEUT +FFA9 ; mapped ; 1105 # 1.1 HALFWIDTH HANGUL LETTER RIEUL +FFAA ; mapped ; 11B0 # 1.1 HALFWIDTH HANGUL LETTER RIEUL-KIYEOK +FFAB ; mapped ; 11B1 # 1.1 HALFWIDTH HANGUL LETTER RIEUL-MIEUM +FFAC ; mapped ; 11B2 # 1.1 HALFWIDTH HANGUL LETTER RIEUL-PIEUP +FFAD ; mapped ; 11B3 # 1.1 HALFWIDTH HANGUL LETTER RIEUL-SIOS +FFAE ; mapped ; 11B4 # 1.1 HALFWIDTH HANGUL LETTER RIEUL-THIEUTH +FFAF ; mapped ; 11B5 # 1.1 HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH +FFB0 ; mapped ; 111A # 1.1 HALFWIDTH HANGUL LETTER RIEUL-HIEUH +FFB1 ; mapped ; 1106 # 1.1 HALFWIDTH HANGUL LETTER MIEUM +FFB2 ; mapped ; 1107 # 1.1 HALFWIDTH HANGUL LETTER PIEUP +FFB3 ; mapped ; 1108 # 1.1 HALFWIDTH HANGUL LETTER SSANGPIEUP +FFB4 ; mapped ; 1121 # 1.1 HALFWIDTH HANGUL LETTER PIEUP-SIOS +FFB5 ; mapped ; 1109 # 1.1 HALFWIDTH HANGUL LETTER SIOS +FFB6 ; mapped ; 110A # 1.1 HALFWIDTH HANGUL LETTER SSANGSIOS +FFB7 ; mapped ; 110B # 1.1 HALFWIDTH HANGUL LETTER IEUNG +FFB8 ; mapped ; 110C # 1.1 HALFWIDTH HANGUL LETTER CIEUC +FFB9 ; mapped ; 110D # 1.1 HALFWIDTH HANGUL LETTER SSANGCIEUC +FFBA ; mapped ; 110E # 1.1 HALFWIDTH HANGUL LETTER CHIEUCH +FFBB ; mapped ; 110F # 1.1 HALFWIDTH HANGUL LETTER KHIEUKH +FFBC ; mapped ; 1110 # 1.1 HALFWIDTH HANGUL LETTER THIEUTH +FFBD ; mapped ; 1111 # 1.1 HALFWIDTH HANGUL LETTER PHIEUPH +FFBE ; mapped ; 1112 # 1.1 HALFWIDTH HANGUL LETTER HIEUH +FFBF..FFC1 ; disallowed # NA <reserved-FFBF>..<reserved-FFC1> +FFC2 ; mapped ; 1161 # 1.1 HALFWIDTH HANGUL LETTER A +FFC3 ; mapped ; 1162 # 1.1 HALFWIDTH HANGUL LETTER AE +FFC4 ; mapped ; 1163 # 1.1 HALFWIDTH HANGUL LETTER YA +FFC5 ; mapped ; 1164 # 1.1 HALFWIDTH HANGUL LETTER YAE +FFC6 ; mapped ; 1165 # 1.1 HALFWIDTH HANGUL LETTER EO +FFC7 ; mapped ; 1166 # 1.1 HALFWIDTH HANGUL LETTER E +FFC8..FFC9 ; disallowed # NA <reserved-FFC8>..<reserved-FFC9> +FFCA ; mapped ; 1167 # 1.1 HALFWIDTH HANGUL LETTER YEO +FFCB ; mapped ; 1168 # 1.1 HALFWIDTH HANGUL LETTER YE +FFCC ; mapped ; 1169 # 1.1 HALFWIDTH HANGUL LETTER O +FFCD ; mapped ; 116A # 1.1 HALFWIDTH HANGUL LETTER WA +FFCE ; mapped ; 116B # 1.1 HALFWIDTH HANGUL LETTER WAE +FFCF ; mapped ; 116C # 1.1 HALFWIDTH HANGUL LETTER OE +FFD0..FFD1 ; disallowed # NA <reserved-FFD0>..<reserved-FFD1> +FFD2 ; mapped ; 116D # 1.1 HALFWIDTH HANGUL LETTER YO +FFD3 ; mapped ; 116E # 1.1 HALFWIDTH HANGUL LETTER U +FFD4 ; mapped ; 116F # 1.1 HALFWIDTH HANGUL LETTER WEO +FFD5 ; mapped ; 1170 # 1.1 HALFWIDTH HANGUL LETTER WE +FFD6 ; mapped ; 1171 # 1.1 HALFWIDTH HANGUL LETTER WI +FFD7 ; mapped ; 1172 # 1.1 HALFWIDTH HANGUL LETTER YU +FFD8..FFD9 ; disallowed # NA <reserved-FFD8>..<reserved-FFD9> +FFDA ; mapped ; 1173 # 1.1 HALFWIDTH HANGUL LETTER EU +FFDB ; mapped ; 1174 # 1.1 HALFWIDTH HANGUL LETTER YI +FFDC ; mapped ; 1175 # 1.1 HALFWIDTH HANGUL LETTER I +FFDD..FFDF ; disallowed # NA <reserved-FFDD>..<reserved-FFDF> +FFE0 ; mapped ; 00A2 # 1.1 FULLWIDTH CENT SIGN +FFE1 ; mapped ; 00A3 # 1.1 FULLWIDTH POUND SIGN +FFE2 ; mapped ; 00AC # 1.1 FULLWIDTH NOT SIGN +FFE3 ; disallowed_STD3_mapped ; 0020 0304 # 1.1 FULLWIDTH MACRON +FFE4 ; mapped ; 00A6 # 1.1 FULLWIDTH BROKEN BAR +FFE5 ; mapped ; 00A5 # 1.1 FULLWIDTH YEN SIGN +FFE6 ; mapped ; 20A9 # 1.1 FULLWIDTH WON SIGN +FFE7 ; disallowed # NA <reserved-FFE7> +FFE8 ; mapped ; 2502 # 1.1 HALFWIDTH FORMS LIGHT VERTICAL +FFE9 ; mapped ; 2190 # 1.1 HALFWIDTH LEFTWARDS ARROW +FFEA ; mapped ; 2191 # 1.1 HALFWIDTH UPWARDS ARROW +FFEB ; mapped ; 2192 # 1.1 HALFWIDTH RIGHTWARDS ARROW +FFEC ; mapped ; 2193 # 1.1 HALFWIDTH DOWNWARDS ARROW +FFED ; mapped ; 25A0 # 1.1 HALFWIDTH BLACK SQUARE +FFEE ; mapped ; 25CB # 1.1 HALFWIDTH WHITE CIRCLE +FFEF..FFF8 ; disallowed # NA <reserved-FFEF>..<reserved-FFF8> +FFF9..FFFB ; disallowed # 3.0 INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR +FFFC ; disallowed # 2.1 OBJECT REPLACEMENT CHARACTER +FFFD ; disallowed # 1.1 REPLACEMENT CHARACTER +FFFE..FFFF ; disallowed # 1.1 <noncharacter-FFFE>..<noncharacter-FFFF> +10000..1000B ; valid # 4.0 LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE +1000C ; disallowed # NA <reserved-1000C> +1000D..10026 ; valid # 4.0 LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO +10027 ; disallowed # NA <reserved-10027> +10028..1003A ; valid # 4.0 LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO +1003B ; disallowed # NA <reserved-1003B> +1003C..1003D ; valid # 4.0 LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE +1003E ; disallowed # NA <reserved-1003E> +1003F..1004D ; valid # 4.0 LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO +1004E..1004F ; disallowed # NA <reserved-1004E>..<reserved-1004F> +10050..1005D ; valid # 4.0 LINEAR B SYMBOL B018..LINEAR B SYMBOL B089 +1005E..1007F ; disallowed # NA <reserved-1005E>..<reserved-1007F> +10080..100FA ; valid # 4.0 LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305 +100FB..100FF ; disallowed # NA <reserved-100FB>..<reserved-100FF> +10100..10102 ; valid ; ; NV8 # 4.0 AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK +10103..10106 ; disallowed # NA <reserved-10103>..<reserved-10106> +10107..10133 ; valid ; ; NV8 # 4.0 AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND +10134..10136 ; disallowed # NA <reserved-10134>..<reserved-10136> +10137..1013F ; valid ; ; NV8 # 4.0 AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT +10140..1018A ; valid ; ; NV8 # 4.1 GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ZERO SIGN +1018B..1018C ; valid ; ; NV8 # 7.0 GREEK ONE QUARTER SIGN..GREEK SINUSOID SIGN +1018D..1018E ; valid ; ; NV8 # 9.0 GREEK INDICTION SIGN..NOMISMA SIGN +1018F ; disallowed # NA <reserved-1018F> +10190..1019B ; valid ; ; NV8 # 5.1 ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN +1019C ; valid ; ; NV8 # 13.0 ASCIA SYMBOL +1019D..1019F ; disallowed # NA <reserved-1019D>..<reserved-1019F> +101A0 ; valid ; ; NV8 # 7.0 GREEK SYMBOL TAU RHO +101A1..101CF ; disallowed # NA <reserved-101A1>..<reserved-101CF> +101D0..101FC ; valid ; ; NV8 # 5.1 PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND +101FD ; valid # 5.1 PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE +101FE..1027F ; disallowed # NA <reserved-101FE>..<reserved-1027F> +10280..1029C ; valid # 5.1 LYCIAN LETTER A..LYCIAN LETTER X +1029D..1029F ; disallowed # NA <reserved-1029D>..<reserved-1029F> +102A0..102D0 ; valid # 5.1 CARIAN LETTER A..CARIAN LETTER UUU3 +102D1..102DF ; disallowed # NA <reserved-102D1>..<reserved-102DF> +102E0 ; valid # 7.0 COPTIC EPACT THOUSANDS MARK +102E1..102FB ; valid ; ; NV8 # 7.0 COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED +102FC..102FF ; disallowed # NA <reserved-102FC>..<reserved-102FF> +10300..1031E ; valid # 3.1 OLD ITALIC LETTER A..OLD ITALIC LETTER UU +1031F ; valid # 7.0 OLD ITALIC LETTER ESS +10320..10323 ; valid ; ; NV8 # 3.1 OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY +10324..1032C ; disallowed # NA <reserved-10324>..<reserved-1032C> +1032D..1032F ; valid # 10.0 OLD ITALIC LETTER YE..OLD ITALIC LETTER SOUTHERN TSE +10330..10340 ; valid # 3.1 GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA +10341 ; valid ; ; NV8 # 3.1 GOTHIC LETTER NINETY +10342..10349 ; valid # 3.1 GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL +1034A ; valid ; ; NV8 # 3.1 GOTHIC LETTER NINE HUNDRED +1034B..1034F ; disallowed # NA <reserved-1034B>..<reserved-1034F> +10350..1037A ; valid # 7.0 OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII +1037B..1037F ; disallowed # NA <reserved-1037B>..<reserved-1037F> +10380..1039D ; valid # 4.0 UGARITIC LETTER ALPA..UGARITIC LETTER SSU +1039E ; disallowed # NA <reserved-1039E> +1039F ; valid ; ; NV8 # 4.0 UGARITIC WORD DIVIDER +103A0..103C3 ; valid # 4.1 OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA +103C4..103C7 ; disallowed # NA <reserved-103C4>..<reserved-103C7> +103C8..103CF ; valid # 4.1 OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH +103D0..103D5 ; valid ; ; NV8 # 4.1 OLD PERSIAN WORD DIVIDER..OLD PERSIAN NUMBER HUNDRED +103D6..103FF ; disallowed # NA <reserved-103D6>..<reserved-103FF> +10400 ; mapped ; 10428 # 3.1 DESERET CAPITAL LETTER LONG I +10401 ; mapped ; 10429 # 3.1 DESERET CAPITAL LETTER LONG E +10402 ; mapped ; 1042A # 3.1 DESERET CAPITAL LETTER LONG A +10403 ; mapped ; 1042B # 3.1 DESERET CAPITAL LETTER LONG AH +10404 ; mapped ; 1042C # 3.1 DESERET CAPITAL LETTER LONG O +10405 ; mapped ; 1042D # 3.1 DESERET CAPITAL LETTER LONG OO +10406 ; mapped ; 1042E # 3.1 DESERET CAPITAL LETTER SHORT I +10407 ; mapped ; 1042F # 3.1 DESERET CAPITAL LETTER SHORT E +10408 ; mapped ; 10430 # 3.1 DESERET CAPITAL LETTER SHORT A +10409 ; mapped ; 10431 # 3.1 DESERET CAPITAL LETTER SHORT AH +1040A ; mapped ; 10432 # 3.1 DESERET CAPITAL LETTER SHORT O +1040B ; mapped ; 10433 # 3.1 DESERET CAPITAL LETTER SHORT OO +1040C ; mapped ; 10434 # 3.1 DESERET CAPITAL LETTER AY +1040D ; mapped ; 10435 # 3.1 DESERET CAPITAL LETTER OW +1040E ; mapped ; 10436 # 3.1 DESERET CAPITAL LETTER WU +1040F ; mapped ; 10437 # 3.1 DESERET CAPITAL LETTER YEE +10410 ; mapped ; 10438 # 3.1 DESERET CAPITAL LETTER H +10411 ; mapped ; 10439 # 3.1 DESERET CAPITAL LETTER PEE +10412 ; mapped ; 1043A # 3.1 DESERET CAPITAL LETTER BEE +10413 ; mapped ; 1043B # 3.1 DESERET CAPITAL LETTER TEE +10414 ; mapped ; 1043C # 3.1 DESERET CAPITAL LETTER DEE +10415 ; mapped ; 1043D # 3.1 DESERET CAPITAL LETTER CHEE +10416 ; mapped ; 1043E # 3.1 DESERET CAPITAL LETTER JEE +10417 ; mapped ; 1043F # 3.1 DESERET CAPITAL LETTER KAY +10418 ; mapped ; 10440 # 3.1 DESERET CAPITAL LETTER GAY +10419 ; mapped ; 10441 # 3.1 DESERET CAPITAL LETTER EF +1041A ; mapped ; 10442 # 3.1 DESERET CAPITAL LETTER VEE +1041B ; mapped ; 10443 # 3.1 DESERET CAPITAL LETTER ETH +1041C ; mapped ; 10444 # 3.1 DESERET CAPITAL LETTER THEE +1041D ; mapped ; 10445 # 3.1 DESERET CAPITAL LETTER ES +1041E ; mapped ; 10446 # 3.1 DESERET CAPITAL LETTER ZEE +1041F ; mapped ; 10447 # 3.1 DESERET CAPITAL LETTER ESH +10420 ; mapped ; 10448 # 3.1 DESERET CAPITAL LETTER ZHEE +10421 ; mapped ; 10449 # 3.1 DESERET CAPITAL LETTER ER +10422 ; mapped ; 1044A # 3.1 DESERET CAPITAL LETTER EL +10423 ; mapped ; 1044B # 3.1 DESERET CAPITAL LETTER EM +10424 ; mapped ; 1044C # 3.1 DESERET CAPITAL LETTER EN +10425 ; mapped ; 1044D # 3.1 DESERET CAPITAL LETTER ENG +10426 ; mapped ; 1044E # 4.0 DESERET CAPITAL LETTER OI +10427 ; mapped ; 1044F # 4.0 DESERET CAPITAL LETTER EW +10428..1044D ; valid # 3.1 DESERET SMALL LETTER LONG I..DESERET SMALL LETTER ENG +1044E..1049D ; valid # 4.0 DESERET SMALL LETTER OI..OSMANYA LETTER OO +1049E..1049F ; disallowed # NA <reserved-1049E>..<reserved-1049F> +104A0..104A9 ; valid # 4.0 OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE +104AA..104AF ; disallowed # NA <reserved-104AA>..<reserved-104AF> +104B0 ; mapped ; 104D8 # 9.0 OSAGE CAPITAL LETTER A +104B1 ; mapped ; 104D9 # 9.0 OSAGE CAPITAL LETTER AI +104B2 ; mapped ; 104DA # 9.0 OSAGE CAPITAL LETTER AIN +104B3 ; mapped ; 104DB # 9.0 OSAGE CAPITAL LETTER AH +104B4 ; mapped ; 104DC # 9.0 OSAGE CAPITAL LETTER BRA +104B5 ; mapped ; 104DD # 9.0 OSAGE CAPITAL LETTER CHA +104B6 ; mapped ; 104DE # 9.0 OSAGE CAPITAL LETTER EHCHA +104B7 ; mapped ; 104DF # 9.0 OSAGE CAPITAL LETTER E +104B8 ; mapped ; 104E0 # 9.0 OSAGE CAPITAL LETTER EIN +104B9 ; mapped ; 104E1 # 9.0 OSAGE CAPITAL LETTER HA +104BA ; mapped ; 104E2 # 9.0 OSAGE CAPITAL LETTER HYA +104BB ; mapped ; 104E3 # 9.0 OSAGE CAPITAL LETTER I +104BC ; mapped ; 104E4 # 9.0 OSAGE CAPITAL LETTER KA +104BD ; mapped ; 104E5 # 9.0 OSAGE CAPITAL LETTER EHKA +104BE ; mapped ; 104E6 # 9.0 OSAGE CAPITAL LETTER KYA +104BF ; mapped ; 104E7 # 9.0 OSAGE CAPITAL LETTER LA +104C0 ; mapped ; 104E8 # 9.0 OSAGE CAPITAL LETTER MA +104C1 ; mapped ; 104E9 # 9.0 OSAGE CAPITAL LETTER NA +104C2 ; mapped ; 104EA # 9.0 OSAGE CAPITAL LETTER O +104C3 ; mapped ; 104EB # 9.0 OSAGE CAPITAL LETTER OIN +104C4 ; mapped ; 104EC # 9.0 OSAGE CAPITAL LETTER PA +104C5 ; mapped ; 104ED # 9.0 OSAGE CAPITAL LETTER EHPA +104C6 ; mapped ; 104EE # 9.0 OSAGE CAPITAL LETTER SA +104C7 ; mapped ; 104EF # 9.0 OSAGE CAPITAL LETTER SHA +104C8 ; mapped ; 104F0 # 9.0 OSAGE CAPITAL LETTER TA +104C9 ; mapped ; 104F1 # 9.0 OSAGE CAPITAL LETTER EHTA +104CA ; mapped ; 104F2 # 9.0 OSAGE CAPITAL LETTER TSA +104CB ; mapped ; 104F3 # 9.0 OSAGE CAPITAL LETTER EHTSA +104CC ; mapped ; 104F4 # 9.0 OSAGE CAPITAL LETTER TSHA +104CD ; mapped ; 104F5 # 9.0 OSAGE CAPITAL LETTER DHA +104CE ; mapped ; 104F6 # 9.0 OSAGE CAPITAL LETTER U +104CF ; mapped ; 104F7 # 9.0 OSAGE CAPITAL LETTER WA +104D0 ; mapped ; 104F8 # 9.0 OSAGE CAPITAL LETTER KHA +104D1 ; mapped ; 104F9 # 9.0 OSAGE CAPITAL LETTER GHA +104D2 ; mapped ; 104FA # 9.0 OSAGE CAPITAL LETTER ZA +104D3 ; mapped ; 104FB # 9.0 OSAGE CAPITAL LETTER ZHA +104D4..104D7 ; disallowed # NA <reserved-104D4>..<reserved-104D7> +104D8..104FB ; valid # 9.0 OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA +104FC..104FF ; disallowed # NA <reserved-104FC>..<reserved-104FF> +10500..10527 ; valid # 7.0 ELBASAN LETTER A..ELBASAN LETTER KHE +10528..1052F ; disallowed # NA <reserved-10528>..<reserved-1052F> +10530..10563 ; valid # 7.0 CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW +10564..1056E ; disallowed # NA <reserved-10564>..<reserved-1056E> +1056F ; valid ; ; NV8 # 7.0 CAUCASIAN ALBANIAN CITATION MARK +10570 ; mapped ; 10597 # 14.0 VITHKUQI CAPITAL LETTER A +10571 ; mapped ; 10598 # 14.0 VITHKUQI CAPITAL LETTER BBE +10572 ; mapped ; 10599 # 14.0 VITHKUQI CAPITAL LETTER BE +10573 ; mapped ; 1059A # 14.0 VITHKUQI CAPITAL LETTER CE +10574 ; mapped ; 1059B # 14.0 VITHKUQI CAPITAL LETTER CHE +10575 ; mapped ; 1059C # 14.0 VITHKUQI CAPITAL LETTER DE +10576 ; mapped ; 1059D # 14.0 VITHKUQI CAPITAL LETTER DHE +10577 ; mapped ; 1059E # 14.0 VITHKUQI CAPITAL LETTER EI +10578 ; mapped ; 1059F # 14.0 VITHKUQI CAPITAL LETTER E +10579 ; mapped ; 105A0 # 14.0 VITHKUQI CAPITAL LETTER FE +1057A ; mapped ; 105A1 # 14.0 VITHKUQI CAPITAL LETTER GA +1057B ; disallowed # NA <reserved-1057B> +1057C ; mapped ; 105A3 # 14.0 VITHKUQI CAPITAL LETTER HA +1057D ; mapped ; 105A4 # 14.0 VITHKUQI CAPITAL LETTER HHA +1057E ; mapped ; 105A5 # 14.0 VITHKUQI CAPITAL LETTER I +1057F ; mapped ; 105A6 # 14.0 VITHKUQI CAPITAL LETTER IJE +10580 ; mapped ; 105A7 # 14.0 VITHKUQI CAPITAL LETTER JE +10581 ; mapped ; 105A8 # 14.0 VITHKUQI CAPITAL LETTER KA +10582 ; mapped ; 105A9 # 14.0 VITHKUQI CAPITAL LETTER LA +10583 ; mapped ; 105AA # 14.0 VITHKUQI CAPITAL LETTER LLA +10584 ; mapped ; 105AB # 14.0 VITHKUQI CAPITAL LETTER ME +10585 ; mapped ; 105AC # 14.0 VITHKUQI CAPITAL LETTER NE +10586 ; mapped ; 105AD # 14.0 VITHKUQI CAPITAL LETTER NJE +10587 ; mapped ; 105AE # 14.0 VITHKUQI CAPITAL LETTER O +10588 ; mapped ; 105AF # 14.0 VITHKUQI CAPITAL LETTER PE +10589 ; mapped ; 105B0 # 14.0 VITHKUQI CAPITAL LETTER QA +1058A ; mapped ; 105B1 # 14.0 VITHKUQI CAPITAL LETTER RE +1058B ; disallowed # NA <reserved-1058B> +1058C ; mapped ; 105B3 # 14.0 VITHKUQI CAPITAL LETTER SE +1058D ; mapped ; 105B4 # 14.0 VITHKUQI CAPITAL LETTER SHE +1058E ; mapped ; 105B5 # 14.0 VITHKUQI CAPITAL LETTER TE +1058F ; mapped ; 105B6 # 14.0 VITHKUQI CAPITAL LETTER THE +10590 ; mapped ; 105B7 # 14.0 VITHKUQI CAPITAL LETTER U +10591 ; mapped ; 105B8 # 14.0 VITHKUQI CAPITAL LETTER VE +10592 ; mapped ; 105B9 # 14.0 VITHKUQI CAPITAL LETTER XE +10593 ; disallowed # NA <reserved-10593> +10594 ; mapped ; 105BB # 14.0 VITHKUQI CAPITAL LETTER Y +10595 ; mapped ; 105BC # 14.0 VITHKUQI CAPITAL LETTER ZE +10596 ; disallowed # NA <reserved-10596> +10597..105A1 ; valid # 14.0 VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA +105A2 ; disallowed # NA <reserved-105A2> +105A3..105B1 ; valid # 14.0 VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE +105B2 ; disallowed # NA <reserved-105B2> +105B3..105B9 ; valid # 14.0 VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE +105BA ; disallowed # NA <reserved-105BA> +105BB..105BC ; valid # 14.0 VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE +105BD..105FF ; disallowed # NA <reserved-105BD>..<reserved-105FF> +10600..10736 ; valid # 7.0 LINEAR A SIGN AB001..LINEAR A SIGN A664 +10737..1073F ; disallowed # NA <reserved-10737>..<reserved-1073F> +10740..10755 ; valid # 7.0 LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE +10756..1075F ; disallowed # NA <reserved-10756>..<reserved-1075F> +10760..10767 ; valid # 7.0 LINEAR A SIGN A800..LINEAR A SIGN A807 +10768..1077F ; disallowed # NA <reserved-10768>..<reserved-1077F> +10780 ; valid # 14.0 MODIFIER LETTER SMALL CAPITAL AA +10781 ; mapped ; 02D0 # 14.0 MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON +10782 ; mapped ; 02D1 # 14.0 MODIFIER LETTER SUPERSCRIPT HALF TRIANGULAR COLON +10783 ; mapped ; 00E6 # 14.0 MODIFIER LETTER SMALL AE +10784 ; mapped ; 0299 # 14.0 MODIFIER LETTER SMALL CAPITAL B +10785 ; mapped ; 0253 # 14.0 MODIFIER LETTER SMALL B WITH HOOK +10786 ; disallowed # NA <reserved-10786> +10787 ; mapped ; 02A3 # 14.0 MODIFIER LETTER SMALL DZ DIGRAPH +10788 ; mapped ; AB66 # 14.0 MODIFIER LETTER SMALL DZ DIGRAPH WITH RETROFLEX HOOK +10789 ; mapped ; 02A5 # 14.0 MODIFIER LETTER SMALL DZ DIGRAPH WITH CURL +1078A ; mapped ; 02A4 # 14.0 MODIFIER LETTER SMALL DEZH DIGRAPH +1078B ; mapped ; 0256 # 14.0 MODIFIER LETTER SMALL D WITH TAIL +1078C ; mapped ; 0257 # 14.0 MODIFIER LETTER SMALL D WITH HOOK +1078D ; mapped ; 1D91 # 14.0 MODIFIER LETTER SMALL D WITH HOOK AND TAIL +1078E ; mapped ; 0258 # 14.0 MODIFIER LETTER SMALL REVERSED E +1078F ; mapped ; 025E # 14.0 MODIFIER LETTER SMALL CLOSED REVERSED OPEN E +10790 ; mapped ; 02A9 # 14.0 MODIFIER LETTER SMALL FENG DIGRAPH +10791 ; mapped ; 0264 # 14.0 MODIFIER LETTER SMALL RAMS HORN +10792 ; mapped ; 0262 # 14.0 MODIFIER LETTER SMALL CAPITAL G +10793 ; mapped ; 0260 # 14.0 MODIFIER LETTER SMALL G WITH HOOK +10794 ; mapped ; 029B # 14.0 MODIFIER LETTER SMALL CAPITAL G WITH HOOK +10795 ; mapped ; 0127 # 14.0 MODIFIER LETTER SMALL H WITH STROKE +10796 ; mapped ; 029C # 14.0 MODIFIER LETTER SMALL CAPITAL H +10797 ; mapped ; 0267 # 14.0 MODIFIER LETTER SMALL HENG WITH HOOK +10798 ; mapped ; 0284 # 14.0 MODIFIER LETTER SMALL DOTLESS J WITH STROKE AND HOOK +10799 ; mapped ; 02AA # 14.0 MODIFIER LETTER SMALL LS DIGRAPH +1079A ; mapped ; 02AB # 14.0 MODIFIER LETTER SMALL LZ DIGRAPH +1079B ; mapped ; 026C # 14.0 MODIFIER LETTER SMALL L WITH BELT +1079C ; mapped ; 1DF04 # 14.0 MODIFIER LETTER SMALL CAPITAL L WITH BELT +1079D ; mapped ; A78E # 14.0 MODIFIER LETTER SMALL L WITH RETROFLEX HOOK AND BELT +1079E ; mapped ; 026E # 14.0 MODIFIER LETTER SMALL LEZH +1079F ; mapped ; 1DF05 # 14.0 MODIFIER LETTER SMALL LEZH WITH RETROFLEX HOOK +107A0 ; mapped ; 028E # 14.0 MODIFIER LETTER SMALL TURNED Y +107A1 ; mapped ; 1DF06 # 14.0 MODIFIER LETTER SMALL TURNED Y WITH BELT +107A2 ; mapped ; 00F8 # 14.0 MODIFIER LETTER SMALL O WITH STROKE +107A3 ; mapped ; 0276 # 14.0 MODIFIER LETTER SMALL CAPITAL OE +107A4 ; mapped ; 0277 # 14.0 MODIFIER LETTER SMALL CLOSED OMEGA +107A5 ; mapped ; 0071 # 14.0 MODIFIER LETTER SMALL Q +107A6 ; mapped ; 027A # 14.0 MODIFIER LETTER SMALL TURNED R WITH LONG LEG +107A7 ; mapped ; 1DF08 # 14.0 MODIFIER LETTER SMALL TURNED R WITH LONG LEG AND RETROFLEX HOOK +107A8 ; mapped ; 027D # 14.0 MODIFIER LETTER SMALL R WITH TAIL +107A9 ; mapped ; 027E # 14.0 MODIFIER LETTER SMALL R WITH FISHHOOK +107AA ; mapped ; 0280 # 14.0 MODIFIER LETTER SMALL CAPITAL R +107AB ; mapped ; 02A8 # 14.0 MODIFIER LETTER SMALL TC DIGRAPH WITH CURL +107AC ; mapped ; 02A6 # 14.0 MODIFIER LETTER SMALL TS DIGRAPH +107AD ; mapped ; AB67 # 14.0 MODIFIER LETTER SMALL TS DIGRAPH WITH RETROFLEX HOOK +107AE ; mapped ; 02A7 # 14.0 MODIFIER LETTER SMALL TESH DIGRAPH +107AF ; mapped ; 0288 # 14.0 MODIFIER LETTER SMALL T WITH RETROFLEX HOOK +107B0 ; mapped ; 2C71 # 14.0 MODIFIER LETTER SMALL V WITH RIGHT HOOK +107B1 ; disallowed # NA <reserved-107B1> +107B2 ; mapped ; 028F # 14.0 MODIFIER LETTER SMALL CAPITAL Y +107B3 ; mapped ; 02A1 # 14.0 MODIFIER LETTER GLOTTAL STOP WITH STROKE +107B4 ; mapped ; 02A2 # 14.0 MODIFIER LETTER REVERSED GLOTTAL STOP WITH STROKE +107B5 ; mapped ; 0298 # 14.0 MODIFIER LETTER BILABIAL CLICK +107B6 ; mapped ; 01C0 # 14.0 MODIFIER LETTER DENTAL CLICK +107B7 ; mapped ; 01C1 # 14.0 MODIFIER LETTER LATERAL CLICK +107B8 ; mapped ; 01C2 # 14.0 MODIFIER LETTER ALVEOLAR CLICK +107B9 ; mapped ; 1DF0A # 14.0 MODIFIER LETTER RETROFLEX CLICK WITH RETROFLEX HOOK +107BA ; mapped ; 1DF1E # 14.0 MODIFIER LETTER SMALL S WITH CURL +107BB..107FF ; disallowed # NA <reserved-107BB>..<reserved-107FF> +10800..10805 ; valid # 4.0 CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA +10806..10807 ; disallowed # NA <reserved-10806>..<reserved-10807> +10808 ; valid # 4.0 CYPRIOT SYLLABLE JO +10809 ; disallowed # NA <reserved-10809> +1080A..10835 ; valid # 4.0 CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO +10836 ; disallowed # NA <reserved-10836> +10837..10838 ; valid # 4.0 CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE +10839..1083B ; disallowed # NA <reserved-10839>..<reserved-1083B> +1083C ; valid # 4.0 CYPRIOT SYLLABLE ZA +1083D..1083E ; disallowed # NA <reserved-1083D>..<reserved-1083E> +1083F ; valid # 4.0 CYPRIOT SYLLABLE ZO +10840..10855 ; valid # 5.2 IMPERIAL ARAMAIC LETTER ALEPH..IMPERIAL ARAMAIC LETTER TAW +10856 ; disallowed # NA <reserved-10856> +10857..1085F ; valid ; ; NV8 # 5.2 IMPERIAL ARAMAIC SECTION SIGN..IMPERIAL ARAMAIC NUMBER TEN THOUSAND +10860..10876 ; valid # 7.0 PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW +10877..1087F ; valid ; ; NV8 # 7.0 PALMYRENE LEFT-POINTING FLEURON..PALMYRENE NUMBER TWENTY +10880..1089E ; valid # 7.0 NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW +1089F..108A6 ; disallowed # NA <reserved-1089F>..<reserved-108A6> +108A7..108AF ; valid ; ; NV8 # 7.0 NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED +108B0..108DF ; disallowed # NA <reserved-108B0>..<reserved-108DF> +108E0..108F2 ; valid # 8.0 HATRAN LETTER ALEPH..HATRAN LETTER QOPH +108F3 ; disallowed # NA <reserved-108F3> +108F4..108F5 ; valid # 8.0 HATRAN LETTER SHIN..HATRAN LETTER TAW +108F6..108FA ; disallowed # NA <reserved-108F6>..<reserved-108FA> +108FB..108FF ; valid ; ; NV8 # 8.0 HATRAN NUMBER ONE..HATRAN NUMBER ONE HUNDRED +10900..10915 ; valid # 5.0 PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU +10916..10919 ; valid ; ; NV8 # 5.0 PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER ONE HUNDRED +1091A..1091B ; valid ; ; NV8 # 5.2 PHOENICIAN NUMBER TWO..PHOENICIAN NUMBER THREE +1091C..1091E ; disallowed # NA <reserved-1091C>..<reserved-1091E> +1091F ; valid ; ; NV8 # 5.0 PHOENICIAN WORD SEPARATOR +10920..10939 ; valid # 5.1 LYDIAN LETTER A..LYDIAN LETTER C +1093A..1093E ; disallowed # NA <reserved-1093A>..<reserved-1093E> +1093F ; valid ; ; NV8 # 5.1 LYDIAN TRIANGULAR MARK +10940..1097F ; disallowed # NA <reserved-10940>..<reserved-1097F> +10980..109B7 ; valid # 6.1 MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA +109B8..109BB ; disallowed # NA <reserved-109B8>..<reserved-109BB> +109BC..109BD ; valid ; ; NV8 # 8.0 MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF +109BE..109BF ; valid # 6.1 MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN +109C0..109CF ; valid ; ; NV8 # 8.0 MEROITIC CURSIVE NUMBER ONE..MEROITIC CURSIVE NUMBER SEVENTY +109D0..109D1 ; disallowed # NA <reserved-109D0>..<reserved-109D1> +109D2..109FF ; valid ; ; NV8 # 8.0 MEROITIC CURSIVE NUMBER ONE HUNDRED..MEROITIC CURSIVE FRACTION TEN TWELFTHS +10A00..10A03 ; valid # 4.1 KHAROSHTHI LETTER A..KHAROSHTHI VOWEL SIGN VOCALIC R +10A04 ; disallowed # NA <reserved-10A04> +10A05..10A06 ; valid # 4.1 KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O +10A07..10A0B ; disallowed # NA <reserved-10A07>..<reserved-10A0B> +10A0C..10A13 ; valid # 4.1 KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI LETTER GHA +10A14 ; disallowed # NA <reserved-10A14> +10A15..10A17 ; valid # 4.1 KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA +10A18 ; disallowed # NA <reserved-10A18> +10A19..10A33 ; valid # 4.1 KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA +10A34..10A35 ; valid # 11.0 KHAROSHTHI LETTER TTTA..KHAROSHTHI LETTER VHA +10A36..10A37 ; disallowed # NA <reserved-10A36>..<reserved-10A37> +10A38..10A3A ; valid # 4.1 KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW +10A3B..10A3E ; disallowed # NA <reserved-10A3B>..<reserved-10A3E> +10A3F ; valid # 4.1 KHAROSHTHI VIRAMA +10A40..10A47 ; valid ; ; NV8 # 4.1 KHAROSHTHI DIGIT ONE..KHAROSHTHI NUMBER ONE THOUSAND +10A48 ; valid ; ; NV8 # 11.0 KHAROSHTHI FRACTION ONE HALF +10A49..10A4F ; disallowed # NA <reserved-10A49>..<reserved-10A4F> +10A50..10A58 ; valid ; ; NV8 # 4.1 KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES +10A59..10A5F ; disallowed # NA <reserved-10A59>..<reserved-10A5F> +10A60..10A7C ; valid # 5.2 OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH +10A7D..10A7F ; valid ; ; NV8 # 5.2 OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMERIC INDICATOR +10A80..10A9C ; valid # 7.0 OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH +10A9D..10A9F ; valid ; ; NV8 # 7.0 OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY +10AA0..10ABF ; disallowed # NA <reserved-10AA0>..<reserved-10ABF> +10AC0..10AC7 ; valid # 7.0 MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW +10AC8 ; valid ; ; NV8 # 7.0 MANICHAEAN SIGN UD +10AC9..10AE6 ; valid # 7.0 MANICHAEAN LETTER ZAYIN..MANICHAEAN ABBREVIATION MARK BELOW +10AE7..10AEA ; disallowed # NA <reserved-10AE7>..<reserved-10AEA> +10AEB..10AF6 ; valid ; ; NV8 # 7.0 MANICHAEAN NUMBER ONE..MANICHAEAN PUNCTUATION LINE FILLER +10AF7..10AFF ; disallowed # NA <reserved-10AF7>..<reserved-10AFF> +10B00..10B35 ; valid # 5.2 AVESTAN LETTER A..AVESTAN LETTER HE +10B36..10B38 ; disallowed # NA <reserved-10B36>..<reserved-10B38> +10B39..10B3F ; valid ; ; NV8 # 5.2 AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION +10B40..10B55 ; valid # 5.2 INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW +10B56..10B57 ; disallowed # NA <reserved-10B56>..<reserved-10B57> +10B58..10B5F ; valid ; ; NV8 # 5.2 INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND +10B60..10B72 ; valid # 5.2 INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW +10B73..10B77 ; disallowed # NA <reserved-10B73>..<reserved-10B77> +10B78..10B7F ; valid ; ; NV8 # 5.2 INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND +10B80..10B91 ; valid # 7.0 PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW +10B92..10B98 ; disallowed # NA <reserved-10B92>..<reserved-10B98> +10B99..10B9C ; valid ; ; NV8 # 7.0 PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT +10B9D..10BA8 ; disallowed # NA <reserved-10B9D>..<reserved-10BA8> +10BA9..10BAF ; valid ; ; NV8 # 7.0 PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED +10BB0..10BFF ; disallowed # NA <reserved-10BB0>..<reserved-10BFF> +10C00..10C48 ; valid # 5.2 OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH +10C49..10C7F ; disallowed # NA <reserved-10C49>..<reserved-10C7F> +10C80 ; mapped ; 10CC0 # 8.0 OLD HUNGARIAN CAPITAL LETTER A +10C81 ; mapped ; 10CC1 # 8.0 OLD HUNGARIAN CAPITAL LETTER AA +10C82 ; mapped ; 10CC2 # 8.0 OLD HUNGARIAN CAPITAL LETTER EB +10C83 ; mapped ; 10CC3 # 8.0 OLD HUNGARIAN CAPITAL LETTER AMB +10C84 ; mapped ; 10CC4 # 8.0 OLD HUNGARIAN CAPITAL LETTER EC +10C85 ; mapped ; 10CC5 # 8.0 OLD HUNGARIAN CAPITAL LETTER ENC +10C86 ; mapped ; 10CC6 # 8.0 OLD HUNGARIAN CAPITAL LETTER ECS +10C87 ; mapped ; 10CC7 # 8.0 OLD HUNGARIAN CAPITAL LETTER ED +10C88 ; mapped ; 10CC8 # 8.0 OLD HUNGARIAN CAPITAL LETTER AND +10C89 ; mapped ; 10CC9 # 8.0 OLD HUNGARIAN CAPITAL LETTER E +10C8A ; mapped ; 10CCA # 8.0 OLD HUNGARIAN CAPITAL LETTER CLOSE E +10C8B ; mapped ; 10CCB # 8.0 OLD HUNGARIAN CAPITAL LETTER EE +10C8C ; mapped ; 10CCC # 8.0 OLD HUNGARIAN CAPITAL LETTER EF +10C8D ; mapped ; 10CCD # 8.0 OLD HUNGARIAN CAPITAL LETTER EG +10C8E ; mapped ; 10CCE # 8.0 OLD HUNGARIAN CAPITAL LETTER EGY +10C8F ; mapped ; 10CCF # 8.0 OLD HUNGARIAN CAPITAL LETTER EH +10C90 ; mapped ; 10CD0 # 8.0 OLD HUNGARIAN CAPITAL LETTER I +10C91 ; mapped ; 10CD1 # 8.0 OLD HUNGARIAN CAPITAL LETTER II +10C92 ; mapped ; 10CD2 # 8.0 OLD HUNGARIAN CAPITAL LETTER EJ +10C93 ; mapped ; 10CD3 # 8.0 OLD HUNGARIAN CAPITAL LETTER EK +10C94 ; mapped ; 10CD4 # 8.0 OLD HUNGARIAN CAPITAL LETTER AK +10C95 ; mapped ; 10CD5 # 8.0 OLD HUNGARIAN CAPITAL LETTER UNK +10C96 ; mapped ; 10CD6 # 8.0 OLD HUNGARIAN CAPITAL LETTER EL +10C97 ; mapped ; 10CD7 # 8.0 OLD HUNGARIAN CAPITAL LETTER ELY +10C98 ; mapped ; 10CD8 # 8.0 OLD HUNGARIAN CAPITAL LETTER EM +10C99 ; mapped ; 10CD9 # 8.0 OLD HUNGARIAN CAPITAL LETTER EN +10C9A ; mapped ; 10CDA # 8.0 OLD HUNGARIAN CAPITAL LETTER ENY +10C9B ; mapped ; 10CDB # 8.0 OLD HUNGARIAN CAPITAL LETTER O +10C9C ; mapped ; 10CDC # 8.0 OLD HUNGARIAN CAPITAL LETTER OO +10C9D ; mapped ; 10CDD # 8.0 OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG OE +10C9E ; mapped ; 10CDE # 8.0 OLD HUNGARIAN CAPITAL LETTER RUDIMENTA OE +10C9F ; mapped ; 10CDF # 8.0 OLD HUNGARIAN CAPITAL LETTER OEE +10CA0 ; mapped ; 10CE0 # 8.0 OLD HUNGARIAN CAPITAL LETTER EP +10CA1 ; mapped ; 10CE1 # 8.0 OLD HUNGARIAN CAPITAL LETTER EMP +10CA2 ; mapped ; 10CE2 # 8.0 OLD HUNGARIAN CAPITAL LETTER ER +10CA3 ; mapped ; 10CE3 # 8.0 OLD HUNGARIAN CAPITAL LETTER SHORT ER +10CA4 ; mapped ; 10CE4 # 8.0 OLD HUNGARIAN CAPITAL LETTER ES +10CA5 ; mapped ; 10CE5 # 8.0 OLD HUNGARIAN CAPITAL LETTER ESZ +10CA6 ; mapped ; 10CE6 # 8.0 OLD HUNGARIAN CAPITAL LETTER ET +10CA7 ; mapped ; 10CE7 # 8.0 OLD HUNGARIAN CAPITAL LETTER ENT +10CA8 ; mapped ; 10CE8 # 8.0 OLD HUNGARIAN CAPITAL LETTER ETY +10CA9 ; mapped ; 10CE9 # 8.0 OLD HUNGARIAN CAPITAL LETTER ECH +10CAA ; mapped ; 10CEA # 8.0 OLD HUNGARIAN CAPITAL LETTER U +10CAB ; mapped ; 10CEB # 8.0 OLD HUNGARIAN CAPITAL LETTER UU +10CAC ; mapped ; 10CEC # 8.0 OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG UE +10CAD ; mapped ; 10CED # 8.0 OLD HUNGARIAN CAPITAL LETTER RUDIMENTA UE +10CAE ; mapped ; 10CEE # 8.0 OLD HUNGARIAN CAPITAL LETTER EV +10CAF ; mapped ; 10CEF # 8.0 OLD HUNGARIAN CAPITAL LETTER EZ +10CB0 ; mapped ; 10CF0 # 8.0 OLD HUNGARIAN CAPITAL LETTER EZS +10CB1 ; mapped ; 10CF1 # 8.0 OLD HUNGARIAN CAPITAL LETTER ENT-SHAPED SIGN +10CB2 ; mapped ; 10CF2 # 8.0 OLD HUNGARIAN CAPITAL LETTER US +10CB3..10CBF ; disallowed # NA <reserved-10CB3>..<reserved-10CBF> +10CC0..10CF2 ; valid # 8.0 OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US +10CF3..10CF9 ; disallowed # NA <reserved-10CF3>..<reserved-10CF9> +10CFA..10CFF ; valid ; ; NV8 # 8.0 OLD HUNGARIAN NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND +10D00..10D27 ; valid # 11.0 HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA SIGN TASSI +10D28..10D2F ; disallowed # NA <reserved-10D28>..<reserved-10D2F> +10D30..10D39 ; valid # 11.0 HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE +10D3A..10E5F ; disallowed # NA <reserved-10D3A>..<reserved-10E5F> +10E60..10E7E ; valid ; ; NV8 # 5.2 RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS +10E7F ; disallowed # NA <reserved-10E7F> +10E80..10EA9 ; valid # 13.0 YEZIDI LETTER ELIF..YEZIDI LETTER ET +10EAA ; disallowed # NA <reserved-10EAA> +10EAB..10EAC ; valid # 13.0 YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK +10EAD ; valid ; ; NV8 # 13.0 YEZIDI HYPHENATION MARK +10EAE..10EAF ; disallowed # NA <reserved-10EAE>..<reserved-10EAF> +10EB0..10EB1 ; valid # 13.0 YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE +10EB2..10EFC ; disallowed # NA <reserved-10EB2>..<reserved-10EFC> +10EFD..10EFF ; valid # 15.0 ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA +10F00..10F1C ; valid # 11.0 OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL +10F1D..10F26 ; valid ; ; NV8 # 11.0 OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF +10F27 ; valid # 11.0 OLD SOGDIAN LIGATURE AYIN-DALETH +10F28..10F2F ; disallowed # NA <reserved-10F28>..<reserved-10F2F> +10F30..10F50 ; valid # 11.0 SOGDIAN LETTER ALEPH..SOGDIAN COMBINING STROKE BELOW +10F51..10F59 ; valid ; ; NV8 # 11.0 SOGDIAN NUMBER ONE..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT +10F5A..10F6F ; disallowed # NA <reserved-10F5A>..<reserved-10F6F> +10F70..10F85 ; valid # 14.0 OLD UYGHUR LETTER ALEPH..OLD UYGHUR COMBINING TWO DOTS BELOW +10F86..10F89 ; valid ; ; NV8 # 14.0 OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS +10F8A..10FAF ; disallowed # NA <reserved-10F8A>..<reserved-10FAF> +10FB0..10FC4 ; valid # 13.0 CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW +10FC5..10FCB ; valid ; ; NV8 # 13.0 CHORASMIAN NUMBER ONE..CHORASMIAN NUMBER ONE HUNDRED +10FCC..10FDF ; disallowed # NA <reserved-10FCC>..<reserved-10FDF> +10FE0..10FF6 ; valid # 12.0 ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH +10FF7..10FFF ; disallowed # NA <reserved-10FF7>..<reserved-10FFF> +11000..11046 ; valid # 6.0 BRAHMI SIGN CANDRABINDU..BRAHMI VIRAMA +11047..1104D ; valid ; ; NV8 # 6.0 BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS +1104E..11051 ; disallowed # NA <reserved-1104E>..<reserved-11051> +11052..11065 ; valid ; ; NV8 # 6.0 BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND +11066..1106F ; valid # 6.0 BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE +11070..11075 ; valid # 14.0 BRAHMI SIGN OLD TAMIL VIRAMA..BRAHMI LETTER OLD TAMIL LLA +11076..1107E ; disallowed # NA <reserved-11076>..<reserved-1107E> +1107F ; valid # 7.0 BRAHMI NUMBER JOINER +11080..110BA ; valid # 5.2 KAITHI SIGN CANDRABINDU..KAITHI SIGN NUKTA +110BB..110BC ; valid ; ; NV8 # 5.2 KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN +110BD ; disallowed # 5.2 KAITHI NUMBER SIGN +110BE..110C1 ; valid ; ; NV8 # 5.2 KAITHI SECTION MARK..KAITHI DOUBLE DANDA +110C2 ; valid # 14.0 KAITHI VOWEL SIGN VOCALIC R +110C3..110CC ; disallowed # NA <reserved-110C3>..<reserved-110CC> +110CD ; disallowed # 11.0 KAITHI NUMBER SIGN ABOVE +110CE..110CF ; disallowed # NA <reserved-110CE>..<reserved-110CF> +110D0..110E8 ; valid # 6.1 SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE +110E9..110EF ; disallowed # NA <reserved-110E9>..<reserved-110EF> +110F0..110F9 ; valid # 6.1 SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE +110FA..110FF ; disallowed # NA <reserved-110FA>..<reserved-110FF> +11100..11134 ; valid # 6.1 CHAKMA SIGN CANDRABINDU..CHAKMA MAAYYAA +11135 ; disallowed # NA <reserved-11135> +11136..1113F ; valid # 6.1 CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE +11140..11143 ; valid ; ; NV8 # 6.1 CHAKMA SECTION MARK..CHAKMA QUESTION MARK +11144..11146 ; valid # 11.0 CHAKMA LETTER LHAA..CHAKMA VOWEL SIGN EI +11147 ; valid # 13.0 CHAKMA LETTER VAA +11148..1114F ; disallowed # NA <reserved-11148>..<reserved-1114F> +11150..11173 ; valid # 7.0 MAHAJANI LETTER A..MAHAJANI SIGN NUKTA +11174..11175 ; valid ; ; NV8 # 7.0 MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK +11176 ; valid # 7.0 MAHAJANI LIGATURE SHRI +11177..1117F ; disallowed # NA <reserved-11177>..<reserved-1117F> +11180..111C4 ; valid # 6.1 SHARADA SIGN CANDRABINDU..SHARADA OM +111C5..111C8 ; valid ; ; NV8 # 6.1 SHARADA DANDA..SHARADA SEPARATOR +111C9..111CC ; valid # 8.0 SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK +111CD ; valid ; ; NV8 # 7.0 SHARADA SUTRA MARK +111CE..111CF ; valid # 13.0 SHARADA VOWEL SIGN PRISHTHAMATRA E..SHARADA SIGN INVERTED CANDRABINDU +111D0..111D9 ; valid # 6.1 SHARADA DIGIT ZERO..SHARADA DIGIT NINE +111DA ; valid # 7.0 SHARADA EKAM +111DB ; valid ; ; NV8 # 8.0 SHARADA SIGN SIDDHAM +111DC ; valid # 8.0 SHARADA HEADSTROKE +111DD..111DF ; valid ; ; NV8 # 8.0 SHARADA CONTINUATION SIGN..SHARADA SECTION MARK-2 +111E0 ; disallowed # NA <reserved-111E0> +111E1..111F4 ; valid ; ; NV8 # 7.0 SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND +111F5..111FF ; disallowed # NA <reserved-111F5>..<reserved-111FF> +11200..11211 ; valid # 7.0 KHOJKI LETTER A..KHOJKI LETTER JJA +11212 ; disallowed # NA <reserved-11212> +11213..11237 ; valid # 7.0 KHOJKI LETTER NYA..KHOJKI SIGN SHADDA +11238..1123D ; valid ; ; NV8 # 7.0 KHOJKI DANDA..KHOJKI ABBREVIATION SIGN +1123E ; valid # 9.0 KHOJKI SIGN SUKUN +1123F..11241 ; valid # 15.0 KHOJKI LETTER QA..KHOJKI VOWEL SIGN VOCALIC R +11242..1127F ; disallowed # NA <reserved-11242>..<reserved-1127F> +11280..11286 ; valid # 8.0 MULTANI LETTER A..MULTANI LETTER GA +11287 ; disallowed # NA <reserved-11287> +11288 ; valid # 8.0 MULTANI LETTER GHA +11289 ; disallowed # NA <reserved-11289> +1128A..1128D ; valid # 8.0 MULTANI LETTER CA..MULTANI LETTER JJA +1128E ; disallowed # NA <reserved-1128E> +1128F..1129D ; valid # 8.0 MULTANI LETTER NYA..MULTANI LETTER BA +1129E ; disallowed # NA <reserved-1129E> +1129F..112A8 ; valid # 8.0 MULTANI LETTER BHA..MULTANI LETTER RHA +112A9 ; valid ; ; NV8 # 8.0 MULTANI SECTION MARK +112AA..112AF ; disallowed # NA <reserved-112AA>..<reserved-112AF> +112B0..112EA ; valid # 7.0 KHUDAWADI LETTER A..KHUDAWADI SIGN VIRAMA +112EB..112EF ; disallowed # NA <reserved-112EB>..<reserved-112EF> +112F0..112F9 ; valid # 7.0 KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE +112FA..112FF ; disallowed # NA <reserved-112FA>..<reserved-112FF> +11300 ; valid # 8.0 GRANTHA SIGN COMBINING ANUSVARA ABOVE +11301..11303 ; valid # 7.0 GRANTHA SIGN CANDRABINDU..GRANTHA SIGN VISARGA +11304 ; disallowed # NA <reserved-11304> +11305..1130C ; valid # 7.0 GRANTHA LETTER A..GRANTHA LETTER VOCALIC L +1130D..1130E ; disallowed # NA <reserved-1130D>..<reserved-1130E> +1130F..11310 ; valid # 7.0 GRANTHA LETTER EE..GRANTHA LETTER AI +11311..11312 ; disallowed # NA <reserved-11311>..<reserved-11312> +11313..11328 ; valid # 7.0 GRANTHA LETTER OO..GRANTHA LETTER NA +11329 ; disallowed # NA <reserved-11329> +1132A..11330 ; valid # 7.0 GRANTHA LETTER PA..GRANTHA LETTER RA +11331 ; disallowed # NA <reserved-11331> +11332..11333 ; valid # 7.0 GRANTHA LETTER LA..GRANTHA LETTER LLA +11334 ; disallowed # NA <reserved-11334> +11335..11339 ; valid # 7.0 GRANTHA LETTER VA..GRANTHA LETTER HA +1133A ; disallowed # NA <reserved-1133A> +1133B ; valid # 11.0 COMBINING BINDU BELOW +1133C..11344 ; valid # 7.0 GRANTHA SIGN NUKTA..GRANTHA VOWEL SIGN VOCALIC RR +11345..11346 ; disallowed # NA <reserved-11345>..<reserved-11346> +11347..11348 ; valid # 7.0 GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI +11349..1134A ; disallowed # NA <reserved-11349>..<reserved-1134A> +1134B..1134D ; valid # 7.0 GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA +1134E..1134F ; disallowed # NA <reserved-1134E>..<reserved-1134F> +11350 ; valid # 8.0 GRANTHA OM +11351..11356 ; disallowed # NA <reserved-11351>..<reserved-11356> +11357 ; valid # 7.0 GRANTHA AU LENGTH MARK +11358..1135C ; disallowed # NA <reserved-11358>..<reserved-1135C> +1135D..11363 ; valid # 7.0 GRANTHA SIGN PLUTA..GRANTHA VOWEL SIGN VOCALIC LL +11364..11365 ; disallowed # NA <reserved-11364>..<reserved-11365> +11366..1136C ; valid # 7.0 COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX +1136D..1136F ; disallowed # NA <reserved-1136D>..<reserved-1136F> +11370..11374 ; valid # 7.0 COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA +11375..113FF ; disallowed # NA <reserved-11375>..<reserved-113FF> +11400..1144A ; valid # 9.0 NEWA LETTER A..NEWA SIDDHI +1144B..1144F ; valid ; ; NV8 # 9.0 NEWA DANDA..NEWA ABBREVIATION SIGN +11450..11459 ; valid # 9.0 NEWA DIGIT ZERO..NEWA DIGIT NINE +1145A ; valid ; ; NV8 # 13.0 NEWA DOUBLE COMMA +1145B ; valid ; ; NV8 # 9.0 NEWA PLACEHOLDER MARK +1145C ; disallowed # NA <reserved-1145C> +1145D ; valid ; ; NV8 # 9.0 NEWA INSERTION SIGN +1145E ; valid # 11.0 NEWA SANDHI MARK +1145F ; valid # 12.0 NEWA LETTER VEDIC ANUSVARA +11460..11461 ; valid # 13.0 NEWA SIGN JIHVAMULIYA..NEWA SIGN UPADHMANIYA +11462..1147F ; disallowed # NA <reserved-11462>..<reserved-1147F> +11480..114C5 ; valid # 7.0 TIRHUTA ANJI..TIRHUTA GVANG +114C6 ; valid ; ; NV8 # 7.0 TIRHUTA ABBREVIATION SIGN +114C7 ; valid # 7.0 TIRHUTA OM +114C8..114CF ; disallowed # NA <reserved-114C8>..<reserved-114CF> +114D0..114D9 ; valid # 7.0 TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE +114DA..1157F ; disallowed # NA <reserved-114DA>..<reserved-1157F> +11580..115B5 ; valid # 7.0 SIDDHAM LETTER A..SIDDHAM VOWEL SIGN VOCALIC RR +115B6..115B7 ; disallowed # NA <reserved-115B6>..<reserved-115B7> +115B8..115C0 ; valid # 7.0 SIDDHAM VOWEL SIGN E..SIDDHAM SIGN NUKTA +115C1..115C9 ; valid ; ; NV8 # 7.0 SIDDHAM SIGN SIDDHAM..SIDDHAM END OF TEXT MARK +115CA..115D7 ; valid ; ; NV8 # 8.0 SIDDHAM SECTION MARK WITH TRIDENT AND U-SHAPED ORNAMENTS..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES +115D8..115DD ; valid # 8.0 SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM VOWEL SIGN ALTERNATE UU +115DE..115FF ; disallowed # NA <reserved-115DE>..<reserved-115FF> +11600..11640 ; valid # 7.0 MODI LETTER A..MODI SIGN ARDHACANDRA +11641..11643 ; valid ; ; NV8 # 7.0 MODI DANDA..MODI ABBREVIATION SIGN +11644 ; valid # 7.0 MODI SIGN HUVA +11645..1164F ; disallowed # NA <reserved-11645>..<reserved-1164F> +11650..11659 ; valid # 7.0 MODI DIGIT ZERO..MODI DIGIT NINE +1165A..1165F ; disallowed # NA <reserved-1165A>..<reserved-1165F> +11660..1166C ; valid ; ; NV8 # 9.0 MONGOLIAN BIRGA WITH ORNAMENT..MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT +1166D..1167F ; disallowed # NA <reserved-1166D>..<reserved-1167F> +11680..116B7 ; valid # 6.1 TAKRI LETTER A..TAKRI SIGN NUKTA +116B8 ; valid # 12.0 TAKRI LETTER ARCHAIC KHA +116B9 ; valid ; ; NV8 # 14.0 TAKRI ABBREVIATION SIGN +116BA..116BF ; disallowed # NA <reserved-116BA>..<reserved-116BF> +116C0..116C9 ; valid # 6.1 TAKRI DIGIT ZERO..TAKRI DIGIT NINE +116CA..116FF ; disallowed # NA <reserved-116CA>..<reserved-116FF> +11700..11719 ; valid # 8.0 AHOM LETTER KA..AHOM LETTER JHA +1171A ; valid # 11.0 AHOM LETTER ALTERNATE BA +1171B..1171C ; disallowed # NA <reserved-1171B>..<reserved-1171C> +1171D..1172B ; valid # 8.0 AHOM CONSONANT SIGN MEDIAL LA..AHOM SIGN KILLER +1172C..1172F ; disallowed # NA <reserved-1172C>..<reserved-1172F> +11730..11739 ; valid # 8.0 AHOM DIGIT ZERO..AHOM DIGIT NINE +1173A..1173F ; valid ; ; NV8 # 8.0 AHOM NUMBER TEN..AHOM SYMBOL VI +11740..11746 ; valid # 14.0 AHOM LETTER CA..AHOM LETTER LLA +11747..117FF ; disallowed # NA <reserved-11747>..<reserved-117FF> +11800..1183A ; valid # 11.0 DOGRA LETTER A..DOGRA SIGN NUKTA +1183B ; valid ; ; NV8 # 11.0 DOGRA ABBREVIATION SIGN +1183C..1189F ; disallowed # NA <reserved-1183C>..<reserved-1189F> +118A0 ; mapped ; 118C0 # 7.0 WARANG CITI CAPITAL LETTER NGAA +118A1 ; mapped ; 118C1 # 7.0 WARANG CITI CAPITAL LETTER A +118A2 ; mapped ; 118C2 # 7.0 WARANG CITI CAPITAL LETTER WI +118A3 ; mapped ; 118C3 # 7.0 WARANG CITI CAPITAL LETTER YU +118A4 ; mapped ; 118C4 # 7.0 WARANG CITI CAPITAL LETTER YA +118A5 ; mapped ; 118C5 # 7.0 WARANG CITI CAPITAL LETTER YO +118A6 ; mapped ; 118C6 # 7.0 WARANG CITI CAPITAL LETTER II +118A7 ; mapped ; 118C7 # 7.0 WARANG CITI CAPITAL LETTER UU +118A8 ; mapped ; 118C8 # 7.0 WARANG CITI CAPITAL LETTER E +118A9 ; mapped ; 118C9 # 7.0 WARANG CITI CAPITAL LETTER O +118AA ; mapped ; 118CA # 7.0 WARANG CITI CAPITAL LETTER ANG +118AB ; mapped ; 118CB # 7.0 WARANG CITI CAPITAL LETTER GA +118AC ; mapped ; 118CC # 7.0 WARANG CITI CAPITAL LETTER KO +118AD ; mapped ; 118CD # 7.0 WARANG CITI CAPITAL LETTER ENY +118AE ; mapped ; 118CE # 7.0 WARANG CITI CAPITAL LETTER YUJ +118AF ; mapped ; 118CF # 7.0 WARANG CITI CAPITAL LETTER UC +118B0 ; mapped ; 118D0 # 7.0 WARANG CITI CAPITAL LETTER ENN +118B1 ; mapped ; 118D1 # 7.0 WARANG CITI CAPITAL LETTER ODD +118B2 ; mapped ; 118D2 # 7.0 WARANG CITI CAPITAL LETTER TTE +118B3 ; mapped ; 118D3 # 7.0 WARANG CITI CAPITAL LETTER NUNG +118B4 ; mapped ; 118D4 # 7.0 WARANG CITI CAPITAL LETTER DA +118B5 ; mapped ; 118D5 # 7.0 WARANG CITI CAPITAL LETTER AT +118B6 ; mapped ; 118D6 # 7.0 WARANG CITI CAPITAL LETTER AM +118B7 ; mapped ; 118D7 # 7.0 WARANG CITI CAPITAL LETTER BU +118B8 ; mapped ; 118D8 # 7.0 WARANG CITI CAPITAL LETTER PU +118B9 ; mapped ; 118D9 # 7.0 WARANG CITI CAPITAL LETTER HIYO +118BA ; mapped ; 118DA # 7.0 WARANG CITI CAPITAL LETTER HOLO +118BB ; mapped ; 118DB # 7.0 WARANG CITI CAPITAL LETTER HORR +118BC ; mapped ; 118DC # 7.0 WARANG CITI CAPITAL LETTER HAR +118BD ; mapped ; 118DD # 7.0 WARANG CITI CAPITAL LETTER SSUU +118BE ; mapped ; 118DE # 7.0 WARANG CITI CAPITAL LETTER SII +118BF ; mapped ; 118DF # 7.0 WARANG CITI CAPITAL LETTER VIYO +118C0..118E9 ; valid # 7.0 WARANG CITI SMALL LETTER NGAA..WARANG CITI DIGIT NINE +118EA..118F2 ; valid ; ; NV8 # 7.0 WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY +118F3..118FE ; disallowed # NA <reserved-118F3>..<reserved-118FE> +118FF ; valid # 7.0 WARANG CITI OM +11900..11906 ; valid # 13.0 DIVES AKURU LETTER A..DIVES AKURU LETTER E +11907..11908 ; disallowed # NA <reserved-11907>..<reserved-11908> +11909 ; valid # 13.0 DIVES AKURU LETTER O +1190A..1190B ; disallowed # NA <reserved-1190A>..<reserved-1190B> +1190C..11913 ; valid # 13.0 DIVES AKURU LETTER KA..DIVES AKURU LETTER JA +11914 ; disallowed # NA <reserved-11914> +11915..11916 ; valid # 13.0 DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA +11917 ; disallowed # NA <reserved-11917> +11918..11935 ; valid # 13.0 DIVES AKURU LETTER DDA..DIVES AKURU VOWEL SIGN E +11936 ; disallowed # NA <reserved-11936> +11937..11938 ; valid # 13.0 DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O +11939..1193A ; disallowed # NA <reserved-11939>..<reserved-1193A> +1193B..11943 ; valid # 13.0 DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN NUKTA +11944..11946 ; valid ; ; NV8 # 13.0 DIVES AKURU DOUBLE DANDA..DIVES AKURU END OF TEXT MARK +11947..1194F ; disallowed # NA <reserved-11947>..<reserved-1194F> +11950..11959 ; valid # 13.0 DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE +1195A..1199F ; disallowed # NA <reserved-1195A>..<reserved-1199F> +119A0..119A7 ; valid # 12.0 NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR +119A8..119A9 ; disallowed # NA <reserved-119A8>..<reserved-119A9> +119AA..119D7 ; valid # 12.0 NANDINAGARI LETTER E..NANDINAGARI VOWEL SIGN VOCALIC RR +119D8..119D9 ; disallowed # NA <reserved-119D8>..<reserved-119D9> +119DA..119E1 ; valid # 12.0 NANDINAGARI VOWEL SIGN E..NANDINAGARI SIGN AVAGRAHA +119E2 ; valid ; ; NV8 # 12.0 NANDINAGARI SIGN SIDDHAM +119E3..119E4 ; valid # 12.0 NANDINAGARI HEADSTROKE..NANDINAGARI VOWEL SIGN PRISHTHAMATRA E +119E5..119FF ; disallowed # NA <reserved-119E5>..<reserved-119FF> +11A00..11A3E ; valid # 10.0 ZANABAZAR SQUARE LETTER A..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA +11A3F..11A46 ; valid ; ; NV8 # 10.0 ZANABAZAR SQUARE INITIAL HEAD MARK..ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK +11A47 ; valid # 10.0 ZANABAZAR SQUARE SUBJOINER +11A48..11A4F ; disallowed # NA <reserved-11A48>..<reserved-11A4F> +11A50..11A83 ; valid # 10.0 SOYOMBO LETTER A..SOYOMBO LETTER KSSA +11A84..11A85 ; valid # 12.0 SOYOMBO SIGN JIHVAMULIYA..SOYOMBO SIGN UPADHMANIYA +11A86..11A99 ; valid # 10.0 SOYOMBO CLUSTER-INITIAL LETTER RA..SOYOMBO SUBJOINER +11A9A..11A9C ; valid ; ; NV8 # 10.0 SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD +11A9D ; valid # 11.0 SOYOMBO MARK PLUTA +11A9E..11AA2 ; valid ; ; NV8 # 10.0 SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2 +11AA3..11AAF ; disallowed # NA <reserved-11AA3>..<reserved-11AAF> +11AB0..11ABF ; valid # 14.0 CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA +11AC0..11AF8 ; valid # 7.0 PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL +11AF9..11AFF ; disallowed # NA <reserved-11AF9>..<reserved-11AFF> +11B00..11B09 ; valid ; ; NV8 # 15.0 DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU +11B0A..11BFF ; disallowed # NA <reserved-11B0A>..<reserved-11BFF> +11C00..11C08 ; valid # 9.0 BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L +11C09 ; disallowed # NA <reserved-11C09> +11C0A..11C36 ; valid # 9.0 BHAIKSUKI LETTER E..BHAIKSUKI VOWEL SIGN VOCALIC L +11C37 ; disallowed # NA <reserved-11C37> +11C38..11C40 ; valid # 9.0 BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN AVAGRAHA +11C41..11C45 ; valid ; ; NV8 # 9.0 BHAIKSUKI DANDA..BHAIKSUKI GAP FILLER-2 +11C46..11C4F ; disallowed # NA <reserved-11C46>..<reserved-11C4F> +11C50..11C59 ; valid # 9.0 BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE +11C5A..11C6C ; valid ; ; NV8 # 9.0 BHAIKSUKI NUMBER ONE..BHAIKSUKI HUNDREDS UNIT MARK +11C6D..11C6F ; disallowed # NA <reserved-11C6D>..<reserved-11C6F> +11C70..11C71 ; valid ; ; NV8 # 9.0 MARCHEN HEAD MARK..MARCHEN MARK SHAD +11C72..11C8F ; valid # 9.0 MARCHEN LETTER KA..MARCHEN LETTER A +11C90..11C91 ; disallowed # NA <reserved-11C90>..<reserved-11C91> +11C92..11CA7 ; valid # 9.0 MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA +11CA8 ; disallowed # NA <reserved-11CA8> +11CA9..11CB6 ; valid # 9.0 MARCHEN SUBJOINED LETTER YA..MARCHEN SIGN CANDRABINDU +11CB7..11CFF ; disallowed # NA <reserved-11CB7>..<reserved-11CFF> +11D00..11D06 ; valid # 10.0 MASARAM GONDI LETTER A..MASARAM GONDI LETTER E +11D07 ; disallowed # NA <reserved-11D07> +11D08..11D09 ; valid # 10.0 MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O +11D0A ; disallowed # NA <reserved-11D0A> +11D0B..11D36 ; valid # 10.0 MASARAM GONDI LETTER AU..MASARAM GONDI VOWEL SIGN VOCALIC R +11D37..11D39 ; disallowed # NA <reserved-11D37>..<reserved-11D39> +11D3A ; valid # 10.0 MASARAM GONDI VOWEL SIGN E +11D3B ; disallowed # NA <reserved-11D3B> +11D3C..11D3D ; valid # 10.0 MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O +11D3E ; disallowed # NA <reserved-11D3E> +11D3F..11D47 ; valid # 10.0 MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI RA-KARA +11D48..11D4F ; disallowed # NA <reserved-11D48>..<reserved-11D4F> +11D50..11D59 ; valid # 10.0 MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE +11D5A..11D5F ; disallowed # NA <reserved-11D5A>..<reserved-11D5F> +11D60..11D65 ; valid # 11.0 GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU +11D66 ; disallowed # NA <reserved-11D66> +11D67..11D68 ; valid # 11.0 GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI +11D69 ; disallowed # NA <reserved-11D69> +11D6A..11D8E ; valid # 11.0 GUNJALA GONDI LETTER OO..GUNJALA GONDI VOWEL SIGN UU +11D8F ; disallowed # NA <reserved-11D8F> +11D90..11D91 ; valid # 11.0 GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI +11D92 ; disallowed # NA <reserved-11D92> +11D93..11D98 ; valid # 11.0 GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI OM +11D99..11D9F ; disallowed # NA <reserved-11D99>..<reserved-11D9F> +11DA0..11DA9 ; valid # 11.0 GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE +11DAA..11EDF ; disallowed # NA <reserved-11DAA>..<reserved-11EDF> +11EE0..11EF6 ; valid # 11.0 MAKASAR LETTER KA..MAKASAR VOWEL SIGN O +11EF7..11EF8 ; valid ; ; NV8 # 11.0 MAKASAR PASSIMBANG..MAKASAR END OF SECTION +11EF9..11EFF ; disallowed # NA <reserved-11EF9>..<reserved-11EFF> +11F00..11F10 ; valid # 15.0 KAWI SIGN CANDRABINDU..KAWI LETTER O +11F11 ; disallowed # NA <reserved-11F11> +11F12..11F3A ; valid # 15.0 KAWI LETTER KA..KAWI VOWEL SIGN VOCALIC R +11F3B..11F3D ; disallowed # NA <reserved-11F3B>..<reserved-11F3D> +11F3E..11F42 ; valid # 15.0 KAWI VOWEL SIGN E..KAWI CONJOINER +11F43..11F4F ; valid ; ; NV8 # 15.0 KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL +11F50..11F59 ; valid # 15.0 KAWI DIGIT ZERO..KAWI DIGIT NINE +11F5A..11FAF ; disallowed # NA <reserved-11F5A>..<reserved-11FAF> +11FB0 ; valid # 13.0 LISU LETTER YHA +11FB1..11FBF ; disallowed # NA <reserved-11FB1>..<reserved-11FBF> +11FC0..11FF1 ; valid ; ; NV8 # 12.0 TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL SIGN VAKAIYARAA +11FF2..11FFE ; disallowed # NA <reserved-11FF2>..<reserved-11FFE> +11FFF ; valid ; ; NV8 # 12.0 TAMIL PUNCTUATION END OF TEXT +12000..1236E ; valid # 5.0 CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM +1236F..12398 ; valid # 7.0 CUNEIFORM SIGN KAP ELAMITE..CUNEIFORM SIGN UM TIMES ME +12399 ; valid # 8.0 CUNEIFORM SIGN U U +1239A..123FF ; disallowed # NA <reserved-1239A>..<reserved-123FF> +12400..12462 ; valid ; ; NV8 # 5.0 CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER +12463..1246E ; valid ; ; NV8 # 7.0 CUNEIFORM NUMERIC SIGN ONE QUARTER GUR..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM +1246F ; disallowed # NA <reserved-1246F> +12470..12473 ; valid ; ; NV8 # 5.0 CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON +12474 ; valid ; ; NV8 # 7.0 CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON +12475..1247F ; disallowed # NA <reserved-12475>..<reserved-1247F> +12480..12543 ; valid # 8.0 CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU +12544..12F8F ; disallowed # NA <reserved-12544>..<reserved-12F8F> +12F90..12FF0 ; valid # 14.0 CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114 +12FF1..12FF2 ; valid ; ; NV8 # 14.0 CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302 +12FF3..12FFF ; disallowed # NA <reserved-12FF3>..<reserved-12FFF> +13000..1342E ; valid # 5.2 EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032 +1342F ; valid # 15.0 EGYPTIAN HIEROGLYPH V011D +13430..13438 ; disallowed # 12.0 EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT +13439..1343F ; disallowed # 15.0 EGYPTIAN HIEROGLYPH INSERT AT MIDDLE..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE +13440..13455 ; valid # 15.0 EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED +13456..143FF ; disallowed # NA <reserved-13456>..<reserved-143FF> +14400..14646 ; valid # 8.0 ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530 +14647..167FF ; disallowed # NA <reserved-14647>..<reserved-167FF> +16800..16A38 ; valid # 6.0 BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ +16A39..16A3F ; disallowed # NA <reserved-16A39>..<reserved-16A3F> +16A40..16A5E ; valid # 7.0 MRO LETTER TA..MRO LETTER TEK +16A5F ; disallowed # NA <reserved-16A5F> +16A60..16A69 ; valid # 7.0 MRO DIGIT ZERO..MRO DIGIT NINE +16A6A..16A6D ; disallowed # NA <reserved-16A6A>..<reserved-16A6D> +16A6E..16A6F ; valid ; ; NV8 # 7.0 MRO DANDA..MRO DOUBLE DANDA +16A70..16ABE ; valid # 14.0 TANGSA LETTER OZ..TANGSA LETTER ZA +16ABF ; disallowed # NA <reserved-16ABF> +16AC0..16AC9 ; valid # 14.0 TANGSA DIGIT ZERO..TANGSA DIGIT NINE +16ACA..16ACF ; disallowed # NA <reserved-16ACA>..<reserved-16ACF> +16AD0..16AED ; valid # 7.0 BASSA VAH LETTER ENNI..BASSA VAH LETTER I +16AEE..16AEF ; disallowed # NA <reserved-16AEE>..<reserved-16AEF> +16AF0..16AF4 ; valid # 7.0 BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE +16AF5 ; valid ; ; NV8 # 7.0 BASSA VAH FULL STOP +16AF6..16AFF ; disallowed # NA <reserved-16AF6>..<reserved-16AFF> +16B00..16B36 ; valid # 7.0 PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG MARK CIM TAUM +16B37..16B3F ; valid ; ; NV8 # 7.0 PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN XYEEM FAIB +16B40..16B43 ; valid # 7.0 PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM +16B44..16B45 ; valid ; ; NV8 # 7.0 PAHAWH HMONG SIGN XAUS..PAHAWH HMONG SIGN CIM TSOV ROG +16B46..16B4F ; disallowed # NA <reserved-16B46>..<reserved-16B4F> +16B50..16B59 ; valid # 7.0 PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE +16B5A ; disallowed # NA <reserved-16B5A> +16B5B..16B61 ; valid ; ; NV8 # 7.0 PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS +16B62 ; disallowed # NA <reserved-16B62> +16B63..16B77 ; valid # 7.0 PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS +16B78..16B7C ; disallowed # NA <reserved-16B78>..<reserved-16B7C> +16B7D..16B8F ; valid # 7.0 PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ +16B90..16E3F ; disallowed # NA <reserved-16B90>..<reserved-16E3F> +16E40 ; mapped ; 16E60 # 11.0 MEDEFAIDRIN CAPITAL LETTER M +16E41 ; mapped ; 16E61 # 11.0 MEDEFAIDRIN CAPITAL LETTER S +16E42 ; mapped ; 16E62 # 11.0 MEDEFAIDRIN CAPITAL LETTER V +16E43 ; mapped ; 16E63 # 11.0 MEDEFAIDRIN CAPITAL LETTER W +16E44 ; mapped ; 16E64 # 11.0 MEDEFAIDRIN CAPITAL LETTER ATIU +16E45 ; mapped ; 16E65 # 11.0 MEDEFAIDRIN CAPITAL LETTER Z +16E46 ; mapped ; 16E66 # 11.0 MEDEFAIDRIN CAPITAL LETTER KP +16E47 ; mapped ; 16E67 # 11.0 MEDEFAIDRIN CAPITAL LETTER P +16E48 ; mapped ; 16E68 # 11.0 MEDEFAIDRIN CAPITAL LETTER T +16E49 ; mapped ; 16E69 # 11.0 MEDEFAIDRIN CAPITAL LETTER G +16E4A ; mapped ; 16E6A # 11.0 MEDEFAIDRIN CAPITAL LETTER F +16E4B ; mapped ; 16E6B # 11.0 MEDEFAIDRIN CAPITAL LETTER I +16E4C ; mapped ; 16E6C # 11.0 MEDEFAIDRIN CAPITAL LETTER K +16E4D ; mapped ; 16E6D # 11.0 MEDEFAIDRIN CAPITAL LETTER A +16E4E ; mapped ; 16E6E # 11.0 MEDEFAIDRIN CAPITAL LETTER J +16E4F ; mapped ; 16E6F # 11.0 MEDEFAIDRIN CAPITAL LETTER E +16E50 ; mapped ; 16E70 # 11.0 MEDEFAIDRIN CAPITAL LETTER B +16E51 ; mapped ; 16E71 # 11.0 MEDEFAIDRIN CAPITAL LETTER C +16E52 ; mapped ; 16E72 # 11.0 MEDEFAIDRIN CAPITAL LETTER U +16E53 ; mapped ; 16E73 # 11.0 MEDEFAIDRIN CAPITAL LETTER YU +16E54 ; mapped ; 16E74 # 11.0 MEDEFAIDRIN CAPITAL LETTER L +16E55 ; mapped ; 16E75 # 11.0 MEDEFAIDRIN CAPITAL LETTER Q +16E56 ; mapped ; 16E76 # 11.0 MEDEFAIDRIN CAPITAL LETTER HP +16E57 ; mapped ; 16E77 # 11.0 MEDEFAIDRIN CAPITAL LETTER NY +16E58 ; mapped ; 16E78 # 11.0 MEDEFAIDRIN CAPITAL LETTER X +16E59 ; mapped ; 16E79 # 11.0 MEDEFAIDRIN CAPITAL LETTER D +16E5A ; mapped ; 16E7A # 11.0 MEDEFAIDRIN CAPITAL LETTER OE +16E5B ; mapped ; 16E7B # 11.0 MEDEFAIDRIN CAPITAL LETTER N +16E5C ; mapped ; 16E7C # 11.0 MEDEFAIDRIN CAPITAL LETTER R +16E5D ; mapped ; 16E7D # 11.0 MEDEFAIDRIN CAPITAL LETTER O +16E5E ; mapped ; 16E7E # 11.0 MEDEFAIDRIN CAPITAL LETTER AI +16E5F ; mapped ; 16E7F # 11.0 MEDEFAIDRIN CAPITAL LETTER Y +16E60..16E7F ; valid # 11.0 MEDEFAIDRIN SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y +16E80..16E9A ; valid ; ; NV8 # 11.0 MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN EXCLAMATION OH +16E9B..16EFF ; disallowed # NA <reserved-16E9B>..<reserved-16EFF> +16F00..16F44 ; valid # 6.1 MIAO LETTER PA..MIAO LETTER HHA +16F45..16F4A ; valid # 12.0 MIAO LETTER BRI..MIAO LETTER RTE +16F4B..16F4E ; disallowed # NA <reserved-16F4B>..<reserved-16F4E> +16F4F ; valid # 12.0 MIAO SIGN CONSONANT MODIFIER BAR +16F50..16F7E ; valid # 6.1 MIAO LETTER NASALIZATION..MIAO VOWEL SIGN NG +16F7F..16F87 ; valid # 12.0 MIAO VOWEL SIGN UOG..MIAO VOWEL SIGN UI +16F88..16F8E ; disallowed # NA <reserved-16F88>..<reserved-16F8E> +16F8F..16F9F ; valid # 6.1 MIAO TONE RIGHT..MIAO LETTER REFORMED TONE-8 +16FA0..16FDF ; disallowed # NA <reserved-16FA0>..<reserved-16FDF> +16FE0 ; valid # 9.0 TANGUT ITERATION MARK +16FE1 ; valid # 10.0 NUSHU ITERATION MARK +16FE2 ; valid ; ; NV8 # 12.0 OLD CHINESE HOOK MARK +16FE3 ; valid # 12.0 OLD CHINESE ITERATION MARK +16FE4 ; valid # 13.0 KHITAN SMALL SCRIPT FILLER +16FE5..16FEF ; disallowed # NA <reserved-16FE5>..<reserved-16FEF> +16FF0..16FF1 ; valid # 13.0 VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY +16FF2..16FFF ; disallowed # NA <reserved-16FF2>..<reserved-16FFF> +17000..187EC ; valid # 9.0 TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187EC +187ED..187F1 ; valid # 11.0 TANGUT IDEOGRAPH-187ED..TANGUT IDEOGRAPH-187F1 +187F2..187F7 ; valid # 12.0 TANGUT IDEOGRAPH-187F2..TANGUT IDEOGRAPH-187F7 +187F8..187FF ; disallowed # NA <reserved-187F8>..<reserved-187FF> +18800..18AF2 ; valid # 9.0 TANGUT COMPONENT-001..TANGUT COMPONENT-755 +18AF3..18CD5 ; valid # 13.0 TANGUT COMPONENT-756..KHITAN SMALL SCRIPT CHARACTER-18CD5 +18CD6..18CFF ; disallowed # NA <reserved-18CD6>..<reserved-18CFF> +18D00..18D08 ; valid # 13.0 TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08 +18D09..1AFEF ; disallowed # NA <reserved-18D09>..<reserved-1AFEF> +1AFF0..1AFF3 ; valid # 14.0 KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5 +1AFF4 ; disallowed # NA <reserved-1AFF4> +1AFF5..1AFFB ; valid # 14.0 KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5 +1AFFC ; disallowed # NA <reserved-1AFFC> +1AFFD..1AFFE ; valid # 14.0 KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8 +1AFFF ; disallowed # NA <reserved-1AFFF> +1B000..1B001 ; valid # 6.0 KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE +1B002..1B11E ; valid # 10.0 HENTAIGANA LETTER A-1..HENTAIGANA LETTER N-MU-MO-2 +1B11F..1B122 ; valid # 14.0 HIRAGANA LETTER ARCHAIC WU..KATAKANA LETTER ARCHAIC WU +1B123..1B131 ; disallowed # NA <reserved-1B123>..<reserved-1B131> +1B132 ; valid # 15.0 HIRAGANA LETTER SMALL KO +1B133..1B14F ; disallowed # NA <reserved-1B133>..<reserved-1B14F> +1B150..1B152 ; valid # 12.0 HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO +1B153..1B154 ; disallowed # NA <reserved-1B153>..<reserved-1B154> +1B155 ; valid # 15.0 KATAKANA LETTER SMALL KO +1B156..1B163 ; disallowed # NA <reserved-1B156>..<reserved-1B163> +1B164..1B167 ; valid # 12.0 KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N +1B168..1B16F ; disallowed # NA <reserved-1B168>..<reserved-1B16F> +1B170..1B2FB ; valid # 10.0 NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB +1B2FC..1BBFF ; disallowed # NA <reserved-1B2FC>..<reserved-1BBFF> +1BC00..1BC6A ; valid # 7.0 DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M +1BC6B..1BC6F ; disallowed # NA <reserved-1BC6B>..<reserved-1BC6F> +1BC70..1BC7C ; valid # 7.0 DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK +1BC7D..1BC7F ; disallowed # NA <reserved-1BC7D>..<reserved-1BC7F> +1BC80..1BC88 ; valid # 7.0 DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL +1BC89..1BC8F ; disallowed # NA <reserved-1BC89>..<reserved-1BC8F> +1BC90..1BC99 ; valid # 7.0 DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW +1BC9A..1BC9B ; disallowed # NA <reserved-1BC9A>..<reserved-1BC9B> +1BC9C ; valid ; ; NV8 # 7.0 DUPLOYAN SIGN O WITH CROSS +1BC9D..1BC9E ; valid # 7.0 DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK +1BC9F ; valid ; ; NV8 # 7.0 DUPLOYAN PUNCTUATION CHINOOK FULL STOP +1BCA0..1BCA3 ; ignored # 7.0 SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP +1BCA4..1CEFF ; disallowed # NA <reserved-1BCA4>..<reserved-1CEFF> +1CF00..1CF2D ; valid # 14.0 ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT +1CF2E..1CF2F ; disallowed # NA <reserved-1CF2E>..<reserved-1CF2F> +1CF30..1CF46 ; valid # 14.0 ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG +1CF47..1CF4F ; disallowed # NA <reserved-1CF47>..<reserved-1CF4F> +1CF50..1CFC3 ; valid ; ; NV8 # 14.0 ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK +1CFC4..1CFFF ; disallowed # NA <reserved-1CFC4>..<reserved-1CFFF> +1D000..1D0F5 ; valid ; ; NV8 # 3.1 BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO +1D0F6..1D0FF ; disallowed # NA <reserved-1D0F6>..<reserved-1D0FF> +1D100..1D126 ; valid ; ; NV8 # 3.1 MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2 +1D127..1D128 ; disallowed # NA <reserved-1D127>..<reserved-1D128> +1D129 ; valid ; ; NV8 # 5.1 MUSICAL SYMBOL MULTIPLE MEASURE REST +1D12A..1D15D ; valid ; ; NV8 # 3.1 MUSICAL SYMBOL DOUBLE SHARP..MUSICAL SYMBOL WHOLE NOTE +1D15E ; mapped ; 1D157 1D165 # 3.1 MUSICAL SYMBOL HALF NOTE +1D15F ; mapped ; 1D158 1D165 # 3.1 MUSICAL SYMBOL QUARTER NOTE +1D160 ; mapped ; 1D158 1D165 1D16E #3.1 MUSICAL SYMBOL EIGHTH NOTE +1D161 ; mapped ; 1D158 1D165 1D16F #3.1 MUSICAL SYMBOL SIXTEENTH NOTE +1D162 ; mapped ; 1D158 1D165 1D170 #3.1 MUSICAL SYMBOL THIRTY-SECOND NOTE +1D163 ; mapped ; 1D158 1D165 1D171 #3.1 MUSICAL SYMBOL SIXTY-FOURTH NOTE +1D164 ; mapped ; 1D158 1D165 1D172 #3.1 MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE +1D165..1D172 ; valid ; ; NV8 # 3.1 MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING FLAG-5 +1D173..1D17A ; disallowed # 3.1 MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE +1D17B..1D1BA ; valid ; ; NV8 # 3.1 MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL SEMIBREVIS BLACK +1D1BB ; mapped ; 1D1B9 1D165 # 3.1 MUSICAL SYMBOL MINIMA +1D1BC ; mapped ; 1D1BA 1D165 # 3.1 MUSICAL SYMBOL MINIMA BLACK +1D1BD ; mapped ; 1D1B9 1D165 1D16E #3.1 MUSICAL SYMBOL SEMIMINIMA WHITE +1D1BE ; mapped ; 1D1BA 1D165 1D16E #3.1 MUSICAL SYMBOL SEMIMINIMA BLACK +1D1BF ; mapped ; 1D1B9 1D165 1D16F #3.1 MUSICAL SYMBOL FUSA WHITE +1D1C0 ; mapped ; 1D1BA 1D165 1D16F #3.1 MUSICAL SYMBOL FUSA BLACK +1D1C1..1D1DD ; valid ; ; NV8 # 3.1 MUSICAL SYMBOL LONGA PERFECTA REST..MUSICAL SYMBOL PES SUBPUNCTIS +1D1DE..1D1E8 ; valid ; ; NV8 # 8.0 MUSICAL SYMBOL KIEVAN C CLEF..MUSICAL SYMBOL KIEVAN FLAT SIGN +1D1E9..1D1EA ; valid ; ; NV8 # 14.0 MUSICAL SYMBOL SORI..MUSICAL SYMBOL KORON +1D1EB..1D1FF ; disallowed # NA <reserved-1D1EB>..<reserved-1D1FF> +1D200..1D245 ; valid ; ; NV8 # 4.1 GREEK VOCAL NOTATION SYMBOL-1..GREEK MUSICAL LEIMMA +1D246..1D2BF ; disallowed # NA <reserved-1D246>..<reserved-1D2BF> +1D2C0..1D2D3 ; valid ; ; NV8 # 15.0 KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN +1D2D4..1D2DF ; disallowed # NA <reserved-1D2D4>..<reserved-1D2DF> +1D2E0..1D2F3 ; valid ; ; NV8 # 11.0 MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN +1D2F4..1D2FF ; disallowed # NA <reserved-1D2F4>..<reserved-1D2FF> +1D300..1D356 ; valid ; ; NV8 # 4.0 MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING +1D357..1D35F ; disallowed # NA <reserved-1D357>..<reserved-1D35F> +1D360..1D371 ; valid ; ; NV8 # 5.0 COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE +1D372..1D378 ; valid ; ; NV8 # 11.0 IDEOGRAPHIC TALLY MARK ONE..TALLY MARK FIVE +1D379..1D3FF ; disallowed # NA <reserved-1D379>..<reserved-1D3FF> +1D400 ; mapped ; 0061 # 3.1 MATHEMATICAL BOLD CAPITAL A +1D401 ; mapped ; 0062 # 3.1 MATHEMATICAL BOLD CAPITAL B +1D402 ; mapped ; 0063 # 3.1 MATHEMATICAL BOLD CAPITAL C +1D403 ; mapped ; 0064 # 3.1 MATHEMATICAL BOLD CAPITAL D +1D404 ; mapped ; 0065 # 3.1 MATHEMATICAL BOLD CAPITAL E +1D405 ; mapped ; 0066 # 3.1 MATHEMATICAL BOLD CAPITAL F +1D406 ; mapped ; 0067 # 3.1 MATHEMATICAL BOLD CAPITAL G +1D407 ; mapped ; 0068 # 3.1 MATHEMATICAL BOLD CAPITAL H +1D408 ; mapped ; 0069 # 3.1 MATHEMATICAL BOLD CAPITAL I +1D409 ; mapped ; 006A # 3.1 MATHEMATICAL BOLD CAPITAL J +1D40A ; mapped ; 006B # 3.1 MATHEMATICAL BOLD CAPITAL K +1D40B ; mapped ; 006C # 3.1 MATHEMATICAL BOLD CAPITAL L +1D40C ; mapped ; 006D # 3.1 MATHEMATICAL BOLD CAPITAL M +1D40D ; mapped ; 006E # 3.1 MATHEMATICAL BOLD CAPITAL N +1D40E ; mapped ; 006F # 3.1 MATHEMATICAL BOLD CAPITAL O +1D40F ; mapped ; 0070 # 3.1 MATHEMATICAL BOLD CAPITAL P +1D410 ; mapped ; 0071 # 3.1 MATHEMATICAL BOLD CAPITAL Q +1D411 ; mapped ; 0072 # 3.1 MATHEMATICAL BOLD CAPITAL R +1D412 ; mapped ; 0073 # 3.1 MATHEMATICAL BOLD CAPITAL S +1D413 ; mapped ; 0074 # 3.1 MATHEMATICAL BOLD CAPITAL T +1D414 ; mapped ; 0075 # 3.1 MATHEMATICAL BOLD CAPITAL U +1D415 ; mapped ; 0076 # 3.1 MATHEMATICAL BOLD CAPITAL V +1D416 ; mapped ; 0077 # 3.1 MATHEMATICAL BOLD CAPITAL W +1D417 ; mapped ; 0078 # 3.1 MATHEMATICAL BOLD CAPITAL X +1D418 ; mapped ; 0079 # 3.1 MATHEMATICAL BOLD CAPITAL Y +1D419 ; mapped ; 007A # 3.1 MATHEMATICAL BOLD CAPITAL Z +1D41A ; mapped ; 0061 # 3.1 MATHEMATICAL BOLD SMALL A +1D41B ; mapped ; 0062 # 3.1 MATHEMATICAL BOLD SMALL B +1D41C ; mapped ; 0063 # 3.1 MATHEMATICAL BOLD SMALL C +1D41D ; mapped ; 0064 # 3.1 MATHEMATICAL BOLD SMALL D +1D41E ; mapped ; 0065 # 3.1 MATHEMATICAL BOLD SMALL E +1D41F ; mapped ; 0066 # 3.1 MATHEMATICAL BOLD SMALL F +1D420 ; mapped ; 0067 # 3.1 MATHEMATICAL BOLD SMALL G +1D421 ; mapped ; 0068 # 3.1 MATHEMATICAL BOLD SMALL H +1D422 ; mapped ; 0069 # 3.1 MATHEMATICAL BOLD SMALL I +1D423 ; mapped ; 006A # 3.1 MATHEMATICAL BOLD SMALL J +1D424 ; mapped ; 006B # 3.1 MATHEMATICAL BOLD SMALL K +1D425 ; mapped ; 006C # 3.1 MATHEMATICAL BOLD SMALL L +1D426 ; mapped ; 006D # 3.1 MATHEMATICAL BOLD SMALL M +1D427 ; mapped ; 006E # 3.1 MATHEMATICAL BOLD SMALL N +1D428 ; mapped ; 006F # 3.1 MATHEMATICAL BOLD SMALL O +1D429 ; mapped ; 0070 # 3.1 MATHEMATICAL BOLD SMALL P +1D42A ; mapped ; 0071 # 3.1 MATHEMATICAL BOLD SMALL Q +1D42B ; mapped ; 0072 # 3.1 MATHEMATICAL BOLD SMALL R +1D42C ; mapped ; 0073 # 3.1 MATHEMATICAL BOLD SMALL S +1D42D ; mapped ; 0074 # 3.1 MATHEMATICAL BOLD SMALL T +1D42E ; mapped ; 0075 # 3.1 MATHEMATICAL BOLD SMALL U +1D42F ; mapped ; 0076 # 3.1 MATHEMATICAL BOLD SMALL V +1D430 ; mapped ; 0077 # 3.1 MATHEMATICAL BOLD SMALL W +1D431 ; mapped ; 0078 # 3.1 MATHEMATICAL BOLD SMALL X +1D432 ; mapped ; 0079 # 3.1 MATHEMATICAL BOLD SMALL Y +1D433 ; mapped ; 007A # 3.1 MATHEMATICAL BOLD SMALL Z +1D434 ; mapped ; 0061 # 3.1 MATHEMATICAL ITALIC CAPITAL A +1D435 ; mapped ; 0062 # 3.1 MATHEMATICAL ITALIC CAPITAL B +1D436 ; mapped ; 0063 # 3.1 MATHEMATICAL ITALIC CAPITAL C +1D437 ; mapped ; 0064 # 3.1 MATHEMATICAL ITALIC CAPITAL D +1D438 ; mapped ; 0065 # 3.1 MATHEMATICAL ITALIC CAPITAL E +1D439 ; mapped ; 0066 # 3.1 MATHEMATICAL ITALIC CAPITAL F +1D43A ; mapped ; 0067 # 3.1 MATHEMATICAL ITALIC CAPITAL G +1D43B ; mapped ; 0068 # 3.1 MATHEMATICAL ITALIC CAPITAL H +1D43C ; mapped ; 0069 # 3.1 MATHEMATICAL ITALIC CAPITAL I +1D43D ; mapped ; 006A # 3.1 MATHEMATICAL ITALIC CAPITAL J +1D43E ; mapped ; 006B # 3.1 MATHEMATICAL ITALIC CAPITAL K +1D43F ; mapped ; 006C # 3.1 MATHEMATICAL ITALIC CAPITAL L +1D440 ; mapped ; 006D # 3.1 MATHEMATICAL ITALIC CAPITAL M +1D441 ; mapped ; 006E # 3.1 MATHEMATICAL ITALIC CAPITAL N +1D442 ; mapped ; 006F # 3.1 MATHEMATICAL ITALIC CAPITAL O +1D443 ; mapped ; 0070 # 3.1 MATHEMATICAL ITALIC CAPITAL P +1D444 ; mapped ; 0071 # 3.1 MATHEMATICAL ITALIC CAPITAL Q +1D445 ; mapped ; 0072 # 3.1 MATHEMATICAL ITALIC CAPITAL R +1D446 ; mapped ; 0073 # 3.1 MATHEMATICAL ITALIC CAPITAL S +1D447 ; mapped ; 0074 # 3.1 MATHEMATICAL ITALIC CAPITAL T +1D448 ; mapped ; 0075 # 3.1 MATHEMATICAL ITALIC CAPITAL U +1D449 ; mapped ; 0076 # 3.1 MATHEMATICAL ITALIC CAPITAL V +1D44A ; mapped ; 0077 # 3.1 MATHEMATICAL ITALIC CAPITAL W +1D44B ; mapped ; 0078 # 3.1 MATHEMATICAL ITALIC CAPITAL X +1D44C ; mapped ; 0079 # 3.1 MATHEMATICAL ITALIC CAPITAL Y +1D44D ; mapped ; 007A # 3.1 MATHEMATICAL ITALIC CAPITAL Z +1D44E ; mapped ; 0061 # 3.1 MATHEMATICAL ITALIC SMALL A +1D44F ; mapped ; 0062 # 3.1 MATHEMATICAL ITALIC SMALL B +1D450 ; mapped ; 0063 # 3.1 MATHEMATICAL ITALIC SMALL C +1D451 ; mapped ; 0064 # 3.1 MATHEMATICAL ITALIC SMALL D +1D452 ; mapped ; 0065 # 3.1 MATHEMATICAL ITALIC SMALL E +1D453 ; mapped ; 0066 # 3.1 MATHEMATICAL ITALIC SMALL F +1D454 ; mapped ; 0067 # 3.1 MATHEMATICAL ITALIC SMALL G +1D455 ; disallowed # NA <reserved-1D455> +1D456 ; mapped ; 0069 # 3.1 MATHEMATICAL ITALIC SMALL I +1D457 ; mapped ; 006A # 3.1 MATHEMATICAL ITALIC SMALL J +1D458 ; mapped ; 006B # 3.1 MATHEMATICAL ITALIC SMALL K +1D459 ; mapped ; 006C # 3.1 MATHEMATICAL ITALIC SMALL L +1D45A ; mapped ; 006D # 3.1 MATHEMATICAL ITALIC SMALL M +1D45B ; mapped ; 006E # 3.1 MATHEMATICAL ITALIC SMALL N +1D45C ; mapped ; 006F # 3.1 MATHEMATICAL ITALIC SMALL O +1D45D ; mapped ; 0070 # 3.1 MATHEMATICAL ITALIC SMALL P +1D45E ; mapped ; 0071 # 3.1 MATHEMATICAL ITALIC SMALL Q +1D45F ; mapped ; 0072 # 3.1 MATHEMATICAL ITALIC SMALL R +1D460 ; mapped ; 0073 # 3.1 MATHEMATICAL ITALIC SMALL S +1D461 ; mapped ; 0074 # 3.1 MATHEMATICAL ITALIC SMALL T +1D462 ; mapped ; 0075 # 3.1 MATHEMATICAL ITALIC SMALL U +1D463 ; mapped ; 0076 # 3.1 MATHEMATICAL ITALIC SMALL V +1D464 ; mapped ; 0077 # 3.1 MATHEMATICAL ITALIC SMALL W +1D465 ; mapped ; 0078 # 3.1 MATHEMATICAL ITALIC SMALL X +1D466 ; mapped ; 0079 # 3.1 MATHEMATICAL ITALIC SMALL Y +1D467 ; mapped ; 007A # 3.1 MATHEMATICAL ITALIC SMALL Z +1D468 ; mapped ; 0061 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL A +1D469 ; mapped ; 0062 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL B +1D46A ; mapped ; 0063 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL C +1D46B ; mapped ; 0064 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL D +1D46C ; mapped ; 0065 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL E +1D46D ; mapped ; 0066 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL F +1D46E ; mapped ; 0067 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL G +1D46F ; mapped ; 0068 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL H +1D470 ; mapped ; 0069 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL I +1D471 ; mapped ; 006A # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL J +1D472 ; mapped ; 006B # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL K +1D473 ; mapped ; 006C # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL L +1D474 ; mapped ; 006D # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL M +1D475 ; mapped ; 006E # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL N +1D476 ; mapped ; 006F # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL O +1D477 ; mapped ; 0070 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL P +1D478 ; mapped ; 0071 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL Q +1D479 ; mapped ; 0072 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL R +1D47A ; mapped ; 0073 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL S +1D47B ; mapped ; 0074 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL T +1D47C ; mapped ; 0075 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL U +1D47D ; mapped ; 0076 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL V +1D47E ; mapped ; 0077 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL W +1D47F ; mapped ; 0078 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL X +1D480 ; mapped ; 0079 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL Y +1D481 ; mapped ; 007A # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL Z +1D482 ; mapped ; 0061 # 3.1 MATHEMATICAL BOLD ITALIC SMALL A +1D483 ; mapped ; 0062 # 3.1 MATHEMATICAL BOLD ITALIC SMALL B +1D484 ; mapped ; 0063 # 3.1 MATHEMATICAL BOLD ITALIC SMALL C +1D485 ; mapped ; 0064 # 3.1 MATHEMATICAL BOLD ITALIC SMALL D +1D486 ; mapped ; 0065 # 3.1 MATHEMATICAL BOLD ITALIC SMALL E +1D487 ; mapped ; 0066 # 3.1 MATHEMATICAL BOLD ITALIC SMALL F +1D488 ; mapped ; 0067 # 3.1 MATHEMATICAL BOLD ITALIC SMALL G +1D489 ; mapped ; 0068 # 3.1 MATHEMATICAL BOLD ITALIC SMALL H +1D48A ; mapped ; 0069 # 3.1 MATHEMATICAL BOLD ITALIC SMALL I +1D48B ; mapped ; 006A # 3.1 MATHEMATICAL BOLD ITALIC SMALL J +1D48C ; mapped ; 006B # 3.1 MATHEMATICAL BOLD ITALIC SMALL K +1D48D ; mapped ; 006C # 3.1 MATHEMATICAL BOLD ITALIC SMALL L +1D48E ; mapped ; 006D # 3.1 MATHEMATICAL BOLD ITALIC SMALL M +1D48F ; mapped ; 006E # 3.1 MATHEMATICAL BOLD ITALIC SMALL N +1D490 ; mapped ; 006F # 3.1 MATHEMATICAL BOLD ITALIC SMALL O +1D491 ; mapped ; 0070 # 3.1 MATHEMATICAL BOLD ITALIC SMALL P +1D492 ; mapped ; 0071 # 3.1 MATHEMATICAL BOLD ITALIC SMALL Q +1D493 ; mapped ; 0072 # 3.1 MATHEMATICAL BOLD ITALIC SMALL R +1D494 ; mapped ; 0073 # 3.1 MATHEMATICAL BOLD ITALIC SMALL S +1D495 ; mapped ; 0074 # 3.1 MATHEMATICAL BOLD ITALIC SMALL T +1D496 ; mapped ; 0075 # 3.1 MATHEMATICAL BOLD ITALIC SMALL U +1D497 ; mapped ; 0076 # 3.1 MATHEMATICAL BOLD ITALIC SMALL V +1D498 ; mapped ; 0077 # 3.1 MATHEMATICAL BOLD ITALIC SMALL W +1D499 ; mapped ; 0078 # 3.1 MATHEMATICAL BOLD ITALIC SMALL X +1D49A ; mapped ; 0079 # 3.1 MATHEMATICAL BOLD ITALIC SMALL Y +1D49B ; mapped ; 007A # 3.1 MATHEMATICAL BOLD ITALIC SMALL Z +1D49C ; mapped ; 0061 # 3.1 MATHEMATICAL SCRIPT CAPITAL A +1D49D ; disallowed # NA <reserved-1D49D> +1D49E ; mapped ; 0063 # 3.1 MATHEMATICAL SCRIPT CAPITAL C +1D49F ; mapped ; 0064 # 3.1 MATHEMATICAL SCRIPT CAPITAL D +1D4A0..1D4A1 ; disallowed # NA <reserved-1D4A0>..<reserved-1D4A1> +1D4A2 ; mapped ; 0067 # 3.1 MATHEMATICAL SCRIPT CAPITAL G +1D4A3..1D4A4 ; disallowed # NA <reserved-1D4A3>..<reserved-1D4A4> +1D4A5 ; mapped ; 006A # 3.1 MATHEMATICAL SCRIPT CAPITAL J +1D4A6 ; mapped ; 006B # 3.1 MATHEMATICAL SCRIPT CAPITAL K +1D4A7..1D4A8 ; disallowed # NA <reserved-1D4A7>..<reserved-1D4A8> +1D4A9 ; mapped ; 006E # 3.1 MATHEMATICAL SCRIPT CAPITAL N +1D4AA ; mapped ; 006F # 3.1 MATHEMATICAL SCRIPT CAPITAL O +1D4AB ; mapped ; 0070 # 3.1 MATHEMATICAL SCRIPT CAPITAL P +1D4AC ; mapped ; 0071 # 3.1 MATHEMATICAL SCRIPT CAPITAL Q +1D4AD ; disallowed # NA <reserved-1D4AD> +1D4AE ; mapped ; 0073 # 3.1 MATHEMATICAL SCRIPT CAPITAL S +1D4AF ; mapped ; 0074 # 3.1 MATHEMATICAL SCRIPT CAPITAL T +1D4B0 ; mapped ; 0075 # 3.1 MATHEMATICAL SCRIPT CAPITAL U +1D4B1 ; mapped ; 0076 # 3.1 MATHEMATICAL SCRIPT CAPITAL V +1D4B2 ; mapped ; 0077 # 3.1 MATHEMATICAL SCRIPT CAPITAL W +1D4B3 ; mapped ; 0078 # 3.1 MATHEMATICAL SCRIPT CAPITAL X +1D4B4 ; mapped ; 0079 # 3.1 MATHEMATICAL SCRIPT CAPITAL Y +1D4B5 ; mapped ; 007A # 3.1 MATHEMATICAL SCRIPT CAPITAL Z +1D4B6 ; mapped ; 0061 # 3.1 MATHEMATICAL SCRIPT SMALL A +1D4B7 ; mapped ; 0062 # 3.1 MATHEMATICAL SCRIPT SMALL B +1D4B8 ; mapped ; 0063 # 3.1 MATHEMATICAL SCRIPT SMALL C +1D4B9 ; mapped ; 0064 # 3.1 MATHEMATICAL SCRIPT SMALL D +1D4BA ; disallowed # NA <reserved-1D4BA> +1D4BB ; mapped ; 0066 # 3.1 MATHEMATICAL SCRIPT SMALL F +1D4BC ; disallowed # NA <reserved-1D4BC> +1D4BD ; mapped ; 0068 # 3.1 MATHEMATICAL SCRIPT SMALL H +1D4BE ; mapped ; 0069 # 3.1 MATHEMATICAL SCRIPT SMALL I +1D4BF ; mapped ; 006A # 3.1 MATHEMATICAL SCRIPT SMALL J +1D4C0 ; mapped ; 006B # 3.1 MATHEMATICAL SCRIPT SMALL K +1D4C1 ; mapped ; 006C # 4.0 MATHEMATICAL SCRIPT SMALL L +1D4C2 ; mapped ; 006D # 3.1 MATHEMATICAL SCRIPT SMALL M +1D4C3 ; mapped ; 006E # 3.1 MATHEMATICAL SCRIPT SMALL N +1D4C4 ; disallowed # NA <reserved-1D4C4> +1D4C5 ; mapped ; 0070 # 3.1 MATHEMATICAL SCRIPT SMALL P +1D4C6 ; mapped ; 0071 # 3.1 MATHEMATICAL SCRIPT SMALL Q +1D4C7 ; mapped ; 0072 # 3.1 MATHEMATICAL SCRIPT SMALL R +1D4C8 ; mapped ; 0073 # 3.1 MATHEMATICAL SCRIPT SMALL S +1D4C9 ; mapped ; 0074 # 3.1 MATHEMATICAL SCRIPT SMALL T +1D4CA ; mapped ; 0075 # 3.1 MATHEMATICAL SCRIPT SMALL U +1D4CB ; mapped ; 0076 # 3.1 MATHEMATICAL SCRIPT SMALL V +1D4CC ; mapped ; 0077 # 3.1 MATHEMATICAL SCRIPT SMALL W +1D4CD ; mapped ; 0078 # 3.1 MATHEMATICAL SCRIPT SMALL X +1D4CE ; mapped ; 0079 # 3.1 MATHEMATICAL SCRIPT SMALL Y +1D4CF ; mapped ; 007A # 3.1 MATHEMATICAL SCRIPT SMALL Z +1D4D0 ; mapped ; 0061 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL A +1D4D1 ; mapped ; 0062 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL B +1D4D2 ; mapped ; 0063 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL C +1D4D3 ; mapped ; 0064 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL D +1D4D4 ; mapped ; 0065 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL E +1D4D5 ; mapped ; 0066 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL F +1D4D6 ; mapped ; 0067 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL G +1D4D7 ; mapped ; 0068 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL H +1D4D8 ; mapped ; 0069 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL I +1D4D9 ; mapped ; 006A # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL J +1D4DA ; mapped ; 006B # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL K +1D4DB ; mapped ; 006C # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL L +1D4DC ; mapped ; 006D # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL M +1D4DD ; mapped ; 006E # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL N +1D4DE ; mapped ; 006F # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL O +1D4DF ; mapped ; 0070 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL P +1D4E0 ; mapped ; 0071 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL Q +1D4E1 ; mapped ; 0072 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL R +1D4E2 ; mapped ; 0073 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL S +1D4E3 ; mapped ; 0074 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL T +1D4E4 ; mapped ; 0075 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL U +1D4E5 ; mapped ; 0076 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL V +1D4E6 ; mapped ; 0077 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL W +1D4E7 ; mapped ; 0078 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL X +1D4E8 ; mapped ; 0079 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL Y +1D4E9 ; mapped ; 007A # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL Z +1D4EA ; mapped ; 0061 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL A +1D4EB ; mapped ; 0062 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL B +1D4EC ; mapped ; 0063 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL C +1D4ED ; mapped ; 0064 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL D +1D4EE ; mapped ; 0065 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL E +1D4EF ; mapped ; 0066 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL F +1D4F0 ; mapped ; 0067 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL G +1D4F1 ; mapped ; 0068 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL H +1D4F2 ; mapped ; 0069 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL I +1D4F3 ; mapped ; 006A # 3.1 MATHEMATICAL BOLD SCRIPT SMALL J +1D4F4 ; mapped ; 006B # 3.1 MATHEMATICAL BOLD SCRIPT SMALL K +1D4F5 ; mapped ; 006C # 3.1 MATHEMATICAL BOLD SCRIPT SMALL L +1D4F6 ; mapped ; 006D # 3.1 MATHEMATICAL BOLD SCRIPT SMALL M +1D4F7 ; mapped ; 006E # 3.1 MATHEMATICAL BOLD SCRIPT SMALL N +1D4F8 ; mapped ; 006F # 3.1 MATHEMATICAL BOLD SCRIPT SMALL O +1D4F9 ; mapped ; 0070 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL P +1D4FA ; mapped ; 0071 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL Q +1D4FB ; mapped ; 0072 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL R +1D4FC ; mapped ; 0073 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL S +1D4FD ; mapped ; 0074 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL T +1D4FE ; mapped ; 0075 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL U +1D4FF ; mapped ; 0076 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL V +1D500 ; mapped ; 0077 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL W +1D501 ; mapped ; 0078 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL X +1D502 ; mapped ; 0079 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL Y +1D503 ; mapped ; 007A # 3.1 MATHEMATICAL BOLD SCRIPT SMALL Z +1D504 ; mapped ; 0061 # 3.1 MATHEMATICAL FRAKTUR CAPITAL A +1D505 ; mapped ; 0062 # 3.1 MATHEMATICAL FRAKTUR CAPITAL B +1D506 ; disallowed # NA <reserved-1D506> +1D507 ; mapped ; 0064 # 3.1 MATHEMATICAL FRAKTUR CAPITAL D +1D508 ; mapped ; 0065 # 3.1 MATHEMATICAL FRAKTUR CAPITAL E +1D509 ; mapped ; 0066 # 3.1 MATHEMATICAL FRAKTUR CAPITAL F +1D50A ; mapped ; 0067 # 3.1 MATHEMATICAL FRAKTUR CAPITAL G +1D50B..1D50C ; disallowed # NA <reserved-1D50B>..<reserved-1D50C> +1D50D ; mapped ; 006A # 3.1 MATHEMATICAL FRAKTUR CAPITAL J +1D50E ; mapped ; 006B # 3.1 MATHEMATICAL FRAKTUR CAPITAL K +1D50F ; mapped ; 006C # 3.1 MATHEMATICAL FRAKTUR CAPITAL L +1D510 ; mapped ; 006D # 3.1 MATHEMATICAL FRAKTUR CAPITAL M +1D511 ; mapped ; 006E # 3.1 MATHEMATICAL FRAKTUR CAPITAL N +1D512 ; mapped ; 006F # 3.1 MATHEMATICAL FRAKTUR CAPITAL O +1D513 ; mapped ; 0070 # 3.1 MATHEMATICAL FRAKTUR CAPITAL P +1D514 ; mapped ; 0071 # 3.1 MATHEMATICAL FRAKTUR CAPITAL Q +1D515 ; disallowed # NA <reserved-1D515> +1D516 ; mapped ; 0073 # 3.1 MATHEMATICAL FRAKTUR CAPITAL S +1D517 ; mapped ; 0074 # 3.1 MATHEMATICAL FRAKTUR CAPITAL T +1D518 ; mapped ; 0075 # 3.1 MATHEMATICAL FRAKTUR CAPITAL U +1D519 ; mapped ; 0076 # 3.1 MATHEMATICAL FRAKTUR CAPITAL V +1D51A ; mapped ; 0077 # 3.1 MATHEMATICAL FRAKTUR CAPITAL W +1D51B ; mapped ; 0078 # 3.1 MATHEMATICAL FRAKTUR CAPITAL X +1D51C ; mapped ; 0079 # 3.1 MATHEMATICAL FRAKTUR CAPITAL Y +1D51D ; disallowed # NA <reserved-1D51D> +1D51E ; mapped ; 0061 # 3.1 MATHEMATICAL FRAKTUR SMALL A +1D51F ; mapped ; 0062 # 3.1 MATHEMATICAL FRAKTUR SMALL B +1D520 ; mapped ; 0063 # 3.1 MATHEMATICAL FRAKTUR SMALL C +1D521 ; mapped ; 0064 # 3.1 MATHEMATICAL FRAKTUR SMALL D +1D522 ; mapped ; 0065 # 3.1 MATHEMATICAL FRAKTUR SMALL E +1D523 ; mapped ; 0066 # 3.1 MATHEMATICAL FRAKTUR SMALL F +1D524 ; mapped ; 0067 # 3.1 MATHEMATICAL FRAKTUR SMALL G +1D525 ; mapped ; 0068 # 3.1 MATHEMATICAL FRAKTUR SMALL H +1D526 ; mapped ; 0069 # 3.1 MATHEMATICAL FRAKTUR SMALL I +1D527 ; mapped ; 006A # 3.1 MATHEMATICAL FRAKTUR SMALL J +1D528 ; mapped ; 006B # 3.1 MATHEMATICAL FRAKTUR SMALL K +1D529 ; mapped ; 006C # 3.1 MATHEMATICAL FRAKTUR SMALL L +1D52A ; mapped ; 006D # 3.1 MATHEMATICAL FRAKTUR SMALL M +1D52B ; mapped ; 006E # 3.1 MATHEMATICAL FRAKTUR SMALL N +1D52C ; mapped ; 006F # 3.1 MATHEMATICAL FRAKTUR SMALL O +1D52D ; mapped ; 0070 # 3.1 MATHEMATICAL FRAKTUR SMALL P +1D52E ; mapped ; 0071 # 3.1 MATHEMATICAL FRAKTUR SMALL Q +1D52F ; mapped ; 0072 # 3.1 MATHEMATICAL FRAKTUR SMALL R +1D530 ; mapped ; 0073 # 3.1 MATHEMATICAL FRAKTUR SMALL S +1D531 ; mapped ; 0074 # 3.1 MATHEMATICAL FRAKTUR SMALL T +1D532 ; mapped ; 0075 # 3.1 MATHEMATICAL FRAKTUR SMALL U +1D533 ; mapped ; 0076 # 3.1 MATHEMATICAL FRAKTUR SMALL V +1D534 ; mapped ; 0077 # 3.1 MATHEMATICAL FRAKTUR SMALL W +1D535 ; mapped ; 0078 # 3.1 MATHEMATICAL FRAKTUR SMALL X +1D536 ; mapped ; 0079 # 3.1 MATHEMATICAL FRAKTUR SMALL Y +1D537 ; mapped ; 007A # 3.1 MATHEMATICAL FRAKTUR SMALL Z +1D538 ; mapped ; 0061 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL A +1D539 ; mapped ; 0062 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL B +1D53A ; disallowed # NA <reserved-1D53A> +1D53B ; mapped ; 0064 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL D +1D53C ; mapped ; 0065 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL E +1D53D ; mapped ; 0066 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL F +1D53E ; mapped ; 0067 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL G +1D53F ; disallowed # NA <reserved-1D53F> +1D540 ; mapped ; 0069 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL I +1D541 ; mapped ; 006A # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL J +1D542 ; mapped ; 006B # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL K +1D543 ; mapped ; 006C # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL L +1D544 ; mapped ; 006D # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL M +1D545 ; disallowed # NA <reserved-1D545> +1D546 ; mapped ; 006F # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL O +1D547..1D549 ; disallowed # NA <reserved-1D547>..<reserved-1D549> +1D54A ; mapped ; 0073 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL S +1D54B ; mapped ; 0074 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL T +1D54C ; mapped ; 0075 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL U +1D54D ; mapped ; 0076 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL V +1D54E ; mapped ; 0077 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL W +1D54F ; mapped ; 0078 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL X +1D550 ; mapped ; 0079 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL Y +1D551 ; disallowed # NA <reserved-1D551> +1D552 ; mapped ; 0061 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL A +1D553 ; mapped ; 0062 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL B +1D554 ; mapped ; 0063 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL C +1D555 ; mapped ; 0064 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL D +1D556 ; mapped ; 0065 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL E +1D557 ; mapped ; 0066 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL F +1D558 ; mapped ; 0067 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL G +1D559 ; mapped ; 0068 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL H +1D55A ; mapped ; 0069 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL I +1D55B ; mapped ; 006A # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL J +1D55C ; mapped ; 006B # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL K +1D55D ; mapped ; 006C # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL L +1D55E ; mapped ; 006D # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL M +1D55F ; mapped ; 006E # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL N +1D560 ; mapped ; 006F # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL O +1D561 ; mapped ; 0070 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL P +1D562 ; mapped ; 0071 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL Q +1D563 ; mapped ; 0072 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL R +1D564 ; mapped ; 0073 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL S +1D565 ; mapped ; 0074 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL T +1D566 ; mapped ; 0075 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL U +1D567 ; mapped ; 0076 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL V +1D568 ; mapped ; 0077 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL W +1D569 ; mapped ; 0078 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL X +1D56A ; mapped ; 0079 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL Y +1D56B ; mapped ; 007A # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL Z +1D56C ; mapped ; 0061 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL A +1D56D ; mapped ; 0062 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL B +1D56E ; mapped ; 0063 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL C +1D56F ; mapped ; 0064 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL D +1D570 ; mapped ; 0065 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL E +1D571 ; mapped ; 0066 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL F +1D572 ; mapped ; 0067 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL G +1D573 ; mapped ; 0068 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL H +1D574 ; mapped ; 0069 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL I +1D575 ; mapped ; 006A # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL J +1D576 ; mapped ; 006B # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL K +1D577 ; mapped ; 006C # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL L +1D578 ; mapped ; 006D # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL M +1D579 ; mapped ; 006E # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL N +1D57A ; mapped ; 006F # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL O +1D57B ; mapped ; 0070 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL P +1D57C ; mapped ; 0071 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL Q +1D57D ; mapped ; 0072 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL R +1D57E ; mapped ; 0073 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL S +1D57F ; mapped ; 0074 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL T +1D580 ; mapped ; 0075 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL U +1D581 ; mapped ; 0076 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL V +1D582 ; mapped ; 0077 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL W +1D583 ; mapped ; 0078 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL X +1D584 ; mapped ; 0079 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL Y +1D585 ; mapped ; 007A # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL Z +1D586 ; mapped ; 0061 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL A +1D587 ; mapped ; 0062 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL B +1D588 ; mapped ; 0063 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL C +1D589 ; mapped ; 0064 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL D +1D58A ; mapped ; 0065 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL E +1D58B ; mapped ; 0066 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL F +1D58C ; mapped ; 0067 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL G +1D58D ; mapped ; 0068 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL H +1D58E ; mapped ; 0069 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL I +1D58F ; mapped ; 006A # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL J +1D590 ; mapped ; 006B # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL K +1D591 ; mapped ; 006C # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL L +1D592 ; mapped ; 006D # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL M +1D593 ; mapped ; 006E # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL N +1D594 ; mapped ; 006F # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL O +1D595 ; mapped ; 0070 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL P +1D596 ; mapped ; 0071 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL Q +1D597 ; mapped ; 0072 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL R +1D598 ; mapped ; 0073 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL S +1D599 ; mapped ; 0074 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL T +1D59A ; mapped ; 0075 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL U +1D59B ; mapped ; 0076 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL V +1D59C ; mapped ; 0077 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL W +1D59D ; mapped ; 0078 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL X +1D59E ; mapped ; 0079 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL Y +1D59F ; mapped ; 007A # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL Z +1D5A0 ; mapped ; 0061 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL A +1D5A1 ; mapped ; 0062 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL B +1D5A2 ; mapped ; 0063 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL C +1D5A3 ; mapped ; 0064 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL D +1D5A4 ; mapped ; 0065 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL E +1D5A5 ; mapped ; 0066 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL F +1D5A6 ; mapped ; 0067 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL G +1D5A7 ; mapped ; 0068 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL H +1D5A8 ; mapped ; 0069 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL I +1D5A9 ; mapped ; 006A # 3.1 MATHEMATICAL SANS-SERIF CAPITAL J +1D5AA ; mapped ; 006B # 3.1 MATHEMATICAL SANS-SERIF CAPITAL K +1D5AB ; mapped ; 006C # 3.1 MATHEMATICAL SANS-SERIF CAPITAL L +1D5AC ; mapped ; 006D # 3.1 MATHEMATICAL SANS-SERIF CAPITAL M +1D5AD ; mapped ; 006E # 3.1 MATHEMATICAL SANS-SERIF CAPITAL N +1D5AE ; mapped ; 006F # 3.1 MATHEMATICAL SANS-SERIF CAPITAL O +1D5AF ; mapped ; 0070 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL P +1D5B0 ; mapped ; 0071 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL Q +1D5B1 ; mapped ; 0072 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL R +1D5B2 ; mapped ; 0073 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL S +1D5B3 ; mapped ; 0074 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL T +1D5B4 ; mapped ; 0075 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL U +1D5B5 ; mapped ; 0076 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL V +1D5B6 ; mapped ; 0077 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL W +1D5B7 ; mapped ; 0078 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL X +1D5B8 ; mapped ; 0079 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL Y +1D5B9 ; mapped ; 007A # 3.1 MATHEMATICAL SANS-SERIF CAPITAL Z +1D5BA ; mapped ; 0061 # 3.1 MATHEMATICAL SANS-SERIF SMALL A +1D5BB ; mapped ; 0062 # 3.1 MATHEMATICAL SANS-SERIF SMALL B +1D5BC ; mapped ; 0063 # 3.1 MATHEMATICAL SANS-SERIF SMALL C +1D5BD ; mapped ; 0064 # 3.1 MATHEMATICAL SANS-SERIF SMALL D +1D5BE ; mapped ; 0065 # 3.1 MATHEMATICAL SANS-SERIF SMALL E +1D5BF ; mapped ; 0066 # 3.1 MATHEMATICAL SANS-SERIF SMALL F +1D5C0 ; mapped ; 0067 # 3.1 MATHEMATICAL SANS-SERIF SMALL G +1D5C1 ; mapped ; 0068 # 3.1 MATHEMATICAL SANS-SERIF SMALL H +1D5C2 ; mapped ; 0069 # 3.1 MATHEMATICAL SANS-SERIF SMALL I +1D5C3 ; mapped ; 006A # 3.1 MATHEMATICAL SANS-SERIF SMALL J +1D5C4 ; mapped ; 006B # 3.1 MATHEMATICAL SANS-SERIF SMALL K +1D5C5 ; mapped ; 006C # 3.1 MATHEMATICAL SANS-SERIF SMALL L +1D5C6 ; mapped ; 006D # 3.1 MATHEMATICAL SANS-SERIF SMALL M +1D5C7 ; mapped ; 006E # 3.1 MATHEMATICAL SANS-SERIF SMALL N +1D5C8 ; mapped ; 006F # 3.1 MATHEMATICAL SANS-SERIF SMALL O +1D5C9 ; mapped ; 0070 # 3.1 MATHEMATICAL SANS-SERIF SMALL P +1D5CA ; mapped ; 0071 # 3.1 MATHEMATICAL SANS-SERIF SMALL Q +1D5CB ; mapped ; 0072 # 3.1 MATHEMATICAL SANS-SERIF SMALL R +1D5CC ; mapped ; 0073 # 3.1 MATHEMATICAL SANS-SERIF SMALL S +1D5CD ; mapped ; 0074 # 3.1 MATHEMATICAL SANS-SERIF SMALL T +1D5CE ; mapped ; 0075 # 3.1 MATHEMATICAL SANS-SERIF SMALL U +1D5CF ; mapped ; 0076 # 3.1 MATHEMATICAL SANS-SERIF SMALL V +1D5D0 ; mapped ; 0077 # 3.1 MATHEMATICAL SANS-SERIF SMALL W +1D5D1 ; mapped ; 0078 # 3.1 MATHEMATICAL SANS-SERIF SMALL X +1D5D2 ; mapped ; 0079 # 3.1 MATHEMATICAL SANS-SERIF SMALL Y +1D5D3 ; mapped ; 007A # 3.1 MATHEMATICAL SANS-SERIF SMALL Z +1D5D4 ; mapped ; 0061 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL A +1D5D5 ; mapped ; 0062 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL B +1D5D6 ; mapped ; 0063 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL C +1D5D7 ; mapped ; 0064 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL D +1D5D8 ; mapped ; 0065 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL E +1D5D9 ; mapped ; 0066 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL F +1D5DA ; mapped ; 0067 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL G +1D5DB ; mapped ; 0068 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL H +1D5DC ; mapped ; 0069 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL I +1D5DD ; mapped ; 006A # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL J +1D5DE ; mapped ; 006B # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL K +1D5DF ; mapped ; 006C # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL L +1D5E0 ; mapped ; 006D # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL M +1D5E1 ; mapped ; 006E # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL N +1D5E2 ; mapped ; 006F # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL O +1D5E3 ; mapped ; 0070 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL P +1D5E4 ; mapped ; 0071 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL Q +1D5E5 ; mapped ; 0072 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL R +1D5E6 ; mapped ; 0073 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL S +1D5E7 ; mapped ; 0074 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL T +1D5E8 ; mapped ; 0075 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL U +1D5E9 ; mapped ; 0076 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL V +1D5EA ; mapped ; 0077 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL W +1D5EB ; mapped ; 0078 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL X +1D5EC ; mapped ; 0079 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL Y +1D5ED ; mapped ; 007A # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL Z +1D5EE ; mapped ; 0061 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL A +1D5EF ; mapped ; 0062 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL B +1D5F0 ; mapped ; 0063 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL C +1D5F1 ; mapped ; 0064 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL D +1D5F2 ; mapped ; 0065 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL E +1D5F3 ; mapped ; 0066 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL F +1D5F4 ; mapped ; 0067 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL G +1D5F5 ; mapped ; 0068 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL H +1D5F6 ; mapped ; 0069 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL I +1D5F7 ; mapped ; 006A # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL J +1D5F8 ; mapped ; 006B # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL K +1D5F9 ; mapped ; 006C # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL L +1D5FA ; mapped ; 006D # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL M +1D5FB ; mapped ; 006E # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL N +1D5FC ; mapped ; 006F # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL O +1D5FD ; mapped ; 0070 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL P +1D5FE ; mapped ; 0071 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL Q +1D5FF ; mapped ; 0072 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL R +1D600 ; mapped ; 0073 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL S +1D601 ; mapped ; 0074 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL T +1D602 ; mapped ; 0075 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL U +1D603 ; mapped ; 0076 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL V +1D604 ; mapped ; 0077 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL W +1D605 ; mapped ; 0078 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL X +1D606 ; mapped ; 0079 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL Y +1D607 ; mapped ; 007A # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL Z +1D608 ; mapped ; 0061 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL A +1D609 ; mapped ; 0062 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL B +1D60A ; mapped ; 0063 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL C +1D60B ; mapped ; 0064 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL D +1D60C ; mapped ; 0065 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL E +1D60D ; mapped ; 0066 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL F +1D60E ; mapped ; 0067 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL G +1D60F ; mapped ; 0068 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL H +1D610 ; mapped ; 0069 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL I +1D611 ; mapped ; 006A # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL J +1D612 ; mapped ; 006B # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL K +1D613 ; mapped ; 006C # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL L +1D614 ; mapped ; 006D # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL M +1D615 ; mapped ; 006E # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL N +1D616 ; mapped ; 006F # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL O +1D617 ; mapped ; 0070 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL P +1D618 ; mapped ; 0071 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q +1D619 ; mapped ; 0072 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL R +1D61A ; mapped ; 0073 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL S +1D61B ; mapped ; 0074 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL T +1D61C ; mapped ; 0075 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL U +1D61D ; mapped ; 0076 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL V +1D61E ; mapped ; 0077 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL W +1D61F ; mapped ; 0078 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL X +1D620 ; mapped ; 0079 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y +1D621 ; mapped ; 007A # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z +1D622 ; mapped ; 0061 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL A +1D623 ; mapped ; 0062 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL B +1D624 ; mapped ; 0063 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL C +1D625 ; mapped ; 0064 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL D +1D626 ; mapped ; 0065 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL E +1D627 ; mapped ; 0066 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL F +1D628 ; mapped ; 0067 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL G +1D629 ; mapped ; 0068 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL H +1D62A ; mapped ; 0069 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL I +1D62B ; mapped ; 006A # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL J +1D62C ; mapped ; 006B # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL K +1D62D ; mapped ; 006C # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL L +1D62E ; mapped ; 006D # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL M +1D62F ; mapped ; 006E # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL N +1D630 ; mapped ; 006F # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL O +1D631 ; mapped ; 0070 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL P +1D632 ; mapped ; 0071 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL Q +1D633 ; mapped ; 0072 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL R +1D634 ; mapped ; 0073 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL S +1D635 ; mapped ; 0074 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL T +1D636 ; mapped ; 0075 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL U +1D637 ; mapped ; 0076 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL V +1D638 ; mapped ; 0077 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL W +1D639 ; mapped ; 0078 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL X +1D63A ; mapped ; 0079 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL Y +1D63B ; mapped ; 007A # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL Z +1D63C ; mapped ; 0061 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A +1D63D ; mapped ; 0062 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B +1D63E ; mapped ; 0063 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C +1D63F ; mapped ; 0064 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D +1D640 ; mapped ; 0065 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E +1D641 ; mapped ; 0066 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F +1D642 ; mapped ; 0067 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G +1D643 ; mapped ; 0068 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H +1D644 ; mapped ; 0069 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I +1D645 ; mapped ; 006A # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J +1D646 ; mapped ; 006B # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K +1D647 ; mapped ; 006C # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L +1D648 ; mapped ; 006D # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M +1D649 ; mapped ; 006E # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N +1D64A ; mapped ; 006F # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O +1D64B ; mapped ; 0070 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P +1D64C ; mapped ; 0071 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q +1D64D ; mapped ; 0072 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R +1D64E ; mapped ; 0073 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S +1D64F ; mapped ; 0074 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T +1D650 ; mapped ; 0075 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U +1D651 ; mapped ; 0076 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V +1D652 ; mapped ; 0077 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W +1D653 ; mapped ; 0078 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X +1D654 ; mapped ; 0079 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y +1D655 ; mapped ; 007A # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z +1D656 ; mapped ; 0061 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A +1D657 ; mapped ; 0062 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B +1D658 ; mapped ; 0063 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C +1D659 ; mapped ; 0064 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D +1D65A ; mapped ; 0065 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E +1D65B ; mapped ; 0066 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F +1D65C ; mapped ; 0067 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G +1D65D ; mapped ; 0068 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H +1D65E ; mapped ; 0069 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I +1D65F ; mapped ; 006A # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J +1D660 ; mapped ; 006B # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K +1D661 ; mapped ; 006C # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L +1D662 ; mapped ; 006D # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M +1D663 ; mapped ; 006E # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N +1D664 ; mapped ; 006F # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O +1D665 ; mapped ; 0070 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P +1D666 ; mapped ; 0071 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q +1D667 ; mapped ; 0072 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R +1D668 ; mapped ; 0073 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S +1D669 ; mapped ; 0074 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T +1D66A ; mapped ; 0075 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U +1D66B ; mapped ; 0076 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V +1D66C ; mapped ; 0077 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W +1D66D ; mapped ; 0078 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X +1D66E ; mapped ; 0079 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y +1D66F ; mapped ; 007A # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z +1D670 ; mapped ; 0061 # 3.1 MATHEMATICAL MONOSPACE CAPITAL A +1D671 ; mapped ; 0062 # 3.1 MATHEMATICAL MONOSPACE CAPITAL B +1D672 ; mapped ; 0063 # 3.1 MATHEMATICAL MONOSPACE CAPITAL C +1D673 ; mapped ; 0064 # 3.1 MATHEMATICAL MONOSPACE CAPITAL D +1D674 ; mapped ; 0065 # 3.1 MATHEMATICAL MONOSPACE CAPITAL E +1D675 ; mapped ; 0066 # 3.1 MATHEMATICAL MONOSPACE CAPITAL F +1D676 ; mapped ; 0067 # 3.1 MATHEMATICAL MONOSPACE CAPITAL G +1D677 ; mapped ; 0068 # 3.1 MATHEMATICAL MONOSPACE CAPITAL H +1D678 ; mapped ; 0069 # 3.1 MATHEMATICAL MONOSPACE CAPITAL I +1D679 ; mapped ; 006A # 3.1 MATHEMATICAL MONOSPACE CAPITAL J +1D67A ; mapped ; 006B # 3.1 MATHEMATICAL MONOSPACE CAPITAL K +1D67B ; mapped ; 006C # 3.1 MATHEMATICAL MONOSPACE CAPITAL L +1D67C ; mapped ; 006D # 3.1 MATHEMATICAL MONOSPACE CAPITAL M +1D67D ; mapped ; 006E # 3.1 MATHEMATICAL MONOSPACE CAPITAL N +1D67E ; mapped ; 006F # 3.1 MATHEMATICAL MONOSPACE CAPITAL O +1D67F ; mapped ; 0070 # 3.1 MATHEMATICAL MONOSPACE CAPITAL P +1D680 ; mapped ; 0071 # 3.1 MATHEMATICAL MONOSPACE CAPITAL Q +1D681 ; mapped ; 0072 # 3.1 MATHEMATICAL MONOSPACE CAPITAL R +1D682 ; mapped ; 0073 # 3.1 MATHEMATICAL MONOSPACE CAPITAL S +1D683 ; mapped ; 0074 # 3.1 MATHEMATICAL MONOSPACE CAPITAL T +1D684 ; mapped ; 0075 # 3.1 MATHEMATICAL MONOSPACE CAPITAL U +1D685 ; mapped ; 0076 # 3.1 MATHEMATICAL MONOSPACE CAPITAL V +1D686 ; mapped ; 0077 # 3.1 MATHEMATICAL MONOSPACE CAPITAL W +1D687 ; mapped ; 0078 # 3.1 MATHEMATICAL MONOSPACE CAPITAL X +1D688 ; mapped ; 0079 # 3.1 MATHEMATICAL MONOSPACE CAPITAL Y +1D689 ; mapped ; 007A # 3.1 MATHEMATICAL MONOSPACE CAPITAL Z +1D68A ; mapped ; 0061 # 3.1 MATHEMATICAL MONOSPACE SMALL A +1D68B ; mapped ; 0062 # 3.1 MATHEMATICAL MONOSPACE SMALL B +1D68C ; mapped ; 0063 # 3.1 MATHEMATICAL MONOSPACE SMALL C +1D68D ; mapped ; 0064 # 3.1 MATHEMATICAL MONOSPACE SMALL D +1D68E ; mapped ; 0065 # 3.1 MATHEMATICAL MONOSPACE SMALL E +1D68F ; mapped ; 0066 # 3.1 MATHEMATICAL MONOSPACE SMALL F +1D690 ; mapped ; 0067 # 3.1 MATHEMATICAL MONOSPACE SMALL G +1D691 ; mapped ; 0068 # 3.1 MATHEMATICAL MONOSPACE SMALL H +1D692 ; mapped ; 0069 # 3.1 MATHEMATICAL MONOSPACE SMALL I +1D693 ; mapped ; 006A # 3.1 MATHEMATICAL MONOSPACE SMALL J +1D694 ; mapped ; 006B # 3.1 MATHEMATICAL MONOSPACE SMALL K +1D695 ; mapped ; 006C # 3.1 MATHEMATICAL MONOSPACE SMALL L +1D696 ; mapped ; 006D # 3.1 MATHEMATICAL MONOSPACE SMALL M +1D697 ; mapped ; 006E # 3.1 MATHEMATICAL MONOSPACE SMALL N +1D698 ; mapped ; 006F # 3.1 MATHEMATICAL MONOSPACE SMALL O +1D699 ; mapped ; 0070 # 3.1 MATHEMATICAL MONOSPACE SMALL P +1D69A ; mapped ; 0071 # 3.1 MATHEMATICAL MONOSPACE SMALL Q +1D69B ; mapped ; 0072 # 3.1 MATHEMATICAL MONOSPACE SMALL R +1D69C ; mapped ; 0073 # 3.1 MATHEMATICAL MONOSPACE SMALL S +1D69D ; mapped ; 0074 # 3.1 MATHEMATICAL MONOSPACE SMALL T +1D69E ; mapped ; 0075 # 3.1 MATHEMATICAL MONOSPACE SMALL U +1D69F ; mapped ; 0076 # 3.1 MATHEMATICAL MONOSPACE SMALL V +1D6A0 ; mapped ; 0077 # 3.1 MATHEMATICAL MONOSPACE SMALL W +1D6A1 ; mapped ; 0078 # 3.1 MATHEMATICAL MONOSPACE SMALL X +1D6A2 ; mapped ; 0079 # 3.1 MATHEMATICAL MONOSPACE SMALL Y +1D6A3 ; mapped ; 007A # 3.1 MATHEMATICAL MONOSPACE SMALL Z +1D6A4 ; mapped ; 0131 # 4.1 MATHEMATICAL ITALIC SMALL DOTLESS I +1D6A5 ; mapped ; 0237 # 4.1 MATHEMATICAL ITALIC SMALL DOTLESS J +1D6A6..1D6A7 ; disallowed # NA <reserved-1D6A6>..<reserved-1D6A7> +1D6A8 ; mapped ; 03B1 # 3.1 MATHEMATICAL BOLD CAPITAL ALPHA +1D6A9 ; mapped ; 03B2 # 3.1 MATHEMATICAL BOLD CAPITAL BETA +1D6AA ; mapped ; 03B3 # 3.1 MATHEMATICAL BOLD CAPITAL GAMMA +1D6AB ; mapped ; 03B4 # 3.1 MATHEMATICAL BOLD CAPITAL DELTA +1D6AC ; mapped ; 03B5 # 3.1 MATHEMATICAL BOLD CAPITAL EPSILON +1D6AD ; mapped ; 03B6 # 3.1 MATHEMATICAL BOLD CAPITAL ZETA +1D6AE ; mapped ; 03B7 # 3.1 MATHEMATICAL BOLD CAPITAL ETA +1D6AF ; mapped ; 03B8 # 3.1 MATHEMATICAL BOLD CAPITAL THETA +1D6B0 ; mapped ; 03B9 # 3.1 MATHEMATICAL BOLD CAPITAL IOTA +1D6B1 ; mapped ; 03BA # 3.1 MATHEMATICAL BOLD CAPITAL KAPPA +1D6B2 ; mapped ; 03BB # 3.1 MATHEMATICAL BOLD CAPITAL LAMDA +1D6B3 ; mapped ; 03BC # 3.1 MATHEMATICAL BOLD CAPITAL MU +1D6B4 ; mapped ; 03BD # 3.1 MATHEMATICAL BOLD CAPITAL NU +1D6B5 ; mapped ; 03BE # 3.1 MATHEMATICAL BOLD CAPITAL XI +1D6B6 ; mapped ; 03BF # 3.1 MATHEMATICAL BOLD CAPITAL OMICRON +1D6B7 ; mapped ; 03C0 # 3.1 MATHEMATICAL BOLD CAPITAL PI +1D6B8 ; mapped ; 03C1 # 3.1 MATHEMATICAL BOLD CAPITAL RHO +1D6B9 ; mapped ; 03B8 # 3.1 MATHEMATICAL BOLD CAPITAL THETA SYMBOL +1D6BA ; mapped ; 03C3 # 3.1 MATHEMATICAL BOLD CAPITAL SIGMA +1D6BB ; mapped ; 03C4 # 3.1 MATHEMATICAL BOLD CAPITAL TAU +1D6BC ; mapped ; 03C5 # 3.1 MATHEMATICAL BOLD CAPITAL UPSILON +1D6BD ; mapped ; 03C6 # 3.1 MATHEMATICAL BOLD CAPITAL PHI +1D6BE ; mapped ; 03C7 # 3.1 MATHEMATICAL BOLD CAPITAL CHI +1D6BF ; mapped ; 03C8 # 3.1 MATHEMATICAL BOLD CAPITAL PSI +1D6C0 ; mapped ; 03C9 # 3.1 MATHEMATICAL BOLD CAPITAL OMEGA +1D6C1 ; mapped ; 2207 # 3.1 MATHEMATICAL BOLD NABLA +1D6C2 ; mapped ; 03B1 # 3.1 MATHEMATICAL BOLD SMALL ALPHA +1D6C3 ; mapped ; 03B2 # 3.1 MATHEMATICAL BOLD SMALL BETA +1D6C4 ; mapped ; 03B3 # 3.1 MATHEMATICAL BOLD SMALL GAMMA +1D6C5 ; mapped ; 03B4 # 3.1 MATHEMATICAL BOLD SMALL DELTA +1D6C6 ; mapped ; 03B5 # 3.1 MATHEMATICAL BOLD SMALL EPSILON +1D6C7 ; mapped ; 03B6 # 3.1 MATHEMATICAL BOLD SMALL ZETA +1D6C8 ; mapped ; 03B7 # 3.1 MATHEMATICAL BOLD SMALL ETA +1D6C9 ; mapped ; 03B8 # 3.1 MATHEMATICAL BOLD SMALL THETA +1D6CA ; mapped ; 03B9 # 3.1 MATHEMATICAL BOLD SMALL IOTA +1D6CB ; mapped ; 03BA # 3.1 MATHEMATICAL BOLD SMALL KAPPA +1D6CC ; mapped ; 03BB # 3.1 MATHEMATICAL BOLD SMALL LAMDA +1D6CD ; mapped ; 03BC # 3.1 MATHEMATICAL BOLD SMALL MU +1D6CE ; mapped ; 03BD # 3.1 MATHEMATICAL BOLD SMALL NU +1D6CF ; mapped ; 03BE # 3.1 MATHEMATICAL BOLD SMALL XI +1D6D0 ; mapped ; 03BF # 3.1 MATHEMATICAL BOLD SMALL OMICRON +1D6D1 ; mapped ; 03C0 # 3.1 MATHEMATICAL BOLD SMALL PI +1D6D2 ; mapped ; 03C1 # 3.1 MATHEMATICAL BOLD SMALL RHO +1D6D3..1D6D4 ; mapped ; 03C3 # 3.1 MATHEMATICAL BOLD SMALL FINAL SIGMA..MATHEMATICAL BOLD SMALL SIGMA +1D6D5 ; mapped ; 03C4 # 3.1 MATHEMATICAL BOLD SMALL TAU +1D6D6 ; mapped ; 03C5 # 3.1 MATHEMATICAL BOLD SMALL UPSILON +1D6D7 ; mapped ; 03C6 # 3.1 MATHEMATICAL BOLD SMALL PHI +1D6D8 ; mapped ; 03C7 # 3.1 MATHEMATICAL BOLD SMALL CHI +1D6D9 ; mapped ; 03C8 # 3.1 MATHEMATICAL BOLD SMALL PSI +1D6DA ; mapped ; 03C9 # 3.1 MATHEMATICAL BOLD SMALL OMEGA +1D6DB ; mapped ; 2202 # 3.1 MATHEMATICAL BOLD PARTIAL DIFFERENTIAL +1D6DC ; mapped ; 03B5 # 3.1 MATHEMATICAL BOLD EPSILON SYMBOL +1D6DD ; mapped ; 03B8 # 3.1 MATHEMATICAL BOLD THETA SYMBOL +1D6DE ; mapped ; 03BA # 3.1 MATHEMATICAL BOLD KAPPA SYMBOL +1D6DF ; mapped ; 03C6 # 3.1 MATHEMATICAL BOLD PHI SYMBOL +1D6E0 ; mapped ; 03C1 # 3.1 MATHEMATICAL BOLD RHO SYMBOL +1D6E1 ; mapped ; 03C0 # 3.1 MATHEMATICAL BOLD PI SYMBOL +1D6E2 ; mapped ; 03B1 # 3.1 MATHEMATICAL ITALIC CAPITAL ALPHA +1D6E3 ; mapped ; 03B2 # 3.1 MATHEMATICAL ITALIC CAPITAL BETA +1D6E4 ; mapped ; 03B3 # 3.1 MATHEMATICAL ITALIC CAPITAL GAMMA +1D6E5 ; mapped ; 03B4 # 3.1 MATHEMATICAL ITALIC CAPITAL DELTA +1D6E6 ; mapped ; 03B5 # 3.1 MATHEMATICAL ITALIC CAPITAL EPSILON +1D6E7 ; mapped ; 03B6 # 3.1 MATHEMATICAL ITALIC CAPITAL ZETA +1D6E8 ; mapped ; 03B7 # 3.1 MATHEMATICAL ITALIC CAPITAL ETA +1D6E9 ; mapped ; 03B8 # 3.1 MATHEMATICAL ITALIC CAPITAL THETA +1D6EA ; mapped ; 03B9 # 3.1 MATHEMATICAL ITALIC CAPITAL IOTA +1D6EB ; mapped ; 03BA # 3.1 MATHEMATICAL ITALIC CAPITAL KAPPA +1D6EC ; mapped ; 03BB # 3.1 MATHEMATICAL ITALIC CAPITAL LAMDA +1D6ED ; mapped ; 03BC # 3.1 MATHEMATICAL ITALIC CAPITAL MU +1D6EE ; mapped ; 03BD # 3.1 MATHEMATICAL ITALIC CAPITAL NU +1D6EF ; mapped ; 03BE # 3.1 MATHEMATICAL ITALIC CAPITAL XI +1D6F0 ; mapped ; 03BF # 3.1 MATHEMATICAL ITALIC CAPITAL OMICRON +1D6F1 ; mapped ; 03C0 # 3.1 MATHEMATICAL ITALIC CAPITAL PI +1D6F2 ; mapped ; 03C1 # 3.1 MATHEMATICAL ITALIC CAPITAL RHO +1D6F3 ; mapped ; 03B8 # 3.1 MATHEMATICAL ITALIC CAPITAL THETA SYMBOL +1D6F4 ; mapped ; 03C3 # 3.1 MATHEMATICAL ITALIC CAPITAL SIGMA +1D6F5 ; mapped ; 03C4 # 3.1 MATHEMATICAL ITALIC CAPITAL TAU +1D6F6 ; mapped ; 03C5 # 3.1 MATHEMATICAL ITALIC CAPITAL UPSILON +1D6F7 ; mapped ; 03C6 # 3.1 MATHEMATICAL ITALIC CAPITAL PHI +1D6F8 ; mapped ; 03C7 # 3.1 MATHEMATICAL ITALIC CAPITAL CHI +1D6F9 ; mapped ; 03C8 # 3.1 MATHEMATICAL ITALIC CAPITAL PSI +1D6FA ; mapped ; 03C9 # 3.1 MATHEMATICAL ITALIC CAPITAL OMEGA +1D6FB ; mapped ; 2207 # 3.1 MATHEMATICAL ITALIC NABLA +1D6FC ; mapped ; 03B1 # 3.1 MATHEMATICAL ITALIC SMALL ALPHA +1D6FD ; mapped ; 03B2 # 3.1 MATHEMATICAL ITALIC SMALL BETA +1D6FE ; mapped ; 03B3 # 3.1 MATHEMATICAL ITALIC SMALL GAMMA +1D6FF ; mapped ; 03B4 # 3.1 MATHEMATICAL ITALIC SMALL DELTA +1D700 ; mapped ; 03B5 # 3.1 MATHEMATICAL ITALIC SMALL EPSILON +1D701 ; mapped ; 03B6 # 3.1 MATHEMATICAL ITALIC SMALL ZETA +1D702 ; mapped ; 03B7 # 3.1 MATHEMATICAL ITALIC SMALL ETA +1D703 ; mapped ; 03B8 # 3.1 MATHEMATICAL ITALIC SMALL THETA +1D704 ; mapped ; 03B9 # 3.1 MATHEMATICAL ITALIC SMALL IOTA +1D705 ; mapped ; 03BA # 3.1 MATHEMATICAL ITALIC SMALL KAPPA +1D706 ; mapped ; 03BB # 3.1 MATHEMATICAL ITALIC SMALL LAMDA +1D707 ; mapped ; 03BC # 3.1 MATHEMATICAL ITALIC SMALL MU +1D708 ; mapped ; 03BD # 3.1 MATHEMATICAL ITALIC SMALL NU +1D709 ; mapped ; 03BE # 3.1 MATHEMATICAL ITALIC SMALL XI +1D70A ; mapped ; 03BF # 3.1 MATHEMATICAL ITALIC SMALL OMICRON +1D70B ; mapped ; 03C0 # 3.1 MATHEMATICAL ITALIC SMALL PI +1D70C ; mapped ; 03C1 # 3.1 MATHEMATICAL ITALIC SMALL RHO +1D70D..1D70E ; mapped ; 03C3 # 3.1 MATHEMATICAL ITALIC SMALL FINAL SIGMA..MATHEMATICAL ITALIC SMALL SIGMA +1D70F ; mapped ; 03C4 # 3.1 MATHEMATICAL ITALIC SMALL TAU +1D710 ; mapped ; 03C5 # 3.1 MATHEMATICAL ITALIC SMALL UPSILON +1D711 ; mapped ; 03C6 # 3.1 MATHEMATICAL ITALIC SMALL PHI +1D712 ; mapped ; 03C7 # 3.1 MATHEMATICAL ITALIC SMALL CHI +1D713 ; mapped ; 03C8 # 3.1 MATHEMATICAL ITALIC SMALL PSI +1D714 ; mapped ; 03C9 # 3.1 MATHEMATICAL ITALIC SMALL OMEGA +1D715 ; mapped ; 2202 # 3.1 MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL +1D716 ; mapped ; 03B5 # 3.1 MATHEMATICAL ITALIC EPSILON SYMBOL +1D717 ; mapped ; 03B8 # 3.1 MATHEMATICAL ITALIC THETA SYMBOL +1D718 ; mapped ; 03BA # 3.1 MATHEMATICAL ITALIC KAPPA SYMBOL +1D719 ; mapped ; 03C6 # 3.1 MATHEMATICAL ITALIC PHI SYMBOL +1D71A ; mapped ; 03C1 # 3.1 MATHEMATICAL ITALIC RHO SYMBOL +1D71B ; mapped ; 03C0 # 3.1 MATHEMATICAL ITALIC PI SYMBOL +1D71C ; mapped ; 03B1 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL ALPHA +1D71D ; mapped ; 03B2 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL BETA +1D71E ; mapped ; 03B3 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL GAMMA +1D71F ; mapped ; 03B4 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL DELTA +1D720 ; mapped ; 03B5 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL EPSILON +1D721 ; mapped ; 03B6 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL ZETA +1D722 ; mapped ; 03B7 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL ETA +1D723 ; mapped ; 03B8 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL THETA +1D724 ; mapped ; 03B9 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL IOTA +1D725 ; mapped ; 03BA # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL KAPPA +1D726 ; mapped ; 03BB # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL LAMDA +1D727 ; mapped ; 03BC # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL MU +1D728 ; mapped ; 03BD # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL NU +1D729 ; mapped ; 03BE # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL XI +1D72A ; mapped ; 03BF # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL OMICRON +1D72B ; mapped ; 03C0 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL PI +1D72C ; mapped ; 03C1 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL RHO +1D72D ; mapped ; 03B8 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL +1D72E ; mapped ; 03C3 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL SIGMA +1D72F ; mapped ; 03C4 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL TAU +1D730 ; mapped ; 03C5 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL UPSILON +1D731 ; mapped ; 03C6 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL PHI +1D732 ; mapped ; 03C7 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL CHI +1D733 ; mapped ; 03C8 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL PSI +1D734 ; mapped ; 03C9 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL OMEGA +1D735 ; mapped ; 2207 # 3.1 MATHEMATICAL BOLD ITALIC NABLA +1D736 ; mapped ; 03B1 # 3.1 MATHEMATICAL BOLD ITALIC SMALL ALPHA +1D737 ; mapped ; 03B2 # 3.1 MATHEMATICAL BOLD ITALIC SMALL BETA +1D738 ; mapped ; 03B3 # 3.1 MATHEMATICAL BOLD ITALIC SMALL GAMMA +1D739 ; mapped ; 03B4 # 3.1 MATHEMATICAL BOLD ITALIC SMALL DELTA +1D73A ; mapped ; 03B5 # 3.1 MATHEMATICAL BOLD ITALIC SMALL EPSILON +1D73B ; mapped ; 03B6 # 3.1 MATHEMATICAL BOLD ITALIC SMALL ZETA +1D73C ; mapped ; 03B7 # 3.1 MATHEMATICAL BOLD ITALIC SMALL ETA +1D73D ; mapped ; 03B8 # 3.1 MATHEMATICAL BOLD ITALIC SMALL THETA +1D73E ; mapped ; 03B9 # 3.1 MATHEMATICAL BOLD ITALIC SMALL IOTA +1D73F ; mapped ; 03BA # 3.1 MATHEMATICAL BOLD ITALIC SMALL KAPPA +1D740 ; mapped ; 03BB # 3.1 MATHEMATICAL BOLD ITALIC SMALL LAMDA +1D741 ; mapped ; 03BC # 3.1 MATHEMATICAL BOLD ITALIC SMALL MU +1D742 ; mapped ; 03BD # 3.1 MATHEMATICAL BOLD ITALIC SMALL NU +1D743 ; mapped ; 03BE # 3.1 MATHEMATICAL BOLD ITALIC SMALL XI +1D744 ; mapped ; 03BF # 3.1 MATHEMATICAL BOLD ITALIC SMALL OMICRON +1D745 ; mapped ; 03C0 # 3.1 MATHEMATICAL BOLD ITALIC SMALL PI +1D746 ; mapped ; 03C1 # 3.1 MATHEMATICAL BOLD ITALIC SMALL RHO +1D747..1D748 ; mapped ; 03C3 # 3.1 MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA..MATHEMATICAL BOLD ITALIC SMALL SIGMA +1D749 ; mapped ; 03C4 # 3.1 MATHEMATICAL BOLD ITALIC SMALL TAU +1D74A ; mapped ; 03C5 # 3.1 MATHEMATICAL BOLD ITALIC SMALL UPSILON +1D74B ; mapped ; 03C6 # 3.1 MATHEMATICAL BOLD ITALIC SMALL PHI +1D74C ; mapped ; 03C7 # 3.1 MATHEMATICAL BOLD ITALIC SMALL CHI +1D74D ; mapped ; 03C8 # 3.1 MATHEMATICAL BOLD ITALIC SMALL PSI +1D74E ; mapped ; 03C9 # 3.1 MATHEMATICAL BOLD ITALIC SMALL OMEGA +1D74F ; mapped ; 2202 # 3.1 MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL +1D750 ; mapped ; 03B5 # 3.1 MATHEMATICAL BOLD ITALIC EPSILON SYMBOL +1D751 ; mapped ; 03B8 # 3.1 MATHEMATICAL BOLD ITALIC THETA SYMBOL +1D752 ; mapped ; 03BA # 3.1 MATHEMATICAL BOLD ITALIC KAPPA SYMBOL +1D753 ; mapped ; 03C6 # 3.1 MATHEMATICAL BOLD ITALIC PHI SYMBOL +1D754 ; mapped ; 03C1 # 3.1 MATHEMATICAL BOLD ITALIC RHO SYMBOL +1D755 ; mapped ; 03C0 # 3.1 MATHEMATICAL BOLD ITALIC PI SYMBOL +1D756 ; mapped ; 03B1 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA +1D757 ; mapped ; 03B2 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA +1D758 ; mapped ; 03B3 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA +1D759 ; mapped ; 03B4 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA +1D75A ; mapped ; 03B5 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON +1D75B ; mapped ; 03B6 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA +1D75C ; mapped ; 03B7 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA +1D75D ; mapped ; 03B8 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA +1D75E ; mapped ; 03B9 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA +1D75F ; mapped ; 03BA # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA +1D760 ; mapped ; 03BB # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA +1D761 ; mapped ; 03BC # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL MU +1D762 ; mapped ; 03BD # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL NU +1D763 ; mapped ; 03BE # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL XI +1D764 ; mapped ; 03BF # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON +1D765 ; mapped ; 03C0 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL PI +1D766 ; mapped ; 03C1 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO +1D767 ; mapped ; 03B8 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL +1D768 ; mapped ; 03C3 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA +1D769 ; mapped ; 03C4 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU +1D76A ; mapped ; 03C5 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON +1D76B ; mapped ; 03C6 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI +1D76C ; mapped ; 03C7 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI +1D76D ; mapped ; 03C8 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI +1D76E ; mapped ; 03C9 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA +1D76F ; mapped ; 2207 # 3.1 MATHEMATICAL SANS-SERIF BOLD NABLA +1D770 ; mapped ; 03B1 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA +1D771 ; mapped ; 03B2 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL BETA +1D772 ; mapped ; 03B3 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA +1D773 ; mapped ; 03B4 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL DELTA +1D774 ; mapped ; 03B5 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON +1D775 ; mapped ; 03B6 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL ZETA +1D776 ; mapped ; 03B7 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL ETA +1D777 ; mapped ; 03B8 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL THETA +1D778 ; mapped ; 03B9 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL IOTA +1D779 ; mapped ; 03BA # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA +1D77A ; mapped ; 03BB # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA +1D77B ; mapped ; 03BC # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL MU +1D77C ; mapped ; 03BD # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL NU +1D77D ; mapped ; 03BE # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL XI +1D77E ; mapped ; 03BF # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON +1D77F ; mapped ; 03C0 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL PI +1D780 ; mapped ; 03C1 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL RHO +1D781..1D782 ; mapped ; 03C3 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA..MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA +1D783 ; mapped ; 03C4 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL TAU +1D784 ; mapped ; 03C5 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON +1D785 ; mapped ; 03C6 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL PHI +1D786 ; mapped ; 03C7 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL CHI +1D787 ; mapped ; 03C8 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL PSI +1D788 ; mapped ; 03C9 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA +1D789 ; mapped ; 2202 # 3.1 MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL +1D78A ; mapped ; 03B5 # 3.1 MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL +1D78B ; mapped ; 03B8 # 3.1 MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL +1D78C ; mapped ; 03BA # 3.1 MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL +1D78D ; mapped ; 03C6 # 3.1 MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL +1D78E ; mapped ; 03C1 # 3.1 MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL +1D78F ; mapped ; 03C0 # 3.1 MATHEMATICAL SANS-SERIF BOLD PI SYMBOL +1D790 ; mapped ; 03B1 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA +1D791 ; mapped ; 03B2 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA +1D792 ; mapped ; 03B3 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA +1D793 ; mapped ; 03B4 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA +1D794 ; mapped ; 03B5 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON +1D795 ; mapped ; 03B6 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA +1D796 ; mapped ; 03B7 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA +1D797 ; mapped ; 03B8 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA +1D798 ; mapped ; 03B9 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA +1D799 ; mapped ; 03BA # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA +1D79A ; mapped ; 03BB # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA +1D79B ; mapped ; 03BC # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU +1D79C ; mapped ; 03BD # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU +1D79D ; mapped ; 03BE # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI +1D79E ; mapped ; 03BF # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON +1D79F ; mapped ; 03C0 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI +1D7A0 ; mapped ; 03C1 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO +1D7A1 ; mapped ; 03B8 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL +1D7A2 ; mapped ; 03C3 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA +1D7A3 ; mapped ; 03C4 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU +1D7A4 ; mapped ; 03C5 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON +1D7A5 ; mapped ; 03C6 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI +1D7A6 ; mapped ; 03C7 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI +1D7A7 ; mapped ; 03C8 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI +1D7A8 ; mapped ; 03C9 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA +1D7A9 ; mapped ; 2207 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA +1D7AA ; mapped ; 03B1 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA +1D7AB ; mapped ; 03B2 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA +1D7AC ; mapped ; 03B3 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA +1D7AD ; mapped ; 03B4 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA +1D7AE ; mapped ; 03B5 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON +1D7AF ; mapped ; 03B6 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA +1D7B0 ; mapped ; 03B7 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA +1D7B1 ; mapped ; 03B8 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA +1D7B2 ; mapped ; 03B9 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA +1D7B3 ; mapped ; 03BA # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA +1D7B4 ; mapped ; 03BB # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA +1D7B5 ; mapped ; 03BC # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU +1D7B6 ; mapped ; 03BD # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU +1D7B7 ; mapped ; 03BE # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI +1D7B8 ; mapped ; 03BF # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON +1D7B9 ; mapped ; 03C0 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI +1D7BA ; mapped ; 03C1 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO +1D7BB..1D7BC ; mapped ; 03C3 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA +1D7BD ; mapped ; 03C4 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU +1D7BE ; mapped ; 03C5 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON +1D7BF ; mapped ; 03C6 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI +1D7C0 ; mapped ; 03C7 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI +1D7C1 ; mapped ; 03C8 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI +1D7C2 ; mapped ; 03C9 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA +1D7C3 ; mapped ; 2202 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL +1D7C4 ; mapped ; 03B5 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL +1D7C5 ; mapped ; 03B8 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL +1D7C6 ; mapped ; 03BA # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL +1D7C7 ; mapped ; 03C6 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL +1D7C8 ; mapped ; 03C1 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL +1D7C9 ; mapped ; 03C0 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL +1D7CA..1D7CB ; mapped ; 03DD # 5.0 MATHEMATICAL BOLD CAPITAL DIGAMMA..MATHEMATICAL BOLD SMALL DIGAMMA +1D7CC..1D7CD ; disallowed # NA <reserved-1D7CC>..<reserved-1D7CD> +1D7CE ; mapped ; 0030 # 3.1 MATHEMATICAL BOLD DIGIT ZERO +1D7CF ; mapped ; 0031 # 3.1 MATHEMATICAL BOLD DIGIT ONE +1D7D0 ; mapped ; 0032 # 3.1 MATHEMATICAL BOLD DIGIT TWO +1D7D1 ; mapped ; 0033 # 3.1 MATHEMATICAL BOLD DIGIT THREE +1D7D2 ; mapped ; 0034 # 3.1 MATHEMATICAL BOLD DIGIT FOUR +1D7D3 ; mapped ; 0035 # 3.1 MATHEMATICAL BOLD DIGIT FIVE +1D7D4 ; mapped ; 0036 # 3.1 MATHEMATICAL BOLD DIGIT SIX +1D7D5 ; mapped ; 0037 # 3.1 MATHEMATICAL BOLD DIGIT SEVEN +1D7D6 ; mapped ; 0038 # 3.1 MATHEMATICAL BOLD DIGIT EIGHT +1D7D7 ; mapped ; 0039 # 3.1 MATHEMATICAL BOLD DIGIT NINE +1D7D8 ; mapped ; 0030 # 3.1 MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO +1D7D9 ; mapped ; 0031 # 3.1 MATHEMATICAL DOUBLE-STRUCK DIGIT ONE +1D7DA ; mapped ; 0032 # 3.1 MATHEMATICAL DOUBLE-STRUCK DIGIT TWO +1D7DB ; mapped ; 0033 # 3.1 MATHEMATICAL DOUBLE-STRUCK DIGIT THREE +1D7DC ; mapped ; 0034 # 3.1 MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR +1D7DD ; mapped ; 0035 # 3.1 MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE +1D7DE ; mapped ; 0036 # 3.1 MATHEMATICAL DOUBLE-STRUCK DIGIT SIX +1D7DF ; mapped ; 0037 # 3.1 MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN +1D7E0 ; mapped ; 0038 # 3.1 MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT +1D7E1 ; mapped ; 0039 # 3.1 MATHEMATICAL DOUBLE-STRUCK DIGIT NINE +1D7E2 ; mapped ; 0030 # 3.1 MATHEMATICAL SANS-SERIF DIGIT ZERO +1D7E3 ; mapped ; 0031 # 3.1 MATHEMATICAL SANS-SERIF DIGIT ONE +1D7E4 ; mapped ; 0032 # 3.1 MATHEMATICAL SANS-SERIF DIGIT TWO +1D7E5 ; mapped ; 0033 # 3.1 MATHEMATICAL SANS-SERIF DIGIT THREE +1D7E6 ; mapped ; 0034 # 3.1 MATHEMATICAL SANS-SERIF DIGIT FOUR +1D7E7 ; mapped ; 0035 # 3.1 MATHEMATICAL SANS-SERIF DIGIT FIVE +1D7E8 ; mapped ; 0036 # 3.1 MATHEMATICAL SANS-SERIF DIGIT SIX +1D7E9 ; mapped ; 0037 # 3.1 MATHEMATICAL SANS-SERIF DIGIT SEVEN +1D7EA ; mapped ; 0038 # 3.1 MATHEMATICAL SANS-SERIF DIGIT EIGHT +1D7EB ; mapped ; 0039 # 3.1 MATHEMATICAL SANS-SERIF DIGIT NINE +1D7EC ; mapped ; 0030 # 3.1 MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO +1D7ED ; mapped ; 0031 # 3.1 MATHEMATICAL SANS-SERIF BOLD DIGIT ONE +1D7EE ; mapped ; 0032 # 3.1 MATHEMATICAL SANS-SERIF BOLD DIGIT TWO +1D7EF ; mapped ; 0033 # 3.1 MATHEMATICAL SANS-SERIF BOLD DIGIT THREE +1D7F0 ; mapped ; 0034 # 3.1 MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR +1D7F1 ; mapped ; 0035 # 3.1 MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE +1D7F2 ; mapped ; 0036 # 3.1 MATHEMATICAL SANS-SERIF BOLD DIGIT SIX +1D7F3 ; mapped ; 0037 # 3.1 MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN +1D7F4 ; mapped ; 0038 # 3.1 MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT +1D7F5 ; mapped ; 0039 # 3.1 MATHEMATICAL SANS-SERIF BOLD DIGIT NINE +1D7F6 ; mapped ; 0030 # 3.1 MATHEMATICAL MONOSPACE DIGIT ZERO +1D7F7 ; mapped ; 0031 # 3.1 MATHEMATICAL MONOSPACE DIGIT ONE +1D7F8 ; mapped ; 0032 # 3.1 MATHEMATICAL MONOSPACE DIGIT TWO +1D7F9 ; mapped ; 0033 # 3.1 MATHEMATICAL MONOSPACE DIGIT THREE +1D7FA ; mapped ; 0034 # 3.1 MATHEMATICAL MONOSPACE DIGIT FOUR +1D7FB ; mapped ; 0035 # 3.1 MATHEMATICAL MONOSPACE DIGIT FIVE +1D7FC ; mapped ; 0036 # 3.1 MATHEMATICAL MONOSPACE DIGIT SIX +1D7FD ; mapped ; 0037 # 3.1 MATHEMATICAL MONOSPACE DIGIT SEVEN +1D7FE ; mapped ; 0038 # 3.1 MATHEMATICAL MONOSPACE DIGIT EIGHT +1D7FF ; mapped ; 0039 # 3.1 MATHEMATICAL MONOSPACE DIGIT NINE +1D800..1D9FF ; valid ; ; NV8 # 8.0 SIGNWRITING HAND-FIST INDEX..SIGNWRITING HEAD +1DA00..1DA36 ; valid # 8.0 SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN +1DA37..1DA3A ; valid ; ; NV8 # 8.0 SIGNWRITING AIR BLOW SMALL ROTATIONS..SIGNWRITING BREATH EXHALE +1DA3B..1DA6C ; valid # 8.0 SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT +1DA6D..1DA74 ; valid ; ; NV8 # 8.0 SIGNWRITING SHOULDER HIP SPINE..SIGNWRITING TORSO-FLOORPLANE TWISTING +1DA75 ; valid # 8.0 SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS +1DA76..1DA83 ; valid ; ; NV8 # 8.0 SIGNWRITING LIMB COMBINATION..SIGNWRITING LOCATION DEPTH +1DA84 ; valid # 8.0 SIGNWRITING LOCATION HEAD NECK +1DA85..1DA8B ; valid ; ; NV8 # 8.0 SIGNWRITING LOCATION TORSO..SIGNWRITING PARENTHESIS +1DA8C..1DA9A ; disallowed # NA <reserved-1DA8C>..<reserved-1DA9A> +1DA9B..1DA9F ; valid # 8.0 SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6 +1DAA0 ; disallowed # NA <reserved-1DAA0> +1DAA1..1DAAF ; valid # 8.0 SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16 +1DAB0..1DEFF ; disallowed # NA <reserved-1DAB0>..<reserved-1DEFF> +1DF00..1DF1E ; valid # 14.0 LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER S WITH CURL +1DF1F..1DF24 ; disallowed # NA <reserved-1DF1F>..<reserved-1DF24> +1DF25..1DF2A ; valid # 15.0 LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK +1DF2B..1DFFF ; disallowed # NA <reserved-1DF2B>..<reserved-1DFFF> +1E000..1E006 ; valid # 9.0 COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE +1E007 ; disallowed # NA <reserved-1E007> +1E008..1E018 ; valid # 9.0 COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU +1E019..1E01A ; disallowed # NA <reserved-1E019>..<reserved-1E01A> +1E01B..1E021 ; valid # 9.0 COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI +1E022 ; disallowed # NA <reserved-1E022> +1E023..1E024 ; valid # 9.0 COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS +1E025 ; disallowed # NA <reserved-1E025> +1E026..1E02A ; valid # 9.0 COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA +1E02B..1E02F ; disallowed # NA <reserved-1E02B>..<reserved-1E02F> +1E030 ; mapped ; 0430 # 15.0 MODIFIER LETTER CYRILLIC SMALL A +1E031 ; mapped ; 0431 # 15.0 MODIFIER LETTER CYRILLIC SMALL BE +1E032 ; mapped ; 0432 # 15.0 MODIFIER LETTER CYRILLIC SMALL VE +1E033 ; mapped ; 0433 # 15.0 MODIFIER LETTER CYRILLIC SMALL GHE +1E034 ; mapped ; 0434 # 15.0 MODIFIER LETTER CYRILLIC SMALL DE +1E035 ; mapped ; 0435 # 15.0 MODIFIER LETTER CYRILLIC SMALL IE +1E036 ; mapped ; 0436 # 15.0 MODIFIER LETTER CYRILLIC SMALL ZHE +1E037 ; mapped ; 0437 # 15.0 MODIFIER LETTER CYRILLIC SMALL ZE +1E038 ; mapped ; 0438 # 15.0 MODIFIER LETTER CYRILLIC SMALL I +1E039 ; mapped ; 043A # 15.0 MODIFIER LETTER CYRILLIC SMALL KA +1E03A ; mapped ; 043B # 15.0 MODIFIER LETTER CYRILLIC SMALL EL +1E03B ; mapped ; 043C # 15.0 MODIFIER LETTER CYRILLIC SMALL EM +1E03C ; mapped ; 043E # 15.0 MODIFIER LETTER CYRILLIC SMALL O +1E03D ; mapped ; 043F # 15.0 MODIFIER LETTER CYRILLIC SMALL PE +1E03E ; mapped ; 0440 # 15.0 MODIFIER LETTER CYRILLIC SMALL ER +1E03F ; mapped ; 0441 # 15.0 MODIFIER LETTER CYRILLIC SMALL ES +1E040 ; mapped ; 0442 # 15.0 MODIFIER LETTER CYRILLIC SMALL TE +1E041 ; mapped ; 0443 # 15.0 MODIFIER LETTER CYRILLIC SMALL U +1E042 ; mapped ; 0444 # 15.0 MODIFIER LETTER CYRILLIC SMALL EF +1E043 ; mapped ; 0445 # 15.0 MODIFIER LETTER CYRILLIC SMALL HA +1E044 ; mapped ; 0446 # 15.0 MODIFIER LETTER CYRILLIC SMALL TSE +1E045 ; mapped ; 0447 # 15.0 MODIFIER LETTER CYRILLIC SMALL CHE +1E046 ; mapped ; 0448 # 15.0 MODIFIER LETTER CYRILLIC SMALL SHA +1E047 ; mapped ; 044B # 15.0 MODIFIER LETTER CYRILLIC SMALL YERU +1E048 ; mapped ; 044D # 15.0 MODIFIER LETTER CYRILLIC SMALL E +1E049 ; mapped ; 044E # 15.0 MODIFIER LETTER CYRILLIC SMALL YU +1E04A ; mapped ; A689 # 15.0 MODIFIER LETTER CYRILLIC SMALL DZZE +1E04B ; mapped ; 04D9 # 15.0 MODIFIER LETTER CYRILLIC SMALL SCHWA +1E04C ; mapped ; 0456 # 15.0 MODIFIER LETTER CYRILLIC SMALL BYELORUSSIAN-UKRAINIAN I +1E04D ; mapped ; 0458 # 15.0 MODIFIER LETTER CYRILLIC SMALL JE +1E04E ; mapped ; 04E9 # 15.0 MODIFIER LETTER CYRILLIC SMALL BARRED O +1E04F ; mapped ; 04AF # 15.0 MODIFIER LETTER CYRILLIC SMALL STRAIGHT U +1E050 ; mapped ; 04CF # 15.0 MODIFIER LETTER CYRILLIC SMALL PALOCHKA +1E051 ; mapped ; 0430 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER A +1E052 ; mapped ; 0431 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER BE +1E053 ; mapped ; 0432 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER VE +1E054 ; mapped ; 0433 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER GHE +1E055 ; mapped ; 0434 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER DE +1E056 ; mapped ; 0435 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER IE +1E057 ; mapped ; 0436 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER ZHE +1E058 ; mapped ; 0437 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER ZE +1E059 ; mapped ; 0438 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER I +1E05A ; mapped ; 043A # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER KA +1E05B ; mapped ; 043B # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER EL +1E05C ; mapped ; 043E # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER O +1E05D ; mapped ; 043F # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER PE +1E05E ; mapped ; 0441 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER ES +1E05F ; mapped ; 0443 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER U +1E060 ; mapped ; 0444 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER EF +1E061 ; mapped ; 0445 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER HA +1E062 ; mapped ; 0446 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER TSE +1E063 ; mapped ; 0447 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER CHE +1E064 ; mapped ; 0448 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER SHA +1E065 ; mapped ; 044A # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER HARD SIGN +1E066 ; mapped ; 044B # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER YERU +1E067 ; mapped ; 0491 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER GHE WITH UPTURN +1E068 ; mapped ; 0456 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER BYELORUSSIAN-UKRAINIAN I +1E069 ; mapped ; 0455 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER DZE +1E06A ; mapped ; 045F # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER DZHE +1E06B ; mapped ; 04AB # 15.0 MODIFIER LETTER CYRILLIC SMALL ES WITH DESCENDER +1E06C ; mapped ; A651 # 15.0 MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER +1E06D ; mapped ; 04B1 # 15.0 MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE +1E06E..1E08E ; disallowed # NA <reserved-1E06E>..<reserved-1E08E> +1E08F ; valid # 15.0 COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I +1E090..1E0FF ; disallowed # NA <reserved-1E090>..<reserved-1E0FF> +1E100..1E12C ; valid # 12.0 NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W +1E12D..1E12F ; disallowed # NA <reserved-1E12D>..<reserved-1E12F> +1E130..1E13D ; valid # 12.0 NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER +1E13E..1E13F ; disallowed # NA <reserved-1E13E>..<reserved-1E13F> +1E140..1E149 ; valid # 12.0 NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE +1E14A..1E14D ; disallowed # NA <reserved-1E14A>..<reserved-1E14D> +1E14E ; valid # 12.0 NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ +1E14F ; valid ; ; NV8 # 12.0 NYIAKENG PUACHUE HMONG CIRCLED CA +1E150..1E28F ; disallowed # NA <reserved-1E150>..<reserved-1E28F> +1E290..1E2AE ; valid # 14.0 TOTO LETTER PA..TOTO SIGN RISING TONE +1E2AF..1E2BF ; disallowed # NA <reserved-1E2AF>..<reserved-1E2BF> +1E2C0..1E2F9 ; valid # 12.0 WANCHO LETTER AA..WANCHO DIGIT NINE +1E2FA..1E2FE ; disallowed # NA <reserved-1E2FA>..<reserved-1E2FE> +1E2FF ; valid ; ; NV8 # 12.0 WANCHO NGUN SIGN +1E300..1E4CF ; disallowed # NA <reserved-1E300>..<reserved-1E4CF> +1E4D0..1E4F9 ; valid # 15.0 NAG MUNDARI LETTER O..NAG MUNDARI DIGIT NINE +1E4FA..1E7DF ; disallowed # NA <reserved-1E4FA>..<reserved-1E7DF> +1E7E0..1E7E6 ; valid # 14.0 ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO +1E7E7 ; disallowed # NA <reserved-1E7E7> +1E7E8..1E7EB ; valid # 14.0 ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE +1E7EC ; disallowed # NA <reserved-1E7EC> +1E7ED..1E7EE ; valid # 14.0 ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE +1E7EF ; disallowed # NA <reserved-1E7EF> +1E7F0..1E7FE ; valid # 14.0 ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE +1E7FF ; disallowed # NA <reserved-1E7FF> +1E800..1E8C4 ; valid # 7.0 MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON +1E8C5..1E8C6 ; disallowed # NA <reserved-1E8C5>..<reserved-1E8C6> +1E8C7..1E8CF ; valid ; ; NV8 # 7.0 MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE +1E8D0..1E8D6 ; valid # 7.0 MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS +1E8D7..1E8FF ; disallowed # NA <reserved-1E8D7>..<reserved-1E8FF> +1E900 ; mapped ; 1E922 # 9.0 ADLAM CAPITAL LETTER ALIF +1E901 ; mapped ; 1E923 # 9.0 ADLAM CAPITAL LETTER DAALI +1E902 ; mapped ; 1E924 # 9.0 ADLAM CAPITAL LETTER LAAM +1E903 ; mapped ; 1E925 # 9.0 ADLAM CAPITAL LETTER MIIM +1E904 ; mapped ; 1E926 # 9.0 ADLAM CAPITAL LETTER BA +1E905 ; mapped ; 1E927 # 9.0 ADLAM CAPITAL LETTER SINNYIIYHE +1E906 ; mapped ; 1E928 # 9.0 ADLAM CAPITAL LETTER PE +1E907 ; mapped ; 1E929 # 9.0 ADLAM CAPITAL LETTER BHE +1E908 ; mapped ; 1E92A # 9.0 ADLAM CAPITAL LETTER RA +1E909 ; mapped ; 1E92B # 9.0 ADLAM CAPITAL LETTER E +1E90A ; mapped ; 1E92C # 9.0 ADLAM CAPITAL LETTER FA +1E90B ; mapped ; 1E92D # 9.0 ADLAM CAPITAL LETTER I +1E90C ; mapped ; 1E92E # 9.0 ADLAM CAPITAL LETTER O +1E90D ; mapped ; 1E92F # 9.0 ADLAM CAPITAL LETTER DHA +1E90E ; mapped ; 1E930 # 9.0 ADLAM CAPITAL LETTER YHE +1E90F ; mapped ; 1E931 # 9.0 ADLAM CAPITAL LETTER WAW +1E910 ; mapped ; 1E932 # 9.0 ADLAM CAPITAL LETTER NUN +1E911 ; mapped ; 1E933 # 9.0 ADLAM CAPITAL LETTER KAF +1E912 ; mapped ; 1E934 # 9.0 ADLAM CAPITAL LETTER YA +1E913 ; mapped ; 1E935 # 9.0 ADLAM CAPITAL LETTER U +1E914 ; mapped ; 1E936 # 9.0 ADLAM CAPITAL LETTER JIIM +1E915 ; mapped ; 1E937 # 9.0 ADLAM CAPITAL LETTER CHI +1E916 ; mapped ; 1E938 # 9.0 ADLAM CAPITAL LETTER HA +1E917 ; mapped ; 1E939 # 9.0 ADLAM CAPITAL LETTER QAAF +1E918 ; mapped ; 1E93A # 9.0 ADLAM CAPITAL LETTER GA +1E919 ; mapped ; 1E93B # 9.0 ADLAM CAPITAL LETTER NYA +1E91A ; mapped ; 1E93C # 9.0 ADLAM CAPITAL LETTER TU +1E91B ; mapped ; 1E93D # 9.0 ADLAM CAPITAL LETTER NHA +1E91C ; mapped ; 1E93E # 9.0 ADLAM CAPITAL LETTER VA +1E91D ; mapped ; 1E93F # 9.0 ADLAM CAPITAL LETTER KHA +1E91E ; mapped ; 1E940 # 9.0 ADLAM CAPITAL LETTER GBE +1E91F ; mapped ; 1E941 # 9.0 ADLAM CAPITAL LETTER ZAL +1E920 ; mapped ; 1E942 # 9.0 ADLAM CAPITAL LETTER KPO +1E921 ; mapped ; 1E943 # 9.0 ADLAM CAPITAL LETTER SHA +1E922..1E94A ; valid # 9.0 ADLAM SMALL LETTER ALIF..ADLAM NUKTA +1E94B ; valid # 12.0 ADLAM NASALIZATION MARK +1E94C..1E94F ; disallowed # NA <reserved-1E94C>..<reserved-1E94F> +1E950..1E959 ; valid # 9.0 ADLAM DIGIT ZERO..ADLAM DIGIT NINE +1E95A..1E95D ; disallowed # NA <reserved-1E95A>..<reserved-1E95D> +1E95E..1E95F ; valid ; ; NV8 # 9.0 ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK +1E960..1EC70 ; disallowed # NA <reserved-1E960>..<reserved-1EC70> +1EC71..1ECB4 ; valid ; ; NV8 # 11.0 INDIC SIYAQ NUMBER ONE..INDIC SIYAQ ALTERNATE LAKH MARK +1ECB5..1ED00 ; disallowed # NA <reserved-1ECB5>..<reserved-1ED00> +1ED01..1ED3D ; valid ; ; NV8 # 12.0 OTTOMAN SIYAQ NUMBER ONE..OTTOMAN SIYAQ FRACTION ONE SIXTH +1ED3E..1EDFF ; disallowed # NA <reserved-1ED3E>..<reserved-1EDFF> +1EE00 ; mapped ; 0627 # 6.1 ARABIC MATHEMATICAL ALEF +1EE01 ; mapped ; 0628 # 6.1 ARABIC MATHEMATICAL BEH +1EE02 ; mapped ; 062C # 6.1 ARABIC MATHEMATICAL JEEM +1EE03 ; mapped ; 062F # 6.1 ARABIC MATHEMATICAL DAL +1EE04 ; disallowed # NA <reserved-1EE04> +1EE05 ; mapped ; 0648 # 6.1 ARABIC MATHEMATICAL WAW +1EE06 ; mapped ; 0632 # 6.1 ARABIC MATHEMATICAL ZAIN +1EE07 ; mapped ; 062D # 6.1 ARABIC MATHEMATICAL HAH +1EE08 ; mapped ; 0637 # 6.1 ARABIC MATHEMATICAL TAH +1EE09 ; mapped ; 064A # 6.1 ARABIC MATHEMATICAL YEH +1EE0A ; mapped ; 0643 # 6.1 ARABIC MATHEMATICAL KAF +1EE0B ; mapped ; 0644 # 6.1 ARABIC MATHEMATICAL LAM +1EE0C ; mapped ; 0645 # 6.1 ARABIC MATHEMATICAL MEEM +1EE0D ; mapped ; 0646 # 6.1 ARABIC MATHEMATICAL NOON +1EE0E ; mapped ; 0633 # 6.1 ARABIC MATHEMATICAL SEEN +1EE0F ; mapped ; 0639 # 6.1 ARABIC MATHEMATICAL AIN +1EE10 ; mapped ; 0641 # 6.1 ARABIC MATHEMATICAL FEH +1EE11 ; mapped ; 0635 # 6.1 ARABIC MATHEMATICAL SAD +1EE12 ; mapped ; 0642 # 6.1 ARABIC MATHEMATICAL QAF +1EE13 ; mapped ; 0631 # 6.1 ARABIC MATHEMATICAL REH +1EE14 ; mapped ; 0634 # 6.1 ARABIC MATHEMATICAL SHEEN +1EE15 ; mapped ; 062A # 6.1 ARABIC MATHEMATICAL TEH +1EE16 ; mapped ; 062B # 6.1 ARABIC MATHEMATICAL THEH +1EE17 ; mapped ; 062E # 6.1 ARABIC MATHEMATICAL KHAH +1EE18 ; mapped ; 0630 # 6.1 ARABIC MATHEMATICAL THAL +1EE19 ; mapped ; 0636 # 6.1 ARABIC MATHEMATICAL DAD +1EE1A ; mapped ; 0638 # 6.1 ARABIC MATHEMATICAL ZAH +1EE1B ; mapped ; 063A # 6.1 ARABIC MATHEMATICAL GHAIN +1EE1C ; mapped ; 066E # 6.1 ARABIC MATHEMATICAL DOTLESS BEH +1EE1D ; mapped ; 06BA # 6.1 ARABIC MATHEMATICAL DOTLESS NOON +1EE1E ; mapped ; 06A1 # 6.1 ARABIC MATHEMATICAL DOTLESS FEH +1EE1F ; mapped ; 066F # 6.1 ARABIC MATHEMATICAL DOTLESS QAF +1EE20 ; disallowed # NA <reserved-1EE20> +1EE21 ; mapped ; 0628 # 6.1 ARABIC MATHEMATICAL INITIAL BEH +1EE22 ; mapped ; 062C # 6.1 ARABIC MATHEMATICAL INITIAL JEEM +1EE23 ; disallowed # NA <reserved-1EE23> +1EE24 ; mapped ; 0647 # 6.1 ARABIC MATHEMATICAL INITIAL HEH +1EE25..1EE26 ; disallowed # NA <reserved-1EE25>..<reserved-1EE26> +1EE27 ; mapped ; 062D # 6.1 ARABIC MATHEMATICAL INITIAL HAH +1EE28 ; disallowed # NA <reserved-1EE28> +1EE29 ; mapped ; 064A # 6.1 ARABIC MATHEMATICAL INITIAL YEH +1EE2A ; mapped ; 0643 # 6.1 ARABIC MATHEMATICAL INITIAL KAF +1EE2B ; mapped ; 0644 # 6.1 ARABIC MATHEMATICAL INITIAL LAM +1EE2C ; mapped ; 0645 # 6.1 ARABIC MATHEMATICAL INITIAL MEEM +1EE2D ; mapped ; 0646 # 6.1 ARABIC MATHEMATICAL INITIAL NOON +1EE2E ; mapped ; 0633 # 6.1 ARABIC MATHEMATICAL INITIAL SEEN +1EE2F ; mapped ; 0639 # 6.1 ARABIC MATHEMATICAL INITIAL AIN +1EE30 ; mapped ; 0641 # 6.1 ARABIC MATHEMATICAL INITIAL FEH +1EE31 ; mapped ; 0635 # 6.1 ARABIC MATHEMATICAL INITIAL SAD +1EE32 ; mapped ; 0642 # 6.1 ARABIC MATHEMATICAL INITIAL QAF +1EE33 ; disallowed # NA <reserved-1EE33> +1EE34 ; mapped ; 0634 # 6.1 ARABIC MATHEMATICAL INITIAL SHEEN +1EE35 ; mapped ; 062A # 6.1 ARABIC MATHEMATICAL INITIAL TEH +1EE36 ; mapped ; 062B # 6.1 ARABIC MATHEMATICAL INITIAL THEH +1EE37 ; mapped ; 062E # 6.1 ARABIC MATHEMATICAL INITIAL KHAH +1EE38 ; disallowed # NA <reserved-1EE38> +1EE39 ; mapped ; 0636 # 6.1 ARABIC MATHEMATICAL INITIAL DAD +1EE3A ; disallowed # NA <reserved-1EE3A> +1EE3B ; mapped ; 063A # 6.1 ARABIC MATHEMATICAL INITIAL GHAIN +1EE3C..1EE41 ; disallowed # NA <reserved-1EE3C>..<reserved-1EE41> +1EE42 ; mapped ; 062C # 6.1 ARABIC MATHEMATICAL TAILED JEEM +1EE43..1EE46 ; disallowed # NA <reserved-1EE43>..<reserved-1EE46> +1EE47 ; mapped ; 062D # 6.1 ARABIC MATHEMATICAL TAILED HAH +1EE48 ; disallowed # NA <reserved-1EE48> +1EE49 ; mapped ; 064A # 6.1 ARABIC MATHEMATICAL TAILED YEH +1EE4A ; disallowed # NA <reserved-1EE4A> +1EE4B ; mapped ; 0644 # 6.1 ARABIC MATHEMATICAL TAILED LAM +1EE4C ; disallowed # NA <reserved-1EE4C> +1EE4D ; mapped ; 0646 # 6.1 ARABIC MATHEMATICAL TAILED NOON +1EE4E ; mapped ; 0633 # 6.1 ARABIC MATHEMATICAL TAILED SEEN +1EE4F ; mapped ; 0639 # 6.1 ARABIC MATHEMATICAL TAILED AIN +1EE50 ; disallowed # NA <reserved-1EE50> +1EE51 ; mapped ; 0635 # 6.1 ARABIC MATHEMATICAL TAILED SAD +1EE52 ; mapped ; 0642 # 6.1 ARABIC MATHEMATICAL TAILED QAF +1EE53 ; disallowed # NA <reserved-1EE53> +1EE54 ; mapped ; 0634 # 6.1 ARABIC MATHEMATICAL TAILED SHEEN +1EE55..1EE56 ; disallowed # NA <reserved-1EE55>..<reserved-1EE56> +1EE57 ; mapped ; 062E # 6.1 ARABIC MATHEMATICAL TAILED KHAH +1EE58 ; disallowed # NA <reserved-1EE58> +1EE59 ; mapped ; 0636 # 6.1 ARABIC MATHEMATICAL TAILED DAD +1EE5A ; disallowed # NA <reserved-1EE5A> +1EE5B ; mapped ; 063A # 6.1 ARABIC MATHEMATICAL TAILED GHAIN +1EE5C ; disallowed # NA <reserved-1EE5C> +1EE5D ; mapped ; 06BA # 6.1 ARABIC MATHEMATICAL TAILED DOTLESS NOON +1EE5E ; disallowed # NA <reserved-1EE5E> +1EE5F ; mapped ; 066F # 6.1 ARABIC MATHEMATICAL TAILED DOTLESS QAF +1EE60 ; disallowed # NA <reserved-1EE60> +1EE61 ; mapped ; 0628 # 6.1 ARABIC MATHEMATICAL STRETCHED BEH +1EE62 ; mapped ; 062C # 6.1 ARABIC MATHEMATICAL STRETCHED JEEM +1EE63 ; disallowed # NA <reserved-1EE63> +1EE64 ; mapped ; 0647 # 6.1 ARABIC MATHEMATICAL STRETCHED HEH +1EE65..1EE66 ; disallowed # NA <reserved-1EE65>..<reserved-1EE66> +1EE67 ; mapped ; 062D # 6.1 ARABIC MATHEMATICAL STRETCHED HAH +1EE68 ; mapped ; 0637 # 6.1 ARABIC MATHEMATICAL STRETCHED TAH +1EE69 ; mapped ; 064A # 6.1 ARABIC MATHEMATICAL STRETCHED YEH +1EE6A ; mapped ; 0643 # 6.1 ARABIC MATHEMATICAL STRETCHED KAF +1EE6B ; disallowed # NA <reserved-1EE6B> +1EE6C ; mapped ; 0645 # 6.1 ARABIC MATHEMATICAL STRETCHED MEEM +1EE6D ; mapped ; 0646 # 6.1 ARABIC MATHEMATICAL STRETCHED NOON +1EE6E ; mapped ; 0633 # 6.1 ARABIC MATHEMATICAL STRETCHED SEEN +1EE6F ; mapped ; 0639 # 6.1 ARABIC MATHEMATICAL STRETCHED AIN +1EE70 ; mapped ; 0641 # 6.1 ARABIC MATHEMATICAL STRETCHED FEH +1EE71 ; mapped ; 0635 # 6.1 ARABIC MATHEMATICAL STRETCHED SAD +1EE72 ; mapped ; 0642 # 6.1 ARABIC MATHEMATICAL STRETCHED QAF +1EE73 ; disallowed # NA <reserved-1EE73> +1EE74 ; mapped ; 0634 # 6.1 ARABIC MATHEMATICAL STRETCHED SHEEN +1EE75 ; mapped ; 062A # 6.1 ARABIC MATHEMATICAL STRETCHED TEH +1EE76 ; mapped ; 062B # 6.1 ARABIC MATHEMATICAL STRETCHED THEH +1EE77 ; mapped ; 062E # 6.1 ARABIC MATHEMATICAL STRETCHED KHAH +1EE78 ; disallowed # NA <reserved-1EE78> +1EE79 ; mapped ; 0636 # 6.1 ARABIC MATHEMATICAL STRETCHED DAD +1EE7A ; mapped ; 0638 # 6.1 ARABIC MATHEMATICAL STRETCHED ZAH +1EE7B ; mapped ; 063A # 6.1 ARABIC MATHEMATICAL STRETCHED GHAIN +1EE7C ; mapped ; 066E # 6.1 ARABIC MATHEMATICAL STRETCHED DOTLESS BEH +1EE7D ; disallowed # NA <reserved-1EE7D> +1EE7E ; mapped ; 06A1 # 6.1 ARABIC MATHEMATICAL STRETCHED DOTLESS FEH +1EE7F ; disallowed # NA <reserved-1EE7F> +1EE80 ; mapped ; 0627 # 6.1 ARABIC MATHEMATICAL LOOPED ALEF +1EE81 ; mapped ; 0628 # 6.1 ARABIC MATHEMATICAL LOOPED BEH +1EE82 ; mapped ; 062C # 6.1 ARABIC MATHEMATICAL LOOPED JEEM +1EE83 ; mapped ; 062F # 6.1 ARABIC MATHEMATICAL LOOPED DAL +1EE84 ; mapped ; 0647 # 6.1 ARABIC MATHEMATICAL LOOPED HEH +1EE85 ; mapped ; 0648 # 6.1 ARABIC MATHEMATICAL LOOPED WAW +1EE86 ; mapped ; 0632 # 6.1 ARABIC MATHEMATICAL LOOPED ZAIN +1EE87 ; mapped ; 062D # 6.1 ARABIC MATHEMATICAL LOOPED HAH +1EE88 ; mapped ; 0637 # 6.1 ARABIC MATHEMATICAL LOOPED TAH +1EE89 ; mapped ; 064A # 6.1 ARABIC MATHEMATICAL LOOPED YEH +1EE8A ; disallowed # NA <reserved-1EE8A> +1EE8B ; mapped ; 0644 # 6.1 ARABIC MATHEMATICAL LOOPED LAM +1EE8C ; mapped ; 0645 # 6.1 ARABIC MATHEMATICAL LOOPED MEEM +1EE8D ; mapped ; 0646 # 6.1 ARABIC MATHEMATICAL LOOPED NOON +1EE8E ; mapped ; 0633 # 6.1 ARABIC MATHEMATICAL LOOPED SEEN +1EE8F ; mapped ; 0639 # 6.1 ARABIC MATHEMATICAL LOOPED AIN +1EE90 ; mapped ; 0641 # 6.1 ARABIC MATHEMATICAL LOOPED FEH +1EE91 ; mapped ; 0635 # 6.1 ARABIC MATHEMATICAL LOOPED SAD +1EE92 ; mapped ; 0642 # 6.1 ARABIC MATHEMATICAL LOOPED QAF +1EE93 ; mapped ; 0631 # 6.1 ARABIC MATHEMATICAL LOOPED REH +1EE94 ; mapped ; 0634 # 6.1 ARABIC MATHEMATICAL LOOPED SHEEN +1EE95 ; mapped ; 062A # 6.1 ARABIC MATHEMATICAL LOOPED TEH +1EE96 ; mapped ; 062B # 6.1 ARABIC MATHEMATICAL LOOPED THEH +1EE97 ; mapped ; 062E # 6.1 ARABIC MATHEMATICAL LOOPED KHAH +1EE98 ; mapped ; 0630 # 6.1 ARABIC MATHEMATICAL LOOPED THAL +1EE99 ; mapped ; 0636 # 6.1 ARABIC MATHEMATICAL LOOPED DAD +1EE9A ; mapped ; 0638 # 6.1 ARABIC MATHEMATICAL LOOPED ZAH +1EE9B ; mapped ; 063A # 6.1 ARABIC MATHEMATICAL LOOPED GHAIN +1EE9C..1EEA0 ; disallowed # NA <reserved-1EE9C>..<reserved-1EEA0> +1EEA1 ; mapped ; 0628 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK BEH +1EEA2 ; mapped ; 062C # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM +1EEA3 ; mapped ; 062F # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK DAL +1EEA4 ; disallowed # NA <reserved-1EEA4> +1EEA5 ; mapped ; 0648 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK WAW +1EEA6 ; mapped ; 0632 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN +1EEA7 ; mapped ; 062D # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK HAH +1EEA8 ; mapped ; 0637 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK TAH +1EEA9 ; mapped ; 064A # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK YEH +1EEAA ; disallowed # NA <reserved-1EEAA> +1EEAB ; mapped ; 0644 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK LAM +1EEAC ; mapped ; 0645 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM +1EEAD ; mapped ; 0646 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK NOON +1EEAE ; mapped ; 0633 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN +1EEAF ; mapped ; 0639 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK AIN +1EEB0 ; mapped ; 0641 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK FEH +1EEB1 ; mapped ; 0635 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK SAD +1EEB2 ; mapped ; 0642 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK QAF +1EEB3 ; mapped ; 0631 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK REH +1EEB4 ; mapped ; 0634 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN +1EEB5 ; mapped ; 062A # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK TEH +1EEB6 ; mapped ; 062B # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK THEH +1EEB7 ; mapped ; 062E # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH +1EEB8 ; mapped ; 0630 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK THAL +1EEB9 ; mapped ; 0636 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK DAD +1EEBA ; mapped ; 0638 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH +1EEBB ; mapped ; 063A # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN +1EEBC..1EEEF ; disallowed # NA <reserved-1EEBC>..<reserved-1EEEF> +1EEF0..1EEF1 ; valid ; ; NV8 # 6.1 ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL +1EEF2..1EFFF ; disallowed # NA <reserved-1EEF2>..<reserved-1EFFF> +1F000..1F02B ; valid ; ; NV8 # 5.1 MAHJONG TILE EAST WIND..MAHJONG TILE BACK +1F02C..1F02F ; disallowed # NA <reserved-1F02C>..<reserved-1F02F> +1F030..1F093 ; valid ; ; NV8 # 5.1 DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06 +1F094..1F09F ; disallowed # NA <reserved-1F094>..<reserved-1F09F> +1F0A0..1F0AE ; valid ; ; NV8 # 6.0 PLAYING CARD BACK..PLAYING CARD KING OF SPADES +1F0AF..1F0B0 ; disallowed # NA <reserved-1F0AF>..<reserved-1F0B0> +1F0B1..1F0BE ; valid ; ; NV8 # 6.0 PLAYING CARD ACE OF HEARTS..PLAYING CARD KING OF HEARTS +1F0BF ; valid ; ; NV8 # 7.0 PLAYING CARD RED JOKER +1F0C0 ; disallowed # NA <reserved-1F0C0> +1F0C1..1F0CF ; valid ; ; NV8 # 6.0 PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER +1F0D0 ; disallowed # NA <reserved-1F0D0> +1F0D1..1F0DF ; valid ; ; NV8 # 6.0 PLAYING CARD ACE OF CLUBS..PLAYING CARD WHITE JOKER +1F0E0..1F0F5 ; valid ; ; NV8 # 7.0 PLAYING CARD FOOL..PLAYING CARD TRUMP-21 +1F0F6..1F0FF ; disallowed # NA <reserved-1F0F6>..<reserved-1F0FF> +1F100 ; disallowed # 5.2 DIGIT ZERO FULL STOP +1F101 ; disallowed_STD3_mapped ; 0030 002C # 5.2 DIGIT ZERO COMMA +1F102 ; disallowed_STD3_mapped ; 0031 002C # 5.2 DIGIT ONE COMMA +1F103 ; disallowed_STD3_mapped ; 0032 002C # 5.2 DIGIT TWO COMMA +1F104 ; disallowed_STD3_mapped ; 0033 002C # 5.2 DIGIT THREE COMMA +1F105 ; disallowed_STD3_mapped ; 0034 002C # 5.2 DIGIT FOUR COMMA +1F106 ; disallowed_STD3_mapped ; 0035 002C # 5.2 DIGIT FIVE COMMA +1F107 ; disallowed_STD3_mapped ; 0036 002C # 5.2 DIGIT SIX COMMA +1F108 ; disallowed_STD3_mapped ; 0037 002C # 5.2 DIGIT SEVEN COMMA +1F109 ; disallowed_STD3_mapped ; 0038 002C # 5.2 DIGIT EIGHT COMMA +1F10A ; disallowed_STD3_mapped ; 0039 002C # 5.2 DIGIT NINE COMMA +1F10B..1F10C ; valid ; ; NV8 # 7.0 DINGBAT CIRCLED SANS-SERIF DIGIT ZERO..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO +1F10D..1F10F ; valid ; ; NV8 # 13.0 CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH +1F110 ; disallowed_STD3_mapped ; 0028 0061 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER A +1F111 ; disallowed_STD3_mapped ; 0028 0062 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER B +1F112 ; disallowed_STD3_mapped ; 0028 0063 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER C +1F113 ; disallowed_STD3_mapped ; 0028 0064 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER D +1F114 ; disallowed_STD3_mapped ; 0028 0065 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER E +1F115 ; disallowed_STD3_mapped ; 0028 0066 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER F +1F116 ; disallowed_STD3_mapped ; 0028 0067 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER G +1F117 ; disallowed_STD3_mapped ; 0028 0068 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER H +1F118 ; disallowed_STD3_mapped ; 0028 0069 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER I +1F119 ; disallowed_STD3_mapped ; 0028 006A 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER J +1F11A ; disallowed_STD3_mapped ; 0028 006B 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER K +1F11B ; disallowed_STD3_mapped ; 0028 006C 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER L +1F11C ; disallowed_STD3_mapped ; 0028 006D 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER M +1F11D ; disallowed_STD3_mapped ; 0028 006E 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER N +1F11E ; disallowed_STD3_mapped ; 0028 006F 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER O +1F11F ; disallowed_STD3_mapped ; 0028 0070 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER P +1F120 ; disallowed_STD3_mapped ; 0028 0071 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER Q +1F121 ; disallowed_STD3_mapped ; 0028 0072 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER R +1F122 ; disallowed_STD3_mapped ; 0028 0073 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER S +1F123 ; disallowed_STD3_mapped ; 0028 0074 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER T +1F124 ; disallowed_STD3_mapped ; 0028 0075 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER U +1F125 ; disallowed_STD3_mapped ; 0028 0076 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER V +1F126 ; disallowed_STD3_mapped ; 0028 0077 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER W +1F127 ; disallowed_STD3_mapped ; 0028 0078 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER X +1F128 ; disallowed_STD3_mapped ; 0028 0079 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER Y +1F129 ; disallowed_STD3_mapped ; 0028 007A 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER Z +1F12A ; mapped ; 3014 0073 3015 #5.2 TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S +1F12B ; mapped ; 0063 # 5.2 CIRCLED ITALIC LATIN CAPITAL LETTER C +1F12C ; mapped ; 0072 # 5.2 CIRCLED ITALIC LATIN CAPITAL LETTER R +1F12D ; mapped ; 0063 0064 # 5.2 CIRCLED CD +1F12E ; mapped ; 0077 007A # 5.2 CIRCLED WZ +1F12F ; valid ; ; NV8 # 11.0 COPYLEFT SYMBOL +1F130 ; mapped ; 0061 # 6.0 SQUARED LATIN CAPITAL LETTER A +1F131 ; mapped ; 0062 # 5.2 SQUARED LATIN CAPITAL LETTER B +1F132 ; mapped ; 0063 # 6.0 SQUARED LATIN CAPITAL LETTER C +1F133 ; mapped ; 0064 # 6.0 SQUARED LATIN CAPITAL LETTER D +1F134 ; mapped ; 0065 # 6.0 SQUARED LATIN CAPITAL LETTER E +1F135 ; mapped ; 0066 # 6.0 SQUARED LATIN CAPITAL LETTER F +1F136 ; mapped ; 0067 # 6.0 SQUARED LATIN CAPITAL LETTER G +1F137 ; mapped ; 0068 # 6.0 SQUARED LATIN CAPITAL LETTER H +1F138 ; mapped ; 0069 # 6.0 SQUARED LATIN CAPITAL LETTER I +1F139 ; mapped ; 006A # 6.0 SQUARED LATIN CAPITAL LETTER J +1F13A ; mapped ; 006B # 6.0 SQUARED LATIN CAPITAL LETTER K +1F13B ; mapped ; 006C # 6.0 SQUARED LATIN CAPITAL LETTER L +1F13C ; mapped ; 006D # 6.0 SQUARED LATIN CAPITAL LETTER M +1F13D ; mapped ; 006E # 5.2 SQUARED LATIN CAPITAL LETTER N +1F13E ; mapped ; 006F # 6.0 SQUARED LATIN CAPITAL LETTER O +1F13F ; mapped ; 0070 # 5.2 SQUARED LATIN CAPITAL LETTER P +1F140 ; mapped ; 0071 # 6.0 SQUARED LATIN CAPITAL LETTER Q +1F141 ; mapped ; 0072 # 6.0 SQUARED LATIN CAPITAL LETTER R +1F142 ; mapped ; 0073 # 5.2 SQUARED LATIN CAPITAL LETTER S +1F143 ; mapped ; 0074 # 6.0 SQUARED LATIN CAPITAL LETTER T +1F144 ; mapped ; 0075 # 6.0 SQUARED LATIN CAPITAL LETTER U +1F145 ; mapped ; 0076 # 6.0 SQUARED LATIN CAPITAL LETTER V +1F146 ; mapped ; 0077 # 5.2 SQUARED LATIN CAPITAL LETTER W +1F147 ; mapped ; 0078 # 6.0 SQUARED LATIN CAPITAL LETTER X +1F148 ; mapped ; 0079 # 6.0 SQUARED LATIN CAPITAL LETTER Y +1F149 ; mapped ; 007A # 6.0 SQUARED LATIN CAPITAL LETTER Z +1F14A ; mapped ; 0068 0076 # 5.2 SQUARED HV +1F14B ; mapped ; 006D 0076 # 5.2 SQUARED MV +1F14C ; mapped ; 0073 0064 # 5.2 SQUARED SD +1F14D ; mapped ; 0073 0073 # 5.2 SQUARED SS +1F14E ; mapped ; 0070 0070 0076 #5.2 SQUARED PPV +1F14F ; mapped ; 0077 0063 # 6.0 SQUARED WC +1F150..1F156 ; valid ; ; NV8 # 6.0 NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER G +1F157 ; valid ; ; NV8 # 5.2 NEGATIVE CIRCLED LATIN CAPITAL LETTER H +1F158..1F15E ; valid ; ; NV8 # 6.0 NEGATIVE CIRCLED LATIN CAPITAL LETTER I..NEGATIVE CIRCLED LATIN CAPITAL LETTER O +1F15F ; valid ; ; NV8 # 5.2 NEGATIVE CIRCLED LATIN CAPITAL LETTER P +1F160..1F169 ; valid ; ; NV8 # 6.0 NEGATIVE CIRCLED LATIN CAPITAL LETTER Q..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z +1F16A ; mapped ; 006D 0063 # 6.1 RAISED MC SIGN +1F16B ; mapped ; 006D 0064 # 6.1 RAISED MD SIGN +1F16C ; mapped ; 006D 0072 # 12.0 RAISED MR SIGN +1F16D..1F16F ; valid ; ; NV8 # 13.0 CIRCLED CC..CIRCLED HUMAN FIGURE +1F170..1F178 ; valid ; ; NV8 # 6.0 NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER I +1F179 ; valid ; ; NV8 # 5.2 NEGATIVE SQUARED LATIN CAPITAL LETTER J +1F17A ; valid ; ; NV8 # 6.0 NEGATIVE SQUARED LATIN CAPITAL LETTER K +1F17B..1F17C ; valid ; ; NV8 # 5.2 NEGATIVE SQUARED LATIN CAPITAL LETTER L..NEGATIVE SQUARED LATIN CAPITAL LETTER M +1F17D..1F17E ; valid ; ; NV8 # 6.0 NEGATIVE SQUARED LATIN CAPITAL LETTER N..NEGATIVE SQUARED LATIN CAPITAL LETTER O +1F17F ; valid ; ; NV8 # 5.2 NEGATIVE SQUARED LATIN CAPITAL LETTER P +1F180..1F189 ; valid ; ; NV8 # 6.0 NEGATIVE SQUARED LATIN CAPITAL LETTER Q..NEGATIVE SQUARED LATIN CAPITAL LETTER Z +1F18A..1F18D ; valid ; ; NV8 # 5.2 CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P..NEGATIVE SQUARED SA +1F18E..1F18F ; valid ; ; NV8 # 6.0 NEGATIVE SQUARED AB..NEGATIVE SQUARED WC +1F190 ; mapped ; 0064 006A # 5.2 SQUARE DJ +1F191..1F19A ; valid ; ; NV8 # 6.0 SQUARED CL..SQUARED VS +1F19B..1F1AC ; valid ; ; NV8 # 9.0 SQUARED THREE D..SQUARED VOD +1F1AD ; valid ; ; NV8 # 13.0 MASK WORK SYMBOL +1F1AE..1F1E5 ; disallowed # NA <reserved-1F1AE>..<reserved-1F1E5> +1F1E6..1F1FF ; valid ; ; NV8 # 6.0 REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z +1F200 ; mapped ; 307B 304B # 5.2 SQUARE HIRAGANA HOKA +1F201 ; mapped ; 30B3 30B3 # 6.0 SQUARED KATAKANA KOKO +1F202 ; mapped ; 30B5 # 6.0 SQUARED KATAKANA SA +1F203..1F20F ; disallowed # NA <reserved-1F203>..<reserved-1F20F> +1F210 ; mapped ; 624B # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-624B +1F211 ; mapped ; 5B57 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-5B57 +1F212 ; mapped ; 53CC # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-53CC +1F213 ; mapped ; 30C7 # 5.2 SQUARED KATAKANA DE +1F214 ; mapped ; 4E8C # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-4E8C +1F215 ; mapped ; 591A # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-591A +1F216 ; mapped ; 89E3 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-89E3 +1F217 ; mapped ; 5929 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-5929 +1F218 ; mapped ; 4EA4 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-4EA4 +1F219 ; mapped ; 6620 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-6620 +1F21A ; mapped ; 7121 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-7121 +1F21B ; mapped ; 6599 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-6599 +1F21C ; mapped ; 524D # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-524D +1F21D ; mapped ; 5F8C # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-5F8C +1F21E ; mapped ; 518D # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-518D +1F21F ; mapped ; 65B0 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-65B0 +1F220 ; mapped ; 521D # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-521D +1F221 ; mapped ; 7D42 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-7D42 +1F222 ; mapped ; 751F # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-751F +1F223 ; mapped ; 8CA9 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-8CA9 +1F224 ; mapped ; 58F0 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-58F0 +1F225 ; mapped ; 5439 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-5439 +1F226 ; mapped ; 6F14 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-6F14 +1F227 ; mapped ; 6295 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-6295 +1F228 ; mapped ; 6355 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-6355 +1F229 ; mapped ; 4E00 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-4E00 +1F22A ; mapped ; 4E09 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-4E09 +1F22B ; mapped ; 904A # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-904A +1F22C ; mapped ; 5DE6 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-5DE6 +1F22D ; mapped ; 4E2D # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-4E2D +1F22E ; mapped ; 53F3 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-53F3 +1F22F ; mapped ; 6307 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-6307 +1F230 ; mapped ; 8D70 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-8D70 +1F231 ; mapped ; 6253 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-6253 +1F232 ; mapped ; 7981 # 6.0 SQUARED CJK UNIFIED IDEOGRAPH-7981 +1F233 ; mapped ; 7A7A # 6.0 SQUARED CJK UNIFIED IDEOGRAPH-7A7A +1F234 ; mapped ; 5408 # 6.0 SQUARED CJK UNIFIED IDEOGRAPH-5408 +1F235 ; mapped ; 6E80 # 6.0 SQUARED CJK UNIFIED IDEOGRAPH-6E80 +1F236 ; mapped ; 6709 # 6.0 SQUARED CJK UNIFIED IDEOGRAPH-6709 +1F237 ; mapped ; 6708 # 6.0 SQUARED CJK UNIFIED IDEOGRAPH-6708 +1F238 ; mapped ; 7533 # 6.0 SQUARED CJK UNIFIED IDEOGRAPH-7533 +1F239 ; mapped ; 5272 # 6.0 SQUARED CJK UNIFIED IDEOGRAPH-5272 +1F23A ; mapped ; 55B6 # 6.0 SQUARED CJK UNIFIED IDEOGRAPH-55B6 +1F23B ; mapped ; 914D # 9.0 SQUARED CJK UNIFIED IDEOGRAPH-914D +1F23C..1F23F ; disallowed # NA <reserved-1F23C>..<reserved-1F23F> +1F240 ; mapped ; 3014 672C 3015 #5.2 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C +1F241 ; mapped ; 3014 4E09 3015 #5.2 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09 +1F242 ; mapped ; 3014 4E8C 3015 #5.2 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C +1F243 ; mapped ; 3014 5B89 3015 #5.2 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89 +1F244 ; mapped ; 3014 70B9 3015 #5.2 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9 +1F245 ; mapped ; 3014 6253 3015 #5.2 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253 +1F246 ; mapped ; 3014 76D7 3015 #5.2 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7 +1F247 ; mapped ; 3014 52DD 3015 #5.2 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD +1F248 ; mapped ; 3014 6557 3015 #5.2 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557 +1F249..1F24F ; disallowed # NA <reserved-1F249>..<reserved-1F24F> +1F250 ; mapped ; 5F97 # 6.0 CIRCLED IDEOGRAPH ADVANTAGE +1F251 ; mapped ; 53EF # 6.0 CIRCLED IDEOGRAPH ACCEPT +1F252..1F25F ; disallowed # NA <reserved-1F252>..<reserved-1F25F> +1F260..1F265 ; valid ; ; NV8 # 10.0 ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI +1F266..1F2FF ; disallowed # NA <reserved-1F266>..<reserved-1F2FF> +1F300..1F320 ; valid ; ; NV8 # 6.0 CYCLONE..SHOOTING STAR +1F321..1F32C ; valid ; ; NV8 # 7.0 THERMOMETER..WIND BLOWING FACE +1F32D..1F32F ; valid ; ; NV8 # 8.0 HOT DOG..BURRITO +1F330..1F335 ; valid ; ; NV8 # 6.0 CHESTNUT..CACTUS +1F336 ; valid ; ; NV8 # 7.0 HOT PEPPER +1F337..1F37C ; valid ; ; NV8 # 6.0 TULIP..BABY BOTTLE +1F37D ; valid ; ; NV8 # 7.0 FORK AND KNIFE WITH PLATE +1F37E..1F37F ; valid ; ; NV8 # 8.0 BOTTLE WITH POPPING CORK..POPCORN +1F380..1F393 ; valid ; ; NV8 # 6.0 RIBBON..GRADUATION CAP +1F394..1F39F ; valid ; ; NV8 # 7.0 HEART WITH TIP ON THE LEFT..ADMISSION TICKETS +1F3A0..1F3C4 ; valid ; ; NV8 # 6.0 CAROUSEL HORSE..SURFER +1F3C5 ; valid ; ; NV8 # 7.0 SPORTS MEDAL +1F3C6..1F3CA ; valid ; ; NV8 # 6.0 TROPHY..SWIMMER +1F3CB..1F3CE ; valid ; ; NV8 # 7.0 WEIGHT LIFTER..RACING CAR +1F3CF..1F3D3 ; valid ; ; NV8 # 8.0 CRICKET BAT AND BALL..TABLE TENNIS PADDLE AND BALL +1F3D4..1F3DF ; valid ; ; NV8 # 7.0 SNOW CAPPED MOUNTAIN..STADIUM +1F3E0..1F3F0 ; valid ; ; NV8 # 6.0 HOUSE BUILDING..EUROPEAN CASTLE +1F3F1..1F3F7 ; valid ; ; NV8 # 7.0 WHITE PENNANT..LABEL +1F3F8..1F3FF ; valid ; ; NV8 # 8.0 BADMINTON RACQUET AND SHUTTLECOCK..EMOJI MODIFIER FITZPATRICK TYPE-6 +1F400..1F43E ; valid ; ; NV8 # 6.0 RAT..PAW PRINTS +1F43F ; valid ; ; NV8 # 7.0 CHIPMUNK +1F440 ; valid ; ; NV8 # 6.0 EYES +1F441 ; valid ; ; NV8 # 7.0 EYE +1F442..1F4F7 ; valid ; ; NV8 # 6.0 EAR..CAMERA +1F4F8 ; valid ; ; NV8 # 7.0 CAMERA WITH FLASH +1F4F9..1F4FC ; valid ; ; NV8 # 6.0 VIDEO CAMERA..VIDEOCASSETTE +1F4FD..1F4FE ; valid ; ; NV8 # 7.0 FILM PROJECTOR..PORTABLE STEREO +1F4FF ; valid ; ; NV8 # 8.0 PRAYER BEADS +1F500..1F53D ; valid ; ; NV8 # 6.0 TWISTED RIGHTWARDS ARROWS..DOWN-POINTING SMALL RED TRIANGLE +1F53E..1F53F ; valid ; ; NV8 # 7.0 LOWER RIGHT SHADOWED WHITE CIRCLE..UPPER RIGHT SHADOWED WHITE CIRCLE +1F540..1F543 ; valid ; ; NV8 # 6.1 CIRCLED CROSS POMMEE..NOTCHED LEFT SEMICIRCLE WITH THREE DOTS +1F544..1F54A ; valid ; ; NV8 # 7.0 NOTCHED RIGHT SEMICIRCLE WITH THREE DOTS..DOVE OF PEACE +1F54B..1F54F ; valid ; ; NV8 # 8.0 KAABA..BOWL OF HYGIEIA +1F550..1F567 ; valid ; ; NV8 # 6.0 CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY +1F568..1F579 ; valid ; ; NV8 # 7.0 RIGHT SPEAKER..JOYSTICK +1F57A ; valid ; ; NV8 # 9.0 MAN DANCING +1F57B..1F5A3 ; valid ; ; NV8 # 7.0 LEFT HAND TELEPHONE RECEIVER..BLACK DOWN POINTING BACKHAND INDEX +1F5A4 ; valid ; ; NV8 # 9.0 BLACK HEART +1F5A5..1F5FA ; valid ; ; NV8 # 7.0 DESKTOP COMPUTER..WORLD MAP +1F5FB..1F5FF ; valid ; ; NV8 # 6.0 MOUNT FUJI..MOYAI +1F600 ; valid ; ; NV8 # 6.1 GRINNING FACE +1F601..1F610 ; valid ; ; NV8 # 6.0 GRINNING FACE WITH SMILING EYES..NEUTRAL FACE +1F611 ; valid ; ; NV8 # 6.1 EXPRESSIONLESS FACE +1F612..1F614 ; valid ; ; NV8 # 6.0 UNAMUSED FACE..PENSIVE FACE +1F615 ; valid ; ; NV8 # 6.1 CONFUSED FACE +1F616 ; valid ; ; NV8 # 6.0 CONFOUNDED FACE +1F617 ; valid ; ; NV8 # 6.1 KISSING FACE +1F618 ; valid ; ; NV8 # 6.0 FACE THROWING A KISS +1F619 ; valid ; ; NV8 # 6.1 KISSING FACE WITH SMILING EYES +1F61A ; valid ; ; NV8 # 6.0 KISSING FACE WITH CLOSED EYES +1F61B ; valid ; ; NV8 # 6.1 FACE WITH STUCK-OUT TONGUE +1F61C..1F61E ; valid ; ; NV8 # 6.0 FACE WITH STUCK-OUT TONGUE AND WINKING EYE..DISAPPOINTED FACE +1F61F ; valid ; ; NV8 # 6.1 WORRIED FACE +1F620..1F625 ; valid ; ; NV8 # 6.0 ANGRY FACE..DISAPPOINTED BUT RELIEVED FACE +1F626..1F627 ; valid ; ; NV8 # 6.1 FROWNING FACE WITH OPEN MOUTH..ANGUISHED FACE +1F628..1F62B ; valid ; ; NV8 # 6.0 FEARFUL FACE..TIRED FACE +1F62C ; valid ; ; NV8 # 6.1 GRIMACING FACE +1F62D ; valid ; ; NV8 # 6.0 LOUDLY CRYING FACE +1F62E..1F62F ; valid ; ; NV8 # 6.1 FACE WITH OPEN MOUTH..HUSHED FACE +1F630..1F633 ; valid ; ; NV8 # 6.0 FACE WITH OPEN MOUTH AND COLD SWEAT..FLUSHED FACE +1F634 ; valid ; ; NV8 # 6.1 SLEEPING FACE +1F635..1F640 ; valid ; ; NV8 # 6.0 DIZZY FACE..WEARY CAT FACE +1F641..1F642 ; valid ; ; NV8 # 7.0 SLIGHTLY FROWNING FACE..SLIGHTLY SMILING FACE +1F643..1F644 ; valid ; ; NV8 # 8.0 UPSIDE-DOWN FACE..FACE WITH ROLLING EYES +1F645..1F64F ; valid ; ; NV8 # 6.0 FACE WITH NO GOOD GESTURE..PERSON WITH FOLDED HANDS +1F650..1F67F ; valid ; ; NV8 # 7.0 NORTH WEST POINTING LEAF..REVERSE CHECKER BOARD +1F680..1F6C5 ; valid ; ; NV8 # 6.0 ROCKET..LEFT LUGGAGE +1F6C6..1F6CF ; valid ; ; NV8 # 7.0 TRIANGLE WITH ROUNDED CORNERS..BED +1F6D0 ; valid ; ; NV8 # 8.0 PLACE OF WORSHIP +1F6D1..1F6D2 ; valid ; ; NV8 # 9.0 OCTAGONAL SIGN..SHOPPING TROLLEY +1F6D3..1F6D4 ; valid ; ; NV8 # 10.0 STUPA..PAGODA +1F6D5 ; valid ; ; NV8 # 12.0 HINDU TEMPLE +1F6D6..1F6D7 ; valid ; ; NV8 # 13.0 HUT..ELEVATOR +1F6D8..1F6DB ; disallowed # NA <reserved-1F6D8>..<reserved-1F6DB> +1F6DC ; valid ; ; NV8 # 15.0 WIRELESS +1F6DD..1F6DF ; valid ; ; NV8 # 14.0 PLAYGROUND SLIDE..RING BUOY +1F6E0..1F6EC ; valid ; ; NV8 # 7.0 HAMMER AND WRENCH..AIRPLANE ARRIVING +1F6ED..1F6EF ; disallowed # NA <reserved-1F6ED>..<reserved-1F6EF> +1F6F0..1F6F3 ; valid ; ; NV8 # 7.0 SATELLITE..PASSENGER SHIP +1F6F4..1F6F6 ; valid ; ; NV8 # 9.0 SCOOTER..CANOE +1F6F7..1F6F8 ; valid ; ; NV8 # 10.0 SLED..FLYING SAUCER +1F6F9 ; valid ; ; NV8 # 11.0 SKATEBOARD +1F6FA ; valid ; ; NV8 # 12.0 AUTO RICKSHAW +1F6FB..1F6FC ; valid ; ; NV8 # 13.0 PICKUP TRUCK..ROLLER SKATE +1F6FD..1F6FF ; disallowed # NA <reserved-1F6FD>..<reserved-1F6FF> +1F700..1F773 ; valid ; ; NV8 # 6.0 ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE +1F774..1F776 ; valid ; ; NV8 # 15.0 LOT OF FORTUNE..LUNAR ECLIPSE +1F777..1F77A ; disallowed # NA <reserved-1F777>..<reserved-1F77A> +1F77B..1F77F ; valid ; ; NV8 # 15.0 HAUMEA..ORCUS +1F780..1F7D4 ; valid ; ; NV8 # 7.0 BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR +1F7D5..1F7D8 ; valid ; ; NV8 # 11.0 CIRCLED TRIANGLE..NEGATIVE CIRCLED SQUARE +1F7D9 ; valid ; ; NV8 # 15.0 NINE POINTED WHITE STAR +1F7DA..1F7DF ; disallowed # NA <reserved-1F7DA>..<reserved-1F7DF> +1F7E0..1F7EB ; valid ; ; NV8 # 12.0 LARGE ORANGE CIRCLE..LARGE BROWN SQUARE +1F7EC..1F7EF ; disallowed # NA <reserved-1F7EC>..<reserved-1F7EF> +1F7F0 ; valid ; ; NV8 # 14.0 HEAVY EQUALS SIGN +1F7F1..1F7FF ; disallowed # NA <reserved-1F7F1>..<reserved-1F7FF> +1F800..1F80B ; valid ; ; NV8 # 7.0 LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD +1F80C..1F80F ; disallowed # NA <reserved-1F80C>..<reserved-1F80F> +1F810..1F847 ; valid ; ; NV8 # 7.0 LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW +1F848..1F84F ; disallowed # NA <reserved-1F848>..<reserved-1F84F> +1F850..1F859 ; valid ; ; NV8 # 7.0 LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW +1F85A..1F85F ; disallowed # NA <reserved-1F85A>..<reserved-1F85F> +1F860..1F887 ; valid ; ; NV8 # 7.0 WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW +1F888..1F88F ; disallowed # NA <reserved-1F888>..<reserved-1F88F> +1F890..1F8AD ; valid ; ; NV8 # 7.0 LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS +1F8AE..1F8AF ; disallowed # NA <reserved-1F8AE>..<reserved-1F8AF> +1F8B0..1F8B1 ; valid ; ; NV8 # 13.0 ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST +1F8B2..1F8FF ; disallowed # NA <reserved-1F8B2>..<reserved-1F8FF> +1F900..1F90B ; valid ; ; NV8 # 10.0 CIRCLED CROSS FORMEE WITH FOUR DOTS..DOWNWARD FACING NOTCHED HOOK WITH DOT +1F90C ; valid ; ; NV8 # 13.0 PINCHED FINGERS +1F90D..1F90F ; valid ; ; NV8 # 12.0 WHITE HEART..PINCHING HAND +1F910..1F918 ; valid ; ; NV8 # 8.0 ZIPPER-MOUTH FACE..SIGN OF THE HORNS +1F919..1F91E ; valid ; ; NV8 # 9.0 CALL ME HAND..HAND WITH INDEX AND MIDDLE FINGERS CROSSED +1F91F ; valid ; ; NV8 # 10.0 I LOVE YOU HAND SIGN +1F920..1F927 ; valid ; ; NV8 # 9.0 FACE WITH COWBOY HAT..SNEEZING FACE +1F928..1F92F ; valid ; ; NV8 # 10.0 FACE WITH ONE EYEBROW RAISED..SHOCKED FACE WITH EXPLODING HEAD +1F930 ; valid ; ; NV8 # 9.0 PREGNANT WOMAN +1F931..1F932 ; valid ; ; NV8 # 10.0 BREAST-FEEDING..PALMS UP TOGETHER +1F933..1F93E ; valid ; ; NV8 # 9.0 SELFIE..HANDBALL +1F93F ; valid ; ; NV8 # 12.0 DIVING MASK +1F940..1F94B ; valid ; ; NV8 # 9.0 WILTED FLOWER..MARTIAL ARTS UNIFORM +1F94C ; valid ; ; NV8 # 10.0 CURLING STONE +1F94D..1F94F ; valid ; ; NV8 # 11.0 LACROSSE STICK AND BALL..FLYING DISC +1F950..1F95E ; valid ; ; NV8 # 9.0 CROISSANT..PANCAKES +1F95F..1F96B ; valid ; ; NV8 # 10.0 DUMPLING..CANNED FOOD +1F96C..1F970 ; valid ; ; NV8 # 11.0 LEAFY GREEN..SMILING FACE WITH SMILING EYES AND THREE HEARTS +1F971 ; valid ; ; NV8 # 12.0 YAWNING FACE +1F972 ; valid ; ; NV8 # 13.0 SMILING FACE WITH TEAR +1F973..1F976 ; valid ; ; NV8 # 11.0 FACE WITH PARTY HORN AND PARTY HAT..FREEZING FACE +1F977..1F978 ; valid ; ; NV8 # 13.0 NINJA..DISGUISED FACE +1F979 ; valid ; ; NV8 # 14.0 FACE HOLDING BACK TEARS +1F97A ; valid ; ; NV8 # 11.0 FACE WITH PLEADING EYES +1F97B ; valid ; ; NV8 # 12.0 SARI +1F97C..1F97F ; valid ; ; NV8 # 11.0 LAB COAT..FLAT SHOE +1F980..1F984 ; valid ; ; NV8 # 8.0 CRAB..UNICORN FACE +1F985..1F991 ; valid ; ; NV8 # 9.0 EAGLE..SQUID +1F992..1F997 ; valid ; ; NV8 # 10.0 GIRAFFE FACE..CRICKET +1F998..1F9A2 ; valid ; ; NV8 # 11.0 KANGAROO..SWAN +1F9A3..1F9A4 ; valid ; ; NV8 # 13.0 MAMMOTH..DODO +1F9A5..1F9AA ; valid ; ; NV8 # 12.0 SLOTH..OYSTER +1F9AB..1F9AD ; valid ; ; NV8 # 13.0 BEAVER..SEAL +1F9AE..1F9AF ; valid ; ; NV8 # 12.0 GUIDE DOG..PROBING CANE +1F9B0..1F9B9 ; valid ; ; NV8 # 11.0 EMOJI COMPONENT RED HAIR..SUPERVILLAIN +1F9BA..1F9BF ; valid ; ; NV8 # 12.0 SAFETY VEST..MECHANICAL LEG +1F9C0 ; valid ; ; NV8 # 8.0 CHEESE WEDGE +1F9C1..1F9C2 ; valid ; ; NV8 # 11.0 CUPCAKE..SALT SHAKER +1F9C3..1F9CA ; valid ; ; NV8 # 12.0 BEVERAGE BOX..ICE CUBE +1F9CB ; valid ; ; NV8 # 13.0 BUBBLE TEA +1F9CC ; valid ; ; NV8 # 14.0 TROLL +1F9CD..1F9CF ; valid ; ; NV8 # 12.0 STANDING PERSON..DEAF PERSON +1F9D0..1F9E6 ; valid ; ; NV8 # 10.0 FACE WITH MONOCLE..SOCKS +1F9E7..1F9FF ; valid ; ; NV8 # 11.0 RED GIFT ENVELOPE..NAZAR AMULET +1FA00..1FA53 ; valid ; ; NV8 # 12.0 NEUTRAL CHESS KING..BLACK CHESS KNIGHT-BISHOP +1FA54..1FA5F ; disallowed # NA <reserved-1FA54>..<reserved-1FA5F> +1FA60..1FA6D ; valid ; ; NV8 # 11.0 XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER +1FA6E..1FA6F ; disallowed # NA <reserved-1FA6E>..<reserved-1FA6F> +1FA70..1FA73 ; valid ; ; NV8 # 12.0 BALLET SHOES..SHORTS +1FA74 ; valid ; ; NV8 # 13.0 THONG SANDAL +1FA75..1FA77 ; valid ; ; NV8 # 15.0 LIGHT BLUE HEART..PINK HEART +1FA78..1FA7A ; valid ; ; NV8 # 12.0 DROP OF BLOOD..STETHOSCOPE +1FA7B..1FA7C ; valid ; ; NV8 # 14.0 X-RAY..CRUTCH +1FA7D..1FA7F ; disallowed # NA <reserved-1FA7D>..<reserved-1FA7F> +1FA80..1FA82 ; valid ; ; NV8 # 12.0 YO-YO..PARACHUTE +1FA83..1FA86 ; valid ; ; NV8 # 13.0 BOOMERANG..NESTING DOLLS +1FA87..1FA88 ; valid ; ; NV8 # 15.0 MARACAS..FLUTE +1FA89..1FA8F ; disallowed # NA <reserved-1FA89>..<reserved-1FA8F> +1FA90..1FA95 ; valid ; ; NV8 # 12.0 RINGED PLANET..BANJO +1FA96..1FAA8 ; valid ; ; NV8 # 13.0 MILITARY HELMET..ROCK +1FAA9..1FAAC ; valid ; ; NV8 # 14.0 MIRROR BALL..HAMSA +1FAAD..1FAAF ; valid ; ; NV8 # 15.0 FOLDING HAND FAN..KHANDA +1FAB0..1FAB6 ; valid ; ; NV8 # 13.0 FLY..FEATHER +1FAB7..1FABA ; valid ; ; NV8 # 14.0 LOTUS..NEST WITH EGGS +1FABB..1FABD ; valid ; ; NV8 # 15.0 HYACINTH..WING +1FABE ; disallowed # NA <reserved-1FABE> +1FABF ; valid ; ; NV8 # 15.0 GOOSE +1FAC0..1FAC2 ; valid ; ; NV8 # 13.0 ANATOMICAL HEART..PEOPLE HUGGING +1FAC3..1FAC5 ; valid ; ; NV8 # 14.0 PREGNANT MAN..PERSON WITH CROWN +1FAC6..1FACD ; disallowed # NA <reserved-1FAC6>..<reserved-1FACD> +1FACE..1FACF ; valid ; ; NV8 # 15.0 MOOSE..DONKEY +1FAD0..1FAD6 ; valid ; ; NV8 # 13.0 BLUEBERRIES..TEAPOT +1FAD7..1FAD9 ; valid ; ; NV8 # 14.0 POURING LIQUID..JAR +1FADA..1FADB ; valid ; ; NV8 # 15.0 GINGER ROOT..PEA POD +1FADC..1FADF ; disallowed # NA <reserved-1FADC>..<reserved-1FADF> +1FAE0..1FAE7 ; valid ; ; NV8 # 14.0 MELTING FACE..BUBBLES +1FAE8 ; valid ; ; NV8 # 15.0 SHAKING FACE +1FAE9..1FAEF ; disallowed # NA <reserved-1FAE9>..<reserved-1FAEF> +1FAF0..1FAF6 ; valid ; ; NV8 # 14.0 HAND WITH INDEX FINGER AND THUMB CROSSED..HEART HANDS +1FAF7..1FAF8 ; valid ; ; NV8 # 15.0 LEFTWARDS PUSHING HAND..RIGHTWARDS PUSHING HAND +1FAF9..1FAFF ; disallowed # NA <reserved-1FAF9>..<reserved-1FAFF> +1FB00..1FB92 ; valid ; ; NV8 # 13.0 BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK +1FB93 ; disallowed # NA <reserved-1FB93> +1FB94..1FBCA ; valid ; ; NV8 # 13.0 LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON +1FBCB..1FBEF ; disallowed # NA <reserved-1FBCB>..<reserved-1FBEF> +1FBF0 ; mapped ; 0030 # 13.0 SEGMENTED DIGIT ZERO +1FBF1 ; mapped ; 0031 # 13.0 SEGMENTED DIGIT ONE +1FBF2 ; mapped ; 0032 # 13.0 SEGMENTED DIGIT TWO +1FBF3 ; mapped ; 0033 # 13.0 SEGMENTED DIGIT THREE +1FBF4 ; mapped ; 0034 # 13.0 SEGMENTED DIGIT FOUR +1FBF5 ; mapped ; 0035 # 13.0 SEGMENTED DIGIT FIVE +1FBF6 ; mapped ; 0036 # 13.0 SEGMENTED DIGIT SIX +1FBF7 ; mapped ; 0037 # 13.0 SEGMENTED DIGIT SEVEN +1FBF8 ; mapped ; 0038 # 13.0 SEGMENTED DIGIT EIGHT +1FBF9 ; mapped ; 0039 # 13.0 SEGMENTED DIGIT NINE +1FBFA..1FFFD ; disallowed # NA <reserved-1FBFA>..<reserved-1FFFD> +1FFFE..1FFFF ; disallowed # 2.0 <noncharacter-1FFFE>..<noncharacter-1FFFF> +20000..2A6D6 ; valid # 3.1 CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6 +2A6D7..2A6DD ; valid # 13.0 CJK UNIFIED IDEOGRAPH-2A6D7..CJK UNIFIED IDEOGRAPH-2A6DD +2A6DE..2A6DF ; valid # 14.0 CJK UNIFIED IDEOGRAPH-2A6DE..CJK UNIFIED IDEOGRAPH-2A6DF +2A6E0..2A6FF ; disallowed # NA <reserved-2A6E0>..<reserved-2A6FF> +2A700..2B734 ; valid # 5.2 CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734 +2B735..2B738 ; valid # 14.0 CJK UNIFIED IDEOGRAPH-2B735..CJK UNIFIED IDEOGRAPH-2B738 +2B739 ; valid # 15.0 CJK UNIFIED IDEOGRAPH-2B739 +2B73A..2B73F ; disallowed # NA <reserved-2B73A>..<reserved-2B73F> +2B740..2B81D ; valid # 6.0 CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D +2B81E..2B81F ; disallowed # NA <reserved-2B81E>..<reserved-2B81F> +2B820..2CEA1 ; valid # 8.0 CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1 +2CEA2..2CEAF ; disallowed # NA <reserved-2CEA2>..<reserved-2CEAF> +2CEB0..2EBE0 ; valid # 10.0 CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0 +2EBE1..2F7FF ; disallowed # NA <reserved-2EBE1>..<reserved-2F7FF> +2F800 ; mapped ; 4E3D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F800 +2F801 ; mapped ; 4E38 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F801 +2F802 ; mapped ; 4E41 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F802 +2F803 ; mapped ; 20122 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F803 +2F804 ; mapped ; 4F60 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F804 +2F805 ; mapped ; 4FAE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F805 +2F806 ; mapped ; 4FBB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F806 +2F807 ; mapped ; 5002 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F807 +2F808 ; mapped ; 507A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F808 +2F809 ; mapped ; 5099 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F809 +2F80A ; mapped ; 50E7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F80A +2F80B ; mapped ; 50CF # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F80B +2F80C ; mapped ; 349E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F80C +2F80D ; mapped ; 2063A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F80D +2F80E ; mapped ; 514D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F80E +2F80F ; mapped ; 5154 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F80F +2F810 ; mapped ; 5164 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F810 +2F811 ; mapped ; 5177 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F811 +2F812 ; mapped ; 2051C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F812 +2F813 ; mapped ; 34B9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F813 +2F814 ; mapped ; 5167 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F814 +2F815 ; mapped ; 518D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F815 +2F816 ; mapped ; 2054B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F816 +2F817 ; mapped ; 5197 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F817 +2F818 ; mapped ; 51A4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F818 +2F819 ; mapped ; 4ECC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F819 +2F81A ; mapped ; 51AC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F81A +2F81B ; mapped ; 51B5 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F81B +2F81C ; mapped ; 291DF # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F81C +2F81D ; mapped ; 51F5 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F81D +2F81E ; mapped ; 5203 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F81E +2F81F ; mapped ; 34DF # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F81F +2F820 ; mapped ; 523B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F820 +2F821 ; mapped ; 5246 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F821 +2F822 ; mapped ; 5272 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F822 +2F823 ; mapped ; 5277 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F823 +2F824 ; mapped ; 3515 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F824 +2F825 ; mapped ; 52C7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F825 +2F826 ; mapped ; 52C9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F826 +2F827 ; mapped ; 52E4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F827 +2F828 ; mapped ; 52FA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F828 +2F829 ; mapped ; 5305 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F829 +2F82A ; mapped ; 5306 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F82A +2F82B ; mapped ; 5317 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F82B +2F82C ; mapped ; 5349 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F82C +2F82D ; mapped ; 5351 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F82D +2F82E ; mapped ; 535A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F82E +2F82F ; mapped ; 5373 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F82F +2F830 ; mapped ; 537D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F830 +2F831..2F833 ; mapped ; 537F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F831..CJK COMPATIBILITY IDEOGRAPH-2F833 +2F834 ; mapped ; 20A2C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F834 +2F835 ; mapped ; 7070 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F835 +2F836 ; mapped ; 53CA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F836 +2F837 ; mapped ; 53DF # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F837 +2F838 ; mapped ; 20B63 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F838 +2F839 ; mapped ; 53EB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F839 +2F83A ; mapped ; 53F1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F83A +2F83B ; mapped ; 5406 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F83B +2F83C ; mapped ; 549E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F83C +2F83D ; mapped ; 5438 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F83D +2F83E ; mapped ; 5448 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F83E +2F83F ; mapped ; 5468 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F83F +2F840 ; mapped ; 54A2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F840 +2F841 ; mapped ; 54F6 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F841 +2F842 ; mapped ; 5510 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F842 +2F843 ; mapped ; 5553 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F843 +2F844 ; mapped ; 5563 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F844 +2F845..2F846 ; mapped ; 5584 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F845..CJK COMPATIBILITY IDEOGRAPH-2F846 +2F847 ; mapped ; 5599 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F847 +2F848 ; mapped ; 55AB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F848 +2F849 ; mapped ; 55B3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F849 +2F84A ; mapped ; 55C2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F84A +2F84B ; mapped ; 5716 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F84B +2F84C ; mapped ; 5606 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F84C +2F84D ; mapped ; 5717 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F84D +2F84E ; mapped ; 5651 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F84E +2F84F ; mapped ; 5674 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F84F +2F850 ; mapped ; 5207 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F850 +2F851 ; mapped ; 58EE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F851 +2F852 ; mapped ; 57CE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F852 +2F853 ; mapped ; 57F4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F853 +2F854 ; mapped ; 580D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F854 +2F855 ; mapped ; 578B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F855 +2F856 ; mapped ; 5832 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F856 +2F857 ; mapped ; 5831 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F857 +2F858 ; mapped ; 58AC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F858 +2F859 ; mapped ; 214E4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F859 +2F85A ; mapped ; 58F2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F85A +2F85B ; mapped ; 58F7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F85B +2F85C ; mapped ; 5906 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F85C +2F85D ; mapped ; 591A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F85D +2F85E ; mapped ; 5922 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F85E +2F85F ; mapped ; 5962 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F85F +2F860 ; mapped ; 216A8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F860 +2F861 ; mapped ; 216EA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F861 +2F862 ; mapped ; 59EC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F862 +2F863 ; mapped ; 5A1B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F863 +2F864 ; mapped ; 5A27 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F864 +2F865 ; mapped ; 59D8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F865 +2F866 ; mapped ; 5A66 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F866 +2F867 ; mapped ; 36EE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F867 +2F868 ; disallowed # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F868 +2F869 ; mapped ; 5B08 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F869 +2F86A..2F86B ; mapped ; 5B3E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F86A..CJK COMPATIBILITY IDEOGRAPH-2F86B +2F86C ; mapped ; 219C8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F86C +2F86D ; mapped ; 5BC3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F86D +2F86E ; mapped ; 5BD8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F86E +2F86F ; mapped ; 5BE7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F86F +2F870 ; mapped ; 5BF3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F870 +2F871 ; mapped ; 21B18 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F871 +2F872 ; mapped ; 5BFF # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F872 +2F873 ; mapped ; 5C06 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F873 +2F874 ; disallowed # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F874 +2F875 ; mapped ; 5C22 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F875 +2F876 ; mapped ; 3781 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F876 +2F877 ; mapped ; 5C60 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F877 +2F878 ; mapped ; 5C6E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F878 +2F879 ; mapped ; 5CC0 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F879 +2F87A ; mapped ; 5C8D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F87A +2F87B ; mapped ; 21DE4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F87B +2F87C ; mapped ; 5D43 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F87C +2F87D ; mapped ; 21DE6 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F87D +2F87E ; mapped ; 5D6E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F87E +2F87F ; mapped ; 5D6B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F87F +2F880 ; mapped ; 5D7C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F880 +2F881 ; mapped ; 5DE1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F881 +2F882 ; mapped ; 5DE2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F882 +2F883 ; mapped ; 382F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F883 +2F884 ; mapped ; 5DFD # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F884 +2F885 ; mapped ; 5E28 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F885 +2F886 ; mapped ; 5E3D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F886 +2F887 ; mapped ; 5E69 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F887 +2F888 ; mapped ; 3862 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F888 +2F889 ; mapped ; 22183 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F889 +2F88A ; mapped ; 387C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F88A +2F88B ; mapped ; 5EB0 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F88B +2F88C ; mapped ; 5EB3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F88C +2F88D ; mapped ; 5EB6 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F88D +2F88E ; mapped ; 5ECA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F88E +2F88F ; mapped ; 2A392 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F88F +2F890 ; mapped ; 5EFE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F890 +2F891..2F892 ; mapped ; 22331 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F891..CJK COMPATIBILITY IDEOGRAPH-2F892 +2F893 ; mapped ; 8201 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F893 +2F894..2F895 ; mapped ; 5F22 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F894..CJK COMPATIBILITY IDEOGRAPH-2F895 +2F896 ; mapped ; 38C7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F896 +2F897 ; mapped ; 232B8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F897 +2F898 ; mapped ; 261DA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F898 +2F899 ; mapped ; 5F62 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F899 +2F89A ; mapped ; 5F6B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F89A +2F89B ; mapped ; 38E3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F89B +2F89C ; mapped ; 5F9A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F89C +2F89D ; mapped ; 5FCD # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F89D +2F89E ; mapped ; 5FD7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F89E +2F89F ; mapped ; 5FF9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F89F +2F8A0 ; mapped ; 6081 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8A0 +2F8A1 ; mapped ; 393A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8A1 +2F8A2 ; mapped ; 391C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8A2 +2F8A3 ; mapped ; 6094 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8A3 +2F8A4 ; mapped ; 226D4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8A4 +2F8A5 ; mapped ; 60C7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8A5 +2F8A6 ; mapped ; 6148 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8A6 +2F8A7 ; mapped ; 614C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8A7 +2F8A8 ; mapped ; 614E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8A8 +2F8A9 ; mapped ; 614C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8A9 +2F8AA ; mapped ; 617A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8AA +2F8AB ; mapped ; 618E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8AB +2F8AC ; mapped ; 61B2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8AC +2F8AD ; mapped ; 61A4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8AD +2F8AE ; mapped ; 61AF # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8AE +2F8AF ; mapped ; 61DE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8AF +2F8B0 ; mapped ; 61F2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8B0 +2F8B1 ; mapped ; 61F6 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8B1 +2F8B2 ; mapped ; 6210 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8B2 +2F8B3 ; mapped ; 621B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8B3 +2F8B4 ; mapped ; 625D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8B4 +2F8B5 ; mapped ; 62B1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8B5 +2F8B6 ; mapped ; 62D4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8B6 +2F8B7 ; mapped ; 6350 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8B7 +2F8B8 ; mapped ; 22B0C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8B8 +2F8B9 ; mapped ; 633D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8B9 +2F8BA ; mapped ; 62FC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8BA +2F8BB ; mapped ; 6368 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8BB +2F8BC ; mapped ; 6383 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8BC +2F8BD ; mapped ; 63E4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8BD +2F8BE ; mapped ; 22BF1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8BE +2F8BF ; mapped ; 6422 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8BF +2F8C0 ; mapped ; 63C5 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8C0 +2F8C1 ; mapped ; 63A9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8C1 +2F8C2 ; mapped ; 3A2E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8C2 +2F8C3 ; mapped ; 6469 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8C3 +2F8C4 ; mapped ; 647E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8C4 +2F8C5 ; mapped ; 649D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8C5 +2F8C6 ; mapped ; 6477 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8C6 +2F8C7 ; mapped ; 3A6C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8C7 +2F8C8 ; mapped ; 654F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8C8 +2F8C9 ; mapped ; 656C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8C9 +2F8CA ; mapped ; 2300A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8CA +2F8CB ; mapped ; 65E3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8CB +2F8CC ; mapped ; 66F8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8CC +2F8CD ; mapped ; 6649 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8CD +2F8CE ; mapped ; 3B19 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8CE +2F8CF ; mapped ; 6691 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8CF +2F8D0 ; mapped ; 3B08 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8D0 +2F8D1 ; mapped ; 3AE4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8D1 +2F8D2 ; mapped ; 5192 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8D2 +2F8D3 ; mapped ; 5195 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8D3 +2F8D4 ; mapped ; 6700 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8D4 +2F8D5 ; mapped ; 669C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8D5 +2F8D6 ; mapped ; 80AD # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8D6 +2F8D7 ; mapped ; 43D9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8D7 +2F8D8 ; mapped ; 6717 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8D8 +2F8D9 ; mapped ; 671B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8D9 +2F8DA ; mapped ; 6721 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8DA +2F8DB ; mapped ; 675E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8DB +2F8DC ; mapped ; 6753 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8DC +2F8DD ; mapped ; 233C3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8DD +2F8DE ; mapped ; 3B49 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8DE +2F8DF ; mapped ; 67FA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8DF +2F8E0 ; mapped ; 6785 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8E0 +2F8E1 ; mapped ; 6852 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8E1 +2F8E2 ; mapped ; 6885 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8E2 +2F8E3 ; mapped ; 2346D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8E3 +2F8E4 ; mapped ; 688E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8E4 +2F8E5 ; mapped ; 681F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8E5 +2F8E6 ; mapped ; 6914 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8E6 +2F8E7 ; mapped ; 3B9D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8E7 +2F8E8 ; mapped ; 6942 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8E8 +2F8E9 ; mapped ; 69A3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8E9 +2F8EA ; mapped ; 69EA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8EA +2F8EB ; mapped ; 6AA8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8EB +2F8EC ; mapped ; 236A3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8EC +2F8ED ; mapped ; 6ADB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8ED +2F8EE ; mapped ; 3C18 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8EE +2F8EF ; mapped ; 6B21 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8EF +2F8F0 ; mapped ; 238A7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8F0 +2F8F1 ; mapped ; 6B54 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8F1 +2F8F2 ; mapped ; 3C4E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8F2 +2F8F3 ; mapped ; 6B72 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8F3 +2F8F4 ; mapped ; 6B9F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8F4 +2F8F5 ; mapped ; 6BBA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8F5 +2F8F6 ; mapped ; 6BBB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8F6 +2F8F7 ; mapped ; 23A8D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8F7 +2F8F8 ; mapped ; 21D0B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8F8 +2F8F9 ; mapped ; 23AFA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8F9 +2F8FA ; mapped ; 6C4E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8FA +2F8FB ; mapped ; 23CBC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8FB +2F8FC ; mapped ; 6CBF # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8FC +2F8FD ; mapped ; 6CCD # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8FD +2F8FE ; mapped ; 6C67 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8FE +2F8FF ; mapped ; 6D16 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8FF +2F900 ; mapped ; 6D3E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F900 +2F901 ; mapped ; 6D77 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F901 +2F902 ; mapped ; 6D41 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F902 +2F903 ; mapped ; 6D69 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F903 +2F904 ; mapped ; 6D78 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F904 +2F905 ; mapped ; 6D85 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F905 +2F906 ; mapped ; 23D1E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F906 +2F907 ; mapped ; 6D34 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F907 +2F908 ; mapped ; 6E2F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F908 +2F909 ; mapped ; 6E6E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F909 +2F90A ; mapped ; 3D33 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F90A +2F90B ; mapped ; 6ECB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F90B +2F90C ; mapped ; 6EC7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F90C +2F90D ; mapped ; 23ED1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F90D +2F90E ; mapped ; 6DF9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F90E +2F90F ; mapped ; 6F6E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F90F +2F910 ; mapped ; 23F5E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F910 +2F911 ; mapped ; 23F8E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F911 +2F912 ; mapped ; 6FC6 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F912 +2F913 ; mapped ; 7039 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F913 +2F914 ; mapped ; 701E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F914 +2F915 ; mapped ; 701B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F915 +2F916 ; mapped ; 3D96 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F916 +2F917 ; mapped ; 704A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F917 +2F918 ; mapped ; 707D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F918 +2F919 ; mapped ; 7077 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F919 +2F91A ; mapped ; 70AD # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F91A +2F91B ; mapped ; 20525 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F91B +2F91C ; mapped ; 7145 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F91C +2F91D ; mapped ; 24263 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F91D +2F91E ; mapped ; 719C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F91E +2F91F ; disallowed # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F91F +2F920 ; mapped ; 7228 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F920 +2F921 ; mapped ; 7235 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F921 +2F922 ; mapped ; 7250 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F922 +2F923 ; mapped ; 24608 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F923 +2F924 ; mapped ; 7280 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F924 +2F925 ; mapped ; 7295 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F925 +2F926 ; mapped ; 24735 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F926 +2F927 ; mapped ; 24814 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F927 +2F928 ; mapped ; 737A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F928 +2F929 ; mapped ; 738B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F929 +2F92A ; mapped ; 3EAC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F92A +2F92B ; mapped ; 73A5 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F92B +2F92C..2F92D ; mapped ; 3EB8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F92C..CJK COMPATIBILITY IDEOGRAPH-2F92D +2F92E ; mapped ; 7447 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F92E +2F92F ; mapped ; 745C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F92F +2F930 ; mapped ; 7471 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F930 +2F931 ; mapped ; 7485 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F931 +2F932 ; mapped ; 74CA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F932 +2F933 ; mapped ; 3F1B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F933 +2F934 ; mapped ; 7524 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F934 +2F935 ; mapped ; 24C36 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F935 +2F936 ; mapped ; 753E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F936 +2F937 ; mapped ; 24C92 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F937 +2F938 ; mapped ; 7570 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F938 +2F939 ; mapped ; 2219F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F939 +2F93A ; mapped ; 7610 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F93A +2F93B ; mapped ; 24FA1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F93B +2F93C ; mapped ; 24FB8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F93C +2F93D ; mapped ; 25044 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F93D +2F93E ; mapped ; 3FFC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F93E +2F93F ; mapped ; 4008 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F93F +2F940 ; mapped ; 76F4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F940 +2F941 ; mapped ; 250F3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F941 +2F942 ; mapped ; 250F2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F942 +2F943 ; mapped ; 25119 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F943 +2F944 ; mapped ; 25133 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F944 +2F945 ; mapped ; 771E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F945 +2F946..2F947 ; mapped ; 771F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F946..CJK COMPATIBILITY IDEOGRAPH-2F947 +2F948 ; mapped ; 774A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F948 +2F949 ; mapped ; 4039 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F949 +2F94A ; mapped ; 778B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F94A +2F94B ; mapped ; 4046 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F94B +2F94C ; mapped ; 4096 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F94C +2F94D ; mapped ; 2541D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F94D +2F94E ; mapped ; 784E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F94E +2F94F ; mapped ; 788C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F94F +2F950 ; mapped ; 78CC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F950 +2F951 ; mapped ; 40E3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F951 +2F952 ; mapped ; 25626 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F952 +2F953 ; mapped ; 7956 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F953 +2F954 ; mapped ; 2569A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F954 +2F955 ; mapped ; 256C5 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F955 +2F956 ; mapped ; 798F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F956 +2F957 ; mapped ; 79EB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F957 +2F958 ; mapped ; 412F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F958 +2F959 ; mapped ; 7A40 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F959 +2F95A ; mapped ; 7A4A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F95A +2F95B ; mapped ; 7A4F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F95B +2F95C ; mapped ; 2597C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F95C +2F95D..2F95E ; mapped ; 25AA7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F95D..CJK COMPATIBILITY IDEOGRAPH-2F95E +2F95F ; disallowed # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F95F +2F960 ; mapped ; 4202 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F960 +2F961 ; mapped ; 25BAB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F961 +2F962 ; mapped ; 7BC6 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F962 +2F963 ; mapped ; 7BC9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F963 +2F964 ; mapped ; 4227 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F964 +2F965 ; mapped ; 25C80 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F965 +2F966 ; mapped ; 7CD2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F966 +2F967 ; mapped ; 42A0 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F967 +2F968 ; mapped ; 7CE8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F968 +2F969 ; mapped ; 7CE3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F969 +2F96A ; mapped ; 7D00 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F96A +2F96B ; mapped ; 25F86 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F96B +2F96C ; mapped ; 7D63 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F96C +2F96D ; mapped ; 4301 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F96D +2F96E ; mapped ; 7DC7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F96E +2F96F ; mapped ; 7E02 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F96F +2F970 ; mapped ; 7E45 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F970 +2F971 ; mapped ; 4334 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F971 +2F972 ; mapped ; 26228 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F972 +2F973 ; mapped ; 26247 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F973 +2F974 ; mapped ; 4359 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F974 +2F975 ; mapped ; 262D9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F975 +2F976 ; mapped ; 7F7A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F976 +2F977 ; mapped ; 2633E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F977 +2F978 ; mapped ; 7F95 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F978 +2F979 ; mapped ; 7FFA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F979 +2F97A ; mapped ; 8005 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F97A +2F97B ; mapped ; 264DA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F97B +2F97C ; mapped ; 26523 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F97C +2F97D ; mapped ; 8060 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F97D +2F97E ; mapped ; 265A8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F97E +2F97F ; mapped ; 8070 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F97F +2F980 ; mapped ; 2335F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F980 +2F981 ; mapped ; 43D5 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F981 +2F982 ; mapped ; 80B2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F982 +2F983 ; mapped ; 8103 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F983 +2F984 ; mapped ; 440B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F984 +2F985 ; mapped ; 813E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F985 +2F986 ; mapped ; 5AB5 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F986 +2F987 ; mapped ; 267A7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F987 +2F988 ; mapped ; 267B5 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F988 +2F989 ; mapped ; 23393 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F989 +2F98A ; mapped ; 2339C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F98A +2F98B ; mapped ; 8201 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F98B +2F98C ; mapped ; 8204 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F98C +2F98D ; mapped ; 8F9E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F98D +2F98E ; mapped ; 446B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F98E +2F98F ; mapped ; 8291 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F98F +2F990 ; mapped ; 828B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F990 +2F991 ; mapped ; 829D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F991 +2F992 ; mapped ; 52B3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F992 +2F993 ; mapped ; 82B1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F993 +2F994 ; mapped ; 82B3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F994 +2F995 ; mapped ; 82BD # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F995 +2F996 ; mapped ; 82E6 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F996 +2F997 ; mapped ; 26B3C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F997 +2F998 ; mapped ; 82E5 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F998 +2F999 ; mapped ; 831D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F999 +2F99A ; mapped ; 8363 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F99A +2F99B ; mapped ; 83AD # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F99B +2F99C ; mapped ; 8323 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F99C +2F99D ; mapped ; 83BD # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F99D +2F99E ; mapped ; 83E7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F99E +2F99F ; mapped ; 8457 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F99F +2F9A0 ; mapped ; 8353 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9A0 +2F9A1 ; mapped ; 83CA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9A1 +2F9A2 ; mapped ; 83CC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9A2 +2F9A3 ; mapped ; 83DC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9A3 +2F9A4 ; mapped ; 26C36 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9A4 +2F9A5 ; mapped ; 26D6B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9A5 +2F9A6 ; mapped ; 26CD5 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9A6 +2F9A7 ; mapped ; 452B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9A7 +2F9A8 ; mapped ; 84F1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9A8 +2F9A9 ; mapped ; 84F3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9A9 +2F9AA ; mapped ; 8516 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9AA +2F9AB ; mapped ; 273CA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9AB +2F9AC ; mapped ; 8564 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9AC +2F9AD ; mapped ; 26F2C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9AD +2F9AE ; mapped ; 455D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9AE +2F9AF ; mapped ; 4561 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9AF +2F9B0 ; mapped ; 26FB1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9B0 +2F9B1 ; mapped ; 270D2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9B1 +2F9B2 ; mapped ; 456B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9B2 +2F9B3 ; mapped ; 8650 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9B3 +2F9B4 ; mapped ; 865C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9B4 +2F9B5 ; mapped ; 8667 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9B5 +2F9B6 ; mapped ; 8669 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9B6 +2F9B7 ; mapped ; 86A9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9B7 +2F9B8 ; mapped ; 8688 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9B8 +2F9B9 ; mapped ; 870E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9B9 +2F9BA ; mapped ; 86E2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9BA +2F9BB ; mapped ; 8779 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9BB +2F9BC ; mapped ; 8728 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9BC +2F9BD ; mapped ; 876B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9BD +2F9BE ; mapped ; 8786 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9BE +2F9BF ; disallowed # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9BF +2F9C0 ; mapped ; 87E1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9C0 +2F9C1 ; mapped ; 8801 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9C1 +2F9C2 ; mapped ; 45F9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9C2 +2F9C3 ; mapped ; 8860 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9C3 +2F9C4 ; mapped ; 8863 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9C4 +2F9C5 ; mapped ; 27667 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9C5 +2F9C6 ; mapped ; 88D7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9C6 +2F9C7 ; mapped ; 88DE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9C7 +2F9C8 ; mapped ; 4635 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9C8 +2F9C9 ; mapped ; 88FA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9C9 +2F9CA ; mapped ; 34BB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9CA +2F9CB ; mapped ; 278AE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9CB +2F9CC ; mapped ; 27966 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9CC +2F9CD ; mapped ; 46BE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9CD +2F9CE ; mapped ; 46C7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9CE +2F9CF ; mapped ; 8AA0 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9CF +2F9D0 ; mapped ; 8AED # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9D0 +2F9D1 ; mapped ; 8B8A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9D1 +2F9D2 ; mapped ; 8C55 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9D2 +2F9D3 ; mapped ; 27CA8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9D3 +2F9D4 ; mapped ; 8CAB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9D4 +2F9D5 ; mapped ; 8CC1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9D5 +2F9D6 ; mapped ; 8D1B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9D6 +2F9D7 ; mapped ; 8D77 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9D7 +2F9D8 ; mapped ; 27F2F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9D8 +2F9D9 ; mapped ; 20804 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9D9 +2F9DA ; mapped ; 8DCB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9DA +2F9DB ; mapped ; 8DBC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9DB +2F9DC ; mapped ; 8DF0 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9DC +2F9DD ; mapped ; 208DE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9DD +2F9DE ; mapped ; 8ED4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9DE +2F9DF ; mapped ; 8F38 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9DF +2F9E0 ; mapped ; 285D2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9E0 +2F9E1 ; mapped ; 285ED # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9E1 +2F9E2 ; mapped ; 9094 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9E2 +2F9E3 ; mapped ; 90F1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9E3 +2F9E4 ; mapped ; 9111 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9E4 +2F9E5 ; mapped ; 2872E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9E5 +2F9E6 ; mapped ; 911B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9E6 +2F9E7 ; mapped ; 9238 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9E7 +2F9E8 ; mapped ; 92D7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9E8 +2F9E9 ; mapped ; 92D8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9E9 +2F9EA ; mapped ; 927C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9EA +2F9EB ; mapped ; 93F9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9EB +2F9EC ; mapped ; 9415 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9EC +2F9ED ; mapped ; 28BFA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9ED +2F9EE ; mapped ; 958B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9EE +2F9EF ; mapped ; 4995 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9EF +2F9F0 ; mapped ; 95B7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9F0 +2F9F1 ; mapped ; 28D77 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9F1 +2F9F2 ; mapped ; 49E6 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9F2 +2F9F3 ; mapped ; 96C3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9F3 +2F9F4 ; mapped ; 5DB2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9F4 +2F9F5 ; mapped ; 9723 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9F5 +2F9F6 ; mapped ; 29145 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9F6 +2F9F7 ; mapped ; 2921A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9F7 +2F9F8 ; mapped ; 4A6E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9F8 +2F9F9 ; mapped ; 4A76 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9F9 +2F9FA ; mapped ; 97E0 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9FA +2F9FB ; mapped ; 2940A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9FB +2F9FC ; mapped ; 4AB2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9FC +2F9FD ; mapped ; 29496 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9FD +2F9FE..2F9FF ; mapped ; 980B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9FE..CJK COMPATIBILITY IDEOGRAPH-2F9FF +2FA00 ; mapped ; 9829 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA00 +2FA01 ; mapped ; 295B6 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA01 +2FA02 ; mapped ; 98E2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA02 +2FA03 ; mapped ; 4B33 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA03 +2FA04 ; mapped ; 9929 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA04 +2FA05 ; mapped ; 99A7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA05 +2FA06 ; mapped ; 99C2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA06 +2FA07 ; mapped ; 99FE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA07 +2FA08 ; mapped ; 4BCE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA08 +2FA09 ; mapped ; 29B30 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA09 +2FA0A ; mapped ; 9B12 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA0A +2FA0B ; mapped ; 9C40 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA0B +2FA0C ; mapped ; 9CFD # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA0C +2FA0D ; mapped ; 4CCE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA0D +2FA0E ; mapped ; 4CED # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA0E +2FA0F ; mapped ; 9D67 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA0F +2FA10 ; mapped ; 2A0CE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA10 +2FA11 ; mapped ; 4CF8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA11 +2FA12 ; mapped ; 2A105 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA12 +2FA13 ; mapped ; 2A20E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA13 +2FA14 ; mapped ; 2A291 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA14 +2FA15 ; mapped ; 9EBB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA15 +2FA16 ; mapped ; 4D56 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA16 +2FA17 ; mapped ; 9EF9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA17 +2FA18 ; mapped ; 9EFE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA18 +2FA19 ; mapped ; 9F05 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA19 +2FA1A ; mapped ; 9F0F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA1A +2FA1B ; mapped ; 9F16 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA1B +2FA1C ; mapped ; 9F3B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA1C +2FA1D ; mapped ; 2A600 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA1D +2FA1E..2FFFD ; disallowed # NA <reserved-2FA1E>..<reserved-2FFFD> +2FFFE..2FFFF ; disallowed # 2.0 <noncharacter-2FFFE>..<noncharacter-2FFFF> +30000..3134A ; valid # 13.0 CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A +3134B..3134F ; disallowed # NA <reserved-3134B>..<reserved-3134F> +31350..323AF ; valid # 15.0 CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF +323B0..3FFFD ; disallowed # NA <reserved-323B0>..<reserved-3FFFD> +3FFFE..3FFFF ; disallowed # 2.0 <noncharacter-3FFFE>..<noncharacter-3FFFF> +40000..4FFFD ; disallowed # NA <reserved-40000>..<reserved-4FFFD> +4FFFE..4FFFF ; disallowed # 2.0 <noncharacter-4FFFE>..<noncharacter-4FFFF> +50000..5FFFD ; disallowed # NA <reserved-50000>..<reserved-5FFFD> +5FFFE..5FFFF ; disallowed # 2.0 <noncharacter-5FFFE>..<noncharacter-5FFFF> +60000..6FFFD ; disallowed # NA <reserved-60000>..<reserved-6FFFD> +6FFFE..6FFFF ; disallowed # 2.0 <noncharacter-6FFFE>..<noncharacter-6FFFF> +70000..7FFFD ; disallowed # NA <reserved-70000>..<reserved-7FFFD> +7FFFE..7FFFF ; disallowed # 2.0 <noncharacter-7FFFE>..<noncharacter-7FFFF> +80000..8FFFD ; disallowed # NA <reserved-80000>..<reserved-8FFFD> +8FFFE..8FFFF ; disallowed # 2.0 <noncharacter-8FFFE>..<noncharacter-8FFFF> +90000..9FFFD ; disallowed # NA <reserved-90000>..<reserved-9FFFD> +9FFFE..9FFFF ; disallowed # 2.0 <noncharacter-9FFFE>..<noncharacter-9FFFF> +A0000..AFFFD ; disallowed # NA <reserved-A0000>..<reserved-AFFFD> +AFFFE..AFFFF ; disallowed # 2.0 <noncharacter-AFFFE>..<noncharacter-AFFFF> +B0000..BFFFD ; disallowed # NA <reserved-B0000>..<reserved-BFFFD> +BFFFE..BFFFF ; disallowed # 2.0 <noncharacter-BFFFE>..<noncharacter-BFFFF> +C0000..CFFFD ; disallowed # NA <reserved-C0000>..<reserved-CFFFD> +CFFFE..CFFFF ; disallowed # 2.0 <noncharacter-CFFFE>..<noncharacter-CFFFF> +D0000..DFFFD ; disallowed # NA <reserved-D0000>..<reserved-DFFFD> +DFFFE..DFFFF ; disallowed # 2.0 <noncharacter-DFFFE>..<noncharacter-DFFFF> +E0000 ; disallowed # NA <reserved-E0000> +E0001 ; disallowed # 3.1 LANGUAGE TAG +E0002..E001F ; disallowed # NA <reserved-E0002>..<reserved-E001F> +E0020..E007F ; disallowed # 3.1 TAG SPACE..CANCEL TAG +E0080..E00FF ; disallowed # NA <reserved-E0080>..<reserved-E00FF> +E0100..E01EF ; ignored # 4.0 VARIATION SELECTOR-17..VARIATION SELECTOR-256 +E01F0..EFFFD ; disallowed # NA <reserved-E01F0>..<reserved-EFFFD> +EFFFE..EFFFF ; disallowed # 2.0 <noncharacter-EFFFE>..<noncharacter-EFFFF> +F0000..FFFFD ; disallowed # 2.0 <private-use-F0000>..<private-use-FFFFD> +FFFFE..FFFFF ; disallowed # 2.0 <noncharacter-FFFFE>..<noncharacter-FFFFF> +100000..10FFFD; disallowed # 2.0 <private-use-100000>..<private-use-10FFFD> +10FFFE..10FFFF; disallowed # 2.0 <noncharacter-10FFFE>..<noncharacter-10FFFF> + +# Total code points: 1114112 diff --git a/admin/unidata/Makefile.in b/admin/unidata/Makefile.in index ab65781f700f..6768d610ee05 100644 --- a/admin/unidata/Makefile.in +++ b/admin/unidata/Makefile.in @@ -1,6 +1,6 @@ ### @configure_input@ -# Copyright (C) 2012-2023 Free Software Foundation, Inc. +# Copyright (C) 2012-2024 Free Software Foundation, Inc. # Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 # National Institute of Advanced Industrial Science and Technology (AIST) @@ -29,6 +29,9 @@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ +# Prevent any settings in the user environment causing problems. +unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH + EMACS = ${top_builddir}/src/emacs unidir = ${top_srcdir}/lisp/international emacs = "${EMACS}" -batch --no-site-file --no-site-lisp @@ -41,7 +44,9 @@ unifiles = $(addprefix ${unidir}/,$(sort $(shell sed -n 's/^[ \t][ \t]*${lparen} .PHONY: all all: ${top_srcdir}/src/macuvs.h ${unifiles} ${unidir}/charscript.el \ - ${unidir}/charprop.el ${unidir}/emoji-zwj.el + ${unidir}/charprop.el ${unidir}/emoji-zwj.el ${unidir}/emoji-labels.el \ + ${unidir}/uni-scripts.el ${unidir}/uni-confusable.el \ + ${unidir}/idna-mapping.el ## Specify .elc as an order-only prereq so as to not needlessly rebuild ## target just because the .elc is missing. @@ -63,18 +68,38 @@ unidata.txt: ${srcdir}/UnicodeData.txt ## pretend that it does since other Makefiles assume that if charprop ## is up-to-date, the unifiles are too. ${unidir}/charprop.el: ${unifiles} ${srcdir}/unidata-gen.el | ${srcdir}/unidata-gen.elc - $(AM_V_at)[ ! -f $@ ] || chmod +w $@ - $(AM_V_GEN)${emacs} -L ${srcdir} -l unidata-gen \ + $(AM_V_GEN)[ ! -f $@ ] || chmod +w $@ + $(AM_V_at)${emacs} -L ${srcdir} -l unidata-gen \ -f unidata-gen-charprop $@ ${unifiles}: ${srcdir}/unidata-gen.el \ ${srcdir}/UnicodeData.txt ${srcdir}/BidiMirroring.txt \ ${srcdir}/BidiBrackets.txt | \ ${srcdir}/unidata-gen.elc unidata.txt - $(AM_V_at)[ ! -f $@ ] || chmod +w $@ - $(AM_V_GEN)${emacs} -L ${srcdir} -l unidata-gen \ + $(AM_V_GEN)[ ! -f $@ ] || chmod +w $@ + $(AM_V_at)${emacs} -L ${srcdir} -l unidata-gen \ -f unidata-gen-file $@ ${srcdir} +${unidir}/emoji-labels.el: ${unidir}/../international/emoji.el \ + ${srcdir}/emoji-test.txt + $(AM_V_GEN)${emacs} -l emoji.el -f emoji--generate-file $@ + +${unidir}/uni-scripts.el: ${srcdir}/unidata-gen.el \ + ${srcdir}/Scripts.txt \ + ${srcdir}/ScriptExtensions.txt \ + ${srcdir}/PropertyValueAliases.txt + $(AM_V_GEN)${emacs} -L ${srcdir} \ + -l unidata-gen.el -f unidata-gen-scripts $@ + +${unidir}/uni-confusable.el: ${srcdir}/unidata-gen.el \ + ${srcdir}/confusables.txt + $(AM_V_GEN)${emacs} -L ${srcdir} \ + -l unidata-gen.el -f unidata-gen-confusable $@ + +${unidir}/idna-mapping.el: ${srcdir}/unidata-gen.el \ + ${srcdir}/IdnaMappingTable.txt + $(AM_V_GEN)${emacs} -L ${srcdir} \ + -l unidata-gen.el -f unidata-gen-idna-mapping $@ .PHONY: charscript.el charscript.el: ${unidir}/charscript.el @@ -113,7 +138,8 @@ gen-clean: rm -f ${unidir}/charscript.el* rm -f ${unidir}/emoji-zwj.el* rm -f ${unifiles} ${unidir}/charprop.el + rm -f ${unidir}/emoji-labels.el ${unidir}/idna-mapping.el \ + ${unidir}/uni-confusable.el ${unidir}/uni-scripts.el ## ref: https://lists.gnu.org/r/emacs-devel/2013-11/msg01029.html maintainer-clean: gen-clean distclean - diff --git a/admin/unidata/NormalizationTest.txt b/admin/unidata/NormalizationTest.txt index 302c35f37c7d..e75b4801c9b1 100644 --- a/admin/unidata/NormalizationTest.txt +++ b/admin/unidata/NormalizationTest.txt @@ -1,11 +1,11 @@ -# NormalizationTest-14.0.0.txt -# Date: 2021-05-28, 21:49:12 GMT -# © 2021 Unicode®, Inc. +# NormalizationTest-15.0.0.txt +# Date: 2022-04-02, 01:29:09 GMT +# © 2022 Unicode®, Inc. # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. -# For terms of use, see http://www.unicode.org/terms_of_use.html +# For terms of use, see https://www.unicode.org/terms_of_use.html # # Unicode Character Database -# For documentation, see http://www.unicode.org/reports/tr44/ +# For documentation, see https://www.unicode.org/reports/tr44/ # # Normalization Test Suite # Format: @@ -16208,6 +16208,68 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH WHITE CIRCLE 1D7FD;1D7FD;1D7FD;0037;0037; # (𝟽; 𝟽; 𝟽; 7; 7; ) MATHEMATICAL MONOSPACE DIGIT SEVEN 1D7FE;1D7FE;1D7FE;0038;0038; # (𝟾; 𝟾; 𝟾; 8; 8; ) MATHEMATICAL MONOSPACE DIGIT EIGHT 1D7FF;1D7FF;1D7FF;0039;0039; # (𝟿; 𝟿; 𝟿; 9; 9; ) MATHEMATICAL MONOSPACE DIGIT NINE +1E030;1E030;1E030;0430;0430; # (𞀰; 𞀰; 𞀰; а; а; ) MODIFIER LETTER CYRILLIC SMALL A +1E031;1E031;1E031;0431;0431; # (𞀱; 𞀱; 𞀱; б; б; ) MODIFIER LETTER CYRILLIC SMALL BE +1E032;1E032;1E032;0432;0432; # (𞀲; 𞀲; 𞀲; в; в; ) MODIFIER LETTER CYRILLIC SMALL VE +1E033;1E033;1E033;0433;0433; # (𞀳; 𞀳; 𞀳; г; г; ) MODIFIER LETTER CYRILLIC SMALL GHE +1E034;1E034;1E034;0434;0434; # (𞀴; 𞀴; 𞀴; д; д; ) MODIFIER LETTER CYRILLIC SMALL DE +1E035;1E035;1E035;0435;0435; # (𞀵; 𞀵; 𞀵; е; е; ) MODIFIER LETTER CYRILLIC SMALL IE +1E036;1E036;1E036;0436;0436; # (𞀶; 𞀶; 𞀶; ж; ж; ) MODIFIER LETTER CYRILLIC SMALL ZHE +1E037;1E037;1E037;0437;0437; # (𞀷; 𞀷; 𞀷; з; з; ) MODIFIER LETTER CYRILLIC SMALL ZE +1E038;1E038;1E038;0438;0438; # (𞀸; 𞀸; 𞀸; и; и; ) MODIFIER LETTER CYRILLIC SMALL I +1E039;1E039;1E039;043A;043A; # (𞀹; 𞀹; 𞀹; к; к; ) MODIFIER LETTER CYRILLIC SMALL KA +1E03A;1E03A;1E03A;043B;043B; # (𞀺; 𞀺; 𞀺; л; л; ) MODIFIER LETTER CYRILLIC SMALL EL +1E03B;1E03B;1E03B;043C;043C; # (𞀻; 𞀻; 𞀻; м; м; ) MODIFIER LETTER CYRILLIC SMALL EM +1E03C;1E03C;1E03C;043E;043E; # (𞀼; 𞀼; 𞀼; о; о; ) MODIFIER LETTER CYRILLIC SMALL O +1E03D;1E03D;1E03D;043F;043F; # (𞀽; 𞀽; 𞀽; п; п; ) MODIFIER LETTER CYRILLIC SMALL PE +1E03E;1E03E;1E03E;0440;0440; # (𞀾; 𞀾; 𞀾; р; р; ) MODIFIER LETTER CYRILLIC SMALL ER +1E03F;1E03F;1E03F;0441;0441; # (𞀿; 𞀿; 𞀿; с; с; ) MODIFIER LETTER CYRILLIC SMALL ES +1E040;1E040;1E040;0442;0442; # (𞁀; 𞁀; 𞁀; т; т; ) MODIFIER LETTER CYRILLIC SMALL TE +1E041;1E041;1E041;0443;0443; # (𞁁; 𞁁; 𞁁; у; у; ) MODIFIER LETTER CYRILLIC SMALL U +1E042;1E042;1E042;0444;0444; # (𞁂; 𞁂; 𞁂; ф; ф; ) MODIFIER LETTER CYRILLIC SMALL EF +1E043;1E043;1E043;0445;0445; # (𞁃; 𞁃; 𞁃; х; х; ) MODIFIER LETTER CYRILLIC SMALL HA +1E044;1E044;1E044;0446;0446; # (𞁄; 𞁄; 𞁄; ц; ц; ) MODIFIER LETTER CYRILLIC SMALL TSE +1E045;1E045;1E045;0447;0447; # (𞁅; 𞁅; 𞁅; ч; ч; ) MODIFIER LETTER CYRILLIC SMALL CHE +1E046;1E046;1E046;0448;0448; # (𞁆; 𞁆; 𞁆; ш; ш; ) MODIFIER LETTER CYRILLIC SMALL SHA +1E047;1E047;1E047;044B;044B; # (𞁇; 𞁇; 𞁇; ы; ы; ) MODIFIER LETTER CYRILLIC SMALL YERU +1E048;1E048;1E048;044D;044D; # (𞁈; 𞁈; 𞁈; э; э; ) MODIFIER LETTER CYRILLIC SMALL E +1E049;1E049;1E049;044E;044E; # (𞁉; 𞁉; 𞁉; ю; ю; ) MODIFIER LETTER CYRILLIC SMALL YU +1E04A;1E04A;1E04A;A689;A689; # (𞁊; 𞁊; 𞁊; ꚉ; ꚉ; ) MODIFIER LETTER CYRILLIC SMALL DZZE +1E04B;1E04B;1E04B;04D9;04D9; # (𞁋; 𞁋; 𞁋; ә; ә; ) MODIFIER LETTER CYRILLIC SMALL SCHWA +1E04C;1E04C;1E04C;0456;0456; # (𞁌; 𞁌; 𞁌; і; і; ) MODIFIER LETTER CYRILLIC SMALL BYELORUSSIAN-UKRAINIAN I +1E04D;1E04D;1E04D;0458;0458; # (𞁍; 𞁍; 𞁍; ј; ј; ) MODIFIER LETTER CYRILLIC SMALL JE +1E04E;1E04E;1E04E;04E9;04E9; # (𞁎; 𞁎; 𞁎; ө; ө; ) MODIFIER LETTER CYRILLIC SMALL BARRED O +1E04F;1E04F;1E04F;04AF;04AF; # (𞁏; 𞁏; 𞁏; ү; ү; ) MODIFIER LETTER CYRILLIC SMALL STRAIGHT U +1E050;1E050;1E050;04CF;04CF; # (𞁐; 𞁐; 𞁐; ӏ; ӏ; ) MODIFIER LETTER CYRILLIC SMALL PALOCHKA +1E051;1E051;1E051;0430;0430; # (𞁑; 𞁑; 𞁑; а; а; ) CYRILLIC SUBSCRIPT SMALL LETTER A +1E052;1E052;1E052;0431;0431; # (𞁒; 𞁒; 𞁒; б; б; ) CYRILLIC SUBSCRIPT SMALL LETTER BE +1E053;1E053;1E053;0432;0432; # (𞁓; 𞁓; 𞁓; в; в; ) CYRILLIC SUBSCRIPT SMALL LETTER VE +1E054;1E054;1E054;0433;0433; # (𞁔; 𞁔; 𞁔; г; г; ) CYRILLIC SUBSCRIPT SMALL LETTER GHE +1E055;1E055;1E055;0434;0434; # (𞁕; 𞁕; 𞁕; д; д; ) CYRILLIC SUBSCRIPT SMALL LETTER DE +1E056;1E056;1E056;0435;0435; # (𞁖; 𞁖; 𞁖; е; е; ) CYRILLIC SUBSCRIPT SMALL LETTER IE +1E057;1E057;1E057;0436;0436; # (𞁗; 𞁗; 𞁗; ж; ж; ) CYRILLIC SUBSCRIPT SMALL LETTER ZHE +1E058;1E058;1E058;0437;0437; # (𞁘; 𞁘; 𞁘; з; з; ) CYRILLIC SUBSCRIPT SMALL LETTER ZE +1E059;1E059;1E059;0438;0438; # (𞁙; 𞁙; 𞁙; и; и; ) CYRILLIC SUBSCRIPT SMALL LETTER I +1E05A;1E05A;1E05A;043A;043A; # (𞁚; 𞁚; 𞁚; к; к; ) CYRILLIC SUBSCRIPT SMALL LETTER KA +1E05B;1E05B;1E05B;043B;043B; # (𞁛; 𞁛; 𞁛; л; л; ) CYRILLIC SUBSCRIPT SMALL LETTER EL +1E05C;1E05C;1E05C;043E;043E; # (𞁜; 𞁜; 𞁜; о; о; ) CYRILLIC SUBSCRIPT SMALL LETTER O +1E05D;1E05D;1E05D;043F;043F; # (𞁝; 𞁝; 𞁝; п; п; ) CYRILLIC SUBSCRIPT SMALL LETTER PE +1E05E;1E05E;1E05E;0441;0441; # (𞁞; 𞁞; 𞁞; с; с; ) CYRILLIC SUBSCRIPT SMALL LETTER ES +1E05F;1E05F;1E05F;0443;0443; # (𞁟; 𞁟; 𞁟; у; у; ) CYRILLIC SUBSCRIPT SMALL LETTER U +1E060;1E060;1E060;0444;0444; # (𞁠; 𞁠; 𞁠; ф; ф; ) CYRILLIC SUBSCRIPT SMALL LETTER EF +1E061;1E061;1E061;0445;0445; # (𞁡; 𞁡; 𞁡; х; х; ) CYRILLIC SUBSCRIPT SMALL LETTER HA +1E062;1E062;1E062;0446;0446; # (𞁢; 𞁢; 𞁢; ц; ц; ) CYRILLIC SUBSCRIPT SMALL LETTER TSE +1E063;1E063;1E063;0447;0447; # (𞁣; 𞁣; 𞁣; ч; ч; ) CYRILLIC SUBSCRIPT SMALL LETTER CHE +1E064;1E064;1E064;0448;0448; # (𞁤; 𞁤; 𞁤; ш; ш; ) CYRILLIC SUBSCRIPT SMALL LETTER SHA +1E065;1E065;1E065;044A;044A; # (𞁥; 𞁥; 𞁥; ъ; ъ; ) CYRILLIC SUBSCRIPT SMALL LETTER HARD SIGN +1E066;1E066;1E066;044B;044B; # (𞁦; 𞁦; 𞁦; ы; ы; ) CYRILLIC SUBSCRIPT SMALL LETTER YERU +1E067;1E067;1E067;0491;0491; # (𞁧; 𞁧; 𞁧; ґ; ґ; ) CYRILLIC SUBSCRIPT SMALL LETTER GHE WITH UPTURN +1E068;1E068;1E068;0456;0456; # (𞁨; 𞁨; 𞁨; і; і; ) CYRILLIC SUBSCRIPT SMALL LETTER BYELORUSSIAN-UKRAINIAN I +1E069;1E069;1E069;0455;0455; # (𞁩; 𞁩; 𞁩; ѕ; ѕ; ) CYRILLIC SUBSCRIPT SMALL LETTER DZE +1E06A;1E06A;1E06A;045F;045F; # (𞁪; 𞁪; 𞁪; џ; џ; ) CYRILLIC SUBSCRIPT SMALL LETTER DZHE +1E06B;1E06B;1E06B;04AB;04AB; # (𞁫; 𞁫; 𞁫; ҫ; ҫ; ) MODIFIER LETTER CYRILLIC SMALL ES WITH DESCENDER +1E06C;1E06C;1E06C;A651;A651; # (𞁬; 𞁬; 𞁬; ꙑ; ꙑ; ) MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER +1E06D;1E06D;1E06D;04B1;04B1; # (𞁭; 𞁭; 𞁭; ұ; ұ; ) MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE 1EE00;1EE00;1EE00;0627;0627; # (𞸀; 𞸀; 𞸀; ا; ا; ) ARABIC MATHEMATICAL ALEF 1EE01;1EE01;1EE01;0628;0628; # (𞸁; 𞸁; 𞸁; ب; ب; ) ARABIC MATHEMATICAL BEH 1EE02;1EE02;1EE02;062C;062C; # (𞸂; 𞸂; 𞸂; ج; ج; ) ARABIC MATHEMATICAL JEEM @@ -18496,6 +18558,12 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH WHITE CIRCLE 0061 10EAB 0315 0300 05AE 0062;0061 05AE 10EAB 0300 0315 0062;0061 05AE 10EAB 0300 0315 0062;0061 05AE 10EAB 0300 0315 0062;0061 05AE 10EAB 0300 0315 0062; # (a◌𐺫◌̕◌̀◌֮b; a◌֮◌𐺫◌̀◌̕b; a◌֮◌𐺫◌̀◌̕b; a◌֮◌𐺫◌̀◌̕b; a◌֮◌𐺫◌̀◌̕b; ) LATIN SMALL LETTER A, YEZIDI COMBINING HAMZA MARK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B 0061 0315 0300 05AE 10EAC 0062;00E0 05AE 10EAC 0315 0062;0061 05AE 0300 10EAC 0315 0062;00E0 05AE 10EAC 0315 0062;0061 05AE 0300 10EAC 0315 0062; # (a◌̕◌̀◌֮◌𐺬b; à◌֮◌𐺬◌̕b; a◌֮◌̀◌𐺬◌̕b; à◌֮◌𐺬◌̕b; a◌֮◌̀◌𐺬◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, YEZIDI COMBINING MADDA MARK, LATIN SMALL LETTER B 0061 10EAC 0315 0300 05AE 0062;0061 05AE 10EAC 0300 0315 0062;0061 05AE 10EAC 0300 0315 0062;0061 05AE 10EAC 0300 0315 0062;0061 05AE 10EAC 0300 0315 0062; # (a◌𐺬◌̕◌̀◌֮b; a◌֮◌𐺬◌̀◌̕b; a◌֮◌𐺬◌̀◌̕b; a◌֮◌𐺬◌̀◌̕b; a◌֮◌𐺬◌̀◌̕b; ) LATIN SMALL LETTER A, YEZIDI COMBINING MADDA MARK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B +0061 059A 0316 1DFA 10EFD 0062;0061 1DFA 0316 10EFD 059A 0062;0061 1DFA 0316 10EFD 059A 0062;0061 1DFA 0316 10EFD 059A 0062;0061 1DFA 0316 10EFD 059A 0062; # (a◌֚◌̖◌᷺◌𐻽b; a◌᷺◌̖◌𐻽◌֚b; a◌᷺◌̖◌𐻽◌֚b; a◌᷺◌̖◌𐻽◌֚b; a◌᷺◌̖◌𐻽◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC SMALL LOW WORD SAKTA, LATIN SMALL LETTER B +0061 10EFD 059A 0316 1DFA 0062;0061 1DFA 10EFD 0316 059A 0062;0061 1DFA 10EFD 0316 059A 0062;0061 1DFA 10EFD 0316 059A 0062;0061 1DFA 10EFD 0316 059A 0062; # (a◌𐻽◌֚◌̖◌᷺b; a◌᷺◌𐻽◌̖◌֚b; a◌᷺◌𐻽◌̖◌֚b; a◌᷺◌𐻽◌̖◌֚b; a◌᷺◌𐻽◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC SMALL LOW WORD SAKTA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B +0061 059A 0316 1DFA 10EFE 0062;0061 1DFA 0316 10EFE 059A 0062;0061 1DFA 0316 10EFE 059A 0062;0061 1DFA 0316 10EFE 059A 0062;0061 1DFA 0316 10EFE 059A 0062; # (a◌֚◌̖◌᷺◌𐻾b; a◌᷺◌̖◌𐻾◌֚b; a◌᷺◌̖◌𐻾◌֚b; a◌᷺◌̖◌𐻾◌֚b; a◌᷺◌̖◌𐻾◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC SMALL LOW WORD QASR, LATIN SMALL LETTER B +0061 10EFE 059A 0316 1DFA 0062;0061 1DFA 10EFE 0316 059A 0062;0061 1DFA 10EFE 0316 059A 0062;0061 1DFA 10EFE 0316 059A 0062;0061 1DFA 10EFE 0316 059A 0062; # (a◌𐻾◌֚◌̖◌᷺b; a◌᷺◌𐻾◌̖◌֚b; a◌᷺◌𐻾◌̖◌֚b; a◌᷺◌𐻾◌̖◌֚b; a◌᷺◌𐻾◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC SMALL LOW WORD QASR, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B +0061 059A 0316 1DFA 10EFF 0062;0061 1DFA 0316 10EFF 059A 0062;0061 1DFA 0316 10EFF 059A 0062;0061 1DFA 0316 10EFF 059A 0062;0061 1DFA 0316 10EFF 059A 0062; # (a◌֚◌̖◌᷺◌𐻿b; a◌᷺◌̖◌𐻿◌֚b; a◌᷺◌̖◌𐻿◌֚b; a◌᷺◌̖◌𐻿◌֚b; a◌᷺◌̖◌𐻿◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, ARABIC SMALL LOW WORD MADDA, LATIN SMALL LETTER B +0061 10EFF 059A 0316 1DFA 0062;0061 1DFA 10EFF 0316 059A 0062;0061 1DFA 10EFF 0316 059A 0062;0061 1DFA 10EFF 0316 059A 0062;0061 1DFA 10EFF 0316 059A 0062; # (a◌𐻿◌֚◌̖◌᷺b; a◌᷺◌𐻿◌̖◌֚b; a◌᷺◌𐻿◌̖◌֚b; a◌᷺◌𐻿◌̖◌֚b; a◌᷺◌𐻿◌̖◌֚b; ) LATIN SMALL LETTER A, ARABIC SMALL LOW WORD MADDA, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B 0061 059A 0316 1DFA 10F46 0062;0061 1DFA 0316 10F46 059A 0062;0061 1DFA 0316 10F46 059A 0062;0061 1DFA 0316 10F46 059A 0062;0061 1DFA 0316 10F46 059A 0062; # (a◌֚◌̖◌᷺◌𐽆b; a◌᷺◌̖◌𐽆◌֚b; a◌᷺◌̖◌𐽆◌֚b; a◌᷺◌̖◌𐽆◌֚b; a◌᷺◌̖◌𐽆◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SOGDIAN COMBINING DOT BELOW, LATIN SMALL LETTER B 0061 10F46 059A 0316 1DFA 0062;0061 1DFA 10F46 0316 059A 0062;0061 1DFA 10F46 0316 059A 0062;0061 1DFA 10F46 0316 059A 0062;0061 1DFA 10F46 0316 059A 0062; # (a◌𐽆◌֚◌̖◌᷺b; a◌᷺◌𐽆◌̖◌֚b; a◌᷺◌𐽆◌̖◌֚b; a◌᷺◌𐽆◌̖◌֚b; a◌᷺◌𐽆◌̖◌֚b; ) LATIN SMALL LETTER A, SOGDIAN COMBINING DOT BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B 0061 059A 0316 1DFA 10F47 0062;0061 1DFA 0316 10F47 059A 0062;0061 1DFA 0316 10F47 059A 0062;0061 1DFA 0316 10F47 059A 0062;0061 1DFA 0316 10F47 059A 0062; # (a◌֚◌̖◌᷺◌𐽇b; a◌᷺◌̖◌𐽇◌֚b; a◌᷺◌̖◌𐽇◌֚b; a◌᷺◌̖◌𐽇◌֚b; a◌᷺◌̖◌𐽇◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, SOGDIAN COMBINING TWO DOTS BELOW, LATIN SMALL LETTER B @@ -18640,6 +18708,10 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH WHITE CIRCLE 0061 11D45 05B0 094D 3099 0062;0061 3099 11D45 094D 05B0 0062;0061 3099 11D45 094D 05B0 0062;0061 3099 11D45 094D 05B0 0062;0061 3099 11D45 094D 05B0 0062; # (a◌𑵅◌ְ◌्◌゙b; a◌゙◌𑵅◌्◌ְb; a◌゙◌𑵅◌्◌ְb; a◌゙◌𑵅◌्◌ְb; a◌゙◌𑵅◌्◌ְb; ) LATIN SMALL LETTER A, MASARAM GONDI VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B 0061 05B0 094D 3099 11D97 0062;0061 3099 094D 11D97 05B0 0062;0061 3099 094D 11D97 05B0 0062;0061 3099 094D 11D97 05B0 0062;0061 3099 094D 11D97 05B0 0062; # (a◌ְ◌्◌゙◌𑶗b; a◌゙◌्◌𑶗◌ְb; a◌゙◌्◌𑶗◌ְb; a◌゙◌्◌𑶗◌ְb; a◌゙◌्◌𑶗◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, GUNJALA GONDI VIRAMA, LATIN SMALL LETTER B 0061 11D97 05B0 094D 3099 0062;0061 3099 11D97 094D 05B0 0062;0061 3099 11D97 094D 05B0 0062;0061 3099 11D97 094D 05B0 0062;0061 3099 11D97 094D 05B0 0062; # (a◌𑶗◌ְ◌्◌゙b; a◌゙◌𑶗◌्◌ְb; a◌゙◌𑶗◌्◌ְb; a◌゙◌𑶗◌्◌ְb; a◌゙◌𑶗◌्◌ְb; ) LATIN SMALL LETTER A, GUNJALA GONDI VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B +0061 05B0 094D 3099 11F41 0062;0061 3099 094D 11F41 05B0 0062;0061 3099 094D 11F41 05B0 0062;0061 3099 094D 11F41 05B0 0062;0061 3099 094D 11F41 05B0 0062; # (a◌ְ◌्◌゙𑽁b; a◌゙◌्𑽁◌ְb; a◌゙◌्𑽁◌ְb; a◌゙◌्𑽁◌ְb; a◌゙◌्𑽁◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KAWI SIGN KILLER, LATIN SMALL LETTER B +0061 11F41 05B0 094D 3099 0062;0061 3099 11F41 094D 05B0 0062;0061 3099 11F41 094D 05B0 0062;0061 3099 11F41 094D 05B0 0062;0061 3099 11F41 094D 05B0 0062; # (a𑽁◌ְ◌्◌゙b; a◌゙𑽁◌्◌ְb; a◌゙𑽁◌्◌ְb; a◌゙𑽁◌्◌ְb; a◌゙𑽁◌्◌ְb; ) LATIN SMALL LETTER A, KAWI SIGN KILLER, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B +0061 05B0 094D 3099 11F42 0062;0061 3099 094D 11F42 05B0 0062;0061 3099 094D 11F42 05B0 0062;0061 3099 094D 11F42 05B0 0062;0061 3099 094D 11F42 05B0 0062; # (a◌ְ◌्◌゙◌𑽂b; a◌゙◌्◌𑽂◌ְb; a◌゙◌्◌𑽂◌ְb; a◌゙◌्◌𑽂◌ְb; a◌゙◌्◌𑽂◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KAWI CONJOINER, LATIN SMALL LETTER B +0061 11F42 05B0 094D 3099 0062;0061 3099 11F42 094D 05B0 0062;0061 3099 11F42 094D 05B0 0062;0061 3099 11F42 094D 05B0 0062;0061 3099 11F42 094D 05B0 0062; # (a◌𑽂◌ְ◌्◌゙b; a◌゙◌𑽂◌्◌ְb; a◌゙◌𑽂◌्◌ְb; a◌゙◌𑽂◌्◌ְb; a◌゙◌𑽂◌्◌ְb; ) LATIN SMALL LETTER A, KAWI CONJOINER, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B 0061 16FF0 0334 16AF0 0062;0061 0334 16AF0 16FF0 0062;0061 0334 16AF0 16FF0 0062;0061 0334 16AF0 16FF0 0062;0061 0334 16AF0 16FF0 0062; # (a𖿰◌̴◌𖫰b; a◌̴◌𖫰𖿰b; a◌̴◌𖫰𖿰b; a◌̴◌𖫰𖿰b; a◌̴◌𖫰𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING HIGH TONE, LATIN SMALL LETTER B 0061 16AF0 16FF0 0334 0062;0061 16AF0 0334 16FF0 0062;0061 16AF0 0334 16FF0 0062;0061 16AF0 0334 16FF0 0062;0061 16AF0 0334 16FF0 0062; # (a◌𖫰𖿰◌̴b; a◌𖫰◌̴𖿰b; a◌𖫰◌̴𖿰b; a◌𖫰◌̴𖿰b; a◌𖫰◌̴𖿰b; ) LATIN SMALL LETTER A, BASSA VAH COMBINING HIGH TONE, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B 0061 16FF0 0334 16AF1 0062;0061 0334 16AF1 16FF0 0062;0061 0334 16AF1 16FF0 0062;0061 0334 16AF1 16FF0 0062;0061 0334 16AF1 16FF0 0062; # (a𖿰◌̴◌𖫱b; a◌̴◌𖫱𖿰b; a◌̴◌𖫱𖿰b; a◌̴◌𖫱𖿰b; a◌̴◌𖫱𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING LOW TONE, LATIN SMALL LETTER B @@ -18812,6 +18884,8 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH WHITE CIRCLE 0061 1E029 0315 0300 05AE 0062;0061 05AE 1E029 0300 0315 0062;0061 05AE 1E029 0300 0315 0062;0061 05AE 1E029 0300 0315 0062;0061 05AE 1E029 0300 0315 0062; # (a◌𞀩◌̕◌̀◌֮b; a◌֮◌𞀩◌̀◌̕b; a◌֮◌𞀩◌̀◌̕b; a◌֮◌𞀩◌̀◌̕b; a◌֮◌𞀩◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER IOTATED BIG YUS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B 0061 0315 0300 05AE 1E02A 0062;00E0 05AE 1E02A 0315 0062;0061 05AE 0300 1E02A 0315 0062;00E0 05AE 1E02A 0315 0062;0061 05AE 0300 1E02A 0315 0062; # (a◌̕◌̀◌֮◌𞀪b; à◌֮◌𞀪◌̕b; a◌֮◌̀◌𞀪◌̕b; à◌֮◌𞀪◌̕b; a◌֮◌̀◌𞀪◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER FITA, LATIN SMALL LETTER B 0061 1E02A 0315 0300 05AE 0062;0061 05AE 1E02A 0300 0315 0062;0061 05AE 1E02A 0300 0315 0062;0061 05AE 1E02A 0300 0315 0062;0061 05AE 1E02A 0300 0315 0062; # (a◌𞀪◌̕◌̀◌֮b; a◌֮◌𞀪◌̀◌̕b; a◌֮◌𞀪◌̀◌̕b; a◌֮◌𞀪◌̀◌̕b; a◌֮◌𞀪◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER FITA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B +0061 0315 0300 05AE 1E08F 0062;00E0 05AE 1E08F 0315 0062;0061 05AE 0300 1E08F 0315 0062;00E0 05AE 1E08F 0315 0062;0061 05AE 0300 1E08F 0315 0062; # (a◌̕◌̀◌֮◌𞂏b; à◌֮◌𞂏◌̕b; a◌֮◌̀◌𞂏◌̕b; à◌֮◌𞂏◌̕b; a◌֮◌̀◌𞂏◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I, LATIN SMALL LETTER B +0061 1E08F 0315 0300 05AE 0062;0061 05AE 1E08F 0300 0315 0062;0061 05AE 1E08F 0300 0315 0062;0061 05AE 1E08F 0300 0315 0062;0061 05AE 1E08F 0300 0315 0062; # (a◌𞂏◌̕◌̀◌֮b; a◌֮◌𞂏◌̀◌̕b; a◌֮◌𞂏◌̀◌̕b; a◌֮◌𞂏◌̀◌̕b; a◌֮◌𞂏◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B 0061 0315 0300 05AE 1E130 0062;00E0 05AE 1E130 0315 0062;0061 05AE 0300 1E130 0315 0062;00E0 05AE 1E130 0315 0062;0061 05AE 0300 1E130 0315 0062; # (a◌̕◌̀◌֮◌𞄰b; à◌֮◌𞄰◌̕b; a◌֮◌̀◌𞄰◌̕b; à◌֮◌𞄰◌̕b; a◌֮◌̀◌𞄰◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-B, LATIN SMALL LETTER B 0061 1E130 0315 0300 05AE 0062;0061 05AE 1E130 0300 0315 0062;0061 05AE 1E130 0300 0315 0062;0061 05AE 1E130 0300 0315 0062;0061 05AE 1E130 0300 0315 0062; # (a◌𞄰◌̕◌̀◌֮b; a◌֮◌𞄰◌̀◌̕b; a◌֮◌𞄰◌̀◌̕b; a◌֮◌𞄰◌̀◌̕b; a◌֮◌𞄰◌̀◌̕b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-B, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B 0061 0315 0300 05AE 1E131 0062;00E0 05AE 1E131 0315 0062;0061 05AE 0300 1E131 0315 0062;00E0 05AE 1E131 0315 0062;0061 05AE 0300 1E131 0315 0062; # (a◌̕◌̀◌֮◌𞄱b; à◌֮◌𞄱◌̕b; a◌֮◌̀◌𞄱◌̕b; à◌֮◌𞄱◌̕b; a◌֮◌̀◌𞄱◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-M, LATIN SMALL LETTER B @@ -18836,6 +18910,14 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH WHITE CIRCLE 0061 1E2EE 0315 0300 05AE 0062;0061 05AE 1E2EE 0300 0315 0062;0061 05AE 1E2EE 0300 0315 0062;0061 05AE 1E2EE 0300 0315 0062;0061 05AE 1E2EE 0300 0315 0062; # (a◌𞋮◌̕◌̀◌֮b; a◌֮◌𞋮◌̀◌̕b; a◌֮◌𞋮◌̀◌̕b; a◌֮◌𞋮◌̀◌̕b; a◌֮◌𞋮◌̀◌̕b; ) LATIN SMALL LETTER A, WANCHO TONE KOI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B 0061 0315 0300 05AE 1E2EF 0062;00E0 05AE 1E2EF 0315 0062;0061 05AE 0300 1E2EF 0315 0062;00E0 05AE 1E2EF 0315 0062;0061 05AE 0300 1E2EF 0315 0062; # (a◌̕◌̀◌֮◌𞋯b; à◌֮◌𞋯◌̕b; a◌֮◌̀◌𞋯◌̕b; à◌֮◌𞋯◌̕b; a◌֮◌̀◌𞋯◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, WANCHO TONE KOINI, LATIN SMALL LETTER B 0061 1E2EF 0315 0300 05AE 0062;0061 05AE 1E2EF 0300 0315 0062;0061 05AE 1E2EF 0300 0315 0062;0061 05AE 1E2EF 0300 0315 0062;0061 05AE 1E2EF 0300 0315 0062; # (a◌𞋯◌̕◌̀◌֮b; a◌֮◌𞋯◌̀◌̕b; a◌֮◌𞋯◌̀◌̕b; a◌֮◌𞋯◌̀◌̕b; a◌֮◌𞋯◌̀◌̕b; ) LATIN SMALL LETTER A, WANCHO TONE KOINI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B +0061 035C 0315 0300 1E4EC 0062;00E0 0315 1E4EC 035C 0062;0061 0300 0315 1E4EC 035C 0062;00E0 0315 1E4EC 035C 0062;0061 0300 0315 1E4EC 035C 0062; # (a◌͜◌̕◌̀◌𞓬b; à◌̕◌𞓬◌͜b; a◌̀◌̕◌𞓬◌͜b; à◌̕◌𞓬◌͜b; a◌̀◌̕◌𞓬◌͜b; ) LATIN SMALL LETTER A, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, NAG MUNDARI SIGN MUHOR, LATIN SMALL LETTER B +0061 1E4EC 035C 0315 0300 0062;00E0 1E4EC 0315 035C 0062;0061 0300 1E4EC 0315 035C 0062;00E0 1E4EC 0315 035C 0062;0061 0300 1E4EC 0315 035C 0062; # (a◌𞓬◌͜◌̕◌̀b; à◌𞓬◌̕◌͜b; a◌̀◌𞓬◌̕◌͜b; à◌𞓬◌̕◌͜b; a◌̀◌𞓬◌̕◌͜b; ) LATIN SMALL LETTER A, NAG MUNDARI SIGN MUHOR, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, LATIN SMALL LETTER B +0061 035C 0315 0300 1E4ED 0062;00E0 0315 1E4ED 035C 0062;0061 0300 0315 1E4ED 035C 0062;00E0 0315 1E4ED 035C 0062;0061 0300 0315 1E4ED 035C 0062; # (a◌͜◌̕◌̀◌𞓭b; à◌̕◌𞓭◌͜b; a◌̀◌̕◌𞓭◌͜b; à◌̕◌𞓭◌͜b; a◌̀◌̕◌𞓭◌͜b; ) LATIN SMALL LETTER A, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, NAG MUNDARI SIGN TOYOR, LATIN SMALL LETTER B +0061 1E4ED 035C 0315 0300 0062;00E0 1E4ED 0315 035C 0062;0061 0300 1E4ED 0315 035C 0062;00E0 1E4ED 0315 035C 0062;0061 0300 1E4ED 0315 035C 0062; # (a◌𞓭◌͜◌̕◌̀b; à◌𞓭◌̕◌͜b; a◌̀◌𞓭◌̕◌͜b; à◌𞓭◌̕◌͜b; a◌̀◌𞓭◌̕◌͜b; ) LATIN SMALL LETTER A, NAG MUNDARI SIGN TOYOR, COMBINING DOUBLE BREVE BELOW, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, LATIN SMALL LETTER B +0061 059A 0316 1DFA 1E4EE 0062;0061 1DFA 0316 1E4EE 059A 0062;0061 1DFA 0316 1E4EE 059A 0062;0061 1DFA 0316 1E4EE 059A 0062;0061 1DFA 0316 1E4EE 059A 0062; # (a◌֚◌̖◌᷺◌𞓮b; a◌᷺◌̖◌𞓮◌֚b; a◌᷺◌̖◌𞓮◌֚b; a◌᷺◌̖◌𞓮◌֚b; a◌᷺◌̖◌𞓮◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, NAG MUNDARI SIGN IKIR, LATIN SMALL LETTER B +0061 1E4EE 059A 0316 1DFA 0062;0061 1DFA 1E4EE 0316 059A 0062;0061 1DFA 1E4EE 0316 059A 0062;0061 1DFA 1E4EE 0316 059A 0062;0061 1DFA 1E4EE 0316 059A 0062; # (a◌𞓮◌֚◌̖◌᷺b; a◌᷺◌𞓮◌̖◌֚b; a◌᷺◌𞓮◌̖◌֚b; a◌᷺◌𞓮◌̖◌֚b; a◌᷺◌𞓮◌̖◌֚b; ) LATIN SMALL LETTER A, NAG MUNDARI SIGN IKIR, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B +0061 0315 0300 05AE 1E4EF 0062;00E0 05AE 1E4EF 0315 0062;0061 05AE 0300 1E4EF 0315 0062;00E0 05AE 1E4EF 0315 0062;0061 05AE 0300 1E4EF 0315 0062; # (a◌̕◌̀◌֮◌𞓯b; à◌֮◌𞓯◌̕b; a◌֮◌̀◌𞓯◌̕b; à◌֮◌𞓯◌̕b; a◌֮◌̀◌𞓯◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NAG MUNDARI SIGN SUTUH, LATIN SMALL LETTER B +0061 1E4EF 0315 0300 05AE 0062;0061 05AE 1E4EF 0300 0315 0062;0061 05AE 1E4EF 0300 0315 0062;0061 05AE 1E4EF 0300 0315 0062;0061 05AE 1E4EF 0300 0315 0062; # (a◌𞓯◌̕◌̀◌֮b; a◌֮◌𞓯◌̀◌̕b; a◌֮◌𞓯◌̀◌̕b; a◌֮◌𞓯◌̀◌̕b; a◌֮◌𞓯◌̀◌̕b; ) LATIN SMALL LETTER A, NAG MUNDARI SIGN SUTUH, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B 0061 059A 0316 1DFA 1E8D0 0062;0061 1DFA 0316 1E8D0 059A 0062;0061 1DFA 0316 1E8D0 059A 0062;0061 1DFA 0316 1E8D0 059A 0062;0061 1DFA 0316 1E8D0 059A 0062; # (a◌֚◌̖◌᷺◌𞣐b; a◌᷺◌̖◌𞣐◌֚b; a◌᷺◌̖◌𞣐◌֚b; a◌᷺◌̖◌𞣐◌֚b; a◌᷺◌̖◌𞣐◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MENDE KIKAKUI COMBINING NUMBER TEENS, LATIN SMALL LETTER B 0061 1E8D0 059A 0316 1DFA 0062;0061 1DFA 1E8D0 0316 059A 0062;0061 1DFA 1E8D0 0316 059A 0062;0061 1DFA 1E8D0 0316 059A 0062;0061 1DFA 1E8D0 0316 059A 0062; # (a◌𞣐◌֚◌̖◌᷺b; a◌᷺◌𞣐◌̖◌֚b; a◌᷺◌𞣐◌̖◌֚b; a◌᷺◌𞣐◌̖◌֚b; a◌᷺◌𞣐◌̖◌֚b; ) LATIN SMALL LETTER A, MENDE KIKAKUI COMBINING NUMBER TEENS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, LATIN SMALL LETTER B 0061 059A 0316 1DFA 1E8D1 0062;0061 1DFA 0316 1E8D1 059A 0062;0061 1DFA 0316 1E8D1 059A 0062;0061 1DFA 0316 1E8D1 059A 0062;0061 1DFA 0316 1E8D1 059A 0062; # (a◌֚◌̖◌᷺◌𞣑b; a◌᷺◌̖◌𞣑◌֚b; a◌᷺◌̖◌𞣑◌֚b; a◌᷺◌̖◌𞣑◌֚b; a◌᷺◌̖◌𞣑◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, COMBINING DOT BELOW LEFT, MENDE KIKAKUI COMBINING NUMBER TENS, LATIN SMALL LETTER B diff --git a/admin/unidata/PropertyValueAliases.txt b/admin/unidata/PropertyValueAliases.txt new file mode 100644 index 000000000000..9346fcf03ee3 --- /dev/null +++ b/admin/unidata/PropertyValueAliases.txt @@ -0,0 +1,1621 @@ +# PropertyValueAliases-15.0.0.txt +# Date: 2022-08-05, 23:42:17 GMT +# © 2022 Unicode®, Inc. +# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. +# For terms of use, see https://www.unicode.org/terms_of_use.html +# +# Unicode Character Database +# For documentation, see https://www.unicode.org/reports/tr44/ +# +# This file contains aliases for property values used in the UCD. +# These names can be used for XML formats of UCD data, for regular-expression +# property tests, and other programmatic textual descriptions of Unicode data. +# +# The names may be translated in appropriate environments, and additional +# aliases may be useful. +# +# FORMAT +# +# Each line describes a property value name. +# This consists of three or more fields, separated by semicolons. +# +# First Field: The first field describes the property for which that +# property value name is used. +# +# Second Field: The second field is the short name for the property value. +# It is typically an abbreviation, but in a number of cases it is simply +# a duplicate of the "long name" in the third field. +# +# Third Field: The third field is the long name for the property value, +# typically the formal name used in documentation about the property value. +# +# In the case of Canonical_Combining_Class (ccc), there are 4 fields: +# The second field is numeric, the third is the short name, and the fourth is the long name. +# +# The above are the preferred aliases. Other aliases may be listed in additional fields. +# +# Loose matching should be applied to all property names and property values, with +# the exception of String Property values. With loose matching of property names and +# values, the case distinctions, whitespace, hyphens, and '_' are ignored. +# For Numeric Property values, numeric equivalence is applied: thus "01.00" +# is equivalent to "1". +# +# NOTE: Property value names are NOT unique across properties. For example: +# +# AL means Arabic Letter for the Bidi_Class property, and +# AL means Above_Left for the Canonical_Combining_Class property, and +# AL means Alphabetic for the Line_Break property. +# +# In addition, some property names may be the same as some property value names. +# For example: +# +# sc means the Script property, and +# Sc means the General_Category property value Currency_Symbol (Sc) +# +# The combination of property value and property name is, however, unique. +# +# For more information, see UAX #44, Unicode Character Database, and +# UTS #18, Unicode Regular Expressions. +# ================================================ + + +# ASCII_Hex_Digit (AHex) + +AHex; N ; No ; F ; False +AHex; Y ; Yes ; T ; True + +# Age (age) + +age; 1.1 ; V1_1 +age; 2.0 ; V2_0 +age; 2.1 ; V2_1 +age; 3.0 ; V3_0 +age; 3.1 ; V3_1 +age; 3.2 ; V3_2 +age; 4.0 ; V4_0 +age; 4.1 ; V4_1 +age; 5.0 ; V5_0 +age; 5.1 ; V5_1 +age; 5.2 ; V5_2 +age; 6.0 ; V6_0 +age; 6.1 ; V6_1 +age; 6.2 ; V6_2 +age; 6.3 ; V6_3 +age; 7.0 ; V7_0 +age; 8.0 ; V8_0 +age; 9.0 ; V9_0 +age; 10.0 ; V10_0 +age; 11.0 ; V11_0 +age; 12.0 ; V12_0 +age; 12.1 ; V12_1 +age; 13.0 ; V13_0 +age; 14.0 ; V14_0 +age; 15.0 ; V15_0 +age; NA ; Unassigned + +# Alphabetic (Alpha) + +Alpha; N ; No ; F ; False +Alpha; Y ; Yes ; T ; True + +# Bidi_Class (bc) + +bc ; AL ; Arabic_Letter +bc ; AN ; Arabic_Number +bc ; B ; Paragraph_Separator +bc ; BN ; Boundary_Neutral +bc ; CS ; Common_Separator +bc ; EN ; European_Number +bc ; ES ; European_Separator +bc ; ET ; European_Terminator +bc ; FSI ; First_Strong_Isolate +bc ; L ; Left_To_Right +bc ; LRE ; Left_To_Right_Embedding +bc ; LRI ; Left_To_Right_Isolate +bc ; LRO ; Left_To_Right_Override +bc ; NSM ; Nonspacing_Mark +bc ; ON ; Other_Neutral +bc ; PDF ; Pop_Directional_Format +bc ; PDI ; Pop_Directional_Isolate +bc ; R ; Right_To_Left +bc ; RLE ; Right_To_Left_Embedding +bc ; RLI ; Right_To_Left_Isolate +bc ; RLO ; Right_To_Left_Override +bc ; S ; Segment_Separator +bc ; WS ; White_Space + +# Bidi_Control (Bidi_C) + +Bidi_C; N ; No ; F ; False +Bidi_C; Y ; Yes ; T ; True + +# Bidi_Mirrored (Bidi_M) + +Bidi_M; N ; No ; F ; False +Bidi_M; Y ; Yes ; T ; True + +# Bidi_Mirroring_Glyph (bmg) + + +# Bidi_Paired_Bracket (bpb) + +# @missing: 0000..10FFFF; Bidi_Paired_Bracket; <none> + +# Bidi_Paired_Bracket_Type (bpt) + +bpt; c ; Close +bpt; n ; None +bpt; o ; Open +# @missing: 0000..10FFFF; Bidi_Paired_Bracket_Type; n + +# Block (blk) + +blk; Adlam ; Adlam +blk; Aegean_Numbers ; Aegean_Numbers +blk; Ahom ; Ahom +blk; Alchemical ; Alchemical_Symbols +blk; Alphabetic_PF ; Alphabetic_Presentation_Forms +blk; Anatolian_Hieroglyphs ; Anatolian_Hieroglyphs +blk; Ancient_Greek_Music ; Ancient_Greek_Musical_Notation +blk; Ancient_Greek_Numbers ; Ancient_Greek_Numbers +blk; Ancient_Symbols ; Ancient_Symbols +blk; Arabic ; Arabic +blk; Arabic_Ext_A ; Arabic_Extended_A +blk; Arabic_Ext_B ; Arabic_Extended_B +blk; Arabic_Ext_C ; Arabic_Extended_C +blk; Arabic_Math ; Arabic_Mathematical_Alphabetic_Symbols +blk; Arabic_PF_A ; Arabic_Presentation_Forms_A ; Arabic_Presentation_Forms-A +blk; Arabic_PF_B ; Arabic_Presentation_Forms_B +blk; Arabic_Sup ; Arabic_Supplement +blk; Armenian ; Armenian +blk; Arrows ; Arrows +blk; ASCII ; Basic_Latin +blk; Avestan ; Avestan +blk; Balinese ; Balinese +blk; Bamum ; Bamum +blk; Bamum_Sup ; Bamum_Supplement +blk; Bassa_Vah ; Bassa_Vah +blk; Batak ; Batak +blk; Bengali ; Bengali +blk; Bhaiksuki ; Bhaiksuki +blk; Block_Elements ; Block_Elements +blk; Bopomofo ; Bopomofo +blk; Bopomofo_Ext ; Bopomofo_Extended +blk; Box_Drawing ; Box_Drawing +blk; Brahmi ; Brahmi +blk; Braille ; Braille_Patterns +blk; Buginese ; Buginese +blk; Buhid ; Buhid +blk; Byzantine_Music ; Byzantine_Musical_Symbols +blk; Carian ; Carian +blk; Caucasian_Albanian ; Caucasian_Albanian +blk; Chakma ; Chakma +blk; Cham ; Cham +blk; Cherokee ; Cherokee +blk; Cherokee_Sup ; Cherokee_Supplement +blk; Chess_Symbols ; Chess_Symbols +blk; Chorasmian ; Chorasmian +blk; CJK ; CJK_Unified_Ideographs +blk; CJK_Compat ; CJK_Compatibility +blk; CJK_Compat_Forms ; CJK_Compatibility_Forms +blk; CJK_Compat_Ideographs ; CJK_Compatibility_Ideographs +blk; CJK_Compat_Ideographs_Sup ; CJK_Compatibility_Ideographs_Supplement +blk; CJK_Ext_A ; CJK_Unified_Ideographs_Extension_A +blk; CJK_Ext_B ; CJK_Unified_Ideographs_Extension_B +blk; CJK_Ext_C ; CJK_Unified_Ideographs_Extension_C +blk; CJK_Ext_D ; CJK_Unified_Ideographs_Extension_D +blk; CJK_Ext_E ; CJK_Unified_Ideographs_Extension_E +blk; CJK_Ext_F ; CJK_Unified_Ideographs_Extension_F +blk; CJK_Ext_G ; CJK_Unified_Ideographs_Extension_G +blk; CJK_Ext_H ; CJK_Unified_Ideographs_Extension_H +blk; CJK_Radicals_Sup ; CJK_Radicals_Supplement +blk; CJK_Strokes ; CJK_Strokes +blk; CJK_Symbols ; CJK_Symbols_And_Punctuation +blk; Compat_Jamo ; Hangul_Compatibility_Jamo +blk; Control_Pictures ; Control_Pictures +blk; Coptic ; Coptic +blk; Coptic_Epact_Numbers ; Coptic_Epact_Numbers +blk; Counting_Rod ; Counting_Rod_Numerals +blk; Cuneiform ; Cuneiform +blk; Cuneiform_Numbers ; Cuneiform_Numbers_And_Punctuation +blk; Currency_Symbols ; Currency_Symbols +blk; Cypriot_Syllabary ; Cypriot_Syllabary +blk; Cypro_Minoan ; Cypro_Minoan +blk; Cyrillic ; Cyrillic +blk; Cyrillic_Ext_A ; Cyrillic_Extended_A +blk; Cyrillic_Ext_B ; Cyrillic_Extended_B +blk; Cyrillic_Ext_C ; Cyrillic_Extended_C +blk; Cyrillic_Ext_D ; Cyrillic_Extended_D +blk; Cyrillic_Sup ; Cyrillic_Supplement ; Cyrillic_Supplementary +blk; Deseret ; Deseret +blk; Devanagari ; Devanagari +blk; Devanagari_Ext ; Devanagari_Extended +blk; Devanagari_Ext_A ; Devanagari_Extended_A +blk; Diacriticals ; Combining_Diacritical_Marks +blk; Diacriticals_Ext ; Combining_Diacritical_Marks_Extended +blk; Diacriticals_For_Symbols ; Combining_Diacritical_Marks_For_Symbols; Combining_Marks_For_Symbols +blk; Diacriticals_Sup ; Combining_Diacritical_Marks_Supplement +blk; Dingbats ; Dingbats +blk; Dives_Akuru ; Dives_Akuru +blk; Dogra ; Dogra +blk; Domino ; Domino_Tiles +blk; Duployan ; Duployan +blk; Early_Dynastic_Cuneiform ; Early_Dynastic_Cuneiform +blk; Egyptian_Hieroglyph_Format_Controls; Egyptian_Hieroglyph_Format_Controls +blk; Egyptian_Hieroglyphs ; Egyptian_Hieroglyphs +blk; Elbasan ; Elbasan +blk; Elymaic ; Elymaic +blk; Emoticons ; Emoticons +blk; Enclosed_Alphanum ; Enclosed_Alphanumerics +blk; Enclosed_Alphanum_Sup ; Enclosed_Alphanumeric_Supplement +blk; Enclosed_CJK ; Enclosed_CJK_Letters_And_Months +blk; Enclosed_Ideographic_Sup ; Enclosed_Ideographic_Supplement +blk; Ethiopic ; Ethiopic +blk; Ethiopic_Ext ; Ethiopic_Extended +blk; Ethiopic_Ext_A ; Ethiopic_Extended_A +blk; Ethiopic_Ext_B ; Ethiopic_Extended_B +blk; Ethiopic_Sup ; Ethiopic_Supplement +blk; Geometric_Shapes ; Geometric_Shapes +blk; Geometric_Shapes_Ext ; Geometric_Shapes_Extended +blk; Georgian ; Georgian +blk; Georgian_Ext ; Georgian_Extended +blk; Georgian_Sup ; Georgian_Supplement +blk; Glagolitic ; Glagolitic +blk; Glagolitic_Sup ; Glagolitic_Supplement +blk; Gothic ; Gothic +blk; Grantha ; Grantha +blk; Greek ; Greek_And_Coptic +blk; Greek_Ext ; Greek_Extended +blk; Gujarati ; Gujarati +blk; Gunjala_Gondi ; Gunjala_Gondi +blk; Gurmukhi ; Gurmukhi +blk; Half_And_Full_Forms ; Halfwidth_And_Fullwidth_Forms +blk; Half_Marks ; Combining_Half_Marks +blk; Hangul ; Hangul_Syllables +blk; Hanifi_Rohingya ; Hanifi_Rohingya +blk; Hanunoo ; Hanunoo +blk; Hatran ; Hatran +blk; Hebrew ; Hebrew +blk; High_PU_Surrogates ; High_Private_Use_Surrogates +blk; High_Surrogates ; High_Surrogates +blk; Hiragana ; Hiragana +blk; IDC ; Ideographic_Description_Characters +blk; Ideographic_Symbols ; Ideographic_Symbols_And_Punctuation +blk; Imperial_Aramaic ; Imperial_Aramaic +blk; Indic_Number_Forms ; Common_Indic_Number_Forms +blk; Indic_Siyaq_Numbers ; Indic_Siyaq_Numbers +blk; Inscriptional_Pahlavi ; Inscriptional_Pahlavi +blk; Inscriptional_Parthian ; Inscriptional_Parthian +blk; IPA_Ext ; IPA_Extensions +blk; Jamo ; Hangul_Jamo +blk; Jamo_Ext_A ; Hangul_Jamo_Extended_A +blk; Jamo_Ext_B ; Hangul_Jamo_Extended_B +blk; Javanese ; Javanese +blk; Kaithi ; Kaithi +blk; Kaktovik_Numerals ; Kaktovik_Numerals +blk; Kana_Ext_A ; Kana_Extended_A +blk; Kana_Ext_B ; Kana_Extended_B +blk; Kana_Sup ; Kana_Supplement +blk; Kanbun ; Kanbun +blk; Kangxi ; Kangxi_Radicals +blk; Kannada ; Kannada +blk; Katakana ; Katakana +blk; Katakana_Ext ; Katakana_Phonetic_Extensions +blk; Kawi ; Kawi +blk; Kayah_Li ; Kayah_Li +blk; Kharoshthi ; Kharoshthi +blk; Khitan_Small_Script ; Khitan_Small_Script +blk; Khmer ; Khmer +blk; Khmer_Symbols ; Khmer_Symbols +blk; Khojki ; Khojki +blk; Khudawadi ; Khudawadi +blk; Lao ; Lao +blk; Latin_1_Sup ; Latin_1_Supplement ; Latin_1 +blk; Latin_Ext_A ; Latin_Extended_A +blk; Latin_Ext_Additional ; Latin_Extended_Additional +blk; Latin_Ext_B ; Latin_Extended_B +blk; Latin_Ext_C ; Latin_Extended_C +blk; Latin_Ext_D ; Latin_Extended_D +blk; Latin_Ext_E ; Latin_Extended_E +blk; Latin_Ext_F ; Latin_Extended_F +blk; Latin_Ext_G ; Latin_Extended_G +blk; Lepcha ; Lepcha +blk; Letterlike_Symbols ; Letterlike_Symbols +blk; Limbu ; Limbu +blk; Linear_A ; Linear_A +blk; Linear_B_Ideograms ; Linear_B_Ideograms +blk; Linear_B_Syllabary ; Linear_B_Syllabary +blk; Lisu ; Lisu +blk; Lisu_Sup ; Lisu_Supplement +blk; Low_Surrogates ; Low_Surrogates +blk; Lycian ; Lycian +blk; Lydian ; Lydian +blk; Mahajani ; Mahajani +blk; Mahjong ; Mahjong_Tiles +blk; Makasar ; Makasar +blk; Malayalam ; Malayalam +blk; Mandaic ; Mandaic +blk; Manichaean ; Manichaean +blk; Marchen ; Marchen +blk; Masaram_Gondi ; Masaram_Gondi +blk; Math_Alphanum ; Mathematical_Alphanumeric_Symbols +blk; Math_Operators ; Mathematical_Operators +blk; Mayan_Numerals ; Mayan_Numerals +blk; Medefaidrin ; Medefaidrin +blk; Meetei_Mayek ; Meetei_Mayek +blk; Meetei_Mayek_Ext ; Meetei_Mayek_Extensions +blk; Mende_Kikakui ; Mende_Kikakui +blk; Meroitic_Cursive ; Meroitic_Cursive +blk; Meroitic_Hieroglyphs ; Meroitic_Hieroglyphs +blk; Miao ; Miao +blk; Misc_Arrows ; Miscellaneous_Symbols_And_Arrows +blk; Misc_Math_Symbols_A ; Miscellaneous_Mathematical_Symbols_A +blk; Misc_Math_Symbols_B ; Miscellaneous_Mathematical_Symbols_B +blk; Misc_Pictographs ; Miscellaneous_Symbols_And_Pictographs +blk; Misc_Symbols ; Miscellaneous_Symbols +blk; Misc_Technical ; Miscellaneous_Technical +blk; Modi ; Modi +blk; Modifier_Letters ; Spacing_Modifier_Letters +blk; Modifier_Tone_Letters ; Modifier_Tone_Letters +blk; Mongolian ; Mongolian +blk; Mongolian_Sup ; Mongolian_Supplement +blk; Mro ; Mro +blk; Multani ; Multani +blk; Music ; Musical_Symbols +blk; Myanmar ; Myanmar +blk; Myanmar_Ext_A ; Myanmar_Extended_A +blk; Myanmar_Ext_B ; Myanmar_Extended_B +blk; Nabataean ; Nabataean +blk; Nag_Mundari ; Nag_Mundari +blk; Nandinagari ; Nandinagari +blk; NB ; No_Block +blk; New_Tai_Lue ; New_Tai_Lue +blk; Newa ; Newa +blk; NKo ; NKo +blk; Number_Forms ; Number_Forms +blk; Nushu ; Nushu +blk; Nyiakeng_Puachue_Hmong ; Nyiakeng_Puachue_Hmong +blk; OCR ; Optical_Character_Recognition +blk; Ogham ; Ogham +blk; Ol_Chiki ; Ol_Chiki +blk; Old_Hungarian ; Old_Hungarian +blk; Old_Italic ; Old_Italic +blk; Old_North_Arabian ; Old_North_Arabian +blk; Old_Permic ; Old_Permic +blk; Old_Persian ; Old_Persian +blk; Old_Sogdian ; Old_Sogdian +blk; Old_South_Arabian ; Old_South_Arabian +blk; Old_Turkic ; Old_Turkic +blk; Old_Uyghur ; Old_Uyghur +blk; Oriya ; Oriya +blk; Ornamental_Dingbats ; Ornamental_Dingbats +blk; Osage ; Osage +blk; Osmanya ; Osmanya +blk; Ottoman_Siyaq_Numbers ; Ottoman_Siyaq_Numbers +blk; Pahawh_Hmong ; Pahawh_Hmong +blk; Palmyrene ; Palmyrene +blk; Pau_Cin_Hau ; Pau_Cin_Hau +blk; Phags_Pa ; Phags_Pa +blk; Phaistos ; Phaistos_Disc +blk; Phoenician ; Phoenician +blk; Phonetic_Ext ; Phonetic_Extensions +blk; Phonetic_Ext_Sup ; Phonetic_Extensions_Supplement +blk; Playing_Cards ; Playing_Cards +blk; Psalter_Pahlavi ; Psalter_Pahlavi +blk; PUA ; Private_Use_Area ; Private_Use +blk; Punctuation ; General_Punctuation +blk; Rejang ; Rejang +blk; Rumi ; Rumi_Numeral_Symbols +blk; Runic ; Runic +blk; Samaritan ; Samaritan +blk; Saurashtra ; Saurashtra +blk; Sharada ; Sharada +blk; Shavian ; Shavian +blk; Shorthand_Format_Controls ; Shorthand_Format_Controls +blk; Siddham ; Siddham +blk; Sinhala ; Sinhala +blk; Sinhala_Archaic_Numbers ; Sinhala_Archaic_Numbers +blk; Small_Forms ; Small_Form_Variants +blk; Small_Kana_Ext ; Small_Kana_Extension +blk; Sogdian ; Sogdian +blk; Sora_Sompeng ; Sora_Sompeng +blk; Soyombo ; Soyombo +blk; Specials ; Specials +blk; Sundanese ; Sundanese +blk; Sundanese_Sup ; Sundanese_Supplement +blk; Sup_Arrows_A ; Supplemental_Arrows_A +blk; Sup_Arrows_B ; Supplemental_Arrows_B +blk; Sup_Arrows_C ; Supplemental_Arrows_C +blk; Sup_Math_Operators ; Supplemental_Mathematical_Operators +blk; Sup_PUA_A ; Supplementary_Private_Use_Area_A +blk; Sup_PUA_B ; Supplementary_Private_Use_Area_B +blk; Sup_Punctuation ; Supplemental_Punctuation +blk; Sup_Symbols_And_Pictographs ; Supplemental_Symbols_And_Pictographs +blk; Super_And_Sub ; Superscripts_And_Subscripts +blk; Sutton_SignWriting ; Sutton_SignWriting +blk; Syloti_Nagri ; Syloti_Nagri +blk; Symbols_And_Pictographs_Ext_A ; Symbols_And_Pictographs_Extended_A +blk; Symbols_For_Legacy_Computing ; Symbols_For_Legacy_Computing +blk; Syriac ; Syriac +blk; Syriac_Sup ; Syriac_Supplement +blk; Tagalog ; Tagalog +blk; Tagbanwa ; Tagbanwa +blk; Tags ; Tags +blk; Tai_Le ; Tai_Le +blk; Tai_Tham ; Tai_Tham +blk; Tai_Viet ; Tai_Viet +blk; Tai_Xuan_Jing ; Tai_Xuan_Jing_Symbols +blk; Takri ; Takri +blk; Tamil ; Tamil +blk; Tamil_Sup ; Tamil_Supplement +blk; Tangsa ; Tangsa +blk; Tangut ; Tangut +blk; Tangut_Components ; Tangut_Components +blk; Tangut_Sup ; Tangut_Supplement +blk; Telugu ; Telugu +blk; Thaana ; Thaana +blk; Thai ; Thai +blk; Tibetan ; Tibetan +blk; Tifinagh ; Tifinagh +blk; Tirhuta ; Tirhuta +blk; Toto ; Toto +blk; Transport_And_Map ; Transport_And_Map_Symbols +blk; UCAS ; Unified_Canadian_Aboriginal_Syllabics; Canadian_Syllabics +blk; UCAS_Ext ; Unified_Canadian_Aboriginal_Syllabics_Extended +blk; UCAS_Ext_A ; Unified_Canadian_Aboriginal_Syllabics_Extended_A +blk; Ugaritic ; Ugaritic +blk; Vai ; Vai +blk; Vedic_Ext ; Vedic_Extensions +blk; Vertical_Forms ; Vertical_Forms +blk; Vithkuqi ; Vithkuqi +blk; VS ; Variation_Selectors +blk; VS_Sup ; Variation_Selectors_Supplement +blk; Wancho ; Wancho +blk; Warang_Citi ; Warang_Citi +blk; Yezidi ; Yezidi +blk; Yi_Radicals ; Yi_Radicals +blk; Yi_Syllables ; Yi_Syllables +blk; Yijing ; Yijing_Hexagram_Symbols +blk; Zanabazar_Square ; Zanabazar_Square +blk; Znamenny_Music ; Znamenny_Musical_Notation + +# Canonical_Combining_Class (ccc) + +ccc; 0; NR ; Not_Reordered +ccc; 1; OV ; Overlay +ccc; 6; HANR ; Han_Reading +ccc; 7; NK ; Nukta +ccc; 8; KV ; Kana_Voicing +ccc; 9; VR ; Virama +ccc; 10; CCC10 ; CCC10 +ccc; 11; CCC11 ; CCC11 +ccc; 12; CCC12 ; CCC12 +ccc; 13; CCC13 ; CCC13 +ccc; 14; CCC14 ; CCC14 +ccc; 15; CCC15 ; CCC15 +ccc; 16; CCC16 ; CCC16 +ccc; 17; CCC17 ; CCC17 +ccc; 18; CCC18 ; CCC18 +ccc; 19; CCC19 ; CCC19 +ccc; 20; CCC20 ; CCC20 +ccc; 21; CCC21 ; CCC21 +ccc; 22; CCC22 ; CCC22 +ccc; 23; CCC23 ; CCC23 +ccc; 24; CCC24 ; CCC24 +ccc; 25; CCC25 ; CCC25 +ccc; 26; CCC26 ; CCC26 +ccc; 27; CCC27 ; CCC27 +ccc; 28; CCC28 ; CCC28 +ccc; 29; CCC29 ; CCC29 +ccc; 30; CCC30 ; CCC30 +ccc; 31; CCC31 ; CCC31 +ccc; 32; CCC32 ; CCC32 +ccc; 33; CCC33 ; CCC33 +ccc; 34; CCC34 ; CCC34 +ccc; 35; CCC35 ; CCC35 +ccc; 36; CCC36 ; CCC36 +ccc; 84; CCC84 ; CCC84 +ccc; 91; CCC91 ; CCC91 +ccc; 103; CCC103 ; CCC103 +ccc; 107; CCC107 ; CCC107 +ccc; 118; CCC118 ; CCC118 +ccc; 122; CCC122 ; CCC122 +ccc; 129; CCC129 ; CCC129 +ccc; 130; CCC130 ; CCC130 +ccc; 132; CCC132 ; CCC132 +ccc; 133; CCC133 ; CCC133 # RESERVED +ccc; 200; ATBL ; Attached_Below_Left +ccc; 202; ATB ; Attached_Below +ccc; 214; ATA ; Attached_Above +ccc; 216; ATAR ; Attached_Above_Right +ccc; 218; BL ; Below_Left +ccc; 220; B ; Below +ccc; 222; BR ; Below_Right +ccc; 224; L ; Left +ccc; 226; R ; Right +ccc; 228; AL ; Above_Left +ccc; 230; A ; Above +ccc; 232; AR ; Above_Right +ccc; 233; DB ; Double_Below +ccc; 234; DA ; Double_Above +ccc; 240; IS ; Iota_Subscript + +# Case_Folding (cf) + +# @missing: 0000..10FFFF; Case_Folding; <code point> + +# Case_Ignorable (CI) + +CI ; N ; No ; F ; False +CI ; Y ; Yes ; T ; True + +# Cased (Cased) + +Cased; N ; No ; F ; False +Cased; Y ; Yes ; T ; True + +# Changes_When_Casefolded (CWCF) + +CWCF; N ; No ; F ; False +CWCF; Y ; Yes ; T ; True + +# Changes_When_Casemapped (CWCM) + +CWCM; N ; No ; F ; False +CWCM; Y ; Yes ; T ; True + +# Changes_When_Lowercased (CWL) + +CWL; N ; No ; F ; False +CWL; Y ; Yes ; T ; True + +# Changes_When_NFKC_Casefolded (CWKCF) + +CWKCF; N ; No ; F ; False +CWKCF; Y ; Yes ; T ; True + +# Changes_When_Titlecased (CWT) + +CWT; N ; No ; F ; False +CWT; Y ; Yes ; T ; True + +# Changes_When_Uppercased (CWU) + +CWU; N ; No ; F ; False +CWU; Y ; Yes ; T ; True + +# Composition_Exclusion (CE) + +CE ; N ; No ; F ; False +CE ; Y ; Yes ; T ; True + +# Dash (Dash) + +Dash; N ; No ; F ; False +Dash; Y ; Yes ; T ; True + +# Decomposition_Mapping (dm) + +# @missing: 0000..10FFFF; Decomposition_Mapping; <code point> + +# Decomposition_Type (dt) + +dt ; Can ; Canonical ; can +dt ; Com ; Compat ; com +dt ; Enc ; Circle ; enc +dt ; Fin ; Final ; fin +dt ; Font ; Font ; font +dt ; Fra ; Fraction ; fra +dt ; Init ; Initial ; init +dt ; Iso ; Isolated ; iso +dt ; Med ; Medial ; med +dt ; Nar ; Narrow ; nar +dt ; Nb ; Nobreak ; nb +dt ; None ; None ; none +dt ; Sml ; Small ; sml +dt ; Sqr ; Square ; sqr +dt ; Sub ; Sub ; sub +dt ; Sup ; Super ; sup +dt ; Vert ; Vertical ; vert +dt ; Wide ; Wide ; wide + +# Default_Ignorable_Code_Point (DI) + +DI ; N ; No ; F ; False +DI ; Y ; Yes ; T ; True + +# Deprecated (Dep) + +Dep; N ; No ; F ; False +Dep; Y ; Yes ; T ; True + +# Diacritic (Dia) + +Dia; N ; No ; F ; False +Dia; Y ; Yes ; T ; True + +# East_Asian_Width (ea) + +ea ; A ; Ambiguous +ea ; F ; Fullwidth +ea ; H ; Halfwidth +ea ; N ; Neutral +ea ; Na ; Narrow +ea ; W ; Wide + +# Emoji (Emoji) + +Emoji; N ; No ; F ; False +Emoji; Y ; Yes ; T ; True + +# Emoji_Component (EComp) + +EComp; N ; No ; F ; False +EComp; Y ; Yes ; T ; True + +# Emoji_Modifier (EMod) + +EMod; N ; No ; F ; False +EMod; Y ; Yes ; T ; True + +# Emoji_Modifier_Base (EBase) + +EBase; N ; No ; F ; False +EBase; Y ; Yes ; T ; True + +# Emoji_Presentation (EPres) + +EPres; N ; No ; F ; False +EPres; Y ; Yes ; T ; True + +# Equivalent_Unified_Ideograph (EqUIdeo) + + +# Expands_On_NFC (XO_NFC) + +XO_NFC; N ; No ; F ; False +XO_NFC; Y ; Yes ; T ; True + +# Expands_On_NFD (XO_NFD) + +XO_NFD; N ; No ; F ; False +XO_NFD; Y ; Yes ; T ; True + +# Expands_On_NFKC (XO_NFKC) + +XO_NFKC; N ; No ; F ; False +XO_NFKC; Y ; Yes ; T ; True + +# Expands_On_NFKD (XO_NFKD) + +XO_NFKD; N ; No ; F ; False +XO_NFKD; Y ; Yes ; T ; True + +# Extended_Pictographic (ExtPict) + +ExtPict; N ; No ; F ; False +ExtPict; Y ; Yes ; T ; True + +# Extender (Ext) + +Ext; N ; No ; F ; False +Ext; Y ; Yes ; T ; True + +# FC_NFKC_Closure (FC_NFKC) + +# @missing: 0000..10FFFF; FC_NFKC_Closure; <code point> + +# Full_Composition_Exclusion (Comp_Ex) + +Comp_Ex; N ; No ; F ; False +Comp_Ex; Y ; Yes ; T ; True + +# General_Category (gc) + +gc ; C ; Other # Cc | Cf | Cn | Co | Cs +gc ; Cc ; Control ; cntrl +gc ; Cf ; Format +gc ; Cn ; Unassigned +gc ; Co ; Private_Use +gc ; Cs ; Surrogate +gc ; L ; Letter # Ll | Lm | Lo | Lt | Lu +gc ; LC ; Cased_Letter # Ll | Lt | Lu +gc ; Ll ; Lowercase_Letter +gc ; Lm ; Modifier_Letter +gc ; Lo ; Other_Letter +gc ; Lt ; Titlecase_Letter +gc ; Lu ; Uppercase_Letter +gc ; M ; Mark ; Combining_Mark # Mc | Me | Mn +gc ; Mc ; Spacing_Mark +gc ; Me ; Enclosing_Mark +gc ; Mn ; Nonspacing_Mark +gc ; N ; Number # Nd | Nl | No +gc ; Nd ; Decimal_Number ; digit +gc ; Nl ; Letter_Number +gc ; No ; Other_Number +gc ; P ; Punctuation ; punct # Pc | Pd | Pe | Pf | Pi | Po | Ps +gc ; Pc ; Connector_Punctuation +gc ; Pd ; Dash_Punctuation +gc ; Pe ; Close_Punctuation +gc ; Pf ; Final_Punctuation +gc ; Pi ; Initial_Punctuation +gc ; Po ; Other_Punctuation +gc ; Ps ; Open_Punctuation +gc ; S ; Symbol # Sc | Sk | Sm | So +gc ; Sc ; Currency_Symbol +gc ; Sk ; Modifier_Symbol +gc ; Sm ; Math_Symbol +gc ; So ; Other_Symbol +gc ; Z ; Separator # Zl | Zp | Zs +gc ; Zl ; Line_Separator +gc ; Zp ; Paragraph_Separator +gc ; Zs ; Space_Separator +# @missing: 0000..10FFFF; General_Category; Unassigned + +# Grapheme_Base (Gr_Base) + +Gr_Base; N ; No ; F ; False +Gr_Base; Y ; Yes ; T ; True + +# Grapheme_Cluster_Break (GCB) + +GCB; CN ; Control +GCB; CR ; CR +GCB; EB ; E_Base +GCB; EBG ; E_Base_GAZ +GCB; EM ; E_Modifier +GCB; EX ; Extend +GCB; GAZ ; Glue_After_Zwj +GCB; L ; L +GCB; LF ; LF +GCB; LV ; LV +GCB; LVT ; LVT +GCB; PP ; Prepend +GCB; RI ; Regional_Indicator +GCB; SM ; SpacingMark +GCB; T ; T +GCB; V ; V +GCB; XX ; Other +GCB; ZWJ ; ZWJ + +# Grapheme_Extend (Gr_Ext) + +Gr_Ext; N ; No ; F ; False +Gr_Ext; Y ; Yes ; T ; True + +# Grapheme_Link (Gr_Link) + +Gr_Link; N ; No ; F ; False +Gr_Link; Y ; Yes ; T ; True + +# Hangul_Syllable_Type (hst) + +hst; L ; Leading_Jamo +hst; LV ; LV_Syllable +hst; LVT ; LVT_Syllable +hst; NA ; Not_Applicable +hst; T ; Trailing_Jamo +hst; V ; Vowel_Jamo + +# Hex_Digit (Hex) + +Hex; N ; No ; F ; False +Hex; Y ; Yes ; T ; True + +# Hyphen (Hyphen) + +Hyphen; N ; No ; F ; False +Hyphen; Y ; Yes ; T ; True + +# IDS_Binary_Operator (IDSB) + +IDSB; N ; No ; F ; False +IDSB; Y ; Yes ; T ; True + +# IDS_Trinary_Operator (IDST) + +IDST; N ; No ; F ; False +IDST; Y ; Yes ; T ; True + +# ID_Continue (IDC) + +IDC; N ; No ; F ; False +IDC; Y ; Yes ; T ; True + +# ID_Start (IDS) + +IDS; N ; No ; F ; False +IDS; Y ; Yes ; T ; True + +# ISO_Comment (isc) + +# @missing: 0000..10FFFF; ISO_Comment; <none> + +# Ideographic (Ideo) + +Ideo; N ; No ; F ; False +Ideo; Y ; Yes ; T ; True + +# Indic_Positional_Category (InPC) + +InPC; Bottom ; Bottom +InPC; Bottom_And_Left ; Bottom_And_Left +InPC; Bottom_And_Right ; Bottom_And_Right +InPC; Left ; Left +InPC; Left_And_Right ; Left_And_Right +InPC; NA ; NA +InPC; Overstruck ; Overstruck +InPC; Right ; Right +InPC; Top ; Top +InPC; Top_And_Bottom ; Top_And_Bottom +InPC; Top_And_Bottom_And_Left ; Top_And_Bottom_And_Left +InPC; Top_And_Bottom_And_Right ; Top_And_Bottom_And_Right +InPC; Top_And_Left ; Top_And_Left +InPC; Top_And_Left_And_Right ; Top_And_Left_And_Right +InPC; Top_And_Right ; Top_And_Right +InPC; Visual_Order_Left ; Visual_Order_Left + +# Indic_Syllabic_Category (InSC) + +InSC; Avagraha ; Avagraha +InSC; Bindu ; Bindu +InSC; Brahmi_Joining_Number ; Brahmi_Joining_Number +InSC; Cantillation_Mark ; Cantillation_Mark +InSC; Consonant ; Consonant +InSC; Consonant_Dead ; Consonant_Dead +InSC; Consonant_Final ; Consonant_Final +InSC; Consonant_Head_Letter ; Consonant_Head_Letter +InSC; Consonant_Initial_Postfixed ; Consonant_Initial_Postfixed +InSC; Consonant_Killer ; Consonant_Killer +InSC; Consonant_Medial ; Consonant_Medial +InSC; Consonant_Placeholder ; Consonant_Placeholder +InSC; Consonant_Preceding_Repha ; Consonant_Preceding_Repha +InSC; Consonant_Prefixed ; Consonant_Prefixed +InSC; Consonant_Subjoined ; Consonant_Subjoined +InSC; Consonant_Succeeding_Repha ; Consonant_Succeeding_Repha +InSC; Consonant_With_Stacker ; Consonant_With_Stacker +InSC; Gemination_Mark ; Gemination_Mark +InSC; Invisible_Stacker ; Invisible_Stacker +InSC; Joiner ; Joiner +InSC; Modifying_Letter ; Modifying_Letter +InSC; Non_Joiner ; Non_Joiner +InSC; Nukta ; Nukta +InSC; Number ; Number +InSC; Number_Joiner ; Number_Joiner +InSC; Other ; Other +InSC; Pure_Killer ; Pure_Killer +InSC; Register_Shifter ; Register_Shifter +InSC; Syllable_Modifier ; Syllable_Modifier +InSC; Tone_Letter ; Tone_Letter +InSC; Tone_Mark ; Tone_Mark +InSC; Virama ; Virama +InSC; Visarga ; Visarga +InSC; Vowel ; Vowel +InSC; Vowel_Dependent ; Vowel_Dependent +InSC; Vowel_Independent ; Vowel_Independent + +# Jamo_Short_Name (JSN) + +JSN; A ; A +JSN; AE ; AE +JSN; B ; B +JSN; BB ; BB +JSN; BS ; BS +JSN; C ; C +JSN; D ; D +JSN; DD ; DD +JSN; E ; E +JSN; EO ; EO +JSN; EU ; EU +JSN; G ; G +JSN; GG ; GG +JSN; GS ; GS +JSN; H ; H +JSN; I ; I +JSN; J ; J +JSN; JJ ; JJ +JSN; K ; K +JSN; L ; L +JSN; LB ; LB +JSN; LG ; LG +JSN; LH ; LH +JSN; LM ; LM +JSN; LP ; LP +JSN; LS ; LS +JSN; LT ; LT +JSN; M ; M +JSN; N ; N +JSN; NG ; NG +JSN; NH ; NH +JSN; NJ ; NJ +JSN; O ; O +JSN; OE ; OE +JSN; P ; P +JSN; R ; R +JSN; S ; S +JSN; SS ; SS +JSN; T ; T +JSN; U ; U +JSN; WA ; WA +JSN; WAE ; WAE +JSN; WE ; WE +JSN; WEO ; WEO +JSN; WI ; WI +JSN; YA ; YA +JSN; YAE ; YAE +JSN; YE ; YE +JSN; YEO ; YEO +JSN; YI ; YI +JSN; YO ; YO +JSN; YU ; YU +# @missing: 0000..10FFFF; Jamo_Short_Name; <none> + +# Join_Control (Join_C) + +Join_C; N ; No ; F ; False +Join_C; Y ; Yes ; T ; True + +# Joining_Group (jg) + +jg ; African_Feh ; African_Feh +jg ; African_Noon ; African_Noon +jg ; African_Qaf ; African_Qaf +jg ; Ain ; Ain +jg ; Alaph ; Alaph +jg ; Alef ; Alef +jg ; Beh ; Beh +jg ; Beth ; Beth +jg ; Burushaski_Yeh_Barree ; Burushaski_Yeh_Barree +jg ; Dal ; Dal +jg ; Dalath_Rish ; Dalath_Rish +jg ; E ; E +jg ; Farsi_Yeh ; Farsi_Yeh +jg ; Fe ; Fe +jg ; Feh ; Feh +jg ; Final_Semkath ; Final_Semkath +jg ; Gaf ; Gaf +jg ; Gamal ; Gamal +jg ; Hah ; Hah +jg ; Hanifi_Rohingya_Kinna_Ya ; Hanifi_Rohingya_Kinna_Ya +jg ; Hanifi_Rohingya_Pa ; Hanifi_Rohingya_Pa +jg ; He ; He +jg ; Heh ; Heh +jg ; Heh_Goal ; Heh_Goal +jg ; Heth ; Heth +jg ; Kaf ; Kaf +jg ; Kaph ; Kaph +jg ; Khaph ; Khaph +jg ; Knotted_Heh ; Knotted_Heh +jg ; Lam ; Lam +jg ; Lamadh ; Lamadh +jg ; Malayalam_Bha ; Malayalam_Bha +jg ; Malayalam_Ja ; Malayalam_Ja +jg ; Malayalam_Lla ; Malayalam_Lla +jg ; Malayalam_Llla ; Malayalam_Llla +jg ; Malayalam_Nga ; Malayalam_Nga +jg ; Malayalam_Nna ; Malayalam_Nna +jg ; Malayalam_Nnna ; Malayalam_Nnna +jg ; Malayalam_Nya ; Malayalam_Nya +jg ; Malayalam_Ra ; Malayalam_Ra +jg ; Malayalam_Ssa ; Malayalam_Ssa +jg ; Malayalam_Tta ; Malayalam_Tta +jg ; Manichaean_Aleph ; Manichaean_Aleph +jg ; Manichaean_Ayin ; Manichaean_Ayin +jg ; Manichaean_Beth ; Manichaean_Beth +jg ; Manichaean_Daleth ; Manichaean_Daleth +jg ; Manichaean_Dhamedh ; Manichaean_Dhamedh +jg ; Manichaean_Five ; Manichaean_Five +jg ; Manichaean_Gimel ; Manichaean_Gimel +jg ; Manichaean_Heth ; Manichaean_Heth +jg ; Manichaean_Hundred ; Manichaean_Hundred +jg ; Manichaean_Kaph ; Manichaean_Kaph +jg ; Manichaean_Lamedh ; Manichaean_Lamedh +jg ; Manichaean_Mem ; Manichaean_Mem +jg ; Manichaean_Nun ; Manichaean_Nun +jg ; Manichaean_One ; Manichaean_One +jg ; Manichaean_Pe ; Manichaean_Pe +jg ; Manichaean_Qoph ; Manichaean_Qoph +jg ; Manichaean_Resh ; Manichaean_Resh +jg ; Manichaean_Sadhe ; Manichaean_Sadhe +jg ; Manichaean_Samekh ; Manichaean_Samekh +jg ; Manichaean_Taw ; Manichaean_Taw +jg ; Manichaean_Ten ; Manichaean_Ten +jg ; Manichaean_Teth ; Manichaean_Teth +jg ; Manichaean_Thamedh ; Manichaean_Thamedh +jg ; Manichaean_Twenty ; Manichaean_Twenty +jg ; Manichaean_Waw ; Manichaean_Waw +jg ; Manichaean_Yodh ; Manichaean_Yodh +jg ; Manichaean_Zayin ; Manichaean_Zayin +jg ; Meem ; Meem +jg ; Mim ; Mim +jg ; No_Joining_Group ; No_Joining_Group +jg ; Noon ; Noon +jg ; Nun ; Nun +jg ; Nya ; Nya +jg ; Pe ; Pe +jg ; Qaf ; Qaf +jg ; Qaph ; Qaph +jg ; Reh ; Reh +jg ; Reversed_Pe ; Reversed_Pe +jg ; Rohingya_Yeh ; Rohingya_Yeh +jg ; Sad ; Sad +jg ; Sadhe ; Sadhe +jg ; Seen ; Seen +jg ; Semkath ; Semkath +jg ; Shin ; Shin +jg ; Straight_Waw ; Straight_Waw +jg ; Swash_Kaf ; Swash_Kaf +jg ; Syriac_Waw ; Syriac_Waw +jg ; Tah ; Tah +jg ; Taw ; Taw +jg ; Teh_Marbuta ; Teh_Marbuta +jg ; Teh_Marbuta_Goal ; Hamza_On_Heh_Goal +jg ; Teth ; Teth +jg ; Thin_Yeh ; Thin_Yeh +jg ; Vertical_Tail ; Vertical_Tail +jg ; Waw ; Waw +jg ; Yeh ; Yeh +jg ; Yeh_Barree ; Yeh_Barree +jg ; Yeh_With_Tail ; Yeh_With_Tail +jg ; Yudh ; Yudh +jg ; Yudh_He ; Yudh_He +jg ; Zain ; Zain +jg ; Zhain ; Zhain + +# Joining_Type (jt) + +jt ; C ; Join_Causing +jt ; D ; Dual_Joining +jt ; L ; Left_Joining +jt ; R ; Right_Joining +jt ; T ; Transparent +jt ; U ; Non_Joining + +# Line_Break (lb) + +lb ; AI ; Ambiguous +lb ; AL ; Alphabetic +lb ; B2 ; Break_Both +lb ; BA ; Break_After +lb ; BB ; Break_Before +lb ; BK ; Mandatory_Break +lb ; CB ; Contingent_Break +lb ; CJ ; Conditional_Japanese_Starter +lb ; CL ; Close_Punctuation +lb ; CM ; Combining_Mark +lb ; CP ; Close_Parenthesis +lb ; CR ; Carriage_Return +lb ; EB ; E_Base +lb ; EM ; E_Modifier +lb ; EX ; Exclamation +lb ; GL ; Glue +lb ; H2 ; H2 +lb ; H3 ; H3 +lb ; HL ; Hebrew_Letter +lb ; HY ; Hyphen +lb ; ID ; Ideographic +lb ; IN ; Inseparable ; Inseperable +lb ; IS ; Infix_Numeric +lb ; JL ; JL +lb ; JT ; JT +lb ; JV ; JV +lb ; LF ; Line_Feed +lb ; NL ; Next_Line +lb ; NS ; Nonstarter +lb ; NU ; Numeric +lb ; OP ; Open_Punctuation +lb ; PO ; Postfix_Numeric +lb ; PR ; Prefix_Numeric +lb ; QU ; Quotation +lb ; RI ; Regional_Indicator +lb ; SA ; Complex_Context +lb ; SG ; Surrogate +lb ; SP ; Space +lb ; SY ; Break_Symbols +lb ; WJ ; Word_Joiner +lb ; XX ; Unknown +lb ; ZW ; ZWSpace +lb ; ZWJ ; ZWJ + +# Logical_Order_Exception (LOE) + +LOE; N ; No ; F ; False +LOE; Y ; Yes ; T ; True + +# Lowercase (Lower) + +Lower; N ; No ; F ; False +Lower; Y ; Yes ; T ; True + +# Lowercase_Mapping (lc) + +# @missing: 0000..10FFFF; Lowercase_Mapping; <code point> + +# Math (Math) + +Math; N ; No ; F ; False +Math; Y ; Yes ; T ; True + +# NFC_Quick_Check (NFC_QC) + +NFC_QC; M ; Maybe +NFC_QC; N ; No +NFC_QC; Y ; Yes + +# NFD_Quick_Check (NFD_QC) + +NFD_QC; N ; No +NFD_QC; Y ; Yes + +# NFKC_Casefold (NFKC_CF) + + +# NFKC_Quick_Check (NFKC_QC) + +NFKC_QC; M ; Maybe +NFKC_QC; N ; No +NFKC_QC; Y ; Yes + +# NFKD_Quick_Check (NFKD_QC) + +NFKD_QC; N ; No +NFKD_QC; Y ; Yes + +# Name (na) + +# @missing: 0000..10FFFF; Name; <none> + +# Name_Alias (Name_Alias) + +# @missing: 0000..10FFFF; Name_Alias; <none> + +# Noncharacter_Code_Point (NChar) + +NChar; N ; No ; F ; False +NChar; Y ; Yes ; T ; True + +# Numeric_Type (nt) + +nt ; De ; Decimal +nt ; Di ; Digit +nt ; None ; None +nt ; Nu ; Numeric + +# Numeric_Value (nv) + +# @missing: 0000..10FFFF; Numeric_Value; NaN + +# Other_Alphabetic (OAlpha) + +OAlpha; N ; No ; F ; False +OAlpha; Y ; Yes ; T ; True + +# Other_Default_Ignorable_Code_Point (ODI) + +ODI; N ; No ; F ; False +ODI; Y ; Yes ; T ; True + +# Other_Grapheme_Extend (OGr_Ext) + +OGr_Ext; N ; No ; F ; False +OGr_Ext; Y ; Yes ; T ; True + +# Other_ID_Continue (OIDC) + +OIDC; N ; No ; F ; False +OIDC; Y ; Yes ; T ; True + +# Other_ID_Start (OIDS) + +OIDS; N ; No ; F ; False +OIDS; Y ; Yes ; T ; True + +# Other_Lowercase (OLower) + +OLower; N ; No ; F ; False +OLower; Y ; Yes ; T ; True + +# Other_Math (OMath) + +OMath; N ; No ; F ; False +OMath; Y ; Yes ; T ; True + +# Other_Uppercase (OUpper) + +OUpper; N ; No ; F ; False +OUpper; Y ; Yes ; T ; True + +# Pattern_Syntax (Pat_Syn) + +Pat_Syn; N ; No ; F ; False +Pat_Syn; Y ; Yes ; T ; True + +# Pattern_White_Space (Pat_WS) + +Pat_WS; N ; No ; F ; False +Pat_WS; Y ; Yes ; T ; True + +# Prepended_Concatenation_Mark (PCM) + +PCM; N ; No ; F ; False +PCM; Y ; Yes ; T ; True + +# Quotation_Mark (QMark) + +QMark; N ; No ; F ; False +QMark; Y ; Yes ; T ; True + +# Radical (Radical) + +Radical; N ; No ; F ; False +Radical; Y ; Yes ; T ; True + +# Regional_Indicator (RI) + +RI ; N ; No ; F ; False +RI ; Y ; Yes ; T ; True + +# Script (sc) + +sc ; Adlm ; Adlam +sc ; Aghb ; Caucasian_Albanian +sc ; Ahom ; Ahom +sc ; Arab ; Arabic +sc ; Armi ; Imperial_Aramaic +sc ; Armn ; Armenian +sc ; Avst ; Avestan +sc ; Bali ; Balinese +sc ; Bamu ; Bamum +sc ; Bass ; Bassa_Vah +sc ; Batk ; Batak +sc ; Beng ; Bengali +sc ; Bhks ; Bhaiksuki +sc ; Bopo ; Bopomofo +sc ; Brah ; Brahmi +sc ; Brai ; Braille +sc ; Bugi ; Buginese +sc ; Buhd ; Buhid +sc ; Cakm ; Chakma +sc ; Cans ; Canadian_Aboriginal +sc ; Cari ; Carian +sc ; Cham ; Cham +sc ; Cher ; Cherokee +sc ; Chrs ; Chorasmian +sc ; Copt ; Coptic ; Qaac +sc ; Cpmn ; Cypro_Minoan +sc ; Cprt ; Cypriot +sc ; Cyrl ; Cyrillic +sc ; Deva ; Devanagari +sc ; Diak ; Dives_Akuru +sc ; Dogr ; Dogra +sc ; Dsrt ; Deseret +sc ; Dupl ; Duployan +sc ; Egyp ; Egyptian_Hieroglyphs +sc ; Elba ; Elbasan +sc ; Elym ; Elymaic +sc ; Ethi ; Ethiopic +sc ; Geor ; Georgian +sc ; Glag ; Glagolitic +sc ; Gong ; Gunjala_Gondi +sc ; Gonm ; Masaram_Gondi +sc ; Goth ; Gothic +sc ; Gran ; Grantha +sc ; Grek ; Greek +sc ; Gujr ; Gujarati +sc ; Guru ; Gurmukhi +sc ; Hang ; Hangul +sc ; Hani ; Han +sc ; Hano ; Hanunoo +sc ; Hatr ; Hatran +sc ; Hebr ; Hebrew +sc ; Hira ; Hiragana +sc ; Hluw ; Anatolian_Hieroglyphs +sc ; Hmng ; Pahawh_Hmong +sc ; Hmnp ; Nyiakeng_Puachue_Hmong +sc ; Hrkt ; Katakana_Or_Hiragana +sc ; Hung ; Old_Hungarian +sc ; Ital ; Old_Italic +sc ; Java ; Javanese +sc ; Kali ; Kayah_Li +sc ; Kana ; Katakana +sc ; Kawi ; Kawi +sc ; Khar ; Kharoshthi +sc ; Khmr ; Khmer +sc ; Khoj ; Khojki +sc ; Kits ; Khitan_Small_Script +sc ; Knda ; Kannada +sc ; Kthi ; Kaithi +sc ; Lana ; Tai_Tham +sc ; Laoo ; Lao +sc ; Latn ; Latin +sc ; Lepc ; Lepcha +sc ; Limb ; Limbu +sc ; Lina ; Linear_A +sc ; Linb ; Linear_B +sc ; Lisu ; Lisu +sc ; Lyci ; Lycian +sc ; Lydi ; Lydian +sc ; Mahj ; Mahajani +sc ; Maka ; Makasar +sc ; Mand ; Mandaic +sc ; Mani ; Manichaean +sc ; Marc ; Marchen +sc ; Medf ; Medefaidrin +sc ; Mend ; Mende_Kikakui +sc ; Merc ; Meroitic_Cursive +sc ; Mero ; Meroitic_Hieroglyphs +sc ; Mlym ; Malayalam +sc ; Modi ; Modi +sc ; Mong ; Mongolian +sc ; Mroo ; Mro +sc ; Mtei ; Meetei_Mayek +sc ; Mult ; Multani +sc ; Mymr ; Myanmar +sc ; Nagm ; Nag_Mundari +sc ; Nand ; Nandinagari +sc ; Narb ; Old_North_Arabian +sc ; Nbat ; Nabataean +sc ; Newa ; Newa +sc ; Nkoo ; Nko +sc ; Nshu ; Nushu +sc ; Ogam ; Ogham +sc ; Olck ; Ol_Chiki +sc ; Orkh ; Old_Turkic +sc ; Orya ; Oriya +sc ; Osge ; Osage +sc ; Osma ; Osmanya +sc ; Ougr ; Old_Uyghur +sc ; Palm ; Palmyrene +sc ; Pauc ; Pau_Cin_Hau +sc ; Perm ; Old_Permic +sc ; Phag ; Phags_Pa +sc ; Phli ; Inscriptional_Pahlavi +sc ; Phlp ; Psalter_Pahlavi +sc ; Phnx ; Phoenician +sc ; Plrd ; Miao +sc ; Prti ; Inscriptional_Parthian +sc ; Rjng ; Rejang +sc ; Rohg ; Hanifi_Rohingya +sc ; Runr ; Runic +sc ; Samr ; Samaritan +sc ; Sarb ; Old_South_Arabian +sc ; Saur ; Saurashtra +sc ; Sgnw ; SignWriting +sc ; Shaw ; Shavian +sc ; Shrd ; Sharada +sc ; Sidd ; Siddham +sc ; Sind ; Khudawadi +sc ; Sinh ; Sinhala +sc ; Sogd ; Sogdian +sc ; Sogo ; Old_Sogdian +sc ; Sora ; Sora_Sompeng +sc ; Soyo ; Soyombo +sc ; Sund ; Sundanese +sc ; Sylo ; Syloti_Nagri +sc ; Syrc ; Syriac +sc ; Tagb ; Tagbanwa +sc ; Takr ; Takri +sc ; Tale ; Tai_Le +sc ; Talu ; New_Tai_Lue +sc ; Taml ; Tamil +sc ; Tang ; Tangut +sc ; Tavt ; Tai_Viet +sc ; Telu ; Telugu +sc ; Tfng ; Tifinagh +sc ; Tglg ; Tagalog +sc ; Thaa ; Thaana +sc ; Thai ; Thai +sc ; Tibt ; Tibetan +sc ; Tirh ; Tirhuta +sc ; Tnsa ; Tangsa +sc ; Toto ; Toto +sc ; Ugar ; Ugaritic +sc ; Vaii ; Vai +sc ; Vith ; Vithkuqi +sc ; Wara ; Warang_Citi +sc ; Wcho ; Wancho +sc ; Xpeo ; Old_Persian +sc ; Xsux ; Cuneiform +sc ; Yezi ; Yezidi +sc ; Yiii ; Yi +sc ; Zanb ; Zanabazar_Square +sc ; Zinh ; Inherited ; Qaai +sc ; Zyyy ; Common +sc ; Zzzz ; Unknown + +# Script_Extensions (scx) + + +# Sentence_Break (SB) + +SB ; AT ; ATerm +SB ; CL ; Close +SB ; CR ; CR +SB ; EX ; Extend +SB ; FO ; Format +SB ; LE ; OLetter +SB ; LF ; LF +SB ; LO ; Lower +SB ; NU ; Numeric +SB ; SC ; SContinue +SB ; SE ; Sep +SB ; SP ; Sp +SB ; ST ; STerm +SB ; UP ; Upper +SB ; XX ; Other + +# Sentence_Terminal (STerm) + +STerm; N ; No ; F ; False +STerm; Y ; Yes ; T ; True + +# Simple_Case_Folding (scf) + +# @missing: 0000..10FFFF; Simple_Case_Folding; <code point> + +# Simple_Lowercase_Mapping (slc) + +# @missing: 0000..10FFFF; Simple_Lowercase_Mapping; <code point> + +# Simple_Titlecase_Mapping (stc) + +# @missing: 0000..10FFFF; Simple_Titlecase_Mapping; <code point> + +# Simple_Uppercase_Mapping (suc) + +# @missing: 0000..10FFFF; Simple_Uppercase_Mapping; <code point> + +# Soft_Dotted (SD) + +SD ; N ; No ; F ; False +SD ; Y ; Yes ; T ; True + +# Terminal_Punctuation (Term) + +Term; N ; No ; F ; False +Term; Y ; Yes ; T ; True + +# Titlecase_Mapping (tc) + +# @missing: 0000..10FFFF; Titlecase_Mapping; <code point> + +# Unicode_1_Name (na1) + +# @missing: 0000..10FFFF; Unicode_1_Name; <none> + +# Unified_Ideograph (UIdeo) + +UIdeo; N ; No ; F ; False +UIdeo; Y ; Yes ; T ; True + +# Uppercase (Upper) + +Upper; N ; No ; F ; False +Upper; Y ; Yes ; T ; True + +# Uppercase_Mapping (uc) + +# @missing: 0000..10FFFF; Uppercase_Mapping; <code point> + +# Variation_Selector (VS) + +VS ; N ; No ; F ; False +VS ; Y ; Yes ; T ; True + +# Vertical_Orientation (vo) + +vo ; R ; Rotated +vo ; Tr ; Transformed_Rotated +vo ; Tu ; Transformed_Upright +vo ; U ; Upright + +# White_Space (WSpace) + +WSpace; N ; No ; F ; False +WSpace; Y ; Yes ; T ; True + +# Word_Break (WB) + +WB ; CR ; CR +WB ; DQ ; Double_Quote +WB ; EB ; E_Base +WB ; EBG ; E_Base_GAZ +WB ; EM ; E_Modifier +WB ; EX ; ExtendNumLet +WB ; Extend ; Extend +WB ; FO ; Format +WB ; GAZ ; Glue_After_Zwj +WB ; HL ; Hebrew_Letter +WB ; KA ; Katakana +WB ; LE ; ALetter +WB ; LF ; LF +WB ; MB ; MidNumLet +WB ; ML ; MidLetter +WB ; MN ; MidNum +WB ; NL ; Newline +WB ; NU ; Numeric +WB ; RI ; Regional_Indicator +WB ; SQ ; Single_Quote +WB ; WSegSpace ; WSegSpace +WB ; XX ; Other +WB ; ZWJ ; ZWJ + +# XID_Continue (XIDC) + +XIDC; N ; No ; F ; False +XIDC; Y ; Yes ; T ; True + +# XID_Start (XIDS) + +XIDS; N ; No ; F ; False +XIDS; Y ; Yes ; T ; True + +# cjkAccountingNumeric (cjkAccountingNumeric) + +# @missing: 0000..10FFFF; cjkAccountingNumeric; NaN + +# cjkCompatibilityVariant (cjkCompatibilityVariant) + +# @missing: 0000..10FFFF; cjkCompatibilityVariant; <code point> + +# cjkIICore (cjkIICore) + +# @missing: 0000..10FFFF; cjkIICore; <none> + +# cjkIRG_GSource (cjkIRG_GSource) + +# @missing: 0000..10FFFF; cjkIRG_GSource; <none> + +# cjkIRG_HSource (cjkIRG_HSource) + +# @missing: 0000..10FFFF; cjkIRG_HSource; <none> + +# cjkIRG_JSource (cjkIRG_JSource) + +# @missing: 0000..10FFFF; cjkIRG_JSource; <none> + +# cjkIRG_KPSource (cjkIRG_KPSource) + +# @missing: 0000..10FFFF; cjkIRG_KPSource; <none> + +# cjkIRG_KSource (cjkIRG_KSource) + +# @missing: 0000..10FFFF; cjkIRG_KSource; <none> + +# cjkIRG_MSource (cjkIRG_MSource) + +# @missing: 0000..10FFFF; cjkIRG_MSource; <none> + +# cjkIRG_SSource (cjkIRG_SSource) + +# @missing: 0000..10FFFF; cjkIRG_SSource; <none> + +# cjkIRG_TSource (cjkIRG_TSource) + +# @missing: 0000..10FFFF; cjkIRG_TSource; <none> + +# cjkIRG_UKSource (cjkIRG_UKSource) + +# @missing: 0000..10FFFF; cjkIRG_UKSource; <none> + +# cjkIRG_USource (cjkIRG_USource) + +# @missing: 0000..10FFFF; cjkIRG_USource; <none> + +# cjkIRG_VSource (cjkIRG_VSource) + +# @missing: 0000..10FFFF; cjkIRG_VSource; <none> + +# cjkOtherNumeric (cjkOtherNumeric) + +# @missing: 0000..10FFFF; cjkOtherNumeric; NaN + +# cjkPrimaryNumeric (cjkPrimaryNumeric) + +# @missing: 0000..10FFFF; cjkPrimaryNumeric; NaN + +# cjkRSUnicode (cjkRSUnicode) + +# @missing: 0000..10FFFF; cjkRSUnicode; <none> + +# EOF diff --git a/admin/unidata/README b/admin/unidata/README index 656ee15c54c7..2d421dfb6bf5 100644 --- a/admin/unidata/README +++ b/admin/unidata/README @@ -6,31 +6,31 @@ copyright.html. The names, URLs, and dates for these files are as follows. BidiBrackets.txt -http://www.unicode.org/Public/UNIDATA/BidiBrackets.txt +https://www.unicode.org/Public/UNIDATA/BidiBrackets.txt 2021-06-30 BidiMirroring.txt -http://www.unicode.org/Public/UNIDATA/BidiMirroring.txt +https://www.unicode.org/Public/UNIDATA/BidiMirroring.txt 2021-08-08 Blocks.txt -http://www.unicode.org/Public/8.0.0/ucd/Blocks.txt +https://www.unicode.org/Public/8.0.0/ucd/Blocks.txt 2021-01-22 IVD_Sequences.txt -http://www.unicode.org/ivd/ +https://www.unicode.org/ivd/ 2020-11-06 NormalizationTest.txt -http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt +https://www.unicode.org/Public/UNIDATA/NormalizationTest.txt 2021-05-28 SpecialCasing.txt -http://unicode.org/Public/UNIDATA/SpecialCasing.txt +https://unicode.org/Public/UNIDATA/SpecialCasing.txt 2021-03-08 UnicodeData.txt -http://www.unicode.org/Public/UNIDATA/UnicodeData.txt +https://www.unicode.org/Public/UNIDATA/UnicodeData.txt 2021-07-06 emoji-data.txt @@ -44,3 +44,23 @@ https://www.unicode.org/Public/emoji/14.0/emoji-zwj-sequences.txt emoji-sequences.txt https://www.unicode.org/Public/emoji/14.0/emoji-sequences.txt 2020-08-26 + +emoji-test.txt +https://unicode.org/Public/emoji/14.0/emoji-test.txt +2021-10-28 + +ScriptExtensions.txt +https://www.unicode.org/Public/UCD/latest/ucd/ScriptExtensions.txt +2022-01-17 + +Scripts.txt +https://www.unicode.org/Public/UCD/latest/ucd/Scripts.txt +2022-01-17 + +PropertyValueAliases.txt +https://www.unicode.org/Public/UCD/latest/ucd/PropertyValueAliases.txt +2022-01-17 + +IdnaMappingTable.txt +https://www.unicode.org/Public/idna/latest/IdnaMappingTable.txt +2022-01-18 diff --git a/admin/unidata/ScriptExtensions.txt b/admin/unidata/ScriptExtensions.txt new file mode 100644 index 000000000000..2f5a1727e339 --- /dev/null +++ b/admin/unidata/ScriptExtensions.txt @@ -0,0 +1,628 @@ +# ScriptExtensions-15.0.0.txt +# Date: 2022-02-02, 00:57:11 GMT +# © 2022 Unicode®, Inc. +# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. +# For terms of use, see https://www.unicode.org/terms_of_use.html +# +# Unicode Character Database +# For documentation, see https://www.unicode.org/reports/tr44/ +# +# The Script_Extensions property indicates which characters are commonly used +# with more than one script, but with a limited number of scripts. +# For each code point, there is one or more property values. Each such value is a Script property value. +# For more information, see: +# UAX #24, Unicode Script Property: https://www.unicode.org/reports/tr24/ +# Especially the sections: +# https://www.unicode.org/reports/tr24/#Assignment_Script_Values +# https://www.unicode.org/reports/tr24/#Assignment_ScriptX_Values +# +# Each Script_Extensions value in this file consists of a set +# of one or more abbreviated Script property values. The ordering of the +# values in that set is not material, but for stability in presentation +# it is given here as alphabetical. +# +# The Script_Extensions values are presented in sorted order in the file. +# They are sorted first by the number of Script property values in their sets, +# and then alphabetically by first differing Script property value. +# +# Following each distinct Script_Extensions value is the list of code +# points associated with that value, listed in code point order. +# +# All code points not explicitly listed for Script_Extensions +# have as their value the corresponding Script property value +# +# @missing: 0000..10FFFF; <script> + +# ================================================ + +# Property: Script_Extensions + +# ================================================ + +# Script_Extensions=Beng + +1CF7 ; Beng # Mc VEDIC SIGN ATIKRAMA + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Deva + +1CD1 ; Deva # Mn VEDIC TONE SHARA +1CD4 ; Deva # Mn VEDIC SIGN YAJURVEDIC MIDLINE SVARITA +1CDB ; Deva # Mn VEDIC TONE TRIPLE SVARITA +1CDE..1CDF ; Deva # Mn [2] VEDIC TONE TWO DOTS BELOW..VEDIC TONE THREE DOTS BELOW +1CE2..1CE8 ; Deva # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL +1CEB..1CEC ; Deva # Lo [2] VEDIC SIGN ANUSVARA VAMAGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL +1CEE..1CF1 ; Deva # Lo [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA + +# Total code points: 18 + +# ================================================ + +# Script_Extensions=Dupl + +1BCA0..1BCA3 ; Dupl # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP + +# Total code points: 4 + +# ================================================ + +# Script_Extensions=Grek + +0342 ; Grek # Mn COMBINING GREEK PERISPOMENI +0345 ; Grek # Mn COMBINING GREEK YPOGEGRAMMENI +1DC0..1DC1 ; Grek # Mn [2] COMBINING DOTTED GRAVE ACCENT..COMBINING DOTTED ACUTE ACCENT + +# Total code points: 4 + +# ================================================ + +# Script_Extensions=Hani + +3006 ; Hani # Lo IDEOGRAPHIC CLOSING MARK +303E..303F ; Hani # So [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC HALF FILL SPACE +3190..3191 ; Hani # So [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK +3192..3195 ; Hani # No [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK +3196..319F ; Hani # So [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK +31C0..31E3 ; Hani # So [36] CJK STROKE T..CJK STROKE Q +3220..3229 ; Hani # No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN +322A..3247 ; Hani # So [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO +3280..3289 ; Hani # No [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN +328A..32B0 ; Hani # So [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT +32C0..32CB ; Hani # So [12] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER +32FF ; Hani # So SQUARE ERA NAME REIWA +3358..3370 ; Hani # So [25] IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO..IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR +337B..337F ; Hani # So [5] SQUARE ERA NAME HEISEI..SQUARE CORPORATION +33E0..33FE ; Hani # So [31] IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE..IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE +1D360..1D371 ; Hani # No [18] COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE +1F250..1F251 ; Hani # So [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT + +# Total code points: 238 + +# ================================================ + +# Script_Extensions=Latn + +0363..036F ; Latn # Mn [13] COMBINING LATIN SMALL LETTER A..COMBINING LATIN SMALL LETTER X + +# Total code points: 13 + +# ================================================ + +# Script_Extensions=Nand + +1CFA ; Nand # Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Syrc + +1DFA ; Syrc # Mn COMBINING DOT BELOW LEFT + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Arab Copt + +102E0 ; Arab Copt # Mn COPTIC EPACT THOUSANDS MARK +102E1..102FB ; Arab Copt # No [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED + +# Total code points: 28 + +# ================================================ + +# Script_Extensions=Arab Rohg + +06D4 ; Arab Rohg # Po ARABIC FULL STOP + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Arab Nkoo + +FD3E ; Arab Nkoo # Pe ORNATE LEFT PARENTHESIS +FD3F ; Arab Nkoo # Ps ORNATE RIGHT PARENTHESIS + +# Total code points: 2 + +# ================================================ + +# Script_Extensions=Arab Syrc + +064B..0655 ; Arab Syrc # Mn [11] ARABIC FATHATAN..ARABIC HAMZA BELOW +0670 ; Arab Syrc # Mn ARABIC LETTER SUPERSCRIPT ALEF + +# Total code points: 12 + +# ================================================ + +# Script_Extensions=Arab Thaa + +FDF2 ; Arab Thaa # Lo ARABIC LIGATURE ALLAH ISOLATED FORM +FDFD ; Arab Thaa # So ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM + +# Total code points: 2 + +# ================================================ + +# Script_Extensions=Beng Deva + +1CD5..1CD6 ; Beng Deva # Mn [2] VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA..VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA +1CD8 ; Beng Deva # Mn VEDIC TONE CANDRA BELOW +1CE1 ; Beng Deva # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA +1CEA ; Beng Deva # Lo VEDIC SIGN ANUSVARA BAHIRGOMUKHA +1CED ; Beng Deva # Mn VEDIC SIGN TIRYAK +1CF5..1CF6 ; Beng Deva # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA +A8F1 ; Beng Deva # Mn COMBINING DEVANAGARI SIGN AVAGRAHA + +# Total code points: 9 + +# ================================================ + +# Script_Extensions=Bopo Hani + +302A..302D ; Bopo Hani # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK + +# Total code points: 4 + +# ================================================ + +# Script_Extensions=Bugi Java + +A9CF ; Bugi Java # Lm JAVANESE PANGRANGKEP + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Cprt Linb + +10102 ; Cprt Linb # Po AEGEAN CHECK MARK +10137..1013F ; Cprt Linb # So [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT + +# Total code points: 10 + +# ================================================ + +# Script_Extensions=Cyrl Glag + +0484 ; Cyrl Glag # Mn COMBINING CYRILLIC PALATALIZATION +0487 ; Cyrl Glag # Mn COMBINING CYRILLIC POKRYTIE +2E43 ; Cyrl Glag # Po DASH WITH LEFT UPTURN +A66F ; Cyrl Glag # Mn COMBINING CYRILLIC VZMET + +# Total code points: 4 + +# ================================================ + +# Script_Extensions=Cyrl Latn + +0485..0486 ; Cyrl Latn # Mn [2] COMBINING CYRILLIC DASIA PNEUMATA..COMBINING CYRILLIC PSILI PNEUMATA + +# Total code points: 2 + +# ================================================ + +# Script_Extensions=Cyrl Perm + +0483 ; Cyrl Perm # Mn COMBINING CYRILLIC TITLO + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Cyrl Syrc + +1DF8 ; Cyrl Syrc # Mn COMBINING DOT ABOVE LEFT + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Deva Gran + +1CD3 ; Deva Gran # Po VEDIC SIGN NIHSHVASA +1CF3 ; Deva Gran # Lo VEDIC SIGN ROTATED ARDHAVISARGA +1CF8..1CF9 ; Deva Gran # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE + +# Total code points: 4 + +# ================================================ + +# Script_Extensions=Deva Nand + +1CE9 ; Deva Nand # Lo VEDIC SIGN ANUSVARA ANTARGOMUKHA + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Deva Shrd + +1CD7 ; Deva Shrd # Mn VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA +1CD9 ; Deva Shrd # Mn VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER +1CDC..1CDD ; Deva Shrd # Mn [2] VEDIC TONE KATHAKA ANUDATTA..VEDIC TONE DOT BELOW +1CE0 ; Deva Shrd # Mn VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA + +# Total code points: 5 + +# ================================================ + +# Script_Extensions=Deva Taml + +A8F3 ; Deva Taml # Lo DEVANAGARI SIGN CANDRABINDU VIRAMA + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Geor Latn + +10FB ; Geor Latn # Po GEORGIAN PARAGRAPH SEPARATOR + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Gran Taml + +0BE6..0BEF ; Gran Taml # Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE +0BF0..0BF2 ; Gran Taml # No [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND +0BF3 ; Gran Taml # So TAMIL DAY SIGN +11301 ; Gran Taml # Mn GRANTHA SIGN CANDRABINDU +11303 ; Gran Taml # Mc GRANTHA SIGN VISARGA +1133B..1133C ; Gran Taml # Mn [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA +11FD0..11FD1 ; Gran Taml # No [2] TAMIL FRACTION ONE QUARTER..TAMIL FRACTION ONE HALF-1 +11FD3 ; Gran Taml # No TAMIL FRACTION THREE QUARTERS + +# Total code points: 21 + +# ================================================ + +# Script_Extensions=Gujr Khoj + +0AE6..0AEF ; Gujr Khoj # Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE + +# Total code points: 10 + +# ================================================ + +# Script_Extensions=Guru Mult + +0A66..0A6F ; Guru Mult # Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE + +# Total code points: 10 + +# ================================================ + +# Script_Extensions=Hani Latn + +A700..A707 ; Hani Latn # Sk [8] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER CHINESE TONE YANG RU + +# Total code points: 8 + +# ================================================ + +# Script_Extensions=Hira Kana + +3031..3035 ; Hira Kana # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF +3099..309A ; Hira Kana # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +309B..309C ; Hira Kana # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +30A0 ; Hira Kana # Pd KATAKANA-HIRAGANA DOUBLE HYPHEN +30FC ; Hira Kana # Lm KATAKANA-HIRAGANA PROLONGED SOUND MARK +FF70 ; Hira Kana # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK +FF9E..FF9F ; Hira Kana # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK + +# Total code points: 14 + +# ================================================ + +# Script_Extensions=Knda Nand + +0CE6..0CEF ; Knda Nand # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE + +# Total code points: 10 + +# ================================================ + +# Script_Extensions=Latn Mong + +202F ; Latn Mong # Zs NARROW NO-BREAK SPACE + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Mani Ougr + +10AF2 ; Mani Ougr # Po MANICHAEAN PUNCTUATION DOUBLE DOT WITHIN DOT + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Mong Phag + +1802..1803 ; Mong Phag # Po [2] MONGOLIAN COMMA..MONGOLIAN FULL STOP +1805 ; Mong Phag # Po MONGOLIAN FOUR DOTS + +# Total code points: 3 + +# ================================================ + +# Script_Extensions=Arab Syrc Thaa + +061C ; Arab Syrc Thaa # Cf ARABIC LETTER MARK + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Arab Thaa Yezi + +0660..0669 ; Arab Thaa Yezi # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE + +# Total code points: 10 + +# ================================================ + +# Script_Extensions=Beng Cakm Sylo + +09E6..09EF ; Beng Cakm Sylo # Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE + +# Total code points: 10 + +# ================================================ + +# Script_Extensions=Cakm Mymr Tale + +1040..1049 ; Cakm Mymr Tale # Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE + +# Total code points: 10 + +# ================================================ + +# Script_Extensions=Cpmn Cprt Linb + +10100..10101 ; Cpmn Cprt Linb # Po [2] AEGEAN WORD SEPARATOR LINE..AEGEAN WORD SEPARATOR DOT + +# Total code points: 2 + +# ================================================ + +# Script_Extensions=Cprt Lina Linb + +10107..10133 ; Cprt Lina Linb # No [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND + +# Total code points: 45 + +# ================================================ + +# Script_Extensions=Deva Gran Knda + +1CF4 ; Deva Gran Knda # Mn VEDIC TONE CANDRA ABOVE + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Deva Gran Latn + +20F0 ; Deva Gran Latn # Mn COMBINING ASTERISK ABOVE + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Hani Hira Kana + +303C ; Hani Hira Kana # Lo MASU MARK +303D ; Hani Hira Kana # Po PART ALTERNATION MARK + +# Total code points: 2 + +# ================================================ + +# Script_Extensions=Kali Latn Mymr + +A92E ; Kali Latn Mymr # Po KAYAH LI SIGN CWI + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Beng Deva Gran Knda + +1CD0 ; Beng Deva Gran Knda # Mn VEDIC TONE KARSHANA +1CD2 ; Beng Deva Gran Knda # Mn VEDIC TONE PRENKHA + +# Total code points: 2 + +# ================================================ + +# Script_Extensions=Buhd Hano Tagb Tglg + +1735..1736 ; Buhd Hano Tagb Tglg # Po [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION + +# Total code points: 2 + +# ================================================ + +# Script_Extensions=Deva Dogr Kthi Mahj + +0966..096F ; Deva Dogr Kthi Mahj # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE + +# Total code points: 10 + +# ================================================ + +# Script_Extensions=Bopo Hang Hani Hira Kana + +3003 ; Bopo Hang Hani Hira Kana # Po DITTO MARK +3013 ; Bopo Hang Hani Hira Kana # So GETA MARK +301C ; Bopo Hang Hani Hira Kana # Pd WAVE DASH +301D ; Bopo Hang Hani Hira Kana # Ps REVERSED DOUBLE PRIME QUOTATION MARK +301E..301F ; Bopo Hang Hani Hira Kana # Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK +3030 ; Bopo Hang Hani Hira Kana # Pd WAVY DASH +3037 ; Bopo Hang Hani Hira Kana # So IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL +FE45..FE46 ; Bopo Hang Hani Hira Kana # Po [2] SESAME DOT..WHITE SESAME DOT + +# Total code points: 10 + +# ================================================ + +# Script_Extensions=Arab Nkoo Rohg Syrc Thaa Yezi + +060C ; Arab Nkoo Rohg Syrc Thaa Yezi # Po ARABIC COMMA +061B ; Arab Nkoo Rohg Syrc Thaa Yezi # Po ARABIC SEMICOLON + +# Total code points: 2 + +# ================================================ + +# Script_Extensions=Bopo Hang Hani Hira Kana Yiii + +3001..3002 ; Bopo Hang Hani Hira Kana Yiii # Po [2] IDEOGRAPHIC COMMA..IDEOGRAPHIC FULL STOP +3008 ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT ANGLE BRACKET +3009 ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT ANGLE BRACKET +300A ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT DOUBLE ANGLE BRACKET +300B ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT DOUBLE ANGLE BRACKET +300C ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT CORNER BRACKET +300D ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT CORNER BRACKET +300E ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT WHITE CORNER BRACKET +300F ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT WHITE CORNER BRACKET +3010 ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT BLACK LENTICULAR BRACKET +3011 ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT BLACK LENTICULAR BRACKET +3014 ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT TORTOISE SHELL BRACKET +3015 ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT TORTOISE SHELL BRACKET +3016 ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT WHITE LENTICULAR BRACKET +3017 ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT WHITE LENTICULAR BRACKET +3018 ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT WHITE TORTOISE SHELL BRACKET +3019 ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT WHITE TORTOISE SHELL BRACKET +301A ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT WHITE SQUARE BRACKET +301B ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT WHITE SQUARE BRACKET +30FB ; Bopo Hang Hani Hira Kana Yiii # Po KATAKANA MIDDLE DOT +FF61 ; Bopo Hang Hani Hira Kana Yiii # Po HALFWIDTH IDEOGRAPHIC FULL STOP +FF62 ; Bopo Hang Hani Hira Kana Yiii # Ps HALFWIDTH LEFT CORNER BRACKET +FF63 ; Bopo Hang Hani Hira Kana Yiii # Pe HALFWIDTH RIGHT CORNER BRACKET +FF64..FF65 ; Bopo Hang Hani Hira Kana Yiii # Po [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT + +# Total code points: 26 + +# ================================================ + +# Script_Extensions=Deva Knda Mlym Orya Taml Telu + +1CDA ; Deva Knda Mlym Orya Taml Telu # Mn VEDIC TONE DOUBLE SVARITA + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Adlm Arab Nkoo Rohg Syrc Thaa Yezi + +061F ; Adlm Arab Nkoo Rohg Syrc Thaa Yezi # Po ARABIC QUESTION MARK + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Beng Deva Gran Knda Nand Orya Telu Tirh + +1CF2 ; Beng Deva Gran Knda Nand Orya Telu Tirh # Lo VEDIC SIGN ARDHAVISARGA + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Adlm Arab Mand Mani Ougr Phlp Rohg Sogd Syrc + +0640 ; Adlm Arab Mand Mani Ougr Phlp Rohg Sogd Syrc # Lm ARABIC TATWEEL + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh + +A836..A837 ; Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh # So [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK +A838 ; Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh # Sc NORTH INDIC RUPEE MARK +A839 ; Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh # So NORTH INDIC QUANTITY MARK + +# Total code points: 4 + +# ================================================ + +# Script_Extensions=Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Taml Telu Tirh + +0952 ; Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Taml Telu Tirh # Mn DEVANAGARI STRESS SIGN ANUDATTA + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Shrd Taml Telu Tirh + +0951 ; Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Shrd Taml Telu Tirh # Mn DEVANAGARI STRESS SIGN UDATTA + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Modi Nand Sind Takr Tirh + +A833..A835 ; Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Modi Nand Sind Takr Tirh # No [3] NORTH INDIC FRACTION ONE SIXTEENTH..NORTH INDIC FRACTION THREE SIXTEENTHS + +# Total code points: 3 + +# ================================================ + +# Script_Extensions=Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Mlym Modi Nand Sind Takr Tirh + +A830..A832 ; Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Mlym Modi Nand Sind Takr Tirh # No [3] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE QUARTERS + +# Total code points: 3 + +# ================================================ + +# Script_Extensions=Beng Deva Dogr Gong Gonm Gran Gujr Guru Knda Mahj Mlym Nand Orya Sind Sinh Sylo Takr Taml Telu Tirh + +0964 ; Beng Deva Dogr Gong Gonm Gran Gujr Guru Knda Mahj Mlym Nand Orya Sind Sinh Sylo Takr Taml Telu Tirh # Po DEVANAGARI DANDA + +# Total code points: 1 + +# ================================================ + +# Script_Extensions=Beng Deva Dogr Gong Gonm Gran Gujr Guru Knda Limb Mahj Mlym Nand Orya Sind Sinh Sylo Takr Taml Telu Tirh + +0965 ; Beng Deva Dogr Gong Gonm Gran Gujr Guru Knda Limb Mahj Mlym Nand Orya Sind Sinh Sylo Takr Taml Telu Tirh # Po DEVANAGARI DOUBLE DANDA + +# Total code points: 1 + +# EOF diff --git a/admin/unidata/Scripts.txt b/admin/unidata/Scripts.txt new file mode 100644 index 000000000000..2b138bffb883 --- /dev/null +++ b/admin/unidata/Scripts.txt @@ -0,0 +1,3031 @@ +# Scripts-15.0.0.txt +# Date: 2022-04-26, 23:15:02 GMT +# © 2022 Unicode®, Inc. +# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. +# For terms of use, see https://www.unicode.org/terms_of_use.html +# +# Unicode Character Database +# For documentation, see https://www.unicode.org/reports/tr44/ +# For more information, see: +# UAX #24, Unicode Script Property: https://www.unicode.org/reports/tr24/ +# Especially the sections: +# https://www.unicode.org/reports/tr24/#Assignment_Script_Values +# https://www.unicode.org/reports/tr24/#Assignment_ScriptX_Values +# + +# ================================================ + +# Property: Script + +# All code points not explicitly listed for Script +# have the value Unknown (Zzzz). + +# @missing: 0000..10FFFF; Unknown + +# ================================================ + +0000..001F ; Common # Cc [32] <control-0000>..<control-001F> +0020 ; Common # Zs SPACE +0021..0023 ; Common # Po [3] EXCLAMATION MARK..NUMBER SIGN +0024 ; Common # Sc DOLLAR SIGN +0025..0027 ; Common # Po [3] PERCENT SIGN..APOSTROPHE +0028 ; Common # Ps LEFT PARENTHESIS +0029 ; Common # Pe RIGHT PARENTHESIS +002A ; Common # Po ASTERISK +002B ; Common # Sm PLUS SIGN +002C ; Common # Po COMMA +002D ; Common # Pd HYPHEN-MINUS +002E..002F ; Common # Po [2] FULL STOP..SOLIDUS +0030..0039 ; Common # Nd [10] DIGIT ZERO..DIGIT NINE +003A..003B ; Common # Po [2] COLON..SEMICOLON +003C..003E ; Common # Sm [3] LESS-THAN SIGN..GREATER-THAN SIGN +003F..0040 ; Common # Po [2] QUESTION MARK..COMMERCIAL AT +005B ; Common # Ps LEFT SQUARE BRACKET +005C ; Common # Po REVERSE SOLIDUS +005D ; Common # Pe RIGHT SQUARE BRACKET +005E ; Common # Sk CIRCUMFLEX ACCENT +005F ; Common # Pc LOW LINE +0060 ; Common # Sk GRAVE ACCENT +007B ; Common # Ps LEFT CURLY BRACKET +007C ; Common # Sm VERTICAL LINE +007D ; Common # Pe RIGHT CURLY BRACKET +007E ; Common # Sm TILDE +007F..009F ; Common # Cc [33] <control-007F>..<control-009F> +00A0 ; Common # Zs NO-BREAK SPACE +00A1 ; Common # Po INVERTED EXCLAMATION MARK +00A2..00A5 ; Common # Sc [4] CENT SIGN..YEN SIGN +00A6 ; Common # So BROKEN BAR +00A7 ; Common # Po SECTION SIGN +00A8 ; Common # Sk DIAERESIS +00A9 ; Common # So COPYRIGHT SIGN +00AB ; Common # Pi LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +00AC ; Common # Sm NOT SIGN +00AD ; Common # Cf SOFT HYPHEN +00AE ; Common # So REGISTERED SIGN +00AF ; Common # Sk MACRON +00B0 ; Common # So DEGREE SIGN +00B1 ; Common # Sm PLUS-MINUS SIGN +00B2..00B3 ; Common # No [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE +00B4 ; Common # Sk ACUTE ACCENT +00B5 ; Common # L& MICRO SIGN +00B6..00B7 ; Common # Po [2] PILCROW SIGN..MIDDLE DOT +00B8 ; Common # Sk CEDILLA +00B9 ; Common # No SUPERSCRIPT ONE +00BB ; Common # Pf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +00BC..00BE ; Common # No [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS +00BF ; Common # Po INVERTED QUESTION MARK +00D7 ; Common # Sm MULTIPLICATION SIGN +00F7 ; Common # Sm DIVISION SIGN +02B9..02C1 ; Common # Lm [9] MODIFIER LETTER PRIME..MODIFIER LETTER REVERSED GLOTTAL STOP +02C2..02C5 ; Common # Sk [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD +02C6..02D1 ; Common # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON +02D2..02DF ; Common # Sk [14] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER CROSS ACCENT +02E5..02E9 ; Common # Sk [5] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER EXTRA-LOW TONE BAR +02EC ; Common # Lm MODIFIER LETTER VOICING +02ED ; Common # Sk MODIFIER LETTER UNASPIRATED +02EE ; Common # Lm MODIFIER LETTER DOUBLE APOSTROPHE +02EF..02FF ; Common # Sk [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW +0374 ; Common # Lm GREEK NUMERAL SIGN +037E ; Common # Po GREEK QUESTION MARK +0385 ; Common # Sk GREEK DIALYTIKA TONOS +0387 ; Common # Po GREEK ANO TELEIA +0605 ; Common # Cf ARABIC NUMBER MARK ABOVE +060C ; Common # Po ARABIC COMMA +061B ; Common # Po ARABIC SEMICOLON +061F ; Common # Po ARABIC QUESTION MARK +0640 ; Common # Lm ARABIC TATWEEL +06DD ; Common # Cf ARABIC END OF AYAH +08E2 ; Common # Cf ARABIC DISPUTED END OF AYAH +0964..0965 ; Common # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA +0E3F ; Common # Sc THAI CURRENCY SYMBOL BAHT +0FD5..0FD8 ; Common # So [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS +10FB ; Common # Po GEORGIAN PARAGRAPH SEPARATOR +16EB..16ED ; Common # Po [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION +1735..1736 ; Common # Po [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION +1802..1803 ; Common # Po [2] MONGOLIAN COMMA..MONGOLIAN FULL STOP +1805 ; Common # Po MONGOLIAN FOUR DOTS +1CD3 ; Common # Po VEDIC SIGN NIHSHVASA +1CE1 ; Common # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA +1CE9..1CEC ; Common # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL +1CEE..1CF3 ; Common # Lo [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA +1CF5..1CF6 ; Common # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA +1CF7 ; Common # Mc VEDIC SIGN ATIKRAMA +1CFA ; Common # Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA +2000..200A ; Common # Zs [11] EN QUAD..HAIR SPACE +200B ; Common # Cf ZERO WIDTH SPACE +200E..200F ; Common # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK +2010..2015 ; Common # Pd [6] HYPHEN..HORIZONTAL BAR +2016..2017 ; Common # Po [2] DOUBLE VERTICAL LINE..DOUBLE LOW LINE +2018 ; Common # Pi LEFT SINGLE QUOTATION MARK +2019 ; Common # Pf RIGHT SINGLE QUOTATION MARK +201A ; Common # Ps SINGLE LOW-9 QUOTATION MARK +201B..201C ; Common # Pi [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK +201D ; Common # Pf RIGHT DOUBLE QUOTATION MARK +201E ; Common # Ps DOUBLE LOW-9 QUOTATION MARK +201F ; Common # Pi DOUBLE HIGH-REVERSED-9 QUOTATION MARK +2020..2027 ; Common # Po [8] DAGGER..HYPHENATION POINT +2028 ; Common # Zl LINE SEPARATOR +2029 ; Common # Zp PARAGRAPH SEPARATOR +202A..202E ; Common # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE +202F ; Common # Zs NARROW NO-BREAK SPACE +2030..2038 ; Common # Po [9] PER MILLE SIGN..CARET +2039 ; Common # Pi SINGLE LEFT-POINTING ANGLE QUOTATION MARK +203A ; Common # Pf SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +203B..203E ; Common # Po [4] REFERENCE MARK..OVERLINE +203F..2040 ; Common # Pc [2] UNDERTIE..CHARACTER TIE +2041..2043 ; Common # Po [3] CARET INSERTION POINT..HYPHEN BULLET +2044 ; Common # Sm FRACTION SLASH +2045 ; Common # Ps LEFT SQUARE BRACKET WITH QUILL +2046 ; Common # Pe RIGHT SQUARE BRACKET WITH QUILL +2047..2051 ; Common # Po [11] DOUBLE QUESTION MARK..TWO ASTERISKS ALIGNED VERTICALLY +2052 ; Common # Sm COMMERCIAL MINUS SIGN +2053 ; Common # Po SWUNG DASH +2054 ; Common # Pc INVERTED UNDERTIE +2055..205E ; Common # Po [10] FLOWER PUNCTUATION MARK..VERTICAL FOUR DOTS +205F ; Common # Zs MEDIUM MATHEMATICAL SPACE +2060..2064 ; Common # Cf [5] WORD JOINER..INVISIBLE PLUS +2066..206F ; Common # Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES +2070 ; Common # No SUPERSCRIPT ZERO +2074..2079 ; Common # No [6] SUPERSCRIPT FOUR..SUPERSCRIPT NINE +207A..207C ; Common # Sm [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN +207D ; Common # Ps SUPERSCRIPT LEFT PARENTHESIS +207E ; Common # Pe SUPERSCRIPT RIGHT PARENTHESIS +2080..2089 ; Common # No [10] SUBSCRIPT ZERO..SUBSCRIPT NINE +208A..208C ; Common # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN +208D ; Common # Ps SUBSCRIPT LEFT PARENTHESIS +208E ; Common # Pe SUBSCRIPT RIGHT PARENTHESIS +20A0..20C0 ; Common # Sc [33] EURO-CURRENCY SIGN..SOM SIGN +2100..2101 ; Common # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT +2102 ; Common # L& DOUBLE-STRUCK CAPITAL C +2103..2106 ; Common # So [4] DEGREE CELSIUS..CADA UNA +2107 ; Common # L& EULER CONSTANT +2108..2109 ; Common # So [2] SCRUPLE..DEGREE FAHRENHEIT +210A..2113 ; Common # L& [10] SCRIPT SMALL G..SCRIPT SMALL L +2114 ; Common # So L B BAR SYMBOL +2115 ; Common # L& DOUBLE-STRUCK CAPITAL N +2116..2117 ; Common # So [2] NUMERO SIGN..SOUND RECORDING COPYRIGHT +2118 ; Common # Sm SCRIPT CAPITAL P +2119..211D ; Common # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R +211E..2123 ; Common # So [6] PRESCRIPTION TAKE..VERSICLE +2124 ; Common # L& DOUBLE-STRUCK CAPITAL Z +2125 ; Common # So OUNCE SIGN +2127 ; Common # So INVERTED OHM SIGN +2128 ; Common # L& BLACK-LETTER CAPITAL Z +2129 ; Common # So TURNED GREEK SMALL LETTER IOTA +212C..212D ; Common # L& [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C +212E ; Common # So ESTIMATED SYMBOL +212F..2131 ; Common # L& [3] SCRIPT SMALL E..SCRIPT CAPITAL F +2133..2134 ; Common # L& [2] SCRIPT CAPITAL M..SCRIPT SMALL O +2135..2138 ; Common # Lo [4] ALEF SYMBOL..DALET SYMBOL +2139 ; Common # L& INFORMATION SOURCE +213A..213B ; Common # So [2] ROTATED CAPITAL Q..FACSIMILE SIGN +213C..213F ; Common # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI +2140..2144 ; Common # Sm [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y +2145..2149 ; Common # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J +214A ; Common # So PROPERTY LINE +214B ; Common # Sm TURNED AMPERSAND +214C..214D ; Common # So [2] PER SIGN..AKTIESELSKAB +214F ; Common # So SYMBOL FOR SAMARITAN SOURCE +2150..215F ; Common # No [16] VULGAR FRACTION ONE SEVENTH..FRACTION NUMERATOR ONE +2189 ; Common # No VULGAR FRACTION ZERO THIRDS +218A..218B ; Common # So [2] TURNED DIGIT TWO..TURNED DIGIT THREE +2190..2194 ; Common # Sm [5] LEFTWARDS ARROW..LEFT RIGHT ARROW +2195..2199 ; Common # So [5] UP DOWN ARROW..SOUTH WEST ARROW +219A..219B ; Common # Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE +219C..219F ; Common # So [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW +21A0 ; Common # Sm RIGHTWARDS TWO HEADED ARROW +21A1..21A2 ; Common # So [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL +21A3 ; Common # Sm RIGHTWARDS ARROW WITH TAIL +21A4..21A5 ; Common # So [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR +21A6 ; Common # Sm RIGHTWARDS ARROW FROM BAR +21A7..21AD ; Common # So [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW +21AE ; Common # Sm LEFT RIGHT ARROW WITH STROKE +21AF..21CD ; Common # So [31] DOWNWARDS ZIGZAG ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE +21CE..21CF ; Common # Sm [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE +21D0..21D1 ; Common # So [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW +21D2 ; Common # Sm RIGHTWARDS DOUBLE ARROW +21D3 ; Common # So DOWNWARDS DOUBLE ARROW +21D4 ; Common # Sm LEFT RIGHT DOUBLE ARROW +21D5..21F3 ; Common # So [31] UP DOWN DOUBLE ARROW..UP DOWN WHITE ARROW +21F4..22FF ; Common # Sm [268] RIGHT ARROW WITH SMALL CIRCLE..Z NOTATION BAG MEMBERSHIP +2300..2307 ; Common # So [8] DIAMETER SIGN..WAVY LINE +2308 ; Common # Ps LEFT CEILING +2309 ; Common # Pe RIGHT CEILING +230A ; Common # Ps LEFT FLOOR +230B ; Common # Pe RIGHT FLOOR +230C..231F ; Common # So [20] BOTTOM RIGHT CROP..BOTTOM RIGHT CORNER +2320..2321 ; Common # Sm [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL +2322..2328 ; Common # So [7] FROWN..KEYBOARD +2329 ; Common # Ps LEFT-POINTING ANGLE BRACKET +232A ; Common # Pe RIGHT-POINTING ANGLE BRACKET +232B..237B ; Common # So [81] ERASE TO THE LEFT..NOT CHECK MARK +237C ; Common # Sm RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW +237D..239A ; Common # So [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL +239B..23B3 ; Common # Sm [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM +23B4..23DB ; Common # So [40] TOP SQUARE BRACKET..FUSE +23DC..23E1 ; Common # Sm [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET +23E2..2426 ; Common # So [69] WHITE TRAPEZIUM..SYMBOL FOR SUBSTITUTE FORM TWO +2440..244A ; Common # So [11] OCR HOOK..OCR DOUBLE BACKSLASH +2460..249B ; Common # No [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP +249C..24E9 ; Common # So [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z +24EA..24FF ; Common # No [22] CIRCLED DIGIT ZERO..NEGATIVE CIRCLED DIGIT ZERO +2500..25B6 ; Common # So [183] BOX DRAWINGS LIGHT HORIZONTAL..BLACK RIGHT-POINTING TRIANGLE +25B7 ; Common # Sm WHITE RIGHT-POINTING TRIANGLE +25B8..25C0 ; Common # So [9] BLACK RIGHT-POINTING SMALL TRIANGLE..BLACK LEFT-POINTING TRIANGLE +25C1 ; Common # Sm WHITE LEFT-POINTING TRIANGLE +25C2..25F7 ; Common # So [54] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE CIRCLE WITH UPPER RIGHT QUADRANT +25F8..25FF ; Common # Sm [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE +2600..266E ; Common # So [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN +266F ; Common # Sm MUSIC SHARP SIGN +2670..2767 ; Common # So [248] WEST SYRIAC CROSS..ROTATED FLORAL HEART BULLET +2768 ; Common # Ps MEDIUM LEFT PARENTHESIS ORNAMENT +2769 ; Common # Pe MEDIUM RIGHT PARENTHESIS ORNAMENT +276A ; Common # Ps MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT +276B ; Common # Pe MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT +276C ; Common # Ps MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT +276D ; Common # Pe MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT +276E ; Common # Ps HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT +276F ; Common # Pe HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT +2770 ; Common # Ps HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT +2771 ; Common # Pe HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT +2772 ; Common # Ps LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT +2773 ; Common # Pe LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT +2774 ; Common # Ps MEDIUM LEFT CURLY BRACKET ORNAMENT +2775 ; Common # Pe MEDIUM RIGHT CURLY BRACKET ORNAMENT +2776..2793 ; Common # No [30] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN +2794..27BF ; Common # So [44] HEAVY WIDE-HEADED RIGHTWARDS ARROW..DOUBLE CURLY LOOP +27C0..27C4 ; Common # Sm [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET +27C5 ; Common # Ps LEFT S-SHAPED BAG DELIMITER +27C6 ; Common # Pe RIGHT S-SHAPED BAG DELIMITER +27C7..27E5 ; Common # Sm [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK +27E6 ; Common # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET +27E7 ; Common # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET +27E8 ; Common # Ps MATHEMATICAL LEFT ANGLE BRACKET +27E9 ; Common # Pe MATHEMATICAL RIGHT ANGLE BRACKET +27EA ; Common # Ps MATHEMATICAL LEFT DOUBLE ANGLE BRACKET +27EB ; Common # Pe MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET +27EC ; Common # Ps MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET +27ED ; Common # Pe MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET +27EE ; Common # Ps MATHEMATICAL LEFT FLATTENED PARENTHESIS +27EF ; Common # Pe MATHEMATICAL RIGHT FLATTENED PARENTHESIS +27F0..27FF ; Common # Sm [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW +2900..2982 ; Common # Sm [131] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..Z NOTATION TYPE COLON +2983 ; Common # Ps LEFT WHITE CURLY BRACKET +2984 ; Common # Pe RIGHT WHITE CURLY BRACKET +2985 ; Common # Ps LEFT WHITE PARENTHESIS +2986 ; Common # Pe RIGHT WHITE PARENTHESIS +2987 ; Common # Ps Z NOTATION LEFT IMAGE BRACKET +2988 ; Common # Pe Z NOTATION RIGHT IMAGE BRACKET +2989 ; Common # Ps Z NOTATION LEFT BINDING BRACKET +298A ; Common # Pe Z NOTATION RIGHT BINDING BRACKET +298B ; Common # Ps LEFT SQUARE BRACKET WITH UNDERBAR +298C ; Common # Pe RIGHT SQUARE BRACKET WITH UNDERBAR +298D ; Common # Ps LEFT SQUARE BRACKET WITH TICK IN TOP CORNER +298E ; Common # Pe RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER +298F ; Common # Ps LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER +2990 ; Common # Pe RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER +2991 ; Common # Ps LEFT ANGLE BRACKET WITH DOT +2992 ; Common # Pe RIGHT ANGLE BRACKET WITH DOT +2993 ; Common # Ps LEFT ARC LESS-THAN BRACKET +2994 ; Common # Pe RIGHT ARC GREATER-THAN BRACKET +2995 ; Common # Ps DOUBLE LEFT ARC GREATER-THAN BRACKET +2996 ; Common # Pe DOUBLE RIGHT ARC LESS-THAN BRACKET +2997 ; Common # Ps LEFT BLACK TORTOISE SHELL BRACKET +2998 ; Common # Pe RIGHT BLACK TORTOISE SHELL BRACKET +2999..29D7 ; Common # Sm [63] DOTTED FENCE..BLACK HOURGLASS +29D8 ; Common # Ps LEFT WIGGLY FENCE +29D9 ; Common # Pe RIGHT WIGGLY FENCE +29DA ; Common # Ps LEFT DOUBLE WIGGLY FENCE +29DB ; Common # Pe RIGHT DOUBLE WIGGLY FENCE +29DC..29FB ; Common # Sm [32] INCOMPLETE INFINITY..TRIPLE PLUS +29FC ; Common # Ps LEFT-POINTING CURVED ANGLE BRACKET +29FD ; Common # Pe RIGHT-POINTING CURVED ANGLE BRACKET +29FE..2AFF ; Common # Sm [258] TINY..N-ARY WHITE VERTICAL BAR +2B00..2B2F ; Common # So [48] NORTH EAST WHITE ARROW..WHITE VERTICAL ELLIPSE +2B30..2B44 ; Common # Sm [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET +2B45..2B46 ; Common # So [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW +2B47..2B4C ; Common # Sm [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR +2B4D..2B73 ; Common # So [39] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR +2B76..2B95 ; Common # So [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW +2B97..2BFF ; Common # So [105] SYMBOL FOR TYPE A ELECTRONICS..HELLSCHREIBER PAUSE SYMBOL +2E00..2E01 ; Common # Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER +2E02 ; Common # Pi LEFT SUBSTITUTION BRACKET +2E03 ; Common # Pf RIGHT SUBSTITUTION BRACKET +2E04 ; Common # Pi LEFT DOTTED SUBSTITUTION BRACKET +2E05 ; Common # Pf RIGHT DOTTED SUBSTITUTION BRACKET +2E06..2E08 ; Common # Po [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER +2E09 ; Common # Pi LEFT TRANSPOSITION BRACKET +2E0A ; Common # Pf RIGHT TRANSPOSITION BRACKET +2E0B ; Common # Po RAISED SQUARE +2E0C ; Common # Pi LEFT RAISED OMISSION BRACKET +2E0D ; Common # Pf RIGHT RAISED OMISSION BRACKET +2E0E..2E16 ; Common # Po [9] EDITORIAL CORONIS..DOTTED RIGHT-POINTING ANGLE +2E17 ; Common # Pd DOUBLE OBLIQUE HYPHEN +2E18..2E19 ; Common # Po [2] INVERTED INTERROBANG..PALM BRANCH +2E1A ; Common # Pd HYPHEN WITH DIAERESIS +2E1B ; Common # Po TILDE WITH RING ABOVE +2E1C ; Common # Pi LEFT LOW PARAPHRASE BRACKET +2E1D ; Common # Pf RIGHT LOW PARAPHRASE BRACKET +2E1E..2E1F ; Common # Po [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW +2E20 ; Common # Pi LEFT VERTICAL BAR WITH QUILL +2E21 ; Common # Pf RIGHT VERTICAL BAR WITH QUILL +2E22 ; Common # Ps TOP LEFT HALF BRACKET +2E23 ; Common # Pe TOP RIGHT HALF BRACKET +2E24 ; Common # Ps BOTTOM LEFT HALF BRACKET +2E25 ; Common # Pe BOTTOM RIGHT HALF BRACKET +2E26 ; Common # Ps LEFT SIDEWAYS U BRACKET +2E27 ; Common # Pe RIGHT SIDEWAYS U BRACKET +2E28 ; Common # Ps LEFT DOUBLE PARENTHESIS +2E29 ; Common # Pe RIGHT DOUBLE PARENTHESIS +2E2A..2E2E ; Common # Po [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK +2E2F ; Common # Lm VERTICAL TILDE +2E30..2E39 ; Common # Po [10] RING POINT..TOP HALF SECTION SIGN +2E3A..2E3B ; Common # Pd [2] TWO-EM DASH..THREE-EM DASH +2E3C..2E3F ; Common # Po [4] STENOGRAPHIC FULL STOP..CAPITULUM +2E40 ; Common # Pd DOUBLE HYPHEN +2E41 ; Common # Po REVERSED COMMA +2E42 ; Common # Ps DOUBLE LOW-REVERSED-9 QUOTATION MARK +2E43..2E4F ; Common # Po [13] DASH WITH LEFT UPTURN..CORNISH VERSE DIVIDER +2E50..2E51 ; Common # So [2] CROSS PATTY WITH RIGHT CROSSBAR..CROSS PATTY WITH LEFT CROSSBAR +2E52..2E54 ; Common # Po [3] TIRONIAN SIGN CAPITAL ET..MEDIEVAL QUESTION MARK +2E55 ; Common # Ps LEFT SQUARE BRACKET WITH STROKE +2E56 ; Common # Pe RIGHT SQUARE BRACKET WITH STROKE +2E57 ; Common # Ps LEFT SQUARE BRACKET WITH DOUBLE STROKE +2E58 ; Common # Pe RIGHT SQUARE BRACKET WITH DOUBLE STROKE +2E59 ; Common # Ps TOP HALF LEFT PARENTHESIS +2E5A ; Common # Pe TOP HALF RIGHT PARENTHESIS +2E5B ; Common # Ps BOTTOM HALF LEFT PARENTHESIS +2E5C ; Common # Pe BOTTOM HALF RIGHT PARENTHESIS +2E5D ; Common # Pd OBLIQUE HYPHEN +2FF0..2FFB ; Common # So [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID +3000 ; Common # Zs IDEOGRAPHIC SPACE +3001..3003 ; Common # Po [3] IDEOGRAPHIC COMMA..DITTO MARK +3004 ; Common # So JAPANESE INDUSTRIAL STANDARD SYMBOL +3006 ; Common # Lo IDEOGRAPHIC CLOSING MARK +3008 ; Common # Ps LEFT ANGLE BRACKET +3009 ; Common # Pe RIGHT ANGLE BRACKET +300A ; Common # Ps LEFT DOUBLE ANGLE BRACKET +300B ; Common # Pe RIGHT DOUBLE ANGLE BRACKET +300C ; Common # Ps LEFT CORNER BRACKET +300D ; Common # Pe RIGHT CORNER BRACKET +300E ; Common # Ps LEFT WHITE CORNER BRACKET +300F ; Common # Pe RIGHT WHITE CORNER BRACKET +3010 ; Common # Ps LEFT BLACK LENTICULAR BRACKET +3011 ; Common # Pe RIGHT BLACK LENTICULAR BRACKET +3012..3013 ; Common # So [2] POSTAL MARK..GETA MARK +3014 ; Common # Ps LEFT TORTOISE SHELL BRACKET +3015 ; Common # Pe RIGHT TORTOISE SHELL BRACKET +3016 ; Common # Ps LEFT WHITE LENTICULAR BRACKET +3017 ; Common # Pe RIGHT WHITE LENTICULAR BRACKET +3018 ; Common # Ps LEFT WHITE TORTOISE SHELL BRACKET +3019 ; Common # Pe RIGHT WHITE TORTOISE SHELL BRACKET +301A ; Common # Ps LEFT WHITE SQUARE BRACKET +301B ; Common # Pe RIGHT WHITE SQUARE BRACKET +301C ; Common # Pd WAVE DASH +301D ; Common # Ps REVERSED DOUBLE PRIME QUOTATION MARK +301E..301F ; Common # Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK +3020 ; Common # So POSTAL MARK FACE +3030 ; Common # Pd WAVY DASH +3031..3035 ; Common # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF +3036..3037 ; Common # So [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL +303C ; Common # Lo MASU MARK +303D ; Common # Po PART ALTERNATION MARK +303E..303F ; Common # So [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC HALF FILL SPACE +309B..309C ; Common # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +30A0 ; Common # Pd KATAKANA-HIRAGANA DOUBLE HYPHEN +30FB ; Common # Po KATAKANA MIDDLE DOT +30FC ; Common # Lm KATAKANA-HIRAGANA PROLONGED SOUND MARK +3190..3191 ; Common # So [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK +3192..3195 ; Common # No [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK +3196..319F ; Common # So [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK +31C0..31E3 ; Common # So [36] CJK STROKE T..CJK STROKE Q +3220..3229 ; Common # No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN +322A..3247 ; Common # So [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO +3248..324F ; Common # No [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE +3250 ; Common # So PARTNERSHIP SIGN +3251..325F ; Common # No [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE +327F ; Common # So KOREAN STANDARD SYMBOL +3280..3289 ; Common # No [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN +328A..32B0 ; Common # So [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT +32B1..32BF ; Common # No [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY +32C0..32CF ; Common # So [16] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..LIMITED LIABILITY SIGN +32FF ; Common # So SQUARE ERA NAME REIWA +3358..33FF ; Common # So [168] IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO..SQUARE GAL +4DC0..4DFF ; Common # So [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION +A700..A716 ; Common # Sk [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR +A717..A71F ; Common # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK +A720..A721 ; Common # Sk [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE +A788 ; Common # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT +A789..A78A ; Common # Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN +A830..A835 ; Common # No [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS +A836..A837 ; Common # So [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK +A838 ; Common # Sc NORTH INDIC RUPEE MARK +A839 ; Common # So NORTH INDIC QUANTITY MARK +A92E ; Common # Po KAYAH LI SIGN CWI +A9CF ; Common # Lm JAVANESE PANGRANGKEP +AB5B ; Common # Sk MODIFIER BREVE WITH INVERTED BREVE +AB6A..AB6B ; Common # Sk [2] MODIFIER LETTER LEFT TACK..MODIFIER LETTER RIGHT TACK +FD3E ; Common # Pe ORNATE LEFT PARENTHESIS +FD3F ; Common # Ps ORNATE RIGHT PARENTHESIS +FE10..FE16 ; Common # Po [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK +FE17 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET +FE18 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET +FE19 ; Common # Po PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS +FE30 ; Common # Po PRESENTATION FORM FOR VERTICAL TWO DOT LEADER +FE31..FE32 ; Common # Pd [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH +FE33..FE34 ; Common # Pc [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE +FE35 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS +FE36 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS +FE37 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET +FE38 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET +FE39 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET +FE3A ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET +FE3B ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET +FE3C ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET +FE3D ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET +FE3E ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET +FE3F ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET +FE40 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET +FE41 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET +FE42 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET +FE43 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET +FE44 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET +FE45..FE46 ; Common # Po [2] SESAME DOT..WHITE SESAME DOT +FE47 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET +FE48 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET +FE49..FE4C ; Common # Po [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE +FE4D..FE4F ; Common # Pc [3] DASHED LOW LINE..WAVY LOW LINE +FE50..FE52 ; Common # Po [3] SMALL COMMA..SMALL FULL STOP +FE54..FE57 ; Common # Po [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK +FE58 ; Common # Pd SMALL EM DASH +FE59 ; Common # Ps SMALL LEFT PARENTHESIS +FE5A ; Common # Pe SMALL RIGHT PARENTHESIS +FE5B ; Common # Ps SMALL LEFT CURLY BRACKET +FE5C ; Common # Pe SMALL RIGHT CURLY BRACKET +FE5D ; Common # Ps SMALL LEFT TORTOISE SHELL BRACKET +FE5E ; Common # Pe SMALL RIGHT TORTOISE SHELL BRACKET +FE5F..FE61 ; Common # Po [3] SMALL NUMBER SIGN..SMALL ASTERISK +FE62 ; Common # Sm SMALL PLUS SIGN +FE63 ; Common # Pd SMALL HYPHEN-MINUS +FE64..FE66 ; Common # Sm [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN +FE68 ; Common # Po SMALL REVERSE SOLIDUS +FE69 ; Common # Sc SMALL DOLLAR SIGN +FE6A..FE6B ; Common # Po [2] SMALL PERCENT SIGN..SMALL COMMERCIAL AT +FEFF ; Common # Cf ZERO WIDTH NO-BREAK SPACE +FF01..FF03 ; Common # Po [3] FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER SIGN +FF04 ; Common # Sc FULLWIDTH DOLLAR SIGN +FF05..FF07 ; Common # Po [3] FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE +FF08 ; Common # Ps FULLWIDTH LEFT PARENTHESIS +FF09 ; Common # Pe FULLWIDTH RIGHT PARENTHESIS +FF0A ; Common # Po FULLWIDTH ASTERISK +FF0B ; Common # Sm FULLWIDTH PLUS SIGN +FF0C ; Common # Po FULLWIDTH COMMA +FF0D ; Common # Pd FULLWIDTH HYPHEN-MINUS +FF0E..FF0F ; Common # Po [2] FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS +FF10..FF19 ; Common # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE +FF1A..FF1B ; Common # Po [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON +FF1C..FF1E ; Common # Sm [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN +FF1F..FF20 ; Common # Po [2] FULLWIDTH QUESTION MARK..FULLWIDTH COMMERCIAL AT +FF3B ; Common # Ps FULLWIDTH LEFT SQUARE BRACKET +FF3C ; Common # Po FULLWIDTH REVERSE SOLIDUS +FF3D ; Common # Pe FULLWIDTH RIGHT SQUARE BRACKET +FF3E ; Common # Sk FULLWIDTH CIRCUMFLEX ACCENT +FF3F ; Common # Pc FULLWIDTH LOW LINE +FF40 ; Common # Sk FULLWIDTH GRAVE ACCENT +FF5B ; Common # Ps FULLWIDTH LEFT CURLY BRACKET +FF5C ; Common # Sm FULLWIDTH VERTICAL LINE +FF5D ; Common # Pe FULLWIDTH RIGHT CURLY BRACKET +FF5E ; Common # Sm FULLWIDTH TILDE +FF5F ; Common # Ps FULLWIDTH LEFT WHITE PARENTHESIS +FF60 ; Common # Pe FULLWIDTH RIGHT WHITE PARENTHESIS +FF61 ; Common # Po HALFWIDTH IDEOGRAPHIC FULL STOP +FF62 ; Common # Ps HALFWIDTH LEFT CORNER BRACKET +FF63 ; Common # Pe HALFWIDTH RIGHT CORNER BRACKET +FF64..FF65 ; Common # Po [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT +FF70 ; Common # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK +FF9E..FF9F ; Common # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK +FFE0..FFE1 ; Common # Sc [2] FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN +FFE2 ; Common # Sm FULLWIDTH NOT SIGN +FFE3 ; Common # Sk FULLWIDTH MACRON +FFE4 ; Common # So FULLWIDTH BROKEN BAR +FFE5..FFE6 ; Common # Sc [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN +FFE8 ; Common # So HALFWIDTH FORMS LIGHT VERTICAL +FFE9..FFEC ; Common # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW +FFED..FFEE ; Common # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE +FFF9..FFFB ; Common # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR +FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER +10100..10102 ; Common # Po [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK +10107..10133 ; Common # No [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND +10137..1013F ; Common # So [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT +10190..1019C ; Common # So [13] ROMAN SEXTANS SIGN..ASCIA SYMBOL +101D0..101FC ; Common # So [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND +102E1..102FB ; Common # No [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED +1BCA0..1BCA3 ; Common # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP +1CF50..1CFC3 ; Common # So [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK +1D000..1D0F5 ; Common # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO +1D100..1D126 ; Common # So [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2 +1D129..1D164 ; Common # So [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE +1D165..1D166 ; Common # Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM +1D16A..1D16C ; Common # So [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3 +1D16D..1D172 ; Common # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5 +1D173..1D17A ; Common # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE +1D183..1D184 ; Common # So [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN +1D18C..1D1A9 ; Common # So [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH +1D1AE..1D1EA ; Common # So [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON +1D2C0..1D2D3 ; Common # No [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN +1D2E0..1D2F3 ; Common # No [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN +1D300..1D356 ; Common # So [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING +1D360..1D378 ; Common # No [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE +1D400..1D454 ; Common # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G +1D456..1D49C ; Common # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A +1D49E..1D49F ; Common # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D +1D4A2 ; Common # L& MATHEMATICAL SCRIPT CAPITAL G +1D4A5..1D4A6 ; Common # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K +1D4A9..1D4AC ; Common # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q +1D4AE..1D4B9 ; Common # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D +1D4BB ; Common # L& MATHEMATICAL SCRIPT SMALL F +1D4BD..1D4C3 ; Common # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N +1D4C5..1D505 ; Common # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B +1D507..1D50A ; Common # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G +1D50D..1D514 ; Common # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q +1D516..1D51C ; Common # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y +1D51E..1D539 ; Common # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B +1D53B..1D53E ; Common # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G +1D540..1D544 ; Common # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M +1D546 ; Common # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O +1D54A..1D550 ; Common # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y +1D552..1D6A5 ; Common # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J +1D6A8..1D6C0 ; Common # L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA +1D6C1 ; Common # Sm MATHEMATICAL BOLD NABLA +1D6C2..1D6DA ; Common # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA +1D6DB ; Common # Sm MATHEMATICAL BOLD PARTIAL DIFFERENTIAL +1D6DC..1D6FA ; Common # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA +1D6FB ; Common # Sm MATHEMATICAL ITALIC NABLA +1D6FC..1D714 ; Common # L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA +1D715 ; Common # Sm MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL +1D716..1D734 ; Common # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA +1D735 ; Common # Sm MATHEMATICAL BOLD ITALIC NABLA +1D736..1D74E ; Common # L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA +1D74F ; Common # Sm MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL +1D750..1D76E ; Common # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA +1D76F ; Common # Sm MATHEMATICAL SANS-SERIF BOLD NABLA +1D770..1D788 ; Common # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA +1D789 ; Common # Sm MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL +1D78A..1D7A8 ; Common # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA +1D7A9 ; Common # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA +1D7AA..1D7C2 ; Common # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA +1D7C3 ; Common # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL +1D7C4..1D7CB ; Common # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA +1D7CE..1D7FF ; Common # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE +1EC71..1ECAB ; Common # No [59] INDIC SIYAQ NUMBER ONE..INDIC SIYAQ NUMBER PREFIXED NINE +1ECAC ; Common # So INDIC SIYAQ PLACEHOLDER +1ECAD..1ECAF ; Common # No [3] INDIC SIYAQ FRACTION ONE QUARTER..INDIC SIYAQ FRACTION THREE QUARTERS +1ECB0 ; Common # Sc INDIC SIYAQ RUPEE MARK +1ECB1..1ECB4 ; Common # No [4] INDIC SIYAQ NUMBER ALTERNATE ONE..INDIC SIYAQ ALTERNATE LAKH MARK +1ED01..1ED2D ; Common # No [45] OTTOMAN SIYAQ NUMBER ONE..OTTOMAN SIYAQ NUMBER NINETY THOUSAND +1ED2E ; Common # So OTTOMAN SIYAQ MARRATAN +1ED2F..1ED3D ; Common # No [15] OTTOMAN SIYAQ ALTERNATE NUMBER TWO..OTTOMAN SIYAQ FRACTION ONE SIXTH +1F000..1F02B ; Common # So [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK +1F030..1F093 ; Common # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06 +1F0A0..1F0AE ; Common # So [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES +1F0B1..1F0BF ; Common # So [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER +1F0C1..1F0CF ; Common # So [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER +1F0D1..1F0F5 ; Common # So [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21 +1F100..1F10C ; Common # No [13] DIGIT ZERO FULL STOP..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO +1F10D..1F1AD ; Common # So [161] CIRCLED ZERO WITH SLASH..MASK WORK SYMBOL +1F1E6..1F1FF ; Common # So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z +1F201..1F202 ; Common # So [2] SQUARED KATAKANA KOKO..SQUARED KATAKANA SA +1F210..1F23B ; Common # So [44] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-914D +1F240..1F248 ; Common # So [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557 +1F250..1F251 ; Common # So [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT +1F260..1F265 ; Common # So [6] ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI +1F300..1F3FA ; Common # So [251] CYCLONE..AMPHORA +1F3FB..1F3FF ; Common # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6 +1F400..1F6D7 ; Common # So [728] RAT..ELEVATOR +1F6DC..1F6EC ; Common # So [17] WIRELESS..AIRPLANE ARRIVING +1F6F0..1F6FC ; Common # So [13] SATELLITE..ROLLER SKATE +1F700..1F776 ; Common # So [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE +1F77B..1F7D9 ; Common # So [95] HAUMEA..NINE POINTED WHITE STAR +1F7E0..1F7EB ; Common # So [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE +1F7F0 ; Common # So HEAVY EQUALS SIGN +1F800..1F80B ; Common # So [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD +1F810..1F847 ; Common # So [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW +1F850..1F859 ; Common # So [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW +1F860..1F887 ; Common # So [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW +1F890..1F8AD ; Common # So [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS +1F8B0..1F8B1 ; Common # So [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST +1F900..1FA53 ; Common # So [340] CIRCLED CROSS FORMEE WITH FOUR DOTS..BLACK CHESS KNIGHT-BISHOP +1FA60..1FA6D ; Common # So [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER +1FA70..1FA7C ; Common # So [13] BALLET SHOES..CRUTCH +1FA80..1FA88 ; Common # So [9] YO-YO..FLUTE +1FA90..1FABD ; Common # So [46] RINGED PLANET..WING +1FABF..1FAC5 ; Common # So [7] GOOSE..PERSON WITH CROWN +1FACE..1FADB ; Common # So [14] MOOSE..PEA POD +1FAE0..1FAE8 ; Common # So [9] MELTING FACE..SHAKING FACE +1FAF0..1FAF8 ; Common # So [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND +1FB00..1FB92 ; Common # So [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK +1FB94..1FBCA ; Common # So [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON +1FBF0..1FBF9 ; Common # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE +E0001 ; Common # Cf LANGUAGE TAG +E0020..E007F ; Common # Cf [96] TAG SPACE..CANCEL TAG + +# Total code points: 8301 + +# ================================================ + +0041..005A ; Latin # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z +0061..007A ; Latin # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z +00AA ; Latin # Lo FEMININE ORDINAL INDICATOR +00BA ; Latin # Lo MASCULINE ORDINAL INDICATOR +00C0..00D6 ; Latin # L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS +00D8..00F6 ; Latin # L& [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS +00F8..01BA ; Latin # L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL +01BB ; Latin # Lo LATIN LETTER TWO WITH STROKE +01BC..01BF ; Latin # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN +01C0..01C3 ; Latin # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK +01C4..0293 ; Latin # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL +0294 ; Latin # Lo LATIN LETTER GLOTTAL STOP +0295..02AF ; Latin # L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL +02B0..02B8 ; Latin # Lm [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y +02E0..02E4 ; Latin # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP +1D00..1D25 ; Latin # L& [38] LATIN LETTER SMALL CAPITAL A..LATIN LETTER AIN +1D2C..1D5C ; Latin # Lm [49] MODIFIER LETTER CAPITAL A..MODIFIER LETTER SMALL AIN +1D62..1D65 ; Latin # Lm [4] LATIN SUBSCRIPT SMALL LETTER I..LATIN SUBSCRIPT SMALL LETTER V +1D6B..1D77 ; Latin # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G +1D79..1D9A ; Latin # L& [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK +1D9B..1DBE ; Latin # Lm [36] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL EZH +1E00..1EFF ; Latin # L& [256] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER Y WITH LOOP +2071 ; Latin # Lm SUPERSCRIPT LATIN SMALL LETTER I +207F ; Latin # Lm SUPERSCRIPT LATIN SMALL LETTER N +2090..209C ; Latin # Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T +212A..212B ; Latin # L& [2] KELVIN SIGN..ANGSTROM SIGN +2132 ; Latin # L& TURNED CAPITAL F +214E ; Latin # L& TURNED SMALL F +2160..2182 ; Latin # Nl [35] ROMAN NUMERAL ONE..ROMAN NUMERAL TEN THOUSAND +2183..2184 ; Latin # L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C +2185..2188 ; Latin # Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND +2C60..2C7B ; Latin # L& [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E +2C7C..2C7D ; Latin # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V +2C7E..2C7F ; Latin # L& [2] LATIN CAPITAL LETTER S WITH SWASH TAIL..LATIN CAPITAL LETTER Z WITH SWASH TAIL +A722..A76F ; Latin # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON +A770 ; Latin # Lm MODIFIER LETTER US +A771..A787 ; Latin # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T +A78B..A78E ; Latin # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT +A78F ; Latin # Lo LATIN LETTER SINOLOGICAL DOT +A790..A7CA ; Latin # L& [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY +A7D0..A7D1 ; Latin # L& [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G +A7D3 ; Latin # L& LATIN SMALL LETTER DOUBLE THORN +A7D5..A7D9 ; Latin # L& [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S +A7F2..A7F4 ; Latin # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q +A7F5..A7F6 ; Latin # L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H +A7F7 ; Latin # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I +A7F8..A7F9 ; Latin # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE +A7FA ; Latin # L& LATIN LETTER SMALL CAPITAL TURNED M +A7FB..A7FF ; Latin # Lo [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M +AB30..AB5A ; Latin # L& [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG +AB5C..AB5F ; Latin # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK +AB60..AB64 ; Latin # L& [5] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER INVERTED ALPHA +AB66..AB68 ; Latin # L& [3] LATIN SMALL LETTER DZ DIGRAPH WITH RETROFLEX HOOK..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE +AB69 ; Latin # Lm MODIFIER LETTER SMALL TURNED W +FB00..FB06 ; Latin # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST +FF21..FF3A ; Latin # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z +FF41..FF5A ; Latin # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z +10780..10785 ; Latin # Lm [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER LETTER SMALL B WITH HOOK +10787..107B0 ; Latin # Lm [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK +107B2..107BA ; Latin # Lm [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL +1DF00..1DF09 ; Latin # L& [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK +1DF0A ; Latin # Lo LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK +1DF0B..1DF1E ; Latin # L& [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL +1DF25..1DF2A ; Latin # L& [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK + +# Total code points: 1481 + +# ================================================ + +0370..0373 ; Greek # L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI +0375 ; Greek # Sk GREEK LOWER NUMERAL SIGN +0376..0377 ; Greek # L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA +037A ; Greek # Lm GREEK YPOGEGRAMMENI +037B..037D ; Greek # L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL +037F ; Greek # L& GREEK CAPITAL LETTER YOT +0384 ; Greek # Sk GREEK TONOS +0386 ; Greek # L& GREEK CAPITAL LETTER ALPHA WITH TONOS +0388..038A ; Greek # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS +038C ; Greek # L& GREEK CAPITAL LETTER OMICRON WITH TONOS +038E..03A1 ; Greek # L& [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO +03A3..03E1 ; Greek # L& [63] GREEK CAPITAL LETTER SIGMA..GREEK SMALL LETTER SAMPI +03F0..03F5 ; Greek # L& [6] GREEK KAPPA SYMBOL..GREEK LUNATE EPSILON SYMBOL +03F6 ; Greek # Sm GREEK REVERSED LUNATE EPSILON SYMBOL +03F7..03FF ; Greek # L& [9] GREEK CAPITAL LETTER SHO..GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL +1D26..1D2A ; Greek # L& [5] GREEK LETTER SMALL CAPITAL GAMMA..GREEK LETTER SMALL CAPITAL PSI +1D5D..1D61 ; Greek # Lm [5] MODIFIER LETTER SMALL BETA..MODIFIER LETTER SMALL CHI +1D66..1D6A ; Greek # Lm [5] GREEK SUBSCRIPT SMALL LETTER BETA..GREEK SUBSCRIPT SMALL LETTER CHI +1DBF ; Greek # Lm MODIFIER LETTER SMALL THETA +1F00..1F15 ; Greek # L& [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA +1F18..1F1D ; Greek # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA +1F20..1F45 ; Greek # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA +1F48..1F4D ; Greek # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA +1F50..1F57 ; Greek # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI +1F59 ; Greek # L& GREEK CAPITAL LETTER UPSILON WITH DASIA +1F5B ; Greek # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA +1F5D ; Greek # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA +1F5F..1F7D ; Greek # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA +1F80..1FB4 ; Greek # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI +1FB6..1FBC ; Greek # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI +1FBD ; Greek # Sk GREEK KORONIS +1FBE ; Greek # L& GREEK PROSGEGRAMMENI +1FBF..1FC1 ; Greek # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI +1FC2..1FC4 ; Greek # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI +1FC6..1FCC ; Greek # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI +1FCD..1FCF ; Greek # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI +1FD0..1FD3 ; Greek # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA +1FD6..1FDB ; Greek # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA +1FDD..1FDF ; Greek # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI +1FE0..1FEC ; Greek # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA +1FED..1FEF ; Greek # Sk [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA +1FF2..1FF4 ; Greek # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI +1FF6..1FFC ; Greek # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI +1FFD..1FFE ; Greek # Sk [2] GREEK OXIA..GREEK DASIA +2126 ; Greek # L& OHM SIGN +AB65 ; Greek # L& GREEK LETTER SMALL CAPITAL OMEGA +10140..10174 ; Greek # Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS +10175..10178 ; Greek # No [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN +10179..10189 ; Greek # So [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN +1018A..1018B ; Greek # No [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN +1018C..1018E ; Greek # So [3] GREEK SINUSOID SIGN..NOMISMA SIGN +101A0 ; Greek # So GREEK SYMBOL TAU RHO +1D200..1D241 ; Greek # So [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54 +1D242..1D244 ; Greek # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME +1D245 ; Greek # So GREEK MUSICAL LEIMMA + +# Total code points: 518 + +# ================================================ + +0400..0481 ; Cyrillic # L& [130] CYRILLIC CAPITAL LETTER IE WITH GRAVE..CYRILLIC SMALL LETTER KOPPA +0482 ; Cyrillic # So CYRILLIC THOUSANDS SIGN +0483..0484 ; Cyrillic # Mn [2] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC PALATALIZATION +0487 ; Cyrillic # Mn COMBINING CYRILLIC POKRYTIE +0488..0489 ; Cyrillic # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN +048A..052F ; Cyrillic # L& [166] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH DESCENDER +1C80..1C88 ; Cyrillic # L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK +1D2B ; Cyrillic # L& CYRILLIC LETTER SMALL CAPITAL EL +1D78 ; Cyrillic # Lm MODIFIER LETTER CYRILLIC EN +2DE0..2DFF ; Cyrillic # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS +A640..A66D ; Cyrillic # L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O +A66E ; Cyrillic # Lo CYRILLIC LETTER MULTIOCULAR O +A66F ; Cyrillic # Mn COMBINING CYRILLIC VZMET +A670..A672 ; Cyrillic # Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN +A673 ; Cyrillic # Po SLAVONIC ASTERISK +A674..A67D ; Cyrillic # Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK +A67E ; Cyrillic # Po CYRILLIC KAVYKA +A67F ; Cyrillic # Lm CYRILLIC PAYEROK +A680..A69B ; Cyrillic # L& [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O +A69C..A69D ; Cyrillic # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN +A69E..A69F ; Cyrillic # Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E +FE2E..FE2F ; Cyrillic # Mn [2] COMBINING CYRILLIC TITLO LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF +1E030..1E06D ; Cyrillic # Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE +1E08F ; Cyrillic # Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I + +# Total code points: 506 + +# ================================================ + +0531..0556 ; Armenian # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH +0559 ; Armenian # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING +055A..055F ; Armenian # Po [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK +0560..0588 ; Armenian # L& [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE +0589 ; Armenian # Po ARMENIAN FULL STOP +058A ; Armenian # Pd ARMENIAN HYPHEN +058D..058E ; Armenian # So [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN +058F ; Armenian # Sc ARMENIAN DRAM SIGN +FB13..FB17 ; Armenian # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH + +# Total code points: 96 + +# ================================================ + +0591..05BD ; Hebrew # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG +05BE ; Hebrew # Pd HEBREW PUNCTUATION MAQAF +05BF ; Hebrew # Mn HEBREW POINT RAFE +05C0 ; Hebrew # Po HEBREW PUNCTUATION PASEQ +05C1..05C2 ; Hebrew # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT +05C3 ; Hebrew # Po HEBREW PUNCTUATION SOF PASUQ +05C4..05C5 ; Hebrew # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT +05C6 ; Hebrew # Po HEBREW PUNCTUATION NUN HAFUKHA +05C7 ; Hebrew # Mn HEBREW POINT QAMATS QATAN +05D0..05EA ; Hebrew # Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV +05EF..05F2 ; Hebrew # Lo [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD +05F3..05F4 ; Hebrew # Po [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM +FB1D ; Hebrew # Lo HEBREW LETTER YOD WITH HIRIQ +FB1E ; Hebrew # Mn HEBREW POINT JUDEO-SPANISH VARIKA +FB1F..FB28 ; Hebrew # Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV +FB29 ; Hebrew # Sm HEBREW LETTER ALTERNATIVE PLUS SIGN +FB2A..FB36 ; Hebrew # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH +FB38..FB3C ; Hebrew # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH +FB3E ; Hebrew # Lo HEBREW LETTER MEM WITH DAGESH +FB40..FB41 ; Hebrew # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH +FB43..FB44 ; Hebrew # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH +FB46..FB4F ; Hebrew # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED + +# Total code points: 134 + +# ================================================ + +0600..0604 ; Arabic # Cf [5] ARABIC NUMBER SIGN..ARABIC SIGN SAMVAT +0606..0608 ; Arabic # Sm [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY +0609..060A ; Arabic # Po [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN +060B ; Arabic # Sc AFGHANI SIGN +060D ; Arabic # Po ARABIC DATE SEPARATOR +060E..060F ; Arabic # So [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA +0610..061A ; Arabic # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA +061C ; Arabic # Cf ARABIC LETTER MARK +061D..061E ; Arabic # Po [2] ARABIC END OF TEXT MARK..ARABIC TRIPLE DOT PUNCTUATION MARK +0620..063F ; Arabic # Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE +0641..064A ; Arabic # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH +0656..065F ; Arabic # Mn [10] ARABIC SUBSCRIPT ALEF..ARABIC WAVY HAMZA BELOW +0660..0669 ; Arabic # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE +066A..066D ; Arabic # Po [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR +066E..066F ; Arabic # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF +0671..06D3 ; Arabic # Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE +06D4 ; Arabic # Po ARABIC FULL STOP +06D5 ; Arabic # Lo ARABIC LETTER AE +06D6..06DC ; Arabic # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN +06DE ; Arabic # So ARABIC START OF RUB EL HIZB +06DF..06E4 ; Arabic # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA +06E5..06E6 ; Arabic # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH +06E7..06E8 ; Arabic # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON +06E9 ; Arabic # So ARABIC PLACE OF SAJDAH +06EA..06ED ; Arabic # Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM +06EE..06EF ; Arabic # Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V +06F0..06F9 ; Arabic # Nd [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE +06FA..06FC ; Arabic # Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW +06FD..06FE ; Arabic # So [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN +06FF ; Arabic # Lo ARABIC LETTER HEH WITH INVERTED V +0750..077F ; Arabic # Lo [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE +0870..0887 ; Arabic # Lo [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT +0888 ; Arabic # Sk ARABIC RAISED ROUND DOT +0889..088E ; Arabic # Lo [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL +0890..0891 ; Arabic # Cf [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE +0898..089F ; Arabic # Mn [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA +08A0..08C8 ; Arabic # Lo [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF +08C9 ; Arabic # Lm ARABIC SMALL FARSI YEH +08CA..08E1 ; Arabic # Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA +08E3..08FF ; Arabic # Mn [29] ARABIC TURNED DAMMA BELOW..ARABIC MARK SIDEWAYS NOON GHUNNA +FB50..FBB1 ; Arabic # Lo [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM +FBB2..FBC2 ; Arabic # Sk [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA ABOVE +FBD3..FD3D ; Arabic # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM +FD40..FD4F ; Arabic # So [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH +FD50..FD8F ; Arabic # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM +FD92..FDC7 ; Arabic # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM +FDCF ; Arabic # So ARABIC LIGATURE SALAAMUHU ALAYNAA +FDF0..FDFB ; Arabic # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU +FDFC ; Arabic # Sc RIAL SIGN +FDFD..FDFF ; Arabic # So [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL +FE70..FE74 ; Arabic # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM +FE76..FEFC ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM +10E60..10E7E ; Arabic # No [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS +10EFD..10EFF ; Arabic # Mn [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA +1EE00..1EE03 ; Arabic # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL +1EE05..1EE1F ; Arabic # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF +1EE21..1EE22 ; Arabic # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM +1EE24 ; Arabic # Lo ARABIC MATHEMATICAL INITIAL HEH +1EE27 ; Arabic # Lo ARABIC MATHEMATICAL INITIAL HAH +1EE29..1EE32 ; Arabic # Lo [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF +1EE34..1EE37 ; Arabic # Lo [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH +1EE39 ; Arabic # Lo ARABIC MATHEMATICAL INITIAL DAD +1EE3B ; Arabic # Lo ARABIC MATHEMATICAL INITIAL GHAIN +1EE42 ; Arabic # Lo ARABIC MATHEMATICAL TAILED JEEM +1EE47 ; Arabic # Lo ARABIC MATHEMATICAL TAILED HAH +1EE49 ; Arabic # Lo ARABIC MATHEMATICAL TAILED YEH +1EE4B ; Arabic # Lo ARABIC MATHEMATICAL TAILED LAM +1EE4D..1EE4F ; Arabic # Lo [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN +1EE51..1EE52 ; Arabic # Lo [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF +1EE54 ; Arabic # Lo ARABIC MATHEMATICAL TAILED SHEEN +1EE57 ; Arabic # Lo ARABIC MATHEMATICAL TAILED KHAH +1EE59 ; Arabic # Lo ARABIC MATHEMATICAL TAILED DAD +1EE5B ; Arabic # Lo ARABIC MATHEMATICAL TAILED GHAIN +1EE5D ; Arabic # Lo ARABIC MATHEMATICAL TAILED DOTLESS NOON +1EE5F ; Arabic # Lo ARABIC MATHEMATICAL TAILED DOTLESS QAF +1EE61..1EE62 ; Arabic # Lo [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM +1EE64 ; Arabic # Lo ARABIC MATHEMATICAL STRETCHED HEH +1EE67..1EE6A ; Arabic # Lo [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF +1EE6C..1EE72 ; Arabic # Lo [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF +1EE74..1EE77 ; Arabic # Lo [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH +1EE79..1EE7C ; Arabic # Lo [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH +1EE7E ; Arabic # Lo ARABIC MATHEMATICAL STRETCHED DOTLESS FEH +1EE80..1EE89 ; Arabic # Lo [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH +1EE8B..1EE9B ; Arabic # Lo [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN +1EEA1..1EEA3 ; Arabic # Lo [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL +1EEA5..1EEA9 ; Arabic # Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH +1EEAB..1EEBB ; Arabic # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN +1EEF0..1EEF1 ; Arabic # Sm [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL + +# Total code points: 1368 + +# ================================================ + +0700..070D ; Syriac # Po [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS +070F ; Syriac # Cf SYRIAC ABBREVIATION MARK +0710 ; Syriac # Lo SYRIAC LETTER ALAPH +0711 ; Syriac # Mn SYRIAC LETTER SUPERSCRIPT ALAPH +0712..072F ; Syriac # Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH +0730..074A ; Syriac # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH +074D..074F ; Syriac # Lo [3] SYRIAC LETTER SOGDIAN ZHAIN..SYRIAC LETTER SOGDIAN FE +0860..086A ; Syriac # Lo [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA + +# Total code points: 88 + +# ================================================ + +0780..07A5 ; Thaana # Lo [38] THAANA LETTER HAA..THAANA LETTER WAAVU +07A6..07B0 ; Thaana # Mn [11] THAANA ABAFILI..THAANA SUKUN +07B1 ; Thaana # Lo THAANA LETTER NAA + +# Total code points: 50 + +# ================================================ + +0900..0902 ; Devanagari # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA +0903 ; Devanagari # Mc DEVANAGARI SIGN VISARGA +0904..0939 ; Devanagari # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA +093A ; Devanagari # Mn DEVANAGARI VOWEL SIGN OE +093B ; Devanagari # Mc DEVANAGARI VOWEL SIGN OOE +093C ; Devanagari # Mn DEVANAGARI SIGN NUKTA +093D ; Devanagari # Lo DEVANAGARI SIGN AVAGRAHA +093E..0940 ; Devanagari # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II +0941..0948 ; Devanagari # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI +0949..094C ; Devanagari # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU +094D ; Devanagari # Mn DEVANAGARI SIGN VIRAMA +094E..094F ; Devanagari # Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW +0950 ; Devanagari # Lo DEVANAGARI OM +0955..0957 ; Devanagari # Mn [3] DEVANAGARI VOWEL SIGN CANDRA LONG E..DEVANAGARI VOWEL SIGN UUE +0958..0961 ; Devanagari # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL +0962..0963 ; Devanagari # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL +0966..096F ; Devanagari # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE +0970 ; Devanagari # Po DEVANAGARI ABBREVIATION SIGN +0971 ; Devanagari # Lm DEVANAGARI SIGN HIGH SPACING DOT +0972..097F ; Devanagari # Lo [14] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER BBA +A8E0..A8F1 ; Devanagari # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA +A8F2..A8F7 ; Devanagari # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA +A8F8..A8FA ; Devanagari # Po [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET +A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE +A8FC ; Devanagari # Po DEVANAGARI SIGN SIDDHAM +A8FD..A8FE ; Devanagari # Lo [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY +A8FF ; Devanagari # Mn DEVANAGARI VOWEL SIGN AY +11B00..11B09 ; Devanagari # Po [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU + +# Total code points: 164 + +# ================================================ + +0980 ; Bengali # Lo BENGALI ANJI +0981 ; Bengali # Mn BENGALI SIGN CANDRABINDU +0982..0983 ; Bengali # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA +0985..098C ; Bengali # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L +098F..0990 ; Bengali # Lo [2] BENGALI LETTER E..BENGALI LETTER AI +0993..09A8 ; Bengali # Lo [22] BENGALI LETTER O..BENGALI LETTER NA +09AA..09B0 ; Bengali # Lo [7] BENGALI LETTER PA..BENGALI LETTER RA +09B2 ; Bengali # Lo BENGALI LETTER LA +09B6..09B9 ; Bengali # Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA +09BC ; Bengali # Mn BENGALI SIGN NUKTA +09BD ; Bengali # Lo BENGALI SIGN AVAGRAHA +09BE..09C0 ; Bengali # Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II +09C1..09C4 ; Bengali # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR +09C7..09C8 ; Bengali # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI +09CB..09CC ; Bengali # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU +09CD ; Bengali # Mn BENGALI SIGN VIRAMA +09CE ; Bengali # Lo BENGALI LETTER KHANDA TA +09D7 ; Bengali # Mc BENGALI AU LENGTH MARK +09DC..09DD ; Bengali # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA +09DF..09E1 ; Bengali # Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL +09E2..09E3 ; Bengali # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL +09E6..09EF ; Bengali # Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE +09F0..09F1 ; Bengali # Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL +09F2..09F3 ; Bengali # Sc [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN +09F4..09F9 ; Bengali # No [6] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY DENOMINATOR SIXTEEN +09FA ; Bengali # So BENGALI ISSHAR +09FB ; Bengali # Sc BENGALI GANDA MARK +09FC ; Bengali # Lo BENGALI LETTER VEDIC ANUSVARA +09FD ; Bengali # Po BENGALI ABBREVIATION SIGN +09FE ; Bengali # Mn BENGALI SANDHI MARK + +# Total code points: 96 + +# ================================================ + +0A01..0A02 ; Gurmukhi # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI +0A03 ; Gurmukhi # Mc GURMUKHI SIGN VISARGA +0A05..0A0A ; Gurmukhi # Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU +0A0F..0A10 ; Gurmukhi # Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI +0A13..0A28 ; Gurmukhi # Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA +0A2A..0A30 ; Gurmukhi # Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA +0A32..0A33 ; Gurmukhi # Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA +0A35..0A36 ; Gurmukhi # Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA +0A38..0A39 ; Gurmukhi # Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA +0A3C ; Gurmukhi # Mn GURMUKHI SIGN NUKTA +0A3E..0A40 ; Gurmukhi # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II +0A41..0A42 ; Gurmukhi # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU +0A47..0A48 ; Gurmukhi # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI +0A4B..0A4D ; Gurmukhi # Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA +0A51 ; Gurmukhi # Mn GURMUKHI SIGN UDAAT +0A59..0A5C ; Gurmukhi # Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA +0A5E ; Gurmukhi # Lo GURMUKHI LETTER FA +0A66..0A6F ; Gurmukhi # Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE +0A70..0A71 ; Gurmukhi # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK +0A72..0A74 ; Gurmukhi # Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR +0A75 ; Gurmukhi # Mn GURMUKHI SIGN YAKASH +0A76 ; Gurmukhi # Po GURMUKHI ABBREVIATION SIGN + +# Total code points: 80 + +# ================================================ + +0A81..0A82 ; Gujarati # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA +0A83 ; Gujarati # Mc GUJARATI SIGN VISARGA +0A85..0A8D ; Gujarati # Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E +0A8F..0A91 ; Gujarati # Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O +0A93..0AA8 ; Gujarati # Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA +0AAA..0AB0 ; Gujarati # Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA +0AB2..0AB3 ; Gujarati # Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA +0AB5..0AB9 ; Gujarati # Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA +0ABC ; Gujarati # Mn GUJARATI SIGN NUKTA +0ABD ; Gujarati # Lo GUJARATI SIGN AVAGRAHA +0ABE..0AC0 ; Gujarati # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II +0AC1..0AC5 ; Gujarati # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E +0AC7..0AC8 ; Gujarati # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI +0AC9 ; Gujarati # Mc GUJARATI VOWEL SIGN CANDRA O +0ACB..0ACC ; Gujarati # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU +0ACD ; Gujarati # Mn GUJARATI SIGN VIRAMA +0AD0 ; Gujarati # Lo GUJARATI OM +0AE0..0AE1 ; Gujarati # Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL +0AE2..0AE3 ; Gujarati # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL +0AE6..0AEF ; Gujarati # Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE +0AF0 ; Gujarati # Po GUJARATI ABBREVIATION SIGN +0AF1 ; Gujarati # Sc GUJARATI RUPEE SIGN +0AF9 ; Gujarati # Lo GUJARATI LETTER ZHA +0AFA..0AFF ; Gujarati # Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE + +# Total code points: 91 + +# ================================================ + +0B01 ; Oriya # Mn ORIYA SIGN CANDRABINDU +0B02..0B03 ; Oriya # Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA +0B05..0B0C ; Oriya # Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L +0B0F..0B10 ; Oriya # Lo [2] ORIYA LETTER E..ORIYA LETTER AI +0B13..0B28 ; Oriya # Lo [22] ORIYA LETTER O..ORIYA LETTER NA +0B2A..0B30 ; Oriya # Lo [7] ORIYA LETTER PA..ORIYA LETTER RA +0B32..0B33 ; Oriya # Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA +0B35..0B39 ; Oriya # Lo [5] ORIYA LETTER VA..ORIYA LETTER HA +0B3C ; Oriya # Mn ORIYA SIGN NUKTA +0B3D ; Oriya # Lo ORIYA SIGN AVAGRAHA +0B3E ; Oriya # Mc ORIYA VOWEL SIGN AA +0B3F ; Oriya # Mn ORIYA VOWEL SIGN I +0B40 ; Oriya # Mc ORIYA VOWEL SIGN II +0B41..0B44 ; Oriya # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR +0B47..0B48 ; Oriya # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI +0B4B..0B4C ; Oriya # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU +0B4D ; Oriya # Mn ORIYA SIGN VIRAMA +0B55..0B56 ; Oriya # Mn [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK +0B57 ; Oriya # Mc ORIYA AU LENGTH MARK +0B5C..0B5D ; Oriya # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA +0B5F..0B61 ; Oriya # Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL +0B62..0B63 ; Oriya # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL +0B66..0B6F ; Oriya # Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE +0B70 ; Oriya # So ORIYA ISSHAR +0B71 ; Oriya # Lo ORIYA LETTER WA +0B72..0B77 ; Oriya # No [6] ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS + +# Total code points: 91 + +# ================================================ + +0B82 ; Tamil # Mn TAMIL SIGN ANUSVARA +0B83 ; Tamil # Lo TAMIL SIGN VISARGA +0B85..0B8A ; Tamil # Lo [6] TAMIL LETTER A..TAMIL LETTER UU +0B8E..0B90 ; Tamil # Lo [3] TAMIL LETTER E..TAMIL LETTER AI +0B92..0B95 ; Tamil # Lo [4] TAMIL LETTER O..TAMIL LETTER KA +0B99..0B9A ; Tamil # Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA +0B9C ; Tamil # Lo TAMIL LETTER JA +0B9E..0B9F ; Tamil # Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA +0BA3..0BA4 ; Tamil # Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA +0BA8..0BAA ; Tamil # Lo [3] TAMIL LETTER NA..TAMIL LETTER PA +0BAE..0BB9 ; Tamil # Lo [12] TAMIL LETTER MA..TAMIL LETTER HA +0BBE..0BBF ; Tamil # Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I +0BC0 ; Tamil # Mn TAMIL VOWEL SIGN II +0BC1..0BC2 ; Tamil # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU +0BC6..0BC8 ; Tamil # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI +0BCA..0BCC ; Tamil # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU +0BCD ; Tamil # Mn TAMIL SIGN VIRAMA +0BD0 ; Tamil # Lo TAMIL OM +0BD7 ; Tamil # Mc TAMIL AU LENGTH MARK +0BE6..0BEF ; Tamil # Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE +0BF0..0BF2 ; Tamil # No [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND +0BF3..0BF8 ; Tamil # So [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN +0BF9 ; Tamil # Sc TAMIL RUPEE SIGN +0BFA ; Tamil # So TAMIL NUMBER SIGN +11FC0..11FD4 ; Tamil # No [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH +11FD5..11FDC ; Tamil # So [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI +11FDD..11FE0 ; Tamil # Sc [4] TAMIL SIGN KAACU..TAMIL SIGN VARAAKAN +11FE1..11FF1 ; Tamil # So [17] TAMIL SIGN PAARAM..TAMIL SIGN VAKAIYARAA +11FFF ; Tamil # Po TAMIL PUNCTUATION END OF TEXT + +# Total code points: 123 + +# ================================================ + +0C00 ; Telugu # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE +0C01..0C03 ; Telugu # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA +0C04 ; Telugu # Mn TELUGU SIGN COMBINING ANUSVARA ABOVE +0C05..0C0C ; Telugu # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L +0C0E..0C10 ; Telugu # Lo [3] TELUGU LETTER E..TELUGU LETTER AI +0C12..0C28 ; Telugu # Lo [23] TELUGU LETTER O..TELUGU LETTER NA +0C2A..0C39 ; Telugu # Lo [16] TELUGU LETTER PA..TELUGU LETTER HA +0C3C ; Telugu # Mn TELUGU SIGN NUKTA +0C3D ; Telugu # Lo TELUGU SIGN AVAGRAHA +0C3E..0C40 ; Telugu # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II +0C41..0C44 ; Telugu # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR +0C46..0C48 ; Telugu # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI +0C4A..0C4D ; Telugu # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA +0C55..0C56 ; Telugu # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK +0C58..0C5A ; Telugu # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA +0C5D ; Telugu # Lo TELUGU LETTER NAKAARA POLLU +0C60..0C61 ; Telugu # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL +0C62..0C63 ; Telugu # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL +0C66..0C6F ; Telugu # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE +0C77 ; Telugu # Po TELUGU SIGN SIDDHAM +0C78..0C7E ; Telugu # No [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR +0C7F ; Telugu # So TELUGU SIGN TUUMU + +# Total code points: 100 + +# ================================================ + +0C80 ; Kannada # Lo KANNADA SIGN SPACING CANDRABINDU +0C81 ; Kannada # Mn KANNADA SIGN CANDRABINDU +0C82..0C83 ; Kannada # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA +0C84 ; Kannada # Po KANNADA SIGN SIDDHAM +0C85..0C8C ; Kannada # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L +0C8E..0C90 ; Kannada # Lo [3] KANNADA LETTER E..KANNADA LETTER AI +0C92..0CA8 ; Kannada # Lo [23] KANNADA LETTER O..KANNADA LETTER NA +0CAA..0CB3 ; Kannada # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA +0CB5..0CB9 ; Kannada # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA +0CBC ; Kannada # Mn KANNADA SIGN NUKTA +0CBD ; Kannada # Lo KANNADA SIGN AVAGRAHA +0CBE ; Kannada # Mc KANNADA VOWEL SIGN AA +0CBF ; Kannada # Mn KANNADA VOWEL SIGN I +0CC0..0CC4 ; Kannada # Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR +0CC6 ; Kannada # Mn KANNADA VOWEL SIGN E +0CC7..0CC8 ; Kannada # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI +0CCA..0CCB ; Kannada # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO +0CCC..0CCD ; Kannada # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA +0CD5..0CD6 ; Kannada # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK +0CDD..0CDE ; Kannada # Lo [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA +0CE0..0CE1 ; Kannada # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL +0CE2..0CE3 ; Kannada # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL +0CE6..0CEF ; Kannada # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE +0CF1..0CF2 ; Kannada # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA +0CF3 ; Kannada # Mc KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT + +# Total code points: 91 + +# ================================================ + +0D00..0D01 ; Malayalam # Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU +0D02..0D03 ; Malayalam # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA +0D04..0D0C ; Malayalam # Lo [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L +0D0E..0D10 ; Malayalam # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI +0D12..0D3A ; Malayalam # Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA +0D3B..0D3C ; Malayalam # Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA +0D3D ; Malayalam # Lo MALAYALAM SIGN AVAGRAHA +0D3E..0D40 ; Malayalam # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II +0D41..0D44 ; Malayalam # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR +0D46..0D48 ; Malayalam # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI +0D4A..0D4C ; Malayalam # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU +0D4D ; Malayalam # Mn MALAYALAM SIGN VIRAMA +0D4E ; Malayalam # Lo MALAYALAM LETTER DOT REPH +0D4F ; Malayalam # So MALAYALAM SIGN PARA +0D54..0D56 ; Malayalam # Lo [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL +0D57 ; Malayalam # Mc MALAYALAM AU LENGTH MARK +0D58..0D5E ; Malayalam # No [7] MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH..MALAYALAM FRACTION ONE FIFTH +0D5F..0D61 ; Malayalam # Lo [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL +0D62..0D63 ; Malayalam # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL +0D66..0D6F ; Malayalam # Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE +0D70..0D78 ; Malayalam # No [9] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE SIXTEENTHS +0D79 ; Malayalam # So MALAYALAM DATE MARK +0D7A..0D7F ; Malayalam # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K + +# Total code points: 118 + +# ================================================ + +0D81 ; Sinhala # Mn SINHALA SIGN CANDRABINDU +0D82..0D83 ; Sinhala # Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA +0D85..0D96 ; Sinhala # Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA +0D9A..0DB1 ; Sinhala # Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA +0DB3..0DBB ; Sinhala # Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA +0DBD ; Sinhala # Lo SINHALA LETTER DANTAJA LAYANNA +0DC0..0DC6 ; Sinhala # Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA +0DCA ; Sinhala # Mn SINHALA SIGN AL-LAKUNA +0DCF..0DD1 ; Sinhala # Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA +0DD2..0DD4 ; Sinhala # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA +0DD6 ; Sinhala # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA +0DD8..0DDF ; Sinhala # Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA +0DE6..0DEF ; Sinhala # Nd [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE +0DF2..0DF3 ; Sinhala # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA +0DF4 ; Sinhala # Po SINHALA PUNCTUATION KUNDDALIYA +111E1..111F4 ; Sinhala # No [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND + +# Total code points: 111 + +# ================================================ + +0E01..0E30 ; Thai # Lo [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A +0E31 ; Thai # Mn THAI CHARACTER MAI HAN-AKAT +0E32..0E33 ; Thai # Lo [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM +0E34..0E3A ; Thai # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU +0E40..0E45 ; Thai # Lo [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO +0E46 ; Thai # Lm THAI CHARACTER MAIYAMOK +0E47..0E4E ; Thai # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN +0E4F ; Thai # Po THAI CHARACTER FONGMAN +0E50..0E59 ; Thai # Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE +0E5A..0E5B ; Thai # Po [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT + +# Total code points: 86 + +# ================================================ + +0E81..0E82 ; Lao # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG +0E84 ; Lao # Lo LAO LETTER KHO TAM +0E86..0E8A ; Lao # Lo [5] LAO LETTER PALI GHA..LAO LETTER SO TAM +0E8C..0EA3 ; Lao # Lo [24] LAO LETTER PALI JHA..LAO LETTER LO LING +0EA5 ; Lao # Lo LAO LETTER LO LOOT +0EA7..0EB0 ; Lao # Lo [10] LAO LETTER WO..LAO VOWEL SIGN A +0EB1 ; Lao # Mn LAO VOWEL SIGN MAI KAN +0EB2..0EB3 ; Lao # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM +0EB4..0EBC ; Lao # Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO +0EBD ; Lao # Lo LAO SEMIVOWEL SIGN NYO +0EC0..0EC4 ; Lao # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI +0EC6 ; Lao # Lm LAO KO LA +0EC8..0ECE ; Lao # Mn [7] LAO TONE MAI EK..LAO YAMAKKAN +0ED0..0ED9 ; Lao # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE +0EDC..0EDF ; Lao # Lo [4] LAO HO NO..LAO LETTER KHMU NYO + +# Total code points: 83 + +# ================================================ + +0F00 ; Tibetan # Lo TIBETAN SYLLABLE OM +0F01..0F03 ; Tibetan # So [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA +0F04..0F12 ; Tibetan # Po [15] TIBETAN MARK INITIAL YIG MGO MDUN MA..TIBETAN MARK RGYA GRAM SHAD +0F13 ; Tibetan # So TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN +0F14 ; Tibetan # Po TIBETAN MARK GTER TSHEG +0F15..0F17 ; Tibetan # So [3] TIBETAN LOGOTYPE SIGN CHAD RTAGS..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS +0F18..0F19 ; Tibetan # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS +0F1A..0F1F ; Tibetan # So [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG +0F20..0F29 ; Tibetan # Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE +0F2A..0F33 ; Tibetan # No [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO +0F34 ; Tibetan # So TIBETAN MARK BSDUS RTAGS +0F35 ; Tibetan # Mn TIBETAN MARK NGAS BZUNG NYI ZLA +0F36 ; Tibetan # So TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN +0F37 ; Tibetan # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS +0F38 ; Tibetan # So TIBETAN MARK CHE MGO +0F39 ; Tibetan # Mn TIBETAN MARK TSA -PHRU +0F3A ; Tibetan # Ps TIBETAN MARK GUG RTAGS GYON +0F3B ; Tibetan # Pe TIBETAN MARK GUG RTAGS GYAS +0F3C ; Tibetan # Ps TIBETAN MARK ANG KHANG GYON +0F3D ; Tibetan # Pe TIBETAN MARK ANG KHANG GYAS +0F3E..0F3F ; Tibetan # Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES +0F40..0F47 ; Tibetan # Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA +0F49..0F6C ; Tibetan # Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA +0F71..0F7E ; Tibetan # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO +0F7F ; Tibetan # Mc TIBETAN SIGN RNAM BCAD +0F80..0F84 ; Tibetan # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA +0F85 ; Tibetan # Po TIBETAN MARK PALUTA +0F86..0F87 ; Tibetan # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS +0F88..0F8C ; Tibetan # Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN +0F8D..0F97 ; Tibetan # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA +0F99..0FBC ; Tibetan # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA +0FBE..0FC5 ; Tibetan # So [8] TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE +0FC6 ; Tibetan # Mn TIBETAN SYMBOL PADMA GDAN +0FC7..0FCC ; Tibetan # So [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL +0FCE..0FCF ; Tibetan # So [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM +0FD0..0FD4 ; Tibetan # Po [5] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA +0FD9..0FDA ; Tibetan # Po [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS + +# Total code points: 207 + +# ================================================ + +1000..102A ; Myanmar # Lo [43] MYANMAR LETTER KA..MYANMAR LETTER AU +102B..102C ; Myanmar # Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA +102D..1030 ; Myanmar # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU +1031 ; Myanmar # Mc MYANMAR VOWEL SIGN E +1032..1037 ; Myanmar # Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW +1038 ; Myanmar # Mc MYANMAR SIGN VISARGA +1039..103A ; Myanmar # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT +103B..103C ; Myanmar # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA +103D..103E ; Myanmar # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA +103F ; Myanmar # Lo MYANMAR LETTER GREAT SA +1040..1049 ; Myanmar # Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE +104A..104F ; Myanmar # Po [6] MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE +1050..1055 ; Myanmar # Lo [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL +1056..1057 ; Myanmar # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR +1058..1059 ; Myanmar # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL +105A..105D ; Myanmar # Lo [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE +105E..1060 ; Myanmar # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA +1061 ; Myanmar # Lo MYANMAR LETTER SGAW KAREN SHA +1062..1064 ; Myanmar # Mc [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO +1065..1066 ; Myanmar # Lo [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA +1067..106D ; Myanmar # Mc [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5 +106E..1070 ; Myanmar # Lo [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA +1071..1074 ; Myanmar # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE +1075..1081 ; Myanmar # Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA +1082 ; Myanmar # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA +1083..1084 ; Myanmar # Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E +1085..1086 ; Myanmar # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y +1087..108C ; Myanmar # Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3 +108D ; Myanmar # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE +108E ; Myanmar # Lo MYANMAR LETTER RUMAI PALAUNG FA +108F ; Myanmar # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5 +1090..1099 ; Myanmar # Nd [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE +109A..109C ; Myanmar # Mc [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A +109D ; Myanmar # Mn MYANMAR VOWEL SIGN AITON AI +109E..109F ; Myanmar # So [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION +A9E0..A9E4 ; Myanmar # Lo [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA +A9E5 ; Myanmar # Mn MYANMAR SIGN SHAN SAW +A9E6 ; Myanmar # Lm MYANMAR MODIFIER LETTER SHAN REDUPLICATION +A9E7..A9EF ; Myanmar # Lo [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA +A9F0..A9F9 ; Myanmar # Nd [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE +A9FA..A9FE ; Myanmar # Lo [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA +AA60..AA6F ; Myanmar # Lo [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA +AA70 ; Myanmar # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION +AA71..AA76 ; Myanmar # Lo [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM +AA77..AA79 ; Myanmar # So [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO +AA7A ; Myanmar # Lo MYANMAR LETTER AITON RA +AA7B ; Myanmar # Mc MYANMAR SIGN PAO KAREN TONE +AA7C ; Myanmar # Mn MYANMAR SIGN TAI LAING TONE-2 +AA7D ; Myanmar # Mc MYANMAR SIGN TAI LAING TONE-5 +AA7E..AA7F ; Myanmar # Lo [2] MYANMAR LETTER SHWE PALAUNG CHA..MYANMAR LETTER SHWE PALAUNG SHA + +# Total code points: 223 + +# ================================================ + +10A0..10C5 ; Georgian # L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE +10C7 ; Georgian # L& GEORGIAN CAPITAL LETTER YN +10CD ; Georgian # L& GEORGIAN CAPITAL LETTER AEN +10D0..10FA ; Georgian # L& [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN +10FC ; Georgian # Lm MODIFIER LETTER GEORGIAN NAR +10FD..10FF ; Georgian # L& [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN +1C90..1CBA ; Georgian # L& [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN +1CBD..1CBF ; Georgian # L& [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN +2D00..2D25 ; Georgian # L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE +2D27 ; Georgian # L& GEORGIAN SMALL LETTER YN +2D2D ; Georgian # L& GEORGIAN SMALL LETTER AEN + +# Total code points: 173 + +# ================================================ + +1100..11FF ; Hangul # Lo [256] HANGUL CHOSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN +302E..302F ; Hangul # Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK +3131..318E ; Hangul # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE +3200..321E ; Hangul # So [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU +3260..327E ; Hangul # So [31] CIRCLED HANGUL KIYEOK..CIRCLED HANGUL IEUNG U +A960..A97C ; Hangul # Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH +AC00..D7A3 ; Hangul # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH +D7B0..D7C6 ; Hangul # Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E +D7CB..D7FB ; Hangul # Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH +FFA0..FFBE ; Hangul # Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH +FFC2..FFC7 ; Hangul # Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E +FFCA..FFCF ; Hangul # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE +FFD2..FFD7 ; Hangul # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU +FFDA..FFDC ; Hangul # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I + +# Total code points: 11739 + +# ================================================ + +1200..1248 ; Ethiopic # Lo [73] ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA +124A..124D ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE +1250..1256 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO +1258 ; Ethiopic # Lo ETHIOPIC SYLLABLE QHWA +125A..125D ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE +1260..1288 ; Ethiopic # Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA +128A..128D ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE +1290..12B0 ; Ethiopic # Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA +12B2..12B5 ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE +12B8..12BE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO +12C0 ; Ethiopic # Lo ETHIOPIC SYLLABLE KXWA +12C2..12C5 ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE +12C8..12D6 ; Ethiopic # Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O +12D8..1310 ; Ethiopic # Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA +1312..1315 ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE +1318..135A ; Ethiopic # Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA +135D..135F ; Ethiopic # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK +1360..1368 ; Ethiopic # Po [9] ETHIOPIC SECTION MARK..ETHIOPIC PARAGRAPH SEPARATOR +1369..137C ; Ethiopic # No [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND +1380..138F ; Ethiopic # Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE +1390..1399 ; Ethiopic # So [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT +2D80..2D96 ; Ethiopic # Lo [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE +2DA0..2DA6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO +2DA8..2DAE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO +2DB0..2DB6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO +2DB8..2DBE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO +2DC0..2DC6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO +2DC8..2DCE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO +2DD0..2DD6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO +2DD8..2DDE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO +AB01..AB06 ; Ethiopic # Lo [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO +AB09..AB0E ; Ethiopic # Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO +AB11..AB16 ; Ethiopic # Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO +AB20..AB26 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO +AB28..AB2E ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO +1E7E0..1E7E6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO +1E7E8..1E7EB ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE +1E7ED..1E7EE ; Ethiopic # Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE +1E7F0..1E7FE ; Ethiopic # Lo [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE + +# Total code points: 523 + +# ================================================ + +13A0..13F5 ; Cherokee # L& [86] CHEROKEE LETTER A..CHEROKEE LETTER MV +13F8..13FD ; Cherokee # L& [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV +AB70..ABBF ; Cherokee # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA + +# Total code points: 172 + +# ================================================ + +1400 ; Canadian_Aboriginal # Pd CANADIAN SYLLABICS HYPHEN +1401..166C ; Canadian_Aboriginal # Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA +166D ; Canadian_Aboriginal # So CANADIAN SYLLABICS CHI SIGN +166E ; Canadian_Aboriginal # Po CANADIAN SYLLABICS FULL STOP +166F..167F ; Canadian_Aboriginal # Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W +18B0..18F5 ; Canadian_Aboriginal # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S +11AB0..11ABF ; Canadian_Aboriginal # Lo [16] CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA + +# Total code points: 726 + +# ================================================ + +1680 ; Ogham # Zs OGHAM SPACE MARK +1681..169A ; Ogham # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH +169B ; Ogham # Ps OGHAM FEATHER MARK +169C ; Ogham # Pe OGHAM REVERSED FEATHER MARK + +# Total code points: 29 + +# ================================================ + +16A0..16EA ; Runic # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X +16EE..16F0 ; Runic # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL +16F1..16F8 ; Runic # Lo [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC + +# Total code points: 86 + +# ================================================ + +1780..17B3 ; Khmer # Lo [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU +17B4..17B5 ; Khmer # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA +17B6 ; Khmer # Mc KHMER VOWEL SIGN AA +17B7..17BD ; Khmer # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA +17BE..17C5 ; Khmer # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU +17C6 ; Khmer # Mn KHMER SIGN NIKAHIT +17C7..17C8 ; Khmer # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU +17C9..17D3 ; Khmer # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT +17D4..17D6 ; Khmer # Po [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH +17D7 ; Khmer # Lm KHMER SIGN LEK TOO +17D8..17DA ; Khmer # Po [3] KHMER SIGN BEYYAL..KHMER SIGN KOOMUUT +17DB ; Khmer # Sc KHMER CURRENCY SYMBOL RIEL +17DC ; Khmer # Lo KHMER SIGN AVAKRAHASANYA +17DD ; Khmer # Mn KHMER SIGN ATTHACAN +17E0..17E9 ; Khmer # Nd [10] KHMER DIGIT ZERO..KHMER DIGIT NINE +17F0..17F9 ; Khmer # No [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON +19E0..19FF ; Khmer # So [32] KHMER SYMBOL PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC + +# Total code points: 146 + +# ================================================ + +1800..1801 ; Mongolian # Po [2] MONGOLIAN BIRGA..MONGOLIAN ELLIPSIS +1804 ; Mongolian # Po MONGOLIAN COLON +1806 ; Mongolian # Pd MONGOLIAN TODO SOFT HYPHEN +1807..180A ; Mongolian # Po [4] MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU +180B..180D ; Mongolian # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE +180E ; Mongolian # Cf MONGOLIAN VOWEL SEPARATOR +180F ; Mongolian # Mn MONGOLIAN FREE VARIATION SELECTOR FOUR +1810..1819 ; Mongolian # Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE +1820..1842 ; Mongolian # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI +1843 ; Mongolian # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN +1844..1878 ; Mongolian # Lo [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS +1880..1884 ; Mongolian # Lo [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA +1885..1886 ; Mongolian # Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA +1887..18A8 ; Mongolian # Lo [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA +18A9 ; Mongolian # Mn MONGOLIAN LETTER ALI GALI DAGALGA +18AA ; Mongolian # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA +11660..1166C ; Mongolian # Po [13] MONGOLIAN BIRGA WITH ORNAMENT..MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT + +# Total code points: 168 + +# ================================================ + +3041..3096 ; Hiragana # Lo [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE +309D..309E ; Hiragana # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK +309F ; Hiragana # Lo HIRAGANA DIGRAPH YORI +1B001..1B11F ; Hiragana # Lo [287] HIRAGANA LETTER ARCHAIC YE..HIRAGANA LETTER ARCHAIC WU +1B132 ; Hiragana # Lo HIRAGANA LETTER SMALL KO +1B150..1B152 ; Hiragana # Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO +1F200 ; Hiragana # So SQUARE HIRAGANA HOKA + +# Total code points: 381 + +# ================================================ + +30A1..30FA ; Katakana # Lo [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO +30FD..30FE ; Katakana # Lm [2] KATAKANA ITERATION MARK..KATAKANA VOICED ITERATION MARK +30FF ; Katakana # Lo KATAKANA DIGRAPH KOTO +31F0..31FF ; Katakana # Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO +32D0..32FE ; Katakana # So [47] CIRCLED KATAKANA A..CIRCLED KATAKANA WO +3300..3357 ; Katakana # So [88] SQUARE APAATO..SQUARE WATTO +FF66..FF6F ; Katakana # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU +FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N +1AFF0..1AFF3 ; Katakana # Lm [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5 +1AFF5..1AFFB ; Katakana # Lm [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5 +1AFFD..1AFFE ; Katakana # Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8 +1B000 ; Katakana # Lo KATAKANA LETTER ARCHAIC E +1B120..1B122 ; Katakana # Lo [3] KATAKANA LETTER ARCHAIC YI..KATAKANA LETTER ARCHAIC WU +1B155 ; Katakana # Lo KATAKANA LETTER SMALL KO +1B164..1B167 ; Katakana # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N + +# Total code points: 321 + +# ================================================ + +02EA..02EB ; Bopomofo # Sk [2] MODIFIER LETTER YIN DEPARTING TONE MARK..MODIFIER LETTER YANG DEPARTING TONE MARK +3105..312F ; Bopomofo # Lo [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN +31A0..31BF ; Bopomofo # Lo [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH + +# Total code points: 77 + +# ================================================ + +2E80..2E99 ; Han # So [26] CJK RADICAL REPEAT..CJK RADICAL RAP +2E9B..2EF3 ; Han # So [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE +2F00..2FD5 ; Han # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE +3005 ; Han # Lm IDEOGRAPHIC ITERATION MARK +3007 ; Han # Nl IDEOGRAPHIC NUMBER ZERO +3021..3029 ; Han # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE +3038..303A ; Han # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY +303B ; Han # Lm VERTICAL IDEOGRAPHIC ITERATION MARK +3400..4DBF ; Han # Lo [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF +4E00..9FFF ; Han # Lo [20992] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFF +F900..FA6D ; Han # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D +FA70..FAD9 ; Han # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9 +16FE2 ; Han # Po OLD CHINESE HOOK MARK +16FE3 ; Han # Lm OLD CHINESE ITERATION MARK +16FF0..16FF1 ; Han # Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY +20000..2A6DF ; Han # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF +2A700..2B739 ; Han # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739 +2B740..2B81D ; Han # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D +2B820..2CEA1 ; Han # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1 +2CEB0..2EBE0 ; Han # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0 +2F800..2FA1D ; Han # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D +30000..3134A ; Han # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A +31350..323AF ; Han # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF + +# Total code points: 98408 + +# ================================================ + +A000..A014 ; Yi # Lo [21] YI SYLLABLE IT..YI SYLLABLE E +A015 ; Yi # Lm YI SYLLABLE WU +A016..A48C ; Yi # Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR +A490..A4C6 ; Yi # So [55] YI RADICAL QOT..YI RADICAL KE + +# Total code points: 1220 + +# ================================================ + +10300..1031F ; Old_Italic # Lo [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS +10320..10323 ; Old_Italic # No [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY +1032D..1032F ; Old_Italic # Lo [3] OLD ITALIC LETTER YE..OLD ITALIC LETTER SOUTHERN TSE + +# Total code points: 39 + +# ================================================ + +10330..10340 ; Gothic # Lo [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA +10341 ; Gothic # Nl GOTHIC LETTER NINETY +10342..10349 ; Gothic # Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL +1034A ; Gothic # Nl GOTHIC LETTER NINE HUNDRED + +# Total code points: 27 + +# ================================================ + +10400..1044F ; Deseret # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW + +# Total code points: 80 + +# ================================================ + +0300..036F ; Inherited # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X +0485..0486 ; Inherited # Mn [2] COMBINING CYRILLIC DASIA PNEUMATA..COMBINING CYRILLIC PSILI PNEUMATA +064B..0655 ; Inherited # Mn [11] ARABIC FATHATAN..ARABIC HAMZA BELOW +0670 ; Inherited # Mn ARABIC LETTER SUPERSCRIPT ALEF +0951..0954 ; Inherited # Mn [4] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI ACUTE ACCENT +1AB0..1ABD ; Inherited # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW +1ABE ; Inherited # Me COMBINING PARENTHESES OVERLAY +1ABF..1ACE ; Inherited # Mn [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T +1CD0..1CD2 ; Inherited # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA +1CD4..1CE0 ; Inherited # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA +1CE2..1CE8 ; Inherited # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL +1CED ; Inherited # Mn VEDIC SIGN TIRYAK +1CF4 ; Inherited # Mn VEDIC TONE CANDRA ABOVE +1CF8..1CF9 ; Inherited # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE +1DC0..1DFF ; Inherited # Mn [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW +200C..200D ; Inherited # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER +20D0..20DC ; Inherited # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE +20DD..20E0 ; Inherited # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH +20E1 ; Inherited # Mn COMBINING LEFT RIGHT ARROW ABOVE +20E2..20E4 ; Inherited # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE +20E5..20F0 ; Inherited # Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE +302A..302D ; Inherited # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK +3099..309A ; Inherited # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +FE00..FE0F ; Inherited # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16 +FE20..FE2D ; Inherited # Mn [14] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON BELOW +101FD ; Inherited # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE +102E0 ; Inherited # Mn COPTIC EPACT THOUSANDS MARK +1133B ; Inherited # Mn COMBINING BINDU BELOW +1CF00..1CF2D ; Inherited # Mn [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT +1CF30..1CF46 ; Inherited # Mn [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG +1D167..1D169 ; Inherited # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3 +1D17B..1D182 ; Inherited # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE +1D185..1D18B ; Inherited # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE +1D1AA..1D1AD ; Inherited # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO +E0100..E01EF ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 + +# Total code points: 657 + +# ================================================ + +1700..1711 ; Tagalog # Lo [18] TAGALOG LETTER A..TAGALOG LETTER HA +1712..1714 ; Tagalog # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA +1715 ; Tagalog # Mc TAGALOG SIGN PAMUDPOD +171F ; Tagalog # Lo TAGALOG LETTER ARCHAIC RA + +# Total code points: 23 + +# ================================================ + +1720..1731 ; Hanunoo # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA +1732..1733 ; Hanunoo # Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U +1734 ; Hanunoo # Mc HANUNOO SIGN PAMUDPOD + +# Total code points: 21 + +# ================================================ + +1740..1751 ; Buhid # Lo [18] BUHID LETTER A..BUHID LETTER HA +1752..1753 ; Buhid # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U + +# Total code points: 20 + +# ================================================ + +1760..176C ; Tagbanwa # Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA +176E..1770 ; Tagbanwa # Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA +1772..1773 ; Tagbanwa # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U + +# Total code points: 18 + +# ================================================ + +1900..191E ; Limbu # Lo [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA +1920..1922 ; Limbu # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U +1923..1926 ; Limbu # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU +1927..1928 ; Limbu # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O +1929..192B ; Limbu # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA +1930..1931 ; Limbu # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA +1932 ; Limbu # Mn LIMBU SMALL LETTER ANUSVARA +1933..1938 ; Limbu # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA +1939..193B ; Limbu # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I +1940 ; Limbu # So LIMBU SIGN LOO +1944..1945 ; Limbu # Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK +1946..194F ; Limbu # Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE + +# Total code points: 68 + +# ================================================ + +1950..196D ; Tai_Le # Lo [30] TAI LE LETTER KA..TAI LE LETTER AI +1970..1974 ; Tai_Le # Lo [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6 + +# Total code points: 35 + +# ================================================ + +10000..1000B ; Linear_B # Lo [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE +1000D..10026 ; Linear_B # Lo [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO +10028..1003A ; Linear_B # Lo [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO +1003C..1003D ; Linear_B # Lo [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE +1003F..1004D ; Linear_B # Lo [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO +10050..1005D ; Linear_B # Lo [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089 +10080..100FA ; Linear_B # Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305 + +# Total code points: 211 + +# ================================================ + +10380..1039D ; Ugaritic # Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU +1039F ; Ugaritic # Po UGARITIC WORD DIVIDER + +# Total code points: 31 + +# ================================================ + +10450..1047F ; Shavian # Lo [48] SHAVIAN LETTER PEEP..SHAVIAN LETTER YEW + +# Total code points: 48 + +# ================================================ + +10480..1049D ; Osmanya # Lo [30] OSMANYA LETTER ALEF..OSMANYA LETTER OO +104A0..104A9 ; Osmanya # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE + +# Total code points: 40 + +# ================================================ + +10800..10805 ; Cypriot # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA +10808 ; Cypriot # Lo CYPRIOT SYLLABLE JO +1080A..10835 ; Cypriot # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO +10837..10838 ; Cypriot # Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE +1083C ; Cypriot # Lo CYPRIOT SYLLABLE ZA +1083F ; Cypriot # Lo CYPRIOT SYLLABLE ZO + +# Total code points: 55 + +# ================================================ + +2800..28FF ; Braille # So [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678 + +# Total code points: 256 + +# ================================================ + +1A00..1A16 ; Buginese # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA +1A17..1A18 ; Buginese # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U +1A19..1A1A ; Buginese # Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O +1A1B ; Buginese # Mn BUGINESE VOWEL SIGN AE +1A1E..1A1F ; Buginese # Po [2] BUGINESE PALLAWA..BUGINESE END OF SECTION + +# Total code points: 30 + +# ================================================ + +03E2..03EF ; Coptic # L& [14] COPTIC CAPITAL LETTER SHEI..COPTIC SMALL LETTER DEI +2C80..2CE4 ; Coptic # L& [101] COPTIC CAPITAL LETTER ALFA..COPTIC SYMBOL KAI +2CE5..2CEA ; Coptic # So [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA +2CEB..2CEE ; Coptic # L& [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA +2CEF..2CF1 ; Coptic # Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS +2CF2..2CF3 ; Coptic # L& [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI +2CF9..2CFC ; Coptic # Po [4] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN VERSE DIVIDER +2CFD ; Coptic # No COPTIC FRACTION ONE HALF +2CFE..2CFF ; Coptic # Po [2] COPTIC FULL STOP..COPTIC MORPHOLOGICAL DIVIDER + +# Total code points: 137 + +# ================================================ + +1980..19AB ; New_Tai_Lue # Lo [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA +19B0..19C9 ; New_Tai_Lue # Lo [26] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2 +19D0..19D9 ; New_Tai_Lue # Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE +19DA ; New_Tai_Lue # No NEW TAI LUE THAM DIGIT ONE +19DE..19DF ; New_Tai_Lue # So [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV + +# Total code points: 83 + +# ================================================ + +2C00..2C5F ; Glagolitic # L& [96] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC SMALL LETTER CAUDATE CHRIVI +1E000..1E006 ; Glagolitic # Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE +1E008..1E018 ; Glagolitic # Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU +1E01B..1E021 ; Glagolitic # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI +1E023..1E024 ; Glagolitic # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS +1E026..1E02A ; Glagolitic # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA + +# Total code points: 134 + +# ================================================ + +2D30..2D67 ; Tifinagh # Lo [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO +2D6F ; Tifinagh # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK +2D70 ; Tifinagh # Po TIFINAGH SEPARATOR MARK +2D7F ; Tifinagh # Mn TIFINAGH CONSONANT JOINER + +# Total code points: 59 + +# ================================================ + +A800..A801 ; Syloti_Nagri # Lo [2] SYLOTI NAGRI LETTER A..SYLOTI NAGRI LETTER I +A802 ; Syloti_Nagri # Mn SYLOTI NAGRI SIGN DVISVARA +A803..A805 ; Syloti_Nagri # Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O +A806 ; Syloti_Nagri # Mn SYLOTI NAGRI SIGN HASANTA +A807..A80A ; Syloti_Nagri # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO +A80B ; Syloti_Nagri # Mn SYLOTI NAGRI SIGN ANUSVARA +A80C..A822 ; Syloti_Nagri # Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO +A823..A824 ; Syloti_Nagri # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I +A825..A826 ; Syloti_Nagri # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E +A827 ; Syloti_Nagri # Mc SYLOTI NAGRI VOWEL SIGN OO +A828..A82B ; Syloti_Nagri # So [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4 +A82C ; Syloti_Nagri # Mn SYLOTI NAGRI SIGN ALTERNATE HASANTA + +# Total code points: 45 + +# ================================================ + +103A0..103C3 ; Old_Persian # Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA +103C8..103CF ; Old_Persian # Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH +103D0 ; Old_Persian # Po OLD PERSIAN WORD DIVIDER +103D1..103D5 ; Old_Persian # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED + +# Total code points: 50 + +# ================================================ + +10A00 ; Kharoshthi # Lo KHAROSHTHI LETTER A +10A01..10A03 ; Kharoshthi # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R +10A05..10A06 ; Kharoshthi # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O +10A0C..10A0F ; Kharoshthi # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA +10A10..10A13 ; Kharoshthi # Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA +10A15..10A17 ; Kharoshthi # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA +10A19..10A35 ; Kharoshthi # Lo [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA +10A38..10A3A ; Kharoshthi # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW +10A3F ; Kharoshthi # Mn KHAROSHTHI VIRAMA +10A40..10A48 ; Kharoshthi # No [9] KHAROSHTHI DIGIT ONE..KHAROSHTHI FRACTION ONE HALF +10A50..10A58 ; Kharoshthi # Po [9] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES + +# Total code points: 68 + +# ================================================ + +1B00..1B03 ; Balinese # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG +1B04 ; Balinese # Mc BALINESE SIGN BISAH +1B05..1B33 ; Balinese # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA +1B34 ; Balinese # Mn BALINESE SIGN REREKAN +1B35 ; Balinese # Mc BALINESE VOWEL SIGN TEDUNG +1B36..1B3A ; Balinese # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA +1B3B ; Balinese # Mc BALINESE VOWEL SIGN RA REPA TEDUNG +1B3C ; Balinese # Mn BALINESE VOWEL SIGN LA LENGA +1B3D..1B41 ; Balinese # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG +1B42 ; Balinese # Mn BALINESE VOWEL SIGN PEPET +1B43..1B44 ; Balinese # Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG +1B45..1B4C ; Balinese # Lo [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA +1B50..1B59 ; Balinese # Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE +1B5A..1B60 ; Balinese # Po [7] BALINESE PANTI..BALINESE PAMENENG +1B61..1B6A ; Balinese # So [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE +1B6B..1B73 ; Balinese # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG +1B74..1B7C ; Balinese # So [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING +1B7D..1B7E ; Balinese # Po [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG + +# Total code points: 124 + +# ================================================ + +12000..12399 ; Cuneiform # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U +12400..1246E ; Cuneiform # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM +12470..12474 ; Cuneiform # Po [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON +12480..12543 ; Cuneiform # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU + +# Total code points: 1234 + +# ================================================ + +10900..10915 ; Phoenician # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU +10916..1091B ; Phoenician # No [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE +1091F ; Phoenician # Po PHOENICIAN WORD SEPARATOR + +# Total code points: 29 + +# ================================================ + +A840..A873 ; Phags_Pa # Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU +A874..A877 ; Phags_Pa # Po [4] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD + +# Total code points: 56 + +# ================================================ + +07C0..07C9 ; Nko # Nd [10] NKO DIGIT ZERO..NKO DIGIT NINE +07CA..07EA ; Nko # Lo [33] NKO LETTER A..NKO LETTER JONA RA +07EB..07F3 ; Nko # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE +07F4..07F5 ; Nko # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE +07F6 ; Nko # So NKO SYMBOL OO DENNEN +07F7..07F9 ; Nko # Po [3] NKO SYMBOL GBAKURUNEN..NKO EXCLAMATION MARK +07FA ; Nko # Lm NKO LAJANYALAN +07FD ; Nko # Mn NKO DANTAYALAN +07FE..07FF ; Nko # Sc [2] NKO DOROME SIGN..NKO TAMAN SIGN + +# Total code points: 62 + +# ================================================ + +1B80..1B81 ; Sundanese # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR +1B82 ; Sundanese # Mc SUNDANESE SIGN PANGWISAD +1B83..1BA0 ; Sundanese # Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA +1BA1 ; Sundanese # Mc SUNDANESE CONSONANT SIGN PAMINGKAL +1BA2..1BA5 ; Sundanese # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU +1BA6..1BA7 ; Sundanese # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG +1BA8..1BA9 ; Sundanese # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG +1BAA ; Sundanese # Mc SUNDANESE SIGN PAMAAEH +1BAB..1BAD ; Sundanese # Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA +1BAE..1BAF ; Sundanese # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA +1BB0..1BB9 ; Sundanese # Nd [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE +1BBA..1BBF ; Sundanese # Lo [6] SUNDANESE AVAGRAHA..SUNDANESE LETTER FINAL M +1CC0..1CC7 ; Sundanese # Po [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA + +# Total code points: 72 + +# ================================================ + +1C00..1C23 ; Lepcha # Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A +1C24..1C2B ; Lepcha # Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU +1C2C..1C33 ; Lepcha # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T +1C34..1C35 ; Lepcha # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG +1C36..1C37 ; Lepcha # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA +1C3B..1C3F ; Lepcha # Po [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK +1C40..1C49 ; Lepcha # Nd [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE +1C4D..1C4F ; Lepcha # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA + +# Total code points: 74 + +# ================================================ + +1C50..1C59 ; Ol_Chiki # Nd [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE +1C5A..1C77 ; Ol_Chiki # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH +1C78..1C7D ; Ol_Chiki # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD +1C7E..1C7F ; Ol_Chiki # Po [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD + +# Total code points: 48 + +# ================================================ + +A500..A60B ; Vai # Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG +A60C ; Vai # Lm VAI SYLLABLE LENGTHENER +A60D..A60F ; Vai # Po [3] VAI COMMA..VAI QUESTION MARK +A610..A61F ; Vai # Lo [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG +A620..A629 ; Vai # Nd [10] VAI DIGIT ZERO..VAI DIGIT NINE +A62A..A62B ; Vai # Lo [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO + +# Total code points: 300 + +# ================================================ + +A880..A881 ; Saurashtra # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA +A882..A8B3 ; Saurashtra # Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA +A8B4..A8C3 ; Saurashtra # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU +A8C4..A8C5 ; Saurashtra # Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU +A8CE..A8CF ; Saurashtra # Po [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA +A8D0..A8D9 ; Saurashtra # Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE + +# Total code points: 82 + +# ================================================ + +A900..A909 ; Kayah_Li # Nd [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE +A90A..A925 ; Kayah_Li # Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO +A926..A92D ; Kayah_Li # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU +A92F ; Kayah_Li # Po KAYAH LI SIGN SHYA + +# Total code points: 47 + +# ================================================ + +A930..A946 ; Rejang # Lo [23] REJANG LETTER KA..REJANG LETTER A +A947..A951 ; Rejang # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R +A952..A953 ; Rejang # Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA +A95F ; Rejang # Po REJANG SECTION MARK + +# Total code points: 37 + +# ================================================ + +10280..1029C ; Lycian # Lo [29] LYCIAN LETTER A..LYCIAN LETTER X + +# Total code points: 29 + +# ================================================ + +102A0..102D0 ; Carian # Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3 + +# Total code points: 49 + +# ================================================ + +10920..10939 ; Lydian # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C +1093F ; Lydian # Po LYDIAN TRIANGULAR MARK + +# Total code points: 27 + +# ================================================ + +AA00..AA28 ; Cham # Lo [41] CHAM LETTER A..CHAM LETTER HA +AA29..AA2E ; Cham # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE +AA2F..AA30 ; Cham # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI +AA31..AA32 ; Cham # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE +AA33..AA34 ; Cham # Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA +AA35..AA36 ; Cham # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA +AA40..AA42 ; Cham # Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG +AA43 ; Cham # Mn CHAM CONSONANT SIGN FINAL NG +AA44..AA4B ; Cham # Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS +AA4C ; Cham # Mn CHAM CONSONANT SIGN FINAL M +AA4D ; Cham # Mc CHAM CONSONANT SIGN FINAL H +AA50..AA59 ; Cham # Nd [10] CHAM DIGIT ZERO..CHAM DIGIT NINE +AA5C..AA5F ; Cham # Po [4] CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TRIPLE DANDA + +# Total code points: 83 + +# ================================================ + +1A20..1A54 ; Tai_Tham # Lo [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA +1A55 ; Tai_Tham # Mc TAI THAM CONSONANT SIGN MEDIAL RA +1A56 ; Tai_Tham # Mn TAI THAM CONSONANT SIGN MEDIAL LA +1A57 ; Tai_Tham # Mc TAI THAM CONSONANT SIGN LA TANG LAI +1A58..1A5E ; Tai_Tham # Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA +1A60 ; Tai_Tham # Mn TAI THAM SIGN SAKOT +1A61 ; Tai_Tham # Mc TAI THAM VOWEL SIGN A +1A62 ; Tai_Tham # Mn TAI THAM VOWEL SIGN MAI SAT +1A63..1A64 ; Tai_Tham # Mc [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA +1A65..1A6C ; Tai_Tham # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW +1A6D..1A72 ; Tai_Tham # Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI +1A73..1A7C ; Tai_Tham # Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN +1A7F ; Tai_Tham # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT +1A80..1A89 ; Tai_Tham # Nd [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE +1A90..1A99 ; Tai_Tham # Nd [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE +1AA0..1AA6 ; Tai_Tham # Po [7] TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA +1AA7 ; Tai_Tham # Lm TAI THAM SIGN MAI YAMOK +1AA8..1AAD ; Tai_Tham # Po [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG + +# Total code points: 127 + +# ================================================ + +AA80..AAAF ; Tai_Viet # Lo [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O +AAB0 ; Tai_Viet # Mn TAI VIET MAI KANG +AAB1 ; Tai_Viet # Lo TAI VIET VOWEL AA +AAB2..AAB4 ; Tai_Viet # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U +AAB5..AAB6 ; Tai_Viet # Lo [2] TAI VIET VOWEL E..TAI VIET VOWEL O +AAB7..AAB8 ; Tai_Viet # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA +AAB9..AABD ; Tai_Viet # Lo [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN +AABE..AABF ; Tai_Viet # Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK +AAC0 ; Tai_Viet # Lo TAI VIET TONE MAI NUENG +AAC1 ; Tai_Viet # Mn TAI VIET TONE MAI THO +AAC2 ; Tai_Viet # Lo TAI VIET TONE MAI SONG +AADB..AADC ; Tai_Viet # Lo [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG +AADD ; Tai_Viet # Lm TAI VIET SYMBOL SAM +AADE..AADF ; Tai_Viet # Po [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI + +# Total code points: 72 + +# ================================================ + +10B00..10B35 ; Avestan # Lo [54] AVESTAN LETTER A..AVESTAN LETTER HE +10B39..10B3F ; Avestan # Po [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION + +# Total code points: 61 + +# ================================================ + +13000..1342F ; Egyptian_Hieroglyphs # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D +13430..1343F ; Egyptian_Hieroglyphs # Cf [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE +13440 ; Egyptian_Hieroglyphs # Mn EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY +13441..13446 ; Egyptian_Hieroglyphs # Lo [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN +13447..13455 ; Egyptian_Hieroglyphs # Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED + +# Total code points: 1110 + +# ================================================ + +0800..0815 ; Samaritan # Lo [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF +0816..0819 ; Samaritan # Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH +081A ; Samaritan # Lm SAMARITAN MODIFIER LETTER EPENTHETIC YUT +081B..0823 ; Samaritan # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A +0824 ; Samaritan # Lm SAMARITAN MODIFIER LETTER SHORT A +0825..0827 ; Samaritan # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U +0828 ; Samaritan # Lm SAMARITAN MODIFIER LETTER I +0829..082D ; Samaritan # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA +0830..083E ; Samaritan # Po [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU + +# Total code points: 61 + +# ================================================ + +A4D0..A4F7 ; Lisu # Lo [40] LISU LETTER BA..LISU LETTER OE +A4F8..A4FD ; Lisu # Lm [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU +A4FE..A4FF ; Lisu # Po [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP +11FB0 ; Lisu # Lo LISU LETTER YHA + +# Total code points: 49 + +# ================================================ + +A6A0..A6E5 ; Bamum # Lo [70] BAMUM LETTER A..BAMUM LETTER KI +A6E6..A6EF ; Bamum # Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM +A6F0..A6F1 ; Bamum # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS +A6F2..A6F7 ; Bamum # Po [6] BAMUM NJAEMLI..BAMUM QUESTION MARK +16800..16A38 ; Bamum # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ + +# Total code points: 657 + +# ================================================ + +A980..A982 ; Javanese # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR +A983 ; Javanese # Mc JAVANESE SIGN WIGNYAN +A984..A9B2 ; Javanese # Lo [47] JAVANESE LETTER A..JAVANESE LETTER HA +A9B3 ; Javanese # Mn JAVANESE SIGN CECAK TELU +A9B4..A9B5 ; Javanese # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG +A9B6..A9B9 ; Javanese # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT +A9BA..A9BB ; Javanese # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE +A9BC..A9BD ; Javanese # Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET +A9BE..A9C0 ; Javanese # Mc [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON +A9C1..A9CD ; Javanese # Po [13] JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISELEH +A9D0..A9D9 ; Javanese # Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE +A9DE..A9DF ; Javanese # Po [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN + +# Total code points: 90 + +# ================================================ + +AAE0..AAEA ; Meetei_Mayek # Lo [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA +AAEB ; Meetei_Mayek # Mc MEETEI MAYEK VOWEL SIGN II +AAEC..AAED ; Meetei_Mayek # Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI +AAEE..AAEF ; Meetei_Mayek # Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU +AAF0..AAF1 ; Meetei_Mayek # Po [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM +AAF2 ; Meetei_Mayek # Lo MEETEI MAYEK ANJI +AAF3..AAF4 ; Meetei_Mayek # Lm [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK +AAF5 ; Meetei_Mayek # Mc MEETEI MAYEK VOWEL SIGN VISARGA +AAF6 ; Meetei_Mayek # Mn MEETEI MAYEK VIRAMA +ABC0..ABE2 ; Meetei_Mayek # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM +ABE3..ABE4 ; Meetei_Mayek # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP +ABE5 ; Meetei_Mayek # Mn MEETEI MAYEK VOWEL SIGN ANAP +ABE6..ABE7 ; Meetei_Mayek # Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP +ABE8 ; Meetei_Mayek # Mn MEETEI MAYEK VOWEL SIGN UNAP +ABE9..ABEA ; Meetei_Mayek # Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG +ABEB ; Meetei_Mayek # Po MEETEI MAYEK CHEIKHEI +ABEC ; Meetei_Mayek # Mc MEETEI MAYEK LUM IYEK +ABED ; Meetei_Mayek # Mn MEETEI MAYEK APUN IYEK +ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE + +# Total code points: 79 + +# ================================================ + +10840..10855 ; Imperial_Aramaic # Lo [22] IMPERIAL ARAMAIC LETTER ALEPH..IMPERIAL ARAMAIC LETTER TAW +10857 ; Imperial_Aramaic # Po IMPERIAL ARAMAIC SECTION SIGN +10858..1085F ; Imperial_Aramaic # No [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND + +# Total code points: 31 + +# ================================================ + +10A60..10A7C ; Old_South_Arabian # Lo [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH +10A7D..10A7E ; Old_South_Arabian # No [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY +10A7F ; Old_South_Arabian # Po OLD SOUTH ARABIAN NUMERIC INDICATOR + +# Total code points: 32 + +# ================================================ + +10B40..10B55 ; Inscriptional_Parthian # Lo [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW +10B58..10B5F ; Inscriptional_Parthian # No [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND + +# Total code points: 30 + +# ================================================ + +10B60..10B72 ; Inscriptional_Pahlavi # Lo [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW +10B78..10B7F ; Inscriptional_Pahlavi # No [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND + +# Total code points: 27 + +# ================================================ + +10C00..10C48 ; Old_Turkic # Lo [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH + +# Total code points: 73 + +# ================================================ + +11080..11081 ; Kaithi # Mn [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA +11082 ; Kaithi # Mc KAITHI SIGN VISARGA +11083..110AF ; Kaithi # Lo [45] KAITHI LETTER A..KAITHI LETTER HA +110B0..110B2 ; Kaithi # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II +110B3..110B6 ; Kaithi # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI +110B7..110B8 ; Kaithi # Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU +110B9..110BA ; Kaithi # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA +110BB..110BC ; Kaithi # Po [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN +110BD ; Kaithi # Cf KAITHI NUMBER SIGN +110BE..110C1 ; Kaithi # Po [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA +110C2 ; Kaithi # Mn KAITHI VOWEL SIGN VOCALIC R +110CD ; Kaithi # Cf KAITHI NUMBER SIGN ABOVE + +# Total code points: 68 + +# ================================================ + +1BC0..1BE5 ; Batak # Lo [38] BATAK LETTER A..BATAK LETTER U +1BE6 ; Batak # Mn BATAK SIGN TOMPI +1BE7 ; Batak # Mc BATAK VOWEL SIGN E +1BE8..1BE9 ; Batak # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE +1BEA..1BEC ; Batak # Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O +1BED ; Batak # Mn BATAK VOWEL SIGN KARO O +1BEE ; Batak # Mc BATAK VOWEL SIGN U +1BEF..1BF1 ; Batak # Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H +1BF2..1BF3 ; Batak # Mc [2] BATAK PANGOLAT..BATAK PANONGONAN +1BFC..1BFF ; Batak # Po [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT + +# Total code points: 56 + +# ================================================ + +11000 ; Brahmi # Mc BRAHMI SIGN CANDRABINDU +11001 ; Brahmi # Mn BRAHMI SIGN ANUSVARA +11002 ; Brahmi # Mc BRAHMI SIGN VISARGA +11003..11037 ; Brahmi # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA +11038..11046 ; Brahmi # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA +11047..1104D ; Brahmi # Po [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS +11052..11065 ; Brahmi # No [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND +11066..1106F ; Brahmi # Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE +11070 ; Brahmi # Mn BRAHMI SIGN OLD TAMIL VIRAMA +11071..11072 ; Brahmi # Lo [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O +11073..11074 ; Brahmi # Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O +11075 ; Brahmi # Lo BRAHMI LETTER OLD TAMIL LLA +1107F ; Brahmi # Mn BRAHMI NUMBER JOINER + +# Total code points: 115 + +# ================================================ + +0840..0858 ; Mandaic # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN +0859..085B ; Mandaic # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK +085E ; Mandaic # Po MANDAIC PUNCTUATION + +# Total code points: 29 + +# ================================================ + +11100..11102 ; Chakma # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA +11103..11126 ; Chakma # Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA +11127..1112B ; Chakma # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU +1112C ; Chakma # Mc CHAKMA VOWEL SIGN E +1112D..11134 ; Chakma # Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA +11136..1113F ; Chakma # Nd [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE +11140..11143 ; Chakma # Po [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK +11144 ; Chakma # Lo CHAKMA LETTER LHAA +11145..11146 ; Chakma # Mc [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI +11147 ; Chakma # Lo CHAKMA LETTER VAA + +# Total code points: 71 + +# ================================================ + +109A0..109B7 ; Meroitic_Cursive # Lo [24] MEROITIC CURSIVE LETTER A..MEROITIC CURSIVE LETTER DA +109BC..109BD ; Meroitic_Cursive # No [2] MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF +109BE..109BF ; Meroitic_Cursive # Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN +109C0..109CF ; Meroitic_Cursive # No [16] MEROITIC CURSIVE NUMBER ONE..MEROITIC CURSIVE NUMBER SEVENTY +109D2..109FF ; Meroitic_Cursive # No [46] MEROITIC CURSIVE NUMBER ONE HUNDRED..MEROITIC CURSIVE FRACTION TEN TWELFTHS + +# Total code points: 90 + +# ================================================ + +10980..1099F ; Meroitic_Hieroglyphs # Lo [32] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2 + +# Total code points: 32 + +# ================================================ + +16F00..16F4A ; Miao # Lo [75] MIAO LETTER PA..MIAO LETTER RTE +16F4F ; Miao # Mn MIAO SIGN CONSONANT MODIFIER BAR +16F50 ; Miao # Lo MIAO LETTER NASALIZATION +16F51..16F87 ; Miao # Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI +16F8F..16F92 ; Miao # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW +16F93..16F9F ; Miao # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 + +# Total code points: 149 + +# ================================================ + +11180..11181 ; Sharada # Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA +11182 ; Sharada # Mc SHARADA SIGN VISARGA +11183..111B2 ; Sharada # Lo [48] SHARADA LETTER A..SHARADA LETTER HA +111B3..111B5 ; Sharada # Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II +111B6..111BE ; Sharada # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O +111BF..111C0 ; Sharada # Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA +111C1..111C4 ; Sharada # Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM +111C5..111C8 ; Sharada # Po [4] SHARADA DANDA..SHARADA SEPARATOR +111C9..111CC ; Sharada # Mn [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK +111CD ; Sharada # Po SHARADA SUTRA MARK +111CE ; Sharada # Mc SHARADA VOWEL SIGN PRISHTHAMATRA E +111CF ; Sharada # Mn SHARADA SIGN INVERTED CANDRABINDU +111D0..111D9 ; Sharada # Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE +111DA ; Sharada # Lo SHARADA EKAM +111DB ; Sharada # Po SHARADA SIGN SIDDHAM +111DC ; Sharada # Lo SHARADA HEADSTROKE +111DD..111DF ; Sharada # Po [3] SHARADA CONTINUATION SIGN..SHARADA SECTION MARK-2 + +# Total code points: 96 + +# ================================================ + +110D0..110E8 ; Sora_Sompeng # Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE +110F0..110F9 ; Sora_Sompeng # Nd [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE + +# Total code points: 35 + +# ================================================ + +11680..116AA ; Takri # Lo [43] TAKRI LETTER A..TAKRI LETTER RRA +116AB ; Takri # Mn TAKRI SIGN ANUSVARA +116AC ; Takri # Mc TAKRI SIGN VISARGA +116AD ; Takri # Mn TAKRI VOWEL SIGN AA +116AE..116AF ; Takri # Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II +116B0..116B5 ; Takri # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU +116B6 ; Takri # Mc TAKRI SIGN VIRAMA +116B7 ; Takri # Mn TAKRI SIGN NUKTA +116B8 ; Takri # Lo TAKRI LETTER ARCHAIC KHA +116B9 ; Takri # Po TAKRI ABBREVIATION SIGN +116C0..116C9 ; Takri # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE + +# Total code points: 68 + +# ================================================ + +10530..10563 ; Caucasian_Albanian # Lo [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW +1056F ; Caucasian_Albanian # Po CAUCASIAN ALBANIAN CITATION MARK + +# Total code points: 53 + +# ================================================ + +16AD0..16AED ; Bassa_Vah # Lo [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I +16AF0..16AF4 ; Bassa_Vah # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE +16AF5 ; Bassa_Vah # Po BASSA VAH FULL STOP + +# Total code points: 36 + +# ================================================ + +1BC00..1BC6A ; Duployan # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M +1BC70..1BC7C ; Duployan # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK +1BC80..1BC88 ; Duployan # Lo [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL +1BC90..1BC99 ; Duployan # Lo [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW +1BC9C ; Duployan # So DUPLOYAN SIGN O WITH CROSS +1BC9D..1BC9E ; Duployan # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK +1BC9F ; Duployan # Po DUPLOYAN PUNCTUATION CHINOOK FULL STOP + +# Total code points: 143 + +# ================================================ + +10500..10527 ; Elbasan # Lo [40] ELBASAN LETTER A..ELBASAN LETTER KHE + +# Total code points: 40 + +# ================================================ + +11300..11301 ; Grantha # Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU +11302..11303 ; Grantha # Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA +11305..1130C ; Grantha # Lo [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L +1130F..11310 ; Grantha # Lo [2] GRANTHA LETTER EE..GRANTHA LETTER AI +11313..11328 ; Grantha # Lo [22] GRANTHA LETTER OO..GRANTHA LETTER NA +1132A..11330 ; Grantha # Lo [7] GRANTHA LETTER PA..GRANTHA LETTER RA +11332..11333 ; Grantha # Lo [2] GRANTHA LETTER LA..GRANTHA LETTER LLA +11335..11339 ; Grantha # Lo [5] GRANTHA LETTER VA..GRANTHA LETTER HA +1133C ; Grantha # Mn GRANTHA SIGN NUKTA +1133D ; Grantha # Lo GRANTHA SIGN AVAGRAHA +1133E..1133F ; Grantha # Mc [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I +11340 ; Grantha # Mn GRANTHA VOWEL SIGN II +11341..11344 ; Grantha # Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR +11347..11348 ; Grantha # Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI +1134B..1134D ; Grantha # Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA +11350 ; Grantha # Lo GRANTHA OM +11357 ; Grantha # Mc GRANTHA AU LENGTH MARK +1135D..11361 ; Grantha # Lo [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL +11362..11363 ; Grantha # Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL +11366..1136C ; Grantha # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX +11370..11374 ; Grantha # Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA + +# Total code points: 85 + +# ================================================ + +16B00..16B2F ; Pahawh_Hmong # Lo [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU +16B30..16B36 ; Pahawh_Hmong # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM +16B37..16B3B ; Pahawh_Hmong # Po [5] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS FEEM +16B3C..16B3F ; Pahawh_Hmong # So [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB +16B40..16B43 ; Pahawh_Hmong # Lm [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM +16B44 ; Pahawh_Hmong # Po PAHAWH HMONG SIGN XAUS +16B45 ; Pahawh_Hmong # So PAHAWH HMONG SIGN CIM TSOV ROG +16B50..16B59 ; Pahawh_Hmong # Nd [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE +16B5B..16B61 ; Pahawh_Hmong # No [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS +16B63..16B77 ; Pahawh_Hmong # Lo [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS +16B7D..16B8F ; Pahawh_Hmong # Lo [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ + +# Total code points: 127 + +# ================================================ + +11200..11211 ; Khojki # Lo [18] KHOJKI LETTER A..KHOJKI LETTER JJA +11213..1122B ; Khojki # Lo [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA +1122C..1122E ; Khojki # Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II +1122F..11231 ; Khojki # Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI +11232..11233 ; Khojki # Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU +11234 ; Khojki # Mn KHOJKI SIGN ANUSVARA +11235 ; Khojki # Mc KHOJKI SIGN VIRAMA +11236..11237 ; Khojki # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA +11238..1123D ; Khojki # Po [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN +1123E ; Khojki # Mn KHOJKI SIGN SUKUN +1123F..11240 ; Khojki # Lo [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I +11241 ; Khojki # Mn KHOJKI VOWEL SIGN VOCALIC R + +# Total code points: 65 + +# ================================================ + +10600..10736 ; Linear_A # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664 +10740..10755 ; Linear_A # Lo [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE +10760..10767 ; Linear_A # Lo [8] LINEAR A SIGN A800..LINEAR A SIGN A807 + +# Total code points: 341 + +# ================================================ + +11150..11172 ; Mahajani # Lo [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA +11173 ; Mahajani # Mn MAHAJANI SIGN NUKTA +11174..11175 ; Mahajani # Po [2] MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK +11176 ; Mahajani # Lo MAHAJANI LIGATURE SHRI + +# Total code points: 39 + +# ================================================ + +10AC0..10AC7 ; Manichaean # Lo [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW +10AC8 ; Manichaean # So MANICHAEAN SIGN UD +10AC9..10AE4 ; Manichaean # Lo [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW +10AE5..10AE6 ; Manichaean # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW +10AEB..10AEF ; Manichaean # No [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED +10AF0..10AF6 ; Manichaean # Po [7] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION LINE FILLER + +# Total code points: 51 + +# ================================================ + +1E800..1E8C4 ; Mende_Kikakui # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON +1E8C7..1E8CF ; Mende_Kikakui # No [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE +1E8D0..1E8D6 ; Mende_Kikakui # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS + +# Total code points: 213 + +# ================================================ + +11600..1162F ; Modi # Lo [48] MODI LETTER A..MODI LETTER LLA +11630..11632 ; Modi # Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II +11633..1163A ; Modi # Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI +1163B..1163C ; Modi # Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU +1163D ; Modi # Mn MODI SIGN ANUSVARA +1163E ; Modi # Mc MODI SIGN VISARGA +1163F..11640 ; Modi # Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA +11641..11643 ; Modi # Po [3] MODI DANDA..MODI ABBREVIATION SIGN +11644 ; Modi # Lo MODI SIGN HUVA +11650..11659 ; Modi # Nd [10] MODI DIGIT ZERO..MODI DIGIT NINE + +# Total code points: 79 + +# ================================================ + +16A40..16A5E ; Mro # Lo [31] MRO LETTER TA..MRO LETTER TEK +16A60..16A69 ; Mro # Nd [10] MRO DIGIT ZERO..MRO DIGIT NINE +16A6E..16A6F ; Mro # Po [2] MRO DANDA..MRO DOUBLE DANDA + +# Total code points: 43 + +# ================================================ + +10A80..10A9C ; Old_North_Arabian # Lo [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH +10A9D..10A9F ; Old_North_Arabian # No [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY + +# Total code points: 32 + +# ================================================ + +10880..1089E ; Nabataean # Lo [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW +108A7..108AF ; Nabataean # No [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED + +# Total code points: 40 + +# ================================================ + +10860..10876 ; Palmyrene # Lo [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW +10877..10878 ; Palmyrene # So [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON +10879..1087F ; Palmyrene # No [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY + +# Total code points: 32 + +# ================================================ + +11AC0..11AF8 ; Pau_Cin_Hau # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL + +# Total code points: 57 + +# ================================================ + +10350..10375 ; Old_Permic # Lo [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA +10376..1037A ; Old_Permic # Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII + +# Total code points: 43 + +# ================================================ + +10B80..10B91 ; Psalter_Pahlavi # Lo [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW +10B99..10B9C ; Psalter_Pahlavi # Po [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT +10BA9..10BAF ; Psalter_Pahlavi # No [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED + +# Total code points: 29 + +# ================================================ + +11580..115AE ; Siddham # Lo [47] SIDDHAM LETTER A..SIDDHAM LETTER HA +115AF..115B1 ; Siddham # Mc [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II +115B2..115B5 ; Siddham # Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR +115B8..115BB ; Siddham # Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU +115BC..115BD ; Siddham # Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA +115BE ; Siddham # Mc SIDDHAM SIGN VISARGA +115BF..115C0 ; Siddham # Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA +115C1..115D7 ; Siddham # Po [23] SIDDHAM SIGN SIDDHAM..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES +115D8..115DB ; Siddham # Lo [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM LETTER ALTERNATE U +115DC..115DD ; Siddham # Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU + +# Total code points: 92 + +# ================================================ + +112B0..112DE ; Khudawadi # Lo [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA +112DF ; Khudawadi # Mn KHUDAWADI SIGN ANUSVARA +112E0..112E2 ; Khudawadi # Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II +112E3..112EA ; Khudawadi # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA +112F0..112F9 ; Khudawadi # Nd [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE + +# Total code points: 69 + +# ================================================ + +11480..114AF ; Tirhuta # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA +114B0..114B2 ; Tirhuta # Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II +114B3..114B8 ; Tirhuta # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL +114B9 ; Tirhuta # Mc TIRHUTA VOWEL SIGN E +114BA ; Tirhuta # Mn TIRHUTA VOWEL SIGN SHORT E +114BB..114BE ; Tirhuta # Mc [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU +114BF..114C0 ; Tirhuta # Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA +114C1 ; Tirhuta # Mc TIRHUTA SIGN VISARGA +114C2..114C3 ; Tirhuta # Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA +114C4..114C5 ; Tirhuta # Lo [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG +114C6 ; Tirhuta # Po TIRHUTA ABBREVIATION SIGN +114C7 ; Tirhuta # Lo TIRHUTA OM +114D0..114D9 ; Tirhuta # Nd [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE + +# Total code points: 82 + +# ================================================ + +118A0..118DF ; Warang_Citi # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO +118E0..118E9 ; Warang_Citi # Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE +118EA..118F2 ; Warang_Citi # No [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY +118FF ; Warang_Citi # Lo WARANG CITI OM + +# Total code points: 84 + +# ================================================ + +11700..1171A ; Ahom # Lo [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA +1171D..1171F ; Ahom # Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA +11720..11721 ; Ahom # Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA +11722..11725 ; Ahom # Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU +11726 ; Ahom # Mc AHOM VOWEL SIGN E +11727..1172B ; Ahom # Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER +11730..11739 ; Ahom # Nd [10] AHOM DIGIT ZERO..AHOM DIGIT NINE +1173A..1173B ; Ahom # No [2] AHOM NUMBER TEN..AHOM NUMBER TWENTY +1173C..1173E ; Ahom # Po [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI +1173F ; Ahom # So AHOM SYMBOL VI +11740..11746 ; Ahom # Lo [7] AHOM LETTER CA..AHOM LETTER LLA + +# Total code points: 65 + +# ================================================ + +14400..14646 ; Anatolian_Hieroglyphs # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530 + +# Total code points: 583 + +# ================================================ + +108E0..108F2 ; Hatran # Lo [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH +108F4..108F5 ; Hatran # Lo [2] HATRAN LETTER SHIN..HATRAN LETTER TAW +108FB..108FF ; Hatran # No [5] HATRAN NUMBER ONE..HATRAN NUMBER ONE HUNDRED + +# Total code points: 26 + +# ================================================ + +11280..11286 ; Multani # Lo [7] MULTANI LETTER A..MULTANI LETTER GA +11288 ; Multani # Lo MULTANI LETTER GHA +1128A..1128D ; Multani # Lo [4] MULTANI LETTER CA..MULTANI LETTER JJA +1128F..1129D ; Multani # Lo [15] MULTANI LETTER NYA..MULTANI LETTER BA +1129F..112A8 ; Multani # Lo [10] MULTANI LETTER BHA..MULTANI LETTER RHA +112A9 ; Multani # Po MULTANI SECTION MARK + +# Total code points: 38 + +# ================================================ + +10C80..10CB2 ; Old_Hungarian # L& [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US +10CC0..10CF2 ; Old_Hungarian # L& [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US +10CFA..10CFF ; Old_Hungarian # No [6] OLD HUNGARIAN NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND + +# Total code points: 108 + +# ================================================ + +1D800..1D9FF ; SignWriting # So [512] SIGNWRITING HAND-FIST INDEX..SIGNWRITING HEAD +1DA00..1DA36 ; SignWriting # Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN +1DA37..1DA3A ; SignWriting # So [4] SIGNWRITING AIR BLOW SMALL ROTATIONS..SIGNWRITING BREATH EXHALE +1DA3B..1DA6C ; SignWriting # Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT +1DA6D..1DA74 ; SignWriting # So [8] SIGNWRITING SHOULDER HIP SPINE..SIGNWRITING TORSO-FLOORPLANE TWISTING +1DA75 ; SignWriting # Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS +1DA76..1DA83 ; SignWriting # So [14] SIGNWRITING LIMB COMBINATION..SIGNWRITING LOCATION DEPTH +1DA84 ; SignWriting # Mn SIGNWRITING LOCATION HEAD NECK +1DA85..1DA86 ; SignWriting # So [2] SIGNWRITING LOCATION TORSO..SIGNWRITING LOCATION LIMBS DIGITS +1DA87..1DA8B ; SignWriting # Po [5] SIGNWRITING COMMA..SIGNWRITING PARENTHESIS +1DA9B..1DA9F ; SignWriting # Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6 +1DAA1..1DAAF ; SignWriting # Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16 + +# Total code points: 672 + +# ================================================ + +1E900..1E943 ; Adlam # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA +1E944..1E94A ; Adlam # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA +1E94B ; Adlam # Lm ADLAM NASALIZATION MARK +1E950..1E959 ; Adlam # Nd [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE +1E95E..1E95F ; Adlam # Po [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK + +# Total code points: 88 + +# ================================================ + +11C00..11C08 ; Bhaiksuki # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L +11C0A..11C2E ; Bhaiksuki # Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA +11C2F ; Bhaiksuki # Mc BHAIKSUKI VOWEL SIGN AA +11C30..11C36 ; Bhaiksuki # Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L +11C38..11C3D ; Bhaiksuki # Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA +11C3E ; Bhaiksuki # Mc BHAIKSUKI SIGN VISARGA +11C3F ; Bhaiksuki # Mn BHAIKSUKI SIGN VIRAMA +11C40 ; Bhaiksuki # Lo BHAIKSUKI SIGN AVAGRAHA +11C41..11C45 ; Bhaiksuki # Po [5] BHAIKSUKI DANDA..BHAIKSUKI GAP FILLER-2 +11C50..11C59 ; Bhaiksuki # Nd [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE +11C5A..11C6C ; Bhaiksuki # No [19] BHAIKSUKI NUMBER ONE..BHAIKSUKI HUNDREDS UNIT MARK + +# Total code points: 97 + +# ================================================ + +11C70..11C71 ; Marchen # Po [2] MARCHEN HEAD MARK..MARCHEN MARK SHAD +11C72..11C8F ; Marchen # Lo [30] MARCHEN LETTER KA..MARCHEN LETTER A +11C92..11CA7 ; Marchen # Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA +11CA9 ; Marchen # Mc MARCHEN SUBJOINED LETTER YA +11CAA..11CB0 ; Marchen # Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA +11CB1 ; Marchen # Mc MARCHEN VOWEL SIGN I +11CB2..11CB3 ; Marchen # Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E +11CB4 ; Marchen # Mc MARCHEN VOWEL SIGN O +11CB5..11CB6 ; Marchen # Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU + +# Total code points: 68 + +# ================================================ + +11400..11434 ; Newa # Lo [53] NEWA LETTER A..NEWA LETTER HA +11435..11437 ; Newa # Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II +11438..1143F ; Newa # Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI +11440..11441 ; Newa # Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU +11442..11444 ; Newa # Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA +11445 ; Newa # Mc NEWA SIGN VISARGA +11446 ; Newa # Mn NEWA SIGN NUKTA +11447..1144A ; Newa # Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI +1144B..1144F ; Newa # Po [5] NEWA DANDA..NEWA ABBREVIATION SIGN +11450..11459 ; Newa # Nd [10] NEWA DIGIT ZERO..NEWA DIGIT NINE +1145A..1145B ; Newa # Po [2] NEWA DOUBLE COMMA..NEWA PLACEHOLDER MARK +1145D ; Newa # Po NEWA INSERTION SIGN +1145E ; Newa # Mn NEWA SANDHI MARK +1145F..11461 ; Newa # Lo [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA + +# Total code points: 97 + +# ================================================ + +104B0..104D3 ; Osage # L& [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA +104D8..104FB ; Osage # L& [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA + +# Total code points: 72 + +# ================================================ + +16FE0 ; Tangut # Lm TANGUT ITERATION MARK +17000..187F7 ; Tangut # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7 +18800..18AFF ; Tangut # Lo [768] TANGUT COMPONENT-001..TANGUT COMPONENT-768 +18D00..18D08 ; Tangut # Lo [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08 + +# Total code points: 6914 + +# ================================================ + +11D00..11D06 ; Masaram_Gondi # Lo [7] MASARAM GONDI LETTER A..MASARAM GONDI LETTER E +11D08..11D09 ; Masaram_Gondi # Lo [2] MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O +11D0B..11D30 ; Masaram_Gondi # Lo [38] MASARAM GONDI LETTER AU..MASARAM GONDI LETTER TRA +11D31..11D36 ; Masaram_Gondi # Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R +11D3A ; Masaram_Gondi # Mn MASARAM GONDI VOWEL SIGN E +11D3C..11D3D ; Masaram_Gondi # Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O +11D3F..11D45 ; Masaram_Gondi # Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA +11D46 ; Masaram_Gondi # Lo MASARAM GONDI REPHA +11D47 ; Masaram_Gondi # Mn MASARAM GONDI RA-KARA +11D50..11D59 ; Masaram_Gondi # Nd [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE + +# Total code points: 75 + +# ================================================ + +16FE1 ; Nushu # Lm NUSHU ITERATION MARK +1B170..1B2FB ; Nushu # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB + +# Total code points: 397 + +# ================================================ + +11A50 ; Soyombo # Lo SOYOMBO LETTER A +11A51..11A56 ; Soyombo # Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE +11A57..11A58 ; Soyombo # Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU +11A59..11A5B ; Soyombo # Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK +11A5C..11A89 ; Soyombo # Lo [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA +11A8A..11A96 ; Soyombo # Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA +11A97 ; Soyombo # Mc SOYOMBO SIGN VISARGA +11A98..11A99 ; Soyombo # Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER +11A9A..11A9C ; Soyombo # Po [3] SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD +11A9D ; Soyombo # Lo SOYOMBO MARK PLUTA +11A9E..11AA2 ; Soyombo # Po [5] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2 + +# Total code points: 83 + +# ================================================ + +11A00 ; Zanabazar_Square # Lo ZANABAZAR SQUARE LETTER A +11A01..11A0A ; Zanabazar_Square # Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK +11A0B..11A32 ; Zanabazar_Square # Lo [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA +11A33..11A38 ; Zanabazar_Square # Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA +11A39 ; Zanabazar_Square # Mc ZANABAZAR SQUARE SIGN VISARGA +11A3A ; Zanabazar_Square # Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA +11A3B..11A3E ; Zanabazar_Square # Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA +11A3F..11A46 ; Zanabazar_Square # Po [8] ZANABAZAR SQUARE INITIAL HEAD MARK..ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK +11A47 ; Zanabazar_Square # Mn ZANABAZAR SQUARE SUBJOINER + +# Total code points: 72 + +# ================================================ + +11800..1182B ; Dogra # Lo [44] DOGRA LETTER A..DOGRA LETTER RRA +1182C..1182E ; Dogra # Mc [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II +1182F..11837 ; Dogra # Mn [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA +11838 ; Dogra # Mc DOGRA SIGN VISARGA +11839..1183A ; Dogra # Mn [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA +1183B ; Dogra # Po DOGRA ABBREVIATION SIGN + +# Total code points: 60 + +# ================================================ + +11D60..11D65 ; Gunjala_Gondi # Lo [6] GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU +11D67..11D68 ; Gunjala_Gondi # Lo [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI +11D6A..11D89 ; Gunjala_Gondi # Lo [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA +11D8A..11D8E ; Gunjala_Gondi # Mc [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU +11D90..11D91 ; Gunjala_Gondi # Mn [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI +11D93..11D94 ; Gunjala_Gondi # Mc [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU +11D95 ; Gunjala_Gondi # Mn GUNJALA GONDI SIGN ANUSVARA +11D96 ; Gunjala_Gondi # Mc GUNJALA GONDI SIGN VISARGA +11D97 ; Gunjala_Gondi # Mn GUNJALA GONDI VIRAMA +11D98 ; Gunjala_Gondi # Lo GUNJALA GONDI OM +11DA0..11DA9 ; Gunjala_Gondi # Nd [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE + +# Total code points: 63 + +# ================================================ + +11EE0..11EF2 ; Makasar # Lo [19] MAKASAR LETTER KA..MAKASAR ANGKA +11EF3..11EF4 ; Makasar # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U +11EF5..11EF6 ; Makasar # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O +11EF7..11EF8 ; Makasar # Po [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION + +# Total code points: 25 + +# ================================================ + +16E40..16E7F ; Medefaidrin # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y +16E80..16E96 ; Medefaidrin # No [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN DIGIT THREE ALTERNATE FORM +16E97..16E9A ; Medefaidrin # Po [4] MEDEFAIDRIN COMMA..MEDEFAIDRIN EXCLAMATION OH + +# Total code points: 91 + +# ================================================ + +10D00..10D23 ; Hanifi_Rohingya # Lo [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA +10D24..10D27 ; Hanifi_Rohingya # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI +10D30..10D39 ; Hanifi_Rohingya # Nd [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE + +# Total code points: 50 + +# ================================================ + +10F30..10F45 ; Sogdian # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN +10F46..10F50 ; Sogdian # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW +10F51..10F54 ; Sogdian # No [4] SOGDIAN NUMBER ONE..SOGDIAN NUMBER ONE HUNDRED +10F55..10F59 ; Sogdian # Po [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT + +# Total code points: 42 + +# ================================================ + +10F00..10F1C ; Old_Sogdian # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL +10F1D..10F26 ; Old_Sogdian # No [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF +10F27 ; Old_Sogdian # Lo OLD SOGDIAN LIGATURE AYIN-DALETH + +# Total code points: 40 + +# ================================================ + +10FE0..10FF6 ; Elymaic # Lo [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH + +# Total code points: 23 + +# ================================================ + +119A0..119A7 ; Nandinagari # Lo [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR +119AA..119D0 ; Nandinagari # Lo [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA +119D1..119D3 ; Nandinagari # Mc [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II +119D4..119D7 ; Nandinagari # Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR +119DA..119DB ; Nandinagari # Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI +119DC..119DF ; Nandinagari # Mc [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA +119E0 ; Nandinagari # Mn NANDINAGARI SIGN VIRAMA +119E1 ; Nandinagari # Lo NANDINAGARI SIGN AVAGRAHA +119E2 ; Nandinagari # Po NANDINAGARI SIGN SIDDHAM +119E3 ; Nandinagari # Lo NANDINAGARI HEADSTROKE +119E4 ; Nandinagari # Mc NANDINAGARI VOWEL SIGN PRISHTHAMATRA E + +# Total code points: 65 + +# ================================================ + +1E100..1E12C ; Nyiakeng_Puachue_Hmong # Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W +1E130..1E136 ; Nyiakeng_Puachue_Hmong # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D +1E137..1E13D ; Nyiakeng_Puachue_Hmong # Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER +1E140..1E149 ; Nyiakeng_Puachue_Hmong # Nd [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE +1E14E ; Nyiakeng_Puachue_Hmong # Lo NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ +1E14F ; Nyiakeng_Puachue_Hmong # So NYIAKENG PUACHUE HMONG CIRCLED CA + +# Total code points: 71 + +# ================================================ + +1E2C0..1E2EB ; Wancho # Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH +1E2EC..1E2EF ; Wancho # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI +1E2F0..1E2F9 ; Wancho # Nd [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE +1E2FF ; Wancho # Sc WANCHO NGUN SIGN + +# Total code points: 59 + +# ================================================ + +10FB0..10FC4 ; Chorasmian # Lo [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW +10FC5..10FCB ; Chorasmian # No [7] CHORASMIAN NUMBER ONE..CHORASMIAN NUMBER ONE HUNDRED + +# Total code points: 28 + +# ================================================ + +11900..11906 ; Dives_Akuru # Lo [7] DIVES AKURU LETTER A..DIVES AKURU LETTER E +11909 ; Dives_Akuru # Lo DIVES AKURU LETTER O +1190C..11913 ; Dives_Akuru # Lo [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA +11915..11916 ; Dives_Akuru # Lo [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA +11918..1192F ; Dives_Akuru # Lo [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA +11930..11935 ; Dives_Akuru # Mc [6] DIVES AKURU VOWEL SIGN AA..DIVES AKURU VOWEL SIGN E +11937..11938 ; Dives_Akuru # Mc [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O +1193B..1193C ; Dives_Akuru # Mn [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU +1193D ; Dives_Akuru # Mc DIVES AKURU SIGN HALANTA +1193E ; Dives_Akuru # Mn DIVES AKURU VIRAMA +1193F ; Dives_Akuru # Lo DIVES AKURU PREFIXED NASAL SIGN +11940 ; Dives_Akuru # Mc DIVES AKURU MEDIAL YA +11941 ; Dives_Akuru # Lo DIVES AKURU INITIAL RA +11942 ; Dives_Akuru # Mc DIVES AKURU MEDIAL RA +11943 ; Dives_Akuru # Mn DIVES AKURU SIGN NUKTA +11944..11946 ; Dives_Akuru # Po [3] DIVES AKURU DOUBLE DANDA..DIVES AKURU END OF TEXT MARK +11950..11959 ; Dives_Akuru # Nd [10] DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE + +# Total code points: 72 + +# ================================================ + +16FE4 ; Khitan_Small_Script # Mn KHITAN SMALL SCRIPT FILLER +18B00..18CD5 ; Khitan_Small_Script # Lo [470] KHITAN SMALL SCRIPT CHARACTER-18B00..KHITAN SMALL SCRIPT CHARACTER-18CD5 + +# Total code points: 471 + +# ================================================ + +10E80..10EA9 ; Yezidi # Lo [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET +10EAB..10EAC ; Yezidi # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK +10EAD ; Yezidi # Pd YEZIDI HYPHENATION MARK +10EB0..10EB1 ; Yezidi # Lo [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE + +# Total code points: 47 + +# ================================================ + +12F90..12FF0 ; Cypro_Minoan # Lo [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114 +12FF1..12FF2 ; Cypro_Minoan # Po [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302 + +# Total code points: 99 + +# ================================================ + +10F70..10F81 ; Old_Uyghur # Lo [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH +10F82..10F85 ; Old_Uyghur # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW +10F86..10F89 ; Old_Uyghur # Po [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS + +# Total code points: 26 + +# ================================================ + +16A70..16ABE ; Tangsa # Lo [79] TANGSA LETTER OZ..TANGSA LETTER ZA +16AC0..16AC9 ; Tangsa # Nd [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE + +# Total code points: 89 + +# ================================================ + +1E290..1E2AD ; Toto # Lo [30] TOTO LETTER PA..TOTO LETTER A +1E2AE ; Toto # Mn TOTO SIGN RISING TONE + +# Total code points: 31 + +# ================================================ + +10570..1057A ; Vithkuqi # L& [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA +1057C..1058A ; Vithkuqi # L& [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE +1058C..10592 ; Vithkuqi # L& [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE +10594..10595 ; Vithkuqi # L& [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE +10597..105A1 ; Vithkuqi # L& [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA +105A3..105B1 ; Vithkuqi # L& [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE +105B3..105B9 ; Vithkuqi # L& [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE +105BB..105BC ; Vithkuqi # L& [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE + +# Total code points: 70 + +# ================================================ + +11F00..11F01 ; Kawi # Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA +11F02 ; Kawi # Lo KAWI SIGN REPHA +11F03 ; Kawi # Mc KAWI SIGN VISARGA +11F04..11F10 ; Kawi # Lo [13] KAWI LETTER A..KAWI LETTER O +11F12..11F33 ; Kawi # Lo [34] KAWI LETTER KA..KAWI LETTER JNYA +11F34..11F35 ; Kawi # Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA +11F36..11F3A ; Kawi # Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R +11F3E..11F3F ; Kawi # Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI +11F40 ; Kawi # Mn KAWI VOWEL SIGN EU +11F41 ; Kawi # Mc KAWI SIGN KILLER +11F42 ; Kawi # Mn KAWI CONJOINER +11F43..11F4F ; Kawi # Po [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL +11F50..11F59 ; Kawi # Nd [10] KAWI DIGIT ZERO..KAWI DIGIT NINE + +# Total code points: 86 + +# ================================================ + +1E4D0..1E4EA ; Nag_Mundari # Lo [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL +1E4EB ; Nag_Mundari # Lm NAG MUNDARI SIGN OJOD +1E4EC..1E4EF ; Nag_Mundari # Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH +1E4F0..1E4F9 ; Nag_Mundari # Nd [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE + +# Total code points: 42 + +# EOF diff --git a/admin/unidata/SpecialCasing.txt b/admin/unidata/SpecialCasing.txt index 1c2e968a8c48..08d04fa94219 100644 --- a/admin/unidata/SpecialCasing.txt +++ b/admin/unidata/SpecialCasing.txt @@ -1,11 +1,11 @@ -# SpecialCasing-14.0.0.txt -# Date: 2021-03-08, 19:35:55 GMT -# © 2021 Unicode®, Inc. +# SpecialCasing-15.0.0.txt +# Date: 2022-02-02, 23:35:52 GMT +# © 2022 Unicode®, Inc. # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. -# For terms of use, see http://www.unicode.org/terms_of_use.html +# For terms of use, see https://www.unicode.org/terms_of_use.html # # Unicode Character Database -# For documentation, see http://www.unicode.org/reports/tr44/ +# For documentation, see https://www.unicode.org/reports/tr44/ # # Special Casing # diff --git a/admin/unidata/UnicodeData.txt b/admin/unidata/UnicodeData.txt index b5abef7ed437..ea963a7162ce 100644 --- a/admin/unidata/UnicodeData.txt +++ b/admin/unidata/UnicodeData.txt @@ -2975,6 +2975,7 @@ 0CEF;KANNADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0CF1;KANNADA SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;; 0CF2;KANNADA SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;; +0CF3;KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT;Mc;0;L;;;;;N;;;;; 0D00;MALAYALAM SIGN COMBINING ANUSVARA ABOVE;Mn;0;NSM;;;;;N;;;;; 0D01;MALAYALAM SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; 0D02;MALAYALAM SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; @@ -3339,6 +3340,7 @@ 0ECB;LAO TONE MAI CATAWA;Mn;122;NSM;;;;;N;;;;; 0ECC;LAO CANCELLATION MARK;Mn;0;NSM;;;;;N;;;;; 0ECD;LAO NIGGAHITA;Mn;0;NSM;;;;;N;;;;; +0ECE;LAO YAMAKKAN;Mn;0;NSM;;;;;N;;;;; 0ED0;LAO DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0ED1;LAO DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0ED2;LAO DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; @@ -19393,6 +19395,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 10EAD;YEZIDI HYPHENATION MARK;Pd;0;R;;;;;N;;;;; 10EB0;YEZIDI LETTER LAM WITH DOT ABOVE;Lo;0;R;;;;;N;;;;; 10EB1;YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE;Lo;0;R;;;;;N;;;;; +10EFD;ARABIC SMALL LOW WORD SAKTA;Mn;220;NSM;;;;;N;;;;; +10EFE;ARABIC SMALL LOW WORD QASR;Mn;220;NSM;;;;;N;;;;; +10EFF;ARABIC SMALL LOW WORD MADDA;Mn;220;NSM;;;;;N;;;;; 10F00;OLD SOGDIAN LETTER ALEPH;Lo;0;R;;;;;N;;;;; 10F01;OLD SOGDIAN LETTER FINAL ALEPH;Lo;0;R;;;;;N;;;;; 10F02;OLD SOGDIAN LETTER BETH;Lo;0;R;;;;;N;;;;; @@ -20058,6 +20063,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1123C;KHOJKI DOUBLE SECTION MARK;Po;0;L;;;;;N;;;;; 1123D;KHOJKI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;; 1123E;KHOJKI SIGN SUKUN;Mn;0;NSM;;;;;N;;;;; +1123F;KHOJKI LETTER QA;Lo;0;L;;;;;N;;;;; +11240;KHOJKI LETTER SHORT I;Lo;0;L;;;;;N;;;;; +11241;KHOJKI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; 11280;MULTANI LETTER A;Lo;0;L;;;;;N;;;;; 11281;MULTANI LETTER I;Lo;0;L;;;;;N;;;;; 11282;MULTANI LETTER U;Lo;0;L;;;;;N;;;;; @@ -21256,6 +21264,16 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 11AF6;PAU CIN HAU LOW-FALLING TONE LONG FINAL;Lo;0;L;;;;;N;;;;; 11AF7;PAU CIN HAU LOW-FALLING TONE FINAL;Lo;0;L;;;;;N;;;;; 11AF8;PAU CIN HAU GLOTTAL STOP FINAL;Lo;0;L;;;;;N;;;;; +11B00;DEVANAGARI HEAD MARK;Po;0;L;;;;;N;;;;; +11B01;DEVANAGARI HEAD MARK WITH HEADSTROKE;Po;0;L;;;;;N;;;;; +11B02;DEVANAGARI SIGN BHALE;Po;0;L;;;;;N;;;;; +11B03;DEVANAGARI SIGN BHALE WITH HOOK;Po;0;L;;;;;N;;;;; +11B04;DEVANAGARI SIGN EXTENDED BHALE;Po;0;L;;;;;N;;;;; +11B05;DEVANAGARI SIGN EXTENDED BHALE WITH HOOK;Po;0;L;;;;;N;;;;; +11B06;DEVANAGARI SIGN WESTERN FIVE-LIKE BHALE;Po;0;L;;;;;N;;;;; +11B07;DEVANAGARI SIGN WESTERN NINE-LIKE BHALE;Po;0;L;;;;;N;;;;; +11B08;DEVANAGARI SIGN REVERSED NINE-LIKE BHALE;Po;0;L;;;;;N;;;;; +11B09;DEVANAGARI SIGN MINDU;Po;0;L;;;;;N;;;;; 11C00;BHAIKSUKI LETTER A;Lo;0;L;;;;;N;;;;; 11C01;BHAIKSUKI LETTER AA;Lo;0;L;;;;;N;;;;; 11C02;BHAIKSUKI LETTER I;Lo;0;L;;;;;N;;;;; @@ -21584,6 +21602,92 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 11EF6;MAKASAR VOWEL SIGN O;Mc;0;L;;;;;N;;;;; 11EF7;MAKASAR PASSIMBANG;Po;0;L;;;;;N;;;;; 11EF8;MAKASAR END OF SECTION;Po;0;L;;;;;N;;;;; +11F00;KAWI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; +11F01;KAWI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; +11F02;KAWI SIGN REPHA;Lo;0;L;;;;;N;;;;; +11F03;KAWI SIGN VISARGA;Mc;0;L;;;;;N;;;;; +11F04;KAWI LETTER A;Lo;0;L;;;;;N;;;;; +11F05;KAWI LETTER AA;Lo;0;L;;;;;N;;;;; +11F06;KAWI LETTER I;Lo;0;L;;;;;N;;;;; +11F07;KAWI LETTER II;Lo;0;L;;;;;N;;;;; +11F08;KAWI LETTER U;Lo;0;L;;;;;N;;;;; +11F09;KAWI LETTER UU;Lo;0;L;;;;;N;;;;; +11F0A;KAWI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; +11F0B;KAWI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; +11F0C;KAWI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; +11F0D;KAWI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; +11F0E;KAWI LETTER E;Lo;0;L;;;;;N;;;;; +11F0F;KAWI LETTER AI;Lo;0;L;;;;;N;;;;; +11F10;KAWI LETTER O;Lo;0;L;;;;;N;;;;; +11F12;KAWI LETTER KA;Lo;0;L;;;;;N;;;;; +11F13;KAWI LETTER KHA;Lo;0;L;;;;;N;;;;; +11F14;KAWI LETTER GA;Lo;0;L;;;;;N;;;;; +11F15;KAWI LETTER GHA;Lo;0;L;;;;;N;;;;; +11F16;KAWI LETTER NGA;Lo;0;L;;;;;N;;;;; +11F17;KAWI LETTER CA;Lo;0;L;;;;;N;;;;; +11F18;KAWI LETTER CHA;Lo;0;L;;;;;N;;;;; +11F19;KAWI LETTER JA;Lo;0;L;;;;;N;;;;; +11F1A;KAWI LETTER JHA;Lo;0;L;;;;;N;;;;; +11F1B;KAWI LETTER NYA;Lo;0;L;;;;;N;;;;; +11F1C;KAWI LETTER TTA;Lo;0;L;;;;;N;;;;; +11F1D;KAWI LETTER TTHA;Lo;0;L;;;;;N;;;;; +11F1E;KAWI LETTER DDA;Lo;0;L;;;;;N;;;;; +11F1F;KAWI LETTER DDHA;Lo;0;L;;;;;N;;;;; +11F20;KAWI LETTER NNA;Lo;0;L;;;;;N;;;;; +11F21;KAWI LETTER TA;Lo;0;L;;;;;N;;;;; +11F22;KAWI LETTER THA;Lo;0;L;;;;;N;;;;; +11F23;KAWI LETTER DA;Lo;0;L;;;;;N;;;;; +11F24;KAWI LETTER DHA;Lo;0;L;;;;;N;;;;; +11F25;KAWI LETTER NA;Lo;0;L;;;;;N;;;;; +11F26;KAWI LETTER PA;Lo;0;L;;;;;N;;;;; +11F27;KAWI LETTER PHA;Lo;0;L;;;;;N;;;;; +11F28;KAWI LETTER BA;Lo;0;L;;;;;N;;;;; +11F29;KAWI LETTER BHA;Lo;0;L;;;;;N;;;;; +11F2A;KAWI LETTER MA;Lo;0;L;;;;;N;;;;; +11F2B;KAWI LETTER YA;Lo;0;L;;;;;N;;;;; +11F2C;KAWI LETTER RA;Lo;0;L;;;;;N;;;;; +11F2D;KAWI LETTER LA;Lo;0;L;;;;;N;;;;; +11F2E;KAWI LETTER WA;Lo;0;L;;;;;N;;;;; +11F2F;KAWI LETTER SHA;Lo;0;L;;;;;N;;;;; +11F30;KAWI LETTER SSA;Lo;0;L;;;;;N;;;;; +11F31;KAWI LETTER SA;Lo;0;L;;;;;N;;;;; +11F32;KAWI LETTER HA;Lo;0;L;;;;;N;;;;; +11F33;KAWI LETTER JNYA;Lo;0;L;;;;;N;;;;; +11F34;KAWI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; +11F35;KAWI VOWEL SIGN ALTERNATE AA;Mc;0;L;;;;;N;;;;; +11F36;KAWI VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; +11F37;KAWI VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; +11F38;KAWI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; +11F39;KAWI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; +11F3A;KAWI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; +11F3E;KAWI VOWEL SIGN E;Mc;0;L;;;;;N;;;;; +11F3F;KAWI VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; +11F40;KAWI VOWEL SIGN EU;Mn;0;NSM;;;;;N;;;;; +11F41;KAWI SIGN KILLER;Mc;9;L;;;;;N;;;;; +11F42;KAWI CONJOINER;Mn;9;NSM;;;;;N;;;;; +11F43;KAWI DANDA;Po;0;L;;;;;N;;;;; +11F44;KAWI DOUBLE DANDA;Po;0;L;;;;;N;;;;; +11F45;KAWI PUNCTUATION SECTION MARKER;Po;0;L;;;;;N;;;;; +11F46;KAWI PUNCTUATION ALTERNATE SECTION MARKER;Po;0;L;;;;;N;;;;; +11F47;KAWI PUNCTUATION FLOWER;Po;0;L;;;;;N;;;;; +11F48;KAWI PUNCTUATION SPACE FILLER;Po;0;L;;;;;N;;;;; +11F49;KAWI PUNCTUATION DOT;Po;0;L;;;;;N;;;;; +11F4A;KAWI PUNCTUATION DOUBLE DOT;Po;0;L;;;;;N;;;;; +11F4B;KAWI PUNCTUATION TRIPLE DOT;Po;0;L;;;;;N;;;;; +11F4C;KAWI PUNCTUATION CIRCLE;Po;0;L;;;;;N;;;;; +11F4D;KAWI PUNCTUATION FILLED CIRCLE;Po;0;L;;;;;N;;;;; +11F4E;KAWI PUNCTUATION SPIRAL;Po;0;L;;;;;N;;;;; +11F4F;KAWI PUNCTUATION CLOSING SPIRAL;Po;0;L;;;;;N;;;;; +11F50;KAWI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +11F51;KAWI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +11F52;KAWI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +11F53;KAWI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +11F54;KAWI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +11F55;KAWI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +11F56;KAWI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +11F57;KAWI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +11F58;KAWI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +11F59;KAWI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 11FB0;LISU LETTER YHA;Lo;0;L;;;;;N;;;;; 11FC0;TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH;No;0;L;;;;1/320;N;;;;; 11FC1;TAMIL FRACTION ONE ONE-HUNDRED-AND-SIXTIETH;No;0;L;;;;1/160;N;;;;; @@ -24040,6 +24144,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1342C;EGYPTIAN HIEROGLYPH AA030;Lo;0;L;;;;;N;;;;; 1342D;EGYPTIAN HIEROGLYPH AA031;Lo;0;L;;;;;N;;;;; 1342E;EGYPTIAN HIEROGLYPH AA032;Lo;0;L;;;;;N;;;;; +1342F;EGYPTIAN HIEROGLYPH V011D;Lo;0;L;;;;;N;;;;; 13430;EGYPTIAN HIEROGLYPH VERTICAL JOINER;Cf;0;L;;;;;N;;;;; 13431;EGYPTIAN HIEROGLYPH HORIZONTAL JOINER;Cf;0;L;;;;;N;;;;; 13432;EGYPTIAN HIEROGLYPH INSERT AT TOP START;Cf;0;L;;;;;N;;;;; @@ -24049,6 +24154,35 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 13436;EGYPTIAN HIEROGLYPH OVERLAY MIDDLE;Cf;0;L;;;;;N;;;;; 13437;EGYPTIAN HIEROGLYPH BEGIN SEGMENT;Cf;0;L;;;;;N;;;;; 13438;EGYPTIAN HIEROGLYPH END SEGMENT;Cf;0;L;;;;;N;;;;; +13439;EGYPTIAN HIEROGLYPH INSERT AT MIDDLE;Cf;0;L;;;;;N;;;;; +1343A;EGYPTIAN HIEROGLYPH INSERT AT TOP;Cf;0;L;;;;;N;;;;; +1343B;EGYPTIAN HIEROGLYPH INSERT AT BOTTOM;Cf;0;L;;;;;N;;;;; +1343C;EGYPTIAN HIEROGLYPH BEGIN ENCLOSURE;Cf;0;L;;;;;N;;;;; +1343D;EGYPTIAN HIEROGLYPH END ENCLOSURE;Cf;0;L;;;;;N;;;;; +1343E;EGYPTIAN HIEROGLYPH BEGIN WALLED ENCLOSURE;Cf;0;L;;;;;N;;;;; +1343F;EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE;Cf;0;L;;;;;N;;;;; +13440;EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY;Mn;0;NSM;;;;;N;;;;; +13441;EGYPTIAN HIEROGLYPH FULL BLANK;Lo;0;L;;;;;N;;;;; +13442;EGYPTIAN HIEROGLYPH HALF BLANK;Lo;0;L;;;;;N;;;;; +13443;EGYPTIAN HIEROGLYPH LOST SIGN;Lo;0;L;;;;;N;;;;; +13444;EGYPTIAN HIEROGLYPH HALF LOST SIGN;Lo;0;L;;;;;N;;;;; +13445;EGYPTIAN HIEROGLYPH TALL LOST SIGN;Lo;0;L;;;;;N;;;;; +13446;EGYPTIAN HIEROGLYPH WIDE LOST SIGN;Lo;0;L;;;;;N;;;;; +13447;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START;Mn;0;NSM;;;;;N;;;;; +13448;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM START;Mn;0;NSM;;;;;N;;;;; +13449;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START;Mn;0;NSM;;;;;N;;;;; +1344A;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP END;Mn;0;NSM;;;;;N;;;;; +1344B;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP;Mn;0;NSM;;;;;N;;;;; +1344C;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM START AND TOP END;Mn;0;NSM;;;;;N;;;;; +1344D;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START AND TOP;Mn;0;NSM;;;;;N;;;;; +1344E;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM END;Mn;0;NSM;;;;;N;;;;; +1344F;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START AND BOTTOM END;Mn;0;NSM;;;;;N;;;;; +13450;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM;Mn;0;NSM;;;;;N;;;;; +13451;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START AND BOTTOM;Mn;0;NSM;;;;;N;;;;; +13452;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT END;Mn;0;NSM;;;;;N;;;;; +13453;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP AND END;Mn;0;NSM;;;;;N;;;;; +13454;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM AND END;Mn;0;NSM;;;;;N;;;;; +13455;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED;Mn;0;NSM;;;;;N;;;;; 14400;ANATOLIAN HIEROGLYPH A001;Lo;0;L;;;;;N;;;;; 14401;ANATOLIAN HIEROGLYPH A002;Lo;0;L;;;;;N;;;;; 14402;ANATOLIAN HIEROGLYPH A003;Lo;0;L;;;;;N;;;;; @@ -27289,9 +27423,11 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1B120;KATAKANA LETTER ARCHAIC YI;Lo;0;L;;;;;N;;;;; 1B121;KATAKANA LETTER ARCHAIC YE;Lo;0;L;;;;;N;;;;; 1B122;KATAKANA LETTER ARCHAIC WU;Lo;0;L;;;;;N;;;;; +1B132;HIRAGANA LETTER SMALL KO;Lo;0;L;;;;;N;;;;; 1B150;HIRAGANA LETTER SMALL WI;Lo;0;L;;;;;N;;;;; 1B151;HIRAGANA LETTER SMALL WE;Lo;0;L;;;;;N;;;;; 1B152;HIRAGANA LETTER SMALL WO;Lo;0;L;;;;;N;;;;; +1B155;KATAKANA LETTER SMALL KO;Lo;0;L;;;;;N;;;;; 1B164;KATAKANA LETTER SMALL WI;Lo;0;L;;;;;N;;;;; 1B165;KATAKANA LETTER SMALL WE;Lo;0;L;;;;;N;;;;; 1B166;KATAKANA LETTER SMALL WO;Lo;0;L;;;;;N;;;;; @@ -28573,6 +28709,26 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1D243;COMBINING GREEK MUSICAL TETRASEME;Mn;230;NSM;;;;;N;;;;; 1D244;COMBINING GREEK MUSICAL PENTASEME;Mn;230;NSM;;;;;N;;;;; 1D245;GREEK MUSICAL LEIMMA;So;0;ON;;;;;N;;;;; +1D2C0;KAKTOVIK NUMERAL ZERO;No;0;L;;;;0;N;;;;; +1D2C1;KAKTOVIK NUMERAL ONE;No;0;L;;;;1;N;;;;; +1D2C2;KAKTOVIK NUMERAL TWO;No;0;L;;;;2;N;;;;; +1D2C3;KAKTOVIK NUMERAL THREE;No;0;L;;;;3;N;;;;; +1D2C4;KAKTOVIK NUMERAL FOUR;No;0;L;;;;4;N;;;;; +1D2C5;KAKTOVIK NUMERAL FIVE;No;0;L;;;;5;N;;;;; +1D2C6;KAKTOVIK NUMERAL SIX;No;0;L;;;;6;N;;;;; +1D2C7;KAKTOVIK NUMERAL SEVEN;No;0;L;;;;7;N;;;;; +1D2C8;KAKTOVIK NUMERAL EIGHT;No;0;L;;;;8;N;;;;; +1D2C9;KAKTOVIK NUMERAL NINE;No;0;L;;;;9;N;;;;; +1D2CA;KAKTOVIK NUMERAL TEN;No;0;L;;;;10;N;;;;; +1D2CB;KAKTOVIK NUMERAL ELEVEN;No;0;L;;;;11;N;;;;; +1D2CC;KAKTOVIK NUMERAL TWELVE;No;0;L;;;;12;N;;;;; +1D2CD;KAKTOVIK NUMERAL THIRTEEN;No;0;L;;;;13;N;;;;; +1D2CE;KAKTOVIK NUMERAL FOURTEEN;No;0;L;;;;14;N;;;;; +1D2CF;KAKTOVIK NUMERAL FIFTEEN;No;0;L;;;;15;N;;;;; +1D2D0;KAKTOVIK NUMERAL SIXTEEN;No;0;L;;;;16;N;;;;; +1D2D1;KAKTOVIK NUMERAL SEVENTEEN;No;0;L;;;;17;N;;;;; +1D2D2;KAKTOVIK NUMERAL EIGHTEEN;No;0;L;;;;18;N;;;;; +1D2D3;KAKTOVIK NUMERAL NINETEEN;No;0;L;;;;19;N;;;;; 1D2E0;MAYAN NUMERAL ZERO;No;0;L;;;;0;N;;;;; 1D2E1;MAYAN NUMERAL ONE;No;0;L;;;;1;N;;;;; 1D2E2;MAYAN NUMERAL TWO;No;0;L;;;;2;N;;;;; @@ -30404,6 +30560,12 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1DF1C;LATIN SMALL LETTER TESH DIGRAPH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; 1DF1D;LATIN SMALL LETTER C WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; 1DF1E;LATIN SMALL LETTER S WITH CURL;Ll;0;L;;;;;N;;;;; +1DF25;LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;; +1DF26;LATIN SMALL LETTER L WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;; +1DF27;LATIN SMALL LETTER N WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;; +1DF28;LATIN SMALL LETTER R WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;; +1DF29;LATIN SMALL LETTER S WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;; +1DF2A;LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;; 1E000;COMBINING GLAGOLITIC LETTER AZU;Mn;230;NSM;;;;;N;;;;; 1E001;COMBINING GLAGOLITIC LETTER BUKY;Mn;230;NSM;;;;;N;;;;; 1E002;COMBINING GLAGOLITIC LETTER VEDE;Mn;230;NSM;;;;;N;;;;; @@ -30442,6 +30604,69 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1E028;COMBINING GLAGOLITIC LETTER BIG YUS;Mn;230;NSM;;;;;N;;;;; 1E029;COMBINING GLAGOLITIC LETTER IOTATED BIG YUS;Mn;230;NSM;;;;;N;;;;; 1E02A;COMBINING GLAGOLITIC LETTER FITA;Mn;230;NSM;;;;;N;;;;; +1E030;MODIFIER LETTER CYRILLIC SMALL A;Lm;0;L;<super> 0430;;;;N;;;;; +1E031;MODIFIER LETTER CYRILLIC SMALL BE;Lm;0;L;<super> 0431;;;;N;;;;; +1E032;MODIFIER LETTER CYRILLIC SMALL VE;Lm;0;L;<super> 0432;;;;N;;;;; +1E033;MODIFIER LETTER CYRILLIC SMALL GHE;Lm;0;L;<super> 0433;;;;N;;;;; +1E034;MODIFIER LETTER CYRILLIC SMALL DE;Lm;0;L;<super> 0434;;;;N;;;;; +1E035;MODIFIER LETTER CYRILLIC SMALL IE;Lm;0;L;<super> 0435;;;;N;;;;; +1E036;MODIFIER LETTER CYRILLIC SMALL ZHE;Lm;0;L;<super> 0436;;;;N;;;;; +1E037;MODIFIER LETTER CYRILLIC SMALL ZE;Lm;0;L;<super> 0437;;;;N;;;;; +1E038;MODIFIER LETTER CYRILLIC SMALL I;Lm;0;L;<super> 0438;;;;N;;;;; +1E039;MODIFIER LETTER CYRILLIC SMALL KA;Lm;0;L;<super> 043A;;;;N;;;;; +1E03A;MODIFIER LETTER CYRILLIC SMALL EL;Lm;0;L;<super> 043B;;;;N;;;;; +1E03B;MODIFIER LETTER CYRILLIC SMALL EM;Lm;0;L;<super> 043C;;;;N;;;;; +1E03C;MODIFIER LETTER CYRILLIC SMALL O;Lm;0;L;<super> 043E;;;;N;;;;; +1E03D;MODIFIER LETTER CYRILLIC SMALL PE;Lm;0;L;<super> 043F;;;;N;;;;; +1E03E;MODIFIER LETTER CYRILLIC SMALL ER;Lm;0;L;<super> 0440;;;;N;;;;; +1E03F;MODIFIER LETTER CYRILLIC SMALL ES;Lm;0;L;<super> 0441;;;;N;;;;; +1E040;MODIFIER LETTER CYRILLIC SMALL TE;Lm;0;L;<super> 0442;;;;N;;;;; +1E041;MODIFIER LETTER CYRILLIC SMALL U;Lm;0;L;<super> 0443;;;;N;;;;; +1E042;MODIFIER LETTER CYRILLIC SMALL EF;Lm;0;L;<super> 0444;;;;N;;;;; +1E043;MODIFIER LETTER CYRILLIC SMALL HA;Lm;0;L;<super> 0445;;;;N;;;;; +1E044;MODIFIER LETTER CYRILLIC SMALL TSE;Lm;0;L;<super> 0446;;;;N;;;;; +1E045;MODIFIER LETTER CYRILLIC SMALL CHE;Lm;0;L;<super> 0447;;;;N;;;;; +1E046;MODIFIER LETTER CYRILLIC SMALL SHA;Lm;0;L;<super> 0448;;;;N;;;;; +1E047;MODIFIER LETTER CYRILLIC SMALL YERU;Lm;0;L;<super> 044B;;;;N;;;;; +1E048;MODIFIER LETTER CYRILLIC SMALL E;Lm;0;L;<super> 044D;;;;N;;;;; +1E049;MODIFIER LETTER CYRILLIC SMALL YU;Lm;0;L;<super> 044E;;;;N;;;;; +1E04A;MODIFIER LETTER CYRILLIC SMALL DZZE;Lm;0;L;<super> A689;;;;N;;;;; +1E04B;MODIFIER LETTER CYRILLIC SMALL SCHWA;Lm;0;L;<super> 04D9;;;;N;;;;; +1E04C;MODIFIER LETTER CYRILLIC SMALL BYELORUSSIAN-UKRAINIAN I;Lm;0;L;<super> 0456;;;;N;;;;; +1E04D;MODIFIER LETTER CYRILLIC SMALL JE;Lm;0;L;<super> 0458;;;;N;;;;; +1E04E;MODIFIER LETTER CYRILLIC SMALL BARRED O;Lm;0;L;<super> 04E9;;;;N;;;;; +1E04F;MODIFIER LETTER CYRILLIC SMALL STRAIGHT U;Lm;0;L;<super> 04AF;;;;N;;;;; +1E050;MODIFIER LETTER CYRILLIC SMALL PALOCHKA;Lm;0;L;<super> 04CF;;;;N;;;;; +1E051;CYRILLIC SUBSCRIPT SMALL LETTER A;Lm;0;L;<sub> 0430;;;;N;;;;; +1E052;CYRILLIC SUBSCRIPT SMALL LETTER BE;Lm;0;L;<sub> 0431;;;;N;;;;; +1E053;CYRILLIC SUBSCRIPT SMALL LETTER VE;Lm;0;L;<sub> 0432;;;;N;;;;; +1E054;CYRILLIC SUBSCRIPT SMALL LETTER GHE;Lm;0;L;<sub> 0433;;;;N;;;;; +1E055;CYRILLIC SUBSCRIPT SMALL LETTER DE;Lm;0;L;<sub> 0434;;;;N;;;;; +1E056;CYRILLIC SUBSCRIPT SMALL LETTER IE;Lm;0;L;<sub> 0435;;;;N;;;;; +1E057;CYRILLIC SUBSCRIPT SMALL LETTER ZHE;Lm;0;L;<sub> 0436;;;;N;;;;; +1E058;CYRILLIC SUBSCRIPT SMALL LETTER ZE;Lm;0;L;<sub> 0437;;;;N;;;;; +1E059;CYRILLIC SUBSCRIPT SMALL LETTER I;Lm;0;L;<sub> 0438;;;;N;;;;; +1E05A;CYRILLIC SUBSCRIPT SMALL LETTER KA;Lm;0;L;<sub> 043A;;;;N;;;;; +1E05B;CYRILLIC SUBSCRIPT SMALL LETTER EL;Lm;0;L;<sub> 043B;;;;N;;;;; +1E05C;CYRILLIC SUBSCRIPT SMALL LETTER O;Lm;0;L;<sub> 043E;;;;N;;;;; +1E05D;CYRILLIC SUBSCRIPT SMALL LETTER PE;Lm;0;L;<sub> 043F;;;;N;;;;; +1E05E;CYRILLIC SUBSCRIPT SMALL LETTER ES;Lm;0;L;<sub> 0441;;;;N;;;;; +1E05F;CYRILLIC SUBSCRIPT SMALL LETTER U;Lm;0;L;<sub> 0443;;;;N;;;;; +1E060;CYRILLIC SUBSCRIPT SMALL LETTER EF;Lm;0;L;<sub> 0444;;;;N;;;;; +1E061;CYRILLIC SUBSCRIPT SMALL LETTER HA;Lm;0;L;<sub> 0445;;;;N;;;;; +1E062;CYRILLIC SUBSCRIPT SMALL LETTER TSE;Lm;0;L;<sub> 0446;;;;N;;;;; +1E063;CYRILLIC SUBSCRIPT SMALL LETTER CHE;Lm;0;L;<sub> 0447;;;;N;;;;; +1E064;CYRILLIC SUBSCRIPT SMALL LETTER SHA;Lm;0;L;<sub> 0448;;;;N;;;;; +1E065;CYRILLIC SUBSCRIPT SMALL LETTER HARD SIGN;Lm;0;L;<sub> 044A;;;;N;;;;; +1E066;CYRILLIC SUBSCRIPT SMALL LETTER YERU;Lm;0;L;<sub> 044B;;;;N;;;;; +1E067;CYRILLIC SUBSCRIPT SMALL LETTER GHE WITH UPTURN;Lm;0;L;<sub> 0491;;;;N;;;;; +1E068;CYRILLIC SUBSCRIPT SMALL LETTER BYELORUSSIAN-UKRAINIAN I;Lm;0;L;<sub> 0456;;;;N;;;;; +1E069;CYRILLIC SUBSCRIPT SMALL LETTER DZE;Lm;0;L;<sub> 0455;;;;N;;;;; +1E06A;CYRILLIC SUBSCRIPT SMALL LETTER DZHE;Lm;0;L;<sub> 045F;;;;N;;;;; +1E06B;MODIFIER LETTER CYRILLIC SMALL ES WITH DESCENDER;Lm;0;L;<super> 04AB;;;;N;;;;; +1E06C;MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER;Lm;0;L;<super> A651;;;;N;;;;; +1E06D;MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE;Lm;0;L;<super> 04B1;;;;N;;;;; +1E08F;COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I;Mn;230;NSM;;;;;N;;;;; 1E100;NYIAKENG PUACHUE HMONG LETTER MA;Lo;0;L;;;;;N;;;;; 1E101;NYIAKENG PUACHUE HMONG LETTER TSA;Lo;0;L;;;;;N;;;;; 1E102;NYIAKENG PUACHUE HMONG LETTER NTA;Lo;0;L;;;;;N;;;;; @@ -30603,6 +30828,48 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1E2F8;WANCHO DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 1E2F9;WANCHO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 1E2FF;WANCHO NGUN SIGN;Sc;0;ET;;;;;N;;;;; +1E4D0;NAG MUNDARI LETTER O;Lo;0;L;;;;;N;;;;; +1E4D1;NAG MUNDARI LETTER OP;Lo;0;L;;;;;N;;;;; +1E4D2;NAG MUNDARI LETTER OL;Lo;0;L;;;;;N;;;;; +1E4D3;NAG MUNDARI LETTER OY;Lo;0;L;;;;;N;;;;; +1E4D4;NAG MUNDARI LETTER ONG;Lo;0;L;;;;;N;;;;; +1E4D5;NAG MUNDARI LETTER A;Lo;0;L;;;;;N;;;;; +1E4D6;NAG MUNDARI LETTER AJ;Lo;0;L;;;;;N;;;;; +1E4D7;NAG MUNDARI LETTER AB;Lo;0;L;;;;;N;;;;; +1E4D8;NAG MUNDARI LETTER ANY;Lo;0;L;;;;;N;;;;; +1E4D9;NAG MUNDARI LETTER AH;Lo;0;L;;;;;N;;;;; +1E4DA;NAG MUNDARI LETTER I;Lo;0;L;;;;;N;;;;; +1E4DB;NAG MUNDARI LETTER IS;Lo;0;L;;;;;N;;;;; +1E4DC;NAG MUNDARI LETTER IDD;Lo;0;L;;;;;N;;;;; +1E4DD;NAG MUNDARI LETTER IT;Lo;0;L;;;;;N;;;;; +1E4DE;NAG MUNDARI LETTER IH;Lo;0;L;;;;;N;;;;; +1E4DF;NAG MUNDARI LETTER U;Lo;0;L;;;;;N;;;;; +1E4E0;NAG MUNDARI LETTER UC;Lo;0;L;;;;;N;;;;; +1E4E1;NAG MUNDARI LETTER UD;Lo;0;L;;;;;N;;;;; +1E4E2;NAG MUNDARI LETTER UK;Lo;0;L;;;;;N;;;;; +1E4E3;NAG MUNDARI LETTER UR;Lo;0;L;;;;;N;;;;; +1E4E4;NAG MUNDARI LETTER E;Lo;0;L;;;;;N;;;;; +1E4E5;NAG MUNDARI LETTER ENN;Lo;0;L;;;;;N;;;;; +1E4E6;NAG MUNDARI LETTER EG;Lo;0;L;;;;;N;;;;; +1E4E7;NAG MUNDARI LETTER EM;Lo;0;L;;;;;N;;;;; +1E4E8;NAG MUNDARI LETTER EN;Lo;0;L;;;;;N;;;;; +1E4E9;NAG MUNDARI LETTER ETT;Lo;0;L;;;;;N;;;;; +1E4EA;NAG MUNDARI LETTER ELL;Lo;0;L;;;;;N;;;;; +1E4EB;NAG MUNDARI SIGN OJOD;Lm;0;L;;;;;N;;;;; +1E4EC;NAG MUNDARI SIGN MUHOR;Mn;232;NSM;;;;;N;;;;; +1E4ED;NAG MUNDARI SIGN TOYOR;Mn;232;NSM;;;;;N;;;;; +1E4EE;NAG MUNDARI SIGN IKIR;Mn;220;NSM;;;;;N;;;;; +1E4EF;NAG MUNDARI SIGN SUTUH;Mn;230;NSM;;;;;N;;;;; +1E4F0;NAG MUNDARI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +1E4F1;NAG MUNDARI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +1E4F2;NAG MUNDARI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +1E4F3;NAG MUNDARI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +1E4F4;NAG MUNDARI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +1E4F5;NAG MUNDARI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +1E4F6;NAG MUNDARI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +1E4F7;NAG MUNDARI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +1E4F8;NAG MUNDARI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +1E4F9;NAG MUNDARI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 1E7E0;ETHIOPIC SYLLABLE HHYA;Lo;0;L;;;;;N;;;;; 1E7E1;ETHIOPIC SYLLABLE HHYU;Lo;0;L;;;;;N;;;;; 1E7E2;ETHIOPIC SYLLABLE HHYI;Lo;0;L;;;;;N;;;;; @@ -32678,6 +32945,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1F6D5;HINDU TEMPLE;So;0;ON;;;;;N;;;;; 1F6D6;HUT;So;0;ON;;;;;N;;;;; 1F6D7;ELEVATOR;So;0;ON;;;;;N;;;;; +1F6DC;WIRELESS;So;0;ON;;;;;N;;;;; 1F6DD;PLAYGROUND SLIDE;So;0;ON;;;;;N;;;;; 1F6DE;WHEEL;So;0;ON;;;;;N;;;;; 1F6DF;RING BUOY;So;0;ON;;;;;N;;;;; @@ -32823,6 +33091,14 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1F771;ALCHEMICAL SYMBOL FOR MONTH;So;0;ON;;;;;N;;;;; 1F772;ALCHEMICAL SYMBOL FOR HALF DRAM;So;0;ON;;;;;N;;;;; 1F773;ALCHEMICAL SYMBOL FOR HALF OUNCE;So;0;ON;;;;;N;;;;; +1F774;LOT OF FORTUNE;So;0;ON;;;;;N;;;;; +1F775;OCCULTATION;So;0;ON;;;;;N;;;;; +1F776;LUNAR ECLIPSE;So;0;ON;;;;;N;;;;; +1F77B;HAUMEA;So;0;ON;;;;;N;;;;; +1F77C;MAKEMAKE;So;0;ON;;;;;N;;;;; +1F77D;GONGGONG;So;0;ON;;;;;N;;;;; +1F77E;QUAOAR;So;0;ON;;;;;N;;;;; +1F77F;ORCUS;So;0;ON;;;;;N;;;;; 1F780;BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE;So;0;ON;;;;;N;;;;; 1F781;BLACK UP-POINTING ISOSCELES RIGHT TRIANGLE;So;0;ON;;;;;N;;;;; 1F782;BLACK RIGHT-POINTING ISOSCELES RIGHT TRIANGLE;So;0;ON;;;;;N;;;;; @@ -32912,6 +33188,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1F7D6;NEGATIVE CIRCLED TRIANGLE;So;0;ON;;;;;N;;;;; 1F7D7;CIRCLED SQUARE;So;0;ON;;;;;N;;;;; 1F7D8;NEGATIVE CIRCLED SQUARE;So;0;ON;;;;;N;;;;; +1F7D9;NINE POINTED WHITE STAR;So;0;ON;;;;;N;;;;; 1F7E0;LARGE ORANGE CIRCLE;So;0;ON;;;;;N;;;;; 1F7E1;LARGE YELLOW CIRCLE;So;0;ON;;;;;N;;;;; 1F7E2;LARGE GREEN CIRCLE;So;0;ON;;;;;N;;;;; @@ -33434,6 +33711,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1FA72;BRIEFS;So;0;ON;;;;;N;;;;; 1FA73;SHORTS;So;0;ON;;;;;N;;;;; 1FA74;THONG SANDAL;So;0;ON;;;;;N;;;;; +1FA75;LIGHT BLUE HEART;So;0;ON;;;;;N;;;;; +1FA76;GREY HEART;So;0;ON;;;;;N;;;;; +1FA77;PINK HEART;So;0;ON;;;;;N;;;;; 1FA78;DROP OF BLOOD;So;0;ON;;;;;N;;;;; 1FA79;ADHESIVE BANDAGE;So;0;ON;;;;;N;;;;; 1FA7A;STETHOSCOPE;So;0;ON;;;;;N;;;;; @@ -33446,6 +33726,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1FA84;MAGIC WAND;So;0;ON;;;;;N;;;;; 1FA85;PINATA;So;0;ON;;;;;N;;;;; 1FA86;NESTING DOLLS;So;0;ON;;;;;N;;;;; +1FA87;MARACAS;So;0;ON;;;;;N;;;;; +1FA88;FLUTE;So;0;ON;;;;;N;;;;; 1FA90;RINGED PLANET;So;0;ON;;;;;N;;;;; 1FA91;CHAIR;So;0;ON;;;;;N;;;;; 1FA92;RAZOR;So;0;ON;;;;;N;;;;; @@ -33475,6 +33757,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1FAAA;IDENTIFICATION CARD;So;0;ON;;;;;N;;;;; 1FAAB;LOW BATTERY;So;0;ON;;;;;N;;;;; 1FAAC;HAMSA;So;0;ON;;;;;N;;;;; +1FAAD;FOLDING HAND FAN;So;0;ON;;;;;N;;;;; +1FAAE;HAIR PICK;So;0;ON;;;;;N;;;;; +1FAAF;KHANDA;So;0;ON;;;;;N;;;;; 1FAB0;FLY;So;0;ON;;;;;N;;;;; 1FAB1;WORM;So;0;ON;;;;;N;;;;; 1FAB2;BEETLE;So;0;ON;;;;;N;;;;; @@ -33486,12 +33771,18 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1FAB8;CORAL;So;0;ON;;;;;N;;;;; 1FAB9;EMPTY NEST;So;0;ON;;;;;N;;;;; 1FABA;NEST WITH EGGS;So;0;ON;;;;;N;;;;; +1FABB;HYACINTH;So;0;ON;;;;;N;;;;; +1FABC;JELLYFISH;So;0;ON;;;;;N;;;;; +1FABD;WING;So;0;ON;;;;;N;;;;; +1FABF;GOOSE;So;0;ON;;;;;N;;;;; 1FAC0;ANATOMICAL HEART;So;0;ON;;;;;N;;;;; 1FAC1;LUNGS;So;0;ON;;;;;N;;;;; 1FAC2;PEOPLE HUGGING;So;0;ON;;;;;N;;;;; 1FAC3;PREGNANT MAN;So;0;ON;;;;;N;;;;; 1FAC4;PREGNANT PERSON;So;0;ON;;;;;N;;;;; 1FAC5;PERSON WITH CROWN;So;0;ON;;;;;N;;;;; +1FACE;MOOSE;So;0;ON;;;;;N;;;;; +1FACF;DONKEY;So;0;ON;;;;;N;;;;; 1FAD0;BLUEBERRIES;So;0;ON;;;;;N;;;;; 1FAD1;BELL PEPPER;So;0;ON;;;;;N;;;;; 1FAD2;OLIVE;So;0;ON;;;;;N;;;;; @@ -33502,6 +33793,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1FAD7;POURING LIQUID;So;0;ON;;;;;N;;;;; 1FAD8;BEANS;So;0;ON;;;;;N;;;;; 1FAD9;JAR;So;0;ON;;;;;N;;;;; +1FADA;GINGER ROOT;So;0;ON;;;;;N;;;;; +1FADB;PEA POD;So;0;ON;;;;;N;;;;; 1FAE0;MELTING FACE;So;0;ON;;;;;N;;;;; 1FAE1;SALUTING FACE;So;0;ON;;;;;N;;;;; 1FAE2;FACE WITH OPEN EYES AND HAND OVER MOUTH;So;0;ON;;;;;N;;;;; @@ -33510,6 +33803,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1FAE5;DOTTED LINE FACE;So;0;ON;;;;;N;;;;; 1FAE6;BITING LIP;So;0;ON;;;;;N;;;;; 1FAE7;BUBBLES;So;0;ON;;;;;N;;;;; +1FAE8;SHAKING FACE;So;0;ON;;;;;N;;;;; 1FAF0;HAND WITH INDEX FINGER AND THUMB CROSSED;So;0;ON;;;;;N;;;;; 1FAF1;RIGHTWARDS HAND;So;0;ON;;;;;N;;;;; 1FAF2;LEFTWARDS HAND;So;0;ON;;;;;N;;;;; @@ -33517,6 +33811,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1FAF4;PALM UP HAND;So;0;ON;;;;;N;;;;; 1FAF5;INDEX POINTING AT THE VIEWER;So;0;ON;;;;;N;;;;; 1FAF6;HEART HANDS;So;0;ON;;;;;N;;;;; +1FAF7;LEFTWARDS PUSHING HAND;So;0;ON;;;;;N;;;;; +1FAF8;RIGHTWARDS PUSHING HAND;So;0;ON;;;;;N;;;;; 1FB00;BLOCK SEXTANT-1;So;0;ON;;;;;N;;;;; 1FB01;BLOCK SEXTANT-2;So;0;ON;;;;;N;;;;; 1FB02;BLOCK SEXTANT-12;So;0;ON;;;;;N;;;;; @@ -33732,7 +34028,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 20000;<CJK Ideograph Extension B, First>;Lo;0;L;;;;;N;;;;; 2A6DF;<CJK Ideograph Extension B, Last>;Lo;0;L;;;;;N;;;;; 2A700;<CJK Ideograph Extension C, First>;Lo;0;L;;;;;N;;;;; -2B738;<CJK Ideograph Extension C, Last>;Lo;0;L;;;;;N;;;;; +2B739;<CJK Ideograph Extension C, Last>;Lo;0;L;;;;;N;;;;; 2B740;<CJK Ideograph Extension D, First>;Lo;0;L;;;;;N;;;;; 2B81D;<CJK Ideograph Extension D, Last>;Lo;0;L;;;;;N;;;;; 2B820;<CJK Ideograph Extension E, First>;Lo;0;L;;;;;N;;;;; @@ -34283,6 +34579,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 2FA1D;CJK COMPATIBILITY IDEOGRAPH-2FA1D;Lo;0;L;2A600;;;;N;;;;; 30000;<CJK Ideograph Extension G, First>;Lo;0;L;;;;;N;;;;; 3134A;<CJK Ideograph Extension G, Last>;Lo;0;L;;;;;N;;;;; +31350;<CJK Ideograph Extension H, First>;Lo;0;L;;;;;N;;;;; +323AF;<CJK Ideograph Extension H, Last>;Lo;0;L;;;;;N;;;;; E0001;LANGUAGE TAG;Cf;0;BN;;;;;N;;;;; E0020;TAG SPACE;Cf;0;BN;;;;;N;;;;; E0021;TAG EXCLAMATION MARK;Cf;0;BN;;;;;N;;;;; diff --git a/admin/unidata/blocks.awk b/admin/unidata/blocks.awk index a45d980c2518..122164ce5b63 100755 --- a/admin/unidata/blocks.awk +++ b/admin/unidata/blocks.awk @@ -1,6 +1,6 @@ #!/usr/bin/awk -f -## Copyright (C) 2015-2023 Free Software Foundation, Inc. +## Copyright (C) 2015-2024 Free Software Foundation, Inc. ## Author: Glenn Morris <rgm@gnu.org> ## Maintainer: emacs-devel@gnu.org @@ -23,7 +23,7 @@ ### Commentary: ## This script takes as input Unicode's Blocks.txt -## (http://www.unicode.org/Public/UNIDATA/Blocks.txt) +## (https://www.unicode.org/Public/UNIDATA/Blocks.txt) ## and produces output for Emacs's lisp/international/charscript.el. ## It lumps together all the blocks belonging to the same language. @@ -60,6 +60,7 @@ BEGIN { alias["cjk strokes"] = "cjk-misc" alias["cjk symbols and punctuation"] = "cjk-misc" alias["halfwidth and fullwidth forms"] = "cjk-misc" + alias["yijing hexagram symbols"] = "cjk-misc" alias["common indic number forms"] = "north-indic-number" tohex["a"] = 10 @@ -94,11 +95,11 @@ function name2alias(name , w, w2) { if (alias[name]) return alias[name] else if (name ~ /for symbols/) return "symbol" else if (name ~ /latin|combining .* marks|spacing modifier|tone letters|alphabetic presentation/) return "latin" - else if (name ~ /cjk|yijing|enclosed ideograph|kangxi/) return "han" + else if (name ~ /cjk|enclosed ideograph|kangxi/) return "han" else if (name ~ /arabic/) return "arabic" else if (name ~ /^greek/) return "greek" else if (name ~ /^coptic/) return "coptic" - else if (name ~ /cuneiform number/) return "cuneiform-numbers-and-punctuation" + else if (name ~ /cuneiform number/) return "cuneiform" else if (name ~ /cuneiform/) return "cuneiform" else if (name ~ /mathematical alphanumeric symbol/) return "mathematical" else if (name ~ /punctuation|mathematical|arrows|currency|superscript|small form variants|geometric|dingbats|enclosed|alchemical|pictograph|emoticon|transport/) return "symbol" @@ -113,9 +114,11 @@ function name2alias(name , w, w2) { else if (name ~/^(specials|tags)$/) return 0 else if (name ~ /linear b/) return "linear-b" else if (name ~ /aramaic/) return "aramaic" - else if (name ~ /rumi num/) return "rumi-number" + else if (name ~ /rumi num/) return "arabic" else if (name ~ /duployan|shorthand/) return "duployan-shorthand" else if (name ~ /sutton signwriting/) return "sutton-sign-writing" + else if (name ~ /sinhala archaic number/) return "sinhala" + else if (name ~ /tangut components/) return "tangut" sub(/^small /, "", name) sub(/ (extended|extensions*|supplement).*/, "", name) @@ -222,9 +225,14 @@ FILENAME ~ "emoji-data.txt" && /^[0-9A-F].*; Emoji_Presentation / { END { idx = 0 - # ## These are here so that font_range can choose Emoji presentation - # ## for the preceding codepoint when it encounters a VS - override_start[idx] = "FE00" + ## This is here so that font_range can choose Emoji presentation + ## for the preceding codepoint when it encounters a VS-16 + ## (U+FE0F). See also font_range and the comments in composite.el + ## around the setup of `composition-function-table' for + ## U+FE00..U+FE0E. + ## It originally covered the whole FE00-FE0F range, but that + ## turned out to be a mistake. + override_start[idx] = "FE0F" override_end[idx] = "FE0F" for (k in override_start) diff --git a/admin/unidata/confusables.txt b/admin/unidata/confusables.txt new file mode 100644 index 000000000000..24b61d519afa --- /dev/null +++ b/admin/unidata/confusables.txt @@ -0,0 +1,9637 @@ +# confusables.txt +# Date: 2022-08-26, 16:49:08 GMT +# © 2022 Unicode®, Inc. +# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. +# For terms of use, see https://www.unicode.org/terms_of_use.html +# +# Unicode Security Mechanisms for UTS #39 +# Version: 15.0.0 +# +# For documentation and usage, see https://www.unicode.org/reports/tr39 +# +05AD ; 0596 ; MA # ( ֭ → ֖ ) HEBREW ACCENT DEHI → HEBREW ACCENT TIPEHA # + +05AE ; 0598 ; MA # ( ֮ → ֘ ) HEBREW ACCENT ZINOR → HEBREW ACCENT ZARQA # + +05A8 ; 0599 ; MA # ( ֨ → ֙ ) HEBREW ACCENT QADMA → HEBREW ACCENT PASHTA # + +05A4 ; 059A ; MA # ( ֤ → ֚ ) HEBREW ACCENT MAHAPAKH → HEBREW ACCENT YETIV # + +1AB4 ; 06DB ; MA # ( ᪴ → ۛ ) COMBINING TRIPLE DOT → ARABIC SMALL HIGH THREE DOTS # +20DB ; 06DB ; MA # ( ⃛ → ۛ ) COMBINING THREE DOTS ABOVE → ARABIC SMALL HIGH THREE DOTS # →᪴→ + +0619 ; 0313 ; MA # ( ؙ → ̓ ) ARABIC SMALL DAMMA → COMBINING COMMA ABOVE # →ُ→ +08F3 ; 0313 ; MA # ( ࣳ → ̓ ) ARABIC SMALL HIGH WAW → COMBINING COMMA ABOVE # →ُ→ +0343 ; 0313 ; MA # ( ̓ → ̓ ) COMBINING GREEK KORONIS → COMBINING COMMA ABOVE # +0315 ; 0313 ; MA # ( ̕ → ̓ ) COMBINING COMMA ABOVE RIGHT → COMBINING COMMA ABOVE # +064F ; 0313 ; MA # ( ُ → ̓ ) ARABIC DAMMA → COMBINING COMMA ABOVE # + +065D ; 0314 ; MA # ( ٝ → ̔ ) ARABIC REVERSED DAMMA → COMBINING REVERSED COMMA ABOVE # + +059C ; 0301 ; MA # ( ֜ → ́ ) HEBREW ACCENT GERESH → COMBINING ACUTE ACCENT # +059D ; 0301 ; MA # ( ֝ → ́ ) HEBREW ACCENT GERESH MUQDAM → COMBINING ACUTE ACCENT # →֜→ +0618 ; 0301 ; MA # ( ؘ → ́ ) ARABIC SMALL FATHA → COMBINING ACUTE ACCENT # →َ→ +0747 ; 0301 ; MA # ( ݇ → ́ ) SYRIAC OBLIQUE LINE ABOVE → COMBINING ACUTE ACCENT # +0341 ; 0301 ; MA # ( ́ → ́ ) COMBINING ACUTE TONE MARK → COMBINING ACUTE ACCENT # +0954 ; 0301 ; MA # ( ॔ → ́ ) DEVANAGARI ACUTE ACCENT → COMBINING ACUTE ACCENT # +064E ; 0301 ; MA # ( َ → ́ ) ARABIC FATHA → COMBINING ACUTE ACCENT # + +0340 ; 0300 ; MA # ( ̀ → ̀ ) COMBINING GRAVE TONE MARK → COMBINING GRAVE ACCENT # +0953 ; 0300 ; MA # ( ॓ → ̀ ) DEVANAGARI GRAVE ACCENT → COMBINING GRAVE ACCENT # + +030C ; 0306 ; MA # ( ̌ → ̆ ) COMBINING CARON → COMBINING BREVE # +A67C ; 0306 ; MA # ( ꙼ → ̆ ) COMBINING CYRILLIC KAVYKA → COMBINING BREVE # +0658 ; 0306 ; MA # ( ٘ → ̆ ) ARABIC MARK NOON GHUNNA → COMBINING BREVE # +065A ; 0306 ; MA # ( ٚ → ̆ ) ARABIC VOWEL SIGN SMALL V ABOVE → COMBINING BREVE # →̌→ +036E ; 0306 ; MA # ( ͮ → ̆ ) COMBINING LATIN SMALL LETTER V → COMBINING BREVE # →̌→ + +06E8 ; 0306 0307 ; MA # ( ۨ → ̆̇ ) ARABIC SMALL HIGH NOON → COMBINING BREVE, COMBINING DOT ABOVE # →̐→ +0310 ; 0306 0307 ; MA # ( ̐ → ̆̇ ) COMBINING CANDRABINDU → COMBINING BREVE, COMBINING DOT ABOVE # +0901 ; 0306 0307 ; MA # ( ँ → ̆̇ ) DEVANAGARI SIGN CANDRABINDU → COMBINING BREVE, COMBINING DOT ABOVE # →̐→ +0981 ; 0306 0307 ; MA # ( ঁ → ̆̇ ) BENGALI SIGN CANDRABINDU → COMBINING BREVE, COMBINING DOT ABOVE # →̐→ +0A81 ; 0306 0307 ; MA # ( ઁ → ̆̇ ) GUJARATI SIGN CANDRABINDU → COMBINING BREVE, COMBINING DOT ABOVE # →̐→ +0B01 ; 0306 0307 ; MA # ( ଁ → ̆̇ ) ORIYA SIGN CANDRABINDU → COMBINING BREVE, COMBINING DOT ABOVE # →̐→ +0C00 ; 0306 0307 ; MA # ( ఀ → ̆̇ ) TELUGU SIGN COMBINING CANDRABINDU ABOVE → COMBINING BREVE, COMBINING DOT ABOVE # →ँ→→̐→ +0C81 ; 0306 0307 ; MA # ( ಁ → ̆̇ ) KANNADA SIGN CANDRABINDU → COMBINING BREVE, COMBINING DOT ABOVE # →ँ→→̐→ +0D01 ; 0306 0307 ; MA # ( ഁ → ̆̇ ) MALAYALAM SIGN CANDRABINDU → COMBINING BREVE, COMBINING DOT ABOVE # →ँ→→̐→ +114BF ; 0306 0307 ; MA # ( 𑒿 → ̆̇ ) TIRHUTA SIGN CANDRABINDU → COMBINING BREVE, COMBINING DOT ABOVE # →ঁ→→̐→ + +1CD0 ; 0302 ; MA # ( ᳐ → ̂ ) VEDIC TONE KARSHANA → COMBINING CIRCUMFLEX ACCENT # +0311 ; 0302 ; MA # ( ̑ → ̂ ) COMBINING INVERTED BREVE → COMBINING CIRCUMFLEX ACCENT # +065B ; 0302 ; MA # ( ٛ → ̂ ) ARABIC VOWEL SIGN INVERTED SMALL V ABOVE → COMBINING CIRCUMFLEX ACCENT # +07EE ; 0302 ; MA # ( ߮ → ̂ ) NKO COMBINING LONG DESCENDING TONE → COMBINING CIRCUMFLEX ACCENT # +A6F0 ; 0302 ; MA # ( ꛰ → ̂ ) BAMUM COMBINING MARK KOQNDON → COMBINING CIRCUMFLEX ACCENT # + +05AF ; 030A ; MA # ( ֯ → ̊ ) HEBREW MARK MASORA CIRCLE → COMBINING RING ABOVE # +06DF ; 030A ; MA # ( ۟ → ̊ ) ARABIC SMALL HIGH ROUNDED ZERO → COMBINING RING ABOVE # →ْ→ +17D3 ; 030A ; MA # ( ៓ → ̊ ) KHMER SIGN BATHAMASAT → COMBINING RING ABOVE # +309A ; 030A ; MA # ( ゚ → ̊ ) COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK → COMBINING RING ABOVE # +0652 ; 030A ; MA # ( ْ → ̊ ) ARABIC SUKUN → COMBINING RING ABOVE # +0B82 ; 030A ; MA # ( ஂ → ̊ ) TAMIL SIGN ANUSVARA → COMBINING RING ABOVE # +1036 ; 030A ; MA # ( ံ → ̊ ) MYANMAR SIGN ANUSVARA → COMBINING RING ABOVE # +17C6 ; 030A ; MA # ( ំ → ̊ ) KHMER SIGN NIKAHIT → COMBINING RING ABOVE # +11300 ; 030A ; MA # ( 𑌀 → ̊ ) GRANTHA SIGN COMBINING ANUSVARA ABOVE → COMBINING RING ABOVE # →ஂ→ +0E4D ; 030A ; MA # ( ํ → ̊ ) THAI CHARACTER NIKHAHIT → COMBINING RING ABOVE # +0ECD ; 030A ; MA # ( ໍ → ̊ ) LAO NIGGAHITA → COMBINING RING ABOVE # +0366 ; 030A ; MA # ( ͦ → ̊ ) COMBINING LATIN SMALL LETTER O → COMBINING RING ABOVE # +2DEA ; 030A ; MA # ( ⷪ → ̊ ) COMBINING CYRILLIC LETTER O → COMBINING RING ABOVE # →ͦ→ + +08EB ; 0308 ; MA # ( ࣫ → ̈ ) ARABIC TONE TWO DOTS ABOVE → COMBINING DIAERESIS # +07F3 ; 0308 ; MA # ( ߳ → ̈ ) NKO COMBINING DOUBLE DOT ABOVE → COMBINING DIAERESIS # + +064B ; 030B ; MA # ( ً → ̋ ) ARABIC FATHATAN → COMBINING DOUBLE ACUTE ACCENT # +08F0 ; 030B ; MA # ( ࣰ → ̋ ) ARABIC OPEN FATHATAN → COMBINING DOUBLE ACUTE ACCENT # →ً→ + +0342 ; 0303 ; MA # ( ͂ → ̃ ) COMBINING GREEK PERISPOMENI → COMBINING TILDE # +0653 ; 0303 ; MA # ( ٓ → ̃ ) ARABIC MADDAH ABOVE → COMBINING TILDE # + +05C4 ; 0307 ; MA # ( ׄ → ̇ ) HEBREW MARK UPPER DOT → COMBINING DOT ABOVE # +06EC ; 0307 ; MA # ( ۬ → ̇ ) ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE → COMBINING DOT ABOVE # +0740 ; 0307 ; MA # ( ݀ → ̇ ) SYRIAC FEMININE DOT → COMBINING DOT ABOVE # →݁→ +08EA ; 0307 ; MA # ( ࣪ → ̇ ) ARABIC TONE ONE DOT ABOVE → COMBINING DOT ABOVE # +0741 ; 0307 ; MA # ( ݁ → ̇ ) SYRIAC QUSHSHAYA → COMBINING DOT ABOVE # +0358 ; 0307 ; MA # ( ͘ → ̇ ) COMBINING DOT ABOVE RIGHT → COMBINING DOT ABOVE # +05B9 ; 0307 ; MA # ( ֹ → ̇ ) HEBREW POINT HOLAM → COMBINING DOT ABOVE # +05BA ; 0307 ; MA # ( ֺ → ̇ ) HEBREW POINT HOLAM HASER FOR VAV → COMBINING DOT ABOVE # →ׁ→ +05C2 ; 0307 ; MA # ( ׂ → ̇ ) HEBREW POINT SIN DOT → COMBINING DOT ABOVE # +05C1 ; 0307 ; MA # ( ׁ → ̇ ) HEBREW POINT SHIN DOT → COMBINING DOT ABOVE # +07ED ; 0307 ; MA # ( ߭ → ̇ ) NKO COMBINING SHORT RISING TONE → COMBINING DOT ABOVE # +0902 ; 0307 ; MA # ( ं → ̇ ) DEVANAGARI SIGN ANUSVARA → COMBINING DOT ABOVE # +0A02 ; 0307 ; MA # ( ਂ → ̇ ) GURMUKHI SIGN BINDI → COMBINING DOT ABOVE # +0A82 ; 0307 ; MA # ( ં → ̇ ) GUJARATI SIGN ANUSVARA → COMBINING DOT ABOVE # +0BCD ; 0307 ; MA # ( ் → ̇ ) TAMIL SIGN VIRAMA → COMBINING DOT ABOVE # + +0337 ; 0338 ; MA # ( ̷ → ̸ ) COMBINING SHORT SOLIDUS OVERLAY → COMBINING LONG SOLIDUS OVERLAY # + +1AB7 ; 0328 ; MA # ( ᪷ → ̨ ) COMBINING OPEN MARK BELOW → COMBINING OGONEK # +0322 ; 0328 ; MA # ( ̢ → ̨ ) COMBINING RETROFLEX HOOK BELOW → COMBINING OGONEK # +0345 ; 0328 ; MA # ( ͅ → ̨ ) COMBINING GREEK YPOGEGRAMMENI → COMBINING OGONEK # + +1CD2 ; 0304 ; MA # ( ᳒ → ̄ ) VEDIC TONE PRENKHA → COMBINING MACRON # +0305 ; 0304 ; MA # ( ̅ → ̄ ) COMBINING OVERLINE → COMBINING MACRON # +0659 ; 0304 ; MA # ( ٙ → ̄ ) ARABIC ZWARAKAY → COMBINING MACRON # +07EB ; 0304 ; MA # ( ߫ → ̄ ) NKO COMBINING SHORT HIGH TONE → COMBINING MACRON # +A6F1 ; 0304 ; MA # ( ꛱ → ̄ ) BAMUM COMBINING MARK TUKWENTIS → COMBINING MACRON # + +1CDA ; 030E ; MA # ( ᳚ → ̎ ) VEDIC TONE DOUBLE SVARITA → COMBINING DOUBLE VERTICAL LINE ABOVE # + +0657 ; 0312 ; MA # ( ٗ → ̒ ) ARABIC INVERTED DAMMA → COMBINING TURNED COMMA ABOVE # + +0357 ; 0350 ; MA # ( ͗ → ͐ ) COMBINING RIGHT HALF RING ABOVE → COMBINING RIGHT ARROWHEAD ABOVE # →ࣿ→→ࣸ→ +08FF ; 0350 ; MA # ( ࣿ → ͐ ) ARABIC MARK SIDEWAYS NOON GHUNNA → COMBINING RIGHT ARROWHEAD ABOVE # →ࣸ→ +08F8 ; 0350 ; MA # ( ࣸ → ͐ ) ARABIC RIGHT ARROWHEAD ABOVE → COMBINING RIGHT ARROWHEAD ABOVE # + +0900 ; 0352 ; MA # ( ऀ → ͒ ) DEVANAGARI SIGN INVERTED CANDRABINDU → COMBINING FERMATA # + +1CED ; 0316 ; MA # ( ᳭ → ̖ ) VEDIC SIGN TIRYAK → COMBINING GRAVE ACCENT BELOW # + +1CDC ; 0329 ; MA # ( ᳜ → ̩ ) VEDIC TONE KATHAKA ANUDATTA → COMBINING VERTICAL LINE BELOW # +0656 ; 0329 ; MA # ( ٖ → ̩ ) ARABIC SUBSCRIPT ALEF → COMBINING VERTICAL LINE BELOW # + +1CD5 ; 032B ; MA # ( ᳕ → ̫ ) VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA → COMBINING INVERTED DOUBLE ARCH BELOW # + +0347 ; 0333 ; MA # ( ͇ → ̳ ) COMBINING EQUALS SIGN BELOW → COMBINING DOUBLE LOW LINE # + +08F9 ; 0354 ; MA # ( ࣹ → ͔ ) ARABIC LEFT ARROWHEAD BELOW → COMBINING LEFT ARROWHEAD BELOW # + +08FA ; 0355 ; MA # ( ࣺ → ͕ ) ARABIC RIGHT ARROWHEAD BELOW → COMBINING RIGHT ARROWHEAD BELOW # + +309B ; FF9E ; MA #* ( ゛ → ゙ ) KATAKANA-HIRAGANA VOICED SOUND MARK → HALFWIDTH KATAKANA VOICED SOUND MARK # + +309C ; FF9F ; MA #* ( ゜ → ゚ ) KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK → HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK # + +0336 ; 0335 ; MA # ( ̶ → ̵ ) COMBINING LONG STROKE OVERLAY → COMBINING SHORT STROKE OVERLAY # + +302C ; 0309 ; MA # ( 〬 → ̉ ) IDEOGRAPHIC DEPARTING TONE MARK → COMBINING HOOK ABOVE # + +05C5 ; 0323 ; MA # ( ׅ → ̣ ) HEBREW MARK LOWER DOT → COMBINING DOT BELOW # +08ED ; 0323 ; MA # ( ࣭ → ̣ ) ARABIC TONE ONE DOT BELOW → COMBINING DOT BELOW # +1CDD ; 0323 ; MA # ( ᳝ → ̣ ) VEDIC TONE DOT BELOW → COMBINING DOT BELOW # +05B4 ; 0323 ; MA # ( ִ → ̣ ) HEBREW POINT HIRIQ → COMBINING DOT BELOW # +065C ; 0323 ; MA # ( ٜ → ̣ ) ARABIC VOWEL SIGN DOT BELOW → COMBINING DOT BELOW # +093C ; 0323 ; MA # ( ़ → ̣ ) DEVANAGARI SIGN NUKTA → COMBINING DOT BELOW # +09BC ; 0323 ; MA # ( ় → ̣ ) BENGALI SIGN NUKTA → COMBINING DOT BELOW # +0A3C ; 0323 ; MA # ( ਼ → ̣ ) GURMUKHI SIGN NUKTA → COMBINING DOT BELOW # +0ABC ; 0323 ; MA # ( ઼ → ̣ ) GUJARATI SIGN NUKTA → COMBINING DOT BELOW # +0B3C ; 0323 ; MA # ( ଼ → ̣ ) ORIYA SIGN NUKTA → COMBINING DOT BELOW # +111CA ; 0323 ; MA # ( 𑇊 → ̣ ) SHARADA SIGN NUKTA → COMBINING DOT BELOW # →़→ +114C3 ; 0323 ; MA # ( 𑓃 → ̣ ) TIRHUTA SIGN NUKTA → COMBINING DOT BELOW # →়→ +10A3A ; 0323 ; MA # ( 𐨺 → ̣ ) KHAROSHTHI SIGN DOT BELOW → COMBINING DOT BELOW # + +08EE ; 0324 ; MA # ( ࣮ → ̤ ) ARABIC TONE TWO DOTS BELOW → COMBINING DIAERESIS BELOW # +1CDE ; 0324 ; MA # ( ᳞ → ̤ ) VEDIC TONE TWO DOTS BELOW → COMBINING DIAERESIS BELOW # + +0F37 ; 0325 ; MA # ( ༷ → ̥ ) TIBETAN MARK NGAS BZUNG SGOR RTAGS → COMBINING RING BELOW # +302D ; 0325 ; MA # ( 〭 → ̥ ) IDEOGRAPHIC ENTERING TONE MARK → COMBINING RING BELOW # + +0327 ; 0326 ; MA # ( ̧ → ̦ ) COMBINING CEDILLA → COMBINING COMMA BELOW # →̡→ +0321 ; 0326 ; MA # ( ̡ → ̦ ) COMBINING PALATALIZED HOOK BELOW → COMBINING COMMA BELOW # +0339 ; 0326 ; MA # ( ̹ → ̦ ) COMBINING RIGHT HALF RING BELOW → COMBINING COMMA BELOW # →̧→→̡→ + +1CD9 ; 032D ; MA # ( ᳙ → ̭ ) VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER → COMBINING CIRCUMFLEX ACCENT BELOW # + +1CD8 ; 032E ; MA # ( ᳘ → ̮ ) VEDIC TONE CANDRA BELOW → COMBINING BREVE BELOW # + +0952 ; 0331 ; MA # ( ॒ → ̱ ) DEVANAGARI STRESS SIGN ANUDATTA → COMBINING MACRON BELOW # +0320 ; 0331 ; MA # ( ̠ → ̱ ) COMBINING MINUS SIGN BELOW → COMBINING MACRON BELOW # + +08F1 ; 064C ; MA # ( ࣱ → ٌ ) ARABIC OPEN DAMMATAN → ARABIC DAMMATAN # +08E8 ; 064C ; MA # ( ࣨ → ٌ ) ARABIC CURLY DAMMATAN → ARABIC DAMMATAN # +08E5 ; 064C ; MA # ( ࣥ → ٌ ) ARABIC CURLY DAMMA → ARABIC DAMMATAN # + +FC5E ; FE72 0651 ; MA #* ( ‎ﱞ‎ → ‎ﹲّ‎ ) ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM → ARABIC DAMMATAN ISOLATED FORM, ARABIC SHADDA # + +08F2 ; 064D ; MA # ( ࣲ → ٍ ) ARABIC OPEN KASRATAN → ARABIC KASRATAN # + +FC5F ; FE74 0651 ; MA #* ( ‎ﱟ‎ → ‎ﹴّ‎ ) ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM → ARABIC KASRATAN ISOLATED FORM, ARABIC SHADDA # + +FCF2 ; FE77 0651 ; MA # ( ‎ﳲ‎ → ‎ﹷّ‎ ) ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM → ARABIC FATHA MEDIAL FORM, ARABIC SHADDA # + +FC60 ; FE76 0651 ; MA #* ( ‎ﱠ‎ → ‎ﹶّ‎ ) ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM → ARABIC FATHA ISOLATED FORM, ARABIC SHADDA # + +FCF3 ; FE79 0651 ; MA # ( ‎ﳳ‎ → ‎ﹹّ‎ ) ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM → ARABIC DAMMA MEDIAL FORM, ARABIC SHADDA # + +FC61 ; FE78 0651 ; MA #* ( ‎ﱡ‎ → ‎ﹸّ‎ ) ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM → ARABIC DAMMA ISOLATED FORM, ARABIC SHADDA # + +061A ; 0650 ; MA # ( ؚ → ِ ) ARABIC SMALL KASRA → ARABIC KASRA # +0317 ; 0650 ; MA # ( ̗ → ِ ) COMBINING ACUTE ACCENT BELOW → ARABIC KASRA # + +FCF4 ; FE7B 0651 ; MA # ( ‎ﳴ‎ → ‎ﹻّ‎ ) ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM → ARABIC KASRA MEDIAL FORM, ARABIC SHADDA # + +FC62 ; FE7A 0651 ; MA #* ( ‎ﱢ‎ → ‎ﹺّ‎ ) ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM → ARABIC KASRA ISOLATED FORM, ARABIC SHADDA # + +FC63 ; FE7C 0670 ; MA #* ( ‎ﱣ‎ → ‎ﹼٰ‎ ) ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM → ARABIC SHADDA ISOLATED FORM, ARABIC LETTER SUPERSCRIPT ALEF # + +065F ; 0655 ; MA # ( ٟ → ٕ ) ARABIC WAVY HAMZA BELOW → ARABIC HAMZA BELOW # + +030D ; 0670 ; MA # ( ̍ → ٰ ) COMBINING VERTICAL LINE ABOVE → ARABIC LETTER SUPERSCRIPT ALEF # + +0742 ; 073C ; MA # ( ݂ → ܼ ) SYRIAC RUKKAKHA → SYRIAC HBASA-ESASA DOTTED # + +0A03 ; 0983 ; MA # ( ਃ → ঃ ) GURMUKHI SIGN VISARGA → BENGALI SIGN VISARGA # +0C03 ; 0983 ; MA # ( ః → ঃ ) TELUGU SIGN VISARGA → BENGALI SIGN VISARGA # →ਃ→ +0C83 ; 0983 ; MA # ( ಃ → ঃ ) KANNADA SIGN VISARGA → BENGALI SIGN VISARGA # →ః→→ਃ→ +0D03 ; 0983 ; MA # ( ഃ → ঃ ) MALAYALAM SIGN VISARGA → BENGALI SIGN VISARGA # →ಃ→→ః→→ਃ→ +0D83 ; 0983 ; MA # ( ඃ → ঃ ) SINHALA SIGN VISARGAYA → BENGALI SIGN VISARGA # →ഃ→→ಃ→→ః→→ਃ→ +1038 ; 0983 ; MA # ( း → ঃ ) MYANMAR SIGN VISARGA → BENGALI SIGN VISARGA # →ඃ→→ഃ→→ಃ→→ః→→ਃ→ +114C1 ; 0983 ; MA # ( 𑓁 → ঃ ) TIRHUTA SIGN VISARGA → BENGALI SIGN VISARGA # + +17CB ; 0E48 ; MA # ( ់ → ่ ) KHMER SIGN BANTOC → THAI CHARACTER MAI EK # +0EC8 ; 0E48 ; MA # ( ່ → ่ ) LAO TONE MAI EK → THAI CHARACTER MAI EK # + +0EC9 ; 0E49 ; MA # ( ້ → ้ ) LAO TONE MAI THO → THAI CHARACTER MAI THO # + +0ECA ; 0E4A ; MA # ( ໊ → ๊ ) LAO TONE MAI TI → THAI CHARACTER MAI TRI # + +0ECB ; 0E4B ; MA # ( ໋ → ๋ ) LAO TONE MAI CATAWA → THAI CHARACTER MAI CHATTAWA # + +A66F ; 20E9 ; MA # ( ꙯ → ⃩ ) COMBINING CYRILLIC VZMET → COMBINING WIDE BRIDGE ABOVE # + +2028 ; 0020 ; MA #* ( → ) LINE SEPARATOR → SPACE # +2029 ; 0020 ; MA #* ( → ) PARAGRAPH SEPARATOR → SPACE # +1680 ; 0020 ; MA #* (   → ) OGHAM SPACE MARK → SPACE # +2000 ; 0020 ; MA #* (   → ) EN QUAD → SPACE # +2001 ; 0020 ; MA #* (   → ) EM QUAD → SPACE # +2002 ; 0020 ; MA #* (   → ) EN SPACE → SPACE # +2003 ; 0020 ; MA #* (   → ) EM SPACE → SPACE # +2004 ; 0020 ; MA #* (   → ) THREE-PER-EM SPACE → SPACE # +2005 ; 0020 ; MA #* (   → ) FOUR-PER-EM SPACE → SPACE # +2006 ; 0020 ; MA #* (   → ) SIX-PER-EM SPACE → SPACE # +2008 ; 0020 ; MA #* (   → ) PUNCTUATION SPACE → SPACE # +2009 ; 0020 ; MA #* (   → ) THIN SPACE → SPACE # +200A ; 0020 ; MA #* (   → ) HAIR SPACE → SPACE # +205F ; 0020 ; MA #* (   → ) MEDIUM MATHEMATICAL SPACE → SPACE # +00A0 ; 0020 ; MA #* (   → ) NO-BREAK SPACE → SPACE # +2007 ; 0020 ; MA #* (   → ) FIGURE SPACE → SPACE # +202F ; 0020 ; MA #* (   → ) NARROW NO-BREAK SPACE → SPACE # + +07FA ; 005F ; MA # ( ‎ߺ‎ → _ ) NKO LAJANYALAN → LOW LINE # +FE4D ; 005F ; MA # ( ﹍ → _ ) DASHED LOW LINE → LOW LINE # +FE4E ; 005F ; MA # ( ﹎ → _ ) CENTRELINE LOW LINE → LOW LINE # +FE4F ; 005F ; MA # ( ﹏ → _ ) WAVY LOW LINE → LOW LINE # + +2010 ; 002D ; MA #* ( ‐ → - ) HYPHEN → HYPHEN-MINUS # +2011 ; 002D ; MA #* ( ‑ → - ) NON-BREAKING HYPHEN → HYPHEN-MINUS # +2012 ; 002D ; MA #* ( ‒ → - ) FIGURE DASH → HYPHEN-MINUS # +2013 ; 002D ; MA #* ( – → - ) EN DASH → HYPHEN-MINUS # +FE58 ; 002D ; MA #* ( ﹘ → - ) SMALL EM DASH → HYPHEN-MINUS # +06D4 ; 002D ; MA #* ( ‎۔‎ → - ) ARABIC FULL STOP → HYPHEN-MINUS # →‐→ +2043 ; 002D ; MA #* ( ⁃ → - ) HYPHEN BULLET → HYPHEN-MINUS # →‐→ +02D7 ; 002D ; MA #* ( ˗ → - ) MODIFIER LETTER MINUS SIGN → HYPHEN-MINUS # +2212 ; 002D ; MA #* ( − → - ) MINUS SIGN → HYPHEN-MINUS # +2796 ; 002D ; MA #* ( ➖ → - ) HEAVY MINUS SIGN → HYPHEN-MINUS # →−→ +2CBA ; 002D ; MA # ( Ⲻ → - ) COPTIC CAPITAL LETTER DIALECT-P NI → HYPHEN-MINUS # →‒→ + +2A29 ; 002D 0313 ; MA #* ( ⨩ → -̓ ) MINUS SIGN WITH COMMA ABOVE → HYPHEN-MINUS, COMBINING COMMA ABOVE # →−̓→ + +2E1A ; 002D 0308 ; MA #* ( ⸚ → -̈ ) HYPHEN WITH DIAERESIS → HYPHEN-MINUS, COMBINING DIAERESIS # + +FB29 ; 002D 0307 ; MA #* ( ﬩ → -̇ ) HEBREW LETTER ALTERNATIVE PLUS SIGN → HYPHEN-MINUS, COMBINING DOT ABOVE # →∸→→−̇→ +2238 ; 002D 0307 ; MA #* ( ∸ → -̇ ) DOT MINUS → HYPHEN-MINUS, COMBINING DOT ABOVE # →−̇→ + +2A2A ; 002D 0323 ; MA #* ( ⨪ → -̣ ) MINUS SIGN WITH DOT BELOW → HYPHEN-MINUS, COMBINING DOT BELOW # →−̣→ + +A4FE ; 002D 002E ; MA #* ( ꓾ → -. ) LISU PUNCTUATION COMMA → HYPHEN-MINUS, FULL STOP # + +FF5E ; 301C ; MA #* ( ~ → 〜 ) FULLWIDTH TILDE → WAVE DASH # + +060D ; 002C ; MA #* ( ‎؍‎ → , ) ARABIC DATE SEPARATOR → COMMA # →‎٫‎→ +066B ; 002C ; MA #* ( ‎٫‎ → , ) ARABIC DECIMAL SEPARATOR → COMMA # +201A ; 002C ; MA #* ( ‚ → , ) SINGLE LOW-9 QUOTATION MARK → COMMA # +00B8 ; 002C ; MA #* ( ¸ → , ) CEDILLA → COMMA # +A4F9 ; 002C ; MA # ( ꓹ → , ) LISU LETTER TONE NA PO → COMMA # + +2E32 ; 060C ; MA #* ( ⸲ → ، ) TURNED COMMA → ARABIC COMMA # +066C ; 060C ; MA #* ( ‎٬‎ → ، ) ARABIC THOUSANDS SEPARATOR → ARABIC COMMA # + +037E ; 003B ; MA #* ( ; → ; ) GREEK QUESTION MARK → SEMICOLON # + +2E35 ; 061B ; MA #* ( ⸵ → ‎؛‎ ) TURNED SEMICOLON → ARABIC SEMICOLON # + +0903 ; 003A ; MA # ( ः → : ) DEVANAGARI SIGN VISARGA → COLON # +0A83 ; 003A ; MA # ( ઃ → : ) GUJARATI SIGN VISARGA → COLON # +FF1A ; 003A ; MA #* ( : → : ) FULLWIDTH COLON → COLON # →︰→ +0589 ; 003A ; MA #* ( ։ → : ) ARMENIAN FULL STOP → COLON # +0703 ; 003A ; MA #* ( ‎܃‎ → : ) SYRIAC SUPRALINEAR COLON → COLON # +0704 ; 003A ; MA #* ( ‎܄‎ → : ) SYRIAC SUBLINEAR COLON → COLON # +16EC ; 003A ; MA #* ( ᛬ → : ) RUNIC MULTIPLE PUNCTUATION → COLON # +FE30 ; 003A ; MA #* ( ︰ → : ) PRESENTATION FORM FOR VERTICAL TWO DOT LEADER → COLON # +1803 ; 003A ; MA #* ( ᠃ → : ) MONGOLIAN FULL STOP → COLON # +1809 ; 003A ; MA #* ( ᠉ → : ) MONGOLIAN MANCHU FULL STOP → COLON # +205A ; 003A ; MA #* ( ⁚ → : ) TWO DOT PUNCTUATION → COLON # +05C3 ; 003A ; MA #* ( ‎׃‎ → : ) HEBREW PUNCTUATION SOF PASUQ → COLON # +02F8 ; 003A ; MA #* ( ˸ → : ) MODIFIER LETTER RAISED COLON → COLON # +A789 ; 003A ; MA #* ( ꞉ → : ) MODIFIER LETTER COLON → COLON # +2236 ; 003A ; MA #* ( ∶ → : ) RATIO → COLON # +02D0 ; 003A ; MA # ( ː → : ) MODIFIER LETTER TRIANGULAR COLON → COLON # +A4FD ; 003A ; MA # ( ꓽ → : ) LISU LETTER TONE MYA JEU → COLON # + +2A74 ; 003A 003A 003D ; MA #* ( ⩴ → ::= ) DOUBLE COLON EQUAL → COLON, COLON, EQUALS SIGN # + +29F4 ; 003A 2192 ; MA #* ( ⧴ → :→ ) RULE-DELAYED → COLON, RIGHTWARDS ARROW # + +FF01 ; 0021 ; MA #* ( ! → ! ) FULLWIDTH EXCLAMATION MARK → EXCLAMATION MARK # →ǃ→ +01C3 ; 0021 ; MA # ( ǃ → ! ) LATIN LETTER RETROFLEX CLICK → EXCLAMATION MARK # +2D51 ; 0021 ; MA # ( ⵑ → ! ) TIFINAGH LETTER TUAREG YANG → EXCLAMATION MARK # + +203C ; 0021 0021 ; MA #* ( ‼ → !! ) DOUBLE EXCLAMATION MARK → EXCLAMATION MARK, EXCLAMATION MARK # + +2049 ; 0021 003F ; MA #* ( ⁉ → !? ) EXCLAMATION QUESTION MARK → EXCLAMATION MARK, QUESTION MARK # + +0294 ; 003F ; MA # ( ʔ → ? ) LATIN LETTER GLOTTAL STOP → QUESTION MARK # +0241 ; 003F ; MA # ( Ɂ → ? ) LATIN CAPITAL LETTER GLOTTAL STOP → QUESTION MARK # →ʔ→ +097D ; 003F ; MA # ( ॽ → ? ) DEVANAGARI LETTER GLOTTAL STOP → QUESTION MARK # +13AE ; 003F ; MA # ( Ꭾ → ? ) CHEROKEE LETTER HE → QUESTION MARK # →Ɂ→→ʔ→ +A6EB ; 003F ; MA # ( ꛫ → ? ) BAMUM LETTER NTUU → QUESTION MARK # →ʔ→ + +2048 ; 003F 0021 ; MA #* ( ⁈ → ?! ) QUESTION EXCLAMATION MARK → QUESTION MARK, EXCLAMATION MARK # + +2047 ; 003F 003F ; MA #* ( ⁇ → ?? ) DOUBLE QUESTION MARK → QUESTION MARK, QUESTION MARK # + +2E2E ; 061F ; MA #* ( ⸮ → ‎؟‎ ) REVERSED QUESTION MARK → ARABIC QUESTION MARK # + +1D16D ; 002E ; MA # ( 𝅭 → . ) MUSICAL SYMBOL COMBINING AUGMENTATION DOT → FULL STOP # +2024 ; 002E ; MA #* ( ․ → . ) ONE DOT LEADER → FULL STOP # +0701 ; 002E ; MA #* ( ‎܁‎ → . ) SYRIAC SUPRALINEAR FULL STOP → FULL STOP # +0702 ; 002E ; MA #* ( ‎܂‎ → . ) SYRIAC SUBLINEAR FULL STOP → FULL STOP # +A60E ; 002E ; MA #* ( ꘎ → . ) VAI FULL STOP → FULL STOP # +10A50 ; 002E ; MA #* ( ‎𐩐‎ → . ) KHAROSHTHI PUNCTUATION DOT → FULL STOP # +0660 ; 002E ; MA # ( ‎٠‎ → . ) ARABIC-INDIC DIGIT ZERO → FULL STOP # +06F0 ; 002E ; MA # ( ۰ → . ) EXTENDED ARABIC-INDIC DIGIT ZERO → FULL STOP # →‎٠‎→ +A4F8 ; 002E ; MA # ( ꓸ → . ) LISU LETTER TONE MYA TI → FULL STOP # + +A4FB ; 002E 002C ; MA # ( ꓻ → ., ) LISU LETTER TONE MYA BO → FULL STOP, COMMA # + +2025 ; 002E 002E ; MA #* ( ‥ → .. ) TWO DOT LEADER → FULL STOP, FULL STOP # +A4FA ; 002E 002E ; MA # ( ꓺ → .. ) LISU LETTER TONE MYA CYA → FULL STOP, FULL STOP # + +2026 ; 002E 002E 002E ; MA #* ( … → ... ) HORIZONTAL ELLIPSIS → FULL STOP, FULL STOP, FULL STOP # + +A6F4 ; A6F3 A6F3 ; MA #* ( ꛴ → ꛳꛳ ) BAMUM COLON → BAMUM FULL STOP, BAMUM FULL STOP # + +30FB ; 00B7 ; MA #* ( ・ → · ) KATAKANA MIDDLE DOT → MIDDLE DOT # →•→ +FF65 ; 00B7 ; MA #* ( ・ → · ) HALFWIDTH KATAKANA MIDDLE DOT → MIDDLE DOT # →•→ +16EB ; 00B7 ; MA #* ( ᛫ → · ) RUNIC SINGLE PUNCTUATION → MIDDLE DOT # +0387 ; 00B7 ; MA # ( · → · ) GREEK ANO TELEIA → MIDDLE DOT # +2E31 ; 00B7 ; MA #* ( ⸱ → · ) WORD SEPARATOR MIDDLE DOT → MIDDLE DOT # +10101 ; 00B7 ; MA #* ( 𐄁 → · ) AEGEAN WORD SEPARATOR DOT → MIDDLE DOT # +2022 ; 00B7 ; MA #* ( • → · ) BULLET → MIDDLE DOT # +2027 ; 00B7 ; MA #* ( ‧ → · ) HYPHENATION POINT → MIDDLE DOT # +2219 ; 00B7 ; MA #* ( ∙ → · ) BULLET OPERATOR → MIDDLE DOT # +22C5 ; 00B7 ; MA #* ( ⋅ → · ) DOT OPERATOR → MIDDLE DOT # +A78F ; 00B7 ; MA # ( ꞏ → · ) LATIN LETTER SINOLOGICAL DOT → MIDDLE DOT # +1427 ; 00B7 ; MA # ( ᐧ → · ) CANADIAN SYLLABICS FINAL MIDDLE DOT → MIDDLE DOT # + +22EF ; 00B7 00B7 00B7 ; MA #* ( ⋯ → ··· ) MIDLINE HORIZONTAL ELLIPSIS → MIDDLE DOT, MIDDLE DOT, MIDDLE DOT # +2D48 ; 00B7 00B7 00B7 ; MA # ( ⵈ → ··· ) TIFINAGH LETTER TUAREG YAQ → MIDDLE DOT, MIDDLE DOT, MIDDLE DOT # →⋯→ + +1444 ; 00B7 003C ; MA # ( ᑄ → ·< ) CANADIAN SYLLABICS PWA → MIDDLE DOT, LESS-THAN SIGN # →ᐧᐸ→ + +22D7 ; 00B7 003E ; MA #* ( ⋗ → ·> ) GREATER-THAN WITH DOT → MIDDLE DOT, GREATER-THAN SIGN # →ᑀ→→ᐧᐳ→ +1437 ; 00B7 003E ; MA # ( ᐷ → ·> ) CANADIAN SYLLABICS CARRIER HI → MIDDLE DOT, GREATER-THAN SIGN # →ᑀ→→ᐧᐳ→ +1440 ; 00B7 003E ; MA # ( ᑀ → ·> ) CANADIAN SYLLABICS PWO → MIDDLE DOT, GREATER-THAN SIGN # →ᐧᐳ→ + +152F ; 00B7 0034 ; MA # ( ᔯ → ·4 ) CANADIAN SYLLABICS YWE → MIDDLE DOT, DIGIT FOUR # →ᐧ4→ + +147E ; 00B7 0062 ; MA # ( ᑾ → ·b ) CANADIAN SYLLABICS KWA → MIDDLE DOT, LATIN SMALL LETTER B # →ᐧᑲ→ + +1480 ; 00B7 0062 0307 ; MA # ( ᒀ → ·ḃ ) CANADIAN SYLLABICS KWAA → MIDDLE DOT, LATIN SMALL LETTER B, COMBINING DOT ABOVE # →ᐧᑳ→ + +147A ; 00B7 0064 ; MA # ( ᑺ → ·d ) CANADIAN SYLLABICS KWO → MIDDLE DOT, LATIN SMALL LETTER D # →ᐧᑯ→ + +1498 ; 00B7 004A ; MA # ( ᒘ → ·J ) CANADIAN SYLLABICS CWO → MIDDLE DOT, LATIN CAPITAL LETTER J # →ᐧᒍ→ + +14B6 ; 00B7 004C ; MA # ( ᒶ → ·L ) CANADIAN SYLLABICS MWA → MIDDLE DOT, LATIN CAPITAL LETTER L # →ᐧL→ + +1476 ; 00B7 0050 ; MA # ( ᑶ → ·P ) CANADIAN SYLLABICS KWI → MIDDLE DOT, LATIN CAPITAL LETTER P # →ᐧᑭ→ + +1457 ; 00B7 0055 ; MA # ( ᑗ → ·U ) CANADIAN SYLLABICS TWE → MIDDLE DOT, LATIN CAPITAL LETTER U # →ᐧᑌ→→·ᑌ→ + +143A ; 00B7 0056 ; MA # ( ᐺ → ·V ) CANADIAN SYLLABICS PWE → MIDDLE DOT, LATIN CAPITAL LETTER V # →ᐧᐯ→ + +143C ; 00B7 0245 ; MA # ( ᐼ → ·Ʌ ) CANADIAN SYLLABICS PWI → MIDDLE DOT, LATIN CAPITAL LETTER TURNED V # →ᐧᐱ→→·ᐱ→ + +14AE ; 00B7 0393 ; MA # ( ᒮ → ·Γ ) CANADIAN SYLLABICS MWI → MIDDLE DOT, GREEK CAPITAL LETTER GAMMA # →ᐧᒥ→→·ᒥ→ + +140E ; 00B7 0394 ; MA # ( ᐎ → ·Δ ) CANADIAN SYLLABICS WI → MIDDLE DOT, GREEK CAPITAL LETTER DELTA # →ᐧᐃ→ + +1459 ; 00B7 0548 ; MA # ( ᑙ → ·Ո ) CANADIAN SYLLABICS TWI → MIDDLE DOT, ARMENIAN CAPITAL LETTER VO # →ᐧᑎ→→·ᑎ→ + +140C ; 00B7 1401 ; MA # ( ᐌ → ·ᐁ ) CANADIAN SYLLABICS WE → MIDDLE DOT, CANADIAN SYLLABICS E # →ᐧᐁ→ + +1410 ; 00B7 1404 ; MA # ( ᐐ → ·ᐄ ) CANADIAN SYLLABICS WII → MIDDLE DOT, CANADIAN SYLLABICS II # →ᐧᐄ→ + +1412 ; 00B7 1405 ; MA # ( ᐒ → ·ᐅ ) CANADIAN SYLLABICS WO → MIDDLE DOT, CANADIAN SYLLABICS O # →ᐧᐅ→ + +1414 ; 00B7 1406 ; MA # ( ᐔ → ·ᐆ ) CANADIAN SYLLABICS WOO → MIDDLE DOT, CANADIAN SYLLABICS OO # →ᐧᐆ→ + +1417 ; 00B7 140A ; MA # ( ᐗ → ·ᐊ ) CANADIAN SYLLABICS WA → MIDDLE DOT, CANADIAN SYLLABICS A # →ᐧᐊ→ + +1419 ; 00B7 140B ; MA # ( ᐙ → ·ᐋ ) CANADIAN SYLLABICS WAA → MIDDLE DOT, CANADIAN SYLLABICS AA # →ᐧᐋ→ + +143E ; 00B7 1432 ; MA # ( ᐾ → ·ᐲ ) CANADIAN SYLLABICS PWII → MIDDLE DOT, CANADIAN SYLLABICS PII # →ᐧᐲ→ + +1442 ; 00B7 1434 ; MA # ( ᑂ → ·ᐴ ) CANADIAN SYLLABICS PWOO → MIDDLE DOT, CANADIAN SYLLABICS POO # →ᐧᐴ→ + +1446 ; 00B7 1439 ; MA # ( ᑆ → ·ᐹ ) CANADIAN SYLLABICS PWAA → MIDDLE DOT, CANADIAN SYLLABICS PAA # →ᐧᐹ→ + +145B ; 00B7 144F ; MA # ( ᑛ → ·ᑏ ) CANADIAN SYLLABICS TWII → MIDDLE DOT, CANADIAN SYLLABICS TII # →ᐧᑏ→ + +1454 ; 00B7 1450 ; MA # ( ᑔ → ·ᑐ ) CANADIAN SYLLABICS CARRIER DI → MIDDLE DOT, CANADIAN SYLLABICS TO # →ᑝ→→ᐧᑐ→ +145D ; 00B7 1450 ; MA # ( ᑝ → ·ᑐ ) CANADIAN SYLLABICS TWO → MIDDLE DOT, CANADIAN SYLLABICS TO # →ᐧᑐ→ + +145F ; 00B7 1451 ; MA # ( ᑟ → ·ᑑ ) CANADIAN SYLLABICS TWOO → MIDDLE DOT, CANADIAN SYLLABICS TOO # →ᐧᑑ→ + +1461 ; 00B7 1455 ; MA # ( ᑡ → ·ᑕ ) CANADIAN SYLLABICS TWA → MIDDLE DOT, CANADIAN SYLLABICS TA # →ᐧᑕ→ + +1463 ; 00B7 1456 ; MA # ( ᑣ → ·ᑖ ) CANADIAN SYLLABICS TWAA → MIDDLE DOT, CANADIAN SYLLABICS TAA # →ᐧᑖ→ + +1474 ; 00B7 146B ; MA # ( ᑴ → ·ᑫ ) CANADIAN SYLLABICS KWE → MIDDLE DOT, CANADIAN SYLLABICS KE # →ᐧᑫ→ + +1478 ; 00B7 146E ; MA # ( ᑸ → ·ᑮ ) CANADIAN SYLLABICS KWII → MIDDLE DOT, CANADIAN SYLLABICS KII # →ᐧᑮ→ + +147C ; 00B7 1470 ; MA # ( ᑼ → ·ᑰ ) CANADIAN SYLLABICS KWOO → MIDDLE DOT, CANADIAN SYLLABICS KOO # →ᐧᑰ→ + +1492 ; 00B7 1489 ; MA # ( ᒒ → ·ᒉ ) CANADIAN SYLLABICS CWE → MIDDLE DOT, CANADIAN SYLLABICS CE # →ᐧᒉ→ + +1494 ; 00B7 148B ; MA # ( ᒔ → ·ᒋ ) CANADIAN SYLLABICS CWI → MIDDLE DOT, CANADIAN SYLLABICS CI # →ᐧᒋ→ + +1496 ; 00B7 148C ; MA # ( ᒖ → ·ᒌ ) CANADIAN SYLLABICS CWII → MIDDLE DOT, CANADIAN SYLLABICS CII # →ᐧᒌ→ + +149A ; 00B7 148E ; MA # ( ᒚ → ·ᒎ ) CANADIAN SYLLABICS CWOO → MIDDLE DOT, CANADIAN SYLLABICS COO # →ᐧᒎ→ + +149C ; 00B7 1490 ; MA # ( ᒜ → ·ᒐ ) CANADIAN SYLLABICS CWA → MIDDLE DOT, CANADIAN SYLLABICS CA # →ᐧᒐ→ + +149E ; 00B7 1491 ; MA # ( ᒞ → ·ᒑ ) CANADIAN SYLLABICS CWAA → MIDDLE DOT, CANADIAN SYLLABICS CAA # →ᐧᒑ→ + +14AC ; 00B7 14A3 ; MA # ( ᒬ → ·ᒣ ) CANADIAN SYLLABICS MWE → MIDDLE DOT, CANADIAN SYLLABICS ME # →ᐧᒣ→ + +14B0 ; 00B7 14A6 ; MA # ( ᒰ → ·ᒦ ) CANADIAN SYLLABICS MWII → MIDDLE DOT, CANADIAN SYLLABICS MII # →ᐧᒦ→ + +14B2 ; 00B7 14A7 ; MA # ( ᒲ → ·ᒧ ) CANADIAN SYLLABICS MWO → MIDDLE DOT, CANADIAN SYLLABICS MO # →ᐧᒧ→ + +14B4 ; 00B7 14A8 ; MA # ( ᒴ → ·ᒨ ) CANADIAN SYLLABICS MWOO → MIDDLE DOT, CANADIAN SYLLABICS MOO # →ᐧᒨ→ + +14B8 ; 00B7 14AB ; MA # ( ᒸ → ·ᒫ ) CANADIAN SYLLABICS MWAA → MIDDLE DOT, CANADIAN SYLLABICS MAA # →ᐧᒫ→ + +14C9 ; 00B7 14C0 ; MA # ( ᓉ → ·ᓀ ) CANADIAN SYLLABICS NWE → MIDDLE DOT, CANADIAN SYLLABICS NE # →ᐧᓀ→ + +18C6 ; 00B7 14C2 ; MA # ( ᣆ → ·ᓂ ) CANADIAN SYLLABICS NWI → MIDDLE DOT, CANADIAN SYLLABICS NI # →ᐧᓂ→ + +18C8 ; 00B7 14C3 ; MA # ( ᣈ → ·ᓃ ) CANADIAN SYLLABICS NWII → MIDDLE DOT, CANADIAN SYLLABICS NII # →ᐧᓃ→ + +18CA ; 00B7 14C4 ; MA # ( ᣊ → ·ᓄ ) CANADIAN SYLLABICS NWO → MIDDLE DOT, CANADIAN SYLLABICS NO # →ᐧᓄ→ + +18CC ; 00B7 14C5 ; MA # ( ᣌ → ·ᓅ ) CANADIAN SYLLABICS NWOO → MIDDLE DOT, CANADIAN SYLLABICS NOO # →ᐧᓅ→ + +14CB ; 00B7 14C7 ; MA # ( ᓋ → ·ᓇ ) CANADIAN SYLLABICS NWA → MIDDLE DOT, CANADIAN SYLLABICS NA # →ᐧᓇ→ + +14CD ; 00B7 14C8 ; MA # ( ᓍ → ·ᓈ ) CANADIAN SYLLABICS NWAA → MIDDLE DOT, CANADIAN SYLLABICS NAA # →ᐧᓈ→ + +14DC ; 00B7 14D3 ; MA # ( ᓜ → ·ᓓ ) CANADIAN SYLLABICS LWE → MIDDLE DOT, CANADIAN SYLLABICS LE # →ᐧᓓ→ + +14DE ; 00B7 14D5 ; MA # ( ᓞ → ·ᓕ ) CANADIAN SYLLABICS LWI → MIDDLE DOT, CANADIAN SYLLABICS LI # →ᐧᓕ→ + +14E0 ; 00B7 14D6 ; MA # ( ᓠ → ·ᓖ ) CANADIAN SYLLABICS LWII → MIDDLE DOT, CANADIAN SYLLABICS LII # →ᐧᓖ→ + +14E2 ; 00B7 14D7 ; MA # ( ᓢ → ·ᓗ ) CANADIAN SYLLABICS LWO → MIDDLE DOT, CANADIAN SYLLABICS LO # →ᐧᓗ→ + +14E4 ; 00B7 14D8 ; MA # ( ᓤ → ·ᓘ ) CANADIAN SYLLABICS LWOO → MIDDLE DOT, CANADIAN SYLLABICS LOO # →ᐧᓘ→ + +14E6 ; 00B7 14DA ; MA # ( ᓦ → ·ᓚ ) CANADIAN SYLLABICS LWA → MIDDLE DOT, CANADIAN SYLLABICS LA # →ᐧᓚ→ + +14E8 ; 00B7 14DB ; MA # ( ᓨ → ·ᓛ ) CANADIAN SYLLABICS LWAA → MIDDLE DOT, CANADIAN SYLLABICS LAA # →ᐧᓛ→ + +14F6 ; 00B7 14ED ; MA # ( ᓶ → ·ᓭ ) CANADIAN SYLLABICS SWE → MIDDLE DOT, CANADIAN SYLLABICS SE # →ᐧᓭ→ + +14F8 ; 00B7 14EF ; MA # ( ᓸ → ·ᓯ ) CANADIAN SYLLABICS SWI → MIDDLE DOT, CANADIAN SYLLABICS SI # →ᐧᓯ→ + +14FA ; 00B7 14F0 ; MA # ( ᓺ → ·ᓰ ) CANADIAN SYLLABICS SWII → MIDDLE DOT, CANADIAN SYLLABICS SII # →ᐧᓰ→ + +14FC ; 00B7 14F1 ; MA # ( ᓼ → ·ᓱ ) CANADIAN SYLLABICS SWO → MIDDLE DOT, CANADIAN SYLLABICS SO # →ᐧᓱ→ + +14FE ; 00B7 14F2 ; MA # ( ᓾ → ·ᓲ ) CANADIAN SYLLABICS SWOO → MIDDLE DOT, CANADIAN SYLLABICS SOO # →ᐧᓲ→ + +1500 ; 00B7 14F4 ; MA # ( ᔀ → ·ᓴ ) CANADIAN SYLLABICS SWA → MIDDLE DOT, CANADIAN SYLLABICS SA # →ᐧᓴ→ + +1502 ; 00B7 14F5 ; MA # ( ᔂ → ·ᓵ ) CANADIAN SYLLABICS SWAA → MIDDLE DOT, CANADIAN SYLLABICS SAA # →ᐧᓵ→ + +1517 ; 00B7 1510 ; MA # ( ᔗ → ·ᔐ ) CANADIAN SYLLABICS SHWE → MIDDLE DOT, CANADIAN SYLLABICS SHE # →ᐧᔐ→ + +1519 ; 00B7 1511 ; MA # ( ᔙ → ·ᔑ ) CANADIAN SYLLABICS SHWI → MIDDLE DOT, CANADIAN SYLLABICS SHI # →ᐧᔑ→ + +151B ; 00B7 1512 ; MA # ( ᔛ → ·ᔒ ) CANADIAN SYLLABICS SHWII → MIDDLE DOT, CANADIAN SYLLABICS SHII # →ᐧᔒ→ + +151D ; 00B7 1513 ; MA # ( ᔝ → ·ᔓ ) CANADIAN SYLLABICS SHWO → MIDDLE DOT, CANADIAN SYLLABICS SHO # →ᐧᔓ→ + +151F ; 00B7 1514 ; MA # ( ᔟ → ·ᔔ ) CANADIAN SYLLABICS SHWOO → MIDDLE DOT, CANADIAN SYLLABICS SHOO # →ᐧᔔ→ + +1521 ; 00B7 1515 ; MA # ( ᔡ → ·ᔕ ) CANADIAN SYLLABICS SHWA → MIDDLE DOT, CANADIAN SYLLABICS SHA # →ᐧᔕ→ + +1523 ; 00B7 1516 ; MA # ( ᔣ → ·ᔖ ) CANADIAN SYLLABICS SHWAA → MIDDLE DOT, CANADIAN SYLLABICS SHAA # →ᐧᔖ→ + +1531 ; 00B7 1528 ; MA # ( ᔱ → ·ᔨ ) CANADIAN SYLLABICS YWI → MIDDLE DOT, CANADIAN SYLLABICS YI # →ᐧᔨ→ + +1533 ; 00B7 1529 ; MA # ( ᔳ → ·ᔩ ) CANADIAN SYLLABICS YWII → MIDDLE DOT, CANADIAN SYLLABICS YII # →ᐧᔩ→ + +1535 ; 00B7 152A ; MA # ( ᔵ → ·ᔪ ) CANADIAN SYLLABICS YWO → MIDDLE DOT, CANADIAN SYLLABICS YO # →ᐧᔪ→ + +1537 ; 00B7 152B ; MA # ( ᔷ → ·ᔫ ) CANADIAN SYLLABICS YWOO → MIDDLE DOT, CANADIAN SYLLABICS YOO # →ᐧᔫ→ + +1539 ; 00B7 152D ; MA # ( ᔹ → ·ᔭ ) CANADIAN SYLLABICS YWA → MIDDLE DOT, CANADIAN SYLLABICS YA # →ᐧᔭ→ + +153B ; 00B7 152E ; MA # ( ᔻ → ·ᔮ ) CANADIAN SYLLABICS YWAA → MIDDLE DOT, CANADIAN SYLLABICS YAA # →ᐧᔮ→ + +18CE ; 00B7 1543 ; MA # ( ᣎ → ·ᕃ ) CANADIAN SYLLABICS RWEE → MIDDLE DOT, CANADIAN SYLLABICS R-CREE RE # →ᐧᕃ→ + +18CF ; 00B7 1546 ; MA # ( ᣏ → ·ᕆ ) CANADIAN SYLLABICS RWI → MIDDLE DOT, CANADIAN SYLLABICS RI # →ᐧᕆ→ + +18D0 ; 00B7 1547 ; MA # ( ᣐ → ·ᕇ ) CANADIAN SYLLABICS RWII → MIDDLE DOT, CANADIAN SYLLABICS RII # →ᐧᕇ→ + +18D1 ; 00B7 1548 ; MA # ( ᣑ → ·ᕈ ) CANADIAN SYLLABICS RWO → MIDDLE DOT, CANADIAN SYLLABICS RO # →ᐧᕈ→ + +18D2 ; 00B7 1549 ; MA # ( ᣒ → ·ᕉ ) CANADIAN SYLLABICS RWOO → MIDDLE DOT, CANADIAN SYLLABICS ROO # →ᐧᕉ→ + +18D3 ; 00B7 154B ; MA # ( ᣓ → ·ᕋ ) CANADIAN SYLLABICS RWA → MIDDLE DOT, CANADIAN SYLLABICS RA # →ᐧᕋ→ + +154E ; 00B7 154C ; MA # ( ᕎ → ·ᕌ ) CANADIAN SYLLABICS RWAA → MIDDLE DOT, CANADIAN SYLLABICS RAA # →ᐧᕌ→ + +155B ; 00B7 155A ; MA # ( ᕛ → ·ᕚ ) CANADIAN SYLLABICS FWAA → MIDDLE DOT, CANADIAN SYLLABICS FAA # →ᐧᕚ→ + +1568 ; 00B7 1567 ; MA # ( ᕨ → ·ᕧ ) CANADIAN SYLLABICS THWAA → MIDDLE DOT, CANADIAN SYLLABICS THAA # →ᐧᕧ→ + +18B3 ; 00B7 18B1 ; MA # ( ᢳ → ·ᢱ ) CANADIAN SYLLABICS WAY → MIDDLE DOT, CANADIAN SYLLABICS AY # →ᐧᢱ→ + +18B6 ; 00B7 18B4 ; MA # ( ᢶ → ·ᢴ ) CANADIAN SYLLABICS PWOY → MIDDLE DOT, CANADIAN SYLLABICS POY # →ᐧᢴ→ + +18B9 ; 00B7 18B8 ; MA # ( ᢹ → ·ᢸ ) CANADIAN SYLLABICS KWAY → MIDDLE DOT, CANADIAN SYLLABICS KAY # →ᐧᢸ→ + +18C2 ; 00B7 18C0 ; MA # ( ᣂ → ·ᣀ ) CANADIAN SYLLABICS SHWOY → MIDDLE DOT, CANADIAN SYLLABICS SHOY # →ᐧᣀ→ + +A830 ; 0964 ; MA #* ( ꠰ → । ) NORTH INDIC FRACTION ONE QUARTER → DEVANAGARI DANDA # + +0965 ; 0964 0964 ; MA #* ( ॥ → ।। ) DEVANAGARI DOUBLE DANDA → DEVANAGARI DANDA, DEVANAGARI DANDA # + +1C3C ; 1C3B 1C3B ; MA #* ( ᰼ → ᰻᰻ ) LEPCHA PUNCTUATION NYET THYOOM TA-ROL → LEPCHA PUNCTUATION TA-ROL, LEPCHA PUNCTUATION TA-ROL # + +104B ; 104A 104A ; MA #* ( ။ → ၊၊ ) MYANMAR SIGN SECTION → MYANMAR SIGN LITTLE SECTION, MYANMAR SIGN LITTLE SECTION # + +1AA9 ; 1AA8 1AA8 ; MA #* ( ᪩ → ᪨᪨ ) TAI THAM SIGN KAANKUU → TAI THAM SIGN KAAN, TAI THAM SIGN KAAN # + +1AAB ; 1AAA 1AA8 ; MA #* ( ᪫ → ᪪᪨ ) TAI THAM SIGN SATKAANKUU → TAI THAM SIGN SATKAAN, TAI THAM SIGN KAAN # + +1B5F ; 1B5E 1B5E ; MA #* ( ᭟ → ᭞᭞ ) BALINESE CARIK PAREREN → BALINESE CARIK SIKI, BALINESE CARIK SIKI # + +10A57 ; 10A56 10A56 ; MA #* ( ‎𐩗‎ → ‎𐩖𐩖‎ ) KHAROSHTHI PUNCTUATION DOUBLE DANDA → KHAROSHTHI PUNCTUATION DANDA, KHAROSHTHI PUNCTUATION DANDA # + +1144C ; 1144B 1144B ; MA #* ( 𑑌 → 𑑋𑑋 ) NEWA DOUBLE DANDA → NEWA DANDA, NEWA DANDA # + +11642 ; 11641 11641 ; MA #* ( 𑙂 → 𑙁𑙁 ) MODI DOUBLE DANDA → MODI DANDA, MODI DANDA # + +11C42 ; 11C41 11C41 ; MA #* ( 𑱂 → 𑱁𑱁 ) BHAIKSUKI DOUBLE DANDA → BHAIKSUKI DANDA, BHAIKSUKI DANDA # + +1C7F ; 1C7E 1C7E ; MA #* ( ᱿ → ᱾᱾ ) OL CHIKI PUNCTUATION DOUBLE MUCAAD → OL CHIKI PUNCTUATION MUCAAD, OL CHIKI PUNCTUATION MUCAAD # + +055D ; 0027 ; MA #* ( ՝ → ' ) ARMENIAN COMMA → APOSTROPHE # →ˋ→→`→→‘→ +FF07 ; 0027 ; MA #* ( ' → ' ) FULLWIDTH APOSTROPHE → APOSTROPHE # →’→ +2018 ; 0027 ; MA #* ( ‘ → ' ) LEFT SINGLE QUOTATION MARK → APOSTROPHE # +2019 ; 0027 ; MA #* ( ’ → ' ) RIGHT SINGLE QUOTATION MARK → APOSTROPHE # +201B ; 0027 ; MA #* ( ‛ → ' ) SINGLE HIGH-REVERSED-9 QUOTATION MARK → APOSTROPHE # →′→ +2032 ; 0027 ; MA #* ( ′ → ' ) PRIME → APOSTROPHE # +2035 ; 0027 ; MA #* ( ‵ → ' ) REVERSED PRIME → APOSTROPHE # →ʽ→→‘→ +055A ; 0027 ; MA #* ( ՚ → ' ) ARMENIAN APOSTROPHE → APOSTROPHE # →’→ +05F3 ; 0027 ; MA #* ( ‎׳‎ → ' ) HEBREW PUNCTUATION GERESH → APOSTROPHE # +0060 ; 0027 ; MA #* ( ` → ' ) GRAVE ACCENT → APOSTROPHE # →ˋ→→`→→‘→ +1FEF ; 0027 ; MA #* ( ` → ' ) GREEK VARIA → APOSTROPHE # →ˋ→→`→→‘→ +FF40 ; 0027 ; MA #* ( ` → ' ) FULLWIDTH GRAVE ACCENT → APOSTROPHE # →‘→ +00B4 ; 0027 ; MA #* ( ´ → ' ) ACUTE ACCENT → APOSTROPHE # →΄→→ʹ→ +0384 ; 0027 ; MA #* ( ΄ → ' ) GREEK TONOS → APOSTROPHE # →ʹ→ +1FFD ; 0027 ; MA #* ( ´ → ' ) GREEK OXIA → APOSTROPHE # →´→→΄→→ʹ→ +1FBD ; 0027 ; MA #* ( ᾽ → ' ) GREEK KORONIS → APOSTROPHE # →’→ +1FBF ; 0027 ; MA #* ( ᾿ → ' ) GREEK PSILI → APOSTROPHE # →’→ +1FFE ; 0027 ; MA #* ( ῾ → ' ) GREEK DASIA → APOSTROPHE # →‛→→′→ +02B9 ; 0027 ; MA # ( ʹ → ' ) MODIFIER LETTER PRIME → APOSTROPHE # +0374 ; 0027 ; MA # ( ʹ → ' ) GREEK NUMERAL SIGN → APOSTROPHE # →′→ +02C8 ; 0027 ; MA # ( ˈ → ' ) MODIFIER LETTER VERTICAL LINE → APOSTROPHE # +02CA ; 0027 ; MA # ( ˊ → ' ) MODIFIER LETTER ACUTE ACCENT → APOSTROPHE # →ʹ→→′→ +02CB ; 0027 ; MA # ( ˋ → ' ) MODIFIER LETTER GRAVE ACCENT → APOSTROPHE # →`→→‘→ +02F4 ; 0027 ; MA #* ( ˴ → ' ) MODIFIER LETTER MIDDLE GRAVE ACCENT → APOSTROPHE # →ˋ→→`→→‘→ +02BB ; 0027 ; MA # ( ʻ → ' ) MODIFIER LETTER TURNED COMMA → APOSTROPHE # →‘→ +02BD ; 0027 ; MA # ( ʽ → ' ) MODIFIER LETTER REVERSED COMMA → APOSTROPHE # →‘→ +02BC ; 0027 ; MA # ( ʼ → ' ) MODIFIER LETTER APOSTROPHE → APOSTROPHE # →′→ +02BE ; 0027 ; MA # ( ʾ → ' ) MODIFIER LETTER RIGHT HALF RING → APOSTROPHE # →ʼ→→′→ +A78C ; 0027 ; MA # ( ꞌ → ' ) LATIN SMALL LETTER SALTILLO → APOSTROPHE # +05D9 ; 0027 ; MA # ( ‎י‎ → ' ) HEBREW LETTER YOD → APOSTROPHE # +07F4 ; 0027 ; MA # ( ‎ߴ‎ → ' ) NKO HIGH TONE APOSTROPHE → APOSTROPHE # →’→ +07F5 ; 0027 ; MA # ( ‎ߵ‎ → ' ) NKO LOW TONE APOSTROPHE → APOSTROPHE # →‘→ +144A ; 0027 ; MA # ( ᑊ → ' ) CANADIAN SYLLABICS WEST-CREE P → APOSTROPHE # →ˈ→ +16CC ; 0027 ; MA # ( ᛌ → ' ) RUNIC LETTER SHORT-TWIG-SOL S → APOSTROPHE # +16F51 ; 0027 ; MA # ( 𖽑 → ' ) MIAO SIGN ASPIRATION → APOSTROPHE # →ʼ→→′→ +16F52 ; 0027 ; MA # ( 𖽒 → ' ) MIAO SIGN REFORMED VOICING → APOSTROPHE # →ʻ→→‘→ + +1CD3 ; 0027 0027 ; MA #* ( ᳓ → '' ) VEDIC SIGN NIHSHVASA → APOSTROPHE, APOSTROPHE # →″→→"→ +0022 ; 0027 0027 ; MA #* ( " → '' ) QUOTATION MARK → APOSTROPHE, APOSTROPHE # +FF02 ; 0027 0027 ; MA #* ( " → '' ) FULLWIDTH QUOTATION MARK → APOSTROPHE, APOSTROPHE # →”→→"→ +201C ; 0027 0027 ; MA #* ( “ → '' ) LEFT DOUBLE QUOTATION MARK → APOSTROPHE, APOSTROPHE # →"→ +201D ; 0027 0027 ; MA #* ( ” → '' ) RIGHT DOUBLE QUOTATION MARK → APOSTROPHE, APOSTROPHE # →"→ +201F ; 0027 0027 ; MA #* ( ‟ → '' ) DOUBLE HIGH-REVERSED-9 QUOTATION MARK → APOSTROPHE, APOSTROPHE # →“→→"→ +2033 ; 0027 0027 ; MA #* ( ″ → '' ) DOUBLE PRIME → APOSTROPHE, APOSTROPHE # →"→ +2036 ; 0027 0027 ; MA #* ( ‶ → '' ) REVERSED DOUBLE PRIME → APOSTROPHE, APOSTROPHE # →‵‵→ +3003 ; 0027 0027 ; MA #* ( 〃 → '' ) DITTO MARK → APOSTROPHE, APOSTROPHE # →″→→"→ +05F4 ; 0027 0027 ; MA #* ( ‎״‎ → '' ) HEBREW PUNCTUATION GERSHAYIM → APOSTROPHE, APOSTROPHE # →"→ +02DD ; 0027 0027 ; MA #* ( ˝ → '' ) DOUBLE ACUTE ACCENT → APOSTROPHE, APOSTROPHE # →"→ +02BA ; 0027 0027 ; MA # ( ʺ → '' ) MODIFIER LETTER DOUBLE PRIME → APOSTROPHE, APOSTROPHE # →"→ +02F6 ; 0027 0027 ; MA #* ( ˶ → '' ) MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT → APOSTROPHE, APOSTROPHE # →˝→→"→ +02EE ; 0027 0027 ; MA # ( ˮ → '' ) MODIFIER LETTER DOUBLE APOSTROPHE → APOSTROPHE, APOSTROPHE # →″→→"→ +05F2 ; 0027 0027 ; MA # ( ‎ײ‎ → '' ) HEBREW LIGATURE YIDDISH DOUBLE YOD → APOSTROPHE, APOSTROPHE # →‎יי‎→ + +2034 ; 0027 0027 0027 ; MA #* ( ‴ → ''' ) TRIPLE PRIME → APOSTROPHE, APOSTROPHE, APOSTROPHE # →′′′→ +2037 ; 0027 0027 0027 ; MA #* ( ‷ → ''' ) REVERSED TRIPLE PRIME → APOSTROPHE, APOSTROPHE, APOSTROPHE # →‵‵‵→ + +2057 ; 0027 0027 0027 0027 ; MA #* ( ⁗ → '''' ) QUADRUPLE PRIME → APOSTROPHE, APOSTROPHE, APOSTROPHE, APOSTROPHE # →′′′′→ + +0181 ; 0027 0042 ; MA # ( Ɓ → 'B ) LATIN CAPITAL LETTER B WITH HOOK → APOSTROPHE, LATIN CAPITAL LETTER B # →ʽB→ + +018A ; 0027 0044 ; MA # ( Ɗ → 'D ) LATIN CAPITAL LETTER D WITH HOOK → APOSTROPHE, LATIN CAPITAL LETTER D # →ʽD→ + +0149 ; 0027 006E ; MA # ( ʼn → 'n ) LATIN SMALL LETTER N PRECEDED BY APOSTROPHE → APOSTROPHE, LATIN SMALL LETTER N # →ʼn→ + +01A4 ; 0027 0050 ; MA # ( Ƥ → 'P ) LATIN CAPITAL LETTER P WITH HOOK → APOSTROPHE, LATIN CAPITAL LETTER P # →ʽP→ + +01AC ; 0027 0054 ; MA # ( Ƭ → 'T ) LATIN CAPITAL LETTER T WITH HOOK → APOSTROPHE, LATIN CAPITAL LETTER T # →ʽT→ + +01B3 ; 0027 0059 ; MA # ( Ƴ → 'Y ) LATIN CAPITAL LETTER Y WITH HOOK → APOSTROPHE, LATIN CAPITAL LETTER Y # →ʽY→ + +FF3B ; 0028 ; MA #* ( [ → ( ) FULLWIDTH LEFT SQUARE BRACKET → LEFT PARENTHESIS # →〔→ +2768 ; 0028 ; MA #* ( ❨ → ( ) MEDIUM LEFT PARENTHESIS ORNAMENT → LEFT PARENTHESIS # +2772 ; 0028 ; MA #* ( ❲ → ( ) LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT → LEFT PARENTHESIS # →〔→ +3014 ; 0028 ; MA #* ( 〔 → ( ) LEFT TORTOISE SHELL BRACKET → LEFT PARENTHESIS # +FD3E ; 0028 ; MA #* ( ﴾ → ( ) ORNATE LEFT PARENTHESIS → LEFT PARENTHESIS # + +2E28 ; 0028 0028 ; MA #* ( ⸨ → (( ) LEFT DOUBLE PARENTHESIS → LEFT PARENTHESIS, LEFT PARENTHESIS # + +3220 ; 0028 30FC 0029 ; MA #* ( ㈠ → (ー) ) PARENTHESIZED IDEOGRAPH ONE → LEFT PARENTHESIS, KATAKANA-HIRAGANA PROLONGED SOUND MARK, RIGHT PARENTHESIS # →(一)→ + +2475 ; 0028 0032 0029 ; MA #* ( ⑵ → (2) ) PARENTHESIZED DIGIT TWO → LEFT PARENTHESIS, DIGIT TWO, RIGHT PARENTHESIS # + +2487 ; 0028 0032 004F 0029 ; MA #* ( ⒇ → (2O) ) PARENTHESIZED NUMBER TWENTY → LEFT PARENTHESIS, DIGIT TWO, LATIN CAPITAL LETTER O, RIGHT PARENTHESIS # →(20)→ + +2476 ; 0028 0033 0029 ; MA #* ( ⑶ → (3) ) PARENTHESIZED DIGIT THREE → LEFT PARENTHESIS, DIGIT THREE, RIGHT PARENTHESIS # + +2477 ; 0028 0034 0029 ; MA #* ( ⑷ → (4) ) PARENTHESIZED DIGIT FOUR → LEFT PARENTHESIS, DIGIT FOUR, RIGHT PARENTHESIS # + +2478 ; 0028 0035 0029 ; MA #* ( ⑸ → (5) ) PARENTHESIZED DIGIT FIVE → LEFT PARENTHESIS, DIGIT FIVE, RIGHT PARENTHESIS # + +2479 ; 0028 0036 0029 ; MA #* ( ⑹ → (6) ) PARENTHESIZED DIGIT SIX → LEFT PARENTHESIS, DIGIT SIX, RIGHT PARENTHESIS # + +247A ; 0028 0037 0029 ; MA #* ( ⑺ → (7) ) PARENTHESIZED DIGIT SEVEN → LEFT PARENTHESIS, DIGIT SEVEN, RIGHT PARENTHESIS # + +247B ; 0028 0038 0029 ; MA #* ( ⑻ → (8) ) PARENTHESIZED DIGIT EIGHT → LEFT PARENTHESIS, DIGIT EIGHT, RIGHT PARENTHESIS # + +247C ; 0028 0039 0029 ; MA #* ( ⑼ → (9) ) PARENTHESIZED DIGIT NINE → LEFT PARENTHESIS, DIGIT NINE, RIGHT PARENTHESIS # + +249C ; 0028 0061 0029 ; MA #* ( ⒜ → (a) ) PARENTHESIZED LATIN SMALL LETTER A → LEFT PARENTHESIS, LATIN SMALL LETTER A, RIGHT PARENTHESIS # + +1F110 ; 0028 0041 0029 ; MA #* ( 🄐 → (A) ) PARENTHESIZED LATIN CAPITAL LETTER A → LEFT PARENTHESIS, LATIN CAPITAL LETTER A, RIGHT PARENTHESIS # + +249D ; 0028 0062 0029 ; MA #* ( ⒝ → (b) ) PARENTHESIZED LATIN SMALL LETTER B → LEFT PARENTHESIS, LATIN SMALL LETTER B, RIGHT PARENTHESIS # + +1F111 ; 0028 0042 0029 ; MA #* ( 🄑 → (B) ) PARENTHESIZED LATIN CAPITAL LETTER B → LEFT PARENTHESIS, LATIN CAPITAL LETTER B, RIGHT PARENTHESIS # + +249E ; 0028 0063 0029 ; MA #* ( ⒞ → (c) ) PARENTHESIZED LATIN SMALL LETTER C → LEFT PARENTHESIS, LATIN SMALL LETTER C, RIGHT PARENTHESIS # + +1F112 ; 0028 0043 0029 ; MA #* ( 🄒 → (C) ) PARENTHESIZED LATIN CAPITAL LETTER C → LEFT PARENTHESIS, LATIN CAPITAL LETTER C, RIGHT PARENTHESIS # + +249F ; 0028 0064 0029 ; MA #* ( ⒟ → (d) ) PARENTHESIZED LATIN SMALL LETTER D → LEFT PARENTHESIS, LATIN SMALL LETTER D, RIGHT PARENTHESIS # + +1F113 ; 0028 0044 0029 ; MA #* ( 🄓 → (D) ) PARENTHESIZED LATIN CAPITAL LETTER D → LEFT PARENTHESIS, LATIN CAPITAL LETTER D, RIGHT PARENTHESIS # + +24A0 ; 0028 0065 0029 ; MA #* ( ⒠ → (e) ) PARENTHESIZED LATIN SMALL LETTER E → LEFT PARENTHESIS, LATIN SMALL LETTER E, RIGHT PARENTHESIS # + +1F114 ; 0028 0045 0029 ; MA #* ( 🄔 → (E) ) PARENTHESIZED LATIN CAPITAL LETTER E → LEFT PARENTHESIS, LATIN CAPITAL LETTER E, RIGHT PARENTHESIS # + +24A1 ; 0028 0066 0029 ; MA #* ( ⒡ → (f) ) PARENTHESIZED LATIN SMALL LETTER F → LEFT PARENTHESIS, LATIN SMALL LETTER F, RIGHT PARENTHESIS # + +1F115 ; 0028 0046 0029 ; MA #* ( 🄕 → (F) ) PARENTHESIZED LATIN CAPITAL LETTER F → LEFT PARENTHESIS, LATIN CAPITAL LETTER F, RIGHT PARENTHESIS # + +24A2 ; 0028 0067 0029 ; MA #* ( ⒢ → (g) ) PARENTHESIZED LATIN SMALL LETTER G → LEFT PARENTHESIS, LATIN SMALL LETTER G, RIGHT PARENTHESIS # + +1F116 ; 0028 0047 0029 ; MA #* ( 🄖 → (G) ) PARENTHESIZED LATIN CAPITAL LETTER G → LEFT PARENTHESIS, LATIN CAPITAL LETTER G, RIGHT PARENTHESIS # + +24A3 ; 0028 0068 0029 ; MA #* ( ⒣ → (h) ) PARENTHESIZED LATIN SMALL LETTER H → LEFT PARENTHESIS, LATIN SMALL LETTER H, RIGHT PARENTHESIS # + +1F117 ; 0028 0048 0029 ; MA #* ( 🄗 → (H) ) PARENTHESIZED LATIN CAPITAL LETTER H → LEFT PARENTHESIS, LATIN CAPITAL LETTER H, RIGHT PARENTHESIS # + +24A4 ; 0028 0069 0029 ; MA #* ( ⒤ → (i) ) PARENTHESIZED LATIN SMALL LETTER I → LEFT PARENTHESIS, LATIN SMALL LETTER I, RIGHT PARENTHESIS # + +24A5 ; 0028 006A 0029 ; MA #* ( ⒥ → (j) ) PARENTHESIZED LATIN SMALL LETTER J → LEFT PARENTHESIS, LATIN SMALL LETTER J, RIGHT PARENTHESIS # + +1F119 ; 0028 004A 0029 ; MA #* ( 🄙 → (J) ) PARENTHESIZED LATIN CAPITAL LETTER J → LEFT PARENTHESIS, LATIN CAPITAL LETTER J, RIGHT PARENTHESIS # + +24A6 ; 0028 006B 0029 ; MA #* ( ⒦ → (k) ) PARENTHESIZED LATIN SMALL LETTER K → LEFT PARENTHESIS, LATIN SMALL LETTER K, RIGHT PARENTHESIS # + +1F11A ; 0028 004B 0029 ; MA #* ( 🄚 → (K) ) PARENTHESIZED LATIN CAPITAL LETTER K → LEFT PARENTHESIS, LATIN CAPITAL LETTER K, RIGHT PARENTHESIS # + +2474 ; 0028 006C 0029 ; MA #* ( ⑴ → (l) ) PARENTHESIZED DIGIT ONE → LEFT PARENTHESIS, LATIN SMALL LETTER L, RIGHT PARENTHESIS # →(1)→ +1F118 ; 0028 006C 0029 ; MA #* ( 🄘 → (l) ) PARENTHESIZED LATIN CAPITAL LETTER I → LEFT PARENTHESIS, LATIN SMALL LETTER L, RIGHT PARENTHESIS # →(I)→ +24A7 ; 0028 006C 0029 ; MA #* ( ⒧ → (l) ) PARENTHESIZED LATIN SMALL LETTER L → LEFT PARENTHESIS, LATIN SMALL LETTER L, RIGHT PARENTHESIS # + +1F11B ; 0028 004C 0029 ; MA #* ( 🄛 → (L) ) PARENTHESIZED LATIN CAPITAL LETTER L → LEFT PARENTHESIS, LATIN CAPITAL LETTER L, RIGHT PARENTHESIS # + +247F ; 0028 006C 0032 0029 ; MA #* ( ⑿ → (l2) ) PARENTHESIZED NUMBER TWELVE → LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT TWO, RIGHT PARENTHESIS # →(12)→ + +2480 ; 0028 006C 0033 0029 ; MA #* ( ⒀ → (l3) ) PARENTHESIZED NUMBER THIRTEEN → LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT THREE, RIGHT PARENTHESIS # →(13)→ + +2481 ; 0028 006C 0034 0029 ; MA #* ( ⒁ → (l4) ) PARENTHESIZED NUMBER FOURTEEN → LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT FOUR, RIGHT PARENTHESIS # →(14)→ + +2482 ; 0028 006C 0035 0029 ; MA #* ( ⒂ → (l5) ) PARENTHESIZED NUMBER FIFTEEN → LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT FIVE, RIGHT PARENTHESIS # →(15)→ + +2483 ; 0028 006C 0036 0029 ; MA #* ( ⒃ → (l6) ) PARENTHESIZED NUMBER SIXTEEN → LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT SIX, RIGHT PARENTHESIS # →(16)→ + +2484 ; 0028 006C 0037 0029 ; MA #* ( ⒄ → (l7) ) PARENTHESIZED NUMBER SEVENTEEN → LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT SEVEN, RIGHT PARENTHESIS # →(17)→ + +2485 ; 0028 006C 0038 0029 ; MA #* ( ⒅ → (l8) ) PARENTHESIZED NUMBER EIGHTEEN → LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT EIGHT, RIGHT PARENTHESIS # →(18)→ + +2486 ; 0028 006C 0039 0029 ; MA #* ( ⒆ → (l9) ) PARENTHESIZED NUMBER NINETEEN → LEFT PARENTHESIS, LATIN SMALL LETTER L, DIGIT NINE, RIGHT PARENTHESIS # →(19)→ + +247E ; 0028 006C 006C 0029 ; MA #* ( ⑾ → (ll) ) PARENTHESIZED NUMBER ELEVEN → LEFT PARENTHESIS, LATIN SMALL LETTER L, LATIN SMALL LETTER L, RIGHT PARENTHESIS # →(11)→ + +247D ; 0028 006C 004F 0029 ; MA #* ( ⑽ → (lO) ) PARENTHESIZED NUMBER TEN → LEFT PARENTHESIS, LATIN SMALL LETTER L, LATIN CAPITAL LETTER O, RIGHT PARENTHESIS # →(10)→ + +1F11C ; 0028 004D 0029 ; MA #* ( 🄜 → (M) ) PARENTHESIZED LATIN CAPITAL LETTER M → LEFT PARENTHESIS, LATIN CAPITAL LETTER M, RIGHT PARENTHESIS # + +24A9 ; 0028 006E 0029 ; MA #* ( ⒩ → (n) ) PARENTHESIZED LATIN SMALL LETTER N → LEFT PARENTHESIS, LATIN SMALL LETTER N, RIGHT PARENTHESIS # + +1F11D ; 0028 004E 0029 ; MA #* ( 🄝 → (N) ) PARENTHESIZED LATIN CAPITAL LETTER N → LEFT PARENTHESIS, LATIN CAPITAL LETTER N, RIGHT PARENTHESIS # + +24AA ; 0028 006F 0029 ; MA #* ( ⒪ → (o) ) PARENTHESIZED LATIN SMALL LETTER O → LEFT PARENTHESIS, LATIN SMALL LETTER O, RIGHT PARENTHESIS # + +1F11E ; 0028 004F 0029 ; MA #* ( 🄞 → (O) ) PARENTHESIZED LATIN CAPITAL LETTER O → LEFT PARENTHESIS, LATIN CAPITAL LETTER O, RIGHT PARENTHESIS # + +24AB ; 0028 0070 0029 ; MA #* ( ⒫ → (p) ) PARENTHESIZED LATIN SMALL LETTER P → LEFT PARENTHESIS, LATIN SMALL LETTER P, RIGHT PARENTHESIS # + +1F11F ; 0028 0050 0029 ; MA #* ( 🄟 → (P) ) PARENTHESIZED LATIN CAPITAL LETTER P → LEFT PARENTHESIS, LATIN CAPITAL LETTER P, RIGHT PARENTHESIS # + +24AC ; 0028 0071 0029 ; MA #* ( ⒬ → (q) ) PARENTHESIZED LATIN SMALL LETTER Q → LEFT PARENTHESIS, LATIN SMALL LETTER Q, RIGHT PARENTHESIS # + +1F120 ; 0028 0051 0029 ; MA #* ( 🄠 → (Q) ) PARENTHESIZED LATIN CAPITAL LETTER Q → LEFT PARENTHESIS, LATIN CAPITAL LETTER Q, RIGHT PARENTHESIS # + +24AD ; 0028 0072 0029 ; MA #* ( ⒭ → (r) ) PARENTHESIZED LATIN SMALL LETTER R → LEFT PARENTHESIS, LATIN SMALL LETTER R, RIGHT PARENTHESIS # + +1F121 ; 0028 0052 0029 ; MA #* ( 🄡 → (R) ) PARENTHESIZED LATIN CAPITAL LETTER R → LEFT PARENTHESIS, LATIN CAPITAL LETTER R, RIGHT PARENTHESIS # + +24A8 ; 0028 0072 006E 0029 ; MA #* ( ⒨ → (rn) ) PARENTHESIZED LATIN SMALL LETTER M → LEFT PARENTHESIS, LATIN SMALL LETTER R, LATIN SMALL LETTER N, RIGHT PARENTHESIS # →(m)→ + +24AE ; 0028 0073 0029 ; MA #* ( ⒮ → (s) ) PARENTHESIZED LATIN SMALL LETTER S → LEFT PARENTHESIS, LATIN SMALL LETTER S, RIGHT PARENTHESIS # + +1F122 ; 0028 0053 0029 ; MA #* ( 🄢 → (S) ) PARENTHESIZED LATIN CAPITAL LETTER S → LEFT PARENTHESIS, LATIN CAPITAL LETTER S, RIGHT PARENTHESIS # +1F12A ; 0028 0053 0029 ; MA #* ( 🄪 → (S) ) TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S → LEFT PARENTHESIS, LATIN CAPITAL LETTER S, RIGHT PARENTHESIS # →〔S〕→ + +24AF ; 0028 0074 0029 ; MA #* ( ⒯ → (t) ) PARENTHESIZED LATIN SMALL LETTER T → LEFT PARENTHESIS, LATIN SMALL LETTER T, RIGHT PARENTHESIS # + +1F123 ; 0028 0054 0029 ; MA #* ( 🄣 → (T) ) PARENTHESIZED LATIN CAPITAL LETTER T → LEFT PARENTHESIS, LATIN CAPITAL LETTER T, RIGHT PARENTHESIS # + +24B0 ; 0028 0075 0029 ; MA #* ( ⒰ → (u) ) PARENTHESIZED LATIN SMALL LETTER U → LEFT PARENTHESIS, LATIN SMALL LETTER U, RIGHT PARENTHESIS # + +1F124 ; 0028 0055 0029 ; MA #* ( 🄤 → (U) ) PARENTHESIZED LATIN CAPITAL LETTER U → LEFT PARENTHESIS, LATIN CAPITAL LETTER U, RIGHT PARENTHESIS # + +24B1 ; 0028 0076 0029 ; MA #* ( ⒱ → (v) ) PARENTHESIZED LATIN SMALL LETTER V → LEFT PARENTHESIS, LATIN SMALL LETTER V, RIGHT PARENTHESIS # + +1F125 ; 0028 0056 0029 ; MA #* ( 🄥 → (V) ) PARENTHESIZED LATIN CAPITAL LETTER V → LEFT PARENTHESIS, LATIN CAPITAL LETTER V, RIGHT PARENTHESIS # + +24B2 ; 0028 0077 0029 ; MA #* ( ⒲ → (w) ) PARENTHESIZED LATIN SMALL LETTER W → LEFT PARENTHESIS, LATIN SMALL LETTER W, RIGHT PARENTHESIS # + +1F126 ; 0028 0057 0029 ; MA #* ( 🄦 → (W) ) PARENTHESIZED LATIN CAPITAL LETTER W → LEFT PARENTHESIS, LATIN CAPITAL LETTER W, RIGHT PARENTHESIS # + +24B3 ; 0028 0078 0029 ; MA #* ( ⒳ → (x) ) PARENTHESIZED LATIN SMALL LETTER X → LEFT PARENTHESIS, LATIN SMALL LETTER X, RIGHT PARENTHESIS # + +1F127 ; 0028 0058 0029 ; MA #* ( 🄧 → (X) ) PARENTHESIZED LATIN CAPITAL LETTER X → LEFT PARENTHESIS, LATIN CAPITAL LETTER X, RIGHT PARENTHESIS # + +24B4 ; 0028 0079 0029 ; MA #* ( ⒴ → (y) ) PARENTHESIZED LATIN SMALL LETTER Y → LEFT PARENTHESIS, LATIN SMALL LETTER Y, RIGHT PARENTHESIS # + +1F128 ; 0028 0059 0029 ; MA #* ( 🄨 → (Y) ) PARENTHESIZED LATIN CAPITAL LETTER Y → LEFT PARENTHESIS, LATIN CAPITAL LETTER Y, RIGHT PARENTHESIS # + +24B5 ; 0028 007A 0029 ; MA #* ( ⒵ → (z) ) PARENTHESIZED LATIN SMALL LETTER Z → LEFT PARENTHESIS, LATIN SMALL LETTER Z, RIGHT PARENTHESIS # + +1F129 ; 0028 005A 0029 ; MA #* ( 🄩 → (Z) ) PARENTHESIZED LATIN CAPITAL LETTER Z → LEFT PARENTHESIS, LATIN CAPITAL LETTER Z, RIGHT PARENTHESIS # + +3200 ; 0028 1100 0029 ; MA #* ( ㈀ → (ᄀ) ) PARENTHESIZED HANGUL KIYEOK → LEFT PARENTHESIS, HANGUL CHOSEONG KIYEOK, RIGHT PARENTHESIS # + +320E ; 0028 AC00 0029 ; MA #* ( ㈎ → (가) ) PARENTHESIZED HANGUL KIYEOK A → LEFT PARENTHESIS, HANGUL SYLLABLE GA, RIGHT PARENTHESIS # + +3201 ; 0028 1102 0029 ; MA #* ( ㈁ → (ᄂ) ) PARENTHESIZED HANGUL NIEUN → LEFT PARENTHESIS, HANGUL CHOSEONG NIEUN, RIGHT PARENTHESIS # + +320F ; 0028 B098 0029 ; MA #* ( ㈏ → (나) ) PARENTHESIZED HANGUL NIEUN A → LEFT PARENTHESIS, HANGUL SYLLABLE NA, RIGHT PARENTHESIS # + +3202 ; 0028 1103 0029 ; MA #* ( ㈂ → (ᄃ) ) PARENTHESIZED HANGUL TIKEUT → LEFT PARENTHESIS, HANGUL CHOSEONG TIKEUT, RIGHT PARENTHESIS # + +3210 ; 0028 B2E4 0029 ; MA #* ( ㈐ → (다) ) PARENTHESIZED HANGUL TIKEUT A → LEFT PARENTHESIS, HANGUL SYLLABLE DA, RIGHT PARENTHESIS # + +3203 ; 0028 1105 0029 ; MA #* ( ㈃ → (ᄅ) ) PARENTHESIZED HANGUL RIEUL → LEFT PARENTHESIS, HANGUL CHOSEONG RIEUL, RIGHT PARENTHESIS # + +3211 ; 0028 B77C 0029 ; MA #* ( ㈑ → (라) ) PARENTHESIZED HANGUL RIEUL A → LEFT PARENTHESIS, HANGUL SYLLABLE RA, RIGHT PARENTHESIS # + +3204 ; 0028 1106 0029 ; MA #* ( ㈄ → (ᄆ) ) PARENTHESIZED HANGUL MIEUM → LEFT PARENTHESIS, HANGUL CHOSEONG MIEUM, RIGHT PARENTHESIS # + +3212 ; 0028 B9C8 0029 ; MA #* ( ㈒ → (마) ) PARENTHESIZED HANGUL MIEUM A → LEFT PARENTHESIS, HANGUL SYLLABLE MA, RIGHT PARENTHESIS # + +3205 ; 0028 1107 0029 ; MA #* ( ㈅ → (ᄇ) ) PARENTHESIZED HANGUL PIEUP → LEFT PARENTHESIS, HANGUL CHOSEONG PIEUP, RIGHT PARENTHESIS # + +3213 ; 0028 BC14 0029 ; MA #* ( ㈓ → (바) ) PARENTHESIZED HANGUL PIEUP A → LEFT PARENTHESIS, HANGUL SYLLABLE BA, RIGHT PARENTHESIS # + +3206 ; 0028 1109 0029 ; MA #* ( ㈆ → (ᄉ) ) PARENTHESIZED HANGUL SIOS → LEFT PARENTHESIS, HANGUL CHOSEONG SIOS, RIGHT PARENTHESIS # + +3214 ; 0028 C0AC 0029 ; MA #* ( ㈔ → (사) ) PARENTHESIZED HANGUL SIOS A → LEFT PARENTHESIS, HANGUL SYLLABLE SA, RIGHT PARENTHESIS # + +3207 ; 0028 110B 0029 ; MA #* ( ㈇ → (ᄋ) ) PARENTHESIZED HANGUL IEUNG → LEFT PARENTHESIS, HANGUL CHOSEONG IEUNG, RIGHT PARENTHESIS # + +3215 ; 0028 C544 0029 ; MA #* ( ㈕ → (아) ) PARENTHESIZED HANGUL IEUNG A → LEFT PARENTHESIS, HANGUL SYLLABLE A, RIGHT PARENTHESIS # + +321D ; 0028 C624 C804 0029 ; MA #* ( ㈝ → (오전) ) PARENTHESIZED KOREAN CHARACTER OJEON → LEFT PARENTHESIS, HANGUL SYLLABLE O, HANGUL SYLLABLE JEON, RIGHT PARENTHESIS # + +321E ; 0028 C624 D6C4 0029 ; MA #* ( ㈞ → (오후) ) PARENTHESIZED KOREAN CHARACTER O HU → LEFT PARENTHESIS, HANGUL SYLLABLE O, HANGUL SYLLABLE HU, RIGHT PARENTHESIS # + +3208 ; 0028 110C 0029 ; MA #* ( ㈈ → (ᄌ) ) PARENTHESIZED HANGUL CIEUC → LEFT PARENTHESIS, HANGUL CHOSEONG CIEUC, RIGHT PARENTHESIS # + +3216 ; 0028 C790 0029 ; MA #* ( ㈖ → (자) ) PARENTHESIZED HANGUL CIEUC A → LEFT PARENTHESIS, HANGUL SYLLABLE JA, RIGHT PARENTHESIS # + +321C ; 0028 C8FC 0029 ; MA #* ( ㈜ → (주) ) PARENTHESIZED HANGUL CIEUC U → LEFT PARENTHESIS, HANGUL SYLLABLE JU, RIGHT PARENTHESIS # + +3209 ; 0028 110E 0029 ; MA #* ( ㈉ → (ᄎ) ) PARENTHESIZED HANGUL CHIEUCH → LEFT PARENTHESIS, HANGUL CHOSEONG CHIEUCH, RIGHT PARENTHESIS # + +3217 ; 0028 CC28 0029 ; MA #* ( ㈗ → (차) ) PARENTHESIZED HANGUL CHIEUCH A → LEFT PARENTHESIS, HANGUL SYLLABLE CA, RIGHT PARENTHESIS # + +320A ; 0028 110F 0029 ; MA #* ( ㈊ → (ᄏ) ) PARENTHESIZED HANGUL KHIEUKH → LEFT PARENTHESIS, HANGUL CHOSEONG KHIEUKH, RIGHT PARENTHESIS # + +3218 ; 0028 CE74 0029 ; MA #* ( ㈘ → (카) ) PARENTHESIZED HANGUL KHIEUKH A → LEFT PARENTHESIS, HANGUL SYLLABLE KA, RIGHT PARENTHESIS # + +320B ; 0028 1110 0029 ; MA #* ( ㈋ → (ᄐ) ) PARENTHESIZED HANGUL THIEUTH → LEFT PARENTHESIS, HANGUL CHOSEONG THIEUTH, RIGHT PARENTHESIS # + +3219 ; 0028 D0C0 0029 ; MA #* ( ㈙ → (타) ) PARENTHESIZED HANGUL THIEUTH A → LEFT PARENTHESIS, HANGUL SYLLABLE TA, RIGHT PARENTHESIS # + +320C ; 0028 1111 0029 ; MA #* ( ㈌ → (ᄑ) ) PARENTHESIZED HANGUL PHIEUPH → LEFT PARENTHESIS, HANGUL CHOSEONG PHIEUPH, RIGHT PARENTHESIS # + +321A ; 0028 D30C 0029 ; MA #* ( ㈚ → (파) ) PARENTHESIZED HANGUL PHIEUPH A → LEFT PARENTHESIS, HANGUL SYLLABLE PA, RIGHT PARENTHESIS # + +320D ; 0028 1112 0029 ; MA #* ( ㈍ → (ᄒ) ) PARENTHESIZED HANGUL HIEUH → LEFT PARENTHESIS, HANGUL CHOSEONG HIEUH, RIGHT PARENTHESIS # + +321B ; 0028 D558 0029 ; MA #* ( ㈛ → (하) ) PARENTHESIZED HANGUL HIEUH A → LEFT PARENTHESIS, HANGUL SYLLABLE HA, RIGHT PARENTHESIS # + +3226 ; 0028 4E03 0029 ; MA #* ( ㈦ → (七) ) PARENTHESIZED IDEOGRAPH SEVEN → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4E03, RIGHT PARENTHESIS # + +3222 ; 0028 4E09 0029 ; MA #* ( ㈢ → (三) ) PARENTHESIZED IDEOGRAPH THREE → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4E09, RIGHT PARENTHESIS # +1F241 ; 0028 4E09 0029 ; MA #* ( 🉁 → (三) ) TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09 → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4E09, RIGHT PARENTHESIS # →〔三〕→ + +3228 ; 0028 4E5D 0029 ; MA #* ( ㈨ → (九) ) PARENTHESIZED IDEOGRAPH NINE → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4E5D, RIGHT PARENTHESIS # + +3221 ; 0028 4E8C 0029 ; MA #* ( ㈡ → (二) ) PARENTHESIZED IDEOGRAPH TWO → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4E8C, RIGHT PARENTHESIS # +1F242 ; 0028 4E8C 0029 ; MA #* ( 🉂 → (二) ) TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4E8C, RIGHT PARENTHESIS # →〔二〕→ + +3224 ; 0028 4E94 0029 ; MA #* ( ㈤ → (五) ) PARENTHESIZED IDEOGRAPH FIVE → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4E94, RIGHT PARENTHESIS # + +3239 ; 0028 4EE3 0029 ; MA #* ( ㈹ → (代) ) PARENTHESIZED IDEOGRAPH REPRESENT → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4EE3, RIGHT PARENTHESIS # + +323D ; 0028 4F01 0029 ; MA #* ( ㈽ → (企) ) PARENTHESIZED IDEOGRAPH ENTERPRISE → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4F01, RIGHT PARENTHESIS # + +3241 ; 0028 4F11 0029 ; MA #* ( ㉁ → (休) ) PARENTHESIZED IDEOGRAPH REST → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-4F11, RIGHT PARENTHESIS # + +3227 ; 0028 516B 0029 ; MA #* ( ㈧ → (八) ) PARENTHESIZED IDEOGRAPH EIGHT → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-516B, RIGHT PARENTHESIS # + +3225 ; 0028 516D 0029 ; MA #* ( ㈥ → (六) ) PARENTHESIZED IDEOGRAPH SIX → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-516D, RIGHT PARENTHESIS # + +3238 ; 0028 52B4 0029 ; MA #* ( ㈸ → (労) ) PARENTHESIZED IDEOGRAPH LABOR → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-52B4, RIGHT PARENTHESIS # + +1F247 ; 0028 52DD 0029 ; MA #* ( 🉇 → (勝) ) TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-52DD, RIGHT PARENTHESIS # →〔勝〕→ + +3229 ; 0028 5341 0029 ; MA #* ( ㈩ → (十) ) PARENTHESIZED IDEOGRAPH TEN → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-5341, RIGHT PARENTHESIS # + +323F ; 0028 5354 0029 ; MA #* ( ㈿ → (協) ) PARENTHESIZED IDEOGRAPH ALLIANCE → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-5354, RIGHT PARENTHESIS # + +3234 ; 0028 540D 0029 ; MA #* ( ㈴ → (名) ) PARENTHESIZED IDEOGRAPH NAME → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-540D, RIGHT PARENTHESIS # + +323A ; 0028 547C 0029 ; MA #* ( ㈺ → (呼) ) PARENTHESIZED IDEOGRAPH CALL → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-547C, RIGHT PARENTHESIS # + +3223 ; 0028 56DB 0029 ; MA #* ( ㈣ → (四) ) PARENTHESIZED IDEOGRAPH FOUR → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-56DB, RIGHT PARENTHESIS # + +322F ; 0028 571F 0029 ; MA #* ( ㈯ → (土) ) PARENTHESIZED IDEOGRAPH EARTH → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-571F, RIGHT PARENTHESIS # + +323B ; 0028 5B66 0029 ; MA #* ( ㈻ → (学) ) PARENTHESIZED IDEOGRAPH STUDY → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-5B66, RIGHT PARENTHESIS # + +1F243 ; 0028 5B89 0029 ; MA #* ( 🉃 → (安) ) TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89 → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-5B89, RIGHT PARENTHESIS # →〔安〕→ + +1F245 ; 0028 6253 0029 ; MA #* ( 🉅 → (打) ) TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253 → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-6253, RIGHT PARENTHESIS # →〔打〕→ + +1F248 ; 0028 6557 0029 ; MA #* ( 🉈 → (敗) ) TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557 → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-6557, RIGHT PARENTHESIS # →〔敗〕→ + +3230 ; 0028 65E5 0029 ; MA #* ( ㈰ → (日) ) PARENTHESIZED IDEOGRAPH SUN → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-65E5, RIGHT PARENTHESIS # + +322A ; 0028 6708 0029 ; MA #* ( ㈪ → (月) ) PARENTHESIZED IDEOGRAPH MOON → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-6708, RIGHT PARENTHESIS # + +3232 ; 0028 6709 0029 ; MA #* ( ㈲ → (有) ) PARENTHESIZED IDEOGRAPH HAVE → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-6709, RIGHT PARENTHESIS # + +322D ; 0028 6728 0029 ; MA #* ( ㈭ → (木) ) PARENTHESIZED IDEOGRAPH WOOD → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-6728, RIGHT PARENTHESIS # + +1F240 ; 0028 672C 0029 ; MA #* ( 🉀 → (本) ) TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-672C, RIGHT PARENTHESIS # →〔本〕→ + +3231 ; 0028 682A 0029 ; MA #* ( ㈱ → (株) ) PARENTHESIZED IDEOGRAPH STOCK → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-682A, RIGHT PARENTHESIS # + +322C ; 0028 6C34 0029 ; MA #* ( ㈬ → (水) ) PARENTHESIZED IDEOGRAPH WATER → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-6C34, RIGHT PARENTHESIS # + +322B ; 0028 706B 0029 ; MA #* ( ㈫ → (火) ) PARENTHESIZED IDEOGRAPH FIRE → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-706B, RIGHT PARENTHESIS # + +1F244 ; 0028 70B9 0029 ; MA #* ( 🉄 → (点) ) TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9 → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-70B9, RIGHT PARENTHESIS # →〔点〕→ + +3235 ; 0028 7279 0029 ; MA #* ( ㈵ → (特) ) PARENTHESIZED IDEOGRAPH SPECIAL → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-7279, RIGHT PARENTHESIS # + +1F246 ; 0028 76D7 0029 ; MA #* ( 🉆 → (盗) ) TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7 → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-76D7, RIGHT PARENTHESIS # →〔盗〕→ + +323C ; 0028 76E3 0029 ; MA #* ( ㈼ → (監) ) PARENTHESIZED IDEOGRAPH SUPERVISE → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-76E3, RIGHT PARENTHESIS # + +3233 ; 0028 793E 0029 ; MA #* ( ㈳ → (社) ) PARENTHESIZED IDEOGRAPH SOCIETY → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-793E, RIGHT PARENTHESIS # + +3237 ; 0028 795D 0029 ; MA #* ( ㈷ → (祝) ) PARENTHESIZED IDEOGRAPH CONGRATULATION → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-795D, RIGHT PARENTHESIS # + +3240 ; 0028 796D 0029 ; MA #* ( ㉀ → (祭) ) PARENTHESIZED IDEOGRAPH FESTIVAL → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-796D, RIGHT PARENTHESIS # + +3242 ; 0028 81EA 0029 ; MA #* ( ㉂ → (自) ) PARENTHESIZED IDEOGRAPH SELF → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-81EA, RIGHT PARENTHESIS # + +3243 ; 0028 81F3 0029 ; MA #* ( ㉃ → (至) ) PARENTHESIZED IDEOGRAPH REACH → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-81F3, RIGHT PARENTHESIS # + +3236 ; 0028 8CA1 0029 ; MA #* ( ㈶ → (財) ) PARENTHESIZED IDEOGRAPH FINANCIAL → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-8CA1, RIGHT PARENTHESIS # + +323E ; 0028 8CC7 0029 ; MA #* ( ㈾ → (資) ) PARENTHESIZED IDEOGRAPH RESOURCE → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-8CC7, RIGHT PARENTHESIS # + +322E ; 0028 91D1 0029 ; MA #* ( ㈮ → (金) ) PARENTHESIZED IDEOGRAPH METAL → LEFT PARENTHESIS, CJK UNIFIED IDEOGRAPH-91D1, RIGHT PARENTHESIS # + +FF3D ; 0029 ; MA #* ( ] → ) ) FULLWIDTH RIGHT SQUARE BRACKET → RIGHT PARENTHESIS # →〕→ +2769 ; 0029 ; MA #* ( ❩ → ) ) MEDIUM RIGHT PARENTHESIS ORNAMENT → RIGHT PARENTHESIS # +2773 ; 0029 ; MA #* ( ❳ → ) ) LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT → RIGHT PARENTHESIS # →〕→ +3015 ; 0029 ; MA #* ( 〕 → ) ) RIGHT TORTOISE SHELL BRACKET → RIGHT PARENTHESIS # +FD3F ; 0029 ; MA #* ( ﴿ → ) ) ORNATE RIGHT PARENTHESIS → RIGHT PARENTHESIS # + +2E29 ; 0029 0029 ; MA #* ( ⸩ → )) ) RIGHT DOUBLE PARENTHESIS → RIGHT PARENTHESIS, RIGHT PARENTHESIS # + +2774 ; 007B ; MA #* ( ❴ → { ) MEDIUM LEFT CURLY BRACKET ORNAMENT → LEFT CURLY BRACKET # +1D114 ; 007B ; MA #* ( 𝄔 → { ) MUSICAL SYMBOL BRACE → LEFT CURLY BRACKET # + +2775 ; 007D ; MA #* ( ❵ → } ) MEDIUM RIGHT CURLY BRACKET ORNAMENT → RIGHT CURLY BRACKET # + +301A ; 27E6 ; MA #* ( 〚 → ⟦ ) LEFT WHITE SQUARE BRACKET → MATHEMATICAL LEFT WHITE SQUARE BRACKET # + +301B ; 27E7 ; MA #* ( 〛 → ⟧ ) RIGHT WHITE SQUARE BRACKET → MATHEMATICAL RIGHT WHITE SQUARE BRACKET # + +27E8 ; 276C ; MA #* ( ⟨ → ❬ ) MATHEMATICAL LEFT ANGLE BRACKET → MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT # →〈→ +2329 ; 276C ; MA #* ( 〈 → ❬ ) LEFT-POINTING ANGLE BRACKET → MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT # →〈→ +3008 ; 276C ; MA #* ( 〈 → ❬ ) LEFT ANGLE BRACKET → MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT # +31DB ; 276C ; MA #* ( ㇛ → ❬ ) CJK STROKE PD → MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT # →⟨→→〈→ +304F ; 276C ; MA # ( く → ❬ ) HIRAGANA LETTER KU → MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT # →㇛→→⟨→→〈→ +21FE8 ; 276C ; MA # ( 𡿨 → ❬ ) CJK UNIFIED IDEOGRAPH-21FE8 → MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT # →㇛→→⟨→→〈→ + +27E9 ; 276D ; MA #* ( ⟩ → ❭ ) MATHEMATICAL RIGHT ANGLE BRACKET → MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT # →〉→ +232A ; 276D ; MA #* ( 〉 → ❭ ) RIGHT-POINTING ANGLE BRACKET → MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT # →〉→ +3009 ; 276D ; MA #* ( 〉 → ❭ ) RIGHT ANGLE BRACKET → MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT # + +FF3E ; FE3F ; MA #* ( ^ → ︿ ) FULLWIDTH CIRCUMFLEX ACCENT → PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET # + +2E3F ; 00B6 ; MA #* ( ⸿ → ¶ ) CAPITULUM → PILCROW SIGN # + +204E ; 002A ; MA #* ( ⁎ → * ) LOW ASTERISK → ASTERISK # +066D ; 002A ; MA #* ( ‎٭‎ → * ) ARABIC FIVE POINTED STAR → ASTERISK # +2217 ; 002A ; MA #* ( ∗ → * ) ASTERISK OPERATOR → ASTERISK # +1031F ; 002A ; MA # ( 𐌟 → * ) OLD ITALIC LETTER ESS → ASTERISK # + +1735 ; 002F ; MA #* ( ᜵ → / ) PHILIPPINE SINGLE PUNCTUATION → SOLIDUS # +2041 ; 002F ; MA #* ( ⁁ → / ) CARET INSERTION POINT → SOLIDUS # +2215 ; 002F ; MA #* ( ∕ → / ) DIVISION SLASH → SOLIDUS # +2044 ; 002F ; MA #* ( ⁄ → / ) FRACTION SLASH → SOLIDUS # +2571 ; 002F ; MA #* ( ╱ → / ) BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT → SOLIDUS # +27CB ; 002F ; MA #* ( ⟋ → / ) MATHEMATICAL RISING DIAGONAL → SOLIDUS # +29F8 ; 002F ; MA #* ( ⧸ → / ) BIG SOLIDUS → SOLIDUS # +1D23A ; 002F ; MA #* ( 𝈺 → / ) GREEK INSTRUMENTAL NOTATION SYMBOL-47 → SOLIDUS # +31D3 ; 002F ; MA #* ( ㇓ → / ) CJK STROKE SP → SOLIDUS # →⼃→ +3033 ; 002F ; MA # ( 〳 → / ) VERTICAL KANA REPEAT MARK UPPER HALF → SOLIDUS # +2CC6 ; 002F ; MA # ( Ⳇ → / ) COPTIC CAPITAL LETTER OLD COPTIC ESH → SOLIDUS # +30CE ; 002F ; MA # ( ノ → / ) KATAKANA LETTER NO → SOLIDUS # →⼃→ +4E3F ; 002F ; MA # ( 丿 → / ) CJK UNIFIED IDEOGRAPH-4E3F → SOLIDUS # →⼃→ +2F03 ; 002F ; MA #* ( ⼃ → / ) KANGXI RADICAL SLASH → SOLIDUS # + +29F6 ; 002F 0304 ; MA #* ( ⧶ → /̄ ) SOLIDUS WITH OVERBAR → SOLIDUS, COMBINING MACRON # + +2AFD ; 002F 002F ; MA #* ( ⫽ → // ) DOUBLE SOLIDUS OPERATOR → SOLIDUS, SOLIDUS # + +2AFB ; 002F 002F 002F ; MA #* ( ⫻ → /// ) TRIPLE SOLIDUS BINARY RELATION → SOLIDUS, SOLIDUS, SOLIDUS # + +FF3C ; 005C ; MA #* ( \ → \ ) FULLWIDTH REVERSE SOLIDUS → REVERSE SOLIDUS # →∖→ +FE68 ; 005C ; MA #* ( ﹨ → \ ) SMALL REVERSE SOLIDUS → REVERSE SOLIDUS # →∖→ +2216 ; 005C ; MA #* ( ∖ → \ ) SET MINUS → REVERSE SOLIDUS # +27CD ; 005C ; MA #* ( ⟍ → \ ) MATHEMATICAL FALLING DIAGONAL → REVERSE SOLIDUS # +29F5 ; 005C ; MA #* ( ⧵ → \ ) REVERSE SOLIDUS OPERATOR → REVERSE SOLIDUS # +29F9 ; 005C ; MA #* ( ⧹ → \ ) BIG REVERSE SOLIDUS → REVERSE SOLIDUS # +1D20F ; 005C ; MA #* ( 𝈏 → \ ) GREEK VOCAL NOTATION SYMBOL-16 → REVERSE SOLIDUS # +1D23B ; 005C ; MA #* ( 𝈻 → \ ) GREEK INSTRUMENTAL NOTATION SYMBOL-48 → REVERSE SOLIDUS # →𝈏→ +31D4 ; 005C ; MA #* ( ㇔ → \ ) CJK STROKE D → REVERSE SOLIDUS # →⼂→ +4E36 ; 005C ; MA # ( 丶 → \ ) CJK UNIFIED IDEOGRAPH-4E36 → REVERSE SOLIDUS # →⼂→ +2F02 ; 005C ; MA #* ( ⼂ → \ ) KANGXI RADICAL DOT → REVERSE SOLIDUS # + +2CF9 ; 005C 005C ; MA #* ( ⳹ → \\ ) COPTIC OLD NUBIAN FULL STOP → REVERSE SOLIDUS, REVERSE SOLIDUS # +244A ; 005C 005C ; MA #* ( ⑊ → \\ ) OCR DOUBLE BACKSLASH → REVERSE SOLIDUS, REVERSE SOLIDUS # + +27C8 ; 005C 1455 ; MA #* ( ⟈ → \ᑕ ) REVERSE SOLIDUS PRECEDING SUBSET → REVERSE SOLIDUS, CANADIAN SYLLABICS TA # →\⊂→ + +A778 ; 0026 ; MA # ( ꝸ → & ) LATIN SMALL LETTER UM → AMPERSAND # + +0AF0 ; 0970 ; MA #* ( ૰ → ॰ ) GUJARATI ABBREVIATION SIGN → DEVANAGARI ABBREVIATION SIGN # +110BB ; 0970 ; MA #* ( 𑂻 → ॰ ) KAITHI ABBREVIATION SIGN → DEVANAGARI ABBREVIATION SIGN # +111C7 ; 0970 ; MA #* ( 𑇇 → ॰ ) SHARADA ABBREVIATION SIGN → DEVANAGARI ABBREVIATION SIGN # +26AC ; 0970 ; MA #* ( ⚬ → ॰ ) MEDIUM SMALL WHITE CIRCLE → DEVANAGARI ABBREVIATION SIGN # + +111DB ; A8FC ; MA #* ( 𑇛 → ꣼ ) SHARADA SIGN SIDDHAM → DEVANAGARI SIGN SIDDHAM # + +17D9 ; 0E4F ; MA #* ( ៙ → ๏ ) KHMER SIGN PHNAEK MUAN → THAI CHARACTER FONGMAN # + +17D5 ; 0E5A ; MA #* ( ៕ → ๚ ) KHMER SIGN BARIYOOSAN → THAI CHARACTER ANGKHANKHU # + +17DA ; 0E5B ; MA #* ( ៚ → ๛ ) KHMER SIGN KOOMUUT → THAI CHARACTER KHOMUT # + +0F0C ; 0F0B ; MA #* ( ༌ → ་ ) TIBETAN MARK DELIMITER TSHEG BSTAR → TIBETAN MARK INTERSYLLABIC TSHEG # + +0F0E ; 0F0D 0F0D ; MA #* ( ༎ → །། ) TIBETAN MARK NYIS SHAD → TIBETAN MARK SHAD, TIBETAN MARK SHAD # + +02C4 ; 005E ; MA #* ( ˄ → ^ ) MODIFIER LETTER UP ARROWHEAD → CIRCUMFLEX ACCENT # +02C6 ; 005E ; MA # ( ˆ → ^ ) MODIFIER LETTER CIRCUMFLEX ACCENT → CIRCUMFLEX ACCENT # + +A67E ; 02C7 ; MA #* ( ꙾ → ˇ ) CYRILLIC KAVYKA → CARON # →˘→ +02D8 ; 02C7 ; MA #* ( ˘ → ˇ ) BREVE → CARON # + +203E ; 02C9 ; MA #* ( ‾ → ˉ ) OVERLINE → MODIFIER LETTER MACRON # +FE49 ; 02C9 ; MA #* ( ﹉ → ˉ ) DASHED OVERLINE → MODIFIER LETTER MACRON # →‾→ +FE4A ; 02C9 ; MA #* ( ﹊ → ˉ ) CENTRELINE OVERLINE → MODIFIER LETTER MACRON # →‾→ +FE4B ; 02C9 ; MA #* ( ﹋ → ˉ ) WAVY OVERLINE → MODIFIER LETTER MACRON # →‾→ +FE4C ; 02C9 ; MA #* ( ﹌ → ˉ ) DOUBLE WAVY OVERLINE → MODIFIER LETTER MACRON # →‾→ +00AF ; 02C9 ; MA #* ( ¯ → ˉ ) MACRON → MODIFIER LETTER MACRON # +FFE3 ; 02C9 ; MA #* (  ̄ → ˉ ) FULLWIDTH MACRON → MODIFIER LETTER MACRON # →‾→ +2594 ; 02C9 ; MA #* ( ▔ → ˉ ) UPPER ONE EIGHTH BLOCK → MODIFIER LETTER MACRON # →¯→ + +044A ; 02C9 0062 ; MA # ( ъ → ˉb ) CYRILLIC SMALL LETTER HARD SIGN → MODIFIER LETTER MACRON, LATIN SMALL LETTER B # →¯b→ + +A651 ; 02C9 0062 0069 ; MA # ( ꙑ → ˉbi ) CYRILLIC SMALL LETTER YERU WITH BACK YER → MODIFIER LETTER MACRON, LATIN SMALL LETTER B, LATIN SMALL LETTER I # →ъı→ + +0375 ; 02CF ; MA #* ( ͵ → ˏ ) GREEK LOWER NUMERAL SIGN → MODIFIER LETTER LOW ACUTE ACCENT # + +02FB ; 02EA ; MA #* ( ˻ → ˪ ) MODIFIER LETTER BEGIN LOW TONE → MODIFIER LETTER YIN DEPARTING TONE MARK # +A716 ; 02EA ; MA #* ( ꜖ → ˪ ) MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR → MODIFIER LETTER YIN DEPARTING TONE MARK # + +A714 ; 02EB ; MA #* ( ꜔ → ˫ ) MODIFIER LETTER MID LEFT-STEM TONE BAR → MODIFIER LETTER YANG DEPARTING TONE MARK # + +3002 ; 02F3 ; MA #* ( 。 → ˳ ) IDEOGRAPHIC FULL STOP → MODIFIER LETTER LOW RING # + +2E30 ; 00B0 ; MA #* ( ⸰ → ° ) RING POINT → DEGREE SIGN # →∘→ +02DA ; 00B0 ; MA #* ( ˚ → ° ) RING ABOVE → DEGREE SIGN # +2218 ; 00B0 ; MA #* ( ∘ → ° ) RING OPERATOR → DEGREE SIGN # +25CB ; 00B0 ; MA #* ( ○ → ° ) WHITE CIRCLE → DEGREE SIGN # →◦→→∘→ +25E6 ; 00B0 ; MA #* ( ◦ → ° ) WHITE BULLET → DEGREE SIGN # →∘→ + +235C ; 00B0 0332 ; MA #* ( ⍜ → °̲ ) APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR → DEGREE SIGN, COMBINING LOW LINE # →○̲→→∘̲→ + +2364 ; 00B0 0308 ; MA #* ( ⍤ → °̈ ) APL FUNCTIONAL SYMBOL JOT DIAERESIS → DEGREE SIGN, COMBINING DIAERESIS # →◦̈→→∘̈→ + +2103 ; 00B0 0043 ; MA #* ( ℃ → °C ) DEGREE CELSIUS → DEGREE SIGN, LATIN CAPITAL LETTER C # + +2109 ; 00B0 0046 ; MA #* ( ℉ → °F ) DEGREE FAHRENHEIT → DEGREE SIGN, LATIN CAPITAL LETTER F # + +0BF5 ; 0BF3 ; MA #* ( ௵ → ௳ ) TAMIL YEAR SIGN → TAMIL DAY SIGN # + +0F1B ; 0F1A 0F1A ; MA #* ( ༛ → ༚༚ ) TIBETAN SIGN RDEL DKAR GNYIS → TIBETAN SIGN RDEL DKAR GCIG, TIBETAN SIGN RDEL DKAR GCIG # + +0F1F ; 0F1A 0F1D ; MA #* ( ༟ → ༚༝ ) TIBETAN SIGN RDEL DKAR RDEL NAG → TIBETAN SIGN RDEL DKAR GCIG, TIBETAN SIGN RDEL NAG GCIG # + +0FCE ; 0F1D 0F1A ; MA #* ( ࿎ → ༝༚ ) TIBETAN SIGN RDEL NAG RDEL DKAR → TIBETAN SIGN RDEL NAG GCIG, TIBETAN SIGN RDEL DKAR GCIG # + +0F1E ; 0F1D 0F1D ; MA #* ( ༞ → ༝༝ ) TIBETAN SIGN RDEL NAG GNYIS → TIBETAN SIGN RDEL NAG GCIG, TIBETAN SIGN RDEL NAG GCIG # + +24B8 ; 00A9 ; MA #* ( Ⓒ → © ) CIRCLED LATIN CAPITAL LETTER C → COPYRIGHT SIGN # + +24C7 ; 00AE ; MA #* ( Ⓡ → ® ) CIRCLED LATIN CAPITAL LETTER R → REGISTERED SIGN # + +24C5 ; 2117 ; MA #* ( Ⓟ → ℗ ) CIRCLED LATIN CAPITAL LETTER P → SOUND RECORDING COPYRIGHT # + +1D21B ; 2144 ; MA #* ( 𝈛 → ⅄ ) GREEK VOCAL NOTATION SYMBOL-53 → TURNED SANS-SERIF CAPITAL Y # + +2BEC ; 219E ; MA #* ( ⯬ → ↞ ) LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS → LEFTWARDS TWO HEADED ARROW # + +2BED ; 219F ; MA #* ( ⯭ → ↟ ) UPWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS → UPWARDS TWO HEADED ARROW # + +2BEE ; 21A0 ; MA #* ( ⯮ → ↠ ) RIGHTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS → RIGHTWARDS TWO HEADED ARROW # + +2BEF ; 21A1 ; MA #* ( ⯯ → ↡ ) DOWNWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS → DOWNWARDS TWO HEADED ARROW # + +21B5 ; 21B2 ; MA #* ( ↵ → ↲ ) DOWNWARDS ARROW WITH CORNER LEFTWARDS → DOWNWARDS ARROW WITH TIP LEFTWARDS # + +2965 ; 21C3 21C2 ; MA #* ( ⥥ → ⇃⇂ ) DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT → DOWNWARDS HARPOON WITH BARB LEFTWARDS, DOWNWARDS HARPOON WITH BARB RIGHTWARDS # + +296F ; 21C3 16DA ; MA #* ( ⥯ → ⇃ᛚ ) DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT → DOWNWARDS HARPOON WITH BARB LEFTWARDS, RUNIC LETTER LAUKAZ LAGU LOGR L # →⇃↾→ + +1D6DB ; 2202 ; MA #* ( 𝛛 → ∂ ) MATHEMATICAL BOLD PARTIAL DIFFERENTIAL → PARTIAL DIFFERENTIAL # +1D715 ; 2202 ; MA #* ( 𝜕 → ∂ ) MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL → PARTIAL DIFFERENTIAL # +1D74F ; 2202 ; MA #* ( 𝝏 → ∂ ) MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL → PARTIAL DIFFERENTIAL # +1D789 ; 2202 ; MA #* ( 𝞉 → ∂ ) MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL → PARTIAL DIFFERENTIAL # +1D7C3 ; 2202 ; MA #* ( 𝟃 → ∂ ) MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL → PARTIAL DIFFERENTIAL # +1E8CC ; 2202 ; MA #* ( ‎𞣌‎ → ∂ ) MENDE KIKAKUI DIGIT SIX → PARTIAL DIFFERENTIAL # + +1E8CD ; 2202 0335 ; MA #* ( ‎𞣍‎ → ∂̵ ) MENDE KIKAKUI DIGIT SEVEN → PARTIAL DIFFERENTIAL, COMBINING SHORT STROKE OVERLAY # →ð→ +00F0 ; 2202 0335 ; MA # ( ð → ∂̵ ) LATIN SMALL LETTER ETH → PARTIAL DIFFERENTIAL, COMBINING SHORT STROKE OVERLAY # + +2300 ; 2205 ; MA #* ( ⌀ → ∅ ) DIAMETER SIGN → EMPTY SET # + +1D6C1 ; 2207 ; MA #* ( 𝛁 → ∇ ) MATHEMATICAL BOLD NABLA → NABLA # +1D6FB ; 2207 ; MA #* ( 𝛻 → ∇ ) MATHEMATICAL ITALIC NABLA → NABLA # +1D735 ; 2207 ; MA #* ( 𝜵 → ∇ ) MATHEMATICAL BOLD ITALIC NABLA → NABLA # +1D76F ; 2207 ; MA #* ( 𝝯 → ∇ ) MATHEMATICAL SANS-SERIF BOLD NABLA → NABLA # +1D7A9 ; 2207 ; MA #* ( 𝞩 → ∇ ) MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA → NABLA # +118A8 ; 2207 ; MA # ( 𑢨 → ∇ ) WARANG CITI CAPITAL LETTER E → NABLA # + +2362 ; 2207 0308 ; MA #* ( ⍢ → ∇̈ ) APL FUNCTIONAL SYMBOL DEL DIAERESIS → NABLA, COMBINING DIAERESIS # + +236B ; 2207 0334 ; MA #* ( ⍫ → ∇̴ ) APL FUNCTIONAL SYMBOL DEL TILDE → NABLA, COMBINING TILDE OVERLAY # + +2588 ; 220E ; MA #* ( █ → ∎ ) FULL BLOCK → END OF PROOF # →■→ +25A0 ; 220E ; MA #* ( ■ → ∎ ) BLACK SQUARE → END OF PROOF # + +2A3F ; 2210 ; MA #* ( ⨿ → ∐ ) AMALGAMATION OR COPRODUCT → N-ARY COPRODUCT # + +16ED ; 002B ; MA #* ( ᛭ → + ) RUNIC CROSS PUNCTUATION → PLUS SIGN # +2795 ; 002B ; MA #* ( ➕ → + ) HEAVY PLUS SIGN → PLUS SIGN # +1029B ; 002B ; MA # ( 𐊛 → + ) LYCIAN LETTER H → PLUS SIGN # + +2A23 ; 002B 0302 ; MA #* ( ⨣ → +̂ ) PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE → PLUS SIGN, COMBINING CIRCUMFLEX ACCENT # + +2A22 ; 002B 030A ; MA #* ( ⨢ → +̊ ) PLUS SIGN WITH SMALL CIRCLE ABOVE → PLUS SIGN, COMBINING RING ABOVE # + +2A24 ; 002B 0303 ; MA #* ( ⨤ → +̃ ) PLUS SIGN WITH TILDE ABOVE → PLUS SIGN, COMBINING TILDE # + +2214 ; 002B 0307 ; MA #* ( ∔ → +̇ ) DOT PLUS → PLUS SIGN, COMBINING DOT ABOVE # + +2A25 ; 002B 0323 ; MA #* ( ⨥ → +̣ ) PLUS SIGN WITH DOT BELOW → PLUS SIGN, COMBINING DOT BELOW # + +2A26 ; 002B 0330 ; MA #* ( ⨦ → +̰ ) PLUS SIGN WITH TILDE BELOW → PLUS SIGN, COMBINING TILDE BELOW # + +2A27 ; 002B 2082 ; MA #* ( ⨧ → +₂ ) PLUS SIGN WITH SUBSCRIPT TWO → PLUS SIGN, SUBSCRIPT TWO # + +2797 ; 00F7 ; MA #* ( ➗ → ÷ ) HEAVY DIVISION SIGN → DIVISION SIGN # + +2039 ; 003C ; MA #* ( ‹ → < ) SINGLE LEFT-POINTING ANGLE QUOTATION MARK → LESS-THAN SIGN # +276E ; 003C ; MA #* ( ❮ → < ) HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT → LESS-THAN SIGN # →‹→ +02C2 ; 003C ; MA #* ( ˂ → < ) MODIFIER LETTER LEFT ARROWHEAD → LESS-THAN SIGN # +1D236 ; 003C ; MA #* ( 𝈶 → < ) GREEK INSTRUMENTAL NOTATION SYMBOL-40 → LESS-THAN SIGN # +1438 ; 003C ; MA # ( ᐸ → < ) CANADIAN SYLLABICS PA → LESS-THAN SIGN # +16B2 ; 003C ; MA # ( ᚲ → < ) RUNIC LETTER KAUNA → LESS-THAN SIGN # + +22D6 ; 003C 00B7 ; MA #* ( ⋖ → <· ) LESS-THAN WITH DOT → LESS-THAN SIGN, MIDDLE DOT # →ᑅ→→ᐸᐧ→ +2CB4 ; 003C 00B7 ; MA # ( Ⲵ → <· ) COPTIC CAPITAL LETTER OLD COPTIC AIN → LESS-THAN SIGN, MIDDLE DOT # →ᑅ→→ᐸᐧ→ +1445 ; 003C 00B7 ; MA # ( ᑅ → <· ) CANADIAN SYLLABICS WEST-CREE PWA → LESS-THAN SIGN, MIDDLE DOT # →ᐸᐧ→ + +226A ; 003C 003C ; MA #* ( ≪ → << ) MUCH LESS-THAN → LESS-THAN SIGN, LESS-THAN SIGN # + +22D8 ; 003C 003C 003C ; MA #* ( ⋘ → <<< ) VERY MUCH LESS-THAN → LESS-THAN SIGN, LESS-THAN SIGN, LESS-THAN SIGN # + +1400 ; 003D ; MA #* ( ᐀ → = ) CANADIAN SYLLABICS HYPHEN → EQUALS SIGN # +2E40 ; 003D ; MA #* ( ⹀ → = ) DOUBLE HYPHEN → EQUALS SIGN # +30A0 ; 003D ; MA #* ( ゠ → = ) KATAKANA-HIRAGANA DOUBLE HYPHEN → EQUALS SIGN # +A4FF ; 003D ; MA #* ( ꓿ → = ) LISU PUNCTUATION FULL STOP → EQUALS SIGN # + +225A ; 003D 0306 ; MA #* ( ≚ → =̆ ) EQUIANGULAR TO → EQUALS SIGN, COMBINING BREVE # →=̌→ + +2259 ; 003D 0302 ; MA #* ( ≙ → =̂ ) ESTIMATES → EQUALS SIGN, COMBINING CIRCUMFLEX ACCENT # + +2257 ; 003D 030A ; MA #* ( ≗ → =̊ ) RING EQUAL TO → EQUALS SIGN, COMBINING RING ABOVE # + +2250 ; 003D 0307 ; MA #* ( ≐ → =̇ ) APPROACHES THE LIMIT → EQUALS SIGN, COMBINING DOT ABOVE # + +2251 ; 003D 0307 0323 ; MA #* ( ≑ → =̣̇ ) GEOMETRICALLY EQUAL TO → EQUALS SIGN, COMBINING DOT ABOVE, COMBINING DOT BELOW # →≐̣→ + +2A6E ; 003D 20F0 ; MA #* ( ⩮ → =⃰ ) EQUALS WITH ASTERISK → EQUALS SIGN, COMBINING ASTERISK ABOVE # + +2A75 ; 003D 003D ; MA #* ( ⩵ → == ) TWO CONSECUTIVE EQUALS SIGNS → EQUALS SIGN, EQUALS SIGN # + +2A76 ; 003D 003D 003D ; MA #* ( ⩶ → === ) THREE CONSECUTIVE EQUALS SIGNS → EQUALS SIGN, EQUALS SIGN, EQUALS SIGN # + +225E ; 003D 036B ; MA #* ( ≞ → =ͫ ) MEASURED BY → EQUALS SIGN, COMBINING LATIN SMALL LETTER M # + +203A ; 003E ; MA #* ( › → > ) SINGLE RIGHT-POINTING ANGLE QUOTATION MARK → GREATER-THAN SIGN # +276F ; 003E ; MA #* ( ❯ → > ) HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT → GREATER-THAN SIGN # →›→ +02C3 ; 003E ; MA #* ( ˃ → > ) MODIFIER LETTER RIGHT ARROWHEAD → GREATER-THAN SIGN # +1D237 ; 003E ; MA #* ( 𝈷 → > ) GREEK INSTRUMENTAL NOTATION SYMBOL-42 → GREATER-THAN SIGN # +1433 ; 003E ; MA # ( ᐳ → > ) CANADIAN SYLLABICS PO → GREATER-THAN SIGN # +16F3F ; 003E ; MA # ( 𖼿 → > ) MIAO LETTER ARCHAIC ZZA → GREATER-THAN SIGN # + +1441 ; 003E 00B7 ; MA # ( ᑁ → >· ) CANADIAN SYLLABICS WEST-CREE PWO → GREATER-THAN SIGN, MIDDLE DOT # →ᐳᐧ→ + +2AA5 ; 003E 003C ; MA #* ( ⪥ → >< ) GREATER-THAN BESIDE LESS-THAN → GREATER-THAN SIGN, LESS-THAN SIGN # + +226B ; 003E 003E ; MA #* ( ≫ → >> ) MUCH GREATER-THAN → GREATER-THAN SIGN, GREATER-THAN SIGN # +2A20 ; 003E 003E ; MA #* ( ⨠ → >> ) Z NOTATION SCHEMA PIPING → GREATER-THAN SIGN, GREATER-THAN SIGN # →≫→ + +22D9 ; 003E 003E 003E ; MA #* ( ⋙ → >>> ) VERY MUCH GREATER-THAN → GREATER-THAN SIGN, GREATER-THAN SIGN, GREATER-THAN SIGN # + +2053 ; 007E ; MA #* ( ⁓ → ~ ) SWUNG DASH → TILDE # +02DC ; 007E ; MA #* ( ˜ → ~ ) SMALL TILDE → TILDE # +1FC0 ; 007E ; MA #* ( ῀ → ~ ) GREEK PERISPOMENI → TILDE # →˜→ +223C ; 007E ; MA #* ( ∼ → ~ ) TILDE OPERATOR → TILDE # + +2368 ; 007E 0308 ; MA #* ( ⍨ → ~̈ ) APL FUNCTIONAL SYMBOL TILDE DIAERESIS → TILDE, COMBINING DIAERESIS # + +2E1E ; 007E 0307 ; MA #* ( ⸞ → ~̇ ) TILDE WITH DOT ABOVE → TILDE, COMBINING DOT ABOVE # →⩪→→∼̇→→⁓̇→ +2A6A ; 007E 0307 ; MA #* ( ⩪ → ~̇ ) TILDE OPERATOR WITH DOT ABOVE → TILDE, COMBINING DOT ABOVE # →∼̇→→⁓̇→ + +2E1F ; 007E 0323 ; MA #* ( ⸟ → ~̣ ) TILDE WITH DOT BELOW → TILDE, COMBINING DOT BELOW # + +1E8C8 ; 2220 ; MA #* ( ‎𞣈‎ → ∠ ) MENDE KIKAKUI DIGIT TWO → ANGLE # + +22C0 ; 2227 ; MA #* ( ⋀ → ∧ ) N-ARY LOGICAL AND → LOGICAL AND # + +222F ; 222E 222E ; MA #* ( ∯ → ∮∮ ) SURFACE INTEGRAL → CONTOUR INTEGRAL, CONTOUR INTEGRAL # + +2230 ; 222E 222E 222E ; MA #* ( ∰ → ∮∮∮ ) VOLUME INTEGRAL → CONTOUR INTEGRAL, CONTOUR INTEGRAL, CONTOUR INTEGRAL # + +2E2B ; 2234 ; MA #* ( ⸫ → ∴ ) ONE DOT OVER TWO DOTS PUNCTUATION → THEREFORE # + +2E2A ; 2235 ; MA #* ( ⸪ → ∵ ) TWO DOTS OVER ONE DOT PUNCTUATION → BECAUSE # + +2E2C ; 2237 ; MA #* ( ⸬ → ∷ ) SQUARED FOUR DOT PUNCTUATION → PROPORTION # + +111DE ; 2248 ; MA #* ( 𑇞 → ≈ ) SHARADA SECTION MARK-1 → ALMOST EQUAL TO # + +264E ; 224F ; MA #* ( ♎ → ≏ ) LIBRA → DIFFERENCE BETWEEN # +1F75E ; 224F ; MA #* ( 🝞 → ≏ ) ALCHEMICAL SYMBOL FOR SUBLIMATION → DIFFERENCE BETWEEN # →♎→ + +2263 ; 2261 ; MA #* ( ≣ → ≡ ) STRICTLY EQUIVALENT TO → IDENTICAL TO # + +2A03 ; 228D ; MA #* ( ⨃ → ⊍ ) N-ARY UNION OPERATOR WITH DOT → MULTISET MULTIPLICATION # + +2A04 ; 228E ; MA #* ( ⨄ → ⊎ ) N-ARY UNION OPERATOR WITH PLUS → MULTISET UNION # + +1D238 ; 228F ; MA #* ( 𝈸 → ⊏ ) GREEK INSTRUMENTAL NOTATION SYMBOL-43 → SQUARE IMAGE OF # + +1D239 ; 2290 ; MA #* ( 𝈹 → ⊐ ) GREEK INSTRUMENTAL NOTATION SYMBOL-45 → SQUARE ORIGINAL OF # + +2A05 ; 2293 ; MA #* ( ⨅ → ⊓ ) N-ARY SQUARE INTERSECTION OPERATOR → SQUARE CAP # + +2A06 ; 2294 ; MA #* ( ⨆ → ⊔ ) N-ARY SQUARE UNION OPERATOR → SQUARE CUP # + +2A02 ; 2297 ; MA #* ( ⨂ → ⊗ ) N-ARY CIRCLED TIMES OPERATOR → CIRCLED TIMES # + +235F ; 229B ; MA #* ( ⍟ → ⊛ ) APL FUNCTIONAL SYMBOL CIRCLE STAR → CIRCLED ASTERISK OPERATOR # + +1F771 ; 22A0 ; MA #* ( 🝱 → ⊠ ) ALCHEMICAL SYMBOL FOR MONTH → SQUARED TIMES # + +1F755 ; 22A1 ; MA #* ( 🝕 → ⊡ ) ALCHEMICAL SYMBOL FOR URINE → SQUARED DOT OPERATOR # + +25C1 ; 22B2 ; MA #* ( ◁ → ⊲ ) WHITE LEFT-POINTING TRIANGLE → NORMAL SUBGROUP OF # + +25B7 ; 22B3 ; MA #* ( ▷ → ⊳ ) WHITE RIGHT-POINTING TRIANGLE → CONTAINS AS NORMAL SUBGROUP # + +2363 ; 22C6 0308 ; MA #* ( ⍣ → ⋆̈ ) APL FUNCTIONAL SYMBOL STAR DIAERESIS → STAR OPERATOR, COMBINING DIAERESIS # + +FE34 ; 2307 ; MA # ( ︴ → ⌇ ) PRESENTATION FORM FOR VERTICAL WAVY LOW LINE → WAVY LINE # + +25E0 ; 2312 ; MA #* ( ◠ → ⌒ ) UPPER HALF CIRCLE → ARC # + +2A3D ; 2319 ; MA #* ( ⨽ → ⌙ ) RIGHTHAND INTERIOR PRODUCT → TURNED NOT SIGN # + +2325 ; 2324 ; MA #* ( ⌥ → ⌤ ) OPTION KEY → UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS # + +29C7 ; 233B ; MA #* ( ⧇ → ⌻ ) SQUARED SMALL CIRCLE → APL FUNCTIONAL SYMBOL QUAD JOT # + +25CE ; 233E ; MA #* ( ◎ → ⌾ ) BULLSEYE → APL FUNCTIONAL SYMBOL CIRCLE JOT # →⦾→ +29BE ; 233E ; MA #* ( ⦾ → ⌾ ) CIRCLED WHITE BULLET → APL FUNCTIONAL SYMBOL CIRCLE JOT # + +29C5 ; 2342 ; MA #* ( ⧅ → ⍂ ) SQUARED FALLING DIAGONAL SLASH → APL FUNCTIONAL SYMBOL QUAD BACKSLASH # + +29B0 ; 2349 ; MA #* ( ⦰ → ⍉ ) REVERSED EMPTY SET → APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH # + +23C3 ; 234B ; MA #* ( ⏃ → ⍋ ) DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE → APL FUNCTIONAL SYMBOL DELTA STILE # + +23C2 ; 234E ; MA #* ( ⏂ → ⍎ ) DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE → APL FUNCTIONAL SYMBOL DOWN TACK JOT # + +23C1 ; 2355 ; MA #* ( ⏁ → ⍕ ) DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE → APL FUNCTIONAL SYMBOL UP TACK JOT # + +23C6 ; 236D ; MA #* ( ⏆ → ⍭ ) DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE → APL FUNCTIONAL SYMBOL STILE TILDE # + +2638 ; 2388 ; MA #* ( ☸ → ⎈ ) WHEEL OF DHARMA → HELM SYMBOL # + +FE35 ; 23DC ; MA #* ( ︵ → ⏜ ) PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS → TOP PARENTHESIS # + +FE36 ; 23DD ; MA #* ( ︶ → ⏝ ) PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS → BOTTOM PARENTHESIS # + +FE37 ; 23DE ; MA #* ( ︷ → ⏞ ) PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET → TOP CURLY BRACKET # + +FE38 ; 23DF ; MA #* ( ︸ → ⏟ ) PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET → BOTTOM CURLY BRACKET # + +FE39 ; 23E0 ; MA #* ( ︹ → ⏠ ) PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET → TOP TORTOISE SHELL BRACKET # + +FE3A ; 23E1 ; MA #* ( ︺ → ⏡ ) PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET → BOTTOM TORTOISE SHELL BRACKET # + +25B1 ; 23E5 ; MA #* ( ▱ → ⏥ ) WHITE PARALLELOGRAM → FLATNESS # + +23FC ; 23FB ; MA #* ( ⏼ → ⏻ ) POWER ON-OFF SYMBOL → POWER SYMBOL # + +FE31 ; 2502 ; MA #* ( ︱ → │ ) PRESENTATION FORM FOR VERTICAL EM DASH → BOX DRAWINGS LIGHT VERTICAL # →|→ +FF5C ; 2502 ; MA #* ( | → │ ) FULLWIDTH VERTICAL LINE → BOX DRAWINGS LIGHT VERTICAL # +2503 ; 2502 ; MA #* ( ┃ → │ ) BOX DRAWINGS HEAVY VERTICAL → BOX DRAWINGS LIGHT VERTICAL # + +250F ; 250C ; MA #* ( ┏ → ┌ ) BOX DRAWINGS HEAVY DOWN AND RIGHT → BOX DRAWINGS LIGHT DOWN AND RIGHT # + +2523 ; 251C ; MA #* ( ┣ → ├ ) BOX DRAWINGS HEAVY VERTICAL AND RIGHT → BOX DRAWINGS LIGHT VERTICAL AND RIGHT # + +2590 ; 258C ; MA #* ( ▐ → ▌ ) RIGHT HALF BLOCK → LEFT HALF BLOCK # + +2597 ; 2596 ; MA #* ( ▗ → ▖ ) QUADRANT LOWER RIGHT → QUADRANT LOWER LEFT # + +259D ; 2598 ; MA #* ( ▝ → ▘ ) QUADRANT UPPER RIGHT → QUADRANT UPPER LEFT # + +2610 ; 25A1 ; MA #* ( ☐ → □ ) BALLOT BOX → WHITE SQUARE # + +FFED ; 25AA ; MA #* ( ■ → ▪ ) HALFWIDTH BLACK SQUARE → BLACK SMALL SQUARE # + +25B8 ; 25B6 ; MA #* ( ▸ → ▶ ) BLACK RIGHT-POINTING SMALL TRIANGLE → BLACK RIGHT-POINTING TRIANGLE # →►→ +25BA ; 25B6 ; MA #* ( ► → ▶ ) BLACK RIGHT-POINTING POINTER → BLACK RIGHT-POINTING TRIANGLE # + +2CE9 ; 2627 ; MA #* ( ⳩ → ☧ ) COPTIC SYMBOL KHI RO → CHI RHO # + +1F70A ; 2629 ; MA #* ( 🜊 → ☩ ) ALCHEMICAL SYMBOL FOR VINEGAR → CROSS OF JERUSALEM # + +1F312 ; 263D ; MA #* ( 🌒 → ☽ ) WAXING CRESCENT MOON SYMBOL → FIRST QUARTER MOON # +1F319 ; 263D ; MA #* ( 🌙 → ☽ ) CRESCENT MOON → FIRST QUARTER MOON # + +23FE ; 263E ; MA #* ( ⏾ → ☾ ) POWER SLEEP SYMBOL → LAST QUARTER MOON # +1F318 ; 263E ; MA #* ( 🌘 → ☾ ) WANING CRESCENT MOON SYMBOL → LAST QUARTER MOON # + +29D9 ; 299A ; MA #* ( ⧙ → ⦚ ) RIGHT WIGGLY FENCE → VERTICAL ZIGZAG LINE # + +1F73A ; 29DF ; MA #* ( 🜺 → ⧟ ) ALCHEMICAL SYMBOL FOR ARSENIC → DOUBLE-ENDED MULTIMAP # + +2A3E ; 2A1F ; MA #* ( ⨾ → ⨟ ) Z NOTATION RELATIONAL COMPOSITION → Z NOTATION SCHEMA COMPOSITION # + +101A0 ; 2CE8 ; MA #* ( 𐆠 → ⳨ ) GREEK SYMBOL TAU RHO → COPTIC SYMBOL TAU RO # + +2669 ; 1D158 1D165 ; MA #* ( ♩ → 𝅘𝅥 ) QUARTER NOTE → MUSICAL SYMBOL NOTEHEAD BLACK, MUSICAL SYMBOL COMBINING STEM # + +266A ; 1D158 1D165 1D16E ; MA #* ( ♪ → 𝅘𝅥𝅮 ) EIGHTH NOTE → MUSICAL SYMBOL NOTEHEAD BLACK, MUSICAL SYMBOL COMBINING STEM, MUSICAL SYMBOL COMBINING FLAG-1 # + +24EA ; 1F10D ; MA #* ( ⓪ → 🄍 ) CIRCLED DIGIT ZERO → CIRCLED ZERO WITH SLASH # + +21BA ; 1F10E ; MA #* ( ↺ → 🄎 ) ANTICLOCKWISE OPEN CIRCLE ARROW → CIRCLED ANTICLOCKWISE ARROW # + +02D9 ; 0971 ; MA #* ( ˙ → ॱ ) DOT ABOVE → DEVANAGARI SIGN HIGH SPACING DOT # +0D4E ; 0971 ; MA # ( ൎ → ॱ ) MALAYALAM LETTER DOT REPH → DEVANAGARI SIGN HIGH SPACING DOT # →˙→ + +FF0D ; 30FC ; MA #* ( - → ー ) FULLWIDTH HYPHEN-MINUS → KATAKANA-HIRAGANA PROLONGED SOUND MARK # +2014 ; 30FC ; MA #* ( — → ー ) EM DASH → KATAKANA-HIRAGANA PROLONGED SOUND MARK # →一→ +2015 ; 30FC ; MA #* ( ― → ー ) HORIZONTAL BAR → KATAKANA-HIRAGANA PROLONGED SOUND MARK # →—→→一→ +2500 ; 30FC ; MA #* ( ─ → ー ) BOX DRAWINGS LIGHT HORIZONTAL → KATAKANA-HIRAGANA PROLONGED SOUND MARK # →━→→—→→一→ +2501 ; 30FC ; MA #* ( ━ → ー ) BOX DRAWINGS HEAVY HORIZONTAL → KATAKANA-HIRAGANA PROLONGED SOUND MARK # →—→→一→ +31D0 ; 30FC ; MA #* ( ㇐ → ー ) CJK STROKE H → KATAKANA-HIRAGANA PROLONGED SOUND MARK # →一→ +A7F7 ; 30FC ; MA # ( ꟷ → ー ) LATIN EPIGRAPHIC LETTER SIDEWAYS I → KATAKANA-HIRAGANA PROLONGED SOUND MARK # →—→→一→ +1173 ; 30FC ; MA # ( ᅳ → ー ) HANGUL JUNGSEONG EU → KATAKANA-HIRAGANA PROLONGED SOUND MARK # →ㅡ→→—→→一→ +3161 ; 30FC ; MA # ( ㅡ → ー ) HANGUL LETTER EU → KATAKANA-HIRAGANA PROLONGED SOUND MARK # →—→→一→ +4E00 ; 30FC ; MA # ( 一 → ー ) CJK UNIFIED IDEOGRAPH-4E00 → KATAKANA-HIRAGANA PROLONGED SOUND MARK # +2F00 ; 30FC ; MA #* ( ⼀ → ー ) KANGXI RADICAL ONE → KATAKANA-HIRAGANA PROLONGED SOUND MARK # →一→ + +1196 ; 30FC 30FC ; MA # ( ᆖ → ーー ) HANGUL JUNGSEONG EU-EU → KATAKANA-HIRAGANA PROLONGED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK # →ᅳᅳ→ + +D7B9 ; 30FC 1161 ; MA # ( ힹ → ーᅡ ) HANGUL JUNGSEONG EU-A → KATAKANA-HIRAGANA PROLONGED SOUND MARK, HANGUL JUNGSEONG A # →ᅳᅡ→ + +D7BA ; 30FC 1165 ; MA # ( ힺ → ーᅥ ) HANGUL JUNGSEONG EU-EO → KATAKANA-HIRAGANA PROLONGED SOUND MARK, HANGUL JUNGSEONG EO # →ᅳᅥ→ + +D7BB ; 30FC 1165 4E28 ; MA # ( ힻ → ーᅥ丨 ) HANGUL JUNGSEONG EU-E → KATAKANA-HIRAGANA PROLONGED SOUND MARK, HANGUL JUNGSEONG EO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅳᅥᅵ→ + +D7BC ; 30FC 1169 ; MA # ( ힼ → ーᅩ ) HANGUL JUNGSEONG EU-O → KATAKANA-HIRAGANA PROLONGED SOUND MARK, HANGUL JUNGSEONG O # →ᅳᅩ→ + +1195 ; 30FC 116E ; MA # ( ᆕ → ーᅮ ) HANGUL JUNGSEONG EU-U → KATAKANA-HIRAGANA PROLONGED SOUND MARK, HANGUL JUNGSEONG U # →ᅳᅮ→ + +1174 ; 30FC 4E28 ; MA # ( ᅴ → ー丨 ) HANGUL JUNGSEONG YI → KATAKANA-HIRAGANA PROLONGED SOUND MARK, CJK UNIFIED IDEOGRAPH-4E28 # →ᅳᅵ→ +3162 ; 30FC 4E28 ; MA # ( ㅢ → ー丨 ) HANGUL LETTER YI → KATAKANA-HIRAGANA PROLONGED SOUND MARK, CJK UNIFIED IDEOGRAPH-4E28 # →ᅴ→→ᅳᅵ→ + +1197 ; 30FC 4E28 116E ; MA # ( ᆗ → ー丨ᅮ ) HANGUL JUNGSEONG YI-U → KATAKANA-HIRAGANA PROLONGED SOUND MARK, CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG U # →ᅳᅵᅮ→ + +1F10F ; 0024 20E0 ; MA #* ( 🄏 → $⃠ ) CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH → DOLLAR SIGN, COMBINING ENCLOSING CIRCLE BACKSLASH # + +20A4 ; 00A3 ; MA #* ( ₤ → £ ) LIRA SIGN → POUND SIGN # + +3012 ; 20B8 ; MA #* ( 〒 → ₸ ) POSTAL MARK → TENGE SIGN # +3036 ; 20B8 ; MA #* ( 〶 → ₸ ) CIRCLED POSTAL MARK → TENGE SIGN # →〒→ + +1B5C ; 1B50 ; MA #* ( ᭜ → ᭐ ) BALINESE WINDU → BALINESE DIGIT ZERO # + +A9C6 ; A9D0 ; MA #* ( ꧆ → ꧐ ) JAVANESE PADA WINDU → JAVANESE DIGIT ZERO # + +114D1 ; 09E7 ; MA # ( 𑓑 → ১ ) TIRHUTA DIGIT ONE → BENGALI DIGIT ONE # + +0CE7 ; 0C67 ; MA # ( ೧ → ౧ ) KANNADA DIGIT ONE → TELUGU DIGIT ONE # + +1065 ; 1041 ; MA # ( ၥ → ၁ ) MYANMAR LETTER WESTERN PWO KAREN THA → MYANMAR DIGIT ONE # + +2460 ; 2780 ; MA #* ( ① → ➀ ) CIRCLED DIGIT ONE → DINGBAT CIRCLED SANS-SERIF DIGIT ONE # + +2469 ; 2789 ; MA #* ( ⑩ → ➉ ) CIRCLED NUMBER TEN → DINGBAT CIRCLED SANS-SERIF NUMBER TEN # + +23E8 ; 2081 2080 ; MA #* ( ⏨ → ₁₀ ) DECIMAL EXPONENT SYMBOL → SUBSCRIPT ONE, SUBSCRIPT ZERO # + +1D7D0 ; 0032 ; MA # ( 𝟐 → 2 ) MATHEMATICAL BOLD DIGIT TWO → DIGIT TWO # +1D7DA ; 0032 ; MA # ( 𝟚 → 2 ) MATHEMATICAL DOUBLE-STRUCK DIGIT TWO → DIGIT TWO # +1D7E4 ; 0032 ; MA # ( 𝟤 → 2 ) MATHEMATICAL SANS-SERIF DIGIT TWO → DIGIT TWO # +1D7EE ; 0032 ; MA # ( 𝟮 → 2 ) MATHEMATICAL SANS-SERIF BOLD DIGIT TWO → DIGIT TWO # +1D7F8 ; 0032 ; MA # ( 𝟸 → 2 ) MATHEMATICAL MONOSPACE DIGIT TWO → DIGIT TWO # +1FBF2 ; 0032 ; MA # ( 🯲 → 2 ) SEGMENTED DIGIT TWO → DIGIT TWO # +A75A ; 0032 ; MA # ( Ꝛ → 2 ) LATIN CAPITAL LETTER R ROTUNDA → DIGIT TWO # +01A7 ; 0032 ; MA # ( Ƨ → 2 ) LATIN CAPITAL LETTER TONE TWO → DIGIT TWO # +03E8 ; 0032 ; MA # ( Ϩ → 2 ) COPTIC CAPITAL LETTER HORI → DIGIT TWO # →Ƨ→ +A644 ; 0032 ; MA # ( Ꙅ → 2 ) CYRILLIC CAPITAL LETTER REVERSED DZE → DIGIT TWO # →Ƨ→ +14BF ; 0032 ; MA # ( ᒿ → 2 ) CANADIAN SYLLABICS SAYISI M → DIGIT TWO # +A6EF ; 0032 ; MA # ( ꛯ → 2 ) BAMUM LETTER KOGHOM → DIGIT TWO # →Ƨ→ + +A9CF ; 0662 ; MA # ( ꧏ → ‎٢‎ ) JAVANESE PANGRANGKEP → ARABIC-INDIC DIGIT TWO # +06F2 ; 0662 ; MA # ( ۲ → ‎٢‎ ) EXTENDED ARABIC-INDIC DIGIT TWO → ARABIC-INDIC DIGIT TWO # + +0AE8 ; 0968 ; MA # ( ૨ → २ ) GUJARATI DIGIT TWO → DEVANAGARI DIGIT TWO # + +114D2 ; 09E8 ; MA # ( 𑓒 → ২ ) TIRHUTA DIGIT TWO → BENGALI DIGIT TWO # + +0CE8 ; 0C68 ; MA # ( ೨ → ౨ ) KANNADA DIGIT TWO → TELUGU DIGIT TWO # + +2461 ; 2781 ; MA #* ( ② → ➁ ) CIRCLED DIGIT TWO → DINGBAT CIRCLED SANS-SERIF DIGIT TWO # + +01BB ; 0032 0335 ; MA # ( ƻ → 2̵ ) LATIN LETTER TWO WITH STROKE → DIGIT TWO, COMBINING SHORT STROKE OVERLAY # + +1F103 ; 0032 002C ; MA #* ( 🄃 → 2, ) DIGIT TWO COMMA → DIGIT TWO, COMMA # + +2489 ; 0032 002E ; MA #* ( ⒉ → 2. ) DIGIT TWO FULL STOP → DIGIT TWO, FULL STOP # + +33F5 ; 0032 0032 65E5 ; MA #* ( ㏵ → 22日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO → DIGIT TWO, DIGIT TWO, CJK UNIFIED IDEOGRAPH-65E5 # + +336E ; 0032 0032 70B9 ; MA #* ( ㍮ → 22点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO → DIGIT TWO, DIGIT TWO, CJK UNIFIED IDEOGRAPH-70B9 # + +33F6 ; 0032 0033 65E5 ; MA #* ( ㏶ → 23日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE → DIGIT TWO, DIGIT THREE, CJK UNIFIED IDEOGRAPH-65E5 # + +336F ; 0032 0033 70B9 ; MA #* ( ㍯ → 23点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE → DIGIT TWO, DIGIT THREE, CJK UNIFIED IDEOGRAPH-70B9 # + +33F7 ; 0032 0034 65E5 ; MA #* ( ㏷ → 24日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR → DIGIT TWO, DIGIT FOUR, CJK UNIFIED IDEOGRAPH-65E5 # + +3370 ; 0032 0034 70B9 ; MA #* ( ㍰ → 24点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR → DIGIT TWO, DIGIT FOUR, CJK UNIFIED IDEOGRAPH-70B9 # + +33F8 ; 0032 0035 65E5 ; MA #* ( ㏸ → 25日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE → DIGIT TWO, DIGIT FIVE, CJK UNIFIED IDEOGRAPH-65E5 # + +33F9 ; 0032 0036 65E5 ; MA #* ( ㏹ → 26日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX → DIGIT TWO, DIGIT SIX, CJK UNIFIED IDEOGRAPH-65E5 # + +33FA ; 0032 0037 65E5 ; MA #* ( ㏺ → 27日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN → DIGIT TWO, DIGIT SEVEN, CJK UNIFIED IDEOGRAPH-65E5 # + +33FB ; 0032 0038 65E5 ; MA #* ( ㏻ → 28日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT → DIGIT TWO, DIGIT EIGHT, CJK UNIFIED IDEOGRAPH-65E5 # + +33FC ; 0032 0039 65E5 ; MA #* ( ㏼ → 29日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE → DIGIT TWO, DIGIT NINE, CJK UNIFIED IDEOGRAPH-65E5 # + +33F4 ; 0032 006C 65E5 ; MA #* ( ㏴ → 2l日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE → DIGIT TWO, LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-65E5 # →21日→ + +336D ; 0032 006C 70B9 ; MA #* ( ㍭ → 2l点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE → DIGIT TWO, LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-70B9 # →21点→ + +249B ; 0032 004F 002E ; MA #* ( ⒛ → 2O. ) NUMBER TWENTY FULL STOP → DIGIT TWO, LATIN CAPITAL LETTER O, FULL STOP # →20.→ + +33F3 ; 0032 004F 65E5 ; MA #* ( ㏳ → 2O日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY → DIGIT TWO, LATIN CAPITAL LETTER O, CJK UNIFIED IDEOGRAPH-65E5 # →20日→ + +336C ; 0032 004F 70B9 ; MA #* ( ㍬ → 2O点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY → DIGIT TWO, LATIN CAPITAL LETTER O, CJK UNIFIED IDEOGRAPH-70B9 # →20点→ + +0DE9 ; 0DE8 0DCF ; MA # ( ෩ → ෨ා ) SINHALA LITH DIGIT THREE → SINHALA LITH DIGIT TWO, SINHALA VOWEL SIGN AELA-PILLA # + +0DEF ; 0DE8 0DD3 ; MA # ( ෯ → ෨ී ) SINHALA LITH DIGIT NINE → SINHALA LITH DIGIT TWO, SINHALA VOWEL SIGN DIGA IS-PILLA # + +33E1 ; 0032 65E5 ; MA #* ( ㏡ → 2日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO → DIGIT TWO, CJK UNIFIED IDEOGRAPH-65E5 # + +32C1 ; 0032 6708 ; MA #* ( ㋁ → 2月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY → DIGIT TWO, CJK UNIFIED IDEOGRAPH-6708 # + +335A ; 0032 70B9 ; MA #* ( ㍚ → 2点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO → DIGIT TWO, CJK UNIFIED IDEOGRAPH-70B9 # + +1D206 ; 0033 ; MA #* ( 𝈆 → 3 ) GREEK VOCAL NOTATION SYMBOL-7 → DIGIT THREE # +1D7D1 ; 0033 ; MA # ( 𝟑 → 3 ) MATHEMATICAL BOLD DIGIT THREE → DIGIT THREE # +1D7DB ; 0033 ; MA # ( 𝟛 → 3 ) MATHEMATICAL DOUBLE-STRUCK DIGIT THREE → DIGIT THREE # +1D7E5 ; 0033 ; MA # ( 𝟥 → 3 ) MATHEMATICAL SANS-SERIF DIGIT THREE → DIGIT THREE # +1D7EF ; 0033 ; MA # ( 𝟯 → 3 ) MATHEMATICAL SANS-SERIF BOLD DIGIT THREE → DIGIT THREE # +1D7F9 ; 0033 ; MA # ( 𝟹 → 3 ) MATHEMATICAL MONOSPACE DIGIT THREE → DIGIT THREE # +1FBF3 ; 0033 ; MA # ( 🯳 → 3 ) SEGMENTED DIGIT THREE → DIGIT THREE # +A7AB ; 0033 ; MA # ( Ɜ → 3 ) LATIN CAPITAL LETTER REVERSED OPEN E → DIGIT THREE # +021C ; 0033 ; MA # ( Ȝ → 3 ) LATIN CAPITAL LETTER YOGH → DIGIT THREE # →Ʒ→ +01B7 ; 0033 ; MA # ( Ʒ → 3 ) LATIN CAPITAL LETTER EZH → DIGIT THREE # +A76A ; 0033 ; MA # ( Ꝫ → 3 ) LATIN CAPITAL LETTER ET → DIGIT THREE # +2CCC ; 0033 ; MA # ( Ⳍ → 3 ) COPTIC CAPITAL LETTER OLD COPTIC HORI → DIGIT THREE # →Ȝ→→Ʒ→ +0417 ; 0033 ; MA # ( З → 3 ) CYRILLIC CAPITAL LETTER ZE → DIGIT THREE # +04E0 ; 0033 ; MA # ( Ӡ → 3 ) CYRILLIC CAPITAL LETTER ABKHASIAN DZE → DIGIT THREE # →Ʒ→ +16F3B ; 0033 ; MA # ( 𖼻 → 3 ) MIAO LETTER ZA → DIGIT THREE # →Ʒ→ +118CA ; 0033 ; MA # ( 𑣊 → 3 ) WARANG CITI SMALL LETTER ANG → DIGIT THREE # + +06F3 ; 0663 ; MA # ( ۳ → ‎٣‎ ) EXTENDED ARABIC-INDIC DIGIT THREE → ARABIC-INDIC DIGIT THREE # +1E8C9 ; 0663 ; MA #* ( ‎𞣉‎ → ‎٣‎ ) MENDE KIKAKUI DIGIT THREE → ARABIC-INDIC DIGIT THREE # + +0AE9 ; 0969 ; MA # ( ૩ → ३ ) GUJARATI DIGIT THREE → DEVANAGARI DIGIT THREE # + +2462 ; 2782 ; MA #* ( ③ → ➂ ) CIRCLED DIGIT THREE → DINGBAT CIRCLED SANS-SERIF DIGIT THREE # + +0498 ; 0033 0326 ; MA # ( Ҙ → 3̦ ) CYRILLIC CAPITAL LETTER ZE WITH DESCENDER → DIGIT THREE, COMBINING COMMA BELOW # →З̧→ + +1F104 ; 0033 002C ; MA #* ( 🄄 → 3, ) DIGIT THREE COMMA → DIGIT THREE, COMMA # + +248A ; 0033 002E ; MA #* ( ⒊ → 3. ) DIGIT THREE FULL STOP → DIGIT THREE, FULL STOP # + +33FE ; 0033 006C 65E5 ; MA #* ( ㏾ → 3l日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE → DIGIT THREE, LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-65E5 # →31日→ + +33FD ; 0033 004F 65E5 ; MA #* ( ㏽ → 3O日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY → DIGIT THREE, LATIN CAPITAL LETTER O, CJK UNIFIED IDEOGRAPH-65E5 # →30日→ + +33E2 ; 0033 65E5 ; MA #* ( ㏢ → 3日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE → DIGIT THREE, CJK UNIFIED IDEOGRAPH-65E5 # + +32C2 ; 0033 6708 ; MA #* ( ㋂ → 3月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH → DIGIT THREE, CJK UNIFIED IDEOGRAPH-6708 # + +335B ; 0033 70B9 ; MA #* ( ㍛ → 3点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE → DIGIT THREE, CJK UNIFIED IDEOGRAPH-70B9 # + +1D7D2 ; 0034 ; MA # ( 𝟒 → 4 ) MATHEMATICAL BOLD DIGIT FOUR → DIGIT FOUR # +1D7DC ; 0034 ; MA # ( 𝟜 → 4 ) MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR → DIGIT FOUR # +1D7E6 ; 0034 ; MA # ( 𝟦 → 4 ) MATHEMATICAL SANS-SERIF DIGIT FOUR → DIGIT FOUR # +1D7F0 ; 0034 ; MA # ( 𝟰 → 4 ) MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR → DIGIT FOUR # +1D7FA ; 0034 ; MA # ( 𝟺 → 4 ) MATHEMATICAL MONOSPACE DIGIT FOUR → DIGIT FOUR # +1FBF4 ; 0034 ; MA # ( 🯴 → 4 ) SEGMENTED DIGIT FOUR → DIGIT FOUR # +13CE ; 0034 ; MA # ( Ꮞ → 4 ) CHEROKEE LETTER SE → DIGIT FOUR # +118AF ; 0034 ; MA # ( 𑢯 → 4 ) WARANG CITI CAPITAL LETTER UC → DIGIT FOUR # + +06F4 ; 0664 ; MA # ( ۴ → ‎٤‎ ) EXTENDED ARABIC-INDIC DIGIT FOUR → ARABIC-INDIC DIGIT FOUR # + +0AEA ; 096A ; MA # ( ૪ → ४ ) GUJARATI DIGIT FOUR → DEVANAGARI DIGIT FOUR # + +2463 ; 2783 ; MA #* ( ④ → ➃ ) CIRCLED DIGIT FOUR → DINGBAT CIRCLED SANS-SERIF DIGIT FOUR # + +1F105 ; 0034 002C ; MA #* ( 🄅 → 4, ) DIGIT FOUR COMMA → DIGIT FOUR, COMMA # + +248B ; 0034 002E ; MA #* ( ⒋ → 4. ) DIGIT FOUR FULL STOP → DIGIT FOUR, FULL STOP # + +1530 ; 0034 00B7 ; MA # ( ᔰ → 4· ) CANADIAN SYLLABICS WEST-CREE YWE → DIGIT FOUR, MIDDLE DOT # →4ᐧ→ + +33E3 ; 0034 65E5 ; MA #* ( ㏣ → 4日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR → DIGIT FOUR, CJK UNIFIED IDEOGRAPH-65E5 # + +32C3 ; 0034 6708 ; MA #* ( ㋃ → 4月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL → DIGIT FOUR, CJK UNIFIED IDEOGRAPH-6708 # + +335C ; 0034 70B9 ; MA #* ( ㍜ → 4点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR → DIGIT FOUR, CJK UNIFIED IDEOGRAPH-70B9 # + +1D7D3 ; 0035 ; MA # ( 𝟓 → 5 ) MATHEMATICAL BOLD DIGIT FIVE → DIGIT FIVE # +1D7DD ; 0035 ; MA # ( 𝟝 → 5 ) MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE → DIGIT FIVE # +1D7E7 ; 0035 ; MA # ( 𝟧 → 5 ) MATHEMATICAL SANS-SERIF DIGIT FIVE → DIGIT FIVE # +1D7F1 ; 0035 ; MA # ( 𝟱 → 5 ) MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE → DIGIT FIVE # +1D7FB ; 0035 ; MA # ( 𝟻 → 5 ) MATHEMATICAL MONOSPACE DIGIT FIVE → DIGIT FIVE # +1FBF5 ; 0035 ; MA # ( 🯵 → 5 ) SEGMENTED DIGIT FIVE → DIGIT FIVE # +01BC ; 0035 ; MA # ( Ƽ → 5 ) LATIN CAPITAL LETTER TONE FIVE → DIGIT FIVE # +118BB ; 0035 ; MA # ( 𑢻 → 5 ) WARANG CITI CAPITAL LETTER HORR → DIGIT FIVE # + +2464 ; 2784 ; MA #* ( ⑤ → ➄ ) CIRCLED DIGIT FIVE → DINGBAT CIRCLED SANS-SERIF DIGIT FIVE # + +1F106 ; 0035 002C ; MA #* ( 🄆 → 5, ) DIGIT FIVE COMMA → DIGIT FIVE, COMMA # + +248C ; 0035 002E ; MA #* ( ⒌ → 5. ) DIGIT FIVE FULL STOP → DIGIT FIVE, FULL STOP # + +33E4 ; 0035 65E5 ; MA #* ( ㏤ → 5日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE → DIGIT FIVE, CJK UNIFIED IDEOGRAPH-65E5 # + +32C4 ; 0035 6708 ; MA #* ( ㋄ → 5月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY → DIGIT FIVE, CJK UNIFIED IDEOGRAPH-6708 # + +335D ; 0035 70B9 ; MA #* ( ㍝ → 5点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE → DIGIT FIVE, CJK UNIFIED IDEOGRAPH-70B9 # + +1D7D4 ; 0036 ; MA # ( 𝟔 → 6 ) MATHEMATICAL BOLD DIGIT SIX → DIGIT SIX # +1D7DE ; 0036 ; MA # ( 𝟞 → 6 ) MATHEMATICAL DOUBLE-STRUCK DIGIT SIX → DIGIT SIX # +1D7E8 ; 0036 ; MA # ( 𝟨 → 6 ) MATHEMATICAL SANS-SERIF DIGIT SIX → DIGIT SIX # +1D7F2 ; 0036 ; MA # ( 𝟲 → 6 ) MATHEMATICAL SANS-SERIF BOLD DIGIT SIX → DIGIT SIX # +1D7FC ; 0036 ; MA # ( 𝟼 → 6 ) MATHEMATICAL MONOSPACE DIGIT SIX → DIGIT SIX # +1FBF6 ; 0036 ; MA # ( 🯶 → 6 ) SEGMENTED DIGIT SIX → DIGIT SIX # +2CD2 ; 0036 ; MA # ( Ⳓ → 6 ) COPTIC CAPITAL LETTER OLD COPTIC HEI → DIGIT SIX # +0431 ; 0036 ; MA # ( б → 6 ) CYRILLIC SMALL LETTER BE → DIGIT SIX # +13EE ; 0036 ; MA # ( Ꮾ → 6 ) CHEROKEE LETTER WV → DIGIT SIX # +118D5 ; 0036 ; MA # ( 𑣕 → 6 ) WARANG CITI SMALL LETTER AT → DIGIT SIX # + +06F6 ; 0666 ; MA # ( ۶ → ‎٦‎ ) EXTENDED ARABIC-INDIC DIGIT SIX → ARABIC-INDIC DIGIT SIX # + +114D6 ; 09EC ; MA # ( 𑓖 → ৬ ) TIRHUTA DIGIT SIX → BENGALI DIGIT SIX # + +2465 ; 2785 ; MA #* ( ⑥ → ➅ ) CIRCLED DIGIT SIX → DINGBAT CIRCLED SANS-SERIF DIGIT SIX # + +1F107 ; 0036 002C ; MA #* ( 🄇 → 6, ) DIGIT SIX COMMA → DIGIT SIX, COMMA # + +248D ; 0036 002E ; MA #* ( ⒍ → 6. ) DIGIT SIX FULL STOP → DIGIT SIX, FULL STOP # + +33E5 ; 0036 65E5 ; MA #* ( ㏥ → 6日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX → DIGIT SIX, CJK UNIFIED IDEOGRAPH-65E5 # + +32C5 ; 0036 6708 ; MA #* ( ㋅ → 6月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE → DIGIT SIX, CJK UNIFIED IDEOGRAPH-6708 # + +335E ; 0036 70B9 ; MA #* ( ㍞ → 6点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX → DIGIT SIX, CJK UNIFIED IDEOGRAPH-70B9 # + +1D212 ; 0037 ; MA #* ( 𝈒 → 7 ) GREEK VOCAL NOTATION SYMBOL-19 → DIGIT SEVEN # +1D7D5 ; 0037 ; MA # ( 𝟕 → 7 ) MATHEMATICAL BOLD DIGIT SEVEN → DIGIT SEVEN # +1D7DF ; 0037 ; MA # ( 𝟟 → 7 ) MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN → DIGIT SEVEN # +1D7E9 ; 0037 ; MA # ( 𝟩 → 7 ) MATHEMATICAL SANS-SERIF DIGIT SEVEN → DIGIT SEVEN # +1D7F3 ; 0037 ; MA # ( 𝟳 → 7 ) MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN → DIGIT SEVEN # +1D7FD ; 0037 ; MA # ( 𝟽 → 7 ) MATHEMATICAL MONOSPACE DIGIT SEVEN → DIGIT SEVEN # +1FBF7 ; 0037 ; MA # ( 🯷 → 7 ) SEGMENTED DIGIT SEVEN → DIGIT SEVEN # +104D2 ; 0037 ; MA # ( 𐓒 → 7 ) OSAGE CAPITAL LETTER ZA → DIGIT SEVEN # +118C6 ; 0037 ; MA # ( 𑣆 → 7 ) WARANG CITI SMALL LETTER II → DIGIT SEVEN # + +2466 ; 2786 ; MA #* ( ⑦ → ➆ ) CIRCLED DIGIT SEVEN → DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN # + +1F108 ; 0037 002C ; MA #* ( 🄈 → 7, ) DIGIT SEVEN COMMA → DIGIT SEVEN, COMMA # + +248E ; 0037 002E ; MA #* ( ⒎ → 7. ) DIGIT SEVEN FULL STOP → DIGIT SEVEN, FULL STOP # + +33E6 ; 0037 65E5 ; MA #* ( ㏦ → 7日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN → DIGIT SEVEN, CJK UNIFIED IDEOGRAPH-65E5 # + +32C6 ; 0037 6708 ; MA #* ( ㋆ → 7月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY → DIGIT SEVEN, CJK UNIFIED IDEOGRAPH-6708 # + +335F ; 0037 70B9 ; MA #* ( ㍟ → 7点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN → DIGIT SEVEN, CJK UNIFIED IDEOGRAPH-70B9 # + +0B03 ; 0038 ; MA # ( ଃ → 8 ) ORIYA SIGN VISARGA → DIGIT EIGHT # +09EA ; 0038 ; MA # ( ৪ → 8 ) BENGALI DIGIT FOUR → DIGIT EIGHT # +0A6A ; 0038 ; MA # ( ੪ → 8 ) GURMUKHI DIGIT FOUR → DIGIT EIGHT # +1E8CB ; 0038 ; MA #* ( ‎𞣋‎ → 8 ) MENDE KIKAKUI DIGIT FIVE → DIGIT EIGHT # +1D7D6 ; 0038 ; MA # ( 𝟖 → 8 ) MATHEMATICAL BOLD DIGIT EIGHT → DIGIT EIGHT # +1D7E0 ; 0038 ; MA # ( 𝟠 → 8 ) MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT → DIGIT EIGHT # +1D7EA ; 0038 ; MA # ( 𝟪 → 8 ) MATHEMATICAL SANS-SERIF DIGIT EIGHT → DIGIT EIGHT # +1D7F4 ; 0038 ; MA # ( 𝟴 → 8 ) MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT → DIGIT EIGHT # +1D7FE ; 0038 ; MA # ( 𝟾 → 8 ) MATHEMATICAL MONOSPACE DIGIT EIGHT → DIGIT EIGHT # +1FBF8 ; 0038 ; MA # ( 🯸 → 8 ) SEGMENTED DIGIT EIGHT → DIGIT EIGHT # +0223 ; 0038 ; MA # ( ȣ → 8 ) LATIN SMALL LETTER OU → DIGIT EIGHT # +0222 ; 0038 ; MA # ( Ȣ → 8 ) LATIN CAPITAL LETTER OU → DIGIT EIGHT # +1031A ; 0038 ; MA # ( 𐌚 → 8 ) OLD ITALIC LETTER EF → DIGIT EIGHT # + +0AEE ; 096E ; MA # ( ૮ → ८ ) GUJARATI DIGIT EIGHT → DEVANAGARI DIGIT EIGHT # + +2467 ; 2787 ; MA #* ( ⑧ → ➇ ) CIRCLED DIGIT EIGHT → DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT # + +1F109 ; 0038 002C ; MA #* ( 🄉 → 8, ) DIGIT EIGHT COMMA → DIGIT EIGHT, COMMA # + +248F ; 0038 002E ; MA #* ( ⒏ → 8. ) DIGIT EIGHT FULL STOP → DIGIT EIGHT, FULL STOP # + +33E7 ; 0038 65E5 ; MA #* ( ㏧ → 8日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT → DIGIT EIGHT, CJK UNIFIED IDEOGRAPH-65E5 # + +32C7 ; 0038 6708 ; MA #* ( ㋇ → 8月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST → DIGIT EIGHT, CJK UNIFIED IDEOGRAPH-6708 # + +3360 ; 0038 70B9 ; MA #* ( ㍠ → 8点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT → DIGIT EIGHT, CJK UNIFIED IDEOGRAPH-70B9 # + +0A67 ; 0039 ; MA # ( ੧ → 9 ) GURMUKHI DIGIT ONE → DIGIT NINE # +0B68 ; 0039 ; MA # ( ୨ → 9 ) ORIYA DIGIT TWO → DIGIT NINE # +09ED ; 0039 ; MA # ( ৭ → 9 ) BENGALI DIGIT SEVEN → DIGIT NINE # +0D6D ; 0039 ; MA # ( ൭ → 9 ) MALAYALAM DIGIT SEVEN → DIGIT NINE # +1D7D7 ; 0039 ; MA # ( 𝟗 → 9 ) MATHEMATICAL BOLD DIGIT NINE → DIGIT NINE # +1D7E1 ; 0039 ; MA # ( 𝟡 → 9 ) MATHEMATICAL DOUBLE-STRUCK DIGIT NINE → DIGIT NINE # +1D7EB ; 0039 ; MA # ( 𝟫 → 9 ) MATHEMATICAL SANS-SERIF DIGIT NINE → DIGIT NINE # +1D7F5 ; 0039 ; MA # ( 𝟵 → 9 ) MATHEMATICAL SANS-SERIF BOLD DIGIT NINE → DIGIT NINE # +1D7FF ; 0039 ; MA # ( 𝟿 → 9 ) MATHEMATICAL MONOSPACE DIGIT NINE → DIGIT NINE # +1FBF9 ; 0039 ; MA # ( 🯹 → 9 ) SEGMENTED DIGIT NINE → DIGIT NINE # +A76E ; 0039 ; MA # ( Ꝯ → 9 ) LATIN CAPITAL LETTER CON → DIGIT NINE # +2CCA ; 0039 ; MA # ( Ⳋ → 9 ) COPTIC CAPITAL LETTER DIALECT-P HORI → DIGIT NINE # +118CC ; 0039 ; MA # ( 𑣌 → 9 ) WARANG CITI SMALL LETTER KO → DIGIT NINE # +118AC ; 0039 ; MA # ( 𑢬 → 9 ) WARANG CITI CAPITAL LETTER KO → DIGIT NINE # +118D6 ; 0039 ; MA # ( 𑣖 → 9 ) WARANG CITI SMALL LETTER AM → DIGIT NINE # + +0967 ; 0669 ; MA # ( १ → ‎٩‎ ) DEVANAGARI DIGIT ONE → ARABIC-INDIC DIGIT NINE # +118E4 ; 0669 ; MA # ( 𑣤 → ‎٩‎ ) WARANG CITI DIGIT FOUR → ARABIC-INDIC DIGIT NINE # +06F9 ; 0669 ; MA # ( ۹ → ‎٩‎ ) EXTENDED ARABIC-INDIC DIGIT NINE → ARABIC-INDIC DIGIT NINE # + +0CEF ; 0C6F ; MA # ( ೯ → ౯ ) KANNADA DIGIT NINE → TELUGU DIGIT NINE # + +2468 ; 2788 ; MA #* ( ⑨ → ➈ ) CIRCLED DIGIT NINE → DINGBAT CIRCLED SANS-SERIF DIGIT NINE # + +1F10A ; 0039 002C ; MA #* ( 🄊 → 9, ) DIGIT NINE COMMA → DIGIT NINE, COMMA # + +2490 ; 0039 002E ; MA #* ( ⒐ → 9. ) DIGIT NINE FULL STOP → DIGIT NINE, FULL STOP # + +33E8 ; 0039 65E5 ; MA #* ( ㏨ → 9日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE → DIGIT NINE, CJK UNIFIED IDEOGRAPH-65E5 # + +32C8 ; 0039 6708 ; MA #* ( ㋈ → 9月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER → DIGIT NINE, CJK UNIFIED IDEOGRAPH-6708 # + +3361 ; 0039 70B9 ; MA #* ( ㍡ → 9点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE → DIGIT NINE, CJK UNIFIED IDEOGRAPH-70B9 # + +237A ; 0061 ; MA #* ( ⍺ → a ) APL FUNCTIONAL SYMBOL ALPHA → LATIN SMALL LETTER A # →α→ +FF41 ; 0061 ; MA # ( a → a ) FULLWIDTH LATIN SMALL LETTER A → LATIN SMALL LETTER A # →а→ +1D41A ; 0061 ; MA # ( 𝐚 → a ) MATHEMATICAL BOLD SMALL A → LATIN SMALL LETTER A # +1D44E ; 0061 ; MA # ( 𝑎 → a ) MATHEMATICAL ITALIC SMALL A → LATIN SMALL LETTER A # +1D482 ; 0061 ; MA # ( 𝒂 → a ) MATHEMATICAL BOLD ITALIC SMALL A → LATIN SMALL LETTER A # +1D4B6 ; 0061 ; MA # ( 𝒶 → a ) MATHEMATICAL SCRIPT SMALL A → LATIN SMALL LETTER A # +1D4EA ; 0061 ; MA # ( 𝓪 → a ) MATHEMATICAL BOLD SCRIPT SMALL A → LATIN SMALL LETTER A # +1D51E ; 0061 ; MA # ( 𝔞 → a ) MATHEMATICAL FRAKTUR SMALL A → LATIN SMALL LETTER A # +1D552 ; 0061 ; MA # ( 𝕒 → a ) MATHEMATICAL DOUBLE-STRUCK SMALL A → LATIN SMALL LETTER A # +1D586 ; 0061 ; MA # ( 𝖆 → a ) MATHEMATICAL BOLD FRAKTUR SMALL A → LATIN SMALL LETTER A # +1D5BA ; 0061 ; MA # ( 𝖺 → a ) MATHEMATICAL SANS-SERIF SMALL A → LATIN SMALL LETTER A # +1D5EE ; 0061 ; MA # ( 𝗮 → a ) MATHEMATICAL SANS-SERIF BOLD SMALL A → LATIN SMALL LETTER A # +1D622 ; 0061 ; MA # ( 𝘢 → a ) MATHEMATICAL SANS-SERIF ITALIC SMALL A → LATIN SMALL LETTER A # +1D656 ; 0061 ; MA # ( 𝙖 → a ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A → LATIN SMALL LETTER A # +1D68A ; 0061 ; MA # ( 𝚊 → a ) MATHEMATICAL MONOSPACE SMALL A → LATIN SMALL LETTER A # +0251 ; 0061 ; MA # ( ɑ → a ) LATIN SMALL LETTER ALPHA → LATIN SMALL LETTER A # +03B1 ; 0061 ; MA # ( α → a ) GREEK SMALL LETTER ALPHA → LATIN SMALL LETTER A # +1D6C2 ; 0061 ; MA # ( 𝛂 → a ) MATHEMATICAL BOLD SMALL ALPHA → LATIN SMALL LETTER A # →α→ +1D6FC ; 0061 ; MA # ( 𝛼 → a ) MATHEMATICAL ITALIC SMALL ALPHA → LATIN SMALL LETTER A # →α→ +1D736 ; 0061 ; MA # ( 𝜶 → a ) MATHEMATICAL BOLD ITALIC SMALL ALPHA → LATIN SMALL LETTER A # →α→ +1D770 ; 0061 ; MA # ( 𝝰 → a ) MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA → LATIN SMALL LETTER A # →α→ +1D7AA ; 0061 ; MA # ( 𝞪 → a ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA → LATIN SMALL LETTER A # →α→ +0430 ; 0061 ; MA # ( а → a ) CYRILLIC SMALL LETTER A → LATIN SMALL LETTER A # + +2DF6 ; 0363 ; MA # ( ⷶ → ͣ ) COMBINING CYRILLIC LETTER A → COMBINING LATIN SMALL LETTER A # + +FF21 ; 0041 ; MA # ( A → A ) FULLWIDTH LATIN CAPITAL LETTER A → LATIN CAPITAL LETTER A # →А→ +1D400 ; 0041 ; MA # ( 𝐀 → A ) MATHEMATICAL BOLD CAPITAL A → LATIN CAPITAL LETTER A # +1D434 ; 0041 ; MA # ( 𝐴 → A ) MATHEMATICAL ITALIC CAPITAL A → LATIN CAPITAL LETTER A # +1D468 ; 0041 ; MA # ( 𝑨 → A ) MATHEMATICAL BOLD ITALIC CAPITAL A → LATIN CAPITAL LETTER A # +1D49C ; 0041 ; MA # ( 𝒜 → A ) MATHEMATICAL SCRIPT CAPITAL A → LATIN CAPITAL LETTER A # +1D4D0 ; 0041 ; MA # ( 𝓐 → A ) MATHEMATICAL BOLD SCRIPT CAPITAL A → LATIN CAPITAL LETTER A # +1D504 ; 0041 ; MA # ( 𝔄 → A ) MATHEMATICAL FRAKTUR CAPITAL A → LATIN CAPITAL LETTER A # +1D538 ; 0041 ; MA # ( 𝔸 → A ) MATHEMATICAL DOUBLE-STRUCK CAPITAL A → LATIN CAPITAL LETTER A # +1D56C ; 0041 ; MA # ( 𝕬 → A ) MATHEMATICAL BOLD FRAKTUR CAPITAL A → LATIN CAPITAL LETTER A # +1D5A0 ; 0041 ; MA # ( 𝖠 → A ) MATHEMATICAL SANS-SERIF CAPITAL A → LATIN CAPITAL LETTER A # +1D5D4 ; 0041 ; MA # ( 𝗔 → A ) MATHEMATICAL SANS-SERIF BOLD CAPITAL A → LATIN CAPITAL LETTER A # +1D608 ; 0041 ; MA # ( 𝘈 → A ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL A → LATIN CAPITAL LETTER A # +1D63C ; 0041 ; MA # ( 𝘼 → A ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A → LATIN CAPITAL LETTER A # +1D670 ; 0041 ; MA # ( 𝙰 → A ) MATHEMATICAL MONOSPACE CAPITAL A → LATIN CAPITAL LETTER A # +0391 ; 0041 ; MA # ( Α → A ) GREEK CAPITAL LETTER ALPHA → LATIN CAPITAL LETTER A # +1D6A8 ; 0041 ; MA # ( 𝚨 → A ) MATHEMATICAL BOLD CAPITAL ALPHA → LATIN CAPITAL LETTER A # →𝐀→ +1D6E2 ; 0041 ; MA # ( 𝛢 → A ) MATHEMATICAL ITALIC CAPITAL ALPHA → LATIN CAPITAL LETTER A # →Α→ +1D71C ; 0041 ; MA # ( 𝜜 → A ) MATHEMATICAL BOLD ITALIC CAPITAL ALPHA → LATIN CAPITAL LETTER A # →Α→ +1D756 ; 0041 ; MA # ( 𝝖 → A ) MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA → LATIN CAPITAL LETTER A # →Α→ +1D790 ; 0041 ; MA # ( 𝞐 → A ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA → LATIN CAPITAL LETTER A # →Α→ +0410 ; 0041 ; MA # ( А → A ) CYRILLIC CAPITAL LETTER A → LATIN CAPITAL LETTER A # +13AA ; 0041 ; MA # ( Ꭺ → A ) CHEROKEE LETTER GO → LATIN CAPITAL LETTER A # +15C5 ; 0041 ; MA # ( ᗅ → A ) CANADIAN SYLLABICS CARRIER GHO → LATIN CAPITAL LETTER A # +A4EE ; 0041 ; MA # ( ꓮ → A ) LISU LETTER A → LATIN CAPITAL LETTER A # +16F40 ; 0041 ; MA # ( 𖽀 → A ) MIAO LETTER ZZYA → LATIN CAPITAL LETTER A # +102A0 ; 0041 ; MA # ( 𐊠 → A ) CARIAN LETTER A → LATIN CAPITAL LETTER A # + +2376 ; 0061 0332 ; MA #* ( ⍶ → a̲ ) APL FUNCTIONAL SYMBOL ALPHA UNDERBAR → LATIN SMALL LETTER A, COMBINING LOW LINE # →α̲→→ɑ̲→ + +01CE ; 0103 ; MA # ( ǎ → ă ) LATIN SMALL LETTER A WITH CARON → LATIN SMALL LETTER A WITH BREVE # + +01CD ; 0102 ; MA # ( Ǎ → Ă ) LATIN CAPITAL LETTER A WITH CARON → LATIN CAPITAL LETTER A WITH BREVE # + +0227 ; 00E5 ; MA # ( ȧ → å ) LATIN SMALL LETTER A WITH DOT ABOVE → LATIN SMALL LETTER A WITH RING ABOVE # + +0226 ; 00C5 ; MA # ( Ȧ → Å ) LATIN CAPITAL LETTER A WITH DOT ABOVE → LATIN CAPITAL LETTER A WITH RING ABOVE # + +1E9A ; 1EA3 ; MA # ( ẚ → ả ) LATIN SMALL LETTER A WITH RIGHT HALF RING → LATIN SMALL LETTER A WITH HOOK ABOVE # + +2100 ; 0061 002F 0063 ; MA #* ( ℀ → a/c ) ACCOUNT OF → LATIN SMALL LETTER A, SOLIDUS, LATIN SMALL LETTER C # + +2101 ; 0061 002F 0073 ; MA #* ( ℁ → a/s ) ADDRESSED TO THE SUBJECT → LATIN SMALL LETTER A, SOLIDUS, LATIN SMALL LETTER S # + +A733 ; 0061 0061 ; MA # ( ꜳ → aa ) LATIN SMALL LETTER AA → LATIN SMALL LETTER A, LATIN SMALL LETTER A # + +A732 ; 0041 0041 ; MA # ( Ꜳ → AA ) LATIN CAPITAL LETTER AA → LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A # + +00E6 ; 0061 0065 ; MA # ( æ → ae ) LATIN SMALL LETTER AE → LATIN SMALL LETTER A, LATIN SMALL LETTER E # +04D5 ; 0061 0065 ; MA # ( ӕ → ae ) CYRILLIC SMALL LIGATURE A IE → LATIN SMALL LETTER A, LATIN SMALL LETTER E # →ае→ + +00C6 ; 0041 0045 ; MA # ( Æ → AE ) LATIN CAPITAL LETTER AE → LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER E # +04D4 ; 0041 0045 ; MA # ( Ӕ → AE ) CYRILLIC CAPITAL LIGATURE A IE → LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER E # →Æ→ + +A735 ; 0061 006F ; MA # ( ꜵ → ao ) LATIN SMALL LETTER AO → LATIN SMALL LETTER A, LATIN SMALL LETTER O # + +A734 ; 0041 004F ; MA # ( Ꜵ → AO ) LATIN CAPITAL LETTER AO → LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER O # + +1F707 ; 0041 0052 ; MA #* ( 🜇 → AR ) ALCHEMICAL SYMBOL FOR AQUA REGIA-2 → LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER R # + +A737 ; 0061 0075 ; MA # ( ꜷ → au ) LATIN SMALL LETTER AU → LATIN SMALL LETTER A, LATIN SMALL LETTER U # + +A736 ; 0041 0055 ; MA # ( Ꜷ → AU ) LATIN CAPITAL LETTER AU → LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER U # + +A739 ; 0061 0076 ; MA # ( ꜹ → av ) LATIN SMALL LETTER AV → LATIN SMALL LETTER A, LATIN SMALL LETTER V # +A73B ; 0061 0076 ; MA # ( ꜻ → av ) LATIN SMALL LETTER AV WITH HORIZONTAL BAR → LATIN SMALL LETTER A, LATIN SMALL LETTER V # + +A738 ; 0041 0056 ; MA # ( Ꜹ → AV ) LATIN CAPITAL LETTER AV → LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER V # +A73A ; 0041 0056 ; MA # ( Ꜻ → AV ) LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR → LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER V # + +A73D ; 0061 0079 ; MA # ( ꜽ → ay ) LATIN SMALL LETTER AY → LATIN SMALL LETTER A, LATIN SMALL LETTER Y # + +A73C ; 0041 0059 ; MA # ( Ꜽ → AY ) LATIN CAPITAL LETTER AY → LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER Y # + +AB7A ; 1D00 ; MA # ( ꭺ → ᴀ ) CHEROKEE SMALL LETTER GO → LATIN LETTER SMALL CAPITAL A # + +2200 ; 2C6F ; MA #* ( ∀ → Ɐ ) FOR ALL → LATIN CAPITAL LETTER TURNED A # +1D217 ; 2C6F ; MA #* ( 𝈗 → Ɐ ) GREEK VOCAL NOTATION SYMBOL-24 → LATIN CAPITAL LETTER TURNED A # +15C4 ; 2C6F ; MA # ( ᗄ → Ɐ ) CANADIAN SYLLABICS CARRIER GHU → LATIN CAPITAL LETTER TURNED A # →∀→ +A4EF ; 2C6F ; MA # ( ꓯ → Ɐ ) LISU LETTER AE → LATIN CAPITAL LETTER TURNED A # + +1041F ; 2C70 ; MA # ( 𐐟 → Ɒ ) DESERET CAPITAL LETTER ESH → LATIN CAPITAL LETTER TURNED ALPHA # + +1D41B ; 0062 ; MA # ( 𝐛 → b ) MATHEMATICAL BOLD SMALL B → LATIN SMALL LETTER B # +1D44F ; 0062 ; MA # ( 𝑏 → b ) MATHEMATICAL ITALIC SMALL B → LATIN SMALL LETTER B # +1D483 ; 0062 ; MA # ( 𝒃 → b ) MATHEMATICAL BOLD ITALIC SMALL B → LATIN SMALL LETTER B # +1D4B7 ; 0062 ; MA # ( 𝒷 → b ) MATHEMATICAL SCRIPT SMALL B → LATIN SMALL LETTER B # +1D4EB ; 0062 ; MA # ( 𝓫 → b ) MATHEMATICAL BOLD SCRIPT SMALL B → LATIN SMALL LETTER B # +1D51F ; 0062 ; MA # ( 𝔟 → b ) MATHEMATICAL FRAKTUR SMALL B → LATIN SMALL LETTER B # +1D553 ; 0062 ; MA # ( 𝕓 → b ) MATHEMATICAL DOUBLE-STRUCK SMALL B → LATIN SMALL LETTER B # +1D587 ; 0062 ; MA # ( 𝖇 → b ) MATHEMATICAL BOLD FRAKTUR SMALL B → LATIN SMALL LETTER B # +1D5BB ; 0062 ; MA # ( 𝖻 → b ) MATHEMATICAL SANS-SERIF SMALL B → LATIN SMALL LETTER B # +1D5EF ; 0062 ; MA # ( 𝗯 → b ) MATHEMATICAL SANS-SERIF BOLD SMALL B → LATIN SMALL LETTER B # +1D623 ; 0062 ; MA # ( 𝘣 → b ) MATHEMATICAL SANS-SERIF ITALIC SMALL B → LATIN SMALL LETTER B # +1D657 ; 0062 ; MA # ( 𝙗 → b ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B → LATIN SMALL LETTER B # +1D68B ; 0062 ; MA # ( 𝚋 → b ) MATHEMATICAL MONOSPACE SMALL B → LATIN SMALL LETTER B # +0184 ; 0062 ; MA # ( Ƅ → b ) LATIN CAPITAL LETTER TONE SIX → LATIN SMALL LETTER B # +042C ; 0062 ; MA # ( Ь → b ) CYRILLIC CAPITAL LETTER SOFT SIGN → LATIN SMALL LETTER B # →Ƅ→ +13CF ; 0062 ; MA # ( Ꮟ → b ) CHEROKEE LETTER SI → LATIN SMALL LETTER B # +1472 ; 0062 ; MA # ( ᑲ → b ) CANADIAN SYLLABICS KA → LATIN SMALL LETTER B # +15AF ; 0062 ; MA # ( ᖯ → b ) CANADIAN SYLLABICS AIVILIK B → LATIN SMALL LETTER B # + +FF22 ; 0042 ; MA # ( B → B ) FULLWIDTH LATIN CAPITAL LETTER B → LATIN CAPITAL LETTER B # →Β→ +212C ; 0042 ; MA # ( ℬ → B ) SCRIPT CAPITAL B → LATIN CAPITAL LETTER B # +1D401 ; 0042 ; MA # ( 𝐁 → B ) MATHEMATICAL BOLD CAPITAL B → LATIN CAPITAL LETTER B # +1D435 ; 0042 ; MA # ( 𝐵 → B ) MATHEMATICAL ITALIC CAPITAL B → LATIN CAPITAL LETTER B # +1D469 ; 0042 ; MA # ( 𝑩 → B ) MATHEMATICAL BOLD ITALIC CAPITAL B → LATIN CAPITAL LETTER B # +1D4D1 ; 0042 ; MA # ( 𝓑 → B ) MATHEMATICAL BOLD SCRIPT CAPITAL B → LATIN CAPITAL LETTER B # +1D505 ; 0042 ; MA # ( 𝔅 → B ) MATHEMATICAL FRAKTUR CAPITAL B → LATIN CAPITAL LETTER B # +1D539 ; 0042 ; MA # ( 𝔹 → B ) MATHEMATICAL DOUBLE-STRUCK CAPITAL B → LATIN CAPITAL LETTER B # +1D56D ; 0042 ; MA # ( 𝕭 → B ) MATHEMATICAL BOLD FRAKTUR CAPITAL B → LATIN CAPITAL LETTER B # +1D5A1 ; 0042 ; MA # ( 𝖡 → B ) MATHEMATICAL SANS-SERIF CAPITAL B → LATIN CAPITAL LETTER B # +1D5D5 ; 0042 ; MA # ( 𝗕 → B ) MATHEMATICAL SANS-SERIF BOLD CAPITAL B → LATIN CAPITAL LETTER B # +1D609 ; 0042 ; MA # ( 𝘉 → B ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL B → LATIN CAPITAL LETTER B # +1D63D ; 0042 ; MA # ( 𝘽 → B ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B → LATIN CAPITAL LETTER B # +1D671 ; 0042 ; MA # ( 𝙱 → B ) MATHEMATICAL MONOSPACE CAPITAL B → LATIN CAPITAL LETTER B # +A7B4 ; 0042 ; MA # ( Ꞵ → B ) LATIN CAPITAL LETTER BETA → LATIN CAPITAL LETTER B # +0392 ; 0042 ; MA # ( Β → B ) GREEK CAPITAL LETTER BETA → LATIN CAPITAL LETTER B # +1D6A9 ; 0042 ; MA # ( 𝚩 → B ) MATHEMATICAL BOLD CAPITAL BETA → LATIN CAPITAL LETTER B # →Β→ +1D6E3 ; 0042 ; MA # ( 𝛣 → B ) MATHEMATICAL ITALIC CAPITAL BETA → LATIN CAPITAL LETTER B # →Β→ +1D71D ; 0042 ; MA # ( 𝜝 → B ) MATHEMATICAL BOLD ITALIC CAPITAL BETA → LATIN CAPITAL LETTER B # →Β→ +1D757 ; 0042 ; MA # ( 𝝗 → B ) MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA → LATIN CAPITAL LETTER B # →Β→ +1D791 ; 0042 ; MA # ( 𝞑 → B ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA → LATIN CAPITAL LETTER B # →Β→ +0412 ; 0042 ; MA # ( В → B ) CYRILLIC CAPITAL LETTER VE → LATIN CAPITAL LETTER B # +13F4 ; 0042 ; MA # ( Ᏼ → B ) CHEROKEE LETTER YV → LATIN CAPITAL LETTER B # +15F7 ; 0042 ; MA # ( ᗷ → B ) CANADIAN SYLLABICS CARRIER KHE → LATIN CAPITAL LETTER B # +A4D0 ; 0042 ; MA # ( ꓐ → B ) LISU LETTER BA → LATIN CAPITAL LETTER B # +10282 ; 0042 ; MA # ( 𐊂 → B ) LYCIAN LETTER B → LATIN CAPITAL LETTER B # +102A1 ; 0042 ; MA # ( 𐊡 → B ) CARIAN LETTER P2 → LATIN CAPITAL LETTER B # +10301 ; 0042 ; MA # ( 𐌁 → B ) OLD ITALIC LETTER BE → LATIN CAPITAL LETTER B # + +0253 ; 0062 0314 ; MA # ( ɓ → b̔ ) LATIN SMALL LETTER B WITH HOOK → LATIN SMALL LETTER B, COMBINING REVERSED COMMA ABOVE # + +1473 ; 0062 0307 ; MA # ( ᑳ → ḃ ) CANADIAN SYLLABICS KAA → LATIN SMALL LETTER B, COMBINING DOT ABOVE # + +0183 ; 0062 0304 ; MA # ( ƃ → b̄ ) LATIN SMALL LETTER B WITH TOPBAR → LATIN SMALL LETTER B, COMBINING MACRON # +0182 ; 0062 0304 ; MA # ( Ƃ → b̄ ) LATIN CAPITAL LETTER B WITH TOPBAR → LATIN SMALL LETTER B, COMBINING MACRON # +0411 ; 0062 0304 ; MA # ( Б → b̄ ) CYRILLIC CAPITAL LETTER BE → LATIN SMALL LETTER B, COMBINING MACRON # →Ƃ→ + +0180 ; 0062 0335 ; MA # ( ƀ → b̵ ) LATIN SMALL LETTER B WITH STROKE → LATIN SMALL LETTER B, COMBINING SHORT STROKE OVERLAY # +048D ; 0062 0335 ; MA # ( ҍ → b̵ ) CYRILLIC SMALL LETTER SEMISOFT SIGN → LATIN SMALL LETTER B, COMBINING SHORT STROKE OVERLAY # →ѣ→→Ь̵→ +048C ; 0062 0335 ; MA # ( Ҍ → b̵ ) CYRILLIC CAPITAL LETTER SEMISOFT SIGN → LATIN SMALL LETTER B, COMBINING SHORT STROKE OVERLAY # →Ѣ→→Ь̵→ +0463 ; 0062 0335 ; MA # ( ѣ → b̵ ) CYRILLIC SMALL LETTER YAT → LATIN SMALL LETTER B, COMBINING SHORT STROKE OVERLAY # →Ь̵→ +0462 ; 0062 0335 ; MA # ( Ѣ → b̵ ) CYRILLIC CAPITAL LETTER YAT → LATIN SMALL LETTER B, COMBINING SHORT STROKE OVERLAY # →Ь̵→ + +147F ; 0062 00B7 ; MA # ( ᑿ → b· ) CANADIAN SYLLABICS WEST-CREE KWA → LATIN SMALL LETTER B, MIDDLE DOT # →ᑲᐧ→ + +1481 ; 0062 0307 00B7 ; MA # ( ᒁ → ḃ· ) CANADIAN SYLLABICS WEST-CREE KWAA → LATIN SMALL LETTER B, COMBINING DOT ABOVE, MIDDLE DOT # →ᑳᐧ→ + +1488 ; 0062 0027 ; MA # ( ᒈ → b' ) CANADIAN SYLLABICS SOUTH-SLAVEY KAH → LATIN SMALL LETTER B, APOSTROPHE # →ᑲᑊ→ + +042B ; 0062 006C ; MA # ( Ы → bl ) CYRILLIC CAPITAL LETTER YERU → LATIN SMALL LETTER B, LATIN SMALL LETTER L # →ЬІ→→Ь1→ + +0432 ; 0299 ; MA # ( в → ʙ ) CYRILLIC SMALL LETTER VE → LATIN LETTER SMALL CAPITAL B # +13FC ; 0299 ; MA # ( ᏼ → ʙ ) CHEROKEE SMALL LETTER YV → LATIN LETTER SMALL CAPITAL B # + +FF43 ; 0063 ; MA # ( c → c ) FULLWIDTH LATIN SMALL LETTER C → LATIN SMALL LETTER C # →с→ +217D ; 0063 ; MA # ( ⅽ → c ) SMALL ROMAN NUMERAL ONE HUNDRED → LATIN SMALL LETTER C # +1D41C ; 0063 ; MA # ( 𝐜 → c ) MATHEMATICAL BOLD SMALL C → LATIN SMALL LETTER C # +1D450 ; 0063 ; MA # ( 𝑐 → c ) MATHEMATICAL ITALIC SMALL C → LATIN SMALL LETTER C # +1D484 ; 0063 ; MA # ( 𝒄 → c ) MATHEMATICAL BOLD ITALIC SMALL C → LATIN SMALL LETTER C # +1D4B8 ; 0063 ; MA # ( 𝒸 → c ) MATHEMATICAL SCRIPT SMALL C → LATIN SMALL LETTER C # +1D4EC ; 0063 ; MA # ( 𝓬 → c ) MATHEMATICAL BOLD SCRIPT SMALL C → LATIN SMALL LETTER C # +1D520 ; 0063 ; MA # ( 𝔠 → c ) MATHEMATICAL FRAKTUR SMALL C → LATIN SMALL LETTER C # +1D554 ; 0063 ; MA # ( 𝕔 → c ) MATHEMATICAL DOUBLE-STRUCK SMALL C → LATIN SMALL LETTER C # +1D588 ; 0063 ; MA # ( 𝖈 → c ) MATHEMATICAL BOLD FRAKTUR SMALL C → LATIN SMALL LETTER C # +1D5BC ; 0063 ; MA # ( 𝖼 → c ) MATHEMATICAL SANS-SERIF SMALL C → LATIN SMALL LETTER C # +1D5F0 ; 0063 ; MA # ( 𝗰 → c ) MATHEMATICAL SANS-SERIF BOLD SMALL C → LATIN SMALL LETTER C # +1D624 ; 0063 ; MA # ( 𝘤 → c ) MATHEMATICAL SANS-SERIF ITALIC SMALL C → LATIN SMALL LETTER C # +1D658 ; 0063 ; MA # ( 𝙘 → c ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C → LATIN SMALL LETTER C # +1D68C ; 0063 ; MA # ( 𝚌 → c ) MATHEMATICAL MONOSPACE SMALL C → LATIN SMALL LETTER C # +1D04 ; 0063 ; MA # ( ᴄ → c ) LATIN LETTER SMALL CAPITAL C → LATIN SMALL LETTER C # +03F2 ; 0063 ; MA # ( ϲ → c ) GREEK LUNATE SIGMA SYMBOL → LATIN SMALL LETTER C # +2CA5 ; 0063 ; MA # ( ⲥ → c ) COPTIC SMALL LETTER SIMA → LATIN SMALL LETTER C # →ϲ→ +0441 ; 0063 ; MA # ( с → c ) CYRILLIC SMALL LETTER ES → LATIN SMALL LETTER C # +ABAF ; 0063 ; MA # ( ꮯ → c ) CHEROKEE SMALL LETTER TLI → LATIN SMALL LETTER C # →ᴄ→ +1043D ; 0063 ; MA # ( 𐐽 → c ) DESERET SMALL LETTER CHEE → LATIN SMALL LETTER C # + +2DED ; 0368 ; MA # ( ⷭ → ͨ ) COMBINING CYRILLIC LETTER ES → COMBINING LATIN SMALL LETTER C # + +1F74C ; 0043 ; MA #* ( 🝌 → C ) ALCHEMICAL SYMBOL FOR CALX → LATIN CAPITAL LETTER C # +118F2 ; 0043 ; MA #* ( 𑣲 → C ) WARANG CITI NUMBER NINETY → LATIN CAPITAL LETTER C # +118E9 ; 0043 ; MA # ( 𑣩 → C ) WARANG CITI DIGIT NINE → LATIN CAPITAL LETTER C # +FF23 ; 0043 ; MA # ( C → C ) FULLWIDTH LATIN CAPITAL LETTER C → LATIN CAPITAL LETTER C # →С→ +216D ; 0043 ; MA # ( Ⅽ → C ) ROMAN NUMERAL ONE HUNDRED → LATIN CAPITAL LETTER C # +2102 ; 0043 ; MA # ( ℂ → C ) DOUBLE-STRUCK CAPITAL C → LATIN CAPITAL LETTER C # +212D ; 0043 ; MA # ( ℭ → C ) BLACK-LETTER CAPITAL C → LATIN CAPITAL LETTER C # +1D402 ; 0043 ; MA # ( 𝐂 → C ) MATHEMATICAL BOLD CAPITAL C → LATIN CAPITAL LETTER C # +1D436 ; 0043 ; MA # ( 𝐶 → C ) MATHEMATICAL ITALIC CAPITAL C → LATIN CAPITAL LETTER C # +1D46A ; 0043 ; MA # ( 𝑪 → C ) MATHEMATICAL BOLD ITALIC CAPITAL C → LATIN CAPITAL LETTER C # +1D49E ; 0043 ; MA # ( 𝒞 → C ) MATHEMATICAL SCRIPT CAPITAL C → LATIN CAPITAL LETTER C # +1D4D2 ; 0043 ; MA # ( 𝓒 → C ) MATHEMATICAL BOLD SCRIPT CAPITAL C → LATIN CAPITAL LETTER C # +1D56E ; 0043 ; MA # ( 𝕮 → C ) MATHEMATICAL BOLD FRAKTUR CAPITAL C → LATIN CAPITAL LETTER C # +1D5A2 ; 0043 ; MA # ( 𝖢 → C ) MATHEMATICAL SANS-SERIF CAPITAL C → LATIN CAPITAL LETTER C # +1D5D6 ; 0043 ; MA # ( 𝗖 → C ) MATHEMATICAL SANS-SERIF BOLD CAPITAL C → LATIN CAPITAL LETTER C # +1D60A ; 0043 ; MA # ( 𝘊 → C ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL C → LATIN CAPITAL LETTER C # +1D63E ; 0043 ; MA # ( 𝘾 → C ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C → LATIN CAPITAL LETTER C # +1D672 ; 0043 ; MA # ( 𝙲 → C ) MATHEMATICAL MONOSPACE CAPITAL C → LATIN CAPITAL LETTER C # +03F9 ; 0043 ; MA # ( Ϲ → C ) GREEK CAPITAL LUNATE SIGMA SYMBOL → LATIN CAPITAL LETTER C # +2CA4 ; 0043 ; MA # ( Ⲥ → C ) COPTIC CAPITAL LETTER SIMA → LATIN CAPITAL LETTER C # →Ϲ→ +0421 ; 0043 ; MA # ( С → C ) CYRILLIC CAPITAL LETTER ES → LATIN CAPITAL LETTER C # +13DF ; 0043 ; MA # ( Ꮯ → C ) CHEROKEE LETTER TLI → LATIN CAPITAL LETTER C # +A4DA ; 0043 ; MA # ( ꓚ → C ) LISU LETTER CA → LATIN CAPITAL LETTER C # +102A2 ; 0043 ; MA # ( 𐊢 → C ) CARIAN LETTER D → LATIN CAPITAL LETTER C # +10302 ; 0043 ; MA # ( 𐌂 → C ) OLD ITALIC LETTER KE → LATIN CAPITAL LETTER C # +10415 ; 0043 ; MA # ( 𐐕 → C ) DESERET CAPITAL LETTER CHEE → LATIN CAPITAL LETTER C # +1051C ; 0043 ; MA # ( 𐔜 → C ) ELBASAN LETTER SHE → LATIN CAPITAL LETTER C # + +00A2 ; 0063 0338 ; MA #* ( ¢ → c̸ ) CENT SIGN → LATIN SMALL LETTER C, COMBINING LONG SOLIDUS OVERLAY # +023C ; 0063 0338 ; MA # ( ȼ → c̸ ) LATIN SMALL LETTER C WITH STROKE → LATIN SMALL LETTER C, COMBINING LONG SOLIDUS OVERLAY # →¢→ + +20A1 ; 0043 20EB ; MA #* ( ₡ → C⃫ ) COLON SIGN → LATIN CAPITAL LETTER C, COMBINING LONG DOUBLE SOLIDUS OVERLAY # + +1F16E ; 0043 20E0 ; MA #* ( 🅮 → C⃠ ) CIRCLED C WITH OVERLAID BACKSLASH → LATIN CAPITAL LETTER C, COMBINING ENCLOSING CIRCLE BACKSLASH # + +00E7 ; 0063 0326 ; MA # ( ç → c̦ ) LATIN SMALL LETTER C WITH CEDILLA → LATIN SMALL LETTER C, COMBINING COMMA BELOW # →ҫ→→с̡→ +04AB ; 0063 0326 ; MA # ( ҫ → c̦ ) CYRILLIC SMALL LETTER ES WITH DESCENDER → LATIN SMALL LETTER C, COMBINING COMMA BELOW # →с̡→ + +00C7 ; 0043 0326 ; MA # ( Ç → C̦ ) LATIN CAPITAL LETTER C WITH CEDILLA → LATIN CAPITAL LETTER C, COMBINING COMMA BELOW # →Ҫ→→С̡→ +04AA ; 0043 0326 ; MA # ( Ҫ → C̦ ) CYRILLIC CAPITAL LETTER ES WITH DESCENDER → LATIN CAPITAL LETTER C, COMBINING COMMA BELOW # →С̡→ + +0187 ; 0043 0027 ; MA # ( Ƈ → C' ) LATIN CAPITAL LETTER C WITH HOOK → LATIN CAPITAL LETTER C, APOSTROPHE # →Cʽ→ + +2105 ; 0063 002F 006F ; MA #* ( ℅ → c/o ) CARE OF → LATIN SMALL LETTER C, SOLIDUS, LATIN SMALL LETTER O # + +2106 ; 0063 002F 0075 ; MA #* ( ℆ → c/u ) CADA UNA → LATIN SMALL LETTER C, SOLIDUS, LATIN SMALL LETTER U # + +1F16D ; 33C4 0009 20DD ; MA #* ( 🅭 → ) CIRCLED CC → SQUARE CC, <CHARACTER TABULATION>, COMBINING ENCLOSING CIRCLE # + +22F4 ; A793 ; MA #* ( ⋴ → ꞓ ) SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE → LATIN SMALL LETTER C WITH BAR # →ɛ→→є→ +025B ; A793 ; MA # ( ɛ → ꞓ ) LATIN SMALL LETTER OPEN E → LATIN SMALL LETTER C WITH BAR # →є→ +03B5 ; A793 ; MA # ( ε → ꞓ ) GREEK SMALL LETTER EPSILON → LATIN SMALL LETTER C WITH BAR # →є→ +03F5 ; A793 ; MA # ( ϵ → ꞓ ) GREEK LUNATE EPSILON SYMBOL → LATIN SMALL LETTER C WITH BAR # →ε→→є→ +1D6C6 ; A793 ; MA # ( 𝛆 → ꞓ ) MATHEMATICAL BOLD SMALL EPSILON → LATIN SMALL LETTER C WITH BAR # →ε→→є→ +1D6DC ; A793 ; MA # ( 𝛜 → ꞓ ) MATHEMATICAL BOLD EPSILON SYMBOL → LATIN SMALL LETTER C WITH BAR # →ε→→є→ +1D700 ; A793 ; MA # ( 𝜀 → ꞓ ) MATHEMATICAL ITALIC SMALL EPSILON → LATIN SMALL LETTER C WITH BAR # →ε→→є→ +1D716 ; A793 ; MA # ( 𝜖 → ꞓ ) MATHEMATICAL ITALIC EPSILON SYMBOL → LATIN SMALL LETTER C WITH BAR # →ε→→є→ +1D73A ; A793 ; MA # ( 𝜺 → ꞓ ) MATHEMATICAL BOLD ITALIC SMALL EPSILON → LATIN SMALL LETTER C WITH BAR # →ε→→є→ +1D750 ; A793 ; MA # ( 𝝐 → ꞓ ) MATHEMATICAL BOLD ITALIC EPSILON SYMBOL → LATIN SMALL LETTER C WITH BAR # →ε→→є→ +1D774 ; A793 ; MA # ( 𝝴 → ꞓ ) MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON → LATIN SMALL LETTER C WITH BAR # →ε→→є→ +1D78A ; A793 ; MA # ( 𝞊 → ꞓ ) MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL → LATIN SMALL LETTER C WITH BAR # →ε→→є→ +1D7AE ; A793 ; MA # ( 𝞮 → ꞓ ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON → LATIN SMALL LETTER C WITH BAR # →ε→→є→ +1D7C4 ; A793 ; MA # ( 𝟄 → ꞓ ) MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL → LATIN SMALL LETTER C WITH BAR # →ε→→є→ +2C89 ; A793 ; MA # ( ⲉ → ꞓ ) COPTIC SMALL LETTER EIE → LATIN SMALL LETTER C WITH BAR # →є→ +0454 ; A793 ; MA # ( є → ꞓ ) CYRILLIC SMALL LETTER UKRAINIAN IE → LATIN SMALL LETTER C WITH BAR # +0511 ; A793 ; MA # ( ԑ → ꞓ ) CYRILLIC SMALL LETTER REVERSED ZE → LATIN SMALL LETTER C WITH BAR # →ε→→є→ +AB9B ; A793 ; MA # ( ꮛ → ꞓ ) CHEROKEE SMALL LETTER QUV → LATIN SMALL LETTER C WITH BAR # →ɛ→→є→ +118CE ; A793 ; MA # ( 𑣎 → ꞓ ) WARANG CITI SMALL LETTER YUJ → LATIN SMALL LETTER C WITH BAR # →ε→→є→ +10429 ; A793 ; MA # ( 𐐩 → ꞓ ) DESERET SMALL LETTER LONG E → LATIN SMALL LETTER C WITH BAR # →ɛ→→є→ + +20AC ; A792 ; MA #* ( € → Ꞓ ) EURO SIGN → LATIN CAPITAL LETTER C WITH BAR # →Є→ +2C88 ; A792 ; MA # ( Ⲉ → Ꞓ ) COPTIC CAPITAL LETTER EIE → LATIN CAPITAL LETTER C WITH BAR # →Є→ +0404 ; A792 ; MA # ( Є → Ꞓ ) CYRILLIC CAPITAL LETTER UKRAINIAN IE → LATIN CAPITAL LETTER C WITH BAR # + +2377 ; A793 0332 ; MA #* ( ⍷ → ꞓ̲ ) APL FUNCTIONAL SYMBOL EPSILON UNDERBAR → LATIN SMALL LETTER C WITH BAR, COMBINING LOW LINE # →ε̲→ + +037D ; A73F ; MA # ( ͽ → ꜿ ) GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL → LATIN SMALL LETTER REVERSED C WITH DOT # + +03FF ; A73E ; MA # ( Ͽ → Ꜿ ) GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL → LATIN CAPITAL LETTER REVERSED C WITH DOT # + +217E ; 0064 ; MA # ( ⅾ → d ) SMALL ROMAN NUMERAL FIVE HUNDRED → LATIN SMALL LETTER D # +2146 ; 0064 ; MA # ( ⅆ → d ) DOUBLE-STRUCK ITALIC SMALL D → LATIN SMALL LETTER D # +1D41D ; 0064 ; MA # ( 𝐝 → d ) MATHEMATICAL BOLD SMALL D → LATIN SMALL LETTER D # +1D451 ; 0064 ; MA # ( 𝑑 → d ) MATHEMATICAL ITALIC SMALL D → LATIN SMALL LETTER D # +1D485 ; 0064 ; MA # ( 𝒅 → d ) MATHEMATICAL BOLD ITALIC SMALL D → LATIN SMALL LETTER D # +1D4B9 ; 0064 ; MA # ( 𝒹 → d ) MATHEMATICAL SCRIPT SMALL D → LATIN SMALL LETTER D # +1D4ED ; 0064 ; MA # ( 𝓭 → d ) MATHEMATICAL BOLD SCRIPT SMALL D → LATIN SMALL LETTER D # +1D521 ; 0064 ; MA # ( 𝔡 → d ) MATHEMATICAL FRAKTUR SMALL D → LATIN SMALL LETTER D # +1D555 ; 0064 ; MA # ( 𝕕 → d ) MATHEMATICAL DOUBLE-STRUCK SMALL D → LATIN SMALL LETTER D # +1D589 ; 0064 ; MA # ( 𝖉 → d ) MATHEMATICAL BOLD FRAKTUR SMALL D → LATIN SMALL LETTER D # +1D5BD ; 0064 ; MA # ( 𝖽 → d ) MATHEMATICAL SANS-SERIF SMALL D → LATIN SMALL LETTER D # +1D5F1 ; 0064 ; MA # ( 𝗱 → d ) MATHEMATICAL SANS-SERIF BOLD SMALL D → LATIN SMALL LETTER D # +1D625 ; 0064 ; MA # ( 𝘥 → d ) MATHEMATICAL SANS-SERIF ITALIC SMALL D → LATIN SMALL LETTER D # +1D659 ; 0064 ; MA # ( 𝙙 → d ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D → LATIN SMALL LETTER D # +1D68D ; 0064 ; MA # ( 𝚍 → d ) MATHEMATICAL MONOSPACE SMALL D → LATIN SMALL LETTER D # +0501 ; 0064 ; MA # ( ԁ → d ) CYRILLIC SMALL LETTER KOMI DE → LATIN SMALL LETTER D # +13E7 ; 0064 ; MA # ( Ꮷ → d ) CHEROKEE LETTER TSU → LATIN SMALL LETTER D # +146F ; 0064 ; MA # ( ᑯ → d ) CANADIAN SYLLABICS KO → LATIN SMALL LETTER D # +A4D2 ; 0064 ; MA # ( ꓒ → d ) LISU LETTER PHA → LATIN SMALL LETTER D # + +216E ; 0044 ; MA # ( Ⅾ → D ) ROMAN NUMERAL FIVE HUNDRED → LATIN CAPITAL LETTER D # +2145 ; 0044 ; MA # ( ⅅ → D ) DOUBLE-STRUCK ITALIC CAPITAL D → LATIN CAPITAL LETTER D # +1D403 ; 0044 ; MA # ( 𝐃 → D ) MATHEMATICAL BOLD CAPITAL D → LATIN CAPITAL LETTER D # +1D437 ; 0044 ; MA # ( 𝐷 → D ) MATHEMATICAL ITALIC CAPITAL D → LATIN CAPITAL LETTER D # +1D46B ; 0044 ; MA # ( 𝑫 → D ) MATHEMATICAL BOLD ITALIC CAPITAL D → LATIN CAPITAL LETTER D # +1D49F ; 0044 ; MA # ( 𝒟 → D ) MATHEMATICAL SCRIPT CAPITAL D → LATIN CAPITAL LETTER D # +1D4D3 ; 0044 ; MA # ( 𝓓 → D ) MATHEMATICAL BOLD SCRIPT CAPITAL D → LATIN CAPITAL LETTER D # +1D507 ; 0044 ; MA # ( 𝔇 → D ) MATHEMATICAL FRAKTUR CAPITAL D → LATIN CAPITAL LETTER D # +1D53B ; 0044 ; MA # ( 𝔻 → D ) MATHEMATICAL DOUBLE-STRUCK CAPITAL D → LATIN CAPITAL LETTER D # +1D56F ; 0044 ; MA # ( 𝕯 → D ) MATHEMATICAL BOLD FRAKTUR CAPITAL D → LATIN CAPITAL LETTER D # +1D5A3 ; 0044 ; MA # ( 𝖣 → D ) MATHEMATICAL SANS-SERIF CAPITAL D → LATIN CAPITAL LETTER D # +1D5D7 ; 0044 ; MA # ( 𝗗 → D ) MATHEMATICAL SANS-SERIF BOLD CAPITAL D → LATIN CAPITAL LETTER D # +1D60B ; 0044 ; MA # ( 𝘋 → D ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL D → LATIN CAPITAL LETTER D # +1D63F ; 0044 ; MA # ( 𝘿 → D ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D → LATIN CAPITAL LETTER D # +1D673 ; 0044 ; MA # ( 𝙳 → D ) MATHEMATICAL MONOSPACE CAPITAL D → LATIN CAPITAL LETTER D # +13A0 ; 0044 ; MA # ( Ꭰ → D ) CHEROKEE LETTER A → LATIN CAPITAL LETTER D # +15DE ; 0044 ; MA # ( ᗞ → D ) CANADIAN SYLLABICS CARRIER THE → LATIN CAPITAL LETTER D # +15EA ; 0044 ; MA # ( ᗪ → D ) CANADIAN SYLLABICS CARRIER PE → LATIN CAPITAL LETTER D # →ᗞ→ +A4D3 ; 0044 ; MA # ( ꓓ → D ) LISU LETTER DA → LATIN CAPITAL LETTER D # + +0257 ; 0064 0314 ; MA # ( ɗ → d̔ ) LATIN SMALL LETTER D WITH HOOK → LATIN SMALL LETTER D, COMBINING REVERSED COMMA ABOVE # + +0256 ; 0064 0328 ; MA # ( ɖ → d̨ ) LATIN SMALL LETTER D WITH TAIL → LATIN SMALL LETTER D, COMBINING OGONEK # →d̢→ + +018C ; 0064 0304 ; MA # ( ƌ → d̄ ) LATIN SMALL LETTER D WITH TOPBAR → LATIN SMALL LETTER D, COMBINING MACRON # + +0111 ; 0064 0335 ; MA # ( đ → d̵ ) LATIN SMALL LETTER D WITH STROKE → LATIN SMALL LETTER D, COMBINING SHORT STROKE OVERLAY # + +0110 ; 0044 0335 ; MA # ( Đ → D̵ ) LATIN CAPITAL LETTER D WITH STROKE → LATIN CAPITAL LETTER D, COMBINING SHORT STROKE OVERLAY # +00D0 ; 0044 0335 ; MA # ( Ð → D̵ ) LATIN CAPITAL LETTER ETH → LATIN CAPITAL LETTER D, COMBINING SHORT STROKE OVERLAY # →Đ→ +0189 ; 0044 0335 ; MA # ( Ɖ → D̵ ) LATIN CAPITAL LETTER AFRICAN D → LATIN CAPITAL LETTER D, COMBINING SHORT STROKE OVERLAY # →Đ→ + +20AB ; 0064 0335 0331 ; MA #* ( ₫ → ḏ̵ ) DONG SIGN → LATIN SMALL LETTER D, COMBINING SHORT STROKE OVERLAY, COMBINING MACRON BELOW # →đ̱→ + +A77A ; A779 ; MA # ( ꝺ → Ꝺ ) LATIN SMALL LETTER INSULAR D → LATIN CAPITAL LETTER INSULAR D # + +147B ; 0064 00B7 ; MA # ( ᑻ → d· ) CANADIAN SYLLABICS WEST-CREE KWO → LATIN SMALL LETTER D, MIDDLE DOT # →ᑯᐧ→ + +1487 ; 0064 0027 ; MA # ( ᒇ → d' ) CANADIAN SYLLABICS SOUTH-SLAVEY KOH → LATIN SMALL LETTER D, APOSTROPHE # →ᑯᑊ→ + +02A4 ; 0064 021D ; MA # ( ʤ → dȝ ) LATIN SMALL LETTER DEZH DIGRAPH → LATIN SMALL LETTER D, LATIN SMALL LETTER YOGH # →dʒ→ + +01F3 ; 0064 007A ; MA # ( dz → dz ) LATIN SMALL LETTER DZ → LATIN SMALL LETTER D, LATIN SMALL LETTER Z # +02A3 ; 0064 007A ; MA # ( ʣ → dz ) LATIN SMALL LETTER DZ DIGRAPH → LATIN SMALL LETTER D, LATIN SMALL LETTER Z # + +01F2 ; 0044 007A ; MA # ( Dz → Dz ) LATIN CAPITAL LETTER D WITH SMALL LETTER Z → LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z # + +01F1 ; 0044 005A ; MA # ( DZ → DZ ) LATIN CAPITAL LETTER DZ → LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z # + +01C6 ; 0064 017E ; MA # ( dž → dž ) LATIN SMALL LETTER DZ WITH CARON → LATIN SMALL LETTER D, LATIN SMALL LETTER Z WITH CARON # + +01C5 ; 0044 017E ; MA # ( Dž → Dž ) LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON → LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z WITH CARON # + +01C4 ; 0044 017D ; MA # ( DŽ → DŽ ) LATIN CAPITAL LETTER DZ WITH CARON → LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z WITH CARON # + +02A5 ; 0064 0291 ; MA # ( ʥ → dʑ ) LATIN SMALL LETTER DZ DIGRAPH WITH CURL → LATIN SMALL LETTER D, LATIN SMALL LETTER Z WITH CURL # + +AB70 ; 1D05 ; MA # ( ꭰ → ᴅ ) CHEROKEE SMALL LETTER A → LATIN LETTER SMALL CAPITAL D # + +2E39 ; 1E9F ; MA #* ( ⸹ → ẟ ) TOP HALF SECTION SIGN → LATIN SMALL LETTER DELTA # →δ→ +03B4 ; 1E9F ; MA # ( δ → ẟ ) GREEK SMALL LETTER DELTA → LATIN SMALL LETTER DELTA # +1D6C5 ; 1E9F ; MA # ( 𝛅 → ẟ ) MATHEMATICAL BOLD SMALL DELTA → LATIN SMALL LETTER DELTA # →δ→ +1D6FF ; 1E9F ; MA # ( 𝛿 → ẟ ) MATHEMATICAL ITALIC SMALL DELTA → LATIN SMALL LETTER DELTA # →δ→ +1D739 ; 1E9F ; MA # ( 𝜹 → ẟ ) MATHEMATICAL BOLD ITALIC SMALL DELTA → LATIN SMALL LETTER DELTA # →δ→ +1D773 ; 1E9F ; MA # ( 𝝳 → ẟ ) MATHEMATICAL SANS-SERIF BOLD SMALL DELTA → LATIN SMALL LETTER DELTA # →δ→ +1D7AD ; 1E9F ; MA # ( 𝞭 → ẟ ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA → LATIN SMALL LETTER DELTA # →δ→ +056E ; 1E9F ; MA # ( ծ → ẟ ) ARMENIAN SMALL LETTER CA → LATIN SMALL LETTER DELTA # →δ→ +1577 ; 1E9F ; MA # ( ᕷ → ẟ ) CANADIAN SYLLABICS NUNAVIK HO → LATIN SMALL LETTER DELTA # →δ→ + +212E ; 0065 ; MA # ( ℮ → e ) ESTIMATED SYMBOL → LATIN SMALL LETTER E # +FF45 ; 0065 ; MA # ( e → e ) FULLWIDTH LATIN SMALL LETTER E → LATIN SMALL LETTER E # →е→ +212F ; 0065 ; MA # ( ℯ → e ) SCRIPT SMALL E → LATIN SMALL LETTER E # +2147 ; 0065 ; MA # ( ⅇ → e ) DOUBLE-STRUCK ITALIC SMALL E → LATIN SMALL LETTER E # +1D41E ; 0065 ; MA # ( 𝐞 → e ) MATHEMATICAL BOLD SMALL E → LATIN SMALL LETTER E # +1D452 ; 0065 ; MA # ( 𝑒 → e ) MATHEMATICAL ITALIC SMALL E → LATIN SMALL LETTER E # +1D486 ; 0065 ; MA # ( 𝒆 → e ) MATHEMATICAL BOLD ITALIC SMALL E → LATIN SMALL LETTER E # +1D4EE ; 0065 ; MA # ( 𝓮 → e ) MATHEMATICAL BOLD SCRIPT SMALL E → LATIN SMALL LETTER E # +1D522 ; 0065 ; MA # ( 𝔢 → e ) MATHEMATICAL FRAKTUR SMALL E → LATIN SMALL LETTER E # +1D556 ; 0065 ; MA # ( 𝕖 → e ) MATHEMATICAL DOUBLE-STRUCK SMALL E → LATIN SMALL LETTER E # +1D58A ; 0065 ; MA # ( 𝖊 → e ) MATHEMATICAL BOLD FRAKTUR SMALL E → LATIN SMALL LETTER E # +1D5BE ; 0065 ; MA # ( 𝖾 → e ) MATHEMATICAL SANS-SERIF SMALL E → LATIN SMALL LETTER E # +1D5F2 ; 0065 ; MA # ( 𝗲 → e ) MATHEMATICAL SANS-SERIF BOLD SMALL E → LATIN SMALL LETTER E # +1D626 ; 0065 ; MA # ( 𝘦 → e ) MATHEMATICAL SANS-SERIF ITALIC SMALL E → LATIN SMALL LETTER E # +1D65A ; 0065 ; MA # ( 𝙚 → e ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E → LATIN SMALL LETTER E # +1D68E ; 0065 ; MA # ( 𝚎 → e ) MATHEMATICAL MONOSPACE SMALL E → LATIN SMALL LETTER E # +AB32 ; 0065 ; MA # ( ꬲ → e ) LATIN SMALL LETTER BLACKLETTER E → LATIN SMALL LETTER E # +0435 ; 0065 ; MA # ( е → e ) CYRILLIC SMALL LETTER IE → LATIN SMALL LETTER E # +04BD ; 0065 ; MA # ( ҽ → e ) CYRILLIC SMALL LETTER ABKHASIAN CHE → LATIN SMALL LETTER E # + +2DF7 ; 0364 ; MA # ( ⷷ → ͤ ) COMBINING CYRILLIC LETTER IE → COMBINING LATIN SMALL LETTER E # + +22FF ; 0045 ; MA #* ( ⋿ → E ) Z NOTATION BAG MEMBERSHIP → LATIN CAPITAL LETTER E # +FF25 ; 0045 ; MA # ( E → E ) FULLWIDTH LATIN CAPITAL LETTER E → LATIN CAPITAL LETTER E # →Ε→ +2130 ; 0045 ; MA # ( ℰ → E ) SCRIPT CAPITAL E → LATIN CAPITAL LETTER E # +1D404 ; 0045 ; MA # ( 𝐄 → E ) MATHEMATICAL BOLD CAPITAL E → LATIN CAPITAL LETTER E # +1D438 ; 0045 ; MA # ( 𝐸 → E ) MATHEMATICAL ITALIC CAPITAL E → LATIN CAPITAL LETTER E # +1D46C ; 0045 ; MA # ( 𝑬 → E ) MATHEMATICAL BOLD ITALIC CAPITAL E → LATIN CAPITAL LETTER E # +1D4D4 ; 0045 ; MA # ( 𝓔 → E ) MATHEMATICAL BOLD SCRIPT CAPITAL E → LATIN CAPITAL LETTER E # +1D508 ; 0045 ; MA # ( 𝔈 → E ) MATHEMATICAL FRAKTUR CAPITAL E → LATIN CAPITAL LETTER E # +1D53C ; 0045 ; MA # ( 𝔼 → E ) MATHEMATICAL DOUBLE-STRUCK CAPITAL E → LATIN CAPITAL LETTER E # +1D570 ; 0045 ; MA # ( 𝕰 → E ) MATHEMATICAL BOLD FRAKTUR CAPITAL E → LATIN CAPITAL LETTER E # +1D5A4 ; 0045 ; MA # ( 𝖤 → E ) MATHEMATICAL SANS-SERIF CAPITAL E → LATIN CAPITAL LETTER E # +1D5D8 ; 0045 ; MA # ( 𝗘 → E ) MATHEMATICAL SANS-SERIF BOLD CAPITAL E → LATIN CAPITAL LETTER E # +1D60C ; 0045 ; MA # ( 𝘌 → E ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL E → LATIN CAPITAL LETTER E # +1D640 ; 0045 ; MA # ( 𝙀 → E ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E → LATIN CAPITAL LETTER E # +1D674 ; 0045 ; MA # ( 𝙴 → E ) MATHEMATICAL MONOSPACE CAPITAL E → LATIN CAPITAL LETTER E # +0395 ; 0045 ; MA # ( Ε → E ) GREEK CAPITAL LETTER EPSILON → LATIN CAPITAL LETTER E # +1D6AC ; 0045 ; MA # ( 𝚬 → E ) MATHEMATICAL BOLD CAPITAL EPSILON → LATIN CAPITAL LETTER E # →𝐄→ +1D6E6 ; 0045 ; MA # ( 𝛦 → E ) MATHEMATICAL ITALIC CAPITAL EPSILON → LATIN CAPITAL LETTER E # →Ε→ +1D720 ; 0045 ; MA # ( 𝜠 → E ) MATHEMATICAL BOLD ITALIC CAPITAL EPSILON → LATIN CAPITAL LETTER E # →Ε→ +1D75A ; 0045 ; MA # ( 𝝚 → E ) MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON → LATIN CAPITAL LETTER E # →Ε→ +1D794 ; 0045 ; MA # ( 𝞔 → E ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON → LATIN CAPITAL LETTER E # →Ε→ +0415 ; 0045 ; MA # ( Е → E ) CYRILLIC CAPITAL LETTER IE → LATIN CAPITAL LETTER E # +2D39 ; 0045 ; MA # ( ⴹ → E ) TIFINAGH LETTER YADD → LATIN CAPITAL LETTER E # +13AC ; 0045 ; MA # ( Ꭼ → E ) CHEROKEE LETTER GV → LATIN CAPITAL LETTER E # +A4F0 ; 0045 ; MA # ( ꓰ → E ) LISU LETTER E → LATIN CAPITAL LETTER E # +118A6 ; 0045 ; MA # ( 𑢦 → E ) WARANG CITI CAPITAL LETTER II → LATIN CAPITAL LETTER E # +118AE ; 0045 ; MA # ( 𑢮 → E ) WARANG CITI CAPITAL LETTER YUJ → LATIN CAPITAL LETTER E # +10286 ; 0045 ; MA # ( 𐊆 → E ) LYCIAN LETTER I → LATIN CAPITAL LETTER E # + +011B ; 0115 ; MA # ( ě → ĕ ) LATIN SMALL LETTER E WITH CARON → LATIN SMALL LETTER E WITH BREVE # + +011A ; 0114 ; MA # ( Ě → Ĕ ) LATIN CAPITAL LETTER E WITH CARON → LATIN CAPITAL LETTER E WITH BREVE # + +0247 ; 0065 0338 ; MA # ( ɇ → e̸ ) LATIN SMALL LETTER E WITH STROKE → LATIN SMALL LETTER E, COMBINING LONG SOLIDUS OVERLAY # →e̷→ + +0246 ; 0045 0338 ; MA # ( Ɇ → E̸ ) LATIN CAPITAL LETTER E WITH STROKE → LATIN CAPITAL LETTER E, COMBINING LONG SOLIDUS OVERLAY # + +04BF ; 0065 0328 ; MA # ( ҿ → ę ) CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER → LATIN SMALL LETTER E, COMBINING OGONEK # →ҽ̢→ + +AB7C ; 1D07 ; MA # ( ꭼ → ᴇ ) CHEROKEE SMALL LETTER GV → LATIN LETTER SMALL CAPITAL E # + +0259 ; 01DD ; MA # ( ə → ǝ ) LATIN SMALL LETTER SCHWA → LATIN SMALL LETTER TURNED E # +04D9 ; 01DD ; MA # ( ә → ǝ ) CYRILLIC SMALL LETTER SCHWA → LATIN SMALL LETTER TURNED E # + +2203 ; 018E ; MA #* ( ∃ → Ǝ ) THERE EXISTS → LATIN CAPITAL LETTER REVERSED E # +2D3A ; 018E ; MA # ( ⴺ → Ǝ ) TIFINAGH LETTER YADDH → LATIN CAPITAL LETTER REVERSED E # +A4F1 ; 018E ; MA # ( ꓱ → Ǝ ) LISU LETTER EU → LATIN CAPITAL LETTER REVERSED E # + +025A ; 01DD 02DE ; MA # ( ɚ → ǝ˞ ) LATIN SMALL LETTER SCHWA WITH HOOK → LATIN SMALL LETTER TURNED E, MODIFIER LETTER RHOTIC HOOK # →ə˞→ + +1D14 ; 01DD 006F ; MA # ( ᴔ → ǝo ) LATIN SMALL LETTER TURNED OE → LATIN SMALL LETTER TURNED E, LATIN SMALL LETTER O # →əo→ + +AB41 ; 01DD 006F 0338 ; MA # ( ꭁ → ǝo̸ ) LATIN SMALL LETTER TURNED OE WITH STROKE → LATIN SMALL LETTER TURNED E, LATIN SMALL LETTER O, COMBINING LONG SOLIDUS OVERLAY # →ǝø→ + +AB42 ; 01DD 006F 0335 ; MA # ( ꭂ → ǝo̵ ) LATIN SMALL LETTER TURNED OE WITH HORIZONTAL STROKE → LATIN SMALL LETTER TURNED E, LATIN SMALL LETTER O, COMBINING SHORT STROKE OVERLAY # →ǝɵ→ + +04D8 ; 018F ; MA # ( Ә → Ə ) CYRILLIC CAPITAL LETTER SCHWA → LATIN CAPITAL LETTER SCHWA # + +1D221 ; 0190 ; MA #* ( 𝈡 → Ɛ ) GREEK INSTRUMENTAL NOTATION SYMBOL-7 → LATIN CAPITAL LETTER OPEN E # +2107 ; 0190 ; MA # ( ℇ → Ɛ ) EULER CONSTANT → LATIN CAPITAL LETTER OPEN E # +0510 ; 0190 ; MA # ( Ԑ → Ɛ ) CYRILLIC CAPITAL LETTER REVERSED ZE → LATIN CAPITAL LETTER OPEN E # +13CB ; 0190 ; MA # ( Ꮛ → Ɛ ) CHEROKEE LETTER QUV → LATIN CAPITAL LETTER OPEN E # +16F2D ; 0190 ; MA # ( 𖼭 → Ɛ ) MIAO LETTER NYHA → LATIN CAPITAL LETTER OPEN E # +10401 ; 0190 ; MA # ( 𐐁 → Ɛ ) DESERET CAPITAL LETTER LONG E → LATIN CAPITAL LETTER OPEN E # + +1D9F ; 1D4B ; MA # ( ᶟ → ᵋ ) MODIFIER LETTER SMALL REVERSED OPEN E → MODIFIER LETTER SMALL OPEN E # + +1D08 ; 025C ; MA # ( ᴈ → ɜ ) LATIN SMALL LETTER TURNED OPEN E → LATIN SMALL LETTER REVERSED OPEN E # +0437 ; 025C ; MA # ( з → ɜ ) CYRILLIC SMALL LETTER ZE → LATIN SMALL LETTER REVERSED OPEN E # + +0499 ; 025C 0326 ; MA # ( ҙ → ɜ̦ ) CYRILLIC SMALL LETTER ZE WITH DESCENDER → LATIN SMALL LETTER REVERSED OPEN E, COMBINING COMMA BELOW # →з̡→ + +10442 ; 025E ; MA # ( 𐑂 → ɞ ) DESERET SMALL LETTER VEE → LATIN SMALL LETTER CLOSED REVERSED OPEN E # + +A79D ; 029A ; MA # ( ꞝ → ʚ ) LATIN SMALL LETTER VOLAPUK OE → LATIN SMALL LETTER CLOSED OPEN E # +1042A ; 029A ; MA # ( 𐐪 → ʚ ) DESERET SMALL LETTER LONG A → LATIN SMALL LETTER CLOSED OPEN E # + +1D41F ; 0066 ; MA # ( 𝐟 → f ) MATHEMATICAL BOLD SMALL F → LATIN SMALL LETTER F # +1D453 ; 0066 ; MA # ( 𝑓 → f ) MATHEMATICAL ITALIC SMALL F → LATIN SMALL LETTER F # +1D487 ; 0066 ; MA # ( 𝒇 → f ) MATHEMATICAL BOLD ITALIC SMALL F → LATIN SMALL LETTER F # +1D4BB ; 0066 ; MA # ( 𝒻 → f ) MATHEMATICAL SCRIPT SMALL F → LATIN SMALL LETTER F # +1D4EF ; 0066 ; MA # ( 𝓯 → f ) MATHEMATICAL BOLD SCRIPT SMALL F → LATIN SMALL LETTER F # +1D523 ; 0066 ; MA # ( 𝔣 → f ) MATHEMATICAL FRAKTUR SMALL F → LATIN SMALL LETTER F # +1D557 ; 0066 ; MA # ( 𝕗 → f ) MATHEMATICAL DOUBLE-STRUCK SMALL F → LATIN SMALL LETTER F # +1D58B ; 0066 ; MA # ( 𝖋 → f ) MATHEMATICAL BOLD FRAKTUR SMALL F → LATIN SMALL LETTER F # +1D5BF ; 0066 ; MA # ( 𝖿 → f ) MATHEMATICAL SANS-SERIF SMALL F → LATIN SMALL LETTER F # +1D5F3 ; 0066 ; MA # ( 𝗳 → f ) MATHEMATICAL SANS-SERIF BOLD SMALL F → LATIN SMALL LETTER F # +1D627 ; 0066 ; MA # ( 𝘧 → f ) MATHEMATICAL SANS-SERIF ITALIC SMALL F → LATIN SMALL LETTER F # +1D65B ; 0066 ; MA # ( 𝙛 → f ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F → LATIN SMALL LETTER F # +1D68F ; 0066 ; MA # ( 𝚏 → f ) MATHEMATICAL MONOSPACE SMALL F → LATIN SMALL LETTER F # +AB35 ; 0066 ; MA # ( ꬵ → f ) LATIN SMALL LETTER LENIS F → LATIN SMALL LETTER F # +A799 ; 0066 ; MA # ( ꞙ → f ) LATIN SMALL LETTER F WITH STROKE → LATIN SMALL LETTER F # +017F ; 0066 ; MA # ( ſ → f ) LATIN SMALL LETTER LONG S → LATIN SMALL LETTER F # +1E9D ; 0066 ; MA # ( ẝ → f ) LATIN SMALL LETTER LONG S WITH HIGH STROKE → LATIN SMALL LETTER F # +0584 ; 0066 ; MA # ( ք → f ) ARMENIAN SMALL LETTER KEH → LATIN SMALL LETTER F # + +1D213 ; 0046 ; MA #* ( 𝈓 → F ) GREEK VOCAL NOTATION SYMBOL-20 → LATIN CAPITAL LETTER F # →Ϝ→ +2131 ; 0046 ; MA # ( ℱ → F ) SCRIPT CAPITAL F → LATIN CAPITAL LETTER F # +1D405 ; 0046 ; MA # ( 𝐅 → F ) MATHEMATICAL BOLD CAPITAL F → LATIN CAPITAL LETTER F # +1D439 ; 0046 ; MA # ( 𝐹 → F ) MATHEMATICAL ITALIC CAPITAL F → LATIN CAPITAL LETTER F # +1D46D ; 0046 ; MA # ( 𝑭 → F ) MATHEMATICAL BOLD ITALIC CAPITAL F → LATIN CAPITAL LETTER F # +1D4D5 ; 0046 ; MA # ( 𝓕 → F ) MATHEMATICAL BOLD SCRIPT CAPITAL F → LATIN CAPITAL LETTER F # +1D509 ; 0046 ; MA # ( 𝔉 → F ) MATHEMATICAL FRAKTUR CAPITAL F → LATIN CAPITAL LETTER F # +1D53D ; 0046 ; MA # ( 𝔽 → F ) MATHEMATICAL DOUBLE-STRUCK CAPITAL F → LATIN CAPITAL LETTER F # +1D571 ; 0046 ; MA # ( 𝕱 → F ) MATHEMATICAL BOLD FRAKTUR CAPITAL F → LATIN CAPITAL LETTER F # +1D5A5 ; 0046 ; MA # ( 𝖥 → F ) MATHEMATICAL SANS-SERIF CAPITAL F → LATIN CAPITAL LETTER F # +1D5D9 ; 0046 ; MA # ( 𝗙 → F ) MATHEMATICAL SANS-SERIF BOLD CAPITAL F → LATIN CAPITAL LETTER F # +1D60D ; 0046 ; MA # ( 𝘍 → F ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL F → LATIN CAPITAL LETTER F # +1D641 ; 0046 ; MA # ( 𝙁 → F ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F → LATIN CAPITAL LETTER F # +1D675 ; 0046 ; MA # ( 𝙵 → F ) MATHEMATICAL MONOSPACE CAPITAL F → LATIN CAPITAL LETTER F # +A798 ; 0046 ; MA # ( Ꞙ → F ) LATIN CAPITAL LETTER F WITH STROKE → LATIN CAPITAL LETTER F # +03DC ; 0046 ; MA # ( Ϝ → F ) GREEK LETTER DIGAMMA → LATIN CAPITAL LETTER F # +1D7CA ; 0046 ; MA # ( 𝟊 → F ) MATHEMATICAL BOLD CAPITAL DIGAMMA → LATIN CAPITAL LETTER F # →Ϝ→ +15B4 ; 0046 ; MA # ( ᖴ → F ) CANADIAN SYLLABICS BLACKFOOT WE → LATIN CAPITAL LETTER F # +A4DD ; 0046 ; MA # ( ꓝ → F ) LISU LETTER TSA → LATIN CAPITAL LETTER F # +118C2 ; 0046 ; MA # ( 𑣂 → F ) WARANG CITI SMALL LETTER WI → LATIN CAPITAL LETTER F # +118A2 ; 0046 ; MA # ( 𑢢 → F ) WARANG CITI CAPITAL LETTER WI → LATIN CAPITAL LETTER F # +10287 ; 0046 ; MA # ( 𐊇 → F ) LYCIAN LETTER W → LATIN CAPITAL LETTER F # +102A5 ; 0046 ; MA # ( 𐊥 → F ) CARIAN LETTER R → LATIN CAPITAL LETTER F # +10525 ; 0046 ; MA # ( 𐔥 → F ) ELBASAN LETTER GHE → LATIN CAPITAL LETTER F # + +0192 ; 0066 0326 ; MA # ( ƒ → f̦ ) LATIN SMALL LETTER F WITH HOOK → LATIN SMALL LETTER F, COMBINING COMMA BELOW # →f̡→ + +0191 ; 0046 0326 ; MA # ( Ƒ → F̦ ) LATIN CAPITAL LETTER F WITH HOOK → LATIN CAPITAL LETTER F, COMBINING COMMA BELOW # →F̡→ + +1D6E ; 0066 0334 ; MA # ( ᵮ → f̴ ) LATIN SMALL LETTER F WITH MIDDLE TILDE → LATIN SMALL LETTER F, COMBINING TILDE OVERLAY # + +213B ; 0046 0041 0058 ; MA #* ( ℻ → FAX ) FACSIMILE SIGN → LATIN CAPITAL LETTER F, LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER X # + +FB00 ; 0066 0066 ; MA # ( ff → ff ) LATIN SMALL LIGATURE FF → LATIN SMALL LETTER F, LATIN SMALL LETTER F # + +FB03 ; 0066 0066 0069 ; MA # ( ffi → ffi ) LATIN SMALL LIGATURE FFI → LATIN SMALL LETTER F, LATIN SMALL LETTER F, LATIN SMALL LETTER I # + +FB04 ; 0066 0066 006C ; MA # ( ffl → ffl ) LATIN SMALL LIGATURE FFL → LATIN SMALL LETTER F, LATIN SMALL LETTER F, LATIN SMALL LETTER L # + +FB01 ; 0066 0069 ; MA # ( fi → fi ) LATIN SMALL LIGATURE FI → LATIN SMALL LETTER F, LATIN SMALL LETTER I # + +FB02 ; 0066 006C ; MA # ( fl → fl ) LATIN SMALL LIGATURE FL → LATIN SMALL LETTER F, LATIN SMALL LETTER L # + +02A9 ; 0066 014B ; MA # ( ʩ → fŋ ) LATIN SMALL LETTER FENG DIGRAPH → LATIN SMALL LETTER F, LATIN SMALL LETTER ENG # + +15B5 ; 2132 ; MA # ( ᖵ → Ⅎ ) CANADIAN SYLLABICS BLACKFOOT WI → TURNED CAPITAL F # +A4DE ; 2132 ; MA # ( ꓞ → Ⅎ ) LISU LETTER TSHA → TURNED CAPITAL F # + +1D230 ; A7FB ; MA #* ( 𝈰 → ꟻ ) GREEK INSTRUMENTAL NOTATION SYMBOL-30 → LATIN EPIGRAPHIC LETTER REVERSED F # +15B7 ; A7FB ; MA # ( ᖷ → ꟻ ) CANADIAN SYLLABICS BLACKFOOT WA → LATIN EPIGRAPHIC LETTER REVERSED F # + +FF47 ; 0067 ; MA # ( g → g ) FULLWIDTH LATIN SMALL LETTER G → LATIN SMALL LETTER G # →ɡ→ +210A ; 0067 ; MA # ( ℊ → g ) SCRIPT SMALL G → LATIN SMALL LETTER G # +1D420 ; 0067 ; MA # ( 𝐠 → g ) MATHEMATICAL BOLD SMALL G → LATIN SMALL LETTER G # +1D454 ; 0067 ; MA # ( 𝑔 → g ) MATHEMATICAL ITALIC SMALL G → LATIN SMALL LETTER G # +1D488 ; 0067 ; MA # ( 𝒈 → g ) MATHEMATICAL BOLD ITALIC SMALL G → LATIN SMALL LETTER G # +1D4F0 ; 0067 ; MA # ( 𝓰 → g ) MATHEMATICAL BOLD SCRIPT SMALL G → LATIN SMALL LETTER G # +1D524 ; 0067 ; MA # ( 𝔤 → g ) MATHEMATICAL FRAKTUR SMALL G → LATIN SMALL LETTER G # +1D558 ; 0067 ; MA # ( 𝕘 → g ) MATHEMATICAL DOUBLE-STRUCK SMALL G → LATIN SMALL LETTER G # +1D58C ; 0067 ; MA # ( 𝖌 → g ) MATHEMATICAL BOLD FRAKTUR SMALL G → LATIN SMALL LETTER G # +1D5C0 ; 0067 ; MA # ( 𝗀 → g ) MATHEMATICAL SANS-SERIF SMALL G → LATIN SMALL LETTER G # +1D5F4 ; 0067 ; MA # ( 𝗴 → g ) MATHEMATICAL SANS-SERIF BOLD SMALL G → LATIN SMALL LETTER G # +1D628 ; 0067 ; MA # ( 𝘨 → g ) MATHEMATICAL SANS-SERIF ITALIC SMALL G → LATIN SMALL LETTER G # +1D65C ; 0067 ; MA # ( 𝙜 → g ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G → LATIN SMALL LETTER G # +1D690 ; 0067 ; MA # ( 𝚐 → g ) MATHEMATICAL MONOSPACE SMALL G → LATIN SMALL LETTER G # +0261 ; 0067 ; MA # ( ɡ → g ) LATIN SMALL LETTER SCRIPT G → LATIN SMALL LETTER G # +1D83 ; 0067 ; MA # ( ᶃ → g ) LATIN SMALL LETTER G WITH PALATAL HOOK → LATIN SMALL LETTER G # +018D ; 0067 ; MA # ( ƍ → g ) LATIN SMALL LETTER TURNED DELTA → LATIN SMALL LETTER G # +0581 ; 0067 ; MA # ( ց → g ) ARMENIAN SMALL LETTER CO → LATIN SMALL LETTER G # + +1D406 ; 0047 ; MA # ( 𝐆 → G ) MATHEMATICAL BOLD CAPITAL G → LATIN CAPITAL LETTER G # +1D43A ; 0047 ; MA # ( 𝐺 → G ) MATHEMATICAL ITALIC CAPITAL G → LATIN CAPITAL LETTER G # +1D46E ; 0047 ; MA # ( 𝑮 → G ) MATHEMATICAL BOLD ITALIC CAPITAL G → LATIN CAPITAL LETTER G # +1D4A2 ; 0047 ; MA # ( 𝒢 → G ) MATHEMATICAL SCRIPT CAPITAL G → LATIN CAPITAL LETTER G # +1D4D6 ; 0047 ; MA # ( 𝓖 → G ) MATHEMATICAL BOLD SCRIPT CAPITAL G → LATIN CAPITAL LETTER G # +1D50A ; 0047 ; MA # ( 𝔊 → G ) MATHEMATICAL FRAKTUR CAPITAL G → LATIN CAPITAL LETTER G # +1D53E ; 0047 ; MA # ( 𝔾 → G ) MATHEMATICAL DOUBLE-STRUCK CAPITAL G → LATIN CAPITAL LETTER G # +1D572 ; 0047 ; MA # ( 𝕲 → G ) MATHEMATICAL BOLD FRAKTUR CAPITAL G → LATIN CAPITAL LETTER G # +1D5A6 ; 0047 ; MA # ( 𝖦 → G ) MATHEMATICAL SANS-SERIF CAPITAL G → LATIN CAPITAL LETTER G # +1D5DA ; 0047 ; MA # ( 𝗚 → G ) MATHEMATICAL SANS-SERIF BOLD CAPITAL G → LATIN CAPITAL LETTER G # +1D60E ; 0047 ; MA # ( 𝘎 → G ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL G → LATIN CAPITAL LETTER G # +1D642 ; 0047 ; MA # ( 𝙂 → G ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G → LATIN CAPITAL LETTER G # +1D676 ; 0047 ; MA # ( 𝙶 → G ) MATHEMATICAL MONOSPACE CAPITAL G → LATIN CAPITAL LETTER G # +050C ; 0047 ; MA # ( Ԍ → G ) CYRILLIC CAPITAL LETTER KOMI SJE → LATIN CAPITAL LETTER G # +13C0 ; 0047 ; MA # ( Ꮐ → G ) CHEROKEE LETTER NAH → LATIN CAPITAL LETTER G # +13F3 ; 0047 ; MA # ( Ᏻ → G ) CHEROKEE LETTER YU → LATIN CAPITAL LETTER G # +A4D6 ; 0047 ; MA # ( ꓖ → G ) LISU LETTER GA → LATIN CAPITAL LETTER G # + +1DA2 ; 1D4D ; MA # ( ᶢ → ᵍ ) MODIFIER LETTER SMALL SCRIPT G → MODIFIER LETTER SMALL G # + +0260 ; 0067 0314 ; MA # ( ɠ → g̔ ) LATIN SMALL LETTER G WITH HOOK → LATIN SMALL LETTER G, COMBINING REVERSED COMMA ABOVE # + +01E7 ; 011F ; MA # ( ǧ → ğ ) LATIN SMALL LETTER G WITH CARON → LATIN SMALL LETTER G WITH BREVE # + +01E6 ; 011E ; MA # ( Ǧ → Ğ ) LATIN CAPITAL LETTER G WITH CARON → LATIN CAPITAL LETTER G WITH BREVE # + +01F5 ; 0123 ; MA # ( ǵ → ģ ) LATIN SMALL LETTER G WITH ACUTE → LATIN SMALL LETTER G WITH CEDILLA # + +01E5 ; 0067 0335 ; MA # ( ǥ → g̵ ) LATIN SMALL LETTER G WITH STROKE → LATIN SMALL LETTER G, COMBINING SHORT STROKE OVERLAY # + +01E4 ; 0047 0335 ; MA # ( Ǥ → G̵ ) LATIN CAPITAL LETTER G WITH STROKE → LATIN CAPITAL LETTER G, COMBINING SHORT STROKE OVERLAY # + +0193 ; 0047 0027 ; MA # ( Ɠ → G' ) LATIN CAPITAL LETTER G WITH HOOK → LATIN CAPITAL LETTER G, APOSTROPHE # →Gʽ→ + +050D ; 0262 ; MA # ( ԍ → ɢ ) CYRILLIC SMALL LETTER KOMI SJE → LATIN LETTER SMALL CAPITAL G # +AB90 ; 0262 ; MA # ( ꮐ → ɢ ) CHEROKEE SMALL LETTER NAH → LATIN LETTER SMALL CAPITAL G # +13FB ; 0262 ; MA # ( ᏻ → ɢ ) CHEROKEE SMALL LETTER YU → LATIN LETTER SMALL CAPITAL G # + +FF48 ; 0068 ; MA # ( h → h ) FULLWIDTH LATIN SMALL LETTER H → LATIN SMALL LETTER H # →һ→ +210E ; 0068 ; MA # ( ℎ → h ) PLANCK CONSTANT → LATIN SMALL LETTER H # +1D421 ; 0068 ; MA # ( 𝐡 → h ) MATHEMATICAL BOLD SMALL H → LATIN SMALL LETTER H # +1D489 ; 0068 ; MA # ( 𝒉 → h ) MATHEMATICAL BOLD ITALIC SMALL H → LATIN SMALL LETTER H # +1D4BD ; 0068 ; MA # ( 𝒽 → h ) MATHEMATICAL SCRIPT SMALL H → LATIN SMALL LETTER H # +1D4F1 ; 0068 ; MA # ( 𝓱 → h ) MATHEMATICAL BOLD SCRIPT SMALL H → LATIN SMALL LETTER H # +1D525 ; 0068 ; MA # ( 𝔥 → h ) MATHEMATICAL FRAKTUR SMALL H → LATIN SMALL LETTER H # +1D559 ; 0068 ; MA # ( 𝕙 → h ) MATHEMATICAL DOUBLE-STRUCK SMALL H → LATIN SMALL LETTER H # +1D58D ; 0068 ; MA # ( 𝖍 → h ) MATHEMATICAL BOLD FRAKTUR SMALL H → LATIN SMALL LETTER H # +1D5C1 ; 0068 ; MA # ( 𝗁 → h ) MATHEMATICAL SANS-SERIF SMALL H → LATIN SMALL LETTER H # +1D5F5 ; 0068 ; MA # ( 𝗵 → h ) MATHEMATICAL SANS-SERIF BOLD SMALL H → LATIN SMALL LETTER H # +1D629 ; 0068 ; MA # ( 𝘩 → h ) MATHEMATICAL SANS-SERIF ITALIC SMALL H → LATIN SMALL LETTER H # +1D65D ; 0068 ; MA # ( 𝙝 → h ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H → LATIN SMALL LETTER H # +1D691 ; 0068 ; MA # ( 𝚑 → h ) MATHEMATICAL MONOSPACE SMALL H → LATIN SMALL LETTER H # +04BB ; 0068 ; MA # ( һ → h ) CYRILLIC SMALL LETTER SHHA → LATIN SMALL LETTER H # +0570 ; 0068 ; MA # ( հ → h ) ARMENIAN SMALL LETTER HO → LATIN SMALL LETTER H # +13C2 ; 0068 ; MA # ( Ꮒ → h ) CHEROKEE LETTER NI → LATIN SMALL LETTER H # + +FF28 ; 0048 ; MA # ( H → H ) FULLWIDTH LATIN CAPITAL LETTER H → LATIN CAPITAL LETTER H # →Η→ +210B ; 0048 ; MA # ( ℋ → H ) SCRIPT CAPITAL H → LATIN CAPITAL LETTER H # +210C ; 0048 ; MA # ( ℌ → H ) BLACK-LETTER CAPITAL H → LATIN CAPITAL LETTER H # +210D ; 0048 ; MA # ( ℍ → H ) DOUBLE-STRUCK CAPITAL H → LATIN CAPITAL LETTER H # +1D407 ; 0048 ; MA # ( 𝐇 → H ) MATHEMATICAL BOLD CAPITAL H → LATIN CAPITAL LETTER H # +1D43B ; 0048 ; MA # ( 𝐻 → H ) MATHEMATICAL ITALIC CAPITAL H → LATIN CAPITAL LETTER H # +1D46F ; 0048 ; MA # ( 𝑯 → H ) MATHEMATICAL BOLD ITALIC CAPITAL H → LATIN CAPITAL LETTER H # +1D4D7 ; 0048 ; MA # ( 𝓗 → H ) MATHEMATICAL BOLD SCRIPT CAPITAL H → LATIN CAPITAL LETTER H # +1D573 ; 0048 ; MA # ( 𝕳 → H ) MATHEMATICAL BOLD FRAKTUR CAPITAL H → LATIN CAPITAL LETTER H # +1D5A7 ; 0048 ; MA # ( 𝖧 → H ) MATHEMATICAL SANS-SERIF CAPITAL H → LATIN CAPITAL LETTER H # +1D5DB ; 0048 ; MA # ( 𝗛 → H ) MATHEMATICAL SANS-SERIF BOLD CAPITAL H → LATIN CAPITAL LETTER H # +1D60F ; 0048 ; MA # ( 𝘏 → H ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL H → LATIN CAPITAL LETTER H # +1D643 ; 0048 ; MA # ( 𝙃 → H ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H → LATIN CAPITAL LETTER H # +1D677 ; 0048 ; MA # ( 𝙷 → H ) MATHEMATICAL MONOSPACE CAPITAL H → LATIN CAPITAL LETTER H # +0397 ; 0048 ; MA # ( Η → H ) GREEK CAPITAL LETTER ETA → LATIN CAPITAL LETTER H # +1D6AE ; 0048 ; MA # ( 𝚮 → H ) MATHEMATICAL BOLD CAPITAL ETA → LATIN CAPITAL LETTER H # →Η→ +1D6E8 ; 0048 ; MA # ( 𝛨 → H ) MATHEMATICAL ITALIC CAPITAL ETA → LATIN CAPITAL LETTER H # →Η→ +1D722 ; 0048 ; MA # ( 𝜢 → H ) MATHEMATICAL BOLD ITALIC CAPITAL ETA → LATIN CAPITAL LETTER H # →𝑯→ +1D75C ; 0048 ; MA # ( 𝝜 → H ) MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA → LATIN CAPITAL LETTER H # →Η→ +1D796 ; 0048 ; MA # ( 𝞖 → H ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA → LATIN CAPITAL LETTER H # →Η→ +2C8E ; 0048 ; MA # ( Ⲏ → H ) COPTIC CAPITAL LETTER HATE → LATIN CAPITAL LETTER H # →Η→ +041D ; 0048 ; MA # ( Н → H ) CYRILLIC CAPITAL LETTER EN → LATIN CAPITAL LETTER H # +13BB ; 0048 ; MA # ( Ꮋ → H ) CHEROKEE LETTER MI → LATIN CAPITAL LETTER H # +157C ; 0048 ; MA # ( ᕼ → H ) CANADIAN SYLLABICS NUNAVUT H → LATIN CAPITAL LETTER H # +A4E7 ; 0048 ; MA # ( ꓧ → H ) LISU LETTER XA → LATIN CAPITAL LETTER H # +102CF ; 0048 ; MA # ( 𐋏 → H ) CARIAN LETTER E2 → LATIN CAPITAL LETTER H # + +1D78 ; 1D34 ; MA # ( ᵸ → ᴴ ) MODIFIER LETTER CYRILLIC EN → MODIFIER LETTER CAPITAL H # + +0266 ; 0068 0314 ; MA # ( ɦ → h̔ ) LATIN SMALL LETTER H WITH HOOK → LATIN SMALL LETTER H, COMBINING REVERSED COMMA ABOVE # +A695 ; 0068 0314 ; MA # ( ꚕ → h̔ ) CYRILLIC SMALL LETTER HWE → LATIN SMALL LETTER H, COMBINING REVERSED COMMA ABOVE # →ɦ→ +13F2 ; 0068 0314 ; MA # ( Ᏺ → h̔ ) CHEROKEE LETTER YO → LATIN SMALL LETTER H, COMBINING REVERSED COMMA ABOVE # + +2C67 ; 0048 0329 ; MA # ( Ⱨ → H̩ ) LATIN CAPITAL LETTER H WITH DESCENDER → LATIN CAPITAL LETTER H, COMBINING VERTICAL LINE BELOW # →Ң→→Н̩→ +04A2 ; 0048 0329 ; MA # ( Ң → H̩ ) CYRILLIC CAPITAL LETTER EN WITH DESCENDER → LATIN CAPITAL LETTER H, COMBINING VERTICAL LINE BELOW # →Н̩→ + +0127 ; 0068 0335 ; MA # ( ħ → h̵ ) LATIN SMALL LETTER H WITH STROKE → LATIN SMALL LETTER H, COMBINING SHORT STROKE OVERLAY # +210F ; 0068 0335 ; MA # ( ℏ → h̵ ) PLANCK CONSTANT OVER TWO PI → LATIN SMALL LETTER H, COMBINING SHORT STROKE OVERLAY # →ħ→ +045B ; 0068 0335 ; MA # ( ћ → h̵ ) CYRILLIC SMALL LETTER TSHE → LATIN SMALL LETTER H, COMBINING SHORT STROKE OVERLAY # →ħ→ + +0126 ; 0048 0335 ; MA # ( Ħ → H̵ ) LATIN CAPITAL LETTER H WITH STROKE → LATIN CAPITAL LETTER H, COMBINING SHORT STROKE OVERLAY # + +04C9 ; 0048 0326 ; MA # ( Ӊ → H̦ ) CYRILLIC CAPITAL LETTER EN WITH TAIL → LATIN CAPITAL LETTER H, COMBINING COMMA BELOW # →Н̡→ +04C7 ; 0048 0326 ; MA # ( Ӈ → H̦ ) CYRILLIC CAPITAL LETTER EN WITH HOOK → LATIN CAPITAL LETTER H, COMBINING COMMA BELOW # →Н̡→ + +043D ; 029C ; MA # ( н → ʜ ) CYRILLIC SMALL LETTER EN → LATIN LETTER SMALL CAPITAL H # +AB8B ; 029C ; MA # ( ꮋ → ʜ ) CHEROKEE SMALL LETTER MI → LATIN LETTER SMALL CAPITAL H # + +04A3 ; 029C 0329 ; MA # ( ң → ʜ̩ ) CYRILLIC SMALL LETTER EN WITH DESCENDER → LATIN LETTER SMALL CAPITAL H, COMBINING VERTICAL LINE BELOW # →н̩→ + +04CA ; 029C 0326 ; MA # ( ӊ → ʜ̦ ) CYRILLIC SMALL LETTER EN WITH TAIL → LATIN LETTER SMALL CAPITAL H, COMBINING COMMA BELOW # →н̡→ +04C8 ; 029C 0326 ; MA # ( ӈ → ʜ̦ ) CYRILLIC SMALL LETTER EN WITH HOOK → LATIN LETTER SMALL CAPITAL H, COMBINING COMMA BELOW # →н̡→ + +050A ; 01F6 ; MA # ( Ԋ → Ƕ ) CYRILLIC CAPITAL LETTER KOMI NJE → LATIN CAPITAL LETTER HWAIR # + +AB80 ; 2C76 ; MA # ( ꮀ → ⱶ ) CHEROKEE SMALL LETTER HO → LATIN SMALL LETTER HALF H # + +0370 ; 2C75 ; MA # ( Ͱ → Ⱶ ) GREEK CAPITAL LETTER HETA → LATIN CAPITAL LETTER HALF H # →Ꮀ→ +13A8 ; 2C75 ; MA # ( Ꭸ → Ⱶ ) CHEROKEE LETTER GE → LATIN CAPITAL LETTER HALF H # →Ͱ→→Ꮀ→ +13B0 ; 2C75 ; MA # ( Ꮀ → Ⱶ ) CHEROKEE LETTER HO → LATIN CAPITAL LETTER HALF H # +A6B1 ; 2C75 ; MA # ( ꚱ → Ⱶ ) BAMUM LETTER NDAA → LATIN CAPITAL LETTER HALF H # →Ͱ→→Ꮀ→ + +A795 ; A727 ; MA # ( ꞕ → ꜧ ) LATIN SMALL LETTER H WITH PALATAL HOOK → LATIN SMALL LETTER HENG # + +02DB ; 0069 ; MA #* ( ˛ → i ) OGONEK → LATIN SMALL LETTER I # →ͺ→→ι→→ι→ +2373 ; 0069 ; MA #* ( ⍳ → i ) APL FUNCTIONAL SYMBOL IOTA → LATIN SMALL LETTER I # →ι→ +FF49 ; 0069 ; MA # ( i → i ) FULLWIDTH LATIN SMALL LETTER I → LATIN SMALL LETTER I # →і→ +2170 ; 0069 ; MA # ( ⅰ → i ) SMALL ROMAN NUMERAL ONE → LATIN SMALL LETTER I # +2139 ; 0069 ; MA # ( ℹ → i ) INFORMATION SOURCE → LATIN SMALL LETTER I # +2148 ; 0069 ; MA # ( ⅈ → i ) DOUBLE-STRUCK ITALIC SMALL I → LATIN SMALL LETTER I # +1D422 ; 0069 ; MA # ( 𝐢 → i ) MATHEMATICAL BOLD SMALL I → LATIN SMALL LETTER I # +1D456 ; 0069 ; MA # ( 𝑖 → i ) MATHEMATICAL ITALIC SMALL I → LATIN SMALL LETTER I # +1D48A ; 0069 ; MA # ( 𝒊 → i ) MATHEMATICAL BOLD ITALIC SMALL I → LATIN SMALL LETTER I # +1D4BE ; 0069 ; MA # ( 𝒾 → i ) MATHEMATICAL SCRIPT SMALL I → LATIN SMALL LETTER I # +1D4F2 ; 0069 ; MA # ( 𝓲 → i ) MATHEMATICAL BOLD SCRIPT SMALL I → LATIN SMALL LETTER I # +1D526 ; 0069 ; MA # ( 𝔦 → i ) MATHEMATICAL FRAKTUR SMALL I → LATIN SMALL LETTER I # +1D55A ; 0069 ; MA # ( 𝕚 → i ) MATHEMATICAL DOUBLE-STRUCK SMALL I → LATIN SMALL LETTER I # +1D58E ; 0069 ; MA # ( 𝖎 → i ) MATHEMATICAL BOLD FRAKTUR SMALL I → LATIN SMALL LETTER I # +1D5C2 ; 0069 ; MA # ( 𝗂 → i ) MATHEMATICAL SANS-SERIF SMALL I → LATIN SMALL LETTER I # +1D5F6 ; 0069 ; MA # ( 𝗶 → i ) MATHEMATICAL SANS-SERIF BOLD SMALL I → LATIN SMALL LETTER I # +1D62A ; 0069 ; MA # ( 𝘪 → i ) MATHEMATICAL SANS-SERIF ITALIC SMALL I → LATIN SMALL LETTER I # +1D65E ; 0069 ; MA # ( 𝙞 → i ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I → LATIN SMALL LETTER I # +1D692 ; 0069 ; MA # ( 𝚒 → i ) MATHEMATICAL MONOSPACE SMALL I → LATIN SMALL LETTER I # +0131 ; 0069 ; MA # ( ı → i ) LATIN SMALL LETTER DOTLESS I → LATIN SMALL LETTER I # +1D6A4 ; 0069 ; MA # ( 𝚤 → i ) MATHEMATICAL ITALIC SMALL DOTLESS I → LATIN SMALL LETTER I # →ı→ +026A ; 0069 ; MA # ( ɪ → i ) LATIN LETTER SMALL CAPITAL I → LATIN SMALL LETTER I # →ı→ +0269 ; 0069 ; MA # ( ɩ → i ) LATIN SMALL LETTER IOTA → LATIN SMALL LETTER I # +03B9 ; 0069 ; MA # ( ι → i ) GREEK SMALL LETTER IOTA → LATIN SMALL LETTER I # +1FBE ; 0069 ; MA # ( ι → i ) GREEK PROSGEGRAMMENI → LATIN SMALL LETTER I # →ι→ +037A ; 0069 ; MA #* ( ͺ → i ) GREEK YPOGEGRAMMENI → LATIN SMALL LETTER I # →ι→→ι→ +1D6CA ; 0069 ; MA # ( 𝛊 → i ) MATHEMATICAL BOLD SMALL IOTA → LATIN SMALL LETTER I # →ι→ +1D704 ; 0069 ; MA # ( 𝜄 → i ) MATHEMATICAL ITALIC SMALL IOTA → LATIN SMALL LETTER I # →ι→ +1D73E ; 0069 ; MA # ( 𝜾 → i ) MATHEMATICAL BOLD ITALIC SMALL IOTA → LATIN SMALL LETTER I # →ι→ +1D778 ; 0069 ; MA # ( 𝝸 → i ) MATHEMATICAL SANS-SERIF BOLD SMALL IOTA → LATIN SMALL LETTER I # →ι→ +1D7B2 ; 0069 ; MA # ( 𝞲 → i ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA → LATIN SMALL LETTER I # →ι→ +0456 ; 0069 ; MA # ( і → i ) CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I → LATIN SMALL LETTER I # +A647 ; 0069 ; MA # ( ꙇ → i ) CYRILLIC SMALL LETTER IOTA → LATIN SMALL LETTER I # →ι→ +04CF ; 0069 ; MA # ( ӏ → i ) CYRILLIC SMALL LETTER PALOCHKA → LATIN SMALL LETTER I # →ı→ +AB75 ; 0069 ; MA # ( ꭵ → i ) CHEROKEE SMALL LETTER V → LATIN SMALL LETTER I # +13A5 ; 0069 ; MA # ( Ꭵ → i ) CHEROKEE LETTER V → LATIN SMALL LETTER I # +118C3 ; 0069 ; MA # ( 𑣃 → i ) WARANG CITI SMALL LETTER YU → LATIN SMALL LETTER I # →ι→ + +24DB ; 24BE ; MA #* ( ⓛ → Ⓘ ) CIRCLED LATIN SMALL LETTER L → CIRCLED LATIN CAPITAL LETTER I # + +2378 ; 0069 0332 ; MA #* ( ⍸ → i̲ ) APL FUNCTIONAL SYMBOL IOTA UNDERBAR → LATIN SMALL LETTER I, COMBINING LOW LINE # →ι̲→ + +01D0 ; 012D ; MA # ( ǐ → ĭ ) LATIN SMALL LETTER I WITH CARON → LATIN SMALL LETTER I WITH BREVE # + +01CF ; 012C ; MA # ( Ǐ → Ĭ ) LATIN CAPITAL LETTER I WITH CARON → LATIN CAPITAL LETTER I WITH BREVE # + +0268 ; 0069 0335 ; MA # ( ɨ → i̵ ) LATIN SMALL LETTER I WITH STROKE → LATIN SMALL LETTER I, COMBINING SHORT STROKE OVERLAY # +1D7B ; 0069 0335 ; MA # ( ᵻ → i̵ ) LATIN SMALL CAPITAL LETTER I WITH STROKE → LATIN SMALL LETTER I, COMBINING SHORT STROKE OVERLAY # →ɪ̵→ +1D7C ; 0069 0335 ; MA # ( ᵼ → i̵ ) LATIN SMALL LETTER IOTA WITH STROKE → LATIN SMALL LETTER I, COMBINING SHORT STROKE OVERLAY # →ɩ̵→ + +2171 ; 0069 0069 ; MA # ( ⅱ → ii ) SMALL ROMAN NUMERAL TWO → LATIN SMALL LETTER I, LATIN SMALL LETTER I # + +2172 ; 0069 0069 0069 ; MA # ( ⅲ → iii ) SMALL ROMAN NUMERAL THREE → LATIN SMALL LETTER I, LATIN SMALL LETTER I, LATIN SMALL LETTER I # + +0133 ; 0069 006A ; MA # ( ij → ij ) LATIN SMALL LIGATURE IJ → LATIN SMALL LETTER I, LATIN SMALL LETTER J # + +2173 ; 0069 0076 ; MA # ( ⅳ → iv ) SMALL ROMAN NUMERAL FOUR → LATIN SMALL LETTER I, LATIN SMALL LETTER V # + +2178 ; 0069 0078 ; MA # ( ⅸ → ix ) SMALL ROMAN NUMERAL NINE → LATIN SMALL LETTER I, LATIN SMALL LETTER X # + +FF4A ; 006A ; MA # ( j → j ) FULLWIDTH LATIN SMALL LETTER J → LATIN SMALL LETTER J # →ϳ→ +2149 ; 006A ; MA # ( ⅉ → j ) DOUBLE-STRUCK ITALIC SMALL J → LATIN SMALL LETTER J # +1D423 ; 006A ; MA # ( 𝐣 → j ) MATHEMATICAL BOLD SMALL J → LATIN SMALL LETTER J # +1D457 ; 006A ; MA # ( 𝑗 → j ) MATHEMATICAL ITALIC SMALL J → LATIN SMALL LETTER J # +1D48B ; 006A ; MA # ( 𝒋 → j ) MATHEMATICAL BOLD ITALIC SMALL J → LATIN SMALL LETTER J # +1D4BF ; 006A ; MA # ( 𝒿 → j ) MATHEMATICAL SCRIPT SMALL J → LATIN SMALL LETTER J # +1D4F3 ; 006A ; MA # ( 𝓳 → j ) MATHEMATICAL BOLD SCRIPT SMALL J → LATIN SMALL LETTER J # +1D527 ; 006A ; MA # ( 𝔧 → j ) MATHEMATICAL FRAKTUR SMALL J → LATIN SMALL LETTER J # +1D55B ; 006A ; MA # ( 𝕛 → j ) MATHEMATICAL DOUBLE-STRUCK SMALL J → LATIN SMALL LETTER J # +1D58F ; 006A ; MA # ( 𝖏 → j ) MATHEMATICAL BOLD FRAKTUR SMALL J → LATIN SMALL LETTER J # +1D5C3 ; 006A ; MA # ( 𝗃 → j ) MATHEMATICAL SANS-SERIF SMALL J → LATIN SMALL LETTER J # +1D5F7 ; 006A ; MA # ( 𝗷 → j ) MATHEMATICAL SANS-SERIF BOLD SMALL J → LATIN SMALL LETTER J # +1D62B ; 006A ; MA # ( 𝘫 → j ) MATHEMATICAL SANS-SERIF ITALIC SMALL J → LATIN SMALL LETTER J # +1D65F ; 006A ; MA # ( 𝙟 → j ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J → LATIN SMALL LETTER J # +1D693 ; 006A ; MA # ( 𝚓 → j ) MATHEMATICAL MONOSPACE SMALL J → LATIN SMALL LETTER J # +03F3 ; 006A ; MA # ( ϳ → j ) GREEK LETTER YOT → LATIN SMALL LETTER J # +0458 ; 006A ; MA # ( ј → j ) CYRILLIC SMALL LETTER JE → LATIN SMALL LETTER J # + +FF2A ; 004A ; MA # ( J → J ) FULLWIDTH LATIN CAPITAL LETTER J → LATIN CAPITAL LETTER J # →Ј→ +1D409 ; 004A ; MA # ( 𝐉 → J ) MATHEMATICAL BOLD CAPITAL J → LATIN CAPITAL LETTER J # +1D43D ; 004A ; MA # ( 𝐽 → J ) MATHEMATICAL ITALIC CAPITAL J → LATIN CAPITAL LETTER J # +1D471 ; 004A ; MA # ( 𝑱 → J ) MATHEMATICAL BOLD ITALIC CAPITAL J → LATIN CAPITAL LETTER J # +1D4A5 ; 004A ; MA # ( 𝒥 → J ) MATHEMATICAL SCRIPT CAPITAL J → LATIN CAPITAL LETTER J # +1D4D9 ; 004A ; MA # ( 𝓙 → J ) MATHEMATICAL BOLD SCRIPT CAPITAL J → LATIN CAPITAL LETTER J # +1D50D ; 004A ; MA # ( 𝔍 → J ) MATHEMATICAL FRAKTUR CAPITAL J → LATIN CAPITAL LETTER J # +1D541 ; 004A ; MA # ( 𝕁 → J ) MATHEMATICAL DOUBLE-STRUCK CAPITAL J → LATIN CAPITAL LETTER J # +1D575 ; 004A ; MA # ( 𝕵 → J ) MATHEMATICAL BOLD FRAKTUR CAPITAL J → LATIN CAPITAL LETTER J # +1D5A9 ; 004A ; MA # ( 𝖩 → J ) MATHEMATICAL SANS-SERIF CAPITAL J → LATIN CAPITAL LETTER J # +1D5DD ; 004A ; MA # ( 𝗝 → J ) MATHEMATICAL SANS-SERIF BOLD CAPITAL J → LATIN CAPITAL LETTER J # +1D611 ; 004A ; MA # ( 𝘑 → J ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL J → LATIN CAPITAL LETTER J # +1D645 ; 004A ; MA # ( 𝙅 → J ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J → LATIN CAPITAL LETTER J # +1D679 ; 004A ; MA # ( 𝙹 → J ) MATHEMATICAL MONOSPACE CAPITAL J → LATIN CAPITAL LETTER J # +A7B2 ; 004A ; MA # ( Ʝ → J ) LATIN CAPITAL LETTER J WITH CROSSED-TAIL → LATIN CAPITAL LETTER J # +037F ; 004A ; MA # ( Ϳ → J ) GREEK CAPITAL LETTER YOT → LATIN CAPITAL LETTER J # +0408 ; 004A ; MA # ( Ј → J ) CYRILLIC CAPITAL LETTER JE → LATIN CAPITAL LETTER J # +13AB ; 004A ; MA # ( Ꭻ → J ) CHEROKEE LETTER GU → LATIN CAPITAL LETTER J # +148D ; 004A ; MA # ( ᒍ → J ) CANADIAN SYLLABICS CO → LATIN CAPITAL LETTER J # +A4D9 ; 004A ; MA # ( ꓙ → J ) LISU LETTER JA → LATIN CAPITAL LETTER J # + +0249 ; 006A 0335 ; MA # ( ɉ → j̵ ) LATIN SMALL LETTER J WITH STROKE → LATIN SMALL LETTER J, COMBINING SHORT STROKE OVERLAY # + +0248 ; 004A 0335 ; MA # ( Ɉ → J̵ ) LATIN CAPITAL LETTER J WITH STROKE → LATIN CAPITAL LETTER J, COMBINING SHORT STROKE OVERLAY # + +1499 ; 004A 00B7 ; MA # ( ᒙ → J· ) CANADIAN SYLLABICS WEST-CREE CWO → LATIN CAPITAL LETTER J, MIDDLE DOT # →ᒍᐧ→ + +1D6A5 ; 0237 ; MA # ( 𝚥 → ȷ ) MATHEMATICAL ITALIC SMALL DOTLESS J → LATIN SMALL LETTER DOTLESS J # +0575 ; 0237 ; MA # ( յ → ȷ ) ARMENIAN SMALL LETTER YI → LATIN SMALL LETTER DOTLESS J # + +AB7B ; 1D0A ; MA # ( ꭻ → ᴊ ) CHEROKEE SMALL LETTER GU → LATIN LETTER SMALL CAPITAL J # + +1D424 ; 006B ; MA # ( 𝐤 → k ) MATHEMATICAL BOLD SMALL K → LATIN SMALL LETTER K # +1D458 ; 006B ; MA # ( 𝑘 → k ) MATHEMATICAL ITALIC SMALL K → LATIN SMALL LETTER K # +1D48C ; 006B ; MA # ( 𝒌 → k ) MATHEMATICAL BOLD ITALIC SMALL K → LATIN SMALL LETTER K # +1D4C0 ; 006B ; MA # ( 𝓀 → k ) MATHEMATICAL SCRIPT SMALL K → LATIN SMALL LETTER K # +1D4F4 ; 006B ; MA # ( 𝓴 → k ) MATHEMATICAL BOLD SCRIPT SMALL K → LATIN SMALL LETTER K # +1D528 ; 006B ; MA # ( 𝔨 → k ) MATHEMATICAL FRAKTUR SMALL K → LATIN SMALL LETTER K # +1D55C ; 006B ; MA # ( 𝕜 → k ) MATHEMATICAL DOUBLE-STRUCK SMALL K → LATIN SMALL LETTER K # +1D590 ; 006B ; MA # ( 𝖐 → k ) MATHEMATICAL BOLD FRAKTUR SMALL K → LATIN SMALL LETTER K # +1D5C4 ; 006B ; MA # ( 𝗄 → k ) MATHEMATICAL SANS-SERIF SMALL K → LATIN SMALL LETTER K # +1D5F8 ; 006B ; MA # ( 𝗸 → k ) MATHEMATICAL SANS-SERIF BOLD SMALL K → LATIN SMALL LETTER K # +1D62C ; 006B ; MA # ( 𝘬 → k ) MATHEMATICAL SANS-SERIF ITALIC SMALL K → LATIN SMALL LETTER K # +1D660 ; 006B ; MA # ( 𝙠 → k ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K → LATIN SMALL LETTER K # +1D694 ; 006B ; MA # ( 𝚔 → k ) MATHEMATICAL MONOSPACE SMALL K → LATIN SMALL LETTER K # + +212A ; 004B ; MA # ( K → K ) KELVIN SIGN → LATIN CAPITAL LETTER K # +FF2B ; 004B ; MA # ( K → K ) FULLWIDTH LATIN CAPITAL LETTER K → LATIN CAPITAL LETTER K # →Κ→ +1D40A ; 004B ; MA # ( 𝐊 → K ) MATHEMATICAL BOLD CAPITAL K → LATIN CAPITAL LETTER K # +1D43E ; 004B ; MA # ( 𝐾 → K ) MATHEMATICAL ITALIC CAPITAL K → LATIN CAPITAL LETTER K # +1D472 ; 004B ; MA # ( 𝑲 → K ) MATHEMATICAL BOLD ITALIC CAPITAL K → LATIN CAPITAL LETTER K # +1D4A6 ; 004B ; MA # ( 𝒦 → K ) MATHEMATICAL SCRIPT CAPITAL K → LATIN CAPITAL LETTER K # +1D4DA ; 004B ; MA # ( 𝓚 → K ) MATHEMATICAL BOLD SCRIPT CAPITAL K → LATIN CAPITAL LETTER K # +1D50E ; 004B ; MA # ( 𝔎 → K ) MATHEMATICAL FRAKTUR CAPITAL K → LATIN CAPITAL LETTER K # +1D542 ; 004B ; MA # ( 𝕂 → K ) MATHEMATICAL DOUBLE-STRUCK CAPITAL K → LATIN CAPITAL LETTER K # +1D576 ; 004B ; MA # ( 𝕶 → K ) MATHEMATICAL BOLD FRAKTUR CAPITAL K → LATIN CAPITAL LETTER K # +1D5AA ; 004B ; MA # ( 𝖪 → K ) MATHEMATICAL SANS-SERIF CAPITAL K → LATIN CAPITAL LETTER K # +1D5DE ; 004B ; MA # ( 𝗞 → K ) MATHEMATICAL SANS-SERIF BOLD CAPITAL K → LATIN CAPITAL LETTER K # +1D612 ; 004B ; MA # ( 𝘒 → K ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL K → LATIN CAPITAL LETTER K # +1D646 ; 004B ; MA # ( 𝙆 → K ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K → LATIN CAPITAL LETTER K # +1D67A ; 004B ; MA # ( 𝙺 → K ) MATHEMATICAL MONOSPACE CAPITAL K → LATIN CAPITAL LETTER K # +039A ; 004B ; MA # ( Κ → K ) GREEK CAPITAL LETTER KAPPA → LATIN CAPITAL LETTER K # +1D6B1 ; 004B ; MA # ( 𝚱 → K ) MATHEMATICAL BOLD CAPITAL KAPPA → LATIN CAPITAL LETTER K # →Κ→ +1D6EB ; 004B ; MA # ( 𝛫 → K ) MATHEMATICAL ITALIC CAPITAL KAPPA → LATIN CAPITAL LETTER K # →𝐾→ +1D725 ; 004B ; MA # ( 𝜥 → K ) MATHEMATICAL BOLD ITALIC CAPITAL KAPPA → LATIN CAPITAL LETTER K # →𝑲→ +1D75F ; 004B ; MA # ( 𝝟 → K ) MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA → LATIN CAPITAL LETTER K # →Κ→ +1D799 ; 004B ; MA # ( 𝞙 → K ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA → LATIN CAPITAL LETTER K # →Κ→ +2C94 ; 004B ; MA # ( Ⲕ → K ) COPTIC CAPITAL LETTER KAPA → LATIN CAPITAL LETTER K # →Κ→ +041A ; 004B ; MA # ( К → K ) CYRILLIC CAPITAL LETTER KA → LATIN CAPITAL LETTER K # +13E6 ; 004B ; MA # ( Ꮶ → K ) CHEROKEE LETTER TSO → LATIN CAPITAL LETTER K # +16D5 ; 004B ; MA # ( ᛕ → K ) RUNIC LETTER OPEN-P → LATIN CAPITAL LETTER K # +A4D7 ; 004B ; MA # ( ꓗ → K ) LISU LETTER KA → LATIN CAPITAL LETTER K # +10518 ; 004B ; MA # ( 𐔘 → K ) ELBASAN LETTER QE → LATIN CAPITAL LETTER K # + +0199 ; 006B 0314 ; MA # ( ƙ → k̔ ) LATIN SMALL LETTER K WITH HOOK → LATIN SMALL LETTER K, COMBINING REVERSED COMMA ABOVE # + +2C69 ; 004B 0329 ; MA # ( Ⱪ → K̩ ) LATIN CAPITAL LETTER K WITH DESCENDER → LATIN CAPITAL LETTER K, COMBINING VERTICAL LINE BELOW # →Қ→→К̩→ +049A ; 004B 0329 ; MA # ( Қ → K̩ ) CYRILLIC CAPITAL LETTER KA WITH DESCENDER → LATIN CAPITAL LETTER K, COMBINING VERTICAL LINE BELOW # →К̩→ + +20AD ; 004B 0335 ; MA #* ( ₭ → K̵ ) KIP SIGN → LATIN CAPITAL LETTER K, COMBINING SHORT STROKE OVERLAY # →K̶→ +A740 ; 004B 0335 ; MA # ( Ꝁ → K̵ ) LATIN CAPITAL LETTER K WITH STROKE → LATIN CAPITAL LETTER K, COMBINING SHORT STROKE OVERLAY # →Ҟ→→К̵→ +049E ; 004B 0335 ; MA # ( Ҟ → K̵ ) CYRILLIC CAPITAL LETTER KA WITH STROKE → LATIN CAPITAL LETTER K, COMBINING SHORT STROKE OVERLAY # →К̵→ + +0198 ; 004B 0027 ; MA # ( Ƙ → K' ) LATIN CAPITAL LETTER K WITH HOOK → LATIN CAPITAL LETTER K, APOSTROPHE # →Kʽ→ + +05C0 ; 006C ; MA #* ( ‎׀‎ → l ) HEBREW PUNCTUATION PASEQ → LATIN SMALL LETTER L # →|→ +007C ; 006C ; MA #* ( | → l ) VERTICAL LINE → LATIN SMALL LETTER L # +2223 ; 006C ; MA #* ( ∣ → l ) DIVIDES → LATIN SMALL LETTER L # →ǀ→ +23FD ; 006C ; MA #* ( ⏽ → l ) POWER ON SYMBOL → LATIN SMALL LETTER L # →I→ +FFE8 ; 006C ; MA #* ( │ → l ) HALFWIDTH FORMS LIGHT VERTICAL → LATIN SMALL LETTER L # →|→ +0031 ; 006C ; MA # ( 1 → l ) DIGIT ONE → LATIN SMALL LETTER L # +0661 ; 006C ; MA # ( ‎١‎ → l ) ARABIC-INDIC DIGIT ONE → LATIN SMALL LETTER L # →1→ +06F1 ; 006C ; MA # ( ۱ → l ) EXTENDED ARABIC-INDIC DIGIT ONE → LATIN SMALL LETTER L # →1→ +10320 ; 006C ; MA #* ( 𐌠 → l ) OLD ITALIC NUMERAL ONE → LATIN SMALL LETTER L # →𐌉→→I→ +1E8C7 ; 006C ; MA #* ( ‎𞣇‎ → l ) MENDE KIKAKUI DIGIT ONE → LATIN SMALL LETTER L # +1D7CF ; 006C ; MA # ( 𝟏 → l ) MATHEMATICAL BOLD DIGIT ONE → LATIN SMALL LETTER L # →1→ +1D7D9 ; 006C ; MA # ( 𝟙 → l ) MATHEMATICAL DOUBLE-STRUCK DIGIT ONE → LATIN SMALL LETTER L # →1→ +1D7E3 ; 006C ; MA # ( 𝟣 → l ) MATHEMATICAL SANS-SERIF DIGIT ONE → LATIN SMALL LETTER L # →1→ +1D7ED ; 006C ; MA # ( 𝟭 → l ) MATHEMATICAL SANS-SERIF BOLD DIGIT ONE → LATIN SMALL LETTER L # →1→ +1D7F7 ; 006C ; MA # ( 𝟷 → l ) MATHEMATICAL MONOSPACE DIGIT ONE → LATIN SMALL LETTER L # →1→ +1FBF1 ; 006C ; MA # ( 🯱 → l ) SEGMENTED DIGIT ONE → LATIN SMALL LETTER L # →1→ +0049 ; 006C ; MA # ( I → l ) LATIN CAPITAL LETTER I → LATIN SMALL LETTER L # +FF29 ; 006C ; MA # ( I → l ) FULLWIDTH LATIN CAPITAL LETTER I → LATIN SMALL LETTER L # →Ӏ→ +2160 ; 006C ; MA # ( Ⅰ → l ) ROMAN NUMERAL ONE → LATIN SMALL LETTER L # →Ӏ→ +2110 ; 006C ; MA # ( ℐ → l ) SCRIPT CAPITAL I → LATIN SMALL LETTER L # →I→ +2111 ; 006C ; MA # ( ℑ → l ) BLACK-LETTER CAPITAL I → LATIN SMALL LETTER L # →I→ +1D408 ; 006C ; MA # ( 𝐈 → l ) MATHEMATICAL BOLD CAPITAL I → LATIN SMALL LETTER L # →I→ +1D43C ; 006C ; MA # ( 𝐼 → l ) MATHEMATICAL ITALIC CAPITAL I → LATIN SMALL LETTER L # →I→ +1D470 ; 006C ; MA # ( 𝑰 → l ) MATHEMATICAL BOLD ITALIC CAPITAL I → LATIN SMALL LETTER L # →I→ +1D4D8 ; 006C ; MA # ( 𝓘 → l ) MATHEMATICAL BOLD SCRIPT CAPITAL I → LATIN SMALL LETTER L # →I→ +1D540 ; 006C ; MA # ( 𝕀 → l ) MATHEMATICAL DOUBLE-STRUCK CAPITAL I → LATIN SMALL LETTER L # →I→ +1D574 ; 006C ; MA # ( 𝕴 → l ) MATHEMATICAL BOLD FRAKTUR CAPITAL I → LATIN SMALL LETTER L # →I→ +1D5A8 ; 006C ; MA # ( 𝖨 → l ) MATHEMATICAL SANS-SERIF CAPITAL I → LATIN SMALL LETTER L # →I→ +1D5DC ; 006C ; MA # ( 𝗜 → l ) MATHEMATICAL SANS-SERIF BOLD CAPITAL I → LATIN SMALL LETTER L # →I→ +1D610 ; 006C ; MA # ( 𝘐 → l ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL I → LATIN SMALL LETTER L # →I→ +1D644 ; 006C ; MA # ( 𝙄 → l ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I → LATIN SMALL LETTER L # →I→ +1D678 ; 006C ; MA # ( 𝙸 → l ) MATHEMATICAL MONOSPACE CAPITAL I → LATIN SMALL LETTER L # →I→ +0196 ; 006C ; MA # ( Ɩ → l ) LATIN CAPITAL LETTER IOTA → LATIN SMALL LETTER L # +FF4C ; 006C ; MA # ( l → l ) FULLWIDTH LATIN SMALL LETTER L → LATIN SMALL LETTER L # →Ⅰ→→Ӏ→ +217C ; 006C ; MA # ( ⅼ → l ) SMALL ROMAN NUMERAL FIFTY → LATIN SMALL LETTER L # +2113 ; 006C ; MA # ( ℓ → l ) SCRIPT SMALL L → LATIN SMALL LETTER L # +1D425 ; 006C ; MA # ( 𝐥 → l ) MATHEMATICAL BOLD SMALL L → LATIN SMALL LETTER L # +1D459 ; 006C ; MA # ( 𝑙 → l ) MATHEMATICAL ITALIC SMALL L → LATIN SMALL LETTER L # +1D48D ; 006C ; MA # ( 𝒍 → l ) MATHEMATICAL BOLD ITALIC SMALL L → LATIN SMALL LETTER L # +1D4C1 ; 006C ; MA # ( 𝓁 → l ) MATHEMATICAL SCRIPT SMALL L → LATIN SMALL LETTER L # +1D4F5 ; 006C ; MA # ( 𝓵 → l ) MATHEMATICAL BOLD SCRIPT SMALL L → LATIN SMALL LETTER L # +1D529 ; 006C ; MA # ( 𝔩 → l ) MATHEMATICAL FRAKTUR SMALL L → LATIN SMALL LETTER L # +1D55D ; 006C ; MA # ( 𝕝 → l ) MATHEMATICAL DOUBLE-STRUCK SMALL L → LATIN SMALL LETTER L # +1D591 ; 006C ; MA # ( 𝖑 → l ) MATHEMATICAL BOLD FRAKTUR SMALL L → LATIN SMALL LETTER L # +1D5C5 ; 006C ; MA # ( 𝗅 → l ) MATHEMATICAL SANS-SERIF SMALL L → LATIN SMALL LETTER L # +1D5F9 ; 006C ; MA # ( 𝗹 → l ) MATHEMATICAL SANS-SERIF BOLD SMALL L → LATIN SMALL LETTER L # +1D62D ; 006C ; MA # ( 𝘭 → l ) MATHEMATICAL SANS-SERIF ITALIC SMALL L → LATIN SMALL LETTER L # +1D661 ; 006C ; MA # ( 𝙡 → l ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L → LATIN SMALL LETTER L # +1D695 ; 006C ; MA # ( 𝚕 → l ) MATHEMATICAL MONOSPACE SMALL L → LATIN SMALL LETTER L # +01C0 ; 006C ; MA # ( ǀ → l ) LATIN LETTER DENTAL CLICK → LATIN SMALL LETTER L # +0399 ; 006C ; MA # ( Ι → l ) GREEK CAPITAL LETTER IOTA → LATIN SMALL LETTER L # +1D6B0 ; 006C ; MA # ( 𝚰 → l ) MATHEMATICAL BOLD CAPITAL IOTA → LATIN SMALL LETTER L # →Ι→ +1D6EA ; 006C ; MA # ( 𝛪 → l ) MATHEMATICAL ITALIC CAPITAL IOTA → LATIN SMALL LETTER L # →Ι→ +1D724 ; 006C ; MA # ( 𝜤 → l ) MATHEMATICAL BOLD ITALIC CAPITAL IOTA → LATIN SMALL LETTER L # →Ι→ +1D75E ; 006C ; MA # ( 𝝞 → l ) MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA → LATIN SMALL LETTER L # →Ι→ +1D798 ; 006C ; MA # ( 𝞘 → l ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA → LATIN SMALL LETTER L # →Ι→ +2C92 ; 006C ; MA # ( Ⲓ → l ) COPTIC CAPITAL LETTER IAUDA → LATIN SMALL LETTER L # →Ӏ→ +0406 ; 006C ; MA # ( І → l ) CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I → LATIN SMALL LETTER L # +04C0 ; 006C ; MA # ( Ӏ → l ) CYRILLIC LETTER PALOCHKA → LATIN SMALL LETTER L # +05D5 ; 006C ; MA # ( ‎ו‎ → l ) HEBREW LETTER VAV → LATIN SMALL LETTER L # +05DF ; 006C ; MA # ( ‎ן‎ → l ) HEBREW LETTER FINAL NUN → LATIN SMALL LETTER L # +0627 ; 006C ; MA # ( ‎ا‎ → l ) ARABIC LETTER ALEF → LATIN SMALL LETTER L # →1→ +1EE00 ; 006C ; MA # ( ‎𞸀‎ → l ) ARABIC MATHEMATICAL ALEF → LATIN SMALL LETTER L # →‎ا‎→→1→ +1EE80 ; 006C ; MA # ( ‎𞺀‎ → l ) ARABIC MATHEMATICAL LOOPED ALEF → LATIN SMALL LETTER L # →‎ا‎→→1→ +FE8E ; 006C ; MA # ( ‎ﺎ‎ → l ) ARABIC LETTER ALEF FINAL FORM → LATIN SMALL LETTER L # →‎ا‎→→1→ +FE8D ; 006C ; MA # ( ‎ﺍ‎ → l ) ARABIC LETTER ALEF ISOLATED FORM → LATIN SMALL LETTER L # →‎ا‎→→1→ +07CA ; 006C ; MA # ( ‎ߊ‎ → l ) NKO LETTER A → LATIN SMALL LETTER L # →∣→→ǀ→ +2D4F ; 006C ; MA # ( ⵏ → l ) TIFINAGH LETTER YAN → LATIN SMALL LETTER L # →Ӏ→ +16C1 ; 006C ; MA # ( ᛁ → l ) RUNIC LETTER ISAZ IS ISS I → LATIN SMALL LETTER L # →I→ +A4F2 ; 006C ; MA # ( ꓲ → l ) LISU LETTER I → LATIN SMALL LETTER L # →I→ +16F28 ; 006C ; MA # ( 𖼨 → l ) MIAO LETTER GHA → LATIN SMALL LETTER L # →I→ +1028A ; 006C ; MA # ( 𐊊 → l ) LYCIAN LETTER J → LATIN SMALL LETTER L # →I→ +10309 ; 006C ; MA # ( 𐌉 → l ) OLD ITALIC LETTER I → LATIN SMALL LETTER L # →I→ + +1D22A ; 004C ; MA #* ( 𝈪 → L ) GREEK INSTRUMENTAL NOTATION SYMBOL-23 → LATIN CAPITAL LETTER L # +216C ; 004C ; MA # ( Ⅼ → L ) ROMAN NUMERAL FIFTY → LATIN CAPITAL LETTER L # +2112 ; 004C ; MA # ( ℒ → L ) SCRIPT CAPITAL L → LATIN CAPITAL LETTER L # +1D40B ; 004C ; MA # ( 𝐋 → L ) MATHEMATICAL BOLD CAPITAL L → LATIN CAPITAL LETTER L # +1D43F ; 004C ; MA # ( 𝐿 → L ) MATHEMATICAL ITALIC CAPITAL L → LATIN CAPITAL LETTER L # +1D473 ; 004C ; MA # ( 𝑳 → L ) MATHEMATICAL BOLD ITALIC CAPITAL L → LATIN CAPITAL LETTER L # +1D4DB ; 004C ; MA # ( 𝓛 → L ) MATHEMATICAL BOLD SCRIPT CAPITAL L → LATIN CAPITAL LETTER L # +1D50F ; 004C ; MA # ( 𝔏 → L ) MATHEMATICAL FRAKTUR CAPITAL L → LATIN CAPITAL LETTER L # +1D543 ; 004C ; MA # ( 𝕃 → L ) MATHEMATICAL DOUBLE-STRUCK CAPITAL L → LATIN CAPITAL LETTER L # +1D577 ; 004C ; MA # ( 𝕷 → L ) MATHEMATICAL BOLD FRAKTUR CAPITAL L → LATIN CAPITAL LETTER L # +1D5AB ; 004C ; MA # ( 𝖫 → L ) MATHEMATICAL SANS-SERIF CAPITAL L → LATIN CAPITAL LETTER L # +1D5DF ; 004C ; MA # ( 𝗟 → L ) MATHEMATICAL SANS-SERIF BOLD CAPITAL L → LATIN CAPITAL LETTER L # +1D613 ; 004C ; MA # ( 𝘓 → L ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL L → LATIN CAPITAL LETTER L # +1D647 ; 004C ; MA # ( 𝙇 → L ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L → LATIN CAPITAL LETTER L # +1D67B ; 004C ; MA # ( 𝙻 → L ) MATHEMATICAL MONOSPACE CAPITAL L → LATIN CAPITAL LETTER L # +2CD0 ; 004C ; MA # ( Ⳑ → L ) COPTIC CAPITAL LETTER L-SHAPED HA → LATIN CAPITAL LETTER L # +13DE ; 004C ; MA # ( Ꮮ → L ) CHEROKEE LETTER TLE → LATIN CAPITAL LETTER L # +14AA ; 004C ; MA # ( ᒪ → L ) CANADIAN SYLLABICS MA → LATIN CAPITAL LETTER L # +A4E1 ; 004C ; MA # ( ꓡ → L ) LISU LETTER LA → LATIN CAPITAL LETTER L # +16F16 ; 004C ; MA # ( 𖼖 → L ) MIAO LETTER LA → LATIN CAPITAL LETTER L # +118A3 ; 004C ; MA # ( 𑢣 → L ) WARANG CITI CAPITAL LETTER YU → LATIN CAPITAL LETTER L # +118B2 ; 004C ; MA # ( 𑢲 → L ) WARANG CITI CAPITAL LETTER TTE → LATIN CAPITAL LETTER L # +1041B ; 004C ; MA # ( 𐐛 → L ) DESERET CAPITAL LETTER ETH → LATIN CAPITAL LETTER L # +10526 ; 004C ; MA # ( 𐔦 → L ) ELBASAN LETTER GHAMMA → LATIN CAPITAL LETTER L # + +FD3C ; 006C 030B ; MA # ( ‎ﴼ‎ → l̋ ) ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM → LATIN SMALL LETTER L, COMBINING DOUBLE ACUTE ACCENT # →‎اً‎→ +FD3D ; 006C 030B ; MA # ( ‎ﴽ‎ → l̋ ) ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM → LATIN SMALL LETTER L, COMBINING DOUBLE ACUTE ACCENT # →‎اً‎→ + +0142 ; 006C 0338 ; MA # ( ł → l̸ ) LATIN SMALL LETTER L WITH STROKE → LATIN SMALL LETTER L, COMBINING LONG SOLIDUS OVERLAY # →l̷→ + +0141 ; 004C 0338 ; MA # ( Ł → L̸ ) LATIN CAPITAL LETTER L WITH STROKE → LATIN CAPITAL LETTER L, COMBINING LONG SOLIDUS OVERLAY # →L̷→ + +026D ; 006C 0328 ; MA # ( ɭ → l̨ ) LATIN SMALL LETTER L WITH RETROFLEX HOOK → LATIN SMALL LETTER L, COMBINING OGONEK # →l̢→ + +0197 ; 006C 0335 ; MA # ( Ɨ → l̵ ) LATIN CAPITAL LETTER I WITH STROKE → LATIN SMALL LETTER L, COMBINING SHORT STROKE OVERLAY # →ƚ→ +019A ; 006C 0335 ; MA # ( ƚ → l̵ ) LATIN SMALL LETTER L WITH BAR → LATIN SMALL LETTER L, COMBINING SHORT STROKE OVERLAY # + +026B ; 006C 0334 ; MA # ( ɫ → l̴ ) LATIN SMALL LETTER L WITH MIDDLE TILDE → LATIN SMALL LETTER L, COMBINING TILDE OVERLAY # + +0625 ; 006C 0655 ; MA # ( ‎إ‎ → lٕ ) ARABIC LETTER ALEF WITH HAMZA BELOW → LATIN SMALL LETTER L, ARABIC HAMZA BELOW # →‎ٳ‎→→‎اٟ‎→ +FE88 ; 006C 0655 ; MA # ( ‎ﺈ‎ → lٕ ) ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM → LATIN SMALL LETTER L, ARABIC HAMZA BELOW # →‎إ‎→→‎ٳ‎→→‎اٟ‎→ +FE87 ; 006C 0655 ; MA # ( ‎ﺇ‎ → lٕ ) ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM → LATIN SMALL LETTER L, ARABIC HAMZA BELOW # →‎إ‎→→‎ٳ‎→→‎اٟ‎→ +0673 ; 006C 0655 ; MA # ( ‎ٳ‎ → lٕ ) ARABIC LETTER ALEF WITH WAVY HAMZA BELOW → LATIN SMALL LETTER L, ARABIC HAMZA BELOW # →‎اٟ‎→ + +0140 ; 006C 00B7 ; MA # ( ŀ → l· ) LATIN SMALL LETTER L WITH MIDDLE DOT → LATIN SMALL LETTER L, MIDDLE DOT # +013F ; 006C 00B7 ; MA # ( Ŀ → l· ) LATIN CAPITAL LETTER L WITH MIDDLE DOT → LATIN SMALL LETTER L, MIDDLE DOT # →L·→→ᒪ·→→ᒪᐧ→→ᒷ→→1ᐧ→ +14B7 ; 006C 00B7 ; MA # ( ᒷ → l· ) CANADIAN SYLLABICS WEST-CREE MWA → LATIN SMALL LETTER L, MIDDLE DOT # →1ᐧ→ + +1F102 ; 006C 002C ; MA #* ( 🄂 → l, ) DIGIT ONE COMMA → LATIN SMALL LETTER L, COMMA # →1,→ + +2488 ; 006C 002E ; MA #* ( ⒈ → l. ) DIGIT ONE FULL STOP → LATIN SMALL LETTER L, FULL STOP # →1.→ + +05F1 ; 006C 0027 ; MA # ( ‎ױ‎ → l' ) HEBREW LIGATURE YIDDISH VAV YOD → LATIN SMALL LETTER L, APOSTROPHE # →‎וי‎→ + +2493 ; 006C 0032 002E ; MA #* ( ⒓ → l2. ) NUMBER TWELVE FULL STOP → LATIN SMALL LETTER L, DIGIT TWO, FULL STOP # →12.→ + +33EB ; 006C 0032 65E5 ; MA #* ( ㏫ → l2日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE → LATIN SMALL LETTER L, DIGIT TWO, CJK UNIFIED IDEOGRAPH-65E5 # →12日→ + +32CB ; 006C 0032 6708 ; MA #* ( ㋋ → l2月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER → LATIN SMALL LETTER L, DIGIT TWO, CJK UNIFIED IDEOGRAPH-6708 # →12月→ + +3364 ; 006C 0032 70B9 ; MA #* ( ㍤ → l2点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE → LATIN SMALL LETTER L, DIGIT TWO, CJK UNIFIED IDEOGRAPH-70B9 # →12点→ + +2494 ; 006C 0033 002E ; MA #* ( ⒔ → l3. ) NUMBER THIRTEEN FULL STOP → LATIN SMALL LETTER L, DIGIT THREE, FULL STOP # →13.→ + +33EC ; 006C 0033 65E5 ; MA #* ( ㏬ → l3日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN → LATIN SMALL LETTER L, DIGIT THREE, CJK UNIFIED IDEOGRAPH-65E5 # →13日→ + +3365 ; 006C 0033 70B9 ; MA #* ( ㍥ → l3点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN → LATIN SMALL LETTER L, DIGIT THREE, CJK UNIFIED IDEOGRAPH-70B9 # →13点→ + +2495 ; 006C 0034 002E ; MA #* ( ⒕ → l4. ) NUMBER FOURTEEN FULL STOP → LATIN SMALL LETTER L, DIGIT FOUR, FULL STOP # →14.→ + +33ED ; 006C 0034 65E5 ; MA #* ( ㏭ → l4日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN → LATIN SMALL LETTER L, DIGIT FOUR, CJK UNIFIED IDEOGRAPH-65E5 # →14日→ + +3366 ; 006C 0034 70B9 ; MA #* ( ㍦ → l4点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN → LATIN SMALL LETTER L, DIGIT FOUR, CJK UNIFIED IDEOGRAPH-70B9 # →14点→ + +2496 ; 006C 0035 002E ; MA #* ( ⒖ → l5. ) NUMBER FIFTEEN FULL STOP → LATIN SMALL LETTER L, DIGIT FIVE, FULL STOP # →15.→ + +33EE ; 006C 0035 65E5 ; MA #* ( ㏮ → l5日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN → LATIN SMALL LETTER L, DIGIT FIVE, CJK UNIFIED IDEOGRAPH-65E5 # →15日→ + +3367 ; 006C 0035 70B9 ; MA #* ( ㍧ → l5点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN → LATIN SMALL LETTER L, DIGIT FIVE, CJK UNIFIED IDEOGRAPH-70B9 # →15点→ + +2497 ; 006C 0036 002E ; MA #* ( ⒗ → l6. ) NUMBER SIXTEEN FULL STOP → LATIN SMALL LETTER L, DIGIT SIX, FULL STOP # →16.→ + +33EF ; 006C 0036 65E5 ; MA #* ( ㏯ → l6日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN → LATIN SMALL LETTER L, DIGIT SIX, CJK UNIFIED IDEOGRAPH-65E5 # →16日→ + +3368 ; 006C 0036 70B9 ; MA #* ( ㍨ → l6点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN → LATIN SMALL LETTER L, DIGIT SIX, CJK UNIFIED IDEOGRAPH-70B9 # →16点→ + +2498 ; 006C 0037 002E ; MA #* ( ⒘ → l7. ) NUMBER SEVENTEEN FULL STOP → LATIN SMALL LETTER L, DIGIT SEVEN, FULL STOP # →17.→ + +33F0 ; 006C 0037 65E5 ; MA #* ( ㏰ → l7日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN → LATIN SMALL LETTER L, DIGIT SEVEN, CJK UNIFIED IDEOGRAPH-65E5 # →17日→ + +3369 ; 006C 0037 70B9 ; MA #* ( ㍩ → l7点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN → LATIN SMALL LETTER L, DIGIT SEVEN, CJK UNIFIED IDEOGRAPH-70B9 # →17点→ + +2499 ; 006C 0038 002E ; MA #* ( ⒙ → l8. ) NUMBER EIGHTEEN FULL STOP → LATIN SMALL LETTER L, DIGIT EIGHT, FULL STOP # →18.→ + +33F1 ; 006C 0038 65E5 ; MA #* ( ㏱ → l8日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN → LATIN SMALL LETTER L, DIGIT EIGHT, CJK UNIFIED IDEOGRAPH-65E5 # →18日→ + +336A ; 006C 0038 70B9 ; MA #* ( ㍪ → l8点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN → LATIN SMALL LETTER L, DIGIT EIGHT, CJK UNIFIED IDEOGRAPH-70B9 # →18点→ + +249A ; 006C 0039 002E ; MA #* ( ⒚ → l9. ) NUMBER NINETEEN FULL STOP → LATIN SMALL LETTER L, DIGIT NINE, FULL STOP # →19.→ + +33F2 ; 006C 0039 65E5 ; MA #* ( ㏲ → l9日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN → LATIN SMALL LETTER L, DIGIT NINE, CJK UNIFIED IDEOGRAPH-65E5 # →19日→ + +336B ; 006C 0039 70B9 ; MA #* ( ㍫ → l9点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN → LATIN SMALL LETTER L, DIGIT NINE, CJK UNIFIED IDEOGRAPH-70B9 # →19点→ + +01C9 ; 006C 006A ; MA # ( lj → lj ) LATIN SMALL LETTER LJ → LATIN SMALL LETTER L, LATIN SMALL LETTER J # + +0132 ; 006C 004A ; MA # ( IJ → lJ ) LATIN CAPITAL LIGATURE IJ → LATIN SMALL LETTER L, LATIN CAPITAL LETTER J # →IJ→ + +01C8 ; 004C 006A ; MA # ( Lj → Lj ) LATIN CAPITAL LETTER L WITH SMALL LETTER J → LATIN CAPITAL LETTER L, LATIN SMALL LETTER J # + +01C7 ; 004C 004A ; MA # ( LJ → LJ ) LATIN CAPITAL LETTER LJ → LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER J # + +2016 ; 006C 006C ; MA #* ( ‖ → ll ) DOUBLE VERTICAL LINE → LATIN SMALL LETTER L, LATIN SMALL LETTER L # →∥→→||→ +2225 ; 006C 006C ; MA #* ( ∥ → ll ) PARALLEL TO → LATIN SMALL LETTER L, LATIN SMALL LETTER L # →||→ +2161 ; 006C 006C ; MA # ( Ⅱ → ll ) ROMAN NUMERAL TWO → LATIN SMALL LETTER L, LATIN SMALL LETTER L # →II→ +01C1 ; 006C 006C ; MA # ( ǁ → ll ) LATIN LETTER LATERAL CLICK → LATIN SMALL LETTER L, LATIN SMALL LETTER L # →‖→→∥→→||→ +05F0 ; 006C 006C ; MA # ( ‎װ‎ → ll ) HEBREW LIGATURE YIDDISH DOUBLE VAV → LATIN SMALL LETTER L, LATIN SMALL LETTER L # →‎וו‎→ + +10199 ; 006C 0335 006C 0335 ; MA #* ( 𐆙 → l̵l̵ ) ROMAN DUPONDIUS SIGN → LATIN SMALL LETTER L, COMBINING SHORT STROKE OVERLAY, LATIN SMALL LETTER L, COMBINING SHORT STROKE OVERLAY # →I̶I̶→ + +2492 ; 006C 006C 002E ; MA #* ( ⒒ → ll. ) NUMBER ELEVEN FULL STOP → LATIN SMALL LETTER L, LATIN SMALL LETTER L, FULL STOP # →11.→ + +2162 ; 006C 006C 006C ; MA # ( Ⅲ → lll ) ROMAN NUMERAL THREE → LATIN SMALL LETTER L, LATIN SMALL LETTER L, LATIN SMALL LETTER L # →III→ + +10198 ; 006C 0335 006C 0335 0053 0335 ; MA #* ( 𐆘 → l̵l̵S̵ ) ROMAN SESTERTIUS SIGN → LATIN SMALL LETTER L, COMBINING SHORT STROKE OVERLAY, LATIN SMALL LETTER L, COMBINING SHORT STROKE OVERLAY, LATIN CAPITAL LETTER S, COMBINING SHORT STROKE OVERLAY # →I̶I̶S̶→ + +33EA ; 006C 006C 65E5 ; MA #* ( ㏪ → ll日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN → LATIN SMALL LETTER L, LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-65E5 # →11日→ + +32CA ; 006C 006C 6708 ; MA #* ( ㋊ → ll月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER → LATIN SMALL LETTER L, LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-6708 # →11月→ + +3363 ; 006C 006C 70B9 ; MA #* ( ㍣ → ll点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN → LATIN SMALL LETTER L, LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-70B9 # →11点→ + +042E ; 006C 004F ; MA # ( Ю → lO ) CYRILLIC CAPITAL LETTER YU → LATIN SMALL LETTER L, LATIN CAPITAL LETTER O # →IO→ + +2491 ; 006C 004F 002E ; MA #* ( ⒑ → lO. ) NUMBER TEN FULL STOP → LATIN SMALL LETTER L, LATIN CAPITAL LETTER O, FULL STOP # →10.→ + +33E9 ; 006C 004F 65E5 ; MA #* ( ㏩ → lO日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN → LATIN SMALL LETTER L, LATIN CAPITAL LETTER O, CJK UNIFIED IDEOGRAPH-65E5 # →10日→ + +32C9 ; 006C 004F 6708 ; MA #* ( ㋉ → lO月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER → LATIN SMALL LETTER L, LATIN CAPITAL LETTER O, CJK UNIFIED IDEOGRAPH-6708 # →10月→ + +3362 ; 006C 004F 70B9 ; MA #* ( ㍢ → lO点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN → LATIN SMALL LETTER L, LATIN CAPITAL LETTER O, CJK UNIFIED IDEOGRAPH-70B9 # →10点→ + +02AA ; 006C 0073 ; MA # ( ʪ → ls ) LATIN SMALL LETTER LS DIGRAPH → LATIN SMALL LETTER L, LATIN SMALL LETTER S # + +20B6 ; 006C 0074 ; MA #* ( ₶ → lt ) LIVRE TOURNOIS SIGN → LATIN SMALL LETTER L, LATIN SMALL LETTER T # + +2163 ; 006C 0056 ; MA # ( Ⅳ → lV ) ROMAN NUMERAL FOUR → LATIN SMALL LETTER L, LATIN CAPITAL LETTER V # →IV→ + +2168 ; 006C 0058 ; MA # ( Ⅸ → lX ) ROMAN NUMERAL NINE → LATIN SMALL LETTER L, LATIN CAPITAL LETTER X # →IX→ + +026E ; 006C 021D ; MA # ( ɮ → lȝ ) LATIN SMALL LETTER LEZH → LATIN SMALL LETTER L, LATIN SMALL LETTER YOGH # →lʒ→ + +02AB ; 006C 007A ; MA # ( ʫ → lz ) LATIN SMALL LETTER LZ DIGRAPH → LATIN SMALL LETTER L, LATIN SMALL LETTER Z # + +0675 ; 006C 0674 ; MA # ( ‎ٵ‎ → ‎lٴ‎ ) ARABIC LETTER HIGH HAMZA ALEF → LATIN SMALL LETTER L, ARABIC LETTER HIGH HAMZA # →‎اٴ‎→ +0623 ; 006C 0674 ; MA # ( ‎أ‎ → ‎lٴ‎ ) ARABIC LETTER ALEF WITH HAMZA ABOVE → LATIN SMALL LETTER L, ARABIC LETTER HIGH HAMZA # →‎ٵ‎→→‎اٴ‎→ +FE84 ; 006C 0674 ; MA # ( ‎ﺄ‎ → ‎lٴ‎ ) ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM → LATIN SMALL LETTER L, ARABIC LETTER HIGH HAMZA # →‎أ‎→→‎ٵ‎→→‎اٴ‎→ +FE83 ; 006C 0674 ; MA # ( ‎ﺃ‎ → ‎lٴ‎ ) ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM → LATIN SMALL LETTER L, ARABIC LETTER HIGH HAMZA # →‎ٵ‎→→‎اٴ‎→ +0672 ; 006C 0674 ; MA # ( ‎ٲ‎ → ‎lٴ‎ ) ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE → LATIN SMALL LETTER L, ARABIC LETTER HIGH HAMZA # →‎أ‎→→‎ٵ‎→→‎اٴ‎→ + +FDF3 ; 006C 0643 0628 0631 ; MA # ( ‎ﷳ‎ → ‎lكبر‎ ) ARABIC LIGATURE AKBAR ISOLATED FORM → LATIN SMALL LETTER L, ARABIC LETTER KAF, ARABIC LETTER BEH, ARABIC LETTER REH # →‎اكبر‎→ + +FDF2 ; 006C 0644 0644 0651 0670 006F ; MA # ( ‎ﷲ‎ → ‎lللّٰo‎ ) ARABIC LIGATURE ALLAH ISOLATED FORM → LATIN SMALL LETTER L, ARABIC LETTER LAM, ARABIC LETTER LAM, ARABIC SHADDA, ARABIC LETTER SUPERSCRIPT ALEF, LATIN SMALL LETTER O # →‎اللّٰه‎→ + +33E0 ; 006C 65E5 ; MA #* ( ㏠ → l日 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE → LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-65E5 # →1日→ + +32C0 ; 006C 6708 ; MA #* ( ㋀ → l月 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY → LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-6708 # →1月→ + +3359 ; 006C 70B9 ; MA #* ( ㍙ → l点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE → LATIN SMALL LETTER L, CJK UNIFIED IDEOGRAPH-70B9 # →1点→ + +2CD1 ; 029F ; MA # ( ⳑ → ʟ ) COPTIC SMALL LETTER L-SHAPED HA → LATIN LETTER SMALL CAPITAL L # +ABAE ; 029F ; MA # ( ꮮ → ʟ ) CHEROKEE SMALL LETTER TLE → LATIN LETTER SMALL CAPITAL L # +10443 ; 029F ; MA # ( 𐑃 → ʟ ) DESERET SMALL LETTER ETH → LATIN LETTER SMALL CAPITAL L # + +FF2D ; 004D ; MA # ( M → M ) FULLWIDTH LATIN CAPITAL LETTER M → LATIN CAPITAL LETTER M # →Μ→ +216F ; 004D ; MA # ( Ⅿ → M ) ROMAN NUMERAL ONE THOUSAND → LATIN CAPITAL LETTER M # +2133 ; 004D ; MA # ( ℳ → M ) SCRIPT CAPITAL M → LATIN CAPITAL LETTER M # +1D40C ; 004D ; MA # ( 𝐌 → M ) MATHEMATICAL BOLD CAPITAL M → LATIN CAPITAL LETTER M # +1D440 ; 004D ; MA # ( 𝑀 → M ) MATHEMATICAL ITALIC CAPITAL M → LATIN CAPITAL LETTER M # +1D474 ; 004D ; MA # ( 𝑴 → M ) MATHEMATICAL BOLD ITALIC CAPITAL M → LATIN CAPITAL LETTER M # +1D4DC ; 004D ; MA # ( 𝓜 → M ) MATHEMATICAL BOLD SCRIPT CAPITAL M → LATIN CAPITAL LETTER M # +1D510 ; 004D ; MA # ( 𝔐 → M ) MATHEMATICAL FRAKTUR CAPITAL M → LATIN CAPITAL LETTER M # +1D544 ; 004D ; MA # ( 𝕄 → M ) MATHEMATICAL DOUBLE-STRUCK CAPITAL M → LATIN CAPITAL LETTER M # +1D578 ; 004D ; MA # ( 𝕸 → M ) MATHEMATICAL BOLD FRAKTUR CAPITAL M → LATIN CAPITAL LETTER M # +1D5AC ; 004D ; MA # ( 𝖬 → M ) MATHEMATICAL SANS-SERIF CAPITAL M → LATIN CAPITAL LETTER M # +1D5E0 ; 004D ; MA # ( 𝗠 → M ) MATHEMATICAL SANS-SERIF BOLD CAPITAL M → LATIN CAPITAL LETTER M # +1D614 ; 004D ; MA # ( 𝘔 → M ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL M → LATIN CAPITAL LETTER M # +1D648 ; 004D ; MA # ( 𝙈 → M ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M → LATIN CAPITAL LETTER M # +1D67C ; 004D ; MA # ( 𝙼 → M ) MATHEMATICAL MONOSPACE CAPITAL M → LATIN CAPITAL LETTER M # +039C ; 004D ; MA # ( Μ → M ) GREEK CAPITAL LETTER MU → LATIN CAPITAL LETTER M # +1D6B3 ; 004D ; MA # ( 𝚳 → M ) MATHEMATICAL BOLD CAPITAL MU → LATIN CAPITAL LETTER M # →𝐌→ +1D6ED ; 004D ; MA # ( 𝛭 → M ) MATHEMATICAL ITALIC CAPITAL MU → LATIN CAPITAL LETTER M # →𝑀→ +1D727 ; 004D ; MA # ( 𝜧 → M ) MATHEMATICAL BOLD ITALIC CAPITAL MU → LATIN CAPITAL LETTER M # →𝑴→ +1D761 ; 004D ; MA # ( 𝝡 → M ) MATHEMATICAL SANS-SERIF BOLD CAPITAL MU → LATIN CAPITAL LETTER M # →Μ→ +1D79B ; 004D ; MA # ( 𝞛 → M ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU → LATIN CAPITAL LETTER M # →Μ→ +03FA ; 004D ; MA # ( Ϻ → M ) GREEK CAPITAL LETTER SAN → LATIN CAPITAL LETTER M # +2C98 ; 004D ; MA # ( Ⲙ → M ) COPTIC CAPITAL LETTER MI → LATIN CAPITAL LETTER M # +041C ; 004D ; MA # ( М → M ) CYRILLIC CAPITAL LETTER EM → LATIN CAPITAL LETTER M # +13B7 ; 004D ; MA # ( Ꮇ → M ) CHEROKEE LETTER LU → LATIN CAPITAL LETTER M # +15F0 ; 004D ; MA # ( ᗰ → M ) CANADIAN SYLLABICS CARRIER GO → LATIN CAPITAL LETTER M # +16D6 ; 004D ; MA # ( ᛖ → M ) RUNIC LETTER EHWAZ EH E → LATIN CAPITAL LETTER M # +A4DF ; 004D ; MA # ( ꓟ → M ) LISU LETTER MA → LATIN CAPITAL LETTER M # +102B0 ; 004D ; MA # ( 𐊰 → M ) CARIAN LETTER S → LATIN CAPITAL LETTER M # +10311 ; 004D ; MA # ( 𐌑 → M ) OLD ITALIC LETTER SHE → LATIN CAPITAL LETTER M # + +04CD ; 004D 0326 ; MA # ( Ӎ → M̦ ) CYRILLIC CAPITAL LETTER EM WITH TAIL → LATIN CAPITAL LETTER M, COMBINING COMMA BELOW # →М̡→ + +1F76B ; 004D 0042 ; MA #* ( 🝫 → MB ) ALCHEMICAL SYMBOL FOR BATH OF MARY → LATIN CAPITAL LETTER M, LATIN CAPITAL LETTER B # + +2DE8 ; 1DDF ; MA # ( ⷨ → ᷟ ) COMBINING CYRILLIC LETTER EM → COMBINING LATIN LETTER SMALL CAPITAL M # + +1D427 ; 006E ; MA # ( 𝐧 → n ) MATHEMATICAL BOLD SMALL N → LATIN SMALL LETTER N # +1D45B ; 006E ; MA # ( 𝑛 → n ) MATHEMATICAL ITALIC SMALL N → LATIN SMALL LETTER N # +1D48F ; 006E ; MA # ( 𝒏 → n ) MATHEMATICAL BOLD ITALIC SMALL N → LATIN SMALL LETTER N # +1D4C3 ; 006E ; MA # ( 𝓃 → n ) MATHEMATICAL SCRIPT SMALL N → LATIN SMALL LETTER N # +1D4F7 ; 006E ; MA # ( 𝓷 → n ) MATHEMATICAL BOLD SCRIPT SMALL N → LATIN SMALL LETTER N # +1D52B ; 006E ; MA # ( 𝔫 → n ) MATHEMATICAL FRAKTUR SMALL N → LATIN SMALL LETTER N # +1D55F ; 006E ; MA # ( 𝕟 → n ) MATHEMATICAL DOUBLE-STRUCK SMALL N → LATIN SMALL LETTER N # +1D593 ; 006E ; MA # ( 𝖓 → n ) MATHEMATICAL BOLD FRAKTUR SMALL N → LATIN SMALL LETTER N # +1D5C7 ; 006E ; MA # ( 𝗇 → n ) MATHEMATICAL SANS-SERIF SMALL N → LATIN SMALL LETTER N # +1D5FB ; 006E ; MA # ( 𝗻 → n ) MATHEMATICAL SANS-SERIF BOLD SMALL N → LATIN SMALL LETTER N # +1D62F ; 006E ; MA # ( 𝘯 → n ) MATHEMATICAL SANS-SERIF ITALIC SMALL N → LATIN SMALL LETTER N # +1D663 ; 006E ; MA # ( 𝙣 → n ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N → LATIN SMALL LETTER N # +1D697 ; 006E ; MA # ( 𝚗 → n ) MATHEMATICAL MONOSPACE SMALL N → LATIN SMALL LETTER N # +0578 ; 006E ; MA # ( ո → n ) ARMENIAN SMALL LETTER VO → LATIN SMALL LETTER N # +057C ; 006E ; MA # ( ռ → n ) ARMENIAN SMALL LETTER RA → LATIN SMALL LETTER N # + +FF2E ; 004E ; MA # ( N → N ) FULLWIDTH LATIN CAPITAL LETTER N → LATIN CAPITAL LETTER N # →Ν→ +2115 ; 004E ; MA # ( ℕ → N ) DOUBLE-STRUCK CAPITAL N → LATIN CAPITAL LETTER N # +1D40D ; 004E ; MA # ( 𝐍 → N ) MATHEMATICAL BOLD CAPITAL N → LATIN CAPITAL LETTER N # +1D441 ; 004E ; MA # ( 𝑁 → N ) MATHEMATICAL ITALIC CAPITAL N → LATIN CAPITAL LETTER N # +1D475 ; 004E ; MA # ( 𝑵 → N ) MATHEMATICAL BOLD ITALIC CAPITAL N → LATIN CAPITAL LETTER N # +1D4A9 ; 004E ; MA # ( 𝒩 → N ) MATHEMATICAL SCRIPT CAPITAL N → LATIN CAPITAL LETTER N # +1D4DD ; 004E ; MA # ( 𝓝 → N ) MATHEMATICAL BOLD SCRIPT CAPITAL N → LATIN CAPITAL LETTER N # +1D511 ; 004E ; MA # ( 𝔑 → N ) MATHEMATICAL FRAKTUR CAPITAL N → LATIN CAPITAL LETTER N # +1D579 ; 004E ; MA # ( 𝕹 → N ) MATHEMATICAL BOLD FRAKTUR CAPITAL N → LATIN CAPITAL LETTER N # +1D5AD ; 004E ; MA # ( 𝖭 → N ) MATHEMATICAL SANS-SERIF CAPITAL N → LATIN CAPITAL LETTER N # +1D5E1 ; 004E ; MA # ( 𝗡 → N ) MATHEMATICAL SANS-SERIF BOLD CAPITAL N → LATIN CAPITAL LETTER N # +1D615 ; 004E ; MA # ( 𝘕 → N ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL N → LATIN CAPITAL LETTER N # +1D649 ; 004E ; MA # ( 𝙉 → N ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N → LATIN CAPITAL LETTER N # +1D67D ; 004E ; MA # ( 𝙽 → N ) MATHEMATICAL MONOSPACE CAPITAL N → LATIN CAPITAL LETTER N # +039D ; 004E ; MA # ( Ν → N ) GREEK CAPITAL LETTER NU → LATIN CAPITAL LETTER N # +1D6B4 ; 004E ; MA # ( 𝚴 → N ) MATHEMATICAL BOLD CAPITAL NU → LATIN CAPITAL LETTER N # →𝐍→ +1D6EE ; 004E ; MA # ( 𝛮 → N ) MATHEMATICAL ITALIC CAPITAL NU → LATIN CAPITAL LETTER N # →𝑁→ +1D728 ; 004E ; MA # ( 𝜨 → N ) MATHEMATICAL BOLD ITALIC CAPITAL NU → LATIN CAPITAL LETTER N # →𝑵→ +1D762 ; 004E ; MA # ( 𝝢 → N ) MATHEMATICAL SANS-SERIF BOLD CAPITAL NU → LATIN CAPITAL LETTER N # →Ν→ +1D79C ; 004E ; MA # ( 𝞜 → N ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU → LATIN CAPITAL LETTER N # →Ν→ +2C9A ; 004E ; MA # ( Ⲛ → N ) COPTIC CAPITAL LETTER NI → LATIN CAPITAL LETTER N # +A4E0 ; 004E ; MA # ( ꓠ → N ) LISU LETTER NA → LATIN CAPITAL LETTER N # +10513 ; 004E ; MA # ( 𐔓 → N ) ELBASAN LETTER NE → LATIN CAPITAL LETTER N # + +1018E ; 004E 030A ; MA #* ( 𐆎 → N̊ ) NOMISMA SIGN → LATIN CAPITAL LETTER N, COMBINING RING ABOVE # →Νͦ→ + +0273 ; 006E 0328 ; MA # ( ɳ → n̨ ) LATIN SMALL LETTER N WITH RETROFLEX HOOK → LATIN SMALL LETTER N, COMBINING OGONEK # →n̢→ + +019E ; 006E 0329 ; MA # ( ƞ → n̩ ) LATIN SMALL LETTER N WITH LONG RIGHT LEG → LATIN SMALL LETTER N, COMBINING VERTICAL LINE BELOW # +03B7 ; 006E 0329 ; MA # ( η → n̩ ) GREEK SMALL LETTER ETA → LATIN SMALL LETTER N, COMBINING VERTICAL LINE BELOW # →ƞ→ +1D6C8 ; 006E 0329 ; MA # ( 𝛈 → n̩ ) MATHEMATICAL BOLD SMALL ETA → LATIN SMALL LETTER N, COMBINING VERTICAL LINE BELOW # →η→→ƞ→ +1D702 ; 006E 0329 ; MA # ( 𝜂 → n̩ ) MATHEMATICAL ITALIC SMALL ETA → LATIN SMALL LETTER N, COMBINING VERTICAL LINE BELOW # →η→→ƞ→ +1D73C ; 006E 0329 ; MA # ( 𝜼 → n̩ ) MATHEMATICAL BOLD ITALIC SMALL ETA → LATIN SMALL LETTER N, COMBINING VERTICAL LINE BELOW # →η→→ƞ→ +1D776 ; 006E 0329 ; MA # ( 𝝶 → n̩ ) MATHEMATICAL SANS-SERIF BOLD SMALL ETA → LATIN SMALL LETTER N, COMBINING VERTICAL LINE BELOW # →η→→ƞ→ +1D7B0 ; 006E 0329 ; MA # ( 𝞰 → n̩ ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA → LATIN SMALL LETTER N, COMBINING VERTICAL LINE BELOW # →η→→ƞ→ + +019D ; 004E 0326 ; MA # ( Ɲ → N̦ ) LATIN CAPITAL LETTER N WITH LEFT HOOK → LATIN CAPITAL LETTER N, COMBINING COMMA BELOW # →N̡→ + +1D70 ; 006E 0334 ; MA # ( ᵰ → n̴ ) LATIN SMALL LETTER N WITH MIDDLE TILDE → LATIN SMALL LETTER N, COMBINING TILDE OVERLAY # + +01CC ; 006E 006A ; MA # ( nj → nj ) LATIN SMALL LETTER NJ → LATIN SMALL LETTER N, LATIN SMALL LETTER J # + +01CB ; 004E 006A ; MA # ( Nj → Nj ) LATIN CAPITAL LETTER N WITH SMALL LETTER J → LATIN CAPITAL LETTER N, LATIN SMALL LETTER J # + +01CA ; 004E 004A ; MA # ( NJ → NJ ) LATIN CAPITAL LETTER NJ → LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER J # + +2116 ; 004E 006F ; MA #* ( № → No ) NUMERO SIGN → LATIN CAPITAL LETTER N, LATIN SMALL LETTER O # + +0377 ; 1D0E ; MA # ( ͷ → ᴎ ) GREEK SMALL LETTER PAMPHYLIAN DIGAMMA → LATIN LETTER SMALL CAPITAL REVERSED N # →и→ +0438 ; 1D0E ; MA # ( и → ᴎ ) CYRILLIC SMALL LETTER I → LATIN LETTER SMALL CAPITAL REVERSED N # +1044D ; 1D0E ; MA # ( 𐑍 → ᴎ ) DESERET SMALL LETTER ENG → LATIN LETTER SMALL CAPITAL REVERSED N # →и→ + +0146 ; 0272 ; MA # ( ņ → ɲ ) LATIN SMALL LETTER N WITH CEDILLA → LATIN SMALL LETTER N WITH LEFT HOOK # + +0C02 ; 006F ; MA # ( ం → o ) TELUGU SIGN ANUSVARA → LATIN SMALL LETTER O # +0C82 ; 006F ; MA # ( ಂ → o ) KANNADA SIGN ANUSVARA → LATIN SMALL LETTER O # +0D02 ; 006F ; MA # ( ം → o ) MALAYALAM SIGN ANUSVARA → LATIN SMALL LETTER O # +0D82 ; 006F ; MA # ( ං → o ) SINHALA SIGN ANUSVARAYA → LATIN SMALL LETTER O # +0966 ; 006F ; MA # ( ० → o ) DEVANAGARI DIGIT ZERO → LATIN SMALL LETTER O # +0A66 ; 006F ; MA # ( ੦ → o ) GURMUKHI DIGIT ZERO → LATIN SMALL LETTER O # +0AE6 ; 006F ; MA # ( ૦ → o ) GUJARATI DIGIT ZERO → LATIN SMALL LETTER O # +0BE6 ; 006F ; MA # ( ௦ → o ) TAMIL DIGIT ZERO → LATIN SMALL LETTER O # +0C66 ; 006F ; MA # ( ౦ → o ) TELUGU DIGIT ZERO → LATIN SMALL LETTER O # +0CE6 ; 006F ; MA # ( ೦ → o ) KANNADA DIGIT ZERO → LATIN SMALL LETTER O # →౦→ +0D66 ; 006F ; MA # ( ൦ → o ) MALAYALAM DIGIT ZERO → LATIN SMALL LETTER O # +0E50 ; 006F ; MA # ( ๐ → o ) THAI DIGIT ZERO → LATIN SMALL LETTER O # +0ED0 ; 006F ; MA # ( ໐ → o ) LAO DIGIT ZERO → LATIN SMALL LETTER O # +1040 ; 006F ; MA # ( ၀ → o ) MYANMAR DIGIT ZERO → LATIN SMALL LETTER O # +0665 ; 006F ; MA # ( ‎٥‎ → o ) ARABIC-INDIC DIGIT FIVE → LATIN SMALL LETTER O # +06F5 ; 006F ; MA # ( ۵ → o ) EXTENDED ARABIC-INDIC DIGIT FIVE → LATIN SMALL LETTER O # →‎٥‎→ +FF4F ; 006F ; MA # ( o → o ) FULLWIDTH LATIN SMALL LETTER O → LATIN SMALL LETTER O # →о→ +2134 ; 006F ; MA # ( ℴ → o ) SCRIPT SMALL O → LATIN SMALL LETTER O # +1D428 ; 006F ; MA # ( 𝐨 → o ) MATHEMATICAL BOLD SMALL O → LATIN SMALL LETTER O # +1D45C ; 006F ; MA # ( 𝑜 → o ) MATHEMATICAL ITALIC SMALL O → LATIN SMALL LETTER O # +1D490 ; 006F ; MA # ( 𝒐 → o ) MATHEMATICAL BOLD ITALIC SMALL O → LATIN SMALL LETTER O # +1D4F8 ; 006F ; MA # ( 𝓸 → o ) MATHEMATICAL BOLD SCRIPT SMALL O → LATIN SMALL LETTER O # +1D52C ; 006F ; MA # ( 𝔬 → o ) MATHEMATICAL FRAKTUR SMALL O → LATIN SMALL LETTER O # +1D560 ; 006F ; MA # ( 𝕠 → o ) MATHEMATICAL DOUBLE-STRUCK SMALL O → LATIN SMALL LETTER O # +1D594 ; 006F ; MA # ( 𝖔 → o ) MATHEMATICAL BOLD FRAKTUR SMALL O → LATIN SMALL LETTER O # +1D5C8 ; 006F ; MA # ( 𝗈 → o ) MATHEMATICAL SANS-SERIF SMALL O → LATIN SMALL LETTER O # +1D5FC ; 006F ; MA # ( 𝗼 → o ) MATHEMATICAL SANS-SERIF BOLD SMALL O → LATIN SMALL LETTER O # +1D630 ; 006F ; MA # ( 𝘰 → o ) MATHEMATICAL SANS-SERIF ITALIC SMALL O → LATIN SMALL LETTER O # +1D664 ; 006F ; MA # ( 𝙤 → o ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O → LATIN SMALL LETTER O # +1D698 ; 006F ; MA # ( 𝚘 → o ) MATHEMATICAL MONOSPACE SMALL O → LATIN SMALL LETTER O # +1D0F ; 006F ; MA # ( ᴏ → o ) LATIN LETTER SMALL CAPITAL O → LATIN SMALL LETTER O # +1D11 ; 006F ; MA # ( ᴑ → o ) LATIN SMALL LETTER SIDEWAYS O → LATIN SMALL LETTER O # +AB3D ; 006F ; MA # ( ꬽ → o ) LATIN SMALL LETTER BLACKLETTER O → LATIN SMALL LETTER O # +03BF ; 006F ; MA # ( ο → o ) GREEK SMALL LETTER OMICRON → LATIN SMALL LETTER O # +1D6D0 ; 006F ; MA # ( 𝛐 → o ) MATHEMATICAL BOLD SMALL OMICRON → LATIN SMALL LETTER O # →𝐨→ +1D70A ; 006F ; MA # ( 𝜊 → o ) MATHEMATICAL ITALIC SMALL OMICRON → LATIN SMALL LETTER O # →𝑜→ +1D744 ; 006F ; MA # ( 𝝄 → o ) MATHEMATICAL BOLD ITALIC SMALL OMICRON → LATIN SMALL LETTER O # →𝒐→ +1D77E ; 006F ; MA # ( 𝝾 → o ) MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON → LATIN SMALL LETTER O # →ο→ +1D7B8 ; 006F ; MA # ( 𝞸 → o ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON → LATIN SMALL LETTER O # →ο→ +03C3 ; 006F ; MA # ( σ → o ) GREEK SMALL LETTER SIGMA → LATIN SMALL LETTER O # +1D6D4 ; 006F ; MA # ( 𝛔 → o ) MATHEMATICAL BOLD SMALL SIGMA → LATIN SMALL LETTER O # →σ→ +1D70E ; 006F ; MA # ( 𝜎 → o ) MATHEMATICAL ITALIC SMALL SIGMA → LATIN SMALL LETTER O # →σ→ +1D748 ; 006F ; MA # ( 𝝈 → o ) MATHEMATICAL BOLD ITALIC SMALL SIGMA → LATIN SMALL LETTER O # →σ→ +1D782 ; 006F ; MA # ( 𝞂 → o ) MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA → LATIN SMALL LETTER O # →σ→ +1D7BC ; 006F ; MA # ( 𝞼 → o ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA → LATIN SMALL LETTER O # →σ→ +2C9F ; 006F ; MA # ( ⲟ → o ) COPTIC SMALL LETTER O → LATIN SMALL LETTER O # +043E ; 006F ; MA # ( о → o ) CYRILLIC SMALL LETTER O → LATIN SMALL LETTER O # +10FF ; 006F ; MA # ( ჿ → o ) GEORGIAN LETTER LABIAL SIGN → LATIN SMALL LETTER O # +0585 ; 006F ; MA # ( օ → o ) ARMENIAN SMALL LETTER OH → LATIN SMALL LETTER O # +05E1 ; 006F ; MA # ( ‎ס‎ → o ) HEBREW LETTER SAMEKH → LATIN SMALL LETTER O # +0647 ; 006F ; MA # ( ‎ه‎ → o ) ARABIC LETTER HEH → LATIN SMALL LETTER O # +1EE24 ; 006F ; MA # ( ‎𞸤‎ → o ) ARABIC MATHEMATICAL INITIAL HEH → LATIN SMALL LETTER O # →‎ه‎→ +1EE64 ; 006F ; MA # ( ‎𞹤‎ → o ) ARABIC MATHEMATICAL STRETCHED HEH → LATIN SMALL LETTER O # →‎ه‎→ +1EE84 ; 006F ; MA # ( ‎𞺄‎ → o ) ARABIC MATHEMATICAL LOOPED HEH → LATIN SMALL LETTER O # →‎ه‎→ +FEEB ; 006F ; MA # ( ‎ﻫ‎ → o ) ARABIC LETTER HEH INITIAL FORM → LATIN SMALL LETTER O # →‎ه‎→ +FEEC ; 006F ; MA # ( ‎ﻬ‎ → o ) ARABIC LETTER HEH MEDIAL FORM → LATIN SMALL LETTER O # →‎ه‎→ +FEEA ; 006F ; MA # ( ‎ﻪ‎ → o ) ARABIC LETTER HEH FINAL FORM → LATIN SMALL LETTER O # →‎ه‎→ +FEE9 ; 006F ; MA # ( ‎ﻩ‎ → o ) ARABIC LETTER HEH ISOLATED FORM → LATIN SMALL LETTER O # →‎ه‎→ +06BE ; 006F ; MA # ( ‎ھ‎ → o ) ARABIC LETTER HEH DOACHASHMEE → LATIN SMALL LETTER O # →‎ه‎→ +FBAC ; 006F ; MA # ( ‎ﮬ‎ → o ) ARABIC LETTER HEH DOACHASHMEE INITIAL FORM → LATIN SMALL LETTER O # →‎ﻫ‎→→‎ه‎→ +FBAD ; 006F ; MA # ( ‎ﮭ‎ → o ) ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM → LATIN SMALL LETTER O # →‎ﻬ‎→→‎ه‎→ +FBAB ; 006F ; MA # ( ‎ﮫ‎ → o ) ARABIC LETTER HEH DOACHASHMEE FINAL FORM → LATIN SMALL LETTER O # →‎ﻪ‎→→‎ه‎→ +FBAA ; 006F ; MA # ( ‎ﮪ‎ → o ) ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM → LATIN SMALL LETTER O # →‎ه‎→ +06C1 ; 006F ; MA # ( ‎ہ‎ → o ) ARABIC LETTER HEH GOAL → LATIN SMALL LETTER O # →‎ه‎→ +FBA8 ; 006F ; MA # ( ‎ﮨ‎ → o ) ARABIC LETTER HEH GOAL INITIAL FORM → LATIN SMALL LETTER O # →‎ہ‎→→‎ه‎→ +FBA9 ; 006F ; MA # ( ‎ﮩ‎ → o ) ARABIC LETTER HEH GOAL MEDIAL FORM → LATIN SMALL LETTER O # →‎ہ‎→→‎ه‎→ +FBA7 ; 006F ; MA # ( ‎ﮧ‎ → o ) ARABIC LETTER HEH GOAL FINAL FORM → LATIN SMALL LETTER O # →‎ہ‎→→‎ه‎→ +FBA6 ; 006F ; MA # ( ‎ﮦ‎ → o ) ARABIC LETTER HEH GOAL ISOLATED FORM → LATIN SMALL LETTER O # →‎ه‎→ +06D5 ; 006F ; MA # ( ‎ە‎ → o ) ARABIC LETTER AE → LATIN SMALL LETTER O # →‎ه‎→ +0D20 ; 006F ; MA # ( ഠ → o ) MALAYALAM LETTER TTHA → LATIN SMALL LETTER O # +101D ; 006F ; MA # ( ဝ → o ) MYANMAR LETTER WA → LATIN SMALL LETTER O # +104EA ; 006F ; MA # ( 𐓪 → o ) OSAGE SMALL LETTER O → LATIN SMALL LETTER O # +118C8 ; 006F ; MA # ( 𑣈 → o ) WARANG CITI SMALL LETTER E → LATIN SMALL LETTER O # +118D7 ; 006F ; MA # ( 𑣗 → o ) WARANG CITI SMALL LETTER BU → LATIN SMALL LETTER O # +1042C ; 006F ; MA # ( 𐐬 → o ) DESERET SMALL LETTER LONG O → LATIN SMALL LETTER O # + +0030 ; 004F ; MA # ( 0 → O ) DIGIT ZERO → LATIN CAPITAL LETTER O # +07C0 ; 004F ; MA # ( ‎߀‎ → O ) NKO DIGIT ZERO → LATIN CAPITAL LETTER O # →0→ +09E6 ; 004F ; MA # ( ০ → O ) BENGALI DIGIT ZERO → LATIN CAPITAL LETTER O # →0→ +0B66 ; 004F ; MA # ( ୦ → O ) ORIYA DIGIT ZERO → LATIN CAPITAL LETTER O # →0→ +3007 ; 004F ; MA # ( 〇 → O ) IDEOGRAPHIC NUMBER ZERO → LATIN CAPITAL LETTER O # +114D0 ; 004F ; MA # ( 𑓐 → O ) TIRHUTA DIGIT ZERO → LATIN CAPITAL LETTER O # →০→→0→ +118E0 ; 004F ; MA # ( 𑣠 → O ) WARANG CITI DIGIT ZERO → LATIN CAPITAL LETTER O # →0→ +1D7CE ; 004F ; MA # ( 𝟎 → O ) MATHEMATICAL BOLD DIGIT ZERO → LATIN CAPITAL LETTER O # →0→ +1D7D8 ; 004F ; MA # ( 𝟘 → O ) MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO → LATIN CAPITAL LETTER O # →0→ +1D7E2 ; 004F ; MA # ( 𝟢 → O ) MATHEMATICAL SANS-SERIF DIGIT ZERO → LATIN CAPITAL LETTER O # →0→ +1D7EC ; 004F ; MA # ( 𝟬 → O ) MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO → LATIN CAPITAL LETTER O # →0→ +1D7F6 ; 004F ; MA # ( 𝟶 → O ) MATHEMATICAL MONOSPACE DIGIT ZERO → LATIN CAPITAL LETTER O # →0→ +1FBF0 ; 004F ; MA # ( 🯰 → O ) SEGMENTED DIGIT ZERO → LATIN CAPITAL LETTER O # →0→ +FF2F ; 004F ; MA # ( O → O ) FULLWIDTH LATIN CAPITAL LETTER O → LATIN CAPITAL LETTER O # →О→ +1D40E ; 004F ; MA # ( 𝐎 → O ) MATHEMATICAL BOLD CAPITAL O → LATIN CAPITAL LETTER O # +1D442 ; 004F ; MA # ( 𝑂 → O ) MATHEMATICAL ITALIC CAPITAL O → LATIN CAPITAL LETTER O # +1D476 ; 004F ; MA # ( 𝑶 → O ) MATHEMATICAL BOLD ITALIC CAPITAL O → LATIN CAPITAL LETTER O # +1D4AA ; 004F ; MA # ( 𝒪 → O ) MATHEMATICAL SCRIPT CAPITAL O → LATIN CAPITAL LETTER O # +1D4DE ; 004F ; MA # ( 𝓞 → O ) MATHEMATICAL BOLD SCRIPT CAPITAL O → LATIN CAPITAL LETTER O # +1D512 ; 004F ; MA # ( 𝔒 → O ) MATHEMATICAL FRAKTUR CAPITAL O → LATIN CAPITAL LETTER O # +1D546 ; 004F ; MA # ( 𝕆 → O ) MATHEMATICAL DOUBLE-STRUCK CAPITAL O → LATIN CAPITAL LETTER O # +1D57A ; 004F ; MA # ( 𝕺 → O ) MATHEMATICAL BOLD FRAKTUR CAPITAL O → LATIN CAPITAL LETTER O # +1D5AE ; 004F ; MA # ( 𝖮 → O ) MATHEMATICAL SANS-SERIF CAPITAL O → LATIN CAPITAL LETTER O # +1D5E2 ; 004F ; MA # ( 𝗢 → O ) MATHEMATICAL SANS-SERIF BOLD CAPITAL O → LATIN CAPITAL LETTER O # +1D616 ; 004F ; MA # ( 𝘖 → O ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL O → LATIN CAPITAL LETTER O # +1D64A ; 004F ; MA # ( 𝙊 → O ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O → LATIN CAPITAL LETTER O # +1D67E ; 004F ; MA # ( 𝙾 → O ) MATHEMATICAL MONOSPACE CAPITAL O → LATIN CAPITAL LETTER O # +039F ; 004F ; MA # ( Ο → O ) GREEK CAPITAL LETTER OMICRON → LATIN CAPITAL LETTER O # +1D6B6 ; 004F ; MA # ( 𝚶 → O ) MATHEMATICAL BOLD CAPITAL OMICRON → LATIN CAPITAL LETTER O # →𝐎→ +1D6F0 ; 004F ; MA # ( 𝛰 → O ) MATHEMATICAL ITALIC CAPITAL OMICRON → LATIN CAPITAL LETTER O # →𝑂→ +1D72A ; 004F ; MA # ( 𝜪 → O ) MATHEMATICAL BOLD ITALIC CAPITAL OMICRON → LATIN CAPITAL LETTER O # →𝑶→ +1D764 ; 004F ; MA # ( 𝝤 → O ) MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON → LATIN CAPITAL LETTER O # →Ο→ +1D79E ; 004F ; MA # ( 𝞞 → O ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON → LATIN CAPITAL LETTER O # →Ο→ +2C9E ; 004F ; MA # ( Ⲟ → O ) COPTIC CAPITAL LETTER O → LATIN CAPITAL LETTER O # +041E ; 004F ; MA # ( О → O ) CYRILLIC CAPITAL LETTER O → LATIN CAPITAL LETTER O # +0555 ; 004F ; MA # ( Օ → O ) ARMENIAN CAPITAL LETTER OH → LATIN CAPITAL LETTER O # +2D54 ; 004F ; MA # ( ⵔ → O ) TIFINAGH LETTER YAR → LATIN CAPITAL LETTER O # +12D0 ; 004F ; MA # ( ዐ → O ) ETHIOPIC SYLLABLE PHARYNGEAL A → LATIN CAPITAL LETTER O # →Օ→ +0B20 ; 004F ; MA # ( ଠ → O ) ORIYA LETTER TTHA → LATIN CAPITAL LETTER O # →୦→→0→ +104C2 ; 004F ; MA # ( 𐓂 → O ) OSAGE CAPITAL LETTER O → LATIN CAPITAL LETTER O # +A4F3 ; 004F ; MA # ( ꓳ → O ) LISU LETTER O → LATIN CAPITAL LETTER O # +118B5 ; 004F ; MA # ( 𑢵 → O ) WARANG CITI CAPITAL LETTER AT → LATIN CAPITAL LETTER O # +10292 ; 004F ; MA # ( 𐊒 → O ) LYCIAN LETTER U → LATIN CAPITAL LETTER O # +102AB ; 004F ; MA # ( 𐊫 → O ) CARIAN LETTER O → LATIN CAPITAL LETTER O # +10404 ; 004F ; MA # ( 𐐄 → O ) DESERET CAPITAL LETTER LONG O → LATIN CAPITAL LETTER O # +10516 ; 004F ; MA # ( 𐔖 → O ) ELBASAN LETTER O → LATIN CAPITAL LETTER O # + +2070 ; 00BA ; MA #* ( ⁰ → º ) SUPERSCRIPT ZERO → MASCULINE ORDINAL INDICATOR # +1D52 ; 00BA ; MA # ( ᵒ → º ) MODIFIER LETTER SMALL O → MASCULINE ORDINAL INDICATOR # →⁰→ + +01D2 ; 014F ; MA # ( ǒ → ŏ ) LATIN SMALL LETTER O WITH CARON → LATIN SMALL LETTER O WITH BREVE # + +01D1 ; 014E ; MA # ( Ǒ → Ŏ ) LATIN CAPITAL LETTER O WITH CARON → LATIN CAPITAL LETTER O WITH BREVE # + +06FF ; 006F 0302 ; MA # ( ‎ۿ‎ → ô ) ARABIC LETTER HEH WITH INVERTED V → LATIN SMALL LETTER O, COMBINING CIRCUMFLEX ACCENT # →‎ھٛ‎→ + +0150 ; 00D6 ; MA # ( Ő → Ö ) LATIN CAPITAL LETTER O WITH DOUBLE ACUTE → LATIN CAPITAL LETTER O WITH DIAERESIS # + +00F8 ; 006F 0338 ; MA # ( ø → o̸ ) LATIN SMALL LETTER O WITH STROKE → LATIN SMALL LETTER O, COMBINING LONG SOLIDUS OVERLAY # →o̷→ +AB3E ; 006F 0338 ; MA # ( ꬾ → o̸ ) LATIN SMALL LETTER BLACKLETTER O WITH STROKE → LATIN SMALL LETTER O, COMBINING LONG SOLIDUS OVERLAY # →ø→→o̷→ + +00D8 ; 004F 0338 ; MA # ( Ø → O̸ ) LATIN CAPITAL LETTER O WITH STROKE → LATIN CAPITAL LETTER O, COMBINING LONG SOLIDUS OVERLAY # +2D41 ; 004F 0338 ; MA # ( ⵁ → O̸ ) TIFINAGH LETTER BERBER ACADEMY YAH → LATIN CAPITAL LETTER O, COMBINING LONG SOLIDUS OVERLAY # →Ø→ + +01FE ; 004F 0338 0301 ; MA # ( Ǿ → Ó̸ ) LATIN CAPITAL LETTER O WITH STROKE AND ACUTE → LATIN CAPITAL LETTER O, COMBINING LONG SOLIDUS OVERLAY, COMBINING ACUTE ACCENT # + +0275 ; 006F 0335 ; MA # ( ɵ → o̵ ) LATIN SMALL LETTER BARRED O → LATIN SMALL LETTER O, COMBINING SHORT STROKE OVERLAY # +A74B ; 006F 0335 ; MA # ( ꝋ → o̵ ) LATIN SMALL LETTER O WITH LONG STROKE OVERLAY → LATIN SMALL LETTER O, COMBINING SHORT STROKE OVERLAY # →o̶→ +04E9 ; 006F 0335 ; MA # ( ө → o̵ ) CYRILLIC SMALL LETTER BARRED O → LATIN SMALL LETTER O, COMBINING SHORT STROKE OVERLAY # →ѳ→ +0473 ; 006F 0335 ; MA # ( ѳ → o̵ ) CYRILLIC SMALL LETTER FITA → LATIN SMALL LETTER O, COMBINING SHORT STROKE OVERLAY # +AB8E ; 006F 0335 ; MA # ( ꮎ → o̵ ) CHEROKEE SMALL LETTER NA → LATIN SMALL LETTER O, COMBINING SHORT STROKE OVERLAY # →ɵ→ +ABBB ; 006F 0335 ; MA # ( ꮻ → o̵ ) CHEROKEE SMALL LETTER WI → LATIN SMALL LETTER O, COMBINING SHORT STROKE OVERLAY # →ѳ→ + +2296 ; 004F 0335 ; MA #* ( ⊖ → O̵ ) CIRCLED MINUS → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →θ→→Ꮎ→ +229D ; 004F 0335 ; MA #* ( ⊝ → O̵ ) CIRCLED DASH → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →⊖→→θ→→Ꮎ→ +236C ; 004F 0335 ; MA #* ( ⍬ → O̵ ) APL FUNCTIONAL SYMBOL ZILDE → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →θ→→Ꮎ→ +1D21A ; 004F 0335 ; MA #* ( 𝈚 → O̵ ) GREEK VOCAL NOTATION SYMBOL-52 → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Ꝋ→→O̶→ +1F714 ; 004F 0335 ; MA #* ( 🜔 → O̵ ) ALCHEMICAL SYMBOL FOR SALT → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Ɵ→→O̶→ +019F ; 004F 0335 ; MA # ( Ɵ → O̵ ) LATIN CAPITAL LETTER O WITH MIDDLE TILDE → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →O̶→ +A74A ; 004F 0335 ; MA # ( Ꝋ → O̵ ) LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →O̶→ +03B8 ; 004F 0335 ; MA # ( θ → O̵ ) GREEK SMALL LETTER THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Ꮎ→ +03D1 ; 004F 0335 ; MA # ( ϑ → O̵ ) GREEK THETA SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →θ→→Ꮎ→ +1D6C9 ; 004F 0335 ; MA # ( 𝛉 → O̵ ) MATHEMATICAL BOLD SMALL THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →θ→→Ꮎ→ +1D6DD ; 004F 0335 ; MA # ( 𝛝 → O̵ ) MATHEMATICAL BOLD THETA SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →θ→→Ꮎ→ +1D703 ; 004F 0335 ; MA # ( 𝜃 → O̵ ) MATHEMATICAL ITALIC SMALL THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →θ→→Ꮎ→ +1D717 ; 004F 0335 ; MA # ( 𝜗 → O̵ ) MATHEMATICAL ITALIC THETA SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →θ→→Ꮎ→ +1D73D ; 004F 0335 ; MA # ( 𝜽 → O̵ ) MATHEMATICAL BOLD ITALIC SMALL THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →θ→→Ꮎ→ +1D751 ; 004F 0335 ; MA # ( 𝝑 → O̵ ) MATHEMATICAL BOLD ITALIC THETA SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →θ→→Ꮎ→ +1D777 ; 004F 0335 ; MA # ( 𝝷 → O̵ ) MATHEMATICAL SANS-SERIF BOLD SMALL THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →θ→→Ꮎ→ +1D78B ; 004F 0335 ; MA # ( 𝞋 → O̵ ) MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →θ→→Ꮎ→ +1D7B1 ; 004F 0335 ; MA # ( 𝞱 → O̵ ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →θ→→Ꮎ→ +1D7C5 ; 004F 0335 ; MA # ( 𝟅 → O̵ ) MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →θ→→Ꮎ→ +0398 ; 004F 0335 ; MA # ( Θ → O̵ ) GREEK CAPITAL LETTER THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Ꮎ→ +03F4 ; 004F 0335 ; MA # ( ϴ → O̵ ) GREEK CAPITAL THETA SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Ѳ→→О̵→ +1D6AF ; 004F 0335 ; MA # ( 𝚯 → O̵ ) MATHEMATICAL BOLD CAPITAL THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Θ→→Ꮎ→ +1D6B9 ; 004F 0335 ; MA # ( 𝚹 → O̵ ) MATHEMATICAL BOLD CAPITAL THETA SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Θ→→Ꮎ→ +1D6E9 ; 004F 0335 ; MA # ( 𝛩 → O̵ ) MATHEMATICAL ITALIC CAPITAL THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Θ→→Ꮎ→ +1D6F3 ; 004F 0335 ; MA # ( 𝛳 → O̵ ) MATHEMATICAL ITALIC CAPITAL THETA SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Θ→→Ꮎ→ +1D723 ; 004F 0335 ; MA # ( 𝜣 → O̵ ) MATHEMATICAL BOLD ITALIC CAPITAL THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Θ→→Ꮎ→ +1D72D ; 004F 0335 ; MA # ( 𝜭 → O̵ ) MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Θ→→Ꮎ→ +1D75D ; 004F 0335 ; MA # ( 𝝝 → O̵ ) MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Θ→→Ꮎ→ +1D767 ; 004F 0335 ; MA # ( 𝝧 → O̵ ) MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Θ→→Ꮎ→ +1D797 ; 004F 0335 ; MA # ( 𝞗 → O̵ ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Θ→→Ꮎ→ +1D7A1 ; 004F 0335 ; MA # ( 𝞡 → O̵ ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Θ→→Ꮎ→ +04E8 ; 004F 0335 ; MA # ( Ө → O̵ ) CYRILLIC CAPITAL LETTER BARRED O → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Ѳ→→О̵→ +0472 ; 004F 0335 ; MA # ( Ѳ → O̵ ) CYRILLIC CAPITAL LETTER FITA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →О̵→ +2D31 ; 004F 0335 ; MA # ( ⴱ → O̵ ) TIFINAGH LETTER YAB → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Ɵ→→O̶→ +13BE ; 004F 0335 ; MA # ( Ꮎ → O̵ ) CHEROKEE LETTER NA → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # +13EB ; 004F 0335 ; MA # ( Ꮻ → O̵ ) CHEROKEE LETTER WI → LATIN CAPITAL LETTER O, COMBINING SHORT STROKE OVERLAY # →Ѳ→→О̵→ + +AB74 ; 006F 031B ; MA # ( ꭴ → ơ ) CHEROKEE SMALL LETTER U → LATIN SMALL LETTER O, COMBINING HORN # + +FCD9 ; 006F 0670 ; MA # ( ‎ﳙ‎ → oٰ ) ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM → LATIN SMALL LETTER O, ARABIC LETTER SUPERSCRIPT ALEF # →‎هٰ‎→ + +1F101 ; 004F 002C ; MA #* ( 🄁 → O, ) DIGIT ZERO COMMA → LATIN CAPITAL LETTER O, COMMA # →0,→ + +1F100 ; 004F 002E ; MA #* ( 🄀 → O. ) DIGIT ZERO FULL STOP → LATIN CAPITAL LETTER O, FULL STOP # →0.→ + +01A1 ; 006F 0027 ; MA # ( ơ → o' ) LATIN SMALL LETTER O WITH HORN → LATIN SMALL LETTER O, APOSTROPHE # →oʼ→ + +01A0 ; 004F 0027 ; MA # ( Ơ → O' ) LATIN CAPITAL LETTER O WITH HORN → LATIN CAPITAL LETTER O, APOSTROPHE # →Oʼ→ +13A4 ; 004F 0027 ; MA # ( Ꭴ → O' ) CHEROKEE LETTER U → LATIN CAPITAL LETTER O, APOSTROPHE # →Ơ→→Oʼ→ + +0025 ; 00BA 002F 2080 ; MA #* ( % → º/₀ ) PERCENT SIGN → MASCULINE ORDINAL INDICATOR, SOLIDUS, SUBSCRIPT ZERO # →⁰/₀→ +066A ; 00BA 002F 2080 ; MA #* ( ٪ → º/₀ ) ARABIC PERCENT SIGN → MASCULINE ORDINAL INDICATOR, SOLIDUS, SUBSCRIPT ZERO # →%→→⁰/₀→ +2052 ; 00BA 002F 2080 ; MA #* ( ⁒ → º/₀ ) COMMERCIAL MINUS SIGN → MASCULINE ORDINAL INDICATOR, SOLIDUS, SUBSCRIPT ZERO # →%→→⁰/₀→ + +2030 ; 00BA 002F 2080 2080 ; MA #* ( ‰ → º/₀₀ ) PER MILLE SIGN → MASCULINE ORDINAL INDICATOR, SOLIDUS, SUBSCRIPT ZERO, SUBSCRIPT ZERO # →⁰/₀₀→ +0609 ; 00BA 002F 2080 2080 ; MA #* ( ؉ → º/₀₀ ) ARABIC-INDIC PER MILLE SIGN → MASCULINE ORDINAL INDICATOR, SOLIDUS, SUBSCRIPT ZERO, SUBSCRIPT ZERO # →‰→→⁰/₀₀→ + +2031 ; 00BA 002F 2080 2080 2080 ; MA #* ( ‱ → º/₀₀₀ ) PER TEN THOUSAND SIGN → MASCULINE ORDINAL INDICATOR, SOLIDUS, SUBSCRIPT ZERO, SUBSCRIPT ZERO, SUBSCRIPT ZERO # →⁰/₀₀₀→ +060A ; 00BA 002F 2080 2080 2080 ; MA #* ( ؊ → º/₀₀₀ ) ARABIC-INDIC PER TEN THOUSAND SIGN → MASCULINE ORDINAL INDICATOR, SOLIDUS, SUBSCRIPT ZERO, SUBSCRIPT ZERO, SUBSCRIPT ZERO # →‱→→⁰/₀₀₀→ + +0153 ; 006F 0065 ; MA # ( œ → oe ) LATIN SMALL LIGATURE OE → LATIN SMALL LETTER O, LATIN SMALL LETTER E # + +0152 ; 004F 0045 ; MA # ( Œ → OE ) LATIN CAPITAL LIGATURE OE → LATIN CAPITAL LETTER O, LATIN CAPITAL LETTER E # + +0276 ; 006F 1D07 ; MA # ( ɶ → oᴇ ) LATIN LETTER SMALL CAPITAL OE → LATIN SMALL LETTER O, LATIN LETTER SMALL CAPITAL E # + +221E ; 006F 006F ; MA #* ( ∞ → oo ) INFINITY → LATIN SMALL LETTER O, LATIN SMALL LETTER O # →ꝏ→ +A74F ; 006F 006F ; MA # ( ꝏ → oo ) LATIN SMALL LETTER OO → LATIN SMALL LETTER O, LATIN SMALL LETTER O # +A699 ; 006F 006F ; MA # ( ꚙ → oo ) CYRILLIC SMALL LETTER DOUBLE O → LATIN SMALL LETTER O, LATIN SMALL LETTER O # + +A74E ; 004F 004F ; MA # ( Ꝏ → OO ) LATIN CAPITAL LETTER OO → LATIN CAPITAL LETTER O, LATIN CAPITAL LETTER O # +A698 ; 004F 004F ; MA # ( Ꚙ → OO ) CYRILLIC CAPITAL LETTER DOUBLE O → LATIN CAPITAL LETTER O, LATIN CAPITAL LETTER O # + +FCD7 ; 006F 062C ; MA # ( ‎ﳗ‎ → ‎oج‎ ) ARABIC LIGATURE HEH WITH JEEM INITIAL FORM → LATIN SMALL LETTER O, ARABIC LETTER JEEM # →‎هج‎→ +FC51 ; 006F 062C ; MA # ( ‎ﱑ‎ → ‎oج‎ ) ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM → LATIN SMALL LETTER O, ARABIC LETTER JEEM # →‎هج‎→ + +FCD8 ; 006F 0645 ; MA # ( ‎ﳘ‎ → ‎oم‎ ) ARABIC LIGATURE HEH WITH MEEM INITIAL FORM → LATIN SMALL LETTER O, ARABIC LETTER MEEM # →‎هم‎→ +FC52 ; 006F 0645 ; MA # ( ‎ﱒ‎ → ‎oم‎ ) ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM → LATIN SMALL LETTER O, ARABIC LETTER MEEM # →‎هم‎→ + +FD93 ; 006F 0645 062C ; MA # ( ‎ﶓ‎ → ‎oمج‎ ) ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM → LATIN SMALL LETTER O, ARABIC LETTER MEEM, ARABIC LETTER JEEM # →‎همج‎→ + +FD94 ; 006F 0645 0645 ; MA # ( ‎ﶔ‎ → ‎oمم‎ ) ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM → LATIN SMALL LETTER O, ARABIC LETTER MEEM, ARABIC LETTER MEEM # →‎همم‎→ + +FC53 ; 006F 0649 ; MA # ( ‎ﱓ‎ → ‎oى‎ ) ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM → LATIN SMALL LETTER O, ARABIC LETTER ALEF MAKSURA # →‎هى‎→ +FC54 ; 006F 0649 ; MA # ( ‎ﱔ‎ → ‎oى‎ ) ARABIC LIGATURE HEH WITH YEH ISOLATED FORM → LATIN SMALL LETTER O, ARABIC LETTER ALEF MAKSURA # →‎هي‎→ + +0D5F ; 006F 0D30 006F ; MA # ( ൟ → oരo ) MALAYALAM LETTER ARCHAIC II → LATIN SMALL LETTER O, MALAYALAM LETTER RA, LATIN SMALL LETTER O # →ംരം→ + +1010 ; 006F 102C ; MA # ( တ → oာ ) MYANMAR LETTER TA → LATIN SMALL LETTER O, MYANMAR VOWEL SIGN AA # →ဝာ→ + +3358 ; 004F 70B9 ; MA #* ( ㍘ → O点 ) IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO → LATIN CAPITAL LETTER O, CJK UNIFIED IDEOGRAPH-70B9 # →0点→ + +2184 ; 0254 ; MA # ( ↄ → ɔ ) LATIN SMALL LETTER REVERSED C → LATIN SMALL LETTER OPEN O # +1D10 ; 0254 ; MA # ( ᴐ → ɔ ) LATIN LETTER SMALL CAPITAL OPEN O → LATIN SMALL LETTER OPEN O # +037B ; 0254 ; MA # ( ͻ → ɔ ) GREEK SMALL REVERSED LUNATE SIGMA SYMBOL → LATIN SMALL LETTER OPEN O # +1044B ; 0254 ; MA # ( 𐑋 → ɔ ) DESERET SMALL LETTER EM → LATIN SMALL LETTER OPEN O # + +2183 ; 0186 ; MA # ( Ↄ → Ɔ ) ROMAN NUMERAL REVERSED ONE HUNDRED → LATIN CAPITAL LETTER OPEN O # +03FD ; 0186 ; MA # ( Ͻ → Ɔ ) GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL → LATIN CAPITAL LETTER OPEN O # +A4DB ; 0186 ; MA # ( ꓛ → Ɔ ) LISU LETTER CHA → LATIN CAPITAL LETTER OPEN O # +10423 ; 0186 ; MA # ( 𐐣 → Ɔ ) DESERET CAPITAL LETTER EM → LATIN CAPITAL LETTER OPEN O # + +AB3F ; 0254 0338 ; MA # ( ꬿ → ɔ̸ ) LATIN SMALL LETTER OPEN O WITH STROKE → LATIN SMALL LETTER OPEN O, COMBINING LONG SOLIDUS OVERLAY # + +AB62 ; 0254 0065 ; MA # ( ꭢ → ɔe ) LATIN SMALL LETTER OPEN OE → LATIN SMALL LETTER OPEN O, LATIN SMALL LETTER E # + +1043F ; 0277 ; MA # ( 𐐿 → ɷ ) DESERET SMALL LETTER KAY → LATIN SMALL LETTER CLOSED OMEGA # + +2374 ; 0070 ; MA #* ( ⍴ → p ) APL FUNCTIONAL SYMBOL RHO → LATIN SMALL LETTER P # →ρ→ +FF50 ; 0070 ; MA # ( p → p ) FULLWIDTH LATIN SMALL LETTER P → LATIN SMALL LETTER P # →р→ +1D429 ; 0070 ; MA # ( 𝐩 → p ) MATHEMATICAL BOLD SMALL P → LATIN SMALL LETTER P # +1D45D ; 0070 ; MA # ( 𝑝 → p ) MATHEMATICAL ITALIC SMALL P → LATIN SMALL LETTER P # +1D491 ; 0070 ; MA # ( 𝒑 → p ) MATHEMATICAL BOLD ITALIC SMALL P → LATIN SMALL LETTER P # +1D4C5 ; 0070 ; MA # ( 𝓅 → p ) MATHEMATICAL SCRIPT SMALL P → LATIN SMALL LETTER P # +1D4F9 ; 0070 ; MA # ( 𝓹 → p ) MATHEMATICAL BOLD SCRIPT SMALL P → LATIN SMALL LETTER P # +1D52D ; 0070 ; MA # ( 𝔭 → p ) MATHEMATICAL FRAKTUR SMALL P → LATIN SMALL LETTER P # +1D561 ; 0070 ; MA # ( 𝕡 → p ) MATHEMATICAL DOUBLE-STRUCK SMALL P → LATIN SMALL LETTER P # +1D595 ; 0070 ; MA # ( 𝖕 → p ) MATHEMATICAL BOLD FRAKTUR SMALL P → LATIN SMALL LETTER P # +1D5C9 ; 0070 ; MA # ( 𝗉 → p ) MATHEMATICAL SANS-SERIF SMALL P → LATIN SMALL LETTER P # +1D5FD ; 0070 ; MA # ( 𝗽 → p ) MATHEMATICAL SANS-SERIF BOLD SMALL P → LATIN SMALL LETTER P # +1D631 ; 0070 ; MA # ( 𝘱 → p ) MATHEMATICAL SANS-SERIF ITALIC SMALL P → LATIN SMALL LETTER P # +1D665 ; 0070 ; MA # ( 𝙥 → p ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P → LATIN SMALL LETTER P # +1D699 ; 0070 ; MA # ( 𝚙 → p ) MATHEMATICAL MONOSPACE SMALL P → LATIN SMALL LETTER P # +03C1 ; 0070 ; MA # ( ρ → p ) GREEK SMALL LETTER RHO → LATIN SMALL LETTER P # +03F1 ; 0070 ; MA # ( ϱ → p ) GREEK RHO SYMBOL → LATIN SMALL LETTER P # →ρ→ +1D6D2 ; 0070 ; MA # ( 𝛒 → p ) MATHEMATICAL BOLD SMALL RHO → LATIN SMALL LETTER P # →ρ→ +1D6E0 ; 0070 ; MA # ( 𝛠 → p ) MATHEMATICAL BOLD RHO SYMBOL → LATIN SMALL LETTER P # →ρ→ +1D70C ; 0070 ; MA # ( 𝜌 → p ) MATHEMATICAL ITALIC SMALL RHO → LATIN SMALL LETTER P # →ρ→ +1D71A ; 0070 ; MA # ( 𝜚 → p ) MATHEMATICAL ITALIC RHO SYMBOL → LATIN SMALL LETTER P # →ρ→ +1D746 ; 0070 ; MA # ( 𝝆 → p ) MATHEMATICAL BOLD ITALIC SMALL RHO → LATIN SMALL LETTER P # →ρ→ +1D754 ; 0070 ; MA # ( 𝝔 → p ) MATHEMATICAL BOLD ITALIC RHO SYMBOL → LATIN SMALL LETTER P # →ρ→ +1D780 ; 0070 ; MA # ( 𝞀 → p ) MATHEMATICAL SANS-SERIF BOLD SMALL RHO → LATIN SMALL LETTER P # →ρ→ +1D78E ; 0070 ; MA # ( 𝞎 → p ) MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL → LATIN SMALL LETTER P # →ρ→ +1D7BA ; 0070 ; MA # ( 𝞺 → p ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO → LATIN SMALL LETTER P # →ρ→ +1D7C8 ; 0070 ; MA # ( 𝟈 → p ) MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL → LATIN SMALL LETTER P # →ρ→ +2CA3 ; 0070 ; MA # ( ⲣ → p ) COPTIC SMALL LETTER RO → LATIN SMALL LETTER P # →ρ→ +0440 ; 0070 ; MA # ( р → p ) CYRILLIC SMALL LETTER ER → LATIN SMALL LETTER P # + +FF30 ; 0050 ; MA # ( P → P ) FULLWIDTH LATIN CAPITAL LETTER P → LATIN CAPITAL LETTER P # →Р→ +2119 ; 0050 ; MA # ( ℙ → P ) DOUBLE-STRUCK CAPITAL P → LATIN CAPITAL LETTER P # +1D40F ; 0050 ; MA # ( 𝐏 → P ) MATHEMATICAL BOLD CAPITAL P → LATIN CAPITAL LETTER P # +1D443 ; 0050 ; MA # ( 𝑃 → P ) MATHEMATICAL ITALIC CAPITAL P → LATIN CAPITAL LETTER P # +1D477 ; 0050 ; MA # ( 𝑷 → P ) MATHEMATICAL BOLD ITALIC CAPITAL P → LATIN CAPITAL LETTER P # +1D4AB ; 0050 ; MA # ( 𝒫 → P ) MATHEMATICAL SCRIPT CAPITAL P → LATIN CAPITAL LETTER P # +1D4DF ; 0050 ; MA # ( 𝓟 → P ) MATHEMATICAL BOLD SCRIPT CAPITAL P → LATIN CAPITAL LETTER P # +1D513 ; 0050 ; MA # ( 𝔓 → P ) MATHEMATICAL FRAKTUR CAPITAL P → LATIN CAPITAL LETTER P # +1D57B ; 0050 ; MA # ( 𝕻 → P ) MATHEMATICAL BOLD FRAKTUR CAPITAL P → LATIN CAPITAL LETTER P # +1D5AF ; 0050 ; MA # ( 𝖯 → P ) MATHEMATICAL SANS-SERIF CAPITAL P → LATIN CAPITAL LETTER P # +1D5E3 ; 0050 ; MA # ( 𝗣 → P ) MATHEMATICAL SANS-SERIF BOLD CAPITAL P → LATIN CAPITAL LETTER P # +1D617 ; 0050 ; MA # ( 𝘗 → P ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL P → LATIN CAPITAL LETTER P # +1D64B ; 0050 ; MA # ( 𝙋 → P ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P → LATIN CAPITAL LETTER P # +1D67F ; 0050 ; MA # ( 𝙿 → P ) MATHEMATICAL MONOSPACE CAPITAL P → LATIN CAPITAL LETTER P # +03A1 ; 0050 ; MA # ( Ρ → P ) GREEK CAPITAL LETTER RHO → LATIN CAPITAL LETTER P # +1D6B8 ; 0050 ; MA # ( 𝚸 → P ) MATHEMATICAL BOLD CAPITAL RHO → LATIN CAPITAL LETTER P # →𝐏→ +1D6F2 ; 0050 ; MA # ( 𝛲 → P ) MATHEMATICAL ITALIC CAPITAL RHO → LATIN CAPITAL LETTER P # →Ρ→ +1D72C ; 0050 ; MA # ( 𝜬 → P ) MATHEMATICAL BOLD ITALIC CAPITAL RHO → LATIN CAPITAL LETTER P # →Ρ→ +1D766 ; 0050 ; MA # ( 𝝦 → P ) MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO → LATIN CAPITAL LETTER P # →Ρ→ +1D7A0 ; 0050 ; MA # ( 𝞠 → P ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO → LATIN CAPITAL LETTER P # →Ρ→ +2CA2 ; 0050 ; MA # ( Ⲣ → P ) COPTIC CAPITAL LETTER RO → LATIN CAPITAL LETTER P # +0420 ; 0050 ; MA # ( Р → P ) CYRILLIC CAPITAL LETTER ER → LATIN CAPITAL LETTER P # +13E2 ; 0050 ; MA # ( Ꮲ → P ) CHEROKEE LETTER TLV → LATIN CAPITAL LETTER P # +146D ; 0050 ; MA # ( ᑭ → P ) CANADIAN SYLLABICS KI → LATIN CAPITAL LETTER P # +A4D1 ; 0050 ; MA # ( ꓑ → P ) LISU LETTER PA → LATIN CAPITAL LETTER P # +10295 ; 0050 ; MA # ( 𐊕 → P ) LYCIAN LETTER R → LATIN CAPITAL LETTER P # + +01A5 ; 0070 0314 ; MA # ( ƥ → p̔ ) LATIN SMALL LETTER P WITH HOOK → LATIN SMALL LETTER P, COMBINING REVERSED COMMA ABOVE # + +1D7D ; 0070 0335 ; MA # ( ᵽ → p̵ ) LATIN SMALL LETTER P WITH STROKE → LATIN SMALL LETTER P, COMBINING SHORT STROKE OVERLAY # + +1477 ; 0070 00B7 ; MA # ( ᑷ → p· ) CANADIAN SYLLABICS WEST-CREE KWI → LATIN SMALL LETTER P, MIDDLE DOT # →pᐧ→ + +1486 ; 0050 0027 ; MA # ( ᒆ → P' ) CANADIAN SYLLABICS SOUTH-SLAVEY KIH → LATIN CAPITAL LETTER P, APOSTROPHE # →ᑭᑊ→ + +1D29 ; 1D18 ; MA # ( ᴩ → ᴘ ) GREEK LETTER SMALL CAPITAL RHO → LATIN LETTER SMALL CAPITAL P # +ABB2 ; 1D18 ; MA # ( ꮲ → ᴘ ) CHEROKEE SMALL LETTER TLV → LATIN LETTER SMALL CAPITAL P # + +03C6 ; 0278 ; MA # ( φ → ɸ ) GREEK SMALL LETTER PHI → LATIN SMALL LETTER PHI # +03D5 ; 0278 ; MA # ( ϕ → ɸ ) GREEK PHI SYMBOL → LATIN SMALL LETTER PHI # +1D6D7 ; 0278 ; MA # ( 𝛗 → ɸ ) MATHEMATICAL BOLD SMALL PHI → LATIN SMALL LETTER PHI # →φ→ +1D6DF ; 0278 ; MA # ( 𝛟 → ɸ ) MATHEMATICAL BOLD PHI SYMBOL → LATIN SMALL LETTER PHI # →φ→ +1D711 ; 0278 ; MA # ( 𝜑 → ɸ ) MATHEMATICAL ITALIC SMALL PHI → LATIN SMALL LETTER PHI # →φ→ +1D719 ; 0278 ; MA # ( 𝜙 → ɸ ) MATHEMATICAL ITALIC PHI SYMBOL → LATIN SMALL LETTER PHI # →φ→ +1D74B ; 0278 ; MA # ( 𝝋 → ɸ ) MATHEMATICAL BOLD ITALIC SMALL PHI → LATIN SMALL LETTER PHI # →φ→ +1D753 ; 0278 ; MA # ( 𝝓 → ɸ ) MATHEMATICAL BOLD ITALIC PHI SYMBOL → LATIN SMALL LETTER PHI # →φ→ +1D785 ; 0278 ; MA # ( 𝞅 → ɸ ) MATHEMATICAL SANS-SERIF BOLD SMALL PHI → LATIN SMALL LETTER PHI # →φ→ +1D78D ; 0278 ; MA # ( 𝞍 → ɸ ) MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL → LATIN SMALL LETTER PHI # →φ→ +1D7BF ; 0278 ; MA # ( 𝞿 → ɸ ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI → LATIN SMALL LETTER PHI # →φ→ +1D7C7 ; 0278 ; MA # ( 𝟇 → ɸ ) MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL → LATIN SMALL LETTER PHI # →φ→ +2CAB ; 0278 ; MA # ( ⲫ → ɸ ) COPTIC SMALL LETTER FI → LATIN SMALL LETTER PHI # →ϕ→ +0444 ; 0278 ; MA # ( ф → ɸ ) CYRILLIC SMALL LETTER EF → LATIN SMALL LETTER PHI # + +1D42A ; 0071 ; MA # ( 𝐪 → q ) MATHEMATICAL BOLD SMALL Q → LATIN SMALL LETTER Q # +1D45E ; 0071 ; MA # ( 𝑞 → q ) MATHEMATICAL ITALIC SMALL Q → LATIN SMALL LETTER Q # +1D492 ; 0071 ; MA # ( 𝒒 → q ) MATHEMATICAL BOLD ITALIC SMALL Q → LATIN SMALL LETTER Q # +1D4C6 ; 0071 ; MA # ( 𝓆 → q ) MATHEMATICAL SCRIPT SMALL Q → LATIN SMALL LETTER Q # +1D4FA ; 0071 ; MA # ( 𝓺 → q ) MATHEMATICAL BOLD SCRIPT SMALL Q → LATIN SMALL LETTER Q # +1D52E ; 0071 ; MA # ( 𝔮 → q ) MATHEMATICAL FRAKTUR SMALL Q → LATIN SMALL LETTER Q # +1D562 ; 0071 ; MA # ( 𝕢 → q ) MATHEMATICAL DOUBLE-STRUCK SMALL Q → LATIN SMALL LETTER Q # +1D596 ; 0071 ; MA # ( 𝖖 → q ) MATHEMATICAL BOLD FRAKTUR SMALL Q → LATIN SMALL LETTER Q # +1D5CA ; 0071 ; MA # ( 𝗊 → q ) MATHEMATICAL SANS-SERIF SMALL Q → LATIN SMALL LETTER Q # +1D5FE ; 0071 ; MA # ( 𝗾 → q ) MATHEMATICAL SANS-SERIF BOLD SMALL Q → LATIN SMALL LETTER Q # +1D632 ; 0071 ; MA # ( 𝘲 → q ) MATHEMATICAL SANS-SERIF ITALIC SMALL Q → LATIN SMALL LETTER Q # +1D666 ; 0071 ; MA # ( 𝙦 → q ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q → LATIN SMALL LETTER Q # +1D69A ; 0071 ; MA # ( 𝚚 → q ) MATHEMATICAL MONOSPACE SMALL Q → LATIN SMALL LETTER Q # +051B ; 0071 ; MA # ( ԛ → q ) CYRILLIC SMALL LETTER QA → LATIN SMALL LETTER Q # +0563 ; 0071 ; MA # ( գ → q ) ARMENIAN SMALL LETTER GIM → LATIN SMALL LETTER Q # +0566 ; 0071 ; MA # ( զ → q ) ARMENIAN SMALL LETTER ZA → LATIN SMALL LETTER Q # + +211A ; 0051 ; MA # ( ℚ → Q ) DOUBLE-STRUCK CAPITAL Q → LATIN CAPITAL LETTER Q # +1D410 ; 0051 ; MA # ( 𝐐 → Q ) MATHEMATICAL BOLD CAPITAL Q → LATIN CAPITAL LETTER Q # +1D444 ; 0051 ; MA # ( 𝑄 → Q ) MATHEMATICAL ITALIC CAPITAL Q → LATIN CAPITAL LETTER Q # +1D478 ; 0051 ; MA # ( 𝑸 → Q ) MATHEMATICAL BOLD ITALIC CAPITAL Q → LATIN CAPITAL LETTER Q # +1D4AC ; 0051 ; MA # ( 𝒬 → Q ) MATHEMATICAL SCRIPT CAPITAL Q → LATIN CAPITAL LETTER Q # +1D4E0 ; 0051 ; MA # ( 𝓠 → Q ) MATHEMATICAL BOLD SCRIPT CAPITAL Q → LATIN CAPITAL LETTER Q # +1D514 ; 0051 ; MA # ( 𝔔 → Q ) MATHEMATICAL FRAKTUR CAPITAL Q → LATIN CAPITAL LETTER Q # +1D57C ; 0051 ; MA # ( 𝕼 → Q ) MATHEMATICAL BOLD FRAKTUR CAPITAL Q → LATIN CAPITAL LETTER Q # +1D5B0 ; 0051 ; MA # ( 𝖰 → Q ) MATHEMATICAL SANS-SERIF CAPITAL Q → LATIN CAPITAL LETTER Q # +1D5E4 ; 0051 ; MA # ( 𝗤 → Q ) MATHEMATICAL SANS-SERIF BOLD CAPITAL Q → LATIN CAPITAL LETTER Q # +1D618 ; 0051 ; MA # ( 𝘘 → Q ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q → LATIN CAPITAL LETTER Q # +1D64C ; 0051 ; MA # ( 𝙌 → Q ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q → LATIN CAPITAL LETTER Q # +1D680 ; 0051 ; MA # ( 𝚀 → Q ) MATHEMATICAL MONOSPACE CAPITAL Q → LATIN CAPITAL LETTER Q # +2D55 ; 0051 ; MA # ( ⵕ → Q ) TIFINAGH LETTER YARR → LATIN CAPITAL LETTER Q # + +02A0 ; 0071 0314 ; MA # ( ʠ → q̔ ) LATIN SMALL LETTER Q WITH HOOK → LATIN SMALL LETTER Q, COMBINING REVERSED COMMA ABOVE # + +1F700 ; 0051 0045 ; MA #* ( 🜀 → QE ) ALCHEMICAL SYMBOL FOR QUINTESSENCE → LATIN CAPITAL LETTER Q, LATIN CAPITAL LETTER E # + +1D90 ; 024B ; MA # ( ᶐ → ɋ ) LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK → LATIN SMALL LETTER Q WITH HOOK TAIL # + +1D0B ; 0138 ; MA # ( ᴋ → ĸ ) LATIN LETTER SMALL CAPITAL K → LATIN SMALL LETTER KRA # +03BA ; 0138 ; MA # ( κ → ĸ ) GREEK SMALL LETTER KAPPA → LATIN SMALL LETTER KRA # +03F0 ; 0138 ; MA # ( ϰ → ĸ ) GREEK KAPPA SYMBOL → LATIN SMALL LETTER KRA # →κ→ +1D6CB ; 0138 ; MA # ( 𝛋 → ĸ ) MATHEMATICAL BOLD SMALL KAPPA → LATIN SMALL LETTER KRA # →κ→ +1D6DE ; 0138 ; MA # ( 𝛞 → ĸ ) MATHEMATICAL BOLD KAPPA SYMBOL → LATIN SMALL LETTER KRA # →κ→ +1D705 ; 0138 ; MA # ( 𝜅 → ĸ ) MATHEMATICAL ITALIC SMALL KAPPA → LATIN SMALL LETTER KRA # →κ→ +1D718 ; 0138 ; MA # ( 𝜘 → ĸ ) MATHEMATICAL ITALIC KAPPA SYMBOL → LATIN SMALL LETTER KRA # →κ→ +1D73F ; 0138 ; MA # ( 𝜿 → ĸ ) MATHEMATICAL BOLD ITALIC SMALL KAPPA → LATIN SMALL LETTER KRA # →κ→ +1D752 ; 0138 ; MA # ( 𝝒 → ĸ ) MATHEMATICAL BOLD ITALIC KAPPA SYMBOL → LATIN SMALL LETTER KRA # →κ→ +1D779 ; 0138 ; MA # ( 𝝹 → ĸ ) MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA → LATIN SMALL LETTER KRA # →κ→ +1D78C ; 0138 ; MA # ( 𝞌 → ĸ ) MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL → LATIN SMALL LETTER KRA # →κ→ +1D7B3 ; 0138 ; MA # ( 𝞳 → ĸ ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA → LATIN SMALL LETTER KRA # →κ→ +1D7C6 ; 0138 ; MA # ( 𝟆 → ĸ ) MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL → LATIN SMALL LETTER KRA # →κ→ +2C95 ; 0138 ; MA # ( ⲕ → ĸ ) COPTIC SMALL LETTER KAPA → LATIN SMALL LETTER KRA # →κ→ +043A ; 0138 ; MA # ( к → ĸ ) CYRILLIC SMALL LETTER KA → LATIN SMALL LETTER KRA # +ABB6 ; 0138 ; MA # ( ꮶ → ĸ ) CHEROKEE SMALL LETTER TSO → LATIN SMALL LETTER KRA # →ᴋ→ + +049B ; 0138 0329 ; MA # ( қ → ĸ̩ ) CYRILLIC SMALL LETTER KA WITH DESCENDER → LATIN SMALL LETTER KRA, COMBINING VERTICAL LINE BELOW # →к̩→ + +049F ; 0138 0335 ; MA # ( ҟ → ĸ̵ ) CYRILLIC SMALL LETTER KA WITH STROKE → LATIN SMALL LETTER KRA, COMBINING SHORT STROKE OVERLAY # →к̵→ + +1D42B ; 0072 ; MA # ( 𝐫 → r ) MATHEMATICAL BOLD SMALL R → LATIN SMALL LETTER R # +1D45F ; 0072 ; MA # ( 𝑟 → r ) MATHEMATICAL ITALIC SMALL R → LATIN SMALL LETTER R # +1D493 ; 0072 ; MA # ( 𝒓 → r ) MATHEMATICAL BOLD ITALIC SMALL R → LATIN SMALL LETTER R # +1D4C7 ; 0072 ; MA # ( 𝓇 → r ) MATHEMATICAL SCRIPT SMALL R → LATIN SMALL LETTER R # +1D4FB ; 0072 ; MA # ( 𝓻 → r ) MATHEMATICAL BOLD SCRIPT SMALL R → LATIN SMALL LETTER R # +1D52F ; 0072 ; MA # ( 𝔯 → r ) MATHEMATICAL FRAKTUR SMALL R → LATIN SMALL LETTER R # +1D563 ; 0072 ; MA # ( 𝕣 → r ) MATHEMATICAL DOUBLE-STRUCK SMALL R → LATIN SMALL LETTER R # +1D597 ; 0072 ; MA # ( 𝖗 → r ) MATHEMATICAL BOLD FRAKTUR SMALL R → LATIN SMALL LETTER R # +1D5CB ; 0072 ; MA # ( 𝗋 → r ) MATHEMATICAL SANS-SERIF SMALL R → LATIN SMALL LETTER R # +1D5FF ; 0072 ; MA # ( 𝗿 → r ) MATHEMATICAL SANS-SERIF BOLD SMALL R → LATIN SMALL LETTER R # +1D633 ; 0072 ; MA # ( 𝘳 → r ) MATHEMATICAL SANS-SERIF ITALIC SMALL R → LATIN SMALL LETTER R # +1D667 ; 0072 ; MA # ( 𝙧 → r ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R → LATIN SMALL LETTER R # +1D69B ; 0072 ; MA # ( 𝚛 → r ) MATHEMATICAL MONOSPACE SMALL R → LATIN SMALL LETTER R # +AB47 ; 0072 ; MA # ( ꭇ → r ) LATIN SMALL LETTER R WITHOUT HANDLE → LATIN SMALL LETTER R # +AB48 ; 0072 ; MA # ( ꭈ → r ) LATIN SMALL LETTER DOUBLE R → LATIN SMALL LETTER R # +1D26 ; 0072 ; MA # ( ᴦ → r ) GREEK LETTER SMALL CAPITAL GAMMA → LATIN SMALL LETTER R # →г→ +2C85 ; 0072 ; MA # ( ⲅ → r ) COPTIC SMALL LETTER GAMMA → LATIN SMALL LETTER R # →г→ +0433 ; 0072 ; MA # ( г → r ) CYRILLIC SMALL LETTER GHE → LATIN SMALL LETTER R # +AB81 ; 0072 ; MA # ( ꮁ → r ) CHEROKEE SMALL LETTER HU → LATIN SMALL LETTER R # →ᴦ→→г→ + +1D216 ; 0052 ; MA #* ( 𝈖 → R ) GREEK VOCAL NOTATION SYMBOL-23 → LATIN CAPITAL LETTER R # +211B ; 0052 ; MA # ( ℛ → R ) SCRIPT CAPITAL R → LATIN CAPITAL LETTER R # +211C ; 0052 ; MA # ( ℜ → R ) BLACK-LETTER CAPITAL R → LATIN CAPITAL LETTER R # +211D ; 0052 ; MA # ( ℝ → R ) DOUBLE-STRUCK CAPITAL R → LATIN CAPITAL LETTER R # +1D411 ; 0052 ; MA # ( 𝐑 → R ) MATHEMATICAL BOLD CAPITAL R → LATIN CAPITAL LETTER R # +1D445 ; 0052 ; MA # ( 𝑅 → R ) MATHEMATICAL ITALIC CAPITAL R → LATIN CAPITAL LETTER R # +1D479 ; 0052 ; MA # ( 𝑹 → R ) MATHEMATICAL BOLD ITALIC CAPITAL R → LATIN CAPITAL LETTER R # +1D4E1 ; 0052 ; MA # ( 𝓡 → R ) MATHEMATICAL BOLD SCRIPT CAPITAL R → LATIN CAPITAL LETTER R # +1D57D ; 0052 ; MA # ( 𝕽 → R ) MATHEMATICAL BOLD FRAKTUR CAPITAL R → LATIN CAPITAL LETTER R # +1D5B1 ; 0052 ; MA # ( 𝖱 → R ) MATHEMATICAL SANS-SERIF CAPITAL R → LATIN CAPITAL LETTER R # +1D5E5 ; 0052 ; MA # ( 𝗥 → R ) MATHEMATICAL SANS-SERIF BOLD CAPITAL R → LATIN CAPITAL LETTER R # +1D619 ; 0052 ; MA # ( 𝘙 → R ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL R → LATIN CAPITAL LETTER R # +1D64D ; 0052 ; MA # ( 𝙍 → R ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R → LATIN CAPITAL LETTER R # +1D681 ; 0052 ; MA # ( 𝚁 → R ) MATHEMATICAL MONOSPACE CAPITAL R → LATIN CAPITAL LETTER R # +01A6 ; 0052 ; MA # ( Ʀ → R ) LATIN LETTER YR → LATIN CAPITAL LETTER R # +13A1 ; 0052 ; MA # ( Ꭱ → R ) CHEROKEE LETTER E → LATIN CAPITAL LETTER R # +13D2 ; 0052 ; MA # ( Ꮢ → R ) CHEROKEE LETTER SV → LATIN CAPITAL LETTER R # +104B4 ; 0052 ; MA # ( 𐒴 → R ) OSAGE CAPITAL LETTER BRA → LATIN CAPITAL LETTER R # →Ʀ→ +1587 ; 0052 ; MA # ( ᖇ → R ) CANADIAN SYLLABICS TLHI → LATIN CAPITAL LETTER R # +A4E3 ; 0052 ; MA # ( ꓣ → R ) LISU LETTER ZHA → LATIN CAPITAL LETTER R # +16F35 ; 0052 ; MA # ( 𖼵 → R ) MIAO LETTER ZHA → LATIN CAPITAL LETTER R # + +027D ; 0072 0328 ; MA # ( ɽ → r̨ ) LATIN SMALL LETTER R WITH TAIL → LATIN SMALL LETTER R, COMBINING OGONEK # + +027C ; 0072 0329 ; MA # ( ɼ → r̩ ) LATIN SMALL LETTER R WITH LONG LEG → LATIN SMALL LETTER R, COMBINING VERTICAL LINE BELOW # + +024D ; 0072 0335 ; MA # ( ɍ → r̵ ) LATIN SMALL LETTER R WITH STROKE → LATIN SMALL LETTER R, COMBINING SHORT STROKE OVERLAY # +0493 ; 0072 0335 ; MA # ( ғ → r̵ ) CYRILLIC SMALL LETTER GHE WITH STROKE → LATIN SMALL LETTER R, COMBINING SHORT STROKE OVERLAY # →г̵→ + +1D72 ; 0072 0334 ; MA # ( ᵲ → r̴ ) LATIN SMALL LETTER R WITH MIDDLE TILDE → LATIN SMALL LETTER R, COMBINING TILDE OVERLAY # + +0491 ; 0072 0027 ; MA # ( ґ → r' ) CYRILLIC SMALL LETTER GHE WITH UPTURN → LATIN SMALL LETTER R, APOSTROPHE # →гˈ→ + +118E3 ; 0072 006E ; MA # ( 𑣣 → rn ) WARANG CITI DIGIT THREE → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→ +006D ; 0072 006E ; MA # ( m → rn ) LATIN SMALL LETTER M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # +217F ; 0072 006E ; MA # ( ⅿ → rn ) SMALL ROMAN NUMERAL ONE THOUSAND → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→ +1D426 ; 0072 006E ; MA # ( 𝐦 → rn ) MATHEMATICAL BOLD SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→ +1D45A ; 0072 006E ; MA # ( 𝑚 → rn ) MATHEMATICAL ITALIC SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→ +1D48E ; 0072 006E ; MA # ( 𝒎 → rn ) MATHEMATICAL BOLD ITALIC SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→ +1D4C2 ; 0072 006E ; MA # ( 𝓂 → rn ) MATHEMATICAL SCRIPT SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→ +1D4F6 ; 0072 006E ; MA # ( 𝓶 → rn ) MATHEMATICAL BOLD SCRIPT SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→ +1D52A ; 0072 006E ; MA # ( 𝔪 → rn ) MATHEMATICAL FRAKTUR SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→ +1D55E ; 0072 006E ; MA # ( 𝕞 → rn ) MATHEMATICAL DOUBLE-STRUCK SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→ +1D592 ; 0072 006E ; MA # ( 𝖒 → rn ) MATHEMATICAL BOLD FRAKTUR SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→ +1D5C6 ; 0072 006E ; MA # ( 𝗆 → rn ) MATHEMATICAL SANS-SERIF SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→ +1D5FA ; 0072 006E ; MA # ( 𝗺 → rn ) MATHEMATICAL SANS-SERIF BOLD SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→ +1D62E ; 0072 006E ; MA # ( 𝘮 → rn ) MATHEMATICAL SANS-SERIF ITALIC SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→ +1D662 ; 0072 006E ; MA # ( 𝙢 → rn ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→ +1D696 ; 0072 006E ; MA # ( 𝚖 → rn ) MATHEMATICAL MONOSPACE SMALL M → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→ +11700 ; 0072 006E ; MA # ( 𑜀 → rn ) AHOM LETTER KA → LATIN SMALL LETTER R, LATIN SMALL LETTER N # →m→ + +20A5 ; 0072 006E 0338 ; MA #* ( ₥ → rn̸ ) MILL SIGN → LATIN SMALL LETTER R, LATIN SMALL LETTER N, COMBINING LONG SOLIDUS OVERLAY # →m̷→ + +0271 ; 0072 006E 0326 ; MA # ( ɱ → rn̦ ) LATIN SMALL LETTER M WITH HOOK → LATIN SMALL LETTER R, LATIN SMALL LETTER N, COMBINING COMMA BELOW # →m̡→ + +1D6F ; 0072 006E 0334 ; MA # ( ᵯ → rn̴ ) LATIN SMALL LETTER M WITH MIDDLE TILDE → LATIN SMALL LETTER R, LATIN SMALL LETTER N, COMBINING TILDE OVERLAY # →m̴→ + +20A8 ; 0052 0073 ; MA #* ( ₨ → Rs ) RUPEE SIGN → LATIN CAPITAL LETTER R, LATIN SMALL LETTER S # + +AB71 ; 0280 ; MA # ( ꭱ → ʀ ) CHEROKEE SMALL LETTER E → LATIN LETTER SMALL CAPITAL R # +ABA2 ; 0280 ; MA # ( ꮢ → ʀ ) CHEROKEE SMALL LETTER SV → LATIN LETTER SMALL CAPITAL R # + +044F ; 1D19 ; MA # ( я → ᴙ ) CYRILLIC SMALL LETTER YA → LATIN LETTER SMALL CAPITAL REVERSED R # + +1D73 ; 027E 0334 ; MA # ( ᵳ → ɾ̴ ) LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE → LATIN SMALL LETTER R WITH FISHHOOK, COMBINING TILDE OVERLAY # + +2129 ; 027F ; MA #* ( ℩ → ɿ ) TURNED GREEK SMALL LETTER IOTA → LATIN SMALL LETTER REVERSED R WITH FISHHOOK # + +FF53 ; 0073 ; MA # ( s → s ) FULLWIDTH LATIN SMALL LETTER S → LATIN SMALL LETTER S # →ѕ→ +1D42C ; 0073 ; MA # ( 𝐬 → s ) MATHEMATICAL BOLD SMALL S → LATIN SMALL LETTER S # +1D460 ; 0073 ; MA # ( 𝑠 → s ) MATHEMATICAL ITALIC SMALL S → LATIN SMALL LETTER S # +1D494 ; 0073 ; MA # ( 𝒔 → s ) MATHEMATICAL BOLD ITALIC SMALL S → LATIN SMALL LETTER S # +1D4C8 ; 0073 ; MA # ( 𝓈 → s ) MATHEMATICAL SCRIPT SMALL S → LATIN SMALL LETTER S # +1D4FC ; 0073 ; MA # ( 𝓼 → s ) MATHEMATICAL BOLD SCRIPT SMALL S → LATIN SMALL LETTER S # +1D530 ; 0073 ; MA # ( 𝔰 → s ) MATHEMATICAL FRAKTUR SMALL S → LATIN SMALL LETTER S # +1D564 ; 0073 ; MA # ( 𝕤 → s ) MATHEMATICAL DOUBLE-STRUCK SMALL S → LATIN SMALL LETTER S # +1D598 ; 0073 ; MA # ( 𝖘 → s ) MATHEMATICAL BOLD FRAKTUR SMALL S → LATIN SMALL LETTER S # +1D5CC ; 0073 ; MA # ( 𝗌 → s ) MATHEMATICAL SANS-SERIF SMALL S → LATIN SMALL LETTER S # +1D600 ; 0073 ; MA # ( 𝘀 → s ) MATHEMATICAL SANS-SERIF BOLD SMALL S → LATIN SMALL LETTER S # +1D634 ; 0073 ; MA # ( 𝘴 → s ) MATHEMATICAL SANS-SERIF ITALIC SMALL S → LATIN SMALL LETTER S # +1D668 ; 0073 ; MA # ( 𝙨 → s ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S → LATIN SMALL LETTER S # +1D69C ; 0073 ; MA # ( 𝚜 → s ) MATHEMATICAL MONOSPACE SMALL S → LATIN SMALL LETTER S # +A731 ; 0073 ; MA # ( ꜱ → s ) LATIN LETTER SMALL CAPITAL S → LATIN SMALL LETTER S # +01BD ; 0073 ; MA # ( ƽ → s ) LATIN SMALL LETTER TONE FIVE → LATIN SMALL LETTER S # +0455 ; 0073 ; MA # ( ѕ → s ) CYRILLIC SMALL LETTER DZE → LATIN SMALL LETTER S # +ABAA ; 0073 ; MA # ( ꮪ → s ) CHEROKEE SMALL LETTER DU → LATIN SMALL LETTER S # →ꜱ→ +118C1 ; 0073 ; MA # ( 𑣁 → s ) WARANG CITI SMALL LETTER A → LATIN SMALL LETTER S # +10448 ; 0073 ; MA # ( 𐑈 → s ) DESERET SMALL LETTER ZHEE → LATIN SMALL LETTER S # + +FF33 ; 0053 ; MA # ( S → S ) FULLWIDTH LATIN CAPITAL LETTER S → LATIN CAPITAL LETTER S # →Ѕ→ +1D412 ; 0053 ; MA # ( 𝐒 → S ) MATHEMATICAL BOLD CAPITAL S → LATIN CAPITAL LETTER S # +1D446 ; 0053 ; MA # ( 𝑆 → S ) MATHEMATICAL ITALIC CAPITAL S → LATIN CAPITAL LETTER S # +1D47A ; 0053 ; MA # ( 𝑺 → S ) MATHEMATICAL BOLD ITALIC CAPITAL S → LATIN CAPITAL LETTER S # +1D4AE ; 0053 ; MA # ( 𝒮 → S ) MATHEMATICAL SCRIPT CAPITAL S → LATIN CAPITAL LETTER S # +1D4E2 ; 0053 ; MA # ( 𝓢 → S ) MATHEMATICAL BOLD SCRIPT CAPITAL S → LATIN CAPITAL LETTER S # +1D516 ; 0053 ; MA # ( 𝔖 → S ) MATHEMATICAL FRAKTUR CAPITAL S → LATIN CAPITAL LETTER S # +1D54A ; 0053 ; MA # ( 𝕊 → S ) MATHEMATICAL DOUBLE-STRUCK CAPITAL S → LATIN CAPITAL LETTER S # +1D57E ; 0053 ; MA # ( 𝕾 → S ) MATHEMATICAL BOLD FRAKTUR CAPITAL S → LATIN CAPITAL LETTER S # +1D5B2 ; 0053 ; MA # ( 𝖲 → S ) MATHEMATICAL SANS-SERIF CAPITAL S → LATIN CAPITAL LETTER S # +1D5E6 ; 0053 ; MA # ( 𝗦 → S ) MATHEMATICAL SANS-SERIF BOLD CAPITAL S → LATIN CAPITAL LETTER S # +1D61A ; 0053 ; MA # ( 𝘚 → S ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL S → LATIN CAPITAL LETTER S # +1D64E ; 0053 ; MA # ( 𝙎 → S ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S → LATIN CAPITAL LETTER S # +1D682 ; 0053 ; MA # ( 𝚂 → S ) MATHEMATICAL MONOSPACE CAPITAL S → LATIN CAPITAL LETTER S # +0405 ; 0053 ; MA # ( Ѕ → S ) CYRILLIC CAPITAL LETTER DZE → LATIN CAPITAL LETTER S # +054F ; 0053 ; MA # ( Տ → S ) ARMENIAN CAPITAL LETTER TIWN → LATIN CAPITAL LETTER S # +13D5 ; 0053 ; MA # ( Ꮥ → S ) CHEROKEE LETTER DE → LATIN CAPITAL LETTER S # +13DA ; 0053 ; MA # ( Ꮪ → S ) CHEROKEE LETTER DU → LATIN CAPITAL LETTER S # +A4E2 ; 0053 ; MA # ( ꓢ → S ) LISU LETTER SA → LATIN CAPITAL LETTER S # +16F3A ; 0053 ; MA # ( 𖼺 → S ) MIAO LETTER SA → LATIN CAPITAL LETTER S # +10296 ; 0053 ; MA # ( 𐊖 → S ) LYCIAN LETTER S → LATIN CAPITAL LETTER S # +10420 ; 0053 ; MA # ( 𐐠 → S ) DESERET CAPITAL LETTER ZHEE → LATIN CAPITAL LETTER S # + +0282 ; 0073 0328 ; MA # ( ʂ → s̨ ) LATIN SMALL LETTER S WITH HOOK → LATIN SMALL LETTER S, COMBINING OGONEK # + +1D74 ; 0073 0334 ; MA # ( ᵴ → s̴ ) LATIN SMALL LETTER S WITH MIDDLE TILDE → LATIN SMALL LETTER S, COMBINING TILDE OVERLAY # + +A7B5 ; 00DF ; MA # ( ꞵ → ß ) LATIN SMALL LETTER BETA → LATIN SMALL LETTER SHARP S # →β→ +03B2 ; 00DF ; MA # ( β → ß ) GREEK SMALL LETTER BETA → LATIN SMALL LETTER SHARP S # +03D0 ; 00DF ; MA # ( ϐ → ß ) GREEK BETA SYMBOL → LATIN SMALL LETTER SHARP S # →β→ +1D6C3 ; 00DF ; MA # ( 𝛃 → ß ) MATHEMATICAL BOLD SMALL BETA → LATIN SMALL LETTER SHARP S # →β→ +1D6FD ; 00DF ; MA # ( 𝛽 → ß ) MATHEMATICAL ITALIC SMALL BETA → LATIN SMALL LETTER SHARP S # →β→ +1D737 ; 00DF ; MA # ( 𝜷 → ß ) MATHEMATICAL BOLD ITALIC SMALL BETA → LATIN SMALL LETTER SHARP S # →β→ +1D771 ; 00DF ; MA # ( 𝝱 → ß ) MATHEMATICAL SANS-SERIF BOLD SMALL BETA → LATIN SMALL LETTER SHARP S # →β→ +1D7AB ; 00DF ; MA # ( 𝞫 → ß ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA → LATIN SMALL LETTER SHARP S # →β→ +13F0 ; 00DF ; MA # ( Ᏸ → ß ) CHEROKEE LETTER YE → LATIN SMALL LETTER SHARP S # →β→ + +1F75C ; 0073 0073 0073 ; MA #* ( 🝜 → sss ) ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM → LATIN SMALL LETTER S, LATIN SMALL LETTER S, LATIN SMALL LETTER S # + +FB06 ; 0073 0074 ; MA # ( st → st ) LATIN SMALL LIGATURE ST → LATIN SMALL LETTER S, LATIN SMALL LETTER T # + +222B ; 0283 ; MA #* ( ∫ → ʃ ) INTEGRAL → LATIN SMALL LETTER ESH # +AB4D ; 0283 ; MA # ( ꭍ → ʃ ) LATIN SMALL LETTER BASELINE ESH → LATIN SMALL LETTER ESH # + +2211 ; 01A9 ; MA #* ( ∑ → Ʃ ) N-ARY SUMMATION → LATIN CAPITAL LETTER ESH # +2140 ; 01A9 ; MA #* ( ⅀ → Ʃ ) DOUBLE-STRUCK N-ARY SUMMATION → LATIN CAPITAL LETTER ESH # →∑→ +03A3 ; 01A9 ; MA # ( Σ → Ʃ ) GREEK CAPITAL LETTER SIGMA → LATIN CAPITAL LETTER ESH # +1D6BA ; 01A9 ; MA # ( 𝚺 → Ʃ ) MATHEMATICAL BOLD CAPITAL SIGMA → LATIN CAPITAL LETTER ESH # →Σ→ +1D6F4 ; 01A9 ; MA # ( 𝛴 → Ʃ ) MATHEMATICAL ITALIC CAPITAL SIGMA → LATIN CAPITAL LETTER ESH # →Σ→ +1D72E ; 01A9 ; MA # ( 𝜮 → Ʃ ) MATHEMATICAL BOLD ITALIC CAPITAL SIGMA → LATIN CAPITAL LETTER ESH # →Σ→ +1D768 ; 01A9 ; MA # ( 𝝨 → Ʃ ) MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA → LATIN CAPITAL LETTER ESH # →Σ→ +1D7A2 ; 01A9 ; MA # ( 𝞢 → Ʃ ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA → LATIN CAPITAL LETTER ESH # →Σ→ +2D49 ; 01A9 ; MA # ( ⵉ → Ʃ ) TIFINAGH LETTER YI → LATIN CAPITAL LETTER ESH # + +222C ; 0283 0283 ; MA #* ( ∬ → ʃʃ ) DOUBLE INTEGRAL → LATIN SMALL LETTER ESH, LATIN SMALL LETTER ESH # →∫∫→ + +222D ; 0283 0283 0283 ; MA #* ( ∭ → ʃʃʃ ) TRIPLE INTEGRAL → LATIN SMALL LETTER ESH, LATIN SMALL LETTER ESH, LATIN SMALL LETTER ESH # →∫∫∫→ + +2A0C ; 0283 0283 0283 0283 ; MA #* ( ⨌ → ʃʃʃʃ ) QUADRUPLE INTEGRAL OPERATOR → LATIN SMALL LETTER ESH, LATIN SMALL LETTER ESH, LATIN SMALL LETTER ESH, LATIN SMALL LETTER ESH # →∫∫∫∫→ + +1D42D ; 0074 ; MA # ( 𝐭 → t ) MATHEMATICAL BOLD SMALL T → LATIN SMALL LETTER T # +1D461 ; 0074 ; MA # ( 𝑡 → t ) MATHEMATICAL ITALIC SMALL T → LATIN SMALL LETTER T # +1D495 ; 0074 ; MA # ( 𝒕 → t ) MATHEMATICAL BOLD ITALIC SMALL T → LATIN SMALL LETTER T # +1D4C9 ; 0074 ; MA # ( 𝓉 → t ) MATHEMATICAL SCRIPT SMALL T → LATIN SMALL LETTER T # +1D4FD ; 0074 ; MA # ( 𝓽 → t ) MATHEMATICAL BOLD SCRIPT SMALL T → LATIN SMALL LETTER T # +1D531 ; 0074 ; MA # ( 𝔱 → t ) MATHEMATICAL FRAKTUR SMALL T → LATIN SMALL LETTER T # +1D565 ; 0074 ; MA # ( 𝕥 → t ) MATHEMATICAL DOUBLE-STRUCK SMALL T → LATIN SMALL LETTER T # +1D599 ; 0074 ; MA # ( 𝖙 → t ) MATHEMATICAL BOLD FRAKTUR SMALL T → LATIN SMALL LETTER T # +1D5CD ; 0074 ; MA # ( 𝗍 → t ) MATHEMATICAL SANS-SERIF SMALL T → LATIN SMALL LETTER T # +1D601 ; 0074 ; MA # ( 𝘁 → t ) MATHEMATICAL SANS-SERIF BOLD SMALL T → LATIN SMALL LETTER T # +1D635 ; 0074 ; MA # ( 𝘵 → t ) MATHEMATICAL SANS-SERIF ITALIC SMALL T → LATIN SMALL LETTER T # +1D669 ; 0074 ; MA # ( 𝙩 → t ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T → LATIN SMALL LETTER T # +1D69D ; 0074 ; MA # ( 𝚝 → t ) MATHEMATICAL MONOSPACE SMALL T → LATIN SMALL LETTER T # + +22A4 ; 0054 ; MA #* ( ⊤ → T ) DOWN TACK → LATIN CAPITAL LETTER T # +27D9 ; 0054 ; MA #* ( ⟙ → T ) LARGE DOWN TACK → LATIN CAPITAL LETTER T # +1F768 ; 0054 ; MA #* ( 🝨 → T ) ALCHEMICAL SYMBOL FOR CRUCIBLE-4 → LATIN CAPITAL LETTER T # +FF34 ; 0054 ; MA # ( T → T ) FULLWIDTH LATIN CAPITAL LETTER T → LATIN CAPITAL LETTER T # →Т→ +1D413 ; 0054 ; MA # ( 𝐓 → T ) MATHEMATICAL BOLD CAPITAL T → LATIN CAPITAL LETTER T # +1D447 ; 0054 ; MA # ( 𝑇 → T ) MATHEMATICAL ITALIC CAPITAL T → LATIN CAPITAL LETTER T # +1D47B ; 0054 ; MA # ( 𝑻 → T ) MATHEMATICAL BOLD ITALIC CAPITAL T → LATIN CAPITAL LETTER T # +1D4AF ; 0054 ; MA # ( 𝒯 → T ) MATHEMATICAL SCRIPT CAPITAL T → LATIN CAPITAL LETTER T # +1D4E3 ; 0054 ; MA # ( 𝓣 → T ) MATHEMATICAL BOLD SCRIPT CAPITAL T → LATIN CAPITAL LETTER T # +1D517 ; 0054 ; MA # ( 𝔗 → T ) MATHEMATICAL FRAKTUR CAPITAL T → LATIN CAPITAL LETTER T # +1D54B ; 0054 ; MA # ( 𝕋 → T ) MATHEMATICAL DOUBLE-STRUCK CAPITAL T → LATIN CAPITAL LETTER T # +1D57F ; 0054 ; MA # ( 𝕿 → T ) MATHEMATICAL BOLD FRAKTUR CAPITAL T → LATIN CAPITAL LETTER T # +1D5B3 ; 0054 ; MA # ( 𝖳 → T ) MATHEMATICAL SANS-SERIF CAPITAL T → LATIN CAPITAL LETTER T # +1D5E7 ; 0054 ; MA # ( 𝗧 → T ) MATHEMATICAL SANS-SERIF BOLD CAPITAL T → LATIN CAPITAL LETTER T # +1D61B ; 0054 ; MA # ( 𝘛 → T ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL T → LATIN CAPITAL LETTER T # +1D64F ; 0054 ; MA # ( 𝙏 → T ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T → LATIN CAPITAL LETTER T # +1D683 ; 0054 ; MA # ( 𝚃 → T ) MATHEMATICAL MONOSPACE CAPITAL T → LATIN CAPITAL LETTER T # +03A4 ; 0054 ; MA # ( Τ → T ) GREEK CAPITAL LETTER TAU → LATIN CAPITAL LETTER T # +1D6BB ; 0054 ; MA # ( 𝚻 → T ) MATHEMATICAL BOLD CAPITAL TAU → LATIN CAPITAL LETTER T # →Τ→ +1D6F5 ; 0054 ; MA # ( 𝛵 → T ) MATHEMATICAL ITALIC CAPITAL TAU → LATIN CAPITAL LETTER T # →Τ→ +1D72F ; 0054 ; MA # ( 𝜯 → T ) MATHEMATICAL BOLD ITALIC CAPITAL TAU → LATIN CAPITAL LETTER T # →Τ→ +1D769 ; 0054 ; MA # ( 𝝩 → T ) MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU → LATIN CAPITAL LETTER T # →Τ→ +1D7A3 ; 0054 ; MA # ( 𝞣 → T ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU → LATIN CAPITAL LETTER T # →Τ→ +2CA6 ; 0054 ; MA # ( Ⲧ → T ) COPTIC CAPITAL LETTER TAU → LATIN CAPITAL LETTER T # +0422 ; 0054 ; MA # ( Т → T ) CYRILLIC CAPITAL LETTER TE → LATIN CAPITAL LETTER T # +13A2 ; 0054 ; MA # ( Ꭲ → T ) CHEROKEE LETTER I → LATIN CAPITAL LETTER T # +A4D4 ; 0054 ; MA # ( ꓔ → T ) LISU LETTER TA → LATIN CAPITAL LETTER T # +16F0A ; 0054 ; MA # ( 𖼊 → T ) MIAO LETTER TA → LATIN CAPITAL LETTER T # +118BC ; 0054 ; MA # ( 𑢼 → T ) WARANG CITI CAPITAL LETTER HAR → LATIN CAPITAL LETTER T # +10297 ; 0054 ; MA # ( 𐊗 → T ) LYCIAN LETTER T → LATIN CAPITAL LETTER T # +102B1 ; 0054 ; MA # ( 𐊱 → T ) CARIAN LETTER C-18 → LATIN CAPITAL LETTER T # +10315 ; 0054 ; MA # ( 𐌕 → T ) OLD ITALIC LETTER TE → LATIN CAPITAL LETTER T # + +01AD ; 0074 0314 ; MA # ( ƭ → t̔ ) LATIN SMALL LETTER T WITH HOOK → LATIN SMALL LETTER T, COMBINING REVERSED COMMA ABOVE # + +2361 ; 0054 0308 ; MA #* ( ⍡ → T̈ ) APL FUNCTIONAL SYMBOL UP TACK DIAERESIS → LATIN CAPITAL LETTER T, COMBINING DIAERESIS # →⊤̈→ + +023E ; 0054 0338 ; MA # ( Ⱦ → T̸ ) LATIN CAPITAL LETTER T WITH DIAGONAL STROKE → LATIN CAPITAL LETTER T, COMBINING LONG SOLIDUS OVERLAY # + +021A ; 0162 ; MA # ( Ț → Ţ ) LATIN CAPITAL LETTER T WITH COMMA BELOW → LATIN CAPITAL LETTER T WITH CEDILLA # + +01AE ; 0054 0328 ; MA # ( Ʈ → T̨ ) LATIN CAPITAL LETTER T WITH RETROFLEX HOOK → LATIN CAPITAL LETTER T, COMBINING OGONEK # + +04AC ; 0054 0329 ; MA # ( Ҭ → T̩ ) CYRILLIC CAPITAL LETTER TE WITH DESCENDER → LATIN CAPITAL LETTER T, COMBINING VERTICAL LINE BELOW # →Т̩→ + +20AE ; 0054 20EB ; MA #* ( ₮ → T⃫ ) TUGRIK SIGN → LATIN CAPITAL LETTER T, COMBINING LONG DOUBLE SOLIDUS OVERLAY # →Т⃫→ + +0167 ; 0074 0335 ; MA # ( ŧ → t̵ ) LATIN SMALL LETTER T WITH STROKE → LATIN SMALL LETTER T, COMBINING SHORT STROKE OVERLAY # + +0166 ; 0054 0335 ; MA # ( Ŧ → T̵ ) LATIN CAPITAL LETTER T WITH STROKE → LATIN CAPITAL LETTER T, COMBINING SHORT STROKE OVERLAY # + +1D75 ; 0074 0334 ; MA # ( ᵵ → t̴ ) LATIN SMALL LETTER T WITH MIDDLE TILDE → LATIN SMALL LETTER T, COMBINING TILDE OVERLAY # + +10A0 ; A786 ; MA # ( Ⴀ → Ꞇ ) GEORGIAN CAPITAL LETTER AN → LATIN CAPITAL LETTER INSULAR T # + +A728 ; 0054 0033 ; MA # ( Ꜩ → T3 ) LATIN CAPITAL LETTER TZ → LATIN CAPITAL LETTER T, DIGIT THREE # →TƷ→ + +02A8 ; 0074 0255 ; MA # ( ʨ → tɕ ) LATIN SMALL LETTER TC DIGRAPH WITH CURL → LATIN SMALL LETTER T, LATIN SMALL LETTER C WITH CURL # + +2121 ; 0054 0045 004C ; MA #* ( ℡ → TEL ) TELEPHONE SIGN → LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER E, LATIN CAPITAL LETTER L # + +A777 ; 0074 0066 ; MA # ( ꝷ → tf ) LATIN SMALL LETTER TUM → LATIN SMALL LETTER T, LATIN SMALL LETTER F # + +02A6 ; 0074 0073 ; MA # ( ʦ → ts ) LATIN SMALL LETTER TS DIGRAPH → LATIN SMALL LETTER T, LATIN SMALL LETTER S # + +02A7 ; 0074 0283 ; MA # ( ʧ → tʃ ) LATIN SMALL LETTER TESH DIGRAPH → LATIN SMALL LETTER T, LATIN SMALL LETTER ESH # + +A729 ; 0074 021D ; MA # ( ꜩ → tȝ ) LATIN SMALL LETTER TZ → LATIN SMALL LETTER T, LATIN SMALL LETTER YOGH # + +03C4 ; 1D1B ; MA # ( τ → ᴛ ) GREEK SMALL LETTER TAU → LATIN LETTER SMALL CAPITAL T # +1D6D5 ; 1D1B ; MA # ( 𝛕 → ᴛ ) MATHEMATICAL BOLD SMALL TAU → LATIN LETTER SMALL CAPITAL T # +1D70F ; 1D1B ; MA # ( 𝜏 → ᴛ ) MATHEMATICAL ITALIC SMALL TAU → LATIN LETTER SMALL CAPITAL T # +1D749 ; 1D1B ; MA # ( 𝝉 → ᴛ ) MATHEMATICAL BOLD ITALIC SMALL TAU → LATIN LETTER SMALL CAPITAL T # +1D783 ; 1D1B ; MA # ( 𝞃 → ᴛ ) MATHEMATICAL SANS-SERIF BOLD SMALL TAU → LATIN LETTER SMALL CAPITAL T # +1D7BD ; 1D1B ; MA # ( 𝞽 → ᴛ ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU → LATIN LETTER SMALL CAPITAL T # +0442 ; 1D1B ; MA # ( т → ᴛ ) CYRILLIC SMALL LETTER TE → LATIN LETTER SMALL CAPITAL T # +AB72 ; 1D1B ; MA # ( ꭲ → ᴛ ) CHEROKEE SMALL LETTER I → LATIN LETTER SMALL CAPITAL T # + +04AD ; 1D1B 0329 ; MA # ( ҭ → ᴛ̩ ) CYRILLIC SMALL LETTER TE WITH DESCENDER → LATIN LETTER SMALL CAPITAL T, COMBINING VERTICAL LINE BELOW # →т̩→ + +0163 ; 01AB ; MA # ( ţ → ƫ ) LATIN SMALL LETTER T WITH CEDILLA → LATIN SMALL LETTER T WITH PALATAL HOOK # +021B ; 01AB ; MA # ( ț → ƫ ) LATIN SMALL LETTER T WITH COMMA BELOW → LATIN SMALL LETTER T WITH PALATAL HOOK # →ţ→ +13BF ; 01AB ; MA # ( Ꮏ → ƫ ) CHEROKEE LETTER HNA → LATIN SMALL LETTER T WITH PALATAL HOOK # + +1D42E ; 0075 ; MA # ( 𝐮 → u ) MATHEMATICAL BOLD SMALL U → LATIN SMALL LETTER U # +1D462 ; 0075 ; MA # ( 𝑢 → u ) MATHEMATICAL ITALIC SMALL U → LATIN SMALL LETTER U # +1D496 ; 0075 ; MA # ( 𝒖 → u ) MATHEMATICAL BOLD ITALIC SMALL U → LATIN SMALL LETTER U # +1D4CA ; 0075 ; MA # ( 𝓊 → u ) MATHEMATICAL SCRIPT SMALL U → LATIN SMALL LETTER U # +1D4FE ; 0075 ; MA # ( 𝓾 → u ) MATHEMATICAL BOLD SCRIPT SMALL U → LATIN SMALL LETTER U # +1D532 ; 0075 ; MA # ( 𝔲 → u ) MATHEMATICAL FRAKTUR SMALL U → LATIN SMALL LETTER U # +1D566 ; 0075 ; MA # ( 𝕦 → u ) MATHEMATICAL DOUBLE-STRUCK SMALL U → LATIN SMALL LETTER U # +1D59A ; 0075 ; MA # ( 𝖚 → u ) MATHEMATICAL BOLD FRAKTUR SMALL U → LATIN SMALL LETTER U # +1D5CE ; 0075 ; MA # ( 𝗎 → u ) MATHEMATICAL SANS-SERIF SMALL U → LATIN SMALL LETTER U # +1D602 ; 0075 ; MA # ( 𝘂 → u ) MATHEMATICAL SANS-SERIF BOLD SMALL U → LATIN SMALL LETTER U # +1D636 ; 0075 ; MA # ( 𝘶 → u ) MATHEMATICAL SANS-SERIF ITALIC SMALL U → LATIN SMALL LETTER U # +1D66A ; 0075 ; MA # ( 𝙪 → u ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U → LATIN SMALL LETTER U # +1D69E ; 0075 ; MA # ( 𝚞 → u ) MATHEMATICAL MONOSPACE SMALL U → LATIN SMALL LETTER U # +A79F ; 0075 ; MA # ( ꞟ → u ) LATIN SMALL LETTER VOLAPUK UE → LATIN SMALL LETTER U # +1D1C ; 0075 ; MA # ( ᴜ → u ) LATIN LETTER SMALL CAPITAL U → LATIN SMALL LETTER U # +AB4E ; 0075 ; MA # ( ꭎ → u ) LATIN SMALL LETTER U WITH SHORT RIGHT LEG → LATIN SMALL LETTER U # +AB52 ; 0075 ; MA # ( ꭒ → u ) LATIN SMALL LETTER U WITH LEFT HOOK → LATIN SMALL LETTER U # +028B ; 0075 ; MA # ( ʋ → u ) LATIN SMALL LETTER V WITH HOOK → LATIN SMALL LETTER U # +03C5 ; 0075 ; MA # ( υ → u ) GREEK SMALL LETTER UPSILON → LATIN SMALL LETTER U # →ʋ→ +1D6D6 ; 0075 ; MA # ( 𝛖 → u ) MATHEMATICAL BOLD SMALL UPSILON → LATIN SMALL LETTER U # →υ→→ʋ→ +1D710 ; 0075 ; MA # ( 𝜐 → u ) MATHEMATICAL ITALIC SMALL UPSILON → LATIN SMALL LETTER U # →υ→→ʋ→ +1D74A ; 0075 ; MA # ( 𝝊 → u ) MATHEMATICAL BOLD ITALIC SMALL UPSILON → LATIN SMALL LETTER U # →υ→→ʋ→ +1D784 ; 0075 ; MA # ( 𝞄 → u ) MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON → LATIN SMALL LETTER U # →υ→→ʋ→ +1D7BE ; 0075 ; MA # ( 𝞾 → u ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON → LATIN SMALL LETTER U # →υ→→ʋ→ +057D ; 0075 ; MA # ( ս → u ) ARMENIAN SMALL LETTER SEH → LATIN SMALL LETTER U # +104F6 ; 0075 ; MA # ( 𐓶 → u ) OSAGE SMALL LETTER U → LATIN SMALL LETTER U # →ᴜ→ +118D8 ; 0075 ; MA # ( 𑣘 → u ) WARANG CITI SMALL LETTER PU → LATIN SMALL LETTER U # →υ→→ʋ→ + +222A ; 0055 ; MA #* ( ∪ → U ) UNION → LATIN CAPITAL LETTER U # →ᑌ→ +22C3 ; 0055 ; MA #* ( ⋃ → U ) N-ARY UNION → LATIN CAPITAL LETTER U # →∪→→ᑌ→ +1D414 ; 0055 ; MA # ( 𝐔 → U ) MATHEMATICAL BOLD CAPITAL U → LATIN CAPITAL LETTER U # +1D448 ; 0055 ; MA # ( 𝑈 → U ) MATHEMATICAL ITALIC CAPITAL U → LATIN CAPITAL LETTER U # +1D47C ; 0055 ; MA # ( 𝑼 → U ) MATHEMATICAL BOLD ITALIC CAPITAL U → LATIN CAPITAL LETTER U # +1D4B0 ; 0055 ; MA # ( 𝒰 → U ) MATHEMATICAL SCRIPT CAPITAL U → LATIN CAPITAL LETTER U # +1D4E4 ; 0055 ; MA # ( 𝓤 → U ) MATHEMATICAL BOLD SCRIPT CAPITAL U → LATIN CAPITAL LETTER U # +1D518 ; 0055 ; MA # ( 𝔘 → U ) MATHEMATICAL FRAKTUR CAPITAL U → LATIN CAPITAL LETTER U # +1D54C ; 0055 ; MA # ( 𝕌 → U ) MATHEMATICAL DOUBLE-STRUCK CAPITAL U → LATIN CAPITAL LETTER U # +1D580 ; 0055 ; MA # ( 𝖀 → U ) MATHEMATICAL BOLD FRAKTUR CAPITAL U → LATIN CAPITAL LETTER U # +1D5B4 ; 0055 ; MA # ( 𝖴 → U ) MATHEMATICAL SANS-SERIF CAPITAL U → LATIN CAPITAL LETTER U # +1D5E8 ; 0055 ; MA # ( 𝗨 → U ) MATHEMATICAL SANS-SERIF BOLD CAPITAL U → LATIN CAPITAL LETTER U # +1D61C ; 0055 ; MA # ( 𝘜 → U ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL U → LATIN CAPITAL LETTER U # +1D650 ; 0055 ; MA # ( 𝙐 → U ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U → LATIN CAPITAL LETTER U # +1D684 ; 0055 ; MA # ( 𝚄 → U ) MATHEMATICAL MONOSPACE CAPITAL U → LATIN CAPITAL LETTER U # +054D ; 0055 ; MA # ( Ս → U ) ARMENIAN CAPITAL LETTER SEH → LATIN CAPITAL LETTER U # +1200 ; 0055 ; MA # ( ሀ → U ) ETHIOPIC SYLLABLE HA → LATIN CAPITAL LETTER U # →Ս→ +104CE ; 0055 ; MA # ( 𐓎 → U ) OSAGE CAPITAL LETTER U → LATIN CAPITAL LETTER U # +144C ; 0055 ; MA # ( ᑌ → U ) CANADIAN SYLLABICS TE → LATIN CAPITAL LETTER U # +A4F4 ; 0055 ; MA # ( ꓴ → U ) LISU LETTER U → LATIN CAPITAL LETTER U # +16F42 ; 0055 ; MA # ( 𖽂 → U ) MIAO LETTER WA → LATIN CAPITAL LETTER U # +118B8 ; 0055 ; MA # ( 𑢸 → U ) WARANG CITI CAPITAL LETTER PU → LATIN CAPITAL LETTER U # + +01D4 ; 016D ; MA # ( ǔ → ŭ ) LATIN SMALL LETTER U WITH CARON → LATIN SMALL LETTER U WITH BREVE # + +01D3 ; 016C ; MA # ( Ǔ → Ŭ ) LATIN CAPITAL LETTER U WITH CARON → LATIN CAPITAL LETTER U WITH BREVE # + +1D7E ; 0075 0335 ; MA # ( ᵾ → u̵ ) LATIN SMALL CAPITAL LETTER U WITH STROKE → LATIN SMALL LETTER U, COMBINING SHORT STROKE OVERLAY # →ᴜ̵→ +AB9C ; 0075 0335 ; MA # ( ꮜ → u̵ ) CHEROKEE SMALL LETTER SA → LATIN SMALL LETTER U, COMBINING SHORT STROKE OVERLAY # →ᴜ̵→ + +0244 ; 0055 0335 ; MA # ( Ʉ → U̵ ) LATIN CAPITAL LETTER U BAR → LATIN CAPITAL LETTER U, COMBINING SHORT STROKE OVERLAY # →U̶→ +13CC ; 0055 0335 ; MA # ( Ꮜ → U̵ ) CHEROKEE LETTER SA → LATIN CAPITAL LETTER U, COMBINING SHORT STROKE OVERLAY # →Ʉ→→U̶→ + +1458 ; 0055 00B7 ; MA # ( ᑘ → U· ) CANADIAN SYLLABICS WEST-CREE TWE → LATIN CAPITAL LETTER U, MIDDLE DOT # →ᑌᐧ→→ᑌ·→ + +1467 ; 0055 0027 ; MA # ( ᑧ → U' ) CANADIAN SYLLABICS TTE → LATIN CAPITAL LETTER U, APOSTROPHE # →ᑌᑊ→→ᑌ'→ + +1D6B ; 0075 0065 ; MA # ( ᵫ → ue ) LATIN SMALL LETTER UE → LATIN SMALL LETTER U, LATIN SMALL LETTER E # + +AB63 ; 0075 006F ; MA # ( ꭣ → uo ) LATIN SMALL LETTER UO → LATIN SMALL LETTER U, LATIN SMALL LETTER O # + +1E43 ; AB51 ; MA # ( ṃ → ꭑ ) LATIN SMALL LETTER M WITH DOT BELOW → LATIN SMALL LETTER TURNED UI # + +057A ; 0270 ; MA # ( պ → ɰ ) ARMENIAN SMALL LETTER PEH → LATIN SMALL LETTER TURNED M WITH LONG LEG # +1223 ; 0270 ; MA # ( ሣ → ɰ ) ETHIOPIC SYLLABLE SZAA → LATIN SMALL LETTER TURNED M WITH LONG LEG # →պ→ + +2127 ; 01B1 ; MA #* ( ℧ → Ʊ ) INVERTED OHM SIGN → LATIN CAPITAL LETTER UPSILON # +162E ; 01B1 ; MA # ( ᘮ → Ʊ ) CANADIAN SYLLABICS CARRIER LHU → LATIN CAPITAL LETTER UPSILON # →℧→ +1634 ; 01B1 ; MA # ( ᘴ → Ʊ ) CANADIAN SYLLABICS CARRIER TLHU → LATIN CAPITAL LETTER UPSILON # →ᘮ→→℧→ + +1D7F ; 028A 0335 ; MA # ( ᵿ → ʊ̵ ) LATIN SMALL LETTER UPSILON WITH STROKE → LATIN SMALL LETTER UPSILON, COMBINING SHORT STROKE OVERLAY # + +2228 ; 0076 ; MA #* ( ∨ → v ) LOGICAL OR → LATIN SMALL LETTER V # +22C1 ; 0076 ; MA #* ( ⋁ → v ) N-ARY LOGICAL OR → LATIN SMALL LETTER V # →∨→ +FF56 ; 0076 ; MA # ( v → v ) FULLWIDTH LATIN SMALL LETTER V → LATIN SMALL LETTER V # →ν→ +2174 ; 0076 ; MA # ( ⅴ → v ) SMALL ROMAN NUMERAL FIVE → LATIN SMALL LETTER V # +1D42F ; 0076 ; MA # ( 𝐯 → v ) MATHEMATICAL BOLD SMALL V → LATIN SMALL LETTER V # +1D463 ; 0076 ; MA # ( 𝑣 → v ) MATHEMATICAL ITALIC SMALL V → LATIN SMALL LETTER V # +1D497 ; 0076 ; MA # ( 𝒗 → v ) MATHEMATICAL BOLD ITALIC SMALL V → LATIN SMALL LETTER V # +1D4CB ; 0076 ; MA # ( 𝓋 → v ) MATHEMATICAL SCRIPT SMALL V → LATIN SMALL LETTER V # +1D4FF ; 0076 ; MA # ( 𝓿 → v ) MATHEMATICAL BOLD SCRIPT SMALL V → LATIN SMALL LETTER V # +1D533 ; 0076 ; MA # ( 𝔳 → v ) MATHEMATICAL FRAKTUR SMALL V → LATIN SMALL LETTER V # +1D567 ; 0076 ; MA # ( 𝕧 → v ) MATHEMATICAL DOUBLE-STRUCK SMALL V → LATIN SMALL LETTER V # +1D59B ; 0076 ; MA # ( 𝖛 → v ) MATHEMATICAL BOLD FRAKTUR SMALL V → LATIN SMALL LETTER V # +1D5CF ; 0076 ; MA # ( 𝗏 → v ) MATHEMATICAL SANS-SERIF SMALL V → LATIN SMALL LETTER V # +1D603 ; 0076 ; MA # ( 𝘃 → v ) MATHEMATICAL SANS-SERIF BOLD SMALL V → LATIN SMALL LETTER V # +1D637 ; 0076 ; MA # ( 𝘷 → v ) MATHEMATICAL SANS-SERIF ITALIC SMALL V → LATIN SMALL LETTER V # +1D66B ; 0076 ; MA # ( 𝙫 → v ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V → LATIN SMALL LETTER V # +1D69F ; 0076 ; MA # ( 𝚟 → v ) MATHEMATICAL MONOSPACE SMALL V → LATIN SMALL LETTER V # +1D20 ; 0076 ; MA # ( ᴠ → v ) LATIN LETTER SMALL CAPITAL V → LATIN SMALL LETTER V # +03BD ; 0076 ; MA # ( ν → v ) GREEK SMALL LETTER NU → LATIN SMALL LETTER V # +1D6CE ; 0076 ; MA # ( 𝛎 → v ) MATHEMATICAL BOLD SMALL NU → LATIN SMALL LETTER V # →ν→ +1D708 ; 0076 ; MA # ( 𝜈 → v ) MATHEMATICAL ITALIC SMALL NU → LATIN SMALL LETTER V # →ν→ +1D742 ; 0076 ; MA # ( 𝝂 → v ) MATHEMATICAL BOLD ITALIC SMALL NU → LATIN SMALL LETTER V # →ν→ +1D77C ; 0076 ; MA # ( 𝝼 → v ) MATHEMATICAL SANS-SERIF BOLD SMALL NU → LATIN SMALL LETTER V # →ν→ +1D7B6 ; 0076 ; MA # ( 𝞶 → v ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU → LATIN SMALL LETTER V # →ν→ +0475 ; 0076 ; MA # ( ѵ → v ) CYRILLIC SMALL LETTER IZHITSA → LATIN SMALL LETTER V # +05D8 ; 0076 ; MA # ( ‎ט‎ → v ) HEBREW LETTER TET → LATIN SMALL LETTER V # +11706 ; 0076 ; MA # ( 𑜆 → v ) AHOM LETTER PA → LATIN SMALL LETTER V # +ABA9 ; 0076 ; MA # ( ꮩ → v ) CHEROKEE SMALL LETTER DO → LATIN SMALL LETTER V # →ᴠ→ +118C0 ; 0076 ; MA # ( 𑣀 → v ) WARANG CITI SMALL LETTER NGAA → LATIN SMALL LETTER V # + +1D20D ; 0056 ; MA #* ( 𝈍 → V ) GREEK VOCAL NOTATION SYMBOL-14 → LATIN CAPITAL LETTER V # +0667 ; 0056 ; MA # ( ‎٧‎ → V ) ARABIC-INDIC DIGIT SEVEN → LATIN CAPITAL LETTER V # +06F7 ; 0056 ; MA # ( ۷ → V ) EXTENDED ARABIC-INDIC DIGIT SEVEN → LATIN CAPITAL LETTER V # →‎٧‎→ +2164 ; 0056 ; MA # ( Ⅴ → V ) ROMAN NUMERAL FIVE → LATIN CAPITAL LETTER V # +1D415 ; 0056 ; MA # ( 𝐕 → V ) MATHEMATICAL BOLD CAPITAL V → LATIN CAPITAL LETTER V # +1D449 ; 0056 ; MA # ( 𝑉 → V ) MATHEMATICAL ITALIC CAPITAL V → LATIN CAPITAL LETTER V # +1D47D ; 0056 ; MA # ( 𝑽 → V ) MATHEMATICAL BOLD ITALIC CAPITAL V → LATIN CAPITAL LETTER V # +1D4B1 ; 0056 ; MA # ( 𝒱 → V ) MATHEMATICAL SCRIPT CAPITAL V → LATIN CAPITAL LETTER V # +1D4E5 ; 0056 ; MA # ( 𝓥 → V ) MATHEMATICAL BOLD SCRIPT CAPITAL V → LATIN CAPITAL LETTER V # +1D519 ; 0056 ; MA # ( 𝔙 → V ) MATHEMATICAL FRAKTUR CAPITAL V → LATIN CAPITAL LETTER V # +1D54D ; 0056 ; MA # ( 𝕍 → V ) MATHEMATICAL DOUBLE-STRUCK CAPITAL V → LATIN CAPITAL LETTER V # +1D581 ; 0056 ; MA # ( 𝖁 → V ) MATHEMATICAL BOLD FRAKTUR CAPITAL V → LATIN CAPITAL LETTER V # +1D5B5 ; 0056 ; MA # ( 𝖵 → V ) MATHEMATICAL SANS-SERIF CAPITAL V → LATIN CAPITAL LETTER V # +1D5E9 ; 0056 ; MA # ( 𝗩 → V ) MATHEMATICAL SANS-SERIF BOLD CAPITAL V → LATIN CAPITAL LETTER V # +1D61D ; 0056 ; MA # ( 𝘝 → V ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL V → LATIN CAPITAL LETTER V # +1D651 ; 0056 ; MA # ( 𝙑 → V ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V → LATIN CAPITAL LETTER V # +1D685 ; 0056 ; MA # ( 𝚅 → V ) MATHEMATICAL MONOSPACE CAPITAL V → LATIN CAPITAL LETTER V # +0474 ; 0056 ; MA # ( Ѵ → V ) CYRILLIC CAPITAL LETTER IZHITSA → LATIN CAPITAL LETTER V # +2D38 ; 0056 ; MA # ( ⴸ → V ) TIFINAGH LETTER YADH → LATIN CAPITAL LETTER V # +13D9 ; 0056 ; MA # ( Ꮩ → V ) CHEROKEE LETTER DO → LATIN CAPITAL LETTER V # +142F ; 0056 ; MA # ( ᐯ → V ) CANADIAN SYLLABICS PE → LATIN CAPITAL LETTER V # +A6DF ; 0056 ; MA # ( ꛟ → V ) BAMUM LETTER KO → LATIN CAPITAL LETTER V # +A4E6 ; 0056 ; MA # ( ꓦ → V ) LISU LETTER HA → LATIN CAPITAL LETTER V # +16F08 ; 0056 ; MA # ( 𖼈 → V ) MIAO LETTER VA → LATIN CAPITAL LETTER V # +118A0 ; 0056 ; MA # ( 𑢠 → V ) WARANG CITI CAPITAL LETTER NGAA → LATIN CAPITAL LETTER V # +1051D ; 0056 ; MA # ( 𐔝 → V ) ELBASAN LETTER TE → LATIN CAPITAL LETTER V # + +10197 ; 0056 0335 ; MA #* ( 𐆗 → V̵ ) ROMAN QUINARIUS SIGN → LATIN CAPITAL LETTER V, COMBINING SHORT STROKE OVERLAY # →V̶→ + +143B ; 0056 00B7 ; MA # ( ᐻ → V· ) CANADIAN SYLLABICS WEST-CREE PWE → LATIN CAPITAL LETTER V, MIDDLE DOT # →ᐯᐧ→ + +1F76C ; 0056 0042 ; MA #* ( 🝬 → VB ) ALCHEMICAL SYMBOL FOR BATH OF VAPOURS → LATIN CAPITAL LETTER V, LATIN CAPITAL LETTER B # + +2175 ; 0076 0069 ; MA # ( ⅵ → vi ) SMALL ROMAN NUMERAL SIX → LATIN SMALL LETTER V, LATIN SMALL LETTER I # + +2176 ; 0076 0069 0069 ; MA # ( ⅶ → vii ) SMALL ROMAN NUMERAL SEVEN → LATIN SMALL LETTER V, LATIN SMALL LETTER I, LATIN SMALL LETTER I # + +2177 ; 0076 0069 0069 0069 ; MA # ( ⅷ → viii ) SMALL ROMAN NUMERAL EIGHT → LATIN SMALL LETTER V, LATIN SMALL LETTER I, LATIN SMALL LETTER I, LATIN SMALL LETTER I # + +2165 ; 0056 006C ; MA # ( Ⅵ → Vl ) ROMAN NUMERAL SIX → LATIN CAPITAL LETTER V, LATIN SMALL LETTER L # →VI→ + +2166 ; 0056 006C 006C ; MA # ( Ⅶ → Vll ) ROMAN NUMERAL SEVEN → LATIN CAPITAL LETTER V, LATIN SMALL LETTER L, LATIN SMALL LETTER L # →VII→ + +2167 ; 0056 006C 006C 006C ; MA # ( Ⅷ → Vlll ) ROMAN NUMERAL EIGHT → LATIN CAPITAL LETTER V, LATIN SMALL LETTER L, LATIN SMALL LETTER L, LATIN SMALL LETTER L # →VIII→ + +1F708 ; 0056 1DE4 ; MA #* ( 🜈 → Vᷤ ) ALCHEMICAL SYMBOL FOR AQUA VITAE → LATIN CAPITAL LETTER V, COMBINING LATIN SMALL LETTER S # + +1D27 ; 028C ; MA # ( ᴧ → ʌ ) GREEK LETTER SMALL CAPITAL LAMDA → LATIN SMALL LETTER TURNED V # +104D8 ; 028C ; MA # ( 𐓘 → ʌ ) OSAGE SMALL LETTER A → LATIN SMALL LETTER TURNED V # + +0668 ; 0245 ; MA # ( ‎٨‎ → Ʌ ) ARABIC-INDIC DIGIT EIGHT → LATIN CAPITAL LETTER TURNED V # →Λ→ +06F8 ; 0245 ; MA # ( ۸ → Ʌ ) EXTENDED ARABIC-INDIC DIGIT EIGHT → LATIN CAPITAL LETTER TURNED V # →‎٨‎→→Λ→ +039B ; 0245 ; MA # ( Λ → Ʌ ) GREEK CAPITAL LETTER LAMDA → LATIN CAPITAL LETTER TURNED V # +1D6B2 ; 0245 ; MA # ( 𝚲 → Ʌ ) MATHEMATICAL BOLD CAPITAL LAMDA → LATIN CAPITAL LETTER TURNED V # →Λ→ +1D6EC ; 0245 ; MA # ( 𝛬 → Ʌ ) MATHEMATICAL ITALIC CAPITAL LAMDA → LATIN CAPITAL LETTER TURNED V # →Λ→ +1D726 ; 0245 ; MA # ( 𝜦 → Ʌ ) MATHEMATICAL BOLD ITALIC CAPITAL LAMDA → LATIN CAPITAL LETTER TURNED V # →Λ→ +1D760 ; 0245 ; MA # ( 𝝠 → Ʌ ) MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA → LATIN CAPITAL LETTER TURNED V # →Λ→ +1D79A ; 0245 ; MA # ( 𝞚 → Ʌ ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA → LATIN CAPITAL LETTER TURNED V # →Λ→ +041B ; 0245 ; MA # ( Л → Ʌ ) CYRILLIC CAPITAL LETTER EL → LATIN CAPITAL LETTER TURNED V # →Λ→ +2D37 ; 0245 ; MA # ( ⴷ → Ʌ ) TIFINAGH LETTER YAD → LATIN CAPITAL LETTER TURNED V # +104B0 ; 0245 ; MA # ( 𐒰 → Ʌ ) OSAGE CAPITAL LETTER A → LATIN CAPITAL LETTER TURNED V # +1431 ; 0245 ; MA # ( ᐱ → Ʌ ) CANADIAN SYLLABICS PI → LATIN CAPITAL LETTER TURNED V # +A6CE ; 0245 ; MA # ( ꛎ → Ʌ ) BAMUM LETTER MI → LATIN CAPITAL LETTER TURNED V # →Λ→ +A4E5 ; 0245 ; MA # ( ꓥ → Ʌ ) LISU LETTER NGA → LATIN CAPITAL LETTER TURNED V # +16F3D ; 0245 ; MA # ( 𖼽 → Ʌ ) MIAO LETTER ZZA → LATIN CAPITAL LETTER TURNED V # +1028D ; 0245 ; MA # ( 𐊍 → Ʌ ) LYCIAN LETTER L → LATIN CAPITAL LETTER TURNED V # →Λ→ + +04C5 ; 0245 0326 ; MA # ( Ӆ → Ʌ̦ ) CYRILLIC CAPITAL LETTER EL WITH TAIL → LATIN CAPITAL LETTER TURNED V, COMBINING COMMA BELOW # →Л̡→ + +143D ; 0245 00B7 ; MA # ( ᐽ → Ʌ· ) CANADIAN SYLLABICS WEST-CREE PWI → LATIN CAPITAL LETTER TURNED V, MIDDLE DOT # →ᐱᐧ→→ᐱ·→ + +026F ; 0077 ; MA # ( ɯ → w ) LATIN SMALL LETTER TURNED M → LATIN SMALL LETTER W # +1D430 ; 0077 ; MA # ( 𝐰 → w ) MATHEMATICAL BOLD SMALL W → LATIN SMALL LETTER W # +1D464 ; 0077 ; MA # ( 𝑤 → w ) MATHEMATICAL ITALIC SMALL W → LATIN SMALL LETTER W # +1D498 ; 0077 ; MA # ( 𝒘 → w ) MATHEMATICAL BOLD ITALIC SMALL W → LATIN SMALL LETTER W # +1D4CC ; 0077 ; MA # ( 𝓌 → w ) MATHEMATICAL SCRIPT SMALL W → LATIN SMALL LETTER W # +1D500 ; 0077 ; MA # ( 𝔀 → w ) MATHEMATICAL BOLD SCRIPT SMALL W → LATIN SMALL LETTER W # +1D534 ; 0077 ; MA # ( 𝔴 → w ) MATHEMATICAL FRAKTUR SMALL W → LATIN SMALL LETTER W # +1D568 ; 0077 ; MA # ( 𝕨 → w ) MATHEMATICAL DOUBLE-STRUCK SMALL W → LATIN SMALL LETTER W # +1D59C ; 0077 ; MA # ( 𝖜 → w ) MATHEMATICAL BOLD FRAKTUR SMALL W → LATIN SMALL LETTER W # +1D5D0 ; 0077 ; MA # ( 𝗐 → w ) MATHEMATICAL SANS-SERIF SMALL W → LATIN SMALL LETTER W # +1D604 ; 0077 ; MA # ( 𝘄 → w ) MATHEMATICAL SANS-SERIF BOLD SMALL W → LATIN SMALL LETTER W # +1D638 ; 0077 ; MA # ( 𝘸 → w ) MATHEMATICAL SANS-SERIF ITALIC SMALL W → LATIN SMALL LETTER W # +1D66C ; 0077 ; MA # ( 𝙬 → w ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W → LATIN SMALL LETTER W # +1D6A0 ; 0077 ; MA # ( 𝚠 → w ) MATHEMATICAL MONOSPACE SMALL W → LATIN SMALL LETTER W # +1D21 ; 0077 ; MA # ( ᴡ → w ) LATIN LETTER SMALL CAPITAL W → LATIN SMALL LETTER W # +0461 ; 0077 ; MA # ( ѡ → w ) CYRILLIC SMALL LETTER OMEGA → LATIN SMALL LETTER W # +051D ; 0077 ; MA # ( ԝ → w ) CYRILLIC SMALL LETTER WE → LATIN SMALL LETTER W # +0561 ; 0077 ; MA # ( ա → w ) ARMENIAN SMALL LETTER AYB → LATIN SMALL LETTER W # →ɯ→ +1170A ; 0077 ; MA # ( 𑜊 → w ) AHOM LETTER JA → LATIN SMALL LETTER W # +1170E ; 0077 ; MA # ( 𑜎 → w ) AHOM LETTER LA → LATIN SMALL LETTER W # +1170F ; 0077 ; MA # ( 𑜏 → w ) AHOM LETTER SA → LATIN SMALL LETTER W # +AB83 ; 0077 ; MA # ( ꮃ → w ) CHEROKEE SMALL LETTER LA → LATIN SMALL LETTER W # →ᴡ→ + +118EF ; 0057 ; MA #* ( 𑣯 → W ) WARANG CITI NUMBER SIXTY → LATIN CAPITAL LETTER W # +118E6 ; 0057 ; MA # ( 𑣦 → W ) WARANG CITI DIGIT SIX → LATIN CAPITAL LETTER W # +1D416 ; 0057 ; MA # ( 𝐖 → W ) MATHEMATICAL BOLD CAPITAL W → LATIN CAPITAL LETTER W # +1D44A ; 0057 ; MA # ( 𝑊 → W ) MATHEMATICAL ITALIC CAPITAL W → LATIN CAPITAL LETTER W # +1D47E ; 0057 ; MA # ( 𝑾 → W ) MATHEMATICAL BOLD ITALIC CAPITAL W → LATIN CAPITAL LETTER W # +1D4B2 ; 0057 ; MA # ( 𝒲 → W ) MATHEMATICAL SCRIPT CAPITAL W → LATIN CAPITAL LETTER W # +1D4E6 ; 0057 ; MA # ( 𝓦 → W ) MATHEMATICAL BOLD SCRIPT CAPITAL W → LATIN CAPITAL LETTER W # +1D51A ; 0057 ; MA # ( 𝔚 → W ) MATHEMATICAL FRAKTUR CAPITAL W → LATIN CAPITAL LETTER W # +1D54E ; 0057 ; MA # ( 𝕎 → W ) MATHEMATICAL DOUBLE-STRUCK CAPITAL W → LATIN CAPITAL LETTER W # +1D582 ; 0057 ; MA # ( 𝖂 → W ) MATHEMATICAL BOLD FRAKTUR CAPITAL W → LATIN CAPITAL LETTER W # +1D5B6 ; 0057 ; MA # ( 𝖶 → W ) MATHEMATICAL SANS-SERIF CAPITAL W → LATIN CAPITAL LETTER W # +1D5EA ; 0057 ; MA # ( 𝗪 → W ) MATHEMATICAL SANS-SERIF BOLD CAPITAL W → LATIN CAPITAL LETTER W # +1D61E ; 0057 ; MA # ( 𝘞 → W ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL W → LATIN CAPITAL LETTER W # +1D652 ; 0057 ; MA # ( 𝙒 → W ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W → LATIN CAPITAL LETTER W # +1D686 ; 0057 ; MA # ( 𝚆 → W ) MATHEMATICAL MONOSPACE CAPITAL W → LATIN CAPITAL LETTER W # +051C ; 0057 ; MA # ( Ԝ → W ) CYRILLIC CAPITAL LETTER WE → LATIN CAPITAL LETTER W # +13B3 ; 0057 ; MA # ( Ꮃ → W ) CHEROKEE LETTER LA → LATIN CAPITAL LETTER W # +13D4 ; 0057 ; MA # ( Ꮤ → W ) CHEROKEE LETTER TA → LATIN CAPITAL LETTER W # +A4EA ; 0057 ; MA # ( ꓪ → W ) LISU LETTER WA → LATIN CAPITAL LETTER W # + +047D ; 0077 0486 0487 ; MA # ( ѽ → w҆҇ ) CYRILLIC SMALL LETTER OMEGA WITH TITLO → LATIN SMALL LETTER W, COMBINING CYRILLIC PSILI PNEUMATA, COMBINING CYRILLIC POKRYTIE # →ѡ҆҇→ + +114C5 ; 0077 0307 ; MA # ( 𑓅 → ẇ ) TIRHUTA GVANG → LATIN SMALL LETTER W, COMBINING DOT ABOVE # + +20A9 ; 0057 0335 ; MA #* ( ₩ → W̵ ) WON SIGN → LATIN CAPITAL LETTER W, COMBINING SHORT STROKE OVERLAY # + +A761 ; 0077 0326 ; MA # ( ꝡ → w̦ ) LATIN SMALL LETTER VY → LATIN SMALL LETTER W, COMBINING COMMA BELOW # →w̡→ + +1D0D ; 028D ; MA # ( ᴍ → ʍ ) LATIN LETTER SMALL CAPITAL M → LATIN SMALL LETTER TURNED W # →м→ +043C ; 028D ; MA # ( м → ʍ ) CYRILLIC SMALL LETTER EM → LATIN SMALL LETTER TURNED W # +AB87 ; 028D ; MA # ( ꮇ → ʍ ) CHEROKEE SMALL LETTER LU → LATIN SMALL LETTER TURNED W # →ᴍ→→м→ + +04CE ; 028D 0326 ; MA # ( ӎ → ʍ̦ ) CYRILLIC SMALL LETTER EM WITH TAIL → LATIN SMALL LETTER TURNED W, COMBINING COMMA BELOW # →м̡→ + +166E ; 0078 ; MA #* ( ᙮ → x ) CANADIAN SYLLABICS FULL STOP → LATIN SMALL LETTER X # +00D7 ; 0078 ; MA #* ( × → x ) MULTIPLICATION SIGN → LATIN SMALL LETTER X # +292B ; 0078 ; MA #* ( ⤫ → x ) RISING DIAGONAL CROSSING FALLING DIAGONAL → LATIN SMALL LETTER X # +292C ; 0078 ; MA #* ( ⤬ → x ) FALLING DIAGONAL CROSSING RISING DIAGONAL → LATIN SMALL LETTER X # +2A2F ; 0078 ; MA #* ( ⨯ → x ) VECTOR OR CROSS PRODUCT → LATIN SMALL LETTER X # →×→ +FF58 ; 0078 ; MA # ( x → x ) FULLWIDTH LATIN SMALL LETTER X → LATIN SMALL LETTER X # →х→ +2179 ; 0078 ; MA # ( ⅹ → x ) SMALL ROMAN NUMERAL TEN → LATIN SMALL LETTER X # +1D431 ; 0078 ; MA # ( 𝐱 → x ) MATHEMATICAL BOLD SMALL X → LATIN SMALL LETTER X # +1D465 ; 0078 ; MA # ( 𝑥 → x ) MATHEMATICAL ITALIC SMALL X → LATIN SMALL LETTER X # +1D499 ; 0078 ; MA # ( 𝒙 → x ) MATHEMATICAL BOLD ITALIC SMALL X → LATIN SMALL LETTER X # +1D4CD ; 0078 ; MA # ( 𝓍 → x ) MATHEMATICAL SCRIPT SMALL X → LATIN SMALL LETTER X # +1D501 ; 0078 ; MA # ( 𝔁 → x ) MATHEMATICAL BOLD SCRIPT SMALL X → LATIN SMALL LETTER X # +1D535 ; 0078 ; MA # ( 𝔵 → x ) MATHEMATICAL FRAKTUR SMALL X → LATIN SMALL LETTER X # +1D569 ; 0078 ; MA # ( 𝕩 → x ) MATHEMATICAL DOUBLE-STRUCK SMALL X → LATIN SMALL LETTER X # +1D59D ; 0078 ; MA # ( 𝖝 → x ) MATHEMATICAL BOLD FRAKTUR SMALL X → LATIN SMALL LETTER X # +1D5D1 ; 0078 ; MA # ( 𝗑 → x ) MATHEMATICAL SANS-SERIF SMALL X → LATIN SMALL LETTER X # +1D605 ; 0078 ; MA # ( 𝘅 → x ) MATHEMATICAL SANS-SERIF BOLD SMALL X → LATIN SMALL LETTER X # +1D639 ; 0078 ; MA # ( 𝘹 → x ) MATHEMATICAL SANS-SERIF ITALIC SMALL X → LATIN SMALL LETTER X # +1D66D ; 0078 ; MA # ( 𝙭 → x ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X → LATIN SMALL LETTER X # +1D6A1 ; 0078 ; MA # ( 𝚡 → x ) MATHEMATICAL MONOSPACE SMALL X → LATIN SMALL LETTER X # +0445 ; 0078 ; MA # ( х → x ) CYRILLIC SMALL LETTER HA → LATIN SMALL LETTER X # +1541 ; 0078 ; MA # ( ᕁ → x ) CANADIAN SYLLABICS SAYISI YI → LATIN SMALL LETTER X # →᙮→ +157D ; 0078 ; MA # ( ᕽ → x ) CANADIAN SYLLABICS HK → LATIN SMALL LETTER X # →ᕁ→→᙮→ + +2DEF ; 036F ; MA # ( ⷯ → ͯ ) COMBINING CYRILLIC LETTER HA → COMBINING LATIN SMALL LETTER X # + +166D ; 0058 ; MA #* ( ᙭ → X ) CANADIAN SYLLABICS CHI SIGN → LATIN CAPITAL LETTER X # +2573 ; 0058 ; MA #* ( ╳ → X ) BOX DRAWINGS LIGHT DIAGONAL CROSS → LATIN CAPITAL LETTER X # +10322 ; 0058 ; MA #* ( 𐌢 → X ) OLD ITALIC NUMERAL TEN → LATIN CAPITAL LETTER X # →𐌗→ +118EC ; 0058 ; MA #* ( 𑣬 → X ) WARANG CITI NUMBER THIRTY → LATIN CAPITAL LETTER X # +FF38 ; 0058 ; MA # ( X → X ) FULLWIDTH LATIN CAPITAL LETTER X → LATIN CAPITAL LETTER X # →Х→ +2169 ; 0058 ; MA # ( Ⅹ → X ) ROMAN NUMERAL TEN → LATIN CAPITAL LETTER X # +1D417 ; 0058 ; MA # ( 𝐗 → X ) MATHEMATICAL BOLD CAPITAL X → LATIN CAPITAL LETTER X # +1D44B ; 0058 ; MA # ( 𝑋 → X ) MATHEMATICAL ITALIC CAPITAL X → LATIN CAPITAL LETTER X # +1D47F ; 0058 ; MA # ( 𝑿 → X ) MATHEMATICAL BOLD ITALIC CAPITAL X → LATIN CAPITAL LETTER X # +1D4B3 ; 0058 ; MA # ( 𝒳 → X ) MATHEMATICAL SCRIPT CAPITAL X → LATIN CAPITAL LETTER X # +1D4E7 ; 0058 ; MA # ( 𝓧 → X ) MATHEMATICAL BOLD SCRIPT CAPITAL X → LATIN CAPITAL LETTER X # +1D51B ; 0058 ; MA # ( 𝔛 → X ) MATHEMATICAL FRAKTUR CAPITAL X → LATIN CAPITAL LETTER X # +1D54F ; 0058 ; MA # ( 𝕏 → X ) MATHEMATICAL DOUBLE-STRUCK CAPITAL X → LATIN CAPITAL LETTER X # +1D583 ; 0058 ; MA # ( 𝖃 → X ) MATHEMATICAL BOLD FRAKTUR CAPITAL X → LATIN CAPITAL LETTER X # +1D5B7 ; 0058 ; MA # ( 𝖷 → X ) MATHEMATICAL SANS-SERIF CAPITAL X → LATIN CAPITAL LETTER X # +1D5EB ; 0058 ; MA # ( 𝗫 → X ) MATHEMATICAL SANS-SERIF BOLD CAPITAL X → LATIN CAPITAL LETTER X # +1D61F ; 0058 ; MA # ( 𝘟 → X ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL X → LATIN CAPITAL LETTER X # +1D653 ; 0058 ; MA # ( 𝙓 → X ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X → LATIN CAPITAL LETTER X # +1D687 ; 0058 ; MA # ( 𝚇 → X ) MATHEMATICAL MONOSPACE CAPITAL X → LATIN CAPITAL LETTER X # +A7B3 ; 0058 ; MA # ( Ꭓ → X ) LATIN CAPITAL LETTER CHI → LATIN CAPITAL LETTER X # +03A7 ; 0058 ; MA # ( Χ → X ) GREEK CAPITAL LETTER CHI → LATIN CAPITAL LETTER X # +1D6BE ; 0058 ; MA # ( 𝚾 → X ) MATHEMATICAL BOLD CAPITAL CHI → LATIN CAPITAL LETTER X # →Χ→ +1D6F8 ; 0058 ; MA # ( 𝛸 → X ) MATHEMATICAL ITALIC CAPITAL CHI → LATIN CAPITAL LETTER X # →Χ→ +1D732 ; 0058 ; MA # ( 𝜲 → X ) MATHEMATICAL BOLD ITALIC CAPITAL CHI → LATIN CAPITAL LETTER X # →𝑿→ +1D76C ; 0058 ; MA # ( 𝝬 → X ) MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI → LATIN CAPITAL LETTER X # →Χ→ +1D7A6 ; 0058 ; MA # ( 𝞦 → X ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI → LATIN CAPITAL LETTER X # →Χ→ +2CAC ; 0058 ; MA # ( Ⲭ → X ) COPTIC CAPITAL LETTER KHI → LATIN CAPITAL LETTER X # →Х→ +0425 ; 0058 ; MA # ( Х → X ) CYRILLIC CAPITAL LETTER HA → LATIN CAPITAL LETTER X # +2D5D ; 0058 ; MA # ( ⵝ → X ) TIFINAGH LETTER YATH → LATIN CAPITAL LETTER X # +16B7 ; 0058 ; MA # ( ᚷ → X ) RUNIC LETTER GEBO GYFU G → LATIN CAPITAL LETTER X # +A4EB ; 0058 ; MA # ( ꓫ → X ) LISU LETTER SHA → LATIN CAPITAL LETTER X # +10290 ; 0058 ; MA # ( 𐊐 → X ) LYCIAN LETTER MM → LATIN CAPITAL LETTER X # +102B4 ; 0058 ; MA # ( 𐊴 → X ) CARIAN LETTER X → LATIN CAPITAL LETTER X # +10317 ; 0058 ; MA # ( 𐌗 → X ) OLD ITALIC LETTER EKS → LATIN CAPITAL LETTER X # +10527 ; 0058 ; MA # ( 𐔧 → X ) ELBASAN LETTER KHE → LATIN CAPITAL LETTER X # + +2A30 ; 0078 0307 ; MA #* ( ⨰ → ẋ ) MULTIPLICATION SIGN WITH DOT ABOVE → LATIN SMALL LETTER X, COMBINING DOT ABOVE # →×̇→ + +04B2 ; 0058 0329 ; MA # ( Ҳ → X̩ ) CYRILLIC CAPITAL LETTER HA WITH DESCENDER → LATIN CAPITAL LETTER X, COMBINING VERTICAL LINE BELOW # →Х̩→ + +10196 ; 0058 0335 ; MA #* ( 𐆖 → X̵ ) ROMAN DENARIUS SIGN → LATIN CAPITAL LETTER X, COMBINING SHORT STROKE OVERLAY # →X̶→ + +217A ; 0078 0069 ; MA # ( ⅺ → xi ) SMALL ROMAN NUMERAL ELEVEN → LATIN SMALL LETTER X, LATIN SMALL LETTER I # + +217B ; 0078 0069 0069 ; MA # ( ⅻ → xii ) SMALL ROMAN NUMERAL TWELVE → LATIN SMALL LETTER X, LATIN SMALL LETTER I, LATIN SMALL LETTER I # + +216A ; 0058 006C ; MA # ( Ⅺ → Xl ) ROMAN NUMERAL ELEVEN → LATIN CAPITAL LETTER X, LATIN SMALL LETTER L # →XI→ + +216B ; 0058 006C 006C ; MA # ( Ⅻ → Xll ) ROMAN NUMERAL TWELVE → LATIN CAPITAL LETTER X, LATIN SMALL LETTER L, LATIN SMALL LETTER L # →XII→ + +0263 ; 0079 ; MA # ( ɣ → y ) LATIN SMALL LETTER GAMMA → LATIN SMALL LETTER Y # →γ→ +1D8C ; 0079 ; MA # ( ᶌ → y ) LATIN SMALL LETTER V WITH PALATAL HOOK → LATIN SMALL LETTER Y # +FF59 ; 0079 ; MA # ( y → y ) FULLWIDTH LATIN SMALL LETTER Y → LATIN SMALL LETTER Y # →у→ +1D432 ; 0079 ; MA # ( 𝐲 → y ) MATHEMATICAL BOLD SMALL Y → LATIN SMALL LETTER Y # +1D466 ; 0079 ; MA # ( 𝑦 → y ) MATHEMATICAL ITALIC SMALL Y → LATIN SMALL LETTER Y # +1D49A ; 0079 ; MA # ( 𝒚 → y ) MATHEMATICAL BOLD ITALIC SMALL Y → LATIN SMALL LETTER Y # +1D4CE ; 0079 ; MA # ( 𝓎 → y ) MATHEMATICAL SCRIPT SMALL Y → LATIN SMALL LETTER Y # +1D502 ; 0079 ; MA # ( 𝔂 → y ) MATHEMATICAL BOLD SCRIPT SMALL Y → LATIN SMALL LETTER Y # +1D536 ; 0079 ; MA # ( 𝔶 → y ) MATHEMATICAL FRAKTUR SMALL Y → LATIN SMALL LETTER Y # +1D56A ; 0079 ; MA # ( 𝕪 → y ) MATHEMATICAL DOUBLE-STRUCK SMALL Y → LATIN SMALL LETTER Y # +1D59E ; 0079 ; MA # ( 𝖞 → y ) MATHEMATICAL BOLD FRAKTUR SMALL Y → LATIN SMALL LETTER Y # +1D5D2 ; 0079 ; MA # ( 𝗒 → y ) MATHEMATICAL SANS-SERIF SMALL Y → LATIN SMALL LETTER Y # +1D606 ; 0079 ; MA # ( 𝘆 → y ) MATHEMATICAL SANS-SERIF BOLD SMALL Y → LATIN SMALL LETTER Y # +1D63A ; 0079 ; MA # ( 𝘺 → y ) MATHEMATICAL SANS-SERIF ITALIC SMALL Y → LATIN SMALL LETTER Y # +1D66E ; 0079 ; MA # ( 𝙮 → y ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y → LATIN SMALL LETTER Y # +1D6A2 ; 0079 ; MA # ( 𝚢 → y ) MATHEMATICAL MONOSPACE SMALL Y → LATIN SMALL LETTER Y # +028F ; 0079 ; MA # ( ʏ → y ) LATIN LETTER SMALL CAPITAL Y → LATIN SMALL LETTER Y # →ү→→γ→ +1EFF ; 0079 ; MA # ( ỿ → y ) LATIN SMALL LETTER Y WITH LOOP → LATIN SMALL LETTER Y # +AB5A ; 0079 ; MA # ( ꭚ → y ) LATIN SMALL LETTER Y WITH SHORT RIGHT LEG → LATIN SMALL LETTER Y # +03B3 ; 0079 ; MA # ( γ → y ) GREEK SMALL LETTER GAMMA → LATIN SMALL LETTER Y # +213D ; 0079 ; MA # ( ℽ → y ) DOUBLE-STRUCK SMALL GAMMA → LATIN SMALL LETTER Y # →γ→ +1D6C4 ; 0079 ; MA # ( 𝛄 → y ) MATHEMATICAL BOLD SMALL GAMMA → LATIN SMALL LETTER Y # →γ→ +1D6FE ; 0079 ; MA # ( 𝛾 → y ) MATHEMATICAL ITALIC SMALL GAMMA → LATIN SMALL LETTER Y # →γ→ +1D738 ; 0079 ; MA # ( 𝜸 → y ) MATHEMATICAL BOLD ITALIC SMALL GAMMA → LATIN SMALL LETTER Y # →γ→ +1D772 ; 0079 ; MA # ( 𝝲 → y ) MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA → LATIN SMALL LETTER Y # →γ→ +1D7AC ; 0079 ; MA # ( 𝞬 → y ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA → LATIN SMALL LETTER Y # →γ→ +0443 ; 0079 ; MA # ( у → y ) CYRILLIC SMALL LETTER U → LATIN SMALL LETTER Y # +04AF ; 0079 ; MA # ( ү → y ) CYRILLIC SMALL LETTER STRAIGHT U → LATIN SMALL LETTER Y # →γ→ +10E7 ; 0079 ; MA # ( ყ → y ) GEORGIAN LETTER QAR → LATIN SMALL LETTER Y # +118DC ; 0079 ; MA # ( 𑣜 → y ) WARANG CITI SMALL LETTER HAR → LATIN SMALL LETTER Y # →ɣ→→γ→ + +FF39 ; 0059 ; MA # ( Y → Y ) FULLWIDTH LATIN CAPITAL LETTER Y → LATIN CAPITAL LETTER Y # →Υ→ +1D418 ; 0059 ; MA # ( 𝐘 → Y ) MATHEMATICAL BOLD CAPITAL Y → LATIN CAPITAL LETTER Y # +1D44C ; 0059 ; MA # ( 𝑌 → Y ) MATHEMATICAL ITALIC CAPITAL Y → LATIN CAPITAL LETTER Y # +1D480 ; 0059 ; MA # ( 𝒀 → Y ) MATHEMATICAL BOLD ITALIC CAPITAL Y → LATIN CAPITAL LETTER Y # +1D4B4 ; 0059 ; MA # ( 𝒴 → Y ) MATHEMATICAL SCRIPT CAPITAL Y → LATIN CAPITAL LETTER Y # +1D4E8 ; 0059 ; MA # ( 𝓨 → Y ) MATHEMATICAL BOLD SCRIPT CAPITAL Y → LATIN CAPITAL LETTER Y # +1D51C ; 0059 ; MA # ( 𝔜 → Y ) MATHEMATICAL FRAKTUR CAPITAL Y → LATIN CAPITAL LETTER Y # +1D550 ; 0059 ; MA # ( 𝕐 → Y ) MATHEMATICAL DOUBLE-STRUCK CAPITAL Y → LATIN CAPITAL LETTER Y # +1D584 ; 0059 ; MA # ( 𝖄 → Y ) MATHEMATICAL BOLD FRAKTUR CAPITAL Y → LATIN CAPITAL LETTER Y # +1D5B8 ; 0059 ; MA # ( 𝖸 → Y ) MATHEMATICAL SANS-SERIF CAPITAL Y → LATIN CAPITAL LETTER Y # +1D5EC ; 0059 ; MA # ( 𝗬 → Y ) MATHEMATICAL SANS-SERIF BOLD CAPITAL Y → LATIN CAPITAL LETTER Y # +1D620 ; 0059 ; MA # ( 𝘠 → Y ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y → LATIN CAPITAL LETTER Y # +1D654 ; 0059 ; MA # ( 𝙔 → Y ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y → LATIN CAPITAL LETTER Y # +1D688 ; 0059 ; MA # ( 𝚈 → Y ) MATHEMATICAL MONOSPACE CAPITAL Y → LATIN CAPITAL LETTER Y # +03A5 ; 0059 ; MA # ( Υ → Y ) GREEK CAPITAL LETTER UPSILON → LATIN CAPITAL LETTER Y # +03D2 ; 0059 ; MA # ( ϒ → Y ) GREEK UPSILON WITH HOOK SYMBOL → LATIN CAPITAL LETTER Y # +1D6BC ; 0059 ; MA # ( 𝚼 → Y ) MATHEMATICAL BOLD CAPITAL UPSILON → LATIN CAPITAL LETTER Y # →Υ→ +1D6F6 ; 0059 ; MA # ( 𝛶 → Y ) MATHEMATICAL ITALIC CAPITAL UPSILON → LATIN CAPITAL LETTER Y # →Υ→ +1D730 ; 0059 ; MA # ( 𝜰 → Y ) MATHEMATICAL BOLD ITALIC CAPITAL UPSILON → LATIN CAPITAL LETTER Y # →Υ→ +1D76A ; 0059 ; MA # ( 𝝪 → Y ) MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON → LATIN CAPITAL LETTER Y # →Υ→ +1D7A4 ; 0059 ; MA # ( 𝞤 → Y ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON → LATIN CAPITAL LETTER Y # →Υ→ +2CA8 ; 0059 ; MA # ( Ⲩ → Y ) COPTIC CAPITAL LETTER UA → LATIN CAPITAL LETTER Y # +0423 ; 0059 ; MA # ( У → Y ) CYRILLIC CAPITAL LETTER U → LATIN CAPITAL LETTER Y # +04AE ; 0059 ; MA # ( Ү → Y ) CYRILLIC CAPITAL LETTER STRAIGHT U → LATIN CAPITAL LETTER Y # +13A9 ; 0059 ; MA # ( Ꭹ → Y ) CHEROKEE LETTER GI → LATIN CAPITAL LETTER Y # +13BD ; 0059 ; MA # ( Ꮍ → Y ) CHEROKEE LETTER MU → LATIN CAPITAL LETTER Y # →Ꭹ→ +A4EC ; 0059 ; MA # ( ꓬ → Y ) LISU LETTER YA → LATIN CAPITAL LETTER Y # +16F43 ; 0059 ; MA # ( 𖽃 → Y ) MIAO LETTER AH → LATIN CAPITAL LETTER Y # +118A4 ; 0059 ; MA # ( 𑢤 → Y ) WARANG CITI CAPITAL LETTER YA → LATIN CAPITAL LETTER Y # +102B2 ; 0059 ; MA # ( 𐊲 → Y ) CARIAN LETTER U → LATIN CAPITAL LETTER Y # + +01B4 ; 0079 0314 ; MA # ( ƴ → y̔ ) LATIN SMALL LETTER Y WITH HOOK → LATIN SMALL LETTER Y, COMBINING REVERSED COMMA ABOVE # + +024F ; 0079 0335 ; MA # ( ɏ → y̵ ) LATIN SMALL LETTER Y WITH STROKE → LATIN SMALL LETTER Y, COMBINING SHORT STROKE OVERLAY # +04B1 ; 0079 0335 ; MA # ( ұ → y̵ ) CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE → LATIN SMALL LETTER Y, COMBINING SHORT STROKE OVERLAY # →ү̵→ + +00A5 ; 0059 0335 ; MA #* ( ¥ → Y̵ ) YEN SIGN → LATIN CAPITAL LETTER Y, COMBINING SHORT STROKE OVERLAY # +024E ; 0059 0335 ; MA # ( Ɏ → Y̵ ) LATIN CAPITAL LETTER Y WITH STROKE → LATIN CAPITAL LETTER Y, COMBINING SHORT STROKE OVERLAY # +04B0 ; 0059 0335 ; MA # ( Ұ → Y̵ ) CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE → LATIN CAPITAL LETTER Y, COMBINING SHORT STROKE OVERLAY # →Ү̵→ + +0292 ; 021D ; MA # ( ʒ → ȝ ) LATIN SMALL LETTER EZH → LATIN SMALL LETTER YOGH # +A76B ; 021D ; MA # ( ꝫ → ȝ ) LATIN SMALL LETTER ET → LATIN SMALL LETTER YOGH # +2CCD ; 021D ; MA # ( ⳍ → ȝ ) COPTIC SMALL LETTER OLD COPTIC HORI → LATIN SMALL LETTER YOGH # +04E1 ; 021D ; MA # ( ӡ → ȝ ) CYRILLIC SMALL LETTER ABKHASIAN DZE → LATIN SMALL LETTER YOGH # →ʒ→ +10F3 ; 021D ; MA # ( ჳ → ȝ ) GEORGIAN LETTER WE → LATIN SMALL LETTER YOGH # →ʒ→ + +1D433 ; 007A ; MA # ( 𝐳 → z ) MATHEMATICAL BOLD SMALL Z → LATIN SMALL LETTER Z # +1D467 ; 007A ; MA # ( 𝑧 → z ) MATHEMATICAL ITALIC SMALL Z → LATIN SMALL LETTER Z # +1D49B ; 007A ; MA # ( 𝒛 → z ) MATHEMATICAL BOLD ITALIC SMALL Z → LATIN SMALL LETTER Z # +1D4CF ; 007A ; MA # ( 𝓏 → z ) MATHEMATICAL SCRIPT SMALL Z → LATIN SMALL LETTER Z # +1D503 ; 007A ; MA # ( 𝔃 → z ) MATHEMATICAL BOLD SCRIPT SMALL Z → LATIN SMALL LETTER Z # +1D537 ; 007A ; MA # ( 𝔷 → z ) MATHEMATICAL FRAKTUR SMALL Z → LATIN SMALL LETTER Z # +1D56B ; 007A ; MA # ( 𝕫 → z ) MATHEMATICAL DOUBLE-STRUCK SMALL Z → LATIN SMALL LETTER Z # +1D59F ; 007A ; MA # ( 𝖟 → z ) MATHEMATICAL BOLD FRAKTUR SMALL Z → LATIN SMALL LETTER Z # +1D5D3 ; 007A ; MA # ( 𝗓 → z ) MATHEMATICAL SANS-SERIF SMALL Z → LATIN SMALL LETTER Z # +1D607 ; 007A ; MA # ( 𝘇 → z ) MATHEMATICAL SANS-SERIF BOLD SMALL Z → LATIN SMALL LETTER Z # +1D63B ; 007A ; MA # ( 𝘻 → z ) MATHEMATICAL SANS-SERIF ITALIC SMALL Z → LATIN SMALL LETTER Z # +1D66F ; 007A ; MA # ( 𝙯 → z ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z → LATIN SMALL LETTER Z # +1D6A3 ; 007A ; MA # ( 𝚣 → z ) MATHEMATICAL MONOSPACE SMALL Z → LATIN SMALL LETTER Z # +1D22 ; 007A ; MA # ( ᴢ → z ) LATIN LETTER SMALL CAPITAL Z → LATIN SMALL LETTER Z # +AB93 ; 007A ; MA # ( ꮓ → z ) CHEROKEE SMALL LETTER NO → LATIN SMALL LETTER Z # →ᴢ→ +118C4 ; 007A ; MA # ( 𑣄 → z ) WARANG CITI SMALL LETTER YA → LATIN SMALL LETTER Z # + +102F5 ; 005A ; MA #* ( 𐋵 → Z ) COPTIC EPACT NUMBER THREE HUNDRED → LATIN CAPITAL LETTER Z # +118E5 ; 005A ; MA # ( 𑣥 → Z ) WARANG CITI DIGIT FIVE → LATIN CAPITAL LETTER Z # +FF3A ; 005A ; MA # ( Z → Z ) FULLWIDTH LATIN CAPITAL LETTER Z → LATIN CAPITAL LETTER Z # →Ζ→ +2124 ; 005A ; MA # ( ℤ → Z ) DOUBLE-STRUCK CAPITAL Z → LATIN CAPITAL LETTER Z # +2128 ; 005A ; MA # ( ℨ → Z ) BLACK-LETTER CAPITAL Z → LATIN CAPITAL LETTER Z # +1D419 ; 005A ; MA # ( 𝐙 → Z ) MATHEMATICAL BOLD CAPITAL Z → LATIN CAPITAL LETTER Z # +1D44D ; 005A ; MA # ( 𝑍 → Z ) MATHEMATICAL ITALIC CAPITAL Z → LATIN CAPITAL LETTER Z # +1D481 ; 005A ; MA # ( 𝒁 → Z ) MATHEMATICAL BOLD ITALIC CAPITAL Z → LATIN CAPITAL LETTER Z # +1D4B5 ; 005A ; MA # ( 𝒵 → Z ) MATHEMATICAL SCRIPT CAPITAL Z → LATIN CAPITAL LETTER Z # +1D4E9 ; 005A ; MA # ( 𝓩 → Z ) MATHEMATICAL BOLD SCRIPT CAPITAL Z → LATIN CAPITAL LETTER Z # +1D585 ; 005A ; MA # ( 𝖅 → Z ) MATHEMATICAL BOLD FRAKTUR CAPITAL Z → LATIN CAPITAL LETTER Z # +1D5B9 ; 005A ; MA # ( 𝖹 → Z ) MATHEMATICAL SANS-SERIF CAPITAL Z → LATIN CAPITAL LETTER Z # +1D5ED ; 005A ; MA # ( 𝗭 → Z ) MATHEMATICAL SANS-SERIF BOLD CAPITAL Z → LATIN CAPITAL LETTER Z # +1D621 ; 005A ; MA # ( 𝘡 → Z ) MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z → LATIN CAPITAL LETTER Z # +1D655 ; 005A ; MA # ( 𝙕 → Z ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z → LATIN CAPITAL LETTER Z # +1D689 ; 005A ; MA # ( 𝚉 → Z ) MATHEMATICAL MONOSPACE CAPITAL Z → LATIN CAPITAL LETTER Z # +0396 ; 005A ; MA # ( Ζ → Z ) GREEK CAPITAL LETTER ZETA → LATIN CAPITAL LETTER Z # +1D6AD ; 005A ; MA # ( 𝚭 → Z ) MATHEMATICAL BOLD CAPITAL ZETA → LATIN CAPITAL LETTER Z # →Ζ→ +1D6E7 ; 005A ; MA # ( 𝛧 → Z ) MATHEMATICAL ITALIC CAPITAL ZETA → LATIN CAPITAL LETTER Z # →𝑍→ +1D721 ; 005A ; MA # ( 𝜡 → Z ) MATHEMATICAL BOLD ITALIC CAPITAL ZETA → LATIN CAPITAL LETTER Z # →Ζ→ +1D75B ; 005A ; MA # ( 𝝛 → Z ) MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA → LATIN CAPITAL LETTER Z # →Ζ→ +1D795 ; 005A ; MA # ( 𝞕 → Z ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA → LATIN CAPITAL LETTER Z # →Ζ→ +13C3 ; 005A ; MA # ( Ꮓ → Z ) CHEROKEE LETTER NO → LATIN CAPITAL LETTER Z # +A4DC ; 005A ; MA # ( ꓜ → Z ) LISU LETTER DZA → LATIN CAPITAL LETTER Z # +118A9 ; 005A ; MA # ( 𑢩 → Z ) WARANG CITI CAPITAL LETTER O → LATIN CAPITAL LETTER Z # + +0290 ; 007A 0328 ; MA # ( ʐ → z̨ ) LATIN SMALL LETTER Z WITH RETROFLEX HOOK → LATIN SMALL LETTER Z, COMBINING OGONEK # →z̢→ + +01B6 ; 007A 0335 ; MA # ( ƶ → z̵ ) LATIN SMALL LETTER Z WITH STROKE → LATIN SMALL LETTER Z, COMBINING SHORT STROKE OVERLAY # + +01B5 ; 005A 0335 ; MA # ( Ƶ → Z̵ ) LATIN CAPITAL LETTER Z WITH STROKE → LATIN CAPITAL LETTER Z, COMBINING SHORT STROKE OVERLAY # + +0225 ; 007A 0326 ; MA # ( ȥ → z̦ ) LATIN SMALL LETTER Z WITH HOOK → LATIN SMALL LETTER Z, COMBINING COMMA BELOW # →z̡→ + +0224 ; 005A 0326 ; MA # ( Ȥ → Z̦ ) LATIN CAPITAL LETTER Z WITH HOOK → LATIN CAPITAL LETTER Z, COMBINING COMMA BELOW # →Z̧→ + +1D76 ; 007A 0334 ; MA # ( ᵶ → z̴ ) LATIN SMALL LETTER Z WITH MIDDLE TILDE → LATIN SMALL LETTER Z, COMBINING TILDE OVERLAY # + +01BF ; 00FE ; MA # ( ƿ → þ ) LATIN LETTER WYNN → LATIN SMALL LETTER THORN # +03F8 ; 00FE ; MA # ( ϸ → þ ) GREEK SMALL LETTER SHO → LATIN SMALL LETTER THORN # + +03F7 ; 00DE ; MA # ( Ϸ → Þ ) GREEK CAPITAL LETTER SHO → LATIN CAPITAL LETTER THORN # +104C4 ; 00DE ; MA # ( 𐓄 → Þ ) OSAGE CAPITAL LETTER PA → LATIN CAPITAL LETTER THORN # + +2079 ; A770 ; MA #* ( ⁹ → ꝰ ) SUPERSCRIPT NINE → MODIFIER LETTER US # + +1D24 ; 01A8 ; MA # ( ᴤ → ƨ ) LATIN LETTER VOICED LARYNGEAL SPIRANT → LATIN SMALL LETTER TONE TWO # +03E9 ; 01A8 ; MA # ( ϩ → ƨ ) COPTIC SMALL LETTER HORI → LATIN SMALL LETTER TONE TWO # +A645 ; 01A8 ; MA # ( ꙅ → ƨ ) CYRILLIC SMALL LETTER REVERSED DZE → LATIN SMALL LETTER TONE TWO # + +044C ; 0185 ; MA # ( ь → ƅ ) CYRILLIC SMALL LETTER SOFT SIGN → LATIN SMALL LETTER TONE SIX # +AB9F ; 0185 ; MA # ( ꮟ → ƅ ) CHEROKEE SMALL LETTER SI → LATIN SMALL LETTER TONE SIX # →ь→ + +044B ; 0185 0069 ; MA # ( ы → ƅi ) CYRILLIC SMALL LETTER YERU → LATIN SMALL LETTER TONE SIX, LATIN SMALL LETTER I # →ьı→ + +AB7E ; 0242 ; MA # ( ꭾ → ɂ ) CHEROKEE SMALL LETTER HE → LATIN SMALL LETTER GLOTTAL STOP # + +02E4 ; 02C1 ; MA # ( ˤ → ˁ ) MODIFIER LETTER SMALL REVERSED GLOTTAL STOP → MODIFIER LETTER REVERSED GLOTTAL STOP # + +A6CD ; 02A1 ; MA # ( ꛍ → ʡ ) BAMUM LETTER LU → LATIN LETTER GLOTTAL STOP WITH STROKE # + +2299 ; 0298 ; MA #* ( ⊙ → ʘ ) CIRCLED DOT OPERATOR → LATIN LETTER BILABIAL CLICK # +2609 ; 0298 ; MA #* ( ☉ → ʘ ) SUN → LATIN LETTER BILABIAL CLICK # →⊙→ +2A00 ; 0298 ; MA #* ( ⨀ → ʘ ) N-ARY CIRCLED DOT OPERATOR → LATIN LETTER BILABIAL CLICK # →⊙→ +A668 ; 0298 ; MA # ( Ꙩ → ʘ ) CYRILLIC CAPITAL LETTER MONOCULAR O → LATIN LETTER BILABIAL CLICK # +2D59 ; 0298 ; MA # ( ⵙ → ʘ ) TIFINAGH LETTER YAS → LATIN LETTER BILABIAL CLICK # →⊙→ +104C3 ; 0298 ; MA # ( 𐓃 → ʘ ) OSAGE CAPITAL LETTER OIN → LATIN LETTER BILABIAL CLICK # →Ꙩ→ + +213E ; 0393 ; MA # ( ℾ → Γ ) DOUBLE-STRUCK CAPITAL GAMMA → GREEK CAPITAL LETTER GAMMA # +1D6AA ; 0393 ; MA # ( 𝚪 → Γ ) MATHEMATICAL BOLD CAPITAL GAMMA → GREEK CAPITAL LETTER GAMMA # +1D6E4 ; 0393 ; MA # ( 𝛤 → Γ ) MATHEMATICAL ITALIC CAPITAL GAMMA → GREEK CAPITAL LETTER GAMMA # +1D71E ; 0393 ; MA # ( 𝜞 → Γ ) MATHEMATICAL BOLD ITALIC CAPITAL GAMMA → GREEK CAPITAL LETTER GAMMA # +1D758 ; 0393 ; MA # ( 𝝘 → Γ ) MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA → GREEK CAPITAL LETTER GAMMA # +1D792 ; 0393 ; MA # ( 𝞒 → Γ ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA → GREEK CAPITAL LETTER GAMMA # +2C84 ; 0393 ; MA # ( Ⲅ → Γ ) COPTIC CAPITAL LETTER GAMMA → GREEK CAPITAL LETTER GAMMA # +0413 ; 0393 ; MA # ( Г → Γ ) CYRILLIC CAPITAL LETTER GHE → GREEK CAPITAL LETTER GAMMA # +13B1 ; 0393 ; MA # ( Ꮁ → Γ ) CHEROKEE LETTER HU → GREEK CAPITAL LETTER GAMMA # +14A5 ; 0393 ; MA # ( ᒥ → Γ ) CANADIAN SYLLABICS MI → GREEK CAPITAL LETTER GAMMA # +16F07 ; 0393 ; MA # ( 𖼇 → Γ ) MIAO LETTER FA → GREEK CAPITAL LETTER GAMMA # + +0492 ; 0393 0335 ; MA # ( Ғ → Γ̵ ) CYRILLIC CAPITAL LETTER GHE WITH STROKE → GREEK CAPITAL LETTER GAMMA, COMBINING SHORT STROKE OVERLAY # →Г̵→ + +14AF ; 0393 00B7 ; MA # ( ᒯ → Γ· ) CANADIAN SYLLABICS WEST-CREE MWI → GREEK CAPITAL LETTER GAMMA, MIDDLE DOT # →ᒥᐧ→→ᒥ·→ + +0490 ; 0393 0027 ; MA # ( Ґ → Γ' ) CYRILLIC CAPITAL LETTER GHE WITH UPTURN → GREEK CAPITAL LETTER GAMMA, APOSTROPHE # →Гˈ→ + +2206 ; 0394 ; MA #* ( ∆ → Δ ) INCREMENT → GREEK CAPITAL LETTER DELTA # +25B3 ; 0394 ; MA #* ( △ → Δ ) WHITE UP-POINTING TRIANGLE → GREEK CAPITAL LETTER DELTA # +1F702 ; 0394 ; MA #* ( 🜂 → Δ ) ALCHEMICAL SYMBOL FOR FIRE → GREEK CAPITAL LETTER DELTA # →△→ +1D6AB ; 0394 ; MA # ( 𝚫 → Δ ) MATHEMATICAL BOLD CAPITAL DELTA → GREEK CAPITAL LETTER DELTA # +1D6E5 ; 0394 ; MA # ( 𝛥 → Δ ) MATHEMATICAL ITALIC CAPITAL DELTA → GREEK CAPITAL LETTER DELTA # +1D71F ; 0394 ; MA # ( 𝜟 → Δ ) MATHEMATICAL BOLD ITALIC CAPITAL DELTA → GREEK CAPITAL LETTER DELTA # +1D759 ; 0394 ; MA # ( 𝝙 → Δ ) MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA → GREEK CAPITAL LETTER DELTA # +1D793 ; 0394 ; MA # ( 𝞓 → Δ ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA → GREEK CAPITAL LETTER DELTA # +2C86 ; 0394 ; MA # ( Ⲇ → Δ ) COPTIC CAPITAL LETTER DALDA → GREEK CAPITAL LETTER DELTA # +2D60 ; 0394 ; MA # ( ⵠ → Δ ) TIFINAGH LETTER YAV → GREEK CAPITAL LETTER DELTA # +1403 ; 0394 ; MA # ( ᐃ → Δ ) CANADIAN SYLLABICS I → GREEK CAPITAL LETTER DELTA # +16F1A ; 0394 ; MA # ( 𖼚 → Δ ) MIAO LETTER TLHA → GREEK CAPITAL LETTER DELTA # +10285 ; 0394 ; MA # ( 𐊅 → Δ ) LYCIAN LETTER D → GREEK CAPITAL LETTER DELTA # +102A3 ; 0394 ; MA # ( 𐊣 → Δ ) CARIAN LETTER L → GREEK CAPITAL LETTER DELTA # + +2359 ; 0394 0332 ; MA #* ( ⍙ → Δ̲ ) APL FUNCTIONAL SYMBOL DELTA UNDERBAR → GREEK CAPITAL LETTER DELTA, COMBINING LOW LINE # + +140F ; 0394 00B7 ; MA # ( ᐏ → Δ· ) CANADIAN SYLLABICS WEST-CREE WI → GREEK CAPITAL LETTER DELTA, MIDDLE DOT # →ᐃᐧ→ + +142C ; 0394 1420 ; MA # ( ᐬ → Δᐠ ) CANADIAN SYLLABICS IN → GREEK CAPITAL LETTER DELTA, CANADIAN SYLLABICS FINAL GRAVE # →ᐃᐠ→ + +1D7CB ; 03DD ; MA # ( 𝟋 → ϝ ) MATHEMATICAL BOLD SMALL DIGAMMA → GREEK SMALL LETTER DIGAMMA # + +1D6C7 ; 03B6 ; MA # ( 𝛇 → ζ ) MATHEMATICAL BOLD SMALL ZETA → GREEK SMALL LETTER ZETA # +1D701 ; 03B6 ; MA # ( 𝜁 → ζ ) MATHEMATICAL ITALIC SMALL ZETA → GREEK SMALL LETTER ZETA # +1D73B ; 03B6 ; MA # ( 𝜻 → ζ ) MATHEMATICAL BOLD ITALIC SMALL ZETA → GREEK SMALL LETTER ZETA # +1D775 ; 03B6 ; MA # ( 𝝵 → ζ ) MATHEMATICAL SANS-SERIF BOLD SMALL ZETA → GREEK SMALL LETTER ZETA # +1D7AF ; 03B6 ; MA # ( 𝞯 → ζ ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA → GREEK SMALL LETTER ZETA # + +2CE4 ; 03D7 ; MA # ( ⳤ → ϗ ) COPTIC SYMBOL KAI → GREEK KAI SYMBOL # + +1D6CC ; 03BB ; MA # ( 𝛌 → λ ) MATHEMATICAL BOLD SMALL LAMDA → GREEK SMALL LETTER LAMDA # +1D706 ; 03BB ; MA # ( 𝜆 → λ ) MATHEMATICAL ITALIC SMALL LAMDA → GREEK SMALL LETTER LAMDA # +1D740 ; 03BB ; MA # ( 𝝀 → λ ) MATHEMATICAL BOLD ITALIC SMALL LAMDA → GREEK SMALL LETTER LAMDA # +1D77A ; 03BB ; MA # ( 𝝺 → λ ) MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA → GREEK SMALL LETTER LAMDA # +1D7B4 ; 03BB ; MA # ( 𝞴 → λ ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA → GREEK SMALL LETTER LAMDA # +2C96 ; 03BB ; MA # ( Ⲗ → λ ) COPTIC CAPITAL LETTER LAULA → GREEK SMALL LETTER LAMDA # +104DB ; 03BB ; MA # ( 𐓛 → λ ) OSAGE SMALL LETTER AH → GREEK SMALL LETTER LAMDA # + +00B5 ; 03BC ; MA # ( µ → μ ) MICRO SIGN → GREEK SMALL LETTER MU # +1D6CD ; 03BC ; MA # ( 𝛍 → μ ) MATHEMATICAL BOLD SMALL MU → GREEK SMALL LETTER MU # +1D707 ; 03BC ; MA # ( 𝜇 → μ ) MATHEMATICAL ITALIC SMALL MU → GREEK SMALL LETTER MU # +1D741 ; 03BC ; MA # ( 𝝁 → μ ) MATHEMATICAL BOLD ITALIC SMALL MU → GREEK SMALL LETTER MU # +1D77B ; 03BC ; MA # ( 𝝻 → μ ) MATHEMATICAL SANS-SERIF BOLD SMALL MU → GREEK SMALL LETTER MU # +1D7B5 ; 03BC ; MA # ( 𝞵 → μ ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU → GREEK SMALL LETTER MU # + +1D6CF ; 03BE ; MA # ( 𝛏 → ξ ) MATHEMATICAL BOLD SMALL XI → GREEK SMALL LETTER XI # +1D709 ; 03BE ; MA # ( 𝜉 → ξ ) MATHEMATICAL ITALIC SMALL XI → GREEK SMALL LETTER XI # +1D743 ; 03BE ; MA # ( 𝝃 → ξ ) MATHEMATICAL BOLD ITALIC SMALL XI → GREEK SMALL LETTER XI # +1D77D ; 03BE ; MA # ( 𝝽 → ξ ) MATHEMATICAL SANS-SERIF BOLD SMALL XI → GREEK SMALL LETTER XI # +1D7B7 ; 03BE ; MA # ( 𝞷 → ξ ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI → GREEK SMALL LETTER XI # + +1D6B5 ; 039E ; MA # ( 𝚵 → Ξ ) MATHEMATICAL BOLD CAPITAL XI → GREEK CAPITAL LETTER XI # +1D6EF ; 039E ; MA # ( 𝛯 → Ξ ) MATHEMATICAL ITALIC CAPITAL XI → GREEK CAPITAL LETTER XI # +1D729 ; 039E ; MA # ( 𝜩 → Ξ ) MATHEMATICAL BOLD ITALIC CAPITAL XI → GREEK CAPITAL LETTER XI # +1D763 ; 039E ; MA # ( 𝝣 → Ξ ) MATHEMATICAL SANS-SERIF BOLD CAPITAL XI → GREEK CAPITAL LETTER XI # +1D79D ; 039E ; MA # ( 𝞝 → Ξ ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI → GREEK CAPITAL LETTER XI # + +03D6 ; 03C0 ; MA # ( ϖ → π ) GREEK PI SYMBOL → GREEK SMALL LETTER PI # +213C ; 03C0 ; MA # ( ℼ → π ) DOUBLE-STRUCK SMALL PI → GREEK SMALL LETTER PI # +1D6D1 ; 03C0 ; MA # ( 𝛑 → π ) MATHEMATICAL BOLD SMALL PI → GREEK SMALL LETTER PI # +1D6E1 ; 03C0 ; MA # ( 𝛡 → π ) MATHEMATICAL BOLD PI SYMBOL → GREEK SMALL LETTER PI # +1D70B ; 03C0 ; MA # ( 𝜋 → π ) MATHEMATICAL ITALIC SMALL PI → GREEK SMALL LETTER PI # +1D71B ; 03C0 ; MA # ( 𝜛 → π ) MATHEMATICAL ITALIC PI SYMBOL → GREEK SMALL LETTER PI # +1D745 ; 03C0 ; MA # ( 𝝅 → π ) MATHEMATICAL BOLD ITALIC SMALL PI → GREEK SMALL LETTER PI # +1D755 ; 03C0 ; MA # ( 𝝕 → π ) MATHEMATICAL BOLD ITALIC PI SYMBOL → GREEK SMALL LETTER PI # +1D77F ; 03C0 ; MA # ( 𝝿 → π ) MATHEMATICAL SANS-SERIF BOLD SMALL PI → GREEK SMALL LETTER PI # +1D78F ; 03C0 ; MA # ( 𝞏 → π ) MATHEMATICAL SANS-SERIF BOLD PI SYMBOL → GREEK SMALL LETTER PI # +1D7B9 ; 03C0 ; MA # ( 𝞹 → π ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI → GREEK SMALL LETTER PI # +1D7C9 ; 03C0 ; MA # ( 𝟉 → π ) MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL → GREEK SMALL LETTER PI # +1D28 ; 03C0 ; MA # ( ᴨ → π ) GREEK LETTER SMALL CAPITAL PI → GREEK SMALL LETTER PI # →п→ +043F ; 03C0 ; MA # ( п → π ) CYRILLIC SMALL LETTER PE → GREEK SMALL LETTER PI # + +220F ; 03A0 ; MA #* ( ∏ → Π ) N-ARY PRODUCT → GREEK CAPITAL LETTER PI # +213F ; 03A0 ; MA # ( ℿ → Π ) DOUBLE-STRUCK CAPITAL PI → GREEK CAPITAL LETTER PI # +1D6B7 ; 03A0 ; MA # ( 𝚷 → Π ) MATHEMATICAL BOLD CAPITAL PI → GREEK CAPITAL LETTER PI # +1D6F1 ; 03A0 ; MA # ( 𝛱 → Π ) MATHEMATICAL ITALIC CAPITAL PI → GREEK CAPITAL LETTER PI # +1D72B ; 03A0 ; MA # ( 𝜫 → Π ) MATHEMATICAL BOLD ITALIC CAPITAL PI → GREEK CAPITAL LETTER PI # +1D765 ; 03A0 ; MA # ( 𝝥 → Π ) MATHEMATICAL SANS-SERIF BOLD CAPITAL PI → GREEK CAPITAL LETTER PI # +1D79F ; 03A0 ; MA # ( 𝞟 → Π ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI → GREEK CAPITAL LETTER PI # +2CA0 ; 03A0 ; MA # ( Ⲡ → Π ) COPTIC CAPITAL LETTER PI → GREEK CAPITAL LETTER PI # +041F ; 03A0 ; MA # ( П → Π ) CYRILLIC CAPITAL LETTER PE → GREEK CAPITAL LETTER PI # +A6DB ; 03A0 ; MA # ( ꛛ → Π ) BAMUM LETTER NA → GREEK CAPITAL LETTER PI # + +102AD ; 03D8 ; MA # ( 𐊭 → Ϙ ) CARIAN LETTER T → GREEK LETTER ARCHAIC KOPPA # +10312 ; 03D8 ; MA # ( 𐌒 → Ϙ ) OLD ITALIC LETTER KU → GREEK LETTER ARCHAIC KOPPA # + +03DB ; 03C2 ; MA # ( ϛ → ς ) GREEK SMALL LETTER STIGMA → GREEK SMALL LETTER FINAL SIGMA # +1D6D3 ; 03C2 ; MA # ( 𝛓 → ς ) MATHEMATICAL BOLD SMALL FINAL SIGMA → GREEK SMALL LETTER FINAL SIGMA # +1D70D ; 03C2 ; MA # ( 𝜍 → ς ) MATHEMATICAL ITALIC SMALL FINAL SIGMA → GREEK SMALL LETTER FINAL SIGMA # +1D747 ; 03C2 ; MA # ( 𝝇 → ς ) MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA → GREEK SMALL LETTER FINAL SIGMA # +1D781 ; 03C2 ; MA # ( 𝞁 → ς ) MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA → GREEK SMALL LETTER FINAL SIGMA # +1D7BB ; 03C2 ; MA # ( 𝞻 → ς ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA → GREEK SMALL LETTER FINAL SIGMA # + +1D6BD ; 03A6 ; MA # ( 𝚽 → Φ ) MATHEMATICAL BOLD CAPITAL PHI → GREEK CAPITAL LETTER PHI # +1D6F7 ; 03A6 ; MA # ( 𝛷 → Φ ) MATHEMATICAL ITALIC CAPITAL PHI → GREEK CAPITAL LETTER PHI # +1D731 ; 03A6 ; MA # ( 𝜱 → Φ ) MATHEMATICAL BOLD ITALIC CAPITAL PHI → GREEK CAPITAL LETTER PHI # +1D76B ; 03A6 ; MA # ( 𝝫 → Φ ) MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI → GREEK CAPITAL LETTER PHI # +1D7A5 ; 03A6 ; MA # ( 𝞥 → Φ ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI → GREEK CAPITAL LETTER PHI # +2CAA ; 03A6 ; MA # ( Ⲫ → Φ ) COPTIC CAPITAL LETTER FI → GREEK CAPITAL LETTER PHI # +0424 ; 03A6 ; MA # ( Ф → Φ ) CYRILLIC CAPITAL LETTER EF → GREEK CAPITAL LETTER PHI # +0553 ; 03A6 ; MA # ( Փ → Φ ) ARMENIAN CAPITAL LETTER PIWR → GREEK CAPITAL LETTER PHI # +1240 ; 03A6 ; MA # ( ቀ → Φ ) ETHIOPIC SYLLABLE QA → GREEK CAPITAL LETTER PHI # →Փ→ +16F0 ; 03A6 ; MA # ( ᛰ → Φ ) RUNIC BELGTHOR SYMBOL → GREEK CAPITAL LETTER PHI # +102B3 ; 03A6 ; MA # ( 𐊳 → Φ ) CARIAN LETTER NN → GREEK CAPITAL LETTER PHI # + +AB53 ; 03C7 ; MA # ( ꭓ → χ ) LATIN SMALL LETTER CHI → GREEK SMALL LETTER CHI # +AB55 ; 03C7 ; MA # ( ꭕ → χ ) LATIN SMALL LETTER CHI WITH LOW LEFT SERIF → GREEK SMALL LETTER CHI # +1D6D8 ; 03C7 ; MA # ( 𝛘 → χ ) MATHEMATICAL BOLD SMALL CHI → GREEK SMALL LETTER CHI # +1D712 ; 03C7 ; MA # ( 𝜒 → χ ) MATHEMATICAL ITALIC SMALL CHI → GREEK SMALL LETTER CHI # +1D74C ; 03C7 ; MA # ( 𝝌 → χ ) MATHEMATICAL BOLD ITALIC SMALL CHI → GREEK SMALL LETTER CHI # +1D786 ; 03C7 ; MA # ( 𝞆 → χ ) MATHEMATICAL SANS-SERIF BOLD SMALL CHI → GREEK SMALL LETTER CHI # +1D7C0 ; 03C7 ; MA # ( 𝟀 → χ ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI → GREEK SMALL LETTER CHI # +2CAD ; 03C7 ; MA # ( ⲭ → χ ) COPTIC SMALL LETTER KHI → GREEK SMALL LETTER CHI # + +1D6D9 ; 03C8 ; MA # ( 𝛙 → ψ ) MATHEMATICAL BOLD SMALL PSI → GREEK SMALL LETTER PSI # +1D713 ; 03C8 ; MA # ( 𝜓 → ψ ) MATHEMATICAL ITALIC SMALL PSI → GREEK SMALL LETTER PSI # +1D74D ; 03C8 ; MA # ( 𝝍 → ψ ) MATHEMATICAL BOLD ITALIC SMALL PSI → GREEK SMALL LETTER PSI # +1D787 ; 03C8 ; MA # ( 𝞇 → ψ ) MATHEMATICAL SANS-SERIF BOLD SMALL PSI → GREEK SMALL LETTER PSI # +1D7C1 ; 03C8 ; MA # ( 𝟁 → ψ ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI → GREEK SMALL LETTER PSI # +0471 ; 03C8 ; MA # ( ѱ → ψ ) CYRILLIC SMALL LETTER PSI → GREEK SMALL LETTER PSI # +104F9 ; 03C8 ; MA # ( 𐓹 → ψ ) OSAGE SMALL LETTER GHA → GREEK SMALL LETTER PSI # + +1D6BF ; 03A8 ; MA # ( 𝚿 → Ψ ) MATHEMATICAL BOLD CAPITAL PSI → GREEK CAPITAL LETTER PSI # +1D6F9 ; 03A8 ; MA # ( 𝛹 → Ψ ) MATHEMATICAL ITALIC CAPITAL PSI → GREEK CAPITAL LETTER PSI # +1D733 ; 03A8 ; MA # ( 𝜳 → Ψ ) MATHEMATICAL BOLD ITALIC CAPITAL PSI → GREEK CAPITAL LETTER PSI # +1D76D ; 03A8 ; MA # ( 𝝭 → Ψ ) MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI → GREEK CAPITAL LETTER PSI # +1D7A7 ; 03A8 ; MA # ( 𝞧 → Ψ ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI → GREEK CAPITAL LETTER PSI # +2CAE ; 03A8 ; MA # ( Ⲯ → Ψ ) COPTIC CAPITAL LETTER PSI → GREEK CAPITAL LETTER PSI # +0470 ; 03A8 ; MA # ( Ѱ → Ψ ) CYRILLIC CAPITAL LETTER PSI → GREEK CAPITAL LETTER PSI # +104D1 ; 03A8 ; MA # ( 𐓑 → Ψ ) OSAGE CAPITAL LETTER GHA → GREEK CAPITAL LETTER PSI # +16D8 ; 03A8 ; MA # ( ᛘ → Ψ ) RUNIC LETTER LONG-BRANCH-MADR M → GREEK CAPITAL LETTER PSI # +102B5 ; 03A8 ; MA # ( 𐊵 → Ψ ) CARIAN LETTER N → GREEK CAPITAL LETTER PSI # + +2375 ; 03C9 ; MA #* ( ⍵ → ω ) APL FUNCTIONAL SYMBOL OMEGA → GREEK SMALL LETTER OMEGA # +A7B7 ; 03C9 ; MA # ( ꞷ → ω ) LATIN SMALL LETTER OMEGA → GREEK SMALL LETTER OMEGA # +1D6DA ; 03C9 ; MA # ( 𝛚 → ω ) MATHEMATICAL BOLD SMALL OMEGA → GREEK SMALL LETTER OMEGA # +1D714 ; 03C9 ; MA # ( 𝜔 → ω ) MATHEMATICAL ITALIC SMALL OMEGA → GREEK SMALL LETTER OMEGA # +1D74E ; 03C9 ; MA # ( 𝝎 → ω ) MATHEMATICAL BOLD ITALIC SMALL OMEGA → GREEK SMALL LETTER OMEGA # +1D788 ; 03C9 ; MA # ( 𝞈 → ω ) MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA → GREEK SMALL LETTER OMEGA # +1D7C2 ; 03C9 ; MA # ( 𝟂 → ω ) MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA → GREEK SMALL LETTER OMEGA # +2CB1 ; 03C9 ; MA # ( ⲱ → ω ) COPTIC SMALL LETTER OOU → GREEK SMALL LETTER OMEGA # +A64D ; 03C9 ; MA # ( ꙍ → ω ) CYRILLIC SMALL LETTER BROAD OMEGA → GREEK SMALL LETTER OMEGA # →ꞷ→ + +2126 ; 03A9 ; MA # ( Ω → Ω ) OHM SIGN → GREEK CAPITAL LETTER OMEGA # +1D6C0 ; 03A9 ; MA # ( 𝛀 → Ω ) MATHEMATICAL BOLD CAPITAL OMEGA → GREEK CAPITAL LETTER OMEGA # +1D6FA ; 03A9 ; MA # ( 𝛺 → Ω ) MATHEMATICAL ITALIC CAPITAL OMEGA → GREEK CAPITAL LETTER OMEGA # +1D734 ; 03A9 ; MA # ( 𝜴 → Ω ) MATHEMATICAL BOLD ITALIC CAPITAL OMEGA → GREEK CAPITAL LETTER OMEGA # +1D76E ; 03A9 ; MA # ( 𝝮 → Ω ) MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA → GREEK CAPITAL LETTER OMEGA # +1D7A8 ; 03A9 ; MA # ( 𝞨 → Ω ) MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA → GREEK CAPITAL LETTER OMEGA # +162F ; 03A9 ; MA # ( ᘯ → Ω ) CANADIAN SYLLABICS CARRIER LHO → GREEK CAPITAL LETTER OMEGA # +1635 ; 03A9 ; MA # ( ᘵ → Ω ) CANADIAN SYLLABICS CARRIER TLHO → GREEK CAPITAL LETTER OMEGA # →ᘯ→ +102B6 ; 03A9 ; MA # ( 𐊶 → Ω ) CARIAN LETTER TT2 → GREEK CAPITAL LETTER OMEGA # + +2379 ; 03C9 0332 ; MA #* ( ⍹ → ω̲ ) APL FUNCTIONAL SYMBOL OMEGA UNDERBAR → GREEK SMALL LETTER OMEGA, COMBINING LOW LINE # + +1F7D ; 1FF4 ; MA # ( ώ → ῴ ) GREEK SMALL LETTER OMEGA WITH OXIA → GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI # + +2630 ; 2CB6 ; MA #* ( ☰ → Ⲷ ) TRIGRAM FOR HEAVEN → COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE # + +2CDC ; 03EC ; MA # ( Ⳝ → Ϭ ) COPTIC CAPITAL LETTER OLD NUBIAN SHIMA → COPTIC CAPITAL LETTER SHIMA # + +0497 ; 0436 0329 ; MA # ( җ → ж̩ ) CYRILLIC SMALL LETTER ZHE WITH DESCENDER → CYRILLIC SMALL LETTER ZHE, COMBINING VERTICAL LINE BELOW # + +0496 ; 0416 0329 ; MA # ( Җ → Ж̩ ) CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER → CYRILLIC CAPITAL LETTER ZHE, COMBINING VERTICAL LINE BELOW # + +1D20B ; 0418 ; MA #* ( 𝈋 → И ) GREEK VOCAL NOTATION SYMBOL-12 → CYRILLIC CAPITAL LETTER I # →Ͷ→ +0376 ; 0418 ; MA # ( Ͷ → И ) GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA → CYRILLIC CAPITAL LETTER I # +A6A1 ; 0418 ; MA # ( ꚡ → И ) BAMUM LETTER KA → CYRILLIC CAPITAL LETTER I # →Ͷ→ +10425 ; 0418 ; MA # ( 𐐥 → И ) DESERET CAPITAL LETTER ENG → CYRILLIC CAPITAL LETTER I # + +0419 ; 040D ; MA # ( Й → Ѝ ) CYRILLIC CAPITAL LETTER SHORT I → CYRILLIC CAPITAL LETTER I WITH GRAVE # + +048A ; 040D 0326 ; MA # ( Ҋ → Ѝ̦ ) CYRILLIC CAPITAL LETTER SHORT I WITH TAIL → CYRILLIC CAPITAL LETTER I WITH GRAVE, COMBINING COMMA BELOW # →Й̡→ + +045D ; 0439 ; MA # ( ѝ → й ) CYRILLIC SMALL LETTER I WITH GRAVE → CYRILLIC SMALL LETTER SHORT I # + +048B ; 0439 0326 ; MA # ( ҋ → й̦ ) CYRILLIC SMALL LETTER SHORT I WITH TAIL → CYRILLIC SMALL LETTER SHORT I, COMBINING COMMA BELOW # →й̡→ + +104BC ; 04C3 ; MA # ( 𐒼 → Ӄ ) OSAGE CAPITAL LETTER KA → CYRILLIC CAPITAL LETTER KA WITH HOOK # + +1D2B ; 043B ; MA # ( ᴫ → л ) CYRILLIC LETTER SMALL CAPITAL EL → CYRILLIC SMALL LETTER EL # + +04C6 ; 043B 0326 ; MA # ( ӆ → л̦ ) CYRILLIC SMALL LETTER EL WITH TAIL → CYRILLIC SMALL LETTER EL, COMBINING COMMA BELOW # →л̡→ + +AB60 ; 0459 ; MA # ( ꭠ → љ ) LATIN SMALL LETTER SAKHA YAT → CYRILLIC SMALL LETTER LJE # + +104EB ; A669 ; MA # ( 𐓫 → ꙩ ) OSAGE SMALL LETTER OIN → CYRILLIC SMALL LETTER MONOCULAR O # + +1DEE ; 2DEC ; MA # ( ᷮ → ⷬ ) COMBINING LATIN SMALL LETTER P → COMBINING CYRILLIC LETTER ER # + +104CD ; 040B ; MA # ( 𐓍 → Ћ ) OSAGE CAPITAL LETTER DHA → CYRILLIC CAPITAL LETTER TSHE # + +1D202 ; 04FE ; MA #* ( 𝈂 → Ӿ ) GREEK VOCAL NOTATION SYMBOL-3 → CYRILLIC CAPITAL LETTER HA WITH STROKE # + +1D222 ; 0460 ; MA #* ( 𝈢 → Ѡ ) GREEK INSTRUMENTAL NOTATION SYMBOL-8 → CYRILLIC CAPITAL LETTER OMEGA # +13C7 ; 0460 ; MA # ( Ꮗ → Ѡ ) CHEROKEE LETTER QUE → CYRILLIC CAPITAL LETTER OMEGA # +15EF ; 0460 ; MA # ( ᗯ → Ѡ ) CANADIAN SYLLABICS CARRIER GU → CYRILLIC CAPITAL LETTER OMEGA # + +047C ; 0460 0486 0487 ; MA # ( Ѽ → Ѡ҆҇ ) CYRILLIC CAPITAL LETTER OMEGA WITH TITLO → CYRILLIC CAPITAL LETTER OMEGA, COMBINING CYRILLIC PSILI PNEUMATA, COMBINING CYRILLIC POKRYTIE # + +18ED ; 0460 00B7 ; MA # ( ᣭ → Ѡ· ) CANADIAN SYLLABICS CARRIER GWU → CYRILLIC CAPITAL LETTER OMEGA, MIDDLE DOT # →ᗯᐧ→ + +A7B6 ; A64C ; MA # ( Ꞷ → Ꙍ ) LATIN CAPITAL LETTER OMEGA → CYRILLIC CAPITAL LETTER BROAD OMEGA # + +04CC ; 04B7 ; MA # ( ӌ → ҷ ) CYRILLIC SMALL LETTER KHAKASSIAN CHE → CYRILLIC SMALL LETTER CHE WITH DESCENDER # + +04CB ; 04B6 ; MA # ( Ӌ → Ҷ ) CYRILLIC CAPITAL LETTER KHAKASSIAN CHE → CYRILLIC CAPITAL LETTER CHE WITH DESCENDER # + +04BE ; 04BC 0328 ; MA # ( Ҿ → Ҽ̨ ) CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER → CYRILLIC CAPITAL LETTER ABKHASIAN CHE, COMBINING OGONEK # + +2CBD ; 0448 ; MA # ( ⲽ → ш ) COPTIC SMALL LETTER CRYPTOGRAMMIC NI → CYRILLIC SMALL LETTER SHA # + +2CBC ; 0428 ; MA # ( Ⲽ → Ш ) COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI → CYRILLIC CAPITAL LETTER SHA # + +A650 ; 042A 006C ; MA # ( Ꙑ → Ъl ) CYRILLIC CAPITAL LETTER YERU WITH BACK YER → CYRILLIC CAPITAL LETTER HARD SIGN, LATIN SMALL LETTER L # →ЪІ→ + +2108 ; 042D ; MA #* ( ℈ → Э ) SCRUPLE → CYRILLIC CAPITAL LETTER E # + +1F701 ; A658 ; MA #* ( 🜁 → Ꙙ ) ALCHEMICAL SYMBOL FOR AIR → CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS # +16F1C ; A658 ; MA # ( 𖼜 → Ꙙ ) MIAO LETTER TLHYA → CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS # + +A992 ; 2C3F ; MA # ( ꦒ → ⰿ ) JAVANESE LETTER GA → GLAGOLITIC SMALL LETTER MYSLITE # + +0587 ; 0565 0582 ; MA # ( և → եւ ) ARMENIAN SMALL LIGATURE ECH YIWN → ARMENIAN SMALL LETTER ECH, ARMENIAN SMALL LETTER YIWN # + +1294 ; 0571 ; MA # ( ኔ → ձ ) ETHIOPIC SYLLABLE NEE → ARMENIAN SMALL LETTER JA # + +FB14 ; 0574 0565 ; MA # ( ﬔ → մե ) ARMENIAN SMALL LIGATURE MEN ECH → ARMENIAN SMALL LETTER MEN, ARMENIAN SMALL LETTER ECH # + +FB15 ; 0574 056B ; MA # ( ﬕ → մի ) ARMENIAN SMALL LIGATURE MEN INI → ARMENIAN SMALL LETTER MEN, ARMENIAN SMALL LETTER INI # + +FB17 ; 0574 056D ; MA # ( ﬗ → մխ ) ARMENIAN SMALL LIGATURE MEN XEH → ARMENIAN SMALL LETTER MEN, ARMENIAN SMALL LETTER XEH # + +FB13 ; 0574 0576 ; MA # ( ﬓ → մն ) ARMENIAN SMALL LIGATURE MEN NOW → ARMENIAN SMALL LETTER MEN, ARMENIAN SMALL LETTER NOW # + +2229 ; 0548 ; MA #* ( ∩ → Ո ) INTERSECTION → ARMENIAN CAPITAL LETTER VO # →ᑎ→ +22C2 ; 0548 ; MA #* ( ⋂ → Ո ) N-ARY INTERSECTION → ARMENIAN CAPITAL LETTER VO # →∩→→ᑎ→ +1D245 ; 0548 ; MA #* ( 𝉅 → Ո ) GREEK MUSICAL LEIMMA → ARMENIAN CAPITAL LETTER VO # →∩→→ᑎ→ +1260 ; 0548 ; MA # ( በ → Ո ) ETHIOPIC SYLLABLE BA → ARMENIAN CAPITAL LETTER VO # +144E ; 0548 ; MA # ( ᑎ → Ո ) CANADIAN SYLLABICS TI → ARMENIAN CAPITAL LETTER VO # +A4F5 ; 0548 ; MA # ( ꓵ → Ո ) LISU LETTER UE → ARMENIAN CAPITAL LETTER VO # →∩→→ᑎ→ + +145A ; 0548 00B7 ; MA # ( ᑚ → Ո· ) CANADIAN SYLLABICS WEST-CREE TWI → ARMENIAN CAPITAL LETTER VO, MIDDLE DOT # →ᑎᐧ→→ᑎ·→ + +1468 ; 0548 0027 ; MA # ( ᑨ → Ո' ) CANADIAN SYLLABICS TTI → ARMENIAN CAPITAL LETTER VO, APOSTROPHE # →ᑎᑊ→→ᑎ'→ + +FB16 ; 057E 0576 ; MA # ( ﬖ → վն ) ARMENIAN SMALL LIGATURE VEW NOW → ARMENIAN SMALL LETTER VEW, ARMENIAN SMALL LETTER NOW # + +20BD ; 0554 ; MA #* ( ₽ → Ք ) RUBLE SIGN → ARMENIAN CAPITAL LETTER KEH # + +02D3 ; 0559 ; MA #* ( ˓ → ՙ ) MODIFIER LETTER CENTRED LEFT HALF RING → ARMENIAN MODIFIER LETTER LEFT HALF RING # +02BF ; 0559 ; MA # ( ʿ → ՙ ) MODIFIER LETTER LEFT HALF RING → ARMENIAN MODIFIER LETTER LEFT HALF RING # + +2135 ; 05D0 ; MA # ( ℵ → ‎א‎ ) ALEF SYMBOL → HEBREW LETTER ALEF # +FB21 ; 05D0 ; MA # ( ‎ﬡ‎ → ‎א‎ ) HEBREW LETTER WIDE ALEF → HEBREW LETTER ALEF # + +FB2F ; FB2E ; MA # ( ‎אָ‎ → ‎אַ‎ ) HEBREW LETTER ALEF WITH QAMATS → HEBREW LETTER ALEF WITH PATAH # +FB30 ; FB2E ; MA # ( ‎אּ‎ → ‎אַ‎ ) HEBREW LETTER ALEF WITH MAPIQ → HEBREW LETTER ALEF WITH PATAH # + +FB4F ; 05D0 05DC ; MA # ( ‎ﭏ‎ → ‎אל‎ ) HEBREW LIGATURE ALEF LAMED → HEBREW LETTER ALEF, HEBREW LETTER LAMED # + +2136 ; 05D1 ; MA # ( ℶ → ‎ב‎ ) BET SYMBOL → HEBREW LETTER BET # + +2137 ; 05D2 ; MA # ( ℷ → ‎ג‎ ) GIMEL SYMBOL → HEBREW LETTER GIMEL # + +2138 ; 05D3 ; MA # ( ℸ → ‎ד‎ ) DALET SYMBOL → HEBREW LETTER DALET # +FB22 ; 05D3 ; MA # ( ‎ﬢ‎ → ‎ד‎ ) HEBREW LETTER WIDE DALET → HEBREW LETTER DALET # + +FB23 ; 05D4 ; MA # ( ‎ﬣ‎ → ‎ה‎ ) HEBREW LETTER WIDE HE → HEBREW LETTER HE # + +FB39 ; FB1D ; MA # ( ‎יּ‎ → ‎יִ‎ ) HEBREW LETTER YOD WITH DAGESH → HEBREW LETTER YOD WITH HIRIQ # + +FB24 ; 05DB ; MA # ( ‎ﬤ‎ → ‎כ‎ ) HEBREW LETTER WIDE KAF → HEBREW LETTER KAF # + +FB25 ; 05DC ; MA # ( ‎ﬥ‎ → ‎ל‎ ) HEBREW LETTER WIDE LAMED → HEBREW LETTER LAMED # + +FB26 ; 05DD ; MA # ( ‎ﬦ‎ → ‎ם‎ ) HEBREW LETTER WIDE FINAL MEM → HEBREW LETTER FINAL MEM # + +FB20 ; 05E2 ; MA # ( ‎ﬠ‎ → ‎ע‎ ) HEBREW LETTER ALTERNATIVE AYIN → HEBREW LETTER AYIN # + +FB27 ; 05E8 ; MA # ( ‎ﬧ‎ → ‎ר‎ ) HEBREW LETTER WIDE RESH → HEBREW LETTER RESH # + +FB2B ; FB2A ; MA # ( ‎שׂ‎ → ‎שׁ‎ ) HEBREW LETTER SHIN WITH SIN DOT → HEBREW LETTER SHIN WITH SHIN DOT # +FB49 ; FB2A ; MA # ( ‎שּ‎ → ‎שׁ‎ ) HEBREW LETTER SHIN WITH DAGESH → HEBREW LETTER SHIN WITH SHIN DOT # + +FB2D ; FB2C ; MA # ( ‎שּׂ‎ → ‎שּׁ‎ ) HEBREW LETTER SHIN WITH DAGESH AND SIN DOT → HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT # + +FB28 ; 05EA ; MA # ( ‎ﬨ‎ → ‎ת‎ ) HEBREW LETTER WIDE TAV → HEBREW LETTER TAV # + +FE80 ; 0621 ; MA # ( ‎ﺀ‎ → ‎ء‎ ) ARABIC LETTER HAMZA ISOLATED FORM → ARABIC LETTER HAMZA # + +06FD ; 0621 0348 ; MA #* ( ‎۽‎ → ‎ء͈‎ ) ARABIC SIGN SINDHI AMPERSAND → ARABIC LETTER HAMZA, COMBINING DOUBLE VERTICAL LINE BELOW # + +FE82 ; 0622 ; MA # ( ‎ﺂ‎ → ‎آ‎ ) ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM → ARABIC LETTER ALEF WITH MADDA ABOVE # +FE81 ; 0622 ; MA # ( ‎ﺁ‎ → ‎آ‎ ) ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM → ARABIC LETTER ALEF WITH MADDA ABOVE # + +FB51 ; 0671 ; MA # ( ‎ﭑ‎ → ‎ٱ‎ ) ARABIC LETTER ALEF WASLA FINAL FORM → ARABIC LETTER ALEF WASLA # +FB50 ; 0671 ; MA # ( ‎ﭐ‎ → ‎ٱ‎ ) ARABIC LETTER ALEF WASLA ISOLATED FORM → ARABIC LETTER ALEF WASLA # + +1EE01 ; 0628 ; MA # ( ‎𞸁‎ → ‎ب‎ ) ARABIC MATHEMATICAL BEH → ARABIC LETTER BEH # +1EE21 ; 0628 ; MA # ( ‎𞸡‎ → ‎ب‎ ) ARABIC MATHEMATICAL INITIAL BEH → ARABIC LETTER BEH # +1EE61 ; 0628 ; MA # ( ‎𞹡‎ → ‎ب‎ ) ARABIC MATHEMATICAL STRETCHED BEH → ARABIC LETTER BEH # +1EE81 ; 0628 ; MA # ( ‎𞺁‎ → ‎ب‎ ) ARABIC MATHEMATICAL LOOPED BEH → ARABIC LETTER BEH # +1EEA1 ; 0628 ; MA # ( ‎𞺡‎ → ‎ب‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK BEH → ARABIC LETTER BEH # +FE91 ; 0628 ; MA # ( ‎ﺑ‎ → ‎ب‎ ) ARABIC LETTER BEH INITIAL FORM → ARABIC LETTER BEH # +FE92 ; 0628 ; MA # ( ‎ﺒ‎ → ‎ب‎ ) ARABIC LETTER BEH MEDIAL FORM → ARABIC LETTER BEH # +FE90 ; 0628 ; MA # ( ‎ﺐ‎ → ‎ب‎ ) ARABIC LETTER BEH FINAL FORM → ARABIC LETTER BEH # +FE8F ; 0628 ; MA # ( ‎ﺏ‎ → ‎ب‎ ) ARABIC LETTER BEH ISOLATED FORM → ARABIC LETTER BEH # + +0751 ; 0628 06DB ; MA # ( ‎ݑ‎ → ‎بۛ‎ ) ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE → ARABIC LETTER BEH, ARABIC SMALL HIGH THREE DOTS # + +08B6 ; 0628 06E2 ; MA # ( ‎ࢶ‎ → ‎بۢ‎ ) ARABIC LETTER BEH WITH SMALL MEEM ABOVE → ARABIC LETTER BEH, ARABIC SMALL HIGH MEEM ISOLATED FORM # + +08A1 ; 0628 0654 ; MA # ( ‎ࢡ‎ → ‎بٔ‎ ) ARABIC LETTER BEH WITH HAMZA ABOVE → ARABIC LETTER BEH, ARABIC HAMZA ABOVE # + +FCA0 ; 0628 006F ; MA # ( ‎ﲠ‎ → ‎بo‎ ) ARABIC LIGATURE BEH WITH HEH INITIAL FORM → ARABIC LETTER BEH, LATIN SMALL LETTER O # →‎به‎→ +FCE2 ; 0628 006F ; MA # ( ‎ﳢ‎ → ‎بo‎ ) ARABIC LIGATURE BEH WITH HEH MEDIAL FORM → ARABIC LETTER BEH, LATIN SMALL LETTER O # →‎به‎→ + +FC9C ; 0628 062C ; MA # ( ‎ﲜ‎ → ‎بج‎ ) ARABIC LIGATURE BEH WITH JEEM INITIAL FORM → ARABIC LETTER BEH, ARABIC LETTER JEEM # +FC05 ; 0628 062C ; MA # ( ‎ﰅ‎ → ‎بج‎ ) ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM → ARABIC LETTER BEH, ARABIC LETTER JEEM # + +FC9D ; 0628 062D ; MA # ( ‎ﲝ‎ → ‎بح‎ ) ARABIC LIGATURE BEH WITH HAH INITIAL FORM → ARABIC LETTER BEH, ARABIC LETTER HAH # +FC06 ; 0628 062D ; MA # ( ‎ﰆ‎ → ‎بح‎ ) ARABIC LIGATURE BEH WITH HAH ISOLATED FORM → ARABIC LETTER BEH, ARABIC LETTER HAH # + +FDC2 ; 0628 062D 0649 ; MA # ( ‎ﷂ‎ → ‎بحى‎ ) ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM → ARABIC LETTER BEH, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA # →‎بحي‎→ + +FC9E ; 0628 062E ; MA # ( ‎ﲞ‎ → ‎بخ‎ ) ARABIC LIGATURE BEH WITH KHAH INITIAL FORM → ARABIC LETTER BEH, ARABIC LETTER KHAH # +FC07 ; 0628 062E ; MA # ( ‎ﰇ‎ → ‎بخ‎ ) ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM → ARABIC LETTER BEH, ARABIC LETTER KHAH # +FCD2 ; 0628 062E ; MA # ( ‎ﳒ‎ → ‎بخ‎ ) ARABIC LIGATURE NOON WITH JEEM INITIAL FORM → ARABIC LETTER BEH, ARABIC LETTER KHAH # →‎ﲞ‎→ +FC4B ; 0628 062E ; MA # ( ‎ﱋ‎ → ‎بخ‎ ) ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM → ARABIC LETTER BEH, ARABIC LETTER KHAH # →‎نج‎→→‎ﳒ‎→→‎ﲞ‎→ + +FD9E ; 0628 062E 0649 ; MA # ( ‎ﶞ‎ → ‎بخى‎ ) ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM → ARABIC LETTER BEH, ARABIC LETTER KHAH, ARABIC LETTER ALEF MAKSURA # →‎بخي‎→ + +FC6A ; 0628 0631 ; MA # ( ‎ﱪ‎ → ‎بر‎ ) ARABIC LIGATURE BEH WITH REH FINAL FORM → ARABIC LETTER BEH, ARABIC LETTER REH # + +FC6B ; 0628 0632 ; MA # ( ‎ﱫ‎ → ‎بز‎ ) ARABIC LIGATURE BEH WITH ZAIN FINAL FORM → ARABIC LETTER BEH, ARABIC LETTER ZAIN # + +FC9F ; 0628 0645 ; MA # ( ‎ﲟ‎ → ‎بم‎ ) ARABIC LIGATURE BEH WITH MEEM INITIAL FORM → ARABIC LETTER BEH, ARABIC LETTER MEEM # +FCE1 ; 0628 0645 ; MA # ( ‎ﳡ‎ → ‎بم‎ ) ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM → ARABIC LETTER BEH, ARABIC LETTER MEEM # +FC6C ; 0628 0645 ; MA # ( ‎ﱬ‎ → ‎بم‎ ) ARABIC LIGATURE BEH WITH MEEM FINAL FORM → ARABIC LETTER BEH, ARABIC LETTER MEEM # +FC08 ; 0628 0645 ; MA # ( ‎ﰈ‎ → ‎بم‎ ) ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM → ARABIC LETTER BEH, ARABIC LETTER MEEM # + +FC6D ; 0628 0646 ; MA # ( ‎ﱭ‎ → ‎بن‎ ) ARABIC LIGATURE BEH WITH NOON FINAL FORM → ARABIC LETTER BEH, ARABIC LETTER NOON # + +FC6E ; 0628 0649 ; MA # ( ‎ﱮ‎ → ‎بى‎ ) ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER BEH, ARABIC LETTER ALEF MAKSURA # +FC09 ; 0628 0649 ; MA # ( ‎ﰉ‎ → ‎بى‎ ) ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER BEH, ARABIC LETTER ALEF MAKSURA # +FC6F ; 0628 0649 ; MA # ( ‎ﱯ‎ → ‎بى‎ ) ARABIC LIGATURE BEH WITH YEH FINAL FORM → ARABIC LETTER BEH, ARABIC LETTER ALEF MAKSURA # →‎بي‎→ +FC0A ; 0628 0649 ; MA # ( ‎ﰊ‎ → ‎بى‎ ) ARABIC LIGATURE BEH WITH YEH ISOLATED FORM → ARABIC LETTER BEH, ARABIC LETTER ALEF MAKSURA # →‎بي‎→ + +FB54 ; 067B ; MA # ( ‎ﭔ‎ → ‎ٻ‎ ) ARABIC LETTER BEEH INITIAL FORM → ARABIC LETTER BEEH # +FB55 ; 067B ; MA # ( ‎ﭕ‎ → ‎ٻ‎ ) ARABIC LETTER BEEH MEDIAL FORM → ARABIC LETTER BEEH # +FB53 ; 067B ; MA # ( ‎ﭓ‎ → ‎ٻ‎ ) ARABIC LETTER BEEH FINAL FORM → ARABIC LETTER BEEH # +FB52 ; 067B ; MA # ( ‎ﭒ‎ → ‎ٻ‎ ) ARABIC LETTER BEEH ISOLATED FORM → ARABIC LETTER BEEH # +06D0 ; 067B ; MA # ( ‎ې‎ → ‎ٻ‎ ) ARABIC LETTER E → ARABIC LETTER BEEH # +FBE6 ; 067B ; MA # ( ‎ﯦ‎ → ‎ٻ‎ ) ARABIC LETTER E INITIAL FORM → ARABIC LETTER BEEH # →‎ې‎→ +FBE7 ; 067B ; MA # ( ‎ﯧ‎ → ‎ٻ‎ ) ARABIC LETTER E MEDIAL FORM → ARABIC LETTER BEEH # →‎ې‎→ +FBE5 ; 067B ; MA # ( ‎ﯥ‎ → ‎ٻ‎ ) ARABIC LETTER E FINAL FORM → ARABIC LETTER BEEH # →‎ې‎→ +FBE4 ; 067B ; MA # ( ‎ﯤ‎ → ‎ٻ‎ ) ARABIC LETTER E ISOLATED FORM → ARABIC LETTER BEEH # →‎ې‎→ + +FB5C ; 0680 ; MA # ( ‎ﭜ‎ → ‎ڀ‎ ) ARABIC LETTER BEHEH INITIAL FORM → ARABIC LETTER BEHEH # +FB5D ; 0680 ; MA # ( ‎ﭝ‎ → ‎ڀ‎ ) ARABIC LETTER BEHEH MEDIAL FORM → ARABIC LETTER BEHEH # +FB5B ; 0680 ; MA # ( ‎ﭛ‎ → ‎ڀ‎ ) ARABIC LETTER BEHEH FINAL FORM → ARABIC LETTER BEHEH # +FB5A ; 0680 ; MA # ( ‎ﭚ‎ → ‎ڀ‎ ) ARABIC LETTER BEHEH ISOLATED FORM → ARABIC LETTER BEHEH # + +08A9 ; 0754 ; MA # ( ‎ࢩ‎ → ‎ݔ‎ ) ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE → ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE # +0767 ; 0754 ; MA # ( ‎ݧ‎ → ‎ݔ‎ ) ARABIC LETTER NOON WITH TWO DOTS BELOW → ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE # + +2365 ; 0629 ; MA #* ( ⍥ → ‎ة‎ ) APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS → ARABIC LETTER TEH MARBUTA # →ö→ +00F6 ; 0629 ; MA # ( ö → ‎ة‎ ) LATIN SMALL LETTER O WITH DIAERESIS → ARABIC LETTER TEH MARBUTA # +FE94 ; 0629 ; MA # ( ‎ﺔ‎ → ‎ة‎ ) ARABIC LETTER TEH MARBUTA FINAL FORM → ARABIC LETTER TEH MARBUTA # +FE93 ; 0629 ; MA # ( ‎ﺓ‎ → ‎ة‎ ) ARABIC LETTER TEH MARBUTA ISOLATED FORM → ARABIC LETTER TEH MARBUTA # +06C3 ; 0629 ; MA # ( ‎ۃ‎ → ‎ة‎ ) ARABIC LETTER TEH MARBUTA GOAL → ARABIC LETTER TEH MARBUTA # + +1EE15 ; 062A ; MA # ( ‎𞸕‎ → ‎ت‎ ) ARABIC MATHEMATICAL TEH → ARABIC LETTER TEH # +1EE35 ; 062A ; MA # ( ‎𞸵‎ → ‎ت‎ ) ARABIC MATHEMATICAL INITIAL TEH → ARABIC LETTER TEH # +1EE75 ; 062A ; MA # ( ‎𞹵‎ → ‎ت‎ ) ARABIC MATHEMATICAL STRETCHED TEH → ARABIC LETTER TEH # +1EE95 ; 062A ; MA # ( ‎𞺕‎ → ‎ت‎ ) ARABIC MATHEMATICAL LOOPED TEH → ARABIC LETTER TEH # +1EEB5 ; 062A ; MA # ( ‎𞺵‎ → ‎ت‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK TEH → ARABIC LETTER TEH # +FE97 ; 062A ; MA # ( ‎ﺗ‎ → ‎ت‎ ) ARABIC LETTER TEH INITIAL FORM → ARABIC LETTER TEH # +FE98 ; 062A ; MA # ( ‎ﺘ‎ → ‎ت‎ ) ARABIC LETTER TEH MEDIAL FORM → ARABIC LETTER TEH # +FE96 ; 062A ; MA # ( ‎ﺖ‎ → ‎ت‎ ) ARABIC LETTER TEH FINAL FORM → ARABIC LETTER TEH # +FE95 ; 062A ; MA # ( ‎ﺕ‎ → ‎ت‎ ) ARABIC LETTER TEH ISOLATED FORM → ARABIC LETTER TEH # + +FCA5 ; 062A 006F ; MA # ( ‎ﲥ‎ → ‎تo‎ ) ARABIC LIGATURE TEH WITH HEH INITIAL FORM → ARABIC LETTER TEH, LATIN SMALL LETTER O # →‎ته‎→ +FCE4 ; 062A 006F ; MA # ( ‎ﳤ‎ → ‎تo‎ ) ARABIC LIGATURE TEH WITH HEH MEDIAL FORM → ARABIC LETTER TEH, LATIN SMALL LETTER O # →‎ته‎→ + +FCA1 ; 062A 062C ; MA # ( ‎ﲡ‎ → ‎تج‎ ) ARABIC LIGATURE TEH WITH JEEM INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER JEEM # +FC0B ; 062A 062C ; MA # ( ‎ﰋ‎ → ‎تج‎ ) ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM → ARABIC LETTER TEH, ARABIC LETTER JEEM # + +FD50 ; 062A 062C 0645 ; MA # ( ‎ﵐ‎ → ‎تجم‎ ) ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER JEEM, ARABIC LETTER MEEM # + +FDA0 ; 062A 062C 0649 ; MA # ( ‎ﶠ‎ → ‎تجى‎ ) ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA # +FD9F ; 062A 062C 0649 ; MA # ( ‎ﶟ‎ → ‎تجى‎ ) ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA # →‎تجي‎→ + +FCA2 ; 062A 062D ; MA # ( ‎ﲢ‎ → ‎تح‎ ) ARABIC LIGATURE TEH WITH HAH INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER HAH # +FC0C ; 062A 062D ; MA # ( ‎ﰌ‎ → ‎تح‎ ) ARABIC LIGATURE TEH WITH HAH ISOLATED FORM → ARABIC LETTER TEH, ARABIC LETTER HAH # + +FD52 ; 062A 062D 062C ; MA # ( ‎ﵒ‎ → ‎تحج‎ ) ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER HAH, ARABIC LETTER JEEM # +FD51 ; 062A 062D 062C ; MA # ( ‎ﵑ‎ → ‎تحج‎ ) ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER HAH, ARABIC LETTER JEEM # + +FD53 ; 062A 062D 0645 ; MA # ( ‎ﵓ‎ → ‎تحم‎ ) ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER HAH, ARABIC LETTER MEEM # + +FCA3 ; 062A 062E ; MA # ( ‎ﲣ‎ → ‎تخ‎ ) ARABIC LIGATURE TEH WITH KHAH INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER KHAH # +FC0D ; 062A 062E ; MA # ( ‎ﰍ‎ → ‎تخ‎ ) ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM → ARABIC LETTER TEH, ARABIC LETTER KHAH # + +FD54 ; 062A 062E 0645 ; MA # ( ‎ﵔ‎ → ‎تخم‎ ) ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER KHAH, ARABIC LETTER MEEM # + +FDA2 ; 062A 062E 0649 ; MA # ( ‎ﶢ‎ → ‎تخى‎ ) ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER KHAH, ARABIC LETTER ALEF MAKSURA # +FDA1 ; 062A 062E 0649 ; MA # ( ‎ﶡ‎ → ‎تخى‎ ) ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER KHAH, ARABIC LETTER ALEF MAKSURA # →‎تخي‎→ + +FC70 ; 062A 0631 ; MA # ( ‎ﱰ‎ → ‎تر‎ ) ARABIC LIGATURE TEH WITH REH FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER REH # + +FC71 ; 062A 0632 ; MA # ( ‎ﱱ‎ → ‎تز‎ ) ARABIC LIGATURE TEH WITH ZAIN FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER ZAIN # + +FCA4 ; 062A 0645 ; MA # ( ‎ﲤ‎ → ‎تم‎ ) ARABIC LIGATURE TEH WITH MEEM INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER MEEM # +FCE3 ; 062A 0645 ; MA # ( ‎ﳣ‎ → ‎تم‎ ) ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM → ARABIC LETTER TEH, ARABIC LETTER MEEM # +FC72 ; 062A 0645 ; MA # ( ‎ﱲ‎ → ‎تم‎ ) ARABIC LIGATURE TEH WITH MEEM FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER MEEM # +FC0E ; 062A 0645 ; MA # ( ‎ﰎ‎ → ‎تم‎ ) ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM → ARABIC LETTER TEH, ARABIC LETTER MEEM # + +FD55 ; 062A 0645 062C ; MA # ( ‎ﵕ‎ → ‎تمج‎ ) ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER MEEM, ARABIC LETTER JEEM # + +FD56 ; 062A 0645 062D ; MA # ( ‎ﵖ‎ → ‎تمح‎ ) ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER MEEM, ARABIC LETTER HAH # + +FD57 ; 062A 0645 062E ; MA # ( ‎ﵗ‎ → ‎تمخ‎ ) ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM → ARABIC LETTER TEH, ARABIC LETTER MEEM, ARABIC LETTER KHAH # + +FDA4 ; 062A 0645 0649 ; MA # ( ‎ﶤ‎ → ‎تمى‎ ) ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # +FDA3 ; 062A 0645 0649 ; MA # ( ‎ﶣ‎ → ‎تمى‎ ) ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # →‎تمي‎→ + +FC73 ; 062A 0646 ; MA # ( ‎ﱳ‎ → ‎تن‎ ) ARABIC LIGATURE TEH WITH NOON FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER NOON # + +FC74 ; 062A 0649 ; MA # ( ‎ﱴ‎ → ‎تى‎ ) ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER ALEF MAKSURA # +FC0F ; 062A 0649 ; MA # ( ‎ﰏ‎ → ‎تى‎ ) ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER TEH, ARABIC LETTER ALEF MAKSURA # +FC75 ; 062A 0649 ; MA # ( ‎ﱵ‎ → ‎تى‎ ) ARABIC LIGATURE TEH WITH YEH FINAL FORM → ARABIC LETTER TEH, ARABIC LETTER ALEF MAKSURA # →‎تي‎→ +FC10 ; 062A 0649 ; MA # ( ‎ﰐ‎ → ‎تى‎ ) ARABIC LIGATURE TEH WITH YEH ISOLATED FORM → ARABIC LETTER TEH, ARABIC LETTER ALEF MAKSURA # →‎تي‎→ + +FB60 ; 067A ; MA # ( ‎ﭠ‎ → ‎ٺ‎ ) ARABIC LETTER TTEHEH INITIAL FORM → ARABIC LETTER TTEHEH # +FB61 ; 067A ; MA # ( ‎ﭡ‎ → ‎ٺ‎ ) ARABIC LETTER TTEHEH MEDIAL FORM → ARABIC LETTER TTEHEH # +FB5F ; 067A ; MA # ( ‎ﭟ‎ → ‎ٺ‎ ) ARABIC LETTER TTEHEH FINAL FORM → ARABIC LETTER TTEHEH # +FB5E ; 067A ; MA # ( ‎ﭞ‎ → ‎ٺ‎ ) ARABIC LETTER TTEHEH ISOLATED FORM → ARABIC LETTER TTEHEH # + +FB64 ; 067F ; MA # ( ‎ﭤ‎ → ‎ٿ‎ ) ARABIC LETTER TEHEH INITIAL FORM → ARABIC LETTER TEHEH # +FB65 ; 067F ; MA # ( ‎ﭥ‎ → ‎ٿ‎ ) ARABIC LETTER TEHEH MEDIAL FORM → ARABIC LETTER TEHEH # +FB63 ; 067F ; MA # ( ‎ﭣ‎ → ‎ٿ‎ ) ARABIC LETTER TEHEH FINAL FORM → ARABIC LETTER TEHEH # +FB62 ; 067F ; MA # ( ‎ﭢ‎ → ‎ٿ‎ ) ARABIC LETTER TEHEH ISOLATED FORM → ARABIC LETTER TEHEH # + +1EE02 ; 062C ; MA # ( ‎𞸂‎ → ‎ج‎ ) ARABIC MATHEMATICAL JEEM → ARABIC LETTER JEEM # +1EE22 ; 062C ; MA # ( ‎𞸢‎ → ‎ج‎ ) ARABIC MATHEMATICAL INITIAL JEEM → ARABIC LETTER JEEM # +1EE42 ; 062C ; MA # ( ‎𞹂‎ → ‎ج‎ ) ARABIC MATHEMATICAL TAILED JEEM → ARABIC LETTER JEEM # +1EE62 ; 062C ; MA # ( ‎𞹢‎ → ‎ج‎ ) ARABIC MATHEMATICAL STRETCHED JEEM → ARABIC LETTER JEEM # +1EE82 ; 062C ; MA # ( ‎𞺂‎ → ‎ج‎ ) ARABIC MATHEMATICAL LOOPED JEEM → ARABIC LETTER JEEM # +1EEA2 ; 062C ; MA # ( ‎𞺢‎ → ‎ج‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM → ARABIC LETTER JEEM # +FE9F ; 062C ; MA # ( ‎ﺟ‎ → ‎ج‎ ) ARABIC LETTER JEEM INITIAL FORM → ARABIC LETTER JEEM # +FEA0 ; 062C ; MA # ( ‎ﺠ‎ → ‎ج‎ ) ARABIC LETTER JEEM MEDIAL FORM → ARABIC LETTER JEEM # +FE9E ; 062C ; MA # ( ‎ﺞ‎ → ‎ج‎ ) ARABIC LETTER JEEM FINAL FORM → ARABIC LETTER JEEM # +FE9D ; 062C ; MA # ( ‎ﺝ‎ → ‎ج‎ ) ARABIC LETTER JEEM ISOLATED FORM → ARABIC LETTER JEEM # + +FCA7 ; 062C 062D ; MA # ( ‎ﲧ‎ → ‎جح‎ ) ARABIC LIGATURE JEEM WITH HAH INITIAL FORM → ARABIC LETTER JEEM, ARABIC LETTER HAH # +FC15 ; 062C 062D ; MA # ( ‎ﰕ‎ → ‎جح‎ ) ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM → ARABIC LETTER JEEM, ARABIC LETTER HAH # + +FDA6 ; 062C 062D 0649 ; MA # ( ‎ﶦ‎ → ‎جحى‎ ) ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER JEEM, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA # +FDBE ; 062C 062D 0649 ; MA # ( ‎ﶾ‎ → ‎جحى‎ ) ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM → ARABIC LETTER JEEM, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA # →‎جحي‎→ + +FDFB ; 062C 0644 0020 062C 0644 006C 0644 006F ; MA #* ( ‎ﷻ‎ → ‎جل جلlلo‎ ) ARABIC LIGATURE JALLAJALALOUHOU → ARABIC LETTER JEEM, ARABIC LETTER LAM, SPACE, ARABIC LETTER JEEM, ARABIC LETTER LAM, LATIN SMALL LETTER L, ARABIC LETTER LAM, LATIN SMALL LETTER O # →‎جل جلاله‎→ + +FCA8 ; 062C 0645 ; MA # ( ‎ﲨ‎ → ‎جم‎ ) ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM → ARABIC LETTER JEEM, ARABIC LETTER MEEM # +FC16 ; 062C 0645 ; MA # ( ‎ﰖ‎ → ‎جم‎ ) ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM → ARABIC LETTER JEEM, ARABIC LETTER MEEM # + +FD59 ; 062C 0645 062D ; MA # ( ‎ﵙ‎ → ‎جمح‎ ) ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM → ARABIC LETTER JEEM, ARABIC LETTER MEEM, ARABIC LETTER HAH # +FD58 ; 062C 0645 062D ; MA # ( ‎ﵘ‎ → ‎جمح‎ ) ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM → ARABIC LETTER JEEM, ARABIC LETTER MEEM, ARABIC LETTER HAH # + +FDA7 ; 062C 0645 0649 ; MA # ( ‎ﶧ‎ → ‎جمى‎ ) ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER JEEM, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # +FDA5 ; 062C 0645 0649 ; MA # ( ‎ﶥ‎ → ‎جمى‎ ) ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER JEEM, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # →‎جمي‎→ + +FD1D ; 062C 0649 ; MA # ( ‎ﴝ‎ → ‎جى‎ ) ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA # +FD01 ; 062C 0649 ; MA # ( ‎ﴁ‎ → ‎جى‎ ) ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA # +FD1E ; 062C 0649 ; MA # ( ‎ﴞ‎ → ‎جى‎ ) ARABIC LIGATURE JEEM WITH YEH FINAL FORM → ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA # →‎جي‎→ +FD02 ; 062C 0649 ; MA # ( ‎ﴂ‎ → ‎جى‎ ) ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM → ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA # →‎جي‎→ + +FB78 ; 0683 ; MA # ( ‎ﭸ‎ → ‎ڃ‎ ) ARABIC LETTER NYEH INITIAL FORM → ARABIC LETTER NYEH # +FB79 ; 0683 ; MA # ( ‎ﭹ‎ → ‎ڃ‎ ) ARABIC LETTER NYEH MEDIAL FORM → ARABIC LETTER NYEH # +FB77 ; 0683 ; MA # ( ‎ﭷ‎ → ‎ڃ‎ ) ARABIC LETTER NYEH FINAL FORM → ARABIC LETTER NYEH # +FB76 ; 0683 ; MA # ( ‎ﭶ‎ → ‎ڃ‎ ) ARABIC LETTER NYEH ISOLATED FORM → ARABIC LETTER NYEH # + +FB74 ; 0684 ; MA # ( ‎ﭴ‎ → ‎ڄ‎ ) ARABIC LETTER DYEH INITIAL FORM → ARABIC LETTER DYEH # +FB75 ; 0684 ; MA # ( ‎ﭵ‎ → ‎ڄ‎ ) ARABIC LETTER DYEH MEDIAL FORM → ARABIC LETTER DYEH # +FB73 ; 0684 ; MA # ( ‎ﭳ‎ → ‎ڄ‎ ) ARABIC LETTER DYEH FINAL FORM → ARABIC LETTER DYEH # +FB72 ; 0684 ; MA # ( ‎ﭲ‎ → ‎ڄ‎ ) ARABIC LETTER DYEH ISOLATED FORM → ARABIC LETTER DYEH # + +FB7C ; 0686 ; MA # ( ‎ﭼ‎ → ‎چ‎ ) ARABIC LETTER TCHEH INITIAL FORM → ARABIC LETTER TCHEH # +FB7D ; 0686 ; MA # ( ‎ﭽ‎ → ‎چ‎ ) ARABIC LETTER TCHEH MEDIAL FORM → ARABIC LETTER TCHEH # +FB7B ; 0686 ; MA # ( ‎ﭻ‎ → ‎چ‎ ) ARABIC LETTER TCHEH FINAL FORM → ARABIC LETTER TCHEH # +FB7A ; 0686 ; MA # ( ‎ﭺ‎ → ‎چ‎ ) ARABIC LETTER TCHEH ISOLATED FORM → ARABIC LETTER TCHEH # + +FB80 ; 0687 ; MA # ( ‎ﮀ‎ → ‎ڇ‎ ) ARABIC LETTER TCHEHEH INITIAL FORM → ARABIC LETTER TCHEHEH # +FB81 ; 0687 ; MA # ( ‎ﮁ‎ → ‎ڇ‎ ) ARABIC LETTER TCHEHEH MEDIAL FORM → ARABIC LETTER TCHEHEH # +FB7F ; 0687 ; MA # ( ‎ﭿ‎ → ‎ڇ‎ ) ARABIC LETTER TCHEHEH FINAL FORM → ARABIC LETTER TCHEHEH # +FB7E ; 0687 ; MA # ( ‎ﭾ‎ → ‎ڇ‎ ) ARABIC LETTER TCHEHEH ISOLATED FORM → ARABIC LETTER TCHEHEH # + +1EE07 ; 062D ; MA # ( ‎𞸇‎ → ‎ح‎ ) ARABIC MATHEMATICAL HAH → ARABIC LETTER HAH # +1EE27 ; 062D ; MA # ( ‎𞸧‎ → ‎ح‎ ) ARABIC MATHEMATICAL INITIAL HAH → ARABIC LETTER HAH # +1EE47 ; 062D ; MA # ( ‎𞹇‎ → ‎ح‎ ) ARABIC MATHEMATICAL TAILED HAH → ARABIC LETTER HAH # +1EE67 ; 062D ; MA # ( ‎𞹧‎ → ‎ح‎ ) ARABIC MATHEMATICAL STRETCHED HAH → ARABIC LETTER HAH # +1EE87 ; 062D ; MA # ( ‎𞺇‎ → ‎ح‎ ) ARABIC MATHEMATICAL LOOPED HAH → ARABIC LETTER HAH # +1EEA7 ; 062D ; MA # ( ‎𞺧‎ → ‎ح‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK HAH → ARABIC LETTER HAH # +FEA3 ; 062D ; MA # ( ‎ﺣ‎ → ‎ح‎ ) ARABIC LETTER HAH INITIAL FORM → ARABIC LETTER HAH # +FEA4 ; 062D ; MA # ( ‎ﺤ‎ → ‎ح‎ ) ARABIC LETTER HAH MEDIAL FORM → ARABIC LETTER HAH # +FEA2 ; 062D ; MA # ( ‎ﺢ‎ → ‎ح‎ ) ARABIC LETTER HAH FINAL FORM → ARABIC LETTER HAH # +FEA1 ; 062D ; MA # ( ‎ﺡ‎ → ‎ح‎ ) ARABIC LETTER HAH ISOLATED FORM → ARABIC LETTER HAH # + +0685 ; 062D 06DB ; MA # ( ‎څ‎ → ‎حۛ‎ ) ARABIC LETTER HAH WITH THREE DOTS ABOVE → ARABIC LETTER HAH, ARABIC SMALL HIGH THREE DOTS # + +0681 ; 062D 0654 ; MA # ( ‎ځ‎ → ‎حٔ‎ ) ARABIC LETTER HAH WITH HAMZA ABOVE → ARABIC LETTER HAH, ARABIC HAMZA ABOVE # +0772 ; 062D 0654 ; MA # ( ‎ݲ‎ → ‎حٔ‎ ) ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE → ARABIC LETTER HAH, ARABIC HAMZA ABOVE # + +FCA9 ; 062D 062C ; MA # ( ‎ﲩ‎ → ‎حج‎ ) ARABIC LIGATURE HAH WITH JEEM INITIAL FORM → ARABIC LETTER HAH, ARABIC LETTER JEEM # +FC17 ; 062D 062C ; MA # ( ‎ﰗ‎ → ‎حج‎ ) ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM → ARABIC LETTER HAH, ARABIC LETTER JEEM # + +FDBF ; 062D 062C 0649 ; MA # ( ‎ﶿ‎ → ‎حجى‎ ) ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM → ARABIC LETTER HAH, ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA # →‎حجي‎→ + +FCAA ; 062D 0645 ; MA # ( ‎ﲪ‎ → ‎حم‎ ) ARABIC LIGATURE HAH WITH MEEM INITIAL FORM → ARABIC LETTER HAH, ARABIC LETTER MEEM # +FC18 ; 062D 0645 ; MA # ( ‎ﰘ‎ → ‎حم‎ ) ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM → ARABIC LETTER HAH, ARABIC LETTER MEEM # + +FD5B ; 062D 0645 0649 ; MA # ( ‎ﵛ‎ → ‎حمى‎ ) ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER HAH, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # +FD5A ; 062D 0645 0649 ; MA # ( ‎ﵚ‎ → ‎حمى‎ ) ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER HAH, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # →‎حمي‎→ + +FD1B ; 062D 0649 ; MA # ( ‎ﴛ‎ → ‎حى‎ ) ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA # +FCFF ; 062D 0649 ; MA # ( ‎ﳿ‎ → ‎حى‎ ) ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA # +FD1C ; 062D 0649 ; MA # ( ‎ﴜ‎ → ‎حى‎ ) ARABIC LIGATURE HAH WITH YEH FINAL FORM → ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA # →‎حي‎→ +FD00 ; 062D 0649 ; MA # ( ‎ﴀ‎ → ‎حى‎ ) ARABIC LIGATURE HAH WITH YEH ISOLATED FORM → ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA # →‎حي‎→ + +1EE17 ; 062E ; MA # ( ‎𞸗‎ → ‎خ‎ ) ARABIC MATHEMATICAL KHAH → ARABIC LETTER KHAH # +1EE37 ; 062E ; MA # ( ‎𞸷‎ → ‎خ‎ ) ARABIC MATHEMATICAL INITIAL KHAH → ARABIC LETTER KHAH # +1EE57 ; 062E ; MA # ( ‎𞹗‎ → ‎خ‎ ) ARABIC MATHEMATICAL TAILED KHAH → ARABIC LETTER KHAH # +1EE77 ; 062E ; MA # ( ‎𞹷‎ → ‎خ‎ ) ARABIC MATHEMATICAL STRETCHED KHAH → ARABIC LETTER KHAH # +1EE97 ; 062E ; MA # ( ‎𞺗‎ → ‎خ‎ ) ARABIC MATHEMATICAL LOOPED KHAH → ARABIC LETTER KHAH # +1EEB7 ; 062E ; MA # ( ‎𞺷‎ → ‎خ‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH → ARABIC LETTER KHAH # +FEA7 ; 062E ; MA # ( ‎ﺧ‎ → ‎خ‎ ) ARABIC LETTER KHAH INITIAL FORM → ARABIC LETTER KHAH # +FEA8 ; 062E ; MA # ( ‎ﺨ‎ → ‎خ‎ ) ARABIC LETTER KHAH MEDIAL FORM → ARABIC LETTER KHAH # +FEA6 ; 062E ; MA # ( ‎ﺦ‎ → ‎خ‎ ) ARABIC LETTER KHAH FINAL FORM → ARABIC LETTER KHAH # +FEA5 ; 062E ; MA # ( ‎ﺥ‎ → ‎خ‎ ) ARABIC LETTER KHAH ISOLATED FORM → ARABIC LETTER KHAH # + +FCAB ; 062E 062C ; MA # ( ‎ﲫ‎ → ‎خج‎ ) ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM → ARABIC LETTER KHAH, ARABIC LETTER JEEM # +FC19 ; 062E 062C ; MA # ( ‎ﰙ‎ → ‎خج‎ ) ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM → ARABIC LETTER KHAH, ARABIC LETTER JEEM # + +FC1A ; 062E 062D ; MA # ( ‎ﰚ‎ → ‎خح‎ ) ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM → ARABIC LETTER KHAH, ARABIC LETTER HAH # + +FCAC ; 062E 0645 ; MA # ( ‎ﲬ‎ → ‎خم‎ ) ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM → ARABIC LETTER KHAH, ARABIC LETTER MEEM # +FC1B ; 062E 0645 ; MA # ( ‎ﰛ‎ → ‎خم‎ ) ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM → ARABIC LETTER KHAH, ARABIC LETTER MEEM # + +FD1F ; 062E 0649 ; MA # ( ‎ﴟ‎ → ‎خى‎ ) ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER KHAH, ARABIC LETTER ALEF MAKSURA # +FD03 ; 062E 0649 ; MA # ( ‎ﴃ‎ → ‎خى‎ ) ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER KHAH, ARABIC LETTER ALEF MAKSURA # +FD20 ; 062E 0649 ; MA # ( ‎ﴠ‎ → ‎خى‎ ) ARABIC LIGATURE KHAH WITH YEH FINAL FORM → ARABIC LETTER KHAH, ARABIC LETTER ALEF MAKSURA # →‎خي‎→ +FD04 ; 062E 0649 ; MA # ( ‎ﴄ‎ → ‎خى‎ ) ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM → ARABIC LETTER KHAH, ARABIC LETTER ALEF MAKSURA # →‎خي‎→ + +102E1 ; 062F ; MA #* ( 𐋡 → ‎د‎ ) COPTIC EPACT DIGIT ONE → ARABIC LETTER DAL # +1EE03 ; 062F ; MA # ( ‎𞸃‎ → ‎د‎ ) ARABIC MATHEMATICAL DAL → ARABIC LETTER DAL # +1EE83 ; 062F ; MA # ( ‎𞺃‎ → ‎د‎ ) ARABIC MATHEMATICAL LOOPED DAL → ARABIC LETTER DAL # +1EEA3 ; 062F ; MA # ( ‎𞺣‎ → ‎د‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK DAL → ARABIC LETTER DAL # +FEAA ; 062F ; MA # ( ‎ﺪ‎ → ‎د‎ ) ARABIC LETTER DAL FINAL FORM → ARABIC LETTER DAL # +FEA9 ; 062F ; MA # ( ‎ﺩ‎ → ‎د‎ ) ARABIC LETTER DAL ISOLATED FORM → ARABIC LETTER DAL # + +0688 ; 062F 0615 ; MA # ( ‎ڈ‎ → ‎دؕ‎ ) ARABIC LETTER DDAL → ARABIC LETTER DAL, ARABIC SMALL HIGH TAH # +FB89 ; 062F 0615 ; MA # ( ‎ﮉ‎ → ‎دؕ‎ ) ARABIC LETTER DDAL FINAL FORM → ARABIC LETTER DAL, ARABIC SMALL HIGH TAH # →‎ڈ‎→ +FB88 ; 062F 0615 ; MA # ( ‎ﮈ‎ → ‎دؕ‎ ) ARABIC LETTER DDAL ISOLATED FORM → ARABIC LETTER DAL, ARABIC SMALL HIGH TAH # →‎ڈ‎→ + +068E ; 062F 06DB ; MA # ( ‎ڎ‎ → ‎دۛ‎ ) ARABIC LETTER DUL → ARABIC LETTER DAL, ARABIC SMALL HIGH THREE DOTS # +FB87 ; 062F 06DB ; MA # ( ‎ﮇ‎ → ‎دۛ‎ ) ARABIC LETTER DUL FINAL FORM → ARABIC LETTER DAL, ARABIC SMALL HIGH THREE DOTS # →‎ڎ‎→ +FB86 ; 062F 06DB ; MA # ( ‎ﮆ‎ → ‎دۛ‎ ) ARABIC LETTER DUL ISOLATED FORM → ARABIC LETTER DAL, ARABIC SMALL HIGH THREE DOTS # →‎ڎ‎→ + +06EE ; 062F 0302 ; MA # ( ‎ۮ‎ → ‎د̂‎ ) ARABIC LETTER DAL WITH INVERTED V → ARABIC LETTER DAL, COMBINING CIRCUMFLEX ACCENT # →‎دٛ‎→ + +08AE ; 062F 0324 0323 ; MA # ( ‎ࢮ‎ → ‎د̤̣‎ ) ARABIC LETTER DAL WITH THREE DOTS BELOW → ARABIC LETTER DAL, COMBINING DIAERESIS BELOW, COMBINING DOT BELOW # →‎د࣮࣭‎→ + +1EE18 ; 0630 ; MA # ( ‎𞸘‎ → ‎ذ‎ ) ARABIC MATHEMATICAL THAL → ARABIC LETTER THAL # +1EE98 ; 0630 ; MA # ( ‎𞺘‎ → ‎ذ‎ ) ARABIC MATHEMATICAL LOOPED THAL → ARABIC LETTER THAL # +1EEB8 ; 0630 ; MA # ( ‎𞺸‎ → ‎ذ‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK THAL → ARABIC LETTER THAL # +FEAC ; 0630 ; MA # ( ‎ﺬ‎ → ‎ذ‎ ) ARABIC LETTER THAL FINAL FORM → ARABIC LETTER THAL # +FEAB ; 0630 ; MA # ( ‎ﺫ‎ → ‎ذ‎ ) ARABIC LETTER THAL ISOLATED FORM → ARABIC LETTER THAL # + +FC5B ; 0630 0670 ; MA # ( ‎ﱛ‎ → ‎ذٰ‎ ) ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM → ARABIC LETTER THAL, ARABIC LETTER SUPERSCRIPT ALEF # + +068B ; 068A 0615 ; MA # ( ‎ڋ‎ → ‎ڊؕ‎ ) ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH → ARABIC LETTER DAL WITH DOT BELOW, ARABIC SMALL HIGH TAH # + +FB85 ; 068C ; MA # ( ‎ﮅ‎ → ‎ڌ‎ ) ARABIC LETTER DAHAL FINAL FORM → ARABIC LETTER DAHAL # +FB84 ; 068C ; MA # ( ‎ﮄ‎ → ‎ڌ‎ ) ARABIC LETTER DAHAL ISOLATED FORM → ARABIC LETTER DAHAL # + +FB83 ; 068D ; MA # ( ‎ﮃ‎ → ‎ڍ‎ ) ARABIC LETTER DDAHAL FINAL FORM → ARABIC LETTER DDAHAL # +FB82 ; 068D ; MA # ( ‎ﮂ‎ → ‎ڍ‎ ) ARABIC LETTER DDAHAL ISOLATED FORM → ARABIC LETTER DDAHAL # + +1EE13 ; 0631 ; MA # ( ‎𞸓‎ → ‎ر‎ ) ARABIC MATHEMATICAL REH → ARABIC LETTER REH # +1EE93 ; 0631 ; MA # ( ‎𞺓‎ → ‎ر‎ ) ARABIC MATHEMATICAL LOOPED REH → ARABIC LETTER REH # +1EEB3 ; 0631 ; MA # ( ‎𞺳‎ → ‎ر‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK REH → ARABIC LETTER REH # +FEAE ; 0631 ; MA # ( ‎ﺮ‎ → ‎ر‎ ) ARABIC LETTER REH FINAL FORM → ARABIC LETTER REH # +FEAD ; 0631 ; MA # ( ‎ﺭ‎ → ‎ر‎ ) ARABIC LETTER REH ISOLATED FORM → ARABIC LETTER REH # + +0691 ; 0631 0615 ; MA # ( ‎ڑ‎ → ‎رؕ‎ ) ARABIC LETTER RREH → ARABIC LETTER REH, ARABIC SMALL HIGH TAH # +FB8D ; 0631 0615 ; MA # ( ‎ﮍ‎ → ‎رؕ‎ ) ARABIC LETTER RREH FINAL FORM → ARABIC LETTER REH, ARABIC SMALL HIGH TAH # →‎ڑ‎→ +FB8C ; 0631 0615 ; MA # ( ‎ﮌ‎ → ‎رؕ‎ ) ARABIC LETTER RREH ISOLATED FORM → ARABIC LETTER REH, ARABIC SMALL HIGH TAH # →‎ڑ‎→ + +0698 ; 0631 06DB ; MA # ( ‎ژ‎ → ‎رۛ‎ ) ARABIC LETTER JEH → ARABIC LETTER REH, ARABIC SMALL HIGH THREE DOTS # +FB8B ; 0631 06DB ; MA # ( ‎ﮋ‎ → ‎رۛ‎ ) ARABIC LETTER JEH FINAL FORM → ARABIC LETTER REH, ARABIC SMALL HIGH THREE DOTS # →‎ژ‎→ +FB8A ; 0631 06DB ; MA # ( ‎ﮊ‎ → ‎رۛ‎ ) ARABIC LETTER JEH ISOLATED FORM → ARABIC LETTER REH, ARABIC SMALL HIGH THREE DOTS # →‎ژ‎→ + +0692 ; 0631 0306 ; MA # ( ‎ڒ‎ → ‎ر̆‎ ) ARABIC LETTER REH WITH SMALL V → ARABIC LETTER REH, COMBINING BREVE # →‎رٚ‎→ + +08B9 ; 0631 0306 0307 ; MA # ( ‎ࢹ‎ → ‎ر̆̇‎ ) ARABIC LETTER REH WITH SMALL NOON ABOVE → ARABIC LETTER REH, COMBINING BREVE, COMBINING DOT ABOVE # →‎رۨ‎→ + +06EF ; 0631 0302 ; MA # ( ‎ۯ‎ → ‎ر̂‎ ) ARABIC LETTER REH WITH INVERTED V → ARABIC LETTER REH, COMBINING CIRCUMFLEX ACCENT # →‎رٛ‎→ + +076C ; 0631 0654 ; MA # ( ‎ݬ‎ → ‎رٔ‎ ) ARABIC LETTER REH WITH HAMZA ABOVE → ARABIC LETTER REH, ARABIC HAMZA ABOVE # + +FC5C ; 0631 0670 ; MA # ( ‎ﱜ‎ → ‎رٰ‎ ) ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM → ARABIC LETTER REH, ARABIC LETTER SUPERSCRIPT ALEF # + +FDF6 ; 0631 0633 0648 0644 ; MA # ( ‎ﷶ‎ → ‎رسول‎ ) ARABIC LIGATURE RASOUL ISOLATED FORM → ARABIC LETTER REH, ARABIC LETTER SEEN, ARABIC LETTER WAW, ARABIC LETTER LAM # + +FDFC ; 0631 0649 006C 0644 ; MA #* ( ‎﷼‎ → ‎رىlل‎ ) RIAL SIGN → ARABIC LETTER REH, ARABIC LETTER ALEF MAKSURA, LATIN SMALL LETTER L, ARABIC LETTER LAM # →‎ریال‎→ + +1EE06 ; 0632 ; MA # ( ‎𞸆‎ → ‎ز‎ ) ARABIC MATHEMATICAL ZAIN → ARABIC LETTER ZAIN # +1EE86 ; 0632 ; MA # ( ‎𞺆‎ → ‎ز‎ ) ARABIC MATHEMATICAL LOOPED ZAIN → ARABIC LETTER ZAIN # +1EEA6 ; 0632 ; MA # ( ‎𞺦‎ → ‎ز‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN → ARABIC LETTER ZAIN # +FEB0 ; 0632 ; MA # ( ‎ﺰ‎ → ‎ز‎ ) ARABIC LETTER ZAIN FINAL FORM → ARABIC LETTER ZAIN # +FEAF ; 0632 ; MA # ( ‎ﺯ‎ → ‎ز‎ ) ARABIC LETTER ZAIN ISOLATED FORM → ARABIC LETTER ZAIN # + +08B2 ; 0632 0302 ; MA # ( ‎ࢲ‎ → ‎ز̂‎ ) ARABIC LETTER ZAIN WITH INVERTED V ABOVE → ARABIC LETTER ZAIN, COMBINING CIRCUMFLEX ACCENT # →‎زٛ‎→ + +0771 ; 0697 0615 ; MA # ( ‎ݱ‎ → ‎ڗؕ‎ ) ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS → ARABIC LETTER REH WITH TWO DOTS ABOVE, ARABIC SMALL HIGH TAH # + +1EE0E ; 0633 ; MA # ( ‎𞸎‎ → ‎س‎ ) ARABIC MATHEMATICAL SEEN → ARABIC LETTER SEEN # +1EE2E ; 0633 ; MA # ( ‎𞸮‎ → ‎س‎ ) ARABIC MATHEMATICAL INITIAL SEEN → ARABIC LETTER SEEN # +1EE4E ; 0633 ; MA # ( ‎𞹎‎ → ‎س‎ ) ARABIC MATHEMATICAL TAILED SEEN → ARABIC LETTER SEEN # +1EE6E ; 0633 ; MA # ( ‎𞹮‎ → ‎س‎ ) ARABIC MATHEMATICAL STRETCHED SEEN → ARABIC LETTER SEEN # +1EE8E ; 0633 ; MA # ( ‎𞺎‎ → ‎س‎ ) ARABIC MATHEMATICAL LOOPED SEEN → ARABIC LETTER SEEN # +1EEAE ; 0633 ; MA # ( ‎𞺮‎ → ‎س‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN → ARABIC LETTER SEEN # +FEB3 ; 0633 ; MA # ( ‎ﺳ‎ → ‎س‎ ) ARABIC LETTER SEEN INITIAL FORM → ARABIC LETTER SEEN # +FEB4 ; 0633 ; MA # ( ‎ﺴ‎ → ‎س‎ ) ARABIC LETTER SEEN MEDIAL FORM → ARABIC LETTER SEEN # +FEB2 ; 0633 ; MA # ( ‎ﺲ‎ → ‎س‎ ) ARABIC LETTER SEEN FINAL FORM → ARABIC LETTER SEEN # +FEB1 ; 0633 ; MA # ( ‎ﺱ‎ → ‎س‎ ) ARABIC LETTER SEEN ISOLATED FORM → ARABIC LETTER SEEN # + +0634 ; 0633 06DB ; MA # ( ‎ش‎ → ‎سۛ‎ ) ARABIC LETTER SHEEN → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS # +1EE14 ; 0633 06DB ; MA # ( ‎𞸔‎ → ‎سۛ‎ ) ARABIC MATHEMATICAL SHEEN → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS # →‎ش‎→ +1EE34 ; 0633 06DB ; MA # ( ‎𞸴‎ → ‎سۛ‎ ) ARABIC MATHEMATICAL INITIAL SHEEN → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS # →‎ش‎→ +1EE54 ; 0633 06DB ; MA # ( ‎𞹔‎ → ‎سۛ‎ ) ARABIC MATHEMATICAL TAILED SHEEN → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS # →‎ش‎→ +1EE74 ; 0633 06DB ; MA # ( ‎𞹴‎ → ‎سۛ‎ ) ARABIC MATHEMATICAL STRETCHED SHEEN → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS # →‎ش‎→ +1EE94 ; 0633 06DB ; MA # ( ‎𞺔‎ → ‎سۛ‎ ) ARABIC MATHEMATICAL LOOPED SHEEN → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS # →‎ش‎→ +1EEB4 ; 0633 06DB ; MA # ( ‎𞺴‎ → ‎سۛ‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS # →‎ش‎→ +FEB7 ; 0633 06DB ; MA # ( ‎ﺷ‎ → ‎سۛ‎ ) ARABIC LETTER SHEEN INITIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS # →‎ش‎→ +FEB8 ; 0633 06DB ; MA # ( ‎ﺸ‎ → ‎سۛ‎ ) ARABIC LETTER SHEEN MEDIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS # →‎ش‎→ +FEB6 ; 0633 06DB ; MA # ( ‎ﺶ‎ → ‎سۛ‎ ) ARABIC LETTER SHEEN FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS # →‎ش‎→ +FEB5 ; 0633 06DB ; MA # ( ‎ﺵ‎ → ‎سۛ‎ ) ARABIC LETTER SHEEN ISOLATED FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS # →‎ش‎→ + +077E ; 0633 0302 ; MA # ( ‎ݾ‎ → ‎س̂‎ ) ARABIC LETTER SEEN WITH INVERTED V → ARABIC LETTER SEEN, COMBINING CIRCUMFLEX ACCENT # →‎سٛ‎→ + +FD31 ; 0633 006F ; MA # ( ‎ﴱ‎ → ‎سo‎ ) ARABIC LIGATURE SEEN WITH HEH INITIAL FORM → ARABIC LETTER SEEN, LATIN SMALL LETTER O # →‎سه‎→ +FCE8 ; 0633 006F ; MA # ( ‎ﳨ‎ → ‎سo‎ ) ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM → ARABIC LETTER SEEN, LATIN SMALL LETTER O # →‎سه‎→ + +FD32 ; 0633 06DB 006F ; MA # ( ‎ﴲ‎ → ‎سۛo‎ ) ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, LATIN SMALL LETTER O # →‎شه‎→ +FCEA ; 0633 06DB 006F ; MA # ( ‎ﳪ‎ → ‎سۛo‎ ) ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, LATIN SMALL LETTER O # →‎شه‎→ + +FCAD ; 0633 062C ; MA # ( ‎ﲭ‎ → ‎سج‎ ) ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER JEEM # +FD34 ; 0633 062C ; MA # ( ‎ﴴ‎ → ‎سج‎ ) ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER JEEM # +FC1C ; 0633 062C ; MA # ( ‎ﰜ‎ → ‎سج‎ ) ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM → ARABIC LETTER SEEN, ARABIC LETTER JEEM # + +FD2D ; 0633 06DB 062C ; MA # ( ‎ﴭ‎ → ‎سۛج‎ ) ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER JEEM # →‎شج‎→ +FD37 ; 0633 06DB 062C ; MA # ( ‎ﴷ‎ → ‎سۛج‎ ) ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER JEEM # →‎شج‎→ +FD25 ; 0633 06DB 062C ; MA # ( ‎ﴥ‎ → ‎سۛج‎ ) ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER JEEM # →‎شج‎→ +FD09 ; 0633 06DB 062C ; MA # ( ‎ﴉ‎ → ‎سۛج‎ ) ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER JEEM # →‎شج‎→ + +FD5D ; 0633 062C 062D ; MA # ( ‎ﵝ‎ → ‎سجح‎ ) ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER JEEM, ARABIC LETTER HAH # + +FD5E ; 0633 062C 0649 ; MA # ( ‎ﵞ‎ → ‎سجى‎ ) ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER SEEN, ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA # + +FD69 ; 0633 06DB 062C 0649 ; MA # ( ‎ﵩ‎ → ‎سۛجى‎ ) ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA # →‎شجي‎→ + +FCAE ; 0633 062D ; MA # ( ‎ﲮ‎ → ‎سح‎ ) ARABIC LIGATURE SEEN WITH HAH INITIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER HAH # +FD35 ; 0633 062D ; MA # ( ‎ﴵ‎ → ‎سح‎ ) ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER HAH # +FC1D ; 0633 062D ; MA # ( ‎ﰝ‎ → ‎سح‎ ) ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM → ARABIC LETTER SEEN, ARABIC LETTER HAH # + +FD2E ; 0633 06DB 062D ; MA # ( ‎ﴮ‎ → ‎سۛح‎ ) ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER HAH # →‎شح‎→ +FD38 ; 0633 06DB 062D ; MA # ( ‎ﴸ‎ → ‎سۛح‎ ) ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER HAH # →‎شح‎→ +FD26 ; 0633 06DB 062D ; MA # ( ‎ﴦ‎ → ‎سۛح‎ ) ARABIC LIGATURE SHEEN WITH HAH FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER HAH # →‎شح‎→ +FD0A ; 0633 06DB 062D ; MA # ( ‎ﴊ‎ → ‎سۛح‎ ) ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER HAH # →‎شح‎→ + +FD5C ; 0633 062D 062C ; MA # ( ‎ﵜ‎ → ‎سحج‎ ) ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER HAH, ARABIC LETTER JEEM # + +FD68 ; 0633 06DB 062D 0645 ; MA # ( ‎ﵨ‎ → ‎سۛحم‎ ) ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER HAH, ARABIC LETTER MEEM # →‎شحم‎→ +FD67 ; 0633 06DB 062D 0645 ; MA # ( ‎ﵧ‎ → ‎سۛحم‎ ) ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER HAH, ARABIC LETTER MEEM # →‎شحم‎→ + +FDAA ; 0633 06DB 062D 0649 ; MA # ( ‎ﶪ‎ → ‎سۛحى‎ ) ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA # →‎شحي‎→ + +FCAF ; 0633 062E ; MA # ( ‎ﲯ‎ → ‎سخ‎ ) ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER KHAH # +FD36 ; 0633 062E ; MA # ( ‎ﴶ‎ → ‎سخ‎ ) ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER KHAH # +FC1E ; 0633 062E ; MA # ( ‎ﰞ‎ → ‎سخ‎ ) ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM → ARABIC LETTER SEEN, ARABIC LETTER KHAH # + +FD2F ; 0633 06DB 062E ; MA # ( ‎ﴯ‎ → ‎سۛخ‎ ) ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER KHAH # →‎شخ‎→ +FD39 ; 0633 06DB 062E ; MA # ( ‎ﴹ‎ → ‎سۛخ‎ ) ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER KHAH # →‎شخ‎→ +FD27 ; 0633 06DB 062E ; MA # ( ‎ﴧ‎ → ‎سۛخ‎ ) ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER KHAH # →‎شخ‎→ +FD0B ; 0633 06DB 062E ; MA # ( ‎ﴋ‎ → ‎سۛخ‎ ) ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER KHAH # →‎شخ‎→ + +FDA8 ; 0633 062E 0649 ; MA # ( ‎ﶨ‎ → ‎سخى‎ ) ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER SEEN, ARABIC LETTER KHAH, ARABIC LETTER ALEF MAKSURA # +FDC6 ; 0633 062E 0649 ; MA # ( ‎ﷆ‎ → ‎سخى‎ ) ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM → ARABIC LETTER SEEN, ARABIC LETTER KHAH, ARABIC LETTER ALEF MAKSURA # →‎سخي‎→ + +FD2A ; 0633 0631 ; MA # ( ‎ﴪ‎ → ‎سر‎ ) ARABIC LIGATURE SEEN WITH REH FINAL FORM → ARABIC LETTER SEEN, ARABIC LETTER REH # +FD0E ; 0633 0631 ; MA # ( ‎ﴎ‎ → ‎سر‎ ) ARABIC LIGATURE SEEN WITH REH ISOLATED FORM → ARABIC LETTER SEEN, ARABIC LETTER REH # + +FD29 ; 0633 06DB 0631 ; MA # ( ‎ﴩ‎ → ‎سۛر‎ ) ARABIC LIGATURE SHEEN WITH REH FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER REH # →‎شر‎→ +FD0D ; 0633 06DB 0631 ; MA # ( ‎ﴍ‎ → ‎سۛر‎ ) ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER REH # →‎شر‎→ + +FCB0 ; 0633 0645 ; MA # ( ‎ﲰ‎ → ‎سم‎ ) ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER MEEM # +FCE7 ; 0633 0645 ; MA # ( ‎ﳧ‎ → ‎سم‎ ) ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER MEEM # +FC1F ; 0633 0645 ; MA # ( ‎ﰟ‎ → ‎سم‎ ) ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM → ARABIC LETTER SEEN, ARABIC LETTER MEEM # + +FD30 ; 0633 06DB 0645 ; MA # ( ‎ﴰ‎ → ‎سۛم‎ ) ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER MEEM # →‎شم‎→ +FCE9 ; 0633 06DB 0645 ; MA # ( ‎ﳩ‎ → ‎سۛم‎ ) ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER MEEM # →‎شم‎→ +FD28 ; 0633 06DB 0645 ; MA # ( ‎ﴨ‎ → ‎سۛم‎ ) ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER MEEM # →‎شم‎→ +FD0C ; 0633 06DB 0645 ; MA # ( ‎ﴌ‎ → ‎سۛم‎ ) ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER MEEM # →‎شم‎→ + +FD61 ; 0633 0645 062C ; MA # ( ‎ﵡ‎ → ‎سمج‎ ) ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER MEEM, ARABIC LETTER JEEM # + +FD60 ; 0633 0645 062D ; MA # ( ‎ﵠ‎ → ‎سمح‎ ) ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER MEEM, ARABIC LETTER HAH # +FD5F ; 0633 0645 062D ; MA # ( ‎ﵟ‎ → ‎سمح‎ ) ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM → ARABIC LETTER SEEN, ARABIC LETTER MEEM, ARABIC LETTER HAH # + +FD6B ; 0633 06DB 0645 062E ; MA # ( ‎ﵫ‎ → ‎سۛمخ‎ ) ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER MEEM, ARABIC LETTER KHAH # →‎شمخ‎→ +FD6A ; 0633 06DB 0645 062E ; MA # ( ‎ﵪ‎ → ‎سۛمخ‎ ) ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER MEEM, ARABIC LETTER KHAH # →‎شمخ‎→ + +FD63 ; 0633 0645 0645 ; MA # ( ‎ﵣ‎ → ‎سمم‎ ) ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM → ARABIC LETTER SEEN, ARABIC LETTER MEEM, ARABIC LETTER MEEM # +FD62 ; 0633 0645 0645 ; MA # ( ‎ﵢ‎ → ‎سمم‎ ) ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM → ARABIC LETTER SEEN, ARABIC LETTER MEEM, ARABIC LETTER MEEM # + +FD6D ; 0633 06DB 0645 0645 ; MA # ( ‎ﵭ‎ → ‎سۛمم‎ ) ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER MEEM, ARABIC LETTER MEEM # →‎شمم‎→ +FD6C ; 0633 06DB 0645 0645 ; MA # ( ‎ﵬ‎ → ‎سۛمم‎ ) ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER MEEM, ARABIC LETTER MEEM # →‎شمم‎→ + +FD17 ; 0633 0649 ; MA # ( ‎ﴗ‎ → ‎سى‎ ) ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER SEEN, ARABIC LETTER ALEF MAKSURA # +FCFB ; 0633 0649 ; MA # ( ‎ﳻ‎ → ‎سى‎ ) ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER SEEN, ARABIC LETTER ALEF MAKSURA # +FD18 ; 0633 0649 ; MA # ( ‎ﴘ‎ → ‎سى‎ ) ARABIC LIGATURE SEEN WITH YEH FINAL FORM → ARABIC LETTER SEEN, ARABIC LETTER ALEF MAKSURA # →‎سي‎→ +FCFC ; 0633 0649 ; MA # ( ‎ﳼ‎ → ‎سى‎ ) ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM → ARABIC LETTER SEEN, ARABIC LETTER ALEF MAKSURA # →‎سي‎→ + +FD19 ; 0633 06DB 0649 ; MA # ( ‎ﴙ‎ → ‎سۛى‎ ) ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER ALEF MAKSURA # →‎شى‎→ +FCFD ; 0633 06DB 0649 ; MA # ( ‎ﳽ‎ → ‎سۛى‎ ) ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER ALEF MAKSURA # →‎شى‎→ +FD1A ; 0633 06DB 0649 ; MA # ( ‎ﴚ‎ → ‎سۛى‎ ) ARABIC LIGATURE SHEEN WITH YEH FINAL FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER ALEF MAKSURA # →‎شي‎→ +FCFE ; 0633 06DB 0649 ; MA # ( ‎ﳾ‎ → ‎سۛى‎ ) ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM → ARABIC LETTER SEEN, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER ALEF MAKSURA # →‎شي‎→ + +102F2 ; 0635 ; MA #* ( 𐋲 → ‎ص‎ ) COPTIC EPACT NUMBER NINETY → ARABIC LETTER SAD # +1EE11 ; 0635 ; MA # ( ‎𞸑‎ → ‎ص‎ ) ARABIC MATHEMATICAL SAD → ARABIC LETTER SAD # +1EE31 ; 0635 ; MA # ( ‎𞸱‎ → ‎ص‎ ) ARABIC MATHEMATICAL INITIAL SAD → ARABIC LETTER SAD # +1EE51 ; 0635 ; MA # ( ‎𞹑‎ → ‎ص‎ ) ARABIC MATHEMATICAL TAILED SAD → ARABIC LETTER SAD # +1EE71 ; 0635 ; MA # ( ‎𞹱‎ → ‎ص‎ ) ARABIC MATHEMATICAL STRETCHED SAD → ARABIC LETTER SAD # +1EE91 ; 0635 ; MA # ( ‎𞺑‎ → ‎ص‎ ) ARABIC MATHEMATICAL LOOPED SAD → ARABIC LETTER SAD # +1EEB1 ; 0635 ; MA # ( ‎𞺱‎ → ‎ص‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK SAD → ARABIC LETTER SAD # +FEBB ; 0635 ; MA # ( ‎ﺻ‎ → ‎ص‎ ) ARABIC LETTER SAD INITIAL FORM → ARABIC LETTER SAD # +FEBC ; 0635 ; MA # ( ‎ﺼ‎ → ‎ص‎ ) ARABIC LETTER SAD MEDIAL FORM → ARABIC LETTER SAD # +FEBA ; 0635 ; MA # ( ‎ﺺ‎ → ‎ص‎ ) ARABIC LETTER SAD FINAL FORM → ARABIC LETTER SAD # +FEB9 ; 0635 ; MA # ( ‎ﺹ‎ → ‎ص‎ ) ARABIC LETTER SAD ISOLATED FORM → ARABIC LETTER SAD # + +069E ; 0635 06DB ; MA # ( ‎ڞ‎ → ‎صۛ‎ ) ARABIC LETTER SAD WITH THREE DOTS ABOVE → ARABIC LETTER SAD, ARABIC SMALL HIGH THREE DOTS # + +08AF ; 0635 0324 0323 ; MA # ( ‎ࢯ‎ → ‎ص̤̣‎ ) ARABIC LETTER SAD WITH THREE DOTS BELOW → ARABIC LETTER SAD, COMBINING DIAERESIS BELOW, COMBINING DOT BELOW # →‎ص࣮࣭‎→ + +FCB1 ; 0635 062D ; MA # ( ‎ﲱ‎ → ‎صح‎ ) ARABIC LIGATURE SAD WITH HAH INITIAL FORM → ARABIC LETTER SAD, ARABIC LETTER HAH # +FC20 ; 0635 062D ; MA # ( ‎ﰠ‎ → ‎صح‎ ) ARABIC LIGATURE SAD WITH HAH ISOLATED FORM → ARABIC LETTER SAD, ARABIC LETTER HAH # + +FD65 ; 0635 062D 062D ; MA # ( ‎ﵥ‎ → ‎صحح‎ ) ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM → ARABIC LETTER SAD, ARABIC LETTER HAH, ARABIC LETTER HAH # +FD64 ; 0635 062D 062D ; MA # ( ‎ﵤ‎ → ‎صحح‎ ) ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM → ARABIC LETTER SAD, ARABIC LETTER HAH, ARABIC LETTER HAH # + +FDA9 ; 0635 062D 0649 ; MA # ( ‎ﶩ‎ → ‎صحى‎ ) ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM → ARABIC LETTER SAD, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA # →‎صحي‎→ + +FCB2 ; 0635 062E ; MA # ( ‎ﲲ‎ → ‎صخ‎ ) ARABIC LIGATURE SAD WITH KHAH INITIAL FORM → ARABIC LETTER SAD, ARABIC LETTER KHAH # + +FD2B ; 0635 0631 ; MA # ( ‎ﴫ‎ → ‎صر‎ ) ARABIC LIGATURE SAD WITH REH FINAL FORM → ARABIC LETTER SAD, ARABIC LETTER REH # +FD0F ; 0635 0631 ; MA # ( ‎ﴏ‎ → ‎صر‎ ) ARABIC LIGATURE SAD WITH REH ISOLATED FORM → ARABIC LETTER SAD, ARABIC LETTER REH # + +FDF5 ; 0635 0644 0639 0645 ; MA # ( ‎ﷵ‎ → ‎صلعم‎ ) ARABIC LIGATURE SALAM ISOLATED FORM → ARABIC LETTER SAD, ARABIC LETTER LAM, ARABIC LETTER AIN, ARABIC LETTER MEEM # + +FDF9 ; 0635 0644 0649 ; MA # ( ‎ﷹ‎ → ‎صلى‎ ) ARABIC LIGATURE SALLA ISOLATED FORM → ARABIC LETTER SAD, ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA # +FDF0 ; 0635 0644 0649 ; MA # ( ‎ﷰ‎ → ‎صلى‎ ) ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM → ARABIC LETTER SAD, ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA # →‎صلے‎→ + +FDFA ; 0635 0644 0649 0020 006C 0644 0644 006F 0020 0639 0644 0649 006F 0020 0648 0633 0644 0645 ; MA #* ( ‎ﷺ‎ → ‎صلى lللo علىo وسلم‎ ) ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM → ARABIC LETTER SAD, ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA, SPACE, LATIN SMALL LETTER L, ARABIC LETTER LAM, ARABIC LETTER LAM, LATIN SMALL LETTER O, SPACE, ARABIC LETTER AIN, ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA, LATIN SMALL LETTER O, SPACE, ARABIC LETTER WAW, ARABIC LETTER SEEN, ARABIC LETTER LAM, ARABIC LETTER MEEM # →‎صلى الله عليه وسلم‎→ + +FCB3 ; 0635 0645 ; MA # ( ‎ﲳ‎ → ‎صم‎ ) ARABIC LIGATURE SAD WITH MEEM INITIAL FORM → ARABIC LETTER SAD, ARABIC LETTER MEEM # +FC21 ; 0635 0645 ; MA # ( ‎ﰡ‎ → ‎صم‎ ) ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM → ARABIC LETTER SAD, ARABIC LETTER MEEM # + +FDC5 ; 0635 0645 0645 ; MA # ( ‎ﷅ‎ → ‎صمم‎ ) ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM → ARABIC LETTER SAD, ARABIC LETTER MEEM, ARABIC LETTER MEEM # +FD66 ; 0635 0645 0645 ; MA # ( ‎ﵦ‎ → ‎صمم‎ ) ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM → ARABIC LETTER SAD, ARABIC LETTER MEEM, ARABIC LETTER MEEM # + +FD21 ; 0635 0649 ; MA # ( ‎ﴡ‎ → ‎صى‎ ) ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER SAD, ARABIC LETTER ALEF MAKSURA # +FD05 ; 0635 0649 ; MA # ( ‎ﴅ‎ → ‎صى‎ ) ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER SAD, ARABIC LETTER ALEF MAKSURA # +FD22 ; 0635 0649 ; MA # ( ‎ﴢ‎ → ‎صى‎ ) ARABIC LIGATURE SAD WITH YEH FINAL FORM → ARABIC LETTER SAD, ARABIC LETTER ALEF MAKSURA # →‎صي‎→ +FD06 ; 0635 0649 ; MA # ( ‎ﴆ‎ → ‎صى‎ ) ARABIC LIGATURE SAD WITH YEH ISOLATED FORM → ARABIC LETTER SAD, ARABIC LETTER ALEF MAKSURA # →‎صي‎→ + +1EE19 ; 0636 ; MA # ( ‎𞸙‎ → ‎ض‎ ) ARABIC MATHEMATICAL DAD → ARABIC LETTER DAD # +1EE39 ; 0636 ; MA # ( ‎𞸹‎ → ‎ض‎ ) ARABIC MATHEMATICAL INITIAL DAD → ARABIC LETTER DAD # +1EE59 ; 0636 ; MA # ( ‎𞹙‎ → ‎ض‎ ) ARABIC MATHEMATICAL TAILED DAD → ARABIC LETTER DAD # +1EE79 ; 0636 ; MA # ( ‎𞹹‎ → ‎ض‎ ) ARABIC MATHEMATICAL STRETCHED DAD → ARABIC LETTER DAD # +1EE99 ; 0636 ; MA # ( ‎𞺙‎ → ‎ض‎ ) ARABIC MATHEMATICAL LOOPED DAD → ARABIC LETTER DAD # +1EEB9 ; 0636 ; MA # ( ‎𞺹‎ → ‎ض‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK DAD → ARABIC LETTER DAD # +FEBF ; 0636 ; MA # ( ‎ﺿ‎ → ‎ض‎ ) ARABIC LETTER DAD INITIAL FORM → ARABIC LETTER DAD # +FEC0 ; 0636 ; MA # ( ‎ﻀ‎ → ‎ض‎ ) ARABIC LETTER DAD MEDIAL FORM → ARABIC LETTER DAD # +FEBE ; 0636 ; MA # ( ‎ﺾ‎ → ‎ض‎ ) ARABIC LETTER DAD FINAL FORM → ARABIC LETTER DAD # +FEBD ; 0636 ; MA # ( ‎ﺽ‎ → ‎ض‎ ) ARABIC LETTER DAD ISOLATED FORM → ARABIC LETTER DAD # + +FCB4 ; 0636 062C ; MA # ( ‎ﲴ‎ → ‎ضج‎ ) ARABIC LIGATURE DAD WITH JEEM INITIAL FORM → ARABIC LETTER DAD, ARABIC LETTER JEEM # +FC22 ; 0636 062C ; MA # ( ‎ﰢ‎ → ‎ضج‎ ) ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM → ARABIC LETTER DAD, ARABIC LETTER JEEM # + +FCB5 ; 0636 062D ; MA # ( ‎ﲵ‎ → ‎ضح‎ ) ARABIC LIGATURE DAD WITH HAH INITIAL FORM → ARABIC LETTER DAD, ARABIC LETTER HAH # +FC23 ; 0636 062D ; MA # ( ‎ﰣ‎ → ‎ضح‎ ) ARABIC LIGATURE DAD WITH HAH ISOLATED FORM → ARABIC LETTER DAD, ARABIC LETTER HAH # + +FD6E ; 0636 062D 0649 ; MA # ( ‎ﵮ‎ → ‎ضحى‎ ) ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER DAD, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA # +FDAB ; 0636 062D 0649 ; MA # ( ‎ﶫ‎ → ‎ضحى‎ ) ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM → ARABIC LETTER DAD, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA # →‎ضحي‎→ + +FCB6 ; 0636 062E ; MA # ( ‎ﲶ‎ → ‎ضخ‎ ) ARABIC LIGATURE DAD WITH KHAH INITIAL FORM → ARABIC LETTER DAD, ARABIC LETTER KHAH # +FC24 ; 0636 062E ; MA # ( ‎ﰤ‎ → ‎ضخ‎ ) ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM → ARABIC LETTER DAD, ARABIC LETTER KHAH # + +FD70 ; 0636 062E 0645 ; MA # ( ‎ﵰ‎ → ‎ضخم‎ ) ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM → ARABIC LETTER DAD, ARABIC LETTER KHAH, ARABIC LETTER MEEM # +FD6F ; 0636 062E 0645 ; MA # ( ‎ﵯ‎ → ‎ضخم‎ ) ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM → ARABIC LETTER DAD, ARABIC LETTER KHAH, ARABIC LETTER MEEM # + +FD2C ; 0636 0631 ; MA # ( ‎ﴬ‎ → ‎ضر‎ ) ARABIC LIGATURE DAD WITH REH FINAL FORM → ARABIC LETTER DAD, ARABIC LETTER REH # +FD10 ; 0636 0631 ; MA # ( ‎ﴐ‎ → ‎ضر‎ ) ARABIC LIGATURE DAD WITH REH ISOLATED FORM → ARABIC LETTER DAD, ARABIC LETTER REH # + +FCB7 ; 0636 0645 ; MA # ( ‎ﲷ‎ → ‎ضم‎ ) ARABIC LIGATURE DAD WITH MEEM INITIAL FORM → ARABIC LETTER DAD, ARABIC LETTER MEEM # +FC25 ; 0636 0645 ; MA # ( ‎ﰥ‎ → ‎ضم‎ ) ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM → ARABIC LETTER DAD, ARABIC LETTER MEEM # + +FD23 ; 0636 0649 ; MA # ( ‎ﴣ‎ → ‎ضى‎ ) ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER DAD, ARABIC LETTER ALEF MAKSURA # +FD07 ; 0636 0649 ; MA # ( ‎ﴇ‎ → ‎ضى‎ ) ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER DAD, ARABIC LETTER ALEF MAKSURA # +FD24 ; 0636 0649 ; MA # ( ‎ﴤ‎ → ‎ضى‎ ) ARABIC LIGATURE DAD WITH YEH FINAL FORM → ARABIC LETTER DAD, ARABIC LETTER ALEF MAKSURA # →‎ضي‎→ +FD08 ; 0636 0649 ; MA # ( ‎ﴈ‎ → ‎ضى‎ ) ARABIC LIGATURE DAD WITH YEH ISOLATED FORM → ARABIC LETTER DAD, ARABIC LETTER ALEF MAKSURA # →‎ضي‎→ + +102E8 ; 0637 ; MA #* ( 𐋨 → ‎ط‎ ) COPTIC EPACT DIGIT EIGHT → ARABIC LETTER TAH # +1EE08 ; 0637 ; MA # ( ‎𞸈‎ → ‎ط‎ ) ARABIC MATHEMATICAL TAH → ARABIC LETTER TAH # +1EE68 ; 0637 ; MA # ( ‎𞹨‎ → ‎ط‎ ) ARABIC MATHEMATICAL STRETCHED TAH → ARABIC LETTER TAH # +1EE88 ; 0637 ; MA # ( ‎𞺈‎ → ‎ط‎ ) ARABIC MATHEMATICAL LOOPED TAH → ARABIC LETTER TAH # +1EEA8 ; 0637 ; MA # ( ‎𞺨‎ → ‎ط‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK TAH → ARABIC LETTER TAH # +FEC3 ; 0637 ; MA # ( ‎ﻃ‎ → ‎ط‎ ) ARABIC LETTER TAH INITIAL FORM → ARABIC LETTER TAH # +FEC4 ; 0637 ; MA # ( ‎ﻄ‎ → ‎ط‎ ) ARABIC LETTER TAH MEDIAL FORM → ARABIC LETTER TAH # +FEC2 ; 0637 ; MA # ( ‎ﻂ‎ → ‎ط‎ ) ARABIC LETTER TAH FINAL FORM → ARABIC LETTER TAH # +FEC1 ; 0637 ; MA # ( ‎ﻁ‎ → ‎ط‎ ) ARABIC LETTER TAH ISOLATED FORM → ARABIC LETTER TAH # + +069F ; 0637 06DB ; MA # ( ‎ڟ‎ → ‎طۛ‎ ) ARABIC LETTER TAH WITH THREE DOTS ABOVE → ARABIC LETTER TAH, ARABIC SMALL HIGH THREE DOTS # + +FCB8 ; 0637 062D ; MA # ( ‎ﲸ‎ → ‎طح‎ ) ARABIC LIGATURE TAH WITH HAH INITIAL FORM → ARABIC LETTER TAH, ARABIC LETTER HAH # +FC26 ; 0637 062D ; MA # ( ‎ﰦ‎ → ‎طح‎ ) ARABIC LIGATURE TAH WITH HAH ISOLATED FORM → ARABIC LETTER TAH, ARABIC LETTER HAH # + +FD33 ; 0637 0645 ; MA # ( ‎ﴳ‎ → ‎طم‎ ) ARABIC LIGATURE TAH WITH MEEM INITIAL FORM → ARABIC LETTER TAH, ARABIC LETTER MEEM # +FD3A ; 0637 0645 ; MA # ( ‎ﴺ‎ → ‎طم‎ ) ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM → ARABIC LETTER TAH, ARABIC LETTER MEEM # +FC27 ; 0637 0645 ; MA # ( ‎ﰧ‎ → ‎طم‎ ) ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM → ARABIC LETTER TAH, ARABIC LETTER MEEM # + +FD72 ; 0637 0645 062D ; MA # ( ‎ﵲ‎ → ‎طمح‎ ) ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM → ARABIC LETTER TAH, ARABIC LETTER MEEM, ARABIC LETTER HAH # +FD71 ; 0637 0645 062D ; MA # ( ‎ﵱ‎ → ‎طمح‎ ) ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM → ARABIC LETTER TAH, ARABIC LETTER MEEM, ARABIC LETTER HAH # + +FD73 ; 0637 0645 0645 ; MA # ( ‎ﵳ‎ → ‎طمم‎ ) ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM → ARABIC LETTER TAH, ARABIC LETTER MEEM, ARABIC LETTER MEEM # + +FD74 ; 0637 0645 0649 ; MA # ( ‎ﵴ‎ → ‎طمى‎ ) ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER TAH, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # →‎طمي‎→ + +FD11 ; 0637 0649 ; MA # ( ‎ﴑ‎ → ‎طى‎ ) ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER TAH, ARABIC LETTER ALEF MAKSURA # +FCF5 ; 0637 0649 ; MA # ( ‎ﳵ‎ → ‎طى‎ ) ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER TAH, ARABIC LETTER ALEF MAKSURA # +FD12 ; 0637 0649 ; MA # ( ‎ﴒ‎ → ‎طى‎ ) ARABIC LIGATURE TAH WITH YEH FINAL FORM → ARABIC LETTER TAH, ARABIC LETTER ALEF MAKSURA # →‎طي‎→ +FCF6 ; 0637 0649 ; MA # ( ‎ﳶ‎ → ‎طى‎ ) ARABIC LIGATURE TAH WITH YEH ISOLATED FORM → ARABIC LETTER TAH, ARABIC LETTER ALEF MAKSURA # →‎طي‎→ + +1EE1A ; 0638 ; MA # ( ‎𞸚‎ → ‎ظ‎ ) ARABIC MATHEMATICAL ZAH → ARABIC LETTER ZAH # +1EE7A ; 0638 ; MA # ( ‎𞹺‎ → ‎ظ‎ ) ARABIC MATHEMATICAL STRETCHED ZAH → ARABIC LETTER ZAH # +1EE9A ; 0638 ; MA # ( ‎𞺚‎ → ‎ظ‎ ) ARABIC MATHEMATICAL LOOPED ZAH → ARABIC LETTER ZAH # +1EEBA ; 0638 ; MA # ( ‎𞺺‎ → ‎ظ‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH → ARABIC LETTER ZAH # +FEC7 ; 0638 ; MA # ( ‎ﻇ‎ → ‎ظ‎ ) ARABIC LETTER ZAH INITIAL FORM → ARABIC LETTER ZAH # +FEC8 ; 0638 ; MA # ( ‎ﻈ‎ → ‎ظ‎ ) ARABIC LETTER ZAH MEDIAL FORM → ARABIC LETTER ZAH # +FEC6 ; 0638 ; MA # ( ‎ﻆ‎ → ‎ظ‎ ) ARABIC LETTER ZAH FINAL FORM → ARABIC LETTER ZAH # +FEC5 ; 0638 ; MA # ( ‎ﻅ‎ → ‎ظ‎ ) ARABIC LETTER ZAH ISOLATED FORM → ARABIC LETTER ZAH # + +FCB9 ; 0638 0645 ; MA # ( ‎ﲹ‎ → ‎ظم‎ ) ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM → ARABIC LETTER ZAH, ARABIC LETTER MEEM # +FD3B ; 0638 0645 ; MA # ( ‎ﴻ‎ → ‎ظم‎ ) ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM → ARABIC LETTER ZAH, ARABIC LETTER MEEM # +FC28 ; 0638 0645 ; MA # ( ‎ﰨ‎ → ‎ظم‎ ) ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM → ARABIC LETTER ZAH, ARABIC LETTER MEEM # + +060F ; 0639 ; MA #* ( ؏ → ‎ع‎ ) ARABIC SIGN MISRA → ARABIC LETTER AIN # +1EE0F ; 0639 ; MA # ( ‎𞸏‎ → ‎ع‎ ) ARABIC MATHEMATICAL AIN → ARABIC LETTER AIN # +1EE2F ; 0639 ; MA # ( ‎𞸯‎ → ‎ع‎ ) ARABIC MATHEMATICAL INITIAL AIN → ARABIC LETTER AIN # +1EE4F ; 0639 ; MA # ( ‎𞹏‎ → ‎ع‎ ) ARABIC MATHEMATICAL TAILED AIN → ARABIC LETTER AIN # +1EE6F ; 0639 ; MA # ( ‎𞹯‎ → ‎ع‎ ) ARABIC MATHEMATICAL STRETCHED AIN → ARABIC LETTER AIN # +1EE8F ; 0639 ; MA # ( ‎𞺏‎ → ‎ع‎ ) ARABIC MATHEMATICAL LOOPED AIN → ARABIC LETTER AIN # +1EEAF ; 0639 ; MA # ( ‎𞺯‎ → ‎ع‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK AIN → ARABIC LETTER AIN # +FECB ; 0639 ; MA # ( ‎ﻋ‎ → ‎ع‎ ) ARABIC LETTER AIN INITIAL FORM → ARABIC LETTER AIN # +FECC ; 0639 ; MA # ( ‎ﻌ‎ → ‎ع‎ ) ARABIC LETTER AIN MEDIAL FORM → ARABIC LETTER AIN # +FECA ; 0639 ; MA # ( ‎ﻊ‎ → ‎ع‎ ) ARABIC LETTER AIN FINAL FORM → ARABIC LETTER AIN # +FEC9 ; 0639 ; MA # ( ‎ﻉ‎ → ‎ع‎ ) ARABIC LETTER AIN ISOLATED FORM → ARABIC LETTER AIN # + +FCBA ; 0639 062C ; MA # ( ‎ﲺ‎ → ‎عج‎ ) ARABIC LIGATURE AIN WITH JEEM INITIAL FORM → ARABIC LETTER AIN, ARABIC LETTER JEEM # +FC29 ; 0639 062C ; MA # ( ‎ﰩ‎ → ‎عج‎ ) ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM → ARABIC LETTER AIN, ARABIC LETTER JEEM # + +FDC4 ; 0639 062C 0645 ; MA # ( ‎ﷄ‎ → ‎عجم‎ ) ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM → ARABIC LETTER AIN, ARABIC LETTER JEEM, ARABIC LETTER MEEM # +FD75 ; 0639 062C 0645 ; MA # ( ‎ﵵ‎ → ‎عجم‎ ) ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM → ARABIC LETTER AIN, ARABIC LETTER JEEM, ARABIC LETTER MEEM # + +FDF7 ; 0639 0644 0649 006F ; MA # ( ‎ﷷ‎ → ‎علىo‎ ) ARABIC LIGATURE ALAYHE ISOLATED FORM → ARABIC LETTER AIN, ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA, LATIN SMALL LETTER O # →‎عليه‎→ + +FCBB ; 0639 0645 ; MA # ( ‎ﲻ‎ → ‎عم‎ ) ARABIC LIGATURE AIN WITH MEEM INITIAL FORM → ARABIC LETTER AIN, ARABIC LETTER MEEM # +FC2A ; 0639 0645 ; MA # ( ‎ﰪ‎ → ‎عم‎ ) ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM → ARABIC LETTER AIN, ARABIC LETTER MEEM # + +FD77 ; 0639 0645 0645 ; MA # ( ‎ﵷ‎ → ‎عمم‎ ) ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM → ARABIC LETTER AIN, ARABIC LETTER MEEM, ARABIC LETTER MEEM # +FD76 ; 0639 0645 0645 ; MA # ( ‎ﵶ‎ → ‎عمم‎ ) ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM → ARABIC LETTER AIN, ARABIC LETTER MEEM, ARABIC LETTER MEEM # + +FD78 ; 0639 0645 0649 ; MA # ( ‎ﵸ‎ → ‎عمى‎ ) ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER AIN, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # +FDB6 ; 0639 0645 0649 ; MA # ( ‎ﶶ‎ → ‎عمى‎ ) ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER AIN, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # →‎عمي‎→ + +FD13 ; 0639 0649 ; MA # ( ‎ﴓ‎ → ‎عى‎ ) ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER AIN, ARABIC LETTER ALEF MAKSURA # +FCF7 ; 0639 0649 ; MA # ( ‎ﳷ‎ → ‎عى‎ ) ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER AIN, ARABIC LETTER ALEF MAKSURA # +FD14 ; 0639 0649 ; MA # ( ‎ﴔ‎ → ‎عى‎ ) ARABIC LIGATURE AIN WITH YEH FINAL FORM → ARABIC LETTER AIN, ARABIC LETTER ALEF MAKSURA # →‎عي‎→ +FCF8 ; 0639 0649 ; MA # ( ‎ﳸ‎ → ‎عى‎ ) ARABIC LIGATURE AIN WITH YEH ISOLATED FORM → ARABIC LETTER AIN, ARABIC LETTER ALEF MAKSURA # →‎عي‎→ + +1EE1B ; 063A ; MA # ( ‎𞸛‎ → ‎غ‎ ) ARABIC MATHEMATICAL GHAIN → ARABIC LETTER GHAIN # +1EE3B ; 063A ; MA # ( ‎𞸻‎ → ‎غ‎ ) ARABIC MATHEMATICAL INITIAL GHAIN → ARABIC LETTER GHAIN # +1EE5B ; 063A ; MA # ( ‎𞹛‎ → ‎غ‎ ) ARABIC MATHEMATICAL TAILED GHAIN → ARABIC LETTER GHAIN # +1EE7B ; 063A ; MA # ( ‎𞹻‎ → ‎غ‎ ) ARABIC MATHEMATICAL STRETCHED GHAIN → ARABIC LETTER GHAIN # +1EE9B ; 063A ; MA # ( ‎𞺛‎ → ‎غ‎ ) ARABIC MATHEMATICAL LOOPED GHAIN → ARABIC LETTER GHAIN # +1EEBB ; 063A ; MA # ( ‎𞺻‎ → ‎غ‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN → ARABIC LETTER GHAIN # +FECF ; 063A ; MA # ( ‎ﻏ‎ → ‎غ‎ ) ARABIC LETTER GHAIN INITIAL FORM → ARABIC LETTER GHAIN # +FED0 ; 063A ; MA # ( ‎ﻐ‎ → ‎غ‎ ) ARABIC LETTER GHAIN MEDIAL FORM → ARABIC LETTER GHAIN # +FECE ; 063A ; MA # ( ‎ﻎ‎ → ‎غ‎ ) ARABIC LETTER GHAIN FINAL FORM → ARABIC LETTER GHAIN # +FECD ; 063A ; MA # ( ‎ﻍ‎ → ‎غ‎ ) ARABIC LETTER GHAIN ISOLATED FORM → ARABIC LETTER GHAIN # + +FCBC ; 063A 062C ; MA # ( ‎ﲼ‎ → ‎غج‎ ) ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM → ARABIC LETTER GHAIN, ARABIC LETTER JEEM # +FC2B ; 063A 062C ; MA # ( ‎ﰫ‎ → ‎غج‎ ) ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM → ARABIC LETTER GHAIN, ARABIC LETTER JEEM # + +FCBD ; 063A 0645 ; MA # ( ‎ﲽ‎ → ‎غم‎ ) ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM → ARABIC LETTER GHAIN, ARABIC LETTER MEEM # +FC2C ; 063A 0645 ; MA # ( ‎ﰬ‎ → ‎غم‎ ) ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM → ARABIC LETTER GHAIN, ARABIC LETTER MEEM # + +FD79 ; 063A 0645 0645 ; MA # ( ‎ﵹ‎ → ‎غمم‎ ) ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM → ARABIC LETTER GHAIN, ARABIC LETTER MEEM, ARABIC LETTER MEEM # + +FD7B ; 063A 0645 0649 ; MA # ( ‎ﵻ‎ → ‎غمى‎ ) ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER GHAIN, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # +FD7A ; 063A 0645 0649 ; MA # ( ‎ﵺ‎ → ‎غمى‎ ) ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER GHAIN, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # →‎غمي‎→ + +FD15 ; 063A 0649 ; MA # ( ‎ﴕ‎ → ‎غى‎ ) ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER GHAIN, ARABIC LETTER ALEF MAKSURA # +FCF9 ; 063A 0649 ; MA # ( ‎ﳹ‎ → ‎غى‎ ) ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER GHAIN, ARABIC LETTER ALEF MAKSURA # +FD16 ; 063A 0649 ; MA # ( ‎ﴖ‎ → ‎غى‎ ) ARABIC LIGATURE GHAIN WITH YEH FINAL FORM → ARABIC LETTER GHAIN, ARABIC LETTER ALEF MAKSURA # →‎غي‎→ +FCFA ; 063A 0649 ; MA # ( ‎ﳺ‎ → ‎غى‎ ) ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM → ARABIC LETTER GHAIN, ARABIC LETTER ALEF MAKSURA # →‎غي‎→ + +1EE10 ; 0641 ; MA # ( ‎𞸐‎ → ‎ف‎ ) ARABIC MATHEMATICAL FEH → ARABIC LETTER FEH # +1EE30 ; 0641 ; MA # ( ‎𞸰‎ → ‎ف‎ ) ARABIC MATHEMATICAL INITIAL FEH → ARABIC LETTER FEH # +1EE70 ; 0641 ; MA # ( ‎𞹰‎ → ‎ف‎ ) ARABIC MATHEMATICAL STRETCHED FEH → ARABIC LETTER FEH # +1EE90 ; 0641 ; MA # ( ‎𞺐‎ → ‎ف‎ ) ARABIC MATHEMATICAL LOOPED FEH → ARABIC LETTER FEH # +1EEB0 ; 0641 ; MA # ( ‎𞺰‎ → ‎ف‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK FEH → ARABIC LETTER FEH # +FED3 ; 0641 ; MA # ( ‎ﻓ‎ → ‎ف‎ ) ARABIC LETTER FEH INITIAL FORM → ARABIC LETTER FEH # +FED4 ; 0641 ; MA # ( ‎ﻔ‎ → ‎ف‎ ) ARABIC LETTER FEH MEDIAL FORM → ARABIC LETTER FEH # +FED2 ; 0641 ; MA # ( ‎ﻒ‎ → ‎ف‎ ) ARABIC LETTER FEH FINAL FORM → ARABIC LETTER FEH # +FED1 ; 0641 ; MA # ( ‎ﻑ‎ → ‎ف‎ ) ARABIC LETTER FEH ISOLATED FORM → ARABIC LETTER FEH # +06A7 ; 0641 ; MA # ( ‎ڧ‎ → ‎ف‎ ) ARABIC LETTER QAF WITH DOT ABOVE → ARABIC LETTER FEH # + +FCBE ; 0641 062C ; MA # ( ‎ﲾ‎ → ‎فج‎ ) ARABIC LIGATURE FEH WITH JEEM INITIAL FORM → ARABIC LETTER FEH, ARABIC LETTER JEEM # +FC2D ; 0641 062C ; MA # ( ‎ﰭ‎ → ‎فج‎ ) ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM → ARABIC LETTER FEH, ARABIC LETTER JEEM # + +FCBF ; 0641 062D ; MA # ( ‎ﲿ‎ → ‎فح‎ ) ARABIC LIGATURE FEH WITH HAH INITIAL FORM → ARABIC LETTER FEH, ARABIC LETTER HAH # +FC2E ; 0641 062D ; MA # ( ‎ﰮ‎ → ‎فح‎ ) ARABIC LIGATURE FEH WITH HAH ISOLATED FORM → ARABIC LETTER FEH, ARABIC LETTER HAH # + +FCC0 ; 0641 062E ; MA # ( ‎ﳀ‎ → ‎فخ‎ ) ARABIC LIGATURE FEH WITH KHAH INITIAL FORM → ARABIC LETTER FEH, ARABIC LETTER KHAH # +FC2F ; 0641 062E ; MA # ( ‎ﰯ‎ → ‎فخ‎ ) ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM → ARABIC LETTER FEH, ARABIC LETTER KHAH # + +FD7D ; 0641 062E 0645 ; MA # ( ‎ﵽ‎ → ‎فخم‎ ) ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM → ARABIC LETTER FEH, ARABIC LETTER KHAH, ARABIC LETTER MEEM # +FD7C ; 0641 062E 0645 ; MA # ( ‎ﵼ‎ → ‎فخم‎ ) ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM → ARABIC LETTER FEH, ARABIC LETTER KHAH, ARABIC LETTER MEEM # + +FCC1 ; 0641 0645 ; MA # ( ‎ﳁ‎ → ‎فم‎ ) ARABIC LIGATURE FEH WITH MEEM INITIAL FORM → ARABIC LETTER FEH, ARABIC LETTER MEEM # +FC30 ; 0641 0645 ; MA # ( ‎ﰰ‎ → ‎فم‎ ) ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM → ARABIC LETTER FEH, ARABIC LETTER MEEM # + +FDC1 ; 0641 0645 0649 ; MA # ( ‎ﷁ‎ → ‎فمى‎ ) ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER FEH, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # →‎فمي‎→ + +FC7C ; 0641 0649 ; MA # ( ‎ﱼ‎ → ‎فى‎ ) ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER FEH, ARABIC LETTER ALEF MAKSURA # +FC31 ; 0641 0649 ; MA # ( ‎ﰱ‎ → ‎فى‎ ) ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER FEH, ARABIC LETTER ALEF MAKSURA # +FC7D ; 0641 0649 ; MA # ( ‎ﱽ‎ → ‎فى‎ ) ARABIC LIGATURE FEH WITH YEH FINAL FORM → ARABIC LETTER FEH, ARABIC LETTER ALEF MAKSURA # →‎في‎→ +FC32 ; 0641 0649 ; MA # ( ‎ﰲ‎ → ‎فى‎ ) ARABIC LIGATURE FEH WITH YEH ISOLATED FORM → ARABIC LETTER FEH, ARABIC LETTER ALEF MAKSURA # →‎في‎→ + +1EE1E ; 06A1 ; MA # ( ‎𞸞‎ → ‎ڡ‎ ) ARABIC MATHEMATICAL DOTLESS FEH → ARABIC LETTER DOTLESS FEH # +1EE7E ; 06A1 ; MA # ( ‎𞹾‎ → ‎ڡ‎ ) ARABIC MATHEMATICAL STRETCHED DOTLESS FEH → ARABIC LETTER DOTLESS FEH # +08BB ; 06A1 ; MA # ( ‎ࢻ‎ → ‎ڡ‎ ) ARABIC LETTER AFRICAN FEH → ARABIC LETTER DOTLESS FEH # +066F ; 06A1 ; MA # ( ‎ٯ‎ → ‎ڡ‎ ) ARABIC LETTER DOTLESS QAF → ARABIC LETTER DOTLESS FEH # +1EE1F ; 06A1 ; MA # ( ‎𞸟‎ → ‎ڡ‎ ) ARABIC MATHEMATICAL DOTLESS QAF → ARABIC LETTER DOTLESS FEH # →‎ٯ‎→ +1EE5F ; 06A1 ; MA # ( ‎𞹟‎ → ‎ڡ‎ ) ARABIC MATHEMATICAL TAILED DOTLESS QAF → ARABIC LETTER DOTLESS FEH # →‎ٯ‎→ +08BC ; 06A1 ; MA # ( ‎ࢼ‎ → ‎ڡ‎ ) ARABIC LETTER AFRICAN QAF → ARABIC LETTER DOTLESS FEH # →‎ٯ‎→ + +06A4 ; 06A1 06DB ; MA # ( ‎ڤ‎ → ‎ڡۛ‎ ) ARABIC LETTER VEH → ARABIC LETTER DOTLESS FEH, ARABIC SMALL HIGH THREE DOTS # +FB6C ; 06A1 06DB ; MA # ( ‎ﭬ‎ → ‎ڡۛ‎ ) ARABIC LETTER VEH INITIAL FORM → ARABIC LETTER DOTLESS FEH, ARABIC SMALL HIGH THREE DOTS # →‎ڤ‎→ +FB6D ; 06A1 06DB ; MA # ( ‎ﭭ‎ → ‎ڡۛ‎ ) ARABIC LETTER VEH MEDIAL FORM → ARABIC LETTER DOTLESS FEH, ARABIC SMALL HIGH THREE DOTS # →‎ڤ‎→ +FB6B ; 06A1 06DB ; MA # ( ‎ﭫ‎ → ‎ڡۛ‎ ) ARABIC LETTER VEH FINAL FORM → ARABIC LETTER DOTLESS FEH, ARABIC SMALL HIGH THREE DOTS # →‎ڤ‎→ +FB6A ; 06A1 06DB ; MA # ( ‎ﭪ‎ → ‎ڡۛ‎ ) ARABIC LETTER VEH ISOLATED FORM → ARABIC LETTER DOTLESS FEH, ARABIC SMALL HIGH THREE DOTS # →‎ڤ‎→ +06A8 ; 06A1 06DB ; MA # ( ‎ڨ‎ → ‎ڡۛ‎ ) ARABIC LETTER QAF WITH THREE DOTS ABOVE → ARABIC LETTER DOTLESS FEH, ARABIC SMALL HIGH THREE DOTS # →‎ڤ‎→ + +08A4 ; 06A2 06DB ; MA # ( ‎ࢤ‎ → ‎ڢۛ‎ ) ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE → ARABIC LETTER FEH WITH DOT MOVED BELOW, ARABIC SMALL HIGH THREE DOTS # + +FB70 ; 06A6 ; MA # ( ‎ﭰ‎ → ‎ڦ‎ ) ARABIC LETTER PEHEH INITIAL FORM → ARABIC LETTER PEHEH # +FB71 ; 06A6 ; MA # ( ‎ﭱ‎ → ‎ڦ‎ ) ARABIC LETTER PEHEH MEDIAL FORM → ARABIC LETTER PEHEH # +FB6F ; 06A6 ; MA # ( ‎ﭯ‎ → ‎ڦ‎ ) ARABIC LETTER PEHEH FINAL FORM → ARABIC LETTER PEHEH # +FB6E ; 06A6 ; MA # ( ‎ﭮ‎ → ‎ڦ‎ ) ARABIC LETTER PEHEH ISOLATED FORM → ARABIC LETTER PEHEH # + +1EE12 ; 0642 ; MA # ( ‎𞸒‎ → ‎ق‎ ) ARABIC MATHEMATICAL QAF → ARABIC LETTER QAF # +1EE32 ; 0642 ; MA # ( ‎𞸲‎ → ‎ق‎ ) ARABIC MATHEMATICAL INITIAL QAF → ARABIC LETTER QAF # +1EE52 ; 0642 ; MA # ( ‎𞹒‎ → ‎ق‎ ) ARABIC MATHEMATICAL TAILED QAF → ARABIC LETTER QAF # +1EE72 ; 0642 ; MA # ( ‎𞹲‎ → ‎ق‎ ) ARABIC MATHEMATICAL STRETCHED QAF → ARABIC LETTER QAF # +1EE92 ; 0642 ; MA # ( ‎𞺒‎ → ‎ق‎ ) ARABIC MATHEMATICAL LOOPED QAF → ARABIC LETTER QAF # +1EEB2 ; 0642 ; MA # ( ‎𞺲‎ → ‎ق‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK QAF → ARABIC LETTER QAF # +FED7 ; 0642 ; MA # ( ‎ﻗ‎ → ‎ق‎ ) ARABIC LETTER QAF INITIAL FORM → ARABIC LETTER QAF # +FED8 ; 0642 ; MA # ( ‎ﻘ‎ → ‎ق‎ ) ARABIC LETTER QAF MEDIAL FORM → ARABIC LETTER QAF # +FED6 ; 0642 ; MA # ( ‎ﻖ‎ → ‎ق‎ ) ARABIC LETTER QAF FINAL FORM → ARABIC LETTER QAF # +FED5 ; 0642 ; MA # ( ‎ﻕ‎ → ‎ق‎ ) ARABIC LETTER QAF ISOLATED FORM → ARABIC LETTER QAF # + +FCC2 ; 0642 062D ; MA # ( ‎ﳂ‎ → ‎قح‎ ) ARABIC LIGATURE QAF WITH HAH INITIAL FORM → ARABIC LETTER QAF, ARABIC LETTER HAH # +FC33 ; 0642 062D ; MA # ( ‎ﰳ‎ → ‎قح‎ ) ARABIC LIGATURE QAF WITH HAH ISOLATED FORM → ARABIC LETTER QAF, ARABIC LETTER HAH # + +FDF1 ; 0642 0644 0649 ; MA # ( ‎ﷱ‎ → ‎قلى‎ ) ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM → ARABIC LETTER QAF, ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA # →‎قلے‎→ + +FCC3 ; 0642 0645 ; MA # ( ‎ﳃ‎ → ‎قم‎ ) ARABIC LIGATURE QAF WITH MEEM INITIAL FORM → ARABIC LETTER QAF, ARABIC LETTER MEEM # +FC34 ; 0642 0645 ; MA # ( ‎ﰴ‎ → ‎قم‎ ) ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM → ARABIC LETTER QAF, ARABIC LETTER MEEM # + +FDB4 ; 0642 0645 062D ; MA # ( ‎ﶴ‎ → ‎قمح‎ ) ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM → ARABIC LETTER QAF, ARABIC LETTER MEEM, ARABIC LETTER HAH # +FD7E ; 0642 0645 062D ; MA # ( ‎ﵾ‎ → ‎قمح‎ ) ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM → ARABIC LETTER QAF, ARABIC LETTER MEEM, ARABIC LETTER HAH # + +FD7F ; 0642 0645 0645 ; MA # ( ‎ﵿ‎ → ‎قمم‎ ) ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM → ARABIC LETTER QAF, ARABIC LETTER MEEM, ARABIC LETTER MEEM # + +FDB2 ; 0642 0645 0649 ; MA # ( ‎ﶲ‎ → ‎قمى‎ ) ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER QAF, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # →‎قمي‎→ + +FC7E ; 0642 0649 ; MA # ( ‎ﱾ‎ → ‎قى‎ ) ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER QAF, ARABIC LETTER ALEF MAKSURA # +FC35 ; 0642 0649 ; MA # ( ‎ﰵ‎ → ‎قى‎ ) ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER QAF, ARABIC LETTER ALEF MAKSURA # +FC7F ; 0642 0649 ; MA # ( ‎ﱿ‎ → ‎قى‎ ) ARABIC LIGATURE QAF WITH YEH FINAL FORM → ARABIC LETTER QAF, ARABIC LETTER ALEF MAKSURA # →‎قي‎→ +FC36 ; 0642 0649 ; MA # ( ‎ﰶ‎ → ‎قى‎ ) ARABIC LIGATURE QAF WITH YEH ISOLATED FORM → ARABIC LETTER QAF, ARABIC LETTER ALEF MAKSURA # →‎قي‎→ + +1EE0A ; 0643 ; MA # ( ‎𞸊‎ → ‎ك‎ ) ARABIC MATHEMATICAL KAF → ARABIC LETTER KAF # +1EE2A ; 0643 ; MA # ( ‎𞸪‎ → ‎ك‎ ) ARABIC MATHEMATICAL INITIAL KAF → ARABIC LETTER KAF # +1EE6A ; 0643 ; MA # ( ‎𞹪‎ → ‎ك‎ ) ARABIC MATHEMATICAL STRETCHED KAF → ARABIC LETTER KAF # +FEDB ; 0643 ; MA # ( ‎ﻛ‎ → ‎ك‎ ) ARABIC LETTER KAF INITIAL FORM → ARABIC LETTER KAF # +FEDC ; 0643 ; MA # ( ‎ﻜ‎ → ‎ك‎ ) ARABIC LETTER KAF MEDIAL FORM → ARABIC LETTER KAF # +FEDA ; 0643 ; MA # ( ‎ﻚ‎ → ‎ك‎ ) ARABIC LETTER KAF FINAL FORM → ARABIC LETTER KAF # +FED9 ; 0643 ; MA # ( ‎ﻙ‎ → ‎ك‎ ) ARABIC LETTER KAF ISOLATED FORM → ARABIC LETTER KAF # +06A9 ; 0643 ; MA # ( ‎ک‎ → ‎ك‎ ) ARABIC LETTER KEHEH → ARABIC LETTER KAF # +FB90 ; 0643 ; MA # ( ‎ﮐ‎ → ‎ك‎ ) ARABIC LETTER KEHEH INITIAL FORM → ARABIC LETTER KAF # →‎ک‎→ +FB91 ; 0643 ; MA # ( ‎ﮑ‎ → ‎ك‎ ) ARABIC LETTER KEHEH MEDIAL FORM → ARABIC LETTER KAF # →‎ک‎→ +FB8F ; 0643 ; MA # ( ‎ﮏ‎ → ‎ك‎ ) ARABIC LETTER KEHEH FINAL FORM → ARABIC LETTER KAF # →‎ک‎→ +FB8E ; 0643 ; MA # ( ‎ﮎ‎ → ‎ك‎ ) ARABIC LETTER KEHEH ISOLATED FORM → ARABIC LETTER KAF # →‎ک‎→ +06AA ; 0643 ; MA # ( ‎ڪ‎ → ‎ك‎ ) ARABIC LETTER SWASH KAF → ARABIC LETTER KAF # + +06AD ; 0643 06DB ; MA # ( ‎ڭ‎ → ‎كۛ‎ ) ARABIC LETTER NG → ARABIC LETTER KAF, ARABIC SMALL HIGH THREE DOTS # +FBD5 ; 0643 06DB ; MA # ( ‎ﯕ‎ → ‎كۛ‎ ) ARABIC LETTER NG INITIAL FORM → ARABIC LETTER KAF, ARABIC SMALL HIGH THREE DOTS # →‎ڭ‎→ +FBD6 ; 0643 06DB ; MA # ( ‎ﯖ‎ → ‎كۛ‎ ) ARABIC LETTER NG MEDIAL FORM → ARABIC LETTER KAF, ARABIC SMALL HIGH THREE DOTS # →‎ڭ‎→ +FBD4 ; 0643 06DB ; MA # ( ‎ﯔ‎ → ‎كۛ‎ ) ARABIC LETTER NG FINAL FORM → ARABIC LETTER KAF, ARABIC SMALL HIGH THREE DOTS # →‎ڭ‎→ +FBD3 ; 0643 06DB ; MA # ( ‎ﯓ‎ → ‎كۛ‎ ) ARABIC LETTER NG ISOLATED FORM → ARABIC LETTER KAF, ARABIC SMALL HIGH THREE DOTS # →‎ڭ‎→ +0763 ; 0643 06DB ; MA # ( ‎ݣ‎ → ‎كۛ‎ ) ARABIC LETTER KEHEH WITH THREE DOTS ABOVE → ARABIC LETTER KAF, ARABIC SMALL HIGH THREE DOTS # →‎ڭ‎→ + +FC80 ; 0643 006C ; MA # ( ‎ﲀ‎ → ‎كl‎ ) ARABIC LIGATURE KAF WITH ALEF FINAL FORM → ARABIC LETTER KAF, LATIN SMALL LETTER L # →‎كا‎→ +FC37 ; 0643 006C ; MA # ( ‎ﰷ‎ → ‎كl‎ ) ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM → ARABIC LETTER KAF, LATIN SMALL LETTER L # →‎كا‎→ + +FCC4 ; 0643 062C ; MA # ( ‎ﳄ‎ → ‎كج‎ ) ARABIC LIGATURE KAF WITH JEEM INITIAL FORM → ARABIC LETTER KAF, ARABIC LETTER JEEM # +FC38 ; 0643 062C ; MA # ( ‎ﰸ‎ → ‎كج‎ ) ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM → ARABIC LETTER KAF, ARABIC LETTER JEEM # + +FCC5 ; 0643 062D ; MA # ( ‎ﳅ‎ → ‎كح‎ ) ARABIC LIGATURE KAF WITH HAH INITIAL FORM → ARABIC LETTER KAF, ARABIC LETTER HAH # +FC39 ; 0643 062D ; MA # ( ‎ﰹ‎ → ‎كح‎ ) ARABIC LIGATURE KAF WITH HAH ISOLATED FORM → ARABIC LETTER KAF, ARABIC LETTER HAH # + +FCC6 ; 0643 062E ; MA # ( ‎ﳆ‎ → ‎كخ‎ ) ARABIC LIGATURE KAF WITH KHAH INITIAL FORM → ARABIC LETTER KAF, ARABIC LETTER KHAH # +FC3A ; 0643 062E ; MA # ( ‎ﰺ‎ → ‎كخ‎ ) ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM → ARABIC LETTER KAF, ARABIC LETTER KHAH # + +FCC7 ; 0643 0644 ; MA # ( ‎ﳇ‎ → ‎كل‎ ) ARABIC LIGATURE KAF WITH LAM INITIAL FORM → ARABIC LETTER KAF, ARABIC LETTER LAM # +FCEB ; 0643 0644 ; MA # ( ‎ﳫ‎ → ‎كل‎ ) ARABIC LIGATURE KAF WITH LAM MEDIAL FORM → ARABIC LETTER KAF, ARABIC LETTER LAM # +FC81 ; 0643 0644 ; MA # ( ‎ﲁ‎ → ‎كل‎ ) ARABIC LIGATURE KAF WITH LAM FINAL FORM → ARABIC LETTER KAF, ARABIC LETTER LAM # +FC3B ; 0643 0644 ; MA # ( ‎ﰻ‎ → ‎كل‎ ) ARABIC LIGATURE KAF WITH LAM ISOLATED FORM → ARABIC LETTER KAF, ARABIC LETTER LAM # + +FCC8 ; 0643 0645 ; MA # ( ‎ﳈ‎ → ‎كم‎ ) ARABIC LIGATURE KAF WITH MEEM INITIAL FORM → ARABIC LETTER KAF, ARABIC LETTER MEEM # +FCEC ; 0643 0645 ; MA # ( ‎ﳬ‎ → ‎كم‎ ) ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM → ARABIC LETTER KAF, ARABIC LETTER MEEM # +FC82 ; 0643 0645 ; MA # ( ‎ﲂ‎ → ‎كم‎ ) ARABIC LIGATURE KAF WITH MEEM FINAL FORM → ARABIC LETTER KAF, ARABIC LETTER MEEM # +FC3C ; 0643 0645 ; MA # ( ‎ﰼ‎ → ‎كم‎ ) ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM → ARABIC LETTER KAF, ARABIC LETTER MEEM # + +FDC3 ; 0643 0645 0645 ; MA # ( ‎ﷃ‎ → ‎كمم‎ ) ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM → ARABIC LETTER KAF, ARABIC LETTER MEEM, ARABIC LETTER MEEM # +FDBB ; 0643 0645 0645 ; MA # ( ‎ﶻ‎ → ‎كمم‎ ) ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM → ARABIC LETTER KAF, ARABIC LETTER MEEM, ARABIC LETTER MEEM # + +FDB7 ; 0643 0645 0649 ; MA # ( ‎ﶷ‎ → ‎كمى‎ ) ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER KAF, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # →‎كمي‎→ + +FC83 ; 0643 0649 ; MA # ( ‎ﲃ‎ → ‎كى‎ ) ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER KAF, ARABIC LETTER ALEF MAKSURA # +FC3D ; 0643 0649 ; MA # ( ‎ﰽ‎ → ‎كى‎ ) ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER KAF, ARABIC LETTER ALEF MAKSURA # +FC84 ; 0643 0649 ; MA # ( ‎ﲄ‎ → ‎كى‎ ) ARABIC LIGATURE KAF WITH YEH FINAL FORM → ARABIC LETTER KAF, ARABIC LETTER ALEF MAKSURA # →‎كي‎→ +FC3E ; 0643 0649 ; MA # ( ‎ﰾ‎ → ‎كى‎ ) ARABIC LIGATURE KAF WITH YEH ISOLATED FORM → ARABIC LETTER KAF, ARABIC LETTER ALEF MAKSURA # →‎كي‎→ + +0762 ; 06AC ; MA # ( ‎ݢ‎ → ‎ڬ‎ ) ARABIC LETTER KEHEH WITH DOT ABOVE → ARABIC LETTER KAF WITH DOT ABOVE # + +FB94 ; 06AF ; MA # ( ‎ﮔ‎ → ‎گ‎ ) ARABIC LETTER GAF INITIAL FORM → ARABIC LETTER GAF # +FB95 ; 06AF ; MA # ( ‎ﮕ‎ → ‎گ‎ ) ARABIC LETTER GAF MEDIAL FORM → ARABIC LETTER GAF # +FB93 ; 06AF ; MA # ( ‎ﮓ‎ → ‎گ‎ ) ARABIC LETTER GAF FINAL FORM → ARABIC LETTER GAF # +FB92 ; 06AF ; MA # ( ‎ﮒ‎ → ‎گ‎ ) ARABIC LETTER GAF ISOLATED FORM → ARABIC LETTER GAF # +08B0 ; 06AF ; MA # ( ‎ࢰ‎ → ‎گ‎ ) ARABIC LETTER GAF WITH INVERTED STROKE → ARABIC LETTER GAF # + +06B4 ; 06AF 06DB ; MA # ( ‎ڴ‎ → ‎گۛ‎ ) ARABIC LETTER GAF WITH THREE DOTS ABOVE → ARABIC LETTER GAF, ARABIC SMALL HIGH THREE DOTS # + +FB9C ; 06B1 ; MA # ( ‎ﮜ‎ → ‎ڱ‎ ) ARABIC LETTER NGOEH INITIAL FORM → ARABIC LETTER NGOEH # +FB9D ; 06B1 ; MA # ( ‎ﮝ‎ → ‎ڱ‎ ) ARABIC LETTER NGOEH MEDIAL FORM → ARABIC LETTER NGOEH # +FB9B ; 06B1 ; MA # ( ‎ﮛ‎ → ‎ڱ‎ ) ARABIC LETTER NGOEH FINAL FORM → ARABIC LETTER NGOEH # +FB9A ; 06B1 ; MA # ( ‎ﮚ‎ → ‎ڱ‎ ) ARABIC LETTER NGOEH ISOLATED FORM → ARABIC LETTER NGOEH # + +FB98 ; 06B3 ; MA # ( ‎ﮘ‎ → ‎ڳ‎ ) ARABIC LETTER GUEH INITIAL FORM → ARABIC LETTER GUEH # +FB99 ; 06B3 ; MA # ( ‎ﮙ‎ → ‎ڳ‎ ) ARABIC LETTER GUEH MEDIAL FORM → ARABIC LETTER GUEH # +FB97 ; 06B3 ; MA # ( ‎ﮗ‎ → ‎ڳ‎ ) ARABIC LETTER GUEH FINAL FORM → ARABIC LETTER GUEH # +FB96 ; 06B3 ; MA # ( ‎ﮖ‎ → ‎ڳ‎ ) ARABIC LETTER GUEH ISOLATED FORM → ARABIC LETTER GUEH # + +1EE0B ; 0644 ; MA # ( ‎𞸋‎ → ‎ل‎ ) ARABIC MATHEMATICAL LAM → ARABIC LETTER LAM # +1EE2B ; 0644 ; MA # ( ‎𞸫‎ → ‎ل‎ ) ARABIC MATHEMATICAL INITIAL LAM → ARABIC LETTER LAM # +1EE4B ; 0644 ; MA # ( ‎𞹋‎ → ‎ل‎ ) ARABIC MATHEMATICAL TAILED LAM → ARABIC LETTER LAM # +1EE8B ; 0644 ; MA # ( ‎𞺋‎ → ‎ل‎ ) ARABIC MATHEMATICAL LOOPED LAM → ARABIC LETTER LAM # +1EEAB ; 0644 ; MA # ( ‎𞺫‎ → ‎ل‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK LAM → ARABIC LETTER LAM # +FEDF ; 0644 ; MA # ( ‎ﻟ‎ → ‎ل‎ ) ARABIC LETTER LAM INITIAL FORM → ARABIC LETTER LAM # +FEE0 ; 0644 ; MA # ( ‎ﻠ‎ → ‎ل‎ ) ARABIC LETTER LAM MEDIAL FORM → ARABIC LETTER LAM # +FEDE ; 0644 ; MA # ( ‎ﻞ‎ → ‎ل‎ ) ARABIC LETTER LAM FINAL FORM → ARABIC LETTER LAM # +FEDD ; 0644 ; MA # ( ‎ﻝ‎ → ‎ل‎ ) ARABIC LETTER LAM ISOLATED FORM → ARABIC LETTER LAM # + +06B7 ; 0644 06DB ; MA # ( ‎ڷ‎ → ‎لۛ‎ ) ARABIC LETTER LAM WITH THREE DOTS ABOVE → ARABIC LETTER LAM, ARABIC SMALL HIGH THREE DOTS # + +06B5 ; 0644 0306 ; MA # ( ‎ڵ‎ → ‎ل̆‎ ) ARABIC LETTER LAM WITH SMALL V → ARABIC LETTER LAM, COMBINING BREVE # →‎لٚ‎→ + +FEFC ; 0644 006C ; MA # ( ‎ﻼ‎ → ‎لl‎ ) ARABIC LIGATURE LAM WITH ALEF FINAL FORM → ARABIC LETTER LAM, LATIN SMALL LETTER L # →‎لا‎→ +FEFB ; 0644 006C ; MA # ( ‎ﻻ‎ → ‎لl‎ ) ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM → ARABIC LETTER LAM, LATIN SMALL LETTER L # →‎لا‎→ + +FEFA ; 0644 006C 0655 ; MA # ( ‎ﻺ‎ → ‎لlٕ‎ ) ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM → ARABIC LETTER LAM, LATIN SMALL LETTER L, ARABIC HAMZA BELOW # →‎لإ‎→ +FEF9 ; 0644 006C 0655 ; MA # ( ‎ﻹ‎ → ‎لlٕ‎ ) ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM → ARABIC LETTER LAM, LATIN SMALL LETTER L, ARABIC HAMZA BELOW # →‎لإ‎→ + +FEF8 ; 0644 006C 0674 ; MA # ( ‎ﻸ‎ → ‎لlٴ‎ ) ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM → ARABIC LETTER LAM, LATIN SMALL LETTER L, ARABIC LETTER HIGH HAMZA # →‎لأ‎→ +FEF7 ; 0644 006C 0674 ; MA # ( ‎ﻷ‎ → ‎لlٴ‎ ) ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM → ARABIC LETTER LAM, LATIN SMALL LETTER L, ARABIC LETTER HIGH HAMZA # →‎لأ‎→ + +FCCD ; 0644 006F ; MA # ( ‎ﳍ‎ → ‎لo‎ ) ARABIC LIGATURE LAM WITH HEH INITIAL FORM → ARABIC LETTER LAM, LATIN SMALL LETTER O # →‎له‎→ + +FEF6 ; 0644 0622 ; MA # ( ‎ﻶ‎ → ‎لآ‎ ) ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER ALEF WITH MADDA ABOVE # +FEF5 ; 0644 0622 ; MA # ( ‎ﻵ‎ → ‎لآ‎ ) ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM → ARABIC LETTER LAM, ARABIC LETTER ALEF WITH MADDA ABOVE # + +FCC9 ; 0644 062C ; MA # ( ‎ﳉ‎ → ‎لج‎ ) ARABIC LIGATURE LAM WITH JEEM INITIAL FORM → ARABIC LETTER LAM, ARABIC LETTER JEEM # +FC3F ; 0644 062C ; MA # ( ‎ﰿ‎ → ‎لج‎ ) ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM → ARABIC LETTER LAM, ARABIC LETTER JEEM # + +FD83 ; 0644 062C 062C ; MA # ( ‎ﶃ‎ → ‎لجج‎ ) ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM → ARABIC LETTER LAM, ARABIC LETTER JEEM, ARABIC LETTER JEEM # +FD84 ; 0644 062C 062C ; MA # ( ‎ﶄ‎ → ‎لجج‎ ) ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER JEEM, ARABIC LETTER JEEM # + +FDBA ; 0644 062C 0645 ; MA # ( ‎ﶺ‎ → ‎لجم‎ ) ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM → ARABIC LETTER LAM, ARABIC LETTER JEEM, ARABIC LETTER MEEM # +FDBC ; 0644 062C 0645 ; MA # ( ‎ﶼ‎ → ‎لجم‎ ) ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER JEEM, ARABIC LETTER MEEM # + +FDAC ; 0644 062C 0649 ; MA # ( ‎ﶬ‎ → ‎لجى‎ ) ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA # →‎لجي‎→ + +FCCA ; 0644 062D ; MA # ( ‎ﳊ‎ → ‎لح‎ ) ARABIC LIGATURE LAM WITH HAH INITIAL FORM → ARABIC LETTER LAM, ARABIC LETTER HAH # +FC40 ; 0644 062D ; MA # ( ‎ﱀ‎ → ‎لح‎ ) ARABIC LIGATURE LAM WITH HAH ISOLATED FORM → ARABIC LETTER LAM, ARABIC LETTER HAH # + +FDB5 ; 0644 062D 0645 ; MA # ( ‎ﶵ‎ → ‎لحم‎ ) ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM → ARABIC LETTER LAM, ARABIC LETTER HAH, ARABIC LETTER MEEM # +FD80 ; 0644 062D 0645 ; MA # ( ‎ﶀ‎ → ‎لحم‎ ) ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER HAH, ARABIC LETTER MEEM # + +FD82 ; 0644 062D 0649 ; MA # ( ‎ﶂ‎ → ‎لحى‎ ) ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA # +FD81 ; 0644 062D 0649 ; MA # ( ‎ﶁ‎ → ‎لحى‎ ) ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA # →‎لحي‎→ + +FCCB ; 0644 062E ; MA # ( ‎ﳋ‎ → ‎لخ‎ ) ARABIC LIGATURE LAM WITH KHAH INITIAL FORM → ARABIC LETTER LAM, ARABIC LETTER KHAH # +FC41 ; 0644 062E ; MA # ( ‎ﱁ‎ → ‎لخ‎ ) ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM → ARABIC LETTER LAM, ARABIC LETTER KHAH # + +FD86 ; 0644 062E 0645 ; MA # ( ‎ﶆ‎ → ‎لخم‎ ) ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM → ARABIC LETTER LAM, ARABIC LETTER KHAH, ARABIC LETTER MEEM # +FD85 ; 0644 062E 0645 ; MA # ( ‎ﶅ‎ → ‎لخم‎ ) ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER KHAH, ARABIC LETTER MEEM # + +FCCC ; 0644 0645 ; MA # ( ‎ﳌ‎ → ‎لم‎ ) ARABIC LIGATURE LAM WITH MEEM INITIAL FORM → ARABIC LETTER LAM, ARABIC LETTER MEEM # +FCED ; 0644 0645 ; MA # ( ‎ﳭ‎ → ‎لم‎ ) ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM → ARABIC LETTER LAM, ARABIC LETTER MEEM # +FC85 ; 0644 0645 ; MA # ( ‎ﲅ‎ → ‎لم‎ ) ARABIC LIGATURE LAM WITH MEEM FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER MEEM # +FC42 ; 0644 0645 ; MA # ( ‎ﱂ‎ → ‎لم‎ ) ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM → ARABIC LETTER LAM, ARABIC LETTER MEEM # + +FD88 ; 0644 0645 062D ; MA # ( ‎ﶈ‎ → ‎لمح‎ ) ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM → ARABIC LETTER LAM, ARABIC LETTER MEEM, ARABIC LETTER HAH # +FD87 ; 0644 0645 062D ; MA # ( ‎ﶇ‎ → ‎لمح‎ ) ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER MEEM, ARABIC LETTER HAH # + +FDAD ; 0644 0645 0649 ; MA # ( ‎ﶭ‎ → ‎لمى‎ ) ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # →‎لمي‎→ + +FC86 ; 0644 0649 ; MA # ( ‎ﲆ‎ → ‎لى‎ ) ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA # +FC43 ; 0644 0649 ; MA # ( ‎ﱃ‎ → ‎لى‎ ) ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA # +FC87 ; 0644 0649 ; MA # ( ‎ﲇ‎ → ‎لى‎ ) ARABIC LIGATURE LAM WITH YEH FINAL FORM → ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA # →‎لي‎→ +FC44 ; 0644 0649 ; MA # ( ‎ﱄ‎ → ‎لى‎ ) ARABIC LIGATURE LAM WITH YEH ISOLATED FORM → ARABIC LETTER LAM, ARABIC LETTER ALEF MAKSURA # →‎لي‎→ + +1EE0C ; 0645 ; MA # ( ‎𞸌‎ → ‎م‎ ) ARABIC MATHEMATICAL MEEM → ARABIC LETTER MEEM # +1EE2C ; 0645 ; MA # ( ‎𞸬‎ → ‎م‎ ) ARABIC MATHEMATICAL INITIAL MEEM → ARABIC LETTER MEEM # +1EE6C ; 0645 ; MA # ( ‎𞹬‎ → ‎م‎ ) ARABIC MATHEMATICAL STRETCHED MEEM → ARABIC LETTER MEEM # +1EE8C ; 0645 ; MA # ( ‎𞺌‎ → ‎م‎ ) ARABIC MATHEMATICAL LOOPED MEEM → ARABIC LETTER MEEM # +1EEAC ; 0645 ; MA # ( ‎𞺬‎ → ‎م‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM → ARABIC LETTER MEEM # +FEE3 ; 0645 ; MA # ( ‎ﻣ‎ → ‎م‎ ) ARABIC LETTER MEEM INITIAL FORM → ARABIC LETTER MEEM # +FEE4 ; 0645 ; MA # ( ‎ﻤ‎ → ‎م‎ ) ARABIC LETTER MEEM MEDIAL FORM → ARABIC LETTER MEEM # +FEE2 ; 0645 ; MA # ( ‎ﻢ‎ → ‎م‎ ) ARABIC LETTER MEEM FINAL FORM → ARABIC LETTER MEEM # +FEE1 ; 0645 ; MA # ( ‎ﻡ‎ → ‎م‎ ) ARABIC LETTER MEEM ISOLATED FORM → ARABIC LETTER MEEM # + +08A7 ; 0645 06DB ; MA # ( ‎ࢧ‎ → ‎مۛ‎ ) ARABIC LETTER MEEM WITH THREE DOTS ABOVE → ARABIC LETTER MEEM, ARABIC SMALL HIGH THREE DOTS # + +06FE ; 0645 0348 ; MA #* ( ‎۾‎ → ‎م͈‎ ) ARABIC SIGN SINDHI POSTPOSITION MEN → ARABIC LETTER MEEM, COMBINING DOUBLE VERTICAL LINE BELOW # + +FC88 ; 0645 006C ; MA # ( ‎ﲈ‎ → ‎مl‎ ) ARABIC LIGATURE MEEM WITH ALEF FINAL FORM → ARABIC LETTER MEEM, LATIN SMALL LETTER L # →‎ما‎→ + +FCCE ; 0645 062C ; MA # ( ‎ﳎ‎ → ‎مج‎ ) ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER JEEM # +FC45 ; 0645 062C ; MA # ( ‎ﱅ‎ → ‎مج‎ ) ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM → ARABIC LETTER MEEM, ARABIC LETTER JEEM # + +FD8C ; 0645 062C 062D ; MA # ( ‎ﶌ‎ → ‎مجح‎ ) ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER JEEM, ARABIC LETTER HAH # + +FD92 ; 0645 062C 062E ; MA # ( ‎ﶒ‎ → ‎مجخ‎ ) ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER JEEM, ARABIC LETTER KHAH # + +FD8D ; 0645 062C 0645 ; MA # ( ‎ﶍ‎ → ‎مجم‎ ) ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER JEEM, ARABIC LETTER MEEM # + +FDC0 ; 0645 062C 0649 ; MA # ( ‎ﷀ‎ → ‎مجى‎ ) ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM → ARABIC LETTER MEEM, ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA # →‎مجي‎→ + +FCCF ; 0645 062D ; MA # ( ‎ﳏ‎ → ‎مح‎ ) ARABIC LIGATURE MEEM WITH HAH INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER HAH # +FC46 ; 0645 062D ; MA # ( ‎ﱆ‎ → ‎مح‎ ) ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM → ARABIC LETTER MEEM, ARABIC LETTER HAH # + +FD89 ; 0645 062D 062C ; MA # ( ‎ﶉ‎ → ‎محج‎ ) ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER HAH, ARABIC LETTER JEEM # + +FD8A ; 0645 062D 0645 ; MA # ( ‎ﶊ‎ → ‎محم‎ ) ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER HAH, ARABIC LETTER MEEM # + +FDF4 ; 0645 062D 0645 062F ; MA # ( ‎ﷴ‎ → ‎محمد‎ ) ARABIC LIGATURE MOHAMMAD ISOLATED FORM → ARABIC LETTER MEEM, ARABIC LETTER HAH, ARABIC LETTER MEEM, ARABIC LETTER DAL # + +FD8B ; 0645 062D 0649 ; MA # ( ‎ﶋ‎ → ‎محى‎ ) ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM → ARABIC LETTER MEEM, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA # →‎محي‎→ + +FCD0 ; 0645 062E ; MA # ( ‎ﳐ‎ → ‎مخ‎ ) ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER KHAH # +FC47 ; 0645 062E ; MA # ( ‎ﱇ‎ → ‎مخ‎ ) ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM → ARABIC LETTER MEEM, ARABIC LETTER KHAH # + +FD8E ; 0645 062E 062C ; MA # ( ‎ﶎ‎ → ‎مخج‎ ) ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER KHAH, ARABIC LETTER JEEM # + +FD8F ; 0645 062E 0645 ; MA # ( ‎ﶏ‎ → ‎مخم‎ ) ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER KHAH, ARABIC LETTER MEEM # + +FDB9 ; 0645 062E 0649 ; MA # ( ‎ﶹ‎ → ‎مخى‎ ) ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM → ARABIC LETTER MEEM, ARABIC LETTER KHAH, ARABIC LETTER ALEF MAKSURA # →‎مخي‎→ + +FCD1 ; 0645 0645 ; MA # ( ‎ﳑ‎ → ‎مم‎ ) ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM → ARABIC LETTER MEEM, ARABIC LETTER MEEM # +FC89 ; 0645 0645 ; MA # ( ‎ﲉ‎ → ‎مم‎ ) ARABIC LIGATURE MEEM WITH MEEM FINAL FORM → ARABIC LETTER MEEM, ARABIC LETTER MEEM # +FC48 ; 0645 0645 ; MA # ( ‎ﱈ‎ → ‎مم‎ ) ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM → ARABIC LETTER MEEM, ARABIC LETTER MEEM # + +FDB1 ; 0645 0645 0649 ; MA # ( ‎ﶱ‎ → ‎ممى‎ ) ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER MEEM, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # →‎ممي‎→ + +FC49 ; 0645 0649 ; MA # ( ‎ﱉ‎ → ‎مى‎ ) ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # +FC4A ; 0645 0649 ; MA # ( ‎ﱊ‎ → ‎مى‎ ) ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM → ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # →‎مي‎→ + +1EE0D ; 0646 ; MA # ( ‎𞸍‎ → ‎ن‎ ) ARABIC MATHEMATICAL NOON → ARABIC LETTER NOON # +1EE2D ; 0646 ; MA # ( ‎𞸭‎ → ‎ن‎ ) ARABIC MATHEMATICAL INITIAL NOON → ARABIC LETTER NOON # +1EE4D ; 0646 ; MA # ( ‎𞹍‎ → ‎ن‎ ) ARABIC MATHEMATICAL TAILED NOON → ARABIC LETTER NOON # +1EE6D ; 0646 ; MA # ( ‎𞹭‎ → ‎ن‎ ) ARABIC MATHEMATICAL STRETCHED NOON → ARABIC LETTER NOON # +1EE8D ; 0646 ; MA # ( ‎𞺍‎ → ‎ن‎ ) ARABIC MATHEMATICAL LOOPED NOON → ARABIC LETTER NOON # +1EEAD ; 0646 ; MA # ( ‎𞺭‎ → ‎ن‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK NOON → ARABIC LETTER NOON # +FEE7 ; 0646 ; MA # ( ‎ﻧ‎ → ‎ن‎ ) ARABIC LETTER NOON INITIAL FORM → ARABIC LETTER NOON # +FEE8 ; 0646 ; MA # ( ‎ﻨ‎ → ‎ن‎ ) ARABIC LETTER NOON MEDIAL FORM → ARABIC LETTER NOON # +FEE6 ; 0646 ; MA # ( ‎ﻦ‎ → ‎ن‎ ) ARABIC LETTER NOON FINAL FORM → ARABIC LETTER NOON # +FEE5 ; 0646 ; MA # ( ‎ﻥ‎ → ‎ن‎ ) ARABIC LETTER NOON ISOLATED FORM → ARABIC LETTER NOON # + +0768 ; 0646 0615 ; MA # ( ‎ݨ‎ → ‎نؕ‎ ) ARABIC LETTER NOON WITH SMALL TAH → ARABIC LETTER NOON, ARABIC SMALL HIGH TAH # + +0769 ; 0646 0306 ; MA # ( ‎ݩ‎ → ‎ن̆‎ ) ARABIC LETTER NOON WITH SMALL V → ARABIC LETTER NOON, COMBINING BREVE # →‎نٚ‎→ + +FCD6 ; 0646 006F ; MA # ( ‎ﳖ‎ → ‎نo‎ ) ARABIC LIGATURE NOON WITH HEH INITIAL FORM → ARABIC LETTER NOON, LATIN SMALL LETTER O # →‎نه‎→ +FCEF ; 0646 006F ; MA # ( ‎ﳯ‎ → ‎نo‎ ) ARABIC LIGATURE NOON WITH HEH MEDIAL FORM → ARABIC LETTER NOON, LATIN SMALL LETTER O # →‎نه‎→ + +FDB8 ; 0646 062C 062D ; MA # ( ‎ﶸ‎ → ‎نجح‎ ) ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM → ARABIC LETTER NOON, ARABIC LETTER JEEM, ARABIC LETTER HAH # +FDBD ; 0646 062C 062D ; MA # ( ‎ﶽ‎ → ‎نجح‎ ) ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER JEEM, ARABIC LETTER HAH # + +FD98 ; 0646 062C 0645 ; MA # ( ‎ﶘ‎ → ‎نجم‎ ) ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM → ARABIC LETTER NOON, ARABIC LETTER JEEM, ARABIC LETTER MEEM # +FD97 ; 0646 062C 0645 ; MA # ( ‎ﶗ‎ → ‎نجم‎ ) ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER JEEM, ARABIC LETTER MEEM # + +FD99 ; 0646 062C 0649 ; MA # ( ‎ﶙ‎ → ‎نجى‎ ) ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA # +FDC7 ; 0646 062C 0649 ; MA # ( ‎ﷇ‎ → ‎نجى‎ ) ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA # →‎نجي‎→ + +FCD3 ; 0646 062D ; MA # ( ‎ﳓ‎ → ‎نح‎ ) ARABIC LIGATURE NOON WITH HAH INITIAL FORM → ARABIC LETTER NOON, ARABIC LETTER HAH # +FC4C ; 0646 062D ; MA # ( ‎ﱌ‎ → ‎نح‎ ) ARABIC LIGATURE NOON WITH HAH ISOLATED FORM → ARABIC LETTER NOON, ARABIC LETTER HAH # + +FD95 ; 0646 062D 0645 ; MA # ( ‎ﶕ‎ → ‎نحم‎ ) ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM → ARABIC LETTER NOON, ARABIC LETTER HAH, ARABIC LETTER MEEM # + +FD96 ; 0646 062D 0649 ; MA # ( ‎ﶖ‎ → ‎نحى‎ ) ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA # +FDB3 ; 0646 062D 0649 ; MA # ( ‎ﶳ‎ → ‎نحى‎ ) ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA # →‎نحي‎→ + +FCD4 ; 0646 062E ; MA # ( ‎ﳔ‎ → ‎نخ‎ ) ARABIC LIGATURE NOON WITH KHAH INITIAL FORM → ARABIC LETTER NOON, ARABIC LETTER KHAH # +FC4D ; 0646 062E ; MA # ( ‎ﱍ‎ → ‎نخ‎ ) ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM → ARABIC LETTER NOON, ARABIC LETTER KHAH # + +FC8A ; 0646 0631 ; MA # ( ‎ﲊ‎ → ‎نر‎ ) ARABIC LIGATURE NOON WITH REH FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER REH # + +FC8B ; 0646 0632 ; MA # ( ‎ﲋ‎ → ‎نز‎ ) ARABIC LIGATURE NOON WITH ZAIN FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER ZAIN # + +FCD5 ; 0646 0645 ; MA # ( ‎ﳕ‎ → ‎نم‎ ) ARABIC LIGATURE NOON WITH MEEM INITIAL FORM → ARABIC LETTER NOON, ARABIC LETTER MEEM # +FCEE ; 0646 0645 ; MA # ( ‎ﳮ‎ → ‎نم‎ ) ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM → ARABIC LETTER NOON, ARABIC LETTER MEEM # +FC8C ; 0646 0645 ; MA # ( ‎ﲌ‎ → ‎نم‎ ) ARABIC LIGATURE NOON WITH MEEM FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER MEEM # +FC4E ; 0646 0645 ; MA # ( ‎ﱎ‎ → ‎نم‎ ) ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM → ARABIC LETTER NOON, ARABIC LETTER MEEM # + +FD9B ; 0646 0645 0649 ; MA # ( ‎ﶛ‎ → ‎نمى‎ ) ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # +FD9A ; 0646 0645 0649 ; MA # ( ‎ﶚ‎ → ‎نمى‎ ) ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # →‎نمي‎→ + +FC8D ; 0646 0646 ; MA # ( ‎ﲍ‎ → ‎نن‎ ) ARABIC LIGATURE NOON WITH NOON FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER NOON # + +FC8E ; 0646 0649 ; MA # ( ‎ﲎ‎ → ‎نى‎ ) ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER ALEF MAKSURA # +FC4F ; 0646 0649 ; MA # ( ‎ﱏ‎ → ‎نى‎ ) ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER NOON, ARABIC LETTER ALEF MAKSURA # +FC8F ; 0646 0649 ; MA # ( ‎ﲏ‎ → ‎نى‎ ) ARABIC LIGATURE NOON WITH YEH FINAL FORM → ARABIC LETTER NOON, ARABIC LETTER ALEF MAKSURA # →‎ني‎→ +FC50 ; 0646 0649 ; MA # ( ‎ﱐ‎ → ‎نى‎ ) ARABIC LIGATURE NOON WITH YEH ISOLATED FORM → ARABIC LETTER NOON, ARABIC LETTER ALEF MAKSURA # →‎ني‎→ + +06C2 ; 06C0 ; MA # ( ‎ۂ‎ → ‎ۀ‎ ) ARABIC LETTER HEH GOAL WITH HAMZA ABOVE → ARABIC LETTER HEH WITH YEH ABOVE # →‎ﮤ‎→ +FBA5 ; 06C0 ; MA # ( ‎ﮥ‎ → ‎ۀ‎ ) ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM → ARABIC LETTER HEH WITH YEH ABOVE # +FBA4 ; 06C0 ; MA # ( ‎ﮤ‎ → ‎ۀ‎ ) ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM → ARABIC LETTER HEH WITH YEH ABOVE # + +102E4 ; 0648 ; MA #* ( 𐋤 → ‎و‎ ) COPTIC EPACT DIGIT FOUR → ARABIC LETTER WAW # +1EE05 ; 0648 ; MA # ( ‎𞸅‎ → ‎و‎ ) ARABIC MATHEMATICAL WAW → ARABIC LETTER WAW # +1EE85 ; 0648 ; MA # ( ‎𞺅‎ → ‎و‎ ) ARABIC MATHEMATICAL LOOPED WAW → ARABIC LETTER WAW # +1EEA5 ; 0648 ; MA # ( ‎𞺥‎ → ‎و‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK WAW → ARABIC LETTER WAW # +FEEE ; 0648 ; MA # ( ‎ﻮ‎ → ‎و‎ ) ARABIC LETTER WAW FINAL FORM → ARABIC LETTER WAW # +FEED ; 0648 ; MA # ( ‎ﻭ‎ → ‎و‎ ) ARABIC LETTER WAW ISOLATED FORM → ARABIC LETTER WAW # +08B1 ; 0648 ; MA # ( ‎ࢱ‎ → ‎و‎ ) ARABIC LETTER STRAIGHT WAW → ARABIC LETTER WAW # + +06CB ; 0648 06DB ; MA # ( ‎ۋ‎ → ‎وۛ‎ ) ARABIC LETTER VE → ARABIC LETTER WAW, ARABIC SMALL HIGH THREE DOTS # +FBDF ; 0648 06DB ; MA # ( ‎ﯟ‎ → ‎وۛ‎ ) ARABIC LETTER VE FINAL FORM → ARABIC LETTER WAW, ARABIC SMALL HIGH THREE DOTS # →‎ۋ‎→ +FBDE ; 0648 06DB ; MA # ( ‎ﯞ‎ → ‎وۛ‎ ) ARABIC LETTER VE ISOLATED FORM → ARABIC LETTER WAW, ARABIC SMALL HIGH THREE DOTS # →‎ۋ‎→ + +06C7 ; 0648 0313 ; MA # ( ‎ۇ‎ → ‎و̓‎ ) ARABIC LETTER U → ARABIC LETTER WAW, COMBINING COMMA ABOVE # →‎وُ‎→ +FBD8 ; 0648 0313 ; MA # ( ‎ﯘ‎ → ‎و̓‎ ) ARABIC LETTER U FINAL FORM → ARABIC LETTER WAW, COMBINING COMMA ABOVE # →‎ۇ‎→→‎وُ‎→ +FBD7 ; 0648 0313 ; MA # ( ‎ﯗ‎ → ‎و̓‎ ) ARABIC LETTER U ISOLATED FORM → ARABIC LETTER WAW, COMBINING COMMA ABOVE # →‎ۇ‎→→‎وُ‎→ + +06C6 ; 0648 0306 ; MA # ( ‎ۆ‎ → ‎و̆‎ ) ARABIC LETTER OE → ARABIC LETTER WAW, COMBINING BREVE # →‎وٚ‎→ +FBDA ; 0648 0306 ; MA # ( ‎ﯚ‎ → ‎و̆‎ ) ARABIC LETTER OE FINAL FORM → ARABIC LETTER WAW, COMBINING BREVE # →‎ۆ‎→→‎وٚ‎→ +FBD9 ; 0648 0306 ; MA # ( ‎ﯙ‎ → ‎و̆‎ ) ARABIC LETTER OE ISOLATED FORM → ARABIC LETTER WAW, COMBINING BREVE # →‎ۆ‎→→‎وٚ‎→ + +06C9 ; 0648 0302 ; MA # ( ‎ۉ‎ → ‎و̂‎ ) ARABIC LETTER KIRGHIZ YU → ARABIC LETTER WAW, COMBINING CIRCUMFLEX ACCENT # →‎وٛ‎→ +FBE3 ; 0648 0302 ; MA # ( ‎ﯣ‎ → ‎و̂‎ ) ARABIC LETTER KIRGHIZ YU FINAL FORM → ARABIC LETTER WAW, COMBINING CIRCUMFLEX ACCENT # →‎ۉ‎→→‎وٛ‎→ +FBE2 ; 0648 0302 ; MA # ( ‎ﯢ‎ → ‎و̂‎ ) ARABIC LETTER KIRGHIZ YU ISOLATED FORM → ARABIC LETTER WAW, COMBINING CIRCUMFLEX ACCENT # →‎ۉ‎→→‎وٛ‎→ + +06C8 ; 0648 0670 ; MA # ( ‎ۈ‎ → ‎وٰ‎ ) ARABIC LETTER YU → ARABIC LETTER WAW, ARABIC LETTER SUPERSCRIPT ALEF # +FBDC ; 0648 0670 ; MA # ( ‎ﯜ‎ → ‎وٰ‎ ) ARABIC LETTER YU FINAL FORM → ARABIC LETTER WAW, ARABIC LETTER SUPERSCRIPT ALEF # →‎ۈ‎→ +FBDB ; 0648 0670 ; MA # ( ‎ﯛ‎ → ‎وٰ‎ ) ARABIC LETTER YU ISOLATED FORM → ARABIC LETTER WAW, ARABIC LETTER SUPERSCRIPT ALEF # →‎ۈ‎→ + +0676 ; 0648 0674 ; MA # ( ‎ٶ‎ → ‎وٴ‎ ) ARABIC LETTER HIGH HAMZA WAW → ARABIC LETTER WAW, ARABIC LETTER HIGH HAMZA # +0624 ; 0648 0674 ; MA # ( ‎ؤ‎ → ‎وٴ‎ ) ARABIC LETTER WAW WITH HAMZA ABOVE → ARABIC LETTER WAW, ARABIC LETTER HIGH HAMZA # →‎ٶ‎→ +FE86 ; 0648 0674 ; MA # ( ‎ﺆ‎ → ‎وٴ‎ ) ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM → ARABIC LETTER WAW, ARABIC LETTER HIGH HAMZA # →‎ٶ‎→ +FE85 ; 0648 0674 ; MA # ( ‎ﺅ‎ → ‎وٴ‎ ) ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM → ARABIC LETTER WAW, ARABIC LETTER HIGH HAMZA # →‎ٶ‎→ + +0677 ; 0648 0313 0674 ; MA # ( ‎ٷ‎ → ‎و̓ٴ‎ ) ARABIC LETTER U WITH HAMZA ABOVE → ARABIC LETTER WAW, COMBINING COMMA ABOVE, ARABIC LETTER HIGH HAMZA # →‎ۇٴ‎→ +FBDD ; 0648 0313 0674 ; MA # ( ‎ﯝ‎ → ‎و̓ٴ‎ ) ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM → ARABIC LETTER WAW, COMBINING COMMA ABOVE, ARABIC LETTER HIGH HAMZA # →‎ۇٴ‎→ + +FDF8 ; 0648 0633 0644 0645 ; MA # ( ‎ﷸ‎ → ‎وسلم‎ ) ARABIC LIGATURE WASALLAM ISOLATED FORM → ARABIC LETTER WAW, ARABIC LETTER SEEN, ARABIC LETTER LAM, ARABIC LETTER MEEM # + +FBE1 ; 06C5 ; MA # ( ‎ﯡ‎ → ‎ۅ‎ ) ARABIC LETTER KIRGHIZ OE FINAL FORM → ARABIC LETTER KIRGHIZ OE # +FBE0 ; 06C5 ; MA # ( ‎ﯠ‎ → ‎ۅ‎ ) ARABIC LETTER KIRGHIZ OE ISOLATED FORM → ARABIC LETTER KIRGHIZ OE # + +066E ; 0649 ; MA # ( ‎ٮ‎ → ‎ى‎ ) ARABIC LETTER DOTLESS BEH → ARABIC LETTER ALEF MAKSURA # +1EE1C ; 0649 ; MA # ( ‎𞸜‎ → ‎ى‎ ) ARABIC MATHEMATICAL DOTLESS BEH → ARABIC LETTER ALEF MAKSURA # →‎ٮ‎→ +1EE7C ; 0649 ; MA # ( ‎𞹼‎ → ‎ى‎ ) ARABIC MATHEMATICAL STRETCHED DOTLESS BEH → ARABIC LETTER ALEF MAKSURA # →‎ٮ‎→ +06BA ; 0649 ; MA # ( ‎ں‎ → ‎ى‎ ) ARABIC LETTER NOON GHUNNA → ARABIC LETTER ALEF MAKSURA # +1EE1D ; 0649 ; MA # ( ‎𞸝‎ → ‎ى‎ ) ARABIC MATHEMATICAL DOTLESS NOON → ARABIC LETTER ALEF MAKSURA # →‎ں‎→ +1EE5D ; 0649 ; MA # ( ‎𞹝‎ → ‎ى‎ ) ARABIC MATHEMATICAL TAILED DOTLESS NOON → ARABIC LETTER ALEF MAKSURA # →‎ں‎→ +FB9F ; 0649 ; MA # ( ‎ﮟ‎ → ‎ى‎ ) ARABIC LETTER NOON GHUNNA FINAL FORM → ARABIC LETTER ALEF MAKSURA # →‎ں‎→ +FB9E ; 0649 ; MA # ( ‎ﮞ‎ → ‎ى‎ ) ARABIC LETTER NOON GHUNNA ISOLATED FORM → ARABIC LETTER ALEF MAKSURA # →‎ں‎→ +08BD ; 0649 ; MA # ( ‎ࢽ‎ → ‎ى‎ ) ARABIC LETTER AFRICAN NOON → ARABIC LETTER ALEF MAKSURA # →‎ں‎→ +FBE8 ; 0649 ; MA # ( ‎ﯨ‎ → ‎ى‎ ) ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM → ARABIC LETTER ALEF MAKSURA # +FBE9 ; 0649 ; MA # ( ‎ﯩ‎ → ‎ى‎ ) ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM → ARABIC LETTER ALEF MAKSURA # +FEF0 ; 0649 ; MA # ( ‎ﻰ‎ → ‎ى‎ ) ARABIC LETTER ALEF MAKSURA FINAL FORM → ARABIC LETTER ALEF MAKSURA # +FEEF ; 0649 ; MA # ( ‎ﻯ‎ → ‎ى‎ ) ARABIC LETTER ALEF MAKSURA ISOLATED FORM → ARABIC LETTER ALEF MAKSURA # +064A ; 0649 ; MA # ( ‎ي‎ → ‎ى‎ ) ARABIC LETTER YEH → ARABIC LETTER ALEF MAKSURA # +1EE09 ; 0649 ; MA # ( ‎𞸉‎ → ‎ى‎ ) ARABIC MATHEMATICAL YEH → ARABIC LETTER ALEF MAKSURA # →‎ي‎→ +1EE29 ; 0649 ; MA # ( ‎𞸩‎ → ‎ى‎ ) ARABIC MATHEMATICAL INITIAL YEH → ARABIC LETTER ALEF MAKSURA # →‎ي‎→ +1EE49 ; 0649 ; MA # ( ‎𞹉‎ → ‎ى‎ ) ARABIC MATHEMATICAL TAILED YEH → ARABIC LETTER ALEF MAKSURA # →‎ي‎→ +1EE69 ; 0649 ; MA # ( ‎𞹩‎ → ‎ى‎ ) ARABIC MATHEMATICAL STRETCHED YEH → ARABIC LETTER ALEF MAKSURA # →‎ي‎→ +1EE89 ; 0649 ; MA # ( ‎𞺉‎ → ‎ى‎ ) ARABIC MATHEMATICAL LOOPED YEH → ARABIC LETTER ALEF MAKSURA # →‎ي‎→ +1EEA9 ; 0649 ; MA # ( ‎𞺩‎ → ‎ى‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK YEH → ARABIC LETTER ALEF MAKSURA # →‎ي‎→ +FEF3 ; 0649 ; MA # ( ‎ﻳ‎ → ‎ى‎ ) ARABIC LETTER YEH INITIAL FORM → ARABIC LETTER ALEF MAKSURA # →‎ي‎→ +FEF4 ; 0649 ; MA # ( ‎ﻴ‎ → ‎ى‎ ) ARABIC LETTER YEH MEDIAL FORM → ARABIC LETTER ALEF MAKSURA # →‎ي‎→ +FEF2 ; 0649 ; MA # ( ‎ﻲ‎ → ‎ى‎ ) ARABIC LETTER YEH FINAL FORM → ARABIC LETTER ALEF MAKSURA # →‎ي‎→ +FEF1 ; 0649 ; MA # ( ‎ﻱ‎ → ‎ى‎ ) ARABIC LETTER YEH ISOLATED FORM → ARABIC LETTER ALEF MAKSURA # →‎ي‎→ +06CC ; 0649 ; MA # ( ‎ی‎ → ‎ى‎ ) ARABIC LETTER FARSI YEH → ARABIC LETTER ALEF MAKSURA # +FBFE ; 0649 ; MA # ( ‎ﯾ‎ → ‎ى‎ ) ARABIC LETTER FARSI YEH INITIAL FORM → ARABIC LETTER ALEF MAKSURA # →‎ی‎→ +FBFF ; 0649 ; MA # ( ‎ﯿ‎ → ‎ى‎ ) ARABIC LETTER FARSI YEH MEDIAL FORM → ARABIC LETTER ALEF MAKSURA # →‎ی‎→ +FBFD ; 0649 ; MA # ( ‎ﯽ‎ → ‎ى‎ ) ARABIC LETTER FARSI YEH FINAL FORM → ARABIC LETTER ALEF MAKSURA # →‎ﻰ‎→ +FBFC ; 0649 ; MA # ( ‎ﯼ‎ → ‎ى‎ ) ARABIC LETTER FARSI YEH ISOLATED FORM → ARABIC LETTER ALEF MAKSURA # +06D2 ; 0649 ; MA # ( ‎ے‎ → ‎ى‎ ) ARABIC LETTER YEH BARREE → ARABIC LETTER ALEF MAKSURA # →‎ي‎→ +FBAF ; 0649 ; MA # ( ‎ﮯ‎ → ‎ى‎ ) ARABIC LETTER YEH BARREE FINAL FORM → ARABIC LETTER ALEF MAKSURA # →‎ے‎→→‎ي‎→ +FBAE ; 0649 ; MA # ( ‎ﮮ‎ → ‎ى‎ ) ARABIC LETTER YEH BARREE ISOLATED FORM → ARABIC LETTER ALEF MAKSURA # →‎ے‎→→‎ي‎→ + +0679 ; 0649 0615 ; MA # ( ‎ٹ‎ → ‎ىؕ‎ ) ARABIC LETTER TTEH → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH # →‎ٮؕ‎→ +FB68 ; 0649 0615 ; MA # ( ‎ﭨ‎ → ‎ىؕ‎ ) ARABIC LETTER TTEH INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH # →‎ٹ‎→→‎ٮؕ‎→ +FB69 ; 0649 0615 ; MA # ( ‎ﭩ‎ → ‎ىؕ‎ ) ARABIC LETTER TTEH MEDIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH # →‎ٹ‎→→‎ٮؕ‎→ +FB67 ; 0649 0615 ; MA # ( ‎ﭧ‎ → ‎ىؕ‎ ) ARABIC LETTER TTEH FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH # →‎ٹ‎→→‎ٮؕ‎→ +FB66 ; 0649 0615 ; MA # ( ‎ﭦ‎ → ‎ىؕ‎ ) ARABIC LETTER TTEH ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH # →‎ٹ‎→→‎ٮؕ‎→ +06BB ; 0649 0615 ; MA # ( ‎ڻ‎ → ‎ىؕ‎ ) ARABIC LETTER RNOON → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH # →‎ںؕ‎→ +FBA2 ; 0649 0615 ; MA # ( ‎ﮢ‎ → ‎ىؕ‎ ) ARABIC LETTER RNOON INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH # →‎ڻ‎→→‎ںؕ‎→ +FBA3 ; 0649 0615 ; MA # ( ‎ﮣ‎ → ‎ىؕ‎ ) ARABIC LETTER RNOON MEDIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH # →‎ڻ‎→→‎ںؕ‎→ +FBA1 ; 0649 0615 ; MA # ( ‎ﮡ‎ → ‎ىؕ‎ ) ARABIC LETTER RNOON FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH # →‎ڻ‎→→‎ںؕ‎→ +FBA0 ; 0649 0615 ; MA # ( ‎ﮠ‎ → ‎ىؕ‎ ) ARABIC LETTER RNOON ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH TAH # →‎ڻ‎→→‎ںؕ‎→ + +067E ; 0649 06DB ; MA # ( ‎پ‎ → ‎ىۛ‎ ) ARABIC LETTER PEH → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →‎ڽ‎→→‎ںۛ‎→ +FB58 ; 0649 06DB ; MA # ( ‎ﭘ‎ → ‎ىۛ‎ ) ARABIC LETTER PEH INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →‎پ‎→→‎ڽ‎→→‎ںۛ‎→ +FB59 ; 0649 06DB ; MA # ( ‎ﭙ‎ → ‎ىۛ‎ ) ARABIC LETTER PEH MEDIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →‎پ‎→→‎ڽ‎→→‎ںۛ‎→ +FB57 ; 0649 06DB ; MA # ( ‎ﭗ‎ → ‎ىۛ‎ ) ARABIC LETTER PEH FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →‎پ‎→→‎ڽ‎→→‎ںۛ‎→ +FB56 ; 0649 06DB ; MA # ( ‎ﭖ‎ → ‎ىۛ‎ ) ARABIC LETTER PEH ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →‎پ‎→→‎ڽ‎→→‎ںۛ‎→ +062B ; 0649 06DB ; MA # ( ‎ث‎ → ‎ىۛ‎ ) ARABIC LETTER THEH → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →‎ٮۛ‎→ +1EE16 ; 0649 06DB ; MA # ( ‎𞸖‎ → ‎ىۛ‎ ) ARABIC MATHEMATICAL THEH → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →‎ث‎→→‎ٮۛ‎→ +1EE36 ; 0649 06DB ; MA # ( ‎𞸶‎ → ‎ىۛ‎ ) ARABIC MATHEMATICAL INITIAL THEH → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →‎ث‎→→‎ٮۛ‎→ +1EE76 ; 0649 06DB ; MA # ( ‎𞹶‎ → ‎ىۛ‎ ) ARABIC MATHEMATICAL STRETCHED THEH → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →‎ث‎→→‎ٮۛ‎→ +1EE96 ; 0649 06DB ; MA # ( ‎𞺖‎ → ‎ىۛ‎ ) ARABIC MATHEMATICAL LOOPED THEH → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →‎ث‎→→‎ٮۛ‎→ +1EEB6 ; 0649 06DB ; MA # ( ‎𞺶‎ → ‎ىۛ‎ ) ARABIC MATHEMATICAL DOUBLE-STRUCK THEH → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →‎ث‎→→‎ٮۛ‎→ +FE9B ; 0649 06DB ; MA # ( ‎ﺛ‎ → ‎ىۛ‎ ) ARABIC LETTER THEH INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →‎ث‎→→‎ٮۛ‎→ +FE9C ; 0649 06DB ; MA # ( ‎ﺜ‎ → ‎ىۛ‎ ) ARABIC LETTER THEH MEDIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →‎ث‎→→‎ٮۛ‎→ +FE9A ; 0649 06DB ; MA # ( ‎ﺚ‎ → ‎ىۛ‎ ) ARABIC LETTER THEH FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →‎ث‎→→‎ٮۛ‎→ +FE99 ; 0649 06DB ; MA # ( ‎ﺙ‎ → ‎ىۛ‎ ) ARABIC LETTER THEH ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →‎ث‎→→‎ٮۛ‎→ +06BD ; 0649 06DB ; MA # ( ‎ڽ‎ → ‎ىۛ‎ ) ARABIC LETTER NOON WITH THREE DOTS ABOVE → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →‎ںۛ‎→ +06D1 ; 0649 06DB ; MA # ( ‎ۑ‎ → ‎ىۛ‎ ) ARABIC LETTER YEH WITH THREE DOTS BELOW → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →‎پ‎→→‎ڽ‎→→‎ںۛ‎→ +063F ; 0649 06DB ; MA # ( ‎ؿ‎ → ‎ىۛ‎ ) ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS # →‎یۛ‎→ + +08B7 ; 0649 06DB 06E2 ; MA # ( ‎ࢷ‎ → ‎ىۛۢ‎ ) ARABIC LETTER PEH WITH SMALL MEEM ABOVE → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC SMALL HIGH MEEM ISOLATED FORM # →‎پۢ‎→ + +0756 ; 0649 0306 ; MA # ( ‎ݖ‎ → ‎ى̆‎ ) ARABIC LETTER BEH WITH SMALL V → ARABIC LETTER ALEF MAKSURA, COMBINING BREVE # →‎ٮٚ‎→ +06CE ; 0649 0306 ; MA # ( ‎ێ‎ → ‎ى̆‎ ) ARABIC LETTER YEH WITH SMALL V → ARABIC LETTER ALEF MAKSURA, COMBINING BREVE # →‎یٚ‎→ + +08BA ; 0649 0306 0307 ; MA # ( ‎ࢺ‎ → ‎ى̆̇‎ ) ARABIC LETTER YEH WITH TWO DOTS BELOW AND SMALL NOON ABOVE → ARABIC LETTER ALEF MAKSURA, COMBINING BREVE, COMBINING DOT ABOVE # →‎يۨ‎→ + +063D ; 0649 0302 ; MA # ( ‎ؽ‎ → ‎ى̂‎ ) ARABIC LETTER FARSI YEH WITH INVERTED V → ARABIC LETTER ALEF MAKSURA, COMBINING CIRCUMFLEX ACCENT # →‎یٛ‎→ + +08A8 ; 0649 0654 ; MA # ( ‎ࢨ‎ → ‎ىٔ‎ ) ARABIC LETTER YEH WITH TWO DOTS BELOW AND HAMZA ABOVE → ARABIC LETTER ALEF MAKSURA, ARABIC HAMZA ABOVE # →‎ئ‎→ + +FC90 ; 0649 0670 ; MA # ( ‎ﲐ‎ → ‎ىٰ‎ ) ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER SUPERSCRIPT ALEF # +FC5D ; 0649 0670 ; MA # ( ‎ﱝ‎ → ‎ىٰ‎ ) ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER SUPERSCRIPT ALEF # + +FCDE ; 0649 006F ; MA # ( ‎ﳞ‎ → ‎ىo‎ ) ARABIC LIGATURE YEH WITH HEH INITIAL FORM → ARABIC LETTER ALEF MAKSURA, LATIN SMALL LETTER O # →‎يه‎→ +FCF1 ; 0649 006F ; MA # ( ‎ﳱ‎ → ‎ىo‎ ) ARABIC LIGATURE YEH WITH HEH MEDIAL FORM → ARABIC LETTER ALEF MAKSURA, LATIN SMALL LETTER O # →‎يه‎→ + +FCE6 ; 0649 06DB 006F ; MA # ( ‎ﳦ‎ → ‎ىۛo‎ ) ARABIC LIGATURE THEH WITH HEH MEDIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, LATIN SMALL LETTER O # →‎ثه‎→ + +0678 ; 0649 0674 ; MA # ( ‎ٸ‎ → ‎ىٴ‎ ) ARABIC LETTER HIGH HAMZA YEH → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA # →‎يٴ‎→ +0626 ; 0649 0674 ; MA # ( ‎ئ‎ → ‎ىٴ‎ ) ARABIC LETTER YEH WITH HAMZA ABOVE → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA # →‎ٸ‎→→‎يٴ‎→ +FE8B ; 0649 0674 ; MA # ( ‎ﺋ‎ → ‎ىٴ‎ ) ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA # →‎ئ‎→→‎ٸ‎→→‎يٴ‎→ +FE8C ; 0649 0674 ; MA # ( ‎ﺌ‎ → ‎ىٴ‎ ) ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA # →‎ئ‎→→‎ٸ‎→→‎يٴ‎→ +FE8A ; 0649 0674 ; MA # ( ‎ﺊ‎ → ‎ىٴ‎ ) ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA # →‎ئ‎→→‎ٸ‎→→‎يٴ‎→ +FE89 ; 0649 0674 ; MA # ( ‎ﺉ‎ → ‎ىٴ‎ ) ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA # →‎ٸ‎→→‎يٴ‎→ + +FBEB ; 0649 0674 006C ; MA # ( ‎ﯫ‎ → ‎ىٴl‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, LATIN SMALL LETTER L # →‎ئا‎→ +FBEA ; 0649 0674 006C ; MA # ( ‎ﯪ‎ → ‎ىٴl‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, LATIN SMALL LETTER L # →‎ئا‎→ + +FC9B ; 0649 0674 006F ; MA # ( ‎ﲛ‎ → ‎ىٴo‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, LATIN SMALL LETTER O # →‎ئه‎→ +FCE0 ; 0649 0674 006F ; MA # ( ‎ﳠ‎ → ‎ىٴo‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, LATIN SMALL LETTER O # →‎ئه‎→ +FBED ; 0649 0674 006F ; MA # ( ‎ﯭ‎ → ‎ىٴo‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, LATIN SMALL LETTER O # →‎ئە‎→→‎ٴىo‎→→‎ئه‎→ +FBEC ; 0649 0674 006F ; MA # ( ‎ﯬ‎ → ‎ىٴo‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, LATIN SMALL LETTER O # →‎ئە‎→→‎ٴىo‎→→‎ئه‎→ + +FBF8 ; 0649 0674 067B ; MA # ( ‎ﯸ‎ → ‎ىٴٻ‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER BEEH # →‎ئې‎→ +FBF7 ; 0649 0674 067B ; MA # ( ‎ﯷ‎ → ‎ىٴٻ‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER BEEH # →‎ئې‎→ +FBF6 ; 0649 0674 067B ; MA # ( ‎ﯶ‎ → ‎ىٴٻ‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER BEEH # →‎ئې‎→ + +FC97 ; 0649 0674 062C ; MA # ( ‎ﲗ‎ → ‎ىٴج‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER JEEM # →‎ئج‎→ +FC00 ; 0649 0674 062C ; MA # ( ‎ﰀ‎ → ‎ىٴج‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER JEEM # →‎ئج‎→ + +FC98 ; 0649 0674 062D ; MA # ( ‎ﲘ‎ → ‎ىٴح‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER HAH # →‎ئح‎→ +FC01 ; 0649 0674 062D ; MA # ( ‎ﰁ‎ → ‎ىٴح‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER HAH # →‎ئح‎→ + +FC99 ; 0649 0674 062E ; MA # ( ‎ﲙ‎ → ‎ىٴخ‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER KHAH # →‎ئخ‎→ + +FC64 ; 0649 0674 0631 ; MA # ( ‎ﱤ‎ → ‎ىٴر‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER REH # →‎ئر‎→ + +FC65 ; 0649 0674 0632 ; MA # ( ‎ﱥ‎ → ‎ىٴز‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER ZAIN # →‎ئز‎→ + +FC9A ; 0649 0674 0645 ; MA # ( ‎ﲚ‎ → ‎ىٴم‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER MEEM # →‎ئم‎→ +FCDF ; 0649 0674 0645 ; MA # ( ‎ﳟ‎ → ‎ىٴم‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER MEEM # →‎ئم‎→ +FC66 ; 0649 0674 0645 ; MA # ( ‎ﱦ‎ → ‎ىٴم‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER MEEM # →‎ئم‎→ +FC02 ; 0649 0674 0645 ; MA # ( ‎ﰂ‎ → ‎ىٴم‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER MEEM # →‎ئم‎→ + +FC67 ; 0649 0674 0646 ; MA # ( ‎ﱧ‎ → ‎ىٴن‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER NOON # →‎ئن‎→ + +FBEF ; 0649 0674 0648 ; MA # ( ‎ﯯ‎ → ‎ىٴو‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER WAW # →‎ئو‎→ +FBEE ; 0649 0674 0648 ; MA # ( ‎ﯮ‎ → ‎ىٴو‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER WAW # →‎ئو‎→ + +FBF1 ; 0649 0674 0648 0313 ; MA # ( ‎ﯱ‎ → ‎ىٴو̓‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER WAW, COMBINING COMMA ABOVE # →‎ئۇ‎→ +FBF0 ; 0649 0674 0648 0313 ; MA # ( ‎ﯰ‎ → ‎ىٴو̓‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER WAW, COMBINING COMMA ABOVE # →‎ئۇ‎→ + +FBF3 ; 0649 0674 0648 0306 ; MA # ( ‎ﯳ‎ → ‎ىٴو̆‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER WAW, COMBINING BREVE # →‎ئۆ‎→ +FBF2 ; 0649 0674 0648 0306 ; MA # ( ‎ﯲ‎ → ‎ىٴو̆‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER WAW, COMBINING BREVE # →‎ئۆ‎→ + +FBF5 ; 0649 0674 0648 0670 ; MA # ( ‎ﯵ‎ → ‎ىٴوٰ‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER WAW, ARABIC LETTER SUPERSCRIPT ALEF # →‎ئۈ‎→ +FBF4 ; 0649 0674 0648 0670 ; MA # ( ‎ﯴ‎ → ‎ىٴوٰ‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER WAW, ARABIC LETTER SUPERSCRIPT ALEF # →‎ئۈ‎→ + +FBFB ; 0649 0674 0649 ; MA # ( ‎ﯻ‎ → ‎ىٴى‎ ) ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA # →‎ئى‎→ +FBFA ; 0649 0674 0649 ; MA # ( ‎ﯺ‎ → ‎ىٴى‎ ) ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA # →‎ئى‎→ +FC68 ; 0649 0674 0649 ; MA # ( ‎ﱨ‎ → ‎ىٴى‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA # →‎ئى‎→ +FBF9 ; 0649 0674 0649 ; MA # ( ‎ﯹ‎ → ‎ىٴى‎ ) ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA # →‎ئى‎→ +FC03 ; 0649 0674 0649 ; MA # ( ‎ﰃ‎ → ‎ىٴى‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA # →‎ئى‎→ +FC69 ; 0649 0674 0649 ; MA # ( ‎ﱩ‎ → ‎ىٴى‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA # →‎ئي‎→→‎ٴىى‎→→‎ئى‎→ +FC04 ; 0649 0674 0649 ; MA # ( ‎ﰄ‎ → ‎ىٴى‎ ) ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HIGH HAMZA, ARABIC LETTER ALEF MAKSURA # →‎ئي‎→→‎ٴىى‎→→‎ئى‎→ + +FCDA ; 0649 062C ; MA # ( ‎ﳚ‎ → ‎ىج‎ ) ARABIC LIGATURE YEH WITH JEEM INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER JEEM # →‎يج‎→ +FC55 ; 0649 062C ; MA # ( ‎ﱕ‎ → ‎ىج‎ ) ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER JEEM # →‎يج‎→ + +FC11 ; 0649 06DB 062C ; MA # ( ‎ﰑ‎ → ‎ىۛج‎ ) ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER JEEM # →‎ثج‎→ + +FDAF ; 0649 062C 0649 ; MA # ( ‎ﶯ‎ → ‎ىجى‎ ) ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER JEEM, ARABIC LETTER ALEF MAKSURA # →‎يجي‎→ + +FCDB ; 0649 062D ; MA # ( ‎ﳛ‎ → ‎ىح‎ ) ARABIC LIGATURE YEH WITH HAH INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HAH # →‎يح‎→ +FC56 ; 0649 062D ; MA # ( ‎ﱖ‎ → ‎ىح‎ ) ARABIC LIGATURE YEH WITH HAH ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HAH # →‎يح‎→ + +FDAE ; 0649 062D 0649 ; MA # ( ‎ﶮ‎ → ‎ىحى‎ ) ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER HAH, ARABIC LETTER ALEF MAKSURA # →‎يحي‎→ + +FCDC ; 0649 062E ; MA # ( ‎ﳜ‎ → ‎ىخ‎ ) ARABIC LIGATURE YEH WITH KHAH INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER KHAH # →‎يخ‎→ +FC57 ; 0649 062E ; MA # ( ‎ﱗ‎ → ‎ىخ‎ ) ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER KHAH # →‎يخ‎→ + +FC91 ; 0649 0631 ; MA # ( ‎ﲑ‎ → ‎ىر‎ ) ARABIC LIGATURE YEH WITH REH FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER REH # →‎ير‎→ + +FC76 ; 0649 06DB 0631 ; MA # ( ‎ﱶ‎ → ‎ىۛر‎ ) ARABIC LIGATURE THEH WITH REH FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER REH # →‎ثر‎→ + +FC92 ; 0649 0632 ; MA # ( ‎ﲒ‎ → ‎ىز‎ ) ARABIC LIGATURE YEH WITH ZAIN FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER ZAIN # →‎يز‎→ + +FC77 ; 0649 06DB 0632 ; MA # ( ‎ﱷ‎ → ‎ىۛز‎ ) ARABIC LIGATURE THEH WITH ZAIN FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER ZAIN # →‎ثز‎→ + +FCDD ; 0649 0645 ; MA # ( ‎ﳝ‎ → ‎ىم‎ ) ARABIC LIGATURE YEH WITH MEEM INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER MEEM # →‎يم‎→ +FCF0 ; 0649 0645 ; MA # ( ‎ﳰ‎ → ‎ىم‎ ) ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER MEEM # →‎يم‎→ +FC93 ; 0649 0645 ; MA # ( ‎ﲓ‎ → ‎ىم‎ ) ARABIC LIGATURE YEH WITH MEEM FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER MEEM # →‎يم‎→ +FC58 ; 0649 0645 ; MA # ( ‎ﱘ‎ → ‎ىم‎ ) ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER MEEM # →‎يم‎→ + +FCA6 ; 0649 06DB 0645 ; MA # ( ‎ﲦ‎ → ‎ىۛم‎ ) ARABIC LIGATURE THEH WITH MEEM INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER MEEM # →‎ثم‎→ +FCE5 ; 0649 06DB 0645 ; MA # ( ‎ﳥ‎ → ‎ىۛم‎ ) ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER MEEM # →‎ثم‎→ +FC78 ; 0649 06DB 0645 ; MA # ( ‎ﱸ‎ → ‎ىۛم‎ ) ARABIC LIGATURE THEH WITH MEEM FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER MEEM # →‎ثم‎→ +FC12 ; 0649 06DB 0645 ; MA # ( ‎ﰒ‎ → ‎ىۛم‎ ) ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER MEEM # →‎ثم‎→ + +FD9D ; 0649 0645 0645 ; MA # ( ‎ﶝ‎ → ‎ىمم‎ ) ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER MEEM, ARABIC LETTER MEEM # →‎يمم‎→ +FD9C ; 0649 0645 0645 ; MA # ( ‎ﶜ‎ → ‎ىمم‎ ) ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER MEEM, ARABIC LETTER MEEM # →‎يمم‎→ + +FDB0 ; 0649 0645 0649 ; MA # ( ‎ﶰ‎ → ‎ىمى‎ ) ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER MEEM, ARABIC LETTER ALEF MAKSURA # →‎يمي‎→ + +FC94 ; 0649 0646 ; MA # ( ‎ﲔ‎ → ‎ىن‎ ) ARABIC LIGATURE YEH WITH NOON FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER NOON # →‎ين‎→ + +FC79 ; 0649 06DB 0646 ; MA # ( ‎ﱹ‎ → ‎ىۛن‎ ) ARABIC LIGATURE THEH WITH NOON FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER NOON # →‎ثن‎→ + +FC95 ; 0649 0649 ; MA # ( ‎ﲕ‎ → ‎ىى‎ ) ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER ALEF MAKSURA # →‎يى‎→ +FC59 ; 0649 0649 ; MA # ( ‎ﱙ‎ → ‎ىى‎ ) ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER ALEF MAKSURA # →‎يى‎→ +FC96 ; 0649 0649 ; MA # ( ‎ﲖ‎ → ‎ىى‎ ) ARABIC LIGATURE YEH WITH YEH FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER ALEF MAKSURA # →‎يي‎→ +FC5A ; 0649 0649 ; MA # ( ‎ﱚ‎ → ‎ىى‎ ) ARABIC LIGATURE YEH WITH YEH ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC LETTER ALEF MAKSURA # →‎يي‎→ + +FC7A ; 0649 06DB 0649 ; MA # ( ‎ﱺ‎ → ‎ىۛى‎ ) ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER ALEF MAKSURA # →‎ثى‎→ +FC13 ; 0649 06DB 0649 ; MA # ( ‎ﰓ‎ → ‎ىۛى‎ ) ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER ALEF MAKSURA # →‎ثى‎→ +FC7B ; 0649 06DB 0649 ; MA # ( ‎ﱻ‎ → ‎ىۛى‎ ) ARABIC LIGATURE THEH WITH YEH FINAL FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER ALEF MAKSURA # →‎ثي‎→ +FC14 ; 0649 06DB 0649 ; MA # ( ‎ﰔ‎ → ‎ىۛى‎ ) ARABIC LIGATURE THEH WITH YEH ISOLATED FORM → ARABIC LETTER ALEF MAKSURA, ARABIC SMALL HIGH THREE DOTS, ARABIC LETTER ALEF MAKSURA # →‎ثي‎→ + +FBB1 ; 06D3 ; MA # ( ‎ﮱ‎ → ‎ۓ‎ ) ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM → ARABIC LETTER YEH BARREE WITH HAMZA ABOVE # +FBB0 ; 06D3 ; MA # ( ‎ﮰ‎ → ‎ۓ‎ ) ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM → ARABIC LETTER YEH BARREE WITH HAMZA ABOVE # + +102B8 ; 2D40 ; MA # ( 𐊸 → ⵀ ) CARIAN LETTER SS → TIFINAGH LETTER YAH # + +205E ; 2D42 ; MA #* ( ⁞ → ⵂ ) VERTICAL FOUR DOTS → TIFINAGH LETTER TUAREG YAH # +2E3D ; 2D42 ; MA #* ( ⸽ → ⵂ ) VERTICAL SIX DOTS → TIFINAGH LETTER TUAREG YAH # →⁞→ +2999 ; 2D42 ; MA #* ( ⦙ → ⵂ ) DOTTED FENCE → TIFINAGH LETTER TUAREG YAH # →⁞→ + +FE19 ; 2D57 ; MA #* ( ︙ → ⵗ ) PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS → TIFINAGH LETTER TUAREG YAGH # →⁝→ +205D ; 2D57 ; MA #* ( ⁝ → ⵗ ) TRICOLON → TIFINAGH LETTER TUAREG YAGH # +22EE ; 2D57 ; MA #* ( ⋮ → ⵗ ) VERTICAL ELLIPSIS → TIFINAGH LETTER TUAREG YAGH # →︙→→⁝→ + +0544 ; 1206 ; MA # ( Մ → ሆ ) ARMENIAN CAPITAL LETTER MEN → ETHIOPIC SYLLABLE HO # + +054C ; 1261 ; MA # ( Ռ → ቡ ) ARMENIAN CAPITAL LETTER RA → ETHIOPIC SYLLABLE BU # + +053B ; 12AE ; MA # ( Ի → ኮ ) ARMENIAN CAPITAL LETTER INI → ETHIOPIC SYLLABLE KO # + +054A ; 1323 ; MA # ( Պ → ጣ ) ARMENIAN CAPITAL LETTER PEH → ETHIOPIC SYLLABLE THAA # + +0906 ; 0905 093E ; MA # ( आ → अा ) DEVANAGARI LETTER AA → DEVANAGARI LETTER A, DEVANAGARI VOWEL SIGN AA # + +0912 ; 0905 093E 0946 ; MA # ( ऒ → अाॆ ) DEVANAGARI LETTER SHORT O → DEVANAGARI LETTER A, DEVANAGARI VOWEL SIGN AA, DEVANAGARI VOWEL SIGN SHORT E # →अॊ→→आॆ→ + +0913 ; 0905 093E 0947 ; MA # ( ओ → अाे ) DEVANAGARI LETTER O → DEVANAGARI LETTER A, DEVANAGARI VOWEL SIGN AA, DEVANAGARI VOWEL SIGN E # →अो→→आे→ + +0914 ; 0905 093E 0948 ; MA # ( औ → अाै ) DEVANAGARI LETTER AU → DEVANAGARI LETTER A, DEVANAGARI VOWEL SIGN AA, DEVANAGARI VOWEL SIGN AI # →अौ→→आै→ + +0904 ; 0905 0946 ; MA # ( ऄ → अॆ ) DEVANAGARI LETTER SHORT A → DEVANAGARI LETTER A, DEVANAGARI VOWEL SIGN SHORT E # + +0911 ; 0905 0949 ; MA # ( ऑ → अॉ ) DEVANAGARI LETTER CANDRA O → DEVANAGARI LETTER A, DEVANAGARI VOWEL SIGN CANDRA O # + +090D ; 090F 0945 ; MA # ( ऍ → एॅ ) DEVANAGARI LETTER CANDRA E → DEVANAGARI LETTER E, DEVANAGARI VOWEL SIGN CANDRA E # + +090E ; 090F 0946 ; MA # ( ऎ → एॆ ) DEVANAGARI LETTER SHORT E → DEVANAGARI LETTER E, DEVANAGARI VOWEL SIGN SHORT E # + +0910 ; 090F 0947 ; MA # ( ऐ → एे ) DEVANAGARI LETTER AI → DEVANAGARI LETTER E, DEVANAGARI VOWEL SIGN E # + +0908 ; 0930 094D 0907 ; MA # ( ई → र्इ ) DEVANAGARI LETTER II → DEVANAGARI LETTER RA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER I # + +0ABD ; 093D ; MA # ( ઽ → ऽ ) GUJARATI SIGN AVAGRAHA → DEVANAGARI SIGN AVAGRAHA # + +111DC ; A8FB ; MA # ( 𑇜 → ꣻ ) SHARADA HEADSTROKE → DEVANAGARI HEADSTROKE # + +111CB ; 093A ; MA # ( 𑇋 → ऺ ) SHARADA VOWEL MODIFIER MARK → DEVANAGARI VOWEL SIGN OE # + +0AC1 ; 0941 ; MA # ( ુ → ु ) GUJARATI VOWEL SIGN U → DEVANAGARI VOWEL SIGN U # + +0AC2 ; 0942 ; MA # ( ૂ → ू ) GUJARATI VOWEL SIGN UU → DEVANAGARI VOWEL SIGN UU # + +0A4B ; 0946 ; MA # ( ੋ → ॆ ) GURMUKHI VOWEL SIGN OO → DEVANAGARI VOWEL SIGN SHORT E # + +0A4D ; 094D ; MA # ( ੍ → ् ) GURMUKHI SIGN VIRAMA → DEVANAGARI SIGN VIRAMA # +0ACD ; 094D ; MA # ( ્ → ् ) GUJARATI SIGN VIRAMA → DEVANAGARI SIGN VIRAMA # + +0986 ; 0985 09BE ; MA # ( আ → অা ) BENGALI LETTER AA → BENGALI LETTER A, BENGALI VOWEL SIGN AA # + +09E0 ; 098B 09C3 ; MA # ( ৠ → ঋৃ ) BENGALI LETTER VOCALIC RR → BENGALI LETTER VOCALIC R, BENGALI VOWEL SIGN VOCALIC R # +09E1 ; 098B 09C3 ; MA # ( ৡ → ঋৃ ) BENGALI LETTER VOCALIC LL → BENGALI LETTER VOCALIC R, BENGALI VOWEL SIGN VOCALIC R # →ঌৢ→→ৠ→ + +11492 ; 0998 ; MA # ( 𑒒 → ঘ ) TIRHUTA LETTER GHA → BENGALI LETTER GHA # + +11494 ; 099A ; MA # ( 𑒔 → চ ) TIRHUTA LETTER CA → BENGALI LETTER CA # + +11496 ; 099C ; MA # ( 𑒖 → জ ) TIRHUTA LETTER JA → BENGALI LETTER JA # + +11498 ; 099E ; MA # ( 𑒘 → ঞ ) TIRHUTA LETTER NYA → BENGALI LETTER NYA # + +11499 ; 099F ; MA # ( 𑒙 → ট ) TIRHUTA LETTER TTA → BENGALI LETTER TTA # + +1149B ; 09A1 ; MA # ( 𑒛 → ড ) TIRHUTA LETTER DDA → BENGALI LETTER DDA # + +114AA ; 09A3 ; MA # ( 𑒪 → ণ ) TIRHUTA LETTER LA → BENGALI LETTER NNA # + +1149E ; 09A4 ; MA # ( 𑒞 → ত ) TIRHUTA LETTER TA → BENGALI LETTER TA # + +1149F ; 09A5 ; MA # ( 𑒟 → থ ) TIRHUTA LETTER THA → BENGALI LETTER THA # + +114A0 ; 09A6 ; MA # ( 𑒠 → দ ) TIRHUTA LETTER DA → BENGALI LETTER DA # + +114A1 ; 09A7 ; MA # ( 𑒡 → ধ ) TIRHUTA LETTER DHA → BENGALI LETTER DHA # + +114A2 ; 09A8 ; MA # ( 𑒢 → ন ) TIRHUTA LETTER NA → BENGALI LETTER NA # + +114A3 ; 09AA ; MA # ( 𑒣 → প ) TIRHUTA LETTER PA → BENGALI LETTER PA # + +114A9 ; 09AC ; MA # ( 𑒩 → ব ) TIRHUTA LETTER RA → BENGALI LETTER BA # + +114A7 ; 09AE ; MA # ( 𑒧 → ম ) TIRHUTA LETTER MA → BENGALI LETTER MA # + +114A8 ; 09AF ; MA # ( 𑒨 → য ) TIRHUTA LETTER YA → BENGALI LETTER YA # + +114AB ; 09B0 ; MA # ( 𑒫 → র ) TIRHUTA LETTER VA → BENGALI LETTER RA # + +1149D ; 09B2 ; MA # ( 𑒝 → ল ) TIRHUTA LETTER NNA → BENGALI LETTER LA # + +114AD ; 09B7 ; MA # ( 𑒭 → ষ ) TIRHUTA LETTER SSA → BENGALI LETTER SSA # + +114AE ; 09B8 ; MA # ( 𑒮 → স ) TIRHUTA LETTER SA → BENGALI LETTER SA # + +114C4 ; 09BD ; MA # ( 𑓄 → ঽ ) TIRHUTA SIGN AVAGRAHA → BENGALI SIGN AVAGRAHA # + +114B0 ; 09BE ; MA # ( 𑒰 → া ) TIRHUTA VOWEL SIGN AA → BENGALI VOWEL SIGN AA # + +114B1 ; 09BF ; MA # ( 𑒱 → ি ) TIRHUTA VOWEL SIGN I → BENGALI VOWEL SIGN I # + +114B9 ; 09C7 ; MA # ( 𑒹 → ে ) TIRHUTA VOWEL SIGN E → BENGALI VOWEL SIGN E # + +114BC ; 09CB ; MA # ( 𑒼 → ো ) TIRHUTA VOWEL SIGN O → BENGALI VOWEL SIGN O # + +114BE ; 09CC ; MA # ( 𑒾 → ৌ ) TIRHUTA VOWEL SIGN AU → BENGALI VOWEL SIGN AU # + +114C2 ; 09CD ; MA # ( 𑓂 → ্ ) TIRHUTA SIGN VIRAMA → BENGALI SIGN VIRAMA # + +114BD ; 09D7 ; MA # ( 𑒽 → ৗ ) TIRHUTA VOWEL SIGN SHORT O → BENGALI AU LENGTH MARK # + +0A09 ; 0A73 0A41 ; MA # ( ਉ → ੳੁ ) GURMUKHI LETTER U → GURMUKHI URA, GURMUKHI VOWEL SIGN U # + +0A0A ; 0A73 0A42 ; MA # ( ਊ → ੳੂ ) GURMUKHI LETTER UU → GURMUKHI URA, GURMUKHI VOWEL SIGN UU # + +0A06 ; 0A05 0A3E ; MA # ( ਆ → ਅਾ ) GURMUKHI LETTER AA → GURMUKHI LETTER A, GURMUKHI VOWEL SIGN AA # + +0A10 ; 0A05 0A48 ; MA # ( ਐ → ਅੈ ) GURMUKHI LETTER AI → GURMUKHI LETTER A, GURMUKHI VOWEL SIGN AI # + +0A14 ; 0A05 0A4C ; MA # ( ਔ → ਅੌ ) GURMUKHI LETTER AU → GURMUKHI LETTER A, GURMUKHI VOWEL SIGN AU # + +0A07 ; 0A72 0A3F ; MA # ( ਇ → ੲਿ ) GURMUKHI LETTER I → GURMUKHI IRI, GURMUKHI VOWEL SIGN I # + +0A08 ; 0A72 0A40 ; MA # ( ਈ → ੲੀ ) GURMUKHI LETTER II → GURMUKHI IRI, GURMUKHI VOWEL SIGN II # + +0A0F ; 0A72 0A47 ; MA # ( ਏ → ੲੇ ) GURMUKHI LETTER EE → GURMUKHI IRI, GURMUKHI VOWEL SIGN EE # + +0A86 ; 0A85 0ABE ; MA # ( આ → અા ) GUJARATI LETTER AA → GUJARATI LETTER A, GUJARATI VOWEL SIGN AA # + +0A91 ; 0A85 0ABE 0AC5 ; MA # ( ઑ → અાૅ ) GUJARATI VOWEL CANDRA O → GUJARATI LETTER A, GUJARATI VOWEL SIGN AA, GUJARATI VOWEL SIGN CANDRA E # →અૉ→→આૅ→ + +0A93 ; 0A85 0ABE 0AC7 ; MA # ( ઓ → અાે ) GUJARATI LETTER O → GUJARATI LETTER A, GUJARATI VOWEL SIGN AA, GUJARATI VOWEL SIGN E # →અો→→આે→ + +0A94 ; 0A85 0ABE 0AC8 ; MA # ( ઔ → અાૈ ) GUJARATI LETTER AU → GUJARATI LETTER A, GUJARATI VOWEL SIGN AA, GUJARATI VOWEL SIGN AI # →અૌ→→આૈ→ + +0A8D ; 0A85 0AC5 ; MA # ( ઍ → અૅ ) GUJARATI VOWEL CANDRA E → GUJARATI LETTER A, GUJARATI VOWEL SIGN CANDRA E # + +0A8F ; 0A85 0AC7 ; MA # ( એ → અે ) GUJARATI LETTER E → GUJARATI LETTER A, GUJARATI VOWEL SIGN E # + +0A90 ; 0A85 0AC8 ; MA # ( ઐ → અૈ ) GUJARATI LETTER AI → GUJARATI LETTER A, GUJARATI VOWEL SIGN AI # + +0B06 ; 0B05 0B3E ; MA # ( ଆ → ଅା ) ORIYA LETTER AA → ORIYA LETTER A, ORIYA VOWEL SIGN AA # + +0BEE ; 0B85 ; MA # ( ௮ → அ ) TAMIL DIGIT EIGHT → TAMIL LETTER A # + +0BB0 ; 0B88 ; MA # ( ர → ஈ ) TAMIL LETTER RA → TAMIL LETTER II # →ா→ +0BBE ; 0B88 ; MA # ( ா → ஈ ) TAMIL VOWEL SIGN AA → TAMIL LETTER II # + +0BEB ; 0B88 0BC1 ; MA # ( ௫ → ஈு ) TAMIL DIGIT FIVE → TAMIL LETTER II, TAMIL VOWEL SIGN U # →ரு→ + +0BE8 ; 0B89 ; MA # ( ௨ → உ ) TAMIL DIGIT TWO → TAMIL LETTER U # +0D09 ; 0B89 ; MA # ( ഉ → உ ) MALAYALAM LETTER U → TAMIL LETTER U # + +0B8A ; 0B89 0BB3 ; MA # ( ஊ → உள ) TAMIL LETTER UU → TAMIL LETTER U, TAMIL LETTER LLA # + +0D0A ; 0B89 0D57 ; MA # ( ഊ → உൗ ) MALAYALAM LETTER UU → TAMIL LETTER U, MALAYALAM AU LENGTH MARK # →ഉൗ→ + +0BED ; 0B8E ; MA # ( ௭ → எ ) TAMIL DIGIT SEVEN → TAMIL LETTER E # + +0BF7 ; 0B8E 0BB5 ; MA #* ( ௷ → எவ ) TAMIL CREDIT SIGN → TAMIL LETTER E, TAMIL LETTER VA # + +0B9C ; 0B90 ; MA # ( ஜ → ஐ ) TAMIL LETTER JA → TAMIL LETTER AI # +0D1C ; 0B90 ; MA # ( ജ → ஐ ) MALAYALAM LETTER JA → TAMIL LETTER AI # →ஜ→ + +0BE7 ; 0B95 ; MA # ( ௧ → க ) TAMIL DIGIT ONE → TAMIL LETTER KA # + +0BEA ; 0B9A ; MA # ( ௪ → ச ) TAMIL DIGIT FOUR → TAMIL LETTER CA # + +0BEC ; 0B9A 0BC1 ; MA # ( ௬ → சு ) TAMIL DIGIT SIX → TAMIL LETTER CA, TAMIL VOWEL SIGN U # + +0BF2 ; 0B9A 0BC2 ; MA #* ( ௲ → சூ ) TAMIL NUMBER ONE THOUSAND → TAMIL LETTER CA, TAMIL VOWEL SIGN UU # + +0D3A ; 0B9F 0BBF ; MA # ( ഺ → டி ) MALAYALAM LETTER TTTA → TAMIL LETTER TTA, TAMIL VOWEL SIGN I # + +0D23 ; 0BA3 ; MA # ( ണ → ண ) MALAYALAM LETTER NNA → TAMIL LETTER NNA # + +0BFA ; 0BA8 0BC0 ; MA #* ( ௺ → நீ ) TAMIL NUMBER SIGN → TAMIL LETTER NA, TAMIL VOWEL SIGN II # + +0BF4 ; 0BAE 0BC0 ; MA #* ( ௴ → மீ ) TAMIL MONTH SIGN → TAMIL LETTER MA, TAMIL VOWEL SIGN II # + +0BF0 ; 0BAF ; MA #* ( ௰ → ய ) TAMIL NUMBER TEN → TAMIL LETTER YA # + +0D34 ; 0BB4 ; MA # ( ഴ → ழ ) MALAYALAM LETTER LLLA → TAMIL LETTER LLLA # + +0BD7 ; 0BB3 ; MA # ( ௗ → ள ) TAMIL AU LENGTH MARK → TAMIL LETTER LLA # + +0BC8 ; 0BA9 ; MA # ( ை → ன ) TAMIL VOWEL SIGN AI → TAMIL LETTER NNNA # + +0D36 ; 0BB6 ; MA # ( ശ → ஶ ) MALAYALAM LETTER SHA → TAMIL LETTER SHA # + +0BF8 ; 0BB7 ; MA #* ( ௸ → ஷ ) TAMIL AS ABOVE SIGN → TAMIL LETTER SSA # + +0D3F ; 0BBF ; MA # ( ി → ி ) MALAYALAM VOWEL SIGN I → TAMIL VOWEL SIGN I # +0D40 ; 0BBF ; MA # ( ീ → ி ) MALAYALAM VOWEL SIGN II → TAMIL VOWEL SIGN I # + +0BCA ; 0BC6 0B88 ; MA # ( ொ → ெஈ ) TAMIL VOWEL SIGN O → TAMIL VOWEL SIGN E, TAMIL LETTER II # →ெர→ + +0BCC ; 0BC6 0BB3 ; MA # ( ௌ → ெள ) TAMIL VOWEL SIGN AU → TAMIL VOWEL SIGN E, TAMIL LETTER LLA # + +0BCB ; 0BC7 0B88 ; MA # ( ோ → ேஈ ) TAMIL VOWEL SIGN OO → TAMIL VOWEL SIGN EE, TAMIL LETTER II # →ேர→ + +0C85 ; 0C05 ; MA # ( ಅ → అ ) KANNADA LETTER A → TELUGU LETTER A # + +0C86 ; 0C06 ; MA # ( ಆ → ఆ ) KANNADA LETTER AA → TELUGU LETTER AA # + +0C87 ; 0C07 ; MA # ( ಇ → ఇ ) KANNADA LETTER I → TELUGU LETTER I # + +0C60 ; 0C0B 0C3E ; MA # ( ౠ → ఋా ) TELUGU LETTER VOCALIC RR → TELUGU LETTER VOCALIC R, TELUGU VOWEL SIGN AA # + +0C61 ; 0C0C 0C3E ; MA # ( ౡ → ఌా ) TELUGU LETTER VOCALIC LL → TELUGU LETTER VOCALIC L, TELUGU VOWEL SIGN AA # + +0C92 ; 0C12 ; MA # ( ಒ → ఒ ) KANNADA LETTER O → TELUGU LETTER O # + +0C14 ; 0C12 0C4C ; MA # ( ఔ → ఒౌ ) TELUGU LETTER AU → TELUGU LETTER O, TELUGU VOWEL SIGN AU # +0C94 ; 0C12 0C4C ; MA # ( ಔ → ఒౌ ) KANNADA LETTER AU → TELUGU LETTER O, TELUGU VOWEL SIGN AU # →ఔ→ + +0C13 ; 0C12 0C55 ; MA # ( ఓ → ఒౕ ) TELUGU LETTER OO → TELUGU LETTER O, TELUGU LENGTH MARK # +0C93 ; 0C12 0C55 ; MA # ( ಓ → ఒౕ ) KANNADA LETTER OO → TELUGU LETTER O, TELUGU LENGTH MARK # →ఓ→ + +0C9C ; 0C1C ; MA # ( ಜ → జ ) KANNADA LETTER JA → TELUGU LETTER JA # + +0C9E ; 0C1E ; MA # ( ಞ → ఞ ) KANNADA LETTER NYA → TELUGU LETTER NYA # + +0C22 ; 0C21 0323 ; MA # ( ఢ → డ̣ ) TELUGU LETTER DDHA → TELUGU LETTER DDA, COMBINING DOT BELOW # + +0CA3 ; 0C23 ; MA # ( ಣ → ణ ) KANNADA LETTER NNA → TELUGU LETTER NNA # + +0C25 ; 0C27 05BC ; MA # ( థ → ధּ ) TELUGU LETTER THA → TELUGU LETTER DHA, HEBREW POINT DAGESH OR MAPIQ # + +0C2D ; 0C2C 0323 ; MA # ( భ → బ̣ ) TELUGU LETTER BHA → TELUGU LETTER BA, COMBINING DOT BELOW # + +0CAF ; 0C2F ; MA # ( ಯ → య ) KANNADA LETTER YA → TELUGU LETTER YA # + +0C20 ; 0C30 05BC ; MA # ( ఠ → రּ ) TELUGU LETTER TTHA → TELUGU LETTER RA, HEBREW POINT DAGESH OR MAPIQ # + +0CB1 ; 0C31 ; MA # ( ಱ → ఱ ) KANNADA LETTER RRA → TELUGU LETTER RRA # + +0CB2 ; 0C32 ; MA # ( ಲ → ల ) KANNADA LETTER LA → TELUGU LETTER LA # + +0C37 ; 0C35 0323 ; MA # ( ష → వ̣ ) TELUGU LETTER SSA → TELUGU LETTER VA, COMBINING DOT BELOW # + +0C39 ; 0C35 0C3E ; MA # ( హ → వా ) TELUGU LETTER HA → TELUGU LETTER VA, TELUGU VOWEL SIGN AA # + +0C2E ; 0C35 0C41 ; MA # ( మ → వు ) TELUGU LETTER MA → TELUGU LETTER VA, TELUGU VOWEL SIGN U # + +0C42 ; 0C41 0C3E ; MA # ( ూ → ుా ) TELUGU VOWEL SIGN UU → TELUGU VOWEL SIGN U, TELUGU VOWEL SIGN AA # + +0C44 ; 0C43 0C3E ; MA # ( ౄ → ృా ) TELUGU VOWEL SIGN VOCALIC RR → TELUGU VOWEL SIGN VOCALIC R, TELUGU VOWEL SIGN AA # + +0CE1 ; 0C8C 0CBE ; MA # ( ೡ → ಌಾ ) KANNADA LETTER VOCALIC LL → KANNADA LETTER VOCALIC L, KANNADA VOWEL SIGN AA # + +0D08 ; 0D07 0D57 ; MA # ( ഈ → ഇൗ ) MALAYALAM LETTER II → MALAYALAM LETTER I, MALAYALAM AU LENGTH MARK # + +0D10 ; 0D0E 0D46 ; MA # ( ഐ → എെ ) MALAYALAM LETTER AI → MALAYALAM LETTER E, MALAYALAM VOWEL SIGN E # + +0D13 ; 0D12 0D3E ; MA # ( ഓ → ഒാ ) MALAYALAM LETTER OO → MALAYALAM LETTER O, MALAYALAM VOWEL SIGN AA # + +0D14 ; 0D12 0D57 ; MA # ( ഔ → ഒൗ ) MALAYALAM LETTER AU → MALAYALAM LETTER O, MALAYALAM AU LENGTH MARK # + +0D61 ; 0D1E ; MA # ( ൡ → ഞ ) MALAYALAM LETTER VOCALIC LL → MALAYALAM LETTER NYA # + +0D6B ; 0D26 0D4D 0D30 ; MA # ( ൫ → ദ്ര ) MALAYALAM DIGIT FIVE → MALAYALAM LETTER DA, MALAYALAM SIGN VIRAMA, MALAYALAM LETTER RA # + +0D79 ; 0D28 0D41 ; MA #* ( ൹ → നു ) MALAYALAM DATE MARK → MALAYALAM LETTER NA, MALAYALAM VOWEL SIGN U # +0D0C ; 0D28 0D41 ; MA # ( ഌ → നു ) MALAYALAM LETTER VOCALIC L → MALAYALAM LETTER NA, MALAYALAM VOWEL SIGN U # +0D19 ; 0D28 0D41 ; MA # ( ങ → നു ) MALAYALAM LETTER NGA → MALAYALAM LETTER NA, MALAYALAM VOWEL SIGN U # →ഌ→ + +0D6F ; 0D28 0D4D ; MA # ( ൯ → ന് ) MALAYALAM DIGIT NINE → MALAYALAM LETTER NA, MALAYALAM SIGN VIRAMA # +0D7B ; 0D28 0D4D ; MA # ( ൻ → ന് ) MALAYALAM LETTER CHILLU N → MALAYALAM LETTER NA, MALAYALAM SIGN VIRAMA # →൯→ + +0D6C ; 0D28 0D4D 0D28 ; MA # ( ൬ → ന്ന ) MALAYALAM DIGIT SIX → MALAYALAM LETTER NA, MALAYALAM SIGN VIRAMA, MALAYALAM LETTER NA # + +0D5A ; 0D28 0D4D 0D2E ; MA #* ( ൚ → ന്മ ) MALAYALAM FRACTION THREE EIGHTIETHS → MALAYALAM LETTER NA, MALAYALAM SIGN VIRAMA, MALAYALAM LETTER MA # + +0D31 ; 0D30 ; MA # ( റ → ര ) MALAYALAM LETTER RRA → MALAYALAM LETTER RA # + +0D6A ; 0D30 0D4D ; MA # ( ൪ → ര് ) MALAYALAM DIGIT FOUR → MALAYALAM LETTER RA, MALAYALAM SIGN VIRAMA # +0D7C ; 0D30 0D4D ; MA # ( ർ → ര് ) MALAYALAM LETTER CHILLU RR → MALAYALAM LETTER RA, MALAYALAM SIGN VIRAMA # →൪→ + +0D6E ; 0D35 0D4D 0D30 ; MA # ( ൮ → വ്ര ) MALAYALAM DIGIT EIGHT → MALAYALAM LETTER VA, MALAYALAM SIGN VIRAMA, MALAYALAM LETTER RA # + +0D76 ; 0D39 0D4D 0D2E ; MA #* ( ൶ → ഹ്മ ) MALAYALAM FRACTION ONE SIXTEENTH → MALAYALAM LETTER HA, MALAYALAM SIGN VIRAMA, MALAYALAM LETTER MA # + +0D42 ; 0D41 ; MA # ( ൂ → ു ) MALAYALAM VOWEL SIGN UU → MALAYALAM VOWEL SIGN U # +0D43 ; 0D41 ; MA # ( ൃ → ു ) MALAYALAM VOWEL SIGN VOCALIC R → MALAYALAM VOWEL SIGN U # →ൂ→ + +0D48 ; 0D46 0D46 ; MA # ( ൈ → െെ ) MALAYALAM VOWEL SIGN AI → MALAYALAM VOWEL SIGN E, MALAYALAM VOWEL SIGN E # + +0DEA ; 0DA2 ; MA # ( ෪ → ජ ) SINHALA LITH DIGIT FOUR → SINHALA LETTER ALPAPRAANA JAYANNA # + +0DEB ; 0DAF ; MA # ( ෫ → ද ) SINHALA LITH DIGIT FIVE → SINHALA LETTER ALPAPRAANA DAYANNA # + +11413 ; 11434 11442 11412 ; MA # ( 𑐓 → 𑐴𑑂𑐒 ) NEWA LETTER NGHA → NEWA LETTER HA, NEWA SIGN VIRAMA, NEWA LETTER NGA # + +11419 ; 11434 11442 11418 ; MA # ( 𑐙 → 𑐴𑑂𑐘 ) NEWA LETTER NYHA → NEWA LETTER HA, NEWA SIGN VIRAMA, NEWA LETTER NYA # + +11424 ; 11434 11442 11423 ; MA # ( 𑐤 → 𑐴𑑂𑐣 ) NEWA LETTER NHA → NEWA LETTER HA, NEWA SIGN VIRAMA, NEWA LETTER NA # + +1142A ; 11434 11442 11429 ; MA # ( 𑐪 → 𑐴𑑂𑐩 ) NEWA LETTER MHA → NEWA LETTER HA, NEWA SIGN VIRAMA, NEWA LETTER MA # + +1142D ; 11434 11442 1142C ; MA # ( 𑐭 → 𑐴𑑂𑐬 ) NEWA LETTER RHA → NEWA LETTER HA, NEWA SIGN VIRAMA, NEWA LETTER RA # + +1142F ; 11434 11442 1142E ; MA # ( 𑐯 → 𑐴𑑂𑐮 ) NEWA LETTER LHA → NEWA LETTER HA, NEWA SIGN VIRAMA, NEWA LETTER LA # + +115D8 ; 11582 ; MA # ( 𑗘 → 𑖂 ) SIDDHAM LETTER THREE-CIRCLE ALTERNATE I → SIDDHAM LETTER I # +115D9 ; 11582 ; MA # ( 𑗙 → 𑖂 ) SIDDHAM LETTER TWO-CIRCLE ALTERNATE I → SIDDHAM LETTER I # + +115DA ; 11583 ; MA # ( 𑗚 → 𑖃 ) SIDDHAM LETTER TWO-CIRCLE ALTERNATE II → SIDDHAM LETTER II # + +115DB ; 11584 ; MA # ( 𑗛 → 𑖄 ) SIDDHAM LETTER ALTERNATE U → SIDDHAM LETTER U # + +115DC ; 115B2 ; MA # ( 𑗜 → 𑖲 ) SIDDHAM VOWEL SIGN ALTERNATE U → SIDDHAM VOWEL SIGN U # + +115DD ; 115B3 ; MA # ( 𑗝 → 𑖳 ) SIDDHAM VOWEL SIGN ALTERNATE UU → SIDDHAM VOWEL SIGN UU # + +0E03 ; 0E02 ; MA # ( ฃ → ข ) THAI CHARACTER KHO KHUAT → THAI CHARACTER KHO KHAI # + +0E14 ; 0E04 ; MA # ( ด → ค ) THAI CHARACTER DO DEK → THAI CHARACTER KHO KHWAI # +0E15 ; 0E04 ; MA # ( ต → ค ) THAI CHARACTER TO TAO → THAI CHARACTER KHO KHWAI # →ด→ + +0E21 ; 0E06 ; MA # ( ม → ฆ ) THAI CHARACTER MO MA → THAI CHARACTER KHO RAKHANG # + +0E88 ; 0E08 ; MA # ( ຈ → จ ) LAO LETTER CO → THAI CHARACTER CHO CHAN # + +0E0B ; 0E0A ; MA # ( ซ → ช ) THAI CHARACTER SO SO → THAI CHARACTER CHO CHANG # + +0E0F ; 0E0E ; MA # ( ฏ → ฎ ) THAI CHARACTER TO PATAK → THAI CHARACTER DO CHADA # + +0E17 ; 0E11 ; MA # ( ท → ฑ ) THAI CHARACTER THO THAHAN → THAI CHARACTER THO NANGMONTHO # + +0E9A ; 0E1A ; MA # ( ບ → บ ) LAO LETTER BO → THAI CHARACTER BO BAIMAI # + +0E9B ; 0E1B ; MA # ( ປ → ป ) LAO LETTER PO → THAI CHARACTER PO PLA # + +0E9D ; 0E1D ; MA # ( ຝ → ฝ ) LAO LETTER FO TAM → THAI CHARACTER FO FA # + +0E9E ; 0E1E ; MA # ( ພ → พ ) LAO LETTER PHO TAM → THAI CHARACTER PHO PHAN # + +0E9F ; 0E1F ; MA # ( ຟ → ฟ ) LAO LETTER FO SUNG → THAI CHARACTER FO FAN # + +0E26 ; 0E20 ; MA # ( ฦ → ภ ) THAI CHARACTER LU → THAI CHARACTER PHO SAMPHAO # + +0E8D ; 0E22 ; MA # ( ຍ → ย ) LAO LETTER NYO → THAI CHARACTER YO YAK # + +17D4 ; 0E2F ; MA #* ( ។ → ฯ ) KHMER SIGN KHAN → THAI CHARACTER PAIYANNOI # + +0E45 ; 0E32 ; MA # ( ๅ → า ) THAI CHARACTER LAKKHANGYAO → THAI CHARACTER SARA AA # + +0E33 ; 030A 0E32 ; MA # ( ำ → ̊า ) THAI CHARACTER SARA AM → COMBINING RING ABOVE, THAI CHARACTER SARA AA # →ํา→ + +17B7 ; 0E34 ; MA # ( ិ → ิ ) KHMER VOWEL SIGN I → THAI CHARACTER SARA I # + +17B8 ; 0E35 ; MA # ( ី → ี ) KHMER VOWEL SIGN II → THAI CHARACTER SARA II # + +17B9 ; 0E36 ; MA # ( ឹ → ึ ) KHMER VOWEL SIGN Y → THAI CHARACTER SARA UE # + +17BA ; 0E37 ; MA # ( ឺ → ื ) KHMER VOWEL SIGN YY → THAI CHARACTER SARA UEE # + +0EB8 ; 0E38 ; MA # ( ຸ → ุ ) LAO VOWEL SIGN U → THAI CHARACTER SARA U # + +0EB9 ; 0E39 ; MA # ( ູ → ู ) LAO VOWEL SIGN UU → THAI CHARACTER SARA UU # + +0E41 ; 0E40 0E40 ; MA # ( แ → เเ ) THAI CHARACTER SARA AE → THAI CHARACTER SARA E, THAI CHARACTER SARA E # + +0EDC ; 0EAB 0E99 ; MA # ( ໜ → ຫນ ) LAO HO NO → LAO LETTER HO SUNG, LAO LETTER NO # + +0EDD ; 0EAB 0EA1 ; MA # ( ໝ → ຫມ ) LAO HO MO → LAO LETTER HO SUNG, LAO LETTER MO # + +0EB3 ; 030A 0EB2 ; MA # ( ຳ → ̊າ ) LAO VOWEL SIGN AM → COMBINING RING ABOVE, LAO VOWEL SIGN AA # →ໍາ→ + +0F02 ; 0F60 0F74 0F82 0F7F ; MA #* ( ༂ → འུྂཿ ) TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA → TIBETAN LETTER -A, TIBETAN VOWEL SIGN U, TIBETAN SIGN NYI ZLA NAA DA, TIBETAN SIGN RNAM BCAD # + +0F03 ; 0F60 0F74 0F82 0F14 ; MA #* ( ༃ → འུྂ༔ ) TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA → TIBETAN LETTER -A, TIBETAN VOWEL SIGN U, TIBETAN SIGN NYI ZLA NAA DA, TIBETAN MARK GTER TSHEG # + +0F6A ; 0F62 ; MA # ( ཪ → ར ) TIBETAN LETTER FIXED-FORM RA → TIBETAN LETTER RA # + +0F00 ; 0F68 0F7C 0F7E ; MA # ( ༀ → ཨོཾ ) TIBETAN SYLLABLE OM → TIBETAN LETTER A, TIBETAN VOWEL SIGN O, TIBETAN SIGN RJES SU NGA RO # + +0F77 ; 0FB2 0F71 0F80 ; MA # ( ཷ → ྲཱྀ ) TIBETAN VOWEL SIGN VOCALIC RR → TIBETAN SUBJOINED LETTER RA, TIBETAN VOWEL SIGN AA, TIBETAN VOWEL SIGN REVERSED I # + +0F79 ; 0FB3 0F71 0F80 ; MA # ( ཹ → ླཱྀ ) TIBETAN VOWEL SIGN VOCALIC LL → TIBETAN SUBJOINED LETTER LA, TIBETAN VOWEL SIGN AA, TIBETAN VOWEL SIGN REVERSED I # + +11CB2 ; 11CAA ; MA # ( 𑲲 → 𑲪 ) MARCHEN VOWEL SIGN U → MARCHEN SUBJOINED LETTER RA # + +1081 ; 1002 103E ; MA # ( ႁ → ဂှ ) MYANMAR LETTER SHAN HA → MYANMAR LETTER GA, MYANMAR CONSONANT SIGN MEDIAL HA # + +1000 ; 1002 102C ; MA # ( က → ဂာ ) MYANMAR LETTER KA → MYANMAR LETTER GA, MYANMAR VOWEL SIGN AA # + +1070 ; 1003 103E ; MA # ( ၰ → ဃှ ) MYANMAR LETTER EASTERN PWO KAREN GHWA → MYANMAR LETTER GHA, MYANMAR CONSONANT SIGN MEDIAL HA # + +1066 ; 1015 103E ; MA # ( ၦ → ပှ ) MYANMAR LETTER WESTERN PWO KAREN PWA → MYANMAR LETTER PA, MYANMAR CONSONANT SIGN MEDIAL HA # + +101F ; 1015 102C ; MA # ( ဟ → ပာ ) MYANMAR LETTER HA → MYANMAR LETTER PA, MYANMAR VOWEL SIGN AA # + +106F ; 1015 102C 103E ; MA # ( ၯ → ပာှ ) MYANMAR LETTER EASTERN PWO KAREN YWA → MYANMAR LETTER PA, MYANMAR VOWEL SIGN AA, MYANMAR CONSONANT SIGN MEDIAL HA # →ဟှ→ + +107E ; 107D 103E ; MA # ( ၾ → ၽှ ) MYANMAR LETTER SHAN FA → MYANMAR LETTER SHAN PHA, MYANMAR CONSONANT SIGN MEDIAL HA # + +1029 ; 101E 103C ; MA # ( ဩ → သြ ) MYANMAR LETTER O → MYANMAR LETTER SA, MYANMAR CONSONANT SIGN MEDIAL RA # + +102A ; 101E 103C 1031 102C 103A ; MA # ( ဪ → သြော် ) MYANMAR LETTER AU → MYANMAR LETTER SA, MYANMAR CONSONANT SIGN MEDIAL RA, MYANMAR VOWEL SIGN E, MYANMAR VOWEL SIGN AA, MYANMAR SIGN ASAT # →ဩော်→ + +109E ; 1083 030A ; MA #* ( ႞ → ႃ̊ ) MYANMAR SYMBOL SHAN ONE → MYANMAR VOWEL SIGN SHAN AA, COMBINING RING ABOVE # →ႃံ→ + +17A3 ; 17A2 ; MA # ( ឣ → អ ) KHMER INDEPENDENT VOWEL QAQ → KHMER LETTER QA # + +19D0 ; 199E ; MA # ( ᧐ → ᦞ ) NEW TAI LUE DIGIT ZERO → NEW TAI LUE LETTER LOW VA # + +19D1 ; 19B1 ; MA # ( ᧑ → ᦱ ) NEW TAI LUE DIGIT ONE → NEW TAI LUE VOWEL SIGN AA # + +1A80 ; 1A45 ; MA # ( ᪀ → ᩅ ) TAI THAM HORA DIGIT ZERO → TAI THAM LETTER WA # +1A90 ; 1A45 ; MA # ( ᪐ → ᩅ ) TAI THAM THAM DIGIT ZERO → TAI THAM LETTER WA # + +AA53 ; AA01 ; MA # ( ꩓ → ꨁ ) CHAM DIGIT THREE → CHAM LETTER I # + +AA56 ; AA23 ; MA # ( ꩖ → ꨣ ) CHAM DIGIT SIX → CHAM LETTER RA # + +1B52 ; 1B0D ; MA # ( ᭒ → ᬍ ) BALINESE DIGIT TWO → BALINESE LETTER LA LENGA # + +1B53 ; 1B11 ; MA # ( ᭓ → ᬑ ) BALINESE DIGIT THREE → BALINESE LETTER OKARA # + +1B58 ; 1B28 ; MA # ( ᭘ → ᬨ ) BALINESE DIGIT EIGHT → BALINESE LETTER PA KAPAL # + +A9A3 ; A99D ; MA # ( ꦣ → ꦝ ) JAVANESE LETTER DA MAHAPRANA → JAVANESE LETTER DDA # + +1896 ; 185C ; MA # ( ᢖ → ᡜ ) MONGOLIAN LETTER ALI GALI ZA → MONGOLIAN LETTER TODO DZA # + +1855 ; 1835 ; MA # ( ᡕ → ᠵ ) MONGOLIAN LETTER TODO YA → MONGOLIAN LETTER JA # + +1FF6 ; 13EF ; MA # ( ῶ → Ꮿ ) GREEK SMALL LETTER OMEGA WITH PERISPOMENI → CHEROKEE LETTER YA # + +140D ; 1401 00B7 ; MA # ( ᐍ → ᐁ· ) CANADIAN SYLLABICS WEST-CREE WE → CANADIAN SYLLABICS E, MIDDLE DOT # →ᐁᐧ→ + +142B ; 1401 1420 ; MA # ( ᐫ → ᐁᐠ ) CANADIAN SYLLABICS EN → CANADIAN SYLLABICS E, CANADIAN SYLLABICS FINAL GRAVE # + +1411 ; 1404 00B7 ; MA # ( ᐑ → ᐄ· ) CANADIAN SYLLABICS WEST-CREE WII → CANADIAN SYLLABICS II, MIDDLE DOT # →ᐄᐧ→ + +1413 ; 1405 00B7 ; MA # ( ᐓ → ᐅ· ) CANADIAN SYLLABICS WEST-CREE WO → CANADIAN SYLLABICS O, MIDDLE DOT # →ᐅᐧ→ + +142D ; 1405 1420 ; MA # ( ᐭ → ᐅᐠ ) CANADIAN SYLLABICS ON → CANADIAN SYLLABICS O, CANADIAN SYLLABICS FINAL GRAVE # + +1415 ; 1406 00B7 ; MA # ( ᐕ → ᐆ· ) CANADIAN SYLLABICS WEST-CREE WOO → CANADIAN SYLLABICS OO, MIDDLE DOT # →ᐆᐧ→ + +1418 ; 140A 00B7 ; MA # ( ᐘ → ᐊ· ) CANADIAN SYLLABICS WEST-CREE WA → CANADIAN SYLLABICS A, MIDDLE DOT # →ᐊᐧ→ + +142E ; 140A 1420 ; MA # ( ᐮ → ᐊᐠ ) CANADIAN SYLLABICS AN → CANADIAN SYLLABICS A, CANADIAN SYLLABICS FINAL GRAVE # + +141A ; 140B 00B7 ; MA # ( ᐚ → ᐋ· ) CANADIAN SYLLABICS WEST-CREE WAA → CANADIAN SYLLABICS AA, MIDDLE DOT # →ᐋᐧ→ + +18DD ; 141E 18DF ; MA # ( ᣝ → ᐞᣟ ) CANADIAN SYLLABICS WESTERN W → CANADIAN SYLLABICS GLOTTAL STOP, CANADIAN SYLLABICS FINAL RAISED DOT # + +14D1 ; 1421 ; MA # ( ᓑ → ᐡ ) CANADIAN SYLLABICS CARRIER NG → CANADIAN SYLLABICS FINAL BOTTOM HALF RING # + +1540 ; 1429 ; MA # ( ᕀ → ᐩ ) CANADIAN SYLLABICS WEST-CREE Y → CANADIAN SYLLABICS FINAL PLUS # + +143F ; 1432 00B7 ; MA # ( ᐿ → ᐲ· ) CANADIAN SYLLABICS WEST-CREE PWII → CANADIAN SYLLABICS PII, MIDDLE DOT # →ᐲᐧ→ + +1443 ; 1434 00B7 ; MA # ( ᑃ → ᐴ· ) CANADIAN SYLLABICS WEST-CREE PWOO → CANADIAN SYLLABICS POO, MIDDLE DOT # →ᐴᐧ→ + +2369 ; 1435 ; MA #* ( ⍩ → ᐵ ) APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS → CANADIAN SYLLABICS Y-CREE POO # + +1447 ; 1439 00B7 ; MA # ( ᑇ → ᐹ· ) CANADIAN SYLLABICS WEST-CREE PWAA → CANADIAN SYLLABICS PAA, MIDDLE DOT # →ᐹᐧ→ + +145C ; 144F 00B7 ; MA # ( ᑜ → ᑏ· ) CANADIAN SYLLABICS WEST-CREE TWII → CANADIAN SYLLABICS TII, MIDDLE DOT # →ᑏᐧ→ + +2E27 ; 1450 ; MA #* ( ⸧ → ᑐ ) RIGHT SIDEWAYS U BRACKET → CANADIAN SYLLABICS TO # →⊃→ +2283 ; 1450 ; MA #* ( ⊃ → ᑐ ) SUPERSET OF → CANADIAN SYLLABICS TO # + +145E ; 1450 00B7 ; MA # ( ᑞ → ᑐ· ) CANADIAN SYLLABICS WEST-CREE TWO → CANADIAN SYLLABICS TO, MIDDLE DOT # →ᑐᐧ→ + +1469 ; 1450 0027 ; MA # ( ᑩ → ᑐ' ) CANADIAN SYLLABICS TTO → CANADIAN SYLLABICS TO, APOSTROPHE # →ᑐᑊ→ + +27C9 ; 1450 002F ; MA #* ( ⟉ → ᑐ/ ) SUPERSET PRECEDING SOLIDUS → CANADIAN SYLLABICS TO, SOLIDUS # →⊃/→ + +2AD7 ; 1450 1455 ; MA #* ( ⫗ → ᑐᑕ ) SUPERSET BESIDE SUBSET → CANADIAN SYLLABICS TO, CANADIAN SYLLABICS TA # →⊃⊂→ + +1460 ; 1451 00B7 ; MA # ( ᑠ → ᑑ· ) CANADIAN SYLLABICS WEST-CREE TWOO → CANADIAN SYLLABICS TOO, MIDDLE DOT # →ᑑᐧ→ + +2E26 ; 1455 ; MA #* ( ⸦ → ᑕ ) LEFT SIDEWAYS U BRACKET → CANADIAN SYLLABICS TA # →⊂→ +2282 ; 1455 ; MA #* ( ⊂ → ᑕ ) SUBSET OF → CANADIAN SYLLABICS TA # + +1462 ; 1455 00B7 ; MA # ( ᑢ → ᑕ· ) CANADIAN SYLLABICS WEST-CREE TWA → CANADIAN SYLLABICS TA, MIDDLE DOT # →ᑕᐧ→ + +146A ; 1455 0027 ; MA # ( ᑪ → ᑕ' ) CANADIAN SYLLABICS TTA → CANADIAN SYLLABICS TA, APOSTROPHE # →ᑕᑊ→ + +1464 ; 1456 00B7 ; MA # ( ᑤ → ᑖ· ) CANADIAN SYLLABICS WEST-CREE TWAA → CANADIAN SYLLABICS TAA, MIDDLE DOT # →ᑖᐧ→ + +1475 ; 146B 00B7 ; MA # ( ᑵ → ᑫ· ) CANADIAN SYLLABICS WEST-CREE KWE → CANADIAN SYLLABICS KE, MIDDLE DOT # →ᑫᐧ→ + +1485 ; 146B 0027 ; MA # ( ᒅ → ᑫ' ) CANADIAN SYLLABICS SOUTH-SLAVEY KEH → CANADIAN SYLLABICS KE, APOSTROPHE # →ᑫᑊ→ + +1479 ; 146E 00B7 ; MA # ( ᑹ → ᑮ· ) CANADIAN SYLLABICS WEST-CREE KWII → CANADIAN SYLLABICS KII, MIDDLE DOT # →ᑮᐧ→ + +147D ; 1470 00B7 ; MA # ( ᑽ → ᑰ· ) CANADIAN SYLLABICS WEST-CREE KWOO → CANADIAN SYLLABICS KOO, MIDDLE DOT # →ᑰᐧ→ + +1603 ; 1489 ; MA # ( ᘃ → ᒉ ) CANADIAN SYLLABICS CARRIER NO → CANADIAN SYLLABICS CE # + +1493 ; 1489 00B7 ; MA # ( ᒓ → ᒉ· ) CANADIAN SYLLABICS WEST-CREE CWE → CANADIAN SYLLABICS CE, MIDDLE DOT # →ᒉᐧ→ + +1495 ; 148B 00B7 ; MA # ( ᒕ → ᒋ· ) CANADIAN SYLLABICS WEST-CREE CWI → CANADIAN SYLLABICS CI, MIDDLE DOT # →ᒋᐧ→ + +1497 ; 148C 00B7 ; MA # ( ᒗ → ᒌ· ) CANADIAN SYLLABICS WEST-CREE CWII → CANADIAN SYLLABICS CII, MIDDLE DOT # →ᒌᐧ→ + +149B ; 148E 00B7 ; MA # ( ᒛ → ᒎ· ) CANADIAN SYLLABICS WEST-CREE CWOO → CANADIAN SYLLABICS COO, MIDDLE DOT # →ᒎᐧ→ + +1602 ; 1490 ; MA # ( ᘂ → ᒐ ) CANADIAN SYLLABICS CARRIER NU → CANADIAN SYLLABICS CA # + +149D ; 1490 00B7 ; MA # ( ᒝ → ᒐ· ) CANADIAN SYLLABICS WEST-CREE CWA → CANADIAN SYLLABICS CA, MIDDLE DOT # →ᒐᐧ→ + +149F ; 1491 00B7 ; MA # ( ᒟ → ᒑ· ) CANADIAN SYLLABICS WEST-CREE CWAA → CANADIAN SYLLABICS CAA, MIDDLE DOT # →ᒑᐧ→ + +14AD ; 14A3 00B7 ; MA # ( ᒭ → ᒣ· ) CANADIAN SYLLABICS WEST-CREE MWE → CANADIAN SYLLABICS ME, MIDDLE DOT # →ᒣᐧ→ + +14B1 ; 14A6 00B7 ; MA # ( ᒱ → ᒦ· ) CANADIAN SYLLABICS WEST-CREE MWII → CANADIAN SYLLABICS MII, MIDDLE DOT # →ᒦᐧ→ + +14B3 ; 14A7 00B7 ; MA # ( ᒳ → ᒧ· ) CANADIAN SYLLABICS WEST-CREE MWO → CANADIAN SYLLABICS MO, MIDDLE DOT # →ᒧᐧ→ + +14B5 ; 14A8 00B7 ; MA # ( ᒵ → ᒨ· ) CANADIAN SYLLABICS WEST-CREE MWOO → CANADIAN SYLLABICS MOO, MIDDLE DOT # →ᒨᐧ→ + +14B9 ; 14AB 00B7 ; MA # ( ᒹ → ᒫ· ) CANADIAN SYLLABICS WEST-CREE MWAA → CANADIAN SYLLABICS MAA, MIDDLE DOT # →ᒫᐧ→ + +14CA ; 14C0 00B7 ; MA # ( ᓊ → ᓀ· ) CANADIAN SYLLABICS WEST-CREE NWE → CANADIAN SYLLABICS NE, MIDDLE DOT # →ᓀᐧ→ + +18C7 ; 14C2 00B7 ; MA # ( ᣇ → ᓂ· ) CANADIAN SYLLABICS OJIBWAY NWI → CANADIAN SYLLABICS NI, MIDDLE DOT # →ᓂᐧ→ + +18C9 ; 14C3 00B7 ; MA # ( ᣉ → ᓃ· ) CANADIAN SYLLABICS OJIBWAY NWII → CANADIAN SYLLABICS NII, MIDDLE DOT # →ᓃᐧ→ + +18CB ; 14C4 00B7 ; MA # ( ᣋ → ᓄ· ) CANADIAN SYLLABICS OJIBWAY NWO → CANADIAN SYLLABICS NO, MIDDLE DOT # →ᓄᐧ→ + +18CD ; 14C5 00B7 ; MA # ( ᣍ → ᓅ· ) CANADIAN SYLLABICS OJIBWAY NWOO → CANADIAN SYLLABICS NOO, MIDDLE DOT # →ᓅᐧ→ + +14CC ; 14C7 00B7 ; MA # ( ᓌ → ᓇ· ) CANADIAN SYLLABICS WEST-CREE NWA → CANADIAN SYLLABICS NA, MIDDLE DOT # →ᓇᐧ→ + +14CE ; 14C8 00B7 ; MA # ( ᓎ → ᓈ· ) CANADIAN SYLLABICS WEST-CREE NWAA → CANADIAN SYLLABICS NAA, MIDDLE DOT # →ᓈᐧ→ + +1604 ; 14D3 ; MA # ( ᘄ → ᓓ ) CANADIAN SYLLABICS CARRIER NE → CANADIAN SYLLABICS LE # + +14DD ; 14D3 00B7 ; MA # ( ᓝ → ᓓ· ) CANADIAN SYLLABICS WEST-CREE LWE → CANADIAN SYLLABICS LE, MIDDLE DOT # →ᓓᐧ→ + +14DF ; 14D5 00B7 ; MA # ( ᓟ → ᓕ· ) CANADIAN SYLLABICS WEST-CREE LWI → CANADIAN SYLLABICS LI, MIDDLE DOT # →ᓕᐧ→ + +14E1 ; 14D6 00B7 ; MA # ( ᓡ → ᓖ· ) CANADIAN SYLLABICS WEST-CREE LWII → CANADIAN SYLLABICS LII, MIDDLE DOT # →ᓖᐧ→ + +14E3 ; 14D7 00B7 ; MA # ( ᓣ → ᓗ· ) CANADIAN SYLLABICS WEST-CREE LWO → CANADIAN SYLLABICS LO, MIDDLE DOT # →ᓗᐧ→ + +14E5 ; 14D8 00B7 ; MA # ( ᓥ → ᓘ· ) CANADIAN SYLLABICS WEST-CREE LWOO → CANADIAN SYLLABICS LOO, MIDDLE DOT # →ᓘᐧ→ + +1607 ; 14DA ; MA # ( ᘇ → ᓚ ) CANADIAN SYLLABICS CARRIER NA → CANADIAN SYLLABICS LA # + +14E7 ; 14DA 00B7 ; MA # ( ᓧ → ᓚ· ) CANADIAN SYLLABICS WEST-CREE LWA → CANADIAN SYLLABICS LA, MIDDLE DOT # →ᓚᐧ→ + +14E9 ; 14DB 00B7 ; MA # ( ᓩ → ᓛ· ) CANADIAN SYLLABICS WEST-CREE LWAA → CANADIAN SYLLABICS LAA, MIDDLE DOT # →ᓛᐧ→ + +14F7 ; 14ED 00B7 ; MA # ( ᓷ → ᓭ· ) CANADIAN SYLLABICS WEST-CREE SWE → CANADIAN SYLLABICS SE, MIDDLE DOT # →ᓭᐧ→ + +14F9 ; 14EF 00B7 ; MA # ( ᓹ → ᓯ· ) CANADIAN SYLLABICS WEST-CREE SWI → CANADIAN SYLLABICS SI, MIDDLE DOT # →ᓯᐧ→ + +14FB ; 14F0 00B7 ; MA # ( ᓻ → ᓰ· ) CANADIAN SYLLABICS WEST-CREE SWII → CANADIAN SYLLABICS SII, MIDDLE DOT # →ᓰᐧ→ + +14FD ; 14F1 00B7 ; MA # ( ᓽ → ᓱ· ) CANADIAN SYLLABICS WEST-CREE SWO → CANADIAN SYLLABICS SO, MIDDLE DOT # →ᓱᐧ→ + +14FF ; 14F2 00B7 ; MA # ( ᓿ → ᓲ· ) CANADIAN SYLLABICS WEST-CREE SWOO → CANADIAN SYLLABICS SOO, MIDDLE DOT # →ᓲᐧ→ + +1501 ; 14F4 00B7 ; MA # ( ᔁ → ᓴ· ) CANADIAN SYLLABICS WEST-CREE SWA → CANADIAN SYLLABICS SA, MIDDLE DOT # →ᓴᐧ→ + +1503 ; 14F5 00B7 ; MA # ( ᔃ → ᓵ· ) CANADIAN SYLLABICS WEST-CREE SWAA → CANADIAN SYLLABICS SAA, MIDDLE DOT # →ᓵᐧ→ + +150C ; 150B 003C ; MA # ( ᔌ → ᔋ< ) CANADIAN SYLLABICS NASKAPI SPWA → CANADIAN SYLLABICS NASKAPI S-W, LESS-THAN SIGN # →ᔋᐸ→ + +150E ; 150B 0062 ; MA # ( ᔎ → ᔋb ) CANADIAN SYLLABICS NASKAPI SKWA → CANADIAN SYLLABICS NASKAPI S-W, LATIN SMALL LETTER B # →ᔋᑲ→ + +150D ; 150B 1455 ; MA # ( ᔍ → ᔋᑕ ) CANADIAN SYLLABICS NASKAPI STWA → CANADIAN SYLLABICS NASKAPI S-W, CANADIAN SYLLABICS TA # + +150F ; 150B 1490 ; MA # ( ᔏ → ᔋᒐ ) CANADIAN SYLLABICS NASKAPI SCWA → CANADIAN SYLLABICS NASKAPI S-W, CANADIAN SYLLABICS CA # + +1518 ; 1510 00B7 ; MA # ( ᔘ → ᔐ· ) CANADIAN SYLLABICS WEST-CREE SHWE → CANADIAN SYLLABICS SHE, MIDDLE DOT # →ᔐᐧ→ + +151A ; 1511 00B7 ; MA # ( ᔚ → ᔑ· ) CANADIAN SYLLABICS WEST-CREE SHWI → CANADIAN SYLLABICS SHI, MIDDLE DOT # →ᔑᐧ→ + +151C ; 1512 00B7 ; MA # ( ᔜ → ᔒ· ) CANADIAN SYLLABICS WEST-CREE SHWII → CANADIAN SYLLABICS SHII, MIDDLE DOT # →ᔒᐧ→ + +151E ; 1513 00B7 ; MA # ( ᔞ → ᔓ· ) CANADIAN SYLLABICS WEST-CREE SHWO → CANADIAN SYLLABICS SHO, MIDDLE DOT # →ᔓᐧ→ + +1520 ; 1514 00B7 ; MA # ( ᔠ → ᔔ· ) CANADIAN SYLLABICS WEST-CREE SHWOO → CANADIAN SYLLABICS SHOO, MIDDLE DOT # →ᔔᐧ→ + +1522 ; 1515 00B7 ; MA # ( ᔢ → ᔕ· ) CANADIAN SYLLABICS WEST-CREE SHWA → CANADIAN SYLLABICS SHA, MIDDLE DOT # →ᔕᐧ→ + +1524 ; 1516 00B7 ; MA # ( ᔤ → ᔖ· ) CANADIAN SYLLABICS WEST-CREE SHWAA → CANADIAN SYLLABICS SHAA, MIDDLE DOT # →ᔖᐧ→ + +1532 ; 1528 00B7 ; MA # ( ᔲ → ᔨ· ) CANADIAN SYLLABICS WEST-CREE YWI → CANADIAN SYLLABICS YI, MIDDLE DOT # →ᔨᐧ→ + +1534 ; 1529 00B7 ; MA # ( ᔴ → ᔩ· ) CANADIAN SYLLABICS WEST-CREE YWII → CANADIAN SYLLABICS YII, MIDDLE DOT # →ᔩᐧ→ + +1536 ; 152A 00B7 ; MA # ( ᔶ → ᔪ· ) CANADIAN SYLLABICS WEST-CREE YWO → CANADIAN SYLLABICS YO, MIDDLE DOT # →ᔪᐧ→ + +1538 ; 152B 00B7 ; MA # ( ᔸ → ᔫ· ) CANADIAN SYLLABICS WEST-CREE YWOO → CANADIAN SYLLABICS YOO, MIDDLE DOT # →ᔫᐧ→ + +153A ; 152D 00B7 ; MA # ( ᔺ → ᔭ· ) CANADIAN SYLLABICS WEST-CREE YWA → CANADIAN SYLLABICS YA, MIDDLE DOT # →ᔭᐧ→ + +153C ; 152E 00B7 ; MA # ( ᔼ → ᔮ· ) CANADIAN SYLLABICS WEST-CREE YWAA → CANADIAN SYLLABICS YAA, MIDDLE DOT # →ᔮᐧ→ + +1622 ; 1543 ; MA # ( ᘢ → ᕃ ) CANADIAN SYLLABICS CARRIER LU → CANADIAN SYLLABICS R-CREE RE # + +18E0 ; 1543 00B7 ; MA # ( ᣠ → ᕃ· ) CANADIAN SYLLABICS R-CREE RWE → CANADIAN SYLLABICS R-CREE RE, MIDDLE DOT # →ᕃᐧ→ + +1623 ; 1546 ; MA # ( ᘣ → ᕆ ) CANADIAN SYLLABICS CARRIER LO → CANADIAN SYLLABICS RI # + +1624 ; 154A ; MA # ( ᘤ → ᕊ ) CANADIAN SYLLABICS CARRIER LE → CANADIAN SYLLABICS WEST-CREE LO # + +154F ; 154C 00B7 ; MA # ( ᕏ → ᕌ· ) CANADIAN SYLLABICS WEST-CREE RWAA → CANADIAN SYLLABICS RAA, MIDDLE DOT # →ᕌᐧ→ + +1583 ; 1550 0062 ; MA # ( ᖃ → ᕐb ) CANADIAN SYLLABICS QA → CANADIAN SYLLABICS R, LATIN SMALL LETTER B # →ᕐᑲ→ + +1584 ; 1550 0062 0307 ; MA # ( ᖄ → ᕐḃ ) CANADIAN SYLLABICS QAA → CANADIAN SYLLABICS R, LATIN SMALL LETTER B, COMBINING DOT ABOVE # →ᕐᑳ→ + +1581 ; 1550 0064 ; MA # ( ᖁ → ᕐd ) CANADIAN SYLLABICS QO → CANADIAN SYLLABICS R, LATIN SMALL LETTER D # →ᕐᑯ→ + +157F ; 1550 0050 ; MA # ( ᕿ → ᕐP ) CANADIAN SYLLABICS QI → CANADIAN SYLLABICS R, LATIN CAPITAL LETTER P # →ᕐᑭ→ + +166F ; 1550 146B ; MA # ( ᙯ → ᕐᑫ ) CANADIAN SYLLABICS QAI → CANADIAN SYLLABICS R, CANADIAN SYLLABICS KE # + +157E ; 1550 146C ; MA # ( ᕾ → ᕐᑬ ) CANADIAN SYLLABICS QAAI → CANADIAN SYLLABICS R, CANADIAN SYLLABICS KAAI # + +1580 ; 1550 146E ; MA # ( ᖀ → ᕐᑮ ) CANADIAN SYLLABICS QII → CANADIAN SYLLABICS R, CANADIAN SYLLABICS KII # + +1582 ; 1550 1470 ; MA # ( ᖂ → ᕐᑰ ) CANADIAN SYLLABICS QOO → CANADIAN SYLLABICS R, CANADIAN SYLLABICS KOO # + +1585 ; 1550 1483 ; MA # ( ᖅ → ᕐᒃ ) CANADIAN SYLLABICS Q → CANADIAN SYLLABICS R, CANADIAN SYLLABICS K # + +155C ; 155A 00B7 ; MA # ( ᕜ → ᕚ· ) CANADIAN SYLLABICS WEST-CREE FWAA → CANADIAN SYLLABICS FAA, MIDDLE DOT # →ᕚᐧ→ + +18E3 ; 155E 00B7 ; MA # ( ᣣ → ᕞ· ) CANADIAN SYLLABICS THWE → CANADIAN SYLLABICS THE, MIDDLE DOT # →ᕞᐧ→ + +18E4 ; 1566 00B7 ; MA # ( ᣤ → ᕦ· ) CANADIAN SYLLABICS THWA → CANADIAN SYLLABICS THA, MIDDLE DOT # →ᕦᐧ→ + +1569 ; 1567 00B7 ; MA # ( ᕩ → ᕧ· ) CANADIAN SYLLABICS WEST-CREE THWAA → CANADIAN SYLLABICS THAA, MIDDLE DOT # →ᕧᐧ→ + +18E5 ; 156B 00B7 ; MA # ( ᣥ → ᕫ· ) CANADIAN SYLLABICS TTHWE → CANADIAN SYLLABICS TTHE, MIDDLE DOT # →ᕫᐧ→ + +18E8 ; 1586 00B7 ; MA # ( ᣨ → ᖆ· ) CANADIAN SYLLABICS TLHWE → CANADIAN SYLLABICS TLHE, MIDDLE DOT # →ᖆᐧ→ + +1591 ; 1595 004A ; MA # ( ᖑ → ᖕJ ) CANADIAN SYLLABICS NGO → CANADIAN SYLLABICS NG, LATIN CAPITAL LETTER J # →ᖕᒍ→ + +1670 ; 1595 1489 ; MA # ( ᙰ → ᖕᒉ ) CANADIAN SYLLABICS NGAI → CANADIAN SYLLABICS NG, CANADIAN SYLLABICS CE # + +158E ; 1595 148A ; MA # ( ᖎ → ᖕᒊ ) CANADIAN SYLLABICS NGAAI → CANADIAN SYLLABICS NG, CANADIAN SYLLABICS CAAI # + +158F ; 1595 148B ; MA # ( ᖏ → ᖕᒋ ) CANADIAN SYLLABICS NGI → CANADIAN SYLLABICS NG, CANADIAN SYLLABICS CI # + +1590 ; 1595 148C ; MA # ( ᖐ → ᖕᒌ ) CANADIAN SYLLABICS NGII → CANADIAN SYLLABICS NG, CANADIAN SYLLABICS CII # + +1592 ; 1595 148E ; MA # ( ᖒ → ᖕᒎ ) CANADIAN SYLLABICS NGOO → CANADIAN SYLLABICS NG, CANADIAN SYLLABICS COO # + +1593 ; 1595 1490 ; MA # ( ᖓ → ᖕᒐ ) CANADIAN SYLLABICS NGA → CANADIAN SYLLABICS NG, CANADIAN SYLLABICS CA # + +1594 ; 1595 1491 ; MA # ( ᖔ → ᖕᒑ ) CANADIAN SYLLABICS NGAA → CANADIAN SYLLABICS NG, CANADIAN SYLLABICS CAA # + +1673 ; 1596 004A ; MA # ( ᙳ → ᖖJ ) CANADIAN SYLLABICS NNGO → CANADIAN SYLLABICS NNG, LATIN CAPITAL LETTER J # →ᖖᒍ→ + +1671 ; 1596 148B ; MA # ( ᙱ → ᖖᒋ ) CANADIAN SYLLABICS NNGI → CANADIAN SYLLABICS NNG, CANADIAN SYLLABICS CI # + +1672 ; 1596 148C ; MA # ( ᙲ → ᖖᒌ ) CANADIAN SYLLABICS NNGII → CANADIAN SYLLABICS NNG, CANADIAN SYLLABICS CII # + +1674 ; 1596 148E ; MA # ( ᙴ → ᖖᒎ ) CANADIAN SYLLABICS NNGOO → CANADIAN SYLLABICS NNG, CANADIAN SYLLABICS COO # + +1675 ; 1596 1490 ; MA # ( ᙵ → ᖖᒐ ) CANADIAN SYLLABICS NNGA → CANADIAN SYLLABICS NNG, CANADIAN SYLLABICS CA # + +1676 ; 1596 1491 ; MA # ( ᙶ → ᖖᒑ ) CANADIAN SYLLABICS NNGAA → CANADIAN SYLLABICS NNG, CANADIAN SYLLABICS CAA # + +18EA ; 1597 00B7 ; MA # ( ᣪ → ᖗ· ) CANADIAN SYLLABICS SAYISI SHWE → CANADIAN SYLLABICS SAYISI SHE, MIDDLE DOT # →ᖗᐧ→ + +1677 ; 15A7 00B7 ; MA # ( ᙷ → ᖧ· ) CANADIAN SYLLABICS WOODS-CREE THWEE → CANADIAN SYLLABICS TH-CREE THE, MIDDLE DOT # →ᖧᐧ→ + +1678 ; 15A8 00B7 ; MA # ( ᙸ → ᖨ· ) CANADIAN SYLLABICS WOODS-CREE THWI → CANADIAN SYLLABICS TH-CREE THI, MIDDLE DOT # →ᖨᐧ→ + +1679 ; 15A9 00B7 ; MA # ( ᙹ → ᖩ· ) CANADIAN SYLLABICS WOODS-CREE THWII → CANADIAN SYLLABICS TH-CREE THII, MIDDLE DOT # →ᖩᐧ→ + +167A ; 15AA 00B7 ; MA # ( ᙺ → ᖪ· ) CANADIAN SYLLABICS WOODS-CREE THWO → CANADIAN SYLLABICS TH-CREE THO, MIDDLE DOT # →ᖪᐧ→ + +167B ; 15AB 00B7 ; MA # ( ᙻ → ᖫ· ) CANADIAN SYLLABICS WOODS-CREE THWOO → CANADIAN SYLLABICS TH-CREE THOO, MIDDLE DOT # →ᖫᐧ→ + +167C ; 15AC 00B7 ; MA # ( ᙼ → ᖬ· ) CANADIAN SYLLABICS WOODS-CREE THWA → CANADIAN SYLLABICS TH-CREE THA, MIDDLE DOT # →ᖬᐧ→ + +167D ; 15AD 00B7 ; MA # ( ᙽ → ᖭ· ) CANADIAN SYLLABICS WOODS-CREE THWAA → CANADIAN SYLLABICS TH-CREE THAA, MIDDLE DOT # →ᖭᐧ→ + +2AAB ; 15D2 ; MA #* ( ⪫ → ᗒ ) LARGER THAN → CANADIAN SYLLABICS CARRIER WE # + +2AAA ; 15D5 ; MA #* ( ⪪ → ᗕ ) SMALLER THAN → CANADIAN SYLLABICS CARRIER WA # + +A4F7 ; 15E1 ; MA # ( ꓷ → ᗡ ) LISU LETTER OE → CANADIAN SYLLABICS CARRIER THA # + +18F0 ; 15F4 00B7 ; MA # ( ᣰ → ᗴ· ) CANADIAN SYLLABICS CARRIER GWA → CANADIAN SYLLABICS CARRIER GA, MIDDLE DOT # →ᗴᐧ→ + +18F2 ; 161B 00B7 ; MA # ( ᣲ → ᘛ· ) CANADIAN SYLLABICS CARRIER JWA → CANADIAN SYLLABICS CARRIER JA, MIDDLE DOT # →ᘛᐧ→ + +1DBB ; 1646 ; MA # ( ᶻ → ᙆ ) MODIFIER LETTER SMALL Z → CANADIAN SYLLABICS CARRIER Z # + +A4ED ; 1660 ; MA # ( ꓭ → ᙠ ) LISU LETTER GHA → CANADIAN SYLLABICS CARRIER TSA # + +1DBA ; 18D4 ; MA # ( ᶺ → ᣔ ) MODIFIER LETTER SMALL TURNED V → CANADIAN SYLLABICS OJIBWAY P # + +1D3E ; 18D6 ; MA # ( ᴾ → ᣖ ) MODIFIER LETTER CAPITAL P → CANADIAN SYLLABICS OJIBWAY K # + +18DC ; 18DF 141E ; MA # ( ᣜ → ᣟᐞ ) CANADIAN SYLLABICS EASTERN W → CANADIAN SYLLABICS FINAL RAISED DOT, CANADIAN SYLLABICS GLOTTAL STOP # + +02E1 ; 18F3 ; MA # ( ˡ → ᣳ ) MODIFIER LETTER SMALL L → CANADIAN SYLLABICS BEAVER DENE L # + +02B3 ; 18F4 ; MA # ( ʳ → ᣴ ) MODIFIER LETTER SMALL R → CANADIAN SYLLABICS BEAVER DENE R # + +02E2 ; 18F5 ; MA # ( ˢ → ᣵ ) MODIFIER LETTER SMALL S → CANADIAN SYLLABICS CARRIER DENTAL S # +18DB ; 18F5 ; MA # ( ᣛ → ᣵ ) CANADIAN SYLLABICS OJIBWAY SH → CANADIAN SYLLABICS CARRIER DENTAL S # →ˢ→ + +A6B0 ; 16B9 ; MA # ( ꚰ → ᚹ ) BAMUM LETTER TAA → RUNIC LETTER WUNJO WYNN W # + +16E1 ; 16BC ; MA # ( ᛡ → ᚼ ) RUNIC LETTER IOR → RUNIC LETTER LONG-BRANCH-HAGALL H # + +237F ; 16BD ; MA #* ( ⍿ → ᚽ ) VERTICAL LINE WITH MIDDLE DOT → RUNIC LETTER SHORT-TWIG-HAGALL H # →ᛂ→ +16C2 ; 16BD ; MA # ( ᛂ → ᚽ ) RUNIC LETTER E → RUNIC LETTER SHORT-TWIG-HAGALL H # + +1D23F ; 16CB ; MA #* ( 𝈿 → ᛋ ) GREEK INSTRUMENTAL NOTATION SYMBOL-52 → RUNIC LETTER SIGEL LONG-BRANCH-SOL S # + +2191 ; 16CF ; MA #* ( ↑ → ᛏ ) UPWARDS ARROW → RUNIC LETTER TIWAZ TIR TYR T # + +21BF ; 16D0 ; MA #* ( ↿ → ᛐ ) UPWARDS HARPOON WITH BARB LEFTWARDS → RUNIC LETTER SHORT-TWIG-TYR T # + +296E ; 16D0 21C2 ; MA #* ( ⥮ → ᛐ⇂ ) UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT → RUNIC LETTER SHORT-TWIG-TYR T, DOWNWARDS HARPOON WITH BARB RIGHTWARDS # →↿⇂→ + +2963 ; 16D0 16DA ; MA #* ( ⥣ → ᛐᛚ ) UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT → RUNIC LETTER SHORT-TWIG-TYR T, RUNIC LETTER LAUKAZ LAGU LOGR L # →↿↾→ + +2D63 ; 16EF ; MA # ( ⵣ → ᛯ ) TIFINAGH LETTER YAZ → RUNIC TVIMADUR SYMBOL # + +21BE ; 16DA ; MA #* ( ↾ → ᛚ ) UPWARDS HARPOON WITH BARB RIGHTWARDS → RUNIC LETTER LAUKAZ LAGU LOGR L # +2A21 ; 16DA ; MA #* ( ⨡ → ᛚ ) Z NOTATION SCHEMA PROJECTION → RUNIC LETTER LAUKAZ LAGU LOGR L # →↾→ + +22C4 ; 16DC ; MA #* ( ⋄ → ᛜ ) DIAMOND OPERATOR → RUNIC LETTER INGWAZ # →◇→ +25C7 ; 16DC ; MA #* ( ◇ → ᛜ ) WHITE DIAMOND → RUNIC LETTER INGWAZ # +25CA ; 16DC ; MA #* ( ◊ → ᛜ ) LOZENGE → RUNIC LETTER INGWAZ # →⋄→→◇→ +2662 ; 16DC ; MA #* ( ♢ → ᛜ ) WHITE DIAMOND SUIT → RUNIC LETTER INGWAZ # →◊→→⋄→→◇→ +1F754 ; 16DC ; MA #* ( 🝔 → ᛜ ) ALCHEMICAL SYMBOL FOR SOAP → RUNIC LETTER INGWAZ # →◇→ +118B7 ; 16DC ; MA # ( 𑢷 → ᛜ ) WARANG CITI CAPITAL LETTER BU → RUNIC LETTER INGWAZ # →◇→ +10294 ; 16DC ; MA # ( 𐊔 → ᛜ ) LYCIAN LETTER KK → RUNIC LETTER INGWAZ # →◇→ + +235A ; 16DC 0332 ; MA #* ( ⍚ → ᛜ̲ ) APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR → RUNIC LETTER INGWAZ, COMBINING LOW LINE # →◇̲→ + +22C8 ; 16DE ; MA #* ( ⋈ → ᛞ ) BOWTIE → RUNIC LETTER DAGAZ DAEG D # +2A1D ; 16DE ; MA #* ( ⨝ → ᛞ ) JOIN → RUNIC LETTER DAGAZ DAEG D # →⋈→ + +104D0 ; 16E6 ; MA # ( 𐓐 → ᛦ ) OSAGE CAPITAL LETTER KHA → RUNIC LETTER LONG-BRANCH-YR # + +2195 ; 16E8 ; MA #* ( ↕ → ᛨ ) UP DOWN ARROW → RUNIC LETTER ICELANDIC-YR # + +10CFC ; 10C82 ; MA #* ( ‎𐳼‎ → ‎𐲂‎ ) OLD HUNGARIAN NUMBER TEN → OLD HUNGARIAN CAPITAL LETTER EB # + +10CFA ; 10CA5 ; MA #* ( ‎𐳺‎ → ‎𐲥‎ ) OLD HUNGARIAN NUMBER ONE → OLD HUNGARIAN CAPITAL LETTER ESZ # + +3131 ; 1100 ; MA # ( ㄱ → ᄀ ) HANGUL LETTER KIYEOK → HANGUL CHOSEONG KIYEOK # +11A8 ; 1100 ; MA # ( ᆨ → ᄀ ) HANGUL JONGSEONG KIYEOK → HANGUL CHOSEONG KIYEOK # + +1101 ; 1100 1100 ; MA # ( ᄁ → ᄀᄀ ) HANGUL CHOSEONG SSANGKIYEOK → HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG KIYEOK # +3132 ; 1100 1100 ; MA # ( ㄲ → ᄀᄀ ) HANGUL LETTER SSANGKIYEOK → HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG KIYEOK # →ᄁ→ +11A9 ; 1100 1100 ; MA # ( ᆩ → ᄀᄀ ) HANGUL JONGSEONG SSANGKIYEOK → HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG KIYEOK # →ᄁ→ + +11FA ; 1100 1102 ; MA # ( ᇺ → ᄀᄂ ) HANGUL JONGSEONG KIYEOK-NIEUN → HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG NIEUN # →ᆨᆫ→ + +115A ; 1100 1103 ; MA # ( ᅚ → ᄀᄃ ) HANGUL CHOSEONG KIYEOK-TIKEUT → HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG TIKEUT # + +11C3 ; 1100 1105 ; MA # ( ᇃ → ᄀᄅ ) HANGUL JONGSEONG KIYEOK-RIEUL → HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG RIEUL # →ᆨᆯ→ + +11FB ; 1100 1107 ; MA # ( ᇻ → ᄀᄇ ) HANGUL JONGSEONG KIYEOK-PIEUP → HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG PIEUP # →ᆨᆸ→ + +11AA ; 1100 1109 ; MA # ( ᆪ → ᄀᄉ ) HANGUL JONGSEONG KIYEOK-SIOS → HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG SIOS # →ᆨᆺ→ +3133 ; 1100 1109 ; MA # ( ㄳ → ᄀᄉ ) HANGUL LETTER KIYEOK-SIOS → HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG SIOS # →ᆪ→→ᆨᆺ→ + +11C4 ; 1100 1109 1100 ; MA # ( ᇄ → ᄀᄉᄀ ) HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK → HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG KIYEOK # →ᆨᆺᆨ→ + +11FC ; 1100 110E ; MA # ( ᇼ → ᄀᄎ ) HANGUL JONGSEONG KIYEOK-CHIEUCH → HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG CHIEUCH # →ᆨᆾ→ + +11FD ; 1100 110F ; MA # ( ᇽ → ᄀᄏ ) HANGUL JONGSEONG KIYEOK-KHIEUKH → HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG KHIEUKH # →ᆨᆿ→ + +11FE ; 1100 1112 ; MA # ( ᇾ → ᄀᄒ ) HANGUL JONGSEONG KIYEOK-HIEUH → HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG HIEUH # →ᆨᇂ→ + +3134 ; 1102 ; MA # ( ㄴ → ᄂ ) HANGUL LETTER NIEUN → HANGUL CHOSEONG NIEUN # +11AB ; 1102 ; MA # ( ᆫ → ᄂ ) HANGUL JONGSEONG NIEUN → HANGUL CHOSEONG NIEUN # + +1113 ; 1102 1100 ; MA # ( ᄓ → ᄂᄀ ) HANGUL CHOSEONG NIEUN-KIYEOK → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG KIYEOK # +11C5 ; 1102 1100 ; MA # ( ᇅ → ᄂᄀ ) HANGUL JONGSEONG NIEUN-KIYEOK → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG KIYEOK # →ᄓ→ + +1114 ; 1102 1102 ; MA # ( ᄔ → ᄂᄂ ) HANGUL CHOSEONG SSANGNIEUN → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG NIEUN # +3165 ; 1102 1102 ; MA # ( ㅥ → ᄂᄂ ) HANGUL LETTER SSANGNIEUN → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG NIEUN # →ᄔ→ +11FF ; 1102 1102 ; MA # ( ᇿ → ᄂᄂ ) HANGUL JONGSEONG SSANGNIEUN → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG NIEUN # →ᆫᆫ→ + +1115 ; 1102 1103 ; MA # ( ᄕ → ᄂᄃ ) HANGUL CHOSEONG NIEUN-TIKEUT → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG TIKEUT # +3166 ; 1102 1103 ; MA # ( ㅦ → ᄂᄃ ) HANGUL LETTER NIEUN-TIKEUT → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG TIKEUT # →ᄕ→ +11C6 ; 1102 1103 ; MA # ( ᇆ → ᄂᄃ ) HANGUL JONGSEONG NIEUN-TIKEUT → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG TIKEUT # →ᄕ→ + +D7CB ; 1102 1105 ; MA # ( ퟋ → ᄂᄅ ) HANGUL JONGSEONG NIEUN-RIEUL → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG RIEUL # →ᆫᆯ→ + +1116 ; 1102 1107 ; MA # ( ᄖ → ᄂᄇ ) HANGUL CHOSEONG NIEUN-PIEUP → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG PIEUP # + +115B ; 1102 1109 ; MA # ( ᅛ → ᄂᄉ ) HANGUL CHOSEONG NIEUN-SIOS → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG SIOS # +11C7 ; 1102 1109 ; MA # ( ᇇ → ᄂᄉ ) HANGUL JONGSEONG NIEUN-SIOS → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG SIOS # →ᆫᆺ→ +3167 ; 1102 1109 ; MA # ( ㅧ → ᄂᄉ ) HANGUL LETTER NIEUN-SIOS → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG SIOS # →ᇇ→→ᆫᆺ→ + +115C ; 1102 110C ; MA # ( ᅜ → ᄂᄌ ) HANGUL CHOSEONG NIEUN-CIEUC → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG CIEUC # +11AC ; 1102 110C ; MA # ( ᆬ → ᄂᄌ ) HANGUL JONGSEONG NIEUN-CIEUC → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG CIEUC # →ᆫᆽ→ +3135 ; 1102 110C ; MA # ( ㄵ → ᄂᄌ ) HANGUL LETTER NIEUN-CIEUC → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG CIEUC # →ᆬ→→ᆫᆽ→ + +D7CC ; 1102 110E ; MA # ( ퟌ → ᄂᄎ ) HANGUL JONGSEONG NIEUN-CHIEUCH → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG CHIEUCH # →ᆫᆾ→ + +11C9 ; 1102 1110 ; MA # ( ᇉ → ᄂᄐ ) HANGUL JONGSEONG NIEUN-THIEUTH → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG THIEUTH # →ᆫᇀ→ + +115D ; 1102 1112 ; MA # ( ᅝ → ᄂᄒ ) HANGUL CHOSEONG NIEUN-HIEUH → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG HIEUH # +11AD ; 1102 1112 ; MA # ( ᆭ → ᄂᄒ ) HANGUL JONGSEONG NIEUN-HIEUH → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG HIEUH # →ᆫᇂ→ +3136 ; 1102 1112 ; MA # ( ㄶ → ᄂᄒ ) HANGUL LETTER NIEUN-HIEUH → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG HIEUH # →ᆭ→→ᆫᇂ→ + +11C8 ; 1102 1140 ; MA # ( ᇈ → ᄂᅀ ) HANGUL JONGSEONG NIEUN-PANSIOS → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG PANSIOS # →ᆫᇫ→ +3168 ; 1102 1140 ; MA # ( ㅨ → ᄂᅀ ) HANGUL LETTER NIEUN-PANSIOS → HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG PANSIOS # →ᇈ→→ᆫᇫ→ + +3137 ; 1103 ; MA # ( ㄷ → ᄃ ) HANGUL LETTER TIKEUT → HANGUL CHOSEONG TIKEUT # +11AE ; 1103 ; MA # ( ᆮ → ᄃ ) HANGUL JONGSEONG TIKEUT → HANGUL CHOSEONG TIKEUT # + +1117 ; 1103 1100 ; MA # ( ᄗ → ᄃᄀ ) HANGUL CHOSEONG TIKEUT-KIYEOK → HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG KIYEOK # +11CA ; 1103 1100 ; MA # ( ᇊ → ᄃᄀ ) HANGUL JONGSEONG TIKEUT-KIYEOK → HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG KIYEOK # →ᄗ→ + +1104 ; 1103 1103 ; MA # ( ᄄ → ᄃᄃ ) HANGUL CHOSEONG SSANGTIKEUT → HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG TIKEUT # +3138 ; 1103 1103 ; MA # ( ㄸ → ᄃᄃ ) HANGUL LETTER SSANGTIKEUT → HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG TIKEUT # →ᄄ→ +D7CD ; 1103 1103 ; MA # ( ퟍ → ᄃᄃ ) HANGUL JONGSEONG SSANGTIKEUT → HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG TIKEUT # →ᆮᆮ→ + +D7CE ; 1103 1103 1107 ; MA # ( ퟎ → ᄃᄃᄇ ) HANGUL JONGSEONG SSANGTIKEUT-PIEUP → HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG PIEUP # →ᆮᆮᆸ→ + +115E ; 1103 1105 ; MA # ( ᅞ → ᄃᄅ ) HANGUL CHOSEONG TIKEUT-RIEUL → HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG RIEUL # +11CB ; 1103 1105 ; MA # ( ᇋ → ᄃᄅ ) HANGUL JONGSEONG TIKEUT-RIEUL → HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG RIEUL # →ᆮᆯ→ + +A960 ; 1103 1106 ; MA # ( ꥠ → ᄃᄆ ) HANGUL CHOSEONG TIKEUT-MIEUM → HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG MIEUM # + +A961 ; 1103 1107 ; MA # ( ꥡ → ᄃᄇ ) HANGUL CHOSEONG TIKEUT-PIEUP → HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG PIEUP # +D7CF ; 1103 1107 ; MA # ( ퟏ → ᄃᄇ ) HANGUL JONGSEONG TIKEUT-PIEUP → HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG PIEUP # →ᆮᆸ→ + +A962 ; 1103 1109 ; MA # ( ꥢ → ᄃᄉ ) HANGUL CHOSEONG TIKEUT-SIOS → HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG SIOS # +D7D0 ; 1103 1109 ; MA # ( ퟐ → ᄃᄉ ) HANGUL JONGSEONG TIKEUT-SIOS → HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG SIOS # →ᆮᆺ→ + +D7D1 ; 1103 1109 1100 ; MA # ( ퟑ → ᄃᄉᄀ ) HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK → HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG KIYEOK # →ᆮᆺᆨ→ + +A963 ; 1103 110C ; MA # ( ꥣ → ᄃᄌ ) HANGUL CHOSEONG TIKEUT-CIEUC → HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG CIEUC # +D7D2 ; 1103 110C ; MA # ( ퟒ → ᄃᄌ ) HANGUL JONGSEONG TIKEUT-CIEUC → HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG CIEUC # →ᆮᆽ→ + +D7D3 ; 1103 110E ; MA # ( ퟓ → ᄃᄎ ) HANGUL JONGSEONG TIKEUT-CHIEUCH → HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG CHIEUCH # →ᆮᆾ→ + +D7D4 ; 1103 1110 ; MA # ( ퟔ → ᄃᄐ ) HANGUL JONGSEONG TIKEUT-THIEUTH → HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG THIEUTH # →ᆮᇀ→ + +3139 ; 1105 ; MA # ( ㄹ → ᄅ ) HANGUL LETTER RIEUL → HANGUL CHOSEONG RIEUL # +11AF ; 1105 ; MA # ( ᆯ → ᄅ ) HANGUL JONGSEONG RIEUL → HANGUL CHOSEONG RIEUL # + +A964 ; 1105 1100 ; MA # ( ꥤ → ᄅᄀ ) HANGUL CHOSEONG RIEUL-KIYEOK → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KIYEOK # +11B0 ; 1105 1100 ; MA # ( ᆰ → ᄅᄀ ) HANGUL JONGSEONG RIEUL-KIYEOK → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KIYEOK # →ᆯᆨ→ +313A ; 1105 1100 ; MA # ( ㄺ → ᄅᄀ ) HANGUL LETTER RIEUL-KIYEOK → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KIYEOK # →ᆰ→→ᆯᆨ→ + +A965 ; 1105 1100 1100 ; MA # ( ꥥ → ᄅᄀᄀ ) HANGUL CHOSEONG RIEUL-SSANGKIYEOK → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG KIYEOK # +D7D5 ; 1105 1100 1100 ; MA # ( ퟕ → ᄅᄀᄀ ) HANGUL JONGSEONG RIEUL-SSANGKIYEOK → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG KIYEOK # →ᆯᆨᆨ→ + +11CC ; 1105 1100 1109 ; MA # ( ᇌ → ᄅᄀᄉ ) HANGUL JONGSEONG RIEUL-KIYEOK-SIOS → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG SIOS # →ᆯᆨᆺ→ +3169 ; 1105 1100 1109 ; MA # ( ㅩ → ᄅᄀᄉ ) HANGUL LETTER RIEUL-KIYEOK-SIOS → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG SIOS # →ᇌ→→ᆯᆨᆺ→ + +D7D6 ; 1105 1100 1112 ; MA # ( ퟖ → ᄅᄀᄒ ) HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG HIEUH # →ᆯᆨᇂ→ + +1118 ; 1105 1102 ; MA # ( ᄘ → ᄅᄂ ) HANGUL CHOSEONG RIEUL-NIEUN → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG NIEUN # +11CD ; 1105 1102 ; MA # ( ᇍ → ᄅᄂ ) HANGUL JONGSEONG RIEUL-NIEUN → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG NIEUN # →ᄘ→ + +A966 ; 1105 1103 ; MA # ( ꥦ → ᄅᄃ ) HANGUL CHOSEONG RIEUL-TIKEUT → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG TIKEUT # +11CE ; 1105 1103 ; MA # ( ᇎ → ᄅᄃ ) HANGUL JONGSEONG RIEUL-TIKEUT → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG TIKEUT # →ᆯᆮ→ +316A ; 1105 1103 ; MA # ( ㅪ → ᄅᄃ ) HANGUL LETTER RIEUL-TIKEUT → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG TIKEUT # →ᇎ→→ᆯᆮ→ + +A967 ; 1105 1103 1103 ; MA # ( ꥧ → ᄅᄃᄃ ) HANGUL CHOSEONG RIEUL-SSANGTIKEUT → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG TIKEUT # + +11CF ; 1105 1103 1112 ; MA # ( ᇏ → ᄅᄃᄒ ) HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG TIKEUT, HANGUL CHOSEONG HIEUH # →ᆯᆮᇂ→ + +1119 ; 1105 1105 ; MA # ( ᄙ → ᄅᄅ ) HANGUL CHOSEONG SSANGRIEUL → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG RIEUL # +11D0 ; 1105 1105 ; MA # ( ᇐ → ᄅᄅ ) HANGUL JONGSEONG SSANGRIEUL → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG RIEUL # →ᄙ→ + +D7D7 ; 1105 1105 110F ; MA # ( ퟗ → ᄅᄅᄏ ) HANGUL JONGSEONG SSANGRIEUL-KHIEUKH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KHIEUKH # →ᆯᆯᆿ→ + +A968 ; 1105 1106 ; MA # ( ꥨ → ᄅᄆ ) HANGUL CHOSEONG RIEUL-MIEUM → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG MIEUM # +11B1 ; 1105 1106 ; MA # ( ᆱ → ᄅᄆ ) HANGUL JONGSEONG RIEUL-MIEUM → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG MIEUM # →ᆯᆷ→ +313B ; 1105 1106 ; MA # ( ㄻ → ᄅᄆ ) HANGUL LETTER RIEUL-MIEUM → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG MIEUM # →ᆱ→→ᆯᆷ→ + +11D1 ; 1105 1106 1100 ; MA # ( ᇑ → ᄅᄆᄀ ) HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG KIYEOK # →ᆯᆷᆨ→ + +11D2 ; 1105 1106 1109 ; MA # ( ᇒ → ᄅᄆᄉ ) HANGUL JONGSEONG RIEUL-MIEUM-SIOS → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG SIOS # →ᆯᆷᆺ→ + +D7D8 ; 1105 1106 1112 ; MA # ( ퟘ → ᄅᄆᄒ ) HANGUL JONGSEONG RIEUL-MIEUM-HIEUH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG HIEUH # →ᆯᆷᇂ→ + +A969 ; 1105 1107 ; MA # ( ꥩ → ᄅᄇ ) HANGUL CHOSEONG RIEUL-PIEUP → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP # +11B2 ; 1105 1107 ; MA # ( ᆲ → ᄅᄇ ) HANGUL JONGSEONG RIEUL-PIEUP → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP # →ᆯᆸ→ +313C ; 1105 1107 ; MA # ( ㄼ → ᄅᄇ ) HANGUL LETTER RIEUL-PIEUP → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP # →ᆲ→→ᆯᆸ→ + +D7D9 ; 1105 1107 1103 ; MA # ( ퟙ → ᄅᄇᄃ ) HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG TIKEUT # →ᆯᆸᆮ→ + +A96A ; 1105 1107 1107 ; MA # ( ꥪ → ᄅᄇᄇ ) HANGUL CHOSEONG RIEUL-SSANGPIEUP → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PIEUP # + +11D3 ; 1105 1107 1109 ; MA # ( ᇓ → ᄅᄇᄉ ) HANGUL JONGSEONG RIEUL-PIEUP-SIOS → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS # →ᆯᆸᆺ→ +316B ; 1105 1107 1109 ; MA # ( ㅫ → ᄅᄇᄉ ) HANGUL LETTER RIEUL-PIEUP-SIOS → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS # →ᇓ→→ᆯᆸᆺ→ + +A96B ; 1105 1107 110B ; MA # ( ꥫ → ᄅᄇᄋ ) HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG IEUNG # +11D5 ; 1105 1107 110B ; MA # ( ᇕ → ᄅᄇᄋ ) HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG IEUNG # →ᆯᆸᆼ→ + +D7DA ; 1105 1107 1111 ; MA # ( ퟚ → ᄅᄇᄑ ) HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PHIEUPH # →ᆯᆸᇁ→ + +11D4 ; 1105 1107 1112 ; MA # ( ᇔ → ᄅᄇᄒ ) HANGUL JONGSEONG RIEUL-PIEUP-HIEUH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG HIEUH # →ᆯᆸᇂ→ + +A96C ; 1105 1109 ; MA # ( ꥬ → ᄅᄉ ) HANGUL CHOSEONG RIEUL-SIOS → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG SIOS # +11B3 ; 1105 1109 ; MA # ( ᆳ → ᄅᄉ ) HANGUL JONGSEONG RIEUL-SIOS → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG SIOS # →ᆯᆺ→ +313D ; 1105 1109 ; MA # ( ㄽ → ᄅᄉ ) HANGUL LETTER RIEUL-SIOS → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG SIOS # →ᆳ→→ᆯᆺ→ + +11D6 ; 1105 1109 1109 ; MA # ( ᇖ → ᄅᄉᄉ ) HANGUL JONGSEONG RIEUL-SSANGSIOS → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS # →ᆯᆺᆺ→ + +111B ; 1105 110B ; MA # ( ᄛ → ᄅᄋ ) HANGUL CHOSEONG KAPYEOUNRIEUL → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG IEUNG # +D7DD ; 1105 110B ; MA # ( ퟝ → ᄅᄋ ) HANGUL JONGSEONG KAPYEOUNRIEUL → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG IEUNG # →ᆯᆼ→ + +A96D ; 1105 110C ; MA # ( ꥭ → ᄅᄌ ) HANGUL CHOSEONG RIEUL-CIEUC → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG CIEUC # + +A96E ; 1105 110F ; MA # ( ꥮ → ᄅᄏ ) HANGUL CHOSEONG RIEUL-KHIEUKH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KHIEUKH # +11D8 ; 1105 110F ; MA # ( ᇘ → ᄅᄏ ) HANGUL JONGSEONG RIEUL-KHIEUKH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG KHIEUKH # →ᆯᆿ→ + +11B4 ; 1105 1110 ; MA # ( ᆴ → ᄅᄐ ) HANGUL JONGSEONG RIEUL-THIEUTH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG THIEUTH # →ᆯᇀ→ +313E ; 1105 1110 ; MA # ( ㄾ → ᄅᄐ ) HANGUL LETTER RIEUL-THIEUTH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG THIEUTH # →ᆴ→→ᆯᇀ→ + +11B5 ; 1105 1111 ; MA # ( ᆵ → ᄅᄑ ) HANGUL JONGSEONG RIEUL-PHIEUPH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PHIEUPH # →ᆯᇁ→ +313F ; 1105 1111 ; MA # ( ㄿ → ᄅᄑ ) HANGUL LETTER RIEUL-PHIEUPH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PHIEUPH # →ᆵ→→ᆯᇁ→ + +111A ; 1105 1112 ; MA # ( ᄚ → ᄅᄒ ) HANGUL CHOSEONG RIEUL-HIEUH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG HIEUH # +3140 ; 1105 1112 ; MA # ( ㅀ → ᄅᄒ ) HANGUL LETTER RIEUL-HIEUH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG HIEUH # →ᄚ→ +113B ; 1105 1112 ; MA # ( ᄻ → ᄅᄒ ) HANGUL CHOSEONG SIOS-HIEUH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG HIEUH # →ᄚ→ +11B6 ; 1105 1112 ; MA # ( ᆶ → ᄅᄒ ) HANGUL JONGSEONG RIEUL-HIEUH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG HIEUH # →ᄚ→ +D7F2 ; 1105 1112 ; MA # ( ퟲ → ᄅᄒ ) HANGUL JONGSEONG SIOS-HIEUH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG HIEUH # →ᆺᇂ→→ᄉᄒ→→ᄻ→→ᄚ→ + +11D7 ; 1105 1140 ; MA # ( ᇗ → ᄅᅀ ) HANGUL JONGSEONG RIEUL-PANSIOS → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PANSIOS # →ᆯᇫ→ +316C ; 1105 1140 ; MA # ( ㅬ → ᄅᅀ ) HANGUL LETTER RIEUL-PANSIOS → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PANSIOS # →ᇗ→→ᆯᇫ→ + +D7DB ; 1105 114C ; MA # ( ퟛ → ᄅᅌ ) HANGUL JONGSEONG RIEUL-YESIEUNG → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG YESIEUNG # →ᆯᇰ→ + +11D9 ; 1105 1159 ; MA # ( ᇙ → ᄅᅙ ) HANGUL JONGSEONG RIEUL-YEORINHIEUH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG YEORINHIEUH # →ᆯᇹ→ +316D ; 1105 1159 ; MA # ( ㅭ → ᄅᅙ ) HANGUL LETTER RIEUL-YEORINHIEUH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG YEORINHIEUH # →ᇙ→→ᆯᇹ→ + +D7DC ; 1105 1159 1112 ; MA # ( ퟜ → ᄅᅙᄒ ) HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH → HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG YEORINHIEUH, HANGUL CHOSEONG HIEUH # →ᆯᇹᇂ→ + +3141 ; 1106 ; MA # ( ㅁ → ᄆ ) HANGUL LETTER MIEUM → HANGUL CHOSEONG MIEUM # +11B7 ; 1106 ; MA # ( ᆷ → ᄆ ) HANGUL JONGSEONG MIEUM → HANGUL CHOSEONG MIEUM # + +A96F ; 1106 1100 ; MA # ( ꥯ → ᄆᄀ ) HANGUL CHOSEONG MIEUM-KIYEOK → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG KIYEOK # +11DA ; 1106 1100 ; MA # ( ᇚ → ᄆᄀ ) HANGUL JONGSEONG MIEUM-KIYEOK → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG KIYEOK # →ᆷᆨ→ + +D7DE ; 1106 1102 ; MA # ( ퟞ → ᄆᄂ ) HANGUL JONGSEONG MIEUM-NIEUN → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG NIEUN # →ᆷᆫ→ + +D7DF ; 1106 1102 1102 ; MA # ( ퟟ → ᄆᄂᄂ ) HANGUL JONGSEONG MIEUM-SSANGNIEUN → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG NIEUN, HANGUL CHOSEONG NIEUN # →ᆷᆫᆫ→ + +A970 ; 1106 1103 ; MA # ( ꥰ → ᄆᄃ ) HANGUL CHOSEONG MIEUM-TIKEUT → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG TIKEUT # + +11DB ; 1106 1105 ; MA # ( ᇛ → ᄆᄅ ) HANGUL JONGSEONG MIEUM-RIEUL → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG RIEUL # →ᆷᆯ→ + +D7E0 ; 1106 1106 ; MA # ( ퟠ → ᄆᄆ ) HANGUL JONGSEONG SSANGMIEUM → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG MIEUM # →ᆷᆷ→ + +111C ; 1106 1107 ; MA # ( ᄜ → ᄆᄇ ) HANGUL CHOSEONG MIEUM-PIEUP → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG PIEUP # +316E ; 1106 1107 ; MA # ( ㅮ → ᄆᄇ ) HANGUL LETTER MIEUM-PIEUP → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG PIEUP # →ᄜ→ +11DC ; 1106 1107 ; MA # ( ᇜ → ᄆᄇ ) HANGUL JONGSEONG MIEUM-PIEUP → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG PIEUP # →ᄜ→ + +D7E1 ; 1106 1107 1109 ; MA # ( ퟡ → ᄆᄇᄉ ) HANGUL JONGSEONG MIEUM-PIEUP-SIOS → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS # →ᆷᆸᆺ→ + +A971 ; 1106 1109 ; MA # ( ꥱ → ᄆᄉ ) HANGUL CHOSEONG MIEUM-SIOS → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG SIOS # +11DD ; 1106 1109 ; MA # ( ᇝ → ᄆᄉ ) HANGUL JONGSEONG MIEUM-SIOS → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG SIOS # →ᆷᆺ→ +316F ; 1106 1109 ; MA # ( ㅯ → ᄆᄉ ) HANGUL LETTER MIEUM-SIOS → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG SIOS # →ᇝ→→ᆷᆺ→ + +11DE ; 1106 1109 1109 ; MA # ( ᇞ → ᄆᄉᄉ ) HANGUL JONGSEONG MIEUM-SSANGSIOS → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS # →ᆷᆺᆺ→ + +111D ; 1106 110B ; MA # ( ᄝ → ᄆᄋ ) HANGUL CHOSEONG KAPYEOUNMIEUM → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG IEUNG # +3171 ; 1106 110B ; MA # ( ㅱ → ᄆᄋ ) HANGUL LETTER KAPYEOUNMIEUM → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG IEUNG # →ᄝ→ +11E2 ; 1106 110B ; MA # ( ᇢ → ᄆᄋ ) HANGUL JONGSEONG KAPYEOUNMIEUM → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG IEUNG # →ᄝ→ + +D7E2 ; 1106 110C ; MA # ( ퟢ → ᄆᄌ ) HANGUL JONGSEONG MIEUM-CIEUC → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG CIEUC # →ᆷᆽ→ + +11E0 ; 1106 110E ; MA # ( ᇠ → ᄆᄎ ) HANGUL JONGSEONG MIEUM-CHIEUCH → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG CHIEUCH # →ᆷᆾ→ + +11E1 ; 1106 1112 ; MA # ( ᇡ → ᄆᄒ ) HANGUL JONGSEONG MIEUM-HIEUH → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG HIEUH # →ᆷᇂ→ + +11DF ; 1106 1140 ; MA # ( ᇟ → ᄆᅀ ) HANGUL JONGSEONG MIEUM-PANSIOS → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG PANSIOS # →ᆷᇫ→ +3170 ; 1106 1140 ; MA # ( ㅰ → ᄆᅀ ) HANGUL LETTER MIEUM-PANSIOS → HANGUL CHOSEONG MIEUM, HANGUL CHOSEONG PANSIOS # →ᇟ→→ᆷᇫ→ + +3142 ; 1107 ; MA # ( ㅂ → ᄇ ) HANGUL LETTER PIEUP → HANGUL CHOSEONG PIEUP # +11B8 ; 1107 ; MA # ( ᆸ → ᄇ ) HANGUL JONGSEONG PIEUP → HANGUL CHOSEONG PIEUP # + +111E ; 1107 1100 ; MA # ( ᄞ → ᄇᄀ ) HANGUL CHOSEONG PIEUP-KIYEOK → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG KIYEOK # +3172 ; 1107 1100 ; MA # ( ㅲ → ᄇᄀ ) HANGUL LETTER PIEUP-KIYEOK → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG KIYEOK # →ᄞ→ + +111F ; 1107 1102 ; MA # ( ᄟ → ᄇᄂ ) HANGUL CHOSEONG PIEUP-NIEUN → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG NIEUN # + +1120 ; 1107 1103 ; MA # ( ᄠ → ᄇᄃ ) HANGUL CHOSEONG PIEUP-TIKEUT → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG TIKEUT # +3173 ; 1107 1103 ; MA # ( ㅳ → ᄇᄃ ) HANGUL LETTER PIEUP-TIKEUT → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG TIKEUT # →ᄠ→ +D7E3 ; 1107 1103 ; MA # ( ퟣ → ᄇᄃ ) HANGUL JONGSEONG PIEUP-TIKEUT → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG TIKEUT # →ᆸᆮ→ + +11E3 ; 1107 1105 ; MA # ( ᇣ → ᄇᄅ ) HANGUL JONGSEONG PIEUP-RIEUL → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG RIEUL # →ᆸᆯ→ + +D7E4 ; 1107 1105 1111 ; MA # ( ퟤ → ᄇᄅᄑ ) HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG RIEUL, HANGUL CHOSEONG PHIEUPH # →ᆸᆯᇁ→ + +D7E5 ; 1107 1106 ; MA # ( ퟥ → ᄇᄆ ) HANGUL JONGSEONG PIEUP-MIEUM → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG MIEUM # →ᆸᆷ→ + +1108 ; 1107 1107 ; MA # ( ᄈ → ᄇᄇ ) HANGUL CHOSEONG SSANGPIEUP → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PIEUP # +3143 ; 1107 1107 ; MA # ( ㅃ → ᄇᄇ ) HANGUL LETTER SSANGPIEUP → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PIEUP # →ᄈ→ +D7E6 ; 1107 1107 ; MA # ( ퟦ → ᄇᄇ ) HANGUL JONGSEONG SSANGPIEUP → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PIEUP # →ᆸᆸ→ + +112C ; 1107 1107 110B ; MA # ( ᄬ → ᄇᄇᄋ ) HANGUL CHOSEONG KAPYEOUNSSANGPIEUP → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG IEUNG # +3179 ; 1107 1107 110B ; MA # ( ㅹ → ᄇᄇᄋ ) HANGUL LETTER KAPYEOUNSSANGPIEUP → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG IEUNG # →ᄬ→ + +1121 ; 1107 1109 ; MA # ( ᄡ → ᄇᄉ ) HANGUL CHOSEONG PIEUP-SIOS → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS # +3144 ; 1107 1109 ; MA # ( ㅄ → ᄇᄉ ) HANGUL LETTER PIEUP-SIOS → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS # →ᄡ→ +11B9 ; 1107 1109 ; MA # ( ᆹ → ᄇᄉ ) HANGUL JONGSEONG PIEUP-SIOS → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS # →ᄡ→ + +1122 ; 1107 1109 1100 ; MA # ( ᄢ → ᄇᄉᄀ ) HANGUL CHOSEONG PIEUP-SIOS-KIYEOK → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG KIYEOK # +3174 ; 1107 1109 1100 ; MA # ( ㅴ → ᄇᄉᄀ ) HANGUL LETTER PIEUP-SIOS-KIYEOK → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG KIYEOK # →ᄢ→ + +1123 ; 1107 1109 1103 ; MA # ( ᄣ → ᄇᄉᄃ ) HANGUL CHOSEONG PIEUP-SIOS-TIKEUT → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG TIKEUT # +3175 ; 1107 1109 1103 ; MA # ( ㅵ → ᄇᄉᄃ ) HANGUL LETTER PIEUP-SIOS-TIKEUT → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG TIKEUT # →ᄣ→ +D7E7 ; 1107 1109 1103 ; MA # ( ퟧ → ᄇᄉᄃ ) HANGUL JONGSEONG PIEUP-SIOS-TIKEUT → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG TIKEUT # →ᆸᆺᆮ→ + +1124 ; 1107 1109 1107 ; MA # ( ᄤ → ᄇᄉᄇ ) HANGUL CHOSEONG PIEUP-SIOS-PIEUP → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PIEUP # + +1125 ; 1107 1109 1109 ; MA # ( ᄥ → ᄇᄉᄉ ) HANGUL CHOSEONG PIEUP-SSANGSIOS → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS # + +1126 ; 1107 1109 110C ; MA # ( ᄦ → ᄇᄉᄌ ) HANGUL CHOSEONG PIEUP-SIOS-CIEUC → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG CIEUC # + +A972 ; 1107 1109 1110 ; MA # ( ꥲ → ᄇᄉᄐ ) HANGUL CHOSEONG PIEUP-SIOS-THIEUTH → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG THIEUTH # + +112B ; 1107 110B ; MA # ( ᄫ → ᄇᄋ ) HANGUL CHOSEONG KAPYEOUNPIEUP → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG IEUNG # +3178 ; 1107 110B ; MA # ( ㅸ → ᄇᄋ ) HANGUL LETTER KAPYEOUNPIEUP → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG IEUNG # →ᄫ→ +11E6 ; 1107 110B ; MA # ( ᇦ → ᄇᄋ ) HANGUL JONGSEONG KAPYEOUNPIEUP → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG IEUNG # →ᄫ→ + +1127 ; 1107 110C ; MA # ( ᄧ → ᄇᄌ ) HANGUL CHOSEONG PIEUP-CIEUC → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG CIEUC # +3176 ; 1107 110C ; MA # ( ㅶ → ᄇᄌ ) HANGUL LETTER PIEUP-CIEUC → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG CIEUC # →ᄧ→ +D7E8 ; 1107 110C ; MA # ( ퟨ → ᄇᄌ ) HANGUL JONGSEONG PIEUP-CIEUC → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG CIEUC # →ᆸᆽ→ + +1128 ; 1107 110E ; MA # ( ᄨ → ᄇᄎ ) HANGUL CHOSEONG PIEUP-CHIEUCH → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG CHIEUCH # +D7E9 ; 1107 110E ; MA # ( ퟩ → ᄇᄎ ) HANGUL JONGSEONG PIEUP-CHIEUCH → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG CHIEUCH # →ᆸᆾ→ + +A973 ; 1107 110F ; MA # ( ꥳ → ᄇᄏ ) HANGUL CHOSEONG PIEUP-KHIEUKH → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG KHIEUKH # + +1129 ; 1107 1110 ; MA # ( ᄩ → ᄇᄐ ) HANGUL CHOSEONG PIEUP-THIEUTH → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG THIEUTH # +3177 ; 1107 1110 ; MA # ( ㅷ → ᄇᄐ ) HANGUL LETTER PIEUP-THIEUTH → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG THIEUTH # →ᄩ→ + +112A ; 1107 1111 ; MA # ( ᄪ → ᄇᄑ ) HANGUL CHOSEONG PIEUP-PHIEUPH → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PHIEUPH # +11E4 ; 1107 1111 ; MA # ( ᇤ → ᄇᄑ ) HANGUL JONGSEONG PIEUP-PHIEUPH → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PHIEUPH # →ᄪ→ + +A974 ; 1107 1112 ; MA # ( ꥴ → ᄇᄒ ) HANGUL CHOSEONG PIEUP-HIEUH → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG HIEUH # +11E5 ; 1107 1112 ; MA # ( ᇥ → ᄇᄒ ) HANGUL JONGSEONG PIEUP-HIEUH → HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG HIEUH # →ᆸᇂ→ + +3145 ; 1109 ; MA # ( ㅅ → ᄉ ) HANGUL LETTER SIOS → HANGUL CHOSEONG SIOS # +11BA ; 1109 ; MA # ( ᆺ → ᄉ ) HANGUL JONGSEONG SIOS → HANGUL CHOSEONG SIOS # + +112D ; 1109 1100 ; MA # ( ᄭ → ᄉᄀ ) HANGUL CHOSEONG SIOS-KIYEOK → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG KIYEOK # +317A ; 1109 1100 ; MA # ( ㅺ → ᄉᄀ ) HANGUL LETTER SIOS-KIYEOK → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG KIYEOK # →ᄭ→ +11E7 ; 1109 1100 ; MA # ( ᇧ → ᄉᄀ ) HANGUL JONGSEONG SIOS-KIYEOK → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG KIYEOK # →ᄭ→ + +112E ; 1109 1102 ; MA # ( ᄮ → ᄉᄂ ) HANGUL CHOSEONG SIOS-NIEUN → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG NIEUN # +317B ; 1109 1102 ; MA # ( ㅻ → ᄉᄂ ) HANGUL LETTER SIOS-NIEUN → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG NIEUN # →ᄮ→ + +112F ; 1109 1103 ; MA # ( ᄯ → ᄉᄃ ) HANGUL CHOSEONG SIOS-TIKEUT → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG TIKEUT # +317C ; 1109 1103 ; MA # ( ㅼ → ᄉᄃ ) HANGUL LETTER SIOS-TIKEUT → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG TIKEUT # →ᄯ→ +11E8 ; 1109 1103 ; MA # ( ᇨ → ᄉᄃ ) HANGUL JONGSEONG SIOS-TIKEUT → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG TIKEUT # →ᄯ→ + +1130 ; 1109 1105 ; MA # ( ᄰ → ᄉᄅ ) HANGUL CHOSEONG SIOS-RIEUL → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG RIEUL # +11E9 ; 1109 1105 ; MA # ( ᇩ → ᄉᄅ ) HANGUL JONGSEONG SIOS-RIEUL → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG RIEUL # →ᄰ→ + +1131 ; 1109 1106 ; MA # ( ᄱ → ᄉᄆ ) HANGUL CHOSEONG SIOS-MIEUM → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG MIEUM # +D7EA ; 1109 1106 ; MA # ( ퟪ → ᄉᄆ ) HANGUL JONGSEONG SIOS-MIEUM → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG MIEUM # →ᆺᆷ→ + +1132 ; 1109 1107 ; MA # ( ᄲ → ᄉᄇ ) HANGUL CHOSEONG SIOS-PIEUP → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PIEUP # +317D ; 1109 1107 ; MA # ( ㅽ → ᄉᄇ ) HANGUL LETTER SIOS-PIEUP → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PIEUP # →ᄲ→ +11EA ; 1109 1107 ; MA # ( ᇪ → ᄉᄇ ) HANGUL JONGSEONG SIOS-PIEUP → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PIEUP # →ᄲ→ + +1133 ; 1109 1107 1100 ; MA # ( ᄳ → ᄉᄇᄀ ) HANGUL CHOSEONG SIOS-PIEUP-KIYEOK → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG KIYEOK # + +D7EB ; 1109 1107 110B ; MA # ( ퟫ → ᄉᄇᄋ ) HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG IEUNG # →ᆺᆸᆼ→ + +110A ; 1109 1109 ; MA # ( ᄊ → ᄉᄉ ) HANGUL CHOSEONG SSANGSIOS → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS # +3146 ; 1109 1109 ; MA # ( ㅆ → ᄉᄉ ) HANGUL LETTER SSANGSIOS → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS # →ᄊ→ +11BB ; 1109 1109 ; MA # ( ᆻ → ᄉᄉ ) HANGUL JONGSEONG SSANGSIOS → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS # →ᄊ→ + +D7EC ; 1109 1109 1100 ; MA # ( ퟬ → ᄉᄉᄀ ) HANGUL JONGSEONG SSANGSIOS-KIYEOK → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG KIYEOK # →ᆺᆺᆨ→ + +D7ED ; 1109 1109 1103 ; MA # ( ퟭ → ᄉᄉᄃ ) HANGUL JONGSEONG SSANGSIOS-TIKEUT → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG TIKEUT # →ᆺᆺᆮ→ + +A975 ; 1109 1109 1107 ; MA # ( ꥵ → ᄉᄉᄇ ) HANGUL CHOSEONG SSANGSIOS-PIEUP → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PIEUP # + +1134 ; 1109 1109 1109 ; MA # ( ᄴ → ᄉᄉᄉ ) HANGUL CHOSEONG SIOS-SSANGSIOS → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS, HANGUL CHOSEONG SIOS # + +1135 ; 1109 110B ; MA # ( ᄵ → ᄉᄋ ) HANGUL CHOSEONG SIOS-IEUNG → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG IEUNG # + +1136 ; 1109 110C ; MA # ( ᄶ → ᄉᄌ ) HANGUL CHOSEONG SIOS-CIEUC → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG CIEUC # +317E ; 1109 110C ; MA # ( ㅾ → ᄉᄌ ) HANGUL LETTER SIOS-CIEUC → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG CIEUC # →ᄶ→ +D7EF ; 1109 110C ; MA # ( ퟯ → ᄉᄌ ) HANGUL JONGSEONG SIOS-CIEUC → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG CIEUC # →ᆺᆽ→ + +1137 ; 1109 110E ; MA # ( ᄷ → ᄉᄎ ) HANGUL CHOSEONG SIOS-CHIEUCH → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG CHIEUCH # +D7F0 ; 1109 110E ; MA # ( ퟰ → ᄉᄎ ) HANGUL JONGSEONG SIOS-CHIEUCH → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG CHIEUCH # →ᆺᆾ→ + +1138 ; 1109 110F ; MA # ( ᄸ → ᄉᄏ ) HANGUL CHOSEONG SIOS-KHIEUKH → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG KHIEUKH # + +1139 ; 1109 1110 ; MA # ( ᄹ → ᄉᄐ ) HANGUL CHOSEONG SIOS-THIEUTH → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG THIEUTH # +D7F1 ; 1109 1110 ; MA # ( ퟱ → ᄉᄐ ) HANGUL JONGSEONG SIOS-THIEUTH → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG THIEUTH # →ᆺᇀ→ + +113A ; 1109 1111 ; MA # ( ᄺ → ᄉᄑ ) HANGUL CHOSEONG SIOS-PHIEUPH → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PHIEUPH # + +D7EE ; 1109 1140 ; MA # ( ퟮ → ᄉᅀ ) HANGUL JONGSEONG SIOS-PANSIOS → HANGUL CHOSEONG SIOS, HANGUL CHOSEONG PANSIOS # →ᆺᇫ→ + +3147 ; 110B ; MA # ( ㅇ → ᄋ ) HANGUL LETTER IEUNG → HANGUL CHOSEONG IEUNG # +11BC ; 110B ; MA # ( ᆼ → ᄋ ) HANGUL JONGSEONG IEUNG → HANGUL CHOSEONG IEUNG # + +1141 ; 110B 1100 ; MA # ( ᅁ → ᄋᄀ ) HANGUL CHOSEONG IEUNG-KIYEOK → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG KIYEOK # +11EC ; 110B 1100 ; MA # ( ᇬ → ᄋᄀ ) HANGUL JONGSEONG IEUNG-KIYEOK → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG KIYEOK # →ᅁ→ + +11ED ; 110B 1100 1100 ; MA # ( ᇭ → ᄋᄀᄀ ) HANGUL JONGSEONG IEUNG-SSANGKIYEOK → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG KIYEOK, HANGUL CHOSEONG KIYEOK # →ᆼᆨᆨ→ + +1142 ; 110B 1103 ; MA # ( ᅂ → ᄋᄃ ) HANGUL CHOSEONG IEUNG-TIKEUT → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG TIKEUT # + +A976 ; 110B 1105 ; MA # ( ꥶ → ᄋᄅ ) HANGUL CHOSEONG IEUNG-RIEUL → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG RIEUL # + +1143 ; 110B 1106 ; MA # ( ᅃ → ᄋᄆ ) HANGUL CHOSEONG IEUNG-MIEUM → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG MIEUM # + +1144 ; 110B 1107 ; MA # ( ᅄ → ᄋᄇ ) HANGUL CHOSEONG IEUNG-PIEUP → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG PIEUP # + +1145 ; 110B 1109 ; MA # ( ᅅ → ᄋᄉ ) HANGUL CHOSEONG IEUNG-SIOS → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG SIOS # +11F1 ; 110B 1109 ; MA # ( ᇱ → ᄋᄉ ) HANGUL JONGSEONG YESIEUNG-SIOS → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG SIOS # →ᅅ→ +3182 ; 110B 1109 ; MA # ( ㆂ → ᄋᄉ ) HANGUL LETTER YESIEUNG-SIOS → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG SIOS # →ᇱ→→ᅅ→ + +1147 ; 110B 110B ; MA # ( ᅇ → ᄋᄋ ) HANGUL CHOSEONG SSANGIEUNG → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG IEUNG # +3180 ; 110B 110B ; MA # ( ㆀ → ᄋᄋ ) HANGUL LETTER SSANGIEUNG → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG IEUNG # →ᅇ→ +11EE ; 110B 110B ; MA # ( ᇮ → ᄋᄋ ) HANGUL JONGSEONG SSANGIEUNG → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG IEUNG # →ᅇ→ + +1148 ; 110B 110C ; MA # ( ᅈ → ᄋᄌ ) HANGUL CHOSEONG IEUNG-CIEUC → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG CIEUC # + +1149 ; 110B 110E ; MA # ( ᅉ → ᄋᄎ ) HANGUL CHOSEONG IEUNG-CHIEUCH → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG CHIEUCH # + +11EF ; 110B 110F ; MA # ( ᇯ → ᄋᄏ ) HANGUL JONGSEONG IEUNG-KHIEUKH → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG KHIEUKH # →ᆼᆿ→ + +114A ; 110B 1110 ; MA # ( ᅊ → ᄋᄐ ) HANGUL CHOSEONG IEUNG-THIEUTH → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG THIEUTH # + +114B ; 110B 1111 ; MA # ( ᅋ → ᄋᄑ ) HANGUL CHOSEONG IEUNG-PHIEUPH → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG PHIEUPH # + +A977 ; 110B 1112 ; MA # ( ꥷ → ᄋᄒ ) HANGUL CHOSEONG IEUNG-HIEUH → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG HIEUH # + +1146 ; 110B 1140 ; MA # ( ᅆ → ᄋᅀ ) HANGUL CHOSEONG IEUNG-PANSIOS → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG PANSIOS # +11F2 ; 110B 1140 ; MA # ( ᇲ → ᄋᅀ ) HANGUL JONGSEONG YESIEUNG-PANSIOS → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG PANSIOS # →ᅆ→ +3183 ; 110B 1140 ; MA # ( ㆃ → ᄋᅀ ) HANGUL LETTER YESIEUNG-PANSIOS → HANGUL CHOSEONG IEUNG, HANGUL CHOSEONG PANSIOS # →ᇲ→→ᅆ→ + +3148 ; 110C ; MA # ( ㅈ → ᄌ ) HANGUL LETTER CIEUC → HANGUL CHOSEONG CIEUC # +11BD ; 110C ; MA # ( ᆽ → ᄌ ) HANGUL JONGSEONG CIEUC → HANGUL CHOSEONG CIEUC # + +D7F7 ; 110C 1107 ; MA # ( ퟷ → ᄌᄇ ) HANGUL JONGSEONG CIEUC-PIEUP → HANGUL CHOSEONG CIEUC, HANGUL CHOSEONG PIEUP # →ᆽᆸ→ + +D7F8 ; 110C 1107 1107 ; MA # ( ퟸ → ᄌᄇᄇ ) HANGUL JONGSEONG CIEUC-SSANGPIEUP → HANGUL CHOSEONG CIEUC, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG PIEUP # →ᆽᆸᆸ→ + +114D ; 110C 110B ; MA # ( ᅍ → ᄌᄋ ) HANGUL CHOSEONG CIEUC-IEUNG → HANGUL CHOSEONG CIEUC, HANGUL CHOSEONG IEUNG # + +110D ; 110C 110C ; MA # ( ᄍ → ᄌᄌ ) HANGUL CHOSEONG SSANGCIEUC → HANGUL CHOSEONG CIEUC, HANGUL CHOSEONG CIEUC # +3149 ; 110C 110C ; MA # ( ㅉ → ᄌᄌ ) HANGUL LETTER SSANGCIEUC → HANGUL CHOSEONG CIEUC, HANGUL CHOSEONG CIEUC # →ᄍ→ +D7F9 ; 110C 110C ; MA # ( ퟹ → ᄌᄌ ) HANGUL JONGSEONG SSANGCIEUC → HANGUL CHOSEONG CIEUC, HANGUL CHOSEONG CIEUC # →ᆽᆽ→ + +A978 ; 110C 110C 1112 ; MA # ( ꥸ → ᄌᄌᄒ ) HANGUL CHOSEONG SSANGCIEUC-HIEUH → HANGUL CHOSEONG CIEUC, HANGUL CHOSEONG CIEUC, HANGUL CHOSEONG HIEUH # + +314A ; 110E ; MA # ( ㅊ → ᄎ ) HANGUL LETTER CHIEUCH → HANGUL CHOSEONG CHIEUCH # +11BE ; 110E ; MA # ( ᆾ → ᄎ ) HANGUL JONGSEONG CHIEUCH → HANGUL CHOSEONG CHIEUCH # + +1152 ; 110E 110F ; MA # ( ᅒ → ᄎᄏ ) HANGUL CHOSEONG CHIEUCH-KHIEUKH → HANGUL CHOSEONG CHIEUCH, HANGUL CHOSEONG KHIEUKH # + +1153 ; 110E 1112 ; MA # ( ᅓ → ᄎᄒ ) HANGUL CHOSEONG CHIEUCH-HIEUH → HANGUL CHOSEONG CHIEUCH, HANGUL CHOSEONG HIEUH # + +314B ; 110F ; MA # ( ㅋ → ᄏ ) HANGUL LETTER KHIEUKH → HANGUL CHOSEONG KHIEUKH # +11BF ; 110F ; MA # ( ᆿ → ᄏ ) HANGUL JONGSEONG KHIEUKH → HANGUL CHOSEONG KHIEUKH # + +314C ; 1110 ; MA # ( ㅌ → ᄐ ) HANGUL LETTER THIEUTH → HANGUL CHOSEONG THIEUTH # +11C0 ; 1110 ; MA # ( ᇀ → ᄐ ) HANGUL JONGSEONG THIEUTH → HANGUL CHOSEONG THIEUTH # + +A979 ; 1110 1110 ; MA # ( ꥹ → ᄐᄐ ) HANGUL CHOSEONG SSANGTHIEUTH → HANGUL CHOSEONG THIEUTH, HANGUL CHOSEONG THIEUTH # + +314D ; 1111 ; MA # ( ㅍ → ᄑ ) HANGUL LETTER PHIEUPH → HANGUL CHOSEONG PHIEUPH # +11C1 ; 1111 ; MA # ( ᇁ → ᄑ ) HANGUL JONGSEONG PHIEUPH → HANGUL CHOSEONG PHIEUPH # + +1156 ; 1111 1107 ; MA # ( ᅖ → ᄑᄇ ) HANGUL CHOSEONG PHIEUPH-PIEUP → HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG PIEUP # +11F3 ; 1111 1107 ; MA # ( ᇳ → ᄑᄇ ) HANGUL JONGSEONG PHIEUPH-PIEUP → HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG PIEUP # →ᅖ→ + +D7FA ; 1111 1109 ; MA # ( ퟺ → ᄑᄉ ) HANGUL JONGSEONG PHIEUPH-SIOS → HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG SIOS # →ᇁᆺ→ + +1157 ; 1111 110B ; MA # ( ᅗ → ᄑᄋ ) HANGUL CHOSEONG KAPYEOUNPHIEUPH → HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG IEUNG # +3184 ; 1111 110B ; MA # ( ㆄ → ᄑᄋ ) HANGUL LETTER KAPYEOUNPHIEUPH → HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG IEUNG # →ᅗ→ +11F4 ; 1111 110B ; MA # ( ᇴ → ᄑᄋ ) HANGUL JONGSEONG KAPYEOUNPHIEUPH → HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG IEUNG # →ᅗ→ + +D7FB ; 1111 1110 ; MA # ( ퟻ → ᄑᄐ ) HANGUL JONGSEONG PHIEUPH-THIEUTH → HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG THIEUTH # →ᇁᇀ→ + +A97A ; 1111 1112 ; MA # ( ꥺ → ᄑᄒ ) HANGUL CHOSEONG PHIEUPH-HIEUH → HANGUL CHOSEONG PHIEUPH, HANGUL CHOSEONG HIEUH # + +314E ; 1112 ; MA # ( ㅎ → ᄒ ) HANGUL LETTER HIEUH → HANGUL CHOSEONG HIEUH # +11C2 ; 1112 ; MA # ( ᇂ → ᄒ ) HANGUL JONGSEONG HIEUH → HANGUL CHOSEONG HIEUH # + +11F5 ; 1112 1102 ; MA # ( ᇵ → ᄒᄂ ) HANGUL JONGSEONG HIEUH-NIEUN → HANGUL CHOSEONG HIEUH, HANGUL CHOSEONG NIEUN # →ᇂᆫ→ + +11F6 ; 1112 1105 ; MA # ( ᇶ → ᄒᄅ ) HANGUL JONGSEONG HIEUH-RIEUL → HANGUL CHOSEONG HIEUH, HANGUL CHOSEONG RIEUL # →ᇂᆯ→ + +11F7 ; 1112 1106 ; MA # ( ᇷ → ᄒᄆ ) HANGUL JONGSEONG HIEUH-MIEUM → HANGUL CHOSEONG HIEUH, HANGUL CHOSEONG MIEUM # →ᇂᆷ→ + +11F8 ; 1112 1107 ; MA # ( ᇸ → ᄒᄇ ) HANGUL JONGSEONG HIEUH-PIEUP → HANGUL CHOSEONG HIEUH, HANGUL CHOSEONG PIEUP # →ᇂᆸ→ + +A97B ; 1112 1109 ; MA # ( ꥻ → ᄒᄉ ) HANGUL CHOSEONG HIEUH-SIOS → HANGUL CHOSEONG HIEUH, HANGUL CHOSEONG SIOS # + +1158 ; 1112 1112 ; MA # ( ᅘ → ᄒᄒ ) HANGUL CHOSEONG SSANGHIEUH → HANGUL CHOSEONG HIEUH, HANGUL CHOSEONG HIEUH # +3185 ; 1112 1112 ; MA # ( ㆅ → ᄒᄒ ) HANGUL LETTER SSANGHIEUH → HANGUL CHOSEONG HIEUH, HANGUL CHOSEONG HIEUH # →ᅘ→ + +113D ; 113C 113C ; MA # ( ᄽ → ᄼᄼ ) HANGUL CHOSEONG CHITUEUMSSANGSIOS → HANGUL CHOSEONG CHITUEUMSIOS, HANGUL CHOSEONG CHITUEUMSIOS # + +113F ; 113E 113E ; MA # ( ᄿ → ᄾᄾ ) HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS → HANGUL CHOSEONG CEONGCHIEUMSIOS, HANGUL CHOSEONG CEONGCHIEUMSIOS # + +317F ; 1140 ; MA # ( ㅿ → ᅀ ) HANGUL LETTER PANSIOS → HANGUL CHOSEONG PANSIOS # +11EB ; 1140 ; MA # ( ᇫ → ᅀ ) HANGUL JONGSEONG PANSIOS → HANGUL CHOSEONG PANSIOS # + +D7F3 ; 1140 1107 ; MA # ( ퟳ → ᅀᄇ ) HANGUL JONGSEONG PANSIOS-PIEUP → HANGUL CHOSEONG PANSIOS, HANGUL CHOSEONG PIEUP # →ᇫᆸ→ + +D7F4 ; 1140 1107 110B ; MA # ( ퟴ → ᅀᄇᄋ ) HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP → HANGUL CHOSEONG PANSIOS, HANGUL CHOSEONG PIEUP, HANGUL CHOSEONG IEUNG # →ᇫᆸᆼ→ + +3181 ; 114C ; MA # ( ㆁ → ᅌ ) HANGUL LETTER YESIEUNG → HANGUL CHOSEONG YESIEUNG # +11F0 ; 114C ; MA # ( ᇰ → ᅌ ) HANGUL JONGSEONG YESIEUNG → HANGUL CHOSEONG YESIEUNG # + +D7F5 ; 114C 1106 ; MA # ( ퟵ → ᅌᄆ ) HANGUL JONGSEONG YESIEUNG-MIEUM → HANGUL CHOSEONG YESIEUNG, HANGUL CHOSEONG MIEUM # →ᇰᆷ→ + +D7F6 ; 114C 1112 ; MA # ( ퟶ → ᅌᄒ ) HANGUL JONGSEONG YESIEUNG-HIEUH → HANGUL CHOSEONG YESIEUNG, HANGUL CHOSEONG HIEUH # →ᇰᇂ→ + +114F ; 114E 114E ; MA # ( ᅏ → ᅎᅎ ) HANGUL CHOSEONG CHITUEUMSSANGCIEUC → HANGUL CHOSEONG CHITUEUMCIEUC, HANGUL CHOSEONG CHITUEUMCIEUC # + +1151 ; 1150 1150 ; MA # ( ᅑ → ᅐᅐ ) HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC → HANGUL CHOSEONG CEONGCHIEUMCIEUC, HANGUL CHOSEONG CEONGCHIEUMCIEUC # + +3186 ; 1159 ; MA # ( ㆆ → ᅙ ) HANGUL LETTER YEORINHIEUH → HANGUL CHOSEONG YEORINHIEUH # +11F9 ; 1159 ; MA # ( ᇹ → ᅙ ) HANGUL JONGSEONG YEORINHIEUH → HANGUL CHOSEONG YEORINHIEUH # + +A97C ; 1159 1159 ; MA # ( ꥼ → ᅙᅙ ) HANGUL CHOSEONG SSANGYEORINHIEUH → HANGUL CHOSEONG YEORINHIEUH, HANGUL CHOSEONG YEORINHIEUH # + +3164 ; 1160 ; MA # ( → ) HANGUL FILLER → HANGUL JUNGSEONG FILLER # + +314F ; 1161 ; MA # ( ㅏ → ᅡ ) HANGUL LETTER A → HANGUL JUNGSEONG A # + +11A3 ; 1161 30FC ; MA # ( ᆣ → ᅡー ) HANGUL JUNGSEONG A-EU → HANGUL JUNGSEONG A, KATAKANA-HIRAGANA PROLONGED SOUND MARK # →ᅡᅳ→ + +1176 ; 1161 1169 ; MA # ( ᅶ → ᅡᅩ ) HANGUL JUNGSEONG A-O → HANGUL JUNGSEONG A, HANGUL JUNGSEONG O # + +1177 ; 1161 116E ; MA # ( ᅷ → ᅡᅮ ) HANGUL JUNGSEONG A-U → HANGUL JUNGSEONG A, HANGUL JUNGSEONG U # + +1162 ; 1161 4E28 ; MA # ( ᅢ → ᅡ丨 ) HANGUL JUNGSEONG AE → HANGUL JUNGSEONG A, CJK UNIFIED IDEOGRAPH-4E28 # →ᅡᅵ→ +3150 ; 1161 4E28 ; MA # ( ㅐ → ᅡ丨 ) HANGUL LETTER AE → HANGUL JUNGSEONG A, CJK UNIFIED IDEOGRAPH-4E28 # →ᅢ→→ᅡᅵ→ + +3151 ; 1163 ; MA # ( ㅑ → ᅣ ) HANGUL LETTER YA → HANGUL JUNGSEONG YA # + +1178 ; 1163 1169 ; MA # ( ᅸ → ᅣᅩ ) HANGUL JUNGSEONG YA-O → HANGUL JUNGSEONG YA, HANGUL JUNGSEONG O # + +1179 ; 1163 116D ; MA # ( ᅹ → ᅣᅭ ) HANGUL JUNGSEONG YA-YO → HANGUL JUNGSEONG YA, HANGUL JUNGSEONG YO # + +11A4 ; 1163 116E ; MA # ( ᆤ → ᅣᅮ ) HANGUL JUNGSEONG YA-U → HANGUL JUNGSEONG YA, HANGUL JUNGSEONG U # + +1164 ; 1163 4E28 ; MA # ( ᅤ → ᅣ丨 ) HANGUL JUNGSEONG YAE → HANGUL JUNGSEONG YA, CJK UNIFIED IDEOGRAPH-4E28 # →ᅣᅵ→ +3152 ; 1163 4E28 ; MA # ( ㅒ → ᅣ丨 ) HANGUL LETTER YAE → HANGUL JUNGSEONG YA, CJK UNIFIED IDEOGRAPH-4E28 # →ᅤ→→ᅣᅵ→ + +3153 ; 1165 ; MA # ( ㅓ → ᅥ ) HANGUL LETTER EO → HANGUL JUNGSEONG EO # + +117C ; 1165 30FC ; MA # ( ᅼ → ᅥー ) HANGUL JUNGSEONG EO-EU → HANGUL JUNGSEONG EO, KATAKANA-HIRAGANA PROLONGED SOUND MARK # →ᅥᅳ→ + +117A ; 1165 1169 ; MA # ( ᅺ → ᅥᅩ ) HANGUL JUNGSEONG EO-O → HANGUL JUNGSEONG EO, HANGUL JUNGSEONG O # + +117B ; 1165 116E ; MA # ( ᅻ → ᅥᅮ ) HANGUL JUNGSEONG EO-U → HANGUL JUNGSEONG EO, HANGUL JUNGSEONG U # + +1166 ; 1165 4E28 ; MA # ( ᅦ → ᅥ丨 ) HANGUL JUNGSEONG E → HANGUL JUNGSEONG EO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅥᅵ→ +3154 ; 1165 4E28 ; MA # ( ㅔ → ᅥ丨 ) HANGUL LETTER E → HANGUL JUNGSEONG EO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅦ→→ᅥᅵ→ + +3155 ; 1167 ; MA # ( ㅕ → ᅧ ) HANGUL LETTER YEO → HANGUL JUNGSEONG YEO # + +11A5 ; 1167 1163 ; MA # ( ᆥ → ᅧᅣ ) HANGUL JUNGSEONG YEO-YA → HANGUL JUNGSEONG YEO, HANGUL JUNGSEONG YA # + +117D ; 1167 1169 ; MA # ( ᅽ → ᅧᅩ ) HANGUL JUNGSEONG YEO-O → HANGUL JUNGSEONG YEO, HANGUL JUNGSEONG O # + +117E ; 1167 116E ; MA # ( ᅾ → ᅧᅮ ) HANGUL JUNGSEONG YEO-U → HANGUL JUNGSEONG YEO, HANGUL JUNGSEONG U # + +1168 ; 1167 4E28 ; MA # ( ᅨ → ᅧ丨 ) HANGUL JUNGSEONG YE → HANGUL JUNGSEONG YEO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅧᅵ→ +3156 ; 1167 4E28 ; MA # ( ㅖ → ᅧ丨 ) HANGUL LETTER YE → HANGUL JUNGSEONG YEO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅨ→→ᅧᅵ→ + +3157 ; 1169 ; MA # ( ㅗ → ᅩ ) HANGUL LETTER O → HANGUL JUNGSEONG O # + +116A ; 1169 1161 ; MA # ( ᅪ → ᅩᅡ ) HANGUL JUNGSEONG WA → HANGUL JUNGSEONG O, HANGUL JUNGSEONG A # +3158 ; 1169 1161 ; MA # ( ㅘ → ᅩᅡ ) HANGUL LETTER WA → HANGUL JUNGSEONG O, HANGUL JUNGSEONG A # →ᅪ→ + +116B ; 1169 1161 4E28 ; MA # ( ᅫ → ᅩᅡ丨 ) HANGUL JUNGSEONG WAE → HANGUL JUNGSEONG O, HANGUL JUNGSEONG A, CJK UNIFIED IDEOGRAPH-4E28 # →ᅩᅡᅵ→ +3159 ; 1169 1161 4E28 ; MA # ( ㅙ → ᅩᅡ丨 ) HANGUL LETTER WAE → HANGUL JUNGSEONG O, HANGUL JUNGSEONG A, CJK UNIFIED IDEOGRAPH-4E28 # →ᅫ→→ᅩᅡᅵ→ + +11A6 ; 1169 1163 ; MA # ( ᆦ → ᅩᅣ ) HANGUL JUNGSEONG O-YA → HANGUL JUNGSEONG O, HANGUL JUNGSEONG YA # + +11A7 ; 1169 1163 4E28 ; MA # ( ᆧ → ᅩᅣ丨 ) HANGUL JUNGSEONG O-YAE → HANGUL JUNGSEONG O, HANGUL JUNGSEONG YA, CJK UNIFIED IDEOGRAPH-4E28 # →ᅩᅣᅵ→ + +117F ; 1169 1165 ; MA # ( ᅿ → ᅩᅥ ) HANGUL JUNGSEONG O-EO → HANGUL JUNGSEONG O, HANGUL JUNGSEONG EO # + +1180 ; 1169 1165 4E28 ; MA # ( ᆀ → ᅩᅥ丨 ) HANGUL JUNGSEONG O-E → HANGUL JUNGSEONG O, HANGUL JUNGSEONG EO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅩᅥᅵ→ + +D7B0 ; 1169 1167 ; MA # ( ힰ → ᅩᅧ ) HANGUL JUNGSEONG O-YEO → HANGUL JUNGSEONG O, HANGUL JUNGSEONG YEO # + +1181 ; 1169 1167 4E28 ; MA # ( ᆁ → ᅩᅧ丨 ) HANGUL JUNGSEONG O-YE → HANGUL JUNGSEONG O, HANGUL JUNGSEONG YEO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅩᅧᅵ→ + +1182 ; 1169 1169 ; MA # ( ᆂ → ᅩᅩ ) HANGUL JUNGSEONG O-O → HANGUL JUNGSEONG O, HANGUL JUNGSEONG O # + +D7B1 ; 1169 1169 4E28 ; MA # ( ힱ → ᅩᅩ丨 ) HANGUL JUNGSEONG O-O-I → HANGUL JUNGSEONG O, HANGUL JUNGSEONG O, CJK UNIFIED IDEOGRAPH-4E28 # →ᅩᅩᅵ→ + +1183 ; 1169 116E ; MA # ( ᆃ → ᅩᅮ ) HANGUL JUNGSEONG O-U → HANGUL JUNGSEONG O, HANGUL JUNGSEONG U # + +116C ; 1169 4E28 ; MA # ( ᅬ → ᅩ丨 ) HANGUL JUNGSEONG OE → HANGUL JUNGSEONG O, CJK UNIFIED IDEOGRAPH-4E28 # →ᅩᅵ→ +315A ; 1169 4E28 ; MA # ( ㅚ → ᅩ丨 ) HANGUL LETTER OE → HANGUL JUNGSEONG O, CJK UNIFIED IDEOGRAPH-4E28 # →ᅬ→→ᅩᅵ→ + +315B ; 116D ; MA # ( ㅛ → ᅭ ) HANGUL LETTER YO → HANGUL JUNGSEONG YO # + +D7B2 ; 116D 1161 ; MA # ( ힲ → ᅭᅡ ) HANGUL JUNGSEONG YO-A → HANGUL JUNGSEONG YO, HANGUL JUNGSEONG A # + +D7B3 ; 116D 1161 4E28 ; MA # ( ힳ → ᅭᅡ丨 ) HANGUL JUNGSEONG YO-AE → HANGUL JUNGSEONG YO, HANGUL JUNGSEONG A, CJK UNIFIED IDEOGRAPH-4E28 # →ᅭᅡᅵ→ + +1184 ; 116D 1163 ; MA # ( ᆄ → ᅭᅣ ) HANGUL JUNGSEONG YO-YA → HANGUL JUNGSEONG YO, HANGUL JUNGSEONG YA # +3187 ; 116D 1163 ; MA # ( ㆇ → ᅭᅣ ) HANGUL LETTER YO-YA → HANGUL JUNGSEONG YO, HANGUL JUNGSEONG YA # →ᆄ→ +1186 ; 116D 1163 ; MA # ( ᆆ → ᅭᅣ ) HANGUL JUNGSEONG YO-YEO → HANGUL JUNGSEONG YO, HANGUL JUNGSEONG YA # →ᆄ→ + +1185 ; 116D 1163 4E28 ; MA # ( ᆅ → ᅭᅣ丨 ) HANGUL JUNGSEONG YO-YAE → HANGUL JUNGSEONG YO, HANGUL JUNGSEONG YA, CJK UNIFIED IDEOGRAPH-4E28 # →ᅭᅣᅵ→ +3188 ; 116D 1163 4E28 ; MA # ( ㆈ → ᅭᅣ丨 ) HANGUL LETTER YO-YAE → HANGUL JUNGSEONG YO, HANGUL JUNGSEONG YA, CJK UNIFIED IDEOGRAPH-4E28 # →ᆅ→→ᅭᅣᅵ→ + +D7B4 ; 116D 1165 ; MA # ( ힴ → ᅭᅥ ) HANGUL JUNGSEONG YO-EO → HANGUL JUNGSEONG YO, HANGUL JUNGSEONG EO # + +1187 ; 116D 1169 ; MA # ( ᆇ → ᅭᅩ ) HANGUL JUNGSEONG YO-O → HANGUL JUNGSEONG YO, HANGUL JUNGSEONG O # + +1188 ; 116D 4E28 ; MA # ( ᆈ → ᅭ丨 ) HANGUL JUNGSEONG YO-I → HANGUL JUNGSEONG YO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅭᅵ→ +3189 ; 116D 4E28 ; MA # ( ㆉ → ᅭ丨 ) HANGUL LETTER YO-I → HANGUL JUNGSEONG YO, CJK UNIFIED IDEOGRAPH-4E28 # →ᆈ→→ᅭᅵ→ + +315C ; 116E ; MA # ( ㅜ → ᅮ ) HANGUL LETTER U → HANGUL JUNGSEONG U # + +1189 ; 116E 1161 ; MA # ( ᆉ → ᅮᅡ ) HANGUL JUNGSEONG U-A → HANGUL JUNGSEONG U, HANGUL JUNGSEONG A # + +118A ; 116E 1161 4E28 ; MA # ( ᆊ → ᅮᅡ丨 ) HANGUL JUNGSEONG U-AE → HANGUL JUNGSEONG U, HANGUL JUNGSEONG A, CJK UNIFIED IDEOGRAPH-4E28 # →ᅮᅡᅵ→ + +116F ; 116E 1165 ; MA # ( ᅯ → ᅮᅥ ) HANGUL JUNGSEONG WEO → HANGUL JUNGSEONG U, HANGUL JUNGSEONG EO # +315D ; 116E 1165 ; MA # ( ㅝ → ᅮᅥ ) HANGUL LETTER WEO → HANGUL JUNGSEONG U, HANGUL JUNGSEONG EO # →ᅯ→ + +118B ; 116E 1165 30FC ; MA # ( ᆋ → ᅮᅥー ) HANGUL JUNGSEONG U-EO-EU → HANGUL JUNGSEONG U, HANGUL JUNGSEONG EO, KATAKANA-HIRAGANA PROLONGED SOUND MARK # →ᅮᅥᅳ→ + +1170 ; 116E 1165 4E28 ; MA # ( ᅰ → ᅮᅥ丨 ) HANGUL JUNGSEONG WE → HANGUL JUNGSEONG U, HANGUL JUNGSEONG EO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅮᅥᅵ→ +315E ; 116E 1165 4E28 ; MA # ( ㅞ → ᅮᅥ丨 ) HANGUL LETTER WE → HANGUL JUNGSEONG U, HANGUL JUNGSEONG EO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅰ→→ᅮᅥᅵ→ + +D7B5 ; 116E 1167 ; MA # ( ힵ → ᅮᅧ ) HANGUL JUNGSEONG U-YEO → HANGUL JUNGSEONG U, HANGUL JUNGSEONG YEO # + +118C ; 116E 1167 4E28 ; MA # ( ᆌ → ᅮᅧ丨 ) HANGUL JUNGSEONG U-YE → HANGUL JUNGSEONG U, HANGUL JUNGSEONG YEO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅮᅧᅵ→ + +118D ; 116E 116E ; MA # ( ᆍ → ᅮᅮ ) HANGUL JUNGSEONG U-U → HANGUL JUNGSEONG U, HANGUL JUNGSEONG U # + +1171 ; 116E 4E28 ; MA # ( ᅱ → ᅮ丨 ) HANGUL JUNGSEONG WI → HANGUL JUNGSEONG U, CJK UNIFIED IDEOGRAPH-4E28 # →ᅮᅵ→ +315F ; 116E 4E28 ; MA # ( ㅟ → ᅮ丨 ) HANGUL LETTER WI → HANGUL JUNGSEONG U, CJK UNIFIED IDEOGRAPH-4E28 # →ᅱ→→ᅮᅵ→ + +D7B6 ; 116E 4E28 4E28 ; MA # ( ힶ → ᅮ丨丨 ) HANGUL JUNGSEONG U-I-I → HANGUL JUNGSEONG U, CJK UNIFIED IDEOGRAPH-4E28, CJK UNIFIED IDEOGRAPH-4E28 # →ᅮᅵᅵ→ + +3160 ; 1172 ; MA # ( ㅠ → ᅲ ) HANGUL LETTER YU → HANGUL JUNGSEONG YU # + +118E ; 1172 1161 ; MA # ( ᆎ → ᅲᅡ ) HANGUL JUNGSEONG YU-A → HANGUL JUNGSEONG YU, HANGUL JUNGSEONG A # + +D7B7 ; 1172 1161 4E28 ; MA # ( ힷ → ᅲᅡ丨 ) HANGUL JUNGSEONG YU-AE → HANGUL JUNGSEONG YU, HANGUL JUNGSEONG A, CJK UNIFIED IDEOGRAPH-4E28 # →ᅲᅡᅵ→ + +118F ; 1172 1165 ; MA # ( ᆏ → ᅲᅥ ) HANGUL JUNGSEONG YU-EO → HANGUL JUNGSEONG YU, HANGUL JUNGSEONG EO # + +1190 ; 1172 1165 4E28 ; MA # ( ᆐ → ᅲᅥ丨 ) HANGUL JUNGSEONG YU-E → HANGUL JUNGSEONG YU, HANGUL JUNGSEONG EO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅲᅥᅵ→ + +1191 ; 1172 1167 ; MA # ( ᆑ → ᅲᅧ ) HANGUL JUNGSEONG YU-YEO → HANGUL JUNGSEONG YU, HANGUL JUNGSEONG YEO # +318A ; 1172 1167 ; MA # ( ㆊ → ᅲᅧ ) HANGUL LETTER YU-YEO → HANGUL JUNGSEONG YU, HANGUL JUNGSEONG YEO # →ᆑ→ + +1192 ; 1172 1167 4E28 ; MA # ( ᆒ → ᅲᅧ丨 ) HANGUL JUNGSEONG YU-YE → HANGUL JUNGSEONG YU, HANGUL JUNGSEONG YEO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅲᅧᅵ→ +318B ; 1172 1167 4E28 ; MA # ( ㆋ → ᅲᅧ丨 ) HANGUL LETTER YU-YE → HANGUL JUNGSEONG YU, HANGUL JUNGSEONG YEO, CJK UNIFIED IDEOGRAPH-4E28 # →ᆒ→→ᅲᅧᅵ→ + +D7B8 ; 1172 1169 ; MA # ( ힸ → ᅲᅩ ) HANGUL JUNGSEONG YU-O → HANGUL JUNGSEONG YU, HANGUL JUNGSEONG O # + +1193 ; 1172 116E ; MA # ( ᆓ → ᅲᅮ ) HANGUL JUNGSEONG YU-U → HANGUL JUNGSEONG YU, HANGUL JUNGSEONG U # + +1194 ; 1172 4E28 ; MA # ( ᆔ → ᅲ丨 ) HANGUL JUNGSEONG YU-I → HANGUL JUNGSEONG YU, CJK UNIFIED IDEOGRAPH-4E28 # →ᅲᅵ→ +318C ; 1172 4E28 ; MA # ( ㆌ → ᅲ丨 ) HANGUL LETTER YU-I → HANGUL JUNGSEONG YU, CJK UNIFIED IDEOGRAPH-4E28 # →ᆔ→→ᅲᅵ→ + +318D ; 119E ; MA # ( ㆍ → ᆞ ) HANGUL LETTER ARAEA → HANGUL JUNGSEONG ARAEA # + +D7C5 ; 119E 1161 ; MA # ( ퟅ → ᆞᅡ ) HANGUL JUNGSEONG ARAEA-A → HANGUL JUNGSEONG ARAEA, HANGUL JUNGSEONG A # + +119F ; 119E 1165 ; MA # ( ᆟ → ᆞᅥ ) HANGUL JUNGSEONG ARAEA-EO → HANGUL JUNGSEONG ARAEA, HANGUL JUNGSEONG EO # + +D7C6 ; 119E 1165 4E28 ; MA # ( ퟆ → ᆞᅥ丨 ) HANGUL JUNGSEONG ARAEA-E → HANGUL JUNGSEONG ARAEA, HANGUL JUNGSEONG EO, CJK UNIFIED IDEOGRAPH-4E28 # →ᆞᅥᅵ→ + +11A0 ; 119E 116E ; MA # ( ᆠ → ᆞᅮ ) HANGUL JUNGSEONG ARAEA-U → HANGUL JUNGSEONG ARAEA, HANGUL JUNGSEONG U # + +11A2 ; 119E 119E ; MA # ( ᆢ → ᆞᆞ ) HANGUL JUNGSEONG SSANGARAEA → HANGUL JUNGSEONG ARAEA, HANGUL JUNGSEONG ARAEA # + +11A1 ; 119E 4E28 ; MA # ( ᆡ → ᆞ丨 ) HANGUL JUNGSEONG ARAEA-I → HANGUL JUNGSEONG ARAEA, CJK UNIFIED IDEOGRAPH-4E28 # →ᆞᅵ→ +318E ; 119E 4E28 ; MA # ( ㆎ → ᆞ丨 ) HANGUL LETTER ARAEAE → HANGUL JUNGSEONG ARAEA, CJK UNIFIED IDEOGRAPH-4E28 # →ᆡ→→ᆞᅵ→ + +30D8 ; 3078 ; MA # ( ヘ → へ ) KATAKANA LETTER HE → HIRAGANA LETTER HE # + +2341 ; 303C ; MA #* ( ⍁ → 〼 ) APL FUNCTIONAL SYMBOL QUAD SLASH → MASU MARK # →⧄→ +29C4 ; 303C ; MA #* ( ⧄ → 〼 ) SQUARED RISING DIAGONAL SLASH → MASU MARK # + +A49E ; A04A ; MA #* ( ꒞ → ꁊ ) YI RADICAL PUT → YI SYLLABLE PUT # + +A4AC ; A050 ; MA #* ( ꒬ → ꁐ ) YI RADICAL PYT → YI SYLLABLE PYT # + +A49C ; A0C0 ; MA #* ( ꒜ → ꃀ ) YI RADICAL MOP → YI SYLLABLE MOP # + +A4A8 ; A132 ; MA #* ( ꒨ → ꄲ ) YI RADICAL TU → YI SYLLABLE TU # + +A4BF ; A259 ; MA #* ( ꒿ → ꉙ ) YI RADICAL HXOP → YI SYLLABLE HXOP # + +A4BE ; A2B1 ; MA #* ( ꒾ → ꊱ ) YI RADICAL CIP → YI SYLLABLE CIP # + +A494 ; A2CD ; MA #* ( ꒔ → ꋍ ) YI RADICAL CYP → YI SYLLABLE CYP # + +A4C0 ; A3AB ; MA #* ( ꓀ → ꎫ ) YI RADICAL SHAT → YI SYLLABLE SHAT # + +A4C2 ; A3B5 ; MA #* ( ꓂ → ꎵ ) YI RADICAL SHOP → YI SYLLABLE SHOP # + +A4BA ; A3BF ; MA #* ( ꒺ → ꎿ ) YI RADICAL SHUR → YI SYLLABLE SHUR # + +A4B0 ; A3C2 ; MA #* ( ꒰ → ꏂ ) YI RADICAL SHY → YI SYLLABLE SHY # + +A4A7 ; A458 ; MA #* ( ꒧ → ꑘ ) YI RADICAL NYOP → YI SYLLABLE NYOP # + +22A5 ; A4D5 ; MA #* ( ⊥ → ꓕ ) UP TACK → LISU LETTER THA # +27C2 ; A4D5 ; MA #* ( ⟂ → ꓕ ) PERPENDICULAR → LISU LETTER THA # →⊥→ +1D21C ; A4D5 ; MA #* ( 𝈜 → ꓕ ) GREEK VOCAL NOTATION SYMBOL-54 → LISU LETTER THA # →Ʇ→ +A7B1 ; A4D5 ; MA # ( Ʇ → ꓕ ) LATIN CAPITAL LETTER TURNED T → LISU LETTER THA # + +A79E ; A4E4 ; MA # ( Ꞟ → ꓤ ) LATIN CAPITAL LETTER VOLAPUK UE → LISU LETTER ZA # + +2141 ; A4E8 ; MA #* ( ⅁ → ꓨ ) TURNED SANS-SERIF CAPITAL G → LISU LETTER HHA # + +2142 ; A4F6 ; MA #* ( ⅂ → ꓶ ) TURNED SANS-SERIF CAPITAL L → LISU LETTER UH # +1D215 ; A4F6 ; MA #* ( 𝈕 → ꓶ ) GREEK VOCAL NOTATION SYMBOL-22 → LISU LETTER UH # →⅂→ +1D22B ; A4F6 ; MA #* ( 𝈫 → ꓶ ) GREEK INSTRUMENTAL NOTATION SYMBOL-24 → LISU LETTER UH # →𝈕→→⅂→ +16F26 ; A4F6 ; MA # ( 𖼦 → ꓶ ) MIAO LETTER HA → LISU LETTER UH # →⅂→ +10411 ; A4F6 ; MA # ( 𐐑 → ꓶ ) DESERET CAPITAL LETTER PEE → LISU LETTER UH # →⅂→ + +2143 ; 16F00 ; MA #* ( ⅃ → 𖼀 ) REVERSED SANS-SERIF CAPITAL L → MIAO LETTER PA # + +11AE6 ; 11AE5 11AEF ; MA # ( 𑫦 → 𑫥𑫯 ) PAU CIN HAU RISING TONE → PAU CIN HAU RISING TONE LONG, PAU CIN HAU MID-LEVEL TONE # + +11AE8 ; 11AE5 11AE5 ; MA # ( 𑫨 → 𑫥𑫥 ) PAU CIN HAU RISING TONE LONG FINAL → PAU CIN HAU RISING TONE LONG, PAU CIN HAU RISING TONE LONG # + +11AE9 ; 11AE5 11AE5 11AEF ; MA # ( 𑫩 → 𑫥𑫥𑫯 ) PAU CIN HAU RISING TONE FINAL → PAU CIN HAU RISING TONE LONG, PAU CIN HAU RISING TONE LONG, PAU CIN HAU MID-LEVEL TONE # →𑫥𑫦→ + +11AEA ; 11AE5 11AE5 11AF0 ; MA # ( 𑫪 → 𑫥𑫥𑫰 ) PAU CIN HAU SANDHI GLOTTAL STOP FINAL → PAU CIN HAU RISING TONE LONG, PAU CIN HAU RISING TONE LONG, PAU CIN HAU GLOTTAL STOP VARIANT # →𑫥𑫧→ + +11AE7 ; 11AE5 11AF0 ; MA # ( 𑫧 → 𑫥𑫰 ) PAU CIN HAU SANDHI GLOTTAL STOP → PAU CIN HAU RISING TONE LONG, PAU CIN HAU GLOTTAL STOP VARIANT # + +11AF4 ; 11AF3 11AEF ; MA # ( 𑫴 → 𑫳𑫯 ) PAU CIN HAU LOW-FALLING TONE → PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU MID-LEVEL TONE # + +11AF6 ; 11AF3 11AF3 ; MA # ( 𑫶 → 𑫳𑫳 ) PAU CIN HAU LOW-FALLING TONE LONG FINAL → PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU LOW-FALLING TONE LONG # + +11AF7 ; 11AF3 11AF3 11AEF ; MA # ( 𑫷 → 𑫳𑫳𑫯 ) PAU CIN HAU LOW-FALLING TONE FINAL → PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU MID-LEVEL TONE # →𑫳𑫴→ + +11AF8 ; 11AF3 11AF3 11AF0 ; MA # ( 𑫸 → 𑫳𑫳𑫰 ) PAU CIN HAU GLOTTAL STOP FINAL → PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU GLOTTAL STOP VARIANT # →𑫳𑫵→ + +11AF5 ; 11AF3 11AF0 ; MA # ( 𑫵 → 𑫳𑫰 ) PAU CIN HAU GLOTTAL STOP → PAU CIN HAU LOW-FALLING TONE LONG, PAU CIN HAU GLOTTAL STOP VARIANT # + +11AEC ; 11AEB 11AEF ; MA # ( 𑫬 → 𑫫𑫯 ) PAU CIN HAU SANDHI TONE → PAU CIN HAU SANDHI TONE LONG, PAU CIN HAU MID-LEVEL TONE # + +11AED ; 11AEB 11AEB ; MA # ( 𑫭 → 𑫫𑫫 ) PAU CIN HAU SANDHI TONE LONG FINAL → PAU CIN HAU SANDHI TONE LONG, PAU CIN HAU SANDHI TONE LONG # + +11AEE ; 11AEB 11AEB 11AEF ; MA # ( 𑫮 → 𑫫𑫫𑫯 ) PAU CIN HAU SANDHI TONE FINAL → PAU CIN HAU SANDHI TONE LONG, PAU CIN HAU SANDHI TONE LONG, PAU CIN HAU MID-LEVEL TONE # →𑫫𑫬→ + +2295 ; 102A8 ; MA #* ( ⊕ → 𐊨 ) CIRCLED PLUS → CARIAN LETTER Q # +2A01 ; 102A8 ; MA #* ( ⨁ → 𐊨 ) N-ARY CIRCLED PLUS OPERATOR → CARIAN LETTER Q # →⊕→ +1F728 ; 102A8 ; MA #* ( 🜨 → 𐊨 ) ALCHEMICAL SYMBOL FOR VERDIGRIS → CARIAN LETTER Q # →⊕→ +A69A ; 102A8 ; MA # ( Ꚛ → 𐊨 ) CYRILLIC CAPITAL LETTER CROSSED O → CARIAN LETTER Q # →⊕→ + +25BD ; 102BC ; MA #* ( ▽ → 𐊼 ) WHITE DOWN-POINTING TRIANGLE → CARIAN LETTER K # +1D214 ; 102BC ; MA #* ( 𝈔 → 𐊼 ) GREEK VOCAL NOTATION SYMBOL-21 → CARIAN LETTER K # →▽→ +1F704 ; 102BC ; MA #* ( 🜄 → 𐊼 ) ALCHEMICAL SYMBOL FOR WATER → CARIAN LETTER K # →▽→ + +29D6 ; 102C0 ; MA #* ( ⧖ → 𐋀 ) WHITE HOURGLASS → CARIAN LETTER G # + +A79B ; 1043A ; MA # ( ꞛ → 𐐺 ) LATIN SMALL LETTER VOLAPUK AE → DESERET SMALL LETTER BEE # + +A79A ; 10412 ; MA # ( Ꞛ → 𐐒 ) LATIN CAPITAL LETTER VOLAPUK AE → DESERET CAPITAL LETTER BEE # + +104A0 ; 10486 ; MA # ( 𐒠 → 𐒆 ) OSMANYA DIGIT ZERO → OSMANYA LETTER DEEL # + +103D1 ; 10382 ; MA # ( 𐏑 → 𐎂 ) OLD PERSIAN NUMBER ONE → UGARITIC LETTER GAMLA # + +103D3 ; 10393 ; MA # ( 𐏓 → 𐎓 ) OLD PERSIAN NUMBER TEN → UGARITIC LETTER AIN # + +12038 ; 1039A ; MA # ( 𒀸 → 𐎚 ) CUNEIFORM SIGN ASH → UGARITIC LETTER TO # + +2625 ; 1099E ; MA #* ( ☥ → ‎𐦞‎ ) ANKH → MEROITIC HIEROGLYPHIC SYMBOL VIDJ # +132F9 ; 1099E ; MA # ( 𓋹 → ‎𐦞‎ ) EGYPTIAN HIEROGLYPH S034 → MEROITIC HIEROGLYPHIC SYMBOL VIDJ # →☥→ + +3039 ; 5344 ; MA # ( 〹 → 卄 ) HANGZHOU NUMERAL TWENTY → CJK UNIFIED IDEOGRAPH-5344 # + +F967 ; 4E0D ; MA # ( 不 → 不 ) CJK COMPATIBILITY IDEOGRAPH-F967 → CJK UNIFIED IDEOGRAPH-4E0D # + +2F800 ; 4E3D ; MA # ( 丽 → 丽 ) CJK COMPATIBILITY IDEOGRAPH-2F800 → CJK UNIFIED IDEOGRAPH-4E3D # + +FA70 ; 4E26 ; MA # ( 並 → 並 ) CJK COMPATIBILITY IDEOGRAPH-FA70 → CJK UNIFIED IDEOGRAPH-4E26 # + +239C ; 4E28 ; MA #* ( ⎜ → 丨 ) LEFT PARENTHESIS EXTENSION → CJK UNIFIED IDEOGRAPH-4E28 # →⎥→→⎮→ +239F ; 4E28 ; MA #* ( ⎟ → 丨 ) RIGHT PARENTHESIS EXTENSION → CJK UNIFIED IDEOGRAPH-4E28 # →⎥→→⎮→ +23A2 ; 4E28 ; MA #* ( ⎢ → 丨 ) LEFT SQUARE BRACKET EXTENSION → CJK UNIFIED IDEOGRAPH-4E28 # →⎥→→⎮→ +23A5 ; 4E28 ; MA #* ( ⎥ → 丨 ) RIGHT SQUARE BRACKET EXTENSION → CJK UNIFIED IDEOGRAPH-4E28 # →⎮→ +23AA ; 4E28 ; MA #* ( ⎪ → 丨 ) CURLY BRACKET EXTENSION → CJK UNIFIED IDEOGRAPH-4E28 # →⎥→→⎮→ +23AE ; 4E28 ; MA #* ( ⎮ → 丨 ) INTEGRAL EXTENSION → CJK UNIFIED IDEOGRAPH-4E28 # +31D1 ; 4E28 ; MA #* ( ㇑ → 丨 ) CJK STROKE S → CJK UNIFIED IDEOGRAPH-4E28 # +1175 ; 4E28 ; MA # ( ᅵ → 丨 ) HANGUL JUNGSEONG I → CJK UNIFIED IDEOGRAPH-4E28 # →ㅣ→ +3163 ; 4E28 ; MA # ( ㅣ → 丨 ) HANGUL LETTER I → CJK UNIFIED IDEOGRAPH-4E28 # +2F01 ; 4E28 ; MA #* ( ⼁ → 丨 ) KANGXI RADICAL LINE → CJK UNIFIED IDEOGRAPH-4E28 # + +119C ; 4E28 30FC ; MA # ( ᆜ → 丨ー ) HANGUL JUNGSEONG I-EU → CJK UNIFIED IDEOGRAPH-4E28, KATAKANA-HIRAGANA PROLONGED SOUND MARK # →ᅵᅳ→ + +1198 ; 4E28 1161 ; MA # ( ᆘ → 丨ᅡ ) HANGUL JUNGSEONG I-A → CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG A # →ᅵᅡ→ + +1199 ; 4E28 1163 ; MA # ( ᆙ → 丨ᅣ ) HANGUL JUNGSEONG I-YA → CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YA # →ᅵᅣ→ + +D7BD ; 4E28 1163 1169 ; MA # ( ힽ → 丨ᅣᅩ ) HANGUL JUNGSEONG I-YA-O → CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YA, HANGUL JUNGSEONG O # →ᅵᅣᅩ→ + +D7BE ; 4E28 1163 4E28 ; MA # ( ힾ → 丨ᅣ丨 ) HANGUL JUNGSEONG I-YAE → CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YA, CJK UNIFIED IDEOGRAPH-4E28 # →ᅵᅣᅵ→ + +D7BF ; 4E28 1167 ; MA # ( ힿ → 丨ᅧ ) HANGUL JUNGSEONG I-YEO → CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YEO # →ᅵᅧ→ + +D7C0 ; 4E28 1167 4E28 ; MA # ( ퟀ → 丨ᅧ丨 ) HANGUL JUNGSEONG I-YE → CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YEO, CJK UNIFIED IDEOGRAPH-4E28 # →ᅵᅧᅵ→ + +119A ; 4E28 1169 ; MA # ( ᆚ → 丨ᅩ ) HANGUL JUNGSEONG I-O → CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG O # →ᅵᅩ→ + +D7C1 ; 4E28 1169 4E28 ; MA # ( ퟁ → 丨ᅩ丨 ) HANGUL JUNGSEONG I-O-I → CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG O, CJK UNIFIED IDEOGRAPH-4E28 # →ᅵᅩᅵ→ + +D7C2 ; 4E28 116D ; MA # ( ퟂ → 丨ᅭ ) HANGUL JUNGSEONG I-YO → CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YO # →ᅵᅭ→ + +119B ; 4E28 116E ; MA # ( ᆛ → 丨ᅮ ) HANGUL JUNGSEONG I-U → CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG U # →ᅵᅮ→ + +D7C3 ; 4E28 1172 ; MA # ( ퟃ → 丨ᅲ ) HANGUL JUNGSEONG I-YU → CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG YU # →ᅵᅲ→ + +119D ; 4E28 119E ; MA # ( ᆝ → 丨ᆞ ) HANGUL JUNGSEONG I-ARAEA → CJK UNIFIED IDEOGRAPH-4E28, HANGUL JUNGSEONG ARAEA # →ᅵᆞ→ + +D7C4 ; 4E28 4E28 ; MA # ( ퟄ → 丨丨 ) HANGUL JUNGSEONG I-I → CJK UNIFIED IDEOGRAPH-4E28, CJK UNIFIED IDEOGRAPH-4E28 # →ᅵᅵ→ + +F905 ; 4E32 ; MA # ( 串 → 串 ) CJK COMPATIBILITY IDEOGRAPH-F905 → CJK UNIFIED IDEOGRAPH-4E32 # + +2F801 ; 4E38 ; MA # ( 丸 → 丸 ) CJK COMPATIBILITY IDEOGRAPH-2F801 → CJK UNIFIED IDEOGRAPH-4E38 # + +F95E ; 4E39 ; MA # ( 丹 → 丹 ) CJK COMPATIBILITY IDEOGRAPH-F95E → CJK UNIFIED IDEOGRAPH-4E39 # + +2F802 ; 4E41 ; MA # ( 乁 → 乁 ) CJK COMPATIBILITY IDEOGRAPH-2F802 → CJK UNIFIED IDEOGRAPH-4E41 # + +31E0 ; 4E59 ; MA #* ( ㇠ → 乙 ) CJK STROKE HXWG → CJK UNIFIED IDEOGRAPH-4E59 # +2F04 ; 4E59 ; MA #* ( ⼄ → 乙 ) KANGXI RADICAL SECOND → CJK UNIFIED IDEOGRAPH-4E59 # + +31DF ; 4E5A ; MA #* ( ㇟ → 乚 ) CJK STROKE SWG → CJK UNIFIED IDEOGRAPH-4E5A # +2E83 ; 4E5A ; MA #* ( ⺃ → 乚 ) CJK RADICAL SECOND TWO → CJK UNIFIED IDEOGRAPH-4E5A # + +31D6 ; 4E5B ; MA #* ( ㇖ → 乛 ) CJK STROKE HG → CJK UNIFIED IDEOGRAPH-4E5B # +2E82 ; 4E5B ; MA #* ( ⺂ → 乛 ) CJK RADICAL SECOND ONE → CJK UNIFIED IDEOGRAPH-4E5B # →㇖→ + +2EF2 ; 4E80 ; MA #* ( ⻲ → 亀 ) CJK RADICAL J-SIMPLIFIED TURTLE → CJK UNIFIED IDEOGRAPH-4E80 # + +F91B ; 4E82 ; MA # ( 亂 → 亂 ) CJK COMPATIBILITY IDEOGRAPH-F91B → CJK UNIFIED IDEOGRAPH-4E82 # + +31DA ; 4E85 ; MA #* ( ㇚ → 亅 ) CJK STROKE SG → CJK UNIFIED IDEOGRAPH-4E85 # +2F05 ; 4E85 ; MA #* ( ⼅ → 亅 ) KANGXI RADICAL HOOK → CJK UNIFIED IDEOGRAPH-4E85 # + +F9BA ; 4E86 ; MA # ( 了 → 了 ) CJK COMPATIBILITY IDEOGRAPH-F9BA → CJK UNIFIED IDEOGRAPH-4E86 # + +30CB ; 4E8C ; MA # ( ニ → 二 ) KATAKANA LETTER NI → CJK UNIFIED IDEOGRAPH-4E8C # +2F06 ; 4E8C ; MA #* ( ⼆ → 二 ) KANGXI RADICAL TWO → CJK UNIFIED IDEOGRAPH-4E8C # + +2F803 ; 20122 ; MA # ( 𠄢 → 𠄢 ) CJK COMPATIBILITY IDEOGRAPH-2F803 → CJK UNIFIED IDEOGRAPH-20122 # + +2F07 ; 4EA0 ; MA #* ( ⼇ → 亠 ) KANGXI RADICAL LID → CJK UNIFIED IDEOGRAPH-4EA0 # + +F977 ; 4EAE ; MA # ( 亮 → 亮 ) CJK COMPATIBILITY IDEOGRAPH-F977 → CJK UNIFIED IDEOGRAPH-4EAE # + +2F08 ; 4EBA ; MA #* ( ⼈ → 人 ) KANGXI RADICAL MAN → CJK UNIFIED IDEOGRAPH-4EBA # + +30A4 ; 4EBB ; MA # ( イ → 亻 ) KATAKANA LETTER I → CJK UNIFIED IDEOGRAPH-4EBB # →⺅→ +2E85 ; 4EBB ; MA #* ( ⺅ → 亻 ) CJK RADICAL PERSON → CJK UNIFIED IDEOGRAPH-4EBB # + +F9FD ; 4EC0 ; MA # ( 什 → 什 ) CJK COMPATIBILITY IDEOGRAPH-F9FD → CJK UNIFIED IDEOGRAPH-4EC0 # + +2F819 ; 4ECC ; MA # ( 仌 → 仌 ) CJK COMPATIBILITY IDEOGRAPH-2F819 → CJK UNIFIED IDEOGRAPH-4ECC # + +F9A8 ; 4EE4 ; MA # ( 令 → 令 ) CJK COMPATIBILITY IDEOGRAPH-F9A8 → CJK UNIFIED IDEOGRAPH-4EE4 # + +2F804 ; 4F60 ; MA # ( 你 → 你 ) CJK COMPATIBILITY IDEOGRAPH-2F804 → CJK UNIFIED IDEOGRAPH-4F60 # + +5002 ; 4F75 ; MA # ( 倂 → 併 ) CJK UNIFIED IDEOGRAPH-5002 → CJK UNIFIED IDEOGRAPH-4F75 # +2F807 ; 4F75 ; MA # ( 倂 → 併 ) CJK COMPATIBILITY IDEOGRAPH-2F807 → CJK UNIFIED IDEOGRAPH-4F75 # →倂→ + +FA73 ; 4F80 ; MA # ( 侀 → 侀 ) CJK COMPATIBILITY IDEOGRAPH-FA73 → CJK UNIFIED IDEOGRAPH-4F80 # + +F92D ; 4F86 ; MA # ( 來 → 來 ) CJK COMPATIBILITY IDEOGRAPH-F92D → CJK UNIFIED IDEOGRAPH-4F86 # + +F9B5 ; 4F8B ; MA # ( 例 → 例 ) CJK COMPATIBILITY IDEOGRAPH-F9B5 → CJK UNIFIED IDEOGRAPH-4F8B # + +FA30 ; 4FAE ; MA # ( 侮 → 侮 ) CJK COMPATIBILITY IDEOGRAPH-FA30 → CJK UNIFIED IDEOGRAPH-4FAE # +2F805 ; 4FAE ; MA # ( 侮 → 侮 ) CJK COMPATIBILITY IDEOGRAPH-2F805 → CJK UNIFIED IDEOGRAPH-4FAE # + +2F806 ; 4FBB ; MA # ( 侻 → 侻 ) CJK COMPATIBILITY IDEOGRAPH-2F806 → CJK UNIFIED IDEOGRAPH-4FBB # + +F965 ; 4FBF ; MA # ( 便 → 便 ) CJK COMPATIBILITY IDEOGRAPH-F965 → CJK UNIFIED IDEOGRAPH-4FBF # + +503C ; 5024 ; MA # ( 值 → 値 ) CJK UNIFIED IDEOGRAPH-503C → CJK UNIFIED IDEOGRAPH-5024 # + +F9D4 ; 502B ; MA # ( 倫 → 倫 ) CJK COMPATIBILITY IDEOGRAPH-F9D4 → CJK UNIFIED IDEOGRAPH-502B # + +2F808 ; 507A ; MA # ( 偺 → 偺 ) CJK COMPATIBILITY IDEOGRAPH-2F808 → CJK UNIFIED IDEOGRAPH-507A # + +2F809 ; 5099 ; MA # ( 備 → 備 ) CJK COMPATIBILITY IDEOGRAPH-2F809 → CJK UNIFIED IDEOGRAPH-5099 # + +2F80B ; 50CF ; MA # ( 像 → 像 ) CJK COMPATIBILITY IDEOGRAPH-2F80B → CJK UNIFIED IDEOGRAPH-50CF # + +F9BB ; 50DA ; MA # ( 僚 → 僚 ) CJK COMPATIBILITY IDEOGRAPH-F9BB → CJK UNIFIED IDEOGRAPH-50DA # + +FA31 ; 50E7 ; MA # ( 僧 → 僧 ) CJK COMPATIBILITY IDEOGRAPH-FA31 → CJK UNIFIED IDEOGRAPH-50E7 # +2F80A ; 50E7 ; MA # ( 僧 → 僧 ) CJK COMPATIBILITY IDEOGRAPH-2F80A → CJK UNIFIED IDEOGRAPH-50E7 # + +2F80C ; 349E ; MA # ( 㒞 → 㒞 ) CJK COMPATIBILITY IDEOGRAPH-2F80C → CJK UNIFIED IDEOGRAPH-349E # + +2F09 ; 513F ; MA #* ( ⼉ → 儿 ) KANGXI RADICAL LEGS → CJK UNIFIED IDEOGRAPH-513F # + +FA0C ; 5140 ; MA # ( 兀 → 兀 ) CJK COMPATIBILITY IDEOGRAPH-FA0C → CJK UNIFIED IDEOGRAPH-5140 # +2E8E ; 5140 ; MA #* ( ⺎ → 兀 ) CJK RADICAL LAME ONE → CJK UNIFIED IDEOGRAPH-5140 # + +FA74 ; 5145 ; MA # ( 充 → 充 ) CJK COMPATIBILITY IDEOGRAPH-FA74 → CJK UNIFIED IDEOGRAPH-5145 # + +FA32 ; 514D ; MA # ( 免 → 免 ) CJK COMPATIBILITY IDEOGRAPH-FA32 → CJK UNIFIED IDEOGRAPH-514D # +2F80E ; 514D ; MA # ( 免 → 免 ) CJK COMPATIBILITY IDEOGRAPH-2F80E → CJK UNIFIED IDEOGRAPH-514D # + +2F80F ; 5154 ; MA # ( 兔 → 兔 ) CJK COMPATIBILITY IDEOGRAPH-2F80F → CJK UNIFIED IDEOGRAPH-5154 # + +2F810 ; 5164 ; MA # ( 兤 → 兤 ) CJK COMPATIBILITY IDEOGRAPH-2F810 → CJK UNIFIED IDEOGRAPH-5164 # + +2F0A ; 5165 ; MA #* ( ⼊ → 入 ) KANGXI RADICAL ENTER → CJK UNIFIED IDEOGRAPH-5165 # + +2F814 ; 5167 ; MA # ( 內 → 內 ) CJK COMPATIBILITY IDEOGRAPH-2F814 → CJK UNIFIED IDEOGRAPH-5167 # + +FA72 ; 5168 ; MA # ( 全 → 全 ) CJK COMPATIBILITY IDEOGRAPH-FA72 → CJK UNIFIED IDEOGRAPH-5168 # + +F978 ; 5169 ; MA # ( 兩 → 兩 ) CJK COMPATIBILITY IDEOGRAPH-F978 → CJK UNIFIED IDEOGRAPH-5169 # + +30CF ; 516B ; MA # ( ハ → 八 ) KATAKANA LETTER HA → CJK UNIFIED IDEOGRAPH-516B # +2F0B ; 516B ; MA #* ( ⼋ → 八 ) KANGXI RADICAL EIGHT → CJK UNIFIED IDEOGRAPH-516B # + +F9D1 ; 516D ; MA # ( 六 → 六 ) CJK COMPATIBILITY IDEOGRAPH-F9D1 → CJK UNIFIED IDEOGRAPH-516D # + +2F811 ; 5177 ; MA # ( 具 → 具 ) CJK COMPATIBILITY IDEOGRAPH-2F811 → CJK UNIFIED IDEOGRAPH-5177 # + +2F812 ; 2051C ; MA # ( 𠔜 → 𠔜 ) CJK COMPATIBILITY IDEOGRAPH-2F812 → CJK UNIFIED IDEOGRAPH-2051C # + +2F91B ; 20525 ; MA # ( 𠔥 → 𠔥 ) CJK COMPATIBILITY IDEOGRAPH-2F91B → CJK UNIFIED IDEOGRAPH-20525 # + +FA75 ; 5180 ; MA # ( 冀 → 冀 ) CJK COMPATIBILITY IDEOGRAPH-FA75 → CJK UNIFIED IDEOGRAPH-5180 # + +2F813 ; 34B9 ; MA # ( 㒹 → 㒹 ) CJK COMPATIBILITY IDEOGRAPH-2F813 → CJK UNIFIED IDEOGRAPH-34B9 # + +2F0C ; 5182 ; MA #* ( ⼌ → 冂 ) KANGXI RADICAL DOWN BOX → CJK UNIFIED IDEOGRAPH-5182 # + +2F815 ; 518D ; MA # ( 再 → 再 ) CJK COMPATIBILITY IDEOGRAPH-2F815 → CJK UNIFIED IDEOGRAPH-518D # + +2F816 ; 2054B ; MA # ( 𠕋 → 𠕋 ) CJK COMPATIBILITY IDEOGRAPH-2F816 → CJK UNIFIED IDEOGRAPH-2054B # + +2F8D2 ; 5192 ; MA # ( 冒 → 冒 ) CJK COMPATIBILITY IDEOGRAPH-2F8D2 → CJK UNIFIED IDEOGRAPH-5192 # + +2F8D3 ; 5195 ; MA # ( 冕 → 冕 ) CJK COMPATIBILITY IDEOGRAPH-2F8D3 → CJK UNIFIED IDEOGRAPH-5195 # + +2F9CA ; 34BB ; MA # ( 㒻 → 㒻 ) CJK COMPATIBILITY IDEOGRAPH-2F9CA → CJK UNIFIED IDEOGRAPH-34BB # + +2F8D4 ; 6700 ; MA # ( 最 → 最 ) CJK COMPATIBILITY IDEOGRAPH-2F8D4 → CJK UNIFIED IDEOGRAPH-6700 # + +2F0D ; 5196 ; MA #* ( ⼍ → 冖 ) KANGXI RADICAL COVER → CJK UNIFIED IDEOGRAPH-5196 # + +2F817 ; 5197 ; MA # ( 冗 → 冗 ) CJK COMPATIBILITY IDEOGRAPH-2F817 → CJK UNIFIED IDEOGRAPH-5197 # + +2F818 ; 51A4 ; MA # ( 冤 → 冤 ) CJK COMPATIBILITY IDEOGRAPH-2F818 → CJK UNIFIED IDEOGRAPH-51A4 # + +2F0E ; 51AB ; MA #* ( ⼎ → 冫 ) KANGXI RADICAL ICE → CJK UNIFIED IDEOGRAPH-51AB # + +2F81A ; 51AC ; MA # ( 冬 → 冬 ) CJK COMPATIBILITY IDEOGRAPH-2F81A → CJK UNIFIED IDEOGRAPH-51AC # + +FA71 ; 51B5 ; MA # ( 况 → 况 ) CJK COMPATIBILITY IDEOGRAPH-FA71 → CJK UNIFIED IDEOGRAPH-51B5 # +2F81B ; 51B5 ; MA # ( 况 → 况 ) CJK COMPATIBILITY IDEOGRAPH-2F81B → CJK UNIFIED IDEOGRAPH-51B5 # + +F92E ; 51B7 ; MA # ( 冷 → 冷 ) CJK COMPATIBILITY IDEOGRAPH-F92E → CJK UNIFIED IDEOGRAPH-51B7 # + +F979 ; 51C9 ; MA # ( 凉 → 凉 ) CJK COMPATIBILITY IDEOGRAPH-F979 → CJK UNIFIED IDEOGRAPH-51C9 # + +F955 ; 51CC ; MA # ( 凌 → 凌 ) CJK COMPATIBILITY IDEOGRAPH-F955 → CJK UNIFIED IDEOGRAPH-51CC # + +F954 ; 51DC ; MA # ( 凜 → 凜 ) CJK COMPATIBILITY IDEOGRAPH-F954 → CJK UNIFIED IDEOGRAPH-51DC # + +FA15 ; 51DE ; MA # ( 凞 → 凞 ) CJK COMPATIBILITY IDEOGRAPH-FA15 → CJK UNIFIED IDEOGRAPH-51DE # + +2F0F ; 51E0 ; MA #* ( ⼏ → 几 ) KANGXI RADICAL TABLE → CJK UNIFIED IDEOGRAPH-51E0 # + +2F80D ; 2063A ; MA # ( 𠘺 → 𠘺 ) CJK COMPATIBILITY IDEOGRAPH-2F80D → CJK UNIFIED IDEOGRAPH-2063A # + +2F81D ; 51F5 ; MA # ( 凵 → 凵 ) CJK COMPATIBILITY IDEOGRAPH-2F81D → CJK UNIFIED IDEOGRAPH-51F5 # +2F10 ; 51F5 ; MA #* ( ⼐ → 凵 ) KANGXI RADICAL OPEN BOX → CJK UNIFIED IDEOGRAPH-51F5 # + +2F11 ; 5200 ; MA #* ( ⼑ → 刀 ) KANGXI RADICAL KNIFE → CJK UNIFIED IDEOGRAPH-5200 # + +2E89 ; 5202 ; MA #* ( ⺉ → 刂 ) CJK RADICAL KNIFE TWO → CJK UNIFIED IDEOGRAPH-5202 # + +2F81E ; 5203 ; MA # ( 刃 → 刃 ) CJK COMPATIBILITY IDEOGRAPH-2F81E → CJK UNIFIED IDEOGRAPH-5203 # + +FA00 ; 5207 ; MA # ( 切 → 切 ) CJK COMPATIBILITY IDEOGRAPH-FA00 → CJK UNIFIED IDEOGRAPH-5207 # +2F850 ; 5207 ; MA # ( 切 → 切 ) CJK COMPATIBILITY IDEOGRAPH-2F850 → CJK UNIFIED IDEOGRAPH-5207 # + +F99C ; 5217 ; MA # ( 列 → 列 ) CJK COMPATIBILITY IDEOGRAPH-F99C → CJK UNIFIED IDEOGRAPH-5217 # + +F9DD ; 5229 ; MA # ( 利 → 利 ) CJK COMPATIBILITY IDEOGRAPH-F9DD → CJK UNIFIED IDEOGRAPH-5229 # + +2F81F ; 34DF ; MA # ( 㓟 → 㓟 ) CJK COMPATIBILITY IDEOGRAPH-2F81F → CJK UNIFIED IDEOGRAPH-34DF # + +F9FF ; 523A ; MA # ( 刺 → 刺 ) CJK COMPATIBILITY IDEOGRAPH-F9FF → CJK UNIFIED IDEOGRAPH-523A # + +2F820 ; 523B ; MA # ( 刻 → 刻 ) CJK COMPATIBILITY IDEOGRAPH-2F820 → CJK UNIFIED IDEOGRAPH-523B # + +2F821 ; 5246 ; MA # ( 剆 → 剆 ) CJK COMPATIBILITY IDEOGRAPH-2F821 → CJK UNIFIED IDEOGRAPH-5246 # + +2F822 ; 5272 ; MA # ( 割 → 割 ) CJK COMPATIBILITY IDEOGRAPH-2F822 → CJK UNIFIED IDEOGRAPH-5272 # + +2F823 ; 5277 ; MA # ( 剷 → 剷 ) CJK COMPATIBILITY IDEOGRAPH-2F823 → CJK UNIFIED IDEOGRAPH-5277 # + +F9C7 ; 5289 ; MA # ( 劉 → 劉 ) CJK COMPATIBILITY IDEOGRAPH-F9C7 → CJK UNIFIED IDEOGRAPH-5289 # + +2F9D9 ; 20804 ; MA # ( 𠠄 → 𠠄 ) CJK COMPATIBILITY IDEOGRAPH-2F9D9 → CJK UNIFIED IDEOGRAPH-20804 # + +30AB ; 529B ; MA # ( カ → 力 ) KATAKANA LETTER KA → CJK UNIFIED IDEOGRAPH-529B # →⼒→ +F98A ; 529B ; MA # ( 力 → 力 ) CJK COMPATIBILITY IDEOGRAPH-F98A → CJK UNIFIED IDEOGRAPH-529B # +2F12 ; 529B ; MA #* ( ⼒ → 力 ) KANGXI RADICAL POWER → CJK UNIFIED IDEOGRAPH-529B # + +F99D ; 52A3 ; MA # ( 劣 → 劣 ) CJK COMPATIBILITY IDEOGRAPH-F99D → CJK UNIFIED IDEOGRAPH-52A3 # + +2F824 ; 3515 ; MA # ( 㔕 → 㔕 ) CJK COMPATIBILITY IDEOGRAPH-2F824 → CJK UNIFIED IDEOGRAPH-3515 # + +2F992 ; 52B3 ; MA # ( 劳 → 劳 ) CJK COMPATIBILITY IDEOGRAPH-2F992 → CJK UNIFIED IDEOGRAPH-52B3 # + +FA76 ; 52C7 ; MA # ( 勇 → 勇 ) CJK COMPATIBILITY IDEOGRAPH-FA76 → CJK UNIFIED IDEOGRAPH-52C7 # +2F825 ; 52C7 ; MA # ( 勇 → 勇 ) CJK COMPATIBILITY IDEOGRAPH-2F825 → CJK UNIFIED IDEOGRAPH-52C7 # + +FA33 ; 52C9 ; MA # ( 勉 → 勉 ) CJK COMPATIBILITY IDEOGRAPH-FA33 → CJK UNIFIED IDEOGRAPH-52C9 # +2F826 ; 52C9 ; MA # ( 勉 → 勉 ) CJK COMPATIBILITY IDEOGRAPH-2F826 → CJK UNIFIED IDEOGRAPH-52C9 # + +F952 ; 52D2 ; MA # ( 勒 → 勒 ) CJK COMPATIBILITY IDEOGRAPH-F952 → CJK UNIFIED IDEOGRAPH-52D2 # + +F92F ; 52DE ; MA # ( 勞 → 勞 ) CJK COMPATIBILITY IDEOGRAPH-F92F → CJK UNIFIED IDEOGRAPH-52DE # + +FA34 ; 52E4 ; MA # ( 勤 → 勤 ) CJK COMPATIBILITY IDEOGRAPH-FA34 → CJK UNIFIED IDEOGRAPH-52E4 # +2F827 ; 52E4 ; MA # ( 勤 → 勤 ) CJK COMPATIBILITY IDEOGRAPH-2F827 → CJK UNIFIED IDEOGRAPH-52E4 # + +F97F ; 52F5 ; MA # ( 勵 → 勵 ) CJK COMPATIBILITY IDEOGRAPH-F97F → CJK UNIFIED IDEOGRAPH-52F5 # + +2F13 ; 52F9 ; MA #* ( ⼓ → 勹 ) KANGXI RADICAL WRAP → CJK UNIFIED IDEOGRAPH-52F9 # + +FA77 ; 52FA ; MA # ( 勺 → 勺 ) CJK COMPATIBILITY IDEOGRAPH-FA77 → CJK UNIFIED IDEOGRAPH-52FA # +2F828 ; 52FA ; MA # ( 勺 → 勺 ) CJK COMPATIBILITY IDEOGRAPH-2F828 → CJK UNIFIED IDEOGRAPH-52FA # + +2F829 ; 5305 ; MA # ( 包 → 包 ) CJK COMPATIBILITY IDEOGRAPH-2F829 → CJK UNIFIED IDEOGRAPH-5305 # + +2F82A ; 5306 ; MA # ( 匆 → 匆 ) CJK COMPATIBILITY IDEOGRAPH-2F82A → CJK UNIFIED IDEOGRAPH-5306 # + +2F9DD ; 208DE ; MA # ( 𠣞 → 𠣞 ) CJK COMPATIBILITY IDEOGRAPH-2F9DD → CJK UNIFIED IDEOGRAPH-208DE # + +2F14 ; 5315 ; MA #* ( ⼔ → 匕 ) KANGXI RADICAL SPOON → CJK UNIFIED IDEOGRAPH-5315 # + +F963 ; 5317 ; MA # ( 北 → 北 ) CJK COMPATIBILITY IDEOGRAPH-F963 → CJK UNIFIED IDEOGRAPH-5317 # +2F82B ; 5317 ; MA # ( 北 → 北 ) CJK COMPATIBILITY IDEOGRAPH-2F82B → CJK UNIFIED IDEOGRAPH-5317 # + +2F15 ; 531A ; MA #* ( ⼕ → 匚 ) KANGXI RADICAL RIGHT OPEN BOX → CJK UNIFIED IDEOGRAPH-531A # + +2F16 ; 5338 ; MA #* ( ⼖ → 匸 ) KANGXI RADICAL HIDING ENCLOSURE → CJK UNIFIED IDEOGRAPH-5338 # + +F9EB ; 533F ; MA # ( 匿 → 匿 ) CJK COMPATIBILITY IDEOGRAPH-F9EB → CJK UNIFIED IDEOGRAPH-533F # + +2F17 ; 5341 ; MA #* ( ⼗ → 十 ) KANGXI RADICAL TEN → CJK UNIFIED IDEOGRAPH-5341 # +3038 ; 5341 ; MA # ( 〸 → 十 ) HANGZHOU NUMERAL TEN → CJK UNIFIED IDEOGRAPH-5341 # + +303A ; 5345 ; MA # ( 〺 → 卅 ) HANGZHOU NUMERAL THIRTY → CJK UNIFIED IDEOGRAPH-5345 # + +2F82C ; 5349 ; MA # ( 卉 → 卉 ) CJK COMPATIBILITY IDEOGRAPH-2F82C → CJK UNIFIED IDEOGRAPH-5349 # + +0FD6 ; 534D ; MA #* ( ࿖ → 卍 ) LEFT-FACING SVASTI SIGN → CJK UNIFIED IDEOGRAPH-534D # + +0FD5 ; 5350 ; MA #* ( ࿕ → 卐 ) RIGHT-FACING SVASTI SIGN → CJK UNIFIED IDEOGRAPH-5350 # + +FA35 ; 5351 ; MA # ( 卑 → 卑 ) CJK COMPATIBILITY IDEOGRAPH-FA35 → CJK UNIFIED IDEOGRAPH-5351 # +2F82D ; 5351 ; MA # ( 卑 → 卑 ) CJK COMPATIBILITY IDEOGRAPH-2F82D → CJK UNIFIED IDEOGRAPH-5351 # + +2F82E ; 535A ; MA # ( 博 → 博 ) CJK COMPATIBILITY IDEOGRAPH-2F82E → CJK UNIFIED IDEOGRAPH-535A # + +30C8 ; 535C ; MA # ( ト → 卜 ) KATAKANA LETTER TO → CJK UNIFIED IDEOGRAPH-535C # →⼘→ +2F18 ; 535C ; MA #* ( ⼘ → 卜 ) KANGXI RADICAL DIVINATION → CJK UNIFIED IDEOGRAPH-535C # + +2F19 ; 5369 ; MA #* ( ⼙ → 卩 ) KANGXI RADICAL SEAL → CJK UNIFIED IDEOGRAPH-5369 # + +2E8B ; 353E ; MA #* ( ⺋ → 㔾 ) CJK RADICAL SEAL → CJK UNIFIED IDEOGRAPH-353E # + +2F82F ; 5373 ; MA # ( 即 → 即 ) CJK COMPATIBILITY IDEOGRAPH-2F82F → CJK UNIFIED IDEOGRAPH-5373 # + +F91C ; 5375 ; MA # ( 卵 → 卵 ) CJK COMPATIBILITY IDEOGRAPH-F91C → CJK UNIFIED IDEOGRAPH-5375 # + +2F830 ; 537D ; MA # ( 卽 → 卽 ) CJK COMPATIBILITY IDEOGRAPH-2F830 → CJK UNIFIED IDEOGRAPH-537D # + +2F831 ; 537F ; MA # ( 卿 → 卿 ) CJK COMPATIBILITY IDEOGRAPH-2F831 → CJK UNIFIED IDEOGRAPH-537F # +2F832 ; 537F ; MA # ( 卿 → 卿 ) CJK COMPATIBILITY IDEOGRAPH-2F832 → CJK UNIFIED IDEOGRAPH-537F # +2F833 ; 537F ; MA # ( 卿 → 卿 ) CJK COMPATIBILITY IDEOGRAPH-2F833 → CJK UNIFIED IDEOGRAPH-537F # + +2F1A ; 5382 ; MA #* ( ⼚ → 厂 ) KANGXI RADICAL CLIFF → CJK UNIFIED IDEOGRAPH-5382 # + +2F834 ; 20A2C ; MA # ( 𠨬 → 𠨬 ) CJK COMPATIBILITY IDEOGRAPH-2F834 → CJK UNIFIED IDEOGRAPH-20A2C # + +2F1B ; 53B6 ; MA #* ( ⼛ → 厶 ) KANGXI RADICAL PRIVATE → CJK UNIFIED IDEOGRAPH-53B6 # + +F96B ; 53C3 ; MA # ( 參 → 參 ) CJK COMPATIBILITY IDEOGRAPH-F96B → CJK UNIFIED IDEOGRAPH-53C3 # + +2F1C ; 53C8 ; MA #* ( ⼜ → 又 ) KANGXI RADICAL AGAIN → CJK UNIFIED IDEOGRAPH-53C8 # + +2F836 ; 53CA ; MA # ( 及 → 及 ) CJK COMPATIBILITY IDEOGRAPH-2F836 → CJK UNIFIED IDEOGRAPH-53CA # + +2F837 ; 53DF ; MA # ( 叟 → 叟 ) CJK COMPATIBILITY IDEOGRAPH-2F837 → CJK UNIFIED IDEOGRAPH-53DF # + +2F838 ; 20B63 ; MA # ( 𠭣 → 𠭣 ) CJK COMPATIBILITY IDEOGRAPH-2F838 → CJK UNIFIED IDEOGRAPH-20B63 # + +30ED ; 53E3 ; MA # ( ロ → 口 ) KATAKANA LETTER RO → CJK UNIFIED IDEOGRAPH-53E3 # →⼞→→⼝→ +2F1D ; 53E3 ; MA #* ( ⼝ → 口 ) KANGXI RADICAL MOUTH → CJK UNIFIED IDEOGRAPH-53E3 # +56D7 ; 53E3 ; MA # ( 囗 → 口 ) CJK UNIFIED IDEOGRAPH-56D7 → CJK UNIFIED IDEOGRAPH-53E3 # →⼞→→⼝→ +2F1E ; 53E3 ; MA #* ( ⼞ → 口 ) KANGXI RADICAL ENCLOSURE → CJK UNIFIED IDEOGRAPH-53E3 # →⼝→ + +F906 ; 53E5 ; MA # ( 句 → 句 ) CJK COMPATIBILITY IDEOGRAPH-F906 → CJK UNIFIED IDEOGRAPH-53E5 # + +2F839 ; 53EB ; MA # ( 叫 → 叫 ) CJK COMPATIBILITY IDEOGRAPH-2F839 → CJK UNIFIED IDEOGRAPH-53EB # + +2F83A ; 53F1 ; MA # ( 叱 → 叱 ) CJK COMPATIBILITY IDEOGRAPH-2F83A → CJK UNIFIED IDEOGRAPH-53F1 # + +2F83B ; 5406 ; MA # ( 吆 → 吆 ) CJK COMPATIBILITY IDEOGRAPH-2F83B → CJK UNIFIED IDEOGRAPH-5406 # + +F9DE ; 540F ; MA # ( 吏 → 吏 ) CJK COMPATIBILITY IDEOGRAPH-F9DE → CJK UNIFIED IDEOGRAPH-540F # + +F9ED ; 541D ; MA # ( 吝 → 吝 ) CJK COMPATIBILITY IDEOGRAPH-F9ED → CJK UNIFIED IDEOGRAPH-541D # + +2F83D ; 5438 ; MA # ( 吸 → 吸 ) CJK COMPATIBILITY IDEOGRAPH-2F83D → CJK UNIFIED IDEOGRAPH-5438 # + +F980 ; 5442 ; MA # ( 呂 → 呂 ) CJK COMPATIBILITY IDEOGRAPH-F980 → CJK UNIFIED IDEOGRAPH-5442 # + +2F83E ; 5448 ; MA # ( 呈 → 呈 ) CJK COMPATIBILITY IDEOGRAPH-2F83E → CJK UNIFIED IDEOGRAPH-5448 # + +2F83F ; 5468 ; MA # ( 周 → 周 ) CJK COMPATIBILITY IDEOGRAPH-2F83F → CJK UNIFIED IDEOGRAPH-5468 # + +2F83C ; 549E ; MA # ( 咞 → 咞 ) CJK COMPATIBILITY IDEOGRAPH-2F83C → CJK UNIFIED IDEOGRAPH-549E # + +2F840 ; 54A2 ; MA # ( 咢 → 咢 ) CJK COMPATIBILITY IDEOGRAPH-2F840 → CJK UNIFIED IDEOGRAPH-54A2 # + +F99E ; 54BD ; MA # ( 咽 → 咽 ) CJK COMPATIBILITY IDEOGRAPH-F99E → CJK UNIFIED IDEOGRAPH-54BD # + +439B ; 3588 ; MA # ( 䎛 → 㖈 ) CJK UNIFIED IDEOGRAPH-439B → CJK UNIFIED IDEOGRAPH-3588 # + +2F841 ; 54F6 ; MA # ( 哶 → 哶 ) CJK COMPATIBILITY IDEOGRAPH-2F841 → CJK UNIFIED IDEOGRAPH-54F6 # + +2F842 ; 5510 ; MA # ( 唐 → 唐 ) CJK COMPATIBILITY IDEOGRAPH-2F842 → CJK UNIFIED IDEOGRAPH-5510 # + +2F843 ; 5553 ; MA # ( 啓 → 啓 ) CJK COMPATIBILITY IDEOGRAPH-2F843 → CJK UNIFIED IDEOGRAPH-5553 # +555F ; 5553 ; MA # ( 啟 → 啓 ) CJK UNIFIED IDEOGRAPH-555F → CJK UNIFIED IDEOGRAPH-5553 # + +FA79 ; 5555 ; MA # ( 啕 → 啕 ) CJK COMPATIBILITY IDEOGRAPH-FA79 → CJK UNIFIED IDEOGRAPH-5555 # + +2F844 ; 5563 ; MA # ( 啣 → 啣 ) CJK COMPATIBILITY IDEOGRAPH-2F844 → CJK UNIFIED IDEOGRAPH-5563 # + +2F845 ; 5584 ; MA # ( 善 → 善 ) CJK COMPATIBILITY IDEOGRAPH-2F845 → CJK UNIFIED IDEOGRAPH-5584 # +2F846 ; 5584 ; MA # ( 善 → 善 ) CJK COMPATIBILITY IDEOGRAPH-2F846 → CJK UNIFIED IDEOGRAPH-5584 # + +F90B ; 5587 ; MA # ( 喇 → 喇 ) CJK COMPATIBILITY IDEOGRAPH-F90B → CJK UNIFIED IDEOGRAPH-5587 # + +FA7A ; 5599 ; MA # ( 喙 → 喙 ) CJK COMPATIBILITY IDEOGRAPH-FA7A → CJK UNIFIED IDEOGRAPH-5599 # +2F847 ; 5599 ; MA # ( 喙 → 喙 ) CJK COMPATIBILITY IDEOGRAPH-2F847 → CJK UNIFIED IDEOGRAPH-5599 # + +FA36 ; 559D ; MA # ( 喝 → 喝 ) CJK COMPATIBILITY IDEOGRAPH-FA36 → CJK UNIFIED IDEOGRAPH-559D # +FA78 ; 559D ; MA # ( 喝 → 喝 ) CJK COMPATIBILITY IDEOGRAPH-FA78 → CJK UNIFIED IDEOGRAPH-559D # + +2F848 ; 55AB ; MA # ( 喫 → 喫 ) CJK COMPATIBILITY IDEOGRAPH-2F848 → CJK UNIFIED IDEOGRAPH-55AB # + +2F849 ; 55B3 ; MA # ( 喳 → 喳 ) CJK COMPATIBILITY IDEOGRAPH-2F849 → CJK UNIFIED IDEOGRAPH-55B3 # + +FA0D ; 55C0 ; MA # ( 嗀 → 嗀 ) CJK COMPATIBILITY IDEOGRAPH-FA0D → CJK UNIFIED IDEOGRAPH-55C0 # + +2F84A ; 55C2 ; MA # ( 嗂 → 嗂 ) CJK COMPATIBILITY IDEOGRAPH-2F84A → CJK UNIFIED IDEOGRAPH-55C2 # + +FA7B ; 55E2 ; MA # ( 嗢 → 嗢 ) CJK COMPATIBILITY IDEOGRAPH-FA7B → CJK UNIFIED IDEOGRAPH-55E2 # + +FA37 ; 5606 ; MA # ( 嘆 → 嘆 ) CJK COMPATIBILITY IDEOGRAPH-FA37 → CJK UNIFIED IDEOGRAPH-5606 # +2F84C ; 5606 ; MA # ( 嘆 → 嘆 ) CJK COMPATIBILITY IDEOGRAPH-2F84C → CJK UNIFIED IDEOGRAPH-5606 # + +2F84E ; 5651 ; MA # ( 噑 → 噑 ) CJK COMPATIBILITY IDEOGRAPH-2F84E → CJK UNIFIED IDEOGRAPH-5651 # + +2F84F ; 5674 ; MA # ( 噴 → 噴 ) CJK COMPATIBILITY IDEOGRAPH-2F84F → CJK UNIFIED IDEOGRAPH-5674 # + +FA38 ; 5668 ; MA # ( 器 → 器 ) CJK COMPATIBILITY IDEOGRAPH-FA38 → CJK UNIFIED IDEOGRAPH-5668 # + +F9A9 ; 56F9 ; MA # ( 囹 → 囹 ) CJK COMPATIBILITY IDEOGRAPH-F9A9 → CJK UNIFIED IDEOGRAPH-56F9 # + +2F84B ; 5716 ; MA # ( 圖 → 圖 ) CJK COMPATIBILITY IDEOGRAPH-2F84B → CJK UNIFIED IDEOGRAPH-5716 # + +2F84D ; 5717 ; MA # ( 圗 → 圗 ) CJK COMPATIBILITY IDEOGRAPH-2F84D → CJK UNIFIED IDEOGRAPH-5717 # + +2F1F ; 571F ; MA #* ( ⼟ → 土 ) KANGXI RADICAL EARTH → CJK UNIFIED IDEOGRAPH-571F # +58EB ; 571F ; MA # ( 士 → 土 ) CJK UNIFIED IDEOGRAPH-58EB → CJK UNIFIED IDEOGRAPH-571F # →⼠→→⼟→ +2F20 ; 571F ; MA #* ( ⼠ → 土 ) KANGXI RADICAL SCHOLAR → CJK UNIFIED IDEOGRAPH-571F # →⼟→ + +2F855 ; 578B ; MA # ( 型 → 型 ) CJK COMPATIBILITY IDEOGRAPH-2F855 → CJK UNIFIED IDEOGRAPH-578B # + +2F852 ; 57CE ; MA # ( 城 → 城 ) CJK COMPATIBILITY IDEOGRAPH-2F852 → CJK UNIFIED IDEOGRAPH-57CE # + +39B3 ; 363D ; MA # ( 㦳 → 㘽 ) CJK UNIFIED IDEOGRAPH-39B3 → CJK UNIFIED IDEOGRAPH-363D # + +2F853 ; 57F4 ; MA # ( 埴 → 埴 ) CJK COMPATIBILITY IDEOGRAPH-2F853 → CJK UNIFIED IDEOGRAPH-57F4 # + +2F854 ; 580D ; MA # ( 堍 → 堍 ) CJK COMPATIBILITY IDEOGRAPH-2F854 → CJK UNIFIED IDEOGRAPH-580D # + +2F857 ; 5831 ; MA # ( 報 → 報 ) CJK COMPATIBILITY IDEOGRAPH-2F857 → CJK UNIFIED IDEOGRAPH-5831 # + +2F856 ; 5832 ; MA # ( 堲 → 堲 ) CJK COMPATIBILITY IDEOGRAPH-2F856 → CJK UNIFIED IDEOGRAPH-5832 # + +FA39 ; 5840 ; MA # ( 塀 → 塀 ) CJK COMPATIBILITY IDEOGRAPH-FA39 → CJK UNIFIED IDEOGRAPH-5840 # + +FA10 ; 585A ; MA # ( 塚 → 塚 ) CJK COMPATIBILITY IDEOGRAPH-FA10 → CJK UNIFIED IDEOGRAPH-585A # +FA7C ; 585A ; MA # ( 塚 → 塚 ) CJK COMPATIBILITY IDEOGRAPH-FA7C → CJK UNIFIED IDEOGRAPH-585A # + +F96C ; 585E ; MA # ( 塞 → 塞 ) CJK COMPATIBILITY IDEOGRAPH-F96C → CJK UNIFIED IDEOGRAPH-585E # + +586B ; 5861 ; MA # ( 填 → 塡 ) CJK UNIFIED IDEOGRAPH-586B → CJK UNIFIED IDEOGRAPH-5861 # + +58FF ; 58AB ; MA # ( 壿 → 墫 ) CJK UNIFIED IDEOGRAPH-58FF → CJK UNIFIED IDEOGRAPH-58AB # + +2F858 ; 58AC ; MA # ( 墬 → 墬 ) CJK COMPATIBILITY IDEOGRAPH-2F858 → CJK UNIFIED IDEOGRAPH-58AC # + +FA7D ; 58B3 ; MA # ( 墳 → 墳 ) CJK COMPATIBILITY IDEOGRAPH-FA7D → CJK UNIFIED IDEOGRAPH-58B3 # + +F94A ; 58D8 ; MA # ( 壘 → 壘 ) CJK COMPATIBILITY IDEOGRAPH-F94A → CJK UNIFIED IDEOGRAPH-58D8 # + +F942 ; 58DF ; MA # ( 壟 → 壟 ) CJK COMPATIBILITY IDEOGRAPH-F942 → CJK UNIFIED IDEOGRAPH-58DF # + +2F859 ; 214E4 ; MA # ( 𡓤 → 𡓤 ) CJK COMPATIBILITY IDEOGRAPH-2F859 → CJK UNIFIED IDEOGRAPH-214E4 # + +2F851 ; 58EE ; MA # ( 壮 → 壮 ) CJK COMPATIBILITY IDEOGRAPH-2F851 → CJK UNIFIED IDEOGRAPH-58EE # + +2F85A ; 58F2 ; MA # ( 売 → 売 ) CJK COMPATIBILITY IDEOGRAPH-2F85A → CJK UNIFIED IDEOGRAPH-58F2 # + +2F85B ; 58F7 ; MA # ( 壷 → 壷 ) CJK COMPATIBILITY IDEOGRAPH-2F85B → CJK UNIFIED IDEOGRAPH-58F7 # + +2F21 ; 5902 ; MA #* ( ⼡ → 夂 ) KANGXI RADICAL GO → CJK UNIFIED IDEOGRAPH-5902 # + +2F85C ; 5906 ; MA # ( 夆 → 夆 ) CJK COMPATIBILITY IDEOGRAPH-2F85C → CJK UNIFIED IDEOGRAPH-5906 # + +2F22 ; 590A ; MA #* ( ⼢ → 夊 ) KANGXI RADICAL GO SLOWLY → CJK UNIFIED IDEOGRAPH-590A # + +30BF ; 5915 ; MA # ( タ → 夕 ) KATAKANA LETTER TA → CJK UNIFIED IDEOGRAPH-5915 # →⼣→ +2F23 ; 5915 ; MA #* ( ⼣ → 夕 ) KANGXI RADICAL EVENING → CJK UNIFIED IDEOGRAPH-5915 # + +2F85D ; 591A ; MA # ( 多 → 多 ) CJK COMPATIBILITY IDEOGRAPH-2F85D → CJK UNIFIED IDEOGRAPH-591A # + +2F85E ; 5922 ; MA # ( 夢 → 夢 ) CJK COMPATIBILITY IDEOGRAPH-2F85E → CJK UNIFIED IDEOGRAPH-5922 # + +2F24 ; 5927 ; MA #* ( ⼤ → 大 ) KANGXI RADICAL BIG → CJK UNIFIED IDEOGRAPH-5927 # + +FA7E ; 5944 ; MA # ( 奄 → 奄 ) CJK COMPATIBILITY IDEOGRAPH-FA7E → CJK UNIFIED IDEOGRAPH-5944 # + +F90C ; 5948 ; MA # ( 奈 → 奈 ) CJK COMPATIBILITY IDEOGRAPH-F90C → CJK UNIFIED IDEOGRAPH-5948 # + +FA7F ; 5954 ; MA # ( 奔 → 奔 ) CJK COMPATIBILITY IDEOGRAPH-FA7F → CJK UNIFIED IDEOGRAPH-5954 # + +F909 ; 5951 ; MA # ( 契 → 契 ) CJK COMPATIBILITY IDEOGRAPH-F909 → CJK UNIFIED IDEOGRAPH-5951 # + +2F85F ; 5962 ; MA # ( 奢 → 奢 ) CJK COMPATIBILITY IDEOGRAPH-2F85F → CJK UNIFIED IDEOGRAPH-5962 # + +F981 ; 5973 ; MA # ( 女 → 女 ) CJK COMPATIBILITY IDEOGRAPH-F981 → CJK UNIFIED IDEOGRAPH-5973 # +2F25 ; 5973 ; MA #* ( ⼥ → 女 ) KANGXI RADICAL WOMAN → CJK UNIFIED IDEOGRAPH-5973 # + +2F860 ; 216A8 ; MA # ( 𡚨 → 𡚨 ) CJK COMPATIBILITY IDEOGRAPH-2F860 → CJK UNIFIED IDEOGRAPH-216A8 # + +2F861 ; 216EA ; MA # ( 𡛪 → 𡛪 ) CJK COMPATIBILITY IDEOGRAPH-2F861 → CJK UNIFIED IDEOGRAPH-216EA # + +2F865 ; 59D8 ; MA # ( 姘 → 姘 ) CJK COMPATIBILITY IDEOGRAPH-2F865 → CJK UNIFIED IDEOGRAPH-59D8 # + +2F862 ; 59EC ; MA # ( 姬 → 姬 ) CJK COMPATIBILITY IDEOGRAPH-2F862 → CJK UNIFIED IDEOGRAPH-59EC # + +2F863 ; 5A1B ; MA # ( 娛 → 娛 ) CJK COMPATIBILITY IDEOGRAPH-2F863 → CJK UNIFIED IDEOGRAPH-5A1B # + +2F864 ; 5A27 ; MA # ( 娧 → 娧 ) CJK COMPATIBILITY IDEOGRAPH-2F864 → CJK UNIFIED IDEOGRAPH-5A27 # + +FA80 ; 5A62 ; MA # ( 婢 → 婢 ) CJK COMPATIBILITY IDEOGRAPH-FA80 → CJK UNIFIED IDEOGRAPH-5A62 # + +2F866 ; 5A66 ; MA # ( 婦 → 婦 ) CJK COMPATIBILITY IDEOGRAPH-2F866 → CJK UNIFIED IDEOGRAPH-5A66 # + +5B00 ; 5AAF ; MA # ( 嬀 → 媯 ) CJK UNIFIED IDEOGRAPH-5B00 → CJK UNIFIED IDEOGRAPH-5AAF # + +2F867 ; 36EE ; MA # ( 㛮 → 㛮 ) CJK COMPATIBILITY IDEOGRAPH-2F867 → CJK UNIFIED IDEOGRAPH-36EE # + +2F868 ; 36FC ; MA # ( 㛼 → 㛼 ) CJK COMPATIBILITY IDEOGRAPH-2F868 → CJK UNIFIED IDEOGRAPH-36FC # + +2F986 ; 5AB5 ; MA # ( 媵 → 媵 ) CJK COMPATIBILITY IDEOGRAPH-2F986 → CJK UNIFIED IDEOGRAPH-5AB5 # + +2F869 ; 5B08 ; MA # ( 嬈 → 嬈 ) CJK COMPATIBILITY IDEOGRAPH-2F869 → CJK UNIFIED IDEOGRAPH-5B08 # + +FA81 ; 5B28 ; MA # ( 嬨 → 嬨 ) CJK COMPATIBILITY IDEOGRAPH-FA81 → CJK UNIFIED IDEOGRAPH-5B28 # + +2F86A ; 5B3E ; MA # ( 嬾 → 嬾 ) CJK COMPATIBILITY IDEOGRAPH-2F86A → CJK UNIFIED IDEOGRAPH-5B3E # +2F86B ; 5B3E ; MA # ( 嬾 → 嬾 ) CJK COMPATIBILITY IDEOGRAPH-2F86B → CJK UNIFIED IDEOGRAPH-5B3E # + +2F26 ; 5B50 ; MA #* ( ⼦ → 子 ) KANGXI RADICAL CHILD → CJK UNIFIED IDEOGRAPH-5B50 # + +2F27 ; 5B80 ; MA #* ( ⼧ → 宀 ) KANGXI RADICAL ROOF → CJK UNIFIED IDEOGRAPH-5B80 # + +FA04 ; 5B85 ; MA # ( 宅 → 宅 ) CJK COMPATIBILITY IDEOGRAPH-FA04 → CJK UNIFIED IDEOGRAPH-5B85 # + +2F86C ; 219C8 ; MA # ( 𡧈 → 𡧈 ) CJK COMPATIBILITY IDEOGRAPH-2F86C → CJK UNIFIED IDEOGRAPH-219C8 # + +2F86D ; 5BC3 ; MA # ( 寃 → 寃 ) CJK COMPATIBILITY IDEOGRAPH-2F86D → CJK UNIFIED IDEOGRAPH-5BC3 # + +2F86E ; 5BD8 ; MA # ( 寘 → 寘 ) CJK COMPATIBILITY IDEOGRAPH-2F86E → CJK UNIFIED IDEOGRAPH-5BD8 # + +F95F ; 5BE7 ; MA # ( 寧 → 寧 ) CJK COMPATIBILITY IDEOGRAPH-F95F → CJK UNIFIED IDEOGRAPH-5BE7 # +F9AA ; 5BE7 ; MA # ( 寧 → 寧 ) CJK COMPATIBILITY IDEOGRAPH-F9AA → CJK UNIFIED IDEOGRAPH-5BE7 # +2F86F ; 5BE7 ; MA # ( 寧 → 寧 ) CJK COMPATIBILITY IDEOGRAPH-2F86F → CJK UNIFIED IDEOGRAPH-5BE7 # + +F9BC ; 5BEE ; MA # ( 寮 → 寮 ) CJK COMPATIBILITY IDEOGRAPH-F9BC → CJK UNIFIED IDEOGRAPH-5BEE # + +2F870 ; 5BF3 ; MA # ( 寳 → 寳 ) CJK COMPATIBILITY IDEOGRAPH-2F870 → CJK UNIFIED IDEOGRAPH-5BF3 # + +2F871 ; 21B18 ; MA # ( 𡬘 → 𡬘 ) CJK COMPATIBILITY IDEOGRAPH-2F871 → CJK UNIFIED IDEOGRAPH-21B18 # + +2F28 ; 5BF8 ; MA #* ( ⼨ → 寸 ) KANGXI RADICAL INCH → CJK UNIFIED IDEOGRAPH-5BF8 # + +2F872 ; 5BFF ; MA # ( 寿 → 寿 ) CJK COMPATIBILITY IDEOGRAPH-2F872 → CJK UNIFIED IDEOGRAPH-5BFF # + +2F873 ; 5C06 ; MA # ( 将 → 将 ) CJK COMPATIBILITY IDEOGRAPH-2F873 → CJK UNIFIED IDEOGRAPH-5C06 # + +2F29 ; 5C0F ; MA #* ( ⼩ → 小 ) KANGXI RADICAL SMALL → CJK UNIFIED IDEOGRAPH-5C0F # + +2F875 ; 5C22 ; MA # ( 尢 → 尢 ) CJK COMPATIBILITY IDEOGRAPH-2F875 → CJK UNIFIED IDEOGRAPH-5C22 # +2E90 ; 5C22 ; MA #* ( ⺐ → 尢 ) CJK RADICAL LAME THREE → CJK UNIFIED IDEOGRAPH-5C22 # +2F2A ; 5C22 ; MA #* ( ⼪ → 尢 ) KANGXI RADICAL LAME → CJK UNIFIED IDEOGRAPH-5C22 # + +2E8F ; 5C23 ; MA #* ( ⺏ → 尣 ) CJK RADICAL LAME TWO → CJK UNIFIED IDEOGRAPH-5C23 # + +2F876 ; 3781 ; MA # ( 㞁 → 㞁 ) CJK COMPATIBILITY IDEOGRAPH-2F876 → CJK UNIFIED IDEOGRAPH-3781 # + +2F2B ; 5C38 ; MA #* ( ⼫ → 尸 ) KANGXI RADICAL CORPSE → CJK UNIFIED IDEOGRAPH-5C38 # + +F9BD ; 5C3F ; MA # ( 尿 → 尿 ) CJK COMPATIBILITY IDEOGRAPH-F9BD → CJK UNIFIED IDEOGRAPH-5C3F # + +2F877 ; 5C60 ; MA # ( 屠 → 屠 ) CJK COMPATIBILITY IDEOGRAPH-2F877 → CJK UNIFIED IDEOGRAPH-5C60 # + +F94B ; 5C62 ; MA # ( 屢 → 屢 ) CJK COMPATIBILITY IDEOGRAPH-F94B → CJK UNIFIED IDEOGRAPH-5C62 # + +FA3B ; 5C64 ; MA # ( 層 → 層 ) CJK COMPATIBILITY IDEOGRAPH-FA3B → CJK UNIFIED IDEOGRAPH-5C64 # + +F9DF ; 5C65 ; MA # ( 履 → 履 ) CJK COMPATIBILITY IDEOGRAPH-F9DF → CJK UNIFIED IDEOGRAPH-5C65 # + +FA3C ; 5C6E ; MA # ( 屮 → 屮 ) CJK COMPATIBILITY IDEOGRAPH-FA3C → CJK UNIFIED IDEOGRAPH-5C6E # +2F878 ; 5C6E ; MA # ( 屮 → 屮 ) CJK COMPATIBILITY IDEOGRAPH-2F878 → CJK UNIFIED IDEOGRAPH-5C6E # +2F2C ; 5C6E ; MA #* ( ⼬ → 屮 ) KANGXI RADICAL SPROUT → CJK UNIFIED IDEOGRAPH-5C6E # + +2F8F8 ; 21D0B ; MA # ( 𡴋 → 𡴋 ) CJK COMPATIBILITY IDEOGRAPH-2F8F8 → CJK UNIFIED IDEOGRAPH-21D0B # + +2F2D ; 5C71 ; MA #* ( ⼭ → 山 ) KANGXI RADICAL MOUNTAIN → CJK UNIFIED IDEOGRAPH-5C71 # + +2F879 ; 5CC0 ; MA # ( 峀 → 峀 ) CJK COMPATIBILITY IDEOGRAPH-2F879 → CJK UNIFIED IDEOGRAPH-5CC0 # + +2F87A ; 5C8D ; MA # ( 岍 → 岍 ) CJK COMPATIBILITY IDEOGRAPH-2F87A → CJK UNIFIED IDEOGRAPH-5C8D # + +2F87B ; 21DE4 ; MA # ( 𡷤 → 𡷤 ) CJK COMPATIBILITY IDEOGRAPH-2F87B → CJK UNIFIED IDEOGRAPH-21DE4 # + +2F87D ; 21DE6 ; MA # ( 𡷦 → 𡷦 ) CJK COMPATIBILITY IDEOGRAPH-2F87D → CJK UNIFIED IDEOGRAPH-21DE6 # + +F9D5 ; 5D19 ; MA # ( 崙 → 崙 ) CJK COMPATIBILITY IDEOGRAPH-F9D5 → CJK UNIFIED IDEOGRAPH-5D19 # + +2F87C ; 5D43 ; MA # ( 嵃 → 嵃 ) CJK COMPATIBILITY IDEOGRAPH-2F87C → CJK UNIFIED IDEOGRAPH-5D43 # + +F921 ; 5D50 ; MA # ( 嵐 → 嵐 ) CJK COMPATIBILITY IDEOGRAPH-F921 → CJK UNIFIED IDEOGRAPH-5D50 # + +2F87F ; 5D6B ; MA # ( 嵫 → 嵫 ) CJK COMPATIBILITY IDEOGRAPH-2F87F → CJK UNIFIED IDEOGRAPH-5D6B # + +2F87E ; 5D6E ; MA # ( 嵮 → 嵮 ) CJK COMPATIBILITY IDEOGRAPH-2F87E → CJK UNIFIED IDEOGRAPH-5D6E # + +2F880 ; 5D7C ; MA # ( 嵼 → 嵼 ) CJK COMPATIBILITY IDEOGRAPH-2F880 → CJK UNIFIED IDEOGRAPH-5D7C # + +2F9F4 ; 5DB2 ; MA # ( 嶲 → 嶲 ) CJK COMPATIBILITY IDEOGRAPH-2F9F4 → CJK UNIFIED IDEOGRAPH-5DB2 # + +F9AB ; 5DBA ; MA # ( 嶺 → 嶺 ) CJK COMPATIBILITY IDEOGRAPH-F9AB → CJK UNIFIED IDEOGRAPH-5DBA # + +2F2E ; 5DDB ; MA #* ( ⼮ → 巛 ) KANGXI RADICAL RIVER → CJK UNIFIED IDEOGRAPH-5DDB # + +2F882 ; 5DE2 ; MA # ( 巢 → 巢 ) CJK COMPATIBILITY IDEOGRAPH-2F882 → CJK UNIFIED IDEOGRAPH-5DE2 # + +30A8 ; 5DE5 ; MA # ( エ → 工 ) KATAKANA LETTER E → CJK UNIFIED IDEOGRAPH-5DE5 # →⼯→ +2F2F ; 5DE5 ; MA #* ( ⼯ → 工 ) KANGXI RADICAL WORK → CJK UNIFIED IDEOGRAPH-5DE5 # + +2F30 ; 5DF1 ; MA #* ( ⼰ → 己 ) KANGXI RADICAL ONESELF → CJK UNIFIED IDEOGRAPH-5DF1 # + +2E92 ; 5DF3 ; MA #* ( ⺒ → 巳 ) CJK RADICAL SNAKE → CJK UNIFIED IDEOGRAPH-5DF3 # + +2F883 ; 382F ; MA # ( 㠯 → 㠯 ) CJK COMPATIBILITY IDEOGRAPH-2F883 → CJK UNIFIED IDEOGRAPH-382F # + +2F884 ; 5DFD ; MA # ( 巽 → 巽 ) CJK COMPATIBILITY IDEOGRAPH-2F884 → CJK UNIFIED IDEOGRAPH-5DFD # + +2F31 ; 5DFE ; MA #* ( ⼱ → 巾 ) KANGXI RADICAL TURBAN → CJK UNIFIED IDEOGRAPH-5DFE # + +5E32 ; 5E21 ; MA # ( 帲 → 帡 ) CJK UNIFIED IDEOGRAPH-5E32 → CJK UNIFIED IDEOGRAPH-5E21 # + +2F885 ; 5E28 ; MA # ( 帨 → 帨 ) CJK COMPATIBILITY IDEOGRAPH-2F885 → CJK UNIFIED IDEOGRAPH-5E28 # + +2F886 ; 5E3D ; MA # ( 帽 → 帽 ) CJK COMPATIBILITY IDEOGRAPH-2F886 → CJK UNIFIED IDEOGRAPH-5E3D # + +2F887 ; 5E69 ; MA # ( 幩 → 幩 ) CJK COMPATIBILITY IDEOGRAPH-2F887 → CJK UNIFIED IDEOGRAPH-5E69 # + +2F888 ; 3862 ; MA # ( 㡢 → 㡢 ) CJK COMPATIBILITY IDEOGRAPH-2F888 → CJK UNIFIED IDEOGRAPH-3862 # + +2F889 ; 22183 ; MA # ( 𢆃 → 𢆃 ) CJK COMPATIBILITY IDEOGRAPH-2F889 → CJK UNIFIED IDEOGRAPH-22183 # + +2F32 ; 5E72 ; MA #* ( ⼲ → 干 ) KANGXI RADICAL DRY → CJK UNIFIED IDEOGRAPH-5E72 # + +F98E ; 5E74 ; MA # ( 年 → 年 ) CJK COMPATIBILITY IDEOGRAPH-F98E → CJK UNIFIED IDEOGRAPH-5E74 # + +2F939 ; 2219F ; MA # ( 𢆟 → 𢆟 ) CJK COMPATIBILITY IDEOGRAPH-2F939 → CJK UNIFIED IDEOGRAPH-2219F # + +2E93 ; 5E7A ; MA #* ( ⺓ → 幺 ) CJK RADICAL THREAD → CJK UNIFIED IDEOGRAPH-5E7A # +2F33 ; 5E7A ; MA #* ( ⼳ → 幺 ) KANGXI RADICAL SHORT THREAD → CJK UNIFIED IDEOGRAPH-5E7A # + +2F34 ; 5E7F ; MA #* ( ⼴ → 广 ) KANGXI RADICAL DOTTED CLIFF → CJK UNIFIED IDEOGRAPH-5E7F # + +FA01 ; 5EA6 ; MA # ( 度 → 度 ) CJK COMPATIBILITY IDEOGRAPH-FA01 → CJK UNIFIED IDEOGRAPH-5EA6 # + +2F88A ; 387C ; MA # ( 㡼 → 㡼 ) CJK COMPATIBILITY IDEOGRAPH-2F88A → CJK UNIFIED IDEOGRAPH-387C # + +2F88B ; 5EB0 ; MA # ( 庰 → 庰 ) CJK COMPATIBILITY IDEOGRAPH-2F88B → CJK UNIFIED IDEOGRAPH-5EB0 # + +2F88C ; 5EB3 ; MA # ( 庳 → 庳 ) CJK COMPATIBILITY IDEOGRAPH-2F88C → CJK UNIFIED IDEOGRAPH-5EB3 # + +2F88D ; 5EB6 ; MA # ( 庶 → 庶 ) CJK COMPATIBILITY IDEOGRAPH-2F88D → CJK UNIFIED IDEOGRAPH-5EB6 # + +F928 ; 5ECA ; MA # ( 廊 → 廊 ) CJK COMPATIBILITY IDEOGRAPH-F928 → CJK UNIFIED IDEOGRAPH-5ECA # +2F88E ; 5ECA ; MA # ( 廊 → 廊 ) CJK COMPATIBILITY IDEOGRAPH-2F88E → CJK UNIFIED IDEOGRAPH-5ECA # + +F9A2 ; 5EC9 ; MA # ( 廉 → 廉 ) CJK COMPATIBILITY IDEOGRAPH-F9A2 → CJK UNIFIED IDEOGRAPH-5EC9 # + +FA82 ; 5ED2 ; MA # ( 廒 → 廒 ) CJK COMPATIBILITY IDEOGRAPH-FA82 → CJK UNIFIED IDEOGRAPH-5ED2 # + +FA0B ; 5ED3 ; MA # ( 廓 → 廓 ) CJK COMPATIBILITY IDEOGRAPH-FA0B → CJK UNIFIED IDEOGRAPH-5ED3 # + +FA83 ; 5ED9 ; MA # ( 廙 → 廙 ) CJK COMPATIBILITY IDEOGRAPH-FA83 → CJK UNIFIED IDEOGRAPH-5ED9 # + +F982 ; 5EEC ; MA # ( 廬 → 廬 ) CJK COMPATIBILITY IDEOGRAPH-F982 → CJK UNIFIED IDEOGRAPH-5EEC # + +2F35 ; 5EF4 ; MA #* ( ⼵ → 廴 ) KANGXI RADICAL LONG STRIDE → CJK UNIFIED IDEOGRAPH-5EF4 # + +2F890 ; 5EFE ; MA # ( 廾 → 廾 ) CJK COMPATIBILITY IDEOGRAPH-2F890 → CJK UNIFIED IDEOGRAPH-5EFE # +2F36 ; 5EFE ; MA #* ( ⼶ → 廾 ) KANGXI RADICAL TWO HANDS → CJK UNIFIED IDEOGRAPH-5EFE # + +2F891 ; 22331 ; MA # ( 𢌱 → 𢌱 ) CJK COMPATIBILITY IDEOGRAPH-2F891 → CJK UNIFIED IDEOGRAPH-22331 # +2F892 ; 22331 ; MA # ( 𢌱 → 𢌱 ) CJK COMPATIBILITY IDEOGRAPH-2F892 → CJK UNIFIED IDEOGRAPH-22331 # + +F943 ; 5F04 ; MA # ( 弄 → 弄 ) CJK COMPATIBILITY IDEOGRAPH-F943 → CJK UNIFIED IDEOGRAPH-5F04 # + +2F37 ; 5F0B ; MA #* ( ⼷ → 弋 ) KANGXI RADICAL SHOOT → CJK UNIFIED IDEOGRAPH-5F0B # + +2F38 ; 5F13 ; MA #* ( ⼸ → 弓 ) KANGXI RADICAL BOW → CJK UNIFIED IDEOGRAPH-5F13 # + +2F894 ; 5F22 ; MA # ( 弢 → 弢 ) CJK COMPATIBILITY IDEOGRAPH-2F894 → CJK UNIFIED IDEOGRAPH-5F22 # +2F895 ; 5F22 ; MA # ( 弢 → 弢 ) CJK COMPATIBILITY IDEOGRAPH-2F895 → CJK UNIFIED IDEOGRAPH-5F22 # + +2F39 ; 5F50 ; MA #* ( ⼹ → 彐 ) KANGXI RADICAL SNOUT → CJK UNIFIED IDEOGRAPH-5F50 # + +2E94 ; 5F51 ; MA #* ( ⺔ → 彑 ) CJK RADICAL SNOUT ONE → CJK UNIFIED IDEOGRAPH-5F51 # + +2F874 ; 5F53 ; MA # ( 当 → 当 ) CJK COMPATIBILITY IDEOGRAPH-2F874 → CJK UNIFIED IDEOGRAPH-5F53 # + +2F896 ; 38C7 ; MA # ( 㣇 → 㣇 ) CJK COMPATIBILITY IDEOGRAPH-2F896 → CJK UNIFIED IDEOGRAPH-38C7 # + +2F3A ; 5F61 ; MA #* ( ⼺ → 彡 ) KANGXI RADICAL BRISTLE → CJK UNIFIED IDEOGRAPH-5F61 # + +2F899 ; 5F62 ; MA # ( 形 → 形 ) CJK COMPATIBILITY IDEOGRAPH-2F899 → CJK UNIFIED IDEOGRAPH-5F62 # + +FA84 ; 5F69 ; MA # ( 彩 → 彩 ) CJK COMPATIBILITY IDEOGRAPH-FA84 → CJK UNIFIED IDEOGRAPH-5F69 # + +2F89A ; 5F6B ; MA # ( 彫 → 彫 ) CJK COMPATIBILITY IDEOGRAPH-2F89A → CJK UNIFIED IDEOGRAPH-5F6B # + +2F3B ; 5F73 ; MA #* ( ⼻ → 彳 ) KANGXI RADICAL STEP → CJK UNIFIED IDEOGRAPH-5F73 # + +F9D8 ; 5F8B ; MA # ( 律 → 律 ) CJK COMPATIBILITY IDEOGRAPH-F9D8 → CJK UNIFIED IDEOGRAPH-5F8B # + +2F89B ; 38E3 ; MA # ( 㣣 → 㣣 ) CJK COMPATIBILITY IDEOGRAPH-2F89B → CJK UNIFIED IDEOGRAPH-38E3 # + +2F89C ; 5F9A ; MA # ( 徚 → 徚 ) CJK COMPATIBILITY IDEOGRAPH-2F89C → CJK UNIFIED IDEOGRAPH-5F9A # + +F966 ; 5FA9 ; MA # ( 復 → 復 ) CJK COMPATIBILITY IDEOGRAPH-F966 → CJK UNIFIED IDEOGRAPH-5FA9 # + +FA85 ; 5FAD ; MA # ( 徭 → 徭 ) CJK COMPATIBILITY IDEOGRAPH-FA85 → CJK UNIFIED IDEOGRAPH-5FAD # + +2F3C ; 5FC3 ; MA #* ( ⼼ → 心 ) KANGXI RADICAL HEART → CJK UNIFIED IDEOGRAPH-5FC3 # + +2E96 ; 5FC4 ; MA #* ( ⺖ → 忄 ) CJK RADICAL HEART ONE → CJK UNIFIED IDEOGRAPH-5FC4 # + +2E97 ; 38FA ; MA #* ( ⺗ → 㣺 ) CJK RADICAL HEART TWO → CJK UNIFIED IDEOGRAPH-38FA # + +2F89D ; 5FCD ; MA # ( 忍 → 忍 ) CJK COMPATIBILITY IDEOGRAPH-2F89D → CJK UNIFIED IDEOGRAPH-5FCD # + +2F89E ; 5FD7 ; MA # ( 志 → 志 ) CJK COMPATIBILITY IDEOGRAPH-2F89E → CJK UNIFIED IDEOGRAPH-5FD7 # + +F9A3 ; 5FF5 ; MA # ( 念 → 念 ) CJK COMPATIBILITY IDEOGRAPH-F9A3 → CJK UNIFIED IDEOGRAPH-5FF5 # + +2F89F ; 5FF9 ; MA # ( 忹 → 忹 ) CJK COMPATIBILITY IDEOGRAPH-2F89F → CJK UNIFIED IDEOGRAPH-5FF9 # + +F960 ; 6012 ; MA # ( 怒 → 怒 ) CJK COMPATIBILITY IDEOGRAPH-F960 → CJK UNIFIED IDEOGRAPH-6012 # + +F9AC ; 601C ; MA # ( 怜 → 怜 ) CJK COMPATIBILITY IDEOGRAPH-F9AC → CJK UNIFIED IDEOGRAPH-601C # + +FA6B ; 6075 ; MA # ( 恵 → 恵 ) CJK COMPATIBILITY IDEOGRAPH-FA6B → CJK UNIFIED IDEOGRAPH-6075 # + +2F8A2 ; 391C ; MA # ( 㤜 → 㤜 ) CJK COMPATIBILITY IDEOGRAPH-2F8A2 → CJK UNIFIED IDEOGRAPH-391C # + +2F8A1 ; 393A ; MA # ( 㤺 → 㤺 ) CJK COMPATIBILITY IDEOGRAPH-2F8A1 → CJK UNIFIED IDEOGRAPH-393A # + +2F8A0 ; 6081 ; MA # ( 悁 → 悁 ) CJK COMPATIBILITY IDEOGRAPH-2F8A0 → CJK UNIFIED IDEOGRAPH-6081 # + +FA3D ; 6094 ; MA # ( 悔 → 悔 ) CJK COMPATIBILITY IDEOGRAPH-FA3D → CJK UNIFIED IDEOGRAPH-6094 # +2F8A3 ; 6094 ; MA # ( 悔 → 悔 ) CJK COMPATIBILITY IDEOGRAPH-2F8A3 → CJK UNIFIED IDEOGRAPH-6094 # + +2F8A5 ; 60C7 ; MA # ( 惇 → 惇 ) CJK COMPATIBILITY IDEOGRAPH-2F8A5 → CJK UNIFIED IDEOGRAPH-60C7 # + +FA86 ; 60D8 ; MA # ( 惘 → 惘 ) CJK COMPATIBILITY IDEOGRAPH-FA86 → CJK UNIFIED IDEOGRAPH-60D8 # + +F9B9 ; 60E1 ; MA # ( 惡 → 惡 ) CJK COMPATIBILITY IDEOGRAPH-F9B9 → CJK UNIFIED IDEOGRAPH-60E1 # + +2F8A4 ; 226D4 ; MA # ( 𢛔 → 𢛔 ) CJK COMPATIBILITY IDEOGRAPH-2F8A4 → CJK UNIFIED IDEOGRAPH-226D4 # + +FA88 ; 6108 ; MA # ( 愈 → 愈 ) CJK COMPATIBILITY IDEOGRAPH-FA88 → CJK UNIFIED IDEOGRAPH-6108 # + +FA3E ; 6168 ; MA # ( 慨 → 慨 ) CJK COMPATIBILITY IDEOGRAPH-FA3E → CJK UNIFIED IDEOGRAPH-6168 # + +F9D9 ; 6144 ; MA # ( 慄 → 慄 ) CJK COMPATIBILITY IDEOGRAPH-F9D9 → CJK UNIFIED IDEOGRAPH-6144 # + +2F8A6 ; 6148 ; MA # ( 慈 → 慈 ) CJK COMPATIBILITY IDEOGRAPH-2F8A6 → CJK UNIFIED IDEOGRAPH-6148 # + +2F8A7 ; 614C ; MA # ( 慌 → 慌 ) CJK COMPATIBILITY IDEOGRAPH-2F8A7 → CJK UNIFIED IDEOGRAPH-614C # +2F8A9 ; 614C ; MA # ( 慌 → 慌 ) CJK COMPATIBILITY IDEOGRAPH-2F8A9 → CJK UNIFIED IDEOGRAPH-614C # + +FA87 ; 614E ; MA # ( 慎 → 慎 ) CJK COMPATIBILITY IDEOGRAPH-FA87 → CJK UNIFIED IDEOGRAPH-614E # +2F8A8 ; 614E ; MA # ( 慎 → 慎 ) CJK COMPATIBILITY IDEOGRAPH-2F8A8 → CJK UNIFIED IDEOGRAPH-614E # + +FA8A ; 6160 ; MA # ( 慠 → 慠 ) CJK COMPATIBILITY IDEOGRAPH-FA8A → CJK UNIFIED IDEOGRAPH-6160 # + +2F8AA ; 617A ; MA # ( 慺 → 慺 ) CJK COMPATIBILITY IDEOGRAPH-2F8AA → CJK UNIFIED IDEOGRAPH-617A # + +FA3F ; 618E ; MA # ( 憎 → 憎 ) CJK COMPATIBILITY IDEOGRAPH-FA3F → CJK UNIFIED IDEOGRAPH-618E # +FA89 ; 618E ; MA # ( 憎 → 憎 ) CJK COMPATIBILITY IDEOGRAPH-FA89 → CJK UNIFIED IDEOGRAPH-618E # +2F8AB ; 618E ; MA # ( 憎 → 憎 ) CJK COMPATIBILITY IDEOGRAPH-2F8AB → CJK UNIFIED IDEOGRAPH-618E # + +F98F ; 6190 ; MA # ( 憐 → 憐 ) CJK COMPATIBILITY IDEOGRAPH-F98F → CJK UNIFIED IDEOGRAPH-6190 # + +2F8AD ; 61A4 ; MA # ( 憤 → 憤 ) CJK COMPATIBILITY IDEOGRAPH-2F8AD → CJK UNIFIED IDEOGRAPH-61A4 # + +2F8AE ; 61AF ; MA # ( 憯 → 憯 ) CJK COMPATIBILITY IDEOGRAPH-2F8AE → CJK UNIFIED IDEOGRAPH-61AF # + +2F8AC ; 61B2 ; MA # ( 憲 → 憲 ) CJK COMPATIBILITY IDEOGRAPH-2F8AC → CJK UNIFIED IDEOGRAPH-61B2 # + +FAD0 ; 22844 ; MA # ( 𢡄 → 𢡄 ) CJK COMPATIBILITY IDEOGRAPH-FAD0 → CJK UNIFIED IDEOGRAPH-22844 # + +FACF ; 2284A ; MA # ( 𢡊 → 𢡊 ) CJK COMPATIBILITY IDEOGRAPH-FACF → CJK UNIFIED IDEOGRAPH-2284A # + +2F8AF ; 61DE ; MA # ( 懞 → 懞 ) CJK COMPATIBILITY IDEOGRAPH-2F8AF → CJK UNIFIED IDEOGRAPH-61DE # + +FA40 ; 61F2 ; MA # ( 懲 → 懲 ) CJK COMPATIBILITY IDEOGRAPH-FA40 → CJK UNIFIED IDEOGRAPH-61F2 # +FA8B ; 61F2 ; MA # ( 懲 → 懲 ) CJK COMPATIBILITY IDEOGRAPH-FA8B → CJK UNIFIED IDEOGRAPH-61F2 # +2F8B0 ; 61F2 ; MA # ( 懲 → 懲 ) CJK COMPATIBILITY IDEOGRAPH-2F8B0 → CJK UNIFIED IDEOGRAPH-61F2 # + +F90D ; 61F6 ; MA # ( 懶 → 懶 ) CJK COMPATIBILITY IDEOGRAPH-F90D → CJK UNIFIED IDEOGRAPH-61F6 # +2F8B1 ; 61F6 ; MA # ( 懶 → 懶 ) CJK COMPATIBILITY IDEOGRAPH-2F8B1 → CJK UNIFIED IDEOGRAPH-61F6 # + +F990 ; 6200 ; MA # ( 戀 → 戀 ) CJK COMPATIBILITY IDEOGRAPH-F990 → CJK UNIFIED IDEOGRAPH-6200 # + +2F3D ; 6208 ; MA #* ( ⼽ → 戈 ) KANGXI RADICAL HALBERD → CJK UNIFIED IDEOGRAPH-6208 # + +2F8B2 ; 6210 ; MA # ( 成 → 成 ) CJK COMPATIBILITY IDEOGRAPH-2F8B2 → CJK UNIFIED IDEOGRAPH-6210 # + +2F8B3 ; 621B ; MA # ( 戛 → 戛 ) CJK COMPATIBILITY IDEOGRAPH-2F8B3 → CJK UNIFIED IDEOGRAPH-621B # + +F9D2 ; 622E ; MA # ( 戮 → 戮 ) CJK COMPATIBILITY IDEOGRAPH-F9D2 → CJK UNIFIED IDEOGRAPH-622E # + +FA8C ; 6234 ; MA # ( 戴 → 戴 ) CJK COMPATIBILITY IDEOGRAPH-FA8C → CJK UNIFIED IDEOGRAPH-6234 # + +2F3E ; 6236 ; MA #* ( ⼾ → 戶 ) KANGXI RADICAL DOOR → CJK UNIFIED IDEOGRAPH-6236 # +6238 ; 6236 ; MA # ( 戸 → 戶 ) CJK UNIFIED IDEOGRAPH-6238 → CJK UNIFIED IDEOGRAPH-6236 # →⼾→ + +2F3F ; 624B ; MA #* ( ⼿ → 手 ) KANGXI RADICAL HAND → CJK UNIFIED IDEOGRAPH-624B # + +2E98 ; 624C ; MA #* ( ⺘ → 扌 ) CJK RADICAL HAND → CJK UNIFIED IDEOGRAPH-624C # + +2F8B4 ; 625D ; MA # ( 扝 → 扝 ) CJK COMPATIBILITY IDEOGRAPH-2F8B4 → CJK UNIFIED IDEOGRAPH-625D # + +2F8B5 ; 62B1 ; MA # ( 抱 → 抱 ) CJK COMPATIBILITY IDEOGRAPH-2F8B5 → CJK UNIFIED IDEOGRAPH-62B1 # + +F925 ; 62C9 ; MA # ( 拉 → 拉 ) CJK COMPATIBILITY IDEOGRAPH-F925 → CJK UNIFIED IDEOGRAPH-62C9 # + +F95B ; 62CF ; MA # ( 拏 → 拏 ) CJK COMPATIBILITY IDEOGRAPH-F95B → CJK UNIFIED IDEOGRAPH-62CF # + +FA02 ; 62D3 ; MA # ( 拓 → 拓 ) CJK COMPATIBILITY IDEOGRAPH-FA02 → CJK UNIFIED IDEOGRAPH-62D3 # + +2F8B6 ; 62D4 ; MA # ( 拔 → 拔 ) CJK COMPATIBILITY IDEOGRAPH-2F8B6 → CJK UNIFIED IDEOGRAPH-62D4 # + +2F8BA ; 62FC ; MA # ( 拼 → 拼 ) CJK COMPATIBILITY IDEOGRAPH-2F8BA → CJK UNIFIED IDEOGRAPH-62FC # + +F973 ; 62FE ; MA # ( 拾 → 拾 ) CJK COMPATIBILITY IDEOGRAPH-F973 → CJK UNIFIED IDEOGRAPH-62FE # + +2F8B8 ; 22B0C ; MA # ( 𢬌 → 𢬌 ) CJK COMPATIBILITY IDEOGRAPH-2F8B8 → CJK UNIFIED IDEOGRAPH-22B0C # + +2F8B9 ; 633D ; MA # ( 挽 → 挽 ) CJK COMPATIBILITY IDEOGRAPH-2F8B9 → CJK UNIFIED IDEOGRAPH-633D # + +2F8B7 ; 6350 ; MA # ( 捐 → 捐 ) CJK COMPATIBILITY IDEOGRAPH-2F8B7 → CJK UNIFIED IDEOGRAPH-6350 # + +2F8BB ; 6368 ; MA # ( 捨 → 捨 ) CJK COMPATIBILITY IDEOGRAPH-2F8BB → CJK UNIFIED IDEOGRAPH-6368 # + +F9A4 ; 637B ; MA # ( 捻 → 捻 ) CJK COMPATIBILITY IDEOGRAPH-F9A4 → CJK UNIFIED IDEOGRAPH-637B # + +2F8BC ; 6383 ; MA # ( 掃 → 掃 ) CJK COMPATIBILITY IDEOGRAPH-2F8BC → CJK UNIFIED IDEOGRAPH-6383 # + +F975 ; 63A0 ; MA # ( 掠 → 掠 ) CJK COMPATIBILITY IDEOGRAPH-F975 → CJK UNIFIED IDEOGRAPH-63A0 # + +2F8C1 ; 63A9 ; MA # ( 掩 → 掩 ) CJK COMPATIBILITY IDEOGRAPH-2F8C1 → CJK UNIFIED IDEOGRAPH-63A9 # + +FA8D ; 63C4 ; MA # ( 揄 → 揄 ) CJK COMPATIBILITY IDEOGRAPH-FA8D → CJK UNIFIED IDEOGRAPH-63C4 # + +2F8BD ; 63E4 ; MA # ( 揤 → 揤 ) CJK COMPATIBILITY IDEOGRAPH-2F8BD → CJK UNIFIED IDEOGRAPH-63E4 # + +FA8F ; 6452 ; MA # ( 摒 → 摒 ) CJK COMPATIBILITY IDEOGRAPH-FA8F → CJK UNIFIED IDEOGRAPH-6452 # + +2F8BE ; 22BF1 ; MA # ( 𢯱 → 𢯱 ) CJK COMPATIBILITY IDEOGRAPH-2F8BE → CJK UNIFIED IDEOGRAPH-22BF1 # + +FA8E ; 641C ; MA # ( 搜 → 搜 ) CJK COMPATIBILITY IDEOGRAPH-FA8E → CJK UNIFIED IDEOGRAPH-641C # + +2F8BF ; 6422 ; MA # ( 搢 → 搢 ) CJK COMPATIBILITY IDEOGRAPH-2F8BF → CJK UNIFIED IDEOGRAPH-6422 # + +2F8C0 ; 63C5 ; MA # ( 揅 → 揅 ) CJK COMPATIBILITY IDEOGRAPH-2F8C0 → CJK UNIFIED IDEOGRAPH-63C5 # + +2F8C3 ; 6469 ; MA # ( 摩 → 摩 ) CJK COMPATIBILITY IDEOGRAPH-2F8C3 → CJK UNIFIED IDEOGRAPH-6469 # + +2F8C6 ; 6477 ; MA # ( 摷 → 摷 ) CJK COMPATIBILITY IDEOGRAPH-2F8C6 → CJK UNIFIED IDEOGRAPH-6477 # + +2F8C4 ; 647E ; MA # ( 摾 → 摾 ) CJK COMPATIBILITY IDEOGRAPH-2F8C4 → CJK UNIFIED IDEOGRAPH-647E # + +2F8C2 ; 3A2E ; MA # ( 㨮 → 㨮 ) CJK COMPATIBILITY IDEOGRAPH-2F8C2 → CJK UNIFIED IDEOGRAPH-3A2E # + +6409 ; 3A41 ; MA # ( 搉 → 㩁 ) CJK UNIFIED IDEOGRAPH-6409 → CJK UNIFIED IDEOGRAPH-3A41 # + +F991 ; 649A ; MA # ( 撚 → 撚 ) CJK COMPATIBILITY IDEOGRAPH-F991 → CJK UNIFIED IDEOGRAPH-649A # + +2F8C5 ; 649D ; MA # ( 撝 → 撝 ) CJK COMPATIBILITY IDEOGRAPH-2F8C5 → CJK UNIFIED IDEOGRAPH-649D # + +F930 ; 64C4 ; MA # ( 擄 → 擄 ) CJK COMPATIBILITY IDEOGRAPH-F930 → CJK UNIFIED IDEOGRAPH-64C4 # + +2F8C7 ; 3A6C ; MA # ( 㩬 → 㩬 ) CJK COMPATIBILITY IDEOGRAPH-2F8C7 → CJK UNIFIED IDEOGRAPH-3A6C # + +2F40 ; 652F ; MA #* ( ⽀ → 支 ) KANGXI RADICAL BRANCH → CJK UNIFIED IDEOGRAPH-652F # + +2F41 ; 6534 ; MA #* ( ⽁ → 攴 ) KANGXI RADICAL RAP → CJK UNIFIED IDEOGRAPH-6534 # + +2E99 ; 6535 ; MA #* ( ⺙ → 攵 ) CJK RADICAL RAP → CJK UNIFIED IDEOGRAPH-6535 # + +FA41 ; 654F ; MA # ( 敏 → 敏 ) CJK COMPATIBILITY IDEOGRAPH-FA41 → CJK UNIFIED IDEOGRAPH-654F # +2F8C8 ; 654F ; MA # ( 敏 → 敏 ) CJK COMPATIBILITY IDEOGRAPH-2F8C8 → CJK UNIFIED IDEOGRAPH-654F # + +FA90 ; 6556 ; MA # ( 敖 → 敖 ) CJK COMPATIBILITY IDEOGRAPH-FA90 → CJK UNIFIED IDEOGRAPH-6556 # + +2F8C9 ; 656C ; MA # ( 敬 → 敬 ) CJK COMPATIBILITY IDEOGRAPH-2F8C9 → CJK UNIFIED IDEOGRAPH-656C # + +F969 ; 6578 ; MA # ( 數 → 數 ) CJK COMPATIBILITY IDEOGRAPH-F969 → CJK UNIFIED IDEOGRAPH-6578 # + +2F8CA ; 2300A ; MA # ( 𣀊 → 𣀊 ) CJK COMPATIBILITY IDEOGRAPH-2F8CA → CJK UNIFIED IDEOGRAPH-2300A # + +2F42 ; 6587 ; MA #* ( ⽂ → 文 ) KANGXI RADICAL SCRIPT → CJK UNIFIED IDEOGRAPH-6587 # + +2EEB ; 6589 ; MA #* ( ⻫ → 斉 ) CJK RADICAL J-SIMPLIFIED EVEN → CJK UNIFIED IDEOGRAPH-6589 # + +2F43 ; 6597 ; MA #* ( ⽃ → 斗 ) KANGXI RADICAL DIPPER → CJK UNIFIED IDEOGRAPH-6597 # + +F9BE ; 6599 ; MA # ( 料 → 料 ) CJK COMPATIBILITY IDEOGRAPH-F9BE → CJK UNIFIED IDEOGRAPH-6599 # + +2F44 ; 65A4 ; MA #* ( ⽄ → 斤 ) KANGXI RADICAL AXE → CJK UNIFIED IDEOGRAPH-65A4 # + +2F45 ; 65B9 ; MA #* ( ⽅ → 方 ) KANGXI RADICAL SQUARE → CJK UNIFIED IDEOGRAPH-65B9 # + +F983 ; 65C5 ; MA # ( 旅 → 旅 ) CJK COMPATIBILITY IDEOGRAPH-F983 → CJK UNIFIED IDEOGRAPH-65C5 # + +2F46 ; 65E0 ; MA #* ( ⽆ → 无 ) KANGXI RADICAL NOT → CJK UNIFIED IDEOGRAPH-65E0 # + +2E9B ; 65E1 ; MA #* ( ⺛ → 旡 ) CJK RADICAL CHOKE → CJK UNIFIED IDEOGRAPH-65E1 # + +FA42 ; 65E2 ; MA # ( 既 → 既 ) CJK COMPATIBILITY IDEOGRAPH-FA42 → CJK UNIFIED IDEOGRAPH-65E2 # + +2F8CB ; 65E3 ; MA # ( 旣 → 旣 ) CJK COMPATIBILITY IDEOGRAPH-2F8CB → CJK UNIFIED IDEOGRAPH-65E3 # + +2F47 ; 65E5 ; MA #* ( ⽇ → 日 ) KANGXI RADICAL SUN → CJK UNIFIED IDEOGRAPH-65E5 # + +F9E0 ; 6613 ; MA # ( 易 → 易 ) CJK COMPATIBILITY IDEOGRAPH-F9E0 → CJK UNIFIED IDEOGRAPH-6613 # + +66F6 ; 3ADA ; MA # ( 曶 → 㫚 ) CJK UNIFIED IDEOGRAPH-66F6 → CJK UNIFIED IDEOGRAPH-3ADA # + +2F8D1 ; 3AE4 ; MA # ( 㫤 → 㫤 ) CJK COMPATIBILITY IDEOGRAPH-2F8D1 → CJK UNIFIED IDEOGRAPH-3AE4 # + +2F8CD ; 6649 ; MA # ( 晉 → 晉 ) CJK COMPATIBILITY IDEOGRAPH-2F8CD → CJK UNIFIED IDEOGRAPH-6649 # + +6669 ; 665A ; MA # ( 晩 → 晚 ) CJK UNIFIED IDEOGRAPH-6669 → CJK UNIFIED IDEOGRAPH-665A # + +FA12 ; 6674 ; MA # ( 晴 → 晴 ) CJK COMPATIBILITY IDEOGRAPH-FA12 → CJK UNIFIED IDEOGRAPH-6674 # +FA91 ; 6674 ; MA # ( 晴 → 晴 ) CJK COMPATIBILITY IDEOGRAPH-FA91 → CJK UNIFIED IDEOGRAPH-6674 # + +FA43 ; 6691 ; MA # ( 暑 → 暑 ) CJK COMPATIBILITY IDEOGRAPH-FA43 → CJK UNIFIED IDEOGRAPH-6691 # +2F8CF ; 6691 ; MA # ( 暑 → 暑 ) CJK COMPATIBILITY IDEOGRAPH-2F8CF → CJK UNIFIED IDEOGRAPH-6691 # + +F9C5 ; 6688 ; MA # ( 暈 → 暈 ) CJK COMPATIBILITY IDEOGRAPH-F9C5 → CJK UNIFIED IDEOGRAPH-6688 # + +2F8D0 ; 3B08 ; MA # ( 㬈 → 㬈 ) CJK COMPATIBILITY IDEOGRAPH-2F8D0 → CJK UNIFIED IDEOGRAPH-3B08 # + +2F8D5 ; 669C ; MA # ( 暜 → 暜 ) CJK COMPATIBILITY IDEOGRAPH-2F8D5 → CJK UNIFIED IDEOGRAPH-669C # + +FA06 ; 66B4 ; MA # ( 暴 → 暴 ) CJK COMPATIBILITY IDEOGRAPH-FA06 → CJK UNIFIED IDEOGRAPH-66B4 # + +F98B ; 66C6 ; MA # ( 曆 → 曆 ) CJK COMPATIBILITY IDEOGRAPH-F98B → CJK UNIFIED IDEOGRAPH-66C6 # + +2F8CE ; 3B19 ; MA # ( 㬙 → 㬙 ) CJK COMPATIBILITY IDEOGRAPH-2F8CE → CJK UNIFIED IDEOGRAPH-3B19 # + +2F897 ; 232B8 ; MA # ( 𣊸 → 𣊸 ) CJK COMPATIBILITY IDEOGRAPH-2F897 → CJK UNIFIED IDEOGRAPH-232B8 # + +2F48 ; 66F0 ; MA #* ( ⽈ → 曰 ) KANGXI RADICAL SAY → CJK UNIFIED IDEOGRAPH-66F0 # + +F901 ; 66F4 ; MA # ( 更 → 更 ) CJK COMPATIBILITY IDEOGRAPH-F901 → CJK UNIFIED IDEOGRAPH-66F4 # + +2F8CC ; 66F8 ; MA # ( 書 → 書 ) CJK COMPATIBILITY IDEOGRAPH-2F8CC → CJK UNIFIED IDEOGRAPH-66F8 # + +2F49 ; 6708 ; MA #* ( ⽉ → 月 ) KANGXI RADICAL MOON → CJK UNIFIED IDEOGRAPH-6708 # + +2F980 ; 2335F ; MA # ( 𣍟 → 𣍟 ) CJK COMPATIBILITY IDEOGRAPH-2F980 → CJK UNIFIED IDEOGRAPH-2335F # + +80A6 ; 670C ; MA # ( 肦 → 朌 ) CJK UNIFIED IDEOGRAPH-80A6 → CJK UNIFIED IDEOGRAPH-670C # + +80D0 ; 670F ; MA # ( 胐 → 朏 ) CJK UNIFIED IDEOGRAPH-80D0 → CJK UNIFIED IDEOGRAPH-670F # + +80CA ; 6710 ; MA # ( 胊 → 朐 ) CJK UNIFIED IDEOGRAPH-80CA → CJK UNIFIED IDEOGRAPH-6710 # + +8101 ; 6713 ; MA # ( 脁 → 朓 ) CJK UNIFIED IDEOGRAPH-8101 → CJK UNIFIED IDEOGRAPH-6713 # + +80F6 ; 3B35 ; MA # ( 胶 → 㬵 ) CJK UNIFIED IDEOGRAPH-80F6 → CJK UNIFIED IDEOGRAPH-3B35 # + +F929 ; 6717 ; MA # ( 朗 → 朗 ) CJK COMPATIBILITY IDEOGRAPH-F929 → CJK UNIFIED IDEOGRAPH-6717 # +FA92 ; 6717 ; MA # ( 朗 → 朗 ) CJK COMPATIBILITY IDEOGRAPH-FA92 → CJK UNIFIED IDEOGRAPH-6717 # +2F8D8 ; 6717 ; MA # ( 朗 → 朗 ) CJK COMPATIBILITY IDEOGRAPH-2F8D8 → CJK UNIFIED IDEOGRAPH-6717 # + +8127 ; 6718 ; MA # ( 脧 → 朘 ) CJK UNIFIED IDEOGRAPH-8127 → CJK UNIFIED IDEOGRAPH-6718 # + +FA93 ; 671B ; MA # ( 望 → 望 ) CJK COMPATIBILITY IDEOGRAPH-FA93 → CJK UNIFIED IDEOGRAPH-671B # +2F8D9 ; 671B ; MA # ( 望 → 望 ) CJK COMPATIBILITY IDEOGRAPH-2F8D9 → CJK UNIFIED IDEOGRAPH-671B # + +5E50 ; 3B3A ; MA # ( 幐 → 㬺 ) CJK UNIFIED IDEOGRAPH-5E50 → CJK UNIFIED IDEOGRAPH-3B3A # + +4420 ; 3B3B ; MA # ( 䐠 → 㬻 ) CJK UNIFIED IDEOGRAPH-4420 → CJK UNIFIED IDEOGRAPH-3B3B # + +2F989 ; 23393 ; MA # ( 𣎓 → 𣎓 ) CJK COMPATIBILITY IDEOGRAPH-2F989 → CJK UNIFIED IDEOGRAPH-23393 # + +81A7 ; 6723 ; MA # ( 膧 → 朣 ) CJK UNIFIED IDEOGRAPH-81A7 → CJK UNIFIED IDEOGRAPH-6723 # + +2F98A ; 2339C ; MA # ( 𣎜 → 𣎜 ) CJK COMPATIBILITY IDEOGRAPH-2F98A → CJK UNIFIED IDEOGRAPH-2339C # + +2F4A ; 6728 ; MA #* ( ⽊ → 木 ) KANGXI RADICAL TREE → CJK UNIFIED IDEOGRAPH-6728 # + +F9E1 ; 674E ; MA # ( 李 → 李 ) CJK COMPATIBILITY IDEOGRAPH-F9E1 → CJK UNIFIED IDEOGRAPH-674E # + +2F8DC ; 6753 ; MA # ( 杓 → 杓 ) CJK COMPATIBILITY IDEOGRAPH-2F8DC → CJK UNIFIED IDEOGRAPH-6753 # + +FA94 ; 6756 ; MA # ( 杖 → 杖 ) CJK COMPATIBILITY IDEOGRAPH-FA94 → CJK UNIFIED IDEOGRAPH-6756 # + +2F8DB ; 675E ; MA # ( 杞 → 杞 ) CJK COMPATIBILITY IDEOGRAPH-2F8DB → CJK UNIFIED IDEOGRAPH-675E # + +2F8DD ; 233C3 ; MA # ( 𣏃 → 𣏃 ) CJK COMPATIBILITY IDEOGRAPH-2F8DD → CJK UNIFIED IDEOGRAPH-233C3 # + +67FF ; 676E ; MA # ( 柿 → 杮 ) CJK UNIFIED IDEOGRAPH-67FF → CJK UNIFIED IDEOGRAPH-676E # + +F9C8 ; 677B ; MA # ( 杻 → 杻 ) CJK COMPATIBILITY IDEOGRAPH-F9C8 → CJK UNIFIED IDEOGRAPH-677B # + +2F8E0 ; 6785 ; MA # ( 枅 → 枅 ) CJK COMPATIBILITY IDEOGRAPH-2F8E0 → CJK UNIFIED IDEOGRAPH-6785 # + +F9F4 ; 6797 ; MA # ( 林 → 林 ) CJK COMPATIBILITY IDEOGRAPH-F9F4 → CJK UNIFIED IDEOGRAPH-6797 # + +2F8DE ; 3B49 ; MA # ( 㭉 → 㭉 ) CJK COMPATIBILITY IDEOGRAPH-2F8DE → CJK UNIFIED IDEOGRAPH-3B49 # + +FAD1 ; 233D5 ; MA # ( 𣏕 → 𣏕 ) CJK COMPATIBILITY IDEOGRAPH-FAD1 → CJK UNIFIED IDEOGRAPH-233D5 # + +F9C9 ; 67F3 ; MA # ( 柳 → 柳 ) CJK COMPATIBILITY IDEOGRAPH-F9C9 → CJK UNIFIED IDEOGRAPH-67F3 # + +2F8DF ; 67FA ; MA # ( 柺 → 柺 ) CJK COMPATIBILITY IDEOGRAPH-2F8DF → CJK UNIFIED IDEOGRAPH-67FA # + +F9DA ; 6817 ; MA # ( 栗 → 栗 ) CJK COMPATIBILITY IDEOGRAPH-F9DA → CJK UNIFIED IDEOGRAPH-6817 # + +2F8E5 ; 681F ; MA # ( 栟 → 栟 ) CJK COMPATIBILITY IDEOGRAPH-2F8E5 → CJK UNIFIED IDEOGRAPH-681F # + +2F8E1 ; 6852 ; MA # ( 桒 → 桒 ) CJK COMPATIBILITY IDEOGRAPH-2F8E1 → CJK UNIFIED IDEOGRAPH-6852 # + +2F8E3 ; 2346D ; MA # ( 𣑭 → 𣑭 ) CJK COMPATIBILITY IDEOGRAPH-2F8E3 → CJK UNIFIED IDEOGRAPH-2346D # + +F97A ; 6881 ; MA # ( 梁 → 梁 ) CJK COMPATIBILITY IDEOGRAPH-F97A → CJK UNIFIED IDEOGRAPH-6881 # + +FA44 ; 6885 ; MA # ( 梅 → 梅 ) CJK COMPATIBILITY IDEOGRAPH-FA44 → CJK UNIFIED IDEOGRAPH-6885 # +2F8E2 ; 6885 ; MA # ( 梅 → 梅 ) CJK COMPATIBILITY IDEOGRAPH-2F8E2 → CJK UNIFIED IDEOGRAPH-6885 # + +2F8E4 ; 688E ; MA # ( 梎 → 梎 ) CJK COMPATIBILITY IDEOGRAPH-2F8E4 → CJK UNIFIED IDEOGRAPH-688E # + +F9E2 ; 68A8 ; MA # ( 梨 → 梨 ) CJK COMPATIBILITY IDEOGRAPH-F9E2 → CJK UNIFIED IDEOGRAPH-68A8 # + +2F8E6 ; 6914 ; MA # ( 椔 → 椔 ) CJK COMPATIBILITY IDEOGRAPH-2F8E6 → CJK UNIFIED IDEOGRAPH-6914 # + +2F8E8 ; 6942 ; MA # ( 楂 → 楂 ) CJK COMPATIBILITY IDEOGRAPH-2F8E8 → CJK UNIFIED IDEOGRAPH-6942 # + +FAD2 ; 3B9D ; MA # ( 㮝 → 㮝 ) CJK COMPATIBILITY IDEOGRAPH-FAD2 → CJK UNIFIED IDEOGRAPH-3B9D # +2F8E7 ; 3B9D ; MA # ( 㮝 → 㮝 ) CJK COMPATIBILITY IDEOGRAPH-2F8E7 → CJK UNIFIED IDEOGRAPH-3B9D # + +69E9 ; 3BA3 ; MA # ( 槩 → 㮣 ) CJK UNIFIED IDEOGRAPH-69E9 → CJK UNIFIED IDEOGRAPH-3BA3 # + +6A27 ; 699D ; MA # ( 樧 → 榝 ) CJK UNIFIED IDEOGRAPH-6A27 → CJK UNIFIED IDEOGRAPH-699D # + +2F8E9 ; 69A3 ; MA # ( 榣 → 榣 ) CJK COMPATIBILITY IDEOGRAPH-2F8E9 → CJK UNIFIED IDEOGRAPH-69A3 # + +2F8EA ; 69EA ; MA # ( 槪 → 槪 ) CJK COMPATIBILITY IDEOGRAPH-2F8EA → CJK UNIFIED IDEOGRAPH-69EA # + +F914 ; 6A02 ; MA # ( 樂 → 樂 ) CJK COMPATIBILITY IDEOGRAPH-F914 → CJK UNIFIED IDEOGRAPH-6A02 # +F95C ; 6A02 ; MA # ( 樂 → 樂 ) CJK COMPATIBILITY IDEOGRAPH-F95C → CJK UNIFIED IDEOGRAPH-6A02 # +F9BF ; 6A02 ; MA # ( 樂 → 樂 ) CJK COMPATIBILITY IDEOGRAPH-F9BF → CJK UNIFIED IDEOGRAPH-6A02 # + +F94C ; 6A13 ; MA # ( 樓 → 樓 ) CJK COMPATIBILITY IDEOGRAPH-F94C → CJK UNIFIED IDEOGRAPH-6A13 # + +2F8EC ; 236A3 ; MA # ( 𣚣 → 𣚣 ) CJK COMPATIBILITY IDEOGRAPH-2F8EC → CJK UNIFIED IDEOGRAPH-236A3 # + +2F8EB ; 6AA8 ; MA # ( 檨 → 檨 ) CJK COMPATIBILITY IDEOGRAPH-2F8EB → CJK UNIFIED IDEOGRAPH-6AA8 # + +F931 ; 6AD3 ; MA # ( 櫓 → 櫓 ) CJK COMPATIBILITY IDEOGRAPH-F931 → CJK UNIFIED IDEOGRAPH-6AD3 # + +2F8ED ; 6ADB ; MA # ( 櫛 → 櫛 ) CJK COMPATIBILITY IDEOGRAPH-2F8ED → CJK UNIFIED IDEOGRAPH-6ADB # + +F91D ; 6B04 ; MA # ( 欄 → 欄 ) CJK COMPATIBILITY IDEOGRAPH-F91D → CJK UNIFIED IDEOGRAPH-6B04 # + +2F8EE ; 3C18 ; MA # ( 㰘 → 㰘 ) CJK COMPATIBILITY IDEOGRAPH-2F8EE → CJK UNIFIED IDEOGRAPH-3C18 # + +2F4B ; 6B20 ; MA #* ( ⽋ → 欠 ) KANGXI RADICAL LACK → CJK UNIFIED IDEOGRAPH-6B20 # + +2F8EF ; 6B21 ; MA # ( 次 → 次 ) CJK COMPATIBILITY IDEOGRAPH-2F8EF → CJK UNIFIED IDEOGRAPH-6B21 # + +2F8F0 ; 238A7 ; MA # ( 𣢧 → 𣢧 ) CJK COMPATIBILITY IDEOGRAPH-2F8F0 → CJK UNIFIED IDEOGRAPH-238A7 # + +2F8F1 ; 6B54 ; MA # ( 歔 → 歔 ) CJK COMPATIBILITY IDEOGRAPH-2F8F1 → CJK UNIFIED IDEOGRAPH-6B54 # + +2F8F2 ; 3C4E ; MA # ( 㱎 → 㱎 ) CJK COMPATIBILITY IDEOGRAPH-2F8F2 → CJK UNIFIED IDEOGRAPH-3C4E # + +2F4C ; 6B62 ; MA #* ( ⽌ → 止 ) KANGXI RADICAL STOP → CJK UNIFIED IDEOGRAPH-6B62 # + +2EED ; 6B6F ; MA #* ( ⻭ → 歯 ) CJK RADICAL J-SIMPLIFIED TOOTH → CJK UNIFIED IDEOGRAPH-6B6F # + +2F8F3 ; 6B72 ; MA # ( 歲 → 歲 ) CJK COMPATIBILITY IDEOGRAPH-2F8F3 → CJK UNIFIED IDEOGRAPH-6B72 # + +F98C ; 6B77 ; MA # ( 歷 → 歷 ) CJK COMPATIBILITY IDEOGRAPH-F98C → CJK UNIFIED IDEOGRAPH-6B77 # + +FA95 ; 6B79 ; MA # ( 歹 → 歹 ) CJK COMPATIBILITY IDEOGRAPH-FA95 → CJK UNIFIED IDEOGRAPH-6B79 # +2F4D ; 6B79 ; MA #* ( ⽍ → 歹 ) KANGXI RADICAL DEATH → CJK UNIFIED IDEOGRAPH-6B79 # + +2E9E ; 6B7A ; MA #* ( ⺞ → 歺 ) CJK RADICAL DEATH → CJK UNIFIED IDEOGRAPH-6B7A # + +2F8F4 ; 6B9F ; MA # ( 殟 → 殟 ) CJK COMPATIBILITY IDEOGRAPH-2F8F4 → CJK UNIFIED IDEOGRAPH-6B9F # + +F9A5 ; 6BAE ; MA # ( 殮 → 殮 ) CJK COMPATIBILITY IDEOGRAPH-F9A5 → CJK UNIFIED IDEOGRAPH-6BAE # + +2F4E ; 6BB3 ; MA #* ( ⽎ → 殳 ) KANGXI RADICAL WEAPON → CJK UNIFIED IDEOGRAPH-6BB3 # + +F970 ; 6BBA ; MA # ( 殺 → 殺 ) CJK COMPATIBILITY IDEOGRAPH-F970 → CJK UNIFIED IDEOGRAPH-6BBA # +FA96 ; 6BBA ; MA # ( 殺 → 殺 ) CJK COMPATIBILITY IDEOGRAPH-FA96 → CJK UNIFIED IDEOGRAPH-6BBA # +2F8F5 ; 6BBA ; MA # ( 殺 → 殺 ) CJK COMPATIBILITY IDEOGRAPH-2F8F5 → CJK UNIFIED IDEOGRAPH-6BBA # + +2F8F6 ; 6BBB ; MA # ( 殻 → 殻 ) CJK COMPATIBILITY IDEOGRAPH-2F8F6 → CJK UNIFIED IDEOGRAPH-6BBB # + +2F8F7 ; 23A8D ; MA # ( 𣪍 → 𣪍 ) CJK COMPATIBILITY IDEOGRAPH-2F8F7 → CJK UNIFIED IDEOGRAPH-23A8D # + +2F4F ; 6BCB ; MA #* ( ⽏ → 毋 ) KANGXI RADICAL DO NOT → CJK UNIFIED IDEOGRAPH-6BCB # + +2E9F ; 6BCD ; MA #* ( ⺟ → 母 ) CJK RADICAL MOTHER → CJK UNIFIED IDEOGRAPH-6BCD # + +2F8F9 ; 23AFA ; MA # ( 𣫺 → 𣫺 ) CJK COMPATIBILITY IDEOGRAPH-2F8F9 → CJK UNIFIED IDEOGRAPH-23AFA # + +2F50 ; 6BD4 ; MA #* ( ⽐ → 比 ) KANGXI RADICAL COMPARE → CJK UNIFIED IDEOGRAPH-6BD4 # + +2F51 ; 6BDB ; MA #* ( ⽑ → 毛 ) KANGXI RADICAL FUR → CJK UNIFIED IDEOGRAPH-6BDB # + +2F52 ; 6C0F ; MA #* ( ⽒ → 氏 ) KANGXI RADICAL CLAN → CJK UNIFIED IDEOGRAPH-6C0F # + +2EA0 ; 6C11 ; MA #* ( ⺠ → 民 ) CJK RADICAL CIVILIAN → CJK UNIFIED IDEOGRAPH-6C11 # + +2F53 ; 6C14 ; MA #* ( ⽓ → 气 ) KANGXI RADICAL STEAM → CJK UNIFIED IDEOGRAPH-6C14 # + +2F54 ; 6C34 ; MA #* ( ⽔ → 水 ) KANGXI RADICAL WATER → CJK UNIFIED IDEOGRAPH-6C34 # + +2EA1 ; 6C35 ; MA #* ( ⺡ → 氵 ) CJK RADICAL WATER ONE → CJK UNIFIED IDEOGRAPH-6C35 # + +2EA2 ; 6C3A ; MA #* ( ⺢ → 氺 ) CJK RADICAL WATER TWO → CJK UNIFIED IDEOGRAPH-6C3A # + +2F8FA ; 6C4E ; MA # ( 汎 → 汎 ) CJK COMPATIBILITY IDEOGRAPH-2F8FA → CJK UNIFIED IDEOGRAPH-6C4E # + +2F8FE ; 6C67 ; MA # ( 汧 → 汧 ) CJK COMPATIBILITY IDEOGRAPH-2F8FE → CJK UNIFIED IDEOGRAPH-6C67 # + +F972 ; 6C88 ; MA # ( 沈 → 沈 ) CJK COMPATIBILITY IDEOGRAPH-F972 → CJK UNIFIED IDEOGRAPH-6C88 # + +2F8FC ; 6CBF ; MA # ( 沿 → 沿 ) CJK COMPATIBILITY IDEOGRAPH-2F8FC → CJK UNIFIED IDEOGRAPH-6CBF # + +F968 ; 6CCC ; MA # ( 泌 → 泌 ) CJK COMPATIBILITY IDEOGRAPH-F968 → CJK UNIFIED IDEOGRAPH-6CCC # + +2F8FD ; 6CCD ; MA # ( 泍 → 泍 ) CJK COMPATIBILITY IDEOGRAPH-2F8FD → CJK UNIFIED IDEOGRAPH-6CCD # + +F9E3 ; 6CE5 ; MA # ( 泥 → 泥 ) CJK COMPATIBILITY IDEOGRAPH-F9E3 → CJK UNIFIED IDEOGRAPH-6CE5 # + +2F8FB ; 23CBC ; MA # ( 𣲼 → 𣲼 ) CJK COMPATIBILITY IDEOGRAPH-2F8FB → CJK UNIFIED IDEOGRAPH-23CBC # + +F915 ; 6D1B ; MA # ( 洛 → 洛 ) CJK COMPATIBILITY IDEOGRAPH-F915 → CJK UNIFIED IDEOGRAPH-6D1B # + +FA05 ; 6D1E ; MA # ( 洞 → 洞 ) CJK COMPATIBILITY IDEOGRAPH-FA05 → CJK UNIFIED IDEOGRAPH-6D1E # + +2F907 ; 6D34 ; MA # ( 洴 → 洴 ) CJK COMPATIBILITY IDEOGRAPH-2F907 → CJK UNIFIED IDEOGRAPH-6D34 # + +2F900 ; 6D3E ; MA # ( 派 → 派 ) CJK COMPATIBILITY IDEOGRAPH-2F900 → CJK UNIFIED IDEOGRAPH-6D3E # + +F9CA ; 6D41 ; MA # ( 流 → 流 ) CJK COMPATIBILITY IDEOGRAPH-F9CA → CJK UNIFIED IDEOGRAPH-6D41 # +FA97 ; 6D41 ; MA # ( 流 → 流 ) CJK COMPATIBILITY IDEOGRAPH-FA97 → CJK UNIFIED IDEOGRAPH-6D41 # +2F902 ; 6D41 ; MA # ( 流 → 流 ) CJK COMPATIBILITY IDEOGRAPH-2F902 → CJK UNIFIED IDEOGRAPH-6D41 # + +2F8FF ; 6D16 ; MA # ( 洖 → 洖 ) CJK COMPATIBILITY IDEOGRAPH-2F8FF → CJK UNIFIED IDEOGRAPH-6D16 # + +2F903 ; 6D69 ; MA # ( 浩 → 浩 ) CJK COMPATIBILITY IDEOGRAPH-2F903 → CJK UNIFIED IDEOGRAPH-6D69 # + +F92A ; 6D6A ; MA # ( 浪 → 浪 ) CJK COMPATIBILITY IDEOGRAPH-F92A → CJK UNIFIED IDEOGRAPH-6D6A # + +FA45 ; 6D77 ; MA # ( 海 → 海 ) CJK COMPATIBILITY IDEOGRAPH-FA45 → CJK UNIFIED IDEOGRAPH-6D77 # +2F901 ; 6D77 ; MA # ( 海 → 海 ) CJK COMPATIBILITY IDEOGRAPH-2F901 → CJK UNIFIED IDEOGRAPH-6D77 # + +2F904 ; 6D78 ; MA # ( 浸 → 浸 ) CJK COMPATIBILITY IDEOGRAPH-2F904 → CJK UNIFIED IDEOGRAPH-6D78 # + +2F905 ; 6D85 ; MA # ( 涅 → 涅 ) CJK COMPATIBILITY IDEOGRAPH-2F905 → CJK UNIFIED IDEOGRAPH-6D85 # + +2F906 ; 23D1E ; MA # ( 𣴞 → 𣴞 ) CJK COMPATIBILITY IDEOGRAPH-2F906 → CJK UNIFIED IDEOGRAPH-23D1E # + +F9F5 ; 6DCB ; MA # ( 淋 → 淋 ) CJK COMPATIBILITY IDEOGRAPH-F9F5 → CJK UNIFIED IDEOGRAPH-6DCB # + +F94D ; 6DDA ; MA # ( 淚 → 淚 ) CJK COMPATIBILITY IDEOGRAPH-F94D → CJK UNIFIED IDEOGRAPH-6DDA # + +F9D6 ; 6DEA ; MA # ( 淪 → 淪 ) CJK COMPATIBILITY IDEOGRAPH-F9D6 → CJK UNIFIED IDEOGRAPH-6DEA # + +2F90E ; 6DF9 ; MA # ( 淹 → 淹 ) CJK COMPATIBILITY IDEOGRAPH-2F90E → CJK UNIFIED IDEOGRAPH-6DF9 # + +FA46 ; 6E1A ; MA # ( 渚 → 渚 ) CJK COMPATIBILITY IDEOGRAPH-FA46 → CJK UNIFIED IDEOGRAPH-6E1A # + +2F908 ; 6E2F ; MA # ( 港 → 港 ) CJK COMPATIBILITY IDEOGRAPH-2F908 → CJK UNIFIED IDEOGRAPH-6E2F # + +2F909 ; 6E6E ; MA # ( 湮 → 湮 ) CJK COMPATIBILITY IDEOGRAPH-2F909 → CJK UNIFIED IDEOGRAPH-6E6E # + +6F59 ; 6E88 ; MA # ( 潙 → 溈 ) CJK UNIFIED IDEOGRAPH-6F59 → CJK UNIFIED IDEOGRAPH-6E88 # + +FA99 ; 6ECB ; MA # ( 滋 → 滋 ) CJK COMPATIBILITY IDEOGRAPH-FA99 → CJK UNIFIED IDEOGRAPH-6ECB # +2F90B ; 6ECB ; MA # ( 滋 → 滋 ) CJK COMPATIBILITY IDEOGRAPH-2F90B → CJK UNIFIED IDEOGRAPH-6ECB # + +F9CB ; 6E9C ; MA # ( 溜 → 溜 ) CJK COMPATIBILITY IDEOGRAPH-F9CB → CJK UNIFIED IDEOGRAPH-6E9C # + +F9EC ; 6EBA ; MA # ( 溺 → 溺 ) CJK COMPATIBILITY IDEOGRAPH-F9EC → CJK UNIFIED IDEOGRAPH-6EBA # + +2F90C ; 6EC7 ; MA # ( 滇 → 滇 ) CJK COMPATIBILITY IDEOGRAPH-2F90C → CJK UNIFIED IDEOGRAPH-6EC7 # + +F904 ; 6ED1 ; MA # ( 滑 → 滑 ) CJK COMPATIBILITY IDEOGRAPH-F904 → CJK UNIFIED IDEOGRAPH-6ED1 # + +FA98 ; 6EDB ; MA # ( 滛 → 滛 ) CJK COMPATIBILITY IDEOGRAPH-FA98 → CJK UNIFIED IDEOGRAPH-6EDB # + +2F90A ; 3D33 ; MA # ( 㴳 → 㴳 ) CJK COMPATIBILITY IDEOGRAPH-2F90A → CJK UNIFIED IDEOGRAPH-3D33 # + +F94E ; 6F0F ; MA # ( 漏 → 漏 ) CJK COMPATIBILITY IDEOGRAPH-F94E → CJK UNIFIED IDEOGRAPH-6F0F # + +FA47 ; 6F22 ; MA # ( 漢 → 漢 ) CJK COMPATIBILITY IDEOGRAPH-FA47 → CJK UNIFIED IDEOGRAPH-6F22 # +FA9A ; 6F22 ; MA # ( 漢 → 漢 ) CJK COMPATIBILITY IDEOGRAPH-FA9A → CJK UNIFIED IDEOGRAPH-6F22 # + +F992 ; 6F23 ; MA # ( 漣 → 漣 ) CJK COMPATIBILITY IDEOGRAPH-F992 → CJK UNIFIED IDEOGRAPH-6F23 # + +2F90D ; 23ED1 ; MA # ( 𣻑 → 𣻑 ) CJK COMPATIBILITY IDEOGRAPH-2F90D → CJK UNIFIED IDEOGRAPH-23ED1 # + +2F90F ; 6F6E ; MA # ( 潮 → 潮 ) CJK COMPATIBILITY IDEOGRAPH-2F90F → CJK UNIFIED IDEOGRAPH-6F6E # + +2F910 ; 23F5E ; MA # ( 𣽞 → 𣽞 ) CJK COMPATIBILITY IDEOGRAPH-2F910 → CJK UNIFIED IDEOGRAPH-23F5E # + +2F911 ; 23F8E ; MA # ( 𣾎 → 𣾎 ) CJK COMPATIBILITY IDEOGRAPH-2F911 → CJK UNIFIED IDEOGRAPH-23F8E # + +2F912 ; 6FC6 ; MA # ( 濆 → 濆 ) CJK COMPATIBILITY IDEOGRAPH-2F912 → CJK UNIFIED IDEOGRAPH-6FC6 # + +F922 ; 6FEB ; MA # ( 濫 → 濫 ) CJK COMPATIBILITY IDEOGRAPH-F922 → CJK UNIFIED IDEOGRAPH-6FEB # + +F984 ; 6FFE ; MA # ( 濾 → 濾 ) CJK COMPATIBILITY IDEOGRAPH-F984 → CJK UNIFIED IDEOGRAPH-6FFE # + +2F915 ; 701B ; MA # ( 瀛 → 瀛 ) CJK COMPATIBILITY IDEOGRAPH-2F915 → CJK UNIFIED IDEOGRAPH-701B # + +FA9B ; 701E ; MA # ( 瀞 → 瀞 ) CJK COMPATIBILITY IDEOGRAPH-FA9B → CJK UNIFIED IDEOGRAPH-701E # +2F914 ; 701E ; MA # ( 瀞 → 瀞 ) CJK COMPATIBILITY IDEOGRAPH-2F914 → CJK UNIFIED IDEOGRAPH-701E # + +2F913 ; 7039 ; MA # ( 瀹 → 瀹 ) CJK COMPATIBILITY IDEOGRAPH-2F913 → CJK UNIFIED IDEOGRAPH-7039 # + +2F917 ; 704A ; MA # ( 灊 → 灊 ) CJK COMPATIBILITY IDEOGRAPH-2F917 → CJK UNIFIED IDEOGRAPH-704A # + +2F916 ; 3D96 ; MA # ( 㶖 → 㶖 ) CJK COMPATIBILITY IDEOGRAPH-2F916 → CJK UNIFIED IDEOGRAPH-3D96 # + +2F55 ; 706B ; MA #* ( ⽕ → 火 ) KANGXI RADICAL FIRE → CJK UNIFIED IDEOGRAPH-706B # + +2EA3 ; 706C ; MA #* ( ⺣ → 灬 ) CJK RADICAL FIRE → CJK UNIFIED IDEOGRAPH-706C # + +2F835 ; 7070 ; MA # ( 灰 → 灰 ) CJK COMPATIBILITY IDEOGRAPH-2F835 → CJK UNIFIED IDEOGRAPH-7070 # + +2F919 ; 7077 ; MA # ( 灷 → 灷 ) CJK COMPATIBILITY IDEOGRAPH-2F919 → CJK UNIFIED IDEOGRAPH-7077 # + +2F918 ; 707D ; MA # ( 災 → 災 ) CJK COMPATIBILITY IDEOGRAPH-2F918 → CJK UNIFIED IDEOGRAPH-707D # + +F9FB ; 7099 ; MA # ( 炙 → 炙 ) CJK COMPATIBILITY IDEOGRAPH-F9FB → CJK UNIFIED IDEOGRAPH-7099 # + +2F91A ; 70AD ; MA # ( 炭 → 炭 ) CJK COMPATIBILITY IDEOGRAPH-2F91A → CJK UNIFIED IDEOGRAPH-70AD # + +F99F ; 70C8 ; MA # ( 烈 → 烈 ) CJK COMPATIBILITY IDEOGRAPH-F99F → CJK UNIFIED IDEOGRAPH-70C8 # + +F916 ; 70D9 ; MA # ( 烙 → 烙 ) CJK COMPATIBILITY IDEOGRAPH-F916 → CJK UNIFIED IDEOGRAPH-70D9 # + +FA48 ; 716E ; MA # ( 煮 → 煮 ) CJK COMPATIBILITY IDEOGRAPH-FA48 → CJK UNIFIED IDEOGRAPH-716E # +FA9C ; 716E ; MA # ( 煮 → 煮 ) CJK COMPATIBILITY IDEOGRAPH-FA9C → CJK UNIFIED IDEOGRAPH-716E # + +2F91D ; 24263 ; MA # ( 𤉣 → 𤉣 ) CJK COMPATIBILITY IDEOGRAPH-2F91D → CJK UNIFIED IDEOGRAPH-24263 # + +2F91C ; 7145 ; MA # ( 煅 → 煅 ) CJK COMPATIBILITY IDEOGRAPH-2F91C → CJK UNIFIED IDEOGRAPH-7145 # + +F993 ; 7149 ; MA # ( 煉 → 煉 ) CJK COMPATIBILITY IDEOGRAPH-F993 → CJK UNIFIED IDEOGRAPH-7149 # + +FA6C ; 242EE ; MA # ( 𤋮 → 𤋮 ) CJK COMPATIBILITY IDEOGRAPH-FA6C → CJK UNIFIED IDEOGRAPH-242EE # + +2F91E ; 719C ; MA # ( 熜 → 熜 ) CJK COMPATIBILITY IDEOGRAPH-2F91E → CJK UNIFIED IDEOGRAPH-719C # + +F9C0 ; 71CE ; MA # ( 燎 → 燎 ) CJK COMPATIBILITY IDEOGRAPH-F9C0 → CJK UNIFIED IDEOGRAPH-71CE # + +F9EE ; 71D0 ; MA # ( 燐 → 燐 ) CJK COMPATIBILITY IDEOGRAPH-F9EE → CJK UNIFIED IDEOGRAPH-71D0 # + +2F91F ; 243AB ; MA # ( 𤎫 → 𤎫 ) CJK COMPATIBILITY IDEOGRAPH-2F91F → CJK UNIFIED IDEOGRAPH-243AB # + +F932 ; 7210 ; MA # ( 爐 → 爐 ) CJK COMPATIBILITY IDEOGRAPH-F932 → CJK UNIFIED IDEOGRAPH-7210 # + +F91E ; 721B ; MA # ( 爛 → 爛 ) CJK COMPATIBILITY IDEOGRAPH-F91E → CJK UNIFIED IDEOGRAPH-721B # + +2F920 ; 7228 ; MA # ( 爨 → 爨 ) CJK COMPATIBILITY IDEOGRAPH-2F920 → CJK UNIFIED IDEOGRAPH-7228 # + +2F56 ; 722A ; MA #* ( ⽖ → 爪 ) KANGXI RADICAL CLAW → CJK UNIFIED IDEOGRAPH-722A # + +FA49 ; 722B ; MA # ( 爫 → 爫 ) CJK COMPATIBILITY IDEOGRAPH-FA49 → CJK UNIFIED IDEOGRAPH-722B # +2EA4 ; 722B ; MA #* ( ⺤ → 爫 ) CJK RADICAL PAW ONE → CJK UNIFIED IDEOGRAPH-722B # + +FA9E ; 7235 ; MA # ( 爵 → 爵 ) CJK COMPATIBILITY IDEOGRAPH-FA9E → CJK UNIFIED IDEOGRAPH-7235 # +2F921 ; 7235 ; MA # ( 爵 → 爵 ) CJK COMPATIBILITY IDEOGRAPH-2F921 → CJK UNIFIED IDEOGRAPH-7235 # + +2F57 ; 7236 ; MA #* ( ⽗ → 父 ) KANGXI RADICAL FATHER → CJK UNIFIED IDEOGRAPH-7236 # + +2F58 ; 723B ; MA #* ( ⽘ → 爻 ) KANGXI RADICAL DOUBLE X → CJK UNIFIED IDEOGRAPH-723B # + +2EA6 ; 4E2C ; MA #* ( ⺦ → 丬 ) CJK RADICAL SIMPLIFIED HALF TREE TRUNK → CJK UNIFIED IDEOGRAPH-4E2C # + +2F59 ; 723F ; MA #* ( ⽙ → 爿 ) KANGXI RADICAL HALF TREE TRUNK → CJK UNIFIED IDEOGRAPH-723F # + +2F5A ; 7247 ; MA #* ( ⽚ → 片 ) KANGXI RADICAL SLICE → CJK UNIFIED IDEOGRAPH-7247 # + +2F922 ; 7250 ; MA # ( 牐 → 牐 ) CJK COMPATIBILITY IDEOGRAPH-2F922 → CJK UNIFIED IDEOGRAPH-7250 # + +2F5B ; 7259 ; MA #* ( ⽛ → 牙 ) KANGXI RADICAL FANG → CJK UNIFIED IDEOGRAPH-7259 # + +2F923 ; 24608 ; MA # ( 𤘈 → 𤘈 ) CJK COMPATIBILITY IDEOGRAPH-2F923 → CJK UNIFIED IDEOGRAPH-24608 # + +2F5C ; 725B ; MA #* ( ⽜ → 牛 ) KANGXI RADICAL COW → CJK UNIFIED IDEOGRAPH-725B # + +F946 ; 7262 ; MA # ( 牢 → 牢 ) CJK COMPATIBILITY IDEOGRAPH-F946 → CJK UNIFIED IDEOGRAPH-7262 # + +2F924 ; 7280 ; MA # ( 犀 → 犀 ) CJK COMPATIBILITY IDEOGRAPH-2F924 → CJK UNIFIED IDEOGRAPH-7280 # + +2F925 ; 7295 ; MA # ( 犕 → 犕 ) CJK COMPATIBILITY IDEOGRAPH-2F925 → CJK UNIFIED IDEOGRAPH-7295 # + +2F5D ; 72AC ; MA #* ( ⽝ → 犬 ) KANGXI RADICAL DOG → CJK UNIFIED IDEOGRAPH-72AC # + +2EA8 ; 72AD ; MA #* ( ⺨ → 犭 ) CJK RADICAL DOG → CJK UNIFIED IDEOGRAPH-72AD # + +FA9F ; 72AF ; MA # ( 犯 → 犯 ) CJK COMPATIBILITY IDEOGRAPH-FA9F → CJK UNIFIED IDEOGRAPH-72AF # + +F9FA ; 72C0 ; MA # ( 狀 → 狀 ) CJK COMPATIBILITY IDEOGRAPH-F9FA → CJK UNIFIED IDEOGRAPH-72C0 # + +2F926 ; 24735 ; MA # ( 𤜵 → 𤜵 ) CJK COMPATIBILITY IDEOGRAPH-2F926 → CJK UNIFIED IDEOGRAPH-24735 # + +F92B ; 72FC ; MA # ( 狼 → 狼 ) CJK COMPATIBILITY IDEOGRAPH-F92B → CJK UNIFIED IDEOGRAPH-72FC # + +FA16 ; 732A ; MA # ( 猪 → 猪 ) CJK COMPATIBILITY IDEOGRAPH-FA16 → CJK UNIFIED IDEOGRAPH-732A # +FAA0 ; 732A ; MA # ( 猪 → 猪 ) CJK COMPATIBILITY IDEOGRAPH-FAA0 → CJK UNIFIED IDEOGRAPH-732A # + +2F927 ; 24814 ; MA # ( 𤠔 → 𤠔 ) CJK COMPATIBILITY IDEOGRAPH-2F927 → CJK UNIFIED IDEOGRAPH-24814 # + +F9A7 ; 7375 ; MA # ( 獵 → 獵 ) CJK COMPATIBILITY IDEOGRAPH-F9A7 → CJK UNIFIED IDEOGRAPH-7375 # + +2F928 ; 737A ; MA # ( 獺 → 獺 ) CJK COMPATIBILITY IDEOGRAPH-2F928 → CJK UNIFIED IDEOGRAPH-737A # + +2F5E ; 7384 ; MA #* ( ⽞ → 玄 ) KANGXI RADICAL PROFOUND → CJK UNIFIED IDEOGRAPH-7384 # + +F961 ; 7387 ; MA # ( 率 → 率 ) CJK COMPATIBILITY IDEOGRAPH-F961 → CJK UNIFIED IDEOGRAPH-7387 # +F9DB ; 7387 ; MA # ( 率 → 率 ) CJK COMPATIBILITY IDEOGRAPH-F9DB → CJK UNIFIED IDEOGRAPH-7387 # + +2F5F ; 7389 ; MA #* ( ⽟ → 玉 ) KANGXI RADICAL JADE → CJK UNIFIED IDEOGRAPH-7389 # + +2F929 ; 738B ; MA # ( 王 → 王 ) CJK COMPATIBILITY IDEOGRAPH-2F929 → CJK UNIFIED IDEOGRAPH-738B # + +2F92A ; 3EAC ; MA # ( 㺬 → 㺬 ) CJK COMPATIBILITY IDEOGRAPH-2F92A → CJK UNIFIED IDEOGRAPH-3EAC # + +2F92B ; 73A5 ; MA # ( 玥 → 玥 ) CJK COMPATIBILITY IDEOGRAPH-2F92B → CJK UNIFIED IDEOGRAPH-73A5 # + +F9AD ; 73B2 ; MA # ( 玲 → 玲 ) CJK COMPATIBILITY IDEOGRAPH-F9AD → CJK UNIFIED IDEOGRAPH-73B2 # + +2F92C ; 3EB8 ; MA # ( 㺸 → 㺸 ) CJK COMPATIBILITY IDEOGRAPH-2F92C → CJK UNIFIED IDEOGRAPH-3EB8 # +2F92D ; 3EB8 ; MA # ( 㺸 → 㺸 ) CJK COMPATIBILITY IDEOGRAPH-2F92D → CJK UNIFIED IDEOGRAPH-3EB8 # + +F917 ; 73DE ; MA # ( 珞 → 珞 ) CJK COMPATIBILITY IDEOGRAPH-F917 → CJK UNIFIED IDEOGRAPH-73DE # + +F9CC ; 7409 ; MA # ( 琉 → 琉 ) CJK COMPATIBILITY IDEOGRAPH-F9CC → CJK UNIFIED IDEOGRAPH-7409 # + +F9E4 ; 7406 ; MA # ( 理 → 理 ) CJK COMPATIBILITY IDEOGRAPH-F9E4 → CJK UNIFIED IDEOGRAPH-7406 # + +FA4A ; 7422 ; MA # ( 琢 → 琢 ) CJK COMPATIBILITY IDEOGRAPH-FA4A → CJK UNIFIED IDEOGRAPH-7422 # + +2F92E ; 7447 ; MA # ( 瑇 → 瑇 ) CJK COMPATIBILITY IDEOGRAPH-2F92E → CJK UNIFIED IDEOGRAPH-7447 # + +2F92F ; 745C ; MA # ( 瑜 → 瑜 ) CJK COMPATIBILITY IDEOGRAPH-2F92F → CJK UNIFIED IDEOGRAPH-745C # + +F9AE ; 7469 ; MA # ( 瑩 → 瑩 ) CJK COMPATIBILITY IDEOGRAPH-F9AE → CJK UNIFIED IDEOGRAPH-7469 # + +FAA1 ; 7471 ; MA # ( 瑱 → 瑱 ) CJK COMPATIBILITY IDEOGRAPH-FAA1 → CJK UNIFIED IDEOGRAPH-7471 # +2F930 ; 7471 ; MA # ( 瑱 → 瑱 ) CJK COMPATIBILITY IDEOGRAPH-2F930 → CJK UNIFIED IDEOGRAPH-7471 # + +2F931 ; 7485 ; MA # ( 璅 → 璅 ) CJK COMPATIBILITY IDEOGRAPH-2F931 → CJK UNIFIED IDEOGRAPH-7485 # + +F994 ; 7489 ; MA # ( 璉 → 璉 ) CJK COMPATIBILITY IDEOGRAPH-F994 → CJK UNIFIED IDEOGRAPH-7489 # + +F9EF ; 7498 ; MA # ( 璘 → 璘 ) CJK COMPATIBILITY IDEOGRAPH-F9EF → CJK UNIFIED IDEOGRAPH-7498 # + +2F932 ; 74CA ; MA # ( 瓊 → 瓊 ) CJK COMPATIBILITY IDEOGRAPH-2F932 → CJK UNIFIED IDEOGRAPH-74CA # + +2F60 ; 74DC ; MA #* ( ⽠ → 瓜 ) KANGXI RADICAL MELON → CJK UNIFIED IDEOGRAPH-74DC # + +2F61 ; 74E6 ; MA #* ( ⽡ → 瓦 ) KANGXI RADICAL TILE → CJK UNIFIED IDEOGRAPH-74E6 # + +2F933 ; 3F1B ; MA # ( 㼛 → 㼛 ) CJK COMPATIBILITY IDEOGRAPH-2F933 → CJK UNIFIED IDEOGRAPH-3F1B # + +FAA2 ; 7506 ; MA # ( 甆 → 甆 ) CJK COMPATIBILITY IDEOGRAPH-FAA2 → CJK UNIFIED IDEOGRAPH-7506 # + +2F62 ; 7518 ; MA #* ( ⽢ → 甘 ) KANGXI RADICAL SWEET → CJK UNIFIED IDEOGRAPH-7518 # + +2F63 ; 751F ; MA #* ( ⽣ → 生 ) KANGXI RADICAL LIFE → CJK UNIFIED IDEOGRAPH-751F # + +2F934 ; 7524 ; MA # ( 甤 → 甤 ) CJK COMPATIBILITY IDEOGRAPH-2F934 → CJK UNIFIED IDEOGRAPH-7524 # + +2F64 ; 7528 ; MA #* ( ⽤ → 用 ) KANGXI RADICAL USE → CJK UNIFIED IDEOGRAPH-7528 # + +2F65 ; 7530 ; MA #* ( ⽥ → 田 ) KANGXI RADICAL FIELD → CJK UNIFIED IDEOGRAPH-7530 # + +FAA3 ; 753B ; MA # ( 画 → 画 ) CJK COMPATIBILITY IDEOGRAPH-FAA3 → CJK UNIFIED IDEOGRAPH-753B # + +2F936 ; 753E ; MA # ( 甾 → 甾 ) CJK COMPATIBILITY IDEOGRAPH-2F936 → CJK UNIFIED IDEOGRAPH-753E # + +2F935 ; 24C36 ; MA # ( 𤰶 → 𤰶 ) CJK COMPATIBILITY IDEOGRAPH-2F935 → CJK UNIFIED IDEOGRAPH-24C36 # + +F9CD ; 7559 ; MA # ( 留 → 留 ) CJK COMPATIBILITY IDEOGRAPH-F9CD → CJK UNIFIED IDEOGRAPH-7559 # + +F976 ; 7565 ; MA # ( 略 → 略 ) CJK COMPATIBILITY IDEOGRAPH-F976 → CJK UNIFIED IDEOGRAPH-7565 # + +F962 ; 7570 ; MA # ( 異 → 異 ) CJK COMPATIBILITY IDEOGRAPH-F962 → CJK UNIFIED IDEOGRAPH-7570 # +2F938 ; 7570 ; MA # ( 異 → 異 ) CJK COMPATIBILITY IDEOGRAPH-2F938 → CJK UNIFIED IDEOGRAPH-7570 # + +2F937 ; 24C92 ; MA # ( 𤲒 → 𤲒 ) CJK COMPATIBILITY IDEOGRAPH-2F937 → CJK UNIFIED IDEOGRAPH-24C92 # + +2F66 ; 758B ; MA #* ( ⽦ → 疋 ) KANGXI RADICAL BOLT OF CLOTH → CJK UNIFIED IDEOGRAPH-758B # + +2F67 ; 7592 ; MA #* ( ⽧ → 疒 ) KANGXI RADICAL SICKNESS → CJK UNIFIED IDEOGRAPH-7592 # + +F9E5 ; 75E2 ; MA # ( 痢 → 痢 ) CJK COMPATIBILITY IDEOGRAPH-F9E5 → CJK UNIFIED IDEOGRAPH-75E2 # + +2F93A ; 7610 ; MA # ( 瘐 → 瘐 ) CJK COMPATIBILITY IDEOGRAPH-2F93A → CJK UNIFIED IDEOGRAPH-7610 # + +FAA5 ; 761F ; MA # ( 瘟 → 瘟 ) CJK COMPATIBILITY IDEOGRAPH-FAA5 → CJK UNIFIED IDEOGRAPH-761F # + +FAA4 ; 761D ; MA # ( 瘝 → 瘝 ) CJK COMPATIBILITY IDEOGRAPH-FAA4 → CJK UNIFIED IDEOGRAPH-761D # + +F9C1 ; 7642 ; MA # ( 療 → 療 ) CJK COMPATIBILITY IDEOGRAPH-F9C1 → CJK UNIFIED IDEOGRAPH-7642 # + +F90E ; 7669 ; MA # ( 癩 → 癩 ) CJK COMPATIBILITY IDEOGRAPH-F90E → CJK UNIFIED IDEOGRAPH-7669 # + +2F68 ; 7676 ; MA #* ( ⽨ → 癶 ) KANGXI RADICAL DOTTED TENT → CJK UNIFIED IDEOGRAPH-7676 # + +2F69 ; 767D ; MA #* ( ⽩ → 白 ) KANGXI RADICAL WHITE → CJK UNIFIED IDEOGRAPH-767D # + +2F93B ; 24FA1 ; MA # ( 𤾡 → 𤾡 ) CJK COMPATIBILITY IDEOGRAPH-2F93B → CJK UNIFIED IDEOGRAPH-24FA1 # + +2F93C ; 24FB8 ; MA # ( 𤾸 → 𤾸 ) CJK COMPATIBILITY IDEOGRAPH-2F93C → CJK UNIFIED IDEOGRAPH-24FB8 # + +2F6A ; 76AE ; MA #* ( ⽪ → 皮 ) KANGXI RADICAL SKIN → CJK UNIFIED IDEOGRAPH-76AE # + +2F6B ; 76BF ; MA #* ( ⽫ → 皿 ) KANGXI RADICAL DISH → CJK UNIFIED IDEOGRAPH-76BF # + +2F93D ; 25044 ; MA # ( 𥁄 → 𥁄 ) CJK COMPATIBILITY IDEOGRAPH-2F93D → CJK UNIFIED IDEOGRAPH-25044 # + +2F93E ; 3FFC ; MA # ( 㿼 → 㿼 ) CJK COMPATIBILITY IDEOGRAPH-2F93E → CJK UNIFIED IDEOGRAPH-3FFC # + +FA17 ; 76CA ; MA # ( 益 → 益 ) CJK COMPATIBILITY IDEOGRAPH-FA17 → CJK UNIFIED IDEOGRAPH-76CA # +FAA6 ; 76CA ; MA # ( 益 → 益 ) CJK COMPATIBILITY IDEOGRAPH-FAA6 → CJK UNIFIED IDEOGRAPH-76CA # + +FAA7 ; 76DB ; MA # ( 盛 → 盛 ) CJK COMPATIBILITY IDEOGRAPH-FAA7 → CJK UNIFIED IDEOGRAPH-76DB # + +F933 ; 76E7 ; MA # ( 盧 → 盧 ) CJK COMPATIBILITY IDEOGRAPH-F933 → CJK UNIFIED IDEOGRAPH-76E7 # + +2F93F ; 4008 ; MA # ( 䀈 → 䀈 ) CJK COMPATIBILITY IDEOGRAPH-2F93F → CJK UNIFIED IDEOGRAPH-4008 # + +2F6C ; 76EE ; MA #* ( ⽬ → 目 ) KANGXI RADICAL EYE → CJK UNIFIED IDEOGRAPH-76EE # + +FAA8 ; 76F4 ; MA # ( 直 → 直 ) CJK COMPATIBILITY IDEOGRAPH-FAA8 → CJK UNIFIED IDEOGRAPH-76F4 # +2F940 ; 76F4 ; MA # ( 直 → 直 ) CJK COMPATIBILITY IDEOGRAPH-2F940 → CJK UNIFIED IDEOGRAPH-76F4 # + +2F942 ; 250F2 ; MA # ( 𥃲 → 𥃲 ) CJK COMPATIBILITY IDEOGRAPH-2F942 → CJK UNIFIED IDEOGRAPH-250F2 # + +2F941 ; 250F3 ; MA # ( 𥃳 → 𥃳 ) CJK COMPATIBILITY IDEOGRAPH-2F941 → CJK UNIFIED IDEOGRAPH-250F3 # + +F96D ; 7701 ; MA # ( 省 → 省 ) CJK COMPATIBILITY IDEOGRAPH-F96D → CJK UNIFIED IDEOGRAPH-7701 # + +FAD3 ; 4018 ; MA # ( 䀘 → 䀘 ) CJK COMPATIBILITY IDEOGRAPH-FAD3 → CJK UNIFIED IDEOGRAPH-4018 # + +2F943 ; 25119 ; MA # ( 𥄙 → 𥄙 ) CJK COMPATIBILITY IDEOGRAPH-2F943 → CJK UNIFIED IDEOGRAPH-25119 # + +2F945 ; 771E ; MA # ( 眞 → 眞 ) CJK COMPATIBILITY IDEOGRAPH-2F945 → CJK UNIFIED IDEOGRAPH-771E # + +2F946 ; 771F ; MA # ( 真 → 真 ) CJK COMPATIBILITY IDEOGRAPH-2F946 → CJK UNIFIED IDEOGRAPH-771F # +2F947 ; 771F ; MA # ( 真 → 真 ) CJK COMPATIBILITY IDEOGRAPH-2F947 → CJK UNIFIED IDEOGRAPH-771F # + +2F944 ; 25133 ; MA # ( 𥄳 → 𥄳 ) CJK COMPATIBILITY IDEOGRAPH-2F944 → CJK UNIFIED IDEOGRAPH-25133 # + +FAAA ; 7740 ; MA # ( 着 → 着 ) CJK COMPATIBILITY IDEOGRAPH-FAAA → CJK UNIFIED IDEOGRAPH-7740 # + +FAA9 ; 774A ; MA # ( 睊 → 睊 ) CJK COMPATIBILITY IDEOGRAPH-FAA9 → CJK UNIFIED IDEOGRAPH-774A # +2F948 ; 774A ; MA # ( 睊 → 睊 ) CJK COMPATIBILITY IDEOGRAPH-2F948 → CJK UNIFIED IDEOGRAPH-774A # + +9FC3 ; 4039 ; MA # ( 鿃 → 䀹 ) CJK UNIFIED IDEOGRAPH-9FC3 → CJK UNIFIED IDEOGRAPH-4039 # →䀹→ +FAD4 ; 4039 ; MA # ( 䀹 → 䀹 ) CJK COMPATIBILITY IDEOGRAPH-FAD4 → CJK UNIFIED IDEOGRAPH-4039 # +2F949 ; 4039 ; MA # ( 䀹 → 䀹 ) CJK COMPATIBILITY IDEOGRAPH-2F949 → CJK UNIFIED IDEOGRAPH-4039 # + +6663 ; 403F ; MA # ( 晣 → 䀿 ) CJK UNIFIED IDEOGRAPH-6663 → CJK UNIFIED IDEOGRAPH-403F # + +2F94B ; 4046 ; MA # ( 䁆 → 䁆 ) CJK COMPATIBILITY IDEOGRAPH-2F94B → CJK UNIFIED IDEOGRAPH-4046 # + +2F94A ; 778B ; MA # ( 瞋 → 瞋 ) CJK COMPATIBILITY IDEOGRAPH-2F94A → CJK UNIFIED IDEOGRAPH-778B # + +FAD5 ; 25249 ; MA # ( 𥉉 → 𥉉 ) CJK COMPATIBILITY IDEOGRAPH-FAD5 → CJK UNIFIED IDEOGRAPH-25249 # + +FA9D ; 77A7 ; MA # ( 瞧 → 瞧 ) CJK COMPATIBILITY IDEOGRAPH-FA9D → CJK UNIFIED IDEOGRAPH-77A7 # + +2F6D ; 77DB ; MA #* ( ⽭ → 矛 ) KANGXI RADICAL SPEAR → CJK UNIFIED IDEOGRAPH-77DB # + +2F6E ; 77E2 ; MA #* ( ⽮ → 矢 ) KANGXI RADICAL ARROW → CJK UNIFIED IDEOGRAPH-77E2 # + +2F6F ; 77F3 ; MA #* ( ⽯ → 石 ) KANGXI RADICAL STONE → CJK UNIFIED IDEOGRAPH-77F3 # + +2F94C ; 4096 ; MA # ( 䂖 → 䂖 ) CJK COMPATIBILITY IDEOGRAPH-2F94C → CJK UNIFIED IDEOGRAPH-4096 # + +2F94D ; 2541D ; MA # ( 𥐝 → 𥐝 ) CJK COMPATIBILITY IDEOGRAPH-2F94D → CJK UNIFIED IDEOGRAPH-2541D # + +784F ; 7814 ; MA # ( 硏 → 研 ) CJK UNIFIED IDEOGRAPH-784F → CJK UNIFIED IDEOGRAPH-7814 # + +2F94E ; 784E ; MA # ( 硎 → 硎 ) CJK COMPATIBILITY IDEOGRAPH-2F94E → CJK UNIFIED IDEOGRAPH-784E # + +F9CE ; 786B ; MA # ( 硫 → 硫 ) CJK COMPATIBILITY IDEOGRAPH-F9CE → CJK UNIFIED IDEOGRAPH-786B # + +F93B ; 788C ; MA # ( 碌 → 碌 ) CJK COMPATIBILITY IDEOGRAPH-F93B → CJK UNIFIED IDEOGRAPH-788C # +2F94F ; 788C ; MA # ( 碌 → 碌 ) CJK COMPATIBILITY IDEOGRAPH-2F94F → CJK UNIFIED IDEOGRAPH-788C # + +FA4B ; 7891 ; MA # ( 碑 → 碑 ) CJK COMPATIBILITY IDEOGRAPH-FA4B → CJK UNIFIED IDEOGRAPH-7891 # + +F947 ; 78CA ; MA # ( 磊 → 磊 ) CJK COMPATIBILITY IDEOGRAPH-F947 → CJK UNIFIED IDEOGRAPH-78CA # + +FAAB ; 78CC ; MA # ( 磌 → 磌 ) CJK COMPATIBILITY IDEOGRAPH-FAAB → CJK UNIFIED IDEOGRAPH-78CC # +2F950 ; 78CC ; MA # ( 磌 → 磌 ) CJK COMPATIBILITY IDEOGRAPH-2F950 → CJK UNIFIED IDEOGRAPH-78CC # + +F964 ; 78FB ; MA # ( 磻 → 磻 ) CJK COMPATIBILITY IDEOGRAPH-F964 → CJK UNIFIED IDEOGRAPH-78FB # + +2F951 ; 40E3 ; MA # ( 䃣 → 䃣 ) CJK COMPATIBILITY IDEOGRAPH-2F951 → CJK UNIFIED IDEOGRAPH-40E3 # + +F985 ; 792A ; MA # ( 礪 → 礪 ) CJK COMPATIBILITY IDEOGRAPH-F985 → CJK UNIFIED IDEOGRAPH-792A # + +2F70 ; 793A ; MA #* ( ⽰ → 示 ) KANGXI RADICAL SPIRIT → CJK UNIFIED IDEOGRAPH-793A # + +2EAD ; 793B ; MA #* ( ⺭ → 礻 ) CJK RADICAL SPIRIT TWO → CJK UNIFIED IDEOGRAPH-793B # + +FA18 ; 793C ; MA # ( 礼 → 礼 ) CJK COMPATIBILITY IDEOGRAPH-FA18 → CJK UNIFIED IDEOGRAPH-793C # + +FA4C ; 793E ; MA # ( 社 → 社 ) CJK COMPATIBILITY IDEOGRAPH-FA4C → CJK UNIFIED IDEOGRAPH-793E # + +FA4E ; 7948 ; MA # ( 祈 → 祈 ) CJK COMPATIBILITY IDEOGRAPH-FA4E → CJK UNIFIED IDEOGRAPH-7948 # + +FA4D ; 7949 ; MA # ( 祉 → 祉 ) CJK COMPATIBILITY IDEOGRAPH-FA4D → CJK UNIFIED IDEOGRAPH-7949 # + +2F952 ; 25626 ; MA # ( 𥘦 → 𥘦 ) CJK COMPATIBILITY IDEOGRAPH-2F952 → CJK UNIFIED IDEOGRAPH-25626 # + +FA4F ; 7950 ; MA # ( 祐 → 祐 ) CJK COMPATIBILITY IDEOGRAPH-FA4F → CJK UNIFIED IDEOGRAPH-7950 # + +FA50 ; 7956 ; MA # ( 祖 → 祖 ) CJK COMPATIBILITY IDEOGRAPH-FA50 → CJK UNIFIED IDEOGRAPH-7956 # +2F953 ; 7956 ; MA # ( 祖 → 祖 ) CJK COMPATIBILITY IDEOGRAPH-2F953 → CJK UNIFIED IDEOGRAPH-7956 # + +FA51 ; 795D ; MA # ( 祝 → 祝 ) CJK COMPATIBILITY IDEOGRAPH-FA51 → CJK UNIFIED IDEOGRAPH-795D # + +FA19 ; 795E ; MA # ( 神 → 神 ) CJK COMPATIBILITY IDEOGRAPH-FA19 → CJK UNIFIED IDEOGRAPH-795E # + +FA1A ; 7965 ; MA # ( 祥 → 祥 ) CJK COMPATIBILITY IDEOGRAPH-FA1A → CJK UNIFIED IDEOGRAPH-7965 # + +FA61 ; 8996 ; MA # ( 視 → 視 ) CJK COMPATIBILITY IDEOGRAPH-FA61 → CJK UNIFIED IDEOGRAPH-8996 # +FAB8 ; 8996 ; MA # ( 視 → 視 ) CJK COMPATIBILITY IDEOGRAPH-FAB8 → CJK UNIFIED IDEOGRAPH-8996 # + +F93C ; 797F ; MA # ( 祿 → 祿 ) CJK COMPATIBILITY IDEOGRAPH-F93C → CJK UNIFIED IDEOGRAPH-797F # + +2F954 ; 2569A ; MA # ( 𥚚 → 𥚚 ) CJK COMPATIBILITY IDEOGRAPH-2F954 → CJK UNIFIED IDEOGRAPH-2569A # + +FA52 ; 798D ; MA # ( 禍 → 禍 ) CJK COMPATIBILITY IDEOGRAPH-FA52 → CJK UNIFIED IDEOGRAPH-798D # + +FA53 ; 798E ; MA # ( 禎 → 禎 ) CJK COMPATIBILITY IDEOGRAPH-FA53 → CJK UNIFIED IDEOGRAPH-798E # + +FA1B ; 798F ; MA # ( 福 → 福 ) CJK COMPATIBILITY IDEOGRAPH-FA1B → CJK UNIFIED IDEOGRAPH-798F # +2F956 ; 798F ; MA # ( 福 → 福 ) CJK COMPATIBILITY IDEOGRAPH-2F956 → CJK UNIFIED IDEOGRAPH-798F # + +2F955 ; 256C5 ; MA # ( 𥛅 → 𥛅 ) CJK COMPATIBILITY IDEOGRAPH-2F955 → CJK UNIFIED IDEOGRAPH-256C5 # + +F9B6 ; 79AE ; MA # ( 禮 → 禮 ) CJK COMPATIBILITY IDEOGRAPH-F9B6 → CJK UNIFIED IDEOGRAPH-79AE # + +2F71 ; 79B8 ; MA #* ( ⽱ → 禸 ) KANGXI RADICAL TRACK → CJK UNIFIED IDEOGRAPH-79B8 # + +2F72 ; 79BE ; MA #* ( ⽲ → 禾 ) KANGXI RADICAL GRAIN → CJK UNIFIED IDEOGRAPH-79BE # + +F995 ; 79CA ; MA # ( 秊 → 秊 ) CJK COMPATIBILITY IDEOGRAPH-F995 → CJK UNIFIED IDEOGRAPH-79CA # + +2F958 ; 412F ; MA # ( 䄯 → 䄯 ) CJK COMPATIBILITY IDEOGRAPH-2F958 → CJK UNIFIED IDEOGRAPH-412F # + +2F957 ; 79EB ; MA # ( 秫 → 秫 ) CJK COMPATIBILITY IDEOGRAPH-2F957 → CJK UNIFIED IDEOGRAPH-79EB # + +F956 ; 7A1C ; MA # ( 稜 → 稜 ) CJK COMPATIBILITY IDEOGRAPH-F956 → CJK UNIFIED IDEOGRAPH-7A1C # + +2F95A ; 7A4A ; MA # ( 穊 → 穊 ) CJK COMPATIBILITY IDEOGRAPH-2F95A → CJK UNIFIED IDEOGRAPH-7A4A # + +FA54 ; 7A40 ; MA # ( 穀 → 穀 ) CJK COMPATIBILITY IDEOGRAPH-FA54 → CJK UNIFIED IDEOGRAPH-7A40 # +2F959 ; 7A40 ; MA # ( 穀 → 穀 ) CJK COMPATIBILITY IDEOGRAPH-2F959 → CJK UNIFIED IDEOGRAPH-7A40 # + +2F95B ; 7A4F ; MA # ( 穏 → 穏 ) CJK COMPATIBILITY IDEOGRAPH-2F95B → CJK UNIFIED IDEOGRAPH-7A4F # + +2F73 ; 7A74 ; MA #* ( ⽳ → 穴 ) KANGXI RADICAL CAVE → CJK UNIFIED IDEOGRAPH-7A74 # + +FA55 ; 7A81 ; MA # ( 突 → 突 ) CJK COMPATIBILITY IDEOGRAPH-FA55 → CJK UNIFIED IDEOGRAPH-7A81 # + +2F95C ; 2597C ; MA # ( 𥥼 → 𥥼 ) CJK COMPATIBILITY IDEOGRAPH-2F95C → CJK UNIFIED IDEOGRAPH-2597C # + +FAAC ; 7AB1 ; MA # ( 窱 → 窱 ) CJK COMPATIBILITY IDEOGRAPH-FAAC → CJK UNIFIED IDEOGRAPH-7AB1 # + +F9F7 ; 7ACB ; MA # ( 立 → 立 ) CJK COMPATIBILITY IDEOGRAPH-F9F7 → CJK UNIFIED IDEOGRAPH-7ACB # +2F74 ; 7ACB ; MA #* ( ⽴ → 立 ) KANGXI RADICAL STAND → CJK UNIFIED IDEOGRAPH-7ACB # + +2EEF ; 7ADC ; MA #* ( ⻯ → 竜 ) CJK RADICAL J-SIMPLIFIED DRAGON → CJK UNIFIED IDEOGRAPH-7ADC # + +2F95D ; 25AA7 ; MA # ( 𥪧 → 𥪧 ) CJK COMPATIBILITY IDEOGRAPH-2F95D → CJK UNIFIED IDEOGRAPH-25AA7 # +2F95E ; 25AA7 ; MA # ( 𥪧 → 𥪧 ) CJK COMPATIBILITY IDEOGRAPH-2F95E → CJK UNIFIED IDEOGRAPH-25AA7 # + +2F95F ; 7AEE ; MA # ( 竮 → 竮 ) CJK COMPATIBILITY IDEOGRAPH-2F95F → CJK UNIFIED IDEOGRAPH-7AEE # + +2F75 ; 7AF9 ; MA #* ( ⽵ → 竹 ) KANGXI RADICAL BAMBOO → CJK UNIFIED IDEOGRAPH-7AF9 # + +F9F8 ; 7B20 ; MA # ( 笠 → 笠 ) CJK COMPATIBILITY IDEOGRAPH-F9F8 → CJK UNIFIED IDEOGRAPH-7B20 # + +FA56 ; 7BC0 ; MA # ( 節 → 節 ) CJK COMPATIBILITY IDEOGRAPH-FA56 → CJK UNIFIED IDEOGRAPH-7BC0 # +FAAD ; 7BC0 ; MA # ( 節 → 節 ) CJK COMPATIBILITY IDEOGRAPH-FAAD → CJK UNIFIED IDEOGRAPH-7BC0 # + +2F960 ; 4202 ; MA # ( 䈂 → 䈂 ) CJK COMPATIBILITY IDEOGRAPH-2F960 → CJK UNIFIED IDEOGRAPH-4202 # + +2F961 ; 25BAB ; MA # ( 𥮫 → 𥮫 ) CJK COMPATIBILITY IDEOGRAPH-2F961 → CJK UNIFIED IDEOGRAPH-25BAB # + +2F962 ; 7BC6 ; MA # ( 篆 → 篆 ) CJK COMPATIBILITY IDEOGRAPH-2F962 → CJK UNIFIED IDEOGRAPH-7BC6 # + +2F964 ; 4227 ; MA # ( 䈧 → 䈧 ) CJK COMPATIBILITY IDEOGRAPH-2F964 → CJK UNIFIED IDEOGRAPH-4227 # + +2F963 ; 7BC9 ; MA # ( 築 → 築 ) CJK COMPATIBILITY IDEOGRAPH-2F963 → CJK UNIFIED IDEOGRAPH-7BC9 # + +2F965 ; 25C80 ; MA # ( 𥲀 → 𥲀 ) CJK COMPATIBILITY IDEOGRAPH-2F965 → CJK UNIFIED IDEOGRAPH-25C80 # + +FAD6 ; 25CD0 ; MA # ( 𥳐 → 𥳐 ) CJK COMPATIBILITY IDEOGRAPH-FAD6 → CJK UNIFIED IDEOGRAPH-25CD0 # + +F9A6 ; 7C3E ; MA # ( 簾 → 簾 ) CJK COMPATIBILITY IDEOGRAPH-F9A6 → CJK UNIFIED IDEOGRAPH-7C3E # + +F944 ; 7C60 ; MA # ( 籠 → 籠 ) CJK COMPATIBILITY IDEOGRAPH-F944 → CJK UNIFIED IDEOGRAPH-7C60 # + +2F76 ; 7C73 ; MA #* ( ⽶ → 米 ) KANGXI RADICAL RICE → CJK UNIFIED IDEOGRAPH-7C73 # + +FAAE ; 7C7B ; MA # ( 类 → 类 ) CJK COMPATIBILITY IDEOGRAPH-FAAE → CJK UNIFIED IDEOGRAPH-7C7B # + +F9F9 ; 7C92 ; MA # ( 粒 → 粒 ) CJK COMPATIBILITY IDEOGRAPH-F9F9 → CJK UNIFIED IDEOGRAPH-7C92 # + +FA1D ; 7CBE ; MA # ( 精 → 精 ) CJK COMPATIBILITY IDEOGRAPH-FA1D → CJK UNIFIED IDEOGRAPH-7CBE # + +2F966 ; 7CD2 ; MA # ( 糒 → 糒 ) CJK COMPATIBILITY IDEOGRAPH-2F966 → CJK UNIFIED IDEOGRAPH-7CD2 # + +FA03 ; 7CD6 ; MA # ( 糖 → 糖 ) CJK COMPATIBILITY IDEOGRAPH-FA03 → CJK UNIFIED IDEOGRAPH-7CD6 # + +2F968 ; 7CE8 ; MA # ( 糨 → 糨 ) CJK COMPATIBILITY IDEOGRAPH-2F968 → CJK UNIFIED IDEOGRAPH-7CE8 # + +2F967 ; 42A0 ; MA # ( 䊠 → 䊠 ) CJK COMPATIBILITY IDEOGRAPH-2F967 → CJK UNIFIED IDEOGRAPH-42A0 # + +2F969 ; 7CE3 ; MA # ( 糣 → 糣 ) CJK COMPATIBILITY IDEOGRAPH-2F969 → CJK UNIFIED IDEOGRAPH-7CE3 # + +F97B ; 7CE7 ; MA # ( 糧 → 糧 ) CJK COMPATIBILITY IDEOGRAPH-F97B → CJK UNIFIED IDEOGRAPH-7CE7 # + +2F77 ; 7CF8 ; MA #* ( ⽷ → 糸 ) KANGXI RADICAL SILK → CJK UNIFIED IDEOGRAPH-7CF8 # + +2EAF ; 7CF9 ; MA #* ( ⺯ → 糹 ) CJK RADICAL SILK → CJK UNIFIED IDEOGRAPH-7CF9 # + +2F96B ; 25F86 ; MA # ( 𥾆 → 𥾆 ) CJK COMPATIBILITY IDEOGRAPH-2F96B → CJK UNIFIED IDEOGRAPH-25F86 # + +2F96A ; 7D00 ; MA # ( 紀 → 紀 ) CJK COMPATIBILITY IDEOGRAPH-2F96A → CJK UNIFIED IDEOGRAPH-7D00 # + +F9CF ; 7D10 ; MA # ( 紐 → 紐 ) CJK COMPATIBILITY IDEOGRAPH-F9CF → CJK UNIFIED IDEOGRAPH-7D10 # + +F96A ; 7D22 ; MA # ( 索 → 索 ) CJK COMPATIBILITY IDEOGRAPH-F96A → CJK UNIFIED IDEOGRAPH-7D22 # + +F94F ; 7D2F ; MA # ( 累 → 累 ) CJK COMPATIBILITY IDEOGRAPH-F94F → CJK UNIFIED IDEOGRAPH-7D2F # + +7D76 ; 7D55 ; MA # ( 絶 → 絕 ) CJK UNIFIED IDEOGRAPH-7D76 → CJK UNIFIED IDEOGRAPH-7D55 # + +2F96C ; 7D63 ; MA # ( 絣 → 絣 ) CJK COMPATIBILITY IDEOGRAPH-2F96C → CJK UNIFIED IDEOGRAPH-7D63 # + +FAAF ; 7D5B ; MA # ( 絛 → 絛 ) CJK COMPATIBILITY IDEOGRAPH-FAAF → CJK UNIFIED IDEOGRAPH-7D5B # + +F93D ; 7DA0 ; MA # ( 綠 → 綠 ) CJK COMPATIBILITY IDEOGRAPH-F93D → CJK UNIFIED IDEOGRAPH-7DA0 # + +F957 ; 7DBE ; MA # ( 綾 → 綾 ) CJK COMPATIBILITY IDEOGRAPH-F957 → CJK UNIFIED IDEOGRAPH-7DBE # + +2F96E ; 7DC7 ; MA # ( 緇 → 緇 ) CJK COMPATIBILITY IDEOGRAPH-2F96E → CJK UNIFIED IDEOGRAPH-7DC7 # + +F996 ; 7DF4 ; MA # ( 練 → 練 ) CJK COMPATIBILITY IDEOGRAPH-F996 → CJK UNIFIED IDEOGRAPH-7DF4 # +FA57 ; 7DF4 ; MA # ( 練 → 練 ) CJK COMPATIBILITY IDEOGRAPH-FA57 → CJK UNIFIED IDEOGRAPH-7DF4 # +FAB0 ; 7DF4 ; MA # ( 練 → 練 ) CJK COMPATIBILITY IDEOGRAPH-FAB0 → CJK UNIFIED IDEOGRAPH-7DF4 # + +2F96F ; 7E02 ; MA # ( 縂 → 縂 ) CJK COMPATIBILITY IDEOGRAPH-2F96F → CJK UNIFIED IDEOGRAPH-7E02 # + +2F96D ; 4301 ; MA # ( 䌁 → 䌁 ) CJK COMPATIBILITY IDEOGRAPH-2F96D → CJK UNIFIED IDEOGRAPH-4301 # + +FA58 ; 7E09 ; MA # ( 縉 → 縉 ) CJK COMPATIBILITY IDEOGRAPH-FA58 → CJK UNIFIED IDEOGRAPH-7E09 # + +F950 ; 7E37 ; MA # ( 縷 → 縷 ) CJK COMPATIBILITY IDEOGRAPH-F950 → CJK UNIFIED IDEOGRAPH-7E37 # + +FA59 ; 7E41 ; MA # ( 繁 → 繁 ) CJK COMPATIBILITY IDEOGRAPH-FA59 → CJK UNIFIED IDEOGRAPH-7E41 # + +2F970 ; 7E45 ; MA # ( 繅 → 繅 ) CJK COMPATIBILITY IDEOGRAPH-2F970 → CJK UNIFIED IDEOGRAPH-7E45 # + +2F898 ; 261DA ; MA # ( 𦇚 → 𦇚 ) CJK COMPATIBILITY IDEOGRAPH-2F898 → CJK UNIFIED IDEOGRAPH-261DA # + +2F971 ; 4334 ; MA # ( 䌴 → 䌴 ) CJK COMPATIBILITY IDEOGRAPH-2F971 → CJK UNIFIED IDEOGRAPH-4334 # + +2F78 ; 7F36 ; MA #* ( ⽸ → 缶 ) KANGXI RADICAL JAR → CJK UNIFIED IDEOGRAPH-7F36 # + +2F972 ; 26228 ; MA # ( 𦈨 → 𦈨 ) CJK COMPATIBILITY IDEOGRAPH-2F972 → CJK UNIFIED IDEOGRAPH-26228 # + +FAB1 ; 7F3E ; MA # ( 缾 → 缾 ) CJK COMPATIBILITY IDEOGRAPH-FAB1 → CJK UNIFIED IDEOGRAPH-7F3E # + +2F973 ; 26247 ; MA # ( 𦉇 → 𦉇 ) CJK COMPATIBILITY IDEOGRAPH-2F973 → CJK UNIFIED IDEOGRAPH-26247 # + +2F79 ; 7F51 ; MA #* ( ⽹ → 网 ) KANGXI RADICAL NET → CJK UNIFIED IDEOGRAPH-7F51 # + +2EAB ; 7F52 ; MA #* ( ⺫ → 罒 ) CJK RADICAL EYE → CJK UNIFIED IDEOGRAPH-7F52 # +2EB2 ; 7F52 ; MA #* ( ⺲ → 罒 ) CJK RADICAL NET TWO → CJK UNIFIED IDEOGRAPH-7F52 # + +2EB1 ; 7F53 ; MA #* ( ⺱ → 罓 ) CJK RADICAL NET ONE → CJK UNIFIED IDEOGRAPH-7F53 # + +2F974 ; 4359 ; MA # ( 䍙 → 䍙 ) CJK COMPATIBILITY IDEOGRAPH-2F974 → CJK UNIFIED IDEOGRAPH-4359 # + +FA5A ; 7F72 ; MA # ( 署 → 署 ) CJK COMPATIBILITY IDEOGRAPH-FA5A → CJK UNIFIED IDEOGRAPH-7F72 # + +2F975 ; 262D9 ; MA # ( 𦋙 → 𦋙 ) CJK COMPATIBILITY IDEOGRAPH-2F975 → CJK UNIFIED IDEOGRAPH-262D9 # + +F9E6 ; 7F79 ; MA # ( 罹 → 罹 ) CJK COMPATIBILITY IDEOGRAPH-F9E6 → CJK UNIFIED IDEOGRAPH-7F79 # + +2F976 ; 7F7A ; MA # ( 罺 → 罺 ) CJK COMPATIBILITY IDEOGRAPH-2F976 → CJK UNIFIED IDEOGRAPH-7F7A # + +F90F ; 7F85 ; MA # ( 羅 → 羅 ) CJK COMPATIBILITY IDEOGRAPH-F90F → CJK UNIFIED IDEOGRAPH-7F85 # + +2F977 ; 2633E ; MA # ( 𦌾 → 𦌾 ) CJK COMPATIBILITY IDEOGRAPH-2F977 → CJK UNIFIED IDEOGRAPH-2633E # + +2F7A ; 7F8A ; MA #* ( ⽺ → 羊 ) KANGXI RADICAL SHEEP → CJK UNIFIED IDEOGRAPH-7F8A # + +2F978 ; 7F95 ; MA # ( 羕 → 羕 ) CJK COMPATIBILITY IDEOGRAPH-2F978 → CJK UNIFIED IDEOGRAPH-7F95 # + +F9AF ; 7F9A ; MA # ( 羚 → 羚 ) CJK COMPATIBILITY IDEOGRAPH-F9AF → CJK UNIFIED IDEOGRAPH-7F9A # + +FA1E ; 7FBD ; MA # ( 羽 → 羽 ) CJK COMPATIBILITY IDEOGRAPH-FA1E → CJK UNIFIED IDEOGRAPH-7FBD # +2F7B ; 7FBD ; MA #* ( ⽻ → 羽 ) KANGXI RADICAL FEATHER → CJK UNIFIED IDEOGRAPH-7FBD # + +2F979 ; 7FFA ; MA # ( 翺 → 翺 ) CJK COMPATIBILITY IDEOGRAPH-2F979 → CJK UNIFIED IDEOGRAPH-7FFA # + +F934 ; 8001 ; MA # ( 老 → 老 ) CJK COMPATIBILITY IDEOGRAPH-F934 → CJK UNIFIED IDEOGRAPH-8001 # +2F7C ; 8001 ; MA #* ( ⽼ → 老 ) KANGXI RADICAL OLD → CJK UNIFIED IDEOGRAPH-8001 # + +2EB9 ; 8002 ; MA #* ( ⺹ → 耂 ) CJK RADICAL OLD → CJK UNIFIED IDEOGRAPH-8002 # + +FA5B ; 8005 ; MA # ( 者 → 者 ) CJK COMPATIBILITY IDEOGRAPH-FA5B → CJK UNIFIED IDEOGRAPH-8005 # +FAB2 ; 8005 ; MA # ( 者 → 者 ) CJK COMPATIBILITY IDEOGRAPH-FAB2 → CJK UNIFIED IDEOGRAPH-8005 # +2F97A ; 8005 ; MA # ( 者 → 者 ) CJK COMPATIBILITY IDEOGRAPH-2F97A → CJK UNIFIED IDEOGRAPH-8005 # + +2F7D ; 800C ; MA #* ( ⽽ → 而 ) KANGXI RADICAL AND → CJK UNIFIED IDEOGRAPH-800C # + +2F97B ; 264DA ; MA # ( 𦓚 → 𦓚 ) CJK COMPATIBILITY IDEOGRAPH-2F97B → CJK UNIFIED IDEOGRAPH-264DA # + +2F7E ; 8012 ; MA #* ( ⽾ → 耒 ) KANGXI RADICAL PLOW → CJK UNIFIED IDEOGRAPH-8012 # + +2F97C ; 26523 ; MA # ( 𦔣 → 𦔣 ) CJK COMPATIBILITY IDEOGRAPH-2F97C → CJK UNIFIED IDEOGRAPH-26523 # + +2F7F ; 8033 ; MA #* ( ⽿ → 耳 ) KANGXI RADICAL EAR → CJK UNIFIED IDEOGRAPH-8033 # + +F9B0 ; 8046 ; MA # ( 聆 → 聆 ) CJK COMPATIBILITY IDEOGRAPH-F9B0 → CJK UNIFIED IDEOGRAPH-8046 # + +2F97D ; 8060 ; MA # ( 聠 → 聠 ) CJK COMPATIBILITY IDEOGRAPH-2F97D → CJK UNIFIED IDEOGRAPH-8060 # + +2F97E ; 265A8 ; MA # ( 𦖨 → 𦖨 ) CJK COMPATIBILITY IDEOGRAPH-2F97E → CJK UNIFIED IDEOGRAPH-265A8 # + +F997 ; 806F ; MA # ( 聯 → 聯 ) CJK COMPATIBILITY IDEOGRAPH-F997 → CJK UNIFIED IDEOGRAPH-806F # + +2F97F ; 8070 ; MA # ( 聰 → 聰 ) CJK COMPATIBILITY IDEOGRAPH-2F97F → CJK UNIFIED IDEOGRAPH-8070 # + +F945 ; 807E ; MA # ( 聾 → 聾 ) CJK COMPATIBILITY IDEOGRAPH-F945 → CJK UNIFIED IDEOGRAPH-807E # + +2F80 ; 807F ; MA #* ( ⾀ → 聿 ) KANGXI RADICAL BRUSH → CJK UNIFIED IDEOGRAPH-807F # + +2EBA ; 8080 ; MA #* ( ⺺ → 肀 ) CJK RADICAL BRUSH ONE → CJK UNIFIED IDEOGRAPH-8080 # + +2F81 ; 8089 ; MA #* ( ⾁ → 肉 ) KANGXI RADICAL MEAT → CJK UNIFIED IDEOGRAPH-8089 # + +F953 ; 808B ; MA # ( 肋 → 肋 ) CJK COMPATIBILITY IDEOGRAPH-F953 → CJK UNIFIED IDEOGRAPH-808B # + +2F8D6 ; 80AD ; MA # ( 肭 → 肭 ) CJK COMPATIBILITY IDEOGRAPH-2F8D6 → CJK UNIFIED IDEOGRAPH-80AD # + +2F982 ; 80B2 ; MA # ( 育 → 育 ) CJK COMPATIBILITY IDEOGRAPH-2F982 → CJK UNIFIED IDEOGRAPH-80B2 # + +2F981 ; 43D5 ; MA # ( 䏕 → 䏕 ) CJK COMPATIBILITY IDEOGRAPH-2F981 → CJK UNIFIED IDEOGRAPH-43D5 # + +2F8D7 ; 43D9 ; MA # ( 䏙 → 䏙 ) CJK COMPATIBILITY IDEOGRAPH-2F8D7 → CJK UNIFIED IDEOGRAPH-43D9 # + +8141 ; 80FC ; MA # ( 腁 → 胼 ) CJK UNIFIED IDEOGRAPH-8141 → CJK UNIFIED IDEOGRAPH-80FC # + +2F983 ; 8103 ; MA # ( 脃 → 脃 ) CJK COMPATIBILITY IDEOGRAPH-2F983 → CJK UNIFIED IDEOGRAPH-8103 # + +2F985 ; 813E ; MA # ( 脾 → 脾 ) CJK COMPATIBILITY IDEOGRAPH-2F985 → CJK UNIFIED IDEOGRAPH-813E # + +2F984 ; 440B ; MA # ( 䐋 → 䐋 ) CJK COMPATIBILITY IDEOGRAPH-2F984 → CJK UNIFIED IDEOGRAPH-440B # + +2F8DA ; 6721 ; MA # ( 朡 → 朡 ) CJK COMPATIBILITY IDEOGRAPH-2F8DA → CJK UNIFIED IDEOGRAPH-6721 # + +2F987 ; 267A7 ; MA # ( 𦞧 → 𦞧 ) CJK COMPATIBILITY IDEOGRAPH-2F987 → CJK UNIFIED IDEOGRAPH-267A7 # + +2F988 ; 267B5 ; MA # ( 𦞵 → 𦞵 ) CJK COMPATIBILITY IDEOGRAPH-2F988 → CJK UNIFIED IDEOGRAPH-267B5 # + +6726 ; 4443 ; MA # ( 朦 → 䑃 ) CJK UNIFIED IDEOGRAPH-6726 → CJK UNIFIED IDEOGRAPH-4443 # + +F926 ; 81D8 ; MA # ( 臘 → 臘 ) CJK COMPATIBILITY IDEOGRAPH-F926 → CJK UNIFIED IDEOGRAPH-81D8 # + +2F82 ; 81E3 ; MA #* ( ⾂ → 臣 ) KANGXI RADICAL MINISTER → CJK UNIFIED IDEOGRAPH-81E3 # + +F9F6 ; 81E8 ; MA # ( 臨 → 臨 ) CJK COMPATIBILITY IDEOGRAPH-F9F6 → CJK UNIFIED IDEOGRAPH-81E8 # + +2F83 ; 81EA ; MA #* ( ⾃ → 自 ) KANGXI RADICAL SELF → CJK UNIFIED IDEOGRAPH-81EA # + +FA5C ; 81ED ; MA # ( 臭 → 臭 ) CJK COMPATIBILITY IDEOGRAPH-FA5C → CJK UNIFIED IDEOGRAPH-81ED # + +2F84 ; 81F3 ; MA #* ( ⾄ → 至 ) KANGXI RADICAL ARRIVE → CJK UNIFIED IDEOGRAPH-81F3 # + +2F85 ; 81FC ; MA #* ( ⾅ → 臼 ) KANGXI RADICAL MORTAR → CJK UNIFIED IDEOGRAPH-81FC # + +2F893 ; 8201 ; MA # ( 舁 → 舁 ) CJK COMPATIBILITY IDEOGRAPH-2F893 → CJK UNIFIED IDEOGRAPH-8201 # +2F98B ; 8201 ; MA # ( 舁 → 舁 ) CJK COMPATIBILITY IDEOGRAPH-2F98B → CJK UNIFIED IDEOGRAPH-8201 # + +2F98C ; 8204 ; MA # ( 舄 → 舄 ) CJK COMPATIBILITY IDEOGRAPH-2F98C → CJK UNIFIED IDEOGRAPH-8204 # + +2F86 ; 820C ; MA #* ( ⾆ → 舌 ) KANGXI RADICAL TONGUE → CJK UNIFIED IDEOGRAPH-820C # + +FA6D ; 8218 ; MA # ( 舘 → 舘 ) CJK COMPATIBILITY IDEOGRAPH-FA6D → CJK UNIFIED IDEOGRAPH-8218 # + +2F87 ; 821B ; MA #* ( ⾇ → 舛 ) KANGXI RADICAL OPPOSE → CJK UNIFIED IDEOGRAPH-821B # + +2F88 ; 821F ; MA #* ( ⾈ → 舟 ) KANGXI RADICAL BOAT → CJK UNIFIED IDEOGRAPH-821F # + +2F98E ; 446B ; MA # ( 䑫 → 䑫 ) CJK COMPATIBILITY IDEOGRAPH-2F98E → CJK UNIFIED IDEOGRAPH-446B # + +2F89 ; 826E ; MA #* ( ⾉ → 艮 ) KANGXI RADICAL STOPPING → CJK UNIFIED IDEOGRAPH-826E # + +F97C ; 826F ; MA # ( 良 → 良 ) CJK COMPATIBILITY IDEOGRAPH-F97C → CJK UNIFIED IDEOGRAPH-826F # + +2F8A ; 8272 ; MA #* ( ⾊ → 色 ) KANGXI RADICAL COLOR → CJK UNIFIED IDEOGRAPH-8272 # + +2F8B ; 8278 ; MA #* ( ⾋ → 艸 ) KANGXI RADICAL GRASS → CJK UNIFIED IDEOGRAPH-8278 # + +FA5D ; 8279 ; MA # ( 艹 → 艹 ) CJK COMPATIBILITY IDEOGRAPH-FA5D → CJK UNIFIED IDEOGRAPH-8279 # +FA5E ; 8279 ; MA # ( 艹 → 艹 ) CJK COMPATIBILITY IDEOGRAPH-FA5E → CJK UNIFIED IDEOGRAPH-8279 # +2EBE ; 8279 ; MA #* ( ⺾ → 艹 ) CJK RADICAL GRASS ONE → CJK UNIFIED IDEOGRAPH-8279 # +2EBF ; 8279 ; MA #* ( ⺿ → 艹 ) CJK RADICAL GRASS TWO → CJK UNIFIED IDEOGRAPH-8279 # →艹→ +2EC0 ; 8279 ; MA #* ( ⻀ → 艹 ) CJK RADICAL GRASS THREE → CJK UNIFIED IDEOGRAPH-8279 # →艹→ + +2F990 ; 828B ; MA # ( 芋 → 芋 ) CJK COMPATIBILITY IDEOGRAPH-2F990 → CJK UNIFIED IDEOGRAPH-828B # + +2F98F ; 8291 ; MA # ( 芑 → 芑 ) CJK COMPATIBILITY IDEOGRAPH-2F98F → CJK UNIFIED IDEOGRAPH-8291 # + +2F991 ; 829D ; MA # ( 芝 → 芝 ) CJK COMPATIBILITY IDEOGRAPH-2F991 → CJK UNIFIED IDEOGRAPH-829D # + +2F993 ; 82B1 ; MA # ( 花 → 花 ) CJK COMPATIBILITY IDEOGRAPH-2F993 → CJK UNIFIED IDEOGRAPH-82B1 # + +2F994 ; 82B3 ; MA # ( 芳 → 芳 ) CJK COMPATIBILITY IDEOGRAPH-2F994 → CJK UNIFIED IDEOGRAPH-82B3 # + +2F995 ; 82BD ; MA # ( 芽 → 芽 ) CJK COMPATIBILITY IDEOGRAPH-2F995 → CJK UNIFIED IDEOGRAPH-82BD # + +F974 ; 82E5 ; MA # ( 若 → 若 ) CJK COMPATIBILITY IDEOGRAPH-F974 → CJK UNIFIED IDEOGRAPH-82E5 # +2F998 ; 82E5 ; MA # ( 若 → 若 ) CJK COMPATIBILITY IDEOGRAPH-2F998 → CJK UNIFIED IDEOGRAPH-82E5 # + +2F996 ; 82E6 ; MA # ( 苦 → 苦 ) CJK COMPATIBILITY IDEOGRAPH-2F996 → CJK UNIFIED IDEOGRAPH-82E6 # + +2F997 ; 26B3C ; MA # ( 𦬼 → 𦬼 ) CJK COMPATIBILITY IDEOGRAPH-2F997 → CJK UNIFIED IDEOGRAPH-26B3C # + +F9FE ; 8336 ; MA # ( 茶 → 茶 ) CJK COMPATIBILITY IDEOGRAPH-F9FE → CJK UNIFIED IDEOGRAPH-8336 # + +FAB3 ; 8352 ; MA # ( 荒 → 荒 ) CJK COMPATIBILITY IDEOGRAPH-FAB3 → CJK UNIFIED IDEOGRAPH-8352 # + +2F99A ; 8363 ; MA # ( 荣 → 荣 ) CJK COMPATIBILITY IDEOGRAPH-2F99A → CJK UNIFIED IDEOGRAPH-8363 # + +2F999 ; 831D ; MA # ( 茝 → 茝 ) CJK COMPATIBILITY IDEOGRAPH-2F999 → CJK UNIFIED IDEOGRAPH-831D # + +2F99C ; 8323 ; MA # ( 茣 → 茣 ) CJK COMPATIBILITY IDEOGRAPH-2F99C → CJK UNIFIED IDEOGRAPH-8323 # + +2F99D ; 83BD ; MA # ( 莽 → 莽 ) CJK COMPATIBILITY IDEOGRAPH-2F99D → CJK UNIFIED IDEOGRAPH-83BD # + +2F9A0 ; 8353 ; MA # ( 荓 → 荓 ) CJK COMPATIBILITY IDEOGRAPH-2F9A0 → CJK UNIFIED IDEOGRAPH-8353 # + +F93E ; 83C9 ; MA # ( 菉 → 菉 ) CJK COMPATIBILITY IDEOGRAPH-F93E → CJK UNIFIED IDEOGRAPH-83C9 # + +2F9A1 ; 83CA ; MA # ( 菊 → 菊 ) CJK COMPATIBILITY IDEOGRAPH-2F9A1 → CJK UNIFIED IDEOGRAPH-83CA # + +2F9A2 ; 83CC ; MA # ( 菌 → 菌 ) CJK COMPATIBILITY IDEOGRAPH-2F9A2 → CJK UNIFIED IDEOGRAPH-83CC # + +2F9A3 ; 83DC ; MA # ( 菜 → 菜 ) CJK COMPATIBILITY IDEOGRAPH-2F9A3 → CJK UNIFIED IDEOGRAPH-83DC # + +2F99E ; 83E7 ; MA # ( 菧 → 菧 ) CJK COMPATIBILITY IDEOGRAPH-2F99E → CJK UNIFIED IDEOGRAPH-83E7 # + +FAB4 ; 83EF ; MA # ( 華 → 華 ) CJK COMPATIBILITY IDEOGRAPH-FAB4 → CJK UNIFIED IDEOGRAPH-83EF # + +F958 ; 83F1 ; MA # ( 菱 → 菱 ) CJK COMPATIBILITY IDEOGRAPH-F958 → CJK UNIFIED IDEOGRAPH-83F1 # + +FA5F ; 8457 ; MA # ( 著 → 著 ) CJK COMPATIBILITY IDEOGRAPH-FA5F → CJK UNIFIED IDEOGRAPH-8457 # +2F99F ; 8457 ; MA # ( 著 → 著 ) CJK COMPATIBILITY IDEOGRAPH-2F99F → CJK UNIFIED IDEOGRAPH-8457 # + +2F9A4 ; 26C36 ; MA # ( 𦰶 → 𦰶 ) CJK COMPATIBILITY IDEOGRAPH-2F9A4 → CJK UNIFIED IDEOGRAPH-26C36 # + +2F99B ; 83AD ; MA # ( 莭 → 莭 ) CJK COMPATIBILITY IDEOGRAPH-2F99B → CJK UNIFIED IDEOGRAPH-83AD # + +F918 ; 843D ; MA # ( 落 → 落 ) CJK COMPATIBILITY IDEOGRAPH-F918 → CJK UNIFIED IDEOGRAPH-843D # + +F96E ; 8449 ; MA # ( 葉 → 葉 ) CJK COMPATIBILITY IDEOGRAPH-F96E → CJK UNIFIED IDEOGRAPH-8449 # + +853F ; 848D ; MA # ( 蔿 → 蒍 ) CJK UNIFIED IDEOGRAPH-853F → CJK UNIFIED IDEOGRAPH-848D # + +2F9A6 ; 26CD5 ; MA # ( 𦳕 → 𦳕 ) CJK COMPATIBILITY IDEOGRAPH-2F9A6 → CJK UNIFIED IDEOGRAPH-26CD5 # + +2F9A5 ; 26D6B ; MA # ( 𦵫 → 𦵫 ) CJK COMPATIBILITY IDEOGRAPH-2F9A5 → CJK UNIFIED IDEOGRAPH-26D6B # + +F999 ; 84EE ; MA # ( 蓮 → 蓮 ) CJK COMPATIBILITY IDEOGRAPH-F999 → CJK UNIFIED IDEOGRAPH-84EE # + +2F9A8 ; 84F1 ; MA # ( 蓱 → 蓱 ) CJK COMPATIBILITY IDEOGRAPH-2F9A8 → CJK UNIFIED IDEOGRAPH-84F1 # + +2F9A9 ; 84F3 ; MA # ( 蓳 → 蓳 ) CJK COMPATIBILITY IDEOGRAPH-2F9A9 → CJK UNIFIED IDEOGRAPH-84F3 # + +F9C2 ; 84FC ; MA # ( 蓼 → 蓼 ) CJK COMPATIBILITY IDEOGRAPH-F9C2 → CJK UNIFIED IDEOGRAPH-84FC # + +2F9AA ; 8516 ; MA # ( 蔖 → 蔖 ) CJK COMPATIBILITY IDEOGRAPH-2F9AA → CJK UNIFIED IDEOGRAPH-8516 # + +2F9A7 ; 452B ; MA # ( 䔫 → 䔫 ) CJK COMPATIBILITY IDEOGRAPH-2F9A7 → CJK UNIFIED IDEOGRAPH-452B # + +2F9AC ; 8564 ; MA # ( 蕤 → 蕤 ) CJK COMPATIBILITY IDEOGRAPH-2F9AC → CJK UNIFIED IDEOGRAPH-8564 # + +2F9AD ; 26F2C ; MA # ( 𦼬 → 𦼬 ) CJK COMPATIBILITY IDEOGRAPH-2F9AD → CJK UNIFIED IDEOGRAPH-26F2C # + +F923 ; 85CD ; MA # ( 藍 → 藍 ) CJK COMPATIBILITY IDEOGRAPH-F923 → CJK UNIFIED IDEOGRAPH-85CD # + +2F9AE ; 455D ; MA # ( 䕝 → 䕝 ) CJK COMPATIBILITY IDEOGRAPH-2F9AE → CJK UNIFIED IDEOGRAPH-455D # + +2F9B0 ; 26FB1 ; MA # ( 𦾱 → 𦾱 ) CJK COMPATIBILITY IDEOGRAPH-2F9B0 → CJK UNIFIED IDEOGRAPH-26FB1 # + +2F9AF ; 4561 ; MA # ( 䕡 → 䕡 ) CJK COMPATIBILITY IDEOGRAPH-2F9AF → CJK UNIFIED IDEOGRAPH-4561 # + +F9F0 ; 85FA ; MA # ( 藺 → 藺 ) CJK COMPATIBILITY IDEOGRAPH-F9F0 → CJK UNIFIED IDEOGRAPH-85FA # + +F935 ; 8606 ; MA # ( 蘆 → 蘆 ) CJK COMPATIBILITY IDEOGRAPH-F935 → CJK UNIFIED IDEOGRAPH-8606 # + +2F9B2 ; 456B ; MA # ( 䕫 → 䕫 ) CJK COMPATIBILITY IDEOGRAPH-2F9B2 → CJK UNIFIED IDEOGRAPH-456B # + +FA20 ; 8612 ; MA # ( 蘒 → 蘒 ) CJK COMPATIBILITY IDEOGRAPH-FA20 → CJK UNIFIED IDEOGRAPH-8612 # + +F91F ; 862D ; MA # ( 蘭 → 蘭 ) CJK COMPATIBILITY IDEOGRAPH-F91F → CJK UNIFIED IDEOGRAPH-862D # + +2F9B1 ; 270D2 ; MA # ( 𧃒 → 𧃒 ) CJK COMPATIBILITY IDEOGRAPH-2F9B1 → CJK UNIFIED IDEOGRAPH-270D2 # + +8641 ; 8637 ; MA # ( 虁 → 蘷 ) CJK UNIFIED IDEOGRAPH-8641 → CJK UNIFIED IDEOGRAPH-8637 # + +F910 ; 863F ; MA # ( 蘿 → 蘿 ) CJK COMPATIBILITY IDEOGRAPH-F910 → CJK UNIFIED IDEOGRAPH-863F # + +2F8C ; 864D ; MA #* ( ⾌ → 虍 ) KANGXI RADICAL TIGER → CJK UNIFIED IDEOGRAPH-864D # + +2EC1 ; 864E ; MA #* ( ⻁ → 虎 ) CJK RADICAL TIGER → CJK UNIFIED IDEOGRAPH-864E # + +2F9B3 ; 8650 ; MA # ( 虐 → 虐 ) CJK COMPATIBILITY IDEOGRAPH-2F9B3 → CJK UNIFIED IDEOGRAPH-8650 # + +F936 ; 865C ; MA # ( 虜 → 虜 ) CJK COMPATIBILITY IDEOGRAPH-F936 → CJK UNIFIED IDEOGRAPH-865C # +2F9B4 ; 865C ; MA # ( 虜 → 虜 ) CJK COMPATIBILITY IDEOGRAPH-2F9B4 → CJK UNIFIED IDEOGRAPH-865C # + +2F9B5 ; 8667 ; MA # ( 虧 → 虧 ) CJK COMPATIBILITY IDEOGRAPH-2F9B5 → CJK UNIFIED IDEOGRAPH-8667 # + +2F9B6 ; 8669 ; MA # ( 虩 → 虩 ) CJK COMPATIBILITY IDEOGRAPH-2F9B6 → CJK UNIFIED IDEOGRAPH-8669 # + +2F8D ; 866B ; MA #* ( ⾍ → 虫 ) KANGXI RADICAL INSECT → CJK UNIFIED IDEOGRAPH-866B # + +2F9B7 ; 86A9 ; MA # ( 蚩 → 蚩 ) CJK COMPATIBILITY IDEOGRAPH-2F9B7 → CJK UNIFIED IDEOGRAPH-86A9 # + +2F9B8 ; 8688 ; MA # ( 蚈 → 蚈 ) CJK COMPATIBILITY IDEOGRAPH-2F9B8 → CJK UNIFIED IDEOGRAPH-8688 # + +2F9BA ; 86E2 ; MA # ( 蛢 → 蛢 ) CJK COMPATIBILITY IDEOGRAPH-2F9BA → CJK UNIFIED IDEOGRAPH-86E2 # + +2F9B9 ; 870E ; MA # ( 蜎 → 蜎 ) CJK COMPATIBILITY IDEOGRAPH-2F9B9 → CJK UNIFIED IDEOGRAPH-870E # + +2F9BC ; 8728 ; MA # ( 蜨 → 蜨 ) CJK COMPATIBILITY IDEOGRAPH-2F9BC → CJK UNIFIED IDEOGRAPH-8728 # + +2F9BD ; 876B ; MA # ( 蝫 → 蝫 ) CJK COMPATIBILITY IDEOGRAPH-2F9BD → CJK UNIFIED IDEOGRAPH-876B # + +2F9C0 ; 87E1 ; MA # ( 蟡 → 蟡 ) CJK COMPATIBILITY IDEOGRAPH-2F9C0 → CJK UNIFIED IDEOGRAPH-87E1 # + +FAB5 ; 8779 ; MA # ( 蝹 → 蝹 ) CJK COMPATIBILITY IDEOGRAPH-FAB5 → CJK UNIFIED IDEOGRAPH-8779 # +2F9BB ; 8779 ; MA # ( 蝹 → 蝹 ) CJK COMPATIBILITY IDEOGRAPH-2F9BB → CJK UNIFIED IDEOGRAPH-8779 # + +2F9BE ; 8786 ; MA # ( 螆 → 螆 ) CJK COMPATIBILITY IDEOGRAPH-2F9BE → CJK UNIFIED IDEOGRAPH-8786 # + +2F9BF ; 45D7 ; MA # ( 䗗 → 䗗 ) CJK COMPATIBILITY IDEOGRAPH-2F9BF → CJK UNIFIED IDEOGRAPH-45D7 # + +2F9AB ; 273CA ; MA # ( 𧏊 → 𧏊 ) CJK COMPATIBILITY IDEOGRAPH-2F9AB → CJK UNIFIED IDEOGRAPH-273CA # + +F911 ; 87BA ; MA # ( 螺 → 螺 ) CJK COMPATIBILITY IDEOGRAPH-F911 → CJK UNIFIED IDEOGRAPH-87BA # + +2F9C1 ; 8801 ; MA # ( 蠁 → 蠁 ) CJK COMPATIBILITY IDEOGRAPH-2F9C1 → CJK UNIFIED IDEOGRAPH-8801 # + +2F9C2 ; 45F9 ; MA # ( 䗹 → 䗹 ) CJK COMPATIBILITY IDEOGRAPH-2F9C2 → CJK UNIFIED IDEOGRAPH-45F9 # + +F927 ; 881F ; MA # ( 蠟 → 蠟 ) CJK COMPATIBILITY IDEOGRAPH-F927 → CJK UNIFIED IDEOGRAPH-881F # + +2F8E ; 8840 ; MA #* ( ⾎ → 血 ) KANGXI RADICAL BLOOD → CJK UNIFIED IDEOGRAPH-8840 # + +FA08 ; 884C ; MA # ( 行 → 行 ) CJK COMPATIBILITY IDEOGRAPH-FA08 → CJK UNIFIED IDEOGRAPH-884C # +2F8F ; 884C ; MA #* ( ⾏ → 行 ) KANGXI RADICAL WALK ENCLOSURE → CJK UNIFIED IDEOGRAPH-884C # + +2F9C3 ; 8860 ; MA # ( 衠 → 衠 ) CJK COMPATIBILITY IDEOGRAPH-2F9C3 → CJK UNIFIED IDEOGRAPH-8860 # + +2F9C4 ; 8863 ; MA # ( 衣 → 衣 ) CJK COMPATIBILITY IDEOGRAPH-2F9C4 → CJK UNIFIED IDEOGRAPH-8863 # +2F90 ; 8863 ; MA #* ( ⾐ → 衣 ) KANGXI RADICAL CLOTHES → CJK UNIFIED IDEOGRAPH-8863 # + +2EC2 ; 8864 ; MA #* ( ⻂ → 衤 ) CJK RADICAL CLOTHES → CJK UNIFIED IDEOGRAPH-8864 # + +F9A0 ; 88C2 ; MA # ( 裂 → 裂 ) CJK COMPATIBILITY IDEOGRAPH-F9A0 → CJK UNIFIED IDEOGRAPH-88C2 # + +2F9C5 ; 27667 ; MA # ( 𧙧 → 𧙧 ) CJK COMPATIBILITY IDEOGRAPH-2F9C5 → CJK UNIFIED IDEOGRAPH-27667 # + +F9E7 ; 88CF ; MA # ( 裏 → 裏 ) CJK COMPATIBILITY IDEOGRAPH-F9E7 → CJK UNIFIED IDEOGRAPH-88CF # + +2F9C6 ; 88D7 ; MA # ( 裗 → 裗 ) CJK COMPATIBILITY IDEOGRAPH-2F9C6 → CJK UNIFIED IDEOGRAPH-88D7 # + +2F9C7 ; 88DE ; MA # ( 裞 → 裞 ) CJK COMPATIBILITY IDEOGRAPH-2F9C7 → CJK UNIFIED IDEOGRAPH-88DE # + +F9E8 ; 88E1 ; MA # ( 裡 → 裡 ) CJK COMPATIBILITY IDEOGRAPH-F9E8 → CJK UNIFIED IDEOGRAPH-88E1 # + +F912 ; 88F8 ; MA # ( 裸 → 裸 ) CJK COMPATIBILITY IDEOGRAPH-F912 → CJK UNIFIED IDEOGRAPH-88F8 # + +2F9C9 ; 88FA ; MA # ( 裺 → 裺 ) CJK COMPATIBILITY IDEOGRAPH-2F9C9 → CJK UNIFIED IDEOGRAPH-88FA # + +2F9C8 ; 4635 ; MA # ( 䘵 → 䘵 ) CJK COMPATIBILITY IDEOGRAPH-2F9C8 → CJK UNIFIED IDEOGRAPH-4635 # + +FA60 ; 8910 ; MA # ( 褐 → 褐 ) CJK COMPATIBILITY IDEOGRAPH-FA60 → CJK UNIFIED IDEOGRAPH-8910 # + +FAB6 ; 8941 ; MA # ( 襁 → 襁 ) CJK COMPATIBILITY IDEOGRAPH-FAB6 → CJK UNIFIED IDEOGRAPH-8941 # + +F924 ; 8964 ; MA # ( 襤 → 襤 ) CJK COMPATIBILITY IDEOGRAPH-F924 → CJK UNIFIED IDEOGRAPH-8964 # + +2F91 ; 897E ; MA #* ( ⾑ → 襾 ) KANGXI RADICAL WEST → CJK UNIFIED IDEOGRAPH-897E # + +2EC4 ; 897F ; MA #* ( ⻄ → 西 ) CJK RADICAL WEST TWO → CJK UNIFIED IDEOGRAPH-897F # + +2EC3 ; 8980 ; MA #* ( ⻃ → 覀 ) CJK RADICAL WEST ONE → CJK UNIFIED IDEOGRAPH-8980 # + +FAB7 ; 8986 ; MA # ( 覆 → 覆 ) CJK COMPATIBILITY IDEOGRAPH-FAB7 → CJK UNIFIED IDEOGRAPH-8986 # + +FA0A ; 898B ; MA # ( 見 → 見 ) CJK COMPATIBILITY IDEOGRAPH-FA0A → CJK UNIFIED IDEOGRAPH-898B # +2F92 ; 898B ; MA #* ( ⾒ → 見 ) KANGXI RADICAL SEE → CJK UNIFIED IDEOGRAPH-898B # + +2F9CB ; 278AE ; MA # ( 𧢮 → 𧢮 ) CJK COMPATIBILITY IDEOGRAPH-2F9CB → CJK UNIFIED IDEOGRAPH-278AE # + +2EC5 ; 89C1 ; MA #* ( ⻅ → 见 ) CJK RADICAL C-SIMPLIFIED SEE → CJK UNIFIED IDEOGRAPH-89C1 # + +2F93 ; 89D2 ; MA #* ( ⾓ → 角 ) KANGXI RADICAL HORN → CJK UNIFIED IDEOGRAPH-89D2 # + +2F94 ; 8A00 ; MA #* ( ⾔ → 言 ) KANGXI RADICAL SPEECH → CJK UNIFIED IDEOGRAPH-8A00 # + +2F9CC ; 27966 ; MA # ( 𧥦 → 𧥦 ) CJK COMPATIBILITY IDEOGRAPH-2F9CC → CJK UNIFIED IDEOGRAPH-27966 # + +8A7D ; 8A2E ; MA # ( 詽 → 訮 ) CJK UNIFIED IDEOGRAPH-8A7D → CJK UNIFIED IDEOGRAPH-8A2E # + +8A1E ; 46B6 ; MA # ( 訞 → 䚶 ) CJK UNIFIED IDEOGRAPH-8A1E → CJK UNIFIED IDEOGRAPH-46B6 # + +2F9CD ; 46BE ; MA # ( 䚾 → 䚾 ) CJK COMPATIBILITY IDEOGRAPH-2F9CD → CJK UNIFIED IDEOGRAPH-46BE # + +2F9CE ; 46C7 ; MA # ( 䛇 → 䛇 ) CJK COMPATIBILITY IDEOGRAPH-2F9CE → CJK UNIFIED IDEOGRAPH-46C7 # + +2F9CF ; 8AA0 ; MA # ( 誠 → 誠 ) CJK COMPATIBILITY IDEOGRAPH-2F9CF → CJK UNIFIED IDEOGRAPH-8AA0 # + +F96F ; 8AAA ; MA # ( 說 → 說 ) CJK COMPATIBILITY IDEOGRAPH-F96F → CJK UNIFIED IDEOGRAPH-8AAA # +F9A1 ; 8AAA ; MA # ( 說 → 說 ) CJK COMPATIBILITY IDEOGRAPH-F9A1 → CJK UNIFIED IDEOGRAPH-8AAA # + +FAB9 ; 8ABF ; MA # ( 調 → 調 ) CJK COMPATIBILITY IDEOGRAPH-FAB9 → CJK UNIFIED IDEOGRAPH-8ABF # + +FABB ; 8ACB ; MA # ( 請 → 請 ) CJK COMPATIBILITY IDEOGRAPH-FABB → CJK UNIFIED IDEOGRAPH-8ACB # + +F97D ; 8AD2 ; MA # ( 諒 → 諒 ) CJK COMPATIBILITY IDEOGRAPH-F97D → CJK UNIFIED IDEOGRAPH-8AD2 # + +F941 ; 8AD6 ; MA # ( 論 → 論 ) CJK COMPATIBILITY IDEOGRAPH-F941 → CJK UNIFIED IDEOGRAPH-8AD6 # + +FABE ; 8AED ; MA # ( 諭 → 諭 ) CJK COMPATIBILITY IDEOGRAPH-FABE → CJK UNIFIED IDEOGRAPH-8AED # +2F9D0 ; 8AED ; MA # ( 諭 → 諭 ) CJK COMPATIBILITY IDEOGRAPH-2F9D0 → CJK UNIFIED IDEOGRAPH-8AED # + +FA22 ; 8AF8 ; MA # ( 諸 → 諸 ) CJK COMPATIBILITY IDEOGRAPH-FA22 → CJK UNIFIED IDEOGRAPH-8AF8 # +FABA ; 8AF8 ; MA # ( 諸 → 諸 ) CJK COMPATIBILITY IDEOGRAPH-FABA → CJK UNIFIED IDEOGRAPH-8AF8 # + +F95D ; 8AFE ; MA # ( 諾 → 諾 ) CJK COMPATIBILITY IDEOGRAPH-F95D → CJK UNIFIED IDEOGRAPH-8AFE # +FABD ; 8AFE ; MA # ( 諾 → 諾 ) CJK COMPATIBILITY IDEOGRAPH-FABD → CJK UNIFIED IDEOGRAPH-8AFE # + +FA62 ; 8B01 ; MA # ( 謁 → 謁 ) CJK COMPATIBILITY IDEOGRAPH-FA62 → CJK UNIFIED IDEOGRAPH-8B01 # +FABC ; 8B01 ; MA # ( 謁 → 謁 ) CJK COMPATIBILITY IDEOGRAPH-FABC → CJK UNIFIED IDEOGRAPH-8B01 # + +FA63 ; 8B39 ; MA # ( 謹 → 謹 ) CJK COMPATIBILITY IDEOGRAPH-FA63 → CJK UNIFIED IDEOGRAPH-8B39 # +FABF ; 8B39 ; MA # ( 謹 → 謹 ) CJK COMPATIBILITY IDEOGRAPH-FABF → CJK UNIFIED IDEOGRAPH-8B39 # + +F9FC ; 8B58 ; MA # ( 識 → 識 ) CJK COMPATIBILITY IDEOGRAPH-F9FC → CJK UNIFIED IDEOGRAPH-8B58 # + +F95A ; 8B80 ; MA # ( 讀 → 讀 ) CJK COMPATIBILITY IDEOGRAPH-F95A → CJK UNIFIED IDEOGRAPH-8B80 # + +8B8F ; 8B86 ; MA # ( 讏 → 讆 ) CJK UNIFIED IDEOGRAPH-8B8F → CJK UNIFIED IDEOGRAPH-8B86 # + +FAC0 ; 8B8A ; MA # ( 變 → 變 ) CJK COMPATIBILITY IDEOGRAPH-FAC0 → CJK UNIFIED IDEOGRAPH-8B8A # +2F9D1 ; 8B8A ; MA # ( 變 → 變 ) CJK COMPATIBILITY IDEOGRAPH-2F9D1 → CJK UNIFIED IDEOGRAPH-8B8A # + +2EC8 ; 8BA0 ; MA #* ( ⻈ → 讠 ) CJK RADICAL C-SIMPLIFIED SPEECH → CJK UNIFIED IDEOGRAPH-8BA0 # + +2F95 ; 8C37 ; MA #* ( ⾕ → 谷 ) KANGXI RADICAL VALLEY → CJK UNIFIED IDEOGRAPH-8C37 # + +2F96 ; 8C46 ; MA #* ( ⾖ → 豆 ) KANGXI RADICAL BEAN → CJK UNIFIED IDEOGRAPH-8C46 # + +F900 ; 8C48 ; MA # ( 豈 → 豈 ) CJK COMPATIBILITY IDEOGRAPH-F900 → CJK UNIFIED IDEOGRAPH-8C48 # + +2F9D2 ; 8C55 ; MA # ( 豕 → 豕 ) CJK COMPATIBILITY IDEOGRAPH-2F9D2 → CJK UNIFIED IDEOGRAPH-8C55 # +2F97 ; 8C55 ; MA #* ( ⾗ → 豕 ) KANGXI RADICAL PIG → CJK UNIFIED IDEOGRAPH-8C55 # + +8C63 ; 8C5C ; MA # ( 豣 → 豜 ) CJK UNIFIED IDEOGRAPH-8C63 → CJK UNIFIED IDEOGRAPH-8C5C # + +2F98 ; 8C78 ; MA #* ( ⾘ → 豸 ) KANGXI RADICAL BADGER → CJK UNIFIED IDEOGRAPH-8C78 # + +2F9D3 ; 27CA8 ; MA # ( 𧲨 → 𧲨 ) CJK COMPATIBILITY IDEOGRAPH-2F9D3 → CJK UNIFIED IDEOGRAPH-27CA8 # + +2F99 ; 8C9D ; MA #* ( ⾙ → 貝 ) KANGXI RADICAL SHELL → CJK UNIFIED IDEOGRAPH-8C9D # + +2F9D4 ; 8CAB ; MA # ( 貫 → 貫 ) CJK COMPATIBILITY IDEOGRAPH-2F9D4 → CJK UNIFIED IDEOGRAPH-8CAB # + +2F9D5 ; 8CC1 ; MA # ( 賁 → 賁 ) CJK COMPATIBILITY IDEOGRAPH-2F9D5 → CJK UNIFIED IDEOGRAPH-8CC1 # + +F948 ; 8CC2 ; MA # ( 賂 → 賂 ) CJK COMPATIBILITY IDEOGRAPH-F948 → CJK UNIFIED IDEOGRAPH-8CC2 # + +F903 ; 8CC8 ; MA # ( 賈 → 賈 ) CJK COMPATIBILITY IDEOGRAPH-F903 → CJK UNIFIED IDEOGRAPH-8CC8 # + +FA64 ; 8CD3 ; MA # ( 賓 → 賓 ) CJK COMPATIBILITY IDEOGRAPH-FA64 → CJK UNIFIED IDEOGRAPH-8CD3 # + +FA65 ; 8D08 ; MA # ( 贈 → 贈 ) CJK COMPATIBILITY IDEOGRAPH-FA65 → CJK UNIFIED IDEOGRAPH-8D08 # +FAC1 ; 8D08 ; MA # ( 贈 → 贈 ) CJK COMPATIBILITY IDEOGRAPH-FAC1 → CJK UNIFIED IDEOGRAPH-8D08 # + +2F9D6 ; 8D1B ; MA # ( 贛 → 贛 ) CJK COMPATIBILITY IDEOGRAPH-2F9D6 → CJK UNIFIED IDEOGRAPH-8D1B # + +2EC9 ; 8D1D ; MA #* ( ⻉ → 贝 ) CJK RADICAL C-SIMPLIFIED SHELL → CJK UNIFIED IDEOGRAPH-8D1D # + +2F9A ; 8D64 ; MA #* ( ⾚ → 赤 ) KANGXI RADICAL RED → CJK UNIFIED IDEOGRAPH-8D64 # + +2F9B ; 8D70 ; MA #* ( ⾛ → 走 ) KANGXI RADICAL RUN → CJK UNIFIED IDEOGRAPH-8D70 # + +2F9D7 ; 8D77 ; MA # ( 起 → 起 ) CJK COMPATIBILITY IDEOGRAPH-2F9D7 → CJK UNIFIED IDEOGRAPH-8D77 # + +8D86 ; 8D7F ; MA # ( 趆 → 赿 ) CJK UNIFIED IDEOGRAPH-8D86 → CJK UNIFIED IDEOGRAPH-8D7F # + +FAD7 ; 27ED3 ; MA # ( 𧻓 → 𧻓 ) CJK COMPATIBILITY IDEOGRAPH-FAD7 → CJK UNIFIED IDEOGRAPH-27ED3 # + +2F9D8 ; 27F2F ; MA # ( 𧼯 → 𧼯 ) CJK COMPATIBILITY IDEOGRAPH-2F9D8 → CJK UNIFIED IDEOGRAPH-27F2F # + +2F9C ; 8DB3 ; MA #* ( ⾜ → 足 ) KANGXI RADICAL FOOT → CJK UNIFIED IDEOGRAPH-8DB3 # + +2F9DA ; 8DCB ; MA # ( 跋 → 跋 ) CJK COMPATIBILITY IDEOGRAPH-2F9DA → CJK UNIFIED IDEOGRAPH-8DCB # + +2F9DB ; 8DBC ; MA # ( 趼 → 趼 ) CJK COMPATIBILITY IDEOGRAPH-2F9DB → CJK UNIFIED IDEOGRAPH-8DBC # + +8DFA ; 8DE5 ; MA # ( 跺 → 跥 ) CJK UNIFIED IDEOGRAPH-8DFA → CJK UNIFIED IDEOGRAPH-8DE5 # + +F937 ; 8DEF ; MA # ( 路 → 路 ) CJK COMPATIBILITY IDEOGRAPH-F937 → CJK UNIFIED IDEOGRAPH-8DEF # + +2F9DC ; 8DF0 ; MA # ( 跰 → 跰 ) CJK COMPATIBILITY IDEOGRAPH-2F9DC → CJK UNIFIED IDEOGRAPH-8DF0 # + +8E9B ; 8E97 ; MA # ( 躛 → 躗 ) CJK UNIFIED IDEOGRAPH-8E9B → CJK UNIFIED IDEOGRAPH-8E97 # + +2F9D ; 8EAB ; MA #* ( ⾝ → 身 ) KANGXI RADICAL BODY → CJK UNIFIED IDEOGRAPH-8EAB # + +F902 ; 8ECA ; MA # ( 車 → 車 ) CJK COMPATIBILITY IDEOGRAPH-F902 → CJK UNIFIED IDEOGRAPH-8ECA # +2F9E ; 8ECA ; MA #* ( ⾞ → 車 ) KANGXI RADICAL CART → CJK UNIFIED IDEOGRAPH-8ECA # + +2F9DE ; 8ED4 ; MA # ( 軔 → 軔 ) CJK COMPATIBILITY IDEOGRAPH-2F9DE → CJK UNIFIED IDEOGRAPH-8ED4 # + +8F27 ; 8EFF ; MA # ( 輧 → 軿 ) CJK UNIFIED IDEOGRAPH-8F27 → CJK UNIFIED IDEOGRAPH-8EFF # + +F998 ; 8F26 ; MA # ( 輦 → 輦 ) CJK COMPATIBILITY IDEOGRAPH-F998 → CJK UNIFIED IDEOGRAPH-8F26 # + +F9D7 ; 8F2A ; MA # ( 輪 → 輪 ) CJK COMPATIBILITY IDEOGRAPH-F9D7 → CJK UNIFIED IDEOGRAPH-8F2A # + +FAC2 ; 8F38 ; MA # ( 輸 → 輸 ) CJK COMPATIBILITY IDEOGRAPH-FAC2 → CJK UNIFIED IDEOGRAPH-8F38 # +2F9DF ; 8F38 ; MA # ( 輸 → 輸 ) CJK COMPATIBILITY IDEOGRAPH-2F9DF → CJK UNIFIED IDEOGRAPH-8F38 # + +FA07 ; 8F3B ; MA # ( 輻 → 輻 ) CJK COMPATIBILITY IDEOGRAPH-FA07 → CJK UNIFIED IDEOGRAPH-8F3B # + +F98D ; 8F62 ; MA # ( 轢 → 轢 ) CJK COMPATIBILITY IDEOGRAPH-F98D → CJK UNIFIED IDEOGRAPH-8F62 # + +2ECB ; 8F66 ; MA #* ( ⻋ → 车 ) CJK RADICAL C-SIMPLIFIED CART → CJK UNIFIED IDEOGRAPH-8F66 # + +2F9F ; 8F9B ; MA #* ( ⾟ → 辛 ) KANGXI RADICAL BITTER → CJK UNIFIED IDEOGRAPH-8F9B # + +2F98D ; 8F9E ; MA # ( 辞 → 辞 ) CJK COMPATIBILITY IDEOGRAPH-2F98D → CJK UNIFIED IDEOGRAPH-8F9E # + +F971 ; 8FB0 ; MA # ( 辰 → 辰 ) CJK COMPATIBILITY IDEOGRAPH-F971 → CJK UNIFIED IDEOGRAPH-8FB0 # +2FA0 ; 8FB0 ; MA #* ( ⾠ → 辰 ) KANGXI RADICAL MORNING → CJK UNIFIED IDEOGRAPH-8FB0 # + +2FA1 ; 8FB5 ; MA #* ( ⾡ → 辵 ) KANGXI RADICAL WALK → CJK UNIFIED IDEOGRAPH-8FB5 # + +FA66 ; 8FB6 ; MA # ( 辶 → 辶 ) CJK COMPATIBILITY IDEOGRAPH-FA66 → CJK UNIFIED IDEOGRAPH-8FB6 # +2ECC ; 8FB6 ; MA #* ( ⻌ → 辶 ) CJK RADICAL SIMPLIFIED WALK → CJK UNIFIED IDEOGRAPH-8FB6 # +2ECD ; 8FB6 ; MA #* ( ⻍ → 辶 ) CJK RADICAL WALK ONE → CJK UNIFIED IDEOGRAPH-8FB6 # + +2F881 ; 5DE1 ; MA # ( 巡 → 巡 ) CJK COMPATIBILITY IDEOGRAPH-2F881 → CJK UNIFIED IDEOGRAPH-5DE1 # + +F99A ; 9023 ; MA # ( 連 → 連 ) CJK COMPATIBILITY IDEOGRAPH-F99A → CJK UNIFIED IDEOGRAPH-9023 # + +FA25 ; 9038 ; MA # ( 逸 → 逸 ) CJK COMPATIBILITY IDEOGRAPH-FA25 → CJK UNIFIED IDEOGRAPH-9038 # +FA67 ; 9038 ; MA # ( 逸 → 逸 ) CJK COMPATIBILITY IDEOGRAPH-FA67 → CJK UNIFIED IDEOGRAPH-9038 # + +FAC3 ; 9072 ; MA # ( 遲 → 遲 ) CJK COMPATIBILITY IDEOGRAPH-FAC3 → CJK UNIFIED IDEOGRAPH-9072 # + +F9C3 ; 907C ; MA # ( 遼 → 遼 ) CJK COMPATIBILITY IDEOGRAPH-F9C3 → CJK UNIFIED IDEOGRAPH-907C # + +2F9E0 ; 285D2 ; MA # ( 𨗒 → 𨗒 ) CJK COMPATIBILITY IDEOGRAPH-2F9E0 → CJK UNIFIED IDEOGRAPH-285D2 # + +2F9E1 ; 285ED ; MA # ( 𨗭 → 𨗭 ) CJK COMPATIBILITY IDEOGRAPH-2F9E1 → CJK UNIFIED IDEOGRAPH-285ED # + +F913 ; 908F ; MA # ( 邏 → 邏 ) CJK COMPATIBILITY IDEOGRAPH-F913 → CJK UNIFIED IDEOGRAPH-908F # + +2FA2 ; 9091 ; MA #* ( ⾢ → 邑 ) KANGXI RADICAL CITY → CJK UNIFIED IDEOGRAPH-9091 # + +2F9E2 ; 9094 ; MA # ( 邔 → 邔 ) CJK COMPATIBILITY IDEOGRAPH-2F9E2 → CJK UNIFIED IDEOGRAPH-9094 # + +F92C ; 90CE ; MA # ( 郎 → 郎 ) CJK COMPATIBILITY IDEOGRAPH-F92C → CJK UNIFIED IDEOGRAPH-90CE # +90DE ; 90CE ; MA # ( 郞 → 郎 ) CJK UNIFIED IDEOGRAPH-90DE → CJK UNIFIED IDEOGRAPH-90CE # →郎→ +FA2E ; 90CE ; MA # ( 郞 → 郎 ) CJK COMPATIBILITY IDEOGRAPH-FA2E → CJK UNIFIED IDEOGRAPH-90CE # →郞→→郎→ + +2F9E3 ; 90F1 ; MA # ( 郱 → 郱 ) CJK COMPATIBILITY IDEOGRAPH-2F9E3 → CJK UNIFIED IDEOGRAPH-90F1 # + +FA26 ; 90FD ; MA # ( 都 → 都 ) CJK COMPATIBILITY IDEOGRAPH-FA26 → CJK UNIFIED IDEOGRAPH-90FD # + +2F9E5 ; 2872E ; MA # ( 𨜮 → 𨜮 ) CJK COMPATIBILITY IDEOGRAPH-2F9E5 → CJK UNIFIED IDEOGRAPH-2872E # + +2F9E4 ; 9111 ; MA # ( 鄑 → 鄑 ) CJK COMPATIBILITY IDEOGRAPH-2F9E4 → CJK UNIFIED IDEOGRAPH-9111 # + +2F9E6 ; 911B ; MA # ( 鄛 → 鄛 ) CJK COMPATIBILITY IDEOGRAPH-2F9E6 → CJK UNIFIED IDEOGRAPH-911B # + +2FA3 ; 9149 ; MA #* ( ⾣ → 酉 ) KANGXI RADICAL WINE → CJK UNIFIED IDEOGRAPH-9149 # + +F919 ; 916A ; MA # ( 酪 → 酪 ) CJK COMPATIBILITY IDEOGRAPH-F919 → CJK UNIFIED IDEOGRAPH-916A # + +FAC4 ; 9199 ; MA # ( 醙 → 醙 ) CJK COMPATIBILITY IDEOGRAPH-FAC4 → CJK UNIFIED IDEOGRAPH-9199 # + +F9B7 ; 91B4 ; MA # ( 醴 → 醴 ) CJK COMPATIBILITY IDEOGRAPH-F9B7 → CJK UNIFIED IDEOGRAPH-91B4 # + +2FA4 ; 91C6 ; MA #* ( ⾤ → 釆 ) KANGXI RADICAL DISTINGUISH → CJK UNIFIED IDEOGRAPH-91C6 # + +F9E9 ; 91CC ; MA # ( 里 → 里 ) CJK COMPATIBILITY IDEOGRAPH-F9E9 → CJK UNIFIED IDEOGRAPH-91CC # +2FA5 ; 91CC ; MA #* ( ⾥ → 里 ) KANGXI RADICAL VILLAGE → CJK UNIFIED IDEOGRAPH-91CC # + +F97E ; 91CF ; MA # ( 量 → 量 ) CJK COMPATIBILITY IDEOGRAPH-F97E → CJK UNIFIED IDEOGRAPH-91CF # + +F90A ; 91D1 ; MA # ( 金 → 金 ) CJK COMPATIBILITY IDEOGRAPH-F90A → CJK UNIFIED IDEOGRAPH-91D1 # +2FA6 ; 91D1 ; MA #* ( ⾦ → 金 ) KANGXI RADICAL GOLD → CJK UNIFIED IDEOGRAPH-91D1 # + +F9B1 ; 9234 ; MA # ( 鈴 → 鈴 ) CJK COMPATIBILITY IDEOGRAPH-F9B1 → CJK UNIFIED IDEOGRAPH-9234 # + +2F9E7 ; 9238 ; MA # ( 鈸 → 鈸 ) CJK COMPATIBILITY IDEOGRAPH-2F9E7 → CJK UNIFIED IDEOGRAPH-9238 # + +FAC5 ; 9276 ; MA # ( 鉶 → 鉶 ) CJK COMPATIBILITY IDEOGRAPH-FAC5 → CJK UNIFIED IDEOGRAPH-9276 # + +2F9E8 ; 92D7 ; MA # ( 鋗 → 鋗 ) CJK COMPATIBILITY IDEOGRAPH-2F9E8 → CJK UNIFIED IDEOGRAPH-92D7 # + +2F9E9 ; 92D8 ; MA # ( 鋘 → 鋘 ) CJK COMPATIBILITY IDEOGRAPH-2F9E9 → CJK UNIFIED IDEOGRAPH-92D8 # + +2F9EA ; 927C ; MA # ( 鉼 → 鉼 ) CJK COMPATIBILITY IDEOGRAPH-2F9EA → CJK UNIFIED IDEOGRAPH-927C # + +F93F ; 9304 ; MA # ( 錄 → 錄 ) CJK COMPATIBILITY IDEOGRAPH-F93F → CJK UNIFIED IDEOGRAPH-9304 # + +F99B ; 934A ; MA # ( 鍊 → 鍊 ) CJK COMPATIBILITY IDEOGRAPH-F99B → CJK UNIFIED IDEOGRAPH-934A # + +93AE ; 93AD ; MA # ( 鎮 → 鎭 ) CJK UNIFIED IDEOGRAPH-93AE → CJK UNIFIED IDEOGRAPH-93AD # + +2F9EB ; 93F9 ; MA # ( 鏹 → 鏹 ) CJK COMPATIBILITY IDEOGRAPH-2F9EB → CJK UNIFIED IDEOGRAPH-93F9 # + +2F9EC ; 9415 ; MA # ( 鐕 → 鐕 ) CJK COMPATIBILITY IDEOGRAPH-2F9EC → CJK UNIFIED IDEOGRAPH-9415 # + +2F9ED ; 28BFA ; MA # ( 𨯺 → 𨯺 ) CJK COMPATIBILITY IDEOGRAPH-2F9ED → CJK UNIFIED IDEOGRAPH-28BFA # + +2ED0 ; 9485 ; MA #* ( ⻐ → 钅 ) CJK RADICAL C-SIMPLIFIED GOLD → CJK UNIFIED IDEOGRAPH-9485 # + +2ED1 ; 9577 ; MA #* ( ⻑ → 長 ) CJK RADICAL LONG ONE → CJK UNIFIED IDEOGRAPH-9577 # +2FA7 ; 9577 ; MA #* ( ⾧ → 長 ) KANGXI RADICAL LONG → CJK UNIFIED IDEOGRAPH-9577 # + +2ED2 ; 9578 ; MA #* ( ⻒ → 镸 ) CJK RADICAL LONG TWO → CJK UNIFIED IDEOGRAPH-9578 # + +2ED3 ; 957F ; MA #* ( ⻓ → 长 ) CJK RADICAL C-SIMPLIFIED LONG → CJK UNIFIED IDEOGRAPH-957F # + +2FA8 ; 9580 ; MA #* ( ⾨ → 門 ) KANGXI RADICAL GATE → CJK UNIFIED IDEOGRAPH-9580 # + +2F9EE ; 958B ; MA # ( 開 → 開 ) CJK COMPATIBILITY IDEOGRAPH-2F9EE → CJK UNIFIED IDEOGRAPH-958B # + +2F9EF ; 4995 ; MA # ( 䦕 → 䦕 ) CJK COMPATIBILITY IDEOGRAPH-2F9EF → CJK UNIFIED IDEOGRAPH-4995 # + +F986 ; 95AD ; MA # ( 閭 → 閭 ) CJK COMPATIBILITY IDEOGRAPH-F986 → CJK UNIFIED IDEOGRAPH-95AD # + +2F9F0 ; 95B7 ; MA # ( 閷 → 閷 ) CJK COMPATIBILITY IDEOGRAPH-2F9F0 → CJK UNIFIED IDEOGRAPH-95B7 # + +2F9F1 ; 28D77 ; MA # ( 𨵷 → 𨵷 ) CJK COMPATIBILITY IDEOGRAPH-2F9F1 → CJK UNIFIED IDEOGRAPH-28D77 # + +2ED4 ; 95E8 ; MA #* ( ⻔ → 门 ) CJK RADICAL C-SIMPLIFIED GATE → CJK UNIFIED IDEOGRAPH-95E8 # + +2FA9 ; 961C ; MA #* ( ⾩ → 阜 ) KANGXI RADICAL MOUND → CJK UNIFIED IDEOGRAPH-961C # + +2ECF ; 961D ; MA #* ( ⻏ → 阝 ) CJK RADICAL CITY → CJK UNIFIED IDEOGRAPH-961D # +2ED6 ; 961D ; MA #* ( ⻖ → 阝 ) CJK RADICAL MOUND TWO → CJK UNIFIED IDEOGRAPH-961D # + +F9C6 ; 962E ; MA # ( 阮 → 阮 ) CJK COMPATIBILITY IDEOGRAPH-F9C6 → CJK UNIFIED IDEOGRAPH-962E # + +F951 ; 964B ; MA # ( 陋 → 陋 ) CJK COMPATIBILITY IDEOGRAPH-F951 → CJK UNIFIED IDEOGRAPH-964B # + +FA09 ; 964D ; MA # ( 降 → 降 ) CJK COMPATIBILITY IDEOGRAPH-FA09 → CJK UNIFIED IDEOGRAPH-964D # + +F959 ; 9675 ; MA # ( 陵 → 陵 ) CJK COMPATIBILITY IDEOGRAPH-F959 → CJK UNIFIED IDEOGRAPH-9675 # + +F9D3 ; 9678 ; MA # ( 陸 → 陸 ) CJK COMPATIBILITY IDEOGRAPH-F9D3 → CJK UNIFIED IDEOGRAPH-9678 # + +FAC6 ; 967C ; MA # ( 陼 → 陼 ) CJK COMPATIBILITY IDEOGRAPH-FAC6 → CJK UNIFIED IDEOGRAPH-967C # + +F9DC ; 9686 ; MA # ( 隆 → 隆 ) CJK COMPATIBILITY IDEOGRAPH-F9DC → CJK UNIFIED IDEOGRAPH-9686 # + +F9F1 ; 96A3 ; MA # ( 隣 → 隣 ) CJK COMPATIBILITY IDEOGRAPH-F9F1 → CJK UNIFIED IDEOGRAPH-96A3 # + +2F9F2 ; 49E6 ; MA # ( 䧦 → 䧦 ) CJK COMPATIBILITY IDEOGRAPH-2F9F2 → CJK UNIFIED IDEOGRAPH-49E6 # + +2FAA ; 96B6 ; MA #* ( ⾪ → 隶 ) KANGXI RADICAL SLAVE → CJK UNIFIED IDEOGRAPH-96B6 # + +FA2F ; 96B7 ; MA # ( 隷 → 隷 ) CJK COMPATIBILITY IDEOGRAPH-FA2F → CJK UNIFIED IDEOGRAPH-96B7 # +96B8 ; 96B7 ; MA # ( 隸 → 隷 ) CJK UNIFIED IDEOGRAPH-96B8 → CJK UNIFIED IDEOGRAPH-96B7 # →隸→ +F9B8 ; 96B7 ; MA # ( 隸 → 隷 ) CJK COMPATIBILITY IDEOGRAPH-F9B8 → CJK UNIFIED IDEOGRAPH-96B7 # + +2FAB ; 96B9 ; MA #* ( ⾫ → 隹 ) KANGXI RADICAL SHORT TAILED BIRD → CJK UNIFIED IDEOGRAPH-96B9 # + +2F9F3 ; 96C3 ; MA # ( 雃 → 雃 ) CJK COMPATIBILITY IDEOGRAPH-2F9F3 → CJK UNIFIED IDEOGRAPH-96C3 # + +F9EA ; 96E2 ; MA # ( 離 → 離 ) CJK COMPATIBILITY IDEOGRAPH-F9EA → CJK UNIFIED IDEOGRAPH-96E2 # + +FA68 ; 96E3 ; MA # ( 難 → 難 ) CJK COMPATIBILITY IDEOGRAPH-FA68 → CJK UNIFIED IDEOGRAPH-96E3 # +FAC7 ; 96E3 ; MA # ( 難 → 難 ) CJK COMPATIBILITY IDEOGRAPH-FAC7 → CJK UNIFIED IDEOGRAPH-96E3 # + +2FAC ; 96E8 ; MA #* ( ⾬ → 雨 ) KANGXI RADICAL RAIN → CJK UNIFIED IDEOGRAPH-96E8 # + +F9B2 ; 96F6 ; MA # ( 零 → 零 ) CJK COMPATIBILITY IDEOGRAPH-F9B2 → CJK UNIFIED IDEOGRAPH-96F6 # + +F949 ; 96F7 ; MA # ( 雷 → 雷 ) CJK COMPATIBILITY IDEOGRAPH-F949 → CJK UNIFIED IDEOGRAPH-96F7 # + +2F9F5 ; 9723 ; MA # ( 霣 → 霣 ) CJK COMPATIBILITY IDEOGRAPH-2F9F5 → CJK UNIFIED IDEOGRAPH-9723 # + +2F9F6 ; 29145 ; MA # ( 𩅅 → 𩅅 ) CJK COMPATIBILITY IDEOGRAPH-2F9F6 → CJK UNIFIED IDEOGRAPH-29145 # + +F938 ; 9732 ; MA # ( 露 → 露 ) CJK COMPATIBILITY IDEOGRAPH-F938 → CJK UNIFIED IDEOGRAPH-9732 # + +F9B3 ; 9748 ; MA # ( 靈 → 靈 ) CJK COMPATIBILITY IDEOGRAPH-F9B3 → CJK UNIFIED IDEOGRAPH-9748 # + +2FAD ; 9751 ; MA #* ( ⾭ → 靑 ) KANGXI RADICAL BLUE → CJK UNIFIED IDEOGRAPH-9751 # + +2ED8 ; 9752 ; MA #* ( ⻘ → 青 ) CJK RADICAL BLUE → CJK UNIFIED IDEOGRAPH-9752 # + +FA1C ; 9756 ; MA # ( 靖 → 靖 ) CJK COMPATIBILITY IDEOGRAPH-FA1C → CJK UNIFIED IDEOGRAPH-9756 # +FAC8 ; 9756 ; MA # ( 靖 → 靖 ) CJK COMPATIBILITY IDEOGRAPH-FAC8 → CJK UNIFIED IDEOGRAPH-9756 # + +2F81C ; 291DF ; MA # ( 𩇟 → 𩇟 ) CJK COMPATIBILITY IDEOGRAPH-2F81C → CJK UNIFIED IDEOGRAPH-291DF # + +2FAE ; 975E ; MA #* ( ⾮ → 非 ) KANGXI RADICAL WRONG → CJK UNIFIED IDEOGRAPH-975E # + +2FAF ; 9762 ; MA #* ( ⾯ → 面 ) KANGXI RADICAL FACE → CJK UNIFIED IDEOGRAPH-9762 # + +2F9F7 ; 2921A ; MA # ( 𩈚 → 𩈚 ) CJK COMPATIBILITY IDEOGRAPH-2F9F7 → CJK UNIFIED IDEOGRAPH-2921A # + +2FB0 ; 9769 ; MA #* ( ⾰ → 革 ) KANGXI RADICAL LEATHER → CJK UNIFIED IDEOGRAPH-9769 # + +2F9F8 ; 4A6E ; MA # ( 䩮 → 䩮 ) CJK COMPATIBILITY IDEOGRAPH-2F9F8 → CJK UNIFIED IDEOGRAPH-4A6E # + +2F9F9 ; 4A76 ; MA # ( 䩶 → 䩶 ) CJK COMPATIBILITY IDEOGRAPH-2F9F9 → CJK UNIFIED IDEOGRAPH-4A76 # + +2FB1 ; 97CB ; MA #* ( ⾱ → 韋 ) KANGXI RADICAL TANNED LEATHER → CJK UNIFIED IDEOGRAPH-97CB # + +FAC9 ; 97DB ; MA # ( 韛 → 韛 ) CJK COMPATIBILITY IDEOGRAPH-FAC9 → CJK UNIFIED IDEOGRAPH-97DB # + +2F9FA ; 97E0 ; MA # ( 韠 → 韠 ) CJK COMPATIBILITY IDEOGRAPH-2F9FA → CJK UNIFIED IDEOGRAPH-97E0 # + +2ED9 ; 97E6 ; MA #* ( ⻙ → 韦 ) CJK RADICAL C-SIMPLIFIED TANNED LEATHER → CJK UNIFIED IDEOGRAPH-97E6 # + +2FB2 ; 97ED ; MA #* ( ⾲ → 韭 ) KANGXI RADICAL LEEK → CJK UNIFIED IDEOGRAPH-97ED # + +2F9FB ; 2940A ; MA # ( 𩐊 → 𩐊 ) CJK COMPATIBILITY IDEOGRAPH-2F9FB → CJK UNIFIED IDEOGRAPH-2940A # + +2FB3 ; 97F3 ; MA #* ( ⾳ → 音 ) KANGXI RADICAL SOUND → CJK UNIFIED IDEOGRAPH-97F3 # + +FA69 ; 97FF ; MA # ( 響 → 響 ) CJK COMPATIBILITY IDEOGRAPH-FA69 → CJK UNIFIED IDEOGRAPH-97FF # +FACA ; 97FF ; MA # ( 響 → 響 ) CJK COMPATIBILITY IDEOGRAPH-FACA → CJK UNIFIED IDEOGRAPH-97FF # + +2FB4 ; 9801 ; MA #* ( ⾴ → 頁 ) KANGXI RADICAL LEAF → CJK UNIFIED IDEOGRAPH-9801 # + +2F9FC ; 4AB2 ; MA # ( 䪲 → 䪲 ) CJK COMPATIBILITY IDEOGRAPH-2F9FC → CJK UNIFIED IDEOGRAPH-4AB2 # + +FACB ; 980B ; MA # ( 頋 → 頋 ) CJK COMPATIBILITY IDEOGRAPH-FACB → CJK UNIFIED IDEOGRAPH-980B # +2F9FE ; 980B ; MA # ( 頋 → 頋 ) CJK COMPATIBILITY IDEOGRAPH-2F9FE → CJK UNIFIED IDEOGRAPH-980B # +2F9FF ; 980B ; MA # ( 頋 → 頋 ) CJK COMPATIBILITY IDEOGRAPH-2F9FF → CJK UNIFIED IDEOGRAPH-980B # + +F9B4 ; 9818 ; MA # ( 領 → 領 ) CJK COMPATIBILITY IDEOGRAPH-F9B4 → CJK UNIFIED IDEOGRAPH-9818 # + +2FA00 ; 9829 ; MA # ( 頩 → 頩 ) CJK COMPATIBILITY IDEOGRAPH-2FA00 → CJK UNIFIED IDEOGRAPH-9829 # + +2F9FD ; 29496 ; MA # ( 𩒖 → 𩒖 ) CJK COMPATIBILITY IDEOGRAPH-2F9FD → CJK UNIFIED IDEOGRAPH-29496 # + +FA6A ; 983B ; MA # ( 頻 → 頻 ) CJK COMPATIBILITY IDEOGRAPH-FA6A → CJK UNIFIED IDEOGRAPH-983B # +FACC ; 983B ; MA # ( 頻 → 頻 ) CJK COMPATIBILITY IDEOGRAPH-FACC → CJK UNIFIED IDEOGRAPH-983B # + +F9D0 ; 985E ; MA # ( 類 → 類 ) CJK COMPATIBILITY IDEOGRAPH-F9D0 → CJK UNIFIED IDEOGRAPH-985E # + +2EDA ; 9875 ; MA #* ( ⻚ → 页 ) CJK RADICAL C-SIMPLIFIED LEAF → CJK UNIFIED IDEOGRAPH-9875 # + +2FB5 ; 98A8 ; MA #* ( ⾵ → 風 ) KANGXI RADICAL WIND → CJK UNIFIED IDEOGRAPH-98A8 # + +2FA01 ; 295B6 ; MA # ( 𩖶 → 𩖶 ) CJK COMPATIBILITY IDEOGRAPH-2FA01 → CJK UNIFIED IDEOGRAPH-295B6 # + +2EDB ; 98CE ; MA #* ( ⻛ → 风 ) CJK RADICAL C-SIMPLIFIED WIND → CJK UNIFIED IDEOGRAPH-98CE # + +2FB6 ; 98DB ; MA #* ( ⾶ → 飛 ) KANGXI RADICAL FLY → CJK UNIFIED IDEOGRAPH-98DB # + +2EDC ; 98DE ; MA #* ( ⻜ → 飞 ) CJK RADICAL C-SIMPLIFIED FLY → CJK UNIFIED IDEOGRAPH-98DE # + +2EDD ; 98DF ; MA #* ( ⻝ → 食 ) CJK RADICAL EAT ONE → CJK UNIFIED IDEOGRAPH-98DF # +2FB7 ; 98DF ; MA #* ( ⾷ → 食 ) KANGXI RADICAL EAT → CJK UNIFIED IDEOGRAPH-98DF # + +2EDF ; 98E0 ; MA #* ( ⻟ → 飠 ) CJK RADICAL EAT THREE → CJK UNIFIED IDEOGRAPH-98E0 # + +2FA02 ; 98E2 ; MA # ( 飢 → 飢 ) CJK COMPATIBILITY IDEOGRAPH-2FA02 → CJK UNIFIED IDEOGRAPH-98E2 # + +FA2A ; 98EF ; MA # ( 飯 → 飯 ) CJK COMPATIBILITY IDEOGRAPH-FA2A → CJK UNIFIED IDEOGRAPH-98EF # + +FA2B ; 98FC ; MA # ( 飼 → 飼 ) CJK COMPATIBILITY IDEOGRAPH-FA2B → CJK UNIFIED IDEOGRAPH-98FC # + +2FA03 ; 4B33 ; MA # ( 䬳 → 䬳 ) CJK COMPATIBILITY IDEOGRAPH-2FA03 → CJK UNIFIED IDEOGRAPH-4B33 # + +FA2C ; 9928 ; MA # ( 館 → 館 ) CJK COMPATIBILITY IDEOGRAPH-FA2C → CJK UNIFIED IDEOGRAPH-9928 # + +2FA04 ; 9929 ; MA # ( 餩 → 餩 ) CJK COMPATIBILITY IDEOGRAPH-2FA04 → CJK UNIFIED IDEOGRAPH-9929 # + +2EE0 ; 9963 ; MA #* ( ⻠ → 饣 ) CJK RADICAL C-SIMPLIFIED EAT → CJK UNIFIED IDEOGRAPH-9963 # + +2FB8 ; 9996 ; MA #* ( ⾸ → 首 ) KANGXI RADICAL HEAD → CJK UNIFIED IDEOGRAPH-9996 # + +2FB9 ; 9999 ; MA #* ( ⾹ → 香 ) KANGXI RADICAL FRAGRANT → CJK UNIFIED IDEOGRAPH-9999 # + +2FA05 ; 99A7 ; MA # ( 馧 → 馧 ) CJK COMPATIBILITY IDEOGRAPH-2FA05 → CJK UNIFIED IDEOGRAPH-99A7 # + +2FBA ; 99AC ; MA #* ( ⾺ → 馬 ) KANGXI RADICAL HORSE → CJK UNIFIED IDEOGRAPH-99AC # + +2FA06 ; 99C2 ; MA # ( 駂 → 駂 ) CJK COMPATIBILITY IDEOGRAPH-2FA06 → CJK UNIFIED IDEOGRAPH-99C2 # + +F91A ; 99F1 ; MA # ( 駱 → 駱 ) CJK COMPATIBILITY IDEOGRAPH-F91A → CJK UNIFIED IDEOGRAPH-99F1 # + +2FA07 ; 99FE ; MA # ( 駾 → 駾 ) CJK COMPATIBILITY IDEOGRAPH-2FA07 → CJK UNIFIED IDEOGRAPH-99FE # + +F987 ; 9A6A ; MA # ( 驪 → 驪 ) CJK COMPATIBILITY IDEOGRAPH-F987 → CJK UNIFIED IDEOGRAPH-9A6A # + +2EE2 ; 9A6C ; MA #* ( ⻢ → 马 ) CJK RADICAL C-SIMPLIFIED HORSE → CJK UNIFIED IDEOGRAPH-9A6C # + +2FBB ; 9AA8 ; MA #* ( ⾻ → 骨 ) KANGXI RADICAL BONE → CJK UNIFIED IDEOGRAPH-9AA8 # + +2FA08 ; 4BCE ; MA # ( 䯎 → 䯎 ) CJK COMPATIBILITY IDEOGRAPH-2FA08 → CJK UNIFIED IDEOGRAPH-4BCE # + +2FBC ; 9AD8 ; MA #* ( ⾼ → 高 ) KANGXI RADICAL TALL → CJK UNIFIED IDEOGRAPH-9AD8 # + +2FBD ; 9ADF ; MA #* ( ⾽ → 髟 ) KANGXI RADICAL HAIR → CJK UNIFIED IDEOGRAPH-9ADF # + +2FA09 ; 29B30 ; MA # ( 𩬰 → 𩬰 ) CJK COMPATIBILITY IDEOGRAPH-2FA09 → CJK UNIFIED IDEOGRAPH-29B30 # + +FACD ; 9B12 ; MA # ( 鬒 → 鬒 ) CJK COMPATIBILITY IDEOGRAPH-FACD → CJK UNIFIED IDEOGRAPH-9B12 # +2FA0A ; 9B12 ; MA # ( 鬒 → 鬒 ) CJK COMPATIBILITY IDEOGRAPH-2FA0A → CJK UNIFIED IDEOGRAPH-9B12 # + +2FBE ; 9B25 ; MA #* ( ⾾ → 鬥 ) KANGXI RADICAL FIGHT → CJK UNIFIED IDEOGRAPH-9B25 # + +2FBF ; 9B2F ; MA #* ( ⾿ → 鬯 ) KANGXI RADICAL SACRIFICIAL WINE → CJK UNIFIED IDEOGRAPH-9B2F # + +2FC0 ; 9B32 ; MA #* ( ⿀ → 鬲 ) KANGXI RADICAL CAULDRON → CJK UNIFIED IDEOGRAPH-9B32 # + +2FC1 ; 9B3C ; MA #* ( ⿁ → 鬼 ) KANGXI RADICAL GHOST → CJK UNIFIED IDEOGRAPH-9B3C # +2EE4 ; 9B3C ; MA #* ( ⻤ → 鬼 ) CJK RADICAL GHOST → CJK UNIFIED IDEOGRAPH-9B3C # + +2FC2 ; 9B5A ; MA #* ( ⿂ → 魚 ) KANGXI RADICAL FISH → CJK UNIFIED IDEOGRAPH-9B5A # + +F939 ; 9B6F ; MA # ( 魯 → 魯 ) CJK COMPATIBILITY IDEOGRAPH-F939 → CJK UNIFIED IDEOGRAPH-9B6F # + +2FA0B ; 9C40 ; MA # ( 鱀 → 鱀 ) CJK COMPATIBILITY IDEOGRAPH-2FA0B → CJK UNIFIED IDEOGRAPH-9C40 # + +F9F2 ; 9C57 ; MA # ( 鱗 → 鱗 ) CJK COMPATIBILITY IDEOGRAPH-F9F2 → CJK UNIFIED IDEOGRAPH-9C57 # + +2EE5 ; 9C7C ; MA #* ( ⻥ → 鱼 ) CJK RADICAL C-SIMPLIFIED FISH → CJK UNIFIED IDEOGRAPH-9C7C # + +2FC3 ; 9CE5 ; MA #* ( ⿃ → 鳥 ) KANGXI RADICAL BIRD → CJK UNIFIED IDEOGRAPH-9CE5 # + +2FA0C ; 9CFD ; MA # ( 鳽 → 鳽 ) CJK COMPATIBILITY IDEOGRAPH-2FA0C → CJK UNIFIED IDEOGRAPH-9CFD # + +2FA0D ; 4CCE ; MA # ( 䳎 → 䳎 ) CJK COMPATIBILITY IDEOGRAPH-2FA0D → CJK UNIFIED IDEOGRAPH-4CCE # + +2FA0F ; 9D67 ; MA # ( 鵧 → 鵧 ) CJK COMPATIBILITY IDEOGRAPH-2FA0F → CJK UNIFIED IDEOGRAPH-9D67 # + +2FA0E ; 4CED ; MA # ( 䳭 → 䳭 ) CJK COMPATIBILITY IDEOGRAPH-2FA0E → CJK UNIFIED IDEOGRAPH-4CED # + +2FA10 ; 2A0CE ; MA # ( 𪃎 → 𪃎 ) CJK COMPATIBILITY IDEOGRAPH-2FA10 → CJK UNIFIED IDEOGRAPH-2A0CE # + +FA2D ; 9DB4 ; MA # ( 鶴 → 鶴 ) CJK COMPATIBILITY IDEOGRAPH-FA2D → CJK UNIFIED IDEOGRAPH-9DB4 # + +2FA12 ; 2A105 ; MA # ( 𪄅 → 𪄅 ) CJK COMPATIBILITY IDEOGRAPH-2FA12 → CJK UNIFIED IDEOGRAPH-2A105 # + +2FA11 ; 4CF8 ; MA # ( 䳸 → 䳸 ) CJK COMPATIBILITY IDEOGRAPH-2FA11 → CJK UNIFIED IDEOGRAPH-4CF8 # + +F93A ; 9DFA ; MA # ( 鷺 → 鷺 ) CJK COMPATIBILITY IDEOGRAPH-F93A → CJK UNIFIED IDEOGRAPH-9DFA # + +2FA13 ; 2A20E ; MA # ( 𪈎 → 𪈎 ) CJK COMPATIBILITY IDEOGRAPH-2FA13 → CJK UNIFIED IDEOGRAPH-2A20E # + +F920 ; 9E1E ; MA # ( 鸞 → 鸞 ) CJK COMPATIBILITY IDEOGRAPH-F920 → CJK UNIFIED IDEOGRAPH-9E1E # + +9E43 ; 9E42 ; MA # ( 鹃 → 鹂 ) CJK UNIFIED IDEOGRAPH-9E43 → CJK UNIFIED IDEOGRAPH-9E42 # + +2FC4 ; 9E75 ; MA #* ( ⿄ → 鹵 ) KANGXI RADICAL SALT → CJK UNIFIED IDEOGRAPH-9E75 # + +F940 ; 9E7F ; MA # ( 鹿 → 鹿 ) CJK COMPATIBILITY IDEOGRAPH-F940 → CJK UNIFIED IDEOGRAPH-9E7F # +2FC5 ; 9E7F ; MA #* ( ⿅ → 鹿 ) KANGXI RADICAL DEER → CJK UNIFIED IDEOGRAPH-9E7F # + +2FA14 ; 2A291 ; MA # ( 𪊑 → 𪊑 ) CJK COMPATIBILITY IDEOGRAPH-2FA14 → CJK UNIFIED IDEOGRAPH-2A291 # + +F988 ; 9E97 ; MA # ( 麗 → 麗 ) CJK COMPATIBILITY IDEOGRAPH-F988 → CJK UNIFIED IDEOGRAPH-9E97 # + +F9F3 ; 9E9F ; MA # ( 麟 → 麟 ) CJK COMPATIBILITY IDEOGRAPH-F9F3 → CJK UNIFIED IDEOGRAPH-9E9F # + +2FC6 ; 9EA5 ; MA #* ( ⿆ → 麥 ) KANGXI RADICAL WHEAT → CJK UNIFIED IDEOGRAPH-9EA5 # + +2EE8 ; 9EA6 ; MA #* ( ⻨ → 麦 ) CJK RADICAL SIMPLIFIED WHEAT → CJK UNIFIED IDEOGRAPH-9EA6 # + +2FA15 ; 9EBB ; MA # ( 麻 → 麻 ) CJK COMPATIBILITY IDEOGRAPH-2FA15 → CJK UNIFIED IDEOGRAPH-9EBB # +2FC7 ; 9EBB ; MA #* ( ⿇ → 麻 ) KANGXI RADICAL HEMP → CJK UNIFIED IDEOGRAPH-9EBB # + +2F88F ; 2A392 ; MA # ( 𪎒 → 𪎒 ) CJK COMPATIBILITY IDEOGRAPH-2F88F → CJK UNIFIED IDEOGRAPH-2A392 # + +2FC8 ; 9EC3 ; MA #* ( ⿈ → 黃 ) KANGXI RADICAL YELLOW → CJK UNIFIED IDEOGRAPH-9EC3 # + +2EE9 ; 9EC4 ; MA #* ( ⻩ → 黄 ) CJK RADICAL SIMPLIFIED YELLOW → CJK UNIFIED IDEOGRAPH-9EC4 # + +2FC9 ; 9ECD ; MA #* ( ⿉ → 黍 ) KANGXI RADICAL MILLET → CJK UNIFIED IDEOGRAPH-9ECD # + +F989 ; 9ECE ; MA # ( 黎 → 黎 ) CJK COMPATIBILITY IDEOGRAPH-F989 → CJK UNIFIED IDEOGRAPH-9ECE # + +2FA16 ; 4D56 ; MA # ( 䵖 → 䵖 ) CJK COMPATIBILITY IDEOGRAPH-2FA16 → CJK UNIFIED IDEOGRAPH-4D56 # + +2FCA ; 9ED1 ; MA #* ( ⿊ → 黑 ) KANGXI RADICAL BLACK → CJK UNIFIED IDEOGRAPH-9ED1 # +9ED2 ; 9ED1 ; MA # ( 黒 → 黑 ) CJK UNIFIED IDEOGRAPH-9ED2 → CJK UNIFIED IDEOGRAPH-9ED1 # →⿊→ + +FA3A ; 58A8 ; MA # ( 墨 → 墨 ) CJK COMPATIBILITY IDEOGRAPH-FA3A → CJK UNIFIED IDEOGRAPH-58A8 # + +2FA17 ; 9EF9 ; MA # ( 黹 → 黹 ) CJK COMPATIBILITY IDEOGRAPH-2FA17 → CJK UNIFIED IDEOGRAPH-9EF9 # +2FCB ; 9EF9 ; MA #* ( ⿋ → 黹 ) KANGXI RADICAL EMBROIDERY → CJK UNIFIED IDEOGRAPH-9EF9 # + +2FCC ; 9EFD ; MA #* ( ⿌ → 黽 ) KANGXI RADICAL FROG → CJK UNIFIED IDEOGRAPH-9EFD # + +2FA19 ; 9F05 ; MA # ( 鼅 → 鼅 ) CJK COMPATIBILITY IDEOGRAPH-2FA19 → CJK UNIFIED IDEOGRAPH-9F05 # + +2FA18 ; 9EFE ; MA # ( 黾 → 黾 ) CJK COMPATIBILITY IDEOGRAPH-2FA18 → CJK UNIFIED IDEOGRAPH-9EFE # + +2FCD ; 9F0E ; MA #* ( ⿍ → 鼎 ) KANGXI RADICAL TRIPOD → CJK UNIFIED IDEOGRAPH-9F0E # + +2FA1A ; 9F0F ; MA # ( 鼏 → 鼏 ) CJK COMPATIBILITY IDEOGRAPH-2FA1A → CJK UNIFIED IDEOGRAPH-9F0F # + +2FCE ; 9F13 ; MA #* ( ⿎ → 鼓 ) KANGXI RADICAL DRUM → CJK UNIFIED IDEOGRAPH-9F13 # + +2FA1B ; 9F16 ; MA # ( 鼖 → 鼖 ) CJK COMPATIBILITY IDEOGRAPH-2FA1B → CJK UNIFIED IDEOGRAPH-9F16 # + +2FCF ; 9F20 ; MA #* ( ⿏ → 鼠 ) KANGXI RADICAL RAT → CJK UNIFIED IDEOGRAPH-9F20 # + +2FA1C ; 9F3B ; MA # ( 鼻 → 鼻 ) CJK COMPATIBILITY IDEOGRAPH-2FA1C → CJK UNIFIED IDEOGRAPH-9F3B # +2FD0 ; 9F3B ; MA #* ( ⿐ → 鼻 ) KANGXI RADICAL NOSE → CJK UNIFIED IDEOGRAPH-9F3B # + +FAD8 ; 9F43 ; MA # ( 齃 → 齃 ) CJK COMPATIBILITY IDEOGRAPH-FAD8 → CJK UNIFIED IDEOGRAPH-9F43 # + +2FD1 ; 9F4A ; MA #* ( ⿑ → 齊 ) KANGXI RADICAL EVEN → CJK UNIFIED IDEOGRAPH-9F4A # + +2EEC ; 9F50 ; MA #* ( ⻬ → 齐 ) CJK RADICAL C-SIMPLIFIED EVEN → CJK UNIFIED IDEOGRAPH-9F50 # + +2FD2 ; 9F52 ; MA #* ( ⿒ → 齒 ) KANGXI RADICAL TOOTH → CJK UNIFIED IDEOGRAPH-9F52 # + +2FA1D ; 2A600 ; MA # ( 𪘀 → 𪘀 ) CJK COMPATIBILITY IDEOGRAPH-2FA1D → CJK UNIFIED IDEOGRAPH-2A600 # + +2EEE ; 9F7F ; MA #* ( ⻮ → 齿 ) CJK RADICAL C-SIMPLIFIED TOOTH → CJK UNIFIED IDEOGRAPH-9F7F # + +F9C4 ; 9F8D ; MA # ( 龍 → 龍 ) CJK COMPATIBILITY IDEOGRAPH-F9C4 → CJK UNIFIED IDEOGRAPH-9F8D # +2FD3 ; 9F8D ; MA #* ( ⿓ → 龍 ) KANGXI RADICAL DRAGON → CJK UNIFIED IDEOGRAPH-9F8D # + +FAD9 ; 9F8E ; MA # ( 龎 → 龎 ) CJK COMPATIBILITY IDEOGRAPH-FAD9 → CJK UNIFIED IDEOGRAPH-9F8E # + +2EF0 ; 9F99 ; MA #* ( ⻰ → 龙 ) CJK RADICAL C-SIMPLIFIED DRAGON → CJK UNIFIED IDEOGRAPH-9F99 # + +F907 ; 9F9C ; MA # ( 龜 → 龜 ) CJK COMPATIBILITY IDEOGRAPH-F907 → CJK UNIFIED IDEOGRAPH-9F9C # +F908 ; 9F9C ; MA # ( 龜 → 龜 ) CJK COMPATIBILITY IDEOGRAPH-F908 → CJK UNIFIED IDEOGRAPH-9F9C # +FACE ; 9F9C ; MA # ( 龜 → 龜 ) CJK COMPATIBILITY IDEOGRAPH-FACE → CJK UNIFIED IDEOGRAPH-9F9C # +2FD4 ; 9F9C ; MA #* ( ⿔ → 龜 ) KANGXI RADICAL TURTLE → CJK UNIFIED IDEOGRAPH-9F9C # + +2EF3 ; 9F9F ; MA #* ( ⻳ → 龟 ) CJK RADICAL C-SIMPLIFIED TURTLE → CJK UNIFIED IDEOGRAPH-9F9F # + +2FD5 ; 9FA0 ; MA #* ( ⿕ → 龠 ) KANGXI RADICAL FLUTE → CJK UNIFIED IDEOGRAPH-9FA0 # + +# total: 6311 diff --git a/admin/unidata/copyright.html b/admin/unidata/copyright.html index 66e54b06fc47..567c54e72ac6 100644 --- a/admin/unidata/copyright.html +++ b/admin/unidata/copyright.html @@ -13,7 +13,7 @@ <title>Unicode Terms of Use +href="https://www.unicode.org/webscripts/standard_styles.css"> + +@end group +@end example + +@noindent +a Lisp program will first parse with a @acronym{HTML} parser, then set +ranges for @acronym{CSS} and JavaScript parsers: + +@example +@group +;; Create parsers. +(setq html (treesit-parser-create 'html)) +(setq css (treesit-parser-create 'css)) +(setq js (treesit-parser-create 'javascript)) +@end group + +@group +;; Set CSS ranges. +(setq css-range + (treesit-query-range + 'html + '((style_element (raw_text) @@capture)))) +(treesit-parser-set-included-ranges css css-range) +@end group + +@group +;; Set JavaScript ranges. +(setq js-range + (treesit-query-range + 'html + '((script_element (raw_text) @@capture)))) +(treesit-parser-set-included-ranges js js-range) +@end group +@end example + +Emacs automates this process in @code{treesit-update-ranges}. A +multi-language major mode should set @code{treesit-range-settings} so +that @code{treesit-update-ranges} knows how to perform this process +automatically. Major modes should use the helper function +@code{treesit-range-rules} to generate a value that can be assigned to +@code{treesit-range-settings}. The settings in the following example +directly translate into operations shown above. + +@example +@group +(setq treesit-range-settings + (treesit-range-rules + :embed 'javascript + :host 'html + '((script_element (raw_text) @@capture)) +@end group + +@group + :embed 'css + :host 'html + '((style_element (raw_text) @@capture)))) +@end group +@end example + +@defun treesit-range-rules &rest query-specs +This function is used to set @code{treesit-range-settings}. It takes +care of compiling queries and other post-processing, and outputs a +value that @code{treesit-range-settings} can have. + +It takes a series of @var{query-spec}s, where each @var{query-spec} is +a @var{query} preceded by zero or more @var{keyword}/@var{value} +pairs. Each @var{query} is a tree-sitter query in either the string, +s-expression, or compiled form, or a function. + +If @var{query} is a tree-sitter query, it should be preceded by two +@var{keyword}/@var{value} pairs, where the @code{:embed} keyword +specifies the embedded language, and the @code{:host} keyword +specifies the host language. + +@code{treesit-update-ranges} uses @var{query} to figure out how to set +the ranges for parsers for the embedded language. It queries +@var{query} in a host language parser, computes the ranges which the +captured nodes span, and applies these ranges to embedded language +parsers. + +If @var{query} is a function, it doesn't need any @var{keyword} and +@var{value} pair. It should be a function that takes 2 arguments, +@var{start} and @var{end}, and sets the ranges for parsers in the +current buffer in the region between @var{start} and @var{end}. It is +fine for this function to set ranges in a larger region that +encompasses the region between @var{start} and @var{end}. +@end defun + +@defvar treesit-range-settings +This variable helps @code{treesit-update-ranges} in updating the +ranges for parsers in the buffer. It is a list of @var{setting}s +where the exact format of a @var{setting} is considered internal. You +should use @code{treesit-range-rules} to generate a value that this +variable can have. + +@c Because the format is internal, we don't document them here. Though +@c we do have it explained in the docstring. We also expose the fact +@c that it is a list of settings, so one could combine two of them with +@c append. +@end defvar + + +@defvar treesit-language-at-point-function +This variable's value should be a function that takes a single +argument, @var{pos}, which is a buffer position, and returns the +language of the buffer text at @var{pos}. This variable is used by +@code{treesit-language-at}. +@end defvar + +@node Tree-sitter Major Modes +@section Developing major modes with tree-sitter +@cindex major mode, developing with tree-sitter + +This section covers some general guidelines on developing tree-sitter +integration for a major mode. + +A major mode supporting tree-sitter features should roughly follow +this pattern: + +@example +@group +(define-derived-mode woomy-mode prog-mode "Woomy" + "A mode for Woomy programming language." + (when (treesit-ready-p 'woomy) + (setq-local treesit-variables ...) + ... + (treesit-major-mode-setup))) +@end group +@end example + +@code{treesit-ready-p} automatically emits a warning if conditions for +enabling tree-sitter aren't met. + +If a tree-sitter major mode shares setup with its ``native'' +counterpart, one can create a ``base mode'' that contains the common +setup, like this: + +@example +@group +(define-derived-mode woomy--base-mode prog-mode "Woomy" + "An internal mode for Woomy programming language." + (common-setup) + ...) +@end group + +@group +(define-derived-mode woomy-mode woomy--base-mode "Woomy" + "A mode for Woomy programming language." + (native-setup) + ...) +@end group + +@group +(define-derived-mode woomy-ts-mode woomy--base-mode "Woomy" + "A mode for Woomy programming language." + (when (treesit-ready-p 'woomy) + (setq-local treesit-variables ...) + ... + (treesit-major-mode-setup))) +@end group +@end example + +@defun treesit-ready-p language &optional quiet +This function checks for conditions for activating tree-sitter. It +checks whether Emacs was built with tree-sitter, whether the buffer's +size is not too large for tree-sitter to handle, and whether the +grammar for @var{language} is available on the system (@pxref{Language +Grammar}). + +This function emits a warning if tree-sitter cannot be activated. If +@var{quiet} is @code{message}, the warning is turned into a message; +if @var{quiet} is @code{t}, no warning or message is displayed. + +If all the necessary conditions are met, this function returns +non-@code{nil}; otherwise it returns @code{nil}. +@end defun + +@defun treesit-major-mode-setup +This function activates some tree-sitter features for a major mode. + +Currently, it sets up the following features: +@itemize +@item +If @code{treesit-font-lock-settings} (@pxref{Parser-based Font Lock}) +is non-@code{nil}, it sets up fontification. + +@item +If @code{treesit-simple-indent-rules} (@pxref{Parser-based Indentation}) +is non-@code{nil}, it sets up indentation. + +@item +If @code{treesit-defun-type-regexp} is non-@code{nil}, it sets up +navigation functions for @code{beginning-of-defun} and +@code{end-of-defun}. + +@item +If @code{treesit-defun-name-function} is non-@code{nil}, it sets up +add-log functions used by @code{add-log-current-defun}. + +@item +If @code{treesit-simple-imenu-settings} (@pxref{Imenu}) is +non-@code{nil}, it sets up Imenu. +@end itemize +@end defun + +For more information on these built-in tree-sitter features, +@pxref{Parser-based Font Lock}, @pxref{Parser-based Indentation}, and +@pxref{List Motion}. + +For supporting mixing of multiple languages in a major mode, +@pxref{Multiple Languages}. + +Besides @code{beginning-of-defun} and @code{end-of-defun}, Emacs +provides some additional functions for working with defuns: +@code{treesit-defun-at-point} returns the defun node at point, and +@code{treesit-defun-name} returns the name of a defun node. + +@c FIXME: Cross-reference to treesit-defun-tactic once we have it in +@c the user manual. +@defun treesit-defun-at-point +This function returns the defun node at point, or @code{nil} if none +is found. It respects @code{treesit-defun-tactic}: if its value is +@code{top-level}, this function returns the top-level defun, and if +its value is @code{nested}, it returns the immediate enclosing defun. + +This function requires @code{treesit-defun-type-regexp} to work. If +it is @code{nil}, this function simply returns @code{nil}. +@end defun + +@defun treesit-defun-name node +This function returns the defun name of @var{node}. It returns +@code{nil} if there is no defun name for @var{node}, or if @var{node} +is not a defun node, or if @var{node} is @code{nil}. + +Depending on the language and major mode, the defun names are names +like function name, class name, struct name, etc. + +If @code{treesit-defun-name-function} is @code{nil}, this function +always returns @code{nil}. +@end defun + +@defvar treesit-defun-name-function +If non-@code{nil}, this variable's value should be a function that is +called with a node as its argument, and returns the defun name of the +node. The function should have the same semantics as +@code{treesit-defun-name}: if the node is not a defun node, or the +node is a defun node but doesn't have a name, or the node is +@code{nil}, it should return @code{nil}. +@end defvar + +@node Tree-sitter C API +@section Tree-sitter C API Correspondence + +Emacs' tree-sitter integration doesn't expose every feature +provided by tree-sitter's C API@. Missing features include: + +@itemize +@item +Creating a tree cursor and navigating the syntax tree with it. +@item +Setting timeout and cancellation flag for a parser. +@item +Setting the logger for a parser. +@item +Printing a @acronym{DOT} graph of the syntax tree to a file. +@item +Copying and modifying a syntax tree. (Emacs doesn't expose a tree +object.) +@item +Using (row, column) coordinates as position. +@item +Updating a node with changes. (In Emacs, retrieve a new node instead +of updating the existing one.) +@item +Querying statics of a language grammar. +@end itemize + +In addition, Emacs makes some changes to the C API to make the API more +convenient and idiomatic: + +@itemize +@item +Instead of using byte positions, the Emacs Lisp API uses character +positions. +@item +Null nodes are converted to @code{nil}. +@end itemize + +Below is the correspondence between all C API functions and their +ELisp counterparts. Sometimes one ELisp function corresponds to +multiple C functions, and many C functions don't have an ELisp +counterpart. + +@example +ts_parser_new treesit-parser-create +ts_parser_delete +ts_parser_set_language +ts_parser_language treesit-parser-language +ts_parser_set_included_ranges treesit-parser-set-included-ranges +ts_parser_included_ranges treesit-parser-included-ranges +ts_parser_parse +ts_parser_parse_string treesit-parse-string +ts_parser_parse_string_encoding +ts_parser_reset +ts_parser_set_timeout_micros +ts_parser_timeout_micros +ts_parser_set_cancellation_flag +ts_parser_cancellation_flag +ts_parser_set_logger +ts_parser_logger +ts_parser_print_dot_graphs +ts_tree_copy +ts_tree_delete +ts_tree_root_node +ts_tree_language +ts_tree_edit +ts_tree_get_changed_ranges +ts_tree_print_dot_graph +ts_node_type treesit-node-type +ts_node_symbol +ts_node_start_byte treesit-node-start +ts_node_start_point +ts_node_end_byte treesit-node-end +ts_node_end_point +ts_node_string treesit-node-string +ts_node_is_null +ts_node_is_named treesit-node-check +ts_node_is_missing treesit-node-check +ts_node_is_extra treesit-node-check +ts_node_has_changes +ts_node_has_error treesit-node-check +ts_node_parent treesit-node-parent +ts_node_child treesit-node-child +ts_node_field_name_for_child treesit-node-field-name-for-child +ts_node_child_count treesit-node-child-count +ts_node_named_child treesit-node-child +ts_node_named_child_count treesit-node-child-count +ts_node_child_by_field_name treesit-node-child-by-field-name +ts_node_child_by_field_id +ts_node_next_sibling treesit-node-next-sibling +ts_node_prev_sibling treesit-node-prev-sibling +ts_node_next_named_sibling treesit-node-next-sibling +ts_node_prev_named_sibling treesit-node-prev-sibling +ts_node_first_child_for_byte treesit-node-first-child-for-pos +ts_node_first_named_child_for_byte treesit-node-first-child-for-pos +ts_node_descendant_for_byte_range treesit-node-descendant-for-range +ts_node_descendant_for_point_range +ts_node_named_descendant_for_byte_range treesit-node-descendant-for-range +ts_node_named_descendant_for_point_range +ts_node_edit +ts_node_eq treesit-node-eq +ts_tree_cursor_new +ts_tree_cursor_delete +ts_tree_cursor_reset +ts_tree_cursor_current_node +ts_tree_cursor_current_field_name +ts_tree_cursor_current_field_id +ts_tree_cursor_goto_parent +ts_tree_cursor_goto_next_sibling +ts_tree_cursor_goto_first_child +ts_tree_cursor_goto_first_child_for_byte +ts_tree_cursor_goto_first_child_for_point +ts_tree_cursor_copy +ts_query_new +ts_query_delete +ts_query_pattern_count +ts_query_capture_count +ts_query_string_count +ts_query_start_byte_for_pattern +ts_query_predicates_for_pattern +ts_query_step_is_definite +ts_query_capture_name_for_id +ts_query_string_value_for_id +ts_query_disable_capture +ts_query_disable_pattern +ts_query_cursor_new +ts_query_cursor_delete +ts_query_cursor_exec treesit-query-capture +ts_query_cursor_did_exceed_match_limit +ts_query_cursor_match_limit +ts_query_cursor_set_match_limit +ts_query_cursor_set_byte_range +ts_query_cursor_set_point_range +ts_query_cursor_next_match +ts_query_cursor_remove_match +ts_query_cursor_next_capture +ts_language_symbol_count +ts_language_symbol_name +ts_language_symbol_for_name +ts_language_field_count +ts_language_field_name_for_id +ts_language_field_id_for_name +ts_language_symbol_type +ts_language_version +@end example diff --git a/doc/lispref/positions.texi b/doc/lispref/positions.texi index 736d521cdced..de2a37cd308a 100644 --- a/doc/lispref/positions.texi +++ b/doc/lispref/positions.texi @@ -1,6 +1,6 @@ @c -*- mode: texinfo; coding: utf-8 -*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990--1995, 1998--2023 Free Software Foundation, Inc. +@c Copyright (C) 1990--1995, 1998--2024 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Positions @chapter Positions @@ -387,6 +387,16 @@ Return the position that @code{(end-of-line @var{count})} would move to. @end defun +@defun pos-bol &optional count +Like @code{line-beginning-position}, but ignores fields (and is more +efficient). +@end defun + +@defun pos-eol &optional count +Like @code{line-end-position}, but ignores fields (and is more +efficient). +@end defun + @deffn Command forward-line &optional count @cindex beginning of line This function moves point forward @var{count} lines, to the beginning of @@ -550,16 +560,23 @@ improve the performance of your code. @xref{Truncation, cache-long-scans}. @defun vertical-motion count &optional window cur-col This function moves point to the start of the screen line @var{count} screen lines down from the screen line containing point. If @var{count} -is negative, it moves up instead. - -The @var{count} argument can be a cons cell, @code{(@var{cols} -. @var{lines})}, instead of an integer. Then the function moves by -@var{lines} screen lines, and puts point @var{cols} columns from the -visual start of that screen line. Note that @var{cols} are counted -from the @emph{visual} start of the line; if the window is scrolled -horizontally (@pxref{Horizontal Scrolling}), the column on which point -will end is in addition to the number of columns by which the text is -scrolled. +is negative, it moves up instead. If @var{count} is zero, point moves +to the visual start of the current screen line. + +The @var{count} argument can be a cons cell, @w{@code{(@var{cols} +. @var{lines})}}, instead of an integer. Then the function moves by +@var{lines} screen lines, as described for @var{count} above, and puts +point @var{cols} columns from the visual start of that screen line. +The value of @var{cols} can be a float, and is interpreted in units of +the frame's canonical character width (@pxref{Frame Font}); this +allows specifying accurate horizontal position of point when the +target screen line uses variable fonts. Note that @var{cols} are +counted from the @emph{visual} start of the line; if the window is +scrolled horizontally (@pxref{Horizontal Scrolling}), the column where +point will end is in addition to the number of columns by which the +text is scrolled, and if the target line is a continuation line, its +leftmost column is considered column zero (unlike column-oriented +functions, @pxref{Columns}). The return value is the number of screen lines over which point was moved. The value may be less in absolute value than @var{count} if @@ -824,6 +841,37 @@ a defun. The function @code{end-of-defun} calls this function instead of using its normal method. @end defvar +@findex treesit-beginning-of-defun +@findex treesit-end-of-defun +If Emacs is compiled with tree-sitter, it can use the tree-sitter +parser information to move across syntax constructs. Since what +exactly is considered a defun varies between languages, a major mode +should set @code{treesit-defun-type-regexp} to determine that. Then +the mode can get navigation-by-defun functionality for free, by using +@code{treesit-beginning-of-defun} and @code{treesit-end-of-defun}. + +@defvar treesit-defun-type-regexp +This variable determines which nodes are considered defuns by Emacs. +It can be a regexp that matches the type of defun nodes. (For +``node'' and ``node type'', @pxref{Parsing Program Source}.) + +For example, @code{python-mode} sets this variable to a regexp that +matches either @samp{function_definition} or @samp{class_definition}. + +Sometimes not all nodes matched by the regexp are valid defuns. +Therefore, this variable can also be a cons cell of the form +@w{(@var{regexp} . @var{pred})}, where @var{pred} should be a function +that takes a node as its argument, and returns non-@code{nil} if the +node is a valid defun, or @code{nil} if it is not valid. +@end defvar + +@defvar treesit-defun-tactic +This variable determines how Emacs treats nested defuns. If the value +is @code{top-level}, navigation functions only move across top-level +defuns. If the value is @code{nested}, navigation functions recognize +nested defuns. +@end defvar + @node Skipping Characters @subsection Skipping Characters @cindex skipping characters @@ -1002,6 +1050,14 @@ positions. In an interactive call, @var{start} and @var{end} are set to the bounds of the current region (point and the mark, with the smallest first). + +However, when the narrowing has been set by @code{with-restriction} with +a label argument (see below), @code{narrow-to-region} can be used only +within the limits of that narrowing. If @var{start} or @var{end} are +outside these limits, the corresponding limit set by +@code{with-restriction} is used instead. To gain access to other +portions of the buffer, use @code{without-restriction} with the same +label. @end deffn @deffn Command narrow-to-page &optional move-count @@ -1025,6 +1081,12 @@ It is equivalent to the following expression: @example (narrow-to-region 1 (1+ (buffer-size))) @end example + +However, when a narrowing has been set by @code{with-restriction} with a +label argument (see below), the limits set by @code{with-restriction} +are restored, instead of canceling the narrowing. To gain access to +other portions of the buffer, use @code{without-restriction} with the +same label. @end deffn @defun buffer-narrowed-p @@ -1040,6 +1102,9 @@ in effect. The state of narrowing is restored even in the event of an abnormal exit via @code{throw} or error (@pxref{Nonlocal Exits}). Therefore, this construct is a clean way to narrow a buffer temporarily. +This construct also saves and restores the narrowings that were set by +@code{with-restriction} with a label argument (see below). + The value returned by @code{save-restriction} is that returned by the last form in @var{body}, or @code{nil} if no body forms were given. @@ -1089,3 +1154,66 @@ This is the contents of foo@point{} @end group @end example @end defspec + +@defspec with-restriction start end [:label label] body +This special form saves the current bounds of the accessible portion +of the buffer, sets the accessible portion to start at @var{start} and +end at @var{end}, evaluates the @var{body} forms, and restores the +saved bounds. In that case it is equivalent to + +@example +(save-restriction + (narrow-to-region start end) + body) +@end example + +@cindex labeled narrowing +@cindex labeled restriction +When the optional argument @var{label}, which is evaluated to get the +label to use and must yield a non-@code{nil} value, is present, the +narrowing is @dfn{labeled}. A labeled narrowing differs from a +non-labeled one in several ways: + +@itemize @bullet +@item +During the evaluation of the @var{body} form, @code{narrow-to-region} +and @code{widen} can be used only within the @var{start} and @var{end} +limits. + +@item +To lift the restriction introduced by @code{with-restriction} and gain +access to other portions of the buffer, use @code{without-restriction} +with the same @var{label} argument. (Another way to gain access to +other portions of the buffer is to use an indirect buffer +(@pxref{Indirect Buffers}).) + +@item +Labeled narrowings can be nested. + +@item +Labeled narrowings can only be used in Lisp programs: they are never +visible on display, and never interfere with narrowings set by the +user. +@end itemize + +If you use @code{with-restriction} with the optional @var{label} +argument, we recommend documenting the @var{label} in the doc strings +of the functions which use it, so that other Lisp programs your code +calls could lift the labeled narrowing if and when it needs. +@end defspec + +@defspec without-restriction [:label label] body +This special form saves the current bounds of the accessible portion +of the buffer, widens the buffer, evaluates the @var{body} forms, and +restores the saved bounds. In that case it is equivalent to + +@example +(save-restriction + (widen) + body) +@end example + +When the optional argument @var{label} is present, the narrowing set +by @code{with-restriction} with the same @var{label} argument is +lifted. +@end defspec diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi index 4184ce2e108f..e3eee3d07196 100644 --- a/doc/lispref/processes.texi +++ b/doc/lispref/processes.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990--1995, 1998--1999, 2001--2023 Free Software +@c Copyright (C) 1990--1995, 1998--1999, 2001--2024 Free Software @c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Processes @@ -197,7 +197,7 @@ gives special treatment to certain characters, and if these characters occur in the file name, they will confuse the shell. To handle these characters, use the function @code{shell-quote-argument}: -@defun shell-quote-argument argument +@defun shell-quote-argument argument &optional posix This function returns a string that represents, in shell syntax, an argument whose actual contents are @var{argument}. It should work reliably to concatenate the return value into a shell command @@ -227,6 +227,15 @@ a shell command: " " (shell-quote-argument newfile)) @end example + +If the optional @var{posix} argument is non-@code{nil}, @var{argument} +is quoted according to POSIX shell quoting rules, regardless of the +system’s shell. This is useful when your shell could run on a remote +host, which requires a POSIX shell in general. + +@example +(shell-quote-argument "foo > bar" (file-remote-p default-directory)) +@end example @end defun @cindex quoting and unquoting command-line arguments @@ -498,7 +507,7 @@ string describing this signal. Since there are processes violating this rule, returning exit codes greater than 128 which are not bound to a signal, @code{process-file} returns always the exit code as natural number for remote processes. -Setting this user option to non-nil forces @code{process-file} to +Setting this user option to non-@code{nil} forces @code{process-file} to interpret such exit codes as signals, and to return a corresponding string. @end defopt @@ -696,12 +705,13 @@ coding system will apply. @xref{Default Coding Systems}. Initialize the type of device used to communicate with the subprocess. Possible values are @code{pty} to use a pty, @code{pipe} to use a pipe, or @code{nil} to use the default derived from the value of the -@code{process-connection-type} variable. This parameter and the value -of @code{process-connection-type} are ignored if a non-@code{nil} -value is specified for the @code{:stderr} parameter; in that case, the -type will always be @code{pipe}. On systems where ptys are not -available (MS-Windows), this parameter is likewise ignored, and pipes -are used unconditionally. +@code{process-connection-type} variable. If @var{type} is a cons cell +@w{@code{(@var{input} . @var{output})}}, then @var{input} will be used +for standard input and @var{output} for standard output (and standard +error if @code{:stderr} is @code{nil}). + +On systems where ptys are not available (MS-Windows), this parameter +is ignored, and pipes are used unconditionally. @item :noquery @var{query-flag} Initialize the process query flag to @var{query-flag}. @@ -966,6 +976,15 @@ use the function @code{process-tty-name} (@pxref{Process Information}). @end defvar +@defvar process-error-pause-time +If a process sentinel/filter function has an error, Emacs will (by +default) pause Emacs for @code{process-error-pause-time} seconds after +displaying this error, so that users will see the error in question. +However, this can lead to situations where Emacs becomes unresponsive +(if there's a lot of these errors happening), so this can be disabled +by setting @code{process-error-pause-time} to 0. +@end defvar + @node Deleting Processes @section Deleting Processes @cindex deleting processes @@ -993,16 +1012,18 @@ terminated (due to calling @code{exit} or to a signal). If it is they exit. @end defopt -@defun delete-process process +@defun delete-process &optional process This function deletes a process, killing it with a @code{SIGKILL} signal if the process was running a program. The argument may be a process, the name of a process, a buffer, or the name of a buffer. (A buffer or buffer-name stands for the process that -@code{get-buffer-process} returns.) Calling @code{delete-process} on -a running process terminates it, updates the process status, and runs -the sentinel immediately. If the process has already terminated, -calling @code{delete-process} has no effect on its status, or on the -running of its sentinel (which will happen sooner or later). +@code{get-buffer-process} returns, and a missing or @code{nil} +@var{process} means that the current buffer's process should be +killed.) Calling @code{delete-process} on a running process +terminates it, updates the process status, and runs the sentinel +immediately. If the process has already terminated, calling +@code{delete-process} has no effect on its status, or on the running +of its sentinel (which will happen sooner or later). If the process object represents a network, serial, or pipe connection, its status changes to @code{closed}; otherwise, it changes @@ -1222,15 +1243,24 @@ that are already closed, the value is either 0 or 256, depending on whether the connection was closed normally or abnormally. @end defun -@defun process-tty-name process +@defun process-tty-name process &optional stream This function returns the terminal name that @var{process} is using for its communication with Emacs---or @code{nil} if it is using pipes instead of a pty (see @code{process-connection-type} in -@ref{Asynchronous Processes}). If @var{process} represents a program -running on a remote host, the terminal name used by that program on -the remote host is provided as process property @code{remote-tty}. If -@var{process} represents a network, serial, or pipe connection, the -value is @code{nil}. +@ref{Asynchronous Processes}). By default, this function returns the +terminal name if any of @var{process}'s standard streams use a +terminal. If @var{stream} is one of @code{stdin}, @code{stdout}, or +@code{stderr}, this function returns the terminal name (or @code{nil}, +as above) that @var{process} uses for that stream specifically. You +can use this to determine whether a particular stream uses a pipe or a +pty. + +If @var{process} represents a program running on a remote host, this +function returns the @emph{local} terminal name that communicates with +@var{process}; you can get the terminal name used by that program on +the remote host with the process property @code{remote-tty}. If +@var{process} represents a network, serial, or pipe connection, this +function always returns @code{nil}. @end defun @defun process-coding-system process @@ -1413,11 +1443,13 @@ non-@code{nil}, you can think of this function as typing @kbd{C-c} on the terminal by which Emacs talks to the subprocess. @end defun -@defun kill-process &optional process current-group -This function kills the process @var{process} by sending the +@deffn Command kill-process &optional process current-group +This command kills the process @var{process} by sending the signal @code{SIGKILL}. This signal kills the subprocess immediately, -and cannot be handled by the subprocess. -@end defun +and cannot be handled by the subprocess. Interactively, it'll prompt +the user for a process name, defaulting to the process (if any) in the +current buffer. +@end deffn @defun quit-process &optional process current-group This function sends the signal @code{SIGQUIT} to the process @@ -1452,7 +1484,7 @@ incoming data from the connection. For serial connections, data that arrived during the time the process was stopped might be lost. @end defun -@deffn Command signal-process process signal +@deffn Command signal-process process signal &optional remote This function sends a signal to process @var{process}. The argument @var{signal} specifies which signal to send; it should be an integer, or a symbol whose name is a signal. @@ -1460,12 +1492,21 @@ or a symbol whose name is a signal. The @var{process} argument can be a system process @acronym{ID} (an integer); that allows you to send signals to processes that are not children of Emacs. @xref{System Processes}. + +If @var{process} is a process object which contains the property +@code{remote-pid}, or @var{process} is a number and @var{remote} is a +remote file name, @var{process} is interpreted as process on the +respective remote host, which will be the process to signal. + +If @var{process} is a string, it is interpreted as process object with +the respective process name, or as a number. @end deffn Sometimes, it is necessary to send a signal to a non-local asynchronous process. This is possible by writing an own -@code{interrupt-process} implementation. This function must be added -then to @code{interrupt-process-functions}. +@code{interrupt-process} or @code{signal-process} implementation. +This function must be added then to @code{interrupt-process-functions} +or @code{signal-process-functions}, respectively. @defvar interrupt-process-functions This variable is a list of functions to be called for @@ -1478,6 +1519,17 @@ default function, which shall always be the last in this list, is This is the mechanism, how Tramp implements @code{interrupt-process}. @end defvar +@defvar signal-process-functions +This variable is a list of functions to be called for +@code{signal-process}. The arguments of the functions are the same as +for @code{signal-process}. These functions are called in the order of +the list, until one of them returns non-@code{nil}. The default +function, which shall always be the last in this list, is +@code{internal-default-signal-process}. + +This is the mechanism, how Tramp implements @code{signal-process}. +@end defvar + @node Output from Processes @section Receiving Output from Processes @cindex process output @@ -1491,20 +1543,11 @@ a buffer, which is called the associated buffer of the process default filter discards the output. If the subprocess writes to its standard error stream, by default -the error output is also passed to the process filter function. If -Emacs uses a pseudo-TTY (pty) for communication with the subprocess, -then it is impossible to separate the standard output and standard -error streams of the subprocess, because a pseudo-TTY has only one -output channel. In that case, if you want to keep the output to those -streams separate, you should redirect one of them to a file---for -example, by using an appropriate shell command via -@code{start-process-shell-command} or a similar function. - - Alternatively, you could use the @code{:stderr} parameter with a +the error output is also passed to the process filter function. +Alternatively, you could use the @code{:stderr} parameter with a non-@code{nil} value in a call to @code{make-process} (@pxref{Asynchronous Processes, make-process}) to make the destination -of the error output separate from the standard output; in that case, -Emacs will use pipes for communicating with the subprocess. +of the error output separate from the standard output. When a subprocess terminates, Emacs reads any pending output, then stops reading output from that subprocess. Therefore, if the @@ -1601,8 +1644,10 @@ from previous output. @defun set-process-buffer process buffer This function sets the buffer associated with @var{process} to @var{buffer}. If @var{buffer} is @code{nil}, the process becomes -associated with no buffer; if non-@code{nil}, the process mark will be -set to point to the end of @var{buffer}. +associated with no buffer; if non-@code{nil} and different from the +buffer associated with the process, the process mark will be set to +point to the end of @var{buffer} (unless the process mark is already +associated with @var{buffer}). @end defun @defun get-buffer-process buffer-or-name @@ -1715,7 +1760,9 @@ caught automatically, so that it doesn't stop the execution of whatever program was running when the filter function was started. However, if @code{debug-on-error} is non-@code{nil}, errors are not caught. This makes it possible to use the Lisp debugger to debug filter -functions. @xref{Debugger}. +functions. @xref{Debugger}. If an error is caught, Emacs pauses for +@code{process-error-pause-time} seconds so that the user sees the +error. @xref{Asynchronous Processes} Many filter functions sometimes (or always) insert the output in the process's buffer, mimicking the actions of the default filter. @@ -1920,7 +1967,6 @@ because @var{seconds} can be floating point to specify waiting a fractional number of seconds. If @var{seconds} is 0, the function accepts whatever output is pending but does not wait. -@c Emacs 22.1 feature If @var{process} is a process, and the argument @var{just-this-one} is non-@code{nil}, only output from that process is handled, suspending output from other processes until some output has been received from that @@ -2120,7 +2166,9 @@ automatically, so that it doesn't stop the execution of whatever programs was running when the sentinel was started. However, if @code{debug-on-error} is non-@code{nil}, errors are not caught. This makes it possible to use the Lisp debugger to debug the -sentinel. @xref{Debugger}. +sentinel. @xref{Debugger}. If an error is caught, Emacs pauses for +@code{process-error-pause-time} seconds so that the user sees the +error. @xref{Asynchronous Processes} While a sentinel is running, the process sentinel is temporarily set to @code{nil} so that the sentinel won't run recursively. @@ -2221,9 +2269,8 @@ query flag of all processes is ignored. In addition to accessing and manipulating processes that are subprocesses of the current Emacs session, Emacs Lisp programs can -also access other processes running on the same machine. We call -these @dfn{system processes}, to distinguish them from Emacs -subprocesses. +also access other processes. We call these @dfn{system processes}, to +distinguish them from Emacs subprocesses. Emacs provides several primitives for accessing system processes. Not all platforms support these primitives; on those which don't, @@ -2235,6 +2282,9 @@ system. Each process is identified by its @acronym{PID}, a numerical process ID that is assigned by the OS and distinguishes the process from all the other processes running on the same machine at the same time. + +If @code{default-directory} points to a remote host, processes of that +host are returned. @end defun @defun process-attributes pid @@ -2246,6 +2296,9 @@ attribute @var{key}s that this function can return are listed below. Not all platforms support all of these attributes; if an attribute is not supported, its association will not appear in the returned alist. +If @code{default-directory} points to a remote host, @var{pid} is +regarded as process of that host. + @table @code @item euid The effective user ID of the user who invoked the process. The @@ -2371,8 +2424,9 @@ occupied by the process in the machine's physical memory. @item pcpu The percentage of the CPU time used by the process since it started. -The corresponding @var{value} is a floating-point number between 0 and -100. +The corresponding @var{value} is a nonnegative floating-point number. +Although in theory the number can exceed 100 on a multicore platform, +it is usually less than 100 because Emacs is typically single-threaded. @item pmem The percentage of the total physical memory installed on the machine @@ -2540,6 +2594,10 @@ that are mainly relevant to encrypted connections: @item :nowait @var{boolean} If non-@code{nil}, try to make an asynchronous connection. +@item :noquery @var{query-flag} +Initialize the process query flag to @var{query-flag}. +@xref{Query Before Exit}. + @item :coding @var{coding} Use this to set the coding systems used by the network process, in preference to binding @code{coding-system-for-read} or @@ -2562,7 +2620,7 @@ and @samp{:capability-command} are supplied, try to upgrade to an encrypted connection via @acronym{STARTTLS}. If that fails, retain the unencrypted connection. @item starttls -As for @code{nil}, but if @acronym{STARTTLS} fails drop the connection. +As for @code{nil}, but if @acronym{STARTTLS} fails, drop the connection. @item shell A shell connection. @end table @@ -2573,9 +2631,9 @@ doing a @samp{plain} connection. @item :capability-command @var{capability-command} Command to query the host capabilities. This can either be a string -(which will then be sent verbatim to the server), or a function -(called with a single parameter; the "greeting" from the server when -connecting), and should return a string. +(which will then be sent verbatim to the server) or a function +(called with a single parameter: the ``greeting'' from the server when +connecting) that should return a string. @item :end-of-command @var{regexp} @itemx :end-of-capability @var{regexp} @@ -2584,8 +2642,8 @@ command @var{capability-command}. The latter defaults to the former. @item :starttls-function @var{function} Function of one argument (the response to @var{capability-command}), -which returns either @code{nil}, or the command to activate @acronym{STARTTLS} -if supported. +which returns either @code{nil} or the command to activate +@acronym{STARTTLS}, if supported. @item :success @var{regexp} Regular expression matching a successful @acronym{STARTTLS} negotiation. @@ -2609,12 +2667,13 @@ naming the certificate key file and certificate file itself, or Library}). Only used for @acronym{TLS} or @acronym{STARTTLS}. To enable automatic queries of @code{auth-source} when @code{:client-certificate} is not specified customize -@code{network-stream-use-client-certificates} to t. +@code{network-stream-use-client-certificates} to @code{t}. @item :return-list @var{cons-or-nil} The return value of this function. If omitted or @code{nil}, return a -process object. Otherwise, a cons of the form @code{(@var{process-object} -. @var{plist})}, where @var{plist} has keywords: +process object. Otherwise, a cons of the form +@w{@code{(@var{process-object} . @var{plist})}}, where @var{plist} can +include the following keywords: @table @code @item :greeting @var{string-or-nil} @@ -2627,11 +2686,12 @@ The connection type: @samp{plain} or @samp{tls}. @item :shell-command @var{string-or-nil} If the connection @code{type} is @code{shell}, this parameter will be -interpreted as a format-spec string that will be executed to make the -connection. The specs available are @samp{%s} for the host name and -@samp{%p} for the port number. For instance, if you want to first ssh -to @samp{gateway} before making a plain connection, then this -parameter could be something like @samp{ssh gateway nc %s %p}. +interpreted as a format-spec string (@pxref{Custom Format Strings}) +that will be executed to make the connection. The specs available are +@samp{%s} for the host name and @samp{%p} for the port number. For +instance, if you want to first ssh to @samp{gateway} before making a +plain connection, then this parameter's value could be something like +@samp{ssh gateway nc %s %p}. @end table @@ -3159,20 +3219,39 @@ If the vector does not include the port number, @var{p}, or if @code{:@var{p}} suffix. @end defun -@defun network-lookup-address-info name &optional family -This function is used to perform hostname lookups on @var{name}, which -is expected to be an ASCII-only string, otherwise an error is -signaled. Call @code{puny-encode-domain} on @var{name} -first if you wish to lookup internationalized hostnames. +@defun network-lookup-address-info name &optional family hints +This function perform hostname lookups on @var{name}, which is +expected to be an ASCII-only string, otherwise it signals an error. Call +@code{puny-encode-domain} on @var{name} first if you wish to lookup +internationalized hostnames. -If successful it returns a list of Lisp representations of network -addresses, otherwise it returns @code{nil}. In the latter case, it -also displays the error message hopefully explaining what went wrong. +If successful, this function returns a list of Lisp representations of network +addresses (@pxref{Network Processes}, for a description of the +format), otherwise return @code{nil}. In the latter case, it also logs +an error message hopefully explaining what went wrong. -By default both IPv4 and IPv6 lookups are attempted. The optional -argument @var{family} controls this behavior, specifying the symbol -@code{ipv4} or @code{ipv6} restricts lookups to IPv4 and IPv6 +By default, this function attempts both IPv4 and IPv6 lookups. The +optional argument @var{family} controls this behavior, specifying the +symbol @code{ipv4} or @code{ipv6} restricts lookups to IPv4 and IPv6 respectively. + +If optional argument @var{hints} is @code{numeric}, the function +treats the @var{name} as a numerical IP address (and does not perform DNS +lookups). This can be used to check whether a string is a valid +numerical representation of an IP address, or to convert a numerical +string to its canonical representation. e.g.@: + +@example +(network-lookup-address-info "127.1" 'ipv4 'numeric) + @result{} ([127 0 0 1 0]) + +(network-lookup-address-info "::1" nil 'numeric) + @result{} ([0 0 0 0 0 0 0 1 0]) +@end example + +Be warned that there are some surprising valid forms, +especially for IPv4, e.g @samp{0xe3010203} and @samp{0343.1.2.3} are both +valid, as are @samp{0} and @samp{1} (but they are invalid for IPv6). @end defun @node Serial Ports @@ -3425,20 +3504,64 @@ type values: @itemx byte Unsigned byte, with length 1. -@item uint @var{bitlen} -Unsigned integer in network byte order, with @var{bitlen} bits. +@item uint @var{bitlen} &optional @var{le} +Unsigned integer in network byte order (big-endian), with @var{bitlen} bits. @var{bitlen} has to be a multiple of 8. +If @var{le} is non-@code{nil}, then use little-endian byte order. -@item uintr @var{bitlen} -Unsigned integer in little endian order, with @var{bitlen} bits. +@item sint @var{bitlen} @var{le} +Signed integer in network byte order (big-endian), with @var{bitlen} bits. @var{bitlen} has to be a multiple of 8. +If @var{le} is non-@code{nil}, then use little-endian byte order. @item str @var{len} -String of bytes of length @var{len}. +Unibyte string (@pxref{Text Representations}) of length @var{len} bytes. +When packing, the first @var{len} bytes of the input string are copied +to the packed output. If the input string is shorter than @var{len}, +the remaining bytes will be null (zero) unless a pre-allocated string +was provided to @code{bindat-pack}, in which case the remaining bytes +are left unmodified. If the input string is multibyte with only ASCII +and @code{eight-bit} characters, it is converted to unibyte before it +is packed; other multibyte strings signal an error. When unpacking, +any null bytes in the packed input string will appear in the unpacked +output. @item strz &optional @var{len} -Zero-terminated string of bytes, can be of arbitrary length or in a fixed-size -field with length @var{len}. +If @var{len} is not provided, this is a variable-length +null-terminated unibyte string (@pxref{Text Representations}). When +packing into @code{strz}, the entire input string is copied to the +packed output followed by a null (zero) byte. (If pre-allocated +string is provided for packing into @code{strz}, that pre-allocated +string should have enough space for the additional null byte appended +to the output string contents, @pxref{Bindat Functions}). The length +of the packed output is the length of the input string plus one (for +the null terminator). The input string must not contain any null +bytes. If the input string is multibyte with only ASCII and +@code{eight-bit} characters, it is converted to unibyte before it is +packed; other multibyte strings signal an error. When unpacking a +@code{strz}, the resulting output string will contain all bytes up to +(but excluding) the null byte that terminated the input string. + +If @var{len} is provided, @code{strz} behaves the same as @code{str}, +but with a couple of differences: + +@itemize @bullet +@item +When packing, a null terminator is written after the packed input +string if the number of characters in the input string is less than +@var{len}. + +@item +When unpacking, the first null byte encountered in the packed string +is interpreted as the terminating byte, and it and all subsequent +bytes are excluded from the result of the unpacking. +@end itemize + +@quotation Caution +The packed output will not be null-terminated unless the input string +is shorter than @var{len} bytes or it contains a null byte within the +first @var{len} bytes. +@end quotation @item vec @var{len} [@var{type}] Vector of @var{len} elements. The type of the elements is given by @@ -3458,8 +3581,8 @@ and @code{#x1c} @code{#x28} to @w{@code{(3 5 10 11 12)}}. @item fill @var{len} @var{len} bytes used as a mere filler. In packing, these bytes are -are left unchanged, which normally means they remain zero. -When unpacking, this just returns nil. +left unchanged, which normally means they remain zero. +When unpacking, this just returns @code{nil}. @item align @var{len} Same as @code{fill} except the number of bytes is that needed to skip diff --git a/doc/lispref/records.texi b/doc/lispref/records.texi index 26c6f30a6b58..855157ca573b 100644 --- a/doc/lispref/records.texi +++ b/doc/lispref/records.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 2017--2023 Free Software Foundation, Inc. +@c Copyright (C) 2017--2024 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Records @chapter Records diff --git a/doc/lispref/searching.texi b/doc/lispref/searching.texi index a8090846c180..c697c929b6a6 100644 --- a/doc/lispref/searching.texi +++ b/doc/lispref/searching.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990--1995, 1998--1999, 2001--2023 Free Software +@c Copyright (C) 1990--1995, 1998--1999, 2001--2024 Free Software @c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Searching and Matching @@ -548,12 +548,12 @@ can act. It is poor practice to depend on this behavior; quote the special character anyway, regardless of where it appears. As a @samp{\} is not special inside a character alternative, it can -never remove the special meaning of @samp{-} or @samp{]}. So you -should not quote these characters when they have no special meaning -either. This would not clarify anything, since backslashes can -legitimately precede these characters where they @emph{have} special -meaning, as in @samp{[^\]} (@code{"[^\\]"} for Lisp string syntax), -which matches any single character except a backslash. +never remove the special meaning of @samp{-}, @samp{^} or @samp{]}. +You should not quote these characters when they have no special +meaning. This would not clarify anything, since backslashes +can legitimately precede these characters where they @emph{have} +special meaning, as in @samp{[^\]} (@code{"[^\\]"} for Lisp string +syntax), which matches any single character except a backslash. In practice, most @samp{]} that occur in regular expressions close a character alternative and hence are special. However, occasionally a @@ -832,21 +832,22 @@ the characters that stand for them. matches any character whose syntax is not @var{code}. @cindex category, regexp search for -@item \c@var{c} -matches any character whose category is @var{c}. Here @var{c} is a -character that represents a category: thus, @samp{c} for Chinese -characters or @samp{g} for Greek characters in the standard category -table. You can see the list of all the currently defined categories -with @kbd{M-x describe-categories @key{RET}}. You can also define -your own categories in addition to the standard ones using the -@code{define-category} function (@pxref{Categories}). - -@item \C@var{c} -matches any character whose category is not @var{c}. +@item \c@var{code} +matches any character whose category is @var{code}. Here @var{code} +is a character that represents a category: for example, in the standard +category table, @samp{c} stands for Chinese characters and @samp{g} +stands for Greek characters. You can see the list of all the +currently defined categories with @w{@kbd{M-x describe-categories +@key{RET}}}. You can also define your own categories in addition to +the standard ones using the @code{define-category} function +(@pxref{Categories}). + +@item \C@var{code} +matches any character whose category is not @var{code}. @end table The following regular expression constructs match the empty string---that is, -they don't use up any characters---but whether they match depends on the +they don't consume any characters---but whether they match depends on the context. For all, the beginning and end of the accessible portion of the buffer are treated as if they were the actual beginning and end of the buffer. @@ -1060,11 +1061,15 @@ customization. @subsubsection Constructs in @code{rx} regexps The various forms in @code{rx} regexps are described below. The -shorthand @var{rx} represents any @code{rx} form, and @var{rx}@dots{} -means zero or more @code{rx} forms. These are all valid arguments to -the @code{rx} macro. Where the corresponding string -regexp syntax is given, @var{A}, @var{B}, @dots{} are string regexp -subexpressions. +shorthand @var{rx} represents any @code{rx} form. @var{rx}@dots{} +means zero or more @code{rx} forms and, unless stated otherwise, +matches these forms in sequence as if wrapped in a @code{(seq @dots{})} +subform. + +These are all valid arguments to the @code{rx} macro. All forms are +defined by their described semantics; the corresponding string regexps +are provided for ease of understanding only. @var{A}, @var{B}, @dots{} +denote (suitably bracketed) string regexp subexpressions therein. @subsubheading Literals @@ -1298,12 +1303,12 @@ Match any character that has whitespace syntax @item @code{lower}, @code{lower-case} Match anything lower-case, as determined by the current case table. -If @code{case-fold-search} is non-nil, this also matches any +If @code{case-fold-search} is non-@code{nil}, this also matches any upper-case letter. @item @code{upper}, @code{upper-case} Match anything upper-case, as determined by the current case table. -If @code{case-fold-search} is non-nil, this also matches any +If @code{case-fold-search} is non-@code{nil}, this also matches any lower-case letter. @item @code{graph}, @code{graphic} @@ -1563,7 +1568,7 @@ used, a Lisp expression that evaluates to a string. Example: @defun rx-to-string rx-expr &optional no-group Translate @var{rx-expr} to a string regexp which is returned. -If @var{no-group} is absent or nil, bracket the result in a +If @var{no-group} is absent or @code{nil}, bracket the result in a non-capturing group, @samp{\(?:@dots{}\)}, if necessary to ensure that a postfix operator appended to it will apply to the whole expression. Example: @@ -2054,7 +2059,7 @@ feature for matching regular expressions from end to beginning. It's not worth the trouble of implementing that. @end deffn -@defun string-match regexp string &optional start +@defun string-match regexp string &optional start inhibit-modify This function returns the index of the start of the first match for the regular expression @var{regexp} in @var{string}, or @code{nil} if there is no match. If @var{start} is non-@code{nil}, the search starts @@ -2079,8 +2084,10 @@ For example, The index of the first character of the string is 0, the index of the second character is 1, and so on. -If this function finds a match, the index of the first character beyond -the match is available as @code{(match-end 0)}. @xref{Match Data}. +By default, if this function finds a match, the index of the first +character beyond the match is available as @code{(match-end 0)}. +@xref{Match Data}. If @var{inhibit-modify} is non-@code{nil}, the +match data isn't modified. @example @group @@ -2101,16 +2108,18 @@ This predicate function does what @code{string-match} does, but it avoids modifying the match data. @end defun -@defun looking-at regexp +@defun looking-at regexp &optional inhibit-modify This function determines whether the text in the current buffer directly following point matches the regular expression @var{regexp}. ``Directly following'' means precisely that: the search is ``anchored'' and it can succeed only starting with the first character following point. The result is @code{t} if so, @code{nil} otherwise. -This function does not move point, but it does update the match data. -@xref{Match Data}. If you need to test for a match without modifying -the match data, use @code{looking-at-p}, described below. +This function does not move point, but it does update the match data +(if @var{inhibit-modify} is @code{nil} or missing, which is the +default). @xref{Match Data}. As a convenience, instead of using the +@var{inhibit-modify} argument, you can use @code{looking-at-p}, +described below. In this example, point is located directly before the @samp{T}. If it were anywhere else, the result would be @code{nil}. @@ -2217,13 +2226,13 @@ backtracking specified by the POSIX standard for regular expression matching. @end deffn -@defun posix-looking-at regexp +@defun posix-looking-at regexp &optional inhibit-modify This is like @code{looking-at} except that it performs the full backtracking specified by the POSIX standard for regular expression matching. @end defun -@defun posix-string-match regexp string &optional start +@defun posix-string-match regexp string &optional start inhibit-modify This is like @code{string-match} except that it performs the full backtracking specified by the POSIX standard for regular expression matching. @@ -2859,7 +2868,7 @@ Display some help, then ask again. @defvar multi-query-replace-map This variable holds a keymap that extends @code{query-replace-map} by -providing additional keybindings that are useful in multi-buffer +providing additional key bindings that are useful in multi-buffer replacements. The additional bindings are: @table @code diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi index d73b17284d3f..f1f23f007a49 100644 --- a/doc/lispref/sequences.texi +++ b/doc/lispref/sequences.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990--1995, 1998--1999, 2001--2023 Free Software +@c Copyright (C) 1990--1995, 1998--1999, 2001--2024 Free Software @c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Sequences Arrays Vectors @@ -376,45 +376,43 @@ is less than @var{c}, then @var{a} must be less than @var{c}. If you use a comparison function which does not meet these requirements, the result of @code{sort} is unpredictable. -The destructive aspect of @code{sort} for lists is that it rearranges the -cons cells forming @var{sequence} by changing @sc{cdr}s. A nondestructive -sort function would create new cons cells to store the elements in their -sorted order. If you wish to make a sorted copy without destroying the -original, copy it first with @code{copy-sequence} and then sort. - -Sorting does not change the @sc{car}s of the cons cells in @var{sequence}; -the cons cell that originally contained the element @code{a} in -@var{sequence} still has @code{a} in its @sc{car} after sorting, but it now -appears in a different position in the list due to the change of -@sc{cdr}s. For example: +The destructive aspect of @code{sort} for lists is that it reuses the +cons cells forming @var{sequence} by changing their contents, possibly +rearranging them in a different order. This means that the value of +the input list is undefined after sorting; only the list returned by +@code{sort} has a well-defined value. Example: @example @group -(setq nums (list 1 3 2 6 5 4 0)) - @result{} (1 3 2 6 5 4 0) -@end group -@group +(setq nums (list 2 1 4 3 0)) (sort nums #'<) - @result{} (0 1 2 3 4 5 6) -@end group -@group -nums - @result{} (1 2 3 4 5 6) + @result{} (0 1 2 3 4) + ; nums is unpredictable at this point @end group @end example -@noindent -@strong{Warning}: Note that the list in @code{nums} no longer contains -0; this is the same cons cell that it was before, but it is no longer -the first one in the list. Don't assume a variable that formerly held -the argument now holds the entire sorted list! Instead, save the result -of @code{sort} and use that. Most often we store the result back into -the variable that held the original list: +Most often we store the result back into the variable that held the +original list: @example (setq nums (sort nums #'<)) @end example +If you wish to make a sorted copy without destroying the original, +copy it first and then sort: + +@example +@group +(setq nums (list 2 1 4 3 0)) +(sort (copy-sequence nums) #'<) + @result{} (0 1 2 3 4) +@end group +@group +nums + @result{} (2 1 4 3 0) +@end group +@end example + For the better understanding of what stable sort is, consider the following vector example. After sorting, all items whose @code{car} is 8 are grouped at the beginning of @code{vector}, but their relative order is preserved. @@ -446,8 +444,7 @@ useful example of @code{sort}. @cindex seq library @cindex sequences, generalized The @file{seq.el} library provides the following additional sequence -manipulation macros and functions, prefixed with @code{seq-}. To use -them, you must first load the @file{seq} library. +manipulation macros and functions, prefixed with @code{seq-}. All functions defined in this library are free of side-effects; i.e., they do not modify any sequence (list, vector, or string) that @@ -577,6 +574,20 @@ starting from the first one for which @var{predicate} returns @code{nil}. @end example @end defun +@defun seq-split sequence length + This function returns a list consisting of sub-sequences of +@var{sequence} of (at most) length @var{length}. (The final element +may be shorter than @var{length} if the length of @var{sequence} isn't +a multiple of @var{length}. + +@example +@group +(seq-split [0 1 2 3 4] 2) +@result{} ([0 1] [2 3] [4]) +@end group +@end example +@end defun + @defun seq-do function sequence This function applies @var{function} to each element of @var{sequence} in turn (presumably for side effects), and returns @@ -667,6 +678,37 @@ for which @var{predicate} returns @code{nil}. @end example @end defun +@defun seq-remove-at-position sequence n +@cindex removing from sequences +This function returns a copy of @var{sequence} where the element at +(zero-based) index @var{n} got removed. The result is a sequence of +the same type as @var{sequence}. + +@example +@group +(seq-remove-at-position [1 -1 3 -3 5] 0) +@result{} [-1 3 -3 5] +@end group +@group +(seq-remove-at-position [1 -1 3 -3 5] 3) +@result{} [1 -1 3 5] +@end group +@end example +@end defun + +@defun seq-keep function sequence + This function returns a list of all non-@code{nil} results from +calling @var{function} on the elements in @var{sequence}. + +@example +@group +(seq-keep #'cl-digit-char-p '(?6 ?a ?7)) +@result{} (6 7) +@end group +@end example + +@end defun + @defun seq-reduce function sequence initial-value @cindex reducing sequences This function returns the result of calling @var{function} with @@ -675,7 +717,7 @@ for which @var{predicate} returns @code{nil}. then with that result and the third element of @var{sequence}, etc. @var{function} should be a function of two arguments. -@var{function} is called with two arguments. @var{intial-value} +@var{function} is called with two arguments. @var{initial-value} (and then the accumulated value) is used as the first argument, and the elements in @var{sequence} are used for the second argument. @@ -850,7 +892,7 @@ arguments to use instead of the default @code{equal}. @end defun @defun seq-position sequence elt &optional function - This function returns the index of the first element in + This function returns the (zero-based) index of the first element in @var{sequence} that is equal to @var{elt}. If the optional argument @var{function} is non-@code{nil}, it is a function of two arguments to use instead of the default @code{equal}. @@ -867,6 +909,27 @@ use instead of the default @code{equal}. @end example @end defun +@defun seq-positions sequence elt &optional testfn + This function returns a list of the (zero-based) indices of the +elements in @var{sequence} for which @var{testfn} returns +non-@code{nil} when passed the element and @var{elt} as +arguments. @var{testfn} defaults to @code{equal}. + +@example +@group +(seq-positions '(a b c a d) 'a) +@result{} (0 3) +@end group +@group +(seq-positions '(a b c a d) 'z) +@result{} nil +@end group +@group +(seq-positions '(11 5 7 12 9 15) 10 #'>=) +@result{} (0 3 5) +@end group +@end example +@end defun @defun seq-uniq sequence &optional function This function returns a list of the elements of @var{sequence} with @@ -1582,7 +1645,8 @@ Refers to the element for character @var{char} @item @code{(@var{from} . @var{to})} A cons cell refers to all the characters in the inclusive range -@samp{[@var{from}..@var{to}]}. +@samp{[@var{from}..@var{to}]}. In this case, the function returns the +value for the character specified by @var{from}. @end table @end defun diff --git a/doc/lispref/streams.texi b/doc/lispref/streams.texi index 4856ea8ef77a..9fd2d074efe1 100644 --- a/doc/lispref/streams.texi +++ b/doc/lispref/streams.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990--1994, 1998--1999, 2001--2023 Free Software +@c Copyright (C) 1990--1994, 1998--1999, 2001--2024 Free Software @c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Read and Print @@ -21,6 +21,7 @@ reading) or where to put it (if printing). * Output Streams:: Various data types that can be used as output streams. * Output Functions:: Functions to print Lisp objects as text. * Output Variables:: Variables that control what the printing functions do. +* Output Overrides:: Overriding output variables. @end menu @node Streams Intro @@ -327,6 +328,15 @@ For example: @end example @end defun +@defun read-positioning-symbols &optional stream +This function reads one textual expression from @var{stream}, like +@code{read} does, but additionally positions the read symbols to the +positions in @var{stream} where they occurred. Only the symbol +@code{nil} is not positioned, this for efficiency reasons. +@xref{Symbols with Position}. This function is used by the byte +compiler. +@end defun + @defvar standard-input This variable holds the default input stream---the stream that @code{read} uses when the @var{stream} argument is @code{nil}. @@ -358,6 +368,15 @@ mode for @var{stream}. On POSIX hosts, it always returns a non-@code{nil} value and does nothing except flushing pending output. @end defun +@defun readablep object +@cindex readable syntax +This predicate says whether @var{object} has @dfn{readable syntax}, +i.e., it can be written out and then read back by the Emacs Lisp +reader. If it can't, this function returns @code{nil}; if it can, +this function returns a printed representation (via @code{prin1}, +@pxref{Output Functions}) of @var{object}. +@end defun + @node Output Streams @section Output Streams @cindex stream (for printing) @@ -616,7 +635,7 @@ characters are used. @code{print} returns @var{object}. For example: @end example @end defun -@defun prin1 object &optional stream +@defun prin1 object &optional stream overrides This function outputs the printed representation of @var{object} to @var{stream}. It does not print newlines to separate output as @code{print} does, but it does use quoting characters just like @@ -631,6 +650,10 @@ This function outputs the printed representation of @var{object} to @result{} " came back" @end group @end example + +If @var{overrides} is non-@code{nil}, it should either be @code{t} +(which tells @code{prin1} to use the defaults for all printer related +variables), or a list of settings. @xref{Output Overrides}, for details. @end defun @defun princ object &optional stream @@ -667,7 +690,16 @@ This function outputs @var{character} to @var{stream}. It returns @var{character}. @end defun -@defun prin1-to-string object &optional noescape +@defun flush-standard-output +If you have Emacs-based batch scripts that send output to the +terminal, Emacs will automatically display the output whenever you +write a newline characters to @code{standard-output}. This function +allows you to flush to @code{standard-output} without sending a +newline character first, which enables you to display incomplete +lines. +@end defun + +@defun prin1-to-string object &optional noescape overrides @cindex object to string This function returns a string containing the text that @code{prin1} would have printed for the same argument. @@ -681,6 +713,10 @@ would have printed for the same argument. (prin1-to-string (mark-marker)) @result{} "#" @end group + +If @var{overrides} is non-@code{nil}, it should either be @code{t} +(which tells @code{prin1} to use the defaults for all printer related +variables), or a list of settings. @xref{Output Overrides}, for details. @end example If @var{noescape} is non-@code{nil}, that inhibits use of quoting @@ -872,6 +908,32 @@ If non-@code{nil}, this variable enables detection of circular and shared structure in printing. @xref{Circular Objects}. @end defvar +@defvar print-unreadable-function +By default, Emacs prints unreadable objects as @samp{#<...>"}. For +instance: + +@example +(prin1-to-string (make-marker)) + @result{} "#" +@end example + +If this variable is non-@code{nil}, it should be a function that will +be called to handle printing of these objects. The function will be +called with two arguments: the object and the @var{noescape} flag used by +the printing functions (@pxref{Output Functions}). + +The function should return either @code{nil} (print the object as +usual), or a string (which will be printed), or any other object +(don't print the object). For instance: + +@example +(let ((print-unreadable-function + (lambda (object escape) "hello"))) + (prin1-to-string (make-marker))) + @result{} "hello" +@end example +@end defvar + @defvar print-gensym If non-@code{nil}, this variable enables detection of uninterned symbols (@pxref{Creating Symbols}) in printing. When this is enabled, @@ -918,3 +980,84 @@ Letter, Number, Punctuation, Symbol and Private-use (@pxref{Character Properties}), as well as the control characters having their own escape syntax such as newline. @end defvar + +@node Output Overrides +@section Overriding Output Variables +@cindex overrides, in output functions +@cindex output variables, overriding + +The previous section (@pxref{Output Variables}) lists the numerous +variables that control how the Emacs Lisp printer formats data for +outputs. These are generally available for users to change, but +sometimes you want to output data in the default format, or override +the user settings in some other way. For instance, if you're storing +Emacs Lisp data in a file, you don't want that data to be shortened by +a @code{print-length} setting. + +The @code{prin1} and @code{prin1-to-string} functions therefore have +an optional @var{overrides} argument. This argument can either be +@code{t} (which means that all printing variables should be reset to +the default values), or a list of settings for some of the variables. +Each element in the list can be either @code{t} (which means ``reset +to defaults'', and will usually be the first element of the list), or +a pair whose @code{car} is a symbol that stands for an output variable +and whose @code{cdr} is the value for that variable. + +For instance, this prints using nothing but defaults: + +@lisp +(prin1 object nil t) +@end lisp + +This prints @var{object} using the current printing settings, but +overrides the value of @code{print-length} to be 5: + +@lisp +(prin1 object nil '((length . 5))) +@end lisp + +And finally, this prints @var{object} using only default settings, but +with @code{print-length} bound to 5: + +@lisp +(prin1 object nil '(t (length . 5))) +@end lisp + +Below is a list of symbols that can be used, and which variables they +map to: + +@table @code +@item length +This overrides @code{print-length}. +@item level +This overrides @code{print-level}. +@item circle +This overrides @code{print-circle}. +@item quoted +This overrides @code{print-quoted}. +@item escape-newlines +This overrides @code{print-escape-newlines}. +@item escape-control-characters +This overrides @code{print-escape-control-characters}. +@item escape-nonascii +This overrides @code{print-escape-nonascii}. +@item escape-multibyte +This overrides @code{print-escape-multibyte}. +@item charset-text-property +This overrides @code{print-charset-text-property}. +@item unreadeable-function +This overrides @code{print-unreadable-function}. +@item gensym +This overrides @code{print-gensym}. +@item continuous-numbering +This overrides @code{print-continuous-numbering}. +@item number-table +This overrides @code{print-number-table}. +@item float-format +This overrides @code{float-output-format}. +@item integers-as-characters +This overrides @code{print-integers-as-characters}. +@end table + +In the future, more overrides may be offered that do not map directly +to a variable, but can only be used via this parameter. diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi index 8fa39e1cded0..a364fef3aab8 100644 --- a/doc/lispref/strings.texi +++ b/doc/lispref/strings.texi @@ -1,6 +1,6 @@ @c -*- mode: texinfo; coding: utf-8 -*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990--1995, 1998--1999, 2001--2023 Free Software +@c Copyright (C) 1990--1995, 1998--1999, 2001--2024 Free Software @c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Strings and Characters @@ -43,7 +43,7 @@ integer is a character or not is determined only by how it is used. Emacs. A string is a fixed sequence of characters. It is a type of -sequence called a @dfn{array}, meaning that its length is fixed and +sequence called an @dfn{array}, meaning that its length is fixed and cannot be altered once it is created (@pxref{Sequences Arrays Vectors}). Unlike in C, Emacs Lisp strings are @emph{not} terminated by a distinguished character code. @@ -430,13 +430,16 @@ middle of a character representation. This function measures the string length in characters or bytes, and thus is generally inappropriate if you need to shorten strings for display purposes; use @code{truncate-string-to-width} or -@code{window-text-pixel-size} instead (@pxref{Size of Displayed -Text}). +@code{window-text-pixel-size} or @code{string-glyph-split} instead +(@pxref{Size of Displayed Text}). @end defun -@defun string-lines string &optional omit-nulls +@defun string-lines string &optional omit-nulls keep-newlines Split @var{string} into a list of strings on newline boundaries. If -@var{omit-nulls}, remove empty lines from the results. +the optional argument @var{omit-nulls} is non-@code{nil}, remove empty +lines from the results. If the optional argument @var{keep-newlines} +is non-@code{nil}, don't remove the trailing newlines from the result +strings. @end defun @defun string-pad string length &optional padding start @@ -481,7 +484,7 @@ is a multibyte string, we recommend to make sure @var{string} is also multibyte, even if it's pure-@acronym{ASCII}. Since it is impossible to change the number of characters in an -existing string, it is en error if @var{obj} consists of more +existing string, it is an error if @var{obj} consists of more characters than would fit in @var{string} starting at character index @var{idx}. @end defun @@ -536,35 +539,32 @@ string or symbol, @code{string=} signals an error. @result{} nil @end example -For technical reasons, a unibyte and a multibyte string are -@code{equal} if and only if they contain the same sequence of -character codes and all these codes are either in the range 0 through -127 (@acronym{ASCII}) or 160 through 255 (@code{eight-bit-graphic}). -However, when a unibyte string is converted to a multibyte string, all -characters with codes in the range 160 through 255 are converted to -characters with higher codes, whereas @acronym{ASCII} characters -remain unchanged. Thus, a unibyte string and its conversion to -multibyte are only @code{equal} if the string is all @acronym{ASCII}. -Character codes 160 through 255 are not entirely proper in multibyte -text, even though they can occur. As a consequence, the situation -where a unibyte and a multibyte string are @code{equal} without both -being all @acronym{ASCII} is a technical oddity that very few Emacs -Lisp programmers ever get confronted with. @xref{Text -Representations}. +A unibyte and a multibyte string are equal in the sense of +@code{string=} if and only if they contain the same sequence of +character codes all being in the range 0--127 (@acronym{ASCII}). +@xref{Text Representations}. @end defun @defun string-equal string1 string2 @code{string-equal} is another name for @code{string=}. @end defun +@defun string-equal-ignore-case string1 string2 +@code{string-equal-ignore-case} compares strings ignoring case +differences, like @code{char-equal} when @code{case-fold-search} is +@code{t}. +@end defun + @cindex locale-dependent string equivalence @defun string-collate-equalp string1 string2 &optional locale ignore-case This function returns @code{t} if @var{string1} and @var{string2} are -equal with respect to collation rules. A collation rule is not only +equal with respect to the collation rules of the specified +@var{locale}, which defaults to your current system locale. A +collation rule is not only determined by the lexicographic order of the characters contained in -@var{string1} and @var{string2}, but also further rules about +@var{string1} and @var{string2}, but also by further rules about relations between these characters. Usually, it is defined by the -@var{locale} environment Emacs is running with and by the Standard C +locale environment with which Emacs is running and by the Standard C library against which Emacs was linked@footnote{ For more information about collation rules and their locale dependencies, see @uref{https://unicode.org/reports/tr10/, The Unicode @@ -591,8 +591,12 @@ dependent; a @var{locale} @code{"en_US.UTF-8"} is applicable on POSIX systems, while it would be, e.g., @code{"enu_USA.1252"} on MS-Windows systems. -If @var{ignore-case} is non-@code{nil}, characters are converted to lower-case -before comparing them. +If @var{ignore-case} is non-@code{nil}, characters are compared +case-insensitively, by converting them to lower-case. However, if the +underlying system library doesn't provide locale-specific collation +rules, this function falls back to @code{string-equal}, in which case +the @var{ignore-case} argument is ignored, and the comparison will +always be case-sensitive. @vindex w32-collate-ignore-punctuation To emulate Unicode-compliant collation on MS-Windows systems, @@ -674,11 +678,13 @@ This function returns the result of comparing @var{string1} and @cindex locale-dependent string comparison @defun string-collate-lessp string1 string2 &optional locale ignore-case This function returns @code{t} if @var{string1} is less than -@var{string2} in collation order. A collation order is not only +@var{string2} in collation order of the specified @var{locale}, which +defaults to your current system locale. A collation order is not only determined by the lexicographic order of the characters contained in -@var{string1} and @var{string2}, but also further rules about +@var{string1} and @var{string2}, but also by further rules about relations between these characters. Usually, it is defined by the -@var{locale} environment Emacs is running with. +locale environment with which Emacs is running, and by the Standard C +library against which Emacs was linked. For example, punctuation and whitespace characters might be ignored for sorting (@pxref{Sequence Functions}): @@ -708,8 +714,12 @@ systems. The @var{locale} value of @code{"POSIX"} or @code{"C"} lets @end group @end example -If @var{ignore-case} is non-@code{nil}, characters are converted to lower-case -before comparing them. +If @var{ignore-case} is non-@code{nil}, characters are compared +case-insensitively, by converting them to lower-case. However, if the +underlying system library doesn't provide locale-specific collation +rules, this function falls back to @code{string-lessp}, in which case +the @var{ignore-case} argument is ignored, and the comparison will +always be case-sensitive. To emulate Unicode-compliant collation on MS-Windows systems, bind @code{w32-collate-ignore-punctuation} to a non-@code{nil} value, since @@ -744,7 +754,7 @@ ignores case differences. @defun string-search needle haystack &optional start-pos Return the position of the first instance of @var{needle} in @var{haystack}, both of which are strings. If @var{start-pos} is -non-@code{nil}, start searching from that position in @var{needle}. +non-@code{nil}, start searching from that position in @var{haystack}. Return @code{nil} if no match was found. This function only considers the characters in the strings when doing the comparison; text properties are ignored. Matching is always @@ -901,8 +911,8 @@ This function returns a new string containing one character, @end defun @defun string-to-char string - This function returns the first character in @var{string}. This -mostly identical to @code{(aref string 0)}, except that it returns 0 + This function returns the first character in @var{string}. This is +mostly identical to @w{@code{(aref string 0)}}, except that it returns 0 if the string is empty. (The value is also 0 when the first character of @var{string} is the null character, @acronym{ASCII} code 0.) This function may be eliminated in the future if it does not seem useful @@ -1284,6 +1294,11 @@ The order of specifications in @var{template} need not correspond to the order of associations in @var{spec-alist}. @end itemize +REPLACEMENT can also be a function taking no arguments, and returning +a string to be used for the replacement. It will only be called when +the corresponding LETTER is used in the TEMPLATE. This is useful, for +example, to avoid prompting for input unless it is needed. + The optional argument @var{ignore-missing} indicates how to handle specification characters in @var{template} that are not found in @var{spec-alist}. If it is @code{nil} or omitted, the function diff --git a/doc/lispref/symbols.texi b/doc/lispref/symbols.texi index c3562184463e..dfbcf903e7d5 100644 --- a/doc/lispref/symbols.texi +++ b/doc/lispref/symbols.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990--1995, 1998--1999, 2001--2023 Free Software +@c Copyright (C) 1990--1995, 1998--1999, 2001--2024 Free Software @c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Symbols @@ -23,15 +23,15 @@ otherwise. @end defun @menu -* Symbol Components:: Symbols have names, values, function definitions +* Symbol Components:: Symbols have names, values, function definitions and property lists. -* Definitions:: A definition says how a symbol will be used. -* Creating Symbols:: How symbols are kept unique. -* Symbol Properties:: Each symbol has a property list +* Definitions:: A definition says how a symbol will be used. +* Creating Symbols:: How symbols are kept unique. +* Symbol Properties:: Each symbol has a property list for recording miscellaneous information. -* Shorthands:: Properly organize your symbol names but +* Shorthands:: Properly organize your symbol names but type less of them. - +* Symbols with Position:: Symbol variants containing integer positions @end menu @node Symbol Components @@ -276,9 +276,8 @@ This function returns the string that is @var{symbol}'s name. For example: @end group @end example -@strong{Warning:} Changing the string by substituting characters does -change the name of the symbol, but fails to update the obarray, so don't -do it! +@strong{Warning:} Never alter the string returned by that function. +Doing that might make Emacs dysfunctional, and might even crash Emacs. @end defun @cindex uninterned symbol, and generating Lisp code @@ -432,8 +431,8 @@ symbol's property list cell (@pxref{Symbol Components}), in the form of a property list (@pxref{Property Lists}). @menu -* Symbol Plists:: Accessing symbol properties. -* Standard Properties:: Standard meanings of symbol properties. +* Symbol Plists:: Accessing symbol properties. +* Standard Properties:: Standard meanings of symbol properties. @end menu @node Symbol Plists @@ -555,6 +554,23 @@ value, saved value, customized-but-unsaved value, and themed values. Do not set them directly; they are managed by @code{defcustom} and related functions. @xref{Variable Definitions}. +@item definition-name +This property is used to find the definition of a symbol in the source +code, when it might be hard to find the definition by textual search +of the source file. For example, a @code{define-derived-mode} +(@pxref{Derived Modes}) might define a mode-specific function or a +variable implicitly; or your Lisp program might generate a run-time +call to @code{defun} to define a function (@pxref{Defining +Functions}). In these and similar cases, the @code{definition-name} +property of the symbol should be another symbol whose definition can +be found by textual search and whose code defines the original symbol. +In the example with @code{define-derived-mode}, the value of this +property of the functions and variables it defines should be the mode +symbol. The Emacs Help commands such as @kbd{C-h f} (@pxref{Help,,, +emacs, The GNU Emacs Manual}) use this property to show the definition +of a symbol via a button in the @file{*Help*} buffer where the +symbol's documentation is shown. + @item disabled If the value is non-@code{nil}, the named function is disabled as a command. @xref{Disabling Commands}. @@ -613,7 +629,10 @@ file-local evaluation forms. @xref{File Local Variables}. @item safe-local-variable The value specifies a function for determining safe file-local values -for the named variable. @xref{File Local Variables}. +for the named variable. @xref{File Local Variables}. Since this +value is consulted when loading files, the function should be +efficient and should ideally not lead to loading any libraries to +determine the safeness (e.g., it should not be an autoloaded function). @item side-effect-free @cindex @code{side-effect-free} property @@ -650,7 +669,7 @@ name} (@pxref{Symbol Components}). It is useful to think of shorthands as @emph{abbreviating} the full names of intended symbols. Despite this, do not confuse shorthands with the -Abbrev system @pxref{Abbrevs}. +Abbrev system (@pxref{Abbrevs}). @cindex namespace etiquette Shorthands make Emacs Lisp's @dfn{namespacing etiquette} easier to work @@ -715,9 +734,9 @@ byte-compiling any of the two files has equivalent results. The shorthands @code{snu-split} and @code{snu-lines} used in the second version are @emph{not} interned in the obarray. This is easily seen by moving point to the location where the shorthands are used and -waiting for ElDoc (@pxref{Lisp Doc, , Local Variables in Files, emacs, -The GNU Emacs Manual}) to hint at the true full name of the symbol -under point in the echo area. +waiting for ElDoc (@pxref{Programming Language Doc, , Local Variables +in Files, emacs, The GNU Emacs Manual}) to hint at the true full name +of the symbol under point in the echo area. Since @code{read-symbol-shorthands} is a file-local variable, it is possible that multiple libraries depending on @@ -751,3 +770,70 @@ those names. @item Symbol forms whose names start with @samp{#_} are not transformed. @end itemize + +@node Symbols with Position +@section Symbols with Position +@cindex symbol with position + +@cindex bare symbol +A @dfn{symbol with position} is a symbol, the @dfn{bare symbol}, +together with an unsigned integer called the @dfn{position}. These +objects are intended for use by the byte compiler, which records in +them the position of each symbol occurrence and uses those positions +in warning and error messages. + +The printed representation of a symbol with position uses the hash +notation outlined in @ref{Printed Representation}. It looks like +@samp{#}. It has no read syntax. You can cause +just the bare symbol to be printed by binding the variable +@code{print-symbols-bare} to non-@code{nil} around the print +operation. The byte compiler does this before writing its output to +the compiled Lisp file. + +For most purposes, when the flag variable +@code{symbols-with-pos-enabled} is non-@code{nil}, symbols with +positions behave just as bare symbols do. For example, @samp{(eq +# foo)} has a value @code{t} when that variable +is set (but @code{nil} when it isn't set). Most of the time in Emacs this +variable is @code{nil}, but the byte compiler binds it to @code{t} +when it runs. + +Typically, symbols with position are created by the byte compiler +calling the reader function @code{read-positioning-symbols} +(@pxref{Input Functions}). One can also be created with the function +@code{position-symbol}. + +@defvar symbols-with-pos-enabled +When this variable is non-@code{nil}, symbols with position behave +like the contained bare symbol. Emacs runs a little more slowly in +this case. +@end defvar + +@defvar print-symbols-bare +When bound to non-@code{nil}, the Lisp printer prints only the bare symbol of +a symbol with position, ignoring the position. +@end defvar + +@defun symbol-with-pos-p symbol. +This function returns @code{t} if @var{symbol} is a symbol with +position, @code{nil} otherwise. +@end defun + +@defun bare-symbol symbol +This function returns the bare symbol contained in @var{symbol}, or +@var{symbol} itself if it is already a bare symbol. For any other +type of object, it signals an error. +@end defun + +@defun symbol-with-pos-pos symbol +This function returns the position, a number, from a symbol with +position. For any other type of object, it signals an error. +@end defun + +@defun position-symbol sym pos +Make a new symbol with position. @var{sym} is either a bare symbol or +a symbol with position, and supplies the symbol part of the new +object. @var{pos} is either an integer which becomes the number part +of the new object, or a symbol with position whose position is used. +Emacs signals an error if either argument is invalid. +@end defun diff --git a/doc/lispref/syntax.texi b/doc/lispref/syntax.texi index 2a4bd6f15857..83bbd19ca6f5 100644 --- a/doc/lispref/syntax.texi +++ b/doc/lispref/syntax.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990--1995, 1998--1999, 2001--2023 Free Software +@c Copyright (C) 1990--1995, 1998--1999, 2001--2024 Free Software @c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Syntax Tables diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index 38a6f297c720..078b2d55a607 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990--1995, 1998--2023 Free Software Foundation, Inc. +@c Copyright (C) 1990--1995, 1998--2024 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Text @chapter Text @@ -59,7 +59,9 @@ the character after point. * Decompression:: Dealing with compressed data. * Base 64:: Conversion to or from base 64 encoding. * Checksum/Hash:: Computing cryptographic hashes. +* Suspicious Text:: Determining whether a string is suspicious. * GnuTLS Cryptography:: Cryptographic algorithms imported from GnuTLS. +* Database:: Interacting with an SQL database. * Parsing HTML/XML:: Parsing HTML and XML. * Parsing JSON:: Parsing and generating JSON values. * JSONRPC:: JSON Remote Procedure Call protocol @@ -241,10 +243,8 @@ using a function specified by the variable The default filter function consults the obsolete wrapper hook @code{filter-buffer-substring-functions} (see the documentation string of the macro @code{with-wrapper-hook} for the details about this -obsolete facility), and the obsolete variable -@code{buffer-substring-filters}. If both of these are @code{nil}, it -returns the unaltered text from the buffer, i.e., what -@code{buffer-substring} would return. +obsolete facility). If it is @code{nil}, it returns the unaltered +text from the buffer, i.e., what @code{buffer-substring} would return. If @var{delete} is non-@code{nil}, the function deletes the text between @var{start} and @var{end} after copying it, like @@ -280,22 +280,12 @@ the same as those of @code{filter-buffer-substring}. The first hook function is passed a @var{fun} that is equivalent to the default operation of @code{filter-buffer-substring}, i.e., it -returns the buffer-substring between @var{start} and @var{end} -(processed by any @code{buffer-substring-filters}) and optionally -deletes the original text from the buffer. In most cases, the hook -function will call @var{fun} once, and then do its own processing of -the result. The next hook function receives a @var{fun} equivalent to -this, and so on. The actual return value is the result of all the -hook functions acting in sequence. -@end defvar - -@defvar buffer-substring-filters -The value of this obsolete variable should be a list of functions -that accept a single string argument and return another string. -The default @code{filter-buffer-substring} function passes the buffer -substring to the first function in this list, and the return value of -each function is passed to the next function. The return value of the -last function is passed to @code{filter-buffer-substring-functions}. +returns the buffer-substring between @var{start} and @var{end} and +optionally deletes the original text from the buffer. In most cases, +the hook function will call @var{fun} once, and then do its own +processing of the result. The next hook function receives a @var{fun} +equivalent to this, and so on. The actual return value is the result +of all the hook functions acting in sequence. @end defvar @defun current-word &optional strict really-word @@ -561,14 +551,17 @@ character has close parenthesis syntax (@pxref{Blinking}). @vindex self-insert-uses-region-functions The final thing this command does is to run the hook @code{post-self-insert-hook}. You could use this to automatically -reindent text as it is typed, for example. If any function on this -hook needs to act on the region (@pxref{The Region}), it should make -sure Delete Selection mode (@pxref{Using Region, Delete Selection, , -emacs, The GNU Emacs Manual}) doesn't delete the region before -@code{post-self-insert-hook} functions are invoked. The way to do so -is to add a function that returns @code{nil} to -@code{self-insert-uses-region-functions}, a special hook that tells -Delete Selection mode it should not delete the region. +reindent text as it is typed, for example. The functions on this hook +can use @code{last-command-event} (@pxref{Command Loop Info}) to +access the character just inserted. + +If any function on this hook needs to act on the region (@pxref{The +Region}), it should make sure Delete Selection mode (@pxref{Using +Region, Delete Selection, , emacs, The GNU Emacs Manual}) doesn't +delete the region before @code{post-self-insert-hook} functions are +invoked. The way to do so is to add a function that returns +@code{nil} to @code{self-insert-uses-region-functions}, a special hook +that tells Delete Selection mode it should not delete the region. Do not try substituting your own definition of @code{self-insert-command} for the standard one. The editor command @@ -599,6 +592,19 @@ This command indents to the left margin if that is not zero. The value returned is @code{nil}. @end deffn +@deffn Command ensure-empty-lines &optional number-of-empty-lines +This command can be used to ensure that you have a specific number of +empty lines before point. (An ``empty line'' is here defined as a +line with no characters on it---a line with space characters isn't an +empty line.) It defaults to ensuring that there's a single empty line +before point. + +If point isn't at the beginning of a line, a newline character is +inserted first. If there's more empty lines before point than +specified, the number of empty lines is reduced. Otherwise it's +increased to the specified number. +@end deffn + @defvar overwrite-mode This variable controls whether overwrite mode is in effect. The value should be @code{overwrite-mode-textual}, @code{overwrite-mode-binary}, @@ -1019,6 +1025,9 @@ text in @var{string} according to the @code{yank-handler} text property, as well as the variables @code{yank-handled-properties} and @code{yank-excluded-properties} (see below), before inserting the result into the current buffer. + +@var{string} will be run through @code{yank-transform-functions} (see +below) before inserting. @end defun @defun insert-buffer-substring-as-yank buf &optional start end @@ -1093,6 +1102,23 @@ or specifying key bindings. It takes effect after @code{yank-handled-properties}. @end defopt +@defvar yank-transform-functions +This variable is a list of functions. Each function is called (in +order) with the string to be yanked as the argument, and should +return a (possibly transformed) string. This variable can be set +globally, but can also be used to create new commands that are +variations on @code{yank}. For instance, to create a command that +works like @code{yank}, but cleans up whitespace before inserting, you +could say something like: + +@lisp +(defun yank-with-clean-whitespace () + (interactive) + (let ((yank-transform-functions + '(string-clean-whitespace))) + (call-interactively #'yank))) +@end lisp +@end defvar @node Yank Commands @subsection Functions for Yanking @@ -1329,7 +1355,7 @@ that @kbd{C-y} should yank. @defopt kill-ring-max The value of this variable is the maximum length to which the kill ring can grow, before elements are thrown away at the end. The default -value for @code{kill-ring-max} is 60. +value for @code{kill-ring-max} is 120. @end defopt @node Undo @@ -1493,11 +1519,16 @@ continuing to undo. This function does not bind @code{undo-in-progress}. @end defun +@defmac with-undo-amalgamate body@dots{} +This macro removes all the undo boundaries inserted during the +execution of @var{body} so that it can be undone as a single step. +@end defmac + Some commands leave the region active after execution in such a way that it interferes with selective undo of that command. To make @code{undo} ignore the active region when invoked immediately after such a command, set the property @code{undo-inhibit-region} of the command's function -symbol to a non-nil value. @xref{Standard Properties}. +symbol to a non-@code{nil} value. @xref{Standard Properties}. @node Maintaining Undo @section Maintaining Undo Lists @@ -1633,6 +1664,47 @@ The variable @code{paragraph-separate} controls how to distinguish paragraphs. @xref{Standard Regexps}. @end deffn +@defun pixel-fill-region start end pixel-width +Most Emacs buffers use monospaced text, so all the filling functions +(like @code{fill-region}) work based on the number of characters and +@code{char-width}. However, Emacs can render other types of things, +like text that contains images and using proportional fonts, and the +@code{pixel-fill-region} exists to handle that. It fills the region +of text between @var{start} and @var{end} at pixel granularity, so +text using variable-pitch fonts or several different fonts looks +filled regardless of different character sizes. The argument +@var{pixel-width} specifies the maximum pixel width a line is allowed +to have after filling; it is the pixel-resolution equivalent of the +@code{fill-column} in @code{fill-region}. For instance, this Lisp +snippet will insert text using a proportional font, and then fill this +to be no wider than 300 pixels: + +@lisp +(insert (propertize + "This is a sentence that's ends here." + 'face 'variable-pitch)) +(pixel-fill-region (point) (point-max) 300) +@end lisp + +If @var{start} isn't at the start of a line, the horizontal position +of @var{start}, converted to pixel units, will be used as the +indentation prefix on subsequent lines. + +@findex pixel-fill-width +The @code{pixel-fill-width} helper function can be used to compute the +pixel width to use. If given no arguments, it'll return a value +slightly less than the width of the current window. The first +optional value, @var{columns}, specifies the number of columns using +the standard, monospaced fonts, e.g. @code{fill-column}. The second +optional value is the window to use. You'd typically use it like +this: + +@lisp +(pixel-fill-region + start end (pixel-fill-width fill-column)) +@end lisp +@end defun + @deffn Command fill-individual-paragraphs start end &optional justify citation-regexp This command fills each paragraph in the region according to its individual fill prefix. Thus, if the lines of a paragraph were indented @@ -2736,22 +2808,21 @@ indentation in the text. @deffn Command back-to-indentation @comment !!SourceFile simple.el This command moves point to the first non-whitespace character in the -current line (which is the line in which point is located). It returns -@code{nil}. +current line (which is the line in which point is located). @end deffn @deffn Command backward-to-indentation &optional arg @comment !!SourceFile simple.el This command moves point backward @var{arg} lines and then to the -first nonblank character on that line. It returns @code{nil}. -If @var{arg} is omitted or @code{nil}, it defaults to 1. +first nonblank character on that line. If @var{arg} is omitted or +@code{nil}, it defaults to 1. @end deffn @deffn Command forward-to-indentation &optional arg @comment !!SourceFile simple.el This command moves point forward @var{arg} lines and then to the first -nonblank character on that line. It returns @code{nil}. -If @var{arg} is omitted or @code{nil}, it defaults to 1. +nonblank character on that line. If @var{arg} is omitted or +@code{nil}, it defaults to 1. @end deffn @node Case Changes @@ -2874,7 +2945,10 @@ character. Copying text between strings and buffers preserves the properties along with the characters; this includes such diverse functions as -@code{substring}, @code{insert}, and @code{buffer-substring}. +@code{substring}, @code{insert}, and @code{buffer-substring}. Killing +and then yanking text (@pxref{The Kill Ring}) also preserves the +properties, except that some properties are handled specially and +might be removed when text is yanked; @pxref{Yanking}. @menu * Examining Properties:: Looking at the properties of one character. @@ -2915,6 +2989,12 @@ character after position @var{pos} in @var{object} (a buffer or string). The argument @var{object} is optional and defaults to the current buffer. +If @var{position} is at the end of @var{object}, the value is +@code{nil}, but note that buffer narrowing does not affect the value. +That is, if @var{object} is a buffer or @code{nil}, and the buffer is +narrowed and @var{position} is at the end of the narrowed buffer, the +result may be non-@code{nil}. + If there is no @var{prop} property strictly speaking, but the character has a property category that is a symbol, then @code{get-text-property} returns the @var{prop} property of that symbol. @@ -2967,6 +3047,12 @@ properties take precedence over this variable. This function returns the entire property list of the character at @var{position} in the string or buffer @var{object}. If @var{object} is @code{nil}, it defaults to the current buffer. + +If @var{position} is at the end of @var{object}, the value is +@code{nil}, but note that buffer narrowing does not affect the value. +That is, if @var{object} is a buffer or @code{nil}, and the buffer is +narrowed and @var{position} is at the end of the narrowed buffer, the +result may be non-@code{nil}. @end defun @defvar default-text-properties @@ -3317,37 +3403,43 @@ for @var{object} is the current buffer. @end defun @defun text-property-search-forward prop &optional value predicate not-current -Search for the next region that has text property @var{prop} set to -@var{value} according to @var{predicate}. +Search for the next region of text whose property @var{prop} is a +match for @var{value} (which defaults to @code{nil}), according to +@var{predicate}. -This function is modeled after @code{search-forward} and friends in -that it moves point, but it returns a structure that describes the -match instead of returning it in @code{match-beginning} and friends. +This function is modeled after @code{search-forward} (@pxref{String +Search}) and friends, in that it moves point, but it also returns a +structure that describes the match instead of returning it in +@code{match-beginning} and friends. -If the text property can't be found, the function returns @code{nil}. -If it's found, point is placed at the end of the region that has this -text property match, and a @code{prop-match} structure is returned. +If the text property whose value is a match can't be found, the +function returns @code{nil}. If it's found, point is placed at the +end of the region that has this matching text property, and the +function returns a @code{prop-match} structure with information about +the match. @var{predicate} can either be @code{t} (which is a synonym for @code{equal}), @code{nil} (which means ``not equal''), or a predicate -that will be called with two parameters: The first is @var{value}, and -the second is the value of the text property we're inspecting. +that will be called with two arguments: @var{value} and the value of +the text property @var{prop} at the buffer position that is a +candidate for a match. The function should return non-@code{nil} if +there's a match, @code{nil} otherwise. -If @var{not-current}, if point is in a region where we have a match, -then skip past that and find the next instance instead. +If @var{not-current} is non-@code{nil}, then if point is already in a +region where we have a property match, skip past that region and find +the next region instead. -The @code{prop-match} structure has the following accessors: +The @code{prop-match} structure has the following accessor functions: @code{prop-match-beginning} (the start of the match), @code{prop-match-end} (the end of the match), and @code{prop-match-value} (the value of @var{property} at the start of the match). -In the examples below, imagine that you're in a buffer that looks like -this: +In the examples below, we use a buffer whose contents is: -@example -This is a bold and here's bolditalic and this is the end. -@end example +@display +This is a @b{bold} and here's @b{@i{bolditalic}} and this is the end. +@end display That is, the ``bold'' words are the @code{bold} face, and the ``italic'' word is in the @code{italic} face. @@ -3371,8 +3463,9 @@ This will pick out all the words that use the @code{bold} face. @end lisp This will pick out all the bits that have no face properties, which -will result in the list @samp{("This is a " "and here's " "and this is -the end")} (only reversed, since we used @code{push}). +will result in the list @samp{(@w{"This is a "} @w{"and here's "} +@w{"and this is the end"})} (only in reverse order, since we used +@code{push}, @pxref{List Variables}). @lisp (while (setq match (text-property-search-forward 'face nil nil)) @@ -3399,9 +3492,9 @@ This will give you a list of all those URLs. @end defun @defun text-property-search-backward prop &optional value predicate not-current -This is just like @code{text-property-search-backward}, but searches -backward instead. Point is placed at the beginning of the matched -region instead of the end, though. +This is just like @code{text-property-search-forward}, but searches +backward instead, and if a match is found, point is placed at the +beginning of the matched region instead of the end. @end defun @@ -3487,16 +3580,30 @@ special modes that implement their own highlighting. @item mouse-face @kindex mouse-face @r{(text property)} -This property is used instead of @code{face} when the mouse is on or -near the character. For this purpose, ``near'' means that all text -between the character and where the mouse is have the same -@code{mouse-face} property value. +This property is used instead of @code{face} when the mouse pointer +hovers over the text which has this property. When this happens, the +entire stretch of text that has the same @code{mouse-face} property +value, not just the character under the mouse, is highlighted. Emacs ignores all face attributes from the @code{mouse-face} property that alter the text size (e.g., @code{:height}, @code{:weight}, and @code{:slant}). Those attributes are always the same as for the unhighlighted text. +@item cursor-face +@kindex cursor-face @r{(text property)} +@findex cursor-face-highlight-mode +@vindex cursor-face-highlight-nonselected-window +This property is similar to @code{mouse-face}, but it is used when +point (not the mouse) is inside text that has this property. The +highlighting happens only if the mode +@code{cursor-face-highlight-mode} is enabled. When the variable +@code{cursor-face-highlight-nonselected-window} is non-@code{nil}, the +text with this face is highlighted even if the window is not selected, +similarly to what @code{highlight-nonselected-windows} does for the +region (@pxref{Mark,, The Mark and the Region, emacs, The GNU Emacs +Manual}). + @item fontified @kindex fontified @r{(text property)} This property says whether the text is ready for display. If @@ -3610,6 +3717,11 @@ edited even in read-only buffers. @xref{Read Only Buffers}. A non-@code{nil} @code{invisible} property can make a character invisible on the screen. @xref{Invisible Text}, for details. +@kindex inhibit-isearch @r{(text property)} +@item inhibit-isearch +A non-@code{nil} @code{inhibit-isearch} property will make isearch +skip the text. + @item intangible @kindex intangible @r{(text property)} If a group of consecutive characters have equal and non-@code{nil} @@ -3635,9 +3747,20 @@ property is obsolete; use the @code{cursor-intangible} property instead. @item cursor-intangible @kindex cursor-intangible @r{(text property)} @findex cursor-intangible-mode +@cindex rear-nonsticky, and cursor-intangible property When the minor mode @code{cursor-intangible-mode} is turned on, point is moved away from any position that has a non-@code{nil} @code{cursor-intangible} property, just before redisplay happens. +Note that ``stickiness'' of the property (@pxref{Sticky Properties}) +is taken into account when computing allowed cursor positions, so (for +instance) to insert a stretch of five @samp{x} characters into which +the cursor can't enter, you should do something like: + +@lisp +(insert + (propertize "xxxx" 'cursor-intangible t) + (propertize "x" 'cursor-intangible t 'rear-nonsticky t)) +@end lisp @vindex cursor-sensor-inhibit When the variable @code{cursor-sensor-inhibit} is non-@code{nil}, the @@ -3654,18 +3777,19 @@ Consecutive characters with the same @code{field} property constitute a @item cursor @kindex cursor @r{(text property)} Normally, the cursor is displayed at the beginning or the end of any -overlay and text property strings present at the current buffer -position. You can instead tell Emacs to place the cursor on any -desired character of these strings by giving that character a -non-@code{nil} @code{cursor} text property. In addition, if the value -of the @code{cursor} property is an integer, it specifies the number -of buffer's character positions, starting with the position where the -overlay or the @code{display} property begins, for which the cursor -should be displayed on that character. Specifically, if the value of -the @code{cursor} property of a character is the number @var{n}, the -cursor will be displayed on this character for any buffer position in -the range @code{[@var{ovpos}..@var{ovpos}+@var{n})}, where @var{ovpos} -is the overlay's starting position given by @code{overlay-start} +overlay and text property strings that ``hide'' (i.e., are displayed +instead of) the current buffer position. You can instead tell Emacs +to place the cursor on any desired character of these strings by +giving that character a non-@code{nil} @code{cursor} text property. +In addition, if the value of the @code{cursor} property is an integer, +it specifies the number of buffer's character positions, starting with +the position where the overlay or the @code{display} property begins, +for which the cursor should be displayed on that character. +Specifically, if the value of the @code{cursor} property of a +character is the number @var{n}, the cursor will be displayed on this +character for any buffer position in the range +@code{[@var{ovpos}..@var{ovpos}+@var{n})}, where @var{ovpos} is the +overlay's starting position given by @code{overlay-start} (@pxref{Managing Overlays}), or the position where the @code{display} text property begins in the buffer. @@ -3944,6 +4068,8 @@ of the kill ring. To insert with inheritance, use the special primitives described in this section. Self-inserting characters inherit properties because they work using these primitives. +@cindex front-sticky text property +@cindex rear-nonsticky text property When you do insertion with inheritance, @emph{which} properties are inherited, and from where, depends on which properties are @dfn{sticky}. Insertion after a character inherits those of its properties that are @@ -4176,7 +4302,7 @@ position. The action code is always @code{t}. For example, here is how Info mode handles @key{mouse-1}: @smallexample -(define-key Info-mode-map [follow-link] 'mouse-face) +(keymap-set Info-mode-map "" 'mouse-face) @end smallexample @item a function @@ -4189,9 +4315,9 @@ For example, here is how pcvs enables @kbd{mouse-1} to follow links on file names only: @smallexample -(define-key map [follow-link] - (lambda (pos) - (eq (get-char-property pos 'face) 'cvs-filename-face))) +(keymap-set map "" + (lambda (pos) + (eq (get-char-property pos 'face) 'cvs-filename-face))) @end smallexample @item anything else @@ -4528,20 +4654,25 @@ A rectangle is represented by a list of strings. This represents a window configuration to restore in one frame, and a position to jump to in the current buffer. -@c FIXME: Mention frameset here. +@cindex frameset @item @code{(@var{frame-configuration} @var{position})} This represents a frame configuration to restore, and a position -to jump to in the current buffer. +to jump to in the current buffer. Frame configurations are also +known as @dfn{framesets}. -@item (file @var{filename}) +@item @code{(file @var{filename})} This represents a file to visit; jumping to this value visits file @var{filename}. -@item (file-query @var{filename} @var{position}) +@item @code{(file-query @var{filename} @var{position})} This represents a file to visit and a position in it; jumping to this value visits file @var{filename} and goes to buffer position @var{position}. Restoring this type of position asks the user for confirmation first. + +@item @code{(buffer @var{buffer-name})} +This represents a buffer; jumping to this value switches to buffer +@var{buffer-name}. @end table The functions in this section return unpredictable values unless @@ -4650,9 +4781,9 @@ and exceeded, it will fall back to @code{delete-region} and the actual costs exceed this limit, heuristics are used to provide a faster but suboptimal solution. The default value is 1000000. -@code{replace-buffer-contents} returns t if a non-destructive +@code{replace-buffer-contents} returns @code{t} if a non-destructive replacement could be performed. Otherwise, i.e., if @var{max-secs} -was exceeded, it returns nil. +was exceeded, it returns @code{nil}. @end deffn @defun replace-region-contents beg end replace-fn &optional max-secs max-costs @@ -4723,9 +4854,8 @@ converting to and from this code. This function converts the region from @var{beg} to @var{end} into base 64 code. It returns the length of the encoded text. An error is signaled if a character in the region is multibyte, i.e., in a -multibyte buffer the region must contain only characters from the -charsets @code{ascii}, @code{eight-bit-control} and -@code{eight-bit-graphic}. +multibyte buffer the region must contain only ASCII characters or raw +bytes. Normally, this function inserts newline characters into the encoded text, to avoid overlong lines. However, if the optional argument @@ -4764,7 +4894,7 @@ If the optional argument @var{no-pad} is non-@code{nil} then this function doesn't generate the padding. @end defun -@deffn Command base64-decode-region beg end &optional base64url +@deffn Command base64-decode-region beg end &optional base64url ignore-invalid This function converts the region from @var{beg} to @var{end} from base 64 code into the corresponding decoded text. It returns the length of the decoded text. @@ -4773,9 +4903,11 @@ The decoding functions ignore newline characters in the encoded text. If optional argument @var{base64url} is non-@code{nil}, then padding is optional, and the URL variant of base 64 encoding is used. +If optional argument @var{ignore-invalid} is non-@code{nil}, then any +unrecognized characters are ignored. @end deffn -@defun base64-decode-string string &optional base64url +@defun base64-decode-string string &optional base64url ignore-invalid This function converts the string @var{string} from base 64 code into the corresponding decoded text. It returns a unibyte string containing the decoded text. @@ -4785,6 +4917,8 @@ The decoding functions ignore newline characters in the encoded text. If optional argument @var{base64url} is non-@code{nil}, then padding is optional, and the URL variant of base 64 encoding is used. +If optional argument @var{ignore-invalid} is non-@code{nil}, then any +unrecognized characters are ignored. @end defun @node Checksum/Hash @@ -4831,16 +4965,38 @@ computed for the whole of @var{object}. If the argument @var{binary} is omitted or @code{nil}, the function returns the @dfn{text form} of the hash, as an ordinary Lisp string. If @var{binary} is non-@code{nil}, it returns the hash in @dfn{binary -form}, as a sequence of bytes stored in a unibyte string. +form}, as a sequence of bytes stored in a unibyte string. The length +of the returned string depends on @var{algorithm}: + +@itemize +@item +For @code{md5}: 32 characters (32 bytes if @var{binary} is +non-@code{nil}). +@item +For @code{sha1}: 40 characters (40 bytes if @var{binary} is +non-@code{nil}). +@item +For @code{sha224}: 56 characters (56 bytes if @var{binary} is +non-@code{nil}). +@item +For @code{sha256}: 64 characters (64 bytes if @var{binary} is +non-@code{nil}). +@item +For @code{sha384}: 96 characters (96 bytes if @var{binary} is +non-@code{nil}). +@item +For @code{sha512}: 128 characters (128 bytes if @var{binary} is +non-@code{nil}). +@end itemize This function does not compute the hash directly from the internal representation of @var{object}'s text (@pxref{Text Representations}). Instead, it encodes the text using a coding system (@pxref{Coding Systems}), and computes the hash from that encoded text. If @var{object} is a buffer, the coding system used is the one which -would be chosen by default for writing the text into a file. If -@var{object} is a string, the user's preferred coding system is used -(@pxref{Recognize Coding,,, emacs, GNU Emacs Manual}). +would be chosen by default for writing the text of that buffer into a +file. If @var{object} is a string, the user's preferred coding system +is used (@pxref{Recognize Coding,,, emacs, GNU Emacs Manual}). @end defun @defun md5 object &optional start end coding-system noerror @@ -4848,7 +5004,7 @@ This function returns an MD5 hash. It is semi-obsolete, since for most purposes it is equivalent to calling @code{secure-hash} with @code{md5} as the @var{algorithm} argument. The @var{object}, @var{start} and @var{end} arguments have the same meanings as in -@code{secure-hash}. +@code{secure-hash}. The function returns a 32-character string. If @var{coding-system} is non-@code{nil}, it specifies a coding system to use to encode the text; if omitted or @code{nil}, the default @@ -4871,9 +5027,108 @@ It should be somewhat more efficient on larger buffers than @code{secure-hash} is, and should not allocate more memory. @c Note that we do not document what hashing function we're using, or @c even whether it's a cryptographic hash, since that may change -@c according to what we find useful. +@c according to what we find useful. We also don't document the +@c length of the hash string it returns, since that can be used to +@c guess the hashing function being used. +@end defun + +@defun sha1 object &optional start end binary +This function is equivalent to calling @code{secure-hash} like this: + +@lisp +(secure-hash 'sha1 object start end binary) +@end lisp + +It returns a 40-character string if @var{binary} is @code{nil}, or a +40-byte unibyte string otherwise. @end defun +@node Suspicious Text +@section Suspicious Text +@cindex suspicious text +@cindex insecure text +@cindex security vulnerabilities in text + + Emacs can display text from many external sources, like email and Web +sites. Attackers may attempt to confuse the user reading this text by +using obfuscated @acronym{URL}s or email addresses, and tricking the +user into visiting a web page they didn't intend to visit, or sending +an email to the wrong address. + +This usually involves using characters from scripts that visually look +like @acronym{ASCII} characters (i.e., are homoglyphs), but there are +also other techniques used, like using bidirectional overrides, or +having an @acronym{HTML} link text that says one thing, while the +underlying @acronym{URL} points somewhere else. + +@cindex suspicious text strings +To help identify these @dfn{suspicious text strings}, Emacs provides a +library to do a number of checks on text. (See +@url{https://www.unicode.org/reports/tr39/, UTS #39: Unicode Security +Mechanisms} for the rationale behind the checks that are available and +more details about them.) Packages that present data that might be +suspicious should use this library to flag suspicious text on display. + +@vindex textsec-check +@defun textsec-suspicious-p object type +This function is the high-level interface function that packages +should use. It respects the @code{textsec-check} user option, which +allows the user to disable the checks. + +This function checks @var{object} (whose data type depends on +@var{type}) to see if it looks suspicious when interpreted as a thing +of @var{type}. The available types and the corresponding @var{object} +data types are: + +@table @code +@item domain +Check whether a domain (e.g., @samp{www.gnu.org} looks suspicious. +@var{object} should be a string, the domain name. + +@item url +Check whether an @acronym{URL} (e.g., @samp{http://gnu.org/foo/bar}) +looks suspicious. @var{object} should be a string, the @acronym{URL} +to check. + +@item link +Check whether an @acronym{HTML} link (e.g., @samp{fsf.org} looks suspicious. In this case, +@var{object} should be a @code{cons} cell where the @code{car} is the +@acronym{URL} string, and the @code{cdr} is the link text. The link +is deemed suspicious if the link text contains a domain name, and that +domain name points to something other than the @acronym{URL}. + +@item email-address +Check whether an email address (e.g., @samp{foo@@example.org}) looks +suspicious. @var{object} should be a string. + +@item local-address +Check whether the local part of an email address (the bit before the +@samp{@@} sign) looks suspicious. @var{object} should be a string. + +@item name +Check whether a name (used in an email address header) looks +suspicious. @var{object} should be a string. + +@item email-address-header +Check whether a full RFC2822 email address header (e.g., +@samp{=?utf-8?Q?=C3=81?= }) looks suspicious. +@var{object} should be a string. +@end table + +If @var{object} is suspicious, this function returns a string that +explains why it is suspicious. If @var{object} is not suspicious, the +function returns @code{nil}. +@end defun + +@vindex textsec-suspicious@r{ (face)} +If the text is suspicious, the application should mark the suspicious +text with the @code{textsec-suspicious} face, and make the explanation +returned by @code{textsec-suspicious-p} available to the user in some way +(for example, in a tooltip). The application might also prompt the +user for confirmation before taking any action on a suspicious string +(like sending an email to a suspicious email address). + @node GnuTLS Cryptography @section GnuTLS Cryptography @cindex MD5 checksum @@ -5066,11 +5321,217 @@ On success, it returns a list of a binary string (the output) and the IV used. @end defun +@node Database +@section Database +@cindex database access, SQLite + + Emacs can be compiled with built-in support for accessing SQLite +databases. This section describes the facilities available for +accessing SQLite databases from Lisp programs. + +@defun sqlite-available-p +The function returns non-@code{nil} if built-in SQLite support is +available in this Emacs session. +@end defun + +When SQLite support is available, the following functions can be used. + +@cindex database object +@defun sqlite-open &optional file +This function opens @var{file} as an SQLite database file. If +@var{file} doesn't exist, a new database will be created and stored in +that file. If @var{file} is omitted or @code{nil}, a new in-memory +database is created instead. + +The return value is a @dfn{database object} that can be used as the +argument to most of the subsequent functions described below. +@end defun + +@defun sqlitep object +This predicate returns non-@code{nil} if @var{object} is an SQLite +database object. The database object returned by the +@code{sqlite-open} function satisfies this predicate. +@end defun + +@defun sqlite-close db +Close the database @var{db}. It's usually not necessary to call this +function explicitly---the database will automatically be closed if +Emacs shuts down or the database object is garbage collected. +@end defun + +@defun sqlite-execute db statement &optional values +Execute the @acronym{SQL} @var{statement}. For instance: + +@lisp +(sqlite-execute db "insert into foo values ('bar', 2)") +@end lisp + +If the optional @var{values} parameter is present, it should be either +a list or a vector of values to bind while executing the statement. +For instance: + +@lisp +(sqlite-execute db "insert into foo values (?, ?)" '("bar" 2)) +@end lisp + +This has exactly the same effect as the previous example, but is more +efficient and safer (because it doesn't involve any string parsing or +interpolation). + +@code{sqlite-execute} usually returns the number of affected rows. +For instance, an @samp{insert} statement will typically return +@samp{1}, whereas an @samp{update} statement may return zero or a +higher number. However, when using @acronym{SQL} statements like +@w{@samp{insert into @dots{} returning @dots{}}} and the like, the values +specified by @w{@samp{returning @dots{}}} will be returned instead. + +Strings in SQLite are, by default, stored as @code{utf-8}, and +selecting a text column will decode the string using that charset. +Selecting a blob column will return the raw data without any decoding +(i.e., it will return a unibyte string containing the bytes as stored +in the database). Inserting binary data into blob columns, however, +requires some care, as @code{sqlite-execute} will, by default, +interpret all strings as @code{utf-8}. + +So if you have, for instance, @acronym{GIF} data in a unibyte string +called @var{gif}, you have to mark it specially to let +@code{sqlite-execute} know this: + +@lisp +(put-text-property 0 1 'coding-system 'binary gif) +(sqlite-execute db "insert into foo values (?, ?)" (list gif 2)) +@end lisp + +@end defun + +@defun sqlite-select db query &optional values return-type +Select some data from @var{db} and return them. For instance: + +@lisp +(sqlite-select db "select * from foo where key = 2") + @result{} (("bar" 2)) +@end lisp + +As with the @code{sqlite-execute}, you can optionally pass in a list +or a vector of values that will be bound before executing the select: + +@lisp +(sqlite-select db "select * from foo where key = ?" [2]) + @result{} (("bar" 2)) +@end lisp + +This is usually more efficient and safer than the method used by the +previous example. + +By default, this function returns a list of matching rows, where each +row is a list of column values. If @var{return-type} is @code{full}, +the names of the columns (as a list of strings) will be returned as +the first element in the return value. + +@cindex statement object +If @var{return-type} is @code{set}, this function will return a +@dfn{statement object} instead. This object can be examined by using +the @code{sqlite-next}, @code{sqlite-columns} and @code{sqlite-more-p} +functions. If the result set is small, it's often more convenient to +just return the data directly, but if the result set is large (or if +you won't be using all the data from the set), using the @code{set} +method will allocate a lot less memory, and is therefore more +memory-efficient. +@end defun + +@defun sqlite-next statement +This function returns the next row in the result set @var{statement}, +typically an object returned by @code{sqlite-select}. + +@lisp +(sqlite-next stmt) + @result{} ("bar" 2) +@end lisp +@end defun + +@defun sqlite-columns statement +This function returns the column names of the result set +@var{statement}, typically an object returned by @code{sqlite-select}. + +@lisp +(sqlite-columns stmt) + @result{} ("name" "issue") +@end lisp +@end defun + +@defun sqlite-more-p statement +This predicate says whether there is more data to be fetched from the +result set @var{statement}, typically an object returned by +@code{sqlite-select}. +@end defun + +@defun sqlite-finalize statement +If @var{statement} is not going to be used any more, calling this +function will free the resources used by @var{statement}. This is +usually not necessary---when the @var{statement} object is +garbage-collected, Emacs will automatically free its resources. +@end defun + +@defun sqlite-transaction db +Start a transaction in @var{db}. When in a transaction, other readers +of the database won't access the results until the transaction has +been committed by @code{sqlite-commit}. +@end defun + +@defun sqlite-commit db +End a transaction in @var{db} and write the data out to its file. +@end defun + +@defun sqlite-rollback db +End a transaction in @var{db} and discard any changes that have been +made by the transaction. +@end defun + +@defmac with-sqlite-transaction db body@dots{} +Like @code{progn} (@pxref{Sequencing}), but executes @var{body} with a +transaction held, and commits the transaction at the end if @var{body} +completes normally. If @var{body} signals an error, or committing the +transaction fails, the changes in @var{db} performed by @var{body} are +rolled back. The macro returns the value of @var{body} if it +completes normally and commit succeeds. +@end defmac + +@defun sqlite-pragma db pragma +Execute @var{pragma} in @var{db}. A @dfn{pragma} is usually a command +that affects the database overall, instead of any particular table. +For instance, to make SQLite automatically garbage collect data that's +no longer needed, you can say: + +@lisp +(sqlite-pragma db "auto_vacuum = FULL") +@end lisp + +This function returns non-@code{nil} on success and @code{nil} if the +pragma failed. Many pragmas can only be issued when the database is +brand new and empty. +@end defun + +@defun sqlite-load-extension db module +Load the named extension @var{module} into the database @var{db}. +Extensions are usually shared-library files; on GNU and Unix systems, +they have the @file{.so} file-name extension. +@end defun + +@defun sqlite-version +Return a string denoting the version of the SQLite library in use. +@end defun + +@findex sqlite-mode-open-file +If you wish to list the contents of an SQLite file, you can use the +@code{sqlite-mode-open-file} command. This will pop to a buffer using +@code{sqlite-mode}, which allows you to examine (and alter) the +contents of an SQLite database. + @node Parsing HTML/XML @section Parsing HTML and XML @cindex parsing html - Emacs can be compiled with built-in libxml2 support. + Emacs can be compiled with built-in @file{libxml2} support. @defun libxml-available-p This function returns non-@code{nil} if built-in libxml2 support is @@ -5080,14 +5541,19 @@ available in this Emacs session. When libxml2 support is available, the following functions can be used to parse HTML or XML text into Lisp object trees. -@defun libxml-parse-html-region start end &optional base-url discard-comments +@defun libxml-parse-html-region &optional start end base-url discard-comments This function parses the text between @var{start} and @var{end} as HTML, and returns a list representing the HTML @dfn{parse tree}. It attempts to handle real-world HTML by robustly coping with syntax mistakes. -The optional argument @var{base-url}, if non-@code{nil}, should be a -string specifying the base URL for relative URLs occurring in links. +If @var{start} or @var{end} are @code{nil}, they default to the values +from @code{point-min} and @code{point-max}, respectively. + +The optional argument @var{base-url}, if non-@code{nil}, should be +used for warnings and errors reported by the @file{libxml2} library, +but Emacs currently calls the library with errors and warnings +disabled, so this argument is not used. If the optional argument @var{discard-comments} is non-@code{nil}, any top-level comment is discarded. (This argument is obsolete and @@ -5131,7 +5597,7 @@ buffer. The argument @var{dom} should be a list as generated by @end defun @cindex parsing xml -@defun libxml-parse-xml-region start end &optional base-url discard-comments +@defun libxml-parse-xml-region &optional start end base-url discard-comments This function is the same as @code{libxml-parse-html-region}, except that it parses the text as XML rather than HTML (so it is stricter about syntax). @@ -5523,7 +5989,7 @@ methods if these concepts apply to the transport. If they do, then any system resources (e.g.@: processes, timers, etc.) used to listen for messages on the wire should be released in @code{jsonrpc-shutdown}, i.e.@: they should only be needed while @code{jsonrpc-running-p} is -non-nil. +non-@code{nil}. @end enumerate diff --git a/doc/lispref/threads.texi b/doc/lispref/threads.texi index 43cf0da3508c..2476603adc14 100644 --- a/doc/lispref/threads.texi +++ b/doc/lispref/threads.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 2012--2023 Free Software Foundation, Inc. +@c Copyright (C) 2012--2024 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Threads @chapter Threads diff --git a/doc/lispref/tips.texi b/doc/lispref/tips.texi index dff798d0ad88..d538f4167406 100644 --- a/doc/lispref/tips.texi +++ b/doc/lispref/tips.texi @@ -1,6 +1,6 @@ @c -*- mode: texinfo; coding: utf-8 -*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990--1993, 1995, 1998--1999, 2001--2023 Free Software +@c Copyright (C) 1990--1993, 1995, 1998--1999, 2001--2024 Free Software @c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Tips @@ -43,6 +43,7 @@ in batch mode, e.g., with a command run by @kbd{@w{M-x compile @section Emacs Lisp Coding Conventions @cindex coding conventions in Emacs Lisp +@cindex conventions for Emacs Lisp programs Here are conventions that you should follow when writing Emacs Lisp code intended for widespread use: @@ -252,11 +253,19 @@ themselves; Lisp programmers find this disconcerting. Please put a copyright notice and copying permission notice on the file if you distribute copies. @xref{Library Headers}. +@item +For variables holding (or functions returning) a file or directory name, +avoid using @code{path} in its name, preferring @code{file}, +@code{file-name}, or @code{directory} instead, since Emacs follows the +GNU convention to use the term @emph{path} only for search paths, +which are lists of directory names. + @end itemize @node Key Binding Conventions @section Key Binding Conventions @cindex key binding, conventions for +@cindex conventions for key bindings @itemize @bullet @item @@ -338,6 +347,7 @@ after @key{ESC}. In these states, you should define @kbd{@key{ESC} @node Programming Tips @section Emacs Programming Tips @cindex programming conventions +@cindex conventions for Emacs programming Following these conventions will make your program fit better into Emacs when it runs. @@ -470,6 +480,7 @@ buffer and let the user switch back at will. @xref{Recursive Editing}. @section Tips for Making Compiled Code Fast @cindex execution speed @cindex speedups +@cindex tips for faster Lisp code Here are ways of improving the execution speed of byte-compiled Lisp programs. @@ -524,6 +535,7 @@ the speed. @xref{Inline Functions}. @node Warning Tips @section Tips for Avoiding Compiler Warnings @cindex byte compiler warnings, how to avoid +@cindex warnings from byte compiler @itemize @bullet @item @@ -578,6 +590,8 @@ is to put it inside @code{with-no-warnings}. @xref{Compiler Errors}. @node Documentation Tips @section Tips for Documentation Strings @cindex documentation strings, conventions and tips +@cindex tips for documentation strings +@cindex conventions for documentation strings @findex checkdoc-minor-mode Here are some tips and conventions for the writing of documentation @@ -617,7 +631,12 @@ first line with a capital letter and end it with a period. For a function, the first line should briefly answer the question, ``What does this function do?'' For a variable, the first line should -briefly answer the question, ``What does this value mean?'' +briefly answer the question, ``What does this value mean?'' Prefer to +answer these questions in a way that will make sense to users and +callers of the function or the variable. In particular, do @emph{not} +tell what the function does by enumerating the actions of its code; +instead, describe the role of these actions and the function's +contract. Don't limit the documentation string to one line; use as many lines as you need to explain the details of how to use the function or @@ -631,11 +650,11 @@ include before the first blank line so as to make this display useful. @item The first line should mention all the important arguments of the -function, and should mention them in the order that they are written -in a function call. If the function has many arguments, then it is -not feasible to mention them all in the first line; in that case, the -first line should mention the first few arguments, including the most -important arguments. +function (in particular, the mandatory arguments), and should mention +them in the order that they are written in a function call. If the +function has many arguments, then it is not feasible to mention them +all in the first line; in that case, the first line should mention the +first few arguments, including the most important arguments. @item When a function's documentation string mentions the value of an argument @@ -682,6 +701,22 @@ line. This looks nice in the source code, but looks bizarre when users view the documentation. Remember that the indentation before the starting double-quote is not part of the string! +@cindex quoting apostrophe and grave accent in doc strings +@cindex apostrophe, quoting in documentation strings +@cindex grave accent, quoting in documentation strings +@cindex escaping apostrophe and grave accent in doc strings +@item +When documentation should display an ASCII apostrophe or grave accent, +use @samp{\\='} or @samp{\\=`} in the documentation string literal so +that the character is displayed as-is. + +@item +In documentation strings, do not quote expressions that are not Lisp symbols, +as these expressions can stand for themselves. For example, write +@samp{Return the list (NAME TYPE RANGE) ...}@: instead of +@samp{Return the list `(NAME TYPE RANGE)' ...}@: or +@samp{Return the list \\='(NAME TYPE RANGE) ...}. + @anchor{Docstring hyperlinks} @item @cindex curly quotes @@ -700,7 +735,11 @@ Note that when Emacs displays these doc strings, Emacs will usually display @samp{`} (grave accent) as @samp{‘} (left single quotation mark) and @samp{'} (apostrophe) as @samp{’} (right single quotation mark), if the display supports displaying these characters. -@xref{Keys in Documentation}. +@xref{Keys in Documentation}. (Some previous versions of this section +recommended using the non-@acronym{ASCII} single quotation marks +directly in doc strings, but this is now discouraged, since that leads +to broken help string displays on terminals that don't support +displaying those characters.) @cindex hyperlinks in documentation strings Help mode automatically creates a hyperlink when a documentation string @@ -781,7 +820,7 @@ Finally, to create a hyperlink to URLs, write the single-quoted URL, preceded by @samp{URL}. For example, @smallexample -The GNU project wesite has more information (see URL +The GNU project website has more information (see URL `https://www.gnu.org/'). @end smallexample @@ -888,6 +927,7 @@ versions, there is no need for this work-around. @node Comment Tips @section Tips on Writing Comments @cindex comments, Lisp convention for +@cindex conventions for Lisp comments We recommend these conventions for comments: @@ -1003,6 +1043,7 @@ semicolons. @section Conventional Headers for Emacs Libraries @cindex header comments @cindex library header comments +@cindex conventions for library header comments Emacs has conventions for using special comments in Lisp libraries to divide them into sections and give information such as who wrote @@ -1142,6 +1183,21 @@ element) is equivalent to entry with version "0". For instance: ;; Package-Requires: ((gnus "1.0") (bubbles "2.7.2") cl-lib (seq)) @end smallexample +Packages that don't need to support Emacs versions older than Emacs 27 +can have the @samp{Package-Requires} header split across multiple +lines, like this: + +@smallexample +@group +;; Package-Requires: ((emacs "27.1") +;; (compat "29.1.4.1")) +@end group +@end smallexample + +@noindent +Note that with this format, you still need to start the list on the +same line as @samp{Package-Requires}. + The package code automatically defines a package named @samp{emacs} with the version number of the currently running Emacs. This can be used to require a minimal version of Emacs for a package. diff --git a/doc/lispref/two-volume-cross-refs.txt b/doc/lispref/two-volume-cross-refs.txt index 741efe3baf85..fa876befa697 100644 --- a/doc/lispref/two-volume-cross-refs.txt +++ b/doc/lispref/two-volume-cross-refs.txt @@ -1,4 +1,4 @@ -Copyright (C) 2001-2023 Free Software Foundation, Inc. +Copyright (C) 2001-2024 Free Software Foundation, Inc. See end for copying conditions. Two Volume Cross References diff --git a/doc/lispref/two-volume.make b/doc/lispref/two-volume.make index c841abbfffc0..793a4425d3b8 100644 --- a/doc/lispref/two-volume.make +++ b/doc/lispref/two-volume.make @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2023 Free Software Foundation, Inc. +# Copyright (C) 2007-2024 Free Software Foundation, Inc. # See end for copying conditions. # although it would be nice to use tex rather than pdftex to avoid @@ -35,7 +35,7 @@ vol1.pdf: elisp1med-fns-ready elisp1med-aux-ready elisp1med-toc-ready $(tex1) # vol2.pdf: elisp2med-fns-ready elisp2med-aux-ready elisp2med-toc-ready - @echo "Final TeX run for volume 2..." + $(info Final TeX run for volume 2...) cp elisp2med-toc-ready elisp2-toc-ready.toc cp elisp2med-fns-ready vol2.fns cp elisp2med-aux-ready vol2.aux @@ -123,7 +123,7 @@ elisp1med-init: elisp1-fns-ready elisp1-aux-ready elisp1init-toc-ready $(texinfo mv vol1.toc elisp1med-toc # elisp2med-init: elisp2-fns-ready elisp2-aux-ready elisp2init-toc-ready $(texinfodir)/texinfo.tex - @echo "Final TeX run for volume 2..." + $(info Final TeX run for volume 2...) cp elisp2init-toc-ready elisp2-toc-ready.toc cp elisp2-fns-ready vol2.fns cp elisp2-aux-ready vol2.aux @@ -211,7 +211,7 @@ elisp1-init: elisp.texi touch $@ # elisp2-init: elisp.texi - @echo "Initial TeX run for volume 2..." + $(info Initial TeX run for volume 2...) rm -f vol2.aux vol2.toc $(tex2) texindex vol2.?? diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index 45a65ef82c69..0e8c127433b1 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990--1995, 1998--2023 Free Software Foundation, Inc. +@c Copyright (C) 1990--1995, 1998--2024 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Variables @chapter Variables @@ -44,6 +44,7 @@ representing the variable. * Variables with Restricted Values:: Non-constant variables whose value can @emph{not} be an arbitrary Lisp object. * Generalized Variables:: Extending the concept of variables. +* Multisession Variables:: Variables that survive restarting Emacs. @end menu @node Global Variables @@ -187,15 +188,18 @@ It determines the value returned by evaluating the variable symbol, and it is the binding acted on by @code{setq}. For most purposes, you can think of the current binding as the -innermost local binding, or the global binding if there is no -local binding. To be more precise, a rule called the @dfn{scoping -rule} determines where in a program a local binding takes effect. The +innermost local binding, or the global binding if there is no local +binding. To be more precise, a rule called the @dfn{scoping rule} +determines where in a program a local binding takes effect. The default scoping rule in Emacs Lisp is called @dfn{dynamic scoping}, which simply states that the current binding at any given point in the execution of a program is the most recently-created binding for that variable that still exists. For details about dynamic scoping, and an alternative scoping rule called @dfn{lexical scoping}, @pxref{Variable -Scoping}. +Scoping}. Lately Emacs is moving towards using lexical binding in +more and more places, with the goal of eventually making lexical +binding the default. In particular, all Emacs Lisp source files and +the @file{*scratch*} buffer use lexical scoping. The special forms @code{let} and @code{let*} exist to create local bindings: @@ -265,6 +269,17 @@ Compare the following example with the example above for @code{let}. @result{} (1 1) @end group @end example + +@noindent +Basically, the @code{let*} binding of @code{x} and @code{y} in the +previous example is equivalent to using nested @code{let} bindings: + +@example +(let ((y 1)) + (let ((z y)) + (list y z))) +@end example + @end defspec @defspec letrec (bindings@dots{}) forms@dots{} @@ -335,6 +350,9 @@ variables. A function call is in the tail position if it's the very last thing done so that the value returned by the call is the value of @var{body} itself, as is the case in the recursive call to @code{sum} above. + +@strong{Warning:} @code{named-let} works as expected only when +lexical-binding is enabled. @xref{Lexical Binding}. @end defspec Here is a complete list of the other facilities that create local @@ -357,27 +375,6 @@ Variables}); a few variables have terminal-local bindings like ordinary local bindings, but they are localized depending on where you are in Emacs. -@defopt max-specpdl-size -@anchor{Definition of max-specpdl-size} -@cindex variable limit error -@cindex evaluation error -@cindex infinite recursion -This variable defines the limit on the total number of local variable -bindings and @code{unwind-protect} cleanups (see @ref{Cleanups,, -Cleaning Up from Nonlocal Exits}) that are allowed before Emacs -signals an error (with data @code{"Variable binding depth exceeds -max-specpdl-size"}). - -This limit, with the associated error when it is exceeded, is one way -that Lisp avoids infinite recursion on an ill-defined function. -@code{max-lisp-eval-depth} provides another limit on depth of nesting. -@xref{Definition of max-lisp-eval-depth,, Eval}. - -The default value is 1600. Entry to the Lisp debugger increases the -value, if there is little room left, to make sure the debugger itself -has room to execute. -@end defopt - @node Void Variables @section When a Variable is Void @cindex @code{void-variable} error @@ -526,10 +523,11 @@ If @var{symbol} has a buffer-local binding in the current buffer, rather than the buffer-local binding. It sets the default value if the default value is void. @xref{Buffer-Local Variables}. -If @var{symbol} is already lexically bound (e.g., if the @code{defvar} -form occurs in a @code{let} form with lexical binding enabled), then -@code{defvar} sets the dynamic value. The lexical binding remains in -effect until its binding construct exits. @xref{Variable Scoping}. +If @var{symbol} is already let bound (e.g., if the @code{defvar} +form occurs in a @code{let} form), then @code{defvar} sets the toplevel +default value, like @code{set-default-toplevel-value}. +The let binding remains in effect until its binding construct exits. +@xref{Variable Scoping}. @cindex @code{eval-defun}, and @code{defvar} forms @cindex @code{eval-last-sexp}, and @code{defvar} forms @@ -680,15 +678,15 @@ which are being phased out.) it as safe or risky; see @ref{File Local Variables}. When defining and initializing a variable that holds a complicated -value (such as a keymap with bindings in it), it's best to put the +value (such as a syntax table for a major mode), it's best to put the entire computation of the value into the @code{defvar}, like this: @example -(defvar my-mode-map - (let ((map (make-sparse-keymap))) - (define-key map "\C-c\C-a" 'my-command) +(defvar my-major-mode-syntax-table + (let ((table (make-syntax-table))) + (modify-syntax-entry ?# "<" table) @dots{} - map) + table) @var{docstring}) @end example @@ -698,28 +696,9 @@ loading the file, the variable is either still uninitialized or initialized properly, never in-between. If it is still uninitialized, reloading the file will initialize it properly. Second, reloading the file once the variable is initialized will not alter it; that is -important if the user has run hooks to alter part of the contents -(such as, to rebind keys). Third, evaluating the @code{defvar} form -with @kbd{C-M-x} will reinitialize the map completely. - - Putting so much code in the @code{defvar} form has one disadvantage: -it puts the documentation string far away from the line which names the -variable. Here's a safe way to avoid that: - -@example -(defvar my-mode-map nil - @var{docstring}) -(unless my-mode-map - (let ((map (make-sparse-keymap))) - (define-key map "\C-c\C-a" 'my-command) - @dots{} - (setq my-mode-map map))) -@end example - -@noindent -This has all the same advantages as putting the initialization inside -the @code{defvar}, except that you must type @kbd{C-M-x} twice, once on -each form, if you do want to reinitialize the variable. +important if the user has changed its value. Third, evaluating the +@code{defvar} form with @kbd{C-M-x} will reinitialize the variable +completely. @node Accessing Variables @section Accessing Variable Values @@ -879,6 +858,47 @@ error is signaled. @end example @end defun +@defmac setopt [symbol form]@dots{} +This is like @code{setq} (see above), but meant for user options. +This macro uses the Customize machinery to set the variable(s) +(@pxref{Variable Definitions}). In particular, @code{setopt} will run +the setter function associated with the variable. For instance, if +you have: + +@example +@group +(defcustom my-var 1 + "My var." + :type 'number + :set (lambda (var val) + (set-default var val) + (message "We set %s to %s" var val))) +@end group +@end example + +@noindent +then the following, in addition to setting @code{my-var} to @samp{2}, +will also issue a message: + +@example +(setopt my-var 2) +@end example + +@code{setopt} also checks whether the value is valid for the user +option. For instance, using @code{setopt} to set a user option +defined with a @code{number} type to a string will signal an error. + +Unlike @code{defcustom} and related customization commands, such as +@code{customize-variable}, @code{setopt} is meant for non-interactive +use, in particular in the user init file. For that reason, it doesn't +record the standard, saved, and user-set values, and doesn't mark the +variable as candidate for saving in the custom file. + +The @code{setopt} macro can be used on regular, non-user option +variables, but is much less efficient than @code{setq}. The main use +case for this macro is setting user options in the user's init file. +@end defmac + @node Watching Variables @section Running a function when a variable is changed. @cindex variable watchpoints @@ -978,6 +998,11 @@ binding can also be accessed from the Lisp debugger.}. It also has binding can live on even after the binding construct has finished executing, by means of special objects called @dfn{closures}. + The dynamic binding was (and still is) the default in Emacs for many +years, but lately Emacs is moving towards using lexical binding in +more and more places, with the goal of eventually making that the +default. + The following subsections describe dynamic binding and lexical binding in greater detail, and how to enable lexical binding in Emacs Lisp programs. @@ -1161,13 +1186,16 @@ wants the current value of a variable, it looks first in the lexical environment; if the variable is not specified in there, it looks in the symbol's value cell, where the dynamic value is stored. - (Internally, the lexical environment is an alist of symbol-value -pairs, with the final element in the alist being the symbol @code{t} -rather than a cons cell. Such an alist can be passed as the second -argument to the @code{eval} function, in order to specify a lexical -environment in which to evaluate a form. @xref{Eval}. Most Emacs -Lisp programs, however, should not interact directly with lexical -environments in this way; only specialized programs like debuggers.) + (Internally, the lexical environment is a list whose members are +usually cons cells that are symbol-value pairs, but some of its +members can be symbols rather than cons cells. A symbol in the list +means the lexical environment declared that symbol's variable as +locally considered to be dynamically bound. This list can be passed +as the second argument to the @code{eval} function, in order to +specify a lexical environment in which to evaluate a form. +@xref{Eval}. Most Emacs Lisp programs, however, should not interact +directly with lexical environments in this way; only specialized +programs like debuggers.) @cindex closures, example of using Lexical bindings have indefinite extent. Even after a binding @@ -1187,7 +1215,7 @@ Here is an example: (let ((x 0)) ; @r{@code{x} is lexically bound.} (setq my-ticker (lambda () (setq x (1+ x))))) - @result{} (closure ((x . 0) t) () + @result{} (closure ((x . 0)) () (setq x (1+ x))) (funcall my-ticker) @@ -1695,12 +1723,14 @@ buffer-local variables interactively. @end deffn @cindex local variables, killed by major mode -@defun kill-all-local-variables +@defun kill-all-local-variables &optional kill-permanent This function eliminates all the buffer-local variable bindings of the -current buffer except for variables marked as permanent and local -hook functions that have a non-@code{nil} @code{permanent-local-hook} -property (@pxref{Setting Hooks}). As a result, the buffer will see -the default values of most variables. +current buffer. As a result, the buffer will see the default values +of most variables. By default, for variables marked as permanent and +local hook functions that have a non-@code{nil} +@code{permanent-local-hook} property (@pxref{Setting Hooks}) won't be +killed, but if the optional @var{kill-permanent} argument is +non-@code{nil}, even these variables will be killed. This function also resets certain other information pertaining to the buffer: it sets the local keymap to @code{nil}, the syntax table to the @@ -1999,6 +2029,7 @@ file-local variables stored in @code{file-local-variables-alist}. @end defvar @cindex safe local variable +@cindex @code{safe-local-variable}, property of variable You can specify safe values for a variable with a @code{safe-local-variable} property. The property has to be a function of one argument; any value is safe if the function returns @@ -2241,9 +2272,26 @@ still respecting file-local variables (@pxref{File Local Variables}). @cindex connection local variables Connection-local variables provide a general mechanism for different -variable settings in buffers with a remote connection. They are bound +variable settings in buffers with a remote connection (@pxref{Remote +Files,, Remote Files, emacs, The GNU Emacs Manual}). They are bound and set depending on the remote connection a buffer is dedicated to. +@menu +* Connection Local Profiles:: Storing variable settings to + apply to connections. +* Applying Connection Local Variables:: Using connection-local values + in your code. +@end menu + +@node Connection Local Profiles +@subsection Connection Local Profiles +@cindex connection local profiles + + Emacs uses connection-local profiles to store the variable settings +to apply to particular connections. You can then associate these with +remote connections by defining the criteria when they should apply, +using @code{connection-local-set-profiles}. + @defun connection-local-set-profile-variables profile variables This function defines a set of variable settings for the connection @var{profile}, which is a symbol. You can later assign the connection @@ -2277,13 +2325,28 @@ list in @var{variables} is an alist of the form '((null-device . "/dev/null"))) @end group @end example + +@findex connection-local-get-profile-variables +If you want to append variable settings to an existing profile, you +could use the function @code{connection-local-get-profile-variables} +in order to retrieve the existing settings, like + +@example +@group +(connection-local-set-profile-variables + 'remote-bash + (append + (connection-local-get-profile-variables 'remote-bash) + '((shell-command-dont-erase-buffer . t)))) +@end group +@end example @end defun -@defvar connection-local-profile-alist +@deffn {User Option} connection-local-profile-alist This alist holds the connection profile symbols and the associated variable settings. It is updated by @code{connection-local-set-profile-variables}. -@end defvar +@end deffn @defun connection-local-set-profiles criteria &rest profiles This function assigns @var{profiles}, which are symbols, to all remote @@ -2298,13 +2361,13 @@ always applies. Example: @example @group (connection-local-set-profiles - '(:application 'tramp :protocol "ssh" :machine "localhost") + '(:application tramp :protocol "ssh" :machine "localhost") 'remote-bash 'remote-null-device) @end group @group (connection-local-set-profiles - '(:application 'tramp :protocol "sudo" + '(:application tramp :protocol "sudo" :user "root" :machine "localhost") 'remote-ksh 'remote-null-device) @end group @@ -2316,13 +2379,13 @@ Therefore, the example above would be equivalent to @example @group (connection-local-set-profiles - '(:application 'tramp :protocol "ssh" :machine "localhost") + '(:application tramp :protocol "ssh" :machine "localhost") 'remote-bash) @end group @group (connection-local-set-profiles - '(:application 'tramp :protocol "sudo" + '(:application tramp :protocol "sudo" :user "root" :machine "localhost") 'remote-ksh) @end group @@ -2337,11 +2400,19 @@ Therefore, the example above would be equivalent to defined by @code{connection-local-set-profile-variables}. @end defun -@defvar connection-local-criteria-alist +@deffn {User Option} connection-local-criteria-alist This alist contains connection criteria and their assigned profile names. The function @code{connection-local-set-profiles} updates this list. -@end defvar +@end deffn + +@node Applying Connection Local Variables +@subsection Applying Connection Local Variables +@cindex connection local variables, applying + + When writing connection-aware code, you'll need to collect, and +possibly apply, any connection-local variables. There are several +ways to do this, as described below. @defun hack-connection-local-variables criteria This function collects applicable connection-local variables @@ -2352,7 +2423,7 @@ Example: @example @group (hack-connection-local-variables - '(:application 'tramp :protocol "ssh" :machine "localhost")) + '(:application tramp :protocol "ssh" :machine "localhost")) @end group @group @@ -2371,9 +2442,9 @@ This function looks for connection-local variables according to @var{criteria}, and immediately applies them in the current buffer. @end defun -@defmac with-connection-local-variables &rest body -All connection-local variables, which are specified by -@code{default-directory}, are applied. +@defmac with-connection-local-application-variables application &rest body +Apply all connection-local variables for @code{application}, which are +specified by @code{default-directory}. After that, @var{body} is executed, and the connection-local variables are unwound. Example: @@ -2381,25 +2452,85 @@ are unwound. Example: @example @group (connection-local-set-profile-variables - 'remote-perl - '((perl-command-name . "/usr/local/bin/perl") + 'my-remote-perl + '((perl-command-name . "/usr/local/bin/perl5") (perl-command-switch . "-e %s"))) @end group @group (connection-local-set-profiles - '(:application 'tramp :protocol "ssh" :machine "remotehost") - 'remote-perl) + '(:application my-app :protocol "ssh" :machine "remotehost") + 'my-remote-perl) @end group @group (let ((default-directory "/ssh:remotehost:/working/dir/")) - (with-connection-local-variables + (with-connection-local-application-variables 'my-app do something useful)) @end group @end example @end defmac +@defvar connection-local-default-application +The default application, a symbol, to be applied in +@code{with-connection-local-variables}. It defaults to @code{tramp}, +but you can let-bind it to change the application temporarily +(@pxref{Local Variables}). + +This variable must not be changed globally. +@end defvar + +@defmac with-connection-local-variables &rest body +This is equivalent to +@code{with-connection-local-application-variables}, but uses +@code{connection-local-default-application} for the application. +@end defmac + +@defmac setq-connection-local [symbol form]@dots{} +This macro sets each @var{symbol} connection-locally to the result of +evaluating the corresponding @var{form}, using the connection-local +profile specified in @code{connection-local-profile-name-for-setq}; if +the profile name is @code{nil}, this macro will just set the variables +normally, as with @code{setq} (@pxref{Setting Variables}). + +For example, you can use this macro in combination with +@code{with-connection-local-variables} or +@code{with-connection-local-application-variables} to lazily +initialize connection-local settings: + +@example +@group +(defvar my-app-variable nil) + +(connection-local-set-profile-variables + 'my-app-connection-default-profile + '((my-app-variable . nil))) + +(connection-local-set-profiles + '(:application my-app) + 'my-app-connection-default-profile) +@end group + +@group +(defun my-app-get-variable () + (with-connection-local-application-variables 'my-app + (or my-app-variable + (setq-connection-local my-app-variable + do something useful)))) +@end group +@end example +@end defmac + +@defvar connection-local-profile-name-for-setq +The connection-local profile name, a symbol, to use when setting +variables via @code{setq-connection-local}. This is let-bound in the +body of @code{with-connection-local-variables}, but you can also +let-bind it yourself if you'd like to set variables on a different +profile. + +This variable must not be changed globally. +@end defvar + @defvar enable-connection-local-variables If @code{nil}, connection-local variables are ignored. This variable shall be changed temporarily only in special modes. @@ -2458,7 +2589,7 @@ can be either @code{get} or @code{set}. You can make two variables synonyms and declare one obsolete at the same time using the macro @code{define-obsolete-variable-alias}. -@defmac define-obsolete-variable-alias obsolete-name current-name &optional when docstring +@defmac define-obsolete-variable-alias obsolete-name current-name when &optional docstring This macro marks the variable @var{obsolete-name} as obsolete and also makes it an alias for the variable @var{current-name}. It is equivalent to the following: @@ -2614,17 +2745,56 @@ cdar nthcdr A call to any of the following Emacs-specific functions: @smallexample -alist-get process-get -frame-parameter process-sentinel -terminal-parameter window-buffer -keymap-parent window-display-table -match-data window-dedicated-p -overlay-get window-hscroll -overlay-start window-parameter -overlay-end window-point -process-buffer window-start -process-filter default-value +alist-get overlay-start +default-value overlay-get +face-background process-buffer +face-font process-filter +face-foreground process-get +face-stipple process-sentinel +face-underline-p terminal-parameter +file-modes window-buffer +frame-parameter window-dedicated-p +frame-parameters window-display-table +get-register window-hscroll +getenv window-parameter +keymap-parent window-point +match-data window-start +overlay-end @end smallexample + +@item +A call of the form @code{(substring @var{subplace} @var{n} [@var{m}])}, +where @var{subplace} is itself a valid generalized variable whose +current value is a string, and where the value stored is also a +string. The new string is spliced into the specified part of the +destination string. For example: + +@example +(setq a (list "hello" "world")) + @result{} ("hello" "world") +(cadr a) + @result{} "world" +(substring (cadr a) 2 4) + @result{} "rl" +(setf (substring (cadr a) 2 4) "o") + @result{} "o" +(cadr a) + @result{} "wood" +a + @result{} ("hello" "wood") +@end example + +@item +The @code{if} and @code{cond} conditionals will work as generalized +variables. For instance, this will set either the @code{foo} or the +@code{bar} variable to @code{zot}: + +@example +(setf (if (zerop (random 2)) + foo + bar) + 'zot) +@end example @end itemize @noindent @@ -2725,13 +2895,13 @@ implemented this way: (gv-define-expander substring (lambda (do place from &optional to) (gv-letplace (getter setter) place - (macroexp-let2* nil ((start from) (end to)) - (funcall do `(substring ,getter ,start ,end) + (macroexp-let2* (from to) + (funcall do `(substring ,getter ,from ,to) (lambda (v) - (macroexp-let2 nil v v + (macroexp-let2* (v) `(progn ,(funcall setter `(cl--set-substring - ,getter ,start ,end ,v)) + ,getter ,from ,to ,v)) ,v)))))))) @end example @end defmac @@ -2744,7 +2914,7 @@ of Common Lisp could be implemented this way: @example (defmacro incf (place &optional n) (gv-letplace (getter setter) place - (macroexp-let2 nil v (or n 1) + (macroexp-let2* ((v (or n 1))) (funcall setter `(+ ,v ,getter))))) @end example @@ -2757,6 +2927,16 @@ expression manipulating @var{place} via @var{getter} and @var{setter}. Consult the source file @file{gv.el} for more details. +@defun make-obsolete-generalized-variable obsolete-name current-name when +This function makes the byte compiler warn that the generalized +variable @var{obsolete-name} is obsolete. If @var{current-name} is a +symbol, then the warning message says to use @var{current-name} +instead of @var{obsolete-name}. If @var{current-name} is a string, +this is the message. @var{when} should be a string indicating when +the variable was first made obsolete (usually a version number +string). +@end defun + @cindex CL note---no @code{setf} functions @quotation @b{Common Lisp note:} Common Lisp defines another way to specify the @@ -2769,3 +2949,157 @@ form that has not already had an appropriate expansion defined. In Common Lisp, this is not an error since the function @code{(setf @var{func})} might be defined later. @end quotation + +@node Multisession Variables +@section Multisession Variables + +@cindex multisession variable + When you set a variable to a value and then close Emacs and restart +it, that value won't be automatically restored. Users usually set +normal variables in their startup files, or use Customize +(@pxref{Customization}) to set user options permanently, and various +packages have various files where they store the data (e.g., Gnus +stores this in @file{.newsrc.eld} and the URL library stores cookies +in @file{~/.emacs.d/url/cookies}). + +For things in between these two extremes (i.e., configuration which +goes in the startup file, and massive application state that goes into +separate files), Emacs provides a facility to replicate data between +sessions called @dfn{multisession variables}. (This facility may not +be available on all systems.) To give you an idea of how these are +meant to be used, here's a small example: + +@lisp +@group +(define-multisession-variable foo 0) +(defun my-adder (num) + (interactive "nAdd number: ") + (setf (multisession-value foo) + (+ (multisession-value foo) num)) + (message "The new number is: %s" (multisession-value foo))) +@end group +@end lisp + +@noindent +This defines the variable @code{foo} and binds it to a special +multisession object which is initialized with the value @samp{0} (if +the variable doesn't already exist from a previous session). The +@code{my-adder} command queries the user for a number, adds this to +the old (possibly saved value), and then saves the new value. + +This facility isn't meant to be used for huge data structures, but +should be performant for most values. + +@defmac define-multisession-variable name initial-value &optional doc &rest args +This macro defines @var{name} as a multisession variable, and gives it +the @var{initial-value} if this variable hasn't been assigned a value +earlier. @var{doc} is the doc string, and several keyword arguments can +be used in @var{args}: + +@table @code +@item :package @var{package-symbol} +This keyword says that a multisession variable belongs to the package +specified by @var{package-symbol}. The combination of +@var{package-symbol} and @var{name} has to be unique. If +@var{package-symbol} isn't given, this will default to the first +``segment'' of the @var{name} symbol's name, which is the part of its +name up to and excluding the first @samp{-}. For instance, if +@var{name} is @code{foo} and @var{package-symbol} isn't given, +@var{package-symbol} will default to @code{foo}. + +@cindex synchronized multisession variables +@item :synchronized @var{bool} +Multisession variables can be @dfn{synchronized} if @var{bool} is +non-@code{nil}. This means that if there're two concurrent Emacs +instances running, and the other Emacs changes the multisession +variable @code{foo}, the current Emacs instance will retrieve that +modified data when accessing the value. If @var{synchronized} is +@code{nil} or missing, this won't happen, and the values in all +Emacs sessions using the variable will be independent of each other. + +@item :storage @var{storage} +Use the specified @var{storage} method. This can be either +@code{sqlite} (in Emacs compiled with SQLite support) or @code{files}. +If not given, this defaults to the value of the +@code{multisession-storage} variable, described below. +@end table +@end defmac + +@defun multisession-value variable +This function returns the current value of @var{variable}. If this +variable hasn't been accessed before in this Emacs session, or if it's +changed externally, it will be read in from external storage. If not, +the current value in this session is returned as is. It is an error +to call this function for a @var{variable} that is not a multisession +variable. + +Values retrieved via @code{multisession-value} may or may not be +@code{eq} to each other, but they will always be @code{equal}. + +This is a generalized variable (@pxref{Generalized Variables}), so the +way to update such a variable is to say, for instance: + +@lisp +(setf (multisession-value foo-bar) 'zot) +@end lisp + +Only Emacs Lisp values that have a readable print syntax +(@pxref{Printed Representation}) can be saved this way. + +If the multisession variable is synchronized, setting it may update +the value first. For instance: + +@lisp +(cl-incf (multisession-value foo-bar)) +@end lisp + +This first checks whether the value has changed in a different +Emacs instance, retrieves that value, and then adds 1 to that value and +stores it. But note that this is done without locking, so if many +instances are updating the value at the same time, it's unpredictable +which instance ``wins''. +@end defun + +@defun multisession-delete object +This function deletes @var{object} and its value from its persistent +storage. +@end defun + +@c FIXME: this lacks the documentation of the form of the arguments. +@defun make-multisession +You can also make persistent values that aren't tied to a specific +variable, but are tied to an explicit package and key. + +@example +(setq foo (make-multisession :package "mail" + :key "friends")) +(setf (multisession-value foo) 'everybody) +@end example + +This supports the same keywords as +@code{define-multisession-variable}, but also supports a +@code{:initial-value} keyword, which specifies the default value. +@end defun + +@defopt multisession-storage +This variable controls how the multisession variables are stored. It +value defaults to @code{files}, which means that the values are stored +in a one-file-per-variable structure inside the directory specified by +@code{multisession-directory}. If this value is @code{sqlite} +instead, the values are stored in an SQLite database; this is only +available if Emacs was built with SQLite support. +@end defopt + +@defopt multisession-directory +The multisession variables are stored under this directory, which +defaults to @file{multisession/} subdirectory of the +@code{user-emacs-directory}, which is typically +@file{~/.emacs.d/multisession/}. +@end defopt + +@findex multisession-edit-mode +@deffn Command list-multisession-values +This command pops up a buffer listing all the multisession variables, +and enters a special mode @code{multisession-edit-mode} which allows +you to delete them and edit their values. +@end deffn diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index 8b7c1b69a560..d72da704f13c 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990--1995, 1998--1999, 2001--2023 Free Software +@c Copyright (C) 1990--1995, 1998--1999, 2001--2024 Free Software @c Foundation, Inc. @c See the file elisp.texi for copying conditions. @node Windows @@ -588,8 +588,7 @@ within that frame. @var{frame} should be a live frame; if omitted or @defun set-frame-selected-window frame window &optional norecord This function makes @var{window} the window selected within the frame @var{frame}. @var{frame} should be a live frame; if @code{nil}, it -defaults to the selected frame. @var{window} should be a live window; -if @code{nil}, it defaults to the selected window. +defaults to the selected frame. @var{window} must denote a live window. If @var{frame} is the selected frame, this makes @var{window} the selected window. @@ -630,6 +629,12 @@ example, by calling @code{select-window} with argument @var{norecord} @code{nil}. Hence, this macro is the preferred way to temporarily work with @var{window} as the selected window without needlessly running @code{buffer-list-update-hook}. + +Note that this macro temporarily puts the window management code in an +unstable state. In particular, the most recently used window (see below) +will not necessarily match the selected one. Hence, functions like +@code{get-lru-window} and @code{get-mru-window} may return unexpected +results when called from the body of this macro. @end defmac @defmac with-selected-frame frame forms@dots{} @@ -651,15 +656,17 @@ The @dfn{use time} of a window is not really a time value, but an integer that does increase monotonically with each call of @code{select-window} with a @code{nil} @var{norecord} argument. The window with the lowest use time is usually called the least recently -used window while the window with the highest use time is called the -most recently used one (@pxref{Cyclic Window Ordering}). +used window. The window with the highest use time is called the most +recently used one (@pxref{Cyclic Window Ordering}) and is usually the +selected window unless @code{with-selected-window} has been used. @end defun @defun window-bump-use-time &optional window -This function marks @var{window} as being the most recently used -one. This can be useful when writing certain @code{pop-to-buffer} -scenarios (@pxref{Switching Buffers}). @var{window} must be a live -window and defaults to the selected one. +This function marks @var{window} as being the second most recently +used one (after the selected window). It does nothing if @var{window} +is the selected window or the selected window does not have the +highest use time among all windows which may happen within the scope +of @code{with-selected-window}. @end defun @anchor{Window Group}Sometimes several windows collectively and @@ -829,14 +836,18 @@ This function returns the height, in lines, of the body of window @var{window}. If @var{window} is omitted or @code{nil}, it defaults to the selected window; otherwise it must be a live window. -If the optional argument @var{pixelwise} is non-@code{nil}, this -function returns the body height of @var{window} counted in pixels. +The optional argument @var{pixelwise} defines the units to use for the +height. If @code{nil}, return the body height of @var{window} in +characters, rounded down to the nearest integer, if necessary. This +means that if a line at the bottom of the text area is only partially +visible, that line is not counted. It also means that the height of a +window's body can never exceed its total height as returned by +@code{window-total-height}. -If @var{pixelwise} is @code{nil}, the return value is rounded down to -the nearest integer, if necessary. This means that if a line at the -bottom of the text area is only partially visible, that line is not -counted. It also means that the height of a window's body can never -exceed its total height as returned by @code{window-total-height}. +If @var{pixelwise} is @code{remap} and the default face is remapped +(@pxref{Face Remapping}), use the remapped face to determine the +character height. For any other non-@code{nil} value, return the +height in pixels. @end defun @cindex window body width @@ -857,14 +868,18 @@ This function returns the width, in columns, of the body of window @var{window}. If @var{window} is omitted or @code{nil}, it defaults to the selected window; otherwise it must be a live window. -If the optional argument @var{pixelwise} is non-@code{nil}, this -function returns the body width of @var{window} in units of pixels. +The optional argument @var{pixelwise} defines the units to use for the +width. If @code{nil}, return the body width of @var{window} in +characters, rounded down to the nearest integer, if necessary. This +means that if a column on the right of the text area is only partially +visible, that column is not counted. It also means that the width of +a window's body can never exceed its total width as returned by +@code{window-total-width}. -If @var{pixelwise} is @code{nil}, the return value is rounded down to -the nearest integer, if necessary. This means that if a column on the -right of the text area is only partially visible, that column is not -counted. It also means that the width of a window's body can never -exceed its total width as returned by @code{window-total-width}. +If @var{pixelwise} is @code{remap} and the default face is remapped +(@pxref{Face Remapping}), use the remapped face to determine the +character width. For any other non-@code{nil} value, return the width +in pixels. @end defun @cindex window body size @@ -1150,11 +1165,13 @@ frame to its buffer using the command @code{fit-frame-to-buffer}. This command adjusts the size of @var{frame} to display the contents of its buffer exactly. @var{frame} can be any live frame and defaults to the selected one. Fitting is done only if @var{frame}'s root window is -live. The arguments @var{max-height}, @var{min-height}, @var{max-width} -and @var{min-width} specify bounds on the new total size of -@var{frame}'s root window. @var{min-height} and @var{min-width} default -to the values of @code{window-min-height} and @code{window-min-width} -respectively. +live. + +The arguments @var{max-height}, @var{min-height}, @var{max-width} and +@var{min-width}, if non-@code{nil}, specify bounds on the new body size +of @var{frame}'s root window. A non-@code{nil} value specified by any +of these arguments overrides the corresponding value specified by +the option @code{fit-frame-to-buffer-sizes} described below. If the optional argument @var{only} is @code{vertically}, this function may resize the frame vertically only. If @var{only} is @@ -1179,10 +1196,10 @@ here can be overridden for a specific frame by that frame's @defopt fit-frame-to-buffer-sizes This option specifies size boundaries for @code{fit-frame-to-buffer}. -It specifies the total maximum and minimum lines and maximum and minimum -columns of the root window of any frame that shall be fit to its buffer. -If any of these values is non-@code{nil}, it overrides the corresponding -argument of @code{fit-frame-to-buffer}. +It specifies the maximum and minimum lines and maximum and minimum +columns of the root window's body of any frame that shall be fit to its +buffer. Any value this option specifies will be overridden by the +corresponding argument of @code{fit-frame-to-buffer}, if non-@code{nil}. @end defopt @deffn Command shrink-window-if-larger-than-buffer &optional window @@ -1462,20 +1479,36 @@ the new root window. For interactive use, Emacs provides two commands which always split the selected window. These call @code{split-window} internally. -@deffn Command split-window-right &optional size -This function splits the selected window into two side-by-side -windows, putting the selected window on the left. If @var{size} is -positive, the left window gets @var{size} columns; if @var{size} is +@deffn Command split-window-right &optional size window-to-split +This function splits the window @var{window-to-split} into two +side-by-side windows, putting @var{window-to-split} on the left. +@var{window-to-split} defaults to the selected window. If @var{size} +is positive, the left window gets @var{size} columns; if @var{size} is negative, the right window gets @minus{}@var{size} columns. @end deffn -@deffn Command split-window-below &optional size -This function splits the selected window into two windows, one above -the other, leaving the upper window selected. If @var{size} is -positive, the upper window gets @var{size} lines; if @var{size} is +@deffn Command split-window-below &optional size window-to-split +This function splits the window @var{window-to-split} into two +windows, one above the other, leaving the upper window selected. +@var{window-to-split} defaults to the selected window. If @var{size} +is positive, the upper window gets @var{size} lines; if @var{size} is negative, the lower window gets @minus{}@var{size} lines. @end deffn +@deffn Command split-root-window-below &optional size +This function splits the whole frame in two. The current window +configuration is retained on the top, and a new window is created +below, taking up the whole width of the frame. @var{size} is treated +as by @code{split-window-below}. +@end deffn + +@deffn Command split-root-window-right &optional size +This function splits the whole frame in two. The current window +configuration is retained on the left, and a new window is created on +the right, taking up the whole height of the frame. @var{size} is treated +as by @code{split-window-right}. +@end deffn + @defopt split-window-keep-point If the value of this variable is non-@code{nil} (the default), @code{split-window-below} behaves as described above. @@ -2596,13 +2629,15 @@ default value is an empty display action, i.e., @w{@code{(nil . nil)}}. @defopt display-buffer-alist The value of this option is an alist mapping conditions to display -actions. Each condition may be either a regular expression matching a -buffer name or a function that takes two arguments: a buffer name and -the @var{action} argument passed to @code{display-buffer}. If either -the name of the buffer passed to @code{display-buffer} matches a -regular expression in this alist, or the function specified by a -condition returns non-@code{nil}, then @code{display-buffer} uses the -corresponding display action to display the buffer. +actions. Each condition is passed to @code{buffer-match-p} +(@pxref{Buffer List}), along with the buffer name and the @var{action} +argument passed to @code{display-buffer}. If it returns a +non-@code{nil} value, then @code{display-buffer} uses the +corresponding display action to display the buffer. Caveat: if you +use @code{derived-mode} or @code{major-mode} as condition, +@code{buffer-match-p} could fail to report a match if +@code{display-buffer} is called before the major mode of the buffer is +set. @end defopt @defopt display-buffer-base-action @@ -2732,14 +2767,40 @@ before. @defun display-buffer-use-some-window buffer alist This function tries to display @var{buffer} by choosing an existing -window and displaying the buffer in that window. It can fail if all -windows are dedicated to other buffers (@pxref{Dedicated Windows}). +window and displaying the buffer in that window. It first tries to find +a window that has not been used recently (@pxref{Cyclic Window +Ordering}) on any frame specified by a @code{lru-frames} @var{alist} +entry, falling back to the selected frame if no such entry exists. It +also prefers windows that satisfy the constraints specified by +@code{window-min-width} and @code{window-min-height} @var{alist} +entries; preferring full-width windows if no @code{window-min-width} +entry is found. Finally, it will not return a window whose use time is +higher than that specified by any @code{lru-time} entry provided by +@var{alist}. + +If no less recently used window is found, this function will try to use +some other window, preferably a large window on some visible frame. It +can fail if all windows are dedicated to other buffers (@pxref{Dedicated +Windows}). @end defun @defun display-buffer-use-least-recent-window buffer alist -This function is like @code{display-buffer-use-some-window}, but will -not reuse the current window, and will use the least recently -switched-to window. +This function is similar to @code{display-buffer-use-some-window}, but +will try harder to not use the a recently used window. In particular, +it does not use the selected window. In addition, it will first try to +reuse a window that shows @var{buffer} already, base the decision +whether it should use a window showing another buffer on that window's +use time alone and pop up a new window if no usable window is found. + +Finally, this function will bump the use time (@pxref{Selecting +Windows}) of any window it returns in order to avoid that further +invocations will use that window for showing another buffer. An +application that wants to display several buffers in a row can help this +function by providing a @code{lru-time} @var{alist} entry it has +initially set to the value of the selected window's use time. Each +invocation of this function will then bump the use time of the window +returned to a value higher than that and a subsequent invocation will +inhibit this function to use a window it returned earlier. @end defun @defun display-buffer-in-direction buffer alist @@ -2838,6 +2899,11 @@ the function specified in @code{pop-up-frame-function} the newly created frame's parameters. @end defun +@defun display-buffer-full-frame buffer alist +This function displays the buffer on the current frame, deleting all +other windows so that it takes up the full frame. +@end defun + @defun display-buffer-in-child-frame buffer alist This function tries to display @var{buffer} in a child frame (@pxref{Child Frames}) of the selected frame, either reusing an @@ -2968,13 +3034,14 @@ follows: @code{nil} means consider only windows on the selected frame. (Actually, the last frame used that is not a minibuffer-only frame.) @item -@code{t} means consider windows on all frames. -@item @code{visible} means consider windows on all visible frames. @item 0 means consider windows on all visible or iconified frames. @item A frame means consider windows on that frame only. +@item +@code{t} means consider windows on all frames. (Note that this value +is rarely the right thing to use---it might also return a tooltip frame.) @end itemize Note that the meaning of @code{nil} differs slightly from that of the @@ -3003,12 +3070,40 @@ The value specifies an alist of window parameters to give the chosen window. All action functions that choose a window should process this entry. +@vindex window-min-width@r{, a buffer display action alist entry} +@item window-min-width +The value specifies a minimum width of the window used, in canonical +frame columns. The special value @code{full-width} means the chosen +window should be one that has no other windows on the left or right of +it in its frame. + +This entry is currently honored by @code{display-buffer-use-some-window} +and @code{display-buffer-use-least-recent-window}, which try hard to avoid +returning a less recently used window that does not satisfy the entry. + +Note that providing such an entry alone does not necessarily make the +window as wide as specified by its value. To actually resize an +existing window or make a new window as wide as specified by this +entry's value, a @code{window-width} entry specifying that value +should be provided as well. Such a @code{window-width} entry can, +however, specify a completely different value, or ask the window width +to fit that of its buffer, in which case the +@code{window-min-width} entry provides the guaranteed minimum width of +the window. + @vindex window-min-height@r{, a buffer display action alist entry} @item window-min-height -The value specifies a minimum height of the window used, in lines. If -a window is not or cannot be made as high as specified by this entry, -the window is not considered for use. The only client of this entry -is presently @code{display-buffer-below-selected}. +The value specifies a minimum height of the window used, in canonical +frame lines. The special value @code{full-height} means the chosen +window should be a full-height window, one that has no other windows +above or below it in its frame. + +This entry is currently honored by @code{display-buffer-below-selected} +which does not use a window that is not as high as specified by this +entry. It's also honored by @code{display-buffer-use-some-window} and +@code{display-buffer-use-least-recent-window} which try hard to avoid +returning a less recently used window if it does not satisfy this +constraint. Note that providing such an entry alone does not necessarily make the window as tall as specified by its value. To actually resize an @@ -3037,6 +3132,11 @@ A floating-point number specifies the fraction of the chosen window's desired total height with respect to the total height of its frame's root window. +@item +A cons cell whose @sc{car} is @code{body-lines} and whose @sc{cdr} is an +integer that specifies the height of the chosen window's body in frame +lines. + @item If the value specifies a function, that function is called with one argument---the chosen window. The function is supposed to adjust the @@ -3070,17 +3170,48 @@ A floating-point number specifies the fraction of the chosen window's desired total width with respect to the total width of the frame's root window. +@item +A cons cell whose @sc{car} is @code{body-columns} and whose @sc{cdr} is +an integer that specifies the width of the chosen window's body in frame +columns. + @item If the value specifies a function, that function is called with one argument---the chosen window. The function is supposed to adjust the width of the window; its return value is ignored. @end itemize -By convention, the width of the chosen window is adjusted only if the -window is part of a horizontal combination (@pxref{Windows and -Frames}) to avoid changing the width of other, unrelated windows. -Also, this entry should be processed under only certain conditions -which are specified right below this list. +@vindex window-size@r{, a buffer display action alist entry} +@item window-size +This entry is a combination of the two preceding ones and can be used to +adjust the chosen window's height @emph{and} width. Since windows can +be resized in one direction only without affecting other windows, +@code{window-size} is effective only to set up the size of a window +appearing alone on a frame. The value can be one of the following: + +@itemize @bullet +@item +@code{nil} means to leave the size of the chosen window alone. + +@item +A cons cell of two integers specifies the desired total width and height +of the chosen window in lines and columns. It's effect is to adjust the +size of the frame accordingly. + +@item +A cons cell whose @sc{car} equals @code{body-chars} and whose @sc{cdr} +is a cons cell of two integers---the desired body width and height of +the chosen window in frame columns and lines. It's effect is to adjust +the size of the frame accordingly. + +@item +If the value specifies a function, that function is called with one +argument---the chosen window. The function is supposed to adjust the +size of the window's frame; its return value is ignored. +@end itemize + +This entry should be processed under only certain conditions which are +specified right below this list. @vindex dedicated@r{, a buffer display action alist entry} @item dedicated @@ -3089,7 +3220,7 @@ any window it creates as dedicated to its buffer (@pxref{Dedicated Windows}). It does that by calling @code{set-window-dedicated-p} with the chosen window as first argument and the entry's value as second. Side windows are by default dedicated with the value @code{side} -((@pxref{Side Window Options and Functions}). +(@pxref{Side Window Options and Functions}). @vindex preserve-size@r{, a buffer display action alist entry} @item preserve-size @@ -3101,6 +3232,40 @@ preserve both, its width and its height. This entry should be processed only under certain conditions which are specified right after this list. +@vindex lru-frames@r{, a buffer display action alist entry} +@item lru-frames +The value specifies the set of frames to search for a window that can be +used to display the buffer. It is honored by +@code{display-buffer-use-some-window} and +@code{display-buffer-use-least-recent-window} when trying to find a less +recently used window showing some other buffer. Its values are the same +as for the @code{reusable-frames} entry described above. + +@vindex lru-time@r{, a buffer display action alist entry} +@item lru-time +The value is supposed to specify a use time (@pxref{Selecting Windows}). +This entry is honored by @code{display-buffer-use-some-window} and +@code{display-buffer-use-least-recent-window} when trying to find a less +recently used window showing some other buffer. If a window's use time +is higher than the value specified by this option, these action +functions will not consider such a window for displaying the buffer. + +@vindex bump-use-time@r{, a buffer display action alist entry} +@item bump-use-time +If non-@code{nil}, such an entry will cause @code{display-buffer} to +bump the use time (@pxref{Selecting Windows}) of the window it uses. +This should avoid later use of this window by action functions +like @code{display-buffer-use-some-window} and +@code{display-buffer-use-least-recent-window} for showing another +buffer. + +There is a fine difference between using this entry and using the action +function @code{display-buffer-use-least-recent-window}. Calling the +latter means to only bump the use times of windows that function uses +for displaying the buffer. The entry described here will cause +@code{display-buffer} to bump the use time of @emph{any} window used for +displaying a buffer. + @vindex pop-up-frame-parameters@r{, a buffer display action alist entry} @item pop-up-frame-parameters The value specifies an alist of frame parameters to give a new frame, @@ -3181,6 +3346,14 @@ the window was created earlier by @code{display-buffer} to show the buffer and never was used to show another buffer until it was reused by the current invocation of @code{display-buffer}. +If no @code{window-height}, @code{window-width} or @code{window-size} +entry was specified, the window may still be resized automatically when +the buffer is temporary and @code{temp-buffer-resize-mode} has been +enabled, @ref{Temporary Displays}. In that case, the @sc{cdr} of a +@code{window-height}, @code{window-width} or @code{window-size} entry +can be used to inhibit or override the default behavior of +@code{temp-buffer-resize-mode} for specific buffers or invocations of +@code{display-buffer}. @node Choosing Window Options @subsection Additional Options for Displaying Buffers @@ -3333,8 +3506,8 @@ functions it should try instead as, for example: @example @group -(customize-set-variable - 'display-buffer-base-action +(setopt + display-buffer-base-action '((display-buffer-reuse-window display-buffer-same-window display-buffer-in-previous-window display-buffer-use-some-window))) @@ -3348,8 +3521,8 @@ Instead of customizing this variable to @code{t}, customize @example @group -(customize-set-variable - 'display-buffer-base-action +(setopt + display-buffer-base-action '((display-buffer-reuse-window display-buffer-pop-up-frame) (reusable-frames . 0))) @end group @@ -3365,8 +3538,8 @@ specifying the action function @code{display-buffer-same-window}. @example @group -(customize-set-variable - 'display-buffer-alist +(setopt + display-buffer-alist (cons '("\\*foo\\*" (display-buffer-same-window)) display-buffer-alist)) @end group @@ -3439,8 +3612,8 @@ another frame. Such a user might provide the following customization: @example @group -(customize-set-variable - 'display-buffer-base-action +(setopt + display-buffer-base-action '((display-buffer-reuse-window display-buffer-pop-up-frame) (reusable-frames . 0))) @end group @@ -3485,8 +3658,8 @@ In fact, this: @example @group -(customize-set-variable - 'display-buffer-base-action +(setopt + display-buffer-base-action '(display-buffer-pop-up-frame (reusable-frames . 0))) @end group @end example @@ -3542,8 +3715,8 @@ by customizing the option @code{display-buffer-alist} as follows: @example @group -(customize-set-variable - 'display-buffer-alist +(setopt + display-buffer-alist '(("\\*foo\\*" (display-buffer-reuse-window display-buffer-pop-up-frame)))) @end group @@ -3565,8 +3738,8 @@ we would have to specify that separately, however: @example @group -(customize-set-variable - 'display-buffer-alist +(setopt + display-buffer-alist '(("\\*foo\\*" (display-buffer-reuse-window display-buffer-pop-up-frame) (reusable-frames . visible)))) @@ -3672,8 +3845,8 @@ written that as @example @group -(customize-set-variable - 'display-buffer-alist +(setopt + display-buffer-alist '(("\\*foo\\*" (display-buffer-reuse-window display-buffer-pop-up-frame) (inhibit-same-window . t) @@ -3816,8 +3989,8 @@ follows: @example @group -(customize-set-variable - 'display-buffer-alist +(setopt + display-buffer-alist '(("\\*foo\\*" (display-buffer-below-selected display-buffer-at-bottom) (inhibit-same-window . t) @@ -3830,8 +4003,8 @@ To add a customization for a second buffer one would then write: @example @group -(customize-set-variable - 'display-buffer-alist +(setopt + display-buffer-alist '(("\\*foo\\*" (display-buffer-below-selected display-buffer-at-bottom) (inhibit-same-window . t) @@ -3912,53 +4085,79 @@ related to the new window. For non-input related actions @code{display-buffer-below-selected} might be preferable because the selected window usually already has the user's attention. -@item Handle subsequent invocations of @code{display-buffer} -@code{display-buffer} is not overly well suited for displaying several -buffers in sequence and making sure that all these buffers are shown -orderly in the resulting window configuration. Again, the standard -action functions @code{display-buffer-pop-up-window} and -@code{display-buffer-use-some-window} are not very suited for this -purpose due to their somewhat chaotic nature in more complex -configurations. +@item Take care which window is selected +Many applications call @code{display-buffer} from within window +excursions produced by @code{with-selected-window} or +@code{select-window} calls with a non-@code{nil} @var{norecord} +argument. This is almost always a bad idea because the window selected +within such an excursion is usually not the window selected in the +configuration presented to the user. + +If, for example, a user had added an @code{inhibit-same-window} alist +entry, that entry would have avoided the window selected within the +scope of the excursion and not the window selected in the resulting +configuration. Even if no such entry has been added, the resulting +behavior might be strange. While in a frame containing one live +window, evaluating the following form - To produce a window configuration displaying multiple buffers (or -different views of one and the same buffer) in one and the same -display cycle, Lisp programmers will unavoidably have to write -their own action functions. A few tricks listed below might help in -this regard. +@example +@group +(progn + (split-window) + (display-buffer "*Messages*")) +@end group +@end example -@itemize @bullet -@item -Making windows atomic (@pxref{Atomic Windows}) avoids breaking an -existing window composition when popping up a new window. -The new window will pop up outside the composition instead. +@noindent +will display a window showing the @file{*Messages*} buffer at the bottom +and leave the other window selected. Evaluating the next form -@item -Temporarily dedicating windows to their buffers (@pxref{Dedicated -Windows}) avoids using a window for displaying a different -buffer. A non-dedicated window will be used instead. +@example +@group +(with-selected-window (split-window) + (display-buffer "*Messages*")) +@end group +@end example -@item -Calling @code{window-preserve-size} (@pxref{Preserving Window Sizes}) -will try to keep the size of the argument window unchanged when -popping up a new window. You have to make sure that another window in -the same combination can be shrunk instead, though. +@noindent +will display @file{*Messages*} in a window on the top and select it +which is usually not what @code{display-buffer} is supposed to do. -@item -Side windows (@pxref{Side Windows}) can be used for displaying -specific buffers always in a window at the same position of a frame. -This permits grouping buffers that do not compete for being shown at -the same time on a frame and showing any such buffer in the same window -without disrupting the display of other buffers. +On the other hand, while evaluating the following form -@item -Child frames (@pxref{Child Frames}) can be used to display a buffer -within the screen estate of the selected frame without disrupting that -frame's window configuration and without the overhead associated with -full-fledged frames as inflicted by @code{display-buffer-pop-up-frame}. -@end itemize -@end table +@example +@group +(progn + (split-window) + (pop-to-buffer "*Messages*")) +@end group +@end example + +@noindent +will correctly select the @file{*Messages*} buffer, the next form + +@example +@group +(progn + (split-window) + (with-selected-window (selected-window) + (pop-to-buffer "*Messages*"))) +@end group +@end example + +@noindent +will not. + +Also, invocations of action functions like +@code{display-buffer-use-some-window} and +@code{display-buffer-use-least-recent-window} that expect the selected +window to have the highest use time among all windows, may fail to +produce a window according to their specifications. +Hence, an application that relies on using a window excursion should try +to postpone the @code{display-buffer} call until after the excursion has +terminated. +@end table @node Window History @section Window History @@ -4121,6 +4320,13 @@ ignore this option, for example, when there is only one buffer left these functions can switch to. @end defopt +@defopt switch-to-prev-buffer-skip-regexp +This user option should be either a regular expression or a list of +regular expressions. Buffers whose names match one of those regular +expressions will be ignored by @code{switch-to-prev-buffer} and +@code{switch-to-next-buffer} (except when there's no other buffer to +switch to). +@end defopt @node Dedicated Windows @section Dedicated Windows @@ -5367,7 +5573,7 @@ non-@code{nil}, this function may redraw the frame, according to the value of @code{recenter-redisplay}. Thus, omitting the second argument can be used to countermand the effect of @code{recenter-redisplay} being non-@code{nil}. Interactive calls -pass non-‘nil’ for @var{redisplay}. +pass non-@code{nil} for @var{redisplay}. When @code{recenter} is called interactively, @var{count} is the raw prefix argument. Thus, typing @kbd{C-u} as the prefix sets the @@ -5456,7 +5662,7 @@ pixels, rather than in units of the normal line height. @end example @end defun -@defun set-window-vscroll window lines &optional pixels-p +@defun set-window-vscroll window lines &optional pixels-p preserve-vscroll-p This function sets @var{window}'s vertical scroll position to @var{lines}. If @var{window} is @code{nil}, the selected window is used. The argument @var{lines} should be zero or positive; if not, it @@ -5478,6 +5684,12 @@ The return value is the result of this rounding. If @var{pixels-p} is non-@code{nil}, @var{lines} specifies a number of pixels. In this case, the return value is @var{lines}. + +Normally, the vscroll does not take effect on windows that aren't the +@code{minibuffer-scroll-window} or the selected window when the +mini-window is resized (@pxref{Minibuffer Windows}). This ``frozen'' +behavior is disabled when the @var{preserve-vscroll-p} parameter is +non-@code{nil}, which means to set the vscroll as usual. @end defun @defvar auto-window-vscroll @@ -6071,11 +6283,10 @@ configuration on the current frame. This function returns @code{t} if @var{object} is a window configuration. @end defun -@defun compare-window-configurations config1 config2 -This function compares two window configurations as regards the -structure of windows, but ignores the values of point and the -saved scrolling positions---it can return @code{t} even if those -aspects differ. +@defun window-configuration-equal-p config1 config2 +This function says whether two window configurations have the same +window layout, but ignores the values of point and the saved scrolling +positions---it can return @code{t} even if those aspects differ. @end defun @defun window-configuration-frame config diff --git a/doc/man/ChangeLog.1 b/doc/man/ChangeLog.1 index ccc538105476..6b29bc5598c5 100644 --- a/doc/man/ChangeLog.1 +++ b/doc/man/ChangeLog.1 @@ -176,7 +176,7 @@ ;; coding: utf-8 ;; End: - Copyright (C) 2007-2023 Free Software Foundation, Inc. + Copyright (C) 2007-2024 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/doc/man/ebrowse.1 b/doc/man/ebrowse.1 index 4ce96a44852f..7b03f50bc305 100644 --- a/doc/man/ebrowse.1 +++ b/doc/man/ebrowse.1 @@ -82,7 +82,7 @@ should give you access to the complete manual. was written by Gerd Moellmann. . .SH COPYING -Copyright 2008-2023 Free Software Foundation, Inc. +Copyright 2008-2024 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are diff --git a/doc/man/emacs.1.in b/doc/man/emacs.1.in index 551fc278fe01..d7a44fb8475b 100644 --- a/doc/man/emacs.1.in +++ b/doc/man/emacs.1.in @@ -1,5 +1,5 @@ .\" See section COPYING for copyright and redistribution information. -.TH EMACS 1 "2021-09-28" "GNU Emacs @version@" "GNU" +.TH EMACS 1 "2022-06-07" "GNU Emacs @version@" "GNU" . . .SH NAME @@ -117,6 +117,10 @@ Load .IR user 's init file. .TP +.BI \-\-init\-directory= "directory" +Start emacs with user-emacs-directory set to +.IR directory . +.TP .BI \-t " file\fR,\fP " \-\-terminal= "file" Use specified .I file @@ -660,7 +664,7 @@ For detailed credits and acknowledgments, see the GNU Emacs manual. . . .SH COPYING -Copyright 1995, 1999-2023 Free Software Foundation, Inc. +Copyright 1995, 1999-2024 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are diff --git a/doc/man/emacsclient.1 b/doc/man/emacsclient.1 index ba64efa282c9..75f38e4e50e3 100644 --- a/doc/man/emacsclient.1 +++ b/doc/man/emacsclient.1 @@ -1,5 +1,5 @@ .\" See section COPYING for conditions for redistribution. -.TH EMACSCLIENT 1 "2020-10-18" "GNU Emacs" "GNU" +.TH EMACSCLIENT 1 "2023-12-23" "GNU Emacs" "GNU" .\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection .\" other params are allowed: see man(7), man(1) .SH NAME @@ -62,13 +62,18 @@ This option applies only to the next file specified. .TP .B \-a, \-\-alternate-editor=COMMAND If the Emacs server is not running, run the specified shell command instead. -This can also be specified via the ALTERNATE_EDITOR environment variable. -If the value of ALTERNATE_EDITOR is the empty string, run "emacs \-\-daemon" to +If the empty string is specified, run "emacs \-\-daemon" to start Emacs in daemon mode, and try to connect to it. + +See also the ALTERNATE_EDITOR environment variable, over which this +option takes precedence. .TP .B -c, \-\-create-frame Create a new frame instead of trying to use the current Emacs frame. .TP +.B -r \-\-reuse-frame +Reuse an existing frame if one exists, otherwise create a new frame. +.TP .B \-F, \-\-frame-parameters=ALIST Set the parameters of a newly-created frame. .TP @@ -81,19 +86,56 @@ Lisp expressions. .TP .B \-f, \-\-server-file=FILENAME Use TCP configuration file FILENAME for communication. -This can also be specified via the EMACS_SERVER_FILE environment variable. +Relative filenames are relative to "~/.emacs.d/server/" or +"$XDG_CONFIG_HOME/emacs/server/", and the default is "server". + +See also the EMACS_SERVER_FILE environment variable, over which this +option takes precedence. .TP .B \-n, \-\-no-wait -Return -immediately without waiting for you to "finish" the buffer in Emacs. -If combined with --eval, this option is ignored. +Return immediately without waiting for you to "finish" the buffer in +Emacs. If combined with --eval, this option is ignored. .TP -.B \-nw, \-t, \-\-tty -Open a new Emacs frame on the current terminal. +.B \-w, \-\-timeout=N +How long to wait, in seconds, for Emacs to respond before giving up. +The default is 0, which means to wait forever. +.TP +.B \-\-parent-id=ID +Open an +.B emacsclient +frame as a client frame in the parent X window with id ID. +.TP +.B \-q, \-\-quiet +Do not let +.B emacsclient +display messages about waiting for Emacs or connecting to remote +server sockets. +.TP +.B \-u, \-\-suppress-output +Do not let +.B emacsclient +display results returned from the server. Mostly useful in +combination with --eval when the evaluation performed is for +side-effect rather than result. .TP .B \-s, \-\-socket-name=FILENAME Use socket named FILENAME for communication. -This can also be specified via the EMACS_SOCKET_NAME environment variable. +Relative filenames are relative to "$XDG_RUNTIME_DIR/emacs/" or "$TMPDIR/". + +See also the EMACS_SOCKET_NAME environment variable, over which this +option takes precedence. +.TP +.B \-nw, \-t, \-\-tty +Open a new Emacs frame on the current terminal. +.TP +.B \-T, \-\-tramp=PREFIX +Set PREFIX to add to filenames for Emacs to locate files on remote +machines using TRAMP. This is mostly useful in combination with using +the Emacs server on a remote host (either using TCP with +--server-file, or a socket forwarded over SSH). + +See also the EMACSCLIENT_TRAMP environment variable, over which this +option takes precedence. .TP .B \-V, \-\-version Print version information and exit. @@ -103,10 +145,46 @@ Print this usage information message and exit. .SH "EXIT STATUS" Normally, the exit status is 0. If emacsclient shuts down due to Emacs signaling an error, the exit status is 1. +.SH ENVIRONMENT +.TP +.B ALTERNATE_EDITOR +If the Emacs server is not running, run the shell command in this +environment variable instead. If set to the empty string, run +"emacs \-\-daemon" to start Emacs in daemon mode, and try to connect +to it. Will be overridden by the +.B \-\-alternate-editor +option, if present. +.TP +.B EMACSCLIENT_TRAMP +A prefix to add to filenames, intended to allow Emacs to locate files +on remote machines using TRAMP. Will be overridden by the +.B \-\-tramp +option, if present. +.TP +.B EMACS_SERVER_FILE +Look in this file to discover where to find a TCP Emacs server. +Relative filenames are relative to "~/.emacs.d/server/" or +"$XDG_CONFIG_HOME/emacs/server/", and the +default is "server". Will be overridden by the +.B \-\-server-file +option, if present. +.TP +.B EMACS_SOCKET_NAME +The filename of the socket to use for communication with the Emacs server. +Relative filenames are relative to "$XDG_RUNTIME_DIR/emacs/" or "$TMPDIR/". +Will be overridden by the +.B \-\-socket-name +option, if present. .SH "SEE ALSO" The program is documented fully in .IR "Using Emacs as a Server" available via the Info system. + +The XDG_ environment variables are described in detail in the +.UR https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html +XDG Base Directory Specification +.UE . + .SH AUTHOR This manual page was originally written by Stephane Bortzmeyer , for the Debian GNU/Linux system, but is not diff --git a/doc/man/etags.1 b/doc/man/etags.1 index ee48883c7f91..ba1cd768fc4d 100644 --- a/doc/man/etags.1 +++ b/doc/man/etags.1 @@ -209,7 +209,7 @@ otherwise. This is particularly useful when storing many predefined regexps in a file. .br In its second form, \fIregexfile\fP is the name of a file that contains -a number of arguments to the \fI\-\-regex\=\fP option, +a number of arguments to the \fI\-\-regex=\fP option, one per line. Lines beginning with a space or tab are assumed to be comments, and ignored. @@ -220,22 +220,22 @@ from shell interpretation. Tag the DEFVAR macros in the emacs source files: .br -\fI\-\-regex\='/[ \\t]*DEFVAR_[A-Z_ \\t(]+"\\([^"]+\\)"/'\fP +\fI\-\-regex='/[ \\t]*DEFVAR_[A-Z_ \\t(]+"\\([^"]+\\)"/'\fP .\"" This comment is to avoid confusion to Emacs syntax highlighting .br Tag VHDL files (this example is a single long line, broken here for formatting reasons): .br -\fI\-\-language\=none\ \-\-regex='/[\ \\t]*\\(ARCHITECTURE\\|\\ -CONFIGURATION\\)\ +[^\ ]*\ +OF/'\ \-\-regex\='/[\ \\t]*\\ +\fI\-\-language=none\ \-\-regex='/[\ \\t]*\\(ARCHITECTURE\\|\\ +CONFIGURATION\\)\ +[^\ ]*\ +OF/'\ \-\-regex='/[\ \\t]*\\ \\(ATTRIBUTE\\|ENTITY\\|FUNCTION\\|PACKAGE\\(\ BODY\\)?\\ \\|PROCEDURE\\|PROCESS\\|TYPE\\)[\ \\t]+\\([^\ \\t(]+\\)/\\3/'\fP .br -Tag TCL files (this last example shows the usage of a \fItagregexp\fP): +Tag Tcl files (this last example shows the usage of a \fItagregexp\fP): .br -\fI\-\-lang\=none \-\-regex\='/proc[\ \\t]+\\([^\ \\t]+\\)/\\1/'\fP +\fI\-\-lang=none \-\-regex='/proc[\ \\t]+\\([^\ \\t]+\\)/\\1/'\fP .br A regexp can be preceded by {\fIlang\fP}, thus restricting it to match @@ -290,7 +290,7 @@ Stallman. .BR vi ( 1 ). .SH COPYING -Copyright 1992, 1999, 2001-2023 Free Software Foundation, Inc. +Copyright 1992, 1999, 2001-2024 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are diff --git a/doc/misc/ChangeLog.1 b/doc/misc/ChangeLog.1 index 9464cefd2750..6b204b45b9c6 100644 --- a/doc/misc/ChangeLog.1 +++ b/doc/misc/ChangeLog.1 @@ -1460,7 +1460,7 @@ 2013-10-24 Michael Albinus - * ert.texi (Running Tests Interactively): Adapt examle output. + * ert.texi (Running Tests Interactively): Adapt example output. (Tests and Their Environment): Mention skip-unless. 2013-10-23 Glenn Morris @@ -3525,7 +3525,7 @@ 2012-01-03 Carsten Dominik - * org.texi (The clock table): Mention that ACHIVED trees + * org.texi (The clock table): Mention that ARCHIVED trees contribute to the clock table. 2012-01-03 Carsten Dominik (tiny change) @@ -4420,12 +4420,7 @@ 2011-02-05 Era Eriksson (tiny change) - * tramp.texi: - Replace "delimet" with "delimit" globally. - Replace "explicite" with "explicit" globally. - Replace "instead of" with "instead" where there was nothing after "of". - Audit use of comma before interrogative pronoun, "that", or "which". - Minor word order, spelling, wording changes. + * tramp.texi: Minor word order, spelling, wording changes. 2011-02-04 Teodor Zlatanov @@ -5868,7 +5863,7 @@ 2009-09-02 Carsten Dominik * org.texi (Effort estimates): Document new effort setting commands. - (Agenda commands): Document the new keys fro agenda time motion. + (Agenda commands): Document the new keys for agenda time motion. Document entry text mode. Improve documentation of the keys to include inactive time stamps into the agenda view. (Feedback): Document the new bug report command. @@ -6016,8 +6011,8 @@ (RSS Feeds): New section. (Built-in table editor): Document M-e and M-a navigate inside table field. - (Stuck projects): Docment that projects identified as - un-stuck will still be searchd for stuck sub-projects. + (Stuck projects): Document that projects identified as + un-stuck will still be searched for stuck sub-projects. (Paragraphs): Document centering. (Creating timestamps, Agenda commands): Document new behavior when changing time stamps. @@ -10409,7 +10404,7 @@ * sc.texi (Emacs 18 MUAs): * speedbar.texi (Top): * url.texi (History): - Delete duplicate duplicate words. + Delete duplicate words. 2005-07-16 Johan Bockgård (tiny change) @@ -12116,7 +12111,7 @@ ;; coding: utf-8 ;; End: - Copyright (C) 1993-1999, 2001-2023 Free Software Foundation, Inc. + Copyright (C) 1993-1999, 2001-2024 Free Software Foundation, Inc. This file is part of GNU Emacs. diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in index 1a908ac78e72..2841916dc899 100644 --- a/doc/misc/Makefile.in +++ b/doc/misc/Makefile.in @@ -1,6 +1,6 @@ ### @configure_input@ -# Copyright (C) 1994, 1996-2023 Free Software Foundation, Inc. +# Copyright (C) 1994, 1996-2024 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -67,14 +67,14 @@ MAKEINFO_OPTS = --force -I$(emacsdir) DOCMISC_W32 = @DOCMISC_W32@ ## Info files to build and install on all platforms. -INFO_COMMON = auth autotype bovine calc ccmode cl \ - dbus dired-x ebrowse ede ediff edt eieio \ - emacs-mime epa erc ert eshell eudc efaq eww \ - flymake forms gnus emacs-gnutls htmlfontify idlwave ido info.info \ - mairix-el message mh-e modus-themes newsticker nxml-mode octave-mode \ - org pcl-cvs pgg rcirc remember reftex sasl \ - sc semantic ses sieve smtpmail speedbar srecode todo-mode transient \ - tramp url vhdl-mode vip viper widget wisent woman +INFO_COMMON = auth autotype bovine calc ccmode cl dbus dired-x \ + ebrowse ede ediff edt efaq eglot eieio emacs-gnutls \ + emacs-mime epa erc ert eshell eudc eww flymake forms gnus \ + htmlfontify idlwave ido info.info mairix-el message mh-e \ + modus-themes newsticker nxml-mode octave-mode org pcl-cvs pgg \ + rcirc reftex remember sasl sc semantic ses sieve smtpmail \ + speedbar srecode todo-mode tramp transient url use-package \ + vhdl-mode vip viper vtable widget wisent woman ## Info files to install on current platform. INFO_INSTALL = $(INFO_COMMON) $(DOCMISC_W32) @@ -130,12 +130,12 @@ info: $(INFO_TARGETS) ## Used by top-level Makefile. ## Base file names of output info files. +INFO_BASES = $(patsubst %.info,%,$(notdir $(INFO_INSTALL))) echo-info: - @echo "$(INFO_INSTALL) " | \ - sed -e 's|[^ ]*/||g' -e 's/\.info//g' -e "s/ */.info /g" + @: $(info $(addsuffix .info,$(INFO_BASES))) echo-sources: - @echo ${SOURCES} + @: $(info $(SOURCES)) dvi: $(DVI_TARGETS) @@ -185,7 +185,9 @@ $(foreach ifile,$(filter-out info.info,$(INFO_TARGETS)),$(eval $(call info_templ ## Extra dependencies. -need_emacsver = calc cl dired-x efaq efaq-w32 erc ido reftex woman +## FIXME Updating this list manually is unreliable. +need_emacsver = calc cl dired-x efaq efaq-w32 erc forms ido \ + newsticker reftex remember use-package woman need_emacsver_prefix = $(addprefix ${buildinfodir}/,${need_emacsver}) $(need_emacsver_prefix:=.info) $(need_emacsver:=.dvi) $(need_emacsver:=.pdf) $(need_emacsver:=.html) : ${emacsdir}/emacsver.texi @@ -233,6 +235,10 @@ ${buildinfodir}/tramp.info tramp.html: ${srcdir}/trampver.texi abs_top_builddir = @abs_top_builddir@ + +# Prevent any settings in the user environment causing problems. +unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH + EMACS = ${abs_top_builddir}/src/emacs emacs = "${EMACS}" -batch --no-site-file --no-site-lisp --eval '(setq load-prefer-newer t)' @@ -243,6 +249,7 @@ emacs = "${EMACS}" -batch --no-site-file --no-site-lisp --eval '(setq load-prefe define org_template $(1:.org=.texi): $(1) ${top_srcdir}/lisp/org/ox-texinfo.el $${AM_V_GEN}cd "$${srcdir}" && $${emacs} -l ox-texinfo \ + --eval '(setq gc-cons-threshold 50000000)' \ -f org-texinfo-export-to-texinfo-batch $$(notdir $$<) $$(notdir $$@) endef diff --git a/doc/misc/auth.texi b/doc/misc/auth.texi index b37a6ed2fb37..f51a1446170e 100644 --- a/doc/misc/auth.texi +++ b/doc/misc/auth.texi @@ -9,7 +9,7 @@ @copying This file describes the Emacs auth-source library. -Copyright @copyright{} 2008--2023 Free Software Foundation, Inc. +Copyright @copyright{} 2008--2024 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -191,7 +191,7 @@ get fancy, the default and simplest configuration is: (setq auth-sources '("secrets:Login")) ;;; use pass (@file{~/.password-store}) ;;; (@pxref{The Unix password store}) -(setq auth-sources '(password-store)) +(auth-source-pass-enable) ;;; JSON data in format [@{ "machine": "SERVER", ;;; "login": "USER", "password": "PASSWORD" @}...] (setq auth-sources '("~/.authinfo.json.gpg")) @@ -305,7 +305,8 @@ The @dfn{Secret Service API} is a standard from to securely store passwords and other confidential information. This API is implemented by system daemons such as the GNOME Keyring and the KDE Wallet (these are GNOME and KDE packages respectively and should -be available on most modern GNU/Linux systems). +be available on most modern GNU/Linux systems). It has been tested +also with KeePassXC. The auth-source library uses the @file{secrets.el} library to connect through the Secret Service API@. You can also use that library in @@ -360,15 +361,19 @@ Collections can be created and deleted by the functions Usually, this is not done from within Emacs. Do not delete standard collections such as @code{"login"}. -The special collection @code{"session"} exists for the lifetime of the -corresponding client session (in our case, Emacs's lifetime). It is -created automatically when Emacs uses the Secret Service interface and -it is deleted when Emacs is killed. Therefore, it can be used to -store and retrieve secret items temporarily. The @code{"session"} -collection is better than a persistent collection when the secret -items should not live longer than Emacs. The session collection can -be specified either by the string @code{"session"}, or by @code{nil}, -whenever a collection parameter is needed in the following functions. +With GNOME Keyring, there exists a special collection called +@code{"session"}, which has the lifetime of the user being logged in. +Its data are not stored on disk and go away when the user logs out. +Therefore, it can be used to store and retrieve secret items +temporarily. The @code{"session"} collection is better than a +persistent collection when the secret items should not live +permanently. The @code{"session"} collection can be addressed either +by the string @code{"session"}, or by @code{nil}, whenever a +collection parameter is needed. + +However, other Secret Service provider don't create this temporary +@code{"session"} collection. You shall check first that this +collection exists, before you use it. @defun secrets-list-items collection Returns all the item labels of @var{collection} as a list. @@ -379,10 +384,10 @@ This function creates a new item in @var{collection} with label @var{item} and password @var{password}. The label @var{item} does not have to be unique in @var{collection}. @var{attributes} are key-value pairs set for the created item. The keys are keyword symbols, -starting with a colon. Example: +starting with a colon; values are strings. Example: @example -;;; The session is "session", the label is "my item" +;;; The collection is "session", the label is "my item" ;;; and the secret (password) is "geheim". (secrets-create-item "session" "my item" "geheim" :method "sudo" :user "joe" :host "remote-host") @@ -461,6 +466,10 @@ then fall back to @file{~/.authinfo.gpg}. "~/.authinfo.gpg")) @end example +Attribute values in the auth-source spec, which are not strings (like +port numbers), are stringified prior calling the @file{secrets.el} +functions. + @node The Unix password store @chapter The Unix password store @@ -517,6 +526,8 @@ If several entries match, the one matching the most items (where an while searching for an entry matching the @code{rms} user on host @code{gnu.org} and port @code{22}, then the entry @file{gnu.org:22/rms.gpg} is preferred over @file{gnu.org.gpg}. +However, such processing is not applied when the option +@code{auth-source-pass-extra-parameters} is set to @code{t}. Users of @code{pass} may also be interested in functionality provided by other Emacs packages: @@ -540,6 +551,23 @@ Set this variable to a string that should separate an host name from a port in an entry. Defaults to @samp{:}. @end defvar +@defvar auth-source-pass-extra-query-keywords +This expands the selection of available keywords to include +@code{:max} and @code{:require} and tells more of them to accept a +list of query parameters as an argument. When searching, it also +favors the @samp{rms@@gnu.org.gpg} form for usernames over the +@samp{gnu.org/rms.gpg} form, regardless of whether a @code{:user} +param was provided. + +In general, if you prefer idiosyncrasies traditionally exhibited by +this backend, such as prioritizing field count in a filename or +matching against subdomain labels, keep this option set to @code{nil} +(the default). But, if you experience problems predicting the outcome +of searches relative to other auth-source backends or encounter code +expecting to query multiple backends uniformly, try flipping it to +@code{t}. +@end defvar + @node Help for developers @chapter Help for developers @@ -574,10 +602,7 @@ from Gnus's @code{nnimap.el}. :create t)))) (if found (list (plist-get found :user) - (let ((secret (plist-get found :secret))) - (if (functionp secret) - (funcall secret) - secret)) + (auth-info-password found) (plist-get found :save-function)) nil))) @end example @@ -597,7 +622,7 @@ Later, after a successful login, @code{nnimap.el} calls the @example (when (functionp (nth 2 credentials)) - (funcall (nth 2 credentials))) + (funcall (nth 2 credentials))) @end example This will work whether the @code{:save-function} was provided or not. @@ -632,6 +657,16 @@ This function forgets any cached data matching @var{spec}. It returns the number of items forgotten. @end defun +@defun auth-source-pick-first-password &rest spec +This function returns the password of the first record found by +applying @code{auth-source-search} to @var{spec}. +@end defun + +@defun auth-info-password auth-info +This function extracts the password string from the @var{auth-info} +record. +@end defun + @node GnuPG and EasyPG Assistant Configuration @appendix GnuPG and EasyPG Assistant Configuration @@ -640,49 +675,12 @@ before @file{~/.authinfo}, the auth-source library will try to read the GnuPG encrypted @file{.gpg} file first, before the unencrypted file. -In Emacs 23 or later there is an option @code{auto-encryption-mode} to -automatically decrypt @file{*.gpg} files. It is enabled by default. -If you are using earlier versions of Emacs, you will need: - -@lisp -(require 'epa-file) -(epa-file-enable) -@end lisp - -If you want your GnuPG passwords to be cached, set up @code{gpg-agent} -or EasyPG Assistant -(@pxref{Caching Passphrases, , Caching Passphrases, epa}). - -To quick start, here are some questions: - -@itemize -@item -Do you use GnuPG version 2 instead of GnuPG version 1? -@item -Do you use symmetric encryption rather than public key encryption? -@item -Do you want to use gpg-agent? -@end itemize - -Here are configurations depending on your answers: - -@multitable {111} {222} {333} {configuration configuration configuration} -@item @b{1} @tab @b{2} @tab @b{3} @tab Configuration -@item Yes @tab Yes @tab Yes @tab Set up gpg-agent. -@item Yes @tab Yes @tab No @tab You can't, without gpg-agent. -@item Yes @tab No @tab Yes @tab Set up gpg-agent. -@item Yes @tab No @tab No @tab You can't, without gpg-agent. -@item No @tab Yes @tab Yes @tab Set up elisp passphrase cache. -@item No @tab Yes @tab No @tab Set up elisp passphrase cache. -@item No @tab No @tab Yes @tab Set up gpg-agent. -@item No @tab No @tab No @tab You can't, without gpg-agent. -@end multitable - -To set up gpg-agent, follow the instruction in GnuPG manual -(@pxref{Invoking GPG-AGENT, , Invoking GPG-AGENT, gnupg}). - -To set up elisp passphrase cache, set -@code{epa-file-cache-passphrase-for-symmetric-encryption}. +The EasyPG Assistant, which comes bundled with Emacs, handles +decryption of encrypted files automatically, see @ref{Top, , Top, epa, +EasyPG Assistant User's Manual}. It is an Emacs user interface to +@acronym{GnuPG, GNU Privacy Guard}, see @ref{Top, , Top, gnupg, Using +the GNU Privacy Guard}. To get started with these quickly, see +@ref{Quick start, , Quick Start, epa, EasyPG Assistant User's Manual}. @node GNU Free Documentation License @appendix GNU Free Documentation License diff --git a/doc/misc/autotype.texi b/doc/misc/autotype.texi index eed9afdec9d4..4c088593d9d7 100644 --- a/doc/misc/autotype.texi +++ b/doc/misc/autotype.texi @@ -11,7 +11,7 @@ @c @cindex autotypist @copying -Copyright @copyright{} 1994--1995, 1999, 2001--2023 Free Software +Copyright @copyright{} 1994--1995, 1999, 2001--2024 Free Software Foundation, Inc. @quotation @@ -92,7 +92,6 @@ completions and expansions of text at point. * Copyrights:: Inserting and updating copyrights. * Executables:: Turning interpreter scripts into executables. * Timestamps:: Updating dates and times in modified files. -* QuickURL:: Inserting URLs based on text at point. * Tempo:: Flexible template insertion. * Hippie Expand:: Expansion of text trying various methods. * Skeleton Language:: Making skeleton commands insert what you want. @@ -478,31 +477,6 @@ The time stamp is written between the brackets or quotes: Time-stamp: <1998-02-18 10:20:51 gildea> @end example -@node QuickURL -@chapter QuickURL: Inserting URLs Based on Text at Point - -@vindex quickurl-url-file -@findex quickurl -@cindex URLs -@kbd{M-x quickurl} can be used to insert a URL into a buffer based on -the text at point. The URLs are stored in an external file defined by -the variable @code{quickurl-url-file} as a list of either cons cells of -the form @code{(@var{key} . @var{URL})} or -lists of the form @code{(@var{key} @var{URL} @var{comment})}. These -specify that @kbd{M-x quickurl} should insert @var{URL} if the word -@var{key} is at point, for example: - -@example -(("FSF" "https://www.fsf.org/" "The Free Software Foundation") - ("emacs" . "https://www.gnu.org/software/emacs/")) -@end example - -@findex quickurl-add-url -@findex quickurl-list -@kbd{M-x quickurl-add-url} can be used to add a new @var{key}/@var{URL} -pair. @kbd{M-x quickurl-list} provides interactive editing of the URL -list. - @node Tempo @chapter Tempo: Flexible Template Insertion diff --git a/doc/misc/bovine.texi b/doc/misc/bovine.texi index 10b1a1fc654b..5cef9ffbb930 100644 --- a/doc/misc/bovine.texi +++ b/doc/misc/bovine.texi @@ -24,7 +24,7 @@ @c %**end of header @copying -Copyright @copyright{} 1999--2004, 2012--2023 Free Software Foundation, +Copyright @copyright{} 1999--2004, 2012--2024 Free Software Foundation, Inc. @quotation diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi index d6a796be9056..ccc7b95ceec6 100644 --- a/doc/misc/calc.texi +++ b/doc/misc/calc.texi @@ -95,7 +95,7 @@ This file documents Calc, the GNU Emacs calculator, included with GNU Emacs @value{EMACSVER}. @end ifnotinfo -Copyright @copyright{} 1990--1991, 2001--2023 Free Software Foundation, +Copyright @copyright{} 1990--1991, 2001--2024 Free Software Foundation, Inc. @quotation @@ -232,7 +232,8 @@ series of calculators, its many features include: @itemize @bullet @item -Choice of algebraic or RPN (stack-based) entry of calculations. +Choice of algebraic or Reverse Polish notation (RPN), +i.e. stack-based, entry of calculations. @item Arbitrary precision integers and floating-point numbers. @@ -421,8 +422,8 @@ difference between lower-case and upper-case letters. Remember, @key{RET}, @key{TAB}, @key{DEL}, and @key{SPC} are the Return, Tab, Delete, and Space keys. -@strong{RPN calculation.} In RPN, you type the input number(s) first, -then the command to operate on the numbers. +@strong{RPN calculation.} In Reverse Polish notation (RPN), you type +the input number(s) first, then the command to operate on the numbers. @noindent Type @kbd{2 @key{RET} 3 + Q} to compute @@ -1348,18 +1349,19 @@ to control various modes of the Calculator. @subsection RPN Calculations and the Stack @cindex RPN notation +@cindex Reverse Polish notation @noindent @ifnottex -Calc normally uses RPN notation. You may be familiar with the RPN -system from Hewlett-Packard calculators, FORTH, or PostScript. -(Reverse Polish Notation, RPN, is named after the Polish mathematician -Jan Lukasiewicz.) +Calc normally uses Reverse Polish notation (RPN). You may be familiar +with the RPN system from Hewlett-Packard calculators, FORTH, or +PostScript. (Reverse Polish Notation is named after the Polish +mathematician Jan Lukasiewicz.) @end ifnottex @tex -Calc normally uses RPN notation. You may be familiar with the RPN -system from Hewlett-Packard calculators, FORTH, or PostScript. -(Reverse Polish Notation, RPN, is named after the Polish mathematician -Jan \L ukasiewicz.) +Calc normally uses Reverse Polish notation (RPN). You may be familiar +with the RPN system from Hewlett-Packard calculators, FORTH, or +PostScript. (Reverse Polish Notation is named after the Polish +mathematician Jan \L ukasiewicz.) @end tex The central component of an RPN calculator is the @dfn{stack}. A @@ -5392,7 +5394,7 @@ a variable containing a vector of rules. 1: [merge, secsqr] 1: [a/x + b/x := (a + b)/x, ... ] . . - ' [merge,sinsqr] @key{RET} = + ' [merge,secsqr] @key{RET} = @end group @end smallexample @@ -6215,7 +6217,7 @@ method when it is able. @xref{Programming Answer 8, 8}. (@bullet{}) @cindex Gamma constant, Euler's @cindex Euler's gamma constant (@bullet{}) @strong{Exercise 9.} The @dfn{digamma} function -@texline @math{\psi(z) (``psi'')} +@texline @math{\psi(z)} (``psi'') @infoline @expr{psi(z)} is defined as the derivative of @texline @math{\ln \Gamma(z)}. @@ -10392,7 +10394,6 @@ memory than it would otherwise, but it's guaranteed to fix the problem. @cindex Recursion depth @cindex ``Computation got stuck'' message @cindex @code{max-lisp-eval-depth} -@cindex @code{max-specpdl-size} Calc uses recursion in many of its calculations. Emacs Lisp keeps a variable @code{max-lisp-eval-depth} which limits the amount of recursion possible in an attempt to recover from program bugs. If a calculation @@ -10406,9 +10407,6 @@ is also an @kbd{I M} (@code{calc-less-recursion-depth}) command which decreases this limit by a factor of two, down to a minimum value of 200. The default value is 1000. -These commands also double or halve @code{max-specpdl-size}, another -internal Lisp recursion limit. The minimum value for this limit is 600. - @node Caches @subsection Caches @@ -11955,7 +11953,7 @@ trail pointer in various ways. @cindex Retrieving previous results The @kbd{t y} (@code{calc-trail-yank}) command reads the selected value in the trail and pushes it onto the Calculator stack. It allows you to -re-use any previously computed value without retyping. With a numeric +reuse any previously computed value without retyping. With a numeric prefix argument @var{n}, it yanks the value @var{n} lines above the current trail pointer. @@ -18614,8 +18612,8 @@ gamma function. For positive integer arguments, this is related to the factorial function: @samp{gamma(n+1) = fact(n)}. For general complex arguments the gamma function can be defined by the following definite integral: -@texline @math{\Gamma(a) = \int_0^\infty t^{a-1} e^t dt}. -@infoline @expr{gamma(a) = integ(t^(a-1) exp(t), t, 0, inf)}. +@texline @math{\Gamma(a) = \int_0^\infty t^{a-1} e^{-t} dt}. +@infoline @expr{gamma(a) = integ(t^(a-1) exp(-t), t, 0, inf)}. (The actual implementation uses far more efficient computational methods.) @kindex f G @@ -18706,7 +18704,7 @@ un-normalized version [@code{betaB}]. The @kbd{f e} (@code{calc-erf}) [@code{erf}] command computes the error function @texline @math{\hbox{erf}(x) = {2 \over \sqrt{\pi}} \int_0^x e^{-t^2} dt}. -@infoline @expr{erf(x) = 2 integ(exp(-(t^2)), t, 0, x) / sqrt(pi)}. +@infoline @expr{erf(x) = 2 integ(exp(-(t^(2))), t, 0, x) / sqrt(pi)}. The complementary error function @kbd{I f e} (@code{calc-erfc}) [@code{erfc}] is the corresponding integral from @samp{x} to infinity; the sum @texline @math{\hbox{erf}(x) + \hbox{erfc}(x) = 1}. @@ -28472,13 +28470,13 @@ B and @c flat and @expr{B}. the octave numbered 0 was chosen to correspond to the lowest audible frequency. Using this system, middle C (about 261.625 Hz) -corresponds to the note @expr{C} in octave 4 and is denoted -@expr{C_4}. Any frequency can be described by giving a note plus an +corresponds to the note @slanted{C} in octave 4 and is denoted +@slanted{C@sub{4}}. Any frequency can be described by giving a note plus an offset in cents (where a cent is a ratio of frequencies so that a semitone consists of 100 cents). The midi note number system assigns numbers to notes so that -@expr{C_(-1)} corresponds to the midi note number 0 and @expr{G_9} +@slanted{C@sub{-1}} corresponds to the midi note number 0 and @slanted{G@sub{9}} corresponds to the midi note number 127. A midi controller can have up to 128 keys and each midi note number from 0 to 127 corresponds to a possible key. @@ -29877,6 +29875,12 @@ with no argument copies only the number itself into the kill ring, whereas @kbd{C-k} with a prefix argument of 1 copies the number with its trailing newline. +You can customize @code{calc-kill-line-numbering} to @code{nil} to +exclude line numbering from kills and copies made by @code{calc-kill} +and @code{calc-copy-as-kill}. This option does not affect calc kill +and copy commands which operate on the region, as that would not make +sense. + @node Yanking Into Stack @section Yanking into the Stack @@ -35586,11 +35590,11 @@ The default value of @code{calc-note-threshold} is 1. See @ref{Displaying Selections}.@* The variable @code{calc-highlight-selections-with-faces} determines how selected sub-formulas are distinguished. -If @code{calc-highlight-selections-with-faces} is nil, then +If @code{calc-highlight-selections-with-faces} is @code{nil}, then a selected sub-formula is distinguished either by changing every character not part of the sub-formula with a dot or by changing every character in the sub-formula with a @samp{#} sign. -If @code{calc-highlight-selections-with-faces} is t, +If @code{calc-highlight-selections-with-faces} is @code{t}, then a selected sub-formula is distinguished either by displaying the non-selected portion of the formula with @code{calc-nonselected-face} or by displaying the selected sub-formula with diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi index e53fba10f1de..a727568148a9 100644 --- a/doc/misc/cc-mode.texi +++ b/doc/misc/cc-mode.texi @@ -167,7 +167,7 @@ CC Mode @copying This manual is for CC Mode in Emacs. -Copyright @copyright{} 1995--2023 Free Software Foundation, Inc. +Copyright @copyright{} 1995--2024 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -283,6 +283,7 @@ Font Locking * Font Locking Preliminaries:: * Faces:: * Doc Comments:: +* Wrong Comment Style:: * Misc Font Locking:: * AWK Mode Font Locking:: @@ -579,7 +580,7 @@ you are going to be editing AWK files, @file{README} describes how to configure your (X)Emacs so that @ccmode{} will supersede the obsolete @code{awk-mode.el} which might have been supplied with your (X)Emacs. @ccmode{} might not work with older versions of Emacs or XEmacs. See -the @ccmode{} release notes at @uref{http://cc-mode.sourceforge.net} +the @ccmode{} release notes at @uref{https://cc-mode.sourceforge.net} for the latest information on Emacs version and package compatibility (@pxref{Updating CC Mode}). @@ -897,7 +898,7 @@ lines. @vindex defun-tactic @r{(c-)} Move to the beginning or end of the current or next function. Other -constructs (such as a structs or classes) which have a brace block +constructs (such as structs or classes) which have a brace block also count as ``functions'' here. To move over several functions, you can give these commands a repeat count. @@ -2190,10 +2191,10 @@ foo& bar @defvar c-asymmetry-fontification-flag @vindex asymmetry-fontification-flag @r{(c-)} -When @code{c-asymmetry-fontification-flag} is non-nil (which it is by -default), code like the above, with white space either before or after -the operator, but not both, is fontified as a declaration. When the -variable is nil, such a construct gets the default face. +When @code{c-asymmetry-fontification-flag} is non-@code{nil} (which it +is by default), code like the above, with white space either before or +after the operator, but not both, is fontified as a declaration. When +the variable is @code{nil}, such a construct gets the default face. @end defvar When the construct is an expression there will often be white space @@ -3169,7 +3170,7 @@ E. Jones' Filladapt package@footnote{It's available from lack a feature that makes it work suboptimally when @code{c-comment-prefix-regexp} matches the empty string (which it does by default). A patch for that is available from -@uref{http://cc-mode.sourceforge.net/,, the CC Mode web site}.}, +@uref{https://cc-mode.sourceforge.net/,, the CC Mode web site}.}, @c 2005/11/22: The above is still believed to be the case. which handles things like bulleted lists nicely. There's a convenience function @code{c-setup-filladapt} that tunes the relevant variables in @@ -5997,7 +5998,7 @@ three syntactic symbols, @code{arglist-cont-nonempty}, List Symbols}). This function is intended for use in a list. If the construct being -analyzed isn't like the preceding, the function returns nil. +analyzed isn't like the preceding, the function returns @code{nil}. Otherwise it returns the function @code{c-lineup-arglist-intro-after-paren}, which the caller then uses to perform indentation. @@ -6041,8 +6042,8 @@ also has a syntactic element with the symbol @code{brace-list-entry} (@pxref{Brace List Symbols}). This function is intended for use in a list. If the above structure -isn't present, the function returns nil, allowing a different offset -specification to indent the line. +isn't present, the function returns @code{nil}, allowing a different +offset specification to indent the line. @workswith{} @code{brace-list-intro}. @end defun @@ -6084,8 +6085,8 @@ returning the symbol @code{c-lineup-arglist-intro-after-paren}, which the caller then uses to perform the indentation. This function is intended for use in a list. If the above structure -isn't present, the function returns nil, allowing a different offset -specification to indent the line. +isn't present, the function returns @code{nil}, allowing a different +offset specification to indent the line. @workswith{} @code{brace-list-intro}. @end defun @@ -6277,6 +6278,32 @@ expressions for the operands. @comment ------------------------------------------------------------ +@defun c-lineup-argcont-+ +@findex lineup-argcont-+ (c-) +Indent a continued argument @code{c-basic-offset} spaces from the +start of the first argument at the current level of nesting on a +previous line. + +@example +@group +foo (xyz, uvw, aaa + bbb + ccc + + ddd + eee + fff); <- c-lineup-argcont-+ + <--> c-basic-offset +@end group +@end example + +Only continuation lines like this are touched, @code{nil} being +returned on lines which are the start of an argument. + +Within a gcc @code{asm} block, @code{:} is recognized as an argument +separator, but of course only between operand specifications, not in the +expressions for the operands. + +@workswith @code{arglist-cont}, @code{arglist-cont-nonempty}. +@end defun + +@comment ------------------------------------------------------------ + @defun c-lineup-arglist-operators @findex lineup-arglist-operators @r{(c-)} Line up lines starting with an infix operator under the open paren. @@ -7122,7 +7149,7 @@ If you add more directives to this variable, or remove directives from it, whilst ``indent to body'' is active, you need to re-enable the feature by calling @code{c-toggle-cpp-indent-to-body} for these changes to take effect@footnote{Note that the removal of directives -doesn't work satisfactorally on XEmacs or on very old versions of +doesn't work satisfactorily on XEmacs or on very old versions of Emacs}. @end defopt @@ -7556,7 +7583,7 @@ have old versions of @ccmode{} and so should be upgraded. Access to the compatibility, etc.@: are all available on the web site: @quotation -@uref{http://cc-mode.sourceforge.net/} +@uref{https://cc-mode.sourceforge.net/} @end quotation @@ -7590,7 +7617,7 @@ the GNU Bug Tracker at @url{https://debbugs.gnu.org}, then sends it on to @email{bug-cc-mode@@gnu.org}. You can also send reports, other questions, and suggestions (kudos?@: @t{;-)} to that address. It's a mailing list which you can join or browse an archive of; see the web site at -@uref{http://cc-mode.sourceforge.net/} for further details. +@uref{https://cc-mode.sourceforge.net/} for further details. @cindex announcement mailing list If you want to get announcements of new @ccmode{} releases, send the diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi index 5c1d1e63ebb5..7b07789cf377 100644 --- a/doc/misc/cl.texi +++ b/doc/misc/cl.texi @@ -7,7 +7,7 @@ @copying This file documents the GNU Emacs Common Lisp emulation package. -Copyright @copyright{} 1993, 2001--2023 Free Software Foundation, Inc. +Copyright @copyright{} 1993, 2001--2024 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -444,7 +444,7 @@ the ``rest'' argument is bound to the keyword list as it appears in the call. For example: @example -(cl-defun find-thing (thing &rest rest &key need &allow-other-keys) +(cl-defun find-thing (thing thing-list &rest rest &key need &allow-other-keys) (or (apply 'cl-member thing thing-list :allow-other-keys t rest) (if need (error "Thing not found")))) @end example @@ -843,6 +843,7 @@ constructs. * Iteration:: @code{cl-do}, @code{cl-dotimes}, @code{cl-dolist}, @code{cl-do-symbols}. * Loop Facility:: The Common Lisp @code{loop} macro. * Multiple Values:: @code{cl-values}, @code{cl-multiple-value-bind}, etc. +* Macro-Writing Macros:: @code{cl-with-gensyms}, @code{cl-once-only}. @end menu @node Assignment @@ -919,69 +920,6 @@ cl-caaar@dots{}cl-cddddr cl-first@dots{}cl-tenth Note that for @code{cl-getf} (as for @code{nthcdr}), the list argument of the function must itself be a valid @var{place} form. -@item -General Emacs Lisp functions: -@example -buffer-file-name getenv -buffer-modified-p global-key-binding -buffer-name local-key-binding -buffer-string mark -buffer-substring mark-marker -current-buffer marker-position -current-case-table mouse-position -current-column point -current-global-map point-marker -current-input-mode point-max -current-local-map point-min -current-window-configuration read-mouse-position -default-file-modes screen-height -documentation-property screen-width -face-background selected-window -face-background-pixmap selected-screen -face-font selected-frame -face-foreground standard-case-table -face-underline-p syntax-table -file-modes visited-file-modtime -frame-height window-height -frame-parameters window-width -frame-visible-p x-get-secondary-selection -frame-width x-get-selection -get-register -@end example - -Most of these have directly corresponding ``set'' functions, like -@code{use-local-map} for @code{current-local-map}, or @code{goto-char} -for @code{point}. A few, like @code{point-min}, expand to longer -sequences of code when they are used with @code{setf} -(@code{(narrow-to-region x (point-max))} in this case). - -@item -A call of the form @code{(substring @var{subplace} @var{n} [@var{m}])}, -where @var{subplace} is itself a valid generalized variable whose -current value is a string, and where the value stored is also a -string. The new string is spliced into the specified part of the -destination string. For example: - -@example -(setq a (list "hello" "world")) - @result{} ("hello" "world") -(cadr a) - @result{} "world" -(substring (cadr a) 2 4) - @result{} "rl" -(setf (substring (cadr a) 2 4) "o") - @result{} "o" -(cadr a) - @result{} "wood" -a - @result{} ("hello" "wood") -@end example - -The generalized variable @code{buffer-substring}, listed above, -also works in this way by replacing a portion of the current buffer. - -@c FIXME? Also 'eq'? (see cl-lib.el) - @c Currently commented out in cl.el. @ignore @item @@ -1245,6 +1183,12 @@ blocks for other macros like @code{cl-incf}, and @code{cl-pushnew}. The @code{cl-letf} and @code{cl-letf*} macros are used in the processing of symbol macros; @pxref{Macro Bindings}. +@defmac with-memoization @var{place} @var{code}@dots{} +This macro provides a simple way to do memoization. @var{code} is +evaluated and then stashed in @var{place}. If @var{place}'s value is +non-@code{nil}, return that value instead of evaluating @var{code}. +@end defmac + @node Variable Bindings @section Variable Bindings @@ -1294,10 +1238,15 @@ of variables. @defmac cl-flet (bindings@dots{}) forms@dots{} This form establishes @code{let}-style bindings for functions rather -than values. Each @var{binding} must be a list of the form -@samp{(@var{name} @var{arglist} @var{body}@dots{})}. Within -@var{forms}, any reference to the function @var{name} uses the local -definition instead of the global one. +than values. Each @var{binding} must be a list of one of two forms: +either @w{@code{(@var{name} @var{expr})}} or @w{@code{(@var{name} +@var{arglist} @var{body}@dots{})}}. The @var{name} is the name of the +function, @var{expr} is an expression which returns the function value +to which the corresponding @var{name} should be bound, and +@var{arglist} and @var{body} are the argument list and the body of the +function to bind to @var{name}. Within @var{forms}, any reference to +the function @var{name} uses the local definition provided by +@var{bindings} instead of the global one. A ``reference'' to a function name is either a call to that function, or a use of its name quoted by @code{function} to be passed on to, @@ -1374,19 +1323,10 @@ bar A @code{setq} of a symbol macro is treated the same as a @code{setf}. I.e., @code{(setq foo 4)} in the above would be equivalent to -@code{(setf foo 4)}, which in turn expands to @code{(setf (car bar) 4)}. - -Likewise, a @code{let} or @code{let*} binding a symbol macro is -treated like a @code{cl-letf} or @code{cl-letf*}. This differs from true -Common Lisp, where the rules of lexical scoping cause a @code{let} -binding to shadow a @code{symbol-macrolet} binding. In this package, -such shadowing does not occur, even when @code{lexical-binding} is -@c See https://debbugs.gnu.org/12119 -@code{t}. (This behavior predates the addition of lexical binding to -Emacs Lisp, and may change in future to respect @code{lexical-binding}.) -At present in this package, only @code{lexical-let} and -@code{lexical-let*} will shadow a symbol macro. @xref{Obsolete -Lexical Binding}. +@code{(setf foo 4)}, which in turn expands to @code{(setf (car bar) +4)}. A @code{let} (or @code{let*}, @code{lambda}, ...) binding of +the same symbol will locally shadow the symbol macro as is the case in +Common Lisp. There is no analogue of @code{defmacro} for symbol macros; all symbol macros are local. A typical use of @code{cl-symbol-macrolet} is in the @@ -2507,6 +2447,86 @@ in @code{cl-multiple-value-bind}. Since a perfect emulation is not feasible in Emacs Lisp, this package opts to keep it as simple and predictable as possible. +@node Macro-Writing Macros +@section Macro-Writing Macros + +@noindent +This package includes two classic Common Lisp macro-writing macros to +help render complex macrology easier to read. + +@defmac cl-with-gensyms names@dots{} body +This macro expands to code that executes @var{body} with each of the +variables in @var{names} bound to a fresh uninterned symbol, or +@dfn{gensym}, in Common Lisp parlance. For macros requiring more than +one gensym, use of @code{cl-with-gensyms} shortens the code and +renders one's intentions clearer. Compare: + +@example +(defmacro my-macro (foo) + (let ((bar (gensym "bar")) + (baz (gensym "baz")) + (quux (gensym "quux"))) + `(let ((,bar (+ @dots{}))) + @dots{}))) + +(defmacro my-macro (foo) + (cl-with-gensyms (bar baz quux) + `(let ((,bar (+ @dots{}))) + @dots{}))) +@end example +@end defmac + +@defmac cl-once-only ((variable form)@dots{}) body +This macro is primarily to help the macro programmer ensure that forms +supplied by the user of the macro are evaluated just once by its +expansion even though the result of evaluating the form is to occur +more than once. Less often, this macro is used to ensure that forms +supplied by the macro programmer are evaluated just once. + +Each @var{variable} may be used to refer to the result of evaluating +@var{form} in @var{body}. @code{cl-once-only} binds each +@var{variable} to a fresh uninterned symbol during the evaluation of +@var{body}. Then, @code{cl-once-only} wraps the final expansion in +code to evaluate each @var{form} and bind the result to the +corresponding uninterned symbol. Thus, when the macro writer +substitutes the value for @var{variable} into the expansion they are +effectively referring to the result of evaluating @var{form}, rather +than @var{form} itself. Another way to put this is that each +@var{variable} is bound to an expression for the (singular) result of +evaluating @var{form}. + +The most common case is where @var{variable} is one of the arguments +to the macro being written, so @code{(variable variable)} may be +abbreviated to just @code{variable}. + +For example, consider this macro: + +@example +(defmacro my-list (x y &rest forms) + (let ((x-result (gensym)) + (y-result (gensym))) + `(let ((,x-result ,x) + (,y-result ,y)) + (list ,x-result ,y-result ,x-result ,y-result + (progn ,@@forms)))) +@end example + +In a call like @w{@code{(my-list (pop foo) @dots{})}} the intermediate +binding to @code{x-result} ensures that the @code{pop} is not done +twice. But as a result the code is rather complex: the reader must +keep track of how @code{x-result} really just means the first +parameter of the call to the macro, and the required use of multiple +gensyms to avoid variable capture by @code{(progn ,@@forms)} obscures +things further. @code{cl-once-only} takes care of these details: + +@example +(defmacro my-list (x y &rest forms) + (cl-once-only (x y) + `(list ,x ,y ,x ,y + (progn ,@@forms)))) +@end example +@end defmac + @node Macros @chapter Macros @@ -2862,6 +2882,7 @@ out the property and value cells. @node Creating Symbols @section Creating Symbols +@cindex gensym @noindent These functions create unique symbols, typically for use as @@ -3365,9 +3386,9 @@ true for all elements. @defun cl-reduce function seq @t{&key :from-end :start :end :initial-value :key} This function returns the result of calling @var{function} on the -first and second element of @var{seq}, then calling @var{function} +first and second elements of @var{seq}, then calling @var{function} with that result and the third element of @var{seq}, then with that -result and the third element of @var{seq}, etc. +result and the fourth element of @var{seq}, etc. Here is an example. Suppose @var{function} is @code{*} and @var{seq} is the list @code{(2 3 4 5)}. The first two elements of the list are @@ -4035,7 +4056,7 @@ following keywords can be used: @table @code @item :read-only -A non-nil value means the slot should not be @code{setf}-able; +A non-@code{nil} value means the slot should not be @code{setf}-able; the slot's value is determined when the object is created and does not change afterward. @@ -5014,13 +5035,13 @@ The above @code{incf} example could be written using @example (defmacro incf (place &optional n) (gv-letplace (getter setter) place - (macroexp-let2 nil v (or n 1) + (cl-once-only ((v (or n 1))) (funcall setter `(+ ,v ,getter))))) @end example @ignore (defmacro concatf (place &rest args) (gv-letplace (getter setter) place - (macroexp-let2 nil v (mapconcat 'identity args "") + (cl-once-only ((v `(mapconcat 'identity ',args))) (funcall setter `(concat ,getter ,v))))) @end ignore @end defmac diff --git a/doc/misc/dbus.texi b/doc/misc/dbus.texi index cbade3ee9707..28ee64d6b89e 100644 --- a/doc/misc/dbus.texi +++ b/doc/misc/dbus.texi @@ -10,7 +10,7 @@ @syncodeindex fn cp @copying -Copyright @copyright{} 2007--2023 Free Software Foundation, Inc. +Copyright @copyright{} 2007--2024 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -795,13 +795,7 @@ and interface. Example: (dbus-get-all-managed-objects :session "org.gnome.SettingsDaemon" "/") -@result{} (("/org/gnome/SettingsDaemon/MediaKeys" - ("org.gnome.SettingsDaemon.MediaKeys") - ("org.freedesktop.DBus.Peer") - ("org.freedesktop.DBus.Introspectable") - ("org.freedesktop.DBus.Properties") - ("org.freedesktop.DBus.ObjectManager")) - ("/org/gnome/SettingsDaemon/Power" +@result{} (("/org/gnome/SettingsDaemon/Power" ("org.gnome.SettingsDaemon.Power.Keyboard") ("org.gnome.SettingsDaemon.Power.Screen") ("org.gnome.SettingsDaemon.Power" @@ -1424,6 +1418,9 @@ The name @var{service} does not exist on the bus. @item :not-owner We are not an owner of the name @var{service}. @end table + +When @var{service} is not a known name but a unique name, the function +returns nil. @end defun When a name has been chosen, Emacs can offer its own methods, which @@ -1853,8 +1850,24 @@ This function establishes the connection to D-Bus @var{bus}. corresponding bus. For the system and session buses, this function is called when loading @file{dbus.el}, there is no need to call it again. -The function returns the number of connections this Emacs session has -established to the @var{bus} under the same unique name +If Emacs was invoked when there was no D-Bus session bus available +yet, you can set the environment variable +@env{DBUS_SESSION_BUS_ADDRESS} once the session bus daemon is running +and offering the address. Calling @code{dbus-init-bus} initializes +the connection to the session bus. + +@lisp +(setenv "DBUS_SESSION_BUS_ADDRESS" "unix:path=/run/user/1000/bus") + +@result{} "unix:path=/run/user/1000/bus" + +(dbus-init-bus :session) + +@result{} 2 +@end lisp + +@code{dbus-init-bus} returns the number of connections this Emacs +session has established to the @var{bus} under the same unique name (@pxref{dbus-get-unique-name}). It depends on the libraries Emacs is linked with, and on the environment Emacs is running. For example, if Emacs is linked with the GTK+ toolkit, and it runs in a GTK+-aware diff --git a/doc/misc/dired-x.texi b/doc/misc/dired-x.texi index afa234bb6fc8..4cad016a0f67 100644 --- a/doc/misc/dired-x.texi +++ b/doc/misc/dired-x.texi @@ -20,7 +20,7 @@ @comment %**end of header (This is for running Texinfo on a region.) @copying -Copyright @copyright{} 1994--1995, 1999, 2001--2023 Free Software +Copyright @copyright{} 1994--1995, 1999, 2001--2024 Free Software Foundation, Inc. @quotation @@ -92,7 +92,6 @@ For @file{dired-x.el} as distributed with GNU Emacs @value{EMACSVER}. * Introduction:: * Installation:: * Omitting Files in Dired:: -* Shell Command Guessing:: * Virtual Dired:: * Advanced Mark Commands:: * Multiple Dired Directories:: @@ -135,9 +134,6 @@ Some features provided by Dired Extra: Omitting uninteresting files from Dired listing (@pxref{Omitting Files in Dired}). @item -Guessing shell commands in Dired buffers -(@pxref{Shell Command Guessing}). -@item Running Dired command in non-Dired buffers (@pxref{Virtual Dired}). @item @@ -165,10 +161,6 @@ When @file{dired-x.el} is loaded, some standard Dired functions from Dired}), if it is active. @code{dired-find-buffer-nocreate} and @code{dired-initial-position} respect the value of @code{dired-find-subdir} (@pxref{Miscellaneous Commands}). -@code{dired-clean-up-after-deletion} respects the value of -@code{dired-clean-up-buffers-too}. @code{dired-read-shell-command} uses -@code{dired-guess-shell-command} (@pxref{Shell Command Guessing}) to -offer a smarter default command. @node Installation @chapter Installation @@ -186,7 +178,6 @@ In your @file{~/.emacs} file, or in the system-wide initialization file (with-eval-after-load 'dired (require 'dired-x) ;; Set dired-x global variables here. For example: - ;; (setq dired-guess-shell-gnutar "gtar") ;; (setq dired-x-hands-off-my-keys nil) )) (add-hook 'dired-mode-hook @@ -438,111 +429,6 @@ Loading @file{dired-x.el} will install Dired Omit by putting call @code{dired-extra-startup}, which in turn calls @code{dired-omit-startup} in your @code{dired-mode-hook}. -@node Shell Command Guessing -@chapter Shell Command Guessing -@cindex guessing shell commands for files. - -Based upon the name of a file, Dired tries to guess what shell -command you might want to apply to it. For example, if you have point -on a file named @file{foo.tar} and you press @kbd{!}, Dired will guess -you want to @samp{tar xvf} it and suggest that as the default shell -command. - -The default is mentioned in brackets and you can type @kbd{M-n} to get -the default into the minibuffer and then edit it, e.g., to change -@samp{tar xvf} to @samp{tar tvf}. If there are several commands for a given -file, e.g., @samp{xtex} and @samp{dvips} for a @file{.dvi} file, you can type -@kbd{M-n} several times to see each of the matching commands. - -Dired only tries to guess a command for a single file, never for a list -of marked files. - -The following variables control guessing of shell commands: - -@defvar dired-guess-shell-alist-default -This variable specifies the predefined rules for guessing shell -commands suitable for certain files. Set this to @code{nil} to turn -guessing off. The elements of @code{dired-guess-shell-alist-user} -(defined by the user) will override these rules. -@end defvar - -@defvar dired-guess-shell-alist-user -If non-@code{nil}, this variables specifies the user-defined alist of -file regexps and their suggested commands. These rules take -precedence over the predefined rules in the variable -@code{dired-guess-shell-alist-default} (to which they are prepended) -when @code{dired-do-shell-command} is run). The default is -@code{nil}. - -Each element of the alist looks like - -@example -(@var{regexp} @var{command}@dots{}) -@end example - -@noindent -where each @var{command} can either be a string or a Lisp expression -that evaluates to a string. If several commands are given, all of -them will temporarily be pushed onto the history. - -A @samp{*} in the shell command stands for the file name that matched -@var{regexp}. When Emacs invokes the @var{command}, it replaces each -instance of @samp{*} with the matched file name. - -You can set this variable in your @file{~/.emacs}. For example, -to add rules for @samp{.foo} and @samp{.bar} file extensions, write - -@example -(setq dired-guess-shell-alist-user - (list - (list "\\.foo$" "@var{foo-command}");; fixed rule - ;; possibly more rules... - (list "\\.bar$";; rule with condition test - '(if @var{condition} - "@var{bar-command-1}" - "@var{bar-command-2}")))) -@end example - -@noindent -This will override any predefined rules for the same extensions. -@end defvar - -@defvar dired-guess-shell-case-fold-search -If this variable is non-@code{nil}, -@code{dired-guess-shell-alist-default} and -@code{dired-guess-shell-alist-user} are matched case-insensitively. -The default is @code{t}. -@end defvar - -@cindex passing GNU Tar its @samp{z} switch. -@defvar dired-guess-shell-gnutar -If this variable is non-@code{nil}, it specifies the name of the GNU -Tar executable (e.g., @file{tar} or @file{gnutar}). GNU Tar's -@samp{z} switch is used for compressed archives. If you don't have -GNU Tar, set this to @code{nil}: a pipe using @command{zcat} is then -used instead. The default is @code{nil}. -@end defvar - -@cindex @code{gzip} -@defvar dired-guess-shell-gzip-quiet -A non-@code{nil} value of this variable means that @samp{-q} is passed -to @command{gzip}, possibly overriding a verbose option in the @env{GZIP} -environment variable. The default is @code{t}. -@end defvar - -@cindex @code{znew} -@defvar dired-guess-shell-znew-switches nil -This variable specifies a string of switches passed to @command{znew}. -An example is @samp{-K} which will make @command{znew} keep a @file{.Z} -file when it is smaller than the @file{.gz} file. The default is -@code{nil}: no additional switches are passed to @command{znew}. -@end defvar - -@defvar dired-shell-command-history nil -This variable holds the history list for commands that read -dired-shell commands. -@end defvar - @node Virtual Dired @chapter Virtual Dired @@ -884,15 +770,6 @@ normal and a wildcard buffer for the same directory, @kbd{C-x d @key{RET}} will toggle between those two. @end table -@table @kbd -@findex dired-goto-subdir -@kindex M-G -@item M-G -(@code{dired-goto-subdir}) Go to the header line of an inserted directory. -This command reads its argument, with completion derived from the names of the -inserted subdirectories. -@end table - @table @code @item dired-vm @@ -920,55 +797,6 @@ to @kbd{V}. Otherwise, @code{dired-bind-rmail} will be bound. @findex dired-rmail Bound to @kbd{V} if @code{dired-bind-vm} is @code{nil}. Run Rmail on this file (assumed to be mail folder in Rmail format). - -@item dired-info -@kindex I -@cindex running info. -@findex dired-info -Bound to @kbd{I}. Run Info on this file (assumed to be a file in Info -format). - -@vindex dired-bind-info -If the variable @code{dired-bind-info} is @code{nil}, @code{dired-info} will -not be bound to @kbd{I}. - -@item dired-man -@cindex running man. -@kindex N -@findex dired-man -Bound to @kbd{N}. Run man on this file (assumed to be a file in @code{nroff} -format). - -@vindex dired-bind-man -If the variable @code{dired-bind-man} is @code{nil}, @code{dired-man} will not -be bound to @kbd{N}. - -@item dired-do-relsymlink -@cindex relative symbolic links. -@kindex Y -@findex dired-do-relsymlink -Bound to @kbd{Y}. Relative symlink all marked (or next ARG) files into a -directory, or make a relative symbolic link to the current file. This creates -relative symbolic links like - -@example - foo -> ../bar/foo -@end example - -@noindent -not absolute ones like - -@example - foo -> /ugly/path/that/may/change/any/day/bar/foo -@end example - -@item dired-do-relsymlink-regexp -@kindex %Y -@findex dired-do-relsymlink-regexp -Bound to @kbd{%Y}. Relative symlink all marked files containing -@var{regexp} to @var{newname}. See functions -@code{dired-do-rename-regexp} and @code{dired-do-relsymlink} for more -info. @end table @node Bugs diff --git a/doc/misc/ebrowse.texi b/doc/misc/ebrowse.texi index b6c9d3dabe44..dca6266d8aec 100644 --- a/doc/misc/ebrowse.texi +++ b/doc/misc/ebrowse.texi @@ -11,7 +11,7 @@ @copying This file documents Ebrowse, a C++ class browser for GNU Emacs. -Copyright @copyright{} 2000--2023 Free Software Foundation, Inc. +Copyright @copyright{} 2000--2024 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi index e7b6198a0dc4..15f7a3298033 100644 --- a/doc/misc/ede.texi +++ b/doc/misc/ede.texi @@ -6,7 +6,7 @@ @copying This file describes EDE, the Emacs Development Environment. -Copyright @copyright{} 1998--2001, 2004--2005, 2008--2023 Free Software +Copyright @copyright{} 1998--2001, 2004--2005, 2008--2024 Free Software Foundation, Inc. @quotation @@ -99,7 +99,7 @@ learn and adopt GNU ways of doing things. @chapter @ede{} Project Concepts @ede{} is a generic interface for managing projects. It specifies a -single set of menus and keybindings, while supporting multiple ways to +single set of menus and key bindings, while supporting multiple ways to express a project via a build system. In the subsequent chapters, we will describe the different project @@ -144,7 +144,7 @@ init file: Activating @ede{} adds a menu named @samp{Development} to the menu bar. This menu provides several menu items for high-level @ede{} -commands. These menu items, and their corresponding keybindings, are +commands. These menu items, and their corresponding key bindings, are independent of the type of project you are actually working on. @node Quick Start @@ -271,7 +271,7 @@ Projects. You can create targets either from a buffer, or from a @code{dired} directory buffer. Note: If for some reason a directory list buffer, or file does not have the -@samp{Project} menu item, or if @ede{} keybindings don't work, just +@samp{Project} menu item, or if @ede{} key bindings don't work, just use @kbd{M-x revert-buffer @key{RET}} to force a refresh. Sometimes creating a new project doesn't restart buffers correctly. @@ -958,7 +958,7 @@ The example for Makefiles looks like this: ((buildfile :initform "Makefile")) "Generic Project for makefiles.") -(defmethod ede-generic-setup-configuration ((proj ede-generic-makefile-project) config) +(cl-defmethod ede-generic-setup-configuration ((proj ede-generic-makefile-project) config) "Set up a configuration for Make." (oset config build-command "make -k") (oset config debug-command "gdb ")) @@ -1031,8 +1031,9 @@ superclasses. In this way, specific behaviors such as how a project is saved, or how a target is compiled can be customized by a project author in detail. @ede{} communicates to these project objects via an API using methods. The commands you use in @ede{} mode are high-level -functional wrappers over these methods. @xref{Top,,, eieio, EIEIO manual}. For -details on using @eieio{} to extending classes, and writing methods. +functional wrappers over these methods. @xref{Top,,, eieio, EIEIO +manual} for details on using @eieio{} to extending classes, and +writing methods. If you intend to extend @ede{}, it is most likely that a new target type is needed in one of the existing project types. The rest of this chapter @@ -1059,7 +1060,7 @@ examples. @menu * Development Overview:: * Detecting a Project:: -* User interface methods:: Methods associated with keybindings +* User interface methods:: Methods associated with key bindings * Base project methods:: The most basic methods on @ede{} objects. * Sourcecode objects:: Defining new sourcecode classes. * Compiler and Linker objects:: Defining new compilers and linkers. @@ -1431,7 +1432,7 @@ See @file{ede-proj-obj.el} for examples of the combination. @item ede-project-placeholder @table @asis @item Children: -@w{@xref{ede-project}.} +@xref{ede-project}. @end table @end table @end table @@ -1514,12 +1515,13 @@ Make sure placeholder @var{THIS} is replaced with the real thing, and pass throu @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-project-placeholder}.} +@item ede-project-placeholder +@xref{ede-project-placeholder}. @table @code @item ede-project @table @asis @item Children: -@w{@xref{ede-cpp-root-project},} @w{ede-emacs-project,} @w{ede-linux-project,} @w{ede-maven-project,} @w{@xref{ede-simple-project},} @w{@xref{ede-simple-base-project},} @w{@xref{ede-proj-project},} @w{@xref{project-am-makefile},} @w{@xref{ede-step-project}.} +@xref{ede-cpp-root-project}, @w{ede-emacs-project,} @w{ede-linux-project,} @w{ede-maven-project,} @xref{ede-simple-project}, @xref{ede-simple-base-project}, @xref{ede-proj-project}, @xref{project-am-makefile}, @xref{ede-step-project}. @end table @end table @end table @@ -1551,14 +1553,14 @@ This is a URL to be sent to a web site for documentation. @item :web-site-directory @* A directory where web pages can be found by Emacs. -For remote locations use a path compatible with ange-ftp or EFS@. +For remote locations use a path compatible with ange-ftp. You can also use TRAMP for use with rcp & scp. @item :web-site-file @* A file which contains the website for this project. This file can be relative to slot @code{web-site-directory}. -This can be a local file, use ange-ftp, EFS, or TRAMP. +This can be a local file, use ange-ftp or TRAMP. @item :ftp-site Type: @code{string} @* @@ -1800,9 +1802,11 @@ Commit change to local variables in @var{PROJ}. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-project-placeholder}.} +@item ede-project-placeholder +@xref{ede-project-placeholder}. @table @code -@item @w{@xref{ede-project}.} +@item ede-project +@xref{ede-project}. @table @code @item ede-cpp-root-project No children @@ -1895,19 +1899,19 @@ Make sure the @code{:file} is fully expanded. @end deffn @deffn Method ede-preprocessor-map :AFTER this -Get the pre-processor map for project @var{THIS}. +Get the pre-processor map for project @var{this}. @end deffn @deffn Method ede-cpp-root-header-file-p :AFTER proj name -Non @code{nil} if in @var{PROJ} the filename @var{NAME} is a header. +Non-@code{nil} if in @var{proj} the filename @var{name} is a header. @end deffn @deffn Method ede-system-include-path :AFTER this -Get the system include path used by project @var{THIS}. +Get the system include path used by project @var{this}. @end deffn @deffn Method ede-expand-filename-impl :AFTER proj name -Within this project @var{PROJ}, find the file @var{NAME}. +Within this project @var{proj}, find the file @var{name}. This knows details about or source tree. @end deffn @@ -1922,9 +1926,11 @@ This knows details about or source tree. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-project-placeholder}.} +@item ede-project-placeholder +@xref{ede-project-placeholder}. @table @code -@item @w{@xref{ede-project}.} +@item ede-project +@xref{ede-project}. @table @code @item ede-simple-project No children @@ -1952,9 +1958,11 @@ Commit any change to @var{PROJ} to its file. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-project-placeholder}.} +@item ede-project-placeholder +@xref{ede-project-placeholder}. @table @code -@item @w{@xref{ede-project}.} +@item ede-project +@xref{ede-project}. @table @code @item ede-simple-base-project No children @@ -1982,9 +1990,11 @@ This one project could control a tree of subdirectories. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-project-placeholder}.} +@item ede-project-placeholder +@xref{ede-project-placeholder}. @table @code -@item @w{@xref{ede-project}.} +@item ede-project +@xref{ede-project}. @table @code @item ede-proj-project No children @@ -2172,9 +2182,11 @@ Commit change to local variables in @var{PROJ}. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-project-placeholder}.} +@item ede-project-placeholder +@xref{ede-project-placeholder}. @table @code -@item @w{@xref{ede-project}.} +@item ede-project +@xref{ede-project}. @table @code @item project-am-makefile No children @@ -2214,9 +2226,11 @@ buffer being in order to provide a smart default target type. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-project-placeholder}.} +@item ede-project-placeholder +@xref{ede-project-placeholder}. @table @code -@item @w{@xref{ede-project}.} +@item ede-project +@xref{ede-project}. @table @code @item ede-step-project No children @@ -2370,7 +2384,7 @@ Commit change to local variables in @var{PROJ}. @item ede-target @table @asis @item Children: -@w{ede-cpp-root-target,} @w{ede-emacs-target-c,} @w{ede-emacs-target-el,} @w{ede-emacs-target-misc,} @w{ede-linux-target-c,} @w{ede-linux-target-misc,} @w{ede-maven-target-java,} @w{ede-maven-target-c,} @w{ede-maven-target-misc,} @w{ede-simple-target,} @w{@xref{ede-proj-target},} @w{@xref{project-am-target}.} +@w{ede-cpp-root-target,} @w{ede-emacs-target-c,} @w{ede-emacs-target-el,} @w{ede-emacs-target-misc,} @w{ede-linux-target-c,} @w{ede-linux-target-misc,} @w{ede-maven-target-java,} @w{ede-maven-target-c,} @w{ede-maven-target-misc,} @w{ede-simple-target,} @xref{ede-proj-target}, @xref{project-am-target}. @end table @end table @end table @@ -2535,7 +2549,7 @@ Call this when a user finishes customizing @var{TARGET}. @end deffn @deffn Method project-edit-file-target :AFTER ot -Edit the target @var{OT} associated w/ this file. +Edit the target @var{OT} associated with this file. @end deffn @deffn Method ede-documentation :AFTER this @@ -2576,12 +2590,13 @@ Retrieves the slot @code{menu} from an object of class @code{ede-target} @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-target}.} +@item ede-target +@xref{ede-target}. @table @code @item ede-proj-target @table @asis @item Children: -@w{@xref{ede-proj-target-makefile},} @w{ede-proj-target-aux,} @w{@xref{ede-proj-target-scheme}.} +@xref{ede-proj-target-makefile}, @w{ede-proj-target-aux,} @xref{ede-proj-target-scheme}. @end table @end table @end table @@ -2765,14 +2780,16 @@ sources variable. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-target}.} +@item ede-target +@xref{ede-target}. @table @code -@item @w{@xref{ede-proj-target}.} +@item ede-proj-target +@xref{ede-proj-target}. @table @code @item ede-proj-target-makefile @table @asis @item Children: -@w{@xref{semantic-ede-proj-target-grammar},} @w{@xref{ede-proj-target-makefile-objectcode},} @w{@xref{ede-proj-target-elisp},} @w{@xref{ede-proj-target-makefile-miscelaneous},} @w{@xref{ede-proj-target-makefile-info}.} +@xref{semantic-ede-proj-target-grammar}, @xref{ede-proj-target-makefile-objectcode}, @xref{ede-proj-target-elisp}, @xref{ede-proj-target-makefile-miscelaneous}, @xref{ede-proj-target-makefile-info}. @end table @end table @end table @@ -2795,7 +2812,7 @@ File name of generated Makefile. Type: @code{boolean} @* Default Value: @code{t} -Non @code{nil} means the rule created is part of the all target. +Non-@code{nil} means the rule created is part of the all target. Setting this to @code{nil} creates the rule to build this item, but does not include it in the @code{all:} rule. @@ -2863,11 +2880,14 @@ Use @var{CONFIGURATION} as the current configuration to query. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-target}.} +@item ede-target +@xref{ede-target}. @table @code -@item @w{@xref{ede-proj-target}.} +@item ede-proj-target +@xref{ede-proj-target}. @table @code -@item @w{@xref{ede-proj-target-makefile}.} +@item ede-proj-target-makefile +@xref{ede-proj-target-makefile}. @table @code @item semantic-ede-proj-target-grammar No children @@ -2917,16 +2937,19 @@ Argument @var{THIS} is the target that should insert stuff. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-target}.} +@item ede-target +@xref{ede-target}. @table @code -@item @w{@xref{ede-proj-target}.} +@item ede-proj-target +@xref{ede-proj-target}. @table @code -@item @w{@xref{ede-proj-target-makefile}.} +@item ede-proj-target-makefile +@xref{ede-proj-target-makefile}. @table @code @item ede-proj-target-makefile-objectcode @table @asis @item Children: -@w{@xref{ede-proj-target-makefile-archive},} @w{@xref{ede-proj-target-makefile-program}.} +@xref{ede-proj-target-makefile-archive}, @xref{ede-proj-target-makefile-program}. @end table @end table @end table @@ -2979,13 +3002,17 @@ Argument @var{THIS} is the target to get sources from. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-target}.} +@item ede-target +@xref{ede-target}. @table @code -@item @w{@xref{ede-proj-target}.} +@item ede-proj-target +@xref{ede-proj-target}. @table @code -@item @w{@xref{ede-proj-target-makefile}.} +@item ede-proj-target-makefile +@xref{ede-proj-target-makefile}. @table @code -@item @w{@xref{ede-proj-target-makefile-objectcode}.} +@item ede-proj-target-makefile-objectcode +@xref{ede-proj-target-makefile-objectcode}. @table @code @item ede-proj-target-makefile-archive No children @@ -3022,18 +3049,22 @@ Makefile.am generator, so use it to add this important bin program. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-target}.} +@item ede-target +@xref{ede-target}. @table @code -@item @w{@xref{ede-proj-target}.} +@item ede-proj-target +@xref{ede-proj-target}. @table @code -@item @w{@xref{ede-proj-target-makefile}.} +@item ede-proj-target-makefile +@xref{ede-proj-target-makefile}. @table @code -@item @w{@xref{ede-proj-target-makefile-objectcode}.} +@item ede-proj-target-makefile-objectcode +@xref{ede-proj-target-makefile-objectcode}. @table @code @item ede-proj-target-makefile-program @table @asis @item Children: -@w{@xref{ede-proj-target-makefile-shared-object}.} +@xref{ede-proj-target-makefile-shared-object}. @end table @end table @end table @@ -3101,15 +3132,20 @@ Insert bin_PROGRAMS variables needed by target @var{THIS}. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-target}.} +@item ede-target +@xref{ede-target}. @table @code -@item @w{@xref{ede-proj-target}.} +@item ede-proj-target +@xref{ede-proj-target}. @table @code -@item @w{@xref{ede-proj-target-makefile}.} +@item ede-proj-target-makefile +@xref{ede-proj-target-makefile}. @table @code -@item @w{@xref{ede-proj-target-makefile-objectcode}.} +@item ede-proj-target-makefile-objectcode +@xref{ede-proj-target-makefile-objectcode}. @table @code -@item @w{@xref{ede-proj-target-makefile-program}.} +@item ede-proj-target-makefile-program +@xref{ede-proj-target-makefile-program}. @table @code @item ede-proj-target-makefile-shared-object No children @@ -3161,16 +3197,19 @@ Makefile.am generator, so use it to add this important bin program. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-target}.} +@item ede-target +@xref{ede-target}. @table @code -@item @w{@xref{ede-proj-target}.} +@item ede-proj-target +@xref{ede-proj-target}. @table @code -@item @w{@xref{ede-proj-target-makefile}.} +@item ede-proj-target-makefile +@xref{ede-proj-target-makefile}. @table @code @item ede-proj-target-elisp @table @asis @item Children: -@w{@xref{ede-proj-target-elisp-autoloads}.} +@xref{ede-proj-target-elisp-autoloads}. @end table @end table @end table @@ -3237,13 +3276,17 @@ is found, such as a @code{-version} variable, or the standard header. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-target}.} +@item ede-target +@xref{ede-target}. @table @code -@item @w{@xref{ede-proj-target}.} +@item ede-proj-target +@xref{ede-proj-target}. @table @code -@item @w{@xref{ede-proj-target-makefile}.} +@item ede-proj-target-makefile +@xref{ede-proj-target-makefile}. @table @code -@item @w{@xref{ede-proj-target-elisp}.} +@item ede-proj-target-elisp +@xref{ede-proj-target-elisp}. @table @code @item ede-proj-target-elisp-autoloads No children @@ -3352,11 +3395,14 @@ sources variable. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-target}.} +@item ede-target +@xref{ede-target}. @table @code -@item @w{@xref{ede-proj-target}.} +@item ede-proj-target +@xref{ede-proj-target}. @table @code -@item @w{@xref{ede-proj-target-makefile}.} +@item ede-proj-target-makefile +@xref{ede-proj-target-makefile}. @table @code @item ede-proj-target-makefile-miscelaneous No children @@ -3408,11 +3454,14 @@ Return a list of files which @var{THIS} target depends on. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-target}.} +@item ede-target +@xref{ede-target}. @table @code -@item @w{@xref{ede-proj-target}.} +@item ede-proj-target +@xref{ede-proj-target}. @table @code -@item @w{@xref{ede-proj-target-makefile}.} +@item ede-proj-target-makefile +@xref{ede-proj-target-makefile}. @table @code @item ede-proj-target-makefile-info No children @@ -3494,9 +3543,11 @@ when working in Automake mode. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-target}.} +@item ede-target +@xref{ede-target}. @table @code -@item @w{@xref{ede-proj-target}.} +@item ede-proj-target +@xref{ede-proj-target}. @table @code @item ede-proj-target-scheme No children @@ -3538,12 +3589,13 @@ Tweak the configure file (current buffer) to accommodate @var{THIS}. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-target}.} +@item ede-target +@xref{ede-target}. @table @code @item project-am-target @table @asis @item Children: -@w{@xref{project-am-objectcode},} @w{project-am-header,} @w{@xref{project-am-lisp},} @w{@xref{project-am-texinfo},} @w{@xref{project-am-man}.} +@xref{project-am-objectcode}, @w{project-am-header,} @xref{project-am-lisp}, @xref{project-am-texinfo}, @xref{project-am-man}. @end table @end table @end table @@ -3562,7 +3614,7 @@ Run the current project in the debugger. @end deffn @deffn Method project-edit-file-target :AFTER obj -Edit the target associated w/ this file. +Edit the target associated with this file. @end deffn @node project-am-objectcode @@ -3576,14 +3628,16 @@ Edit the target associated w/ this file. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-target}.} +@item ede-target +@xref{ede-target}. @table @code -@item @w{@xref{project-am-target}.} +@item project-am-target +@xref{project-am-target}. @table @code @item project-am-objectcode @table @asis @item Children: -@w{@xref{project-am-program},} @w{project-am-lib.} +@xref{project-am-program}, @w{project-am-lib.} @end table @end table @end table @@ -3621,11 +3675,14 @@ There are no default header files. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-target}.} +@item ede-target +@xref{ede-target}. @table @code -@item @w{@xref{project-am-target}.} +@item project-am-target +@xref{project-am-target}. @table @code -@item @w{@xref{project-am-objectcode}.} +@item project-am-objectcode +@xref{project-am-objectcode}. @table @code @item project-am-program No children @@ -3659,9 +3716,11 @@ Additional LD args. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-target}.} +@item ede-target +@xref{ede-target}. @table @code -@item @w{@xref{project-am-target}.} +@item project-am-target +@xref{project-am-target}. @table @code @item @w{project-am-header.} @table @code @@ -3692,9 +3751,11 @@ Return the default macro to 'edit' for this object. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-target}.} +@item ede-target +@xref{ede-target}. @table @code -@item @w{@xref{project-am-target}.} +@item project-am-target +@xref{project-am-target}. @table @code @item @w{project-am-header.} @table @code @@ -3725,9 +3786,11 @@ Return the default macro to 'edit' for this object. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-target}.} +@item ede-target +@xref{ede-target}. @table @code -@item @w{@xref{project-am-target}.} +@item project-am-target +@xref{project-am-target}. @table @code @item project-am-lisp No children @@ -3755,9 +3818,11 @@ Return the default macro to 'edit' for this object. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-target}.} +@item ede-target +@xref{ede-target}. @table @code -@item @w{@xref{project-am-target}.} +@item project-am-target +@xref{project-am-target}. @table @code @item project-am-texinfo No children @@ -3807,9 +3872,11 @@ files in the project. @table @code @item eieio-speedbar-directory-button @table @code -@item @w{@xref{ede-target}.} +@item ede-target +@xref{ede-target}. @table @code -@item @w{@xref{project-am-target}.} +@item project-am-target +@xref{project-am-target}. @table @code @item project-am-man No children @@ -3887,10 +3954,10 @@ themselves. Type: @code{boolean} @* Default Value: @code{nil} -Non @code{nil} if this sourcecode type uses subdirectores. -If sourcecode always lives near the target creating it, this should be nil. -If sourcecode can, or typically lives in a subdirectory of the owning -target, set this to t. +Non-@code{nil} if this sourcecode type uses subdirectores. If +sourcecode always lives near the target creating it, this should be +@code{nil}. If sourcecode can, or typically lives in a subdirectory +of the owning target, set this to @code{t}. @item :garbagepattern Type: @code{list} @* @@ -3962,7 +4029,7 @@ compile commands. @item ede-compilation-program @table @asis @item Children: -@w{@xref{ede-compiler},} @w{@xref{ede-linker}.} +@xref{ede-compiler}, @xref{ede-linker}. @end table @end table @end table @@ -4070,12 +4137,13 @@ Tweak the configure file (current buffer) to accommodate @var{THIS}. @table @code @item eieio-instance-inheritor @table @code -@item @w{@xref{ede-compilation-program}.} +@item ede-compilation-program +@xref{ede-compilation-program}. @table @code @item ede-compiler @table @asis @item Children: -@w{@xref{ede-object-compiler},} @w{semantic-ede-grammar-compiler-class.} +@xref{ede-object-compiler}, @w{semantic-ede-grammar-compiler-class.} @end table @end table @@ -4178,9 +4246,11 @@ Return a string based on @var{THIS} representing a make object variable. @table @code @item eieio-instance-inheritor @table @code -@item @w{@xref{ede-compilation-program}.} +@item ede-compilation-program +@xref{ede-compilation-program}. @table @code -@item @w{@xref{ede-compiler}.} +@item ede-compiler +@xref{ede-compiler}. @table @code @item ede-object-compiler No children @@ -4221,7 +4291,8 @@ Insert variables needed by the compiler @var{THIS}. @table @code @item eieio-instance-inheritor @table @code -@item @w{@xref{ede-compilation-program}.} +@item ede-compilation-program +@xref{ede-compilation-program}. @table @code @item ede-linker No children diff --git a/doc/misc/ediff.texi b/doc/misc/ediff.texi index e5e30d77bd60..e8ecb2186742 100644 --- a/doc/misc/ediff.texi +++ b/doc/misc/ediff.texi @@ -26,7 +26,7 @@ This file documents Ediff, a comprehensive visual interface to Unix diff and patch utilities. -Copyright @copyright{} 1995--2023 Free Software Foundation, Inc. +Copyright @copyright{} 1995--2024 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -1368,13 +1368,13 @@ the variable @code{ediff-help-message}, which is local to @node Window and Frame Configuration @section Window and Frame Configuration -On a non-windowing display, Ediff sets things up in one frame, splitting +On a non-graphical display, Ediff sets things up in one frame, splitting it between a small control window and the windows for buffers A, B, and C@. The split between these windows can be horizontal or vertical, which can be changed interactively by typing @kbd{|} while the cursor is in the control window. -On a window display, Ediff sets up a dedicated frame for Ediff Control +On a graphical display, Ediff sets up a dedicated frame for Ediff Control Panel and then it chooses windows as follows: If one of the buffers is invisible, it is displayed in the currently selected frame. If a buffer is visible, it is displayed in the frame where it is visible. @@ -1477,7 +1477,7 @@ The multiframe setup is done by the @code{ediff-setup-windows-multiframe} function, which is the default on windowing displays. The plain setup, one where all windows are always in one frame, is done by @code{ediff-setup-windows-plain}, which is the -default on a non-windowing display (or in an xterm window). In fact, +default on a non-graphical display (or in an xterm window). In fact, under Emacs, you can switch freely between these two setups by executing the command @code{ediff-toggle-multiframe} using the Minibuffer of the Menubar. @@ -1869,7 +1869,8 @@ These variables specify the options to pass to the above utilities. In @code{ediff-diff-options}, it may be useful to specify options such as @samp{-w} that ignore certain kinds of changes. However, Ediff does not let you use the option @samp{-c}, as it doesn't recognize this -format yet. +format yet. (If you alter this variable, it should be done via the +Customize interface instead of using @code{setq} directly.) @item ediff-coding-system-for-read @vindex ediff-coding-system-for-read diff --git a/doc/misc/edt.texi b/doc/misc/edt.texi index 358bc2c8b791..1a835f79d7f2 100644 --- a/doc/misc/edt.texi +++ b/doc/misc/edt.texi @@ -6,7 +6,7 @@ @copying This file documents the EDT emulation package for Emacs. -Copyright @copyright{} 1986, 1992, 1994--1995, 1999--2023 Free Software +Copyright @copyright{} 1986, 1992, 1994--1995, 1999--2024 Free Software Foundation, Inc. @quotation @@ -317,7 +317,7 @@ emulation. Emacs binds keys to @acronym{ASCII} control characters and so does the real EDT@. Where EDT key bindings and Emacs key bindings conflict, the default Emacs key bindings are retained by the EDT emulation by -default. If you are a diehard EDT user you may not like this. The +default. If you are a die-hard EDT user you may not like this. The @ref{Control keys} section explains how to change this so that the EDT bindings to @acronym{ASCII} control characters override the default Emacs bindings. @@ -443,7 +443,7 @@ the PC @key{NumLock} keypad key will be configurable for the emulation of the @key{PF1} key. The PC keypad can now emulate an LK-201 keypad (less the comma key), the standard keyboard supplied with DEC terminals VT-200 and above. This @file{.xmodmaprc} file switches the role of the -@key{F12} and @key{NumLock} keys. It has been tested on RedHat +@key{F12} and @key{NumLock} keys. It has been tested on Red Hat GNU/Linux 5.2. Other versions of GNU/Linux may require different keycodes. (@ref{Unix} for further help on how to do this.) @@ -460,7 +460,7 @@ keycode assignments vary from system to system, some investigation is needed to see how to do this on a particular system. You will need to look at the output generated by @code{xmodmap} invoked -with the "-pm" switch. For example, on RedHat GNU/Linux 5.2 on a PC, we +with the "-pm" switch. For example, on Red Hat GNU/Linux 5.2 on a PC, we get the following output when running @samp{xmodmap -pm}: @example @@ -495,7 +495,7 @@ keycode 96 = F12 . @end example -@noindent So, in RedHat GNU/Linux 5.2 on a PC, Num_Lock generates keycode 77. +@noindent So, in Red Hat GNU/Linux 5.2 on a PC, Num_Lock generates keycode 77. The following steps are taken: @enumerate @@ -883,7 +883,7 @@ Here are some examples: (setq edt-word-entities '(?\t) ; specifies TAB, the default @end example -@noindent You can also specify characters by their decimal ascii values: +@noindent You can also specify characters by their decimal ASCII values: @example (setq edt-word-entities '(9 45 47)) ; specifies TAB, - , and / @@ -893,7 +893,7 @@ Here are some examples: @section Enabling EDT Control Key Sequence Bindings Where EDT key bindings and Emacs key bindings conflict, the default -Emacs key bindings are retained by default. Some diehard EDT users +Emacs key bindings are retained by default. Some die-hard EDT users may not like this. So, if the variable @code{edt-use-EDT-control-key-bindings} is set to true in a user's @file{.emacs} file, then the default EDT Emulation mode will enable most diff --git a/doc/misc/efaq-w32.texi b/doc/misc/efaq-w32.texi index d91d1c2c2c14..9756345042ef 100644 --- a/doc/misc/efaq-w32.texi +++ b/doc/misc/efaq-w32.texi @@ -15,7 +15,7 @@ Answers to Frequently asked Questions about using Emacs on Microsoft Windows. @include emacsver.texi @copying -Copyright @copyright{} 2008, 2010--2023 Free Software Foundation, Inc. +Copyright @copyright{} 2008, 2010--2024 Free Software Foundation, Inc. @quotation This list of frequently asked questions about GNU Emacs on MS Windows @@ -457,12 +457,12 @@ to your init file: @node Using with Explorer @subsection For use with Internet Explorer @cindex Internet Explorer, view source in Emacs -@cindex mailto urls, associating with Emacs -@cindex news urls, associating with Emacs +@cindex mailto URLs, associating with Emacs +@cindex news URLs, associating with Emacs @cindex URLs, associating mail and news URLs with Emacs You can use Emacs as the editor for composing mail for -@indicateurl{mailto:} links, reading usenet for @indicateurl{news:} +@indicateurl{mailto:} links, reading Usenet for @indicateurl{news:} links, and viewing source. The following registry entries control this: @@ -691,9 +691,9 @@ question also. @node CUA @subsection Standard Windows key bindings @findex cua-mode -@cindex CUA keybindings +@cindex CUA key bindings @cindex shift key, selecting with -@cindex standard Windows keybindings +@cindex standard Windows key bindings @cindex paste with C-v @cindex cut with C-x @cindex copy with C-c @@ -701,7 +701,7 @@ question also. @cindex C-x to cut @cindex C-v to paste -The keybindings of Emacs predate modern GUIs, and the keys that were +The key bindings of Emacs predate modern GUIs, and the keys that were chosen by later GUIs for cut and copy were given important functions as extended keymaps in Emacs. CUA mode attempts to let both bindings co-exist by defining C-x and C-c as @code{kill-region} and @@ -930,9 +930,9 @@ an indication of whether the font is outline (.TTF, .ATM) or raster (.FON) based when fonts are listed, which may let you differentiate between two fonts with the same name and different technologies. -Starting with Emacs 23, the preferred font name format will be moving -to the simpler and more flexible fontconfig format. XLFD names will -continue to be supported for backward compatibility. +Starting with Emacs 23, the preferred font name format is the simpler +and more flexible fontconfig format. XLFD names will continue to be +supported for backward compatibility. @example XLFD: -*-Courier New-normal-r-*-*-13-*-*-*-c-*-iso8859-1 @@ -1168,15 +1168,15 @@ binary and the Ctrl-M characters are significant. @subsection CR/LF translation by file system @cindex line ends, determining by filesystem @cindex binary files, determining by filesystem -@vindex untranslated-filesystem-list -@findex add-untranslated-filesystem -@findex remove-untranslated-filesystem +@vindex w32-untranslated-filesystem-list +@findex w32-add-untranslated-filesystem +@findex w32-remove-untranslated-filesystem -The variable @code{untranslated-filesystem-list} defines whole +The variable @code{w32-untranslated-filesystem-list} defines whole directory trees that should not have CR/LF autodetection performed on them. The list can be manipulated with the functions -@code{add-untranslated-filesystem} and -@code{remove-untranslated-filesystem}. With auto-detection in +@code{w32-add-untranslated-filesystem} and +@code{w32-remove-untranslated-filesystem}. With auto-detection in recent versions of Emacs, this is seldom useful for existing files, but can still be used to influence the choice of line ends for newly created files. @@ -1744,7 +1744,7 @@ date now, so no concrete pointers are available. You will need an implementation of TeX for Windows. A number of implementations are listed on the -@uref{http://www.tug.org/interest.html#free, TeX Users Group} website. +@uref{https://www.tug.org/interest.html#free, TeX Users Group} website. @node Spell check @section How do I perform spell checks? @@ -1899,7 +1899,7 @@ Christopher Payne wrote a Visual Studio add-in that makes Emacs the default text editor, this has now been taken over by Jeff Paquette. See the following two URLs for details: @itemize -@item @uref{http://sourceforge.net/projects/visemacs/} for the latest version. +@item @uref{https://sourceforge.net/projects/visemacs/} for the latest version. @item @uref{http://www.smathers.net/VisEmacs.htm} for notes on usage. @end itemize @@ -2039,7 +2039,7 @@ this option is set. (I don't see it on VC++ 4.0.) @cindex Borland C++, integration with Emacs Jonathan Arnold has written an -@uref{http://www.buddydog.org/C++Builder/c++builder.html, EmacsEdit +@uref{https://www.buddydog.org/C++Builder/c++builder.html, EmacsEdit ``expert''} for interfacing C++ Builder and Emacs. @node Version control @@ -2194,7 +2194,7 @@ to port software to Windows. @cindex image libraries, gnuwin32 @cindex image libraries, development -@uref{http://gnuwin32.sourceforge.net/} +@uref{https://gnuwin32.sourceforge.net/} GnuWin32 provides precompiled native Windows ports of a wide selection of Free software and libraries. Unfortunately, the ports are diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi index f57fcc96da39..c687f723e09f 100644 --- a/doc/misc/efaq.texi +++ b/doc/misc/efaq.texi @@ -8,11 +8,10 @@ @include emacsver.texi @copying -Copyright @copyright{} 2001--2023 Free Software Foundation, Inc.@* -Copyright @copyright{} 1994, 1995, 1996, 1997, 1998, 1999, 2000 -Reuven M. Lerner@* -Copyright @copyright{} 1992, 1993 Steven Byrnes@* -Copyright @copyright{} 1990, 1991, 1992 Joseph Brian Wells@* +Copyright @copyright{} 2001--2024 Free Software Foundation, Inc.@* +Copyright @copyright{} 1994--2000 Reuven M. Lerner@* +Copyright @copyright{} 1992--1993 Steven Byrnes@* +Copyright @copyright{} 1990--1992 Joseph Brian Wells@* @quotation This list of frequently asked questions about GNU Emacs with answers @@ -28,9 +27,6 @@ latest version of the FAQ is archived. The FAQ may be copied and redistributed under these conditions, except that the FAQ may not be embedded in a larger literary work unless that work itself allows free copying and redistribution. - -[This version has been heavily edited since it was included in the Emacs -distribution in 1999.] @end quotation @end copying @@ -151,7 +147,7 @@ and @key{Meta} @item @key{DEL}: @key{Delete}, usually @strong{not} the same as -@key{Backspace}; same as @kbd{C-?} (see @ref{Backspace invokes help}, if +@key{Backspace}; same as @kbd{C-?} (@pxref{Backspace invokes help}, if deleting invokes Emacs help) @item @@ -259,12 +255,13 @@ name displayed by this will be the full pathname of the installed @code{data-directory}, and @kbd{C-h v} displays the value and the documentation of a variable.) -The location of your Info directory (i.e., where Info documentation -is stored) is kept in the variable @code{Info-default-directory-list}. Use -@kbd{C-h v Info-default-directory-list @key{RET}} to see the value of -this variable, which will be a list of directory names. The last -directory in that list is probably where most Info files are stored. By -default, Emacs Info documentation is placed in @file{/usr/local/share/info}. +The location of your Info directory (i.e., where Info documentation is +stored) is kept in the variable @code{Info-directory-list}. Use +@kbd{C-h v Info-directory-list @key{RET}} to see the value of this +variable, which will be a list of directory names (after Info has been +started). The last directory in that list is probably where most Info +files are stored. By default, Emacs Info documentation is placed in +@file{/usr/local/share/info}. For information on some of the files in the @file{etc} directory, @pxref{Informational files for Emacs}. @@ -545,11 +542,11 @@ printed manual}. @cindex Reference cards, in other languages @item You can get a printed reference card listing commands and keys to -invoke them. You can order one from the FSF for $2 (or 10 for $18), -or you can print your own from the @file{etc/refcards/refcard.tex} or -@file{etc/refcards/refcard.pdf} files in the Emacs distribution. -The Emacs distribution comes with translations of the reference card -into several languages; look for files named +invoke them. You can order one from the FSF, or you can print your +own from the @file{etc/refcards/refcard.tex} or +@file{etc/refcards/refcard.pdf} files in the Emacs distribution. The +Emacs distribution comes with translations of the reference card into +several languages; look for files named @file{etc/refcards/@var{lang}-refcard.*}, where @var{lang} is a two-letter code of the language. For example, the German version of the reference card is in the files @file{etc/refcards/de-refcard.tex} @@ -696,12 +693,13 @@ of the file in parentheses, like this: @item You can create your own Info directory. You can tell Emacs where that Info directory is by adding its pathname to the value of the variable -@code{Info-default-directory-list}. For example, to use a private Info -directory which is a subdirectory of your home directory named @file{Info}, -you could put this in your @file{.emacs} file: +@code{Info-default-directory-list}. For example, to use a private +Info directory which is a subdirectory of your home directory named +@file{Info}, you could put this in your init file (@pxref{Setting up a +customization file}): @lisp -(add-to-list 'Info-default-directory-list "~/Info") +(add-to-list 'Info-default-directory-list "~/Info/") @end lisp You will need a top-level Info file named @file{dir} in this directory @@ -793,7 +791,7 @@ informational files about Emacs and relevant aspects of the GNU project are available for you to read. The following files (and others) are available in the @file{etc} -directory of the Emacs distribution (see @ref{File-name conventions}, if +directory of the Emacs distribution (@pxref{File-name conventions}, if you're not sure where that is). Many of these files are available via the Emacs @samp{Help} menu, or by typing @kbd{C-h ?} (@kbd{M-x help-for-help}). @@ -849,6 +847,7 @@ in the Emacs development repository (@pxref{Latest version of Emacs}). @menu * Origin of the term Emacs:: * Latest version of Emacs:: +* New in Emacs 29:: * New in Emacs 28:: * New in Emacs 27:: * New in Emacs 26:: @@ -881,10 +880,11 @@ divergent TECO command sets and key bindings at MIT, and completed by RMS. Many people have said that TECO code looks a lot like line noise; you -can read more at @uref{news:alt.lang.teco}. Someone has written a TECO -implementation in Emacs Lisp (to find it, see @ref{Packages that do not -come with Emacs}); it would be an interesting project to run the -original TECO Emacs inside of Emacs. +can read more on +@uref{https://en.wikipedia.org/wiki/TECO_(text_editor), Wikipedia}. +Someone has written a TECO implementation in Emacs Lisp (to find it, +see @ref{Packages that do not come with Emacs}); it would be an +interesting project to run the original TECO Emacs inside of Emacs. @cindex Why Emacs? For some not-so-serious alternative reasons for Emacs to have that @@ -920,6 +920,125 @@ Emacs, type @kbd{C-h C-n} (@kbd{M-x view-emacs-news}). You can give this command a prefix argument to read about which features were new in older versions. +@node New in Emacs 29 +@section What is different about Emacs 29? +@cindex Differences between Emacs 28 and Emacs 29 +@cindex Emacs 29, new features in + +Here's a list of the most important changes in Emacs 29 as compared to +Emacs 28 (the full list is too long, and can be read in the Emacs +@file{NEWS} file by typing @kbd{C-h n} inside Emacs). + +@itemize +@item +Emacs can now be built with the +@uref{https://tree-sitter.github.io/tree-sitter/, tree-sitter +library}, which provides incremental parsing capabilities for several +programming languages. Emacs comes with several major modes which use +this library for syntax highlighting (a.k.a. ``fontification''), +indentation, Imenu support, etc. These modes have names +@code{@var{lang}-ts-mode}, where @var{lang} is the programming +language. For example, @code{c-ts-mode}, @code{ruby-ts-mode}, etc. +There are several new font-lock faces, such as +@code{font-lock-number-face} and @code{font-lock-operator-face}, +intended to be used with these modes. + +@item +Emacs can now be built in the PGTK (``pure GTK'') configuration, which +supports running Emacs on window systems other than X, such as Wayland +and Broadway. + +@item +Emacs now has built-in support for accessing SQLite databases. This +requires Emacs to be built with the optional @file{sqlite3} library. + +@item +Emacs comes with the popular @code{use-package} package bundled. + +@item +Emacs can now display WebP images, if it was built with the optional +@file{libwebp} library. + +@item +On X window system, Emacs now supports the XInput2 specification for +input events. + +@item +Emacs now comes with a client library for using Language Server +Protocol (@acronym{LSP}) servers. This library, named @file{eglot.el} +(the name stands for ``Emacs polyGlot'') provides LSP support for +various software development and maintenance features, such as +@code{xref}, Imenu, ElDoc, etc. + +@item +Emacs can now cope with files with very long lines much better. It no +longer hangs when displaying such long lines, and allows +reasonably-responsive editing when such lines are present in the +visible portion of a buffer. + +@item +Emacs now supports the latest version 15.0 of the Unicode Standard. + +@item +The new mode @code{pixel-scroll-precision-mode} allows precise and +smooth scrolling of the display at pixel resolution, if your mouse +supports this. + +@item +Emacs now supports 24-bit true colors on more terminals. + +@item +On capable X terminal emulators, Emacs now supports setting the X +primary selection on TTY frames. + +@item +New convenient commands are now available for inserting, searching, +listing, and describing Emoji. These commands are on the @w{@kbd{C-x +8 e}} prefix key. The commands @kbd{C-u C-x =} +(@code{what-cursor-position}) and @kbd{M-x describe-char} now show the +names of Emoji sequences at point. + +@item +The Help commands were enhanced: + +@itemize @minus +@item +@kbd{M-x apropos-variable} shows the values of the matching variables. +@item +@kbd{C-h b} activates @code{outline-minor-mode} in the buffer, which +makes it easier to browse long lists of key bindings. +@item +@kbd{I} in the @file{*Help*} buffer displays the corresponding +documentation in the Emacs Lisp Reference manual. +@item +New command @code{help-quick} displays a buffer with overview of +common Help commands. +@end itemize + +@item +Outline Minor mode uses buttons to hide and show outlines. + +@item +Deleted frames can now be undeleted using @kbd{C-x 5 u}, if the +optional @code{undelete-frame-mode} is enabled. + +@item +You can now delete the entire composed sequence of characters with +@key{Delete} and edits the composed sequence by turning on the +@code{composition-break-at-point} option. + +@item +Support is added for many old scripts and writing systems, such as Tai +Tham, Brahmi, Tirhuta, Modi, Lepcha, and many others. + +@item +New translations of the Emacs tutorial: Ukrainian and Greek. + +@item +New major modes for Typescript, Csharp, CMake, Go, Rust, and Yaml. +@end itemize + + @node New in Emacs 28 @section What is different about Emacs 28? @cindex Differences between Emacs 27 and Emacs 28 @@ -1607,35 +1726,38 @@ is better to write ``Emacs and XEmacs.'' @end menu @node Setting up a customization file -@section How do I set up a @file{.emacs} file properly? +@section How do I set up an init file properly? @cindex @file{.emacs} file, setting up -@cindex @file{.emacs} file, locating +@cindex @file{.emacs.d/init.el} file, setting up @cindex Init file, setting up +@cindex Init file, locating @cindex Customization file, setting up +When Emacs is started, it normally tries to load a Lisp program from +an @dfn{initialization file}, or @dfn{init file} for short. This +file, if it exists, specifies how to initialize Emacs for you. +Traditionally, file @file{~/.emacs} is used as the init file, although +Emacs also looks at @file{~/.emacs.el}, @file{~/.emacs.d/init.el}, +@file{~/.config/emacs/init.el}, or other locations. @xref{Init File,,, emacs, The GNU Emacs Manual}. -In general, new Emacs users should not be provided with @file{.emacs} -files, because this can cause confusing non-standard behavior. Then -they send questions to -@url{https://lists.gnu.org/mailman/listinfo/help-gnu-emacs, -the help-gnu-emacs mailing list} asking why Emacs -isn't behaving as documented. - Emacs includes the Customize facility (@pxref{Using Customize}). This allows users who are unfamiliar with Emacs Lisp to modify their -@file{.emacs} files in a relatively straightforward way, using menus +init files in a relatively straightforward way, using menus rather than Lisp code. While Customize might indeed make it easier to configure Emacs, consider taking a bit of time to learn Emacs Lisp and modifying your -@file{.emacs} directly. Simple configuration options are described +init file directly. Simple configuration options are described rather completely in @ref{Init File,,, emacs, The GNU Emacs Manual}, for users interested in performing frequently requested, basic tasks. -Sometimes users are unsure as to where their @file{.emacs} file should -be found. Visiting the file as @file{~/.emacs} from Emacs will find -the correct file. +In general, new Emacs users should not be provided with init +files, because this can cause confusing non-standard behavior. Then +they send questions to +@url{https://lists.gnu.org/mailman/listinfo/help-gnu-emacs, +the help-gnu-emacs mailing list} asking why Emacs +isn't behaving as documented. @node Using Customize @section How do I start using Customize? @@ -1743,21 +1865,22 @@ always use custom terminal definition with @samp{setb24} and @samp{setf24}. @node Debugging a customization file -@section How do I debug a @file{.emacs} file? -@cindex Debugging @file{.emacs} file -@cindex @file{.emacs} debugging +@section How do I debug an init file? +@cindex Debugging @file{.emacs.d/init.el} file +@cindex Debugging init file +@cindex @file{.emacs.d/init.el} debugging @cindex Init file debugging @cindex @samp{-debug-init} option Start Emacs with the @samp{-debug-init} command-line option. This -enables the Emacs Lisp debugger before evaluating your @file{.emacs} +enables the Emacs Lisp debugger before evaluating your init file, and places you in the debugger if something goes wrong. The top line in the @file{trace-back} buffer will be the error message, and the second or third line of that buffer will display the Lisp code from your -@file{.emacs} file that caused the problem. +init file that caused the problem. You can also evaluate an individual function or argument to a function -in your @file{.emacs} file by moving the cursor to the end of the +in your init file by moving the cursor to the end of the function or argument and typing @kbd{C-x C-e} (@kbd{M-x eval-last-sexp}). @@ -1787,7 +1910,8 @@ You can similarly display the current column with @end lisp @noindent -in your @file{.emacs} file. This feature is off by default. +in your init file (@pxref{Setting up a customization file}). This +feature is off by default. The @code{"%c"} format specifier in the variable @code{mode-line-format} will insert the current column's value into the mode line. See the @@ -1806,10 +1930,6 @@ optional display. Alternatively, you can use the customize @code{display-line-numbers-type} with the same value as you would use with @code{display-line-numbers}. -There is also the @samp{linum} package (distributed with Emacs since -version 23.1) which will henceforth become obsolete. Users and -developers are encouraged to use @samp{display-line-numbers} instead. - @node Displaying the current file name in the titlebar @section How can I modify the titlebar to contain the current file name? @cindex Titlebar, displaying the current file name in @@ -1834,7 +1954,7 @@ machine at which Emacs was invoked. This is done by setting To modify the behavior such that frame titlebars contain the buffer's name regardless of the number of existing frames, include the following -in your @file{.emacs}: +in your init file (@pxref{Setting up a customization file}): @lisp (setq frame-title-format "%b") @@ -1844,9 +1964,10 @@ in your @file{.emacs}: @section How do I turn on abbrevs by default just in mode @var{mymode}? @cindex Abbrevs, turning on by default -Abbrev mode expands abbreviations as you type them. To turn it on in a -specific buffer, use @kbd{M-x abbrev-mode}. To turn it on in every -buffer by default, put this in your @file{.emacs} file: +Abbrev mode expands abbreviations as you type them. To turn it on in +a specific buffer, use @kbd{M-x abbrev-mode}. To turn it on in every +buffer by default, put this in your init file (@pxref{Setting up a +customization file}): @lisp (setq-default abbrev-mode t) @@ -1896,7 +2017,8 @@ the script. Use @kbd{C-h v} (or @kbd{M-x describe-variable}) on @cindex Highlighting and replacing text Use @code{delete-selection-mode}, which you can start automatically by -placing the following Lisp form in your @file{.emacs} file: +placing the following Lisp form in your init file (@pxref{Setting up a +customization file}): @lisp (delete-selection-mode 1) @@ -2034,9 +2156,10 @@ The default maximum line width is 70, determined by the variable To turn on @code{auto-fill-mode} just once for one buffer, use @kbd{M-x auto-fill-mode}. -To turn it on for every buffer in a certain mode, you must use the hook -for that mode. For example, to turn on @code{auto-fill} mode for all -text buffers, including the following in your @file{.emacs} file: +To turn it on for every buffer in a certain mode, you must use the +hook for that mode. For example, to turn on @code{auto-fill} mode for +all text buffers, including the following in your init file +(@pxref{Setting up a customization file}): @lisp (add-hook 'text-mode-hook 'turn-on-auto-fill) @@ -2091,7 +2214,8 @@ option: emacs -f server-start @end example -or by invoking @code{server-start} from @file{.emacs}: +or by invoking @code{server-start} from init file (@pxref{Setting up a +customization file}): @lisp (if (@var{some conditions are met}) (server-start)) @@ -2162,7 +2286,8 @@ f() @} @end example -@noindent To achieve this, add the following line to your @file{.emacs}: +@noindent To achieve this, add the following line to your init file +(@pxref{Setting up a customization file}): @lisp (c-set-offset 'case-label '+) @@ -2213,7 +2338,8 @@ the line or the block according to what you just specified. @item If you don't like the result, go back to step 1. Otherwise, add the -following line to your @file{.emacs}: +following line to your init file (@pxref{Setting up a customization +file}): @lisp (c-set-offset '@var{syntactic-symbol} @var{offset}) @@ -2243,8 +2369,8 @@ customizations inside a C mode hook, like this: @noindent Using @code{c-mode-hook} avoids the need to put a @w{@code{(require -'cc-mode)}} into your @file{.emacs} file, because @code{c-set-offset} -might be unavailable when @code{cc-mode} is not loaded. +'cc-mode)}} into your init file, because @code{c-set-offset} might be +unavailable when @code{cc-mode} is not loaded. Note that @code{c-mode-hook} runs for C source files only; use @code{c++-mode-hook} for C@t{++} sources, @code{java-mode-hook} for @@ -2316,8 +2442,8 @@ usage: xset [-display host:dpy] option ... @cindex Previous line, indenting according to @cindex Text indentation -Such behavior is automatic (in Text mode) in Emacs 20 and later. From the -@file{etc/NEWS} file for Emacs 20.2: +Such behavior is automatic (in Text mode). From the @file{etc/NEWS} +file for Emacs 20.2: @example ** In Text mode, now only blank lines separate paragraphs. This makes @@ -2355,15 +2481,7 @@ new paragraph. There are many packages available to deal with this @cindex Pairs of parentheses, highlighting @cindex Matching parentheses -Call @code{show-paren-mode} in your @file{.emacs} file: - -@lisp -(show-paren-mode 1) -@end lisp - -You can also enable this mode by selecting the @samp{Paren Match -Highlighting} option from the @samp{Options} menu of the Emacs menu bar -at the top of any Emacs frame. +By default, @code{show-paren-mode} is enabled in all editing buffers. Alternatives to this mode include: @@ -2460,8 +2578,9 @@ Emacs Lisp @dfn{form}: @item If you want it evaluated every time you run Emacs, put it in a file -named @file{.emacs} in your home directory. This is known as ``your -@file{.emacs} file,'' and contains all of your personal customizations. +named @file{.emacs.d/init.el} in your home directory. This is known +as ``your init file,'' and contains all of your personal +customizations (@pxref{Setting up a customization file}). @item You can type the form in the @file{*scratch*} buffer, and then type @@ -2499,7 +2618,7 @@ about them. Set the default value of the variable @code{tab-width}. For example, to set @key{TAB} stops every 10 characters, insert the following in your -@file{.emacs} file: +init file (@pxref{Setting up a customization file}): @lisp (setq-default tab-width 10) @@ -2641,8 +2760,9 @@ Quick command-line switch descriptions are also available. For example, You probably don't want to do this, since backups are useful, especially when something goes wrong. -To avoid seeing backup files (and other ``uninteresting'' files) in Dired, -load @code{dired-x} by adding the following to your @file{.emacs} file: +To avoid seeing backup files (and other ``uninteresting'' files) in +Dired, load @code{dired-x} by adding the following to your init file +(@pxref{Setting up a customization file}): @lisp (with-eval-after-load 'dired @@ -2651,7 +2771,7 @@ load @code{dired-x} by adding the following to your @file{.emacs} file: With @code{dired-x} loaded, @kbd{C-x M-o} toggles omitting in each dired buffer. You can make omitting the default for new dired buffers by putting the -following in your @file{.emacs}: +following in your init file: @lisp (add-hook 'dired-mode-hook 'dired-omit-mode) @@ -2668,7 +2788,7 @@ To disable or change the way backups are made, @cindex Backup files in a single directory You can control where Emacs puts backup files by customizing the variable @code{backup-directory-alist}. This variable's value -specifies that files whose names match specific patters should have +specifies that files whose names match specific patterns should have their backups put in certain directories. A typical use is to add the element @code{("." . @var{dir})} to force Emacs to put @strong{all} backup files in the directory @file{dir}. @@ -2712,9 +2832,12 @@ This may be inconvenient in some setups, so Emacs has mechanisms for changing the locations of all these files. @table @code -@item auto-save-file-name-transforms (@pxref{Auto-Saving,,,elisp, GNU Emacs Lisp Reference Manual}). -@item lock-file-name-transforms (@pxref{File Locks,,,elisp, GNU Emacs Lisp Reference Manual}). -@item backup-directory-alist (@pxref{Making Backups,,,elisp, GNU Emacs Lisp Reference Manual}). +@item auto-save-file-name-transforms +(@pxref{Auto-Saving,,,elisp, GNU Emacs Lisp Reference Manual}). +@item lock-file-name-transforms +(@pxref{File Locks,,,elisp, GNU Emacs Lisp Reference Manual}). +@item backup-directory-alist +(@pxref{Making Backups,,,elisp, GNU Emacs Lisp Reference Manual}). @end table For instance, to write all these things to @@ -2891,31 +3014,32 @@ and cause an annoying delay in display, so several features exist to work around this. @cindex Just-In-Time syntax highlighting -In Emacs 21 and later, turning on @code{font-lock-mode} automatically -activates the new @dfn{Just-In-Time fontification} provided by -@code{jit-lock-mode}. @code{jit-lock-mode} defers the fontification of -portions of buffer until you actually need to see them, and can also -fontify while Emacs is idle. This makes display of the visible portion -of a buffer almost instantaneous. For details about customizing -@code{jit-lock-mode}, type @kbd{C-h f jit-lock-mode @key{RET}}. +Turning on @code{font-lock-mode} automatically activates +@dfn{Just-In-Time fontification} provided by @code{jit-lock-mode}. +@code{jit-lock-mode} defers the fontification of portions of buffer +until you actually need to see them, and can also fontify while Emacs +is idle. This makes display of the visible portion of a buffer almost +instantaneous. For details about customizing @code{jit-lock-mode}, +type @kbd{C-h f jit-lock-mode @key{RET}}. @cindex Levels of syntax highlighting @cindex Decoration level, in @code{font-lock-mode} -In versions of Emacs before 21, different levels of decoration are -available, from slight to gaudy. More decoration means you need to wait -more time for a buffer to be fontified (or a faster machine). To -control how decorated your buffers should become, set the value of -@code{font-lock-maximum-decoration} in your @file{.emacs} file, with a -@code{nil} value indicating default (usually minimum) decoration, and a -@code{t} value indicating the maximum decoration. For the gaudiest -possible look, then, include the line +Different levels of decoration are available, from slight to gaudy. +More decoration means you need to wait more time for a buffer to be +fontified (or a faster machine). To control how decorated your +buffers should become, set the value of +@code{font-lock-maximum-decoration} in your init file (@pxref{Setting +up a customization file}), with a @code{nil} value indicating default +(usually minimum) decoration, and a @code{t} value indicating the +maximum decoration. For the gaudiest possible look, then, include the +line @lisp (setq font-lock-maximum-decoration t) @end lisp @noindent -in your @file{.emacs} file. You can also set this variable such that +in your init file. You can also set this variable such that different modes are highlighted in a different ways; for more information, see the documentation for @code{font-lock-maximum-decoration} with @kbd{C-h v} (or @kbd{M-x @@ -2942,7 +3066,8 @@ customize-variable @key{RET} scroll-conservatively @key{RET}} and set it to a large value like, say, 10000. For an explanation of what this means, @pxref{Auto Scrolling,,, emacs, The GNU Emacs Manual}. -Alternatively, use the following Lisp form in your @file{.emacs}: +Alternatively, use the following Lisp form in your init file +(@pxref{Setting up a customization file}): @lisp (setq scroll-conservatively most-positive-fixnum) @@ -2971,7 +3096,8 @@ default, a backslash (@samp{\}) will appear in the mode line. @cindex Single space following periods @cindex Periods, one space following -Add the following line to your @file{.emacs} file: +Add the following line to your init file (@pxref{Setting up a +customization file}): @lisp (setq sentence-end-double-space nil) @@ -2985,11 +3111,7 @@ Add the following line to your @file{.emacs} file: In many systems, @code{ls} is aliased to @samp{ls --color}, which prints using ANSI color escape sequences. Emacs includes the @code{ansi-color} package, which lets Shell mode recognize these -escape sequences. In Emacs 23.2 and later, the package is enabled by -default; in earlier versions you can enable it by typing @kbd{M-x -ansi-color-for-comint-mode} in the Shell buffer, or by adding -@code{(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)} to -your init file. +escape sequences. It is enabled by default. @node Fullscreen mode on MS-Windows @section How can I start Emacs in fullscreen mode on MS-Windows? @@ -2997,15 +3119,15 @@ your init file. @cindex Fullscreen mode Beginning with Emacs 24.4 either run Emacs with the @samp{--maximized} -command-line option or put the following form in your @file{.emacs} -file: +command-line option or put the following form in your init file +(@pxref{Setting up a customization file}): @lisp (add-hook 'emacs-startup-hook 'toggle-frame-maximized) @end lisp With older versions use the function @code{w32-send-sys-command}. For -example, you can put the following in your @file{.emacs} file: +example, you can put the following in your init file: @lisp (add-hook 'emacs-startup-hook @@ -3014,13 +3136,23 @@ example, you can put the following in your @file{.emacs} file: To avoid the slightly distracting visual effect of Emacs starting with its default frame size and then growing to fullscreen, you can add an -@samp{Emacs.Geometry} entry to the Windows registry settings. -@xref{X Resources,,, emacs, The GNU Emacs Manual}. - -To compute the correct values for width and height, first maximize the -Emacs frame and then evaluate @code{(frame-height)} and +@samp{Emacs.Geometry} entry to the Windows Registry settings. @xref{X +Resources,,, emacs, The GNU Emacs Manual}. To compute the correct +values for width and height you use in the Registry settings, first +maximize the Emacs frame and then evaluate @code{(frame-height)} and @code{(frame-width)} with @kbd{M-:}. +Alternatively, you can avoid the visual effect of Emacs changing its +frame size entirely in your init file (i.e., without using the +Registry), like this: + +@lisp +(setq frame-resize-pixelwise t) +(set-frame-position nil 0 0) +(set-frame-size nil (display-pixel-width) (display-pixel-height) t) +@end lisp + + @node Emacs in a Linux console @section How can I alleviate the limitations of the Linux console? @cindex Console, Linux console, TTY, fbterm @@ -3172,10 +3304,9 @@ Emacs has an inherent fixed limitation on the size of buffers. This limit is stricter than the maximum size of objects supported by other programs on the same architecture. -The maximum buffer size on 32-bit machines is 512 MBytes beginning -with version 23.2. If Emacs was built using the -@code{--with-wide-int} flag, the maximum buffer size on 32-bit -machines is 2 GB. +The maximum buffer size on 32-bit machines is 512 MBytes. If Emacs +was built using the @code{--with-wide-int} flag, the maximum buffer +size on 32-bit machines is 2 GB. Emacs compiled on a 64-bit machine can handle much larger buffers; up to @code{most-positive-fixnum} (2.3 exabytes). @@ -3239,8 +3370,8 @@ with the following Lisp form, The above solutions try to prevent the shell from producing the @samp{^M} characters in the first place. If this is not possible (e.g., if you use a Windows shell), you can get Emacs to remove these -characters from the buffer by adding this to your @file{.emacs} init -file: +characters from the buffer by adding this to your init file +(@pxref{Setting up a customization file}): @smalllisp (add-hook 'comint-output-filter-functions #'comint-strip-ctrl-m) @@ -3262,8 +3393,8 @@ stty -icrnl -onlcr -echo susp ^Z @cindex @code{explicit-shell-file-name} This might happen because Emacs tries to look for the shell in a wrong place. If you know where your shell executable is, set the variable -@code{explicit-shell-file-name} in your @file{.emacs} file to point to -its full file name. +@code{explicit-shell-file-name} in your init file (@pxref{Setting up a +customization file}) to point to its full file name. @cindex Antivirus programs, and Shell Mode Some people have trouble with Shell Mode on MS-Windows because of @@ -3305,18 +3436,18 @@ if ("$term" == emacs) set term=dumb @node Errors with init files @section Why does Emacs say @samp{Error in init file}? -@cindex Error in @file{.emacs} +@cindex Error in @file{.emacs.d/init.el} @cindex Error in init file @cindex Init file, errors in -@cindex @file{.emacs} file, errors in -@cindex Debugging @file{.emacs} file +@cindex @file{.emacs.d/init.el} file, errors in +@cindex Debugging init file -An error occurred while loading either your @file{.emacs} file or the +An error occurred while loading either your init file or the system-wide file @file{site-lisp/default.el}. Emacs pops the @file{*Messages*} buffer, and puts there some additional information about the error, to provide some hints for debugging. -For information on how to debug your @file{.emacs} file, see +For information on how to debug your init file, see @ref{Debugging a customization file}. It may be the case that you need to load some package first, or use a @@ -3486,56 +3617,13 @@ bottom of files by setting the variable @code{enable-local-eval}. @xref{File Variables,,, emacs, The GNU Emacs Manual}. @item -Synthetic X events. (Yes, a risk; use @samp{MIT-MAGIC-COOKIE-1} or -better.) - -Emacs accepts synthetic X events generated by the @code{SendEvent} -request as though they were regular events. As a result, if you are -using the trivial host-based authentication, other users who can open X -connections to your X workstation can make your Emacs process do -anything, including run other processes with your privileges. - -The only fix for this is to prevent other users from being able to open -X connections. The standard way to prevent this is to use a real -authentication mechanism, such as @samp{MIT-MAGIC-COOKIE-1}. If using -the @code{xauth} program has any effect, then you are probably using -@samp{MIT-MAGIC-COOKIE-1}. Your site may be using a superior -authentication method; ask your system administrator. +Browsing the web. -If real authentication is not a possibility, you may be satisfied by -just allowing hosts access for brief intervals while you start your X -programs, then removing the access. This reduces the risk somewhat by -narrowing the time window when hostile users would have access, but -@emph{does not eliminate the risk}. - -On most computers running Unix and X, you enable and disable -access using the @code{xhost} command. To allow all hosts access to -your X server, use - -@example -xhost + -@end example - -@noindent -at the shell prompt, which (on an HP machine, at least) produces the -following message: - -@example -access control disabled, clients can connect from any host -@end example - -To deny all hosts access to your X server (except those explicitly -allowed by name), use - -@example -xhost - -@end example - -On the test HP computer, this command generated the following message: - -@example -access control enabled, only authorized clients can connect -@end example +Emacs relies on C libraries to parse images, and historically, many of +these have had exploitable weaknesses. If you're browsing the web +with the eww browser, it will usually download and display images +using these libraries. If an image library has a weakness, it may be +used by an attacker to gain access. @end itemize @@ -3645,8 +3733,8 @@ and any Emacs Info files that might be in @file{/usr/local/share/info/}. @cindex Apple computers, Emacs for @cindex Macintosh, Emacs for @cindex macOS, Emacs for -Beginning with version 22.1, Emacs supports macOS natively. -See the file @file{nextstep/INSTALL} in the distribution. +Emacs supports macOS natively. See the file @file{nextstep/INSTALL} +in the distribution. @cindex FAQ for Emacs on MS-Windows @cindex Emacs for MS-Windows @@ -3655,8 +3743,8 @@ There is a separate FAQ for Emacs on MS-Windows, @pxref{Top,,,efaq-w32,FAQ for Emacs on MS Windows}. @cindex GNUstep, Emacs for -Beginning with version 23.1, Emacs supports GNUstep natively. -See the file @file{nextstep/INSTALL} in the distribution. +Emacs supports GNUstep natively. See the file @file{nextstep/INSTALL} +in the distribution. @cindex MS-DOS, Emacs for @cindex DOS, Emacs for @@ -3667,13 +3755,13 @@ To build Emacs from source for MS-DOS, see the instructions in the file on plain DOS, and also on all versions of MS-Windows from version 3.X onwards, including Windows XP and Vista. Pre-built binaries may be available at -@uref{http://www.delorie.com/pub/djgpp/current/v2gnu/emacs.README} +@uref{https://www.delorie.com/pub/djgpp/current/v2gnu/emacs.README} For a list of other implementations of Emacs (and Emacs look-alikes), consult the list of ``Emacs implementations and literature,'' available at -@uref{http://www.finseth.com/emacs.html} +@uref{https://www.finseth.com/emacs.html} Note that while many of these programs look similar to Emacs, they often lack certain features, such as the Emacs Lisp extension language. @@ -3754,13 +3842,28 @@ description of what they do and how they should be used. The easiest way to add more features to your Emacs is to use the command @kbd{M-x list-packages}. This contacts the -@uref{https://elpa.gnu.org, GNU ELPA} (``Emacs Lisp Package Archive'') -server and fetches the list of additional packages that it offers. -These are GNU packages that are available for use with Emacs, but are -distributed separately from Emacs itself, for reasons of space, etc. -You can browse the resulting @file{*Packages*} buffer to see what is -available, and then Emacs can automatically download and install the -packages that you select. @xref{Packages,,, emacs, The GNU Emacs Manual}. +@uref{https://elpa.gnu.org, GNU ELPA} and +@uref{https://elpa.nongnu.org, NonGNU ELPA} (``Emacs Lisp Package +Archive'') servers and fetches the list of additional packages that +they offer. You can browse the resulting @file{*Packages*} buffer to +see what is available, and then Emacs can automatically download and +install the packages that you select. @xref{Packages,,, emacs, The +GNU Emacs Manual}. + +GNU ELPA contains GNU packages that are available for use with Emacs, +but are distributed separately from Emacs itself, for reasons of +space, etc. NonGNU ELPA contains a selection of third-party packages +that can not be included in GNU ELPA because their copyright has not +yet been assigned to the Free Software Foundation.@footnote{For more +information, see @uref{https://www.gnu.org/licenses/why-assign.html, +Why the FSF Gets Copyright Assignments from Contributors}.} + +The @uref{https://lists.gnu.org/mailman/listinfo/gnu-emacs-sources, +GNU Emacs sources mailing list} is automatically sent an email when a +new version of a GNU ELPA or NonGNU ELPA package is +released.@footnote{It used to be an official place where people could +post or announce their extensions to Emacs. That is still allowed, +but exceedingly rare these days.} There are other Emacs Lisp package archives. To use additional archives, you can customize the @code{package-archives} variable. @@ -3770,23 +3873,19 @@ correctness and safety of the code, or they may give only cursory attention. Also, packages hosted on these other archives may encourage or require -you to install and use other nonfree programs. Unless you can verify +you to install and use nonfree programs. Unless you can verify that a package is free software, and that it functions without installing any nonfree software, we recommend for your freedom's sake that you stay away from it. -The @uref{https://lists.gnu.org/mailman/listinfo/gnu-emacs-sources, -GNU Emacs sources mailing list} is an official place where people can -post or announce their extensions to Emacs. - The @uref{https://emacswiki.org, Emacs Wiki} contains pointers to some additional extensions. @uref{https://wikemacs.org, WikEmacs} is an alternative wiki for Emacs. It is impossible for us to list here all the sites that offer Emacs Lisp packages. If you are interested in a specific feature, then -after checking Emacs itself and GNU ELPA, a web search is often the -best way to find results. +after checking Emacs itself, GNU ELPA, and NonGNU ELPA, a web search +is often the best way to find results. @node Spell-checkers @section Spell-checkers @@ -3802,7 +3901,7 @@ Various spell-checkers are compatible with Emacs, including: @table @b @item Hunspell -@uref{http://hunspell.sourceforge.net/} +@uref{https://hunspell.github.io/} @item GNU Aspell @uref{http://aspell.net/} @@ -3864,7 +3963,6 @@ information is available from * Compose Character:: * Binding combinations of modifiers and function keys:: * Meta key does not work in xterm:: -* SPC no longer completes file names:: @end menu @node Binding keys to commands @@ -3873,9 +3971,10 @@ information is available from @cindex Keys, binding to commands @cindex Commands, binding keys to -Keys can be bound to commands either interactively or in your -@file{.emacs} file. To interactively bind keys for all modes, type -@kbd{M-x global-set-key @key{RET} @var{key} @var{cmd} @key{RET}}. +Keys can be bound to commands either interactively or in your init +file (@pxref{Setting up a customization file}). To interactively bind +keys for all modes, type @kbd{M-x global-set-key @key{RET} @var{key} +@var{cmd} @key{RET}}. To bind a key just in the current major mode, type @kbd{M-x local-set-key @key{RET} @var{key} @var{cmd} @key{RET}}. @@ -3886,7 +3985,7 @@ To make the process of binding keys interactively easier, use the following ``trick'': First bind the key interactively, then immediately type @kbd{C-x @key{ESC} @key{ESC} C-a C-k C-g}. Now, the command needed to bind the key is in the kill ring, and can be yanked into your -@file{.emacs} file. If the key binding is global, no changes to the +init file. If the key binding is global, no changes to the command are required. For example, @lisp @@ -3894,9 +3993,9 @@ command are required. For example, @end lisp @noindent -can be placed directly into the @file{.emacs} file. If the key binding is -local, the command is used in conjunction with the @samp{add-hook} function. -For example, in TeX mode, a local binding might be +can be placed directly into your init file. If the key binding is +local, the command is used in conjunction with the @samp{add-hook} +function. For example, in TeX mode, a local binding might be @lisp (add-hook 'tex-mode-hook @@ -3954,14 +4053,15 @@ of these forms before attempting to bind the key sequence: @end lisp @node Terminal setup code works after Emacs has begun -@section Why doesn't this [terminal or window-system setup] code work in my @file{.emacs} file, but it works just fine after Emacs starts up? -@cindex Terminal setup code in @file{.emacs} +@section Why doesn't this [terminal or window-system setup] code work in my init file, but it works just fine after Emacs starts up? +@cindex Terminal setup code in init file -During startup, Emacs initializes itself according to a given code/file -order. If some of the code executed in your @file{.emacs} file needs to -be postponed until the initial terminal or window-system setup code has -been executed but is not, then you will experience this problem (this -code/file execution order is not enforced after startup). +During startup, Emacs initializes itself according to a given +code/file order. If some of the code executed in your init file +(@pxref{Setting up a customization file}) needs to be postponed until +the initial terminal or window-system setup code has been executed but +is not, then you will experience this problem (this code/file +execution order is not enforced after startup). To postpone the execution of Emacs Lisp code until after terminal or window-system setup, treat the code as a @dfn{lambda list} and add it to @@ -4309,10 +4409,6 @@ If there is an @code{rlogin} connection between @code{xterm} and Emacs, the @samp{-8} argument may need to be given to rlogin to make it pass all 8 bits of every character. -@item -If Emacs is running on Ultrix, it is reported that evaluating -@code{(set-input-mode t nil)} helps. - @item If all else fails, you can make @code{xterm} generate @kbd{@key{ESC} W} when you type @kbd{M-W}, which is the same conversion Emacs would make if it @@ -4338,22 +4434,6 @@ You might have to replace @samp{Meta} with @samp{Alt}. @end itemize -@node SPC no longer completes file names -@section Why doesn't @key{SPC} complete file names anymore? -@cindex @kbd{SPC} file name completion - -Starting with Emacs 22.1, @kbd{SPC} no longer completes file names in -the minibuffer, so that file names with embedded spaces could be typed -without the need to quote the spaces. - -You can get the old behavior by binding @kbd{SPC} to -@code{minibuffer-complete-word} in the minibuffer, as follows: - -@lisp -(define-key minibuffer-local-filename-completion-map (kbd "SPC") - 'minibuffer-complete-word) -@end lisp - @c ------------------------------------------------------------ @node Alternate character sets @chapter Alternate character sets @@ -4402,8 +4482,7 @@ Emacs Manual}. For more sophisticated methods, @cindex bidirectional scripts Emacs supports display and editing of bidirectional scripts, such as -Arabic, Farsi, and Hebrew, since version 24.1. -@xref{New in Emacs 24, bidirectional display}. +Arabic, Farsi, and Hebrew. @node How to add fonts @@ -4431,7 +4510,8 @@ arrange for these two commands to run whenever you log in, e.g., by adding them to your window-system startup file, such as @file{~/.xsessionrc} or @file{~/.gnomerc}. -Now, add the following line to your @file{~/.emacs} init file: +Now, add the following line to your init file (@pxref{Setting up a +customization file}): @lisp (add-to-list 'bdf-directory-list "/usr/share/emacs/fonts/bdf") @@ -4441,15 +4521,15 @@ Now, add the following line to your @file{~/.emacs} init file: (Again, modify the file name if you installed the fonts elsewhere.) Finally, if you wish to use the installed fonts with @code{ps-print}, -add the following line to your @file{~/.emacs}: +add the following line to your init file: @lisp (setq ps-multibyte-buffer 'bdf-font-except-latin) @end lisp -You can now use the Emacs font menu to select the @samp{bdf: 16-dot medium} -fontset, or you can select it by setting the default font in your -@file{~/.emacs}: +You can now use the Emacs font menu to select the @samp{bdf: 16-dot +medium} fontset, or you can select it by setting the default font in +your init file: @lisp (set-frame-font "fontset-bdf") @@ -4511,9 +4591,9 @@ yourself by putting @end lisp @noindent -in your @file{.emacs} file. You can automatically include an @samp{FCC} -field by putting something like the following in your @file{.emacs} -file: +in your init file (@pxref{Setting up a customization file}). You can +automatically include an @samp{FCC} field by putting something like +the following in your init file: @lisp (setq mail-archive-file-name (expand-file-name "~/outgoing")) @@ -4545,8 +4625,7 @@ To expand them before this, use @kbd{M-x expand-mail-aliases}. Emacs normally only reads the @file{.mailrc} file once per session, when you start to compose your first mail message. If you edit the file after this, you can use @kbd{M-x build-mail-aliases} to make Emacs -reread it. Prior to Emacs 24.1, this is not an interactive command, so -you must instead type @kbd{M-: (build-mail-aliases) @key{RET}}. +reread it. @item If you like, you can expand mail aliases as abbrevs, as soon as you @@ -4644,7 +4723,7 @@ gnus @end example It is probably unwise to automatically start your mail or news reader -from your @file{.emacs} file. This would cause problems if you needed to run +from your init file. This would cause problems if you needed to run two copies of Emacs at the same time. Also, this would make it difficult for you to start Emacs quickly when you needed to. diff --git a/doc/misc/eglot.texi b/doc/misc/eglot.texi new file mode 100644 index 000000000000..94cb00064bba --- /dev/null +++ b/doc/misc/eglot.texi @@ -0,0 +1,1425 @@ +\input texinfo @c -*-texinfo-*- +@c %**start of header +@setfilename ../../eglot.info +@settitle Eglot: The Emacs Client for the Language Server Protocol +@include docstyle.texi +@syncodeindex vr cp +@syncodeindex fn cp +@c %**end of header + +@copying +This manual is for Eglot, the Emacs LSP client. + +Copyright @copyright{} 2022--2024 Free Software Foundation, Inc. + +@quotation +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.3 or +any later version published by the Free Software Foundation; with no +Invariant Sections, with the Front-Cover Texts being ``A GNU Manual'', +and with the Back-Cover Texts as in (a) below. A copy of the license +is included in the section entitled ``GNU Free Documentation License''. + +(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and +modify this GNU manual.'' +@end quotation +@end copying + +@dircategory Emacs misc features +@direntry +* Eglot: (eglot). Language Server Protocol client for Emacs. +@end direntry + +@titlepage +@sp 4 +@c The title is printed in a large font. +@center @titlefont{User's Guide} +@sp 1 +@center @titlefont{to} +@sp 1 +@center @titlefont{Eglot: The Emacs LSP Client} +@ignore +@sp 2 +@center release 1.8 +@c -release- +@end ignore +@sp 3 +@center Jo@~ao T@'avora & Eli Zaretskii +@c -date- + +@page +@vskip 0pt plus 1filll +@insertcopying +@end titlepage + +@contents + +@ifnottex +@node Top +@top Eglot + +@cindex LSP +@cindex language server protocol +Eglot is the Emacs client for the @dfn{Language Server Protocol} +(@acronym{LSP}). The name ``Eglot'' is an acronym that stands for +@ifhtml +``@emph{E}macs Poly@emph{glot}''. +@end ifhtml +@ifnothtml +``Emacs polyGLOT''. +@end ifnothtml +@footnote{ +A @dfn{polyglot} is a +person who is able to use several languages. +} Eglot provides infrastructure and a set of commands for enriching +the source code editing capabilities of Emacs via LSP@. LSP is a +standardized communications protocol between source code editors (such +as Emacs) and language servers---programs external to Emacs which +analyze the source code on behalf of Emacs. The protocol allows Emacs +to receive various source code services from the server, such as +description and location of function calls, types of variables, class +definitions, syntactic errors, etc. This way, Emacs doesn't need to +implement the language-specific parsing and analysis capabilities in +its own code, but is still capable of providing sophisticated editing +features that rely on such capabilities, such as automatic code +completion, go-to definition of function/class, documentation of +symbol at-point, refactoring, on-the-fly diagnostics, and more. + +Eglot itself is completely language-agnostic, but it can support any +programming language for which there is a language server and an Emacs +major mode. + +This manual documents how to configure, use, and customize Eglot. + +@insertcopying + +@menu +* Quick Start:: For the impatient. +* Eglot and LSP Servers:: How to work with language servers. +* Using Eglot:: Important Eglot commands and variables. +* Customizing Eglot:: Eglot customization and advanced features. +* Advanced server configuration:: Fine-tune a specific language server +* Troubleshooting Eglot:: Troubleshooting and reporting bugs. +* GNU Free Documentation License:: The license for this manual. +* Index:: +@end menu +@end ifnottex + +@node Quick Start +@chapter Quick Start +@cindex quick start + +This chapter provides concise instructions for setting up and using +Eglot with your programming project in common usage scenarios. For +more detailed instructions regarding Eglot setup, @pxref{Eglot and LSP +Servers}. @xref{Using Eglot}, for detailed description of using Eglot, +and see @ref{Customizing Eglot}, for adapting Eglot to less common use +patterns. + +Here's how to start using Eglot with your programming project: + +@enumerate +@item +Select and install a language server. + +Eglot comes pre-configured with many popular language servers, see the +value of @code{eglot-server-programs}. If the server(s) mentioned +there satisfy your needs for the programming language(s) with which +you want to use Eglot, you just need to make sure those servers are +installed on your system. Alternatively, install one or more servers +of your choice and add them to the value of +@code{eglot-server-programs}, as described in @ref{Setting Up LSP +Servers}. + +@item +Turn on Eglot for your project. + +To start using Eglot for a project, type @kbd{M-x eglot @key{RET}} in +a buffer visiting any file that belongs to the project. This starts +the language server configured for the programming language of that +buffer, and causes Eglot to start managing all the files of the +project which use the same programming language. The notion of a +``project'' used by Eglot is the same Emacs uses (@pxref{Projects,,, +emacs, GNU Emacs Manual}): in the simplest case, the ``project'' is +the single file you are editing, but it can also be all the files in a +single directory or a directory tree under some version control +system, such as Git. + +Alternatively, you can start Eglot automatically from the major-mode +hook of the mode used for the programming language; see @ref{Starting +Eglot}. + +@item +Use Eglot. + +Most Eglot facilities are integrated into Emacs features, such as +ElDoc, Flymake, Xref, and Imenu. However, Eglot also provides +commands of its own, mainly to perform tasks by the language server, +such as @kbd{M-x eglot-rename} (to rename an identifier across the +entire project), @kbd{M-x eglot-format} (to reformat and reindent +code), and some others. @xref{Eglot Commands}, for the detailed list +of Eglot commands. + +@item +That's it! +@end enumerate + +@node Eglot and LSP Servers +@chapter Eglot and LSP Servers + +This chapter describes how to set up Eglot for your needs, and how to +start it. + +@menu +* Setting Up LSP Servers:: How to configure LSP servers for your needs. +* Starting Eglot:: Ways of starting Eglot for your project. +* Shutting Down LSP Servers:: +@end menu + +@node Setting Up LSP Servers +@section Setting Up LSP Servers +@cindex setting up LSP server for Eglot +@cindex LSP server for Eglot, setting up +@cindex language server for Eglot + +For Eglot to be useful, it must first be combined with a suitable +language server. Usually, that means running the server program +locally as a child process of Emacs (@pxref{Processes,,, elisp, GNU +Emacs Lisp Reference Manual}) and communicating with it via the +standard input and output streams. + +The language server program must be installed separately, and is not +further discussed in this manual; refer to the documentation of the +particular server(s) you want to install. + +To use a language server, Eglot must know how to start it and which +programming languages each server supports. This information is +provided by the variable @code{eglot-server-programs}. + +@defvar eglot-server-programs +This variable associates major modes with names and command-line +arguments of the language server programs corresponding to the +programming language of each major mode. It provides all the +information that Eglot needs to know about the programming language of +the source you are editing. + +The value of the variable is an alist, whose elements are of the form +@w{@code{(@var{major-mode} . @var{server})}}. + +The @var{major-mode} of the alist elements can be either a symbol of +an Emacs major mode or a list of the form @w{@code{(@var{mode} +:language-id @var{id})}}, with @var{mode} being a major-mode symbol +and @var{id} a string that identifies the language to the server (if +Eglot cannot by itself convert the major-mode to the language +identifier string required by the server). In addition, +@var{major-mode} can be a list of several major modes specified in one +of the above forms -- this means a running instance of the associated +server is responsible for files of multiple major modes or languages +in the project. + +The @var{server} part of the alist elements can be one of the +following: + +@table @code +@item (@var{program} @var{args}@dots{}) +This says to invoke @var{program} with zero or more arguments +@var{args}; the program is expected to communicate with Emacs via the +standard input and standard output streams. + +@item (@var{program} @var{args}@dots{} :initializationOptions @var{options}@dots{}) +@var{program} is invoked with @var{args} but @var{options} specifies +how to construct the @samp{:initializationOptions} JSON object to pass +the server on during the LSP handshake (@pxref{Advanced server +configuration}). + +@item (@var{host} @var{port} @var{args}@dots{}) +Here @var{host} is a string and @var{port} is a positive integer +specifying a TCP connection to a remote server. The @var{args} are +passed to @code{open-network-stream}, e.g.@: if the connection needs +to use encryption or other non-default parameters (@pxref{Network,,, +elisp, GNU Emacs Lisp Reference Manual}). + +@item (@var{program} @var{args}@dots{} :autoport @var{moreargs}@dots{}) +@var{program} is started with a command line constructed from +@var{args} followed by an available server port and the rest of +arguments in @var{moreargs}; Eglot then establishes a TCP connection +with the server via that port on the local host. + +@item @var{function} +This should be a function of a single argument: non-@code{nil} if the +connection was requested interactively (e.g., by the @code{eglot} +command), otherwise @code{nil}. The function should return a value of +any of the forms described above. This allows interaction with the +user for determining the program to start and its command-line +arguments. +@end table + +@end defvar + +Eglot comes with a fairly complete set of associations of major-modes +to popular language servers predefined. If you need to add server +associations to the default list, use @code{add-to-list}. For +example, if there is a hypothetical language server program +@command{fools} for the language @code{Foo} which is supported by an +Emacs major-mode @code{foo-mode}, you can add it to the alist like +this: + +@lisp +(with-eval-after-load 'eglot + (add-to-list 'eglot-server-programs + '(foo-mode . ("fools" "--stdio")))) +@end lisp + +This will invoke the program @command{fools} with the command-line +argument @option{--stdio} in support of editing source files for which +Emacs turns on @code{foo-mode}, and will communicate with the program +via the standard streams. As usual with invoking programs, the +executable file @file{fools} should be in one of the directories +mentioned by the @code{exec-path} variable (@pxref{Subprocess +Creation,,, elisp, GNU Emacs Lisp Reference Manual}), for Eglot to be +able to find it. + +Sometimes, multiple servers are acceptable alternatives for handling a +given major-mode. In those cases, you may combine the helper function +@code{eglot-alternatives} with the functional form of +@code{eglot-server-programs}. + +@lisp +(with-eval-after-load 'eglot + (add-to-list 'eglot-server-programs + `(foo-mode . ,(eglot-alternatives + '(("fools" "--stdio") + ("phewls" "--fast")))))) +@end lisp + +If you have @command{fools} and @command{phewls} installed, the +function produced by @code{eglot-alternatives} will prompt for the +server to use in @code{foo-mode} buffers. Else it will use whichever +is available. + +@node Starting Eglot +@section Starting Eglot +@cindex starting Eglot +@cindex activating Eglot for a project + +@findex eglot +The most common way to start Eglot is to simply visit a source file of +a given language and use the command @kbd{M-x eglot}. This starts the +language server suitable for the visited file's major-mode, and +attempts to connect to it. If the connection to the language server +is successful, you will see the @code{[eglot:@var{project}]} indicator +on the mode line which reflects the server that was started. If the +server program couldn't be started or connection to it failed, you +will see an error message; in that case, try to troubleshoot the +problem as described in @ref{Troubleshooting Eglot}. Once a language +server was successfully started and Eglot connected to it, you can +immediately start using the Emacs features supported by Eglot, as +described in @ref{Eglot Features}. + +A single Eglot session for a certain major-mode usually serves all the +buffers under that mode which visit files from the same project, so +you don't need to invoke @kbd{M-x eglot} again when you visit another +file from the same project which is edited using the same major-mode. +This is because Eglot uses the Emacs project infrastructure, as +described in @ref{Eglot and Buffers}, and this knows about files that +belong to the same project. Thus, after starting an Eglot session for +some buffer, that session is automatically reused when visiting files +in the same project with the same major-mode. + +@findex eglot-ensure +Alternatively, you could configure Eglot to start automatically for +one or more major-modes from the respective mode hooks. Here's an +example for a hypothetical @code{foo-mode}: + +@lisp + (add-hook 'foo-mode-hook 'eglot-ensure) +@end lisp + +@noindent +The function @code{eglot-ensure} will start an Eglot session for each +buffer in which @code{foo-mode} is turned on, if there isn't already +an Eglot session that handles the buffer. Note that this variant of +starting an Eglot session is non-interactive, so it should be used +only when you are confident that Eglot can be started reliably for any +file which may be visited with the major-mode in question. + +When Eglot connects to a language server for the first time in an +Emacs session, it runs the hook @code{eglot-connect-hook} +(@pxref{Eglot Variables}). + +@node Shutting Down LSP Servers +@section Shutting Down LSP Servers +@cindex shutting down LSP server + +When Eglot is turned on, it arranges for turning itself off +automatically if the language server process terminates. Turning off +Eglot means that it shuts down the server connection, ceases its +management of all the buffers that use the server connection which was +terminated, deactivates its minor mode, and restores the original +values of the Emacs variables that Eglot changed when it was turned +on. @xref{Eglot and Buffers}, for more details of what Eglot +management of a buffer entails. + +@findex eglot-shutdown +You can also shut down a language server manually, by using the +command @kbd{M-x eglot-shutdown}. This prompts for the server (unless +there's only one connection and it's used in the current buffer), and +then shuts it down. By default, it also kills the server's events +buffer (@pxref{Troubleshooting Eglot}), but a prefix argument prevents +that. + +Alternatively, you can customize the variable +@code{eglot-autoshutdown} to a non-@code{nil} value, in which case +Eglot will automatically shut down the language server process when +the last buffer served by that language server is killed. The default +of this variable is @code{nil}, so that visiting another file would +automatically activate Eglot even when the project which started Eglot +with the server no longer has any buffer associated with it. This +default allows you to start a server only once in each Emacs session. + +@node Using Eglot +@chapter Using Eglot + +This chapter describes in detail the features that Eglot provides and +how it does that. It also provides reference sections for Eglot +commands and variables. + +@menu +* Eglot Features:: +* Eglot and Buffers:: +* Eglot Commands:: +* Eglot Variables:: +@end menu + +@node Eglot Features +@section Eglot Features +@cindex features in buffers supported by Eglot + +Once Eglot is enabled in a buffer, it uses LSP and the language-server +capabilities to activate, enable, and enhance modern IDE features in +Emacs. The features themselves are usually provided via other Emacs +packages. Here's the list of the main features that Eglot enables and +provides: + +@itemize @bullet +@item +At-point documentation: when point is at or near a symbol or an +identifier, the information about the symbol/identifier, such as the +signature of a function or class method and server-generated +diagnostics, is made available via the ElDoc package +(@pxref{Programming Language Doc,,, emacs, GNU Emacs Manual}). This +allows major modes to provide extensive help and documentation about +the program identifiers. + +@item +On-the-fly diagnostic annotations with server-suggested fixes, via the +Flymake package (@pxref{Top,,, flymake, GNU Flymake manual}). This +improves and enhances the Flymake diagnostics, replacing the other +Flymake backends. + +@item +Finding definitions and uses of identifiers, via Xref (@pxref{Xref,,, +emacs, GNU Emacs Manual}). Eglot provides a backend for the Xref +capabilities which uses the language-server understanding of the +program source. In particular, it eliminates the need to generate +tags tables (@pxref{Tags tables,,, emacs, GNU Emacs Manual}) for +languages which are only supported by the @code{etags} backend. + +@item +Buffer navigation by name of function, class, method, etc., via Imenu +(@pxref{Imenu,,, emacs, GNU Emacs Manual}). Eglot provides its own +variant of @code{imenu-create-index-function}, which generates the +index for the buffer based on language-server program source analysis. + +@item +Enhanced completion of symbol at point by the +@code{completion-at-point} command (@pxref{Symbol Completion,,, emacs, +GNU Emacs Manual}). This uses the language-server's parser data for +the completion candidates. + +@item +Automatic reformatting of source code as you type it. This is similar +to what the @code{eglot-format} command does (see below), but is +activated automatically as you type. + +@item +If a completion package such as @code{company-mode}, a popular +third-party completion package (or any other completion package), is +installed, Eglot enhances it by providing completion candidates based +on the language-server analysis of the source code. +(@code{company-mode} can be installed from GNU ELPA.) + +@item +If @code{yasnippet}, a popular third-party package for automatic +insertion of code templates (snippets), is installed, and the language +server supports snippet completion candidates, Eglot arranges for the +completion package to instantiate these snippets using +@code{yasnippet}. (@code{yasnippet} can be installed from GNU ELPA.) + +@item +If the popular third-party package @code{markdown-mode} is installed, +and the server provides at-point documentation formatted as Markdown +in addition to plain text, Eglot arranges for the ElDoc package to +enrich this text with fontifications and other nice formatting before +displaying it to the user. This makes the documentation shown by +ElDoc look nicer on display. + +@item +In addition to enabling and enhancing other features and packages, +Eglot also provides a number of user commands based on the +capabilities of language servers. Examples include renaming symbols +with @kbd{eglot-rename} and asking to automatically correct problems +with @kbd{eglot-code-actions}. @xref{Eglot Commands}. +@end itemize + +Not all servers support the full set of LSP capabilities, but most of +them support enough to enable the basic set of features mentioned +above. Conversely, some servers offer capabilities for which no +equivalent Emacs package exists yet, and so Eglot cannot (yet) expose +these capabilities to Emacs users. + +@node Eglot and Buffers +@section Buffers, Projects, and Eglot +@cindex buffers managed by Eglot +@cindex projects and Eglot + +@cindex workspace +One of the main strong points of using a language server is that a +language server has a broad view of the program: it considers more +than just the single source file you are editing. Ideally, the +language server should know about all the source files of your program +which are written in the language supported by the server. In the +language-server parlance, the set of the source files of a program is +known as a @dfn{workspace}. The Emacs equivalent of a workspace is a +@dfn{project} (@pxref{Projects,,, emacs, GNU Emacs Manual}). Eglot +fully supports Emacs projects, and considers the file in whose buffer +Eglot is turned on as belonging to a project. In the simplest case, +that file is the entire project, i.e.@: your project consists of a +single file. But there are other more complex projects: + +@itemize @bullet +@item +A single-directory project: several source files in a single common +directory. + +@item +A VC project: source files in a directory hierarchy under some VCS, +e.g.@: a VCS repository (@pxref{Version Control,,, emacs, GNU Emacs +Manual}). + +@item +An EDE project: source files in a directory hierarchy managed via the +Emacs Development Environment (@pxref{EDE,,, emacs, GNU Emacs +Manual}). +@end itemize + +Eglot uses Emacs's project management infrastructure to figure out +which files and buffers belong to what project, so any kind of project +supported by that infrastructure is automatically supported by Eglot. + +When Eglot starts a server program, it does so in the project's root +directory, which is usually the top-level directory of the project's +directory hierarchy. This ensures the language server has the same +comprehensive view of the project's files as you do. + +For example, if you visit the file @file{~/projects/fooey/lib/x.foo} +and @file{x.foo} belongs to a project rooted at +@file{~/projects/fooey} (perhaps because a @file{.git} directory +exists there), then @kbd{M-x eglot} causes the server program to start +with that root as the current working directory. The server then will +analyze not only the file @file{lib/x.foo} you visited, but likely +also all the other @file{*.foo} files under the +@file{~/projects/fooey} directory. + +In some cases, additional information specific to a given project will +need to be provided to the language server when starting it. The +variable @code{eglot-workspace-configuration} (@pxref{Customizing +Eglot}) exists for that purpose. It specifies the parameters and +their values to communicate to each language server which needs that. + +When Eglot is active for a project, it performs several background +activities on behalf of the project and its buffers: + +@itemize @bullet +@cindex mode-line indication of language server +@cindex mouse clicks on mode-line, and Eglot +@vindex eglot-menu +@item +All of the project's file-visiting buffers under the same major-mode +are served by a single language-server connection. (If the project +uses several programming languages, there will usually be a separate +server connection for each group of files written in the same language +and using the same Emacs major-mode.) Eglot adds the +@samp{[eglot:@var{project}]} indication to the mode line of +each such buffer, where @var{server} is the name of the server and +@var{project} identifies the project by its root directory. Clicking +the mouse on the Eglot mode-line indication activates a menu with +server-specific items. + +@item +For each buffer in which Eglot is active, it notifies the language +server that Eglot is @dfn{managing} the file visited by that buffer. +This tells the language server that the file's contents on disk may no +longer be up-to-date due to unsaved edits. Eglot reports to the +server any changes in the text of each managed buffer, to make the +server aware of unsaved changes. This includes your editing of the +buffer and also changes done automatically by other Emacs features and +commands. Killing a buffer relinquishes its management by Eglot and +notifies the server that the file on disk is up-to-date. + +@vindex eglot-managed-mode-hook +@vindex eglot-managed-p +@item +Eglot turns on a special minor mode in each buffer it manages. This +minor mode ensures the server is notified about files Eglot manages, +and also arranges for other Emacs features supported by Eglot +(@pxref{Eglot Features}) to receive information from the language +server, by changing the settings of these features. Unlike other +minor-modes, this special minor mode is not activated manually by the +user, but automatically, as the result of starting an Eglot session +for the buffer. However, this minor mode provides a hook variable +@code{eglot-managed-mode-hook} that can be used to customize the Eglot +management of the buffer. This hook is run both when the minor mode +is turned on and when it's turned off; use the variable +@code{eglot-managed-p} to tell if current buffer is still being +managed or not. When Eglot stops managing the buffer, this minor mode +is turned off, and all the settings that Eglot changed are restored to +their original values. + +@item +When you visit a file under the same project, whether an existing or a +new file, its buffer is automatically added to the set of buffers +managed by Eglot, and the server which supports the buffer's +major-mode is notified about that. Thus, visiting a non-existent file +@file{/home/joe/projects/fooey/lib/y.foo} in the above example will +notify the server of the @file{*.foo} files' language that a new file +was added to the project, even before the file appears on disk. The +special Eglot minor mode is also turned on automatically in the buffer +visiting the file. +@end itemize + +@node Eglot Commands +@section Eglot Commands +@cindex commands, Eglot + +This section provides a reference for the most commonly used Eglot +commands: + +@ftable @code +@item M-x eglot +This command adds the current buffer and the file it visits to the +group of buffers and files managed by Eglot on behalf of a suitable +language server. If a language server for the buffer's +@code{major-mode} (@pxref{Major Modes,,, emacs, GNU Emacs Manual}) is +not yet running, it will be started; otherwise the buffer and its file +will be added to those managed by an existing server session. + +The command attempts to figure out the buffer's major mode and the +suitable language server; in case it fails, it might prompt for the +major mode to use and for the server program to start. If invoked +with @kbd{C-u}, it always prompts for the server program, and if +invoked with @kbd{C-u C-u}, it also prompts for the major mode. + +If the language server is successfully started and contacted, this +command arranges for any other buffers belonging to the same project +and using the same major mode to use the same language-server session. +That includes any buffers created by visiting files after this command +succeeds to connect to a language server. + +All the Emacs features that are capable of using Eglot services +(@pxref{Eglot Features}) are automatically configured by this command +to start using the language server via Eglot. To customize which +Emacs features will be configured to use Eglot, use the +@code{eglot-stay-out-of} option (@pxref{Customizing Eglot}). + +@item M-x eglot-reconnect +This command shuts down the current connection to the language +server and immediately restarts it using the same options used +originally. This can sometimes be useful to unclog a partially +malfunctioning server connection. + +@item M-x eglot-shutdown +This command shuts down a language server. It prompts for a language +server to shut down (unless there's only one server session, and it +manages the current buffer). Then the command shuts down the server +and stops managing the buffers the server was used for. Emacs +features (@pxref{Eglot Features}) that Eglot configured to work with +the language server are restored back to their original configuration. + +Normally, this command kills the buffers used for communicating with +the language server, but if invoked with a prefix argument @kbd{C-u}, +the command doesn't kill those buffers, allowing them to be used for +diagnostics and problem reporting (@pxref{Troubleshooting Eglot}). + +@item M-x eglot-shutdown-all +This command shuts down all the language servers active in the current +Emacs session. As with @code{eglot-shutdown}, invoking this command +with a prefix argument avoids killing the buffers used for +communications with the language servers. + +@item M-x eglot-rename +This command renames the program symbol (a.k.a.@: @dfn{identifier}) at +point to another name. It prompts for the new name of the symbol, and +then modifies all the files in the project which are managed by the +language server of the current buffer to implement the renaming. + +@item M-x eglot-format +This command reformats the active region according to the +language-server rules. If no region is active, it reformats the +entire current buffer. + +@item M-x eglot-format-buffer +This command reformats the current buffer, in the same manner as +@code{eglot-format} does. + +@cindex code actions +@item M-x eglot-code-actions +@itemx M-x eglot-code-action-organize-imports +@itemx M-x eglot-code-action-quickfix +@itemx M-x eglot-code-action-extract +@itemx M-x eglot-code-action-inline +@itemx M-x eglot-code-action-rewrite +These commands allow you to invoke the so-called @dfn{code actions}: +requests for the language server to provide editing commands for +correcting, refactoring or beautifying your code. These commands may +affect more than one visited file belonging to the project. + +The command @code{eglot-code-actions} asks the server if there any +code actions for any point in the buffer or contained in the active +region. If there are, you have the choice to execute one of them via +the minibuffer. + +A common use of code actions is fixing the Flymake error diagnostics +issued by Eglot (@pxref{Top,,, flymake, GNU Flymake manual}). +Clicking on a diagnostic with @kbd{mouse-2} invokes +@code{eglot-code-actions-at-mouse} which pops up a menu of available +code actions. The variable @code{eglot-diagnostics-map} can be used +to control the mouse binding. + +Other commands execute a specific code action. For example, +@code{eglot-code-action-organize-imports} rearranges the program's +@dfn{imports}---declarations of modules whose capabilities the program +uses. + +@cindex inlay hints +@item M-x eglot-inlay-hints-mode +This command toggles LSP @dfn{inlay hints} on and off for the current +buffer. Inlay hints are small text annotations to specific parts of +the whole buffer, not unlike diagnostics, but designed to help +readability instead of indicating problems. For example, a C++ +language server can serve hints about positional parameter names in +function calls and a variable's automatically deduced type. Inlay +hints help the user not have to remember these things by heart. +@end ftable + +The following Eglot commands are used less commonly, mostly for +diagnostic and troubleshooting purposes: + +@ftable @code +@item M-x eglot-events-buffer +This command pops up the events buffer used for communication with the +language server of the current buffer. + +@item M-x eglot-stderr-buffer +This command pops up the buffer with the debug info printed by the +language server to its standard error stream. + +@item M-x eglot-forget-pending-continuations +Forget pending requests for the server of the current buffer. +@c FIXME: Better description of the need. + +@item M-x eglot-signal-didChangeConfiguration +This command updates the language server configuration according to +the current value of the variable @code{eglot-workspace-configuration} +(@pxref{Customizing Eglot}). + +@item M-x eglot-clear-status +Clear the last JSONRPC error for the server of the current buffer. +Eglot keeps track of erroneous situations encountered by the server in +its mode-line indication so that the user may inspect the +communication leading up to it (@pxref{Troubleshooting Eglot}). If +the situation is deemed uninteresting or temporary, this command can +be used to ``forget'' the error. Note that the command @code{M-x +eglot-reconnect} can sometimes be used to unclog a temporarily +malfunctioning server. +@end ftable + +As described in @ref{Eglot Features} most features associated with +Eglot are actually provided by other Emacs packages and features, and +Eglot only enhances them by allowing them to use the information +coming from the language servers. For completeness, here's the list +of commands of those other packages that are very commonly used in +Eglot-managed buffers: + +@c Not @ftable, because the index entries should mention Eglot +@table @code +@cindex eldoc, and Eglot +@cindex documentation using Eglot +@item M-x eldoc +Ask the ElDoc system for help at point. + +@cindex flymake, and Eglot +@cindex on-the-fly diagnostics using Eglot +@item M-x flymake-show-buffer-diagnostics +Ask Flymake system to display diagnostics for the current buffer. + +@item M-x flymake-show-project-diagnostics +Ask Flymake to list diagnostics for all the files in the current +project. + +@cindex xref, and Eglot +@cindex finding definitions of identifiers using Eglot +@item M-x xref-find-definitions +Ask Xref to go the definition of the identifier at point. + +@cindex imenu navigation using Eglot +@item M-x imenu +Let the user navigate the program source code using buffer index, +categorizing program elements by syntactic class (class, method, +variable, etc.) and offering completion. + +@cindex symbol completion using Eglot +@item M-x completion-at-point +Request completion of the symbol at point. +@end table + +@node Eglot Variables +@section Eglot Variables +@cindex variables, Eglot + +This section provides a reference for the Eglot user options. + +@vtable @code +@item eglot-autoreconnect +This option controls the ability to reconnect automatically to the +language server when Eglot detects that the server process terminated +unexpectedly. The default value @code{3} means to attempt reconnection only +if the previous successful connection lasted for more than that number +of seconds; a different positive value changes the minimal length of +the connection to trigger reconnection. A value of @code{t} means +always reconnect automatically, and @code{nil} means never reconnect +(in which case you will need to reconnect manually using @kbd{M-x +eglot}). + +@item eglot-connect-timeout +This specifies the number of seconds before connection attempt to a +language server times out. The value of @code{nil} means never time +out. The default is 30 seconds. + +@item eglot-sync-connect +This setting is mainly important for connections which are slow to +establish. Whereas the variable @code{eglot-connect-timeout} controls +how long to wait for, this variable controls whether to block Emacs's +user interface while waiting. The default value is @code{3}; a positive +value means block for that many seconds, then wait for the connection +in the background. The value of @code{t} means block during the whole +waiting period. The value of @code{nil} or @code{0} means don't block at +all during the waiting period. + +@item eglot-events-buffer-size +This determines the size of the Eglot events buffer. @xref{Eglot +Commands, eglot-events-buffer}, for how to display that buffer. If +the value is changed, for it to take effect the connection should be +restarted using @kbd{M-x eglot-reconnect}. +@c FIXME: Shouldn't the defcustom do this by itself using the :set +@c attribute? +@xref{Troubleshooting Eglot}, for when this could be useful. + +@item eglot-autoshutdown +If this is non-@code{nil}, Eglot shuts down a language server when the +last buffer managed by it is killed. @xref{Shutting Down LSP Servers}. +The default is @code{nil}; if you want to shut down a server, use +@kbd{M-x eglot-shutdown} (@pxref{Eglot Commands}). + +@item eglot-confirm-server-initiated-edits +Various Eglot commands and code actions result in the language server +sending editing commands to Emacs. If this option's value is +non-@code{nil} (the default), Eglot will ask for confirmation before +performing edits initiated by the server or edits whose scope affects +buffers other than the one where the user initiated the request. + +@item eglot-ignored-server-capabilities +This variable's value is a list of language server capabilities that +Eglot should not use. The default is @code{nil}: Eglot uses all of +the capabilities supported by each server. + +@item eglot-extend-to-xref +If this is non-@code{nil}, and @kbd{M-.} +(@code{xref-find-definitions}) lands you in a file outside of your +project, such as a system-installed library or header file, +transiently consider that file as managed by the same language server. +That file is still outside your project (i.e. @code{project-find-file} +won't find it), but Eglot and the server will consider it to be part +of the workspace. The default is @code{nil}. + +@item eglot-mode-map +This variable is the keymap for binding Eglot-related command. It is +in effect only as long as the buffer is managed by Eglot. By default, +it is empty, with the single exception: @kbd{C-h .} is remapped to +invoke @code{eldoc-doc-buffer}. You can bind additional commands in +this map. For example: + +@lisp + (define-key eglot-mode-map (kbd "C-c r") 'eglot-rename) + (define-key eglot-mode-map (kbd "C-c o") 'eglot-code-action-organize-imports) + (define-key eglot-mode-map (kbd "C-c h") 'eldoc) + (define-key eglot-mode-map (kbd "") 'xref-find-definitions) +@end lisp + +@end vtable + +Additional variables, which are relevant for customizing the server +connections, are documented in @ref{Customizing Eglot}. + +@node Customizing Eglot +@chapter Customizing Eglot +@cindex customizing Eglot + +Eglot itself has a relatively small number of customization options. +A large part of customizing Eglot to your needs and preferences should +actually be done via options of the Emacs packages and features which +Eglot supports and enhances (@pxref{Eglot Features}). For example: + +@itemize @bullet +@item +To configure the face used for server-derived errors and warnings, +customize the Flymake faces @code{flymake-error} and +@code{flymake-warning}. + +@item +To configure the amount of space taken up by documentation in the +echo area, customize the ElDoc variable +@code{eldoc-echo-area-use-multiline-p}. + +@item +To completely change how ElDoc displays the at-point documentation +destination, customize the ElDoc variable +@code{eldoc-display-functions}. +@end itemize + +For this reason, this manual describes only how to customize +Eglot's own operation, which mainly has to do with the server +connections and the server features to be used by Eglot. + +@c @table, not @vtable, because some of the variables are indexed +@c elsewhere +@table @code +@item eglot-server-programs +This variable determines which language server to start for each +supported major mode, and how to invoke that server's program. +@xref{Setting Up LSP Servers}, for the details. + +@vindex eglot-strict-mode +@item eglot-strict-mode +This is @code{nil} by default, meaning that Eglot is generally lenient +about non-conforming servers. If you need to debug a server, set this +to @w{@code{(disallow-non-standard-keys enforce-required-keys)}}. + +@vindex eglot-server-initialized-hook +@item eglot-server-initialized-hook +A hook run after the server object is successfully initialized. + +@vindex eglot-connect-hook +@item eglot-connect-hook +A hook run after connection to the server is successfully +established. @xref{Starting Eglot}. + +@item eglot-managed-mode-hook +A hook run after Eglot started or stopped managing a buffer. +@xref{Eglot and Buffers}, for details of its usage. + +@vindex eglot-stay-out-of +@item eglot-stay-out-of +This variable's value lists Emacs features that Eglot shouldn't +automatically try to manage on the user's behalf. It is useful, for +example, when you need to use non-LSP Flymake or Company back-ends. +To have Eglot stay away from some Emacs feature, add that feature's +symbol or a regexp that will match a symbol's name to the list: for +example, the symbol @code{xref} to leave Xref alone, or the string +@samp{company} to stay away from your Company customizations. Here's an +example: + +@lisp +(add-to-list 'eglot-stay-out-of 'flymake) +@end lisp + +Note that you can still configure the excluded Emacs features manually +to use Eglot in your @code{eglot-managed-mode-hook} or via some other +mechanism. + +@vindex eglot-report-progress +@cindex progress +@item eglot-report-progress +Set this variable to true if you'd like progress notifications coming +from the language server to be handled as Emacs's progress reporting +facilities. +@end table + +@node Advanced server configuration +@chapter Advanced server configuration + +Though many language servers work well out-of-the-box, most allow +fine-grained control of their operation via specific configuration +options that are transmitted over the LSP protocol and vary from +server to server. A small number of servers require such special +configuration to work acceptably, or even to work at all. + +After having setup a server executable program in +@code{eglot-server-programs} (@pxref{Setting Up LSP Servers}) and +ensuring Eglot can invoke it, you may want to take advantage of some +of these options. You should first distinguish two main kinds of +server configuration: + +@itemize @bullet +@item +Project-specific, applying to a specific project; + +@item +User-specific, applying to all projects the server is used for. +@end itemize + +When you have decided which kind you need, the following sections +teach how Eglot's user variables can be used to achieve it: + +@menu +* Project-specific configuration:: +* User-specific configuration:: +* JSONRPC objects in Elisp:: +@end menu + +It's important to note that not all servers allow both kinds of +configuration, nor is it guaranteed that user options can be copied +over to project options, and vice-versa. When in doubt, consult your +language server's documentation. + +It's also worth noting that some language servers can read these +settings from configuration files in the user's @code{HOME} directory +or in a project's directory. For example, the @command{pylsp} Python +server reads the file @file{~/.config/pycodestyle} for user +configuration. The @command{clangd} C/C++ server reads both +@file{~/.config/clangd/config.yaml} for user configuration and +@file{.clangd} for project configuration. It may be advantageous to +use these mechanisms instead of Eglot's, as this will probably work +with other LSP clients and may be easier to debug than options riding +on the LSP wire. + +@node Project-specific configuration +@section Project-specific configuration +@vindex eglot-workspace-configuration +@cindex workspace configuration + +To set project-specific settings, which the LSP specification calls +@dfn{workspace configuration}, the variable +@code{eglot-workspace-configuration} may be used. + +This variable is a directory-local variable (@pxref{Directory +Variables, , Per-directory Local Variables, emacs, The GNU Emacs +Manual}). It's important to recognize that this variable really only +makes sense when set directory-locally. It usually does not make +sense to set it file-locally or in a major-mode hook. + +The most common way to set @code{eglot-workspace-configuration } is +using a @file{.dir-locals.el} file in the root of your project. If +you can't do that, you may also set it from Elisp code via the +@code{dir-locals-set-class-variables} function. (@pxref{Directory +Local Variables,,, elisp, GNU Emacs Lisp Reference Manual}). + +However you choose to set it, the variable's value is a plist +(@pxref{Property Lists,,, elisp, GNU Emacs Lisp Reference Manual}) with +the following format: + +@lisp + (@var{:server1} @var{plist1} @var{:server2} @var{plist2} @dots{}) +@end lisp + +@noindent +Here, @var{:server1} and @var{:server2} are keywords whose names +identify the LSP language servers to target. Consult server +documentation to find out what name to use. @var{plist1} and +@var{plist2} are plists of options, possibly nesting other plists. + +@findex eglot-show-workspace-configuration +When experimenting with workspace settings, you can use the command +@kbd{M-x eglot-show-workspace-configuration} to inspect and debug the +value of this variable in its final JSON form, ready to be sent to the +server (@pxref{JSONRPC objects in Elisp}). This helper command works +even before actually connecting to the server. + +These variable's value doesn't take effect immediately. That happens +upon establishing the connection, in response to an explicit query +from the server, or when issuing the command @kbd{M-x +eglot-signal-didChangeConfiguration} which notifies the server during +an ongoing Eglot session. + +@subsection Examples + +For some users, setting @code{eglot-workspace-configuration} is a +somewhat daunting task. One of the reasons is having to manage the +general Elisp syntax of per-mode directory-local variables, which uses +alists (@pxref{Association Lists,,, elisp, GNU Emacs Lisp Reference +Manual}), and the specific syntax of Eglot's variable, which uses +plists. Some examples are useful. + +Let's say you want to configure two language servers to be used in a +project written in a combination of the Python and Go languages. You +want to use the @command{pylsp} and @command{gopls} languages +servers. In the documentation of the servers in question (or in some +other editor's configuration file, or in some blog article), you find +the following configuration options in informal dotted-notation +syntax: + +@example +pylsp.plugins.jedi_completion.include_params: true +pylsp.plugins.jedi_completion.fuzzy: true +pylsp.pylint.enabled: false +gopls.usePlaceholders: true +@end example + +To apply this to Eglot, and assuming you chose the +@file{.dir-locals.el} file method, the contents of that file could be: + +@lisp +((nil + . ((eglot-workspace-configuration + . (:pylsp (:plugins (:jedi_completion (:include_params t + :fuzzy t) + :pylint (:enabled :json-false))) + :gopls (:usePlaceholders t))))) + (python-base-mode . ((indent-tabs-mode . nil))) + (go-mode . ((indent-tabs-mode . t)))) +@end lisp + +@noindent +This sets the value of @code{eglot-workspace-configuration} in all the +buffers inside the project; each server will use only the section of +the parameters intended for that server, and ignore the rest. Note +how alists are used for associating Emacs mode names with alists +associating variable names with variable values. Then notice how +plists are used inside the value of +@code{eglot-workspace-configuration}. + +This following form may also be used: + +@lisp +((python-base-mode + . ((eglot-workspace-configuration + . (:pylsp (:plugins (:jedi_completion (:include_params t + :fuzzy t) + :pylint (:enabled :json-false))))) + (indent-tabs-mode . nil))) + (go-mode + . ((eglot-workspace-configuration + . (:gopls (:usePlaceholders t))) + (indent-tabs-mode . t)))) +@end lisp + +@noindent +This sets up the value of @code{eglot-workspace-configuration} +separately depending on the major mode of each of that project's +buffers. @code{python-base-mode} buffers will have the variable set to +@code{(:pylsp (:plugins ...))}. @code{go-mode} buffers will have the +variable set to @code{(:gopls (:usePlaceholders t))}. + +Some servers will issue workspace configuration for specific files +inside your project. For example, if you know @code{gopls} is asking +about specific files in the @code{src/imported} subdirectory and you +want to set a different option for @code{gopls.usePlaceholders} , you +may use something like: + +@lisp +((python-base-mode + . ((eglot-workspace-configuration + . (:pylsp (:plugins (:jedi_completion (:include_params t + :fuzzy t) + :pylint (:enabled :json-false))))) + (indent-tabs-mode nil))) + (go-mode + . ((eglot-workspace-configuration + . (:gopls (:usePlaceholders t))) + (indent-tabs-mode t))) + ("src/imported" + . ((eglot-workspace-configuration + . (:gopls (:usePlaceholders nil)))))) +@end lisp + +Finally, if one needs to determine the workspace configuration based +on some dynamic context, @code{eglot-workspace-configuration} can be +set to a function. The function is called with the +@code{eglot-lsp-server} instance of the connected server (if any) and +with @code{default-directory} set to the root of the project. The +function should return a plist suitable for use as the variable's +value. + +@node User-specific configuration +@section User-specific configuration +@cindex initializationOptions +@cindex command-line arguments + +This kind of configuration applies to all projects the server is used +for. Here, there are a number of ways to do this inside Eglot. + +A common way is to pass command-line options to the server invocation +via @code{eglot-server-programs}. Let's say we want to configure +where the @command{clangd} server reads its +@code{compile_commands.json} from. This can be done like so: + +@lisp +(with-eval-after-load 'eglot + (add-to-list 'eglot-server-programs + `(c++-mode . ("clangd" "--compile-commands-dir=/tmp")))) + +@end lisp + +@noindent +Another way is to have Eglot pass a JSON object to the server during +the LSP handshake. This is done using the +@code{:initializationOptions} syntax of @code{eglot-server-programs}: + +@lisp +(with-eval-after-load 'eglot + (add-to-list 'eglot-server-programs + `(c++-mode . ("clangd" :initializationOptions + (:compilationDatabasePath "/tmp"))))) +@end lisp + +@noindent +The argument @code{(:compilationDatabasePath "/tmp")} is Emacs's +representation in plist format of a simple JSON object +@code{@{"compilationDatabasePath": "/tmp"@}}. To learn how to +represent more deeply nested options in this format, @pxref{JSONRPC +objects in Elisp}. + +In this case, the two examples achieve exactly the same, but notice +how the option's name has changed between them. + +@vindex eglot-workspace-configuration +Finally there is another way to do user-specific configuration of +language servers, which may be used if the methods above are not +supported. It consists of @emph{globally} setting +@code{eglot-workspace-configuration}, a variable originally intended +for project-specific configuration. This has the same effect as +giving all your projects a certain default configuration, as described +in @ref{Project-specific configuration}. Here is an example: + +@lisp +(setq-default eglot-workspace-configuration + '(:pylsp (:plugins (:jedi_completion (:include_params t + :fuzzy t) + :pylint (:enabled :json-false))) + :gopls (:usePlaceholders t))) +@end lisp + +Note that the global value of @code{eglot-workspace-configuration} is +always overridden if a directory-local value is detected. + +@node JSONRPC objects in Elisp +@section JSONRPC objects in Elisp + +Emacs's preferred way of representing JSON is via Lisp lists. In +Eglot, the syntax of this list is the simplest possible (the one with +fewer parenthesis), a plist (@pxref{Property Lists,,, elisp, GNU Emacs +Lisp Reference Manual}). + +The plist may be arbitrarily complex, and generally containing other +keyword-value property sub-plists corresponding to JSON sub-objects. + +For representing the JSON leaf values @code{true}, @code{false}, +@code{null} and @code{@{@}}, you can use the Lisp values @code{t}, +@code{:json-false}, @code{nil}, and @code{eglot-@{@}}, respectively. +JSON arrays are represented as Elisp vectors surrounded by square brackets +(@pxref{Vectors,,,elisp,GNU Emacs Lisp Reference Manual}). + +For example, the plist + +@lisp +(:pylsp (:plugins (:jedi_completion (:include_params t + :fuzzy t + :cache_for ["pandas" "numpy"]) + :pylint (:enabled :json-false))) + :gopls (:usePlaceholders t)) +@end lisp + +@noindent +is serialized by Eglot to the following JSON text: + +@example +@{ + "pylsp": @{ + "plugins": @{ + "jedi_completion": @{ + "include_params": true, + "fuzzy": true, + "cache_for": [ "pandas", "numpy" ] + @}, + "pylint": @{ + "enabled": false + @} + @} + @}, + "gopls": @{ + "usePlaceholders": true + @} +@} +@end example + +@node Troubleshooting Eglot +@chapter Troubleshooting Eglot +@cindex troubleshooting Eglot + +This chapter documents commands and variables that can be used to +troubleshoot Eglot problems. It also provides guidelines for +reporting Eglot bugs in a way that facilitates their resolution. + +When you encounter problems with Eglot, try first using the commands +@kbd{M-x eglot-events-buffer} and @kbd{M-x eglot-stderr-buffer}. They +pop up special buffers that can be used to inspect the communications +between the Eglot and language server. In many cases, this will +indicate the problems or at least provide a hint. + +@menu +* Performance:: +* Getting the latest version:: +* Reporting bugs:: +@end menu + +@node Performance +@section Performance +@cindex performance problems, with Eglot +A common and easy-to-fix cause of performance problems is the length +of the Eglot events buffer because it represent additional work that +Eglot must do. After verifying Eglot is operating correctly but +slowly, try to customize the variable @code{eglot-events-buffer-size} +(@pxref{Eglot Variables}) to 0. This will disable any debug logging +and may speed things up. + +In other situations, the cause of poor performance lies in the +language server itself. Servers use aggressive caching and other +techniques to improve their performance. Often, this can be tweaked +by changing the server configuration (@pxref{Advanced server +configuration}). + +@node Getting the latest version +@section Getting the latest version +@cindex upgrading Eglot + +To install the latest Eglot in an Emacs version that does not bundle +Eglot, use @kbd{M-x package-install}. + +Often, a newer Eglot version exists that has fixed a longstanding bug, +has more LSP features, or just better supports a particular language +server. Recent Eglot versions can self-update via the command +@kbd{M-x eglot-upgrade-eglot}. This will replace any currently +installed version with the newest one available from the ELPA archives +configured in @code{package-archives}. + +You can also update Eglot through other methods, such as +@code{use-package} (@pxref{Installing packages,,, use-package, +use-package User Manual}), @code{package-install}, +@code{list-packages} or the newer @code{package-upgrade} +(@pxref{Packages,,, emacs, GNU Emacs Manual}). However, do read the +docstrings of the command you intend to use before you use it, as some +of them may not work in exactly the same way across Emacs versions, +meaning your configuration may be not portable. + +@node Reporting bugs +@section Reporting bugs +@cindex bug reports + +If you think you have found a bug, we want to hear about it. Before +reporting a bug, keep in mind that interaction with language servers +represents a large quantity of unknown variables. Therefore, it is +generally both @emph{difficult} and @emph{absolutely essential} that +the maintainers reproduce bugs exactly as they happened to you, the +user. + +To report an Eglot bug, send e-mail to @email{bug-gnu-emacs@@gnu.org}. + +To understand how to write this email, get acquainted with Emacs's bug +reporting guidelines (@pxref{Bugs,,, emacs, GNU Emacs Manual}). Then, +follow this Eglot-specific checklist: + +@enumerate +@item +Include the transcript of JSONRPC events obtained from the buffer +popped up by @kbd{M-x eglot-events-buffer}. You may narrow down the +transcript if you are sure of where the problematic exchange is, but +it's safer to include the whole transcript, either attached or inline. + +@item +If Emacs signaled an error (an error message was seen or heard), make +sure to repeat the process after turning on @code{debug-on-error} via +@kbd{M-x toggle-debug-on-error}. This normally produces a backtrace +of the error that should also be attached to the bug report. + +@item +Include a description of how the maintainer should obtain, install, +and configure the language server you used. Maintainers usually have +access to GNU/Linux systems, though not necessarily the distribution +that you may be using. If possible, try to replicate the problem with +the C/C@t{++} or Python servers, as these are very easy to install. + +@item +Describe how to setup a @emph{minimal} project directory where Eglot +should be started for the problem to happen. Describe each file's +name and its contents. Alternatively, you can supply the address of a +public Git repository. + +@item +Include versions of the software used. The Emacs version can be +obtained with @kbd{M-x emacs-version}. + +We welcome bug reports about all Eglot versions, but it is helpful to +first check if the problem isn't already fixed in the latest version +(@pxref{Getting the latest version}). + +It's also essential to include the version of ELPA packages that are +explicitly or implicitly loaded. The optional but popular Company or +Markdown packages are distributed as GNU ELPA packages, not to mention +Eglot itself in some situations. Some major modes (Go, Rust, etc.) +are provided by ELPA packages. It's sometimes easy to miss these, +since they are usually implicitly loaded when visiting a file in that +language. + +ELPA packages usually live in @code{~/.emacs.d/elpa} (or what is in +@code{package-user-dir}). Including a listing of files in that +directory is a way to tell the maintainers about ELPA package +versions. + +@item +Include a recipe to replicate the problem with @emph{a clean Emacs +run}. The invocation @code{emacs -Q -f package-initialize} starts +Emacs with no configuration and initializes the ELPA packages. A very +minimal @file{.emacs} initialization file (10 lines or less) is also +acceptable and good means to describe changes to variables. + +There is usually no need to include @code{require} statements in the +recipe, as Eglot's functionality uses autoloads. + +Likewise, there is rarely the need to use things like +@code{use-package} or @code{eglot-ensure}. This just makes the recipe +harder to follow. Prefer setting variables with @code{setq} and +adding to hooks with @code{add-hook}. Prefer starting Eglot with +@code{M-x eglot}. + +@item +Make sure to double check all the above elements and re-run the recipe +to see that the problem is reproducible. Following the recipe should +produce event transcript and error backtraces that are very similar to +the ones you included. If the problem only happens sometimes, mention +this in your report. +@end enumerate + +Please keep in mind that some problems reported against Eglot may +actually be bugs in the language server or the Emacs feature/package +that used Eglot to communicate with the language server. Eglot is, in +many cases, just a frontend to that functionality. + +@node GNU Free Documentation License +@appendix GNU Free Documentation License +@include doclicense.texi + +@node Index +@unnumbered Index +@printindex cp + +@bye diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi index 26869815bbe9..02cb51e6fddd 100644 --- a/doc/misc/eieio.texi +++ b/doc/misc/eieio.texi @@ -12,7 +12,7 @@ @copying This manual documents EIEIO, an object framework for Emacs Lisp. -Copyright @copyright{} 2007--2023 Free Software Foundation, Inc. +Copyright @copyright{} 2007--2024 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -193,7 +193,7 @@ also differs in some other aspects which are mentioned below (also @enumerate @item A structured framework for the creation of basic classes with attributes -and methods using singular inheritance similar to CLOS. +and methods using inheritance similar to CLOS. @item Type checking, and slot unbinding. @item @@ -225,11 +225,6 @@ lacks: @table @asis -@item Method dispatch -EIEO does not support method dispatch for built-in types and multiple -arguments types. In other words, method dispatch only looks at the -first argument, and this one must be an @eieio{} type. - @item Support for metaclasses There is just one default metaclass, @code{eieio-default-superclass}, and you cannot define your own. The @code{:metaclass} tag in @@ -700,18 +695,18 @@ slot values, and use the previously mentioned set/ref routines. @defun slot-value object slot @anchor{slot-value} This function retrieves the value of @var{slot} from @var{object}. +It can also be used on objects defined by @code{cl-defstruct}. This is a generalized variable that can be used with @code{setf} to -modify the value stored in @var{slot}. @xref{Generalized -Variables,,,elisp,GNU Emacs Lisp Reference Manual}. +modify the value stored in @var{slot}. +@xref{Generalized Variables,,,elisp,GNU Emacs Lisp Reference Manual}. @end defun @defun set-slot-value object slot value @anchor{set-slot-value} This function sets the value of @var{slot} from @var{object}. -This is not a CLOS function, but is the obsolete setter for -@code{slot-value} used by the @code{setf} macro. It is therefore +This is not a CLOS function. It is therefore recommended to use @w{@code{(setf (slot-value @var{object} @var{slot}) @var{value})}} instead. @end defun @@ -858,10 +853,6 @@ method in place with that name, then a new generic will be created, and the new method will use it. @end defmac -In CLOS, a generic call also be used to provide an argument list and -dispatch precedence for all the arguments. In @eieio{}, dispatching -only occurs for the first argument, so the @var{arglist} is not used. - @node Methods @section Methods diff --git a/doc/misc/emacs-gnutls.texi b/doc/misc/emacs-gnutls.texi index 90ba4ab9bb4b..c149531a8bd6 100644 --- a/doc/misc/emacs-gnutls.texi +++ b/doc/misc/emacs-gnutls.texi @@ -9,7 +9,7 @@ @copying This file describes the Emacs GnuTLS integration. -Copyright @copyright{} 2012--2023 Free Software Foundation, Inc. +Copyright @copyright{} 2012--2024 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -132,7 +132,7 @@ PEM or DER format and examples can be found in most Unix distributions. By default the following locations are tried in this order: @file{/etc/ssl/certs/ca-certificates.crt} for Debian, Ubuntu, Gentoo and Arch Linux; @file{/etc/pki/tls/certs/ca-bundle.crt} for -Fedora and RHEL; @file{/etc/ssl/ca-bundle.pem} for Suse; +Fedora and RHEL; @file{/etc/ssl/ca-bundle.pem} for SUSE; @file{/usr/ssl/certs/ca-bundle.crt} for Cygwin; @file{/usr/local/share/certs/ca-root-nss.crt} for FreeBSD@. You can easily customize @code{gnutls-trustfiles} to be something else, but diff --git a/doc/misc/emacs-mime.texi b/doc/misc/emacs-mime.texi index d55af64e70a7..96a6328cd477 100644 --- a/doc/misc/emacs-mime.texi +++ b/doc/misc/emacs-mime.texi @@ -10,7 +10,7 @@ @copying This file documents the Emacs MIME interface functionality. -Copyright @copyright{} 1998--2023 Free Software Foundation, Inc. +Copyright @copyright{} 1998--2024 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -403,9 +403,9 @@ This selects the function used to render @acronym{HTML}. The predefined renderers are selected by the symbols @code{shr}, @code{gnus-w3m}, @code{w3m}@footnote{See @uref{http://emacs-w3m.namazu.org/} for more information about -emacs-w3m}, @code{links}, @code{lynx}, @code{w3m-standalone} or -@code{html2text}. You can also specify a function, which will be -called with a @acronym{MIME} handle as the argument. +emacs-w3m}, @code{links}, @code{lynx}, or @code{w3m-standalone}. You +can also specify a function, which will be called with a +@acronym{MIME} handle as the argument. @item mm-html-inhibit-images @vindex mm-html-inhibit-images @@ -454,7 +454,8 @@ setting this option to non-@code{nil}. The default value is @code{t}. @item mm-external-terminal-program @vindex mm-external-terminal-program -The program used to start an external terminal. +This should be a list of strings; typically something like +@samp{("xterm" "-e")} or @samp{("gnome-terminal" "--")}. @item mm-enable-external @vindex mm-enable-external diff --git a/doc/misc/epa.texi b/doc/misc/epa.texi index 6f63a3d7ba06..78a13ef76f54 100644 --- a/doc/misc/epa.texi +++ b/doc/misc/epa.texi @@ -10,7 +10,7 @@ @copying This file describes EasyPG Assistant @value{VERSION}. -Copyright @copyright{} 2007--2023 Free Software Foundation, Inc. +Copyright @copyright{} 2007--2024 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -43,7 +43,10 @@ modify this GNU manual.'' @contents @node Top -@top EasyPG Assistant user's manual +@top EasyPG Assistant User's Manual +@cindex easypg assistant +@cindex gnu privacy guard +@cindex gnupg EasyPG Assistant is an Emacs user interface to GNU Privacy Guard (GnuPG, @pxref{Top, , Top, gnupg, Using the GNU Privacy Guard}). @@ -56,14 +59,22 @@ called EasyPG Library. @insertcopying @end ifnottex +@c Unfortunately the node names of this manual are not very consistent +@c w.r.t. their case. However, case is significant in node names, so +@c we probably better should not change these to not break any +@c external references. Things are more relaxed for structure titles, +@c so we consistently updated them to title-case. + @menu * Overview:: * Quick start:: * Commands:: * GnuPG version compatibility:: +* GnuPG Pinentry:: * Caching Passphrases:: * Bug Reports:: * GNU Free Documentation License:: The license for this documentation. +* Concept Index:: * Key Index:: * Function Index:: * Variable Index:: @@ -71,8 +82,10 @@ called EasyPG Library. @node Overview @chapter Overview +@cindex features of easypg assistant -EasyPG Assistant provides the following features. +EasyPG Assistant is an Emacs frontend application to @acronym{GnuPG, +GNU Privacy Guard} that provides the following features: @itemize @bullet @item Key management. @@ -84,7 +97,24 @@ EasyPG Assistant provides the following features. @end itemize @node Quick start -@chapter Quick start +@chapter Quick Start +@cindex introduction to easypg assistant +@cindex gnupg documentation +@cindex documentation on gnupg +@cindex configuration of gnupg +@cindex introduction to gnupg + +You can use EasyPG Assistant without any Emacs or GnuPG configuration +whatsoever, for example to encrypt and decrypt files automatically +with symmetric encryption, see @ref{Encrypting/decrypting gpg files}. +However, to use the full set of EasyPG Assistant's functions you +should have at least some minimum GnuPG configuration in place. + +John Michael Ashley's GNU Privacy Handbook, available online as part +of @uref{https://gnupg.org/documentation/guides.html, the GnuPG user +guides}, provides an introduction to GnuPG use and configuration. In +contrast to that, the GnuPG manual (@pxref{Top, , Top, gnupg, Using +the GNU Privacy Guard}) is more of a reference manual. EasyPG Assistant commands are prefixed by @samp{epa-}. For example, @@ -118,7 +148,11 @@ This chapter introduces various commands for typical use cases. @end menu @node Key management -@section Key management +@section Key Management +@cindex key management + +@cindex key ring, browsing +@cindex browse key ring Probably the first step of using EasyPG Assistant is to browse your keyring. @kbd{M-x epa-list-keys} is corresponding to @samp{gpg --list-keys} from the command line. @@ -157,6 +191,7 @@ about the key you selected. Fingerprint: 9003 D76B 73B7 4A8A E588 10AF 4447 461B 2A9B EA2D @end example +@cindex private key ring, browsing @noindent To browse your private keyring, use @kbd{M-x epa-list-secret-keys}. @@ -172,12 +207,14 @@ to select keys, type @kbd{o}, and then supply the filename. Below are other commands related to key management. Some of them take a file as input/output, and others take the current region. +@cindex insert keys @deffn Command epa-insert-keys keys Insert selected @var{keys} after the point. It will let you select keys before insertion. By default, it will encode keys in the OpenPGP armor format. @end deffn +@cindex import keys @deffn Command epa-import-keys file Import keys from @var{file} to your keyring. @end deffn @@ -195,14 +232,18 @@ Import keys in the OpenPGP armor format in the current region between applies @code{epa-import-keys-region} to each of them. @end deffn +@cindex delete keys @deffn Command epa-delete-keys allow-secret Delete selected keys. If @var{allow-secret} is non-@code{nil}, it also delete the secret keys. @end deffn @node Cryptographic operations on regions -@section Cryptographic operations on regions +@section Cryptographic Operations on Regions +@cindex cryptographic operations on regions +@cindex region operations, cryptographic +@cindex decrypt region @deffn Command epa-decrypt-region start end Decrypt the current region between @var{start} and @var{end}. It replaces the region with the decrypted text. @@ -216,6 +257,7 @@ and applies @code{epa-decrypt-region} to each of them. That is, this command does not alter the original text around armors. @end deffn +@cindex verify region @deffn Command epa-verify-region start end Verify the current region between @var{start} and @var{end}. It sends the verification result to the minibuffer or a popup window. It @@ -231,6 +273,7 @@ searches OpenPGP cleartext blocks in the region and applies not alter the original text around OpenPGP cleartext blocks. @end deffn +@cindex sign region @deffn Command epa-sign-region start end signers type Sign the current region between @var{start} and @var{end}. By default, it creates a cleartext signature. If a prefix argument is @@ -238,6 +281,7 @@ given, it will let you select signing keys, and then a signature type. @end deffn +@cindex encrypt region @deffn Command epa-encrypt-region start end recipients sign signers Encrypt the current region between @var{start} and @var{end}. It will let you select recipients. If a prefix argument is given, it will @@ -246,28 +290,37 @@ you answered yes, it will let you select the signing keys. @end deffn @node Cryptographic operations on files -@section Cryptographic operations on files +@section Cryptographic Operations on Files +@cindex cryptographic operations on files +@cindex file operations, cryptographic +@cindex decrypt file @deffn Command epa-decrypt-file file &optional output Decrypt @var{file}. If you do not specify the name @var{output} to use for the decrypted file, this function prompts for the value to use. @end deffn +@cindex verify file @deffn Command epa-verify-file file Verify @var{file}. @end deffn +@cindex sign file @deffn Command epa-sign-file file signers type Sign @var{file}. If a prefix argument is given, it will let you select signing keys, and then a signature type. @end deffn +@cindex encrypt file @deffn Command epa-encrypt-file file recipients Encrypt @var{file}. It will let you select recipients. @end deffn @node Dired integration -@section Dired integration +@section Dired Integration +@cindex dired integration +@cindex directory operations +@cindex multiple file operations EasyPG Assistant extends Dired Mode for GNU Emacs to allow users to easily do cryptographic operations on files. For example, @@ -306,7 +359,9 @@ Encrypt marked files. @end table @node Mail-mode integration -@section Mail-mode integration +@section Mail-Mode Integration +@cindex mail-mode integration +@cindex sending signed/encrypted mails EasyPG Assistant provides a minor mode @code{epa-mail-mode} to help user compose inline OpenPGP messages. Inline OpenPGP is a traditional @@ -361,13 +416,56 @@ whether to sign, and which key(s) to sign with. @end table @node Encrypting/decrypting gpg files -@section Encrypting/decrypting gpg files +@section Encrypting and Decrypting gpg Files +@cindex encrypting gpg files +@cindex decrypting gpg files +@cindex gpg files, encrypting and decrypting +@cindex automatic file encryption and decryption + By default, every file whose name ends with @file{.gpg} will be treated as encrypted. That is, when you open such a file, the decrypted text is inserted in the buffer rather than encrypted one. Similarly, when you save the buffer to a @file{foo.gpg} file, encrypted data is written. +When you save a buffer to an encrypted file for the first time, EasyPG +Assistant presents you a list of keys in a buffer @file{*Keys*} where +you can select recipients for encryption. @xref{Key management}, for +a description of the format of that buffer. You can streamline this +recipient selection step by customizing variables +@code{epa-file-encrypt-to} and @code{epa-file-select-keys} described +further below in this section. + +@cindex symmetric encryption, passphrase entry for +If you do not select any recipient during this step, EasyPG Assistant +uses symmetric encryption. As a consequence, you have to enter the +passphrase twice for every buffer save and every so often for file +reads, since the GnuPG Agent caches your passphrase for file reads at +least for some time, but not for buffer saves. @xref{Caching +Passphrases}, for more information. + +@cindex public key encryption, passphrase entry for +If you have created your own keypair@footnote{For encryption and +decryption of files you do not intend to share, you do not have to use +an email address as recipient during creation of the keypair. You can +also use some free-form string that gives information on the use of +the keypair, like @code{backup} or @code{account database}.}, you can +select that as recipient, and EasyPG Assistant will use public key +encryption for that file. Since GnuPG performs encryption with your +public key, it does not prompt for a passphrase for the buffer save, +but it will prompt for your passphrase for file reads every now and +then, depending on the GnuPG Agent cache configuration. + +@cindex temporary files created by easypg assistant +To encrypt and decrypt files as described above EasyPG Assistant under +certain circumstances uses intermediate temporary files that contain the +plain-text contents of the files it processes. EasyPG Assistant +creates them below the directory returned by function +@code{temporary-file-directory} (@pxref{Unique File Names, , +Generating Unique File Names, elisp, GNU Emacs Lisp Reference +Manual}). If you want to be sure not to leave any plain-text traces, +use an encrypted file systems at least for that directory. + The file name pattern for encrypted files can be controlled by @code{epa-file-name-regexp}. @@ -404,11 +502,11 @@ You can also change the default behavior with the variable Control whether or not to pop up the key selection dialog. @end defvar -For frequently visited files, it might be a good idea to tell Emacs -which encryption method should be used through @xref{File Variables, , -, emacs, the Emacs Manual}. Use the @code{epa-file-encrypt-to} local -variable for this. @vindex epa-file-encrypt-to +For frequently visited files, it might be a good idea to tell Emacs +which encryption method should be used through file variables +(@pxref{File Variables, , Local Variables in Files, emacs, The Emacs +Editor}). Use the @code{epa-file-encrypt-to} local variable for this. For example, if you want an Elisp file to be encrypted with a public key associated with an email address @samp{ueno@@unixuser.org}, @@ -436,6 +534,11 @@ behavior are below. @defvar epa-file-cache-passphrase-for-symmetric-encryption If non-@code{nil}, cache passphrase for symmetric encryption. The default value is @code{nil}. + +For security reasons, this option is turned off by default and not +recommended to be used. Instead, consider using the GnuPG Agent, which +in many cases can do the same job, and does it in a safer way. +@xref{Caching Passphrases}, for more information. @end defvar @defvar epa-file-inhibit-auto-save @@ -444,7 +547,9 @@ The default value is @code{t}. @end defvar @node Querying a key server -@section Querying a key server +@section Querying a Key Server +@cindex query key server +@cindex key server, querying The @code{epa-search-keys} command can be used to query a @acronym{GPG} key server. Emacs will then pop up a buffer that lists @@ -457,14 +562,23 @@ into your key ring). The @code{epa-keyserver} variable says which server to query. - @node GnuPG version compatibility -@chapter GnuPG version compatibility - -As of February 2016, there are three active branches of GnuPG: 2.1, -2.0, and 1.4. All those branches should work flawlessly with Emacs -with basic use-cases. They have, however, some incompatible -characteristics, which might be visible when used from Emacs. +@chapter GnuPG Version Compatibility +@cindex gnupg version compatibility +@cindex version compatibility with gnupg +@cindex compatibility with gnupg + +As of June 2023, there are three active branches of GnuPG: 2.4, 2.2, +and 1.4. GnuPG versions 2.4.1 and later suffer from +@uref{https://dev.gnupg.org/T6481, GnuPG bug T6481} and are hardly +usable with Emacs. There is a patch for that bug available at least +for GnuPG version 2.4.1, which your operating system or distribution +might provide already. GnuPG 1.4 is considered a legacy version. + +Besides that, all of those branches mentioned above should work +flawlessly with Emacs with basic use-cases. They have, however, some +incompatible characteristics, which might be visible when used from +Emacs. @itemize @item @@ -473,58 +587,127 @@ means, a key created with GnuPG 2.1 is not visible with 1.4. @item GnuPG 2.1 uses a fixed address for the Unix domain socket used to -communicate with gpg-agent. The @code{GPG_AGENT_INFO} environment -variable, which is used by GnuPG 2.0 and 1.4, is ignored. That means, -if your system has both GnuPG 2.1 and 1.4, the gpg command from GnuPG -1.4 is not able to use gpg-agent provided by 2.1 (at least out of box). +communicate with @command{gpg-agent}. The @code{GPG_AGENT_INFO} +environment variable, which is used by GnuPG 2.0 and 1.4, is ignored. +That means, if your system has both GnuPG 2.1 and 1.4, the gpg command +from GnuPG 1.4 is not able to use @command{gpg-agent} provided by 2.1 +(at least out of box). @item GnuPG 2.1 (2.1.5 or later) has a mechanism to direct the Pinentry -password prompt to the Emacs minibuffer@footnote{To enable this -feature, add @samp{allow-emacs-pinentry} to -@file{~/.gnupg/gpg-agent.conf} and let gpg-agent reload the -configuration, with: @samp{gpgconf --reload gpg-agent}}, which would -be useful when you use Emacs remotely or from a text-only terminal. -That feature is not available in other versions, and more -specifically, with 2.0 (as of 2.0.29), there is no way to avoid the -graphical prompt. +password prompt to the Emacs minibuffer. @xref{GnuPG Pinentry}. @end itemize +@node GnuPG Pinentry +@chapter GnuPG Pinentry +@cindex gnupg pinentry +@cindex pinentry provided by gnupg + +An important component of the GnuPG suite is the Pinentry, which +allows for secure entry of passphrases requested by GnuPG. GnuPG +delivers various different programs as Pinentry, ranging from bland +TTY-only @command{pinentry-tty} to fancy graphical dialogs for various +desktop environments, like @command{pinentry-gnome3}. Your operating +system usually determines which of these is used by default. + +Note that the selection of a concrete Pinentry program determines only +@emph{how} GnuPG queries for passphrases and not @emph{how often}. +For the latter question see @ref{Caching Passphrases}. + +@cindex pinentry, emacs as +With some configuration Emacs can also play the role of a Pinentry. +The most natural choice, available with GnuPG 2.1.5 and later, is to +use Emacs itself as Pinentry for requests that are triggered by Emacs. +For example, if you open a file whose name ends with @file{.gpg} using +automatic decryption, you most likely also want to enter the +passphrase for that request in Emacs. + +@cindex loopback pinentry +This so called @dfn{loopback Pinentry} has the added benefit that it +works also when you use Emacs remotely or from a text-only terminal. +To enable it: + +@enumerate +@item +@vindex allow-loopback-pinentry +Ensure that option @code{allow-loopback-pinentry} is configured for +@command{gpg-agent}, which should be the default. @xref{Agent +Options, , Option Summary, gnupg, Using the GNU Privacy Guard}. + +@item +@vindex epg-pinentry-mode +Customize variable @code{epg-pinentry-mode} to @code{loopback} in +Emacs. +@end enumerate + +There are other options available to use Emacs as Pinentry, you might +come across a Pinentry called @command{pinentry-emacs} or +@command{gpg-agent} option @code{allow-emacs-pinentry}. However, +these are considered insecure or semi-obsolete and might not be +supported by your operating system or distribution. For example, +Debian GNU/Linux supports only the loopback Pinentry described above. + +@ignore +In case somebody requests these: + +Use Emacs for all GnuPG requests: + +Make @command{pinentry-emacs} the default Pinentry by means of your +operating system. Install package @file{pinentry.el} from GNU ELPA +and execute @kbd{M-x pinentry-start} to start the Emacs Pinentry +service. @emph{All} GnuPG passphrase requests should then result in a +minibuffer prompt in the running Emacs. If Emacs or the Emacs +Pinentry service are not running, passphrase requests fail. + +Use Emacs for all GnuPG requests with other Pinentry as fallback: + +Ensure the other Pinentry supports Emacs; @command{pinentry-curses} +does, for example. Configure @command{gpg-agent} option +@code{allow-emacs-pinentry}. Set environment variable +@code{INSIDE_EMACS} for the calling process. Install package +@file{pinentry.el}. Now if Emacs is running and @kbd{M-x +pinentry-start} has been executed, all GnuPG passphrase requests +should result in a minibuffer prompt in the running Emacs. If Emacs +or the Emacs Pinentry service are not running, GnuPG uses the other +Pinentry instead. +@end ignore + @node Caching Passphrases @chapter Caching Passphrases +@cindex caching passphrases +@cindex entering passphrases +@cindex passphrases, entering and caching Typing passphrases is a troublesome task if you frequently open and close the same file. GnuPG and EasyPG Assistant provide mechanisms to remember your passphrases for a limited time. Using these, you only -need to re-enter the passphrase occasionally. -However, the configuration is a bit -confusing since it depends on your GnuPG installation@xref{GnuPG -version compatibility}, encryption method (symmetric or public key), -and whether or not you want to use gpg-agent. Here are some -questions: +need to re-enter the passphrase occasionally. However, the +configuration is a bit confusing since it depends on your GnuPG +installation (@pxref{GnuPG version compatibility}), encryption method +(symmetric or public key), and whether or not you want to use +GnuPG Agent. As an additional constraint, use of the GnuPG Agent is +mandatory for GnuPG 2.0 and later. Here are some questions: @enumerate -@item Do you use GnuPG version 2.1 or 2.0 instead of GnuPG version 1.4? +@item Do you use GnuPG version 2.0 or later instead of GnuPG version 1.4? @item Do you use symmetric encryption rather than public key encryption? -@item Do you want to use gpg-agent? +@item Do you want to use GnuPG Agent? @end enumerate Here are configurations depending on your answers: @multitable {111} {222} {333} {configuration configuration configuration} @item @b{1} @tab @b{2} @tab @b{3} @tab Configuration -@item Yes @tab Yes @tab Yes @tab Set up gpg-agent. -@item Yes @tab Yes @tab No @tab You can't, without gpg-agent. -@item Yes @tab No @tab Yes @tab Set up gpg-agent. -@item Yes @tab No @tab No @tab You can't, without gpg-agent. -@item No @tab Yes @tab Yes @tab Set up elisp passphrase cache. -@item No @tab Yes @tab No @tab Set up elisp passphrase cache. -@item No @tab No @tab Yes @tab Set up gpg-agent. -@item No @tab No @tab No @tab You can't, without gpg-agent. +@item Yes @tab Yes @tab Must @tab Set up GnuPG Agent. +@item Yes @tab No @tab Must @tab Set up GnuPG Agent. +@item No @tab Yes @tab Yes @tab Set up elisp passphrase cache. +@item No @tab Yes @tab No @tab Set up elisp passphrase cache. +@item No @tab No @tab Yes @tab Set up GnuPG Agent. +@item No @tab No @tab No @tab You can't, without GnuPG Agent. @end multitable -To set up gpg-agent, follow the instruction in GnuPG manual. -@pxref{Invoking GPG-AGENT, , Invoking GPG-AGENT, gnupg}. +To set up GnuPG Agent, follow the instruction in @ref{Invoking +GPG-AGENT, , , gnupg, Using the GNU Privacy Guard}. To set up elisp passphrase cache, set @code{epa-file-cache-passphrase-for-symmetric-encryption}. @@ -532,11 +715,13 @@ To set up elisp passphrase cache, set @node Bug Reports @chapter Bug Reports +@cindex bug reports +@cindex reporting bugs Bugs and problems with EasyPG Assistant are actively worked on by the Emacs development team. Feature requests and suggestions are also -more than welcome. Use @kbd{M-x report-emacs-bug}, @pxref{Bugs, , -Bugs, emacs, Reporting Bugs}. +more than welcome. Use @kbd{M-x report-emacs-bug}, see @ref{Bugs, , +Reporting Bugs, emacs, The Emacs Editor}. When submitting a bug report, please try to describe in excruciating detail the steps required to reproduce the problem. Also try to @@ -556,6 +741,10 @@ buffer name is a whitespace. @appendix GNU Free Documentation License @include doclicense.texi +@node Concept Index +@unnumbered Concept Index +@printindex cp + @node Key Index @unnumbered Key Index @printindex ky diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi index 8006f1641503..653e589c8feb 100644 --- a/doc/misc/erc.texi +++ b/doc/misc/erc.texi @@ -2,15 +2,17 @@ @c %**start of header @setfilename ../../info/erc.info @settitle ERC Manual +@set ERCVER 5.5.0.29.1 +@set ERCDIST as distributed with Emacs @value{EMACSVER} @include docstyle.texi @syncodeindex fn cp @include emacsver.texi @c %**end of header @copying -This manual is for ERC as distributed with Emacs @value{EMACSVER}. +This manual is for ERC @value{ERCVER} @value{ERCDIST}. -Copyright @copyright{} 2005--2023 Free Software Foundation, Inc. +Copyright @copyright{} 2005--2024 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -76,7 +78,9 @@ Getting Started Advanced Usage * Connecting:: Ways of connecting to an IRC server. +* SASL:: Authenticating via SASL. * Sample Configuration:: An example configuration file. +* Integrations:: Integrations available for ERC. * Options:: Options that are available for ERC. @end detailmenu @@ -86,9 +90,31 @@ Advanced Usage @chapter Introduction ERC is a powerful, modular, and extensible IRC client for Emacs. -It is distributed with Emacs since version 22.1. +It has been included in Emacs since 2006 (@pxref{History}) and is also +available on GNU ELPA. -It comes with the following capabilities enabled by default. +IRC is short for Internet Relay Chat. When using IRC, you can +communicate with other users on the same IRC network. There are many +different networks---if you search for ``IRC networks'' in your +favorite search engine, you will find up-to-date lists of IRC networks +catering to various interests and topics. + +To use IRC, you need an IRC client such as ERC. Using the client, you +connect to an IRC server. Once you've done that, you will have access +to all available channels on that server's network. A channel is +basically a chat room, and what you type in a channel will be shown to +all other users in that channel. You can be in several channels at +the same time---ERC will show each channel in its own buffer. + +IRC channel names always begin with a @samp{#} character. For +example, the Emacs channel on Libera.Chat is @samp{#emacs}, and the +ERC channel is @samp{#erc}. Do not confuse them with the hashtags +used on many social media platforms. + +You can also send private messages to other IRC users on the same +network, even if they are not in the same channels as you. + +ERC comes with the following capabilities enabled by default. @itemize @bullet @item Flood control @@ -112,7 +138,11 @@ It comes with the following capabilities enabled by default. @cindex settings The command @kbd{M-x erc} will start ERC and prompt for the server to -connect to. +connect to. If you're unsure of which server or network to connect +to, we suggest starting with ``irc.libera.chat''. There you will find +the @samp{#emacs} channels where you can chat with other Emacs users, +and if you're having trouble with ERC, you can join the @samp{#erc} +channel and ask for help there. If you want to place ERC settings in their own file, you can place them in @file{~/.emacs.d/.ercrc.el}, creating it if necessary. @@ -362,8 +392,15 @@ modules are loaded. There is a spiffy customize interface, which may be reached by typing @kbd{M-x customize-option @key{RET} erc-modules @key{RET}}. -Alternatively, set @code{erc-modules} manually and then call -@code{erc-update-modules}. +When removing a module outside of the Custom ecosystem, you may wish +to ensure it's disabled by invoking its associated minor-mode toggle +with a nonpositive prefix argument, for example, @kbd{C-u - M-x +erc-spelling-mode @key{RET}}. Additionally, if you plan on loading +third-party modules that perform atypical setup on activation, you may +need to arrange for calling @code{erc-update-modules} in your init +file. Examples of such setup might include registering an +@code{erc-before-connect} hook, advising @code{erc-open}, and +modifying @code{erc-modules} itself. The following is a list of available modules. @@ -451,6 +488,10 @@ Replace text in messages @item ring Enable an input history +@cindex modules, sasl +@item sasl +Enable SASL authentication + @cindex modules, scrolltobottom @item scrolltobottom Scroll to the bottom of the buffer @@ -489,6 +530,67 @@ Translate morse code in messages @end table +@anchor{Required Modules} +@subheading Required Modules +@cindex required modules + +Note that some modules are essential to core IRC operations and thus +not listed above. You can nevertheless still remove these, but doing +so demands special precautions to avoid degrading the user experience. +At present, the only such module is @code{networks}, whose library ERC +always loads anyway. + +@anchor{Local Modules} +@subheading Local Modules +@cindex local modules + +All modules operate as minor modes under the hood, and some newer ones +may be defined as buffer-local. These so-called ``local modules'' are +a work in progress and their behavior and interface are subject to +change. As of ERC 5.5, the only practical differences are as follows: + +@enumerate +@item +``Control variables,'' like @code{erc-sasl-mode}, retain their values +across IRC sessions and override @code{erc-module} membership when +influencing module activation. +@item +Removing a local module from @code{erc-modules} via Customize not only +disables its mode but also kills its control variable in all ERC +buffers. +@item +``Mode toggles,'' like @code{erc-sasl-mode} and the complementary +@code{erc-sasl-enable}/@code{erc-sasl-disable} pairing, behave +differently than their global counterparts. +@end enumerate + +In target buffers, a local module's activation state survives +``reassociation'' by default, but modules themselves always have the +final say. For example, a module may reset all instances of itself in +its network context upon reconnecting. Moreover, the value of a mode +variable may be meaningless in buffers that its module has no interest +in. For example, the value of @code{erc-sasl-mode} doesn't matter in +target buffers and may even remain non-@code{nil} after SASL has been +disabled for the current connection (and vice versa). + +When it comes to server buffers, a module's activation state only +persists for sessions revived via the automatic reconnection mechanism +or a manual @samp{/reconnect} issued at the prompt. In other words, +this doesn't apply to sessions revived by an entry-point command, such +as @code{erc-tls}, because such commands always ensure a clean slate +by looking only to @code{erc-modules}. Although a session revived in +this manner may indeed harvest other information from a previous +server buffer, it simply doesn't care which modules might have been +active during that connection. + +Lastly, a local mode's toggle command, like @code{erc-sasl-mode}, only +affects the current buffer, but its ``non-mode'' cousins, like +@code{erc-sasl-enable} and @code{erc-sasl-disable}, operate on all +buffers belonging to their connection (when called interactively). +And unlike global toggles, none of these ever mutates +@code{erc-modules}. + + @c PRE5_4: Document every option of every module in its own subnode @@ -498,8 +600,20 @@ Translate morse code in messages @menu * Connecting:: Ways of connecting to an IRC server. +* SASL:: Authenticating via SASL. * Sample Configuration:: An example configuration file. +* Integrations:: Integrations available for ERC. * Options:: Options that are available for ERC. + +@detailmenu +--- Detailed Node Listing --- + +Integrations + +* URL:: Opening IRC URLs in ERC. +* auth-source:: Retrieving auth-source entries with ERC. + +@end detailmenu @end menu @node Connecting @@ -518,20 +632,27 @@ Non-interactively, it takes the following keyword arguments. @item @var{server} @item @var{port} @item @var{nick} +@item @var{user} @item @var{password} @item @var{full-name} +@item @var{id} @end itemize -That is, if called with the following arguments, @var{server} and -@var{full-name} will be set to those values, whereas -@code{erc-compute-port} and @code{erc-compute-nick} will be invoked -for the values of the other parameters. +For example, calling the command like so -@example +@example lisp (erc :server "irc.libera.chat" :full-name "J. Random Hacker") @end example + +@noindent +sets @var{server} and @var{full-name} directly while leaving the rest +up to functions like @code{erc-compute-port}. Note that some +arguments can't be specified interactively. @var{id}, in particular, +is rarely needed (@pxref{Network Identifier}). + @end defun +@noindent To connect securely over an encrypted TLS connection, use @kbd{M-x erc-tls}. @@ -543,21 +664,26 @@ Non-interactively, it takes the following keyword arguments. @item @var{server} @item @var{port} @item @var{nick} +@item @var{user} @item @var{password} @item @var{full-name} +@item @var{id} @item @var{client-certificate} @end itemize -That is, if called with the following arguments, @var{server} and -@var{full-name} will be set to those values, whereas -@code{erc-compute-port} and @code{erc-compute-nick} will be invoked -for the values of the other parameters, and @code{client-certificate} -will be @code{nil}. +That is, if called in the following manner -@example +@example lisp (erc-tls :server "irc.libera.chat" :full-name "J. Random Hacker") @end example +@noindent +the command will set @var{server} and @var{full-name} accordingly, +while helpers, like @code{erc-compute-nick}, will determine other +parameters, and some, like @code{client-certificate}, will just be +@code{nil}. + +@anchor{client-certificate} To use a certificate with @code{erc-tls}, specify the optional @var{client-certificate} keyword argument, whose value should be as described in the documentation of @code{open-network-stream}: if @@ -601,6 +727,8 @@ machine irc.libera.chat key /home/bandali/my-cert.key cert /home/bandali/my-cert @xref{Help for users,,,auth, Emacs auth-source Library}, for more on the @file{.authinfo}/@file{.netrc} backend of @code{auth-source}. +For other uses of auth-source throughout ERC, @pxref{auth-source, +ERC's auth-source integration}. @end defun @subheading Server @@ -692,29 +820,64 @@ ERC should automatically attempt to connect with another nickname. You can manually set another nickname with the /NICK command. @end defopt -@subheading Password -@cindex password +@anchor{username parameter} +@subheading User +@cindex username parameter -@defopt erc-prompt-for-password -If non-@code{nil} (the default), @kbd{M-x erc} prompts for a password. -@end defopt +@defun erc-compute-user &optional user +Determine a suitable value to send as the first argument of the +opening @samp{USER} IRC command by consulting the following sources: -If you prefer, you can set this option to @code{nil} and use the -@code{auth-source} mechanism to store your password. For instance, if -you use @file{~/.authinfo} as your auth-source backend, then put -something like the following in that file: +@itemize +@item +@var{user}, the argument passed to this function +@item +The option @code{erc-email-userid}, assuming @code{erc-anonymous-login} +is non-@code{nil} +@item +The result of calling the function @code{user-login-name} +@end itemize -@example -machine irc.example.net login "#fsf" password sEcReT -@end example +@end defun -@noindent -ERC also consults @code{auth-source} to find any channel keys required -for the channels that you wish to autojoin, as specified by the -variable @code{erc-autojoin-channels-alist}. +@defopt erc-email-userid +A permanent username value to send for all connections. It should be +a string abiding by the rules of the network. +@end defopt + +@anchor{password parameter} +@anchor{server password} +@cindex password, server +@subheading Password -For more details, @pxref{Top,,auth-source, auth, Emacs auth-source Library}. +This parameter was traditionally meant to specify a @dfn{server +password} to be sent along with the IRC @samp{PASS} command. However, +such passwords aren't widely used. Instead, networks typically expect +them, when present, to convey other authentication information. In +the case of account-services (a.k.a., ``NickServ'') credentials, this +typically involves a special syntax, such as @samp{myuser:mypass}. +IRC bouncers often do something similar but include a pre-configured +network-ID component, for example, @samp{bncuser/mynet:bncpass}. + +In general, if you have @emph{not} been asked by your network or +bouncer to specify a repurposed server password, you should instead +consider setting up @samp{services} or, preferably, @samp{sasl}, both +ERC modules (@pxref{Modules}). In addition to performing +network-account authentication, these obviate the need for this +parameter completely, although both can optionally borrow it for their +own purposes. (@xref{SASL, SASL in ERC}.) +@defopt erc-prompt-for-password +If non-@code{nil} (the default), @kbd{M-x erc} and @kbd{M-x erc-tls} +prompt for a server password. This only affects interactive +invocations of @code{erc} and @code{erc-tls}. +@end defopt + +@noindent +If you prefer, you can set this option to @code{nil} and use the +auth-source facility to retrieve a server password, although hitting +@kbd{RET} at the prompt may achieve the same effect. +@xref{auth-source, ERC's auth-source integration}, for more. @subheading Full name @@ -725,10 +888,14 @@ This tries a number of increasingly more default methods until a non-@code{nil} value is found. @itemize @bullet -@item @var{full-name} (the argument passed to this function) -@item The @code{erc-user-full-name} option -@item The value of the IRCNAME environment variable -@item The result from the @code{user-full-name} function +@item +@var{full-name} (the argument passed to this function) +@item +The @code{erc-user-full-name} option +@item +The value of the IRCNAME environment variable +@item +The result from the @code{user-full-name} function @end itemize @end defun @@ -739,6 +906,245 @@ User full name. This can be either a string or a function to call. @end defopt + +@anchor{Network Identifier} +@subheading ID + +ERC uses an abstract designation, called @dfn{network context +identifier}, for referring to a connection internally. While normally +derived from a combination of logical and physical connection +parameters, an ID can also be explicitly provided via an entry-point +command (like @code{erc-tls}). Use this in rare situations where ERC +would otherwise have trouble discerning between connections. + +One such situation might arise when using multiple connections to the +same network with the same nick but different (nonstandard) @samp{device} +identifiers, which some bouncers may support. Another might be when +mimicking the experience offered by popular standalone clients, which +normally offer ``named'' persistent configurations with server buffers +reflecting those names. Yet another use case might involve +third-party code needing to identify a connection unequivocally, but in +a human-friendly way suitable for UI components. + +When providing an ID as an entry-point argument, strings and symbols +make the most sense, but any reasonably printable object is +acceptable. + +@node SASL +@section Authenticating via SASL +@cindex SASL + +Regardless of the mechanism or the network, you'll likely have to be +registered before first use. Please refer to the network's own +instructions for details. If you're new to IRC and using a bouncer, +know that you probably won't be needing SASL for the client-to-bouncer +connection. To get started, just add @code{sasl} to +@code{erc-modules} like any other module. But before that, please +explore all custom options pertaining to your chosen mechanism. + +@defopt erc-sasl-mechanism +The name of an SASL subprotocol type as a @emph{lowercase} symbol. +The value can be one of the following: + +@table @asis +@item @code{plain} and @code{scram} (``password-based'') +Here, ``password'' refers to your account password, which is usually +your @samp{NickServ} password. To make this work, customize +@code{erc-sasl-user} and @code{erc-sasl-password} or specify the +@code{:user} and @code{:password} keyword arguments when invoking +@code{erc-tls}. Note that @code{:user} cannot be given interactively. + +@item @code{external} (via Client TLS Certificate) +This works in conjunction with the @code{:client-certificate} keyword +offered by @code{erc-tls}. Just ensure you've registered your +fingerprint with the network beforehand. The fingerprint is usually a +SHA1 or SHA256 digest in either "normalized" or "openssl" forms. The +first is lowercase without delims (@samp{deadbeef}) and the second +uppercase with colon seps (@samp{DE:AD:BE:EF}). These days, there's +usually a @samp{CERT ADD} command offered by NickServ that can +register you automatically if you issue it while connected with a +client cert. @xref{client-certificate}. + +Additional considerations: +@enumerate +@item +Most IRCds will allow you to authenticate with a client cert but +without the hassle of SASL (meaning you may not need this module). +@item +Technically, @var{EXTERNAL} merely indicates that an out-of-band mode +of authentication is in effect (being deferred to), so depending on +the specific application or service, there's a remote chance your +server has something else in mind. +@end enumerate + +@item @code{ecdsa-nist256p-challenge} +This mechanism is quite complicated and currently requires the +external @samp{openssl} executable, so please use something else if at +all possible. Ignoring that, specify your key file (e.g., +@samp{~/pki/mykey.pem}) as the value of @code{erc-sasl-password}, and +then configure your network settings. On servers running Atheme +services, you can add your public key with @samp{NickServ} like so: + +@example +ERC> /msg NickServ set property \ + pubkey AgGZmlYTUjJlea/BVz7yrjJ6gysiAPaQxzeUzTH4hd5j + +@end example +(You may be able to omit the @samp{property} subcommand.) +@end table + +@end defopt + +@defopt erc-sasl-user +This should be your network account username, typically the same one +registered with nickname services. Specify this when your NickServ +login differs from the @code{:user} you're connecting with. +@xref{username parameter}. +@end defopt + +@defopt erc-sasl-password +As noted elsewhere, the entry-point @code{:password} param was +originally intended for traditional ``server passwords,'' but these +aren't really used any more (@pxref{password parameter}). As such, +this option defaults to borrowing that parameter for its own uses, +thus allowing you to call @code{erc-tls} with @code{:password} set to +your NickServ password. + +You can also set this to a nonemtpy string, and ERC will send that +when needed, no questions asked. Or, if you'd rather use auth-source, +set @code{erc-sasl-auth-source-function} to a function, and ERC will +perform an auth-source query instead. In all cases, ERC will prompt +you for input as a last resort. + +Lastly, if your mechanism is @code{ecdsa-nist256p-challenge}, this +option should instead hold the file name of your key. +@end defopt + +@anchor{SASL auth-source function} +@defopt erc-sasl-auth-source-function +This is nearly identical to the other ERC @samp{auth-source} function +options (@pxref{auth-source functions}) except that the default value +here is @code{nil}, meaning you have to set it to something like +@code{erc-auth-source-search} for queries to be performed. For +convenience, this module provides the following as a possible value: + +@defun erc-sasl-auth-source-password-as-host &rest plist +Setting @code{erc-sasl-auth-source-function} to this function tells +ERC to use @code{erc-sasl-password} for the @code{:host} field when +querying auth-source, even if its value is the default +@code{:password}, in which case ERC knows to ``resolve'' it to +@code{erc-session-password} and use that as long as it's +non-@code{nil}. Otherwise, ERC just defers to +@code{erc-auth-source-search} to determine the @code{:host}, along +with everything else. +@end defun + +As long as this option specifies a function, ERC will pass it the +``resolved'' value of @code{erc-sasl-user} for the auth-source +@code{:user} param. +@end defopt + +@defopt erc-sasl-authzid +In the rarest of circumstances, a network may want you to specify a +specific role or assume an alternate identity. In most cases, this +happens because the server is buggy or misconfigured. If you suspect +such a thing, please contact your network operator. Otherwise, just +leave this set to @code{nil}. +@end defopt + +@subheading Examples + +@itemize @bullet +@item +Defaults + +@lisp +(erc-tls :server "irc.libera.chat" :port 6697 + :nick "aph" + :user "APHacker" + :password "changeme") +@end lisp + +Here, after adding @code{sasl} to @code{erc-modules} via the Customize +interface, you authenticate to Libera.Chat using the @samp{PLAIN} +mechanism and your NickServ credentials, @samp{APHacker} and +@samp{changeme}. + +@item +External + +@lisp +(setopt erc-sasl-mechanism 'external) + +(erc-tls :server "irc.libera.chat" :port 6697 :nick "aph" + :client-certificate + '("/home/aph/my.key" "/home/aph/my.crt")) +@end lisp + +You decide to switch things up and try out the @samp{EXTERNAL} +mechanism. You follow your network's instructions for telling +NickServ about your client-certificate's fingerprint, and you +authenticate successfully. + +@item +Multiple networks + +@example +# ~/.authinfo.gpg + +machine irc.libera.chat key /home/aph/my.key cert /home/aph/my.crt +machine Example.Net login alyssa password sEcReT +machine Example.Net login aph-bot password sesame +@end example + +@lisp +;; init.el + +(defun my-erc-up (network) + (interactive "Snetwork: ") + + (pcase network + ('libera + (let ((erc-sasl-mechanism 'external)) + (erc-tls :server "irc.libera.chat" :port 6697 + :client-certificate t))) + ('example + (let ((erc-sasl-auth-source-function + #'erc-sasl-auth-source-password-as-host)) + (erc-tls :server "irc.example.net" :port 6697 + :user "alyssa" + :password "Example.Net"))))) +@end lisp + +You've started storing your credentials with auth-source and have +decided to try SASL on another network as well. But there's a catch: +this network doesn't support @samp{EXTERNAL}. You use +@code{let}-binding to get around this and successfully authenticate to +both networks. + +@end itemize + +@subheading Troubleshooting + +First and foremost, please know that ERC's SASL offering is currently +limited by a lack of support for proper IRCv3 capability negotiation. +In most cases, this shouldn't affect your ability to authenticate. + +If you're struggling, remember that your SASL password is almost +always your NickServ password. When in doubt, try restoring all SASL +options to their defaults and calling @code{erc-tls} with @code{:user} +set to your NickServ account name and @code{:password} to your +NickServ password. If you're still having trouble, please contact us +(@pxref{Getting Help and Reporting Bugs}). + +As you try out different settings, keep in mind that it's best to +create a fresh session for every change, for example, by calling +@code{erc-tls} from scratch. More experienced users may be able to +get away with cycling @code{erc-sasl-mode} and issuing a +@samp{/reconnect}, but that's generally not recommended. Whatever the +case, you'll probably want to temporarily disable +@code{erc-server-auto-reconnect} while experimenting. + @node Sample Configuration @section Sample Configuration @cindex configuration, sample @@ -800,12 +1206,6 @@ stuff, to the current ERC buffer." (setq erc-autojoin-channels-alist '(("Libera.Chat" "#emacs" "#erc"))) -;; Rename server buffers to reflect the current network name instead -;; of SERVER:PORT (e.g., "Libera.Chat" instead of -;; "irc.libera.chat:6667"). This is useful when using a bouncer like -;; ZNC where you have multiple connections to the same server. -(setq erc-rename-buffers t) - ;; Interpret mIRC-style color commands in IRC chats (setq erc-interpret-mirc-color t) @@ -819,6 +1219,193 @@ stuff, to the current ERC buffer." ;; (setq erc-kill-server-buffer-on-quit t) @end lisp +@node Integrations +@section Integrations +@cindex integrations + +@menu +* auth-source:: Retrieving auth-source entries with ERC. +@end menu + +@anchor{URL} +@subsection URL +@cindex URL + +For anything to work, you'll want to set @code{url-irc-function} to +@code{url-irc-erc}. As a rule of thumb, libraries relying directly on +@code{url-retrieve} should be fine out the box from Emacs 29.1 onward. +On older versions of Emacs, you may need to @code{(require 'erc)} +beforehand. @xref{Retrieving URLs,,, url, URL}. + +For other apps and libraries, such as those relying on the +higher-level @code{browse-url}, you'll oftentimes be asked to specify +a pattern, sometimes paired with a function that accepts a string URL +as a first argument. For example, with EWW, you may need to tack +something like @code{"\\|\\`irc6?s?:"} onto the end of +@code{eww-use-browse-url}. But with @code{gnus-button-alist}, you'll +need a function as well: + +@lisp + '("\\birc6?s?://[][a-z0-9.,@@_:+%?&/#-]+" 0 t browse-url-irc 0) +@end lisp + +@noindent +Users on Emacs 28 and below may need to use @code{browse-url} instead. + +@node auth-source +@subsection auth-source +@cindex auth-source + +You can configure ERC to use the built-in auth-source library for +looking up passwords. @xref{Top,,auth-source, auth, Emacs auth-source +Library}, for general info on setting up various backends, but keep in +mind that some of these may not be compatible. Those currently +supported are netrc, plstore, json, secrets, and pass. To get started +with the default backend, netrc, put a line like the following in your +@file{~/.authinfo.gpg} (or any file named in the option +@code{auth-sources}): + +@example +machine irc.example.net login mynick password sEcReT +@end example + +@subsubheading Server Passwords +When retrieving passwords to accompany the IRC @samp{PASS} command +(@pxref{password parameter}), ERC asks auth-source to match the +@var{server} parameter of @code{erc-tls} against each entry's +@samp{host} field (@w{@code{machine irc.example.net}} in the above +example). Unfortunately, specifying a network, like +@samp{Libera.Chat}, or a specific network server, like +@samp{platinum.libera.chat}, won't normally work for looking up a +server password because that information isn't available during +opening introductions. (Actually, ERC @emph{can} find entries with +arbitrary @samp{host} values for any context, including server +passwords, but that requires customizing the more advanced options +below.) + +If ERC can't find a suitable server password, it will just skip the +IRC @samp{PASS} command altogether, something users may want when +using CertFP or engaging NickServ via ERC's @code{services} module. +If that appeals to you, consider customizing the option +@code{erc-auth-source-server-function} to @code{nil} to skip +server-password lookup for all servers. Note that some networks and +IRCds may accept account-services authentication via server password. +Also, some ERC modules may commandeer the @code{erc-tls} +@var{password} parameter for their own ends, which likely don't +involve a server password. + +@subsubheading The @samp{services} module +You can use auth-source to authenticate to account services the +traditional way through a bot called @samp{NickServ}. To do so, add +@code{services} to @code{erc-modules} and set the option +@code{erc-use-auth-source-for-nickserv-password} to @code{t}. After +that, expect the @samp{user} parameter in relevant auth-source queries +to be your current nickname. + +Most of the time, a query's precise contextual details (such as +whether a nick was granted or forcibly assigned) shouldn't affect how +you define entries in your backend. However, if something isn't quite +working, you may want to investigate the interplay between the option +@code{erc-nickserv-identify-mode} and account services. In +particular, if you find yourself facing nicks suffixed with an +@code{erc-nick-uniquifier} (the infamous @samp{`}), check that the +network's entry in @code{erc-nickserv-alist} is up to date, and do let +us know if something's off (@pxref{Getting Help and Reporting Bugs}). +Of course, if you've had your fill of fiddling with this module, +consider switching to SASL for what's likely a more consistent +auth-source experience. (@xref{SASL}.) + +@subsubheading Default query behavior +When preparing entries for your backend, it may help to get a feel for +how ERC and its modules conduct searches, especially when exploring a +new context, such as channel keys. (Hint: in such situations, try +temporarily setting the variable @code{auth-source-debug} to @code{t} +and checking @file{*Messages*} periodically for insights into how +auth-source is operating.) Overall, though, ERC tries to be +consistent in performing queries across various authentication +contexts. Here's what to expect with respect to the @samp{host} +field, which, by default, most heavily influences the fate of a query: + +@enumerate +@item +entries featuring custom identifiers and networks are matched first +(@pxref{Network Identifier}) +@item +followed by network-specific servers +@item +and, finally, dialed endpoints (typically the @var{server} argument +passed to @code{erc-tls}) +@end enumerate + +@noindent +The following netrc-style entries appear in order of precedence: + +@example +machine Libera/cellphone login MyNick password sEcReT +machine Libera.Chat login MyNick password sEcReT +machine zirconium.libera.chat login MyNick password sEcReT +machine irc.libera.chat login MyNick password sEcReT +@end example + +@noindent +Remember that field labels vary per backend, so @samp{machine} (in +netrc's case) maps to auth-source's generalized notion of a host, +hence the @samp{:host} keyword parameter to @code{auth-source-search}. +Also, be sure to mind the syntax of your chosen backend medium. For +example, always quote channel names in a netrc file. + +Lastly, if this all seems overly nuanced or just plain doesn't appeal +to you, please see options @code{erc-auth-source-services-function} +and friends, described just below. + +@subsubheading Custom query functions +These let you query auth-source your way. Most users can +simply ignore the passed-in arguments and get by with something like +the following: + +@lisp +(defun my-fancy-auth-source-func (&rest _) + (let* ((host (read-string "host: " nil nil "default")) + (pass (auth-source-pick-first-password :host host))) + (if (and pass (string-search "libera" host)) + (concat "MyNick:" pass) + pass))) +@end lisp + +@anchor{auth-source functions} +@defopt erc-auth-source-server-function +@end defopt +@defopt erc-auth-source-services-function +@end defopt +@defopt erc-auth-source-join-function + +ERC calls these functions with keyword arguments recognized by +@code{auth-source-search}, namely, those deemed most relevant to the +current context, if any. For example, when identifying to services, +@code{:user} contains your current nickname. Generalized parameter +names, like @code{:user} and @code{:host}, are always preferred over +backend specific ones, like @code{:login} or @code{:machine}. In +return, ERC expects a string if the search succeeds or @code{nil} if +it fails. + +@findex erc-auth-source-search +The default value for all three options is the function +@code{erc-auth-source-search}. It tries to merge relevant contextual +parameters with those provided or discovered from the logical +connection or the underlying transport. + +For using auth-source along with SASL, @pxref{SASL auth-source +function}. +@end defopt + +@subsubheading Channel keys +ERC also consults @code{auth-source} to find ``keys'' that may be +required by certain channels you join. When modifying a traditional +@code{auth-source} entry for this purpose, put the channel name in the +@samp{user} field (for example, @samp{login "#fsf"}, in netrc's case). +The actual key goes in the @samp{password} (or @samp{secret}) field. + + @node Options @section Options @cindex options @@ -864,15 +1451,6 @@ lurkers. The function @code{erc-lurker-p} determines whether a given nickname is considered a lurker. @end defopt -@defopt erc-rename-buffers -If non, @code{nil}, this will rename server buffers to reflect the -current network name instead of IP:PORT - -@example -(setq erc-rename-buffers t) -@end example -@end defopt - @node Getting Help and Reporting Bugs @chapter Getting Help and Reporting Bugs @cindex help, getting @@ -886,6 +1464,7 @@ or if you have bugs to report, there are several places you can go. @item @uref{https://www.emacswiki.org/emacs/ERC} is the emacswiki.org page for ERC@. Anyone may add tips, hints, etc.@: to it. +If you do so, please help keep it up to date. @item You can ask questions about using ERC on the Emacs mailing list, @@ -894,10 +1473,36 @@ You can ask questions about using ERC on the Emacs mailing list, @item You can visit the IRC Libera.Chat channel @samp{#emacs}. Many of the contributors are frequently around and willing to answer your -questions. +questions. You can also try the relatively quiet @samp{#erc}, on the +same network, for more involved questions. + +@item +@anchor{Upgrading} +You can check GNU ELPA between Emacs releases to see if a newer +version is available that might contain a fix for your issue: +@uref{https://elpa.gnu.org/packages/erc.html}. + +To upgrade, run @kbd{M-x list-packages @key{RET}}. In the +@file{*Packages*} (@code{package-menu-mode}) buffer, click the +@samp{erc} package link for the desired version. If unsure, or if the +version column is too narrow to tell, try the bottom-most candidate. +In the resulting @code{help-mode} buffer, confirm the version and +click @samp{Install}. Make sure to restart Emacs before reconnecting +to IRC, and don't forget that you can roll back to the previous +version by running @kbd{M-x package-delete @key{RET}}. +@xref{Packages,,,emacs, the Emacs manual} for more information. + +In the rare instance you need an emergency fix or have volunteered to +test an edge feature between ERC releases, you can try adding +@samp{("devel" . "https://elpa.gnu.org/devel/")} to +@code{package-archives} prior to performing the steps above. For +this, you'll want to instead select a ``snapshot'' version from the +menu. Please be aware that when going this route, the latest changes +may not yet be available and you run the risk of incurring other bugs +and encountering unstable features. @item -To report a bug in ERC, use @kbd{M-x report-emacs-bug}. +To report a bug in ERC, use @kbd{M-x erc-bug}. @end itemize diff --git a/doc/misc/ert.texi b/doc/misc/ert.texi index 23e80c5305b9..e10b8e3a7b4b 100644 --- a/doc/misc/ert.texi +++ b/doc/misc/ert.texi @@ -15,7 +15,7 @@ @end direntry @copying -Copyright @copyright{} 2008, 2010--2023 Free Software Foundation, Inc. +Copyright @copyright{} 2008, 2010--2024 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -109,6 +109,7 @@ Appendix @end menu @end ifnottex + @node Introduction @chapter Introduction @cindex introduction to ERT @@ -123,7 +124,7 @@ commands to run them to verify whether the definitions that are currently loaded in Emacs pass the tests. Some Lisp files have comments like the following (adapted from the -package @code{pp.el}): +package @file{pp.el}): @lisp ;; (pp-to-string '(quote quote)) ; expected: "'quote" @@ -320,7 +321,7 @@ Show the list of @code{should} forms executed in the test @kindex m@r{, in ert results buffer} @findex ert-results-pop-to-messages-for-test-at-point Show any messages that were generated (with the Lisp function -@code{message}) in in a test or any of the code that it invoked +@code{message}) in a test or any of the code that it invoked (@code{ert-results-pop-to-messages-for-test-at-point}). @item L @@ -358,6 +359,7 @@ Prompt for a test and then show its documentation. @end table + @node Running Tests in Batch Mode @section Running Tests in Batch Mode @cindex running tests in batch mode @@ -375,7 +377,7 @@ emacs -batch -l ert -l my-tests.el -f ert-run-tests-batch-and-exit @end example This command will start up Emacs in batch mode, load ERT, load -@code{my-tests.el}, and run all tests defined in it. It will exit +@file{my-tests.el}, and run all tests defined in it. It will exit with a zero exit status if all tests passed, or nonzero if any tests failed or if anything else went wrong. It will also print progress messages and error diagnostics to standard output. @@ -390,12 +392,37 @@ summary as shown below: emacs -batch -l ert -f ert-summarize-tests-batch-and-exit output.log @end example +@vindex ert-batch-print-level +@vindex ert-batch-print-length +ERT attempts to limit the output size for failed tests by choosing +conservative values for @code{print-level} and @code{print-length} +when printing Lisp values. This can in some cases make it difficult +to see which portions of those values are incorrect. Use +@code{ert-batch-print-level} and @code{ert-batch-print-length} +to customize that: + +@example +emacs -batch -l ert -l my-tests.el \ + --eval "(let ((ert-batch-print-level 10) \ + (ert-batch-print-length 120)) \ + (ert-run-tests-batch-and-exit))" +@end example + +@vindex ert-batch-backtrace-line-length +Even modest settings for @code{print-level} and @code{print-length} +can produce extremely long lines in backtraces, however, with +attendant pauses in execution progress. Set +@code{ert-batch-backtrace-line-length} to @code{t} to use the value of +@code{backtrace-line-length}, @code{nil} to stop any limitations on +backtrace line lengths (that is, to get full backtraces), or a +positive integer to limit backtrace line length to that number. + @vindex ert-quiet By default, ERT in batch mode is quite verbose, printing a line with result after each test. This gives you progress information: how many tests have been executed and how many there are. However, in some cases this much output may be undesirable. In this case, set -@code{ert-quiet} variable to a non-nil value: +@code{ert-quiet} variable to a non-@code{nil} value: @example emacs -batch -l ert -l my-tests.el \ @@ -414,10 +441,22 @@ emacs -batch -l ert -l my-tests.el \ -eval '(ert-run-tests-batch-and-exit "to-match")' @end example +@vindex EMACS_TEST_VERBOSE@r{, environment variable} By default, ERT test failure summaries are quite brief in batch mode---only the names of the failed tests are listed. If the -EMACS_TEST_VERBOSE environment variable is set, the failure summaries -will also include the data from the failing test. +@env{EMACS_TEST_VERBOSE} environment variable is set and is non-empty, +the failure summaries will also include the data from the failing +test. + +@vindex EMACS_TEST_JUNIT_REPORT@r{, environment variable} +ERT can produce JUnit test reports in batch mode. If the environment +variable @env{EMACS_TEST_JUNIT_REPORT} is set, ERT will produce for +every test package @file{my-tests.el} a corresponding JUnit test +report @file{my-tests.xml}. The function +@code{ert-summarize-tests-batch-and-exit} collects all these package +test reports into a new JUnit test report, with the respective name of +that environment variable. + @node Test Selectors @section Test Selectors @@ -486,8 +525,10 @@ to find where a test was defined if the test was loaded from a file. * Expected Failures:: Tests for known bugs. * Tests and Their Environment:: Don't depend on customizations; no side effects. * Useful Techniques:: Some examples. +* erts files:: Files containing many buffer tests. @end menu + @node The @code{should} Macro @section The @code{should} Macro @@ -768,6 +809,121 @@ for testing. Usually, this makes the interfaces easier to use as well. +@node erts files +@section erts files + +@findex ert-test-erts-file +Many relevant Emacs tests depend on comparing the contents of a buffer +before and after executing a particular function. These tests can be +written the normal way---making a temporary buffer, inserting the +``before'' text, running the function, and then comparing with the +expected ``after'' text. However, this often leads to test code +that's pretty difficult to read and write, especially when the text in +question is multi-line. + +So ert provides a function called @code{ert-test-erts-file} that takes +two parameters: the name of a specially-formatted @dfn{erts} file, and +(optionally) a function that performs the transform. + +@findex erts-mode +These erts files can be edited with the @code{erts-mode} major mode. + +An erts file is divided into sections by the (@samp{=-=}) separator. + +Here's an example file containing two tests: + +@example +Name: flet + +=-= +(cl-flet ((bla (x) +(* x x))) +(bla 42)) +=-= +(cl-flet ((bla (x) + (* x x))) + (bla 42)) +=-=-= + +Name: defun + +=-= +(defun x () + (print (quote ( thingy great + stuff)))) +=-=-= +@end example + +A test starts with a line containing just @samp{=-=} and ends with a +line containing just @samp{=-=-=}. The test may be preceded by +freeform text (for instance, comments), and also name/value pairs (see +below for a list of them). + +If there is a line with @samp{=-=} inside the test, that designates +the start of the ``after'' text. Otherwise, the ``before'' and +``after'' texts are assumed to be identical, which you typically see +when writing indentation tests. + +@code{ert-test-erts-file} puts the ``before'' section into a temporary +buffer, calls the transform function, and then compares with the +``after'' section. + +Here's an example usage: + +@lisp +(ert-test-erts-file "elisp.erts" + (lambda () + (emacs-lisp-mode) + (indent-region (point-min) (point-max)))) +@end lisp + +A list of the name/value specifications that can appear before a test +follows. The general syntax is @samp{Name: Value}, but continuation +lines can be used (along the same lines as in mail---subsequent lines +that start with a space are part of the value). + +@example +Name: foo +Code: (indent-region + (point-min) (point-max)) +@end example + +@table @samp +@item Name +All tests should have a name. This name will appear in ERT output if +the test fails, and helps to identify the failing test. + +@item Code +This is the code that will be run to do the transform. This can also +be passed in via the @code{ert-test-erts-file} call, but @samp{Code} +overrides that. It's used not only in the following test, but in all +subsequent tests in the file (until overridden by another @samp{Code} +specification). + +@item No-Before-Newline +@itemx No-After-Newline +These specifications say whether the ``before'' or ``after'' portions +have a newline at the end. (This would otherwise be impossible to +specify.) + +@item Point-Char +Sometimes it's useful to be able to put point at a specific place +before executing the transform function. @samp{Point-Char: |} will +make @code{ert-test-erts-file} place point where @samp{|} is in the +``before'' form (and remove that character), and will check that it's +where the @samp{|} character is in the ``after'' form (and issue a +test failure if that isn't the case). (This is used in all subsequent +tests, unless overridden by a new @samp{Point-Char} spec.) + +@item Skip +If this is present and value is a form that evaluates to a +non-@code{nil} value, the test will be skipped. +@end table + +If you need to use the literal line single line @samp{=-=} in a test +section, you can quote it with a @samp{\} character. + + @node How to Debug Tests @chapter How to Debug Tests @@ -969,6 +1125,7 @@ For information on mocks, stubs, fixtures, or test suites, see below. * Fixtures and Test Suites:: How ERT differs from tools for other languages. @end menu + @node Mocks and Stubs @section Other Tools for Emacs Lisp @cindex mocks and stubs @@ -1043,11 +1200,13 @@ e.g., to run quick tests during interactive development and slow tests less often. This can be achieved with the @code{:tag} argument to @code{ert-deftest} and @code{tag} test selectors. + @node Index @unnumbered Index @printindex cp + @node GNU Free Documentation License @appendix GNU Free Documentation License @include doclicense.texi diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi index 6c9fd89077b1..73607ab5a991 100644 --- a/doc/misc/eshell.texi +++ b/doc/misc/eshell.texi @@ -4,13 +4,13 @@ @settitle Eshell: The Emacs Shell @include docstyle.texi @defindex cm -@synindex vr fn +@syncodeindex vr fn @c %**end of header @copying This manual is for Eshell, the Emacs shell. -Copyright @copyright{} 1999--2023 Free Software Foundation, Inc. +Copyright @copyright{} 1999--2024 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -64,10 +64,11 @@ modify this GNU manual.'' Eshell is a shell-like command interpreter implemented in Emacs Lisp. It invokes no external processes except for those requested by the -user. It is intended to be an alternative to the IELM (@pxref{Lisp Interaction, Emacs Lisp Interaction, , emacs, The Emacs Editor}) -REPL for Emacs @emph{and} with an interface similar to command shells -such as @command{bash}, @command{zsh}, @command{rc}, or -@command{4dos}. +user. It is intended to be an alternative to the IELM (@pxref{Lisp +Interaction, , , emacs, The Emacs Editor}) REPL@footnote{Short for +``Read-Eval-Print Loop''.} for Emacs @emph{and} with an interface +similar to command shells such as @command{bash}, @command{zsh}, +@command{rc}, or @command{4dos}. @c This manual is updated to release 2.4 of Eshell. @insertcopying @@ -140,7 +141,7 @@ computer frequently enough, it is more than worthwhile in the long run. Any tool you use often deserves the time spent learning to master it. @footnote{For the understandably curious, here is what that command looks like: But don't let it fool you; once you know what's going on, -it's easier than it looks: @code{ls -lt **/*.doc(Lk+50aM+5)}.} +it's easier than it looks: @code{ls -lt **/*.doc(Lk+100aM+6)}.} @menu * Contributors to Eshell:: People who have helped out! @@ -193,57 +194,224 @@ In a command shell, everything is done by invoking commands. This chapter covers command invocations in Eshell, including the command history and invoking commands in a script file. +Unlike regular system shells, Eshell never invokes kernel functions +directly, such as @code{exec(3)}. Instead, it uses the Lisp functions +available in the Emacs Lisp library. It does this by transforming the +input line into a callable Lisp form.@footnote{To see the Lisp form +that will be invoked, type this as the Eshell prompt: +@kbd{eshell-parse-command 'echo hello'}} + @menu * Invocation:: * Arguments:: * Built-ins:: * Variables:: * Aliases:: +* Remote Access:: * History:: * Completion:: -* for loop:: +* Control Flow:: * Scripts:: @end menu @node Invocation @section Invocation -Unlike regular system shells, Eshell never invokes kernel functions -directly, such as @code{exec(3)}. Instead, it uses the Lisp functions -available in the Emacs Lisp library. It does this by transforming the -input line into a callable Lisp form.@footnote{To see the Lisp form that will be invoked, type: @samp{eshell-parse-command "echo hello"}} +Eshell is both a command shell and an Emacs Lisp @acronym{REPL}. As a +result, you can invoke commands in two different ways: in @dfn{command +form} or in @dfn{Lisp form}. + +You can use the semicolon (@code{;}) to separate multiple command +invocations on a single line, executing each in turn. You can also +separate commands with @code{&&} or @code{||}. When using @code{&&}, +Eshell will execute the second command only if the first succeeds +(i.e.@: has an exit status of 0); with @code{||}, Eshell will execute +the second command only if the first fails. + +A command invocation followed by an ampersand (@code{&}) will be run +in the background. Eshell has no job control, so you can not suspend +or background the current process, or bring a background process into +the foreground. That said, background processes invoked from Eshell +can be controlled the same way as any other background process in +Emacs. + +@subsection Command form +Command form looks much the same as in other shells. A command +consists of arguments separated by spaces; the first argument is the +command to run, with any subsequent arguments being passed to that +command. + +@example +~ $ echo hello +hello +@end example +@cindex order of looking for commands +@cindex command lookup order The command can be either an Elisp function or an external command. -Eshell looks first for an alias (@pxref{Aliases}) with the same name as the -command, then a built-in (@pxref{Built-ins}) or a function with the -same name; if there is no match, it then tries to execute it as an -external command. - -The semicolon (@code{;}) can be used to separate multiple command -invocations on a single line. A command invocation followed by an -ampersand (@code{&}) will be run in the background. Eshell has no job -control, so you can not suspend or background the current process, or -bring a background process into the foreground. That said, background -processes invoked from Eshell can be controlled the same way as any -other background process in Emacs. +Eshell looks for the command in the following order: + +@enumerate +@item +As a command alias (@pxref{Aliases}) + +@item +As a built-in command (@pxref{Built-ins}) + +@item +As an external program + +@item +As an ordinary Lisp function +@end enumerate + +@vindex eshell-prefer-lisp-functions +If you would prefer to use ordinary Lisp functions over external +programs, set the option @code{eshell-prefer-lisp-functions} to +@code{t}. This will swap the lookup order of the last two items. You +can also force Eshell to look for a command as an external program by +prefixing its name with @kbd{*}, like @code{*@var{command}} +(@pxref{Built-ins}). + +You can also group command forms together into a subcommand with curly +braces (@code{@{@}}). This lets you use the output of a subcommand as +an argument to another command, or within control flow statements +(@pxref{Control Flow}). + +@example +~ $ echo @{echo hello; echo there@} +hellothere +@end example + +@subsection Lisp form +Lisp form looks like ordinary Emacs Lisp code, because that's what it +is. As a result, you can use any syntax normally available to an +Emacs Lisp program (@pxref{Top, , , elisp, The Emacs Lisp Reference +Manual}). + +@example +~ $ (format "hello, %s" user-login-name) +hello, user +@end example + +In addition, you can @emph{combine} command forms and Lisp forms +together into single statements, letting you use whatever form is the +most convenient for expressing your intentions. + +@example +~ $ ls *.patch > (format-time-string "%F.log") +@end example + +This command writes a list of all files matching the glob pattern +@code{*.patch} (@pxref{Globbing}) to a file named +@code{@var{current-date}.log} (@pxref{Redirection}). @node Arguments @section Arguments -Command arguments are passed to the functions as either strings or -numbers, depending on what the parser thinks they look like. If you -need to use a function that takes some other data type, you will need to -call it in an Elisp expression (which can also be used with -@ref{Expansion, expansions}). As with other shells, you can -escape special characters and spaces with the backslash (@code{\}) and -apostrophes (@code{''}) and double quotes (@code{""}). This is needed -especially for file names with special characters like pipe -(@code{|}), which could be part of remote file names. +Ordinarily, Eshell parses arguments in command form as either strings +or numbers, depending on what the parser thinks they look like. To +specify an argument of some other data type, you can use a Lisp form +(@pxref{Invocation}): + +@example +~ $ echo (list 1 2 3) +(1 2 3) +@end example + +Additionally, many built-in Eshell commands (@pxref{Built-ins}) will +flatten the arguments they receive, so passing a list as an argument +will ``spread'' the elements into multiple arguments: + +@example +~ $ printnl (list 1 2) 3 +1 +2 +3 +@end example + +@subsection Quoting and escaping +As with other shells, you can escape special characters and spaces by +prefixing the character with a backslash (@samp{\}), or by surrounding +the string with apostrophes (@samp{''}) or double quotes (@samp{""}). +This is needed especially for file names with special characters like +pipe (@samp{|}) or square brackets (@samp{[} or @samp{]}), which could +be part of remote file names. + +When you escape a character with @samp{\} outside of any quotes, the +result is the literal character immediately following it. For +example, @code{\$10} means the literal string @code{$10}. + +Inside of double quotes, most characters have no special meaning. +However, @samp{\}, @samp{"}, and @samp{$} are still special; to escape +them, use backslash as above. Thus, if the value of the variable +@var{answer} is @code{42}, then @code{"The answer is: \"$@var{answer}\""} +returns the string @code{The answer is: "42"}. However, when escaping +characters with no special meaning, the result is the full +@code{\@var{c}} sequence. For example, @code{"foo\bar"} means the +literal string @code{foo\bar}. + +Additionally, when escaping a newline, the whole escape sequence is +removed by the parser. This lets you continue commands across +multiple lines: + +@example +~ $ echo "foo\ +bar" +foobar +@end example + +Inside apostrophes, escaping works differently. All characters +between the apostrophes have their literal meaning except @samp{'}, +which ends the quoted string. To insert a literal apostrophe, you can +use @samp{''}, so @code{'It''s me'} means the literal string +@code{It's me}. + +When using expansions (@pxref{Expansion}) in an Eshell command, the +result may potentially be of any data type. To ensure that the result +is always a string, the expansion can be surrounded by double quotes. + +@subsection Special argument types +In addition to strings and numbers, Eshell supports a number of +special argument types. These let you refer to various other Emacs +Lisp data types, such as lists or buffers. + +@table @code + +@item #'@var{lisp-form} +This refers to the quoted Emacs Lisp form @var{lisp-form}. Though +this looks similar to the ``sharp quote'' syntax for functions +(@pxref{Special Read Syntax, , , elisp, The Emacs Lisp Reference +Manual}), it instead corresponds to @code{quote} and can be used for +any quoted form.@footnote{Eshell would interpret a bare apostrophe +(@code{'}) as the start of a single-quoted string.} + +@item `@var{lisp-form} +This refers to the backquoted Emacs Lisp form @var{lisp-form} +(@pxref{Backquote, , , elisp, The Emacs Lisp Reference Manual}). As +in Emacs Lisp, you can use @samp{,} and @samp{,@@} to refer to +non-constant values. + +@item # +@itemx #<@var{name}> +Return the buffer named @var{name}. This is equivalent to +@samp{$(get-buffer-create "@var{name}")} (@pxref{Creating Buffers, , , +elisp, The Emacs Lisp Reference Manual}). + +@item # +Return the process named @var{name}. This is equivalent to +@samp{$(get-process "@var{name}")} (@pxref{Process Information, , , +elisp, The Emacs Lisp Reference Manual}). + +@end table @node Built-ins @section Built-in commands -Several commands are built-in in Eshell. In order to call the -external variant of a built-in command @code{foo}, you could call -@code{*foo}. Usually, this should not be necessary. You can check -what will be applied by the @code{which} command: +Eshell provides a number of built-in commands, many of them +implementing common command-line utilities, but enhanced for Eshell. +(These built-in commands are just ordinary Lisp functions whose names +begin with @code{eshell/}.) In order to call the external variant of +a built-in command @code{foo}, you could call @code{*foo}. Usually, +this should not be necessary. You can check what will be applied by +the @code{which} command: @example ~ $ which ls @@ -263,16 +431,35 @@ eshell/sudo is a compiled Lisp function in `em-tramp.el'. sudo is an alias, defined as "*sudo $*" @end example -@vindex eshell-prefer-lisp-functions -If you would prefer to use the built-in commands instead of the external -commands, set @code{eshell-prefer-lisp-functions} to @code{t}. - Some of the built-in commands have different behavior from their external counterparts, and some have no external counterpart. Most of these will print a usage message when given the @code{--help} option. +In some cases, a built-in command's behavior can be configured via +user settings, some of which are mentioned below. For example, +certain commands have two user settings to allow them to overwrite +files without warning and to ensure that they always prompt before +overwriting files. If both settings are non-@code{nil}, the commands +always prompt. If both settings are @code{nil} (the default), the +commands signal an error. + +@vindex eshell-default-target-is-dot +Several commands observe the value of +@code{eshell-default-target-is-dot}. If non-@code{nil}, then the +default target for the commands @command{cp}, @command{mv}, and +@command{ln} is the current directory. + +A few commands are wrappers for more niche Emacs features, and can be +loaded as part of the eshell-xtra module. @xref{Extension modules}. + @table @code +@item . +@cmindex . +Source an Eshell file in the current environment. This is not to be +confused with the command @command{source}, which sources a file in a +subshell environment. + @item addpath @cmindex addpath Adds a given path or set of paths to the PATH environment variable, or, @@ -282,26 +469,146 @@ with no arguments, prints the current paths in this variable. @cmindex alias Define an alias (@pxref{Aliases}). This adds it to the aliases file. +@item basename +@cmindex basename +Return a file name without its directory. + +@item cat +@cmindex cat +Concatenate file contents into standard output. If in a pipeline, or +if the file is not a regular file, directory, or symlink, then this +command reverts to the system's definition of @command{cat}. + +@item cd +@cmindex cd +This command changes the current working directory. Usually, it is +invoked as @kbd{cd @var{dir}} where @file{@var{dir}} is the new +working directory. But @command{cd} knows about a few special +arguments: + +@itemize @minus{} +@item +When it receives no argument at all, it changes to the home directory. + +@item +Giving the command @kbd{cd -} changes back to the previous working +directory (this is the same as @kbd{cd $-}). + +@item +The command @kbd{cd =} shows the directory ring. Each line is +numbered. + +@item +With @kbd{cd =foo}, Eshell searches the directory ring for a directory +matching the regular expression @samp{foo}, and changes to that +directory. + +@item +With @kbd{cd -42}, you can access the directory stack slots by number. + +@item +@vindex eshell-cd-shows-directory +@vindex eshell-list-files-after-cd +If @code{eshell-cd-shows-directory} is non-@code{nil}, @command{cd} +will report the directory it changes to. If +@code{eshell-list-files-after-cd} is non-@code{nil}, then @command{ls} +is called with any remaining arguments after changing directories. +@end itemize + @item clear @cmindex clear -Scrolls the contents of the eshell window out of sight, leaving a blank window. -If provided with an optional non-nil argument, the scrollback contents are -cleared instead. +Scrolls the contents of the Eshell window out of sight, leaving a +blank window. If provided with an optional non-@code{nil} argument, +the scrollback contents are cleared instead. + +@item clear-scrollback +@cmindex clear-scrollback +Clear the scrollback contents of the Eshell window. Unlike the +command @command{clear}, this command deletes content in the Eshell +buffer. + +@item cp +@cmindex cp +Copy a file to a new location or copy multiple files to the same +directory. + +@vindex eshell-cp-overwrite-files +@vindex eshell-cp-interactive-query +If @code{eshell-cp-overwrite-files} is non-@code{nil}, then +@command{cp} will overwrite files without warning. If +@code{eshell-cp-interactive-query} is non-@code{nil}, then +@command{cp} will ask before overwriting anything. @item date @cmindex date -Similar to, but slightly different from, the GNU Coreutils +Print the current local time as a human-readable string. This command +is similar to, but slightly different from, the GNU Coreutils @command{date} command. -@item define -@cmindex define -Define a varalias. -@xref{Variable Aliases, , , elisp, The Emacs Lisp Reference Manual}. - @item diff @cmindex diff -Use Emacs's internal @code{diff} (not to be confused with -@code{ediff}). @xref{Comparing Files, , , emacs, The GNU Emacs Manual}. +Compare files using Emacs's internal @code{diff} (not to be confused +with @code{ediff}). @xref{Comparing Files, , , emacs, The GNU Emacs +Manual}. + +@vindex eshell-plain-diff-behavior +If @code{eshell-plain-diff-behavior} is non-@code{nil}, then this +command does not use Emacs's internal @code{diff}. This is the same +as using @samp{alias diff '*diff $*'}. + +@item dirname +@cmindex dirname +Return the directory component of a file name. + +@item dirs +@cmindex dirs +Prints the directory stack. Directories can be added or removed from +the stack using the commands @command{pushd} and @command{popd}, +respectively. + +@item du +@cmindex du +Summarize disk usage for each file. + +@item echo +@cmindex echo +Echoes its input. By default, this prints in a Lisp-friendly fashion +(so that the value is useful to a Lisp command using the result of +@command{echo} as an argument). If a single argument is passed, +@command{echo} prints that; if multiple arguments are passed, it +prints a list of all the arguments; otherwise, it prints the empty +string. + +@vindex eshell-plain-echo-behavior +If @code{eshell-plain-echo-behavior} is non-@code{nil}, @command{echo} +will try to behave more like a plain shell's @command{echo}, printing +each argument as a string, separated by a space. + +@item env +@cmindex env +Prints the current environment variables. Unlike in Bash, this +command does not yet support running commands with a modified +environment. + +@item eshell-debug +@cmindex eshell-debug +Toggle debugging information for Eshell itself. You can pass this +command the argument @code{errors} to enable/disable Eshell trapping +errors when evaluating commands, or the argument @code{commands} to +show/hide command execution progress in the buffer @code{*eshell last +cmd*}. + +@item exit +@cmindex exit +@vindex eshell-kill-on-exit +Exit Eshell and save the history. By default, this command kills the +Eshell buffer, but if @code{eshell-kill-on-exit} is @code{nil}, then +the buffer is merely buried instead. + +@item export +@cmindex export +Set environment variables using input like Bash's @command{export}, as +in @samp{export @var{var1}=@var{val1} @var{var2}=@var{val2} @dots{}}. @item grep @cmindex grep @@ -313,13 +620,28 @@ Use Emacs's internal @code{diff} (not to be confused with @cmindex fgrep @itemx glimpse @cmindex glimpse -The @command{grep} commands are compatible with GNU @command{grep}, but -use Emacs's internal @code{grep} instead. +The @command{grep} commands are compatible with GNU @command{grep}, +but use Emacs's internal @code{grep} instead. +@xref{Grep Searching, , , emacs, The GNU Emacs Manual}. + +@vindex eshell-plain-grep-behavior +If @code{eshell-plain-grep-behavior} is non-@code{nil}, then these +commands do not use Emacs's internal @code{grep}. This is the same as +using @samp{alias grep '*grep $*'}, though this setting applies to all +of the built-in commands for which you would need to create a separate +alias. + +@item history +@cmindex history +Prints Eshell's input history. With a numeric argument @var{N}, this +command prints the @var{N} most recent items in the history. @item info @cmindex info -Same as the external @command{info} command, but uses Emacs's internal -Info reader. +Browse the available Info documentation. This command is the same as +the external @command{info} command, but uses Emacs's internal Info +reader. +@xref{Misc Help, , , emacs, The GNU Emacs Manual}. @item jobs @cmindex jobs @@ -337,101 +659,407 @@ Eshell version of @code{list}. Allows you to create a list using Eshell syntax, rather than Elisp syntax. For example, @samp{listify foo bar} and @code{("foo" "bar")} both evaluate to @code{("foo" "bar")}. +@item ln +@cmindex ln +Create links to files. + +@vindex eshell-ln-overwrite-files +@vindex eshell-ln-interactive-query +If @code{eshell-ln-overwrite-files} is non-@code{nil}, @command{ln} +will overwrite files without warning. If +@code{eshell-ln-interactive-query} is non-@code{nil}, then +@command{ln} will ask before overwriting files. + @item locate @cmindex locate Alias to Emacs's @code{locate} function, which simply runs the external @command{locate} command and parses the results. @xref{Dired and Find, , , emacs, The GNU Emacs Manual}. +@vindex eshell-plain-locate-behavior +If @code{eshell-plain-locate-behavior} is non-@code{nil}, then Emacs's +internal @code{locate} is not used. This is the same as using +@samp{alias locate '*locate $*'}. + +@item ls +@cmindex ls +Lists the contents of directories. + +@vindex eshell-ls-use-colors +If @code{eshell-ls-use-colors} is non-@code{nil}, the contents of a +directory is color-coded according to file type and status. These +colors and the regexps used to identify their corresponding files can +be customized via @w{@kbd{M-x customize-group @key{RET} eshell-ls @key{RET}}}. + +@vindex eshell-ls-date-format +The user option @code{eshell-ls-date-format} determines how the date +is displayed when using the @option{-l} option. The date is produced +using the function @code{format-time-string} (@pxref{Time Parsing,,, +elisp, GNU Emacs Lisp Reference Manual}). + +@vindex eshell-ls-initial-args +The user option @code{eshell-ls-initial-args} contains a list of +arguments to include with any call to @command{ls}. For example, you +can include the option @option{-h} to always use a more human-readable +format. + +@vindex eshell-ls-default-blocksize +The user option @code{eshell-ls-default-blocksize} determines the +default blocksize used when displaying file sizes with the option +@option{-s}. + @item make @cmindex make Run @command{make} through @code{compile} when run asynchronously (e.g., @samp{make &}). @xref{Compilation, , , emacs, The GNU Emacs Manual}. Otherwise call the external @command{make} command. +@item man +@cmindex man +Display Man pages using the Emacs @code{man} command. +@xref{Man Page, , , emacs, The GNU Emacs Manual}. + +@item mkdir +@cmindex mkdir +Make new directories. + +@item mv +@cmindex mv +Move or rename files. + +@vindex eshell-mv-overwrite-files +@vindex eshell-mv-interactive-query +If @code{eshell-mv-overwrite-files} is non-@code{nil}, @command{mv} +will overwrite files without warning. If +@code{eshell-mv-interactive-query} is non-@code{nil}, @command{mv} +will prompt before overwriting anything. + @item occur @cmindex occur Alias to Emacs's @code{occur}. @xref{Other Repeating Search, , , emacs, The GNU Emacs Manual}. +@item popd +@cmindex popd +Pop a directory from the directory stack and switch to a another place +in the stack. + @item printnl @cmindex printnl Print the arguments separated by newlines. -@item cd -@cmindex cd -This command changes the current working directory. Usually, it is -invoked as @samp{cd foo} where @file{foo} is the new working directory. -But @command{cd} knows about a few special arguments: +@item pushd +@cmindex pushd +Push the current directory onto the directory stack, then change to +another directory. + +@vindex eshell-pushd-dunique +@vindex eshell-pushd-dextract +If @code{eshell-pushd-dunique} is non-@code{nil}, then only unique +directories will be added to the stack. If +@code{eshell-pushd-dextract} is non-@code{nil}, then @samp{pushd ++@var{n}} will pop the @var{n}th directory to the top of the stack. + +@item pwd +@cmindex pwd +Prints the current working directory. + +@item rm +@cmindex rm +Removes files, buffers, processes, or Emacs Lisp symbols, depending on +the argument. + +@vindex eshell-rm-interactive-query +@vindex eshell-rm-removes-directories +If @code{eshell-rm-interactive-query} is non-@code{nil}, @command{rm} +will prompt before removing anything. If +@code{eshell-rm-removes-directories} is non-@code{nil}, then +@command{rm} can also remove directories. Otherwise, @command{rmdir} +is required. + +@item rmdir +@cmindex rmdir +Removes directories if they are empty. + +@item set +@cmindex set +Set variable values, using the function @code{set} like a command +(@pxref{Setting Variables,,, elisp, GNU Emacs Lisp Reference Manual}). +A variable name can be a symbol, in which case it refers to a Lisp +variable, or a string, referring to an environment variable +(@pxref{Arguments}). + +@item setq +@cmindex setq +Set variable values, using the function @code{setq} like a command +(@pxref{Setting Variables,,, elisp, GNU Emacs Lisp Reference Manual}). + +@item source +@cmindex source +Source an Eshell file in a subshell environment. This is not to be +confused with the command @command{.}, which sources a file in the +current environment. + +@item time +@cmindex time +Show the time elapsed during a command's execution. + +@item umask +@cmindex umask +Set or view the default file permissions for newly created files and +directories. + +@item unset +@cmindex unset +Unset one or more variables. As with @command{set}, a variable name +can be a symbol, in which case it refers to a Lisp variable, or a +string, referring to an environment variable. + +@item wait +@cmindex wait +Wait until a process has successfully completed. + +@item which +@cmindex which +Identify a command and its location. + +@item whoami +@cmindex whoami +Print the current user. This Eshell version of @command{whoami} +supports Tramp. +@end table -When it receives no argument at all, it changes to the home directory. +@subsection Defining new built-in commands +While Eshell can run Lisp functions directly as commands, it may be +more convenient to provide a special built-in command for +Eshell. Built-in commands are just ordinary Lisp functions designed +to be called from Eshell. When defining an Eshell-specific version of +an existing function, you can give that function a name starting with +@code{eshell/} so that Eshell knows to use it. + +@defmac eshell-eval-using-options name macro-args options body@dots{} +This macro processes a list of @var{macro-args} for the command +@var{name} using a set of command line @var{options}. If the +arguments are parsed successfully, it will store the resulting values +in local symbols and execute @var{body}; any remaining arguments will +be available in the locally let-bound variable @code{args}. The +return value is the value of the last form in @var{body}. + +If an unknown option was passed in @var{macro-args} and an external +command was specified (see below), this macro will start a process for +that command and throw the tag @code{eshell-external} with the new +process as its value. + +@var{options} should be a list beginning with one or more elements of +the following form, with each element representing a particular +command-line switch: -Giving the command @samp{cd -} changes back to the previous working -directory (this is the same as @samp{cd $-}). +@example +(@var{short} @var{long} @var{value} @var{symbol} @var{help-string}) +@end example -The command @samp{cd =} shows the directory stack. Each line is -numbered. +@table @var +@item short +This element, if non-@code{nil}, should be a character to be used as a short +switch, like @code{-@var{short}}. At least one of this element and +@var{long} must be non-@code{nil}. -With @samp{cd =foo}, Eshell searches the directory stack for a directory -matching the regular expression @samp{foo} and changes to that -directory. +@item long +This element, if non-@code{nil}, should be a string to be used as a long +switch, like @code{--@var{long}}. -With @samp{cd -42}, you can access the directory stack by number. +@item value +This element is the value associated with the option. It can be +either: -@item su -@cmindex su -@itemx sudo -@cmindex sudo -Uses TRAMP's @command{su} or @command{sudo} method @pxref{Inline methods, , , tramp} -to run a command via @command{su} or @command{sudo}. These commands -are in the eshell-tramp module, which is disabled by default. +@table @asis +@item @code{t} +The option needs a value to be specified after the switch. + +@item @code{nil} +The option is given the value @code{t}. +@item anything else +The option is given the specified value. @end table +@item symbol +This element is the Lisp symbol that will be bound to @var{value}. If +@var{symbol} is @code{nil}, specifying this switch will instead call +@code{eshell-show-usage}, and so is appropriate for an option like +@code{--help}. + +@item help-string +This element is a documentation string for the option, which will be +displayed when @code{eshell-show-usage} is invoked. +@end table + +After the list of command-line switch elements, @var{options} can +include additional keyword arguments to control how +@code{eshell-eval-using-options} behaves. Some of these take +arguments, while others don't. The recognized keywords are: + +@table @code +@item :external @var{string} +Specify @var{string} as an external command to run if there are +unknown switches in @var{macro-args}. + +@item :usage @var{string} +Set @var{string} as the initial part of the command's documentation +string. It appears before the options are listed. + +@item :post-usage @var{string} +Set @var{string} to be the (optional) trailing part of the command's +documentation string. It appears after the list of options, but +before the final part of the documentation about the associated +external command, if there is one. + +@item :show-usage +If present, then show the usage message if the command is called with +no arguments. + +@item :preserve-args +Normally, @code{eshell-eval-using-options} flattens the list of +arguments in @var{macro-args} and converts each to a string. If this +keyword is present, avoid doing that, instead preserving the original +arguments. This is useful for commands which want to accept arbitrary +Lisp objects. + +@item :parse-leading-options-only +If present, do not parse dash or switch arguments after the first +positional argument. Instead, treat them as positional arguments +themselves. +@end table + +For example, you could handle a subset of the options for the +@code{ls} command like this: + +@example +(eshell-eval-using-options + "ls" macro-args + '((?a nil nil show-all "show all files") + (?I "ignore" t ignore-pattern "ignore files matching pattern") + (nil "help" nil nil "show this help message") + :external "ls" + :usage "[OPTION]... [FILE]... + List information about FILEs (the current directory by default).") + ;; List the files in ARGS somehow... + ) +@end example + +@end defmac + +@node Variables +@section Variables +@vindex eshell-prefer-lisp-variables +Since Eshell is a combination of an Emacs @acronym{REPL} and a command +shell, it can refer to variables from two different sources: ordinary +Emacs Lisp variables, as well as environment variables. By default, +when using a variable in Eshell, it will first look in the list of +built-in variables, then in the list of environment variables, and +finally in the list of Lisp variables. If you would prefer to use +Lisp variables over environment variables, you can set +@code{eshell-prefer-lisp-variables} to @code{t}. + +You can set variables in a few different ways. To set a Lisp +variable, you can use the command @samp{setq @var{name} @var{value}}, +which works much like its Lisp counterpart (@pxref{Setting Variables, +, , elisp, The Emacs Lisp Reference Manual}). To set an environment +variable, use @samp{export @var{name}=@var{value}}. You can also use +@samp{set @var{variable} @var{value}}, which sets a Lisp variable if +@var{variable} is a symbol, or an environment variable if it's a +string (@pxref{Arguments}). Finally, you can temporarily set +environment variables for a single command with +@samp{@var{name}=@var{value} @var{command} @dots{}}. This is +equivalent to: + +@example +@{ + export @var{name}=@var{value} + @var{command} @dots{} +@} +@end example + @subsection Built-in variables Eshell knows a few built-in variables: @table @code -@item $+ +@vindex $PWD @vindex $+ +@item $PWD +@itemx $+ This variable always contains the current working directory. -@item $- +@vindex $OLDPWD @vindex $- +@item $OLDPWD +@itemx $- This variable always contains the previous working directory (the current working directory from before the last @code{cd} command). +When using @code{$-}, you can also access older directories in the +directory ring via subscripting, e.g.@: @samp{$-[1]} refers to the +working directory @emph{before} the previous one. + +@vindex $PATH +@item $PATH +This specifies the directories to search for executable programs. Its +value is a string, separated by @code{":"} for Unix and GNU systems, +and @code{";"} for MS systems. This variable is connection-aware, so +whenever you change the current directory to a different host +(@pxref{Remote Files, , , emacs, The GNU Emacs Manual}), +the value will automatically update to reflect the search path on that +host. -@item $_ @vindex $_ -It refers to the last argument of the last command. +@item $_ +This refers to the last argument of the last command. With a +subscript, you can access any argument of the last command. For +example, @samp{$_[1]} refers to the second argument of the last +command (excluding the command name itself). -@item $$ @vindex $$ -This is the result of the last command. In case of an external -command, it is @code{t} or @code{nil}. +@item $$ +This is the result of the last command. For external commands, it is +@code{t} if the exit code was 0 or @code{nil} otherwise. -@item $? +@vindex eshell-lisp-form-nil-is-failure @vindex $? -This variable contains the exit code of the last command (0 or 1 for -Lisp functions, based on successful completion). +@item $? +This variable contains the exit code of the last command. If the last +command was a Lisp function, it is 0 for successful completion or 1 +otherwise. If @code{eshell-lisp-form-nil-is-failure} is +non-@code{nil}, then a command with a Lisp form, like +@samp{(@var{command} @var{args}@dots{})}, that returns @code{nil} will +set this variable to 2. + +@vindex $COLUMNS +@vindex $LINES +@item $COLUMNS +@itemx $LINES +These variables tell the number of columns and lines, respectively, +that are currently visible in the Eshell window. They are both +copied to the environment, so external commands invoked from +Eshell can consult them to do the right thing. + +@vindex $INSIDE_EMACS +@item $INSIDE_EMACS +This variable indicates to external commands that they are being +invoked from within Emacs so they can adjust their behavior if +necessary. By default, its value is +@code{@var{emacs-version},eshell}. Other parts of Emacs, such as +Tramp, may add extra information to this value. @end table @xref{Aliases}, for the built-in variables @samp{$*}, @samp{$1}, @samp{$2}, @dots{}, in alias definitions. -@node Variables -@section Variables -Since Eshell is just an Emacs REPL@footnote{Read-Eval-Print Loop}, it -does not have its own scope, and simply stores variables the same you -would in an Elisp program. Eshell provides a command version of -@code{setq} for convenience. - @node Aliases @section Aliases @vindex $* +@vindex eshell-aliases-file Aliases are commands that expand to a longer input line. For example, @command{ll} is a common alias for @code{ls -l}, and would be defined with the command invocation @kbd{alias ll 'ls -l $*'}; with this defined, @@ -449,9 +1077,35 @@ pass all arguments along. More selective use of arguments via @kbd{alias mcd 'mkdir $1 && cd $1'} would cause @kbd{mcd foo} to create and switch to a directory called @samp{foo}. +@node Remote Access +@section Remote Access +@cmindex remote access + +Since Eshell uses Emacs facilities for most of its functionality, you +can access remote hosts transparently. To connect to a remote host, +simply @code{cd} into it: + +@example +~ $ cd /ssh:user@@remote: +/ssh:user@@remote:~ $ +@end example + +Additionally, built-in Eshell commands (@pxref{Built-ins}) and +ordinary Lisp functions accept remote file names, so you can access +them even without explicitly connecting first. For example, to print +the contents of a remote file, you could type @samp{cat +/ssh:user@@remote:~/output.log}. However, this means that when using +built-in commands or Lisp functions from a remote directory, you must +be careful about specifying absolute file names: @samp{cat +/var/output.log} will always print the contents of your @emph{local} +@file{/var/output.log}, even from a remote directory. If you find +this behavior annoying, you can enable the optional electric forward +slash module (@pxref{Electric forward slash}). + @node History @section History @cmindex history +@vindex eshell-history-size The @samp{history} command shows all commands kept in the history ring as numbered list. If the history ring contains @code{eshell-history-size} commands, those numbers change after every @@ -471,6 +1125,7 @@ command beginning with @code{foo}, and @samp{!?foo} to the last command containing @code{foo}. The n-th argument of the last command beginning with @code{foo} is accessible by @code{!foo:n}. +@vindex eshell-history-file-name The history ring is loaded from a file at the start of every session, and written back to the file at the end of every session. The file path is specified in @code{eshell-history-file-name}. Unlike other shells, @@ -503,11 +1158,11 @@ be directories @emph{and} files. Eshell provides predefined completions for the built-in functions and some common external commands, and you can define your own for any command. -Eshell completion also works for lisp forms and glob patterns. If the point is -on a lisp form, then @key{TAB} will behave similarly to completion in -@code{elisp-mode} and @code{lisp-interaction-mode}. For glob patterns, the -pattern will be removed from the input line, and replaced by the -completion. +Eshell completion also works for Lisp forms and glob patterns. If the +point is on a Lisp form, then @key{TAB} will behave similarly to +completion in @code{elisp-mode} and @code{lisp-interaction-mode}. For +glob patterns, the pattern will be removed from the input line, and +replaced by the completion. If you want to see the entire list of possible completions (e.g. when it's below the @code{completion-cycle-threshold}), press @kbd{M-?}. @@ -524,19 +1179,46 @@ command for which this function provides completions; you can also name the function @code{pcomplete/MAJOR-MODE/COMMAND} to define completions for a specific major mode. -@node for loop -@section @code{for} loop -Because Eshell commands can not (easily) be combined with lisp forms, -Eshell provides a command-oriented @command{for}-loop for convenience. -The syntax is as follows: +@node Control Flow +@section Control Flow +Because Eshell commands can not (easily) be combined with Lisp forms, +Eshell provides command-oriented control flow statements for +convenience. -@example -@code{for VAR in TOKENS @{ command invocation(s) @}} -@end example +Most of Eshell's control flow statements accept a @var{conditional}. +This can take a few different forms. If @var{conditional} is a dollar +expansion, the condition is satisfied if the result is a +non-@code{nil} value. If @var{conditional} is a @samp{@{ +@var{subcommand} @}} or @samp{(@var{lisp form})}, the condition is +satisfied if the command's exit status is 0. + +@table @code + +@item if @var{conditional} @{ @var{true-commands} @} +@itemx if @var{conditional} @{ @var{true-commands} @} @{ @var{false-commands} @} +Evaluate @var{true-commands} if @var{conditional} is satisfied; +otherwise, evaluate @var{false-commands}. + +@item unless @var{conditional} @{ @var{false-commands} @} +@itemx unless @var{conditional} @{ @var{false-commands} @} @{ @var{true-commands} @} +Evaluate @var{false-commands} if @var{conditional} is not satisfied; +otherwise, evaluate @var{true-commands}. + +@item while @var{conditional} @{ @var{commands} @} +Repeatedly evaluate @var{commands} so long as @var{conditional} is +satisfied. -where @samp{TOKENS} is a space-separated sequence of values of -@var{VAR} for each iteration. This can even be the output of a -command if @samp{TOKENS} is replaced with @samp{@{ command invocation @}}. +@item until @var{conditional} @{ @var{commands} @} +Repeatedly evaluate @var{commands} until @var{conditional} is +satisfied. + +@item for @var{var} in @var{list}@dots{} @{ @var{commands} @} +Iterate over each element of @var{list}, storing the element in +@var{var} and evaluating @var{commands}. If @var{list} is not a list, +treat it as a list of one element. If you specify multiple +@var{lists}, this will iterate over each of them in turn. + +@end table @node Scripts @section Scripts @@ -560,15 +1242,42 @@ parsers (such as @command{cpp} and @command{m4}), but in a command shell, they are less often used for constants, and usually for using variables and string manipulation.@footnote{Eshell has no string-manipulation expansions because the Elisp library already -provides many functions for this.} For example, @code{$var} on a line -expands to the value of the variable @code{var} when the line is +provides many functions for this.} For example, @code{$@var{var}} on +a line expands to the value of the variable @var{var} when the line is executed. Expansions are usually passed as arguments, but may also be -used as commands.@footnote{E.g., entering just @samp{$var} at the prompt -is equivalent to entering the value of @code{var} at the prompt.} +used as commands.@footnote{E.g., entering just @samp{$@var{var}} at +the prompt is equivalent to entering the value of @var{var} at the +prompt.} + +You can concatenate expansions with regular string arguments or even +other expansions. In the simplest case, when the expansion returns a +string value, this is equivalent to ordinary string concatenation; for +example, @samp{$@{echo "foo"@}bar} returns @samp{foobar}. The exact +behavior depends on the types of each value being concatenated: + +@table @asis + +@item both strings +Concatenate both values together. + +@item one or both numbers +Concatenate the string representation of each value, converting back to +a number if possible. + +@item one or both (non-@code{nil}) lists +Concatenate ``adjacent'' elements of each value (possibly converting +back to a number as above). For example, @samp{$(list "a" "b")c} +returns @samp{("a" "bc")}. + +@item anything else +Concatenate the string representation of each value. + +@end table @menu * Dollars Expansion:: * Globbing:: +* Argument Predication and Modification:: @end menu @node Dollars Expansion @@ -589,73 +1298,437 @@ Expands to the value bound to @var{var}. This is useful to disambiguate the variable name when concatenating it with another value, such as @samp{$"@var{var}"-suffix}. -@item $#@var{var} -Expands to the length of the value bound to @var{var}. Raises an error -if the value is not a sequence -(@pxref{Sequences Arrays Vectors, Sequences, , elisp, The Emacs Lisp Reference Manual}). - @item $(@var{lisp}) Expands to the result of evaluating the S-expression @code{(@var{lisp})}. On its own, this is identical to just @code{(@var{lisp})}, but with the @code{$}, -it can be used in a string, such as @samp{/some/path/$(@var{lisp}).txt}. +it can be used inside double quotes or within a longer string, such as +@samp{/some/path/$(@var{lisp}).txt}. @item $@{@var{command}@} -Returns the output of @command{@var{command}}, which can be any valid Eshell -command invocation, and may even contain expansions. +Returns the output of @command{@var{command}}, which can be any valid +Eshell command invocation, and may even contain expansions. Similar +to @code{$(@var{lisp})}, this is identical to @code{@{@var{command}@}} +when on its own, but the @code{$} allows it to be used inside double +quotes or as part of a string. + +@vindex eshell-convert-numeric-arguments +Normally, the output is split line-by-line, returning a list (or the +first element if there's only one line of output); if +@code{eshell-convert-numeric-arguments} is non-@code{nil} and every +line of output looks like a number, convert each line to a number. +However, when this expansion is surrounded by double quotes, it +returns the output as a single string instead. @item $<@var{command}> As with @samp{$@{@var{command}@}}, evaluates the Eshell command invocation @command{@var{command}}, but writes the output to a temporary file and returns the file name. -@item $@var{var}[i] -Expands to the @code{i}th element of the value bound to @var{var}. If -the value is a string, it will be split at whitespace to make it a list. -Again, raises an error if the value is not a sequence. +@item $@var{expr}[@var{i...}] +Expands to the @var{i}th element of the result of @var{expr}, an +expression in one of the above forms listed here. If multiple indices +are supplied, this will return a list containing the elements for each +index. The exact behavior depends on the type of @var{expr}'s value: -@item $@var{var}[: i] -As above, but now splitting occurs at the colon character. +@table @asis -@item $@var{var}[: i j] -As above, but instead of returning just a string, it now returns a list -of two strings. If the result is being interpolated into a larger -string, this list will be flattened into one big string, with each -element separated by a space. +@item a sequence +Expands to the element at the (zero-based) index @var{i} of the +sequence (@pxref{Sequences Arrays Vectors, , , elisp, The Emacs Lisp +Reference Manual}). -@item $@var{var}["\\\\" i] -Separate on backslash characters. Actually, the first argument -- if it -doesn't have the form of a number, or a plain variable name -- can be -any regular expression. So to split on numbers, use -@samp{$@var{var}["[0-9]+" 10 20]}. +@item a string +Split the string at whitespace, and then expand to the @var{i}th +element of the resulting sequence. -@item $@var{var}[hello] -Calls @code{assoc} on @var{var} with @code{"hello"}, expecting it to be -an alist (@pxref{Association List Type, Association Lists, , elisp, -The Emacs Lisp Reference Manual}). +@item an alist +If @var{i} is a non-numeric value, expand to the value associated with +the key @code{"@var{i}"} in the alist. For example, if @var{var} is +@samp{(("dog" . "fido") ("cat" . "felix"))}, then +@samp{$@var{var}[dog]} expands to @code{"fido"}. Otherwise, this +behaves as with sequences; e.g., @samp{$@var{var}[0]} expands to +@code{("dog" . "fido")}. @xref{Association List Type, Association +Lists, , elisp, The Emacs Lisp Reference Manual}. -@item $#@var{var}[hello] -Returns the length of the @code{cdr} of the element of @var{var} whose -car is equal to @code{"hello"}. +@item anything else +Signals an error. + +@end table + +Multiple sets of indices can also be specified. For example, if +@var{var} is @samp{((1 2) (3 4))}, then @samp{$@var{var}[0][1]} will +expand to @code{2}, i.e.@: the second element of the first list member +(all indices are zero-based). + +@item $@var{expr}[@var{regexp} @var{i...}] +As above (when @var{expr} expands to a string), but use @var{regexp} +to split the string. @var{regexp} can be any form other than a +number. For example, @samp{$@var{var}[: 0]} will return the first +element of a colon-delimited string. + +@item $#@var{expr} +Expands to the length of the result of @var{expr}, an expression in +one of the above forms. For example, @samp{$#@var{var}} returns the +length of the variable @var{var} and @samp{$#@var{var}[0]} returns the +length of the first element of @var{var}. Again, signals an error if +the result of @var{expr} is not a string or a sequence. @end table @node Globbing @section Globbing -Eshell's globbing syntax is very similar to that of Zsh. Users coming -from Bash can still use Bash-style globbing, as there are no -incompatibilities. Most globbing is pattern-based expansion, but there -is also predicate-based expansion. @xref{Filename Generation, , , -zsh, The Z Shell Manual}, -for full syntax. To customize the syntax and behavior of globbing in -Eshell see the Customize@footnote{@xref{Easy Customization, , , emacs, -The GNU Emacs Manual}.} -groups ``eshell-glob'' and ``eshell-pred''. +Eshell's globbing syntax is very similar to that of Zsh +(@pxref{Filename Generation, , , zsh, The Z Shell Manual}). Users +coming from Bash can still use Bash-style globbing, as there are no +incompatibilities. + +@vindex eshell-glob-case-insensitive +By default, globs are case sensitive, except on MS-DOS/MS-Windows +systems. You can control this behavior via the +@code{eshell-glob-case-insensitive} option. You can further customize +the syntax and behavior of globbing in Eshell via the Customize group +@code{eshell-glob} (@pxref{Easy Customization, , , emacs, The GNU +Emacs Manual}). + +@table @samp + +@item * +Matches any string (including the empty string). For example, +@samp{*.el} matches any file with the @file{.el} extension. + +@item ? +Matches any single character. For example, @samp{?at} matches +@file{cat} and @file{bat}, but not @file{goat}. + +@item **/ +Matches zero or more subdirectories in a file name. For example, +@samp{**/foo.el} matches @file{foo.el}, @file{bar/foo.el}, +@file{bar/baz/foo.el}, etc. Note that this cannot be combined with +any other patterns in the same file name segment, so while +@samp{foo/**/bar.el} is allowed, @samp{foo**/bar.el} is not. + +@item ***/ +Like @samp{**/}, but follows symlinks as well. + +@cindex character sets, in Eshell glob patterns +@cindex character classes, in Eshell glob patterns +@item [ @dots{} ] +Defines a @dfn{character set} (@pxref{Regexps, , , emacs, The GNU +Emacs Manual}). A character set matches characters between the two +brackets; for example, @samp{[ad]} matches @file{a} and @file{d}. You +can also include ranges of characters in the set by separating the +start and end with @samp{-}. Thus, @samp{[a-z]} matches any +lower-case @acronym{ASCII} letter. Note that, unlike in Zsh, +character ranges are interpreted in the Unicode codepoint order, not +in the locale-dependent collation order. + +Additionally, you can include @dfn{character classes} in a character +set. A @samp{[:} and balancing @samp{:]} enclose a character class +inside a character set. For instance, @samp{[[:alnum:]]} +matches any letter or digit. @xref{Char Classes, , , elisp, The Emacs +Lisp Reference Manual}, for a list of character classes. + +@cindex complemented character sets, in Eshell glob patterns +@item [^ @dots{} ] +Defines a @dfn{complemented character set}. This behaves just like a +character set, but matches any character @emph{except} the ones +specified. + +@cindex groups, in Eshell glob patterns +@item ( @dots{} ) +Defines a @dfn{group}. A group matches the pattern between @samp{(} +and @samp{)}. Note that a group can only match a single file name +component, so a @samp{/} inside a group will signal an error. + +@item @var{x}|@var{y} +Inside of a group, matches either @var{x} or @var{y}. For example, +@samp{e(m|sh)-*} matches any file beginning with @file{em-} or +@file{esh-}. + +@item @var{x}# +Matches zero or more copies of the glob pattern @var{x}. For example, +@samp{fo#.el} matches @file{f.el}, @file{fo.el}, @file{foo.el}, etc. + +@item @var{x}## +Matches one or more copies of the glob pattern @var{x}. Thus, +@samp{fo#.el} matches @file{fo.el}, @file{foo.el}, @file{fooo.el}, +etc. + +@item @var{x}~@var{y} +Matches anything that matches the pattern @var{x} but not @var{y}. For +example, @samp{[[:digit:]]#~4?} matches @file{1} and @file{12}, but +not @file{42}. Note that unlike in Zsh, only a single @samp{~} +operator can be used in a pattern, and it cannot be inside of a group +like @samp{(@var{x}~@var{y})}. + +@end table + +@node Argument Predication and Modification +@section Argument Predication and Modification +@cindex argument predication +@cindex argument modification +Eshell supports @dfn{argument predication}, to filter elements of a +glob, and @dfn{argument modification}, to manipulate argument values. +These are similar to glob qualifiers in Zsh (@pxref{Glob Qualifiers, , +, zsh, The Z Shell Manual}). + +Predicates and modifiers are introduced with @samp{(@var{filters})} +after any list argument, where @var{filters} is a list of predicates +or modifiers. For example, @samp{*(.)} expands to all regular files +in the current directory and @samp{*(^@@:U^u0)} expands to all +non-symlinks not owned by @code{root}, upper-cased. + +Some predicates and modifiers accept string parameters, such as +@samp{*(u'@var{user}')}, which matches all files owned by @var{user}. +These parameters must be surrounded by delimiters; you can use any of +the following pairs of delimiters: @code{"@dots{}"}, @code{'@dots{}'}, +@code{/@dots{}/}, @code{|@dots{}|}, @code{(@dots{})}, +@code{[@dots{}]}, @code{<@dots{}>}, or @code{@{@dots{}@}}. + +You can customize the syntax and behavior of predicates and modifiers +in Eshell via the Customize group @code{eshell-pred} (@pxref{Easy +Customization, , , emacs, The GNU Emacs Manual}). + +@menu +* Argument Predicates:: +* Argument Modifiers:: +@end menu + +@node Argument Predicates +@subsection Argument Predicates +You can use argument predicates to filter lists of file names based on +various properties of those files. This is most useful when combined +with globbing, but can be used on any list of files names. Eshell +supports the following argument predicates: + +@table @asis + +@item @samp{/} +Matches directories. + +@item @samp{.} @r{(Period)} +Matches regular files. + +@item @samp{@@} +Matches symbolic links. + +@item @samp{=} +Matches sockets. + +@item @samp{p} +Matches named pipes. + +@item @samp{%} +Matches block or character devices. + +@item @samp{%b} +Matches block devices. + +@item @samp{%c} +Matches character devices. + +@item @samp{*} +Matches regular files that can be executed by the current user. + +@item @samp{r} +@item @samp{A} +@item @samp{R} +Matches files that are readable by their owners (@samp{r}), their +groups (@samp{A}), or the world (@samp{R}). + +@item @samp{w} +@item @samp{I} +@item @samp{W} +Matches files that are writable by their owners (@samp{w}), their +groups (@samp{I}), or the world (@samp{W}). + +@item @samp{x} +@item @samp{E} +@item @samp{X} +Matches files that are executable by their owners (@samp{x}), their +groups (@samp{E}), or the world (@samp{X}). + +@item @samp{s} +Matches files with the setuid flag set. + +@item @samp{S} +Matches files with the setgid flag set. + +@item @samp{t} +Matches files with the sticky bit set. + +@item @samp{U} +Matches files owned by the current effective user ID. + +@item @samp{G} +Matches files owned by the current effective group ID. + +@item @samp{l@option{[+-]}@var{n}} +Matches files with @var{n} links. With @option{+} (or @option{-}), +matches files with more than (or less than) @var{n} links, +respectively. + +@item @samp{u@var{uid}} +@item @samp{u'@var{user-name}'} +Matches files owned by user ID @var{uid} or user name @var{user-name}. + +@item @samp{g@var{gid}} +@item @samp{g'@var{group-name}'} +Matches files owned by group ID @var{gid} or group name +@var{group-name}. + +@item @samp{a@option{[@var{unit}]}@option{[+-]}@var{n}} +@item @samp{a@option{[+-]}'@var{file}'} +Matches files last accessed exactly @var{n} days ago. With @option{+} +(or @option{-}), matches files accessed more than (or less than) +@var{n} days ago, respectively. + +With @var{unit}, @var{n} is a quantity in that unit of time, so +@samp{aw-1} matches files last accessed within one week. @var{unit} +can be @samp{M} (30-day months), @samp{w} (weeks), @samp{h} (hours), +@samp{m} (minutes), or @samp{s} (seconds). + +If @var{file} is specified instead, compare against the modification +time of @file{file}. Thus, @samp{a-'hello.txt'} matches all files +accessed after @file{hello.txt} was last accessed. + +@item @samp{m@option{[@var{unit}]}@option{[+-]}@var{n}} +@item @samp{m@option{[+-]}'@var{file}'} +Like @samp{a}, but examines modification time. + +@item @samp{c@option{[@var{unit}]}@option{[+-]}@var{n}} +@item @samp{c@option{[+-]}'@var{file}'} +Like @samp{a}, but examines status change time. + +@item @samp{L@option{[@var{unit}]}@option{[+-]}@var{n}} +Matches files exactly @var{n} bytes in size. With @option{+} (or +@option{-}), matches files larger than (or smaller than) @var{n} +bytes, respectively. + +With @var{unit}, @var{n} is a quantity in that unit of size, so +@samp{Lm+5} matches files larger than 5 MiB in size. @var{unit} can +be one of the following (case-insensitive) characters: @samp{m} +(megabytes), @samp{k} (kilobytes), or @samp{p} (512-byte blocks). + +@end table + +The @samp{^} and @samp{-} operators are not argument predicates +themselves, but they modify the behavior of all subsequent predicates. +@samp{^} inverts the meaning of subsequent predicates, so +@samp{*(^RWX)} expands to all files whose permissions disallow the +world from accessing them in any way (i.e., reading, writing to, or +modifying them). When examining a symbolic link, @samp{-} applies the +subsequent predicates to the link's target instead of the link itself. + +@node Argument Modifiers +@subsection Argument Modifiers +You can use argument modifiers to manipulate argument values. For +example, you can sort lists, remove duplicate values, capitalize +words, etc. All argument modifiers are prefixed by @samp{:}, so +@samp{$exec-path(:h:u:x/^\/home/)} lists all of the unique parent +directories of the elements in @code{exec-path}, excluding those in +@file{/home}. + +@table @samp + +@item E +Re-evaluates the value as an Eshell argument. For example, if +@var{foo} is @code{"$@{echo hi@}"}, then the result of @samp{$foo(:E)} +is @code{hi}. + +@item L +Converts the value to lower case. + +@item U +Converts the value to upper case. + +@item C +Capitalizes the value. + +@item h +Treating the value as a file name, gets the directory name (the +``head''). For example, @samp{foo/bar/baz.el(:h)} expands to +@samp{foo/bar/}. + +@item t +Treating the value as a file name, gets the base name (the ``tail''). +For example, @samp{foo/bar/baz.el(:t)} expands to @samp{baz.el}. + +@item e +Treating the value as a file name, gets the final extension of the +file, excluding the dot. For example, @samp{foo.tar.gz(:e)} +expands to @code{gz}. + +@item r +Treating the value as a file name, gets the file name excluding the +final extension. For example, @samp{foo/bar/baz.tar.gz(:r)} expands +to @samp{foo/bar/baz.tar}. + +@item q +Marks that the value should be interpreted by Eshell literally, so +that any special characters like @samp{$} no longer have any special +meaning. + +@item s/@var{pattern}/@var{replace}/ +Replaces the first instance of the regular expression @var{pattern} +with @var{replace}. Signals an error if no match is found. + +As with other modifiers taking string parameters, you can use +different delimiters to separate @var{pattern} and @var{replace}, such +as @samp{s'@dots{}'@dots{}'}, @samp{s[@dots{}][@dots{}]}, or even +@samp{s[@dots{}]/@dots{}/}. + +@item gs/@var{pattern}/@var{replace}/ +Replaces all instances of the regular expression @var{pattern} with +@var{replace}. + +@item i/@var{pattern}/ +Filters a list of values to include only the elements matching the +regular expression @var{pattern}. + +@item x/@var{pattern}/ +Filters a list of values to exclude all the elements matching the +regular expression @var{pattern}. + +@item S +@item S/@var{pattern}/ +Splits the value using the regular expression @var{pattern} as a +delimiter. If @var{pattern} is omitted, split on spaces. + +@item j +@item j/@var{delim}/ +Joins a list of values, inserting the string @var{delim} between each +value. If @var{delim} is omitted, use a single space as the +delimiter. + +@item o +Sorts a list of strings in ascending lexicographic order, comparing +pairs of characters according to their character codes (@pxref{Text +Comparison, , , elisp, The Emacs Lisp Reference Manual}). + +@item O +Sorts a list of strings in descending lexicographic order. + +@item u +Removes any duplicate elements from a list of values. + +@item R +Reverses the order of a list of values. + +@end table @node Input/Output @chapter Input/Output Since Eshell does not communicate with a terminal like most command shells, IO is a little different. +@menu +* Visual Commands:: +* Redirection:: +* Pipelines:: +@end menu + +@node Visual Commands @section Visual Commands If you try to run programs from within Eshell that are not line-oriented, such as programs that use ncurses, you will just get @@ -663,6 +1736,9 @@ garbage output, since the Eshell buffer is not a terminal emulator. Eshell solves this problem by running such programs in Emacs's terminal emulator. +@vindex eshell-visual-commands +@vindex eshell-visual-subcommands +@vindex eshell-visual-options Programs that need a terminal to display output properly are referred to in this manual as ``visual commands'', because they are not simply line-oriented. You must tell Eshell which commands are visual, by @@ -688,100 +1764,445 @@ program exits, customize the variable @code{eshell-destroy-buffer-when-process-dies} to a non-@code{nil} value; the default is @code{nil}. +@node Redirection @section Redirection -Redirection is mostly the same in Eshell as it is in other command -shells. The output redirection operators @code{>} and @code{>>} as -well as pipes are supported, but there is not yet any support for -input redirection. Output can also be redirected to buffers, using -the @code{>>>} redirection operator, and Elisp functions, using -virtual devices. - -The buffer redirection operator, @code{>>>}, expects a buffer object -on the right-hand side, into which it inserts the output of the -left-hand side. e.g., @samp{echo hello >>> #} -inserts the string @code{"hello"} into the @file{*scratch*} buffer. -The convenience shorthand variant @samp{#<@var{buffer-name}>}, as in -@samp{#<*scratch*>}, is also accepted. - -@code{eshell-virtual-targets} is a list of mappings of virtual device -names to functions. Eshell comes with two virtual devices: -@file{/dev/kill}, which sends the text to the kill ring, and -@file{/dev/clip}, which sends text to the clipboard. +Redirection in Eshell is similar to that of other command shells. You +can use the output redirection operators @code{>} and @code{>>}, but +there is not yet any support for input redirection. In the cases +below, @var{fd} specifies the file descriptor to redirect; if not +specified, file descriptor 1 (standard output) will be used by +default. + +@table @code + +@item > @var{dest} +@itemx @var{fd}> @var{dest} +Redirect output to @var{dest}, overwriting its contents with the new +output. + +@item >> @var{dest} +@itemx @var{fd}>> @var{dest} +Redirect output to @var{dest}, appending it to the existing contents +of @var{dest}. + +@item >>> @var{dest} +@itemx @var{fd}>>> @var{dest} +Redirect output to @var{dest}, inserting it at the current mark if +@var{dest} is a buffer, at the beginning of the file if @var{dest} is +a file, or otherwise behaving the same as @code{>>}. + +@item &> @var{dest} +@itemx >& @var{dest} +Redirect both standard output and standard error to @var{dest}, +overwriting its contents with the new output. + +@item &>> @var{dest} +@itemx >>& @var{dest} +Redirect both standard output and standard error to @var{dest}, +appending it to the existing contents of @var{dest}. + +@item &>>> @var{dest} +@itemx >>>& @var{dest} +Redirect both standard output and standard error to @var{dest}, +inserting it like with @code{>>> @var{dest}}. + +@item >&@var{other-fd} +@itemx @var{fd}>&@var{other-fd} +Duplicate the file descriptor @var{other-fd} to @var{fd} (or 1 if +unspecified). The order in which this is used is significant, so + +@example +@var{command} > @var{file} 2>&1 +@end example + +redirects both standard output and standard error to @var{file}, +whereas + +@example +@var{command} 2>&1 > @var{file} +@end example + +only redirects standard output to @var{file} (and sends standard error +to the display via standard output's original handle). + +@end table + +Eshell supports redirecting output to several different types of +targets: + +@itemize @bullet + +@item +files, including virtual targets (see below); + +@item +buffers (@pxref{Buffers, , , elisp, GNU Emacs Lisp Reference Manual}); + +@item +markers (@pxref{Markers, , , elisp, GNU Emacs Lisp Reference Manual}); + +@item +processes (@pxref{Processes, , , elisp, GNU Emacs Lisp Reference +Manual}); and + +@item +symbols (@pxref{Symbols, , , elisp, GNU Emacs Lisp Reference Manual}). + +@end itemize + +@subsection Virtual Targets +Virtual targets are mapping of device names to functions. Eshell +comes with four virtual devices: + +@table @file + +@item /dev/null +Does nothing with the output passed to it. + +@item /dev/eshell +Writes the text passed to it to the display. + +@item /dev/kill +Adds the text passed to it to the kill ring. + +@item /dev/clip +Adds the text passed to it to the clipboard. + +@end table +@vindex eshell-virtual-targets You can, of course, define your own virtual targets. They are defined -by adding a list of the form @samp{("/dev/name" @var{function} @var{mode})} to -@code{eshell-virtual-targets}. The first element is the device name; -@var{function} may be either a lambda or a function name. If -@var{mode} is @code{nil}, then the function is the output function; if it is -non-@code{nil}, then the function is passed the redirection mode as a -symbol--@code{overwrite} for @code{>}, @code{append} for @code{>>}, or -@code{insert} for @code{>>>}--and the function is expected to return -the output function. +by adding a list of the form @samp{("/dev/name" @var{function} +@var{mode})} to @code{eshell-virtual-targets}. The first element is +the device name; @var{function} may be either a lambda or a function +name. If @var{mode} is @code{nil}, then the function is the output +function; if it is non-@code{nil}, then the function is passed the +redirection mode as a symbol--@code{overwrite} for @code{>}, +@code{append} for @code{>>}, or @code{insert} for @code{>>>}--and the +function is expected to return the output function. The output function is called once on each line of output until @code{nil} is passed, indicating end of output. +@node Pipelines +@section Pipelines +As with most other shells, Eshell supports pipelines to pass the +output of one command the input of the next command. You can send the +standard output of one command to the standard input of another using +the @code{|} operator. For example, + +@example +~ $ echo hello | rev +olleh +@end example + +To send both the standard output and standard error of a command to +another command's input, you can use the @code{|&} operator. + +@subsection Running Shell Pipelines Natively +When constructing shell pipelines that will move a lot of data, it is +a good idea to bypass Eshell's own pipelining support and use the +operating system shell's instead. This is especially relevant when +executing commands on a remote machine using Eshell's Tramp +integration: using the remote shell's pipelining avoids copying the +data which will flow through the pipeline to local Emacs buffers and +then right back again. + +Eshell recognizes a special syntax to make it easier to convert +pipelines so as to bypass Eshell's pipelining. Prefixing at least one +@code{|}, @code{<} or @code{>} with an asterisk marks a command as +intended for the operating system shell. To make it harder to invoke +this functionality accidentally, it is also required that the asterisk +be preceded by whitespace or located at the start of input. For +example, + +@example + cat *.ogg *| my-cool-decoder >file +@end example + +Executing this command will not copy all the data in the *.ogg files, +nor the decoded data, into Emacs buffers, as would normally happen. + +The command is interpreted as extending up to the next @code{|} +character which is not preceded by an unescaped asterisk following +whitespace, or the end of the input if there is no such character. +Thus, all @code{<} and @code{>} redirections occurring before the next +asterisk-unprefixed @code{|} are implicitly prefixed with (whitespace +and) asterisks. An exception is that Eshell-specific redirects right +at the end of the command are excluded. This allows input like this: + +@example + foo *| baz ># +@end example + +@noindent which is equivalent to input like this: + +@example + sh -c "foo | baz" ># +@end example + @node Extension modules @chapter Extension modules Eshell provides a facility for defining extension modules so that they can be disabled and enabled without having to unload and reload them, and to provide a common parent Customize group for the -modules.@footnote{ERC provides a similar module facility.} An Eshell -module is defined the same as any other library but one requirement: the -module must define a Customize@footnote{@xref{Customization, , , -elisp, The Emacs Lisp Reference Manual}.} -group using @code{eshell-defgroup} (in place of @code{defgroup}) with -@code{eshell-module} as the parent group.@footnote{If the module has -no user-customizable options, then there is no need to define it as an -Eshell module.} You also need to load the following as shown: +modules.@footnote{ERC provides a similar module facility.} -@example -(eval-when-compile - (require 'cl-lib) - (require 'esh-mode) - (require 'eshell)) +@menu +* Optional modules:: +* Writing a module:: +@end menu -(require 'esh-util) -@end example +@node Optional modules +@section Optional modules + +@vindex eshell-modules-list +In addition to the various modules enabled by default (documented +above), Eshell provides several other modules which are @emph{not} +enabled by default. If you want to enable these, you can add them to +@code{eshell-modules-list}. @menu -* Writing a module:: -* Module testing:: -* Directory handling:: * Key rebinding:: * Smart scrolling:: -* Terminal emulation:: +* Electric forward slash:: +* Tramp extensions:: +* Extra built-in commands:: @end menu -@node Writing a module -@section Writing a module +@node Key rebinding +@subsection Key rebinding -This section is not yet written. +This module allows for special keybindings that only take effect +while the point is in a region of input text. The default keybindings +mimic the bindings used in other shells when the user is editing new +input text. To enable this module, add @code{eshell-rebind} to +@code{eshell-modules-list}. -@node Module testing -@section Module testing +For example, it binds @kbd{C-a} to move to the beginning of the input +text, @kbd{C-u} to kill the current input text, and @kbd{C-w} to +@code{backward-kill-word}. If the history module is enabled, it also +binds @kbd{C-p} and @kbd{C-n} to move through the input history. -This section is not yet written. +@vindex eshell-confine-point-to-input +If @code{eshell-confine-point-to-input} is non-@code{nil}, this module +prevents certain commands from causing the point to leave the input +area, such as @code{backward-word}, @code{previous-line}, etc. -@node Directory handling -@section Directory handling +@node Smart scrolling +@subsection Smart scrolling -This section is not yet written. +This module combines the facility of normal, modern shells with some +of the edit/review concepts inherent in the design of Plan 9's 9term. +To enable it, add @code{eshell-smart} to @code{eshell-modules-list}. -@node Key rebinding -@section Key rebinding +@itemize @bullet +@item +When you invoke a command, it is assumed that you want to read the +output of that command. -This section is not yet written. +@item +If the output is not what you wanted, it is assumed that you will want +to edit, and then resubmit a refined version of that command. -@node Smart scrolling -@section Smart scrolling +@item +If the output is valid, pressing any self-inserting character key will +jump to end of the buffer and insert that character, in order to begin +entry of a new command. + +@item +If you show an intention to edit the previous command -- by moving +around within it -- then the next self-inserting characters will +insert *there*, instead of at the bottom of the buffer. + +@item +If you show an intention to review old commands, such as @kbd{M-p} or +@kbd{M-r}, point will jump to the bottom of the buffer before invoking +that command. + +@item +If none of the above has happened yet (i.e.@: your point is just +sitting on the previous command), you can use @kbd{SPC} and +@kbd{BACKSPACE} (or @kbd{Delete}) to page forward and backward +@emph{through the output of the last command only}. It will constrain +the movement of the point and window so that the maximum amount of +output is always displayed at all times. + +@item +While output is being generated from a command, the window will be +constantly reconfigured (until it would otherwise make no difference) +in order to always show you the most output from the command possible. +This happens if you change window sizes, scroll, etc. +@end itemize + +@node Electric forward slash +@subsection Electric forward slash + +To help with supplying absolute file name arguments to remote +commands, you can add the @code{eshell-elecslash} module to +@code{eshell-modules-list}. Then, typing @kbd{/} as the first +character of a command line argument will automatically insert the +Tramp prefix @file{/method:host:}. If this is not what you want +(e.g.@: because you want to refer to a local file), you can type +another @kbd{/} to undo the automatic insertion. Typing @kbd{~/} also +inserts the Tramp prefix. The automatic insertion applies only when +@code{default-directory} is remote and the command is a Lisp function. +In particular, typing arguments to external commands doesn't insert +the prefix. + +The result is that in most cases of supplying absolute file name +arguments to commands you should see the Tramp prefix inserted +automatically only when that's what you'd reasonably expect. This +frees you from having to keep track of whether commands are Lisp +functions or external when typing command line arguments. For +example, suppose you execute -This section is not yet written. +@example + cd /ssh:root@@example.com: + find /etc -name "*gnu*" +@end example + +@noindent and in reviewing the output of the command, you identify a +file @file{/etc/gnugnu} that should be moved somewhere else. So you +type + +@example + mv /etc/gnugnu /tmp +@end example -@node Terminal emulation -@section Terminal emulation +@noindent But since @command{mv} refers to the local Lisp function +@code{eshell/mv}, not a remote shell command, to say this is to +request that the local file @file{/etc/gnugnu} be moved into the local +@file{/tmp} directory. After you add @code{eshell-elecslash} to +@code{eshell-modules-list}, then when you type the above @command{mv} +invocation you will get the following input, which is what you +intended: -This section is not yet written. +@example + mv /ssh:root@@example.com:/etc/gnugnu /ssh:root@@example.com:/tmp +@end example + +The code that determines whether or not the Tramp prefix should be +inserted uses simple heuristics. A limitation of the current +implementation is that it inspects whether only the command at the +very beginning of input is a Lisp function or external program. Thus +when chaining commands with the operators @code{&&}, @code{||}, +@code{|} and @code{;}, the electric forward slash is active only +within the first command. + +@node Tramp extensions +@subsection Tramp extensions + +This module adds built-in commands that use Tramp to handle running +other commands as different users, replacing the corresponding +external commands. To enable it, add @code{eshell-tramp} to +@code{eshell-modules-list}. + +@table @code + +@item su +@cmindex su +@itemx sudo +@cmindex sudo +@itemx doas +@cmindex doas +Uses TRAMP's @command{su}, @command{sudo}, or @command{doas} method +(@pxref{Inline methods, , , tramp, The Tramp Manual}) to run a command +via @command{su}, @command{sudo}, or @command{doas}. + +@end table + +@node Extra built-in commands +@subsection Extra built-in commands + +This module provides several extra built-in commands documented below, +primarily for working with lists of strings in Eshell. To enable it, +add @code{eshell-xtra} to @code{eshell-modules-list}. + +@table @code + +@item count +@cmindex count +A wrapper around the function @code{cl-count} (@pxref{Searching +Sequences,,, cl, GNU Emacs Common Lisp Emulation}). This command can +be used for comparing lists of strings. + +@item expr +@cmindex expr +An implementation of @command{expr} using the Calc package. +@xref{Top,,, calc, The GNU Emacs Calculator}. + +@item ff +@cmindex ff +Shorthand for the the function @code{find-name-dired} (@pxref{Dired +and Find, , , emacs, The Emacs Editor}). + +@item gf +@cmindex gf +Shorthand for the the function @code{find-grep-dired} (@pxref{Dired +and Find, , , emacs, The Emacs Editor}). + +@item intersection +@cmindex intersection +A wrapper around the function @code{cl-intersection} (@pxref{Lists as +Sets,,, cl, GNU Emacs Common Lisp Emulation}). This command +can be used for comparing lists of strings. + +@item mismatch +@cmindex mismatch +A wrapper around the function @code{cl-mismatch} (@pxref{Searching +Sequences,,, cl, GNU Emacs Common Lisp Emulation}). This command can +be used for comparing lists of strings. + +@item set-difference +@cmindex set-difference +A wrapper around the function @code{cl-set-difference} (@pxref{Lists +as Sets,,, cl, GNU Emacs Common Lisp Emulation}). This command can be +used for comparing lists of strings. + +@item set-exclusive-or +@cmindex set-exclusive-or +A wrapper around the function @code{cl-set-exclusive-or} (@pxref{Lists +as Sets,,, cl, GNU Emacs Common Lisp Emulation}). This command can be +used for comparing lists of strings. + +@item substitute +@cmindex substitute +A wrapper around the function @code{cl-substitute} (@pxref{Sequence +Functions,,, cl, GNU Emacs Common Lisp Emulation}). This command can +be used for comparing lists of strings. + +@item union +@cmindex union +A wrapper around the function @code{cl-union} (@pxref{Lists as Sets,,, +cl, GNU Emacs Common Lisp Emulation}). This command can be used for +comparing lists of strings. + +@end table + +@node Writing a module +@section Writing a module + +An Eshell module is defined the same as any other library but with two +additional requirements: first, the module's source file should be +named @file{em-@var{name}.el}; second, the module must define an +autoloaded Customize group (@pxref{Customization, , , elisp, The Emacs +Lisp Reference Manual}) with @code{eshell-module} as the parent group. +In order to properly autoload this group, you should wrap its +definition with @code{progn} as follows: + +@example +;;;###autoload +(progn +(defgroup eshell-my-module nil + "My module lets you do very cool things in Eshell." + :tag "My module" + :group 'eshell-module)) +@end example + +Even if you don't have any Customize options in your module, you +should still define the group so that Eshell can include your module +in the Customize interface for @code{eshell-modules-list}. @node Bugs and ideas @chapter Bugs and ideas @@ -809,8 +2230,6 @@ Below is a list of some known problems with Eshell version 2.4.2, which is the version included with Emacs 22. @table @asis -@item Documentation incomplete - @item Differentiate between aliases and functions Allow for a Bash-compatible syntax, such as: @@ -820,14 +2239,6 @@ alias arg=blah function arg () @{ blah $* @} @end example -@item @samp{for i in 1 2 3 @{ grep -q a b && *echo has it @} | wc -l} outputs result after prompt - -In fact, piping to a process from a looping construct doesn't work in -general. If I change the call to @code{eshell-copy-handles} in -@code{eshell-rewrite-for-command} to use @code{eshell-protect}, it seems -to work, but the output occurs after the prompt is displayed. The whole -structured command thing is too complicated at present. - @item Pcomplete sometimes gets stuck You press @key{TAB}, but no completions appear, even though the @@ -854,11 +2265,6 @@ scrolls back. @item Menu support was removed, but never put back -@item Using C-p and C-n with rebind gets into a locked state - -This happened a few times in Emacs 21, but has been irreproducible -since. - @item If an interactive process is currently running, @kbd{M-!} doesn't work @item Use a timer instead of @code{sleep-for} when killing child processes @@ -893,8 +2299,6 @@ for running shells. @item Implement @samp{-r}, @samp{-n} and @samp{-s} switches for @command{cp} -@item Make @kbd{M-5 M-x eshell} switch to ``*eshell<5>*'', creating if need be - @item @samp{mv @var{dir} @var{file}.tar} does not remove directories This is because the tar option --remove-files doesn't do so. Should it @@ -972,11 +2376,6 @@ glob match. At the moment, this is not supported. -@item Error if a glob doesn't expand due to a predicate - -An error should be generated only if @code{eshell-error-if-no-glob} is -non-@code{nil}. - @item @samp{(+ @key{RET} @key{SPC} @key{TAB}} does not cause @code{indent-according-to-mode} to occur @item Create @code{eshell-auto-accumulate-list} @@ -1033,10 +2432,6 @@ A special associate array, which can take references of the form @item Support zsh's ``Parameter Expansion'' syntax, i.e., @samp{$@{@var{name}:-@var{val}@}} -@item Write an @command{info} alias that can take arguments - -So that the user can enter @samp{info chmod}, for example. - @item Create a mode @code{eshell-browse} It would treat the Eshell buffer as an outline. Collapsing the outline @@ -1129,10 +2524,9 @@ current being used. @item How can Eshell learn if a background process has requested input? -@item Support @samp{2>&1} and @samp{>&} and @samp{2>} and @samp{|&} +@item Make a customizable syntax table for redirects -The syntax table for parsing these should be customizable, such that the -user could change it to use rc syntax: @samp{>[2=1]}. +This way, the user could change it to use rc syntax: @samp{>[2=1]}. @item Allow @samp{$_[-1]}, which would indicate the last element of the array @@ -1152,11 +2546,10 @@ it). @item Make the shell spawning commands be visual -That is, make (@command{su}, @command{bash}, @command{telnet}, -@command{rlogin}, @command{rsh}, etc.)@: be part of -@code{eshell-visual-commands}. The only exception is if the shell is -being used to invoke a single command. Then, the behavior should be -based on what that command is. +That is, make (@command{su}, @command{bash}, @command{ssh}, etc.)@: be +part of @code{eshell-visual-commands}. The only exception is if the +shell is being used to invoke a single command. Then, the behavior +should be based on what that command is. @item Create a smart viewing command named @command{open} @@ -1186,11 +2579,12 @@ only. That way, it could be listed as a login shell. @item The first keypress after @kbd{M-x watson} triggers @code{eshell-send-input} -@item Make @kbd{/} electric +@item Make @kbd{/} more electric -So that it automatically expands and corrects pathnames. Or make -pathname completion for Pcomplete auto-expand @samp{/u/i/std@key{TAB}} to -@samp{/usr/include/std@key{TAB}}. +@noindent so that it automatically expands and corrects file names, +beyond what the @code{em-elecslash} module is able to do. Or make +file name completion for Pcomplete auto-expand +@samp{/u/i/std@key{TAB}} to @samp{/usr/include/std@key{TAB}}. @item Write the @command{pushd} stack to disk along with @code{last-dir-ring} diff --git a/doc/misc/eudc.texi b/doc/misc/eudc.texi index 513872c75455..615ab76c3267 100644 --- a/doc/misc/eudc.texi +++ b/doc/misc/eudc.texi @@ -14,7 +14,7 @@ This file documents EUDC version 1.40.0. EUDC is the Emacs Unified Directory Client, a common interface to directory servers and contact information. -Copyright @copyright{} 1998, 2000--2023 Free Software Foundation, Inc. +Copyright @copyright{} 1998, 2000--2024 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -85,6 +85,10 @@ LDAP, Lightweight Directory Access Protocol BBDB, Big Brother's Insidious Database @item macOS Contacts +@item +@code{ecomplete}, Emacs's electrical completion +@item +@code{mailabbrev}, Emacs's abbrev-expansion of mail aliases @end itemize The main features of the EUDC interface are: @@ -110,6 +114,8 @@ Interface to BBDB to let you insert server records into your own BBDB database * LDAP:: What is LDAP ? * BBDB:: What is BBDB ? * macOS Contacts:: What is macOS Contacts ? +* ecomplete:: What is @code{ecomplete} ? +* mailabbrev:: What is @code{mailabbrev}? @end menu @@ -173,14 +179,73 @@ Address Book; the EUDC macOS Contacts back end also works on those older versions. +@node ecomplete +@section @code{ecomplete} + +@code{ecomplete} is Emacs's ``electric completion'', and it is part of +Emacs. It stores all information in an @file{ecompleterc} file, whose +location, and name can be configured via the variable +@code{ecomplete-database-file} (which see). The format of the file +is: + +@display +((TYPE_1 ITEM_1 ITEM_2 ...) + (TYPE_2 ITEM_N+1 ITEM_N+2 ...) + ...) +@end display + +That is, it is an alist map where the key is the type of match (so +that you can have one list of things for ``mail'', and one for, say, +``mastodon''). In each of these sections you then have a list where +each item is of the form: + +@display +(KEY TIMES-USED LAST-TIME-USED STRING) +@end display + +When performing a query, the result will be all items where the search +term matches all, or part of STRING. + +When EUDC performs queries with @code{ecomplete}, the name of each +attribute making up the query is used as the type in which the lookup +is performed. The mapping from EUDC attribute names to +@code{ecomplete} type names is performed according to the variable +@code{eudc-ecomplete-attributes-translation-alist} (which see). + + +@node mailabbrev +@section @code{mailabbrev} + +@code{mailabbrev} is Emacs's ``abbrev-expansion of mail aliases'', and +it is part of Emacs. It stores all information in a @file{mailrc} +file, whose location, and name can be configured via the variable +@code{mail-personal-alias-file} (which see). The @file{mailrc} file +has the same format as the @command{mail} and @command{mailx} commands +use for their startup configuration file. @code{mailabbrev} processes +@samp{alias}, and @samp{source} statements in the @file{mailrc} file. +@samp{alias} statements can define simple aliases and distribution +lists, and can be nested in that the alias expansion can contain +references to other alias definitions. Forward references, that is +references to aliases before they are actually defined, are possible, +too. + +Originally, @code{mailabbrev} was designed to be used with +@code{abbrev-mode}. The @code{mailabbrev} EUDC backend does not use +@code{abbrev-mode}, but queries @code{mailabbrev} for alias entries +only, and returns these as EUDC results. All entries where the alias +name exactly equals either the @code{email}, @code{name}, or +@code{firstname} attribute value in the EUDC query, will be returned +as matches. When a @file{mailrc} alias defines a distribution list, +that is it expands to more than one email address, the EUDC result +will contain a single entry, which will contain an email attribute +only, whose value will be a comma-separated list of RFC 5322 formatted +recipient specifications. + + @node Installation @chapter Installation -Add the following to your @file{.emacs} init file: -@lisp -(require 'eudc) -@end lisp -This will install EUDC at startup. +EUDC is built-in to Emacs, and its main functions are autoloaded. After installing EUDC you will find (the next time you launch Emacs) a new @code{Directory Search} submenu in the @samp{Tools} menu that will @@ -192,14 +257,16 @@ email composition buffers (@pxref{Inline Query Expansion}) @lisp (with-eval-after-load "message" - (define-key message-mode-map [(control ?c) (tab)] 'eudc-expand-inline)) + (define-key message-mode-map [(control ?c) (tab)] 'eudc-expand-try-all)) (with-eval-after-load "sendmail" - (define-key mail-mode-map [(control ?c) (tab)] 'eudc-expand-inline)) + (define-key mail-mode-map [(control ?c) (tab)] 'eudc-expand-try-all)) @end lisp @menu * LDAP Configuration:: EUDC needs external support for LDAP * macOS Contacts Configuration:: Enable the macOS Contacts backend +* ecomplete Configuration:: Enable the ecomplete backend +* mailabbrev Configuration:: Enable the mailabbrev backend @end menu @node LDAP Configuration @@ -254,7 +321,9 @@ To: * Smith @noindent will return all LDAP entries with surnames that begin with @code{Smith}. In every LDAP query it makes, EUDC implicitly appends -the wildcard character to the end of the last word. +the wildcard character to the end of the last word, except if the word +corresponds to an attribute which is a member of +@code{eudc-ldap-no-wildcard-attributes}. @menu * Emacs-only Configuration:: Configure with @file{.emacs} @@ -281,19 +350,20 @@ LDAP: @vindex message-mode-map @findex eudc-expand-inline +@findex eudc-expand-try-all @vindex eudc-server-hotlist @vindex ldap-host-parameters-alist @lisp (with-eval-after-load "message" - (define-key message-mode-map (kbd "TAB") 'eudc-expand-inline)) -(customize-set-variable 'eudc-server-hotlist - '(("" . bbdb) - ("ldaps://ldap.gnu.org" . ldap))) -(customize-set-variable 'ldap-host-parameters-alist - '(("ldaps://ldap.gnu.org" - base "ou=people,dc=gnu,dc=org" - binddn "gnu\\emacsuser" - passwd ldap-password-read))) + (define-key message-mode-map (kbd "TAB") 'eudc-expand-try-all)) +(setopt eudc-server-hotlist + '(("" . bbdb) + ("ldaps://ldap.gnu.org" . ldap))) +(setopt ldap-host-parameters-alist + '(("ldaps://ldap.gnu.org" + base "ou=people,dc=gnu,dc=org" + binddn "gnu\\emacsuser" + passwd ldap-password-read))) @end lisp @findex ldap-password-read @@ -304,7 +374,7 @@ LDAP: Specifying the function @code{ldap-password-read} for @code{passwd} will cause Emacs to prompt interactively for the password. The password will then be validated and cached, unless -@code{password-cache} is nil. You can customize +@code{password-cache} is @code{nil}. You can customize @code{password-cache-expiry} to control the duration for which the password is cached. If you want to clear the cache, call @code{password-reset}. @@ -337,17 +407,18 @@ configure EUDC for LDAP: @vindex message-mode-map @findex eudc-expand-inline +@findex eudc-expand-try-all @vindex eudc-server-hotlist @vindex ldap-host-parameters-alist @lisp (with-eval-after-load "message" - (define-key message-mode-map (kbd "TAB") 'eudc-expand-inline)) -(customize-set-variable 'eudc-server-hotlist - '(("" . bbdb) - ("ldaps://ldap.gnu.org" . ldap))) -(customize-set-variable 'ldap-host-parameters-alist - '(("ldaps://ldap.gnu.org" - auth-source t))) + (define-key message-mode-map (kbd "TAB") 'eudc-expand-try-all)) +(setopt eudc-server-hotlist + '(("" . bbdb) + ("ldaps://ldap.gnu.org" . ldap))) +(setopt ldap-host-parameters-alist + '(("ldaps://ldap.gnu.org" + auth-source t))) @end lisp For this example where we only care about one server, the server name @@ -366,15 +437,16 @@ and the @file{.emacs} expressions become: @vindex message-mode-map @findex eudc-expand-inline +@findex eudc-expand-try-all @vindex eudc-server-hotlist @vindex ldap-host-parameters-alist @lisp (with-eval-after-load "message" - (define-key message-mode-map (kbd "TAB") 'eudc-expand-inline)) -(customize-set-variable 'eudc-server-hotlist - '(("" . bbdb) ("" . ldap))) -(customize-set-variable 'ldap-host-parameters-alist - '(("" auth-source t))) + (define-key message-mode-map (kbd "TAB") 'eudc-expand-try-all)) +(setopt eudc-server-hotlist + '(("" . bbdb) ("" . ldap))) +(setopt ldap-host-parameters-alist + '(("" auth-source t))) @end lisp @node Troubleshooting @@ -401,9 +473,9 @@ level to 5 by appending @code{-d 5} to the command line. macOS Contacts support is added by means of @file{eudcb-mab.el}, or @file{eudcb-macos-contacts.el} which are part of Emacs. -To enable a macOS Contacts backend, first `require' the respective -library to load it, and then set the `eudc-server' to localhost in -your init file: +To enable a macOS Contacts backend, first @code{require} the +respective library to load it, and then set the @code{eudc-server} to +localhost in your init file: @lisp (require 'eudcb-macos-contacts) (eudc-macos-contacts-set-server "localhost") @@ -418,15 +490,42 @@ all macOS versions since 10.0 (which was released 2001). configurations. @file{eudcb-mab.el} reverse engineers the format of the database file -used by the macOS Contacts app, and accesses its contents directly. -While this may promise some performance advantages, it comes at the -cost of using an undocumented interface. Hence, users of -@file{eudcb-mab.el} are recommended to double check the compatibility -of @file{eudcb-mab.el} before upgrading to a new version of macOS. +using the external command-line utility named contacts, which needs to +be installed separately. While this may promise some performance +advantages, it comes at the cost of using an undocumented interface. +Hence, users of @file{eudcb-mab.el} are recommended to double check +the compatibility of @file{eudcb-mab.el} and the required, external +command-line utility before upgrading to a new version of macOS. @file{eudcb-mab.el} is retained for backwards compatibility with existing configurations, and may be removed in a future release. +@node ecomplete Configuration +@section @code{ecomplete} Configuration + +@code{ecomplete} is Emacs's ``electrical completion'', and is part of +Emacs. To use it, you will need to set up a database file +(@pxref{ecomplete}) first. + +It will be autoloaded on demand. + +You can also enable multi-server queries as described in +@pxref{Multi-server Queries}. + + +@node mailabbrev Configuration +@section @code{mailabbrev} Configuration + +@code{mailabbrev} is Emacs's ``abbrev-expansion of mail aliases'', and +it is part of Emacs. To use it, you will need to set up a database file +(@pxref{mailabbrev}) first. + +It will be autoloaded on demand. + +You can also enable multi-server queries as described in +@pxref{Multi-server Queries}. + + @node Usage @chapter Usage @@ -708,32 +807,49 @@ be passed to the program. @node Inline Query Expansion @section Inline Query Expansion - -Inline query expansion is a powerful method to get completion from your -directory server. The most common usage is for expanding names to email -addresses in mail message buffers. The expansion is performed by the -command @kbd{M-x eudc-expand-inline} which is available from the -@samp{Expand Inline Query} menu item but can also be conveniently -bound to a key shortcut (@pxref{Installation}). The operation is -controlled by the variables @code{eudc-inline-expansion-format}, -@code{eudc-inline-query-format}, +@subsection Inline Query Expansion Using a Key Binding + +Inline query expansion is a powerful method to get completion from +your directory servers. The most common usage is for expanding names +to email addresses in mail message buffers. The expansion is +performed by the command @kbd{M-x eudc-expand-try-all} which is +available from the @samp{Expand Inline Query Trying All Servers} menu +item but can also be conveniently bound to a key shortcut +(@pxref{Installation}). The operation is controlled by the variables +@code{eudc-inline-expansion-format}, @code{eudc-inline-query-format}, @code{eudc-expanding-overwrites-query} and @code{eudc-multiple-match-handling-method}. -If the query fails for a server, other servers may be tried successively -until one of them finds a match (@pxref{Multi-server Queries}). +If the query fails for a server, other servers may be tried +successively until one of them finds a match (@pxref{Multi-server +Queries}), or all servers can be tried and all matches returned. + +@deffn Command eudc-expand-try-all try-all-servers-p +Query some or all servers and expand the query string before point. +The query string consists of the buffer substring from the point back +to the preceding comma, colon or beginning of line. +@code{eudc-inline-query-format} controls how individual words are +mapped onto directory attribute names. After querying the server or +servers for the given string, the expansion specified by +@code{eudc-inline-expansion-format} is inserted in the buffer at +point. If multiple matches are available, a selection window is +displayed. If @var{try-all-servers-p} is non-@code{nil} then all +servers are queried. +@end deffn -@deffn Command eudc-expand-inline replace-p +@deffn Command eudc-expand-inline save-query-as-kill-p Query the server and expand the query string before point. The query string consists of the buffer substring from the point back to the -preceding comma, colon or beginning of -line. @code{eudc-inline-query-format} controls how individual words -are mapped onto directory attribute names. After querying the server -for the given string, the expansion specified by +preceding comma, colon or beginning of line. +@code{eudc-inline-query-format} controls how individual words are +mapped onto directory attribute names. After querying the server for +the given string, the expansion specified by @code{eudc-inline-expansion-format} is inserted in the buffer at -point. If @var{replace-p} is @code{t} then this expansion replaces the -query string in the buffer. If @code{eudc-expanding-overwrites-query} -is non-@code{nil} then the meaning of @var{replace-p} is negated. +point. If multiple matches are available, a selection window is +displayed. If @var{save-query-as-kill-p} is @code{t} then the query +string is saved to the kill ring. If +@code{eudc-expansion-save-query-as-kill} is non-@code{nil} then the +meaning of @var{save-query-as-kill-p} is negated. @end deffn @defvar eudc-inline-query-format @@ -776,12 +892,73 @@ against the @code{cn} attribute of LDAP servers: @end defvar @defvar eudc-inline-expansion-format -This variable lets you control exactly what is inserted into the buffer -upon an inline expansion request. It is a list whose first element is a -string passed to @code{format}. Remaining elements are symbols -corresponding to directory attribute names. The corresponding attribute -values are passed as additional arguments to @code{format}. Default is -@code{("%s %s <%s>" firstname name email)}. +This variable lets you control exactly what is inserted into the +buffer upon an inline expansion request. It can be set to @code{nil}, +to a function, or to a list. Default is @code{nil}. + +When the value is a list, the first element is a string passed to +@code{format}. Remaining elements are symbols corresponding to +directory attribute names. The corresponding attribute values are +passed as additional arguments to @code{format}. + +When the value is @code{nil}, the expansion result will be formatted +according to @url{https://datatracker.ietf.org/doc/html/rfc5322, RFC +5322}. The @var{phrase} part will be formatted as ``firstname name'', +quoting the result if necessary. No @var{comment} part will be added +in this case. This will produce any of the default formats +@center @var{address} +@center @var{first} @code{<}@var{address}@code{>} +@center @var{last} @code{<}@var{address}@code{>} +@center @var{first} @var{last} @code{<}@var{address}@code{>} +depending on whether a first and/or last name are returned by the +query, or not. + +When the value is a function, the expansion result will be formatted +according to @url{https://datatracker.ietf.org/doc/html/rfc5322, RFC +5322}, and the referenced function is called to format the +@var{phrase}, and @var{comment} parts, respectively. The formatted +@var{phrase} part will be quoted if necessary. Thus one can produce +any of the formats: +@center @var{address} +@center @var{phrase} @code{<}@var{address}@code{>} +@center @var{address} @code{(}@var{comment}@code{)} +@center @var{phrase} @code{<}@var{address}@code{>} @code{(}@var{comment}@code{)} + +Email address specifications, as are generated by inline expansion, +need to comply with RFC 5322 in order to be useful in email +messages. When an invalid address specification is present in an email +message header, the message is likely to be rejected by a receiving +MTA. It is hence recommended to switch old configurations, which use +a list value, to the new @code{nil}, or function value type since it +ensures that the inserted address specifications will be in line with +@url{https://datatracker.ietf.org/doc/html/rfc5322, RFC 5322}. At +minimum, and to achieve the same semantics as with the old list +default value, this variable should now be set to @code{nil}: +@lisp +(customize-set-variable 'eudc-inline-expansion-format nil) +@end lisp + +A function value can for example be used to get @emph{``last, first +
''} instead of the default @emph{``first last
''}: +@lisp +(defun my-phrase-last-comma-first (search-res-alist) + (let* (phrase + (my-attrs (eudc-translate-attribute-list '(firstname name))) + (first-name (cdr (assq (nth 0 my-attrs) search-res-alist))) + (last-name (cdr (assq (nth 1 my-attrs) search-res-alist))) + (comment nil)) + (setq phrase (concat last-name ", " first-name)) + (cons phrase comment))) + +(customize-set-variable 'eudc-inline-expansion-format + #'my-phrase-last-comma-first) +@end lisp +To set the @var{comment} part, too, instead of @code{nil} as in this +example, also provide a string as the @code{cdr} of the @code{cons} +being returned. Do not include any double quotes in the @var{phrase} +part, as they are added automatically if needed. Neither include +parentheses in the @var{comment} part as they, too, are added +automatically. @end defvar @defvar eudc-multiple-match-handling-method @@ -803,19 +980,52 @@ An error is signaled. The expansion aborts. Default is @code{select} @end defvar +@subsection Inline Query Expansion Using completion-at-point + +In addition to providing a dedicated EUDC function for binding to a +key shortcut (@pxref{Inline Query Expansion}), EUDC also provides a +function to contribute search results to the Emacs in-buffer +completion system available via the function +@code{completion-at-point} (@pxref{Identifier +Inquiries,,,maintaining}) in @code{message-mode} buffers +(@pxref{Top,Message,, message, Message}). When using this mechanism, +queries are made in the multi-server query mode of operation +(@pxref{Multi-server Queries}). + +When a buffer in @code{message-mode} is created, EUDC's inline +expansion function is automatically added to the variable +@code{completion-at-point-functions}. As a result, whenever +@code{completion-at-point} is invoked in a @code{message-mode} buffer, +EUDC will be queried for email addresses matching the words before +point. Since this will be useful only when editing specific message +header fields that require specifying one or more email addresses, an +additional check is performed whether point is actually in one of +those header fields. Thus, any matching email addresses will be +offered for completion in suitable message header fields only, and not +in other places, like for example the body of the message. @node The Server Hotlist @section The Server Hotlist EUDC lets you maintain a list of frequently used servers so that you -can easily switch from one to another. This hotlist appears in the -@samp{Server} submenu. You select a server in this list by clicking on -its name. You can add the current server to the list with the command -@kbd{M-x eudc-bookmark-current-server}. The list is contained in the variable -@code{eudc-server-hotlist} which is stored in and retrieved from the file -designated by @code{eudc-options-file}. EUDC also provides a facility to -edit the hotlist interactively (@pxref{The Hotlist Edit Buffer}). +can easily switch from one to another. Most users should configure +the hotlist via Customize, and store the configuration in the main +Emacs initialization file. Configuring it dynamically can be +confusing, particularly if the hotlist settings are saved to +@code{eudc-options-file} automatically. @code{eudc-options-file} is +historical and support for it is still maintained, but new EUDC users +should set @code{eudc-ignore-options-file} to @code{t}. + +However, this hotlist also appears in the @samp{Server} submenu. You +select a server in this list by clicking on its name. You can add the +current server to the list with the command @kbd{M-x +eudc-bookmark-current-server}. The list is contained in the variable +@code{eudc-server-hotlist} which is stored in and retrieved from the +file designated by @code{eudc-options-file}, or normal Emacs +initialization if @code{eudc-ignore-options-file} is non-@code{nil}. +EUDC also provides a facility to edit the hotlist interactively +(@pxref{The Hotlist Edit Buffer}). The hotlist is also used to make queries on multiple servers successively (@pxref{Multi-server Queries}). The order in which the @@ -830,11 +1040,19 @@ Add @var{server} to the hotlist of servers Add the current server to the hotlist of servers @end deffn +@defvar eudc-ignore-options-file +If non-@code{nil}, EUDC ignores @code{eudc-options-file} and warns or +issues an error when an attempt is made to use it. Most users should +set this, and keep their EUDC configuration in the main Emacs +initialization file instead. The separate @file{eudc-options} file +has created confusion for users in the past. +@end defvar + @defvar eudc-options-file The name of a file where EUDC stores its internal variables (the hotlist and the current server). EUDC will try to load that file upon initialization so, if you choose a file name different from the -defaults @file{~/.emacs.d/eudc-options}, be sure to set this variable +default @file{~/.emacs.d/eudc-options}, be sure to set this variable to the appropriate value @emph{before} EUDC is itself loaded. @end defvar diff --git a/doc/misc/eww.texi b/doc/misc/eww.texi index a0842dcb3eab..564c320aafdb 100644 --- a/doc/misc/eww.texi +++ b/doc/misc/eww.texi @@ -8,7 +8,7 @@ @copying This file documents the GNU Emacs Web Wowser (EWW) package. -Copyright @copyright{} 2014--2023 Free Software Foundation, Inc. +Copyright @copyright{} 2014--2024 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -67,9 +67,15 @@ Indices @node Overview @chapter Overview -@dfn{EWW}, the Emacs Web Wowser, is a web browser for GNU Emacs. It -can load, parse, and display various web pages using @dfn{shr.el}. -However, a GNU Emacs with @code{libxml2} support is required. + +@dfn{EWW}, the Emacs Web Wowser, is a web browser for GNU Emacs that +provides a simple, no-frills experience that focuses on readability. +It loads, parses, and displays web pages using @dfn{shr.el}. It can +display images inline, if Emacs was built with image support, but +there is no support for CSS or JavaScript. + +To use EWW, you need to use an Emacs built with @code{libxml2} +support. @node Basics @chapter Basic Usage @@ -305,6 +311,7 @@ state the directionality. @vindex shr-max-image-proportion @vindex shr-blocked-images +@vindex shr-allowed-images @cindex Image Display Loading random images from the web can be problematic due to their size or content. By customizing @code{shr-max-image-proportion} you @@ -360,8 +367,8 @@ point positions or the actual Web page contents. The latter, however, tend to be overly large to preserve in the desktop file, so they get omitted, thus rendering the respective entries entirely equivalent. By default, such duplicate entries are -not saved. Setting @code{eww-desktop-remove-duplicates} to nil will -force EWW to save them anyway. +not saved. Setting @code{eww-desktop-remove-duplicates} to @code{nil} +will force EWW to save them anyway. @vindex eww-restore-desktop Restoring EWW buffers' contents may prove to take too long to @@ -380,6 +387,32 @@ thus allowing for the use of the usual substitutions, such as @code{\[eww-reload]} for the current key binding of the @code{eww-reload} command. +@vindex eww-auto-rename-buffer + If the @code{eww-auto-rename-buffer} user option is non-@code{nil}, +EWW buffers will be renamed after rendering a document. If this is +@code{title}, rename based on the title of the document. If this is +@code{url}, rename based on the @acronym{URL} of the document. This +can also be a user-defined function, which is called with no +parameters in the EWW buffer, and should return a string. + +@cindex utm +@vindex eww-url-transformers + EWW runs the URLs through @code{eww-url-transformers} before using +them. This user option is a list of functions, where each function is +called with the URL as the parameter, and should return the (possibly) +transformed URL. By default, this variable contains +@code{eww-remove-tracking}, which removes the common @samp{utm_} +trackers from links. + +@cindex video +@vindex shr-use-xwidgets-for-media + If Emacs has been built with xwidget support, EWW can use that to +display @samp{