forked from Github/emacs
Compare commits
4 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dec958258b | ||
|
|
3c9701938d | ||
|
|
91d6ef2dcb | ||
|
|
8a9e5767d8 |
2750 changed files with 152150 additions and 558720 deletions
|
|
@ -1,20 +1,12 @@
|
|||
Language: Cpp
|
||||
BasedOnStyle: GNU
|
||||
AlignEscapedNewlinesLeft: true
|
||||
AlignOperands: Align
|
||||
AlwaysBreakAfterReturnType: TopLevelDefinitions
|
||||
BreakBeforeBinaryOperators: All
|
||||
BreakBeforeBraces: GNU
|
||||
ColumnLimit: 70
|
||||
ContinuationIndentWidth: 2
|
||||
IndentPPDirectives: AfterHash
|
||||
PPIndentWidth: 1
|
||||
ForEachMacros:
|
||||
- FOR_EACH_TAIL
|
||||
- FOR_EACH_TAIL_SAFE
|
||||
- FOR_EACH_LIVE_BUFFER
|
||||
- ITREE_FOREACH
|
||||
- FOR_EACH_ALIST_VALUE
|
||||
ForEachMacros: [FOR_EACH_TAIL, FOR_EACH_TAIL_SAFE]
|
||||
IncludeCategories:
|
||||
- Regex: '^<config\.h>$'
|
||||
Priority: -1
|
||||
|
|
@ -24,17 +16,11 @@ 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
|
||||
|
|
|
|||
|
|
@ -1,18 +1,12 @@
|
|||
;;; Directory Local Variables -*- no-byte-compile: t; -*-
|
||||
;;; Directory Local Variables
|
||||
;;; For more information see (info "(emacs) Directory Variables")
|
||||
|
||||
((nil . ((tab-width . 8)
|
||||
(sentence-end-double-space . t)
|
||||
(fill-column . 70)
|
||||
(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)))
|
||||
(bug-reference-url-format . "https://debbugs.gnu.org/%s")))
|
||||
(c-mode . ((c-file-style . "GNU")
|
||||
(c-noise-macro-names . ("INLINE" "NO_INLINE" "ATTRIBUTE_NO_SANITIZE_UNDEFINED"
|
||||
"UNINIT" "CALLBACK" "ALIGN_STACK" "ATTRIBUTE_MALLOC"
|
||||
"ATTRIBUTE_DEALLOC_FREE"))
|
||||
(c-noise-macro-names . ("INLINE" "ATTRIBUTE_NO_SANITIZE_UNDEFINED" "UNINIT" "CALLBACK" "ALIGN_STACK"))
|
||||
(electric-quote-comment . nil)
|
||||
(electric-quote-string . nil)
|
||||
(indent-tabs-mode . t)
|
||||
|
|
@ -21,12 +15,8 @@
|
|||
(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)
|
||||
(vc-git-log-edit-summary-target-len . 50)))
|
||||
(log-edit-setup-add-author . t)))
|
||||
(change-log-mode . ((add-log-time-zone-rule . t)
|
||||
(fill-column . 74)
|
||||
(mode . bug-reference)))
|
||||
|
|
@ -35,7 +25,6 @@
|
|||
(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)))
|
||||
|
|
|
|||
25
.gitignore
vendored
25
.gitignore
vendored
|
|
@ -25,7 +25,6 @@
|
|||
|
||||
# Personal customization.
|
||||
.dir-locals-2.el
|
||||
.no-advice-on-failure
|
||||
|
||||
# Built by 'autogen.sh'.
|
||||
/aclocal.m4
|
||||
|
|
@ -54,7 +53,6 @@ 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
|
||||
|
|
@ -158,11 +156,9 @@ 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
|
||||
|
|
@ -186,7 +182,6 @@ ID
|
|||
# Executables.
|
||||
*.exe
|
||||
a.out
|
||||
lib-src/be-resources
|
||||
lib-src/blessmail
|
||||
lib-src/ctags
|
||||
lib-src/ebrowse
|
||||
|
|
@ -208,7 +203,6 @@ 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
|
||||
|
|
@ -221,10 +215,8 @@ 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.
|
||||
|
|
@ -321,20 +313,3 @@ lib-src/seccomp-filter.bpf
|
|||
lib-src/seccomp-filter.pfc
|
||||
lib-src/seccomp-filter-exec.bpf
|
||||
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
|
||||
|
|
|
|||
|
|
@ -15,7 +15,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/>.
|
||||
|
||||
# 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
|
||||
|
|
|
|||
19
.mailmap
19
.mailmap
|
|
@ -30,8 +30,6 @@ Artur Malabarba <bruce.connor.am@gmail.com> <am12548@it055607.users.bris.ac.uk>
|
|||
Bastien Guerry <bzg@gnu.org>
|
||||
Bastien Guerry <bzg@gnu.org> <bastien1@free.fr>
|
||||
Bastien Guerry <bzg@gnu.org> <bzg@altern.org>
|
||||
Benjamin Schwerdtner <Benjamin.Schwerdtner@gmail.com>
|
||||
Bob Rogers <rogers@rgrjr.com> <rogers-emacs@rgrjr.homedns.org>
|
||||
Bruno Félix Rezende Ribeiro <oitofelix@gnu.org> <oitofelix@gmail.com>
|
||||
Carlos Pita <carlosjosepita@gmail.com>
|
||||
Chong Yidong <cyd@gnu.org> <cyd@stupidchicken.com>
|
||||
|
|
@ -79,9 +77,6 @@ Ian Dunn <dunni@gnu.org>
|
|||
Jan Djärv <jan.h.d@swipnet.se>
|
||||
Jan Djärv <jan.h.d@swipnet.se> <jhd@f20.localdomain>
|
||||
Jason Rumney <jasonr@gnu.org> <jasonr@wanchan>
|
||||
Jeff Walsh <fejfighter@gmail.com> <jawalsh@localhost.localdomain>
|
||||
Jeff Walsh <fejfighter@gmail.com> <jeff.walsh@drtusers-MacBook-Pro.local>
|
||||
Jeff Walsh <fejfighter@gmail.com> <jewalsh@redhat.com>
|
||||
Jens Lechtenbörger <jens.lechtenboerger@fsfe.org>
|
||||
Jim Blandy <jimb@red-bean.com> <jimb@redhat.com>
|
||||
Jimmy Aguilar Mena <spacibba@aol.com>
|
||||
|
|
@ -105,14 +100,12 @@ Kenichi Handa <handa@gnu.org>
|
|||
Kenichi Handa <handa@gnu.org> <handa@etlken>
|
||||
Kenichi Handa <handa@gnu.org> <handa@m17n.org>
|
||||
Kenjiro Nakayama <nakayamakenjiro@gmail.com>
|
||||
Kjartan Óli Ágústsson <kjartanoli@outlook.com>
|
||||
Károly Lőrentey <lorentey@elte.hu>
|
||||
Lars Ingebrigtsen <larsi@gnus.org>
|
||||
Lars Ingebrigtsen <larsi@gnus.org> <larsi@emkay.local>
|
||||
Lars Ingebrigtsen <larsi@gnus.org> <larsi@openbsd6.gnus.org>
|
||||
Lars Ingebrigtsen <larsi@gnus.org> <larsi@quimbies.gnus.org>
|
||||
Lars Ingebrigtsen <larsi@gnus.org> <larsi@stories.gnus.org>
|
||||
Laurence Warne <laurencewarne@gmail.com>
|
||||
Lin Sun <lin.sun@zoom.us>
|
||||
Ludovic Courtès <ludo@gnu.org>
|
||||
Luke Lee <luke.yx.lee@gmail.com>
|
||||
|
|
@ -126,7 +119,6 @@ Maxim Nikulin <manikulin@gmail.com>
|
|||
Michael Albinus <michael.albinus@gmx.de> <albinus@detlef>
|
||||
Michalis V <mvar.40k@gmail.com>
|
||||
Miha Rihtaršič <miha@kamnitnik.top>
|
||||
Morgan J. Smith <Morgan.J.Smith@outlook.com>
|
||||
Nick Drozd <nicholasdrozd@gmail.com>
|
||||
Nicolas Petton <nicolas@petton.fr> <petton.nicolas@gmail.com>
|
||||
Nitish Chandra <nitishchandrachinta@gmail.com>
|
||||
|
|
@ -141,7 +133,6 @@ Peter Oliver <p.d.oliver@mavit.org.uk> <bzr@mavit.org.uk>
|
|||
Peter Oliver <p.d.oliver@mavit.org.uk> <git@mavit.org.uk>
|
||||
Philip Kaludercic <philipk@posteo.net>
|
||||
Philip Kaludercic <philipk@posteo.net> <philip.kaludercic@fau.de>
|
||||
Philip Kaludercic <philipk@posteo.net> <philip@icterid>
|
||||
Philip Kaludercic <philipk@posteo.net> <philip@warpmail.net>
|
||||
Philipp Stephani <phst@google.com>
|
||||
Philipp Stephani <phst@google.com> Philipp Stephani <p.stephani2@gmail.com>
|
||||
|
|
@ -149,7 +140,6 @@ Phillip Lord <phillip.lord@russet.org.uk> <phillip.lord@newcastle.ac.uk>
|
|||
Pierre Lorenzon <devel@pollock-nageoire.net>
|
||||
Pieter van Oostrum <pieter@vanoostrum.org> <pieter-l@vanoostrum.org>
|
||||
Pip Cet <pipcet@gmail.com>
|
||||
Po Lu <luangruo@yahoo.com>
|
||||
Po Lu <luangruo@yahoo.com> Po Lu via <emacs-devel@gnu.org>
|
||||
Przemysław Wojnowski <esperanto@cumego.com>
|
||||
Rasmus <rasmus@gmx.us>
|
||||
|
|
@ -159,10 +149,8 @@ Robert Weiner <rsw@gnu.org> <rswgnu@gmail.com>
|
|||
Roland Winkler <winkler@gnu.org> <Roland.Winkler@physik.uni-erlangen.de>
|
||||
Ronnie Schnell <ronnie@driver-aces.com>
|
||||
Ryan C. Thompson <rct@thompsonclan.org>
|
||||
Sam Steingold <sds@gnu.org> <sdsg@amazon.com>
|
||||
Simen Heggestøyl <simenheg@runbox.com>
|
||||
Simen Heggestøyl <simenheg@runbox.com> <simenheg@ifi.uio.no>
|
||||
Simen Heggestøyl <simenheg@runbox.com> <simenheg@gmail.com>
|
||||
Simen Heggestøyl <simenheg@gmail.com>
|
||||
Simen Heggestøyl <simenheg@gmail.com> <simenheg@ifi.uio.no>
|
||||
Simon Josefsson <simon@josefsson.org> <jas@extundo.com>
|
||||
Stefan Kangas <stefankangas@gmail.com> <stefan@marxist.se>
|
||||
Stefan Monnier <monnier@iro.umontreal.ca> <monnier@IRO.UMontreal.CA>
|
||||
|
|
@ -184,13 +172,10 @@ Ulf Jasper <ulf.jasper@web.de> Ulf Jasper <>
|
|||
Ulf Jasper <ulf.jasper@web.de> Ulf Jasper <ulf@uthinkpad>
|
||||
Ulrich Müller <ulm@gentoo.org>
|
||||
Vinicius Jose Latorre <viniciusjl@ig.com.br> <viniciusjl.gnu@gmail.com>
|
||||
Vladimir Nikishkin <lockywolf@gmail.com> <for.emacs-table.el-environment-patch_2022-05-09@lockywolf.net>
|
||||
Werner Lemberg <wl@gnu.org>
|
||||
Wolfgang Scherer <wolfgang.scherer@gmx.de> <Wolfgang.Scherer@gmx.de>
|
||||
Xi Lu <lx@shellcodes.org>
|
||||
Xue Fuqiao <xfq.free@gmail.com> <xfq@gnu.org>
|
||||
Yilkal Argaw <yilkalargawworkneh@gmail.com>
|
||||
Yuuki Harano <masm+github@masm11.me> <masm@masm11.ddo.jp>
|
||||
Óscar Fuentes <ofv@wanadoo.es>
|
||||
İ. Göktuğ Kayaalp <self@gkayaalp.com>
|
||||
Łukasz Stelmach <stlman@poczta.fm> <l.stelmach@samsung.com>
|
||||
|
|
|
|||
74
CONTRIBUTE
74
CONTRIBUTE
|
|
@ -1,6 +1,3 @@
|
|||
Copyright (C) 2006-2023 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
|
||||
|
|
@ -18,7 +15,7 @@ To configure Git for Emacs development, you can run the following:
|
|||
|
||||
The following shell commands then build and run Emacs from scratch:
|
||||
|
||||
git clone https://git.savannah.gnu.org/git/emacs.git
|
||||
git clone git://git.sv.gnu.org/emacs.git
|
||||
cd emacs
|
||||
./autogen.sh
|
||||
./configure
|
||||
|
|
@ -110,7 +107,7 @@ 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 reading NEWS in Outline
|
||||
and takes just one line -- this will allow to read NEWS in Outline
|
||||
mode after hiding the body of each entry.
|
||||
|
||||
Doc-strings should be updated together with the code.
|
||||
|
|
@ -123,7 +120,7 @@ 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.
|
||||
Otherwise do not mark it.
|
||||
|
||||
If your change requires updating the manuals to document new
|
||||
functions/commands/variables/faces, then use the proper Texinfo
|
||||
|
|
@ -205,10 +202,9 @@ 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.
|
||||
|
||||
- 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.
|
||||
- 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.
|
||||
|
||||
- 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
|
||||
|
|
@ -318,45 +314,11 @@ 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. 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.
|
||||
change's author.
|
||||
|
||||
** Branches
|
||||
|
||||
|
|
@ -400,26 +362,10 @@ 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
|
||||
reason. These should be marked by including something like "Do not
|
||||
reasons. 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
|
||||
|
|
@ -449,8 +395,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' and 'admin/notes/repo'.
|
||||
See all the files in admin/notes/* . In particular, see
|
||||
admin/notes/newfile, see 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
|
||||
|
|
|
|||
|
|
@ -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 prerequisite.
|
||||
(extraclean): Define using each subdirectory as a prequisite.
|
||||
* lib/Makefile.am (bootstrap-clean): New.
|
||||
|
||||
2014-06-15 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
|
@ -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) <darwin>:
|
||||
No longer unconditionally add /sw directories. (Bug#2280)
|
||||
No longer unconditonally 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 <https://sourceware.org/bugzilla/show_bug.cgi?id=6723>
|
||||
See <http://sourceware.org/bugzilla/show_bug.cgi?id=6723>
|
||||
(not_equal_tm) [DEBUG]: Use isdst_differ here, too.
|
||||
|
||||
mktime: fix some integer overflow issues and sidestep the rest
|
||||
|
|
|
|||
16
ChangeLog.2
16
ChangeLog.2
|
|
@ -111,7 +111,7 @@
|
|||
|
||||
2017-03-21 Noam Postavsky <npostavs@gmail.com>
|
||||
|
||||
Narrow scope of modification hook re-enabling in org-src fontification
|
||||
Narrow scope of modification hook renabling 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
|
||||
|
|
@ -9317,7 +9317,7 @@
|
|||
optional.
|
||||
|
||||
* src/buffer.c (Fbarf_if_buffer_read_only): Rename argument POS
|
||||
to POSITION to keep consistent with doc-string.
|
||||
to POSITION to keep consisteny with doc-string.
|
||||
|
||||
2016-02-01 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
|
|
@ -11843,7 +11843,7 @@
|
|||
|
||||
2016-01-05 Alan Mackenzie <acm@muc.de>
|
||||
|
||||
Make C++ buffers writable when writing their initial text properties.
|
||||
Make C++ buffers writeable when writing their initial text properties.
|
||||
|
||||
This is a correction to yesterday's CC Mode patch.
|
||||
|
||||
|
|
@ -23054,8 +23054,8 @@
|
|||
|
||||
Fix tests in file-notify-tests.el
|
||||
* test/automated/file-notify-tests.el: Remove Tramp declarations.
|
||||
(file-notify-test00-availability): Print remote command without
|
||||
Tramp internal functions.
|
||||
(file-notify-test00-availability): Print remote command w/o Tramp
|
||||
internal functions.
|
||||
(file-notify-test02-events, file-notify-test02-events-remote):
|
||||
Adapt docstring.
|
||||
(file-notify-test03-autorevert): Use `format-message' when
|
||||
|
|
@ -26343,7 +26343,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 highlighted.
|
||||
and #=# are no longer partially highlighed.
|
||||
(verilog-backward-syntactic-ws-quick)
|
||||
(verilog-skip-backward-comments): Minor performance improvements
|
||||
to buffer traversal functions for reduced latency.
|
||||
|
|
@ -28676,7 +28676,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-point in R2L lines
|
||||
Fix value of posn-at-pont 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.
|
||||
|
|
@ -34464,7 +34464,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 against package archive and status
|
||||
as special keywords which match agains package archive and status
|
||||
respectively.
|
||||
* etc/NEWS: Document it.
|
||||
|
||||
|
|
|
|||
378
ChangeLog.3
378
ChangeLog.3
File diff suppressed because it is too large
Load diff
114348
ChangeLog.4
114348
ChangeLog.4
File diff suppressed because it is too large
Load diff
67
GNUmakefile
67
GNUmakefile
|
|
@ -36,31 +36,31 @@
|
|||
|
||||
ifeq (help,$(filter help,$(MAKECMDGOALS)))
|
||||
help:
|
||||
$(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 )
|
||||
@:
|
||||
@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
|
||||
|
||||
.PHONY: help
|
||||
|
||||
|
|
@ -79,7 +79,7 @@ else
|
|||
ifeq ($(filter-out %clean,$(or $(MAKECMDGOALS),default)),)
|
||||
|
||||
$(MAKECMDGOALS):
|
||||
$(warning No Makefile; skipping $@.)
|
||||
@echo >&2 'No Makefile; skipping $@.'
|
||||
|
||||
else
|
||||
|
||||
|
|
@ -97,25 +97,20 @@ default $(ORDINARY_GOALS): Makefile
|
|||
.NOTPARALLEL:
|
||||
|
||||
configure:
|
||||
$(warning There seems to be no "configure" file in this directory.)
|
||||
$(warning Running ./autogen.sh ...)
|
||||
@echo >&2 'There seems to be no "configure" file in this directory.'
|
||||
@echo >&2 Running ./autogen.sh ...
|
||||
./autogen.sh
|
||||
@echo >&2 '"configure" file built.'
|
||||
|
||||
Makefile: configure
|
||||
$(warning There seems to be no Makefile in this directory.)
|
||||
ifeq ($(configure),default)
|
||||
$(warning Running ./configure ...)
|
||||
@echo >&2 'There seems to be no Makefile in this directory.'
|
||||
@echo >&2 '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 bootstrap-all
|
||||
$(MAKE) -f Makefile all
|
||||
|
||||
.PHONY: bootstrap default $(ORDINARY_GOALS)
|
||||
|
||||
|
|
|
|||
52
INSTALL
52
INSTALL
|
|
@ -4,13 +4,11 @@ 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 Git checkout (rather than an
|
||||
Emacs release), read the INSTALL.REPO file first.
|
||||
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.
|
||||
|
||||
|
||||
BASIC INSTALLATION
|
||||
|
|
@ -187,9 +185,8 @@ 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: https://giflib.sourceforge.net/
|
||||
X libgif for GIF: http://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
|
||||
|
|
@ -228,38 +225,6 @@ 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:
|
||||
|
||||
|
|
@ -348,7 +313,6 @@ 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.
|
||||
|
|
@ -358,10 +322,6 @@ 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
|
||||
|
|
|
|||
25
INSTALL.REPO
25
INSTALL.REPO
|
|
@ -4,19 +4,13 @@ The Emacs repository is hosted on Savannah. The following Git command
|
|||
will clone the repository to the 'emacs' subdirectory of the current
|
||||
directory on your local machine:
|
||||
|
||||
git clone https://git.savannah.gnu.org/git/emacs.git
|
||||
git clone git://git.sv.gnu.org/emacs.git
|
||||
|
||||
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; 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.
|
||||
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.
|
||||
|
||||
Building Emacs from the source-code repository requires some tools
|
||||
that are not needed when building from a release. You will need:
|
||||
|
|
@ -64,16 +58,7 @@ 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. '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
|
||||
to rebuild, avoiding spurious problems.
|
||||
|
||||
Occasionally, there are changes that 'make bootstrap' won't be able to
|
||||
handle. The most thorough cleaning can be achieved by 'git clean -fdx'
|
||||
|
|
|
|||
227
Makefile.in
227
Makefile.in
|
|
@ -51,15 +51,7 @@
|
|||
#
|
||||
# make bootstrap
|
||||
# Removes all the compiled files to force a new bootstrap from a
|
||||
# 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.
|
||||
# clean slate, and then build in the normal way.
|
||||
#
|
||||
# make docs
|
||||
# Make Emacs documentation files from their sources; requires makeinfo.
|
||||
|
|
@ -110,11 +102,6 @@ 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.
|
||||
|
|
@ -223,9 +210,6 @@ icondir=$(datarootdir)/icons
|
|||
# The source directory for the icon files.
|
||||
iconsrcdir=$(srcdir)/etc/images/icons
|
||||
|
||||
# Where to install the gsettings schema file.
|
||||
gsettingsschemadir = $(datadir)/glib-2.0/schemas
|
||||
|
||||
# ==================== Emacs-specific directories ====================
|
||||
|
||||
# These variables hold the values Emacs will actually use. They are
|
||||
|
|
@ -320,21 +304,15 @@ LN_S_FILEONLY = @LN_S_FILEONLY@
|
|||
# We use gzip to compress installed .el and some .txt files.
|
||||
GZIP_PROG = @GZIP_PROG@
|
||||
|
||||
GLIB_COMPILE_SCHEMAS = glib-compile-schemas
|
||||
|
||||
# ============================= Targets ==============================
|
||||
|
||||
# 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
|
||||
|
|
@ -364,81 +342,10 @@ BIN_DESTDIR='${ns_appbindir}/'
|
|||
ELN_DESTDIR = ${ns_applibdir}/
|
||||
endif
|
||||
|
||||
gsettings_SCHEMAS = etc/org.gnu.emacs.defaults.gschema.xml
|
||||
|
||||
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
|
||||
all: ${SUBDIR} info
|
||||
|
||||
.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.
|
||||
|
|
@ -517,10 +424,6 @@ 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
|
||||
|
|
@ -532,16 +435,18 @@ lisp: src
|
|||
lib lib-src lisp nt: Makefile
|
||||
$(MAKE) -C $@ all
|
||||
|
||||
trampolines: src lisp
|
||||
ifeq ($(HAVE_NATIVE_COMP),yes)
|
||||
$(MAKE) -C lisp trampolines
|
||||
endif
|
||||
|
||||
# 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.
|
||||
#
|
||||
# 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 $@ BIN_DESTDIR='$(BIN_DESTDIR)' \
|
||||
$(MAKE) -C $@ VCSWITNESS='$(VCSWITNESS)' BIN_DESTDIR='$(BIN_DESTDIR)' \
|
||||
ELN_DESTDIR='$(ELN_DESTDIR)' all
|
||||
|
||||
blessmail: Makefile src
|
||||
|
|
@ -589,7 +494,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: actual-all install-arch-indep install-etcdoc install-arch-dep install-$(NTDIR) blessmail install-eln install-gsettings-schemas
|
||||
install: all install-arch-indep install-etcdoc install-arch-dep install-$(NTDIR) blessmail install-eln
|
||||
@true
|
||||
|
||||
## Ensure that $subdir contains a subdirs.el file.
|
||||
|
|
@ -615,14 +520,8 @@ 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)
|
||||
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}
|
||||
${INSTALL_DATA} src/emacs.pdmp "$(DESTDIR)${libexecdir}/emacs/${version}/${configuration}"/emacs.pdmp
|
||||
endif
|
||||
-chmod 755 "$(DESTDIR)${bindir}/$(EMACSFULL)"
|
||||
ifndef NO_BIN_LINK
|
||||
|
|
@ -705,8 +604,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}" && pwd -P`; \
|
||||
[ "$$exp_dest" = "`cd $${dir} && pwd -P`" ] && continue ; \
|
||||
exp_dest=`cd "$${dest}" && /bin/pwd`; \
|
||||
[ "$$exp_dest" = "`cd $${dir} && /bin/pwd`" ] && continue ; \
|
||||
else true; \
|
||||
fi; \
|
||||
rm -rf "$${dest}" ; \
|
||||
|
|
@ -762,13 +661,15 @@ 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}"; pwd -P`; \
|
||||
if [ "`cd ./etc; pwd -P`" != "$$exp_etcdocdir" ]; \
|
||||
exp_etcdocdir=`cd "$(DESTDIR)${etcdocdir}"; /bin/pwd`; \
|
||||
if [ "`cd ./etc; /bin/pwd`" != "$$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:
|
||||
|
|
@ -778,9 +679,9 @@ install-etcdoc: src install-arch-indep
|
|||
install-info: info
|
||||
umask 022; ${MKDIR_P} "$(DESTDIR)${infodir}"
|
||||
-unset CDPATH; \
|
||||
thisdir=`pwd -P`; \
|
||||
exp_infodir=`cd "$(DESTDIR)${infodir}" && pwd -P`; \
|
||||
if [ "`cd ${srcdir}/info && pwd -P`" = "$$exp_infodir" ]; then \
|
||||
thisdir=`/bin/pwd`; \
|
||||
exp_infodir=`cd "$(DESTDIR)${infodir}" && /bin/pwd`; \
|
||||
if [ "`cd ${srcdir}/info && /bin/pwd`" = "$$exp_infodir" ]; then \
|
||||
true; \
|
||||
else \
|
||||
[ -f "$(DESTDIR)${infodir}/dir" ] || \
|
||||
|
|
@ -809,7 +710,7 @@ install-info: info
|
|||
## but not sure if portable.
|
||||
install-man:
|
||||
umask 022; ${MKDIR_P} "$(DESTDIR)${man1dir}"
|
||||
thisdir=`pwd -P`; \
|
||||
thisdir=`/bin/pwd`; \
|
||||
cd ${mansrcdir}; \
|
||||
for page in *.1; do \
|
||||
test "$$page" = ChangeLog.1 && continue; \
|
||||
|
|
@ -841,7 +742,7 @@ install-etc:
|
|||
rm -f $${tmp}
|
||||
tmp=etc/emacsclient.tmpdesktop; rm -f $${tmp}; \
|
||||
client_name=`echo emacsclient | sed '$(TRANSFORM)'`${EXEEXT}; \
|
||||
sed -e "/^Exec=/ s|emacsclient|${bindir}/$${client_name}|" \
|
||||
sed -e "/^Exec=emacsclient/ s|emacsclient|${bindir}/$${client_name}|" \
|
||||
-e "/^Icon=emacs/ s/emacs/${EMACS_NAME}/" \
|
||||
$(USE_STARTUP_NOTIFICATION_SED_CMD) \
|
||||
${srcdir}/etc/emacsclient.desktop > $${tmp}; \
|
||||
|
|
@ -855,7 +756,7 @@ install-etc:
|
|||
rm -f $${tmp}
|
||||
tmp=etc/emacsclient-mail.tmpdesktop; rm -f $${tmp}; \
|
||||
client_name=`echo emacsclient | sed '$(TRANSFORM)'`${EXEEXT}; \
|
||||
sed -e "/^Exec=/ s|emacsclient|${bindir}/$${client_name}|" \
|
||||
sed -e "/^Exec=emacsclient/ s|emacsclient|${bindir}/$${client_name}|" \
|
||||
-e "/^Icon=emacs/ s/emacs/${EMACS_NAME}/" \
|
||||
${srcdir}/etc/emacsclient-mail.desktop > $${tmp}; \
|
||||
${INSTALL_DATA} $${tmp} "$(DESTDIR)${desktopdir}/$${client_name}-mail.desktop"; \
|
||||
|
|
@ -876,7 +777,7 @@ install-etc:
|
|||
${srcdir}/etc/emacs.service > $${tmp}; \
|
||||
$(INSTALL_DATA) $${tmp} "$(DESTDIR)$(systemdunitdir)/${EMACS_NAME}.service"; \
|
||||
rm -f $${tmp}
|
||||
thisdir=`pwd -P`; \
|
||||
thisdir=`/bin/pwd`; \
|
||||
cd ${iconsrcdir} || exit 1; umask 022 ; \
|
||||
for dir in */*/apps */*/mimetypes; do \
|
||||
[ -d $${dir} ] || continue ; \
|
||||
|
|
@ -907,14 +808,14 @@ install-strip:
|
|||
### create (but not the noninstalled files such as 'make all' would create).
|
||||
###
|
||||
### Don't delete the lisp and etc directories if they're in the source tree.
|
||||
uninstall: uninstall-$(NTDIR) uninstall-doc uninstall-gsettings-schemas
|
||||
uninstall: uninstall-$(NTDIR) uninstall-doc
|
||||
rm -f "$(DESTDIR)$(includedir)/emacs-module.h"
|
||||
$(MAKE) -C lib-src uninstall
|
||||
-unset CDPATH; \
|
||||
for dir in "$(DESTDIR)${lispdir}" "$(DESTDIR)${etcdir}" "$(ELN_DESTDIR)" ; do \
|
||||
if [ -d "$${dir}" ]; then \
|
||||
case `cd "$${dir}" ; pwd -P` in \
|
||||
"`cd ${srcdir} ; pwd -P`"* ) ;; \
|
||||
case `cd "$${dir}" ; /bin/pwd` in \
|
||||
"`cd ${srcdir} ; /bin/pwd`"* ) ;; \
|
||||
* ) rm -rf "$${dir}" ;; \
|
||||
esac ; \
|
||||
case "$${dir}" in \
|
||||
|
|
@ -925,7 +826,7 @@ uninstall: uninstall-$(NTDIR) uninstall-doc uninstall-gsettings-schemas
|
|||
fi ; \
|
||||
done
|
||||
-rm -rf "$(DESTDIR)${libexecdir}/emacs/${version}"
|
||||
thisdir=`pwd -P`; \
|
||||
thisdir=`/bin/pwd`; \
|
||||
(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 \
|
||||
|
|
@ -1003,7 +904,7 @@ clean_dirs = $(mostlyclean_dirs) nextstep admin/charsets admin/unidata
|
|||
|
||||
$(foreach dir,$(clean_dirs),$(eval $(call submake_template,$(dir),clean)))
|
||||
|
||||
clean: $(clean_dirs:=_clean) clean-gsettings-schemas
|
||||
clean: $(clean_dirs:=_clean)
|
||||
-rm -f ./*.tmp etc/*.tmp*
|
||||
-rm -rf info-dir.*
|
||||
-rm -rf native-lisp
|
||||
|
|
@ -1011,7 +912,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.log ${srcdir}/doc/man/emacs.1
|
||||
rm -f config.cache config.log ${srcdir}/doc/man/emacs.1
|
||||
|
||||
### 'distclean'
|
||||
### Delete all files from the current directory that are created by
|
||||
|
|
@ -1021,18 +922,15 @@ top_bootclean=\
|
|||
### distribution.
|
||||
top_distclean=\
|
||||
${top_bootclean}; \
|
||||
rm -f config.cache config.status config.log~ \
|
||||
rm -f 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) clean-gsettings-schemas
|
||||
distclean: $(distclean_dirs:=_distclean)
|
||||
${top_distclean}
|
||||
ifeq ($(HAVE_NATIVE_COMP),yes)
|
||||
rm -rf native-lisp
|
||||
endif
|
||||
|
||||
### 'bootstrap-clean'
|
||||
### Delete everything that can be reconstructed by 'make' and that
|
||||
|
|
@ -1043,10 +941,6 @@ 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'
|
||||
|
|
@ -1160,8 +1054,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_GEN)${MKDIR_P} ${srcdir}/info
|
||||
$(AM_V_at)(cd ${srcdir}/doc && \
|
||||
$(AM_V_at)${MKDIR_P} ${srcdir}/info
|
||||
$(AM_V_GEN)(cd ${srcdir}/doc && \
|
||||
AWK='${AWK}' ../build-aux/make-info-dir ${info_dir_inputs} \
|
||||
) >$@.tmp && mv $@.tmp $@
|
||||
|
||||
|
|
@ -1240,30 +1134,17 @@ 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 actual-bootstrap
|
||||
.PHONY: bootstrap
|
||||
|
||||
bootstrap:
|
||||
$(MAKE) actual-bootstrap || $(MAKE) advice-on-failure make-target=bootstrap exit-status=$$?
|
||||
$(MAKE) sanity-check make-target=bootstrap
|
||||
|
||||
# Without a 'configure' variable, bootstrapping does the following:
|
||||
# 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.
|
||||
# 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
|
||||
bootstrap: bootstrap-clean
|
||||
cd $(srcdir) && ./autogen.sh autoconf
|
||||
$(MAKE) MAKEFILE_NAME=force-Makefile force-Makefile
|
||||
else
|
||||
$(MAKE) extraclean
|
||||
endif
|
||||
$(MAKE) actual-all
|
||||
$(MAKE) all
|
||||
|
||||
.PHONY: ChangeLog change-history change-history-commit change-history-nocommit
|
||||
.PHONY: preferred-branch-is-current unchanged-history-files
|
||||
|
|
@ -1287,7 +1168,7 @@ PREFERRED_BRANCH = emacs-28
|
|||
preferred-branch-is-current:
|
||||
git branch | grep -q '^\* $(PREFERRED_BRANCH)$$'
|
||||
unchanged-history-files:
|
||||
x=`git diff-files --name-only $(CHANGELOG_N) $(emacslog)` && \
|
||||
x=$$(git diff-files --name-only $(CHANGELOG_N) $(emacslog)) && \
|
||||
test -z "$$x"
|
||||
|
||||
# Regular expression that matches the newest commit covered by a ChangeLog.
|
||||
|
|
@ -1334,31 +1215,3 @@ gitmerge:
|
|||
${GITMERGE_EMACS} -batch --no-site-file --no-site-lisp \
|
||||
-l ${srcdir}/admin/gitmerge.el \
|
||||
--eval '(setq gitmerge-minimum-missing ${GITMERGE_NMIN})' -f gitmerge
|
||||
|
||||
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:
|
||||
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
|
||||
|
|
|
|||
2
README
2
README
|
|
@ -2,7 +2,7 @@ Copyright (C) 2001-2023 Free Software Foundation, Inc.
|
|||
See the end of the file for license conditions.
|
||||
|
||||
|
||||
This directory tree holds version 30.0.50 of GNU Emacs, the extensible,
|
||||
This directory tree holds version 28.3 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
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ DARWIN_OS Compiling on macOS or pure Darwin (and using s/darwin.h).
|
|||
SOLARIS2
|
||||
USG
|
||||
USG5_4
|
||||
HAIKU Compiling on Haiku.
|
||||
|
||||
** Distinguishing GUIs **
|
||||
|
||||
|
|
@ -33,38 +32,16 @@ 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.)
|
||||
|
||||
** 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.
|
||||
|
||||
HAVE_X11R6
|
||||
HAVE_X11R6_XIM
|
||||
HAVE_X11XTR6
|
||||
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 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.
|
||||
USE_GTK Use the Gtk toolkit for menus&scrollbars. Requires HAVE_X11.
|
||||
|
||||
** Frame types **
|
||||
|
||||
|
|
@ -310,8 +287,6 @@ HAVE_UTIMENSAT
|
|||
HAVE_UTMP_H
|
||||
HAVE_VFORK
|
||||
HAVE_VFORK_H
|
||||
HAVE_WEBP
|
||||
HAVE_SQLITE3
|
||||
HAVE_WCHAR_H
|
||||
HAVE_WCHAR_T
|
||||
HAVE_WINDOW_SYSTEM
|
||||
|
|
|
|||
|
|
@ -58,7 +58,10 @@ 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
|
||||
|
|
@ -135,31 +138,6 @@ 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.
|
||||
|
|
@ -250,7 +228,6 @@ 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
|
||||
|
|
@ -276,60 +253,19 @@ 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: https://git.savannah.gnu.org/git/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: https://git.savannah.gnu.org/git/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
|
||||
|
|
|
|||
|
|
@ -88,9 +88,6 @@ 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."
|
||||
|
|
@ -99,8 +96,6 @@ 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
|
||||
|
|
@ -124,6 +119,9 @@ 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")))
|
||||
|
|
@ -159,13 +157,7 @@ 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)))
|
||||
(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))))
|
||||
(rename-file newsfile oldnewsfile)
|
||||
(find-file oldnewsfile) ; to prompt you to commit it
|
||||
(copy-file oldnewsfile newsfile)
|
||||
(with-temp-buffer
|
||||
|
|
@ -843,11 +835,8 @@ $Date: %s $
|
|||
(package-install pkg)
|
||||
(require pkg nil t))))
|
||||
|
||||
(declare-function org-html-export-as-html "ox-html.el")
|
||||
(defvar org-html-postamble)
|
||||
(defvar org-html-mathjax-template)
|
||||
(defvar htmlize-output-type)
|
||||
|
||||
(defun make-news-html-file (root version)
|
||||
"Convert the NEWS file into an HTML file."
|
||||
(interactive (let ((root
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ 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, ...)
|
||||
|
|
|
|||
|
|
@ -182,7 +182,7 @@ files.")
|
|||
("Philip Kaludercic" "Philip K\\." "Philip K")
|
||||
("Philipp Stephani" "Philipp .*phst@google")
|
||||
("Piotr Zieliński" "Piotr Zielinski")
|
||||
("Po Lu" "Po Lu Via" "Your Name") ; looks like a mistake
|
||||
("Po Lu" "Po Lu Via") ; looks like a mistake
|
||||
("Przemysław Wojnowski" "Przemyslaw Wojnowski")
|
||||
("R. Bernstein" "rb@dustyfeet.com")
|
||||
("Rainer Schöpf" "Rainer Schoepf")
|
||||
|
|
@ -397,8 +397,6 @@ 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"
|
||||
|
|
@ -990,7 +988,7 @@ in the repository.")
|
|||
;; to how a file was mentioned in the respective ChangeLog. It is
|
||||
;; advisable to run a Grep command such as
|
||||
;;
|
||||
;; grep -F -R BASENAME . --include='ChangeLog*'
|
||||
;; fgrep -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
|
||||
|
|
@ -1883,7 +1881,7 @@ list of their contributions.\n")
|
|||
(insert "\n "))
|
||||
(insert " " file))
|
||||
(insert "\n")))))
|
||||
(insert "\nLocal" " Variables:\nmode: emacs-authors\ncoding: "
|
||||
(insert "\nLocal" " Variables:\nmode: etc-authors\ncoding: "
|
||||
(symbol-name authors-coding-system) "\nEnd:\n")
|
||||
(message "Generating buffer %s... done" buffer-name)
|
||||
(unless noninteractive
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
## Copyright (C) 2018-2023 Free Software Foundation, Inc.
|
||||
|
||||
## Author: Glenn Morris <rgm@gnu.org>
|
||||
## Maintainer: Stefan Kangas <stefankangas@gmail.com>
|
||||
## Maintainer: emacs-devel@gnu.org
|
||||
|
||||
## This file is part of GNU Emacs.
|
||||
|
||||
|
|
@ -35,7 +35,16 @@
|
|||
## it with the -d option in the repository directory, in case a pull
|
||||
## updates this script while it is working.
|
||||
|
||||
source "${0%/*}/emacs-shell-lib"
|
||||
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
|
||||
|
||||
usage ()
|
||||
{
|
||||
|
|
@ -99,8 +108,7 @@ OPTIND=1
|
|||
|
||||
|
||||
[ "$nocd" ] || {
|
||||
# $PD should be the admin directory
|
||||
cd $PD || die "Could not change directory to $PD"
|
||||
cd $PD # this should be the admin directory
|
||||
cd ../
|
||||
}
|
||||
|
||||
|
|
@ -118,7 +126,9 @@ OPTIND=1
|
|||
[ "$test" ] && build=1
|
||||
|
||||
|
||||
tempfile="$(emacs_mktemp)"
|
||||
tempfile=/tmp/$PN.$$
|
||||
|
||||
trap "rm -f $tempfile 2> /dev/null" EXIT
|
||||
|
||||
|
||||
[ -e Makefile ] && [ "$build" ] && {
|
||||
|
|
@ -138,7 +148,7 @@ tempfile="$(emacs_mktemp)"
|
|||
|
||||
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 ()
|
||||
|
|
@ -147,12 +157,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
|
||||
|
|
@ -176,13 +186,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
|
||||
|
|
@ -221,7 +231,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"
|
||||
|
||||
|
|
@ -230,7 +240,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"
|
||||
|
|
@ -246,3 +256,5 @@ git push || die "push error"
|
|||
|
||||
|
||||
exit 0
|
||||
|
||||
### automerge ends here
|
||||
|
|
|
|||
|
|
@ -181,7 +181,7 @@ ${charsetdir}/GB180304.map: ${charsetdir}/GB180302.map ${gb180304}
|
|||
${AM_V_GEN}$(AWK) -f ${gb180304} < $< > $@
|
||||
|
||||
${charsetdir}/JISX0201.map: ${GLIBC_CHARMAPS}/JIS_X0201.gz ${mapconv} ${compact}
|
||||
${AM_V_GEN}(${run_mapconv} $< '/^<.*[ ]\/x[0-9]/' GLIBC-1 ${compact} && \
|
||||
${AM_V_GEN}(${mapconv} $< '/^<.*[ ]\/x[0-9]/' GLIBC-1 ${compact} && \
|
||||
echo "# Generated by hand" && \
|
||||
echo "0xA1-0xDF 0xFF61" ) > $@
|
||||
|
||||
|
|
|
|||
|
|
@ -38,8 +38,7 @@
|
|||
## So that eg [A-F] as used by KANJI-DATABASE branch below works as expected.
|
||||
## Otherwise with LANG=en_US.utf8, CNS-6.map was generated with a
|
||||
## bogus entry. By experiment, LC_COLLATE=C was not enough.
|
||||
LC_ALL=C
|
||||
export LC_ALL
|
||||
export LC_ALL=C
|
||||
|
||||
BASE=`expr "$1" : '.*/\(.*\)' '|' "$1"` # basename
|
||||
FILE="admin/charsets/mapfiles/$BASE"
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@
|
|||
#
|
||||
# [v0.1, 5 May 1995] First release.
|
||||
#
|
||||
# Use the Unicode reporting form <https://www.unicode.org/reporting.html>
|
||||
# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
|
||||
# for any questions or comments or to report errors in the data.
|
||||
#
|
||||
0020 20 # SPACE # space
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@
|
|||
#
|
||||
# [v0.1, 5 May 1995] First release.
|
||||
#
|
||||
# Use the Unicode reporting form <https://www.unicode.org/reporting.html>
|
||||
# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
|
||||
# for any questions or comments or to report errors in the data.
|
||||
#
|
||||
0020 20 # SPACE # space
|
||||
|
|
|
|||
|
|
@ -290,7 +290,13 @@ while (my $file = <FIND>) {
|
|||
}
|
||||
}
|
||||
|
||||
my @pkgs = ();
|
||||
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/@; }
|
||||
open (FIND, "find lisp @pkgs -name '*.el' -print |") or die;
|
||||
while (my $file = <FIND>) {
|
||||
my $contents = FileContents $file;
|
||||
|
|
|
|||
|
|
@ -1,56 +0,0 @@
|
|||
#!/bin/bash
|
||||
### check-man-pages - check man pages for errors
|
||||
|
||||
## Copyright (C) 2022-2023 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
|
||||
|
|
@ -106,6 +106,9 @@ 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)
|
||||
|
|
||||
|
|
@ -222,6 +225,9 @@ 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)
|
||||
|
|
||||
|
|
|
|||
|
|
@ -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 advised functions.
|
||||
;; Avoid compile logs from adviced functions.
|
||||
(eval-after-load "bytecomp"
|
||||
'(setq ad-default-compilation-action 'never))
|
||||
|
||||
|
|
@ -145,8 +145,7 @@ 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'.
|
||||
Each element is (VARIABLE . PROBLEM); see `cus-test--format-problem'.")
|
||||
"List of problematic variables found by `cus-test-apropos'.")
|
||||
|
||||
(defvar cus-test-tested-variables nil
|
||||
"List of options tested by last call of `cus-test-apropos'.")
|
||||
|
|
@ -157,7 +156,7 @@ Each element is (VARIABLE . PROBLEM); see `cus-test--format-problem'.")
|
|||
"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'.")
|
||||
|
|
@ -182,15 +181,6 @@ 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'."
|
||||
|
|
@ -210,7 +200,8 @@ 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)
|
||||
values
|
||||
mismatch)
|
||||
(when (default-boundp symbol)
|
||||
(push (funcall get symbol) values)
|
||||
(push (eval (car (get symbol 'standard-value)) t) values))
|
||||
|
|
@ -224,9 +215,7 @@ 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)
|
||||
(let ((err (list symbol :type-error value type)))
|
||||
(unless (member err cus-test-errors)
|
||||
(push err cus-test-errors)))))
|
||||
(setq mismatch 'mismatch)))
|
||||
values)
|
||||
|
||||
;; Store symbols with a custom-get property.
|
||||
|
|
@ -242,12 +231,13 @@ 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))))
|
||||
(add-to-list 'cus-test-vars-with-changed-state symbol)))
|
||||
|
||||
(if mismatch
|
||||
(push symbol cus-test-errors)))
|
||||
|
||||
(error
|
||||
(let ((err (list symbol :other-error alpha)))
|
||||
(unless (member err cus-test-errors)
|
||||
(push err cus-test-errors)))
|
||||
(push symbol cus-test-errors)
|
||||
(message "Error for %s: %s" symbol alpha))))
|
||||
(cus-test-get-options regexp))
|
||||
(message "%s options tested"
|
||||
|
|
@ -282,7 +272,7 @@ currently defined groups."
|
|||
(if group
|
||||
(memq symbol groups)
|
||||
(or
|
||||
;; (custom-variable-p symbol)
|
||||
;; (user-variable-p symbol)
|
||||
(get symbol 'standard-value)
|
||||
;; (get symbol 'saved-value)
|
||||
(get symbol 'custom-type)))
|
||||
|
|
@ -302,7 +292,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 (cus-test--format-error e) "\n")))))
|
||||
(insert (symbol-name e) "\n")))))
|
||||
|
||||
(defun cus-test-load-custom-loads ()
|
||||
"Call `custom-load-symbol' on all atoms."
|
||||
|
|
@ -409,7 +399,7 @@ Returns a list of variables with suspicious types."
|
|||
(message "No problems found")
|
||||
nil)
|
||||
(message "The following options might have problems:")
|
||||
(cus-test-message (mapcar #'cus-test--format-error cus-test-errors))
|
||||
(cus-test-message cus-test-errors)
|
||||
cus-test-errors))
|
||||
|
||||
(defun cus-test-deps ()
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/bash
|
||||
#! /bin/sh
|
||||
|
||||
# Copyright (C) 2001-2023 Free Software Foundation, Inc.
|
||||
|
||||
|
|
@ -17,7 +17,6 @@
|
|||
# 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
|
||||
|
|
@ -32,8 +31,9 @@ fi
|
|||
old_tar=$1
|
||||
new_tar=$2
|
||||
|
||||
old_tmp="$(emacs_mktemp ${PN}-old)"
|
||||
new_tmp="$(emacs_mktemp ${PN}-new)"
|
||||
old_tmp=/tmp/old.$$
|
||||
new_tmp=/tmp/new.$$
|
||||
trap "rm -f $old_tmp $new_tmp; exit 1" 1 2 15
|
||||
|
||||
tar tf "$old_tar" | sed -e 's,^[^/]*,,' | sort > $old_tmp
|
||||
tar tf "$new_tar" | sed -e 's,^[^/]*,,' | sort > $new_tmp
|
||||
|
|
|
|||
|
|
@ -1,87 +0,0 @@
|
|||
#!/bin/bash
|
||||
### emacs-shell-lib - shared code for Emacs shell scripts
|
||||
|
||||
## Copyright (C) 2022-2023 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"
|
||||
}
|
||||
75
admin/emake
75
admin/emake
|
|
@ -1,22 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Copyright (C) 2022-2023 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
|
||||
|
|
@ -30,27 +13,14 @@ cores=1
|
|||
|
||||
# Determine the number of cores.
|
||||
if [ -f /proc/cpuinfo ]; then
|
||||
cores=$(($(grep -E "^physical id|^cpu cores" /proc/cpuinfo |\
|
||||
cores=$(($(egrep "^physical id|^cpu cores" /proc/cpuinfo |\
|
||||
awk '{ print $4; }' |\
|
||||
sed '$!N;s/\n/ /' |\
|
||||
uniq |\
|
||||
sed 's/^[0-9]*/+/')))
|
||||
fi
|
||||
|
||||
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 | \
|
||||
make -j$cores "$@" 2>&1 | \
|
||||
sed -u 's# \.\./\.\./# #
|
||||
s# \.\./# #
|
||||
s#^Configuring local git # Configuring local git #
|
||||
|
|
@ -58,23 +28,20 @@ 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
|
||||
' | \
|
||||
grep -E --line-buffered -v "^make|\
|
||||
egrep --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|\
|
||||
|
|
@ -111,42 +78,18 @@ The GNU allocators don't work|\
|
|||
^git config |\
|
||||
^'\.git/|\
|
||||
^\^\(\(|\
|
||||
^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|\
|
||||
^\[ \"\.\" = \"\.\" \]\
|
||||
^'build-aux/git-hooks\
|
||||
" | \
|
||||
while read
|
||||
do
|
||||
C=""
|
||||
(($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
|
||||
[[ "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"
|
||||
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' | \
|
||||
grep -E --line-buffered -v "^make"
|
||||
egrep --line-buffered -v "^make"
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ Also store it in `find-gc-unsafe-list'."
|
|||
|
||||
|
||||
|
||||
(defun trace-call-tree (&optional _ignored)
|
||||
(defun trace-call-tree (&optional ignored)
|
||||
(message "Setting up directories...")
|
||||
(setq find-gc-subrs-called nil)
|
||||
(let ((case-fold-search nil)
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -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,7 +68,8 @@ 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 (locate-user-emacs-file "gitmerge-status")
|
||||
(defvar gitmerge-status-file (expand-file-name "gitmerge-status"
|
||||
user-emacs-directory)
|
||||
"File where missing commits will be saved between sessions.")
|
||||
|
||||
(defvar gitmerge-ignore-branches-regexp
|
||||
|
|
@ -97,14 +98,11 @@ 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)
|
||||
;; For convenience:
|
||||
(define-key map [(n)] #'next-line)
|
||||
(define-key map [(p)] #'previous-line)
|
||||
(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)
|
||||
map)
|
||||
"Keymap for gitmerge major mode.")
|
||||
|
||||
|
|
@ -124,21 +122,20 @@ If nil, the function `gitmerge-default-branch' guesses.")
|
|||
(with-temp-buffer
|
||||
(if (not branch)
|
||||
(insert-file-contents "configure.ac")
|
||||
(let ((coding-system-for-read vc-git-log-output-coding-system))
|
||||
(call-process "git" nil t nil "show" (format "%s:configure.ac" branch)))
|
||||
(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; e.g. \"origin/emacs-28\"."
|
||||
"Default for branch that should be merged; eg \"origin/emacs-26\"."
|
||||
(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 (line-beginning-position))
|
||||
(goto-char (point-at-bol))
|
||||
(when (looking-at "^[A-Z ]\\s-*\\([a-f0-9]+\\)")
|
||||
(match-string 1))))
|
||||
|
||||
|
|
@ -151,8 +148,7 @@ If nil, the function `gitmerge-default-branch' guesses.")
|
|||
(pop-to-buffer (get-buffer-create gitmerge-output-buffer))
|
||||
(fundamental-mode)
|
||||
(erase-buffer)
|
||||
(let ((coding-system-for-read vc-git-log-output-coding-system))
|
||||
(call-process "git" nil t nil "log" "-1" commit))
|
||||
(call-process "git" nil t nil "log" "-1" commit)
|
||||
(goto-char (point-min))
|
||||
(gitmerge-highlight-skip-regexp)))))
|
||||
|
||||
|
|
@ -164,8 +160,7 @@ If nil, the function `gitmerge-default-branch' guesses.")
|
|||
(when commit
|
||||
(pop-to-buffer (get-buffer-create gitmerge-output-buffer))
|
||||
(erase-buffer)
|
||||
(let ((coding-system-for-read vc-git-log-output-coding-system))
|
||||
(call-process "git" nil t nil "diff-tree" "-p" commit))
|
||||
(call-process "git" nil t nil "diff-tree" "-p" commit)
|
||||
(goto-char (point-min))
|
||||
(diff-mode)))))
|
||||
|
||||
|
|
@ -178,9 +173,7 @@ If nil, the function `gitmerge-default-branch' guesses.")
|
|||
(pop-to-buffer (get-buffer-create gitmerge-output-buffer))
|
||||
(erase-buffer)
|
||||
(fundamental-mode)
|
||||
(let ((coding-system-for-read vc-git-log-output-coding-system))
|
||||
(call-process "git" nil t nil "diff" "--name-only"
|
||||
(concat commit "^!")))
|
||||
(call-process "git" nil t nil "diff" "--name-only" (concat commit "^!"))
|
||||
(goto-char (point-min))))))
|
||||
|
||||
(defun gitmerge-toggle-skip ()
|
||||
|
|
@ -190,7 +183,7 @@ If nil, the function `gitmerge-default-branch' guesses.")
|
|||
skip)
|
||||
(when commit
|
||||
(save-excursion
|
||||
(goto-char (line-beginning-position))
|
||||
(goto-char (point-at-bol))
|
||||
(when (looking-at "^\\([A-Z ]\\)\\s-*\\([a-f0-9]+\\)")
|
||||
(setq skip (string= (match-string 1) " "))
|
||||
(goto-char (match-beginning 2))
|
||||
|
|
@ -198,7 +191,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 (line-beginning-position))
|
||||
(goto-char (point-at-bol))
|
||||
(setq buffer-read-only nil)
|
||||
(delete-char 1)
|
||||
(insert (if skip "M" " "))
|
||||
|
|
@ -223,10 +216,9 @@ 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
|
||||
(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)))))
|
||||
(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))
|
||||
|
|
@ -249,10 +241,9 @@ if and why this commit should be skipped."
|
|||
"Create the buffer for choosing commits."
|
||||
(with-current-buffer (get-buffer-create gitmerge-buffer)
|
||||
(erase-buffer)
|
||||
(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)))))
|
||||
(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)))
|
||||
|
|
@ -293,7 +284,7 @@ should not be skipped."
|
|||
"Try to resolve conflicts in FILE with smerge.
|
||||
Returns non-nil if conflicts remain."
|
||||
(unless (file-exists-p file) (error "Gitmerge-resolve: Can't find %s" file))
|
||||
(with-demoted-errors "Error: %S"
|
||||
(with-demoted-errors
|
||||
(let ((exists (find-buffer-visiting file)))
|
||||
(with-current-buffer (let ((enable-local-variables :safe)
|
||||
(enable-local-eval nil))
|
||||
|
|
@ -335,8 +326,7 @@ Returns non-nil if conflicts remain."
|
|||
;; (pop-to-buffer (current-buffer)) (debug 'before-resolve)
|
||||
))
|
||||
;; Try to resolve the conflicts.
|
||||
(let ((coding-system-for-read vc-git-log-output-coding-system)
|
||||
temp)
|
||||
(let (temp)
|
||||
(cond
|
||||
;; FIXME when merging release branch to master, we still
|
||||
;; need to detect and handle the case where NEWS was modified
|
||||
|
|
@ -402,10 +392,9 @@ is nil, only the single commit BEG is merged."
|
|||
(if end "s were " " was ")
|
||||
"skipped:\n\n")
|
||||
""))
|
||||
(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))))
|
||||
(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))
|
||||
|
|
@ -419,9 +408,8 @@ 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 commitmessage1 commitmessage-file status)
|
||||
end commitmessage)
|
||||
;; Determine last revision with same boolean skip status.
|
||||
(while (and missing
|
||||
(eq (null (cdar missing))
|
||||
|
|
@ -435,32 +423,12 @@ MISSING must be a list of SHA1 strings."
|
|||
(if end (concat ".." (substring end 0 6)) ""))
|
||||
(unless end
|
||||
(setq end beg))
|
||||
(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))))))
|
||||
(unless (zerop
|
||||
(apply #'call-process "git" nil t nil "merge" "--no-ff"
|
||||
(append (when skip '("-s" "ours"))
|
||||
`("-m" ,commitmessage ,end))))
|
||||
(gitmerge-write-missing missing from)
|
||||
(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)))
|
||||
(gitmerge-resolve-unmerged)))
|
||||
missing))
|
||||
|
||||
(defun gitmerge-resolve-unmerged ()
|
||||
|
|
@ -468,13 +436,12 @@ 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 ((coding-system-for-read vc-git-log-output-coding-system)
|
||||
files conflicted)
|
||||
(let (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)
|
||||
|
|
@ -512,19 +479,17 @@ 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)
|
||||
(let ((coding-system-for-read vc-git-log-output-coding-system))
|
||||
(erase-buffer)
|
||||
(eq 0 (call-process "git" nil t nil "commit" "--no-edit")))))
|
||||
(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.
|
||||
|
|
@ -634,18 +599,12 @@ Branch FROM will be prepended to the list."
|
|||
(with-current-buffer
|
||||
(gitmerge-setup-log-buffer gitmerge--commits gitmerge--from)
|
||||
(goto-char (point-min))
|
||||
(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")))
|
||||
(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")
|
||||
(gitmerge-mode)
|
||||
(pop-to-buffer (current-buffer))
|
||||
(if noninteractive (gitmerge-start-merge))))))
|
||||
|
|
|
|||
|
|
@ -31,11 +31,10 @@ top_builddir = @top_builddir@
|
|||
-include ${top_builddir}/src/verbose.mk
|
||||
|
||||
# Prevent any settings in the user environment causing problems.
|
||||
unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH
|
||||
unexport EMACSDATA EMACSDOC EMACSPATH
|
||||
|
||||
EMACS = ${top_builddir}/src/emacs
|
||||
emacs = "${EMACS}" -batch --no-site-file --no-site-lisp \
|
||||
--eval '(setq load-prefer-newer t)'
|
||||
emacs = EMACSLOADPATH= "${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
|
||||
|
|
|
|||
|
|
@ -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 with priority works.
|
||||
;; This so a common error w/ priority works.
|
||||
;; Note that "number" still has a string value in the lexer.
|
||||
(VARIABLE-TAG $2 nil (list $3))
|
||||
| SHOW symbol newline
|
||||
|
|
|
|||
|
|
@ -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 with its removal.
|
||||
;; only the obsolete declaration and can proceed w/ its removal.
|
||||
;; If not, please DTRT and refrain from the removal until those
|
||||
;; references are properly transitioned.
|
||||
;;
|
||||
|
|
|
|||
|
|
@ -33,7 +33,13 @@
|
|||
|
||||
### Code:
|
||||
|
||||
source "${0%/*}/emacs-shell-lib"
|
||||
die () # write error to stderr and exit
|
||||
{
|
||||
[ $# -gt 0 ] && echo "$PN: $@" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
PN=${0##*/} # basename of script
|
||||
|
||||
usage ()
|
||||
{
|
||||
|
|
@ -88,7 +94,8 @@ OPTIND=1
|
|||
[ -e admin/admin.el ] || die "admin/admin.el not found"
|
||||
|
||||
|
||||
tempfile="$(emacs_mktemp)"
|
||||
tempfile=/tmp/$PN.$$
|
||||
trap "rm -f $tempfile 2> /dev/null" EXIT
|
||||
|
||||
|
||||
[ "$continue" ] || rm -rf $outdir
|
||||
|
|
|
|||
|
|
@ -52,12 +52,11 @@ General steps (for each step, check for possible errors):
|
|||
./autogen.sh
|
||||
./configure --with-native-compilation && make
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
2. Regenerate the versioned ChangeLog.N and etc/AUTHORS files.
|
||||
|
||||
|
|
@ -68,25 +67,16 @@ 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 (which it usually is
|
||||
when starting a pretest of a new major release), update
|
||||
Makefile.in and re-run 'configure' to update Makefile.
|
||||
producing the tarball. If NN is incorrect, 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 1.5 MiB. If so, start a new
|
||||
one by bumping N, and also update the line in top-level
|
||||
Makefile.in which says
|
||||
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
|
||||
|
||||
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:
|
||||
|
||||
|
|
@ -108,12 +98,11 @@ 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. If some authors are "ignored", consider adding
|
||||
entries to the author-aliases variable.
|
||||
authors.el.
|
||||
|
||||
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 more entries to
|
||||
Check the diff looks reasonable. Maybe add entries to
|
||||
authors-ambiguous-files or authors-aliases, and repeat.
|
||||
Commit any fixes to authors.el.
|
||||
|
||||
|
|
@ -160,13 +149,6 @@ 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
|
||||
|
||||
|
|
@ -179,13 +161,7 @@ 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. After copying, edit
|
||||
ldefs-boot.el to add
|
||||
|
||||
;; no-byte-compile: t
|
||||
|
||||
to its file-local variables section, otherwise make-dist will
|
||||
complain.
|
||||
5. Copy lisp/loaddefs.el to lisp/ldefs-boot.el.
|
||||
|
||||
Commit ChangeLog.N, etc/AUTHORS, lisp/ldefs-boot.el, and the files
|
||||
changed by M-x set-version. Note that the set-version changes
|
||||
|
|
|
|||
|
|
@ -23,39 +23,38 @@
|
|||
|
||||
# written by Paul Eggert
|
||||
|
||||
GNULIB_URL=https://git.savannah.gnu.org/git/gnulib.git
|
||||
GNULIB_URL=git://git.savannah.gnu.org/gnulib.git
|
||||
|
||||
GNULIB_MODULES='
|
||||
alignasof alloca-opt binary-io byteswap c-ctype c-strcase
|
||||
alloca-opt binary-io byteswap c-ctype c-strcase
|
||||
canonicalize-lgpl
|
||||
careadlinkat close-stream copy-file-range
|
||||
count-leading-zeros count-one-bits count-trailing-zeros
|
||||
crypto/md5 crypto/md5-buffer
|
||||
crypto/sha1-buffer crypto/sha256-buffer crypto/sha512-buffer
|
||||
d-type diffseq double-slash-root dtoastr dtotimespec dup2
|
||||
environ execinfo faccessat
|
||||
environ execinfo explicit_bzero faccessat
|
||||
fchmodat fcntl fcntl-h fdopendir file-has-acl
|
||||
filemode filename filevercmp flexmember fpieee
|
||||
free-posix fstatat fsusage fsync futimens
|
||||
getloadavg getopt-gnu getrandom gettime gettimeofday gitlog-to-changelog
|
||||
ieee754-h ignore-value intprops largefile libgmp lstat
|
||||
manywarnings memmem-simple mempcpy memrchr memset_explicit
|
||||
minmax mkostemp mktime
|
||||
nanosleep nproc nstrftime
|
||||
manywarnings memmem-simple mempcpy memrchr minmax mkostemp mktime
|
||||
nproc nstrftime
|
||||
pathmax pipe2 pselect pthread_sigmask
|
||||
qcopy-acl readlink readlinkat regex
|
||||
sig2str sigdescr_np socklen stat-time std-gnu11 stdbool stddef stdio
|
||||
sig2str sigdescr_np socklen stat-time std-gnu11 stdalign stddef stdio
|
||||
stpcpy strnlen strtoimax symlink sys_stat sys_time
|
||||
tempname time-h time_r time_rz timegm timer-time timespec-add timespec-sub
|
||||
tempname time time_r time_rz timegm timer-time timespec-add timespec-sub
|
||||
update-copyright unlocked-io utimensat
|
||||
vla warnings
|
||||
'
|
||||
|
||||
AVOIDED_MODULES='
|
||||
btowc chmod close crypto/af_alg dup fchdir fstat langinfo lock
|
||||
btowc 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
|
||||
save-cwd select setenv sigprocmask stat stdarg stdbool
|
||||
threadlib tzset unsetenv utime utime-h
|
||||
wchar wcrtomb wctype-h
|
||||
'
|
||||
|
|
@ -103,12 +102,6 @@ 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"
|
||||
|
|
@ -116,9 +109,7 @@ done
|
|||
|
||||
"$gnulib_srcdir"/gnulib-tool --dir="$src" $GNULIB_TOOL_FLAGS \
|
||||
$avoided_flags $GNULIB_MODULES &&
|
||||
rm -- "$src"lib/gl_openssl.h \
|
||||
"$src"lib/stdio-read.c "$src"lib/stdio-write.c \
|
||||
"$src"m4/fcntl-o.m4 \
|
||||
rm -- "$src"lib/gl_openssl.h "$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 \
|
||||
|
|
|
|||
|
|
@ -73,7 +73,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 crashes and security issues can be
|
||||
marked as normal, but crashers 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
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ NOTES ON THE EMACS PACKAGE ARCHIVE
|
|||
The GNU Emacs package archive, at elpa.gnu.org, is managed using a Git
|
||||
repository named "elpa", hosted on Savannah. To check it out:
|
||||
|
||||
git clone https://git.savannah.gnu.org/git/emacs/elpa
|
||||
git clone git://git.sv.gnu.org/emacs/elpa
|
||||
cd elpa
|
||||
make setup
|
||||
|
||||
|
|
|
|||
|
|
@ -8,8 +8,7 @@ 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 which belong to the
|
||||
defined workflow (see below).
|
||||
changes. This happens for all Emacs branches.
|
||||
|
||||
* Mail notifications
|
||||
|
||||
|
|
@ -29,49 +28,29 @@ 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'. All related files are located in directory
|
||||
'test/infra'. They could be adapted for every Emacs branch, see
|
||||
'.gitlab-ci.yml'. It 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.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
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
|
||||
|
|
@ -83,46 +62,6 @@ Lisp packages, Makefiles, scripts, and other software could determine
|
|||
whether they run on emba by checking for the environment variable
|
||||
EMACS_EMBA_CI.
|
||||
|
||||
* Running Emba tests locally
|
||||
|
||||
As usual in GitLab, the tests run in containers, which could be
|
||||
applied also locally. Unfortunately, the Emba container registry,
|
||||
emba.gnu.org:5050, is not accessible publicly. Instead, the container
|
||||
images must be build locally. Change the current directory to a
|
||||
recent Emacs branch, and apply the command
|
||||
|
||||
docker build --target emacs-inotify --tag emacs-inotify \
|
||||
-f test/infra/Dockerfile.emba .
|
||||
|
||||
This creates the Debian-based image emacs-inotify, based on the
|
||||
instructions in the file Dockerfile.emba. This image is good for the
|
||||
majority of tests. However, there are also other image build
|
||||
instructions like emacs-filenotify-gio, emacs-eglot, emacs-gnustep and
|
||||
emacs-native-comp-speed{0,1,2}. Use the appropriate one.
|
||||
|
||||
The image contains a directory "/checkout", which is a copy of your
|
||||
local Emacs git repository. Emacs has been built in this directory
|
||||
via "make bootstrap". In order to use the image, start a container
|
||||
like
|
||||
|
||||
docker run --interactive --env EMACS_EMBA_CI=1 --name emacs-inotify \
|
||||
emacs-inotify /bin/sh -i
|
||||
|
||||
In this container, change the current directory to "/checkout". Now
|
||||
you can apply all commands known for Emacs, like
|
||||
|
||||
cd /checkout
|
||||
make -C test files-tests.log
|
||||
|
||||
While this container runs, you can also access its filesystem from
|
||||
your local Emacs via Tramp. For example, in order to see the result
|
||||
of the above test run, open the log file in your local Emacs with
|
||||
|
||||
C-x C-f /docker:emacs-inotify:/checkout/test/lisp/files-tests.log
|
||||
|
||||
Note: On local Red Hat-based systems, use "podman" instead of "docker"
|
||||
in the shell commands and Tramp file names.
|
||||
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
|
|
|
|||
|
|
@ -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-29).
|
||||
(eg emacs-27).
|
||||
|
||||
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-29 emacs-29
|
||||
git worktree add ../emacs-27 emacs-27
|
||||
|
||||
You now have both branches conveniently accessible, and you can do
|
||||
"git pull" in them once in a while to keep updated.
|
||||
|
|
@ -67,7 +67,7 @@ which will look like
|
|||
|
||||
commit 958b768a6534ae6e77a8547a56fc31b46b63710b
|
||||
|
||||
cd ~/emacs/emacs-29
|
||||
cd ~/emacs/emacs-27
|
||||
git cherry-pick -xe 958b768a6534ae6e77a8547a56fc31b46b63710b
|
||||
|
||||
and add "Backport:" to the commit string. Then
|
||||
|
|
@ -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-29', which you should accept. Merging a local tracking
|
||||
(eg) 'origin/emacs-27', 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.
|
||||
|
||||
|
|
|
|||
|
|
@ -42,24 +42,6 @@ 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
|
||||
|
|
@ -128,14 +110,6 @@ 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,
|
||||
|
|
@ -150,11 +124,6 @@ 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' 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.
|
||||
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.
|
||||
|
|
|
|||
|
|
@ -1,29 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
languages=(
|
||||
'bash'
|
||||
'c'
|
||||
'cmake'
|
||||
'cpp'
|
||||
'css'
|
||||
'c-sharp'
|
||||
'dockerfile'
|
||||
'elixir'
|
||||
'go'
|
||||
'go-mod'
|
||||
'heex'
|
||||
'html'
|
||||
'javascript'
|
||||
'json'
|
||||
'python'
|
||||
'rust'
|
||||
'toml'
|
||||
'tsx'
|
||||
'typescript'
|
||||
'yaml'
|
||||
)
|
||||
|
||||
for language in "${languages[@]}"
|
||||
do
|
||||
./build.sh $language
|
||||
done
|
||||
|
|
@ -1,92 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
lang=$1
|
||||
topdir="$PWD"
|
||||
|
||||
case $(uname) in
|
||||
"Darwin")
|
||||
soext="dylib"
|
||||
;;
|
||||
*"MINGW"*)
|
||||
soext="dll"
|
||||
;;
|
||||
*)
|
||||
soext="so"
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "Building ${lang}"
|
||||
|
||||
### Retrieve sources
|
||||
|
||||
org="tree-sitter"
|
||||
repo="tree-sitter-${lang}"
|
||||
sourcedir="tree-sitter-${lang}/src"
|
||||
grammardir="tree-sitter-${lang}"
|
||||
|
||||
case "${lang}" in
|
||||
"dockerfile")
|
||||
org="camdencheek"
|
||||
;;
|
||||
"cmake")
|
||||
org="uyha"
|
||||
;;
|
||||
"elixir")
|
||||
org="elixir-lang"
|
||||
;;
|
||||
"go-mod")
|
||||
# The parser is called "gomod".
|
||||
lang="gomod"
|
||||
org="camdencheek"
|
||||
;;
|
||||
"heex")
|
||||
org="phoenixframework"
|
||||
;;
|
||||
"typescript")
|
||||
sourcedir="tree-sitter-typescript/typescript/src"
|
||||
grammardir="tree-sitter-typescript/typescript"
|
||||
;;
|
||||
"tsx")
|
||||
repo="tree-sitter-typescript"
|
||||
sourcedir="tree-sitter-typescript/tsx/src"
|
||||
grammardir="tree-sitter-typescript/tsx"
|
||||
;;
|
||||
"yaml")
|
||||
org="ikatyang"
|
||||
;;
|
||||
esac
|
||||
|
||||
git clone "https://github.com/${org}/${repo}.git" \
|
||||
--depth 1 --quiet
|
||||
cp "${grammardir}"/grammar.js "${sourcedir}"
|
||||
# We have to go into the source directory to compile, because some
|
||||
# C files refer to files like "../../common/scanner.h".
|
||||
cd "${sourcedir}"
|
||||
|
||||
### Build
|
||||
|
||||
cc -fPIC -c -I. parser.c
|
||||
# Compile scanner.c.
|
||||
if test -f scanner.c
|
||||
then
|
||||
cc -fPIC -c -I. scanner.c
|
||||
fi
|
||||
# Compile scanner.cc.
|
||||
if test -f scanner.cc
|
||||
then
|
||||
c++ -fPIC -I. -c scanner.cc
|
||||
fi
|
||||
# Link.
|
||||
if test -f scanner.cc
|
||||
then
|
||||
c++ -fPIC -shared *.o -o "libtree-sitter-${lang}.${soext}"
|
||||
else
|
||||
cc -fPIC -shared *.o -o "libtree-sitter-${lang}.${soext}"
|
||||
fi
|
||||
|
||||
### Copy out
|
||||
|
||||
mkdir -p "${topdir}/dist"
|
||||
cp "libtree-sitter-${lang}.${soext}" "${topdir}/dist"
|
||||
cd "${topdir}"
|
||||
rm -rf "${repo}"
|
||||
|
|
@ -1,458 +0,0 @@
|
|||
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
|
||||
}
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
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.
|
||||
|
||||
All buffer changes in Emacs are made through functions in insdel.c
|
||||
(and casefiddle.c), I augmented functions in those files 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.
|
||||
|
||||
|
||||
As for 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.
|
||||
|
|
@ -15,33 +15,18 @@ 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-sequences.txt
|
||||
. BidiCharacterTest.txt
|
||||
|
||||
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 14 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
|
||||
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
|
||||
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/.
|
||||
|
|
|
|||
|
|
@ -10,10 +10,9 @@ 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,
|
||||
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
|
||||
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
|
||||
. 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
|
||||
|
|
|
|||
|
|
@ -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 the Emacs
|
||||
the version (e.g emacs-27-2019-12-26.zip) rather than than the Emacs
|
||||
version (e.g emacs-27.0.50.zip).
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -20,8 +20,6 @@
|
|||
import os
|
||||
import shutil
|
||||
import re
|
||||
import functools
|
||||
import operator
|
||||
|
||||
from subprocess import check_output
|
||||
|
||||
|
|
@ -114,7 +112,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=frozenset(["mingw-w64-x86_64-glib2"])
|
||||
SKIP_DEP_PKGS=["mingw-w64-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",
|
||||
|
|
@ -123,17 +121,19 @@ def ntldd_munge(out):
|
|||
|
||||
## Currently no packages seem to require this!
|
||||
ARCH_PKGS=[]
|
||||
SRC_REPO="https://repo.msys2.org/mingw/sources"
|
||||
SRC_REPO="https://sourceforge.net/projects/msys2/files/REPOS/MINGW/Sources"
|
||||
|
||||
|
||||
def immediate_deps(pkgs):
|
||||
package_info = check_output(["pacman", "-Si"] + pkgs).decode("utf-8").splitlines()
|
||||
def immediate_deps(pkg):
|
||||
package_info = check_output(["pacman", "-Si", pkg]).decode("utf-8").split("\n")
|
||||
|
||||
## 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, [])
|
||||
## 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(" ")
|
||||
|
||||
## Remove > signs TODO can we get any other punctuation here?
|
||||
dependencies = [d.split(">")[0] for d in dependencies if d]
|
||||
|
|
@ -149,18 +149,16 @@ def extract_deps():
|
|||
print( "Extracting deps" )
|
||||
|
||||
# Get a list of all dependencies needed for packages mentioned above.
|
||||
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
|
||||
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
|
||||
|
||||
return list(pkgs)
|
||||
return sorted(pkgs)
|
||||
|
||||
|
||||
def download_source(tarball):
|
||||
|
|
@ -169,7 +167,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/{} {}/{}"
|
||||
"wget -a ../download.log -O ../emacs-src-cache/{} {}/{}/download"
|
||||
.format(tarball, SRC_REPO, tarball),
|
||||
shell=True
|
||||
)
|
||||
|
|
@ -257,7 +255,7 @@ def clean():
|
|||
|
||||
if( args.l ):
|
||||
print("List of dependencies")
|
||||
print( deps )
|
||||
print( extract_deps() )
|
||||
exit(0)
|
||||
|
||||
if args.s:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# BidiBrackets-15.0.0.txt
|
||||
# Date: 2022-05-03, 18:42:00 GMT [AG, LI, KW]
|
||||
# © 2022 Unicode®, Inc.
|
||||
# BidiBrackets-14.0.0.txt
|
||||
# Date: 2021-06-30, 23:59:00 GMT [AG, LI, KW]
|
||||
# © 2021 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
|
||||
#
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# BidiMirroring-15.0.0.txt
|
||||
# Date: 2022-05-03, 18:47:00 GMT [KW, RP]
|
||||
# © 2022 Unicode®, Inc.
|
||||
# BidiMirroring-14.0.0.txt
|
||||
# Date: 2021-08-08, 22:55:00 GMT [KW, RP]
|
||||
# © 2021 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 15.0.0.
|
||||
# The repertoire covered by the file is Unicode 14.0.0.
|
||||
#
|
||||
# The file contains a list of lines with mappings from one code point
|
||||
# to another one for character-based mirroring.
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
# 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
|
||||
# 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
|
||||
#
|
||||
# Unicode Character Database
|
||||
# For documentation, see https://www.unicode.org/reports/tr44/
|
||||
# For documentation, see http://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: https://www.unicode.org/reports/tr44/
|
||||
# see UAX #44: http://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,7 +241,6 @@ 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
|
||||
|
|
@ -273,13 +272,11 @@ 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
|
||||
|
|
@ -287,7 +284,7 @@ FFF0..FFFF; Specials
|
|||
12480..1254F; Early Dynastic Cuneiform
|
||||
12F90..12FFF; Cypro-Minoan
|
||||
13000..1342F; Egyptian Hieroglyphs
|
||||
13430..1345F; Egyptian Hieroglyph Format Controls
|
||||
13430..1343F; Egyptian Hieroglyph Format Controls
|
||||
14400..1467F; Anatolian Hieroglyphs
|
||||
16800..16A3F; Bamum Supplement
|
||||
16A40..16A6F; Mro
|
||||
|
|
@ -312,7 +309,6 @@ 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
|
||||
|
|
@ -320,11 +316,9 @@ 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
|
||||
|
|
@ -354,7 +348,6 @@ 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
|
||||
|
|
|
|||
|
|
@ -2,9 +2,6 @@
|
|||
#
|
||||
# History:
|
||||
#
|
||||
# 2022-09-13 Registration of additional sequences in the Adobe-Japan1
|
||||
# collection.
|
||||
#
|
||||
# 2020-11-06 Registration of additional sequences in the MSARG
|
||||
# collection.
|
||||
#
|
||||
|
|
@ -35,7 +32,7 @@
|
|||
# For more details on the IVD, see UTS #37:
|
||||
# https://www.unicode.org/reports/tr37/
|
||||
#
|
||||
# Copyright 2006-2022 Unicode, Inc.
|
||||
# Copyright 2006-2020 Unicode, Inc.
|
||||
# For terms of use, see: https://www.unicode.org/copyright.html#8
|
||||
#
|
||||
3402 E0100; Adobe-Japan1; CID+13698
|
||||
|
|
@ -39340,5 +39337,4 @@ 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
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -29,9 +29,6 @@ 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
|
||||
|
|
@ -44,9 +41,7 @@ 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}/emoji-labels.el \
|
||||
${unidir}/uni-scripts.el ${unidir}/uni-confusable.el \
|
||||
${unidir}/idna-mapping.el
|
||||
${unidir}/charprop.el ${unidir}/emoji-zwj.el
|
||||
|
||||
## Specify .elc as an order-only prereq so as to not needlessly rebuild
|
||||
## target just because the .elc is missing.
|
||||
|
|
@ -68,38 +63,18 @@ 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_GEN)[ ! -f $@ ] || chmod +w $@
|
||||
$(AM_V_at)${emacs} -L ${srcdir} -l unidata-gen \
|
||||
$(AM_V_at)[ ! -f $@ ] || chmod +w $@
|
||||
$(AM_V_GEN)${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_GEN)[ ! -f $@ ] || chmod +w $@
|
||||
$(AM_V_at)${emacs} -L ${srcdir} -l unidata-gen \
|
||||
$(AM_V_at)[ ! -f $@ ] || chmod +w $@
|
||||
$(AM_V_GEN)${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
|
||||
|
|
@ -138,8 +113,7 @@ 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
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
# NormalizationTest-15.0.0.txt
|
||||
# Date: 2022-04-02, 01:29:09 GMT
|
||||
# © 2022 Unicode®, Inc.
|
||||
# NormalizationTest-14.0.0.txt
|
||||
# Date: 2021-05-28, 21:49:12 GMT
|
||||
# © 2021 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
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Unicode Character Database
|
||||
# For documentation, see https://www.unicode.org/reports/tr44/
|
||||
# For documentation, see http://www.unicode.org/reports/tr44/
|
||||
#
|
||||
# Normalization Test Suite
|
||||
# Format:
|
||||
|
|
@ -16208,68 +16208,6 @@ 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
|
||||
|
|
@ -18558,12 +18496,6 @@ 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
|
||||
|
|
@ -18708,10 +18640,6 @@ 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
|
||||
|
|
@ -18884,8 +18812,6 @@ 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
|
||||
|
|
@ -18910,14 +18836,6 @@ 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
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -6,31 +6,31 @@ copyright.html.
|
|||
The names, URLs, and dates for these files are as follows.
|
||||
|
||||
BidiBrackets.txt
|
||||
https://www.unicode.org/Public/UNIDATA/BidiBrackets.txt
|
||||
http://www.unicode.org/Public/UNIDATA/BidiBrackets.txt
|
||||
2021-06-30
|
||||
|
||||
BidiMirroring.txt
|
||||
https://www.unicode.org/Public/UNIDATA/BidiMirroring.txt
|
||||
http://www.unicode.org/Public/UNIDATA/BidiMirroring.txt
|
||||
2021-08-08
|
||||
|
||||
Blocks.txt
|
||||
https://www.unicode.org/Public/8.0.0/ucd/Blocks.txt
|
||||
http://www.unicode.org/Public/8.0.0/ucd/Blocks.txt
|
||||
2021-01-22
|
||||
|
||||
IVD_Sequences.txt
|
||||
https://www.unicode.org/ivd/
|
||||
http://www.unicode.org/ivd/
|
||||
2020-11-06
|
||||
|
||||
NormalizationTest.txt
|
||||
https://www.unicode.org/Public/UNIDATA/NormalizationTest.txt
|
||||
http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt
|
||||
2021-05-28
|
||||
|
||||
SpecialCasing.txt
|
||||
https://unicode.org/Public/UNIDATA/SpecialCasing.txt
|
||||
http://unicode.org/Public/UNIDATA/SpecialCasing.txt
|
||||
2021-03-08
|
||||
|
||||
UnicodeData.txt
|
||||
https://www.unicode.org/Public/UNIDATA/UnicodeData.txt
|
||||
http://www.unicode.org/Public/UNIDATA/UnicodeData.txt
|
||||
2021-07-06
|
||||
|
||||
emoji-data.txt
|
||||
|
|
@ -44,23 +44,3 @@ 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
|
||||
|
|
|
|||
|
|
@ -1,628 +0,0 @@
|
|||
# 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
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,11 +1,11 @@
|
|||
# SpecialCasing-15.0.0.txt
|
||||
# Date: 2022-02-02, 23:35:52 GMT
|
||||
# © 2022 Unicode®, Inc.
|
||||
# SpecialCasing-14.0.0.txt
|
||||
# Date: 2021-03-08, 19:35:55 GMT
|
||||
# © 2021 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
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Unicode Character Database
|
||||
# For documentation, see https://www.unicode.org/reports/tr44/
|
||||
# For documentation, see http://www.unicode.org/reports/tr44/
|
||||
#
|
||||
# Special Casing
|
||||
#
|
||||
|
|
|
|||
|
|
@ -2975,7 +2975,6 @@
|
|||
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;;;;;
|
||||
|
|
@ -3340,7 +3339,6 @@
|
|||
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;;;;;
|
||||
|
|
@ -19395,9 +19393,6 @@ 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;;;;;
|
||||
|
|
@ -20063,9 +20058,6 @@ 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;;;;;
|
||||
|
|
@ -21264,16 +21256,6 @@ 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;;;;;
|
||||
|
|
@ -21602,92 +21584,6 @@ 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;;;;;
|
||||
|
|
@ -24144,7 +24040,6 @@ 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;;;;;
|
||||
|
|
@ -24154,35 +24049,6 @@ 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;;;;;
|
||||
|
|
@ -27423,11 +27289,9 @@ 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;;;;;
|
||||
|
|
@ -28709,26 +28573,6 @@ 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;;;;;
|
||||
|
|
@ -30560,12 +30404,6 @@ 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;;;;;
|
||||
|
|
@ -30604,69 +30442,6 @@ 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;;;;;
|
||||
|
|
@ -30828,48 +30603,6 @@ 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;;;;;
|
||||
|
|
@ -32945,7 +32678,6 @@ 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;;;;;
|
||||
|
|
@ -33091,14 +32823,6 @@ 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;;;;;
|
||||
|
|
@ -33188,7 +32912,6 @@ 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;;;;;
|
||||
|
|
@ -33711,9 +33434,6 @@ 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;;;;;
|
||||
|
|
@ -33726,8 +33446,6 @@ 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;;;;;
|
||||
|
|
@ -33757,9 +33475,6 @@ 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;;;;;
|
||||
|
|
@ -33771,18 +33486,12 @@ 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;;;;;
|
||||
|
|
@ -33793,8 +33502,6 @@ 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;;;;;
|
||||
|
|
@ -33803,7 +33510,6 @@ 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;;;;;
|
||||
|
|
@ -33811,8 +33517,6 @@ 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;;;;;
|
||||
|
|
@ -34028,7 +33732,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;;;;;
|
||||
2B739;<CJK Ideograph Extension C, Last>;Lo;0;L;;;;;N;;;;;
|
||||
2B738;<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;;;;;
|
||||
|
|
@ -34579,8 +34283,6 @@ 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;;;;;
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
### Commentary:
|
||||
|
||||
## This script takes as input Unicode's Blocks.txt
|
||||
## (https://www.unicode.org/Public/UNIDATA/Blocks.txt)
|
||||
## (http://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.
|
||||
|
|
@ -98,7 +98,7 @@ function name2alias(name , w, w2) {
|
|||
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"
|
||||
else if (name ~ /cuneiform number/) return "cuneiform-numbers-and-punctuation"
|
||||
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,11 +113,9 @@ 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 "arabic"
|
||||
else if (name ~ /rumi num/) return "rumi-number"
|
||||
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)
|
||||
|
|
@ -224,14 +222,9 @@ FILENAME ~ "emoji-data.txt" && /^[0-9A-F].*; Emoji_Presentation / {
|
|||
|
||||
END {
|
||||
idx = 0
|
||||
## 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"
|
||||
# ## These are here so that font_range can choose Emoji presentation
|
||||
# ## for the preceding codepoint when it encounters a VS
|
||||
override_start[idx] = "FE00"
|
||||
override_end[idx] = "FE0F"
|
||||
|
||||
for (k in override_start)
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -13,7 +13,7 @@
|
|||
<title>Unicode Terms of Use</title>
|
||||
<link rel="stylesheet" type="text/css"
|
||||
|
||||
href="https://www.unicode.org/webscripts/standard_styles.css">
|
||||
href="http://www.unicode.org/webscripts/standard_styles.css">
|
||||
|
||||
<style type="text/css">
|
||||
pre {
|
||||
|
|
@ -32,8 +32,8 @@
|
|||
<td colspan="2">
|
||||
<table width="100%" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td class="icon" style="width:38px; height:35px"><a href="https://www.unicode.org/"><img border="0"
|
||||
src="https://www.unicode.org/webscripts/logo60s2.gif" align="middle" alt="[Unicode]" width="34" height="33"></a></td>
|
||||
<td class="icon" style="width:38px; height:35px"><a href="http://www.unicode.org/"><img border="0"
|
||||
src="http://www.unicode.org/webscripts/logo60s2.gif" align="middle" alt="[Unicode]" width="34" height="33"></a></td>
|
||||
<td class="icon" style="vertical-align:middle;"> <a class="bar"
|
||||
href="https://www.unicode.org/copyright.html"><font size="3">Terms of Use</font></a></td>
|
||||
<td class="bar"><a href="https://www.unicode.org/main.html" class="bar">Tech Site</a>
|
||||
|
|
@ -82,7 +82,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td valign="top" class="navColCell">
|
||||
<a href="https://www.unicode.org/license.txt">Unicode Data Files and Software License</a></td>
|
||||
<a href="https://www.unicode.org/license.html">Unicode Data Files and Software License</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="navColTitle">Related Links</td>
|
||||
|
|
@ -112,13 +112,13 @@ <h1>Unicode® Copyright and Terms of Use</h1>
|
|||
|
||||
<p>For the general privacy policy governing access to this site, see
|
||||
the
|
||||
<a href="https://www.unicode.org/policies/privacy_policy.html">
|
||||
<a href="http://www.unicode.org/policies/privacy_policy.html">
|
||||
Unicode Privacy Policy</a>.</p>
|
||||
|
||||
<ol type="A">
|
||||
<li><u><a name="1"></a>Unicode Copyright</u>
|
||||
<ol>
|
||||
<li>Copyright © 1991-2022 Unicode, Inc. All rights reserved.</li>
|
||||
<li>Copyright © 1991-2021 Unicode, Inc. All rights reserved.</li>
|
||||
</ol>
|
||||
</li>
|
||||
|
||||
|
|
@ -153,12 +153,12 @@ <h1>Unicode® Copyright and Terms of Use</h1>
|
|||
herein.</li>
|
||||
<li>Further specifications of rights and restrictions pertaining
|
||||
to the use of the Unicode DATA FILES and SOFTWARE can be found in the
|
||||
<a href="https://www.unicode.org/license.txt">Unicode Data Files and Software License</a>.</li>
|
||||
<a href="https://www.unicode.org/license.html">Unicode Data Files and Software License</a>.</li>
|
||||
<li>Each version of the Unicode Standard has further
|
||||
specifications of rights and restrictions of use. For the book
|
||||
editions (Unicode 5.0 and earlier), these are found on the back
|
||||
of the
|
||||
<a href="https://www.unicode.org/versions/Unicode5.0.0/Title.pdf">title page</a>.</li>
|
||||
<a href="http://www.unicode.org/versions/Unicode5.0.0/Title.pdf">title page</a>.</li>
|
||||
<li>
|
||||
The Unicode PDF <a href="https://www.unicode.org/charts/">online code charts</a> carry specific restrictions. Those restrictions are incorporated as the
|
||||
first page of each PDF code chart.</li>
|
||||
|
|
@ -224,7 +224,7 @@ <h1>Unicode® Copyright and Terms of Use</h1>
|
|||
<li><u><a name="5"></a>Trademarks & Logos</u>
|
||||
<ol>
|
||||
<li>The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade names of Unicode, Inc. Use of the information and materials found on this website indicates your acknowledgement of Unicode, Inc.’s exclusive worldwide rights in the Unicode Word Mark, the Unicode Logo, and the Unicode trade names.</li>
|
||||
<li><a href="https://www.unicode.org/policies/logo_policy.html">The Unicode Consortium Name and Trademark Usage Policy</a> (“Trademark Policy”) are incorporated herein by reference and you agree to abide by the provisions of the Trademark Policy, which may be changed from time to time in the sole discretion of Unicode, Inc.</li>
|
||||
<li><a href="http://www.unicode.org/policies/logo_policy.html">The Unicode Consortium Name and Trademark Usage Policy</a> (“Trademark Policy”) are incorporated herein by reference and you agree to abide by the provisions of the Trademark Policy, which may be changed from time to time in the sole discretion of Unicode, Inc.</li>
|
||||
<li>All third party trademarks referenced herein are the property of their respective owners.</li>
|
||||
</ol>
|
||||
</li>
|
||||
|
|
@ -270,15 +270,15 @@ <h1>Unicode® Copyright and Terms of Use</h1>
|
|||
<center>
|
||||
<table cellspacing="0" cellpadding="0" border="0" id="table2">
|
||||
<tr>
|
||||
<td><a href="https://www.unicode.org/copyright.html">
|
||||
<img src="https://www.unicode.org/img/hb_notice.gif"
|
||||
<td><a href="http://www.unicode.org/copyright.html">
|
||||
<img src="http://www.unicode.org/img/hb_notice.gif"
|
||||
border="0" alt="Access to Copyright and terms of use"
|
||||
width="216" height="50"></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<script language="Javascript" type="text/javascript"
|
||||
src="https://www.unicode.org/webscripts/lastModified.js">
|
||||
src="http://www.unicode.org/webscripts/lastModified.js">
|
||||
</script>
|
||||
|
||||
</center>
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
# emoji-data.txt
|
||||
# Date: 2022-08-02, 00:26:10 GMT
|
||||
# © 2022 Unicode®, Inc.
|
||||
# emoji-data-14.0.0.txt
|
||||
# Date: 2021-08-26, 17:22:22 GMT
|
||||
# © 2021 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
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Emoji Data for UTS #51
|
||||
# Used with Emoji Version 15.0 and subsequent minor revisions (if any)
|
||||
# Used with Emoji Version 14.0 and subsequent minor revisions (if any)
|
||||
#
|
||||
# For documentation and usage, see https://www.unicode.org/reports/tr51
|
||||
# For documentation and usage, see http://www.unicode.org/reports/tr51
|
||||
#
|
||||
# Format:
|
||||
# <codepoint(s)> ; <property> # <comments>
|
||||
|
|
@ -20,6 +20,7 @@
|
|||
# ================================================
|
||||
|
||||
# All omitted code points have Emoji=No
|
||||
# @missing: 0000..10FFFF ; Emoji ; No
|
||||
|
||||
0023 ; Emoji # E0.0 [1] (#️) hash sign
|
||||
002A ; Emoji # E0.0 [1] (*️) asterisk
|
||||
|
|
@ -340,7 +341,6 @@
|
|||
1F6D1..1F6D2 ; Emoji # E3.0 [2] (🛑..🛒) stop sign..shopping cart
|
||||
1F6D5 ; Emoji # E12.0 [1] (🛕) hindu temple
|
||||
1F6D6..1F6D7 ; Emoji # E13.0 [2] (🛖..🛗) hut..elevator
|
||||
1F6DC ; Emoji # E15.0 [1] (🛜) wireless
|
||||
1F6DD..1F6DF ; Emoji # E14.0 [3] (🛝..🛟) playground slide..ring buoy
|
||||
1F6E0..1F6E5 ; Emoji # E0.7 [6] (🛠️..🛥️) hammer and wrench..motor boat
|
||||
1F6E9 ; Emoji # E0.7 [1] (🛩️) small airplane
|
||||
|
|
@ -401,36 +401,28 @@
|
|||
1F9E7..1F9FF ; Emoji # E11.0 [25] (🧧..🧿) red envelope..nazar amulet
|
||||
1FA70..1FA73 ; Emoji # E12.0 [4] (🩰..🩳) ballet shoes..shorts
|
||||
1FA74 ; Emoji # E13.0 [1] (🩴) thong sandal
|
||||
1FA75..1FA77 ; Emoji # E15.0 [3] (🩵..🩷) light blue heart..pink heart
|
||||
1FA78..1FA7A ; Emoji # E12.0 [3] (🩸..🩺) drop of blood..stethoscope
|
||||
1FA7B..1FA7C ; Emoji # E14.0 [2] (🩻..🩼) x-ray..crutch
|
||||
1FA80..1FA82 ; Emoji # E12.0 [3] (🪀..🪂) yo-yo..parachute
|
||||
1FA83..1FA86 ; Emoji # E13.0 [4] (🪃..🪆) boomerang..nesting dolls
|
||||
1FA87..1FA88 ; Emoji # E15.0 [2] (🪇..🪈) maracas..flute
|
||||
1FA90..1FA95 ; Emoji # E12.0 [6] (🪐..🪕) ringed planet..banjo
|
||||
1FA96..1FAA8 ; Emoji # E13.0 [19] (🪖..🪨) military helmet..rock
|
||||
1FAA9..1FAAC ; Emoji # E14.0 [4] (🪩..🪬) mirror ball..hamsa
|
||||
1FAAD..1FAAF ; Emoji # E15.0 [3] (🪭..🪯) folding hand fan..khanda
|
||||
1FAB0..1FAB6 ; Emoji # E13.0 [7] (🪰..🪶) fly..feather
|
||||
1FAB7..1FABA ; Emoji # E14.0 [4] (🪷..🪺) lotus..nest with eggs
|
||||
1FABB..1FABD ; Emoji # E15.0 [3] (🪻..🪽) hyacinth..wing
|
||||
1FABF ; Emoji # E15.0 [1] (🪿) goose
|
||||
1FAC0..1FAC2 ; Emoji # E13.0 [3] (🫀..🫂) anatomical heart..people hugging
|
||||
1FAC3..1FAC5 ; Emoji # E14.0 [3] (🫃..🫅) pregnant man..person with crown
|
||||
1FACE..1FACF ; Emoji # E15.0 [2] (🫎..🫏) moose..donkey
|
||||
1FAD0..1FAD6 ; Emoji # E13.0 [7] (🫐..🫖) blueberries..teapot
|
||||
1FAD7..1FAD9 ; Emoji # E14.0 [3] (🫗..🫙) pouring liquid..jar
|
||||
1FADA..1FADB ; Emoji # E15.0 [2] (🫚..🫛) ginger root..pea pod
|
||||
1FAE0..1FAE7 ; Emoji # E14.0 [8] (🫠..🫧) melting face..bubbles
|
||||
1FAE8 ; Emoji # E15.0 [1] (🫨) shaking face
|
||||
1FAF0..1FAF6 ; Emoji # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
|
||||
1FAF7..1FAF8 ; Emoji # E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand
|
||||
|
||||
# Total elements: 1424
|
||||
# Total elements: 1404
|
||||
|
||||
# ================================================
|
||||
|
||||
# All omitted code points have Emoji_Presentation=No
|
||||
# @missing: 0000..10FFFF ; Emoji_Presentation ; No
|
||||
|
||||
231A..231B ; Emoji_Presentation # E0.6 [2] (⌚..⌛) watch..hourglass done
|
||||
23E9..23EC ; Emoji_Presentation # E0.6 [4] (⏩..⏬) fast-forward button..fast down button
|
||||
|
|
@ -633,7 +625,6 @@
|
|||
1F6D1..1F6D2 ; Emoji_Presentation # E3.0 [2] (🛑..🛒) stop sign..shopping cart
|
||||
1F6D5 ; Emoji_Presentation # E12.0 [1] (🛕) hindu temple
|
||||
1F6D6..1F6D7 ; Emoji_Presentation # E13.0 [2] (🛖..🛗) hut..elevator
|
||||
1F6DC ; Emoji_Presentation # E15.0 [1] (🛜) wireless
|
||||
1F6DD..1F6DF ; Emoji_Presentation # E14.0 [3] (🛝..🛟) playground slide..ring buoy
|
||||
1F6EB..1F6EC ; Emoji_Presentation # E1.0 [2] (🛫..🛬) airplane departure..airplane arrival
|
||||
1F6F4..1F6F6 ; Emoji_Presentation # E3.0 [3] (🛴..🛶) kick scooter..canoe
|
||||
|
|
@ -690,36 +681,28 @@
|
|||
1F9E7..1F9FF ; Emoji_Presentation # E11.0 [25] (🧧..🧿) red envelope..nazar amulet
|
||||
1FA70..1FA73 ; Emoji_Presentation # E12.0 [4] (🩰..🩳) ballet shoes..shorts
|
||||
1FA74 ; Emoji_Presentation # E13.0 [1] (🩴) thong sandal
|
||||
1FA75..1FA77 ; Emoji_Presentation # E15.0 [3] (🩵..🩷) light blue heart..pink heart
|
||||
1FA78..1FA7A ; Emoji_Presentation # E12.0 [3] (🩸..🩺) drop of blood..stethoscope
|
||||
1FA7B..1FA7C ; Emoji_Presentation # E14.0 [2] (🩻..🩼) x-ray..crutch
|
||||
1FA80..1FA82 ; Emoji_Presentation # E12.0 [3] (🪀..🪂) yo-yo..parachute
|
||||
1FA83..1FA86 ; Emoji_Presentation # E13.0 [4] (🪃..🪆) boomerang..nesting dolls
|
||||
1FA87..1FA88 ; Emoji_Presentation # E15.0 [2] (🪇..🪈) maracas..flute
|
||||
1FA90..1FA95 ; Emoji_Presentation # E12.0 [6] (🪐..🪕) ringed planet..banjo
|
||||
1FA96..1FAA8 ; Emoji_Presentation # E13.0 [19] (🪖..🪨) military helmet..rock
|
||||
1FAA9..1FAAC ; Emoji_Presentation # E14.0 [4] (🪩..🪬) mirror ball..hamsa
|
||||
1FAAD..1FAAF ; Emoji_Presentation # E15.0 [3] (🪭..🪯) folding hand fan..khanda
|
||||
1FAB0..1FAB6 ; Emoji_Presentation # E13.0 [7] (🪰..🪶) fly..feather
|
||||
1FAB7..1FABA ; Emoji_Presentation # E14.0 [4] (🪷..🪺) lotus..nest with eggs
|
||||
1FABB..1FABD ; Emoji_Presentation # E15.0 [3] (🪻..🪽) hyacinth..wing
|
||||
1FABF ; Emoji_Presentation # E15.0 [1] (🪿) goose
|
||||
1FAC0..1FAC2 ; Emoji_Presentation # E13.0 [3] (🫀..🫂) anatomical heart..people hugging
|
||||
1FAC3..1FAC5 ; Emoji_Presentation # E14.0 [3] (🫃..🫅) pregnant man..person with crown
|
||||
1FACE..1FACF ; Emoji_Presentation # E15.0 [2] (🫎..🫏) moose..donkey
|
||||
1FAD0..1FAD6 ; Emoji_Presentation # E13.0 [7] (🫐..🫖) blueberries..teapot
|
||||
1FAD7..1FAD9 ; Emoji_Presentation # E14.0 [3] (🫗..🫙) pouring liquid..jar
|
||||
1FADA..1FADB ; Emoji_Presentation # E15.0 [2] (🫚..🫛) ginger root..pea pod
|
||||
1FAE0..1FAE7 ; Emoji_Presentation # E14.0 [8] (🫠..🫧) melting face..bubbles
|
||||
1FAE8 ; Emoji_Presentation # E15.0 [1] (🫨) shaking face
|
||||
1FAF0..1FAF6 ; Emoji_Presentation # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
|
||||
1FAF7..1FAF8 ; Emoji_Presentation # E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand
|
||||
|
||||
# Total elements: 1205
|
||||
# Total elements: 1185
|
||||
|
||||
# ================================================
|
||||
|
||||
# All omitted code points have Emoji_Modifier=No
|
||||
# @missing: 0000..10FFFF ; Emoji_Modifier ; No
|
||||
|
||||
1F3FB..1F3FF ; Emoji_Modifier # E1.0 [5] (🏻..🏿) light skin tone..dark skin tone
|
||||
|
||||
|
|
@ -728,6 +711,7 @@
|
|||
# ================================================
|
||||
|
||||
# All omitted code points have Emoji_Modifier_Base=No
|
||||
# @missing: 0000..10FFFF ; Emoji_Modifier_Base ; No
|
||||
|
||||
261D ; Emoji_Modifier_Base # E0.6 [1] (☝️) index pointing up
|
||||
26F9 ; Emoji_Modifier_Base # E0.7 [1] (⛹️) person bouncing ball
|
||||
|
|
@ -778,13 +762,13 @@
|
|||
1F9D1..1F9DD ; Emoji_Modifier_Base # E5.0 [13] (🧑..🧝) person..elf
|
||||
1FAC3..1FAC5 ; Emoji_Modifier_Base # E14.0 [3] (🫃..🫅) pregnant man..person with crown
|
||||
1FAF0..1FAF6 ; Emoji_Modifier_Base # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
|
||||
1FAF7..1FAF8 ; Emoji_Modifier_Base # E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand
|
||||
|
||||
# Total elements: 134
|
||||
# Total elements: 132
|
||||
|
||||
# ================================================
|
||||
|
||||
# All omitted code points have Emoji_Component=No
|
||||
# @missing: 0000..10FFFF ; Emoji_Component ; No
|
||||
|
||||
0023 ; Emoji_Component # E0.0 [1] (#️) hash sign
|
||||
002A ; Emoji_Component # E0.0 [1] (*️) asterisk
|
||||
|
|
@ -802,6 +786,7 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (..) tag space..c
|
|||
# ================================================
|
||||
|
||||
# All omitted code points have Extended_Pictographic=No
|
||||
# @missing: 0000..10FFFF ; Extended_Pictographic ; No
|
||||
|
||||
00A9 ; Extended_Pictographic# E0.6 [1] (©️) copyright
|
||||
00AE ; Extended_Pictographic# E0.6 [1] (®️) registered
|
||||
|
|
@ -1205,8 +1190,7 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (..) tag space..c
|
|||
1F6D3..1F6D4 ; Extended_Pictographic# E0.0 [2] (🛓..🛔) STUPA..PAGODA
|
||||
1F6D5 ; Extended_Pictographic# E12.0 [1] (🛕) hindu temple
|
||||
1F6D6..1F6D7 ; Extended_Pictographic# E13.0 [2] (🛖..🛗) hut..elevator
|
||||
1F6D8..1F6DB ; Extended_Pictographic# E0.0 [4] (..) <reserved-1F6D8>..<reserved-1F6DB>
|
||||
1F6DC ; Extended_Pictographic# E15.0 [1] (🛜) wireless
|
||||
1F6D8..1F6DC ; Extended_Pictographic# E0.0 [5] (..🛜) <reserved-1F6D8>..<reserved-1F6DC>
|
||||
1F6DD..1F6DF ; Extended_Pictographic# E14.0 [3] (🛝..🛟) playground slide..ring buoy
|
||||
1F6E0..1F6E5 ; Extended_Pictographic# E0.7 [6] (🛠️..🛥️) hammer and wrench..motor boat
|
||||
1F6E6..1F6E8 ; Extended_Pictographic# E0.0 [3] (🛦..🛨) UP-POINTING MILITARY AIRPLANE..UP-POINTING SMALL AIRPLANE
|
||||
|
|
@ -1223,7 +1207,7 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (..) tag space..c
|
|||
1F6FA ; Extended_Pictographic# E12.0 [1] (🛺) auto rickshaw
|
||||
1F6FB..1F6FC ; Extended_Pictographic# E13.0 [2] (🛻..🛼) pickup truck..roller skate
|
||||
1F6FD..1F6FF ; Extended_Pictographic# E0.0 [3] (..) <reserved-1F6FD>..<reserved-1F6FF>
|
||||
1F774..1F77F ; Extended_Pictographic# E0.0 [12] (🝴..🝿) LOT OF FORTUNE..ORCUS
|
||||
1F774..1F77F ; Extended_Pictographic# E0.0 [12] (🝴..🝿) <reserved-1F774>..<reserved-1F77F>
|
||||
1F7D5..1F7DF ; Extended_Pictographic# E0.0 [11] (🟕..) CIRCLED TRIANGLE..<reserved-1F7DF>
|
||||
1F7E0..1F7EB ; Extended_Pictographic# E12.0 [12] (🟠..🟫) orange circle..brown square
|
||||
1F7EC..1F7EF ; Extended_Pictographic# E0.0 [4] (..) <reserved-1F7EC>..<reserved-1F7EF>
|
||||
|
|
@ -1282,37 +1266,30 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (..) tag space..c
|
|||
1FA00..1FA6F ; Extended_Pictographic# E0.0 [112] (🨀..) NEUTRAL CHESS KING..<reserved-1FA6F>
|
||||
1FA70..1FA73 ; Extended_Pictographic# E12.0 [4] (🩰..🩳) ballet shoes..shorts
|
||||
1FA74 ; Extended_Pictographic# E13.0 [1] (🩴) thong sandal
|
||||
1FA75..1FA77 ; Extended_Pictographic# E15.0 [3] (🩵..🩷) light blue heart..pink heart
|
||||
1FA75..1FA77 ; Extended_Pictographic# E0.0 [3] (🩵..🩷) <reserved-1FA75>..<reserved-1FA77>
|
||||
1FA78..1FA7A ; Extended_Pictographic# E12.0 [3] (🩸..🩺) drop of blood..stethoscope
|
||||
1FA7B..1FA7C ; Extended_Pictographic# E14.0 [2] (🩻..🩼) x-ray..crutch
|
||||
1FA7D..1FA7F ; Extended_Pictographic# E0.0 [3] (..) <reserved-1FA7D>..<reserved-1FA7F>
|
||||
1FA80..1FA82 ; Extended_Pictographic# E12.0 [3] (🪀..🪂) yo-yo..parachute
|
||||
1FA83..1FA86 ; Extended_Pictographic# E13.0 [4] (🪃..🪆) boomerang..nesting dolls
|
||||
1FA87..1FA88 ; Extended_Pictographic# E15.0 [2] (🪇..🪈) maracas..flute
|
||||
1FA89..1FA8F ; Extended_Pictographic# E0.0 [7] (..) <reserved-1FA89>..<reserved-1FA8F>
|
||||
1FA87..1FA8F ; Extended_Pictographic# E0.0 [9] (🪇..) <reserved-1FA87>..<reserved-1FA8F>
|
||||
1FA90..1FA95 ; Extended_Pictographic# E12.0 [6] (🪐..🪕) ringed planet..banjo
|
||||
1FA96..1FAA8 ; Extended_Pictographic# E13.0 [19] (🪖..🪨) military helmet..rock
|
||||
1FAA9..1FAAC ; Extended_Pictographic# E14.0 [4] (🪩..🪬) mirror ball..hamsa
|
||||
1FAAD..1FAAF ; Extended_Pictographic# E15.0 [3] (🪭..🪯) folding hand fan..khanda
|
||||
1FAAD..1FAAF ; Extended_Pictographic# E0.0 [3] (🪭..🪯) <reserved-1FAAD>..<reserved-1FAAF>
|
||||
1FAB0..1FAB6 ; Extended_Pictographic# E13.0 [7] (🪰..🪶) fly..feather
|
||||
1FAB7..1FABA ; Extended_Pictographic# E14.0 [4] (🪷..🪺) lotus..nest with eggs
|
||||
1FABB..1FABD ; Extended_Pictographic# E15.0 [3] (🪻..🪽) hyacinth..wing
|
||||
1FABE ; Extended_Pictographic# E0.0 [1] () <reserved-1FABE>
|
||||
1FABF ; Extended_Pictographic# E15.0 [1] (🪿) goose
|
||||
1FABB..1FABF ; Extended_Pictographic# E0.0 [5] (🪻..🪿) <reserved-1FABB>..<reserved-1FABF>
|
||||
1FAC0..1FAC2 ; Extended_Pictographic# E13.0 [3] (🫀..🫂) anatomical heart..people hugging
|
||||
1FAC3..1FAC5 ; Extended_Pictographic# E14.0 [3] (🫃..🫅) pregnant man..person with crown
|
||||
1FAC6..1FACD ; Extended_Pictographic# E0.0 [8] (..) <reserved-1FAC6>..<reserved-1FACD>
|
||||
1FACE..1FACF ; Extended_Pictographic# E15.0 [2] (🫎..🫏) moose..donkey
|
||||
1FAC6..1FACF ; Extended_Pictographic# E0.0 [10] (..🫏) <reserved-1FAC6>..<reserved-1FACF>
|
||||
1FAD0..1FAD6 ; Extended_Pictographic# E13.0 [7] (🫐..🫖) blueberries..teapot
|
||||
1FAD7..1FAD9 ; Extended_Pictographic# E14.0 [3] (🫗..🫙) pouring liquid..jar
|
||||
1FADA..1FADB ; Extended_Pictographic# E15.0 [2] (🫚..🫛) ginger root..pea pod
|
||||
1FADC..1FADF ; Extended_Pictographic# E0.0 [4] (..) <reserved-1FADC>..<reserved-1FADF>
|
||||
1FADA..1FADF ; Extended_Pictographic# E0.0 [6] (🫚..) <reserved-1FADA>..<reserved-1FADF>
|
||||
1FAE0..1FAE7 ; Extended_Pictographic# E14.0 [8] (🫠..🫧) melting face..bubbles
|
||||
1FAE8 ; Extended_Pictographic# E15.0 [1] (🫨) shaking face
|
||||
1FAE9..1FAEF ; Extended_Pictographic# E0.0 [7] (..) <reserved-1FAE9>..<reserved-1FAEF>
|
||||
1FAE8..1FAEF ; Extended_Pictographic# E0.0 [8] (🫨..) <reserved-1FAE8>..<reserved-1FAEF>
|
||||
1FAF0..1FAF6 ; Extended_Pictographic# E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
|
||||
1FAF7..1FAF8 ; Extended_Pictographic# E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand
|
||||
1FAF9..1FAFF ; Extended_Pictographic# E0.0 [7] (..) <reserved-1FAF9>..<reserved-1FAFF>
|
||||
1FAF7..1FAFF ; Extended_Pictographic# E0.0 [9] (🫷..) <reserved-1FAF7>..<reserved-1FAFF>
|
||||
1FC00..1FFFD ; Extended_Pictographic# E0.0[1022] (..) <reserved-1FC00>..<reserved-1FFFD>
|
||||
|
||||
# Total elements: 3537
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
# emoji-sequences.txt
|
||||
# Date: 2022-08-15, 23:13:41 GMT
|
||||
# © 2022 Unicode®, Inc.
|
||||
# Date: 2021-08-26, 17:22:22 GMT
|
||||
# © 2021 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
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Emoji Sequence Data for UTS #51
|
||||
# Version: 15.0
|
||||
# Version: 14.0
|
||||
#
|
||||
# For documentation and usage, see https://www.unicode.org/reports/tr51
|
||||
# For documentation and usage, see http://www.unicode.org/reports/tr51
|
||||
#
|
||||
# Format:
|
||||
# code_point(s) ; type_field ; description # comments
|
||||
|
|
@ -38,145 +38,144 @@
|
|||
|
||||
# Basic_Emoji
|
||||
|
||||
|
||||
231A..231B ; Basic_Emoji ; watch..hourglass done # E0.6 [2] (⌚..⌛)
|
||||
23E9..23EC ; Basic_Emoji ; fast-forward button..fast down button # E0.6 [4] (⏩..⏬)
|
||||
231A..231B ; Basic_Emoji ; watch # E0.6 [2] (⌚..⌛)
|
||||
23E9..23EC ; Basic_Emoji ; fast-forward button # E0.6 [4] (⏩..⏬)
|
||||
23F0 ; Basic_Emoji ; alarm clock # E0.6 [1] (⏰)
|
||||
23F3 ; Basic_Emoji ; hourglass not done # E0.6 [1] (⏳)
|
||||
25FD..25FE ; Basic_Emoji ; white medium-small square..black medium-small square # E0.6 [2] (◽..◾)
|
||||
2614..2615 ; Basic_Emoji ; umbrella with rain drops..hot beverage # E0.6 [2] (☔..☕)
|
||||
2648..2653 ; Basic_Emoji ; Aries..Pisces # E0.6 [12] (♈..♓)
|
||||
25FD..25FE ; Basic_Emoji ; white medium-small square # E0.6 [2] (◽..◾)
|
||||
2614..2615 ; Basic_Emoji ; umbrella with rain drops # E0.6 [2] (☔..☕)
|
||||
2648..2653 ; Basic_Emoji ; Aries # E0.6 [12] (♈..♓)
|
||||
267F ; Basic_Emoji ; wheelchair symbol # E0.6 [1] (♿)
|
||||
2693 ; Basic_Emoji ; anchor # E0.6 [1] (⚓)
|
||||
26A1 ; Basic_Emoji ; high voltage # E0.6 [1] (⚡)
|
||||
26AA..26AB ; Basic_Emoji ; white circle..black circle # E0.6 [2] (⚪..⚫)
|
||||
26BD..26BE ; Basic_Emoji ; soccer ball..baseball # E0.6 [2] (⚽..⚾)
|
||||
26C4..26C5 ; Basic_Emoji ; snowman without snow..sun behind cloud # E0.6 [2] (⛄..⛅)
|
||||
26AA..26AB ; Basic_Emoji ; white circle # E0.6 [2] (⚪..⚫)
|
||||
26BD..26BE ; Basic_Emoji ; soccer ball # E0.6 [2] (⚽..⚾)
|
||||
26C4..26C5 ; Basic_Emoji ; snowman without snow # E0.6 [2] (⛄..⛅)
|
||||
26CE ; Basic_Emoji ; Ophiuchus # E0.6 [1] (⛎)
|
||||
26D4 ; Basic_Emoji ; no entry # E0.6 [1] (⛔)
|
||||
26EA ; Basic_Emoji ; church # E0.6 [1] (⛪)
|
||||
26F2..26F3 ; Basic_Emoji ; fountain..flag in hole # E0.6 [2] (⛲..⛳)
|
||||
26F2..26F3 ; Basic_Emoji ; fountain # E0.6 [2] (⛲..⛳)
|
||||
26F5 ; Basic_Emoji ; sailboat # E0.6 [1] (⛵)
|
||||
26FA ; Basic_Emoji ; tent # E0.6 [1] (⛺)
|
||||
26FD ; Basic_Emoji ; fuel pump # E0.6 [1] (⛽)
|
||||
2705 ; Basic_Emoji ; check mark button # E0.6 [1] (✅)
|
||||
270A..270B ; Basic_Emoji ; raised fist..raised hand # E0.6 [2] (✊..✋)
|
||||
270A..270B ; Basic_Emoji ; raised fist # E0.6 [2] (✊..✋)
|
||||
2728 ; Basic_Emoji ; sparkles # E0.6 [1] (✨)
|
||||
274C ; Basic_Emoji ; cross mark # E0.6 [1] (❌)
|
||||
274E ; Basic_Emoji ; cross mark button # E0.6 [1] (❎)
|
||||
2753..2755 ; Basic_Emoji ; red question mark..white exclamation mark # E0.6 [3] (❓..❕)
|
||||
2753..2755 ; Basic_Emoji ; red question mark # E0.6 [3] (❓..❕)
|
||||
2757 ; Basic_Emoji ; red exclamation mark # E0.6 [1] (❗)
|
||||
2795..2797 ; Basic_Emoji ; plus..divide # E0.6 [3] (➕..➗)
|
||||
2795..2797 ; Basic_Emoji ; plus # E0.6 [3] (➕..➗)
|
||||
27B0 ; Basic_Emoji ; curly loop # E0.6 [1] (➰)
|
||||
27BF ; Basic_Emoji ; double curly loop # E1.0 [1] (➿)
|
||||
2B1B..2B1C ; Basic_Emoji ; black large square..white large square # E0.6 [2] (⬛..⬜)
|
||||
2B1B..2B1C ; Basic_Emoji ; black large square # E0.6 [2] (⬛..⬜)
|
||||
2B50 ; Basic_Emoji ; star # E0.6 [1] (⭐)
|
||||
2B55 ; Basic_Emoji ; hollow red circle # E0.6 [1] (⭕)
|
||||
1F004 ; Basic_Emoji ; mahjong red dragon # E0.6 [1] (🀄)
|
||||
1F0CF ; Basic_Emoji ; joker # E0.6 [1] (🃏)
|
||||
1F18E ; Basic_Emoji ; AB button (blood type) # E0.6 [1] (🆎)
|
||||
1F191..1F19A ; Basic_Emoji ; CL button..VS button # E0.6 [10] (🆑..🆚)
|
||||
1F191..1F19A ; Basic_Emoji ; CL button # E0.6 [10] (🆑..🆚)
|
||||
1F201 ; Basic_Emoji ; Japanese “here” button # E0.6 [1] (🈁)
|
||||
1F21A ; Basic_Emoji ; Japanese “free of charge” button # E0.6 [1] (🈚)
|
||||
1F22F ; Basic_Emoji ; Japanese “reserved” button # E0.6 [1] (🈯)
|
||||
1F232..1F236 ; Basic_Emoji ; Japanese “prohibited” button..Japanese “not free of charge” button#E0.6 [5] (🈲..🈶)
|
||||
1F238..1F23A ; Basic_Emoji ; Japanese “application” button..Japanese “open for business” button#E0.6 [3] (🈸..🈺)
|
||||
1F250..1F251 ; Basic_Emoji ; Japanese “bargain” button..Japanese “acceptable” button # E0.6 [2] (🉐..🉑)
|
||||
1F300..1F30C ; Basic_Emoji ; cyclone..milky way # E0.6 [13] (🌀..🌌)
|
||||
1F30D..1F30E ; Basic_Emoji ; globe showing Europe-Africa..globe showing Americas # E0.7 [2] (🌍..🌎)
|
||||
1F232..1F236 ; Basic_Emoji ; Japanese “prohibited” button # E0.6 [5] (🈲..🈶)
|
||||
1F238..1F23A ; Basic_Emoji ; Japanese “application” button # E0.6 [3] (🈸..🈺)
|
||||
1F250..1F251 ; Basic_Emoji ; Japanese “bargain” button # E0.6 [2] (🉐..🉑)
|
||||
1F300..1F30C ; Basic_Emoji ; cyclone # E0.6 [13] (🌀..🌌)
|
||||
1F30D..1F30E ; Basic_Emoji ; globe showing Europe-Africa # E0.7 [2] (🌍..🌎)
|
||||
1F30F ; Basic_Emoji ; globe showing Asia-Australia # E0.6 [1] (🌏)
|
||||
1F310 ; Basic_Emoji ; globe with meridians # E1.0 [1] (🌐)
|
||||
1F311 ; Basic_Emoji ; new moon # E0.6 [1] (🌑)
|
||||
1F312 ; Basic_Emoji ; waxing crescent moon # E1.0 [1] (🌒)
|
||||
1F313..1F315 ; Basic_Emoji ; first quarter moon..full moon # E0.6 [3] (🌓..🌕)
|
||||
1F316..1F318 ; Basic_Emoji ; waning gibbous moon..waning crescent moon # E1.0 [3] (🌖..🌘)
|
||||
1F313..1F315 ; Basic_Emoji ; first quarter moon # E0.6 [3] (🌓..🌕)
|
||||
1F316..1F318 ; Basic_Emoji ; waning gibbous moon # E1.0 [3] (🌖..🌘)
|
||||
1F319 ; Basic_Emoji ; crescent moon # E0.6 [1] (🌙)
|
||||
1F31A ; Basic_Emoji ; new moon face # E1.0 [1] (🌚)
|
||||
1F31B ; Basic_Emoji ; first quarter moon face # E0.6 [1] (🌛)
|
||||
1F31C ; Basic_Emoji ; last quarter moon face # E0.7 [1] (🌜)
|
||||
1F31D..1F31E ; Basic_Emoji ; full moon face..sun with face # E1.0 [2] (🌝..🌞)
|
||||
1F31F..1F320 ; Basic_Emoji ; glowing star..shooting star # E0.6 [2] (🌟..🌠)
|
||||
1F32D..1F32F ; Basic_Emoji ; hot dog..burrito # E1.0 [3] (🌭..🌯)
|
||||
1F330..1F331 ; Basic_Emoji ; chestnut..seedling # E0.6 [2] (🌰..🌱)
|
||||
1F332..1F333 ; Basic_Emoji ; evergreen tree..deciduous tree # E1.0 [2] (🌲..🌳)
|
||||
1F334..1F335 ; Basic_Emoji ; palm tree..cactus # E0.6 [2] (🌴..🌵)
|
||||
1F337..1F34A ; Basic_Emoji ; tulip..tangerine # E0.6 [20] (🌷..🍊)
|
||||
1F31D..1F31E ; Basic_Emoji ; full moon face # E1.0 [2] (🌝..🌞)
|
||||
1F31F..1F320 ; Basic_Emoji ; glowing star # E0.6 [2] (🌟..🌠)
|
||||
1F32D..1F32F ; Basic_Emoji ; hot dog # E1.0 [3] (🌭..🌯)
|
||||
1F330..1F331 ; Basic_Emoji ; chestnut # E0.6 [2] (🌰..🌱)
|
||||
1F332..1F333 ; Basic_Emoji ; evergreen tree # E1.0 [2] (🌲..🌳)
|
||||
1F334..1F335 ; Basic_Emoji ; palm tree # E0.6 [2] (🌴..🌵)
|
||||
1F337..1F34A ; Basic_Emoji ; tulip # E0.6 [20] (🌷..🍊)
|
||||
1F34B ; Basic_Emoji ; lemon # E1.0 [1] (🍋)
|
||||
1F34C..1F34F ; Basic_Emoji ; banana..green apple # E0.6 [4] (🍌..🍏)
|
||||
1F34C..1F34F ; Basic_Emoji ; banana # E0.6 [4] (🍌..🍏)
|
||||
1F350 ; Basic_Emoji ; pear # E1.0 [1] (🍐)
|
||||
1F351..1F37B ; Basic_Emoji ; peach..clinking beer mugs # E0.6 [43] (🍑..🍻)
|
||||
1F351..1F37B ; Basic_Emoji ; peach # E0.6 [43] (🍑..🍻)
|
||||
1F37C ; Basic_Emoji ; baby bottle # E1.0 [1] (🍼)
|
||||
1F37E..1F37F ; Basic_Emoji ; bottle with popping cork..popcorn # E1.0 [2] (🍾..🍿)
|
||||
1F380..1F393 ; Basic_Emoji ; ribbon..graduation cap # E0.6 [20] (🎀..🎓)
|
||||
1F3A0..1F3C4 ; Basic_Emoji ; carousel horse..person surfing # E0.6 [37] (🎠..🏄)
|
||||
1F37E..1F37F ; Basic_Emoji ; bottle with popping cork # E1.0 [2] (🍾..🍿)
|
||||
1F380..1F393 ; Basic_Emoji ; ribbon # E0.6 [20] (🎀..🎓)
|
||||
1F3A0..1F3C4 ; Basic_Emoji ; carousel horse # E0.6 [37] (🎠..🏄)
|
||||
1F3C5 ; Basic_Emoji ; sports medal # E1.0 [1] (🏅)
|
||||
1F3C6 ; Basic_Emoji ; trophy # E0.6 [1] (🏆)
|
||||
1F3C7 ; Basic_Emoji ; horse racing # E1.0 [1] (🏇)
|
||||
1F3C8 ; Basic_Emoji ; american football # E0.6 [1] (🏈)
|
||||
1F3C9 ; Basic_Emoji ; rugby football # E1.0 [1] (🏉)
|
||||
1F3CA ; Basic_Emoji ; person swimming # E0.6 [1] (🏊)
|
||||
1F3CF..1F3D3 ; Basic_Emoji ; cricket game..ping pong # E1.0 [5] (🏏..🏓)
|
||||
1F3E0..1F3E3 ; Basic_Emoji ; house..Japanese post office # E0.6 [4] (🏠..🏣)
|
||||
1F3CF..1F3D3 ; Basic_Emoji ; cricket game # E1.0 [5] (🏏..🏓)
|
||||
1F3E0..1F3E3 ; Basic_Emoji ; house # E0.6 [4] (🏠..🏣)
|
||||
1F3E4 ; Basic_Emoji ; post office # E1.0 [1] (🏤)
|
||||
1F3E5..1F3F0 ; Basic_Emoji ; hospital..castle # E0.6 [12] (🏥..🏰)
|
||||
1F3E5..1F3F0 ; Basic_Emoji ; hospital # E0.6 [12] (🏥..🏰)
|
||||
1F3F4 ; Basic_Emoji ; black flag # E1.0 [1] (🏴)
|
||||
1F3F8..1F407 ; Basic_Emoji ; badminton..rabbit # E1.0 [16] (🏸..🐇)
|
||||
1F3F8..1F407 ; Basic_Emoji ; badminton # E1.0 [16] (🏸..🐇)
|
||||
1F408 ; Basic_Emoji ; cat # E0.7 [1] (🐈)
|
||||
1F409..1F40B ; Basic_Emoji ; dragon..whale # E1.0 [3] (🐉..🐋)
|
||||
1F40C..1F40E ; Basic_Emoji ; snail..horse # E0.6 [3] (🐌..🐎)
|
||||
1F40F..1F410 ; Basic_Emoji ; ram..goat # E1.0 [2] (🐏..🐐)
|
||||
1F411..1F412 ; Basic_Emoji ; ewe..monkey # E0.6 [2] (🐑..🐒)
|
||||
1F409..1F40B ; Basic_Emoji ; dragon # E1.0 [3] (🐉..🐋)
|
||||
1F40C..1F40E ; Basic_Emoji ; snail # E0.6 [3] (🐌..🐎)
|
||||
1F40F..1F410 ; Basic_Emoji ; ram # E1.0 [2] (🐏..🐐)
|
||||
1F411..1F412 ; Basic_Emoji ; ewe # E0.6 [2] (🐑..🐒)
|
||||
1F413 ; Basic_Emoji ; rooster # E1.0 [1] (🐓)
|
||||
1F414 ; Basic_Emoji ; chicken # E0.6 [1] (🐔)
|
||||
1F415 ; Basic_Emoji ; dog # E0.7 [1] (🐕)
|
||||
1F416 ; Basic_Emoji ; pig # E1.0 [1] (🐖)
|
||||
1F417..1F429 ; Basic_Emoji ; boar..poodle # E0.6 [19] (🐗..🐩)
|
||||
1F417..1F429 ; Basic_Emoji ; boar # E0.6 [19] (🐗..🐩)
|
||||
1F42A ; Basic_Emoji ; camel # E1.0 [1] (🐪)
|
||||
1F42B..1F43E ; Basic_Emoji ; two-hump camel..paw prints # E0.6 [20] (🐫..🐾)
|
||||
1F42B..1F43E ; Basic_Emoji ; two-hump camel # E0.6 [20] (🐫..🐾)
|
||||
1F440 ; Basic_Emoji ; eyes # E0.6 [1] (👀)
|
||||
1F442..1F464 ; Basic_Emoji ; ear..bust in silhouette # E0.6 [35] (👂..👤)
|
||||
1F442..1F464 ; Basic_Emoji ; ear # E0.6 [35] (👂..👤)
|
||||
1F465 ; Basic_Emoji ; busts in silhouette # E1.0 [1] (👥)
|
||||
1F466..1F46B ; Basic_Emoji ; boy..woman and man holding hands # E0.6 [6] (👦..👫)
|
||||
1F46C..1F46D ; Basic_Emoji ; men holding hands..women holding hands # E1.0 [2] (👬..👭)
|
||||
1F46E..1F4AC ; Basic_Emoji ; police officer..speech balloon # E0.6 [63] (👮..💬)
|
||||
1F466..1F46B ; Basic_Emoji ; boy # E0.6 [6] (👦..👫)
|
||||
1F46C..1F46D ; Basic_Emoji ; men holding hands # E1.0 [2] (👬..👭)
|
||||
1F46E..1F4AC ; Basic_Emoji ; police officer # E0.6 [63] (👮..💬)
|
||||
1F4AD ; Basic_Emoji ; thought balloon # E1.0 [1] (💭)
|
||||
1F4AE..1F4B5 ; Basic_Emoji ; white flower..dollar banknote # E0.6 [8] (💮..💵)
|
||||
1F4B6..1F4B7 ; Basic_Emoji ; euro banknote..pound banknote # E1.0 [2] (💶..💷)
|
||||
1F4B8..1F4EB ; Basic_Emoji ; money with wings..closed mailbox with raised flag # E0.6 [52] (💸..📫)
|
||||
1F4EC..1F4ED ; Basic_Emoji ; open mailbox with raised flag..open mailbox with lowered flag # E0.7 [2] (📬..📭)
|
||||
1F4AE..1F4B5 ; Basic_Emoji ; white flower # E0.6 [8] (💮..💵)
|
||||
1F4B6..1F4B7 ; Basic_Emoji ; euro banknote # E1.0 [2] (💶..💷)
|
||||
1F4B8..1F4EB ; Basic_Emoji ; money with wings # E0.6 [52] (💸..📫)
|
||||
1F4EC..1F4ED ; Basic_Emoji ; open mailbox with raised flag # E0.7 [2] (📬..📭)
|
||||
1F4EE ; Basic_Emoji ; postbox # E0.6 [1] (📮)
|
||||
1F4EF ; Basic_Emoji ; postal horn # E1.0 [1] (📯)
|
||||
1F4F0..1F4F4 ; Basic_Emoji ; newspaper..mobile phone off # E0.6 [5] (📰..📴)
|
||||
1F4F0..1F4F4 ; Basic_Emoji ; newspaper # E0.6 [5] (📰..📴)
|
||||
1F4F5 ; Basic_Emoji ; no mobile phones # E1.0 [1] (📵)
|
||||
1F4F6..1F4F7 ; Basic_Emoji ; antenna bars..camera # E0.6 [2] (📶..📷)
|
||||
1F4F6..1F4F7 ; Basic_Emoji ; antenna bars # E0.6 [2] (📶..📷)
|
||||
1F4F8 ; Basic_Emoji ; camera with flash # E1.0 [1] (📸)
|
||||
1F4F9..1F4FC ; Basic_Emoji ; video camera..videocassette # E0.6 [4] (📹..📼)
|
||||
1F4FF..1F502 ; Basic_Emoji ; prayer beads..repeat single button # E1.0 [4] (📿..🔂)
|
||||
1F4F9..1F4FC ; Basic_Emoji ; video camera # E0.6 [4] (📹..📼)
|
||||
1F4FF..1F502 ; Basic_Emoji ; prayer beads # E1.0 [4] (📿..🔂)
|
||||
1F503 ; Basic_Emoji ; clockwise vertical arrows # E0.6 [1] (🔃)
|
||||
1F504..1F507 ; Basic_Emoji ; counterclockwise arrows button..muted speaker # E1.0 [4] (🔄..🔇)
|
||||
1F504..1F507 ; Basic_Emoji ; counterclockwise arrows button # E1.0 [4] (🔄..🔇)
|
||||
1F508 ; Basic_Emoji ; speaker low volume # E0.7 [1] (🔈)
|
||||
1F509 ; Basic_Emoji ; speaker medium volume # E1.0 [1] (🔉)
|
||||
1F50A..1F514 ; Basic_Emoji ; speaker high volume..bell # E0.6 [11] (🔊..🔔)
|
||||
1F50A..1F514 ; Basic_Emoji ; speaker high volume # E0.6 [11] (🔊..🔔)
|
||||
1F515 ; Basic_Emoji ; bell with slash # E1.0 [1] (🔕)
|
||||
1F516..1F52B ; Basic_Emoji ; bookmark..water pistol # E0.6 [22] (🔖..🔫)
|
||||
1F52C..1F52D ; Basic_Emoji ; microscope..telescope # E1.0 [2] (🔬..🔭)
|
||||
1F52E..1F53D ; Basic_Emoji ; crystal ball..downwards button # E0.6 [16] (🔮..🔽)
|
||||
1F54B..1F54E ; Basic_Emoji ; kaaba..menorah # E1.0 [4] (🕋..🕎)
|
||||
1F550..1F55B ; Basic_Emoji ; one o’clock..twelve o’clock # E0.6 [12] (🕐..🕛)
|
||||
1F55C..1F567 ; Basic_Emoji ; one-thirty..twelve-thirty # E0.7 [12] (🕜..🕧)
|
||||
1F516..1F52B ; Basic_Emoji ; bookmark # E0.6 [22] (🔖..🔫)
|
||||
1F52C..1F52D ; Basic_Emoji ; microscope # E1.0 [2] (🔬..🔭)
|
||||
1F52E..1F53D ; Basic_Emoji ; crystal ball # E0.6 [16] (🔮..🔽)
|
||||
1F54B..1F54E ; Basic_Emoji ; kaaba # E1.0 [4] (🕋..🕎)
|
||||
1F550..1F55B ; Basic_Emoji ; one o’clock # E0.6 [12] (🕐..🕛)
|
||||
1F55C..1F567 ; Basic_Emoji ; one-thirty # E0.7 [12] (🕜..🕧)
|
||||
1F57A ; Basic_Emoji ; man dancing # E3.0 [1] (🕺)
|
||||
1F595..1F596 ; Basic_Emoji ; middle finger..vulcan salute # E1.0 [2] (🖕..🖖)
|
||||
1F595..1F596 ; Basic_Emoji ; middle finger # E1.0 [2] (🖕..🖖)
|
||||
1F5A4 ; Basic_Emoji ; black heart # E3.0 [1] (🖤)
|
||||
1F5FB..1F5FF ; Basic_Emoji ; mount fuji..moai # E0.6 [5] (🗻..🗿)
|
||||
1F5FB..1F5FF ; Basic_Emoji ; mount fuji # E0.6 [5] (🗻..🗿)
|
||||
1F600 ; Basic_Emoji ; grinning face # E1.0 [1] (😀)
|
||||
1F601..1F606 ; Basic_Emoji ; beaming face with smiling eyes..grinning squinting face # E0.6 [6] (😁..😆)
|
||||
1F607..1F608 ; Basic_Emoji ; smiling face with halo..smiling face with horns # E1.0 [2] (😇..😈)
|
||||
1F609..1F60D ; Basic_Emoji ; winking face..smiling face with heart-eyes # E0.6 [5] (😉..😍)
|
||||
1F601..1F606 ; Basic_Emoji ; beaming face with smiling eyes # E0.6 [6] (😁..😆)
|
||||
1F607..1F608 ; Basic_Emoji ; smiling face with halo # E1.0 [2] (😇..😈)
|
||||
1F609..1F60D ; Basic_Emoji ; winking face # E0.6 [5] (😉..😍)
|
||||
1F60E ; Basic_Emoji ; smiling face with sunglasses # E1.0 [1] (😎)
|
||||
1F60F ; Basic_Emoji ; smirking face # E0.6 [1] (😏)
|
||||
1F610 ; Basic_Emoji ; neutral face # E0.7 [1] (😐)
|
||||
1F611 ; Basic_Emoji ; expressionless face # E1.0 [1] (😑)
|
||||
1F612..1F614 ; Basic_Emoji ; unamused face..pensive face # E0.6 [3] (😒..😔)
|
||||
1F612..1F614 ; Basic_Emoji ; unamused face # E0.6 [3] (😒..😔)
|
||||
1F615 ; Basic_Emoji ; confused face # E1.0 [1] (😕)
|
||||
1F616 ; Basic_Emoji ; confounded face # E0.6 [1] (😖)
|
||||
1F617 ; Basic_Emoji ; kissing face # E1.0 [1] (😗)
|
||||
|
|
@ -184,142 +183,132 @@
|
|||
1F619 ; Basic_Emoji ; kissing face with smiling eyes # E1.0 [1] (😙)
|
||||
1F61A ; Basic_Emoji ; kissing face with closed eyes # E0.6 [1] (😚)
|
||||
1F61B ; Basic_Emoji ; face with tongue # E1.0 [1] (😛)
|
||||
1F61C..1F61E ; Basic_Emoji ; winking face with tongue..disappointed face # E0.6 [3] (😜..😞)
|
||||
1F61C..1F61E ; Basic_Emoji ; winking face with tongue # E0.6 [3] (😜..😞)
|
||||
1F61F ; Basic_Emoji ; worried face # E1.0 [1] (😟)
|
||||
1F620..1F625 ; Basic_Emoji ; angry face..sad but relieved face # E0.6 [6] (😠..😥)
|
||||
1F626..1F627 ; Basic_Emoji ; frowning face with open mouth..anguished face # E1.0 [2] (😦..😧)
|
||||
1F628..1F62B ; Basic_Emoji ; fearful face..tired face # E0.6 [4] (😨..😫)
|
||||
1F620..1F625 ; Basic_Emoji ; angry face # E0.6 [6] (😠..😥)
|
||||
1F626..1F627 ; Basic_Emoji ; frowning face with open mouth # E1.0 [2] (😦..😧)
|
||||
1F628..1F62B ; Basic_Emoji ; fearful face # E0.6 [4] (😨..😫)
|
||||
1F62C ; Basic_Emoji ; grimacing face # E1.0 [1] (😬)
|
||||
1F62D ; Basic_Emoji ; loudly crying face # E0.6 [1] (😭)
|
||||
1F62E..1F62F ; Basic_Emoji ; face with open mouth..hushed face # E1.0 [2] (😮..😯)
|
||||
1F630..1F633 ; Basic_Emoji ; anxious face with sweat..flushed face # E0.6 [4] (😰..😳)
|
||||
1F62E..1F62F ; Basic_Emoji ; face with open mouth # E1.0 [2] (😮..😯)
|
||||
1F630..1F633 ; Basic_Emoji ; anxious face with sweat # E0.6 [4] (😰..😳)
|
||||
1F634 ; Basic_Emoji ; sleeping face # E1.0 [1] (😴)
|
||||
1F635 ; Basic_Emoji ; face with crossed-out eyes # E0.6 [1] (😵)
|
||||
1F636 ; Basic_Emoji ; face without mouth # E1.0 [1] (😶)
|
||||
1F637..1F640 ; Basic_Emoji ; face with medical mask..weary cat # E0.6 [10] (😷..🙀)
|
||||
1F641..1F644 ; Basic_Emoji ; slightly frowning face..face with rolling eyes # E1.0 [4] (🙁..🙄)
|
||||
1F645..1F64F ; Basic_Emoji ; person gesturing NO..folded hands # E0.6 [11] (🙅..🙏)
|
||||
1F637..1F640 ; Basic_Emoji ; face with medical mask # E0.6 [10] (😷..🙀)
|
||||
1F641..1F644 ; Basic_Emoji ; slightly frowning face # E1.0 [4] (🙁..🙄)
|
||||
1F645..1F64F ; Basic_Emoji ; person gesturing NO # E0.6 [11] (🙅..🙏)
|
||||
1F680 ; Basic_Emoji ; rocket # E0.6 [1] (🚀)
|
||||
1F681..1F682 ; Basic_Emoji ; helicopter..locomotive # E1.0 [2] (🚁..🚂)
|
||||
1F683..1F685 ; Basic_Emoji ; railway car..bullet train # E0.6 [3] (🚃..🚅)
|
||||
1F681..1F682 ; Basic_Emoji ; helicopter # E1.0 [2] (🚁..🚂)
|
||||
1F683..1F685 ; Basic_Emoji ; railway car # E0.6 [3] (🚃..🚅)
|
||||
1F686 ; Basic_Emoji ; train # E1.0 [1] (🚆)
|
||||
1F687 ; Basic_Emoji ; metro # E0.6 [1] (🚇)
|
||||
1F688 ; Basic_Emoji ; light rail # E1.0 [1] (🚈)
|
||||
1F689 ; Basic_Emoji ; station # E0.6 [1] (🚉)
|
||||
1F68A..1F68B ; Basic_Emoji ; tram..tram car # E1.0 [2] (🚊..🚋)
|
||||
1F68A..1F68B ; Basic_Emoji ; tram # E1.0 [2] (🚊..🚋)
|
||||
1F68C ; Basic_Emoji ; bus # E0.6 [1] (🚌)
|
||||
1F68D ; Basic_Emoji ; oncoming bus # E0.7 [1] (🚍)
|
||||
1F68E ; Basic_Emoji ; trolleybus # E1.0 [1] (🚎)
|
||||
1F68F ; Basic_Emoji ; bus stop # E0.6 [1] (🚏)
|
||||
1F690 ; Basic_Emoji ; minibus # E1.0 [1] (🚐)
|
||||
1F691..1F693 ; Basic_Emoji ; ambulance..police car # E0.6 [3] (🚑..🚓)
|
||||
1F691..1F693 ; Basic_Emoji ; ambulance # E0.6 [3] (🚑..🚓)
|
||||
1F694 ; Basic_Emoji ; oncoming police car # E0.7 [1] (🚔)
|
||||
1F695 ; Basic_Emoji ; taxi # E0.6 [1] (🚕)
|
||||
1F696 ; Basic_Emoji ; oncoming taxi # E1.0 [1] (🚖)
|
||||
1F697 ; Basic_Emoji ; automobile # E0.6 [1] (🚗)
|
||||
1F698 ; Basic_Emoji ; oncoming automobile # E0.7 [1] (🚘)
|
||||
1F699..1F69A ; Basic_Emoji ; sport utility vehicle..delivery truck # E0.6 [2] (🚙..🚚)
|
||||
1F69B..1F6A1 ; Basic_Emoji ; articulated lorry..aerial tramway # E1.0 [7] (🚛..🚡)
|
||||
1F699..1F69A ; Basic_Emoji ; sport utility vehicle # E0.6 [2] (🚙..🚚)
|
||||
1F69B..1F6A1 ; Basic_Emoji ; articulated lorry # E1.0 [7] (🚛..🚡)
|
||||
1F6A2 ; Basic_Emoji ; ship # E0.6 [1] (🚢)
|
||||
1F6A3 ; Basic_Emoji ; person rowing boat # E1.0 [1] (🚣)
|
||||
1F6A4..1F6A5 ; Basic_Emoji ; speedboat..horizontal traffic light # E0.6 [2] (🚤..🚥)
|
||||
1F6A4..1F6A5 ; Basic_Emoji ; speedboat # E0.6 [2] (🚤..🚥)
|
||||
1F6A6 ; Basic_Emoji ; vertical traffic light # E1.0 [1] (🚦)
|
||||
1F6A7..1F6AD ; Basic_Emoji ; construction..no smoking # E0.6 [7] (🚧..🚭)
|
||||
1F6AE..1F6B1 ; Basic_Emoji ; litter in bin sign..non-potable water # E1.0 [4] (🚮..🚱)
|
||||
1F6A7..1F6AD ; Basic_Emoji ; construction # E0.6 [7] (🚧..🚭)
|
||||
1F6AE..1F6B1 ; Basic_Emoji ; litter in bin sign # E1.0 [4] (🚮..🚱)
|
||||
1F6B2 ; Basic_Emoji ; bicycle # E0.6 [1] (🚲)
|
||||
1F6B3..1F6B5 ; Basic_Emoji ; no bicycles..person mountain biking # E1.0 [3] (🚳..🚵)
|
||||
1F6B3..1F6B5 ; Basic_Emoji ; no bicycles # E1.0 [3] (🚳..🚵)
|
||||
1F6B6 ; Basic_Emoji ; person walking # E0.6 [1] (🚶)
|
||||
1F6B7..1F6B8 ; Basic_Emoji ; no pedestrians..children crossing # E1.0 [2] (🚷..🚸)
|
||||
1F6B9..1F6BE ; Basic_Emoji ; men’s room..water closet # E0.6 [6] (🚹..🚾)
|
||||
1F6B7..1F6B8 ; Basic_Emoji ; no pedestrians # E1.0 [2] (🚷..🚸)
|
||||
1F6B9..1F6BE ; Basic_Emoji ; men’s room # E0.6 [6] (🚹..🚾)
|
||||
1F6BF ; Basic_Emoji ; shower # E1.0 [1] (🚿)
|
||||
1F6C0 ; Basic_Emoji ; person taking bath # E0.6 [1] (🛀)
|
||||
1F6C1..1F6C5 ; Basic_Emoji ; bathtub..left luggage # E1.0 [5] (🛁..🛅)
|
||||
1F6C1..1F6C5 ; Basic_Emoji ; bathtub # E1.0 [5] (🛁..🛅)
|
||||
1F6CC ; Basic_Emoji ; person in bed # E1.0 [1] (🛌)
|
||||
1F6D0 ; Basic_Emoji ; place of worship # E1.0 [1] (🛐)
|
||||
1F6D1..1F6D2 ; Basic_Emoji ; stop sign..shopping cart # E3.0 [2] (🛑..🛒)
|
||||
1F6D1..1F6D2 ; Basic_Emoji ; stop sign # E3.0 [2] (🛑..🛒)
|
||||
1F6D5 ; Basic_Emoji ; hindu temple # E12.0 [1] (🛕)
|
||||
1F6D6..1F6D7 ; Basic_Emoji ; hut..elevator # E13.0 [2] (🛖..🛗)
|
||||
1F6DC ; Basic_Emoji ; wireless # E15.0 [1] (🛜)
|
||||
1F6DD..1F6DF ; Basic_Emoji ; playground slide..ring buoy # E14.0 [3] (🛝..🛟)
|
||||
1F6EB..1F6EC ; Basic_Emoji ; airplane departure..airplane arrival # E1.0 [2] (🛫..🛬)
|
||||
1F6F4..1F6F6 ; Basic_Emoji ; kick scooter..canoe # E3.0 [3] (🛴..🛶)
|
||||
1F6F7..1F6F8 ; Basic_Emoji ; sled..flying saucer # E5.0 [2] (🛷..🛸)
|
||||
1F6D6..1F6D7 ; Basic_Emoji ; hut # E13.0 [2] (🛖..🛗)
|
||||
1F6DD..1F6DF ; Basic_Emoji ; playground slide # E14.0 [3] (🛝..🛟)
|
||||
1F6EB..1F6EC ; Basic_Emoji ; airplane departure # E1.0 [2] (🛫..🛬)
|
||||
1F6F4..1F6F6 ; Basic_Emoji ; kick scooter # E3.0 [3] (🛴..🛶)
|
||||
1F6F7..1F6F8 ; Basic_Emoji ; sled # E5.0 [2] (🛷..🛸)
|
||||
1F6F9 ; Basic_Emoji ; skateboard # E11.0 [1] (🛹)
|
||||
1F6FA ; Basic_Emoji ; auto rickshaw # E12.0 [1] (🛺)
|
||||
1F6FB..1F6FC ; Basic_Emoji ; pickup truck..roller skate # E13.0 [2] (🛻..🛼)
|
||||
1F7E0..1F7EB ; Basic_Emoji ; orange circle..brown square # E12.0 [12] (🟠..🟫)
|
||||
1F6FB..1F6FC ; Basic_Emoji ; pickup truck # E13.0 [2] (🛻..🛼)
|
||||
1F7E0..1F7EB ; Basic_Emoji ; orange circle # E12.0 [12] (🟠..🟫)
|
||||
1F7F0 ; Basic_Emoji ; heavy equals sign # E14.0 [1] (🟰)
|
||||
1F90C ; Basic_Emoji ; pinched fingers # E13.0 [1] (🤌)
|
||||
1F90D..1F90F ; Basic_Emoji ; white heart..pinching hand # E12.0 [3] (🤍..🤏)
|
||||
1F910..1F918 ; Basic_Emoji ; zipper-mouth face..sign of the horns # E1.0 [9] (🤐..🤘)
|
||||
1F919..1F91E ; Basic_Emoji ; call me hand..crossed fingers # E3.0 [6] (🤙..🤞)
|
||||
1F90D..1F90F ; Basic_Emoji ; white heart # E12.0 [3] (🤍..🤏)
|
||||
1F910..1F918 ; Basic_Emoji ; zipper-mouth face # E1.0 [9] (🤐..🤘)
|
||||
1F919..1F91E ; Basic_Emoji ; call me hand # E3.0 [6] (🤙..🤞)
|
||||
1F91F ; Basic_Emoji ; love-you gesture # E5.0 [1] (🤟)
|
||||
1F920..1F927 ; Basic_Emoji ; cowboy hat face..sneezing face # E3.0 [8] (🤠..🤧)
|
||||
1F928..1F92F ; Basic_Emoji ; face with raised eyebrow..exploding head # E5.0 [8] (🤨..🤯)
|
||||
1F920..1F927 ; Basic_Emoji ; cowboy hat face # E3.0 [8] (🤠..🤧)
|
||||
1F928..1F92F ; Basic_Emoji ; face with raised eyebrow # E5.0 [8] (🤨..🤯)
|
||||
1F930 ; Basic_Emoji ; pregnant woman # E3.0 [1] (🤰)
|
||||
1F931..1F932 ; Basic_Emoji ; breast-feeding..palms up together # E5.0 [2] (🤱..🤲)
|
||||
1F933..1F93A ; Basic_Emoji ; selfie..person fencing # E3.0 [8] (🤳..🤺)
|
||||
1F93C..1F93E ; Basic_Emoji ; people wrestling..person playing handball # E3.0 [3] (🤼..🤾)
|
||||
1F931..1F932 ; Basic_Emoji ; breast-feeding # E5.0 [2] (🤱..🤲)
|
||||
1F933..1F93A ; Basic_Emoji ; selfie # E3.0 [8] (🤳..🤺)
|
||||
1F93C..1F93E ; Basic_Emoji ; people wrestling # E3.0 [3] (🤼..🤾)
|
||||
1F93F ; Basic_Emoji ; diving mask # E12.0 [1] (🤿)
|
||||
1F940..1F945 ; Basic_Emoji ; wilted flower..goal net # E3.0 [6] (🥀..🥅)
|
||||
1F947..1F94B ; Basic_Emoji ; 1st place medal..martial arts uniform # E3.0 [5] (🥇..🥋)
|
||||
1F940..1F945 ; Basic_Emoji ; wilted flower # E3.0 [6] (🥀..🥅)
|
||||
1F947..1F94B ; Basic_Emoji ; 1st place medal # E3.0 [5] (🥇..🥋)
|
||||
1F94C ; Basic_Emoji ; curling stone # E5.0 [1] (🥌)
|
||||
1F94D..1F94F ; Basic_Emoji ; lacrosse..flying disc # E11.0 [3] (🥍..🥏)
|
||||
1F950..1F95E ; Basic_Emoji ; croissant..pancakes # E3.0 [15] (🥐..🥞)
|
||||
1F95F..1F96B ; Basic_Emoji ; dumpling..canned food # E5.0 [13] (🥟..🥫)
|
||||
1F96C..1F970 ; Basic_Emoji ; leafy green..smiling face with hearts # E11.0 [5] (🥬..🥰)
|
||||
1F94D..1F94F ; Basic_Emoji ; lacrosse # E11.0 [3] (🥍..🥏)
|
||||
1F950..1F95E ; Basic_Emoji ; croissant # E3.0 [15] (🥐..🥞)
|
||||
1F95F..1F96B ; Basic_Emoji ; dumpling # E5.0 [13] (🥟..🥫)
|
||||
1F96C..1F970 ; Basic_Emoji ; leafy green # E11.0 [5] (🥬..🥰)
|
||||
1F971 ; Basic_Emoji ; yawning face # E12.0 [1] (🥱)
|
||||
1F972 ; Basic_Emoji ; smiling face with tear # E13.0 [1] (🥲)
|
||||
1F973..1F976 ; Basic_Emoji ; partying face..cold face # E11.0 [4] (🥳..🥶)
|
||||
1F977..1F978 ; Basic_Emoji ; ninja..disguised face # E13.0 [2] (🥷..🥸)
|
||||
1F973..1F976 ; Basic_Emoji ; partying face # E11.0 [4] (🥳..🥶)
|
||||
1F977..1F978 ; Basic_Emoji ; ninja # E13.0 [2] (🥷..🥸)
|
||||
1F979 ; Basic_Emoji ; face holding back tears # E14.0 [1] (🥹)
|
||||
1F97A ; Basic_Emoji ; pleading face # E11.0 [1] (🥺)
|
||||
1F97B ; Basic_Emoji ; sari # E12.0 [1] (🥻)
|
||||
1F97C..1F97F ; Basic_Emoji ; lab coat..flat shoe # E11.0 [4] (🥼..🥿)
|
||||
1F980..1F984 ; Basic_Emoji ; crab..unicorn # E1.0 [5] (🦀..🦄)
|
||||
1F985..1F991 ; Basic_Emoji ; eagle..squid # E3.0 [13] (🦅..🦑)
|
||||
1F992..1F997 ; Basic_Emoji ; giraffe..cricket # E5.0 [6] (🦒..🦗)
|
||||
1F998..1F9A2 ; Basic_Emoji ; kangaroo..swan # E11.0 [11] (🦘..🦢)
|
||||
1F9A3..1F9A4 ; Basic_Emoji ; mammoth..dodo # E13.0 [2] (🦣..🦤)
|
||||
1F9A5..1F9AA ; Basic_Emoji ; sloth..oyster # E12.0 [6] (🦥..🦪)
|
||||
1F9AB..1F9AD ; Basic_Emoji ; beaver..seal # E13.0 [3] (🦫..🦭)
|
||||
1F9AE..1F9AF ; Basic_Emoji ; guide dog..white cane # E12.0 [2] (🦮..🦯)
|
||||
1F9B0..1F9B9 ; Basic_Emoji ; red hair..supervillain # E11.0 [10] (🦰..🦹)
|
||||
1F9BA..1F9BF ; Basic_Emoji ; safety vest..mechanical leg # E12.0 [6] (🦺..🦿)
|
||||
1F97C..1F97F ; Basic_Emoji ; lab coat # E11.0 [4] (🥼..🥿)
|
||||
1F980..1F984 ; Basic_Emoji ; crab # E1.0 [5] (🦀..🦄)
|
||||
1F985..1F991 ; Basic_Emoji ; eagle # E3.0 [13] (🦅..🦑)
|
||||
1F992..1F997 ; Basic_Emoji ; giraffe # E5.0 [6] (🦒..🦗)
|
||||
1F998..1F9A2 ; Basic_Emoji ; kangaroo # E11.0 [11] (🦘..🦢)
|
||||
1F9A3..1F9A4 ; Basic_Emoji ; mammoth # E13.0 [2] (🦣..🦤)
|
||||
1F9A5..1F9AA ; Basic_Emoji ; sloth # E12.0 [6] (🦥..🦪)
|
||||
1F9AB..1F9AD ; Basic_Emoji ; beaver # E13.0 [3] (🦫..🦭)
|
||||
1F9AE..1F9AF ; Basic_Emoji ; guide dog # E12.0 [2] (🦮..🦯)
|
||||
1F9B0..1F9B9 ; Basic_Emoji ; red hair # E11.0 [10] (🦰..🦹)
|
||||
1F9BA..1F9BF ; Basic_Emoji ; safety vest # E12.0 [6] (🦺..🦿)
|
||||
1F9C0 ; Basic_Emoji ; cheese wedge # E1.0 [1] (🧀)
|
||||
1F9C1..1F9C2 ; Basic_Emoji ; cupcake..salt # E11.0 [2] (🧁..🧂)
|
||||
1F9C3..1F9CA ; Basic_Emoji ; beverage box..ice # E12.0 [8] (🧃..🧊)
|
||||
1F9C1..1F9C2 ; Basic_Emoji ; cupcake # E11.0 [2] (🧁..🧂)
|
||||
1F9C3..1F9CA ; Basic_Emoji ; beverage box # E12.0 [8] (🧃..🧊)
|
||||
1F9CB ; Basic_Emoji ; bubble tea # E13.0 [1] (🧋)
|
||||
1F9CC ; Basic_Emoji ; troll # E14.0 [1] (🧌)
|
||||
1F9CD..1F9CF ; Basic_Emoji ; person standing..deaf person # E12.0 [3] (🧍..🧏)
|
||||
1F9D0..1F9E6 ; Basic_Emoji ; face with monocle..socks # E5.0 [23] (🧐..🧦)
|
||||
1F9E7..1F9FF ; Basic_Emoji ; red envelope..nazar amulet # E11.0 [25] (🧧..🧿)
|
||||
1FA70..1FA73 ; Basic_Emoji ; ballet shoes..shorts # E12.0 [4] (🩰..🩳)
|
||||
1F9CD..1F9CF ; Basic_Emoji ; person standing # E12.0 [3] (🧍..🧏)
|
||||
1F9D0..1F9E6 ; Basic_Emoji ; face with monocle # E5.0 [23] (🧐..🧦)
|
||||
1F9E7..1F9FF ; Basic_Emoji ; red envelope # E11.0 [25] (🧧..🧿)
|
||||
1FA70..1FA73 ; Basic_Emoji ; ballet shoes # E12.0 [4] (🩰..🩳)
|
||||
1FA74 ; Basic_Emoji ; thong sandal # E13.0 [1] (🩴)
|
||||
1FA75..1FA77 ; Basic_Emoji ; light blue heart..pink heart # E15.0 [3] (🩵..🩷)
|
||||
1FA78..1FA7A ; Basic_Emoji ; drop of blood..stethoscope # E12.0 [3] (🩸..🩺)
|
||||
1FA7B..1FA7C ; Basic_Emoji ; x-ray..crutch # E14.0 [2] (🩻..🩼)
|
||||
1FA80..1FA82 ; Basic_Emoji ; yo-yo..parachute # E12.0 [3] (🪀..🪂)
|
||||
1FA83..1FA86 ; Basic_Emoji ; boomerang..nesting dolls # E13.0 [4] (🪃..🪆)
|
||||
1FA87..1FA88 ; Basic_Emoji ; maracas..flute # E15.0 [2] (🪇..🪈)
|
||||
1FA90..1FA95 ; Basic_Emoji ; ringed planet..banjo # E12.0 [6] (🪐..🪕)
|
||||
1FA96..1FAA8 ; Basic_Emoji ; military helmet..rock # E13.0 [19] (🪖..🪨)
|
||||
1FAA9..1FAAC ; Basic_Emoji ; mirror ball..hamsa # E14.0 [4] (🪩..🪬)
|
||||
1FAAD..1FAAF ; Basic_Emoji ; folding hand fan..khanda # E15.0 [3] (🪭..🪯)
|
||||
1FAB0..1FAB6 ; Basic_Emoji ; fly..feather # E13.0 [7] (🪰..🪶)
|
||||
1FAB7..1FABA ; Basic_Emoji ; lotus..nest with eggs # E14.0 [4] (🪷..🪺)
|
||||
1FABB..1FABD ; Basic_Emoji ; hyacinth..wing # E15.0 [3] (🪻..🪽)
|
||||
1FABF ; Basic_Emoji ; goose # E15.0 [1] (🪿)
|
||||
1FAC0..1FAC2 ; Basic_Emoji ; anatomical heart..people hugging # E13.0 [3] (🫀..🫂)
|
||||
1FAC3..1FAC5 ; Basic_Emoji ; pregnant man..person with crown # E14.0 [3] (🫃..🫅)
|
||||
1FACE..1FACF ; Basic_Emoji ; moose..donkey # E15.0 [2] (🫎..🫏)
|
||||
1FAD0..1FAD6 ; Basic_Emoji ; blueberries..teapot # E13.0 [7] (🫐..🫖)
|
||||
1FAD7..1FAD9 ; Basic_Emoji ; pouring liquid..jar # E14.0 [3] (🫗..🫙)
|
||||
1FADA..1FADB ; Basic_Emoji ; ginger root..pea pod # E15.0 [2] (🫚..🫛)
|
||||
1FAE0..1FAE7 ; Basic_Emoji ; melting face..bubbles # E14.0 [8] (🫠..🫧)
|
||||
1FAE8 ; Basic_Emoji ; shaking face # E15.0 [1] (🫨)
|
||||
1FAF0..1FAF6 ; Basic_Emoji ; hand with index finger and thumb crossed..heart hands # E14.0 [7] (🫰..🫶)
|
||||
1FAF7..1FAF8 ; Basic_Emoji ; leftwards pushing hand..rightwards pushing hand # E15.0 [2] (🫷..🫸)
|
||||
1FA78..1FA7A ; Basic_Emoji ; drop of blood # E12.0 [3] (🩸..🩺)
|
||||
1FA7B..1FA7C ; Basic_Emoji ; x-ray # E14.0 [2] (🩻..🩼)
|
||||
1FA80..1FA82 ; Basic_Emoji ; yo-yo # E12.0 [3] (🪀..🪂)
|
||||
1FA83..1FA86 ; Basic_Emoji ; boomerang # E13.0 [4] (🪃..🪆)
|
||||
1FA90..1FA95 ; Basic_Emoji ; ringed planet # E12.0 [6] (🪐..🪕)
|
||||
1FA96..1FAA8 ; Basic_Emoji ; military helmet # E13.0 [19] (🪖..🪨)
|
||||
1FAA9..1FAAC ; Basic_Emoji ; mirror ball # E14.0 [4] (🪩..🪬)
|
||||
1FAB0..1FAB6 ; Basic_Emoji ; fly # E13.0 [7] (🪰..🪶)
|
||||
1FAB7..1FABA ; Basic_Emoji ; lotus # E14.0 [4] (🪷..🪺)
|
||||
1FAC0..1FAC2 ; Basic_Emoji ; anatomical heart # E13.0 [3] (🫀..🫂)
|
||||
1FAC3..1FAC5 ; Basic_Emoji ; pregnant man # E14.0 [3] (🫃..🫅)
|
||||
1FAD0..1FAD6 ; Basic_Emoji ; blueberries # E13.0 [7] (🫐..🫖)
|
||||
1FAD7..1FAD9 ; Basic_Emoji ; pouring liquid # E14.0 [3] (🫗..🫙)
|
||||
1FAE0..1FAE7 ; Basic_Emoji ; melting face # E14.0 [8] (🫠..🫧)
|
||||
1FAF0..1FAF6 ; Basic_Emoji ; hand with index finger and thumb crossed # E14.0 [7] (🫰..🫶)
|
||||
00A9 FE0F ; Basic_Emoji ; copyright # E0.6 [1] (©️)
|
||||
00AE FE0F ; Basic_Emoji ; registered # E0.6 [1] (®️)
|
||||
203C FE0F ; Basic_Emoji ; double exclamation mark # E0.6 [1] (‼️)
|
||||
|
|
@ -528,13 +517,12 @@
|
|||
1F6F0 FE0F ; Basic_Emoji ; satellite # E0.7 [1] (🛰️)
|
||||
1F6F3 FE0F ; Basic_Emoji ; passenger ship # E0.7 [1] (🛳️)
|
||||
|
||||
# Total elements: 1386
|
||||
# Total elements: 1366
|
||||
|
||||
# ================================================
|
||||
|
||||
# Emoji_Keycap_Sequence
|
||||
|
||||
|
||||
0023 FE0F 20E3; Emoji_Keycap_Sequence ; keycap: \x{23} # E0.6 [1] (#️⃣)
|
||||
002A FE0F 20E3; Emoji_Keycap_Sequence ; keycap: * # E2.0 [1] (*️⃣)
|
||||
0030 FE0F 20E3; Emoji_Keycap_Sequence ; keycap: 0 # E0.6 [1] (0️⃣)
|
||||
|
|
@ -555,7 +543,6 @@
|
|||
# RGI_Emoji_Flag_Sequence: This list does not include deprecated or macroregion flags, except for UN and EU.
|
||||
# See Annex B of TR51 for more information.
|
||||
|
||||
|
||||
1F1E6 1F1E8 ; RGI_Emoji_Flag_Sequence ; flag: Ascension Island # E2.0 [1] (🇦🇨)
|
||||
1F1E6 1F1E9 ; RGI_Emoji_Flag_Sequence ; flag: Andorra # E2.0 [1] (🇦🇩)
|
||||
1F1E6 1F1EA ; RGI_Emoji_Flag_Sequence ; flag: United Arab Emirates # E2.0 [1] (🇦🇪)
|
||||
|
|
@ -821,7 +808,6 @@
|
|||
|
||||
# RGI_Emoji_Tag_Sequence: See Annex C of TR51 for more information.
|
||||
|
||||
|
||||
1F3F4 E0067 E0062 E0065 E006E E0067 E007F; RGI_Emoji_Tag_Sequence; flag: England # E5.0 [1] (🏴)
|
||||
1F3F4 E0067 E0062 E0073 E0063 E0074 E007F; RGI_Emoji_Tag_Sequence; flag: Scotland # E5.0 [1] (🏴)
|
||||
1F3F4 E0067 E0062 E0077 E006C E0073 E007F; RGI_Emoji_Tag_Sequence; flag: Wales # E5.0 [1] (🏴)
|
||||
|
|
@ -832,7 +818,6 @@
|
|||
|
||||
# RGI_Emoji_Modifier_Sequence
|
||||
|
||||
|
||||
261D 1F3FB ; RGI_Emoji_Modifier_Sequence ; index pointing up: light skin tone # E1.0 [1] (☝🏻)
|
||||
261D 1F3FC ; RGI_Emoji_Modifier_Sequence ; index pointing up: medium-light skin tone # E1.0 [1] (☝🏼)
|
||||
261D 1F3FD ; RGI_Emoji_Modifier_Sequence ; index pointing up: medium skin tone # E1.0 [1] (☝🏽)
|
||||
|
|
@ -1238,11 +1223,11 @@
|
|||
1F91C 1F3FD ; RGI_Emoji_Modifier_Sequence ; right-facing fist: medium skin tone # E3.0 [1] (🤜🏽)
|
||||
1F91C 1F3FE ; RGI_Emoji_Modifier_Sequence ; right-facing fist: medium-dark skin tone # E3.0 [1] (🤜🏾)
|
||||
1F91C 1F3FF ; RGI_Emoji_Modifier_Sequence ; right-facing fist: dark skin tone # E3.0 [1] (🤜🏿)
|
||||
1F91D 1F3FB ; RGI_Emoji_Modifier_Sequence ; handshake: light skin tone # E14.0 [1] (🤝🏻)
|
||||
1F91D 1F3FC ; RGI_Emoji_Modifier_Sequence ; handshake: medium-light skin tone # E14.0 [1] (🤝🏼)
|
||||
1F91D 1F3FD ; RGI_Emoji_Modifier_Sequence ; handshake: medium skin tone # E14.0 [1] (🤝🏽)
|
||||
1F91D 1F3FE ; RGI_Emoji_Modifier_Sequence ; handshake: medium-dark skin tone # E14.0 [1] (🤝🏾)
|
||||
1F91D 1F3FF ; RGI_Emoji_Modifier_Sequence ; handshake: dark skin tone # E14.0 [1] (🤝🏿)
|
||||
1F91D 1F3FB ; RGI_Emoji_Modifier_Sequence ; handshake: light skin tone # E3.0 [1] (🤝🏻)
|
||||
1F91D 1F3FC ; RGI_Emoji_Modifier_Sequence ; handshake: medium-light skin tone # E3.0 [1] (🤝🏼)
|
||||
1F91D 1F3FD ; RGI_Emoji_Modifier_Sequence ; handshake: medium skin tone # E3.0 [1] (🤝🏽)
|
||||
1F91D 1F3FE ; RGI_Emoji_Modifier_Sequence ; handshake: medium-dark skin tone # E3.0 [1] (🤝🏾)
|
||||
1F91D 1F3FF ; RGI_Emoji_Modifier_Sequence ; handshake: dark skin tone # E3.0 [1] (🤝🏿)
|
||||
1F91E 1F3FB ; RGI_Emoji_Modifier_Sequence ; crossed fingers: light skin tone # E3.0 [1] (🤞🏻)
|
||||
1F91E 1F3FC ; RGI_Emoji_Modifier_Sequence ; crossed fingers: medium-light skin tone # E3.0 [1] (🤞🏼)
|
||||
1F91E 1F3FD ; RGI_Emoji_Modifier_Sequence ; crossed fingers: medium skin tone # E3.0 [1] (🤞🏽)
|
||||
|
|
@ -1478,17 +1463,7 @@
|
|||
1FAF6 1F3FD ; RGI_Emoji_Modifier_Sequence ; heart hands: medium skin tone # E14.0 [1] (🫶🏽)
|
||||
1FAF6 1F3FE ; RGI_Emoji_Modifier_Sequence ; heart hands: medium-dark skin tone # E14.0 [1] (🫶🏾)
|
||||
1FAF6 1F3FF ; RGI_Emoji_Modifier_Sequence ; heart hands: dark skin tone # E14.0 [1] (🫶🏿)
|
||||
1FAF7 1F3FB ; RGI_Emoji_Modifier_Sequence ; leftwards pushing hand: light skin tone # E15.0 [1] (🫷🏻)
|
||||
1FAF7 1F3FC ; RGI_Emoji_Modifier_Sequence ; leftwards pushing hand: medium-light skin tone # E15.0 [1] (🫷🏼)
|
||||
1FAF7 1F3FD ; RGI_Emoji_Modifier_Sequence ; leftwards pushing hand: medium skin tone # E15.0 [1] (🫷🏽)
|
||||
1FAF7 1F3FE ; RGI_Emoji_Modifier_Sequence ; leftwards pushing hand: medium-dark skin tone # E15.0 [1] (🫷🏾)
|
||||
1FAF7 1F3FF ; RGI_Emoji_Modifier_Sequence ; leftwards pushing hand: dark skin tone # E15.0 [1] (🫷🏿)
|
||||
1FAF8 1F3FB ; RGI_Emoji_Modifier_Sequence ; rightwards pushing hand: light skin tone # E15.0 [1] (🫸🏻)
|
||||
1FAF8 1F3FC ; RGI_Emoji_Modifier_Sequence ; rightwards pushing hand: medium-light skin tone # E15.0 [1] (🫸🏼)
|
||||
1FAF8 1F3FD ; RGI_Emoji_Modifier_Sequence ; rightwards pushing hand: medium skin tone # E15.0 [1] (🫸🏽)
|
||||
1FAF8 1F3FE ; RGI_Emoji_Modifier_Sequence ; rightwards pushing hand: medium-dark skin tone # E15.0 [1] (🫸🏾)
|
||||
1FAF8 1F3FF ; RGI_Emoji_Modifier_Sequence ; rightwards pushing hand: dark skin tone # E15.0 [1] (🫸🏿)
|
||||
|
||||
# Total elements: 655
|
||||
# Total elements: 645
|
||||
|
||||
#EOF
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,13 +1,13 @@
|
|||
# emoji-zwj-sequences.txt
|
||||
# Date: 2022-05-06, 16:14:52 GMT
|
||||
# © 2022 Unicode®, Inc.
|
||||
# Date: 2021-06-08, 05:19:16 GMT
|
||||
# © 2021 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
|
||||
# For terms of use, see http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
# Emoji ZWJ Sequences for UTS #51
|
||||
# Version: 15.0
|
||||
# Version: 14.0
|
||||
#
|
||||
# For documentation and usage, see https://www.unicode.org/reports/tr51
|
||||
# For documentation and usage, see http://www.unicode.org/reports/tr51
|
||||
#
|
||||
# Format:
|
||||
# code_point(s) ; type_field ; description # comments
|
||||
|
|
@ -1398,7 +1398,6 @@
|
|||
1F3F4 200D 2620 FE0F ; RGI_Emoji_ZWJ_Sequence ; pirate flag # E11.0 [1] (🏴☠️)
|
||||
1F408 200D 2B1B ; RGI_Emoji_ZWJ_Sequence ; black cat # E13.0 [1] (🐈⬛)
|
||||
1F415 200D 1F9BA ; RGI_Emoji_ZWJ_Sequence ; service dog # E12.0 [1] (🐕🦺)
|
||||
1F426 200D 2B1B ; RGI_Emoji_ZWJ_Sequence ; black bird # E15.0 [1] (🐦⬛)
|
||||
1F43B 200D 2744 FE0F ; RGI_Emoji_ZWJ_Sequence ; polar bear # E13.0 [1] (🐻❄️)
|
||||
1F441 FE0F 200D 1F5E8 FE0F ; RGI_Emoji_ZWJ_Sequence ; eye in speech bubble # E2.0 [1] (👁️🗨️)
|
||||
1F62E 200D 1F4A8 ; RGI_Emoji_ZWJ_Sequence ; face exhaling # E13.1 [1] (😮💨)
|
||||
|
|
@ -1406,6 +1405,6 @@
|
|||
1F636 200D 1F32B FE0F ; RGI_Emoji_ZWJ_Sequence ; face in clouds # E13.1 [1] (😶🌫️)
|
||||
1F9D1 200D 1F384 ; RGI_Emoji_ZWJ_Sequence ; mx claus # E13.0 [1] (🧑🎄)
|
||||
|
||||
# Total elements: 14
|
||||
# Total elements: 13
|
||||
|
||||
#EOF
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ END {
|
|||
print " (nconc (char-table-range composition-function-table (car elt))"
|
||||
print " (list (vector (cdr elt)"
|
||||
print " 0"
|
||||
print " #'compose-gstring-for-graphic)))))"
|
||||
print " 'compose-gstring-for-graphic)))))"
|
||||
|
||||
print ";; The following two blocks are derived by hand from emoji-sequences.txt"
|
||||
print ";; FIXME: add support for Emoji_Keycap_Sequence once we learn how to respect FE0F/VS-16"
|
||||
|
|
@ -126,7 +126,7 @@ END {
|
|||
print " (nconc (char-table-range composition-function-table '(#x1F1E6 . #x1F1FF))"
|
||||
print " (list (vector \"[\\U0001F1E6-\\U0001F1FF][\\U0001F1E6-\\U0001F1FF]\""
|
||||
print " 0"
|
||||
print " #'compose-gstring-for-graphic))))"
|
||||
print " 'compose-gstring-for-graphic))))"
|
||||
|
||||
print ";; UK Flags"
|
||||
print "(set-char-table-range composition-function-table"
|
||||
|
|
@ -134,7 +134,7 @@ END {
|
|||
print " (nconc (char-table-range composition-function-table #x1F3F4)"
|
||||
print " (list (vector \"\\U0001F3F4\\U000E0067\\U000E0062\\\\(?:\\U000E0065\\U000E006E\\U000E0067\\\\|\\U000E0073\\U000E0063\\U000E0074\\\\|\\U000E0077\\U000E006C\\U000E0073\\\\)\\U000E007F\""
|
||||
print " 0"
|
||||
print " #'compose-gstring-for-graphic))))"
|
||||
print " 'compose-gstring-for-graphic))))"
|
||||
|
||||
printf "\n(provide 'emoji-zwj)"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -89,7 +89,6 @@
|
|||
;; PROPn: string representing the nth property value
|
||||
|
||||
(eval-when-compile (require 'cl-lib))
|
||||
(require 'generate-lisp-file)
|
||||
|
||||
(defvar unidata-list nil)
|
||||
|
||||
|
|
@ -210,15 +209,9 @@ Property value is one of the following symbols:
|
|||
;; The assignment of default values to blocks of code points
|
||||
;; follows the file DerivedBidiClass.txt from the Unicode
|
||||
;; Character Database (UCD).
|
||||
(L (#x0600 #x07BF AL) (#x0860 #x08FF AL) (#xFB50 #xFDCF AL)
|
||||
(#xFDF0 #xFDFF AL) (#xFE70 #xFEFF AL) (#x10D00 #x10D3F AL)
|
||||
(#x10EC0 #x10EFF AL) (#x10F30 #x10F6F AL) (#x1EC70 #x1ECBF AL)
|
||||
(#x1ED00 #x1ED4F AL) (#x1EE00 #x1EEFF AL)
|
||||
(#x0590 #x05FF R) (#x07C0 #x085F R) (#xFB1D #xFB4F R)
|
||||
(#x10800 #x10CFF R) (#x10D40 #x10EBF R) (#x10F00 #x10F2F R)
|
||||
(#x10F70 #x10FFF R) (#x1E800 #x1EC6F R) (#x1ECC0 #x1ECFF R)
|
||||
(#x1ED50 #x1EDFF R) (#x1EF00 #x1EFFF R)
|
||||
(#x20A0 #x20CF ET))
|
||||
(L (#x0600 #x06FF AL) (#xFB50 #xFDFF AL) (#xFE70 #xFEFF AL)
|
||||
(#x0590 #x05FF R) (#x07C0 #x08FF R)
|
||||
(#xFB1D #xFB4F R) (#x10800 #x10FFF R) (#x1E800 #x1EFFF R))
|
||||
;; The order of elements must be in sync with bidi_type_t in
|
||||
;; src/dispextern.h.
|
||||
(L R EN AN BN B AL LRE LRO RLE RLO PDF LRI RLI FSI PDI
|
||||
|
|
@ -1083,8 +1076,8 @@ Property value is a symbol `o' (Open), `c' (Close), or `n' (None)."
|
|||
|
||||
(defun unidata--ensure-compiled (&rest funcs)
|
||||
(dolist (fun funcs)
|
||||
(unless (compiled-function-p (symbol-function fun))
|
||||
(byte-compile fun))))
|
||||
(or (byte-code-function-p (symbol-function fun))
|
||||
(byte-compile fun))))
|
||||
|
||||
(defun unidata-gen-table-name (prop index &rest _ignore)
|
||||
(let* ((table (unidata-gen-table-word-list prop index 'unidata-split-name))
|
||||
|
|
@ -1423,13 +1416,13 @@ Property value is a symbol `o' (Open), `c' (Close), or `n' (None)."
|
|||
(or elt (user-error "Unknown output file: %s" basename))
|
||||
(or noninteractive (message "Generating %s..." file))
|
||||
(with-temp-file file
|
||||
(generate-lisp-file-heading
|
||||
basename 'unidata-gen-file
|
||||
:commentary (concat copyright " \
|
||||
The sources for this file are found in the admin/unidata/ directory in \
|
||||
the Emacs sources. The Unicode data files are used under the \
|
||||
Unicode Terms of Use, as contained in the file copyright.html in that \
|
||||
same directory."))
|
||||
(insert ";;; " basename " -*- lexical-binding:t -*-
|
||||
;; " copyright "
|
||||
;; Generated from Unicode data files by unidata-gen.el.
|
||||
;; The sources for this file are found in the admin/unidata/ directory in
|
||||
;; the Emacs sources. The Unicode data files are used under the
|
||||
;; Unicode Terms of Use, as contained in the file copyright.html in that
|
||||
;; same directory.\n")
|
||||
(dolist (proplist (cdr elt))
|
||||
(let ((prop (unidata-prop-prop proplist))
|
||||
(index (unidata-prop-index proplist))
|
||||
|
|
@ -1447,189 +1440,38 @@ same directory."))
|
|||
(set-char-table-extra-slot table 3 describer))
|
||||
(insert (format "(define-char-code-property '%S\n %S\n %S)\n"
|
||||
prop table docstring))))
|
||||
(generate-lisp-file-trailer basename :inhibit-provide t))))
|
||||
(insert ";; Local Variables:\n"
|
||||
";; coding: utf-8\n"
|
||||
";; version-control: never\n"
|
||||
";; no-byte-compile: t\n"
|
||||
";; no-update-autoloads: t\n"
|
||||
";; End:\n\n"
|
||||
(format ";;; %s ends here\n" basename)))))
|
||||
(or noninteractive (message "Generating %s...done" file)))
|
||||
|
||||
(defun unidata-gen-charprop (&optional charprop-file text)
|
||||
(defun unidata-gen-charprop (&optional charprop-file)
|
||||
(or charprop-file (setq charprop-file (pop command-line-args-left)))
|
||||
(with-temp-file charprop-file
|
||||
(generate-lisp-file-heading
|
||||
charprop-file 'unidata-gen-charprop
|
||||
:commentary "See the admin/unidata/ directory in the Emacs sources.")
|
||||
(if text
|
||||
(insert text)
|
||||
(dolist (elt unidata-file-alist)
|
||||
(dolist (proplist (cdr elt))
|
||||
(insert (format "(define-char-code-property '%S %S\n %S)\n"
|
||||
(unidata-prop-prop proplist) (car elt)
|
||||
(unidata-prop-docstring proplist))))))
|
||||
(insert ";; Automatically generated by unidata-gen.el."
|
||||
" -*- lexical-binding: t -*-\n"
|
||||
";; See the admin/unidata/ directory in the Emacs sources.\n")
|
||||
(dolist (elt unidata-file-alist)
|
||||
(dolist (proplist (cdr elt))
|
||||
(insert (format "(define-char-code-property '%S %S\n %S)\n"
|
||||
(unidata-prop-prop proplist) (car elt)
|
||||
(unidata-prop-docstring proplist)))))
|
||||
(or noninteractive (message "Writing %s..." charprop-file))
|
||||
(generate-lisp-file-trailer charprop-file)))
|
||||
|
||||
(defun unidata-gen-scripts (&optional file)
|
||||
;; Running from Makefile.
|
||||
(unless file
|
||||
(setq file (pop command-line-args-left)))
|
||||
(let ((aliases (unidata-gen--read-script-aliases))
|
||||
(table (make-char-table nil))
|
||||
(segmented (make-hash-table :test #'equal)))
|
||||
;; First parse the scripts.
|
||||
(with-temp-buffer
|
||||
(unidata-gen--insert-file "Scripts.txt")
|
||||
(while (not (eobp))
|
||||
;; 1700..1711 ; Tagalog # Lo [18] TAGALOG LETTER A..TAGALOG
|
||||
(when (looking-at "\\([0-9A-F]+\\)\\(?:\\.\\.\\([0-9A-F]+\\)\\)? +; +\\([^ ]+\\) +#")
|
||||
(let ((start (string-to-number (match-string 1) 16))
|
||||
(end (and (match-string 2)
|
||||
(string-to-number (match-string 2) 16)))
|
||||
(scripts (list (intern (string-replace
|
||||
"_" "-"
|
||||
(downcase (match-string 3)))))))
|
||||
(set-char-table-range
|
||||
table (if end (cons start end) start) scripts)))
|
||||
(forward-line 1)))
|
||||
|
||||
;; Then parse the file that lists "other scripts" that characters
|
||||
;; may appear in, and add those.
|
||||
(with-temp-buffer
|
||||
(unidata-gen--insert-file "ScriptExtensions.txt")
|
||||
(while (not (eobp))
|
||||
;; 102E0 ; Arab Copt # Mn COPTIC EPACT THOUSANDS MARK
|
||||
(when (looking-at "\\([0-9A-F]+\\)\\(?:\\.\\.\\([0-9A-F]+\\)\\)? +; +\\([^#]+\\)")
|
||||
(let ((start (string-to-number (match-string 1) 16))
|
||||
(end (and (match-string 2)
|
||||
(string-to-number (match-string 2) 16)))
|
||||
(scripts
|
||||
(mapcar
|
||||
(lambda (alias)
|
||||
(intern (string-replace
|
||||
"_" "-" (downcase
|
||||
(gethash alias aliases)))))
|
||||
(split-string (string-trim (match-string 3))))))
|
||||
(dolist (script scripts)
|
||||
(dotimes (i (- (1+ (or end start)) start))
|
||||
(set-char-table-range
|
||||
table (+ i start)
|
||||
(append (elt table (+ i start)) (list script)))))))
|
||||
(forward-line 1)))
|
||||
|
||||
;; Then go through the data and collect into buckets based on
|
||||
;; identical script lists.
|
||||
(map-char-table
|
||||
(lambda (key value)
|
||||
;; `map-char-table' is reused, so copy it.
|
||||
(push (if (consp key)
|
||||
(cons (car key) (cdr key))
|
||||
key)
|
||||
;; Keep the first element first, but sort the rest.
|
||||
(gethash (cons (car value)
|
||||
(sort (remq (car value) value) #'string<))
|
||||
segmented)))
|
||||
table)
|
||||
|
||||
;; Then go through the data and collect into buckets based on
|
||||
(let ((scripts nil))
|
||||
(maphash
|
||||
(lambda (segment chars)
|
||||
(push (cons segment chars) scripts))
|
||||
segmented)
|
||||
(setq scripts (sort scripts (lambda (s1 s2)
|
||||
(string< (caar s1) (caar s2)))))
|
||||
(with-temp-buffer
|
||||
(insert "(textsec--create-script-table '(\n")
|
||||
(dolist (script scripts)
|
||||
(insert "(" (prin1-to-string (car script)) "\n")
|
||||
(insert " " (prin1-to-string (cdr script)))
|
||||
(insert ")\n"))
|
||||
(insert "))\n")
|
||||
;; Write the file.
|
||||
(unidata-gen-charprop file (buffer-string))))))
|
||||
|
||||
(defun unidata-gen--read-script-aliases ()
|
||||
(let ((aliases (make-hash-table :test #'equal)))
|
||||
(with-temp-buffer
|
||||
(unidata-gen--insert-file "PropertyValueAliases.txt")
|
||||
(unless (re-search-forward "^# Script " nil t)
|
||||
(error "Can't find the Script section"))
|
||||
(forward-line 2)
|
||||
(while (looking-at "sc *;")
|
||||
(let ((elem (split-string (buffer-substring (point) (line-end-position))
|
||||
";" nil "[ \t]+")))
|
||||
(setf (gethash (nth 1 elem) aliases)
|
||||
(nth 2 elem)))
|
||||
(forward-line 1))
|
||||
aliases)))
|
||||
|
||||
(defun unidata-gen--insert-file (name)
|
||||
(insert-file-contents
|
||||
(expand-file-name (concat "../admin/unidata/" name)
|
||||
data-directory)))
|
||||
|
||||
(defun unidata-gen-confusable (&optional file)
|
||||
;; Running from Makefile.
|
||||
(unless file
|
||||
(setq file (pop command-line-args-left)))
|
||||
(let ((regexp
|
||||
(concat "^\\([[:xdigit:]]+\\)"
|
||||
"[ \t]*;[ \t]*"
|
||||
"\\([[:space:][:xdigit:]]+\\)"
|
||||
"[ \t]*;"))
|
||||
(map (make-hash-table)))
|
||||
(with-temp-buffer
|
||||
(unidata-gen--insert-file "confusables.txt")
|
||||
(while (re-search-forward regexp nil t)
|
||||
(let ((from (match-string 1))
|
||||
(to (string-trim (match-string 2))))
|
||||
(setf (gethash (string-to-number from 16) map)
|
||||
(apply #'string (mapcar (lambda (string)
|
||||
(string-to-number string 16))
|
||||
(split-string to)))))))
|
||||
(with-temp-buffer
|
||||
(insert "(defconst uni-confusable-table\n")
|
||||
(let ((print-length nil))
|
||||
(prin1 map (current-buffer)))
|
||||
(insert ")")
|
||||
(unidata-gen-charprop file (buffer-string)))))
|
||||
|
||||
(defun unidata-gen-idna-mapping (&optional file)
|
||||
;; Running from Makefile.
|
||||
(unless file
|
||||
(setq file (pop command-line-args-left)))
|
||||
(let ((map (make-char-table nil)))
|
||||
(with-temp-buffer
|
||||
(unidata-gen--insert-file "IdnaMappingTable.txt")
|
||||
(while (re-search-forward "^\\([0-9A-F]+\\)\\(?:\\.\\.\\([0-9A-F]+\\)\\)? +; +\\([^ ]+\\) +\\(?:; +\\([ 0-9A-F]+\\)\\)?"
|
||||
nil t)
|
||||
(let ((start (match-string 1))
|
||||
(end (match-string 2))
|
||||
(status (match-string 3))
|
||||
(mapped (match-string 4)))
|
||||
;; Make reading the file slightly faster by using `t'
|
||||
;; instead of `disallowed' all over the place.
|
||||
(when (string-match-p "\\`disallowed" status)
|
||||
(setq status "t"))
|
||||
(unless (or (equal status "valid")
|
||||
(equal status "deviation"))
|
||||
(set-char-table-range
|
||||
map
|
||||
(if end
|
||||
(cons (string-to-number start 16)
|
||||
(string-to-number end 16))
|
||||
(string-to-number start 16))
|
||||
(cond
|
||||
((equal status "mapped")
|
||||
(apply #'string
|
||||
(mapcar (lambda (char)
|
||||
(string-to-number char 16))
|
||||
(split-string (string-trim mapped)))))
|
||||
(t
|
||||
(intern status))))))))
|
||||
(with-temp-buffer
|
||||
(insert "(defconst idna-mapping-table\n")
|
||||
(let ((print-length nil))
|
||||
(prin1 map (current-buffer)))
|
||||
(insert ")")
|
||||
(unidata-gen-charprop file (buffer-string)))))
|
||||
(insert "\n"
|
||||
"(provide 'charprop)\n"
|
||||
"\n"
|
||||
";; Local Variables:\n"
|
||||
";; coding: utf-8\n"
|
||||
";; version-control: never\n"
|
||||
";; no-byte-compile: t\n"
|
||||
";; no-update-autoloads: t\n"
|
||||
";; End:\n\n"
|
||||
(format ";;; %s ends here\n"
|
||||
(file-name-nondirectory charprop-file)))))
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -31,8 +31,6 @@
|
|||
# updated and some should not be, due to registration numbers, so
|
||||
# this script leaves these copyright years alone for now.
|
||||
|
||||
set -o nounset
|
||||
|
||||
: ${UPDATE_COPYRIGHT_USE_INTERVALS=1}
|
||||
export UPDATE_COPYRIGHT_USE_INTERVALS
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
## Copyright (C) 2011-2023 Free Software Foundation, Inc.
|
||||
|
||||
## Author: Glenn Morris <rgm@gnu.org>
|
||||
## Maintainer: Stefan Kangas <stefankangas@gmail.com>
|
||||
## Maintainer: emacs-devel@gnu.org
|
||||
|
||||
## This file is part of GNU Emacs.
|
||||
|
||||
|
|
@ -32,10 +32,19 @@
|
|||
|
||||
### Code:
|
||||
|
||||
source "${0%/*}/emacs-shell-lib"
|
||||
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
|
||||
|
||||
## This should be the admin directory.
|
||||
cd $PD || exit
|
||||
cd $PD
|
||||
cd ../
|
||||
[ -d admin ] || die "Could not locate admin directory"
|
||||
|
||||
|
|
@ -44,7 +53,7 @@ cd ../
|
|||
usage ()
|
||||
{
|
||||
cat 1>&2 <<EOF
|
||||
Usage: ${PN} [-f] [-c] [-q] [-A dir] [-L] [-C] [-- make-flags]
|
||||
Usage: ${PN} [-f] [-c] [-q] [-A dir] [-I] [-L] [-C] [-- make-flags]
|
||||
Update some auto-generated files in the Emacs tree.
|
||||
By default, only does the versioned loaddefs-like files in lisp/.
|
||||
This requires a build. Passes any non-option args to make (eg -- -j2).
|
||||
|
|
@ -54,6 +63,8 @@ Options:
|
|||
commit them (caution).
|
||||
-q: be quiet; only give error messages, not status messages.
|
||||
-A: only update autotools files, copying into specified dir.
|
||||
-H: also update ChangeLog.${changelog_n}
|
||||
-I: also update info/dir.
|
||||
-L: also update ldefs-boot.el.
|
||||
-C: start from a clean state. Slower, but more correct.
|
||||
EOF
|
||||
|
|
@ -70,9 +81,14 @@ clean=
|
|||
autogendir= # was "autogen"
|
||||
ldefs_flag=1
|
||||
lboot_flag=
|
||||
info_flag=
|
||||
changelog_flag=
|
||||
|
||||
## Parameters.
|
||||
ldefs_in=lisp/loaddefs.el
|
||||
ldefs_out=lisp/ldefs-boot.el
|
||||
changelog_n=$(sed -n 's/CHANGELOG_HISTORY_INDEX_MAX *= *//p' Makefile.in)
|
||||
changelog_files="ChangeLog.$changelog_n"
|
||||
sources="configure.ac lib/Makefile.am"
|
||||
## Files to copy into autogendir.
|
||||
## Everything:
|
||||
|
|
@ -84,16 +100,18 @@ genfiles="
|
|||
## msdos-only:
|
||||
genfiles="src/config.in"
|
||||
|
||||
basegen=""
|
||||
for g in $genfiles; do
|
||||
basegen="$basegen ${g##*/}"
|
||||
done
|
||||
|
||||
[ "$basegen" ] || die "internal error"
|
||||
|
||||
tempfile="$(emacs_mktemp)"
|
||||
tempfile=/tmp/$PN.$$
|
||||
|
||||
while getopts ":hcfqA:CL" option ; do
|
||||
trap "rm -f $tempfile 2> /dev/null" EXIT
|
||||
|
||||
|
||||
while getopts ":hcfqA:HCIL" option ; do
|
||||
case $option in
|
||||
(h) usage ;;
|
||||
|
||||
|
|
@ -109,6 +127,10 @@ while getopts ":hcfqA:CL" option ; do
|
|||
|
||||
(C) clean=1 ;;
|
||||
|
||||
(H) changelog_flag=1 ;;
|
||||
|
||||
(I) info_flag=1 ;;
|
||||
|
||||
(L) lboot_flag=1 ;;
|
||||
|
||||
(\?) die "Bad option -$OPTARG" ;;
|
||||
|
|
@ -133,7 +155,6 @@ status ()
|
|||
|
||||
local stat file modified
|
||||
|
||||
modified=""
|
||||
while read stat file; do
|
||||
|
||||
[ "$stat" != "M" ] && \
|
||||
|
|
@ -151,7 +172,7 @@ status ()
|
|||
echo "Checking input file status..."
|
||||
|
||||
## The lisp portion could be more permissive, eg only care about .el files.
|
||||
modified=$(status ${autogendir:+$sources} ${ldefs_flag:+lisp}) || die
|
||||
modified=$(status ${autogendir:+$sources} ${ldefs_flag:+lisp} ${info_flag:+doc}) || die
|
||||
|
||||
[ "$modified" ] && {
|
||||
echo "Locally modified: $modified"
|
||||
|
|
@ -166,6 +187,8 @@ modified=$(status ${autogendir:+$sources} ${ldefs_flag:+lisp}) || die
|
|||
echo "Running 'make maintainer-clean'..."
|
||||
|
||||
make maintainer-clean #|| die "Cleaning error"
|
||||
|
||||
rm -f $ldefs_in
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -212,8 +235,65 @@ commit ()
|
|||
} # function commit
|
||||
|
||||
|
||||
## No longer used since info/dir is now generated at install time if needed,
|
||||
## and is not in the repository any more.
|
||||
info_dir ()
|
||||
{
|
||||
local basefile=build-aux/dir_top outfile=info/dir
|
||||
|
||||
echo "Regenerating info/dir..."
|
||||
|
||||
## Header contains non-printing characters, so this is more
|
||||
## reliable than using echo.
|
||||
rm -f $outfile
|
||||
cp $basefile $outfile
|
||||
|
||||
local topic file dircat dirent
|
||||
|
||||
## FIXME inefficient looping.
|
||||
for topic in "Texinfo documentation system" "Emacs" "GNU Emacs Lisp" \
|
||||
"Emacs editing modes" "Emacs network features" "Emacs misc features" \
|
||||
"Emacs lisp libraries"; do
|
||||
|
||||
cat - <<EOF >> $outfile
|
||||
|
||||
$topic
|
||||
EOF
|
||||
## Bit faster than doc/*/*.texi.
|
||||
for file in doc/emacs/emacs.texi doc/lispintro/*.texi \
|
||||
doc/lispref/elisp.texi doc/misc/*.texi; do
|
||||
|
||||
## FIXME do not ignore w32 if OS is w32.
|
||||
case $file in
|
||||
*-xtra.texi|*efaq-w32.texi) continue ;;
|
||||
esac
|
||||
|
||||
dircat=$(sed -n -e 's/@value{emacsname}/Emacs/' -e 's/^@dircategory //p' $file)
|
||||
|
||||
## TODO warn about unknown topics (check-info in top-level
|
||||
## Makefile does this).
|
||||
[ "$dircat" = "$topic" ] || continue
|
||||
|
||||
sed -n -e 's/@value{emacsname}/Emacs/' \
|
||||
-e 's/@acronym{\([A-Z]*\)}/\1/' \
|
||||
-e '/^@direntry/,/^@end direntry/ s/^\([^@]\)/\1/p' \
|
||||
$file >> $outfile
|
||||
|
||||
done
|
||||
done
|
||||
|
||||
local modified
|
||||
|
||||
modified=$(status $outfile) || die
|
||||
|
||||
commit "info/dir" $modified || die "commit error"
|
||||
} # function info_dir
|
||||
|
||||
|
||||
[ "$autogendir" ] && {
|
||||
|
||||
oldpwd=$PWD
|
||||
|
||||
cp $genfiles $autogendir/
|
||||
|
||||
cd $autogendir || die "cd error for $autogendir"
|
||||
|
|
@ -228,6 +308,9 @@ commit ()
|
|||
} # $autogendir
|
||||
|
||||
|
||||
[ "$info_flag" ] && info_dir
|
||||
|
||||
|
||||
[ "$ldefs_flag" ] || exit 0
|
||||
|
||||
|
||||
|
|
@ -276,13 +359,18 @@ make -C src "$@" bootstrap-emacs || die "make src error"
|
|||
|
||||
echo "Running lisp/ make..."
|
||||
|
||||
make -C lisp "$@" ldefs-boot.el EMACS=../src/bootstrap-emacs || die "make src error"
|
||||
make -C lisp "$@" autoloads EMACS=../src/bootstrap-emacs || die "make src error"
|
||||
|
||||
|
||||
## Ignore comment differences.
|
||||
[ ! "$lboot_flag" ] || \
|
||||
diff -q -I '^;' $ldefs_in $ldefs_out || \
|
||||
cp $ldefs_in $ldefs_out || die "cp ldefs_boot error"
|
||||
|
||||
# Refresh the prebuilt grammar-wy.el
|
||||
grammar_in=lisp/cedet/semantic/grammar-wy.el
|
||||
grammar_out=lisp/cedet/semantic/grm-wy-boot.el
|
||||
make -C admin/grammars/ ../../$grammar_in EMACS=../../src/bootstrap-emacs
|
||||
make -C admin/grammars/ ../../$grammar_in
|
||||
cp $grammar_in $grammar_out || die "cp grm_wy_boot error"
|
||||
|
||||
|
||||
|
|
@ -297,4 +385,14 @@ modified=$(status $genfiles $ldefs_out $grammar_out) || die
|
|||
commit "loaddefs" $modified || die "commit error"
|
||||
|
||||
|
||||
## Less important than the other stuff, so do it last.
|
||||
[ ! "$changelog_flag" ] || {
|
||||
make change-history-nocommit || die "make change-history error"
|
||||
modified=$(status $changelog_files) || die
|
||||
commit "ChangeLog" $modified || die "commit error"
|
||||
}
|
||||
|
||||
|
||||
exit 0
|
||||
|
||||
### update_autogen ends here
|
||||
|
|
|
|||
|
|
@ -36,7 +36,14 @@
|
|||
|
||||
### Code:
|
||||
|
||||
source "${0%/*}/emacs-shell-lib"
|
||||
|
||||
die () # write error to stderr and exit
|
||||
{
|
||||
[ $# -gt 0 ] && echo "$PN: $@" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
PN=${0##*/} # basename of script
|
||||
|
||||
usage ()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
progs="autoconf"
|
||||
|
||||
## Minimum versions we need:
|
||||
autoconf_min=`sed -n 's/^ *AC_PREREQ(\[\([0-9\.]*\)]).*/\1/p' configure.ac`
|
||||
autoconf_min=`sed -n 's/^ *AC_PREREQ(\([0-9\.]*\)).*/\1/p' configure.ac`
|
||||
|
||||
|
||||
## $1 = program, eg "autoconf".
|
||||
|
|
@ -340,8 +340,7 @@ git_config diff.texinfo.xfuncname \
|
|||
tailored_hooks=
|
||||
sample_hooks=
|
||||
|
||||
for hook in commit-msg pre-commit prepare-commit-msg post-commit \
|
||||
pre-push commit-msg-files.awk; do
|
||||
for hook in commit-msg pre-commit prepare-commit-msg; do
|
||||
cmp -- build-aux/git-hooks/$hook "$hooks/$hook" >/dev/null 2>&1 ||
|
||||
tailored_hooks="$tailored_hooks $hook"
|
||||
done
|
||||
|
|
|
|||
42
build-aux/config.guess
vendored
42
build-aux/config.guess
vendored
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
# shellcheck disable=SC2006,SC2268 # see below for rationale
|
||||
|
||||
timestamp='2023-01-01'
|
||||
timestamp='2022-01-09'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
|
|
@ -966,12 +966,6 @@ EOF
|
|||
GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
|
||||
GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
|
||||
;;
|
||||
x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*)
|
||||
GUESS="$UNAME_MACHINE-pc-managarm-mlibc"
|
||||
;;
|
||||
*:[Mm]anagarm:*:*)
|
||||
GUESS="$UNAME_MACHINE-unknown-managarm-mlibc"
|
||||
;;
|
||||
*:Minix:*:*)
|
||||
GUESS=$UNAME_MACHINE-unknown-minix
|
||||
;;
|
||||
|
|
@ -1042,7 +1036,7 @@ EOF
|
|||
k1om:Linux:*:*)
|
||||
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||
;;
|
||||
loongarch32:Linux:*:* | loongarch64:Linux:*:*)
|
||||
loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*)
|
||||
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||
;;
|
||||
m32r*:Linux:*:*)
|
||||
|
|
@ -1157,27 +1151,16 @@ EOF
|
|||
;;
|
||||
x86_64:Linux:*:*)
|
||||
set_cc_for_build
|
||||
CPU=$UNAME_MACHINE
|
||||
LIBCABI=$LIBC
|
||||
if test "$CC_FOR_BUILD" != no_compiler_found; then
|
||||
ABI=64
|
||||
sed 's/^ //' << EOF > "$dummy.c"
|
||||
#ifdef __i386__
|
||||
ABI=x86
|
||||
#else
|
||||
#ifdef __ILP32__
|
||||
ABI=x32
|
||||
#endif
|
||||
#endif
|
||||
EOF
|
||||
cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
|
||||
eval "$cc_set_abi"
|
||||
case $ABI in
|
||||
x86) CPU=i686 ;;
|
||||
x32) LIBCABI=${LIBC}x32 ;;
|
||||
esac
|
||||
if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
|
||||
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
|
||||
grep IS_X32 >/dev/null
|
||||
then
|
||||
LIBCABI=${LIBC}x32
|
||||
fi
|
||||
fi
|
||||
GUESS=$CPU-pc-linux-$LIBCABI
|
||||
GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI
|
||||
;;
|
||||
xtensa*:Linux:*:*)
|
||||
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||
|
|
@ -1384,11 +1367,8 @@ EOF
|
|||
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
|
||||
GUESS=i586-pc-haiku
|
||||
;;
|
||||
ppc:Haiku:*:*) # Haiku running on Apple PowerPC
|
||||
GUESS=powerpc-apple-haiku
|
||||
;;
|
||||
*:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat)
|
||||
GUESS=$UNAME_MACHINE-unknown-haiku
|
||||
x86_64:Haiku:*:*)
|
||||
GUESS=x86_64-unknown-haiku
|
||||
;;
|
||||
SX-4:SUPER-UX:*:*)
|
||||
GUESS=sx4-nec-superux$UNAME_RELEASE
|
||||
|
|
|
|||
31
build-aux/config.sub
vendored
31
build-aux/config.sub
vendored
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
# shellcheck disable=SC2006,SC2268 # see below for rationale
|
||||
|
||||
timestamp='2023-01-21'
|
||||
timestamp='2023-02-19'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
|
|
@ -145,7 +145,7 @@ case $1 in
|
|||
nto-qnx* | linux-* | uclinux-uclibc* \
|
||||
| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
|
||||
| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
|
||||
| storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
|
||||
| storm-chaos* | os2-emx* | rtmk-nova*)
|
||||
basic_machine=$field1
|
||||
basic_os=$maybe_os
|
||||
;;
|
||||
|
|
@ -1075,7 +1075,7 @@ case $cpu-$vendor in
|
|||
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
|
||||
cpu=i586
|
||||
;;
|
||||
pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
|
||||
pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
|
||||
cpu=i686
|
||||
;;
|
||||
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
|
||||
|
|
@ -1207,7 +1207,7 @@ case $cpu-$vendor in
|
|||
| k1om \
|
||||
| le32 | le64 \
|
||||
| lm32 \
|
||||
| loongarch32 | loongarch64 \
|
||||
| loongarch32 | loongarch64 | loongarchx32 \
|
||||
| m32c | m32r | m32rle \
|
||||
| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
|
||||
| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
|
||||
|
|
@ -1341,10 +1341,6 @@ EOF
|
|||
kernel=linux
|
||||
os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
|
||||
;;
|
||||
managarm*)
|
||||
kernel=managarm
|
||||
os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
|
||||
;;
|
||||
*)
|
||||
kernel=
|
||||
os=$basic_os
|
||||
|
|
@ -1758,7 +1754,7 @@ case $os in
|
|||
| onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
|
||||
| midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
|
||||
| nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
|
||||
| fiwix* | mlibc* )
|
||||
| fiwix* )
|
||||
;;
|
||||
# This one is extra strict with allowed versions
|
||||
sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
|
||||
|
|
@ -1766,9 +1762,6 @@ case $os in
|
|||
;;
|
||||
none)
|
||||
;;
|
||||
kernel* )
|
||||
# Restricted further below
|
||||
;;
|
||||
*)
|
||||
echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
|
||||
exit 1
|
||||
|
|
@ -1779,26 +1772,16 @@ esac
|
|||
# (given a valid OS), if there is a kernel.
|
||||
case $kernel-$os in
|
||||
linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
|
||||
| linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
|
||||
| linux-musl* | linux-relibc* | linux-uclibc* )
|
||||
;;
|
||||
uclinux-uclibc* )
|
||||
;;
|
||||
managarm-mlibc* | managarm-kernel* )
|
||||
;;
|
||||
-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
|
||||
-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* )
|
||||
# These are just libc implementations, not actual OSes, and thus
|
||||
# require a kernel.
|
||||
echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
|
||||
exit 1
|
||||
;;
|
||||
-kernel* )
|
||||
echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2
|
||||
exit 1
|
||||
;;
|
||||
*-kernel* )
|
||||
echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2
|
||||
exit 1
|
||||
;;
|
||||
kfreebsd*-gnu* | kopensolaris*-gnu*)
|
||||
;;
|
||||
vxworks-simlinux | vxworks-simwindows | vxworks-spe)
|
||||
|
|
|
|||
|
|
@ -1,128 +0,0 @@
|
|||
# Check the file list of GNU Emacs change log entries for each commit SHA.
|
||||
|
||||
# Copyright 2023 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 accepts a list of (unabbreviated) Git commit SHAs, and
|
||||
# will then iterate over them to check that any files mentioned in the
|
||||
# commit message are actually present in the commit's diff. If not,
|
||||
# it will print out the incorrect file names and return 1.
|
||||
|
||||
# You can also pass "-v reason=pre-push", which will add more-verbose
|
||||
# output, indicating the abbreviated commit SHA and first line of the
|
||||
# commit message for any improper commits.
|
||||
|
||||
### Code:
|
||||
|
||||
function get_commit_changes(commit_sha, changes, cmd, i, j, len, \
|
||||
bits, filename) {
|
||||
# Collect all the files touched in the specified commit.
|
||||
cmd = ("git show --name-status --first-parent --format= " commit_sha)
|
||||
while ((cmd | getline) > 0) {
|
||||
for (i = 2; i <= NF; i++) {
|
||||
len = split($i, bits, "/")
|
||||
for (j = 1; j <= len; j++) {
|
||||
if (j == 1)
|
||||
filename = bits[j]
|
||||
else
|
||||
filename = filename "/" bits[j]
|
||||
changes[filename] = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
close(cmd)
|
||||
}
|
||||
|
||||
function check_commit_msg_files(commit_sha, verbose, changes, good, \
|
||||
cmd, msg, filenames_str, filenames, i) {
|
||||
get_commit_changes(commit_sha, changes)
|
||||
good = 1
|
||||
|
||||
cmd = ("git log -1 --format=%B " commit_sha)
|
||||
while ((cmd | getline) > 0) {
|
||||
if (verbose && ! msg)
|
||||
msg = $0
|
||||
|
||||
# Find file entries in the commit message. We look at any line
|
||||
# starting with "*" (possibly prefixed by "; ") followed by a ":",
|
||||
# possibly on a different line. If we encounter a blank line
|
||||
# without seeing a ":", then we don't treat that as a file entry.
|
||||
|
||||
# Accumulate the contents of a (possible) file entry.
|
||||
if (/^[ \t]*$/)
|
||||
filenames_str = ""
|
||||
else if (/^(; )?\*[ \t]+[[:alnum:]]/)
|
||||
filenames_str = $0
|
||||
else if (filenames_str)
|
||||
filenames_str = (filenames_str $0)
|
||||
|
||||
# We have a file entry; analyze it.
|
||||
if (filenames_str && /:/) {
|
||||
# Delete the leading "*" and any trailing information.
|
||||
sub(/^(; )?\*[ \t]+/, "", filenames_str)
|
||||
sub(/[ \t]*[[(<:].*$/, "", filenames_str)
|
||||
|
||||
# There might be multiple files listed in this entry, separated
|
||||
# by spaces (and possibly a comma). Iterate over each of them.
|
||||
split(filenames_str, filenames, ",[ \t]+")
|
||||
for (i in filenames) {
|
||||
# Remove trailing slashes from any directory entries.
|
||||
sub(/\/$/, "", filenames[i])
|
||||
|
||||
if (length(filenames[i]) && ! (filenames[i] in changes)) {
|
||||
if (good) {
|
||||
# Print a header describing the error.
|
||||
if (verbose)
|
||||
printf("In commit %s \"%s\"...\n", substr(commit_sha, 1, 10), msg)
|
||||
printf("Files listed in commit message, but not in diff:\n")
|
||||
}
|
||||
printf(" %s\n", filenames[i])
|
||||
good = 0
|
||||
}
|
||||
}
|
||||
|
||||
filenames_str = ""
|
||||
}
|
||||
}
|
||||
close(cmd)
|
||||
|
||||
return good
|
||||
}
|
||||
|
||||
BEGIN {
|
||||
if (reason == "pre-push")
|
||||
verbose = 1
|
||||
}
|
||||
|
||||
/^[a-z0-9]{40}$/ {
|
||||
if (! check_commit_msg_files($0, verbose)) {
|
||||
status = 1
|
||||
}
|
||||
}
|
||||
|
||||
END {
|
||||
if (status != 0) {
|
||||
if (reason == "pre-push")
|
||||
error_msg = "Push aborted"
|
||||
else
|
||||
error_msg = "Bad commit message"
|
||||
printf("%s; please see the file 'CONTRIBUTE'\n", error_msg)
|
||||
}
|
||||
exit status
|
||||
}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
#!/bin/sh
|
||||
# Check the file list of GNU Emacs change log entries after committing.
|
||||
|
||||
# Copyright 2023 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 hook runs after a commit is finalized and checks that the files
|
||||
# mentioned in the commit message match the diff. We perform this in
|
||||
# the post-commit phase so that we can be sure we properly detect all
|
||||
# the files in the diff (this is difficult during the commit-msg hook,
|
||||
# since there's no cross-platform way to detect when a commit is being
|
||||
# amended).
|
||||
|
||||
# However, since this is a post-commit hook, it's too late to error
|
||||
# out and abort the commit: it's already done! As a result, this hook
|
||||
# is purely advisory, and instead we error out when trying to push
|
||||
# (see "pre-push" in this directory).
|
||||
|
||||
### Code:
|
||||
|
||||
HOOKS_DIR=`dirname "$0"`
|
||||
|
||||
# Prefer gawk if available, as it handles NUL bytes properly.
|
||||
if type gawk >/dev/null 2>&1; then
|
||||
awk="gawk"
|
||||
else
|
||||
awk="awk"
|
||||
fi
|
||||
|
||||
git rev-parse HEAD | $awk -v reason=post-commit \
|
||||
-f "$HOOKS_DIR"/commit-msg-files.awk
|
||||
|
|
@ -1,88 +0,0 @@
|
|||
#!/bin/sh
|
||||
# Check the file list of GNU Emacs change log entries before pushing.
|
||||
|
||||
# Copyright 2023 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 hook runs before pushing a series of commits and checks that
|
||||
# the files mentioned in each commit message match the diffs. This
|
||||
# helps ensure that the resulting change logs are correct, which
|
||||
# should prevent errors when generating etc/AUTHORS.
|
||||
|
||||
# These checks also happen in the "post-commit" hook (which see), but
|
||||
# that hook can't abort a commit; it just advises the committer to fix
|
||||
# the commit so that this hook runs without errors.
|
||||
|
||||
### Code:
|
||||
|
||||
HOOKS_DIR=`dirname "$0"`
|
||||
|
||||
# Prefer gawk if available, as it handles NUL bytes properly.
|
||||
if type gawk >/dev/null 2>&1; then
|
||||
awk="gawk"
|
||||
else
|
||||
awk="awk"
|
||||
fi
|
||||
|
||||
# Standard input receives lines of the form:
|
||||
# <local ref> SP <local sha> SP <remote ref> SP <remote sha> LF
|
||||
$awk -v origin_name="$1" '
|
||||
# If the local SHA is all zeroes, ignore it.
|
||||
$2 ~ /^0{40}$/ {
|
||||
next
|
||||
}
|
||||
|
||||
# Check any lines with a valid local SHA and whose remote ref is
|
||||
# master or an emacs-NN release branch. (We want to avoid checking
|
||||
# feature or scratch branches here.)
|
||||
$2 ~ /^[a-z0-9]{40}$/ && $3 ~ /^refs\/heads\/(master|emacs-[0-9]+)$/ {
|
||||
newref = $2
|
||||
# If the remote SHA is all zeroes, this is a new object to be
|
||||
# pushed (likely a branch)...
|
||||
if ($4 ~ /^0{40}$/) {
|
||||
back = 0
|
||||
# ... Go backwards until we find a SHA on an origin branch.
|
||||
# Stop trying after 1000 commits, just in case...
|
||||
for (back = 0; back < 1000; back++) {
|
||||
cmd = ("git branch -r -l '\''" origin_name "/*'\''" \
|
||||
" --contains " newref "~" back)
|
||||
rv = (cmd | getline)
|
||||
close(cmd)
|
||||
if (rv > 0)
|
||||
break;
|
||||
}
|
||||
|
||||
cmd = ("git rev-parse " newref "~" back)
|
||||
cmd | getline oldref
|
||||
if (!(oldref ~ /^[a-z0-9]{40}$/)) {
|
||||
# The SHA is misformatted! Skip this line.
|
||||
next
|
||||
}
|
||||
close(cmd)
|
||||
} else if ($4 ~ /^[a-z0-9]{40}$/) {
|
||||
oldref = $4
|
||||
} else {
|
||||
# The SHA is misformatted! Skip this line.
|
||||
next
|
||||
}
|
||||
|
||||
# Print every SHA after oldref, up to (and including) newref.
|
||||
system("git rev-list --first-parent --reverse " oldref ".." newref)
|
||||
}
|
||||
' | $awk -v reason=pre-push -f "$HOOKS_DIR"/commit-msg-files.awk
|
||||
|
|
@ -35,7 +35,7 @@
|
|||
eval 'exec perl -wSx "$0" "$@"'
|
||||
if 0;
|
||||
|
||||
my $VERSION = '2022-01-27 18:49'; # UTC
|
||||
my $VERSION = '2021-02-24 23:42'; # UTC
|
||||
# The definition above must lie within the first 8 lines in order
|
||||
# for the Emacs time-stamp write hook (at end) to update it.
|
||||
# If you change this file with Emacs, please let the write hook
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
#
|
||||
# This program 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, or (at your option)
|
||||
# the Free Software Foundation; either version 3, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
|
|
@ -137,7 +137,7 @@
|
|||
eval 'exec perl -wSx -0777 -pi "$0" "$@"'
|
||||
if 0;
|
||||
|
||||
my $VERSION = '2023-01-11.04:24'; # UTC
|
||||
my $VERSION = '2020-04-04.15:07'; # UTC
|
||||
# The definition above must lie within the first 8 lines in order
|
||||
# for the Emacs time-stamp write hook (at end) to update it.
|
||||
# If you change this file with Emacs, please let the write hook
|
||||
|
|
@ -280,7 +280,7 @@ if (defined $stmt_re)
|
|||
}
|
||||
|
||||
# Replace the old copyright statement.
|
||||
s/$stmt_re/$stmt_wrapped/g;
|
||||
s/$stmt_re/$stmt_wrapped/;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -276,7 +276,6 @@ cd lib
|
|||
Rem Rename files like djtar on plain DOS filesystem would.
|
||||
If Exist c++defs.h update c++defs.h cxxdefs.h
|
||||
If Exist alloca.in.h update alloca.in.h alloca.in-h
|
||||
If Exist assert.in.h update assert.in.h assert.in-h
|
||||
If Exist byteswap.in.h update byteswap.in.h byteswap.in-h
|
||||
If Exist dirent.in.h update dirent.in.h dirent.in-h
|
||||
If Exist errno.in.h update errno.in.h errno.in-h
|
||||
|
|
@ -302,7 +301,6 @@ If Exist sys_time.in.h update sys_time.in.h sys_time.in-h
|
|||
If Exist sys_types.in.h update sys_types.in.h sys_types.in-h
|
||||
If Exist time.in.h update time.in.h time.in-h
|
||||
If Exist unistd.in.h update unistd.in.h unistd.in-h
|
||||
If Exist stdckdint.in.h update stdckdint.in.h stdckdint.in-h
|
||||
If Exist gnulib.mk.in update gnulib.mk.in gnulib.mk-in
|
||||
Rem Only repository has the msdos/autogen directory
|
||||
If Exist Makefile.in sed -f ../msdos/sedlibcf.inp < Makefile.in > makefile.tmp
|
||||
|
|
@ -312,9 +310,6 @@ rm -f makefile.tmp
|
|||
sed -f ../msdos/sedlibcf.inp < gnulib.mk-in > gnulib.tmp
|
||||
sed -f ../msdos/sedlibmk.inp < gnulib.tmp > gnulib.mk
|
||||
rm -f gnulib.tmp
|
||||
Rem Create directories in lib/ that MKDIR_P is supposed to create
|
||||
Rem but I have no idea how to do that on MS-DOS.
|
||||
mkdir sys
|
||||
Rem Create .d files for new files in lib/ and lib/malloc/
|
||||
If Not Exist deps\stamp mkdir deps
|
||||
for %%f in (*.c) do @call ..\msdos\depfiles.bat %%f
|
||||
|
|
|
|||
2304
configure.ac
2304
configure.ac
File diff suppressed because it is too large
Load diff
|
|
@ -1356,7 +1356,7 @@
|
|||
|
||||
* dired.texi (Dired Deletion, Marks vs Flags): Document Emacs 24.3
|
||||
changes to the mark and unmark commands.
|
||||
(Comparison in Dired): Document changes to dired-diff. Remove M-=,
|
||||
(Comparison in Dired): Document chages to dired-diff. Remove M-=,
|
||||
which is no longer bound to dired-backup-diff.
|
||||
|
||||
2012-10-23 Bastien Guerry <bzg@gnu.org>
|
||||
|
|
@ -2711,7 +2711,7 @@
|
|||
of list-faces-display here, from Standard Faces node.
|
||||
Note special role of `default' background.
|
||||
(Standard Faces): Note special role of `default' background.
|
||||
Note that region face may be taken from GTK. Add xref to Text Display.
|
||||
Note that region face may be taken fom GTK. Add xref to Text Display.
|
||||
(Text Scale): Rename from "Temporary Face Changes".
|
||||
Callers changed. Don't bother documenting variable-pitch-mode.
|
||||
(Font Lock): Copyedits. Remove font-lock-maximum-size.
|
||||
|
|
@ -8529,7 +8529,7 @@
|
|||
* text.texi (Cell Justification):
|
||||
* trouble.texi (After a Crash):
|
||||
* xresources.texi (GTK styles):
|
||||
Delete duplicate words.
|
||||
Delete duplicate duplicate words.
|
||||
|
||||
2005-07-17 Richard M. Stallman <rms@gnu.org>
|
||||
|
||||
|
|
|
|||
|
|
@ -140,7 +140,6 @@ EMACSSOURCES= \
|
|||
${srcdir}/xresources.texi \
|
||||
${srcdir}/anti.texi \
|
||||
${srcdir}/macos.texi \
|
||||
$(srcdir)/haiku.texi \
|
||||
${srcdir}/msdos.texi \
|
||||
${srcdir}/gnu.texi \
|
||||
${srcdir}/glossary.texi \
|
||||
|
|
|
|||
|
|
@ -106,10 +106,8 @@ taken as the expansion. For example, to define the abbrev @samp{foo} as
|
|||
mentioned above, insert the text @samp{find outer otter} and then type
|
||||
@kbd{C-u 3 C-x a g f o o @key{RET}}.
|
||||
|
||||
If you're using @code{transient-mark-mode} (which is the default),
|
||||
the active region will be used as the expansion of the abbrev being
|
||||
defined. If not, an argument of zero to @kbd{C-x a g} means to use
|
||||
the contents of the region.
|
||||
An argument of zero to @kbd{C-x a g} means to use the contents of the
|
||||
region as the expansion of the abbrev being defined.
|
||||
|
||||
@kindex C-x a l
|
||||
@findex add-mode-abbrev
|
||||
|
|
@ -276,7 +274,7 @@ Edit a list of abbrevs; you can add, alter or remove definitions.
|
|||
@example
|
||||
@var{various other tables@dots{}}
|
||||
(lisp-mode-abbrev-table)
|
||||
"ks" 0 "keymap-set"
|
||||
"dk" 0 "define-key"
|
||||
(global-abbrev-table)
|
||||
"dfn" 0 "definition"
|
||||
@end example
|
||||
|
|
@ -413,13 +411,10 @@ away in the buffer to search for an expansion.
|
|||
|
||||
@vindex dabbrev-check-all-buffers
|
||||
@vindex dabbrev-check-other-buffers
|
||||
@vindex dabbrev-ignored-buffer-modes
|
||||
After scanning the current buffer, @kbd{M-/} normally searches other
|
||||
buffers. The variables @code{dabbrev-check-all-buffers} and
|
||||
@code{dabbrev-check-other-buffers} can be used to determine which
|
||||
other buffers, if any, are searched. Buffers that have major modes
|
||||
derived from any of the modes in @code{dabbrev-ignored-buffer-modes}
|
||||
are ignored.
|
||||
other buffers, if any, are searched.
|
||||
|
||||
@vindex dabbrev-ignored-buffer-names
|
||||
@vindex dabbrev-ignored-buffer-regexps
|
||||
|
|
|
|||
|
|
@ -4,155 +4,134 @@
|
|||
@c See file emacs.texi for copying conditions.
|
||||
|
||||
@node Antinews
|
||||
@appendix Emacs 28 Antinews
|
||||
@appendix Emacs 27 Antinews
|
||||
@c Update the emacs.texi Antinews menu entry with the above version number.
|
||||
|
||||
For those users who live backwards in time, here is information
|
||||
about downgrading to Emacs version 28.2. We hope you will enjoy the
|
||||
about downgrading to Emacs version 27.2. We hope you will enjoy the
|
||||
greater simplicity that results from the absence of many @w{Emacs
|
||||
@value{EMACSVER}} features.
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
Like its newer releases, Emacs 28 can still be built with support of
|
||||
native compilation of Lisp programs. However, in preparation for
|
||||
removal of this feature in some previous version, we've deleted the
|
||||
capability of ahead-of-time native compilation of all the Lisp files
|
||||
that come with Emacs. This makes the Emacs build process much faster.
|
||||
Emacs can no longer be built with support of native compilation of
|
||||
Lisp programs. This means Emacs builds much faster, and the problems
|
||||
that came with native compilation: the need to have GCC and Binutils
|
||||
installed, the complications of managing your @file{eln-cache}
|
||||
directories---all of that is now future history. The simplicity and
|
||||
elegance of the Emacs byte-compiled code is now restored in all of its
|
||||
pristine beauty.
|
||||
|
||||
@item
|
||||
Emacs can no longer be built with the tree-sitter library, so you no
|
||||
longer will need to look for and install the grammar libraries for
|
||||
the languages in which you want to program. Similarly, all the modes
|
||||
that are based on the tree-sitter library were deleted, leaving you
|
||||
with just one major mode for every supported programming language: no
|
||||
more need to decide whether to turn the tree-sitter supported modes on
|
||||
and try using their parser-based fontification, indentation, and other
|
||||
features. For some languages and file types, this means no major mode
|
||||
at all, leaving you with the venerable Fundamental mode as the
|
||||
natural, high-performance choice. For example, Go, Rust, and CMake
|
||||
files no longer have any major modes for editing their files ---
|
||||
another milestone towards a simpler, leaner Emacs.
|
||||
Emacs no longer builds by default with Cairo, even if it's present.
|
||||
The warnings about not using HarfBuzz are also gone, in preparation
|
||||
for complete removal of HarfBuzz support in previous Emacs versions.
|
||||
Fancy text shaping and display is becoming less important as you move
|
||||
back in time. The @code{ftx} font backend is again part of Emacs, for
|
||||
the same reasons.
|
||||
|
||||
@item
|
||||
Built-in support for accessing SQLite databases was removed. You can
|
||||
now again edit SQLite files as simple binary files, which Emacs is
|
||||
quite capable to support, as it always did.
|
||||
Emacs once again supports versions 5.3 and older OpenBSD systems,
|
||||
which will be needed as you move back in time.
|
||||
|
||||
@item
|
||||
As a gesture to users of the Haiku operating system, we've dropped the
|
||||
code which allowed Emacs to be built on that OS@. We expect Haiku
|
||||
users to enjoy the much simpler editors they have for editing their
|
||||
files.
|
||||
We've dropped support for Secure Computing filter on GNU/Linux. The
|
||||
past world is much more secure than the present, so the complexities
|
||||
related with this stuff, which can only be explained by severe
|
||||
paranoia, are no longer justified.
|
||||
|
||||
@item
|
||||
Support for XInput2 input events on X is gone. We think the
|
||||
traditional X input events are more than enough, certainly so as you
|
||||
move back in time, where XInput2 will eventually be removed from X as
|
||||
well, once the maintainers of the X Windows system realize the utter
|
||||
futility of supporting fancy input mechanisms.
|
||||
Emacs reverted back to supporting Unicode 13.x, since the following
|
||||
versions of the standards are not yet published where you are going.
|
||||
The @samp{emoji} script and the support for displaying Emoji sequences
|
||||
were removed for the same reasons: no one will produce them in the
|
||||
past.
|
||||
|
||||
@item
|
||||
The ``pure GTK'' (a.k.a.@: @acronym{PGTK}) configuration of Emacs is
|
||||
no longer supported. This is in anticipation of the complete removal
|
||||
of the GTK toolkit support from Emacs, and in accordance with our
|
||||
expectation that GTK will cease to exist as you move back in time. We
|
||||
plan on removing support for all the other toolkits as well, leaving
|
||||
only the pure X build with our own widgets as the single supported GUI
|
||||
configuration on X.
|
||||
Mode-specific commands and the @kbd{M-S-x} command that invokes them
|
||||
were removed. As you move back in time, the command set in Emacs
|
||||
becomes smaller, so any such filtering of applicable commands just
|
||||
gets in the way.
|
||||
|
||||
@item
|
||||
The @option{--init-directory} command-line option was removed, as
|
||||
initializing Emacs with init files of another user is a preposterous
|
||||
idea anyway.
|
||||
We have removed the system for displaying documentation of groups of
|
||||
related functions, the @kbd{shortdoc-display-group} command to go with
|
||||
it, and the corresponding ``See also'' button in the @file{*Help*}
|
||||
buffer. That should make searching for certain functions simpler:
|
||||
just use the venerable @samp{apropos} commands.
|
||||
|
||||
@item
|
||||
In line with simplifying and eventually removing the
|
||||
native-compilation option, we've deleted the
|
||||
@option{--with-native-compilation=aot} configure-time option. This
|
||||
greatly simplifies how native compilation works and makes your
|
||||
configure-time decision regarding native compilation in Emacs
|
||||
clear-cut: either Emacs compiles non-preloaded Lisp packages to native
|
||||
code only before using it, or it never uses native compilation at all;
|
||||
no more half measures and special exceptions. For similar reasons,
|
||||
@code{native-compile-prune-cache} and
|
||||
@code{startup-redirect-eln-cache} features are no longer part of
|
||||
Emacs.
|
||||
The @code{context-menu-mode} was removed, and with it the context
|
||||
menus popped by pressing the right mouse button. This is one small
|
||||
step towards freeing Emacs (and eventually, the whole world of
|
||||
computing) from the tyranny of the GUI pointing devices in general,
|
||||
and moving back to the simplicity of text-mode user interfaces.
|
||||
Down with mice and other rodents!
|
||||
|
||||
@item
|
||||
We've deleted the special code and features which allowed Emacs to
|
||||
present decent performance and responsiveness when editing files with
|
||||
very long lines. Such files become more and more rare as time goes
|
||||
back, and so having all this tricky code in Emacs for their benefit
|
||||
was deemed an unnecessary complication.
|
||||
The commands @kbd{C-x 4 4} and @kbd{C-x 5 5} for displaying the
|
||||
results in a new window/frame re gone. We are quite certain that
|
||||
creating a new window/frame before running a command is much simpler,
|
||||
and doesn't require a complication of a new prefix.
|
||||
|
||||
@item
|
||||
Emacs dropped support for Eglot and the LSP servers. We decided that
|
||||
the built-in ways of analyzing source code are more than enough as you
|
||||
move back in time.
|
||||
The behavior of active minibuffers when switching frames is now the
|
||||
perfect mess it should be: sometimes the minibuffer moves to the new
|
||||
selected frame, sometimes it doesn't, and sometimes you get an error.
|
||||
This makes Emacs usage much more fun, as you get to guess the result,
|
||||
instead of having it boringly consistent.
|
||||
|
||||
@item
|
||||
Commands to scale and rotate images are once again bound to single
|
||||
keys like @kbd{+}, @kbd{-}, and @kbd{r}, which makes them much easier
|
||||
to type. As for the risk of typing these by mistake, we don't believe
|
||||
Emacs users make typing mistakes, especially as they move back in
|
||||
time and become younger and younger.
|
||||
Compact mode-line display mode has been removed. The items displayed
|
||||
on the mode line are now always in the same place, and if there's not
|
||||
enough space for them, they are not displayed at all, instead of being
|
||||
confusingly displayed in a different position. You no longer need to
|
||||
think twice where to find a particular mode-line element on display.
|
||||
|
||||
@item
|
||||
To simplify typing popular commands, we've rebound the @w{@kbd{C-x 8 . .}}
|
||||
back to @w{@kbd{C-x 8 .}} and @w{@kbd{C-x 8 = =}} back to @w{@kbd{C-x 8 =}}.
|
||||
There's no need for fancier, longer key sequences, as moving back in
|
||||
time means we will have fewer and fewer commands to bind to them in
|
||||
the first place.
|
||||
Many commands and options related to tab bars were removed, including
|
||||
(but not limited to) frame-specific appearance of tab bars, the
|
||||
@code{tab-bar-format} option, the @kbd{C-x t n}, @kbd{C-x t N},
|
||||
@kbd{C-x t M}, and @kbd{C-x t G} commands, and many mouse gestures on
|
||||
the tab bar. We are going to delete the tab bar support from Emacs in
|
||||
one of the past versions, and this is a step in that direction.
|
||||
|
||||
@item
|
||||
If you inadvertently kill the @file{*scratch*} buffer, Emacs will
|
||||
recreate it in Fundamental mode, not in Lisp Interaction mode. You
|
||||
get to turn on the mode you like yourself. Our long-term plans for
|
||||
past Emacs releases is to remove the recreation of @file{*scratch*}
|
||||
altogether, and this is the first step in that direction.
|
||||
The ``transient'' input methods have been removed; use @kbd{C-\} to
|
||||
turn input methods on and off instead. This is in preparation for
|
||||
complete removal of input methods from Emacs in version 19, and
|
||||
consistent with the fact that the number of input methods we support
|
||||
becomes smaller as you move back in time.
|
||||
|
||||
@item
|
||||
Support for @code{rlogin} and @code{rsh} protocols are back, since we
|
||||
expect them to become more and more important and popular as you move
|
||||
back in time.
|
||||
We disabled @code{show-paren-mode} by default, since we think the
|
||||
venerable @code{blink-matching-paren} feature is more than enough, and
|
||||
better fits the simplicity of past Emacs versions. It will definitely
|
||||
be better when colors are removed from Emacs in the distant past.
|
||||
|
||||
For the same reason, sub-groups in interactive regexp searches are no
|
||||
longer highlighted in distinct colors.
|
||||
|
||||
@item
|
||||
In preparation for eventual removal of Unicode support from Emacs,
|
||||
we've downgraded our Unicode support to version 14.0.
|
||||
On our permanent quest for simplifying Emacs, we've removed the Ispell
|
||||
command @code{ispell-comment-or-string-at-point}; the old-time friend
|
||||
@code{ispell-comments-and-strings} should suffice.
|
||||
|
||||
@item
|
||||
You can no longer change the size of the font globally. Since Emacs
|
||||
will at some past date remove all support for variable-size fonts,
|
||||
having such commands is a luxury we are better without.
|
||||
Many Gnus commands and options were deemed to unnecessarily complicate
|
||||
the use of Gnus (which is too complex to begin with), and thus were
|
||||
removed. This includes @code{gnus-topic-display-predicate},
|
||||
@code{gnus-process-mark-toggle}, @code{gnus-registry-register-all},
|
||||
@code{gnus-paging-select-next}, and many others. The @code{nnselect}
|
||||
backend was deleted for the same reason.
|
||||
|
||||
@item
|
||||
On our permanent quest for simplifying Emacs, we've removed the
|
||||
commands @code{duplicate-line} and @code{duplicate-dwim}; the old-time
|
||||
friends @kbd{M-w} and @kbd{C-y} (typed one or more times) should
|
||||
suffice. The command @code{rename-visited-file} is gone for the same
|
||||
reason.
|
||||
|
||||
@item
|
||||
We've deleted many commands related to Emoji, which were bound in the
|
||||
@kbd{C-x 8 e} prefix keymap. We decided that the ability to type
|
||||
Emoji sequences using @kbd{C-x 8 @key{RET}} is enough, and actually
|
||||
serves our users better by requiring them to know the codepoints of
|
||||
the sequences they want to type.
|
||||
|
||||
@item
|
||||
We dropped support for many scripts and input methods, especially old
|
||||
scripts that no one uses anyway. For similar reasons, Greek and
|
||||
Ukrainian translations of the Emacs tutorial are not available
|
||||
anymore.
|
||||
|
||||
@item
|
||||
@file{package.el} can no longer fetch source code of packages from
|
||||
their VCS repositories. We think command-line tools like Git should
|
||||
be enough to allow you to clone their repositories. So we deleted
|
||||
the @code{package-vc-install} command and other similar commands.
|
||||
The @file{project.el} package have been redesigned to remove many
|
||||
unnecessary features, so that just the bare essentials remain. We
|
||||
plan on removing this package from Emacs in a previous version, but
|
||||
decided to begin with removing some extra features first.
|
||||
|
||||
@item
|
||||
To keep up with decreasing computer memory capacity and disk space, many
|
||||
other functions and files have been eliminated in Emacs 28.2.
|
||||
other functions and files have been eliminated in Emacs 27.2.
|
||||
@end itemize
|
||||
|
|
|
|||
|
|
@ -347,11 +347,11 @@ move to the column number specified by the argument's numeric value.
|
|||
@kindex C-x C-n
|
||||
@findex set-goal-column
|
||||
Use the current column of point as the @dfn{semipermanent goal column}
|
||||
(@code{set-goal-column}) in the current buffer. When a semipermanent
|
||||
goal column is in effect, @kbd{C-n}, @kbd{C-p}, @kbd{<prior>} and
|
||||
@kbd{<next>} always try to move to this column, or as close as
|
||||
possible to it, after moving vertically. The goal column remains in
|
||||
effect until canceled.
|
||||
for @kbd{C-n} and @kbd{C-p} (@code{set-goal-column}) in the current
|
||||
buffer. When a semipermanent goal column is in effect, those commands
|
||||
always try to move to this column, or as close as possible to it,
|
||||
after moving vertically. The goal column remains in effect until
|
||||
canceled.
|
||||
|
||||
@item C-u C-x C-n
|
||||
Cancel the goal column. Henceforth, @kbd{C-n} and @kbd{C-p} try to
|
||||
|
|
@ -653,14 +653,14 @@ Toggle automatic display of the current line number or column number.
|
|||
displayed before each line, see @ref{Display Custom}.
|
||||
|
||||
@item M-=
|
||||
Display the number of lines, sentences, words, and characters that are
|
||||
present in the region (@code{count-words-region}). @xref{Mark}, for
|
||||
information about the region.
|
||||
Display the number of lines, words, and characters that are present in
|
||||
the region (@code{count-words-region}). @xref{Mark}, for information
|
||||
about the region.
|
||||
|
||||
@item M-x count-words
|
||||
Display the number of lines, sentences, words, and characters that are
|
||||
present in the buffer. If the region is active (@pxref{Mark}),
|
||||
display the numbers for the region instead.
|
||||
Display the number of lines, words, and characters that are present in
|
||||
the buffer. If the region is active (@pxref{Mark}), display the
|
||||
numbers for the region instead.
|
||||
|
||||
@item C-x =
|
||||
Display the character code of character after point, character position of
|
||||
|
|
@ -689,7 +689,7 @@ narrowed region and the line number relative to the whole buffer.
|
|||
@kindex M-=
|
||||
@findex count-words-region
|
||||
@kbd{M-=} (@code{count-words-region}) displays a message reporting
|
||||
the number of lines, sentences, words, and characters in the region
|
||||
the number of lines, words, and characters in the region
|
||||
(@pxref{Mark}, for an explanation of the region). With a prefix
|
||||
argument, @kbd{C-u M-=}, the command displays a count for the entire
|
||||
buffer.
|
||||
|
|
@ -887,40 +887,19 @@ z z z}. The first @kbd{C-x z} repeats the command once, and each
|
|||
subsequent @kbd{z} repeats it once again.
|
||||
|
||||
@findex repeat-mode
|
||||
@findex describe-repeat-maps
|
||||
@vindex repeat-exit-key
|
||||
@vindex repeat-exit-timeout
|
||||
You can also activate @code{repeat-mode} which allows repeating
|
||||
commands bound to sequences of two or more keys by typing a single
|
||||
character. For example, after typing @w{@kbd{C-x u}} (@code{undo},
|
||||
@pxref{Undo}) to undo the most recent edits, you can undo many more
|
||||
edits by typing @w{@kbd{u u u@dots{}}}. Similarly, type @w{@kbd{C-x o
|
||||
o o@dots{}}} instead of @w{@kbd{C-x o C-x o C-x o@dots{}}} to switch
|
||||
to the window several windows away. This works by entering a
|
||||
transient repeating mode after you type the full key sequence that
|
||||
invokes the command; the single-key shortcuts are shown in the echo
|
||||
area.
|
||||
|
||||
Only some commands support repetition in @code{repeat-mode}; type
|
||||
@w{@kbd{M-x describe-repeat-maps @key{RET}}} to see which ones.
|
||||
|
||||
The single-character shortcuts enabled by the transient repeating mode
|
||||
do not need to be identical: for example, after typing @w{@kbd{C-x
|
||||
@{}}, either @kbd{@{} or @kbd{@}} or @kbd{^} or @kbd{v}, or any series
|
||||
that mixes these characters in any order, will resize the selected
|
||||
window in respective ways. Similarly, after @w{@kbd{M-g n}} or
|
||||
@kbd{M-g p}, typing any sequence of @kbd{n} and/or @kbd{p} in any mix
|
||||
will repeat @code{next-error} and @code{previous-error} to navigate in
|
||||
a @file{*compilation*} or @file{*grep*} buffer (@pxref{Compilation
|
||||
Mode}).
|
||||
|
||||
Typing any key other than those defined to repeat the previous command
|
||||
exits the transient repeating mode, and then the key you typed is
|
||||
executed normally. You can also define a key which will exit the
|
||||
transient repeating mode @emph{without} executing the key which caused
|
||||
the exit. To this end, customize the user option
|
||||
@code{repeat-exit-key} to name a key; one natural value is @key{RET}.
|
||||
Finally, it's possible to break the repetition chain automatically
|
||||
after some amount of idle time: customize the user option
|
||||
@code{repeat-exit-timeout} to specify the idle time in seconds after
|
||||
which this transient repetition mode will be turned off automatically.
|
||||
Also you can activate @code{repeat-mode} that temporarily enables a
|
||||
transient mode with short keys after a limited number of commands.
|
||||
Currently supported shorter key sequences are @kbd{C-x u u} instead of
|
||||
@kbd{C-x u C-x u} to undo many changes, @kbd{C-x o o} instead of
|
||||
@kbd{C-x o C-x o} to switch several windows, @kbd{C-x @{ @{ @} @} ^ ^
|
||||
v v} to resize the selected window interactively, @kbd{M-g n n p p} to
|
||||
navigate @code{next-error} matches, and @kbd{C-x ] ] [ [} to navigate
|
||||
through pages. Any other key exits transient mode and then is
|
||||
executed normally. The user option @code{repeat-exit-key} defines an
|
||||
additional key to exit this transient mode. Also it's possible to
|
||||
break the repetition chain automatically after some idle time by
|
||||
customizing the user option @code{repeat-exit-timeout} to specify the
|
||||
idle time in seconds after which this transient mode will be turned
|
||||
off.
|
||||
|
|
|
|||
|
|
@ -630,24 +630,22 @@ buffer, but killing an indirect buffer has no effect on its base buffer.
|
|||
One way to use indirect buffers is to display multiple views of an
|
||||
outline. @xref{Outline Views}.
|
||||
|
||||
@vindex clone-indirect-buffer-hook
|
||||
A quick and handy way to make an indirect buffer is with the command
|
||||
@kbd{C-x 4 c} (@code{clone-indirect-buffer-other-window}). It creates
|
||||
and selects an indirect buffer whose base buffer is the current
|
||||
buffer. With a numeric argument, it prompts for the name of the
|
||||
indirect buffer; otherwise it uses the name of the current buffer,
|
||||
with a @samp{<@var{n}>} suffix added.
|
||||
@kbd{M-x clone-indirect-buffer}. It creates and selects an indirect
|
||||
buffer whose base buffer is the current buffer. With a numeric
|
||||
argument, it prompts for the name of the indirect buffer; otherwise it
|
||||
uses the name of the current buffer, with a @samp{<@var{n}>} suffix
|
||||
added. @kbd{C-x 4 c} (@code{clone-indirect-buffer-other-window})
|
||||
works like @kbd{M-x clone-indirect-buffer}, but it selects the new
|
||||
buffer in another window. These functions run the hook
|
||||
@code{clone-indirect-buffer-hook} after creating the indirect buffer.
|
||||
|
||||
The more general way to make an indirect buffer is with the command
|
||||
@kbd{M-x make-indirect-buffer}. It creates an indirect buffer
|
||||
named @var{indirect-name} from a buffer @var{base-buffer}, prompting for
|
||||
both using the minibuffer.
|
||||
|
||||
@vindex clone-indirect-buffer-hook
|
||||
The functions that create indirect buffers run the hook
|
||||
@code{clone-indirect-buffer-hook} after creating the indirect buffer.
|
||||
When this hook runs, the newly created indirect buffer is the current
|
||||
buffer.
|
||||
|
||||
Note: When a modification is made to the text of a buffer, the
|
||||
modification hooks are run only in the base buffer, because most of
|
||||
the functions on those hooks are not prepared to work correctly in
|
||||
|
|
|
|||
|
|
@ -138,14 +138,6 @@ of environment variable settings; each element should be a string of
|
|||
the form @code{"@var{envvarname}=@var{value}"}. These environment
|
||||
variable settings override the usual ones.
|
||||
|
||||
@vindex compilation-max-output-line-length
|
||||
Displaying extremely long lines in compilation output can slow Emacs
|
||||
down. Lines that are longer than
|
||||
@code{compilation-max-output-line-length} will have the portion that's
|
||||
exceeds that limit hidden behind a button that can be clicked on to
|
||||
reveal the hidden portion. Set this variable to @code{nil} to never
|
||||
hide anything.
|
||||
|
||||
@node Compilation Mode
|
||||
@section Compilation Mode
|
||||
|
||||
|
|
@ -178,9 +170,7 @@ list of customization variables and faces.
|
|||
If you change the variable
|
||||
@code{compilation-auto-jump-to-first-error} to a non-@code{nil} value,
|
||||
Emacs automatically visits the locus of the first error message that
|
||||
appears in the @file{*compilation*} buffer. (This variable can also
|
||||
have the values @code{if-location-known} and @code{first-known}, which
|
||||
modify the conditions for automatically visiting the error locus.)
|
||||
appears in the @file{*compilation*} buffer.
|
||||
|
||||
Compilation mode provides the following additional commands. These
|
||||
commands can also be used in @file{*grep*} buffers, where the
|
||||
|
|
@ -289,19 +279,6 @@ window so that the current error message is @var{n} lines from the
|
|||
top, whether or not there is a fringe; the default value, @code{nil},
|
||||
gives the behavior described above.
|
||||
|
||||
@vindex compilation-hidden-output
|
||||
Compilation output can sometimes be very verbose, and much of it isn't
|
||||
of particular interest to a user. The
|
||||
@code{compilation-hidden-output} user option should either be a regexp
|
||||
or a list of regexps, and output that matches will be made invisible.
|
||||
For instance, to hide the verbose output from recursive makefiles, you
|
||||
can say something like:
|
||||
|
||||
@lisp
|
||||
(setq compilation-hidden-output
|
||||
'("^make[^\n]+\n"))
|
||||
@end lisp
|
||||
|
||||
@vindex compilation-error-regexp-alist
|
||||
@vindex grep-regexp-alist
|
||||
To parse messages from the compiler, Compilation mode uses the
|
||||
|
|
@ -961,7 +938,9 @@ the fringe of a source buffer to set a breakpoint there.
|
|||
@vindex gud-gdb-command-name
|
||||
To run GDB using just the GUD interaction buffer interface, without
|
||||
these additional features, use @kbd{M-x gud-gdb} (@pxref{Starting
|
||||
GUD}).
|
||||
GUD}). You must use this if you want to debug multiple programs
|
||||
within one Emacs session, as that is currently unsupported by @kbd{M-x
|
||||
gdb}.
|
||||
|
||||
Internally, @kbd{M-x gdb} informs GDB that its screen size is
|
||||
unlimited; for correct operation, you must not change GDB's screen
|
||||
|
|
@ -1049,9 +1028,9 @@ to restore only when @code{gdb-show-main} is non-@code{nil}.
|
|||
You may also specify additional GDB-related buffers to display,
|
||||
either in the same frame or a different one. Select the buffers you
|
||||
want by typing @kbd{M-x gdb-display-@var{buffertype}-buffer} or
|
||||
@kbd{M-x gdb-frame-@var{buffertype}-buffer}, where @var{buffertype} is
|
||||
the relevant buffer type, such as @samp{breakpoints} or @samp{io}.
|
||||
You can do the same from the menu bar, with the @samp{GDB-Windows} and
|
||||
@kbd{M-x gdb-frame-@var{buffertype}-buffer}, where @var{buffertype}
|
||||
is the relevant buffer type, such as @samp{breakpoints}. You can do
|
||||
the same with the menu bar, with the @samp{GDB-Windows} and
|
||||
@samp{GDB-Frames} sub-menus of the @samp{GUD} menu.
|
||||
|
||||
@vindex gdb-max-source-window-count
|
||||
|
|
@ -1271,14 +1250,10 @@ non-@code{nil} value.
|
|||
@node Other GDB Buffers
|
||||
@subsubsection Other GDB Buffers
|
||||
|
||||
Other buffers provided by @kbd{M-x gdb} whose display you can
|
||||
optionally request include:
|
||||
|
||||
@table @asis
|
||||
@findex gdb-display-locals-buffer
|
||||
@item Locals Buffer
|
||||
This buffer displays the values of local variables of the current
|
||||
stack frame for simple data types (@pxref{Frame Info, Frame Info,
|
||||
frame for simple data types (@pxref{Frame Info, Frame Info,
|
||||
Information on a frame, gdb, The GNU debugger}). Press @key{RET} or
|
||||
click @kbd{mouse-2} on the value if you want to edit it.
|
||||
|
||||
|
|
@ -1288,35 +1263,20 @@ you can examine the value of the local variable at point by typing
|
|||
GDB, use @key{RET} or @kbd{mouse-2} on the type description
|
||||
(@samp{[struct/union]} or @samp{[array]}). @xref{Watch Expressions}.
|
||||
|
||||
To display the Locals buffer, type @kbd{M-x gdb-display-locals-buffer}.
|
||||
|
||||
@findex gdb-display-io-buffer
|
||||
@item I/O Buffer
|
||||
If the program you are debugging uses standard input and output
|
||||
streams for interaction with the user, or emits a significant amount
|
||||
of output to its standard output, you may wish to separate its I/O
|
||||
from interaction with GDB. Use the command @w{@kbd{M-x
|
||||
gdb-display-io-buffer}} to show a window with a buffer to which Emacs
|
||||
redirects the input and output from the program you are debugging.
|
||||
|
||||
@findex gdb-display-registers-buffer
|
||||
@item Registers Buffer
|
||||
@findex toggle-gdb-all-registers
|
||||
This buffer displays the values held by the registers
|
||||
(@pxref{Registers,,, gdb, The GNU debugger}). Request the display of
|
||||
this buffer with the command @kbd{M-x gdb-display-registers-buffer}.
|
||||
Press @key{RET} or click @kbd{mouse-2} on a register if you want to
|
||||
edit its value. With GDB 6.4 or later, recently changed register
|
||||
values display with @code{font-lock-warning-face}.
|
||||
(@pxref{Registers,,, gdb, The GNU debugger}). Press @key{RET} or
|
||||
click @kbd{mouse-2} on a register if you want to edit its value. With
|
||||
GDB 6.4 or later, recently changed register values display with
|
||||
@code{font-lock-warning-face}.
|
||||
|
||||
@findex gdb-display-disassembly-buffer
|
||||
@item Assembler Buffer
|
||||
The assembler buffer displays the current frame as machine code. An
|
||||
arrow points to the current instruction, and you can set and remove
|
||||
breakpoints as in a source buffer. Breakpoint icons also appear in
|
||||
the fringe or margin. To request the display of this buffer, use
|
||||
@kbd{M-x gdb-display-disassembly-buffer}.
|
||||
the fringe or margin.
|
||||
|
||||
@findex gdb-display-memory-buffer
|
||||
@item Memory Buffer
|
||||
The memory buffer lets you examine sections of program memory
|
||||
(@pxref{Memory, Memory, Examining memory, gdb, The GNU debugger}).
|
||||
|
|
@ -1324,8 +1284,7 @@ Click @kbd{mouse-1} on the appropriate part of the header line to
|
|||
change the starting address or number of data items that the buffer
|
||||
displays. Alternatively, use @kbd{S} or @kbd{N} respectively. Click
|
||||
@kbd{mouse-3} on the header line to select the display format or unit
|
||||
size for these data items. Use @w{@kbd{M-x
|
||||
gdb-display-memory-buffer}} to request display of this buffer.
|
||||
size for these data items.
|
||||
@end table
|
||||
|
||||
When @code{gdb-many-windows} is non-@code{nil}, the locals buffer
|
||||
|
|
@ -1556,26 +1515,18 @@ command prompts for a @dfn{library name} rather than a file name; it
|
|||
searches through each directory in the Emacs Lisp load path, trying to
|
||||
find a file matching that library name. If the library name is
|
||||
@samp{@var{foo}}, it tries looking for files named
|
||||
@file{@var{foo}.elc}, @file{@var{foo}.el}, and @file{@var{foo}}. (If
|
||||
Emacs was built with native compilation enabled, @code{load-library}
|
||||
looks for a @samp{.eln} file that corresponds to @file{@var{foo}.el}
|
||||
and loads it instead of @file{@var{foo}.elc}.) The default behavior
|
||||
is to load the first file found. This command prefers @file{.eln}
|
||||
files over @file{.elc} files, and prefers @file{.elc} files over
|
||||
@file{.el} files, because compiled files load and run faster. If it
|
||||
finds that @file{@var{lib}.el} is newer than @file{@var{lib}.elc}, it
|
||||
issues a warning, in case someone made changes to the @file{.el} file
|
||||
and forgot to recompile it, but loads the @file{.elc} file anyway.
|
||||
(Due to this behavior, you can save unfinished edits to Emacs Lisp
|
||||
source files, and not recompile until your changes are ready for use.)
|
||||
If you set the option @code{load-prefer-newer} to a non-@code{nil}
|
||||
value, however, then rather than the procedure described above, Emacs
|
||||
loads whichever version of the file is newest. If Emacs was built
|
||||
with native compilation, and it cannot find the @samp{.eln} file
|
||||
corresponding to @file{@var{lib}.el}, it will load a
|
||||
@file{@var{lib}.elc} and start native compilation of
|
||||
@file{@var{lib}.el} in the background, then load the @samp{.eln} file
|
||||
when it finishes compilation.
|
||||
@file{@var{foo}.elc}, @file{@var{foo}.el}, and @file{@var{foo}}. The
|
||||
default behavior is to load the first file found. This command
|
||||
prefers @file{.elc} files over @file{.el} files because compiled files
|
||||
load and run faster. If it finds that @file{@var{lib}.el} is newer
|
||||
than @file{@var{lib}.elc}, it issues a warning, in case someone made
|
||||
changes to the @file{.el} file and forgot to recompile it, but loads
|
||||
the @file{.elc} file anyway. (Due to this behavior, you can save
|
||||
unfinished edits to Emacs Lisp source files, and not recompile until
|
||||
your changes are ready for use.) If you set the option
|
||||
@code{load-prefer-newer} to a non-@code{nil} value, however, then
|
||||
rather than the procedure described above, Emacs loads whichever
|
||||
version of the file is newest.
|
||||
|
||||
Emacs Lisp programs usually load Emacs Lisp files using the
|
||||
@code{load} function. This is similar to @code{load-library}, but is
|
||||
|
|
@ -1612,11 +1563,6 @@ It is customary to put locally installed libraries in the
|
|||
@code{load-path}, or in some subdirectory of @file{site-lisp}. This
|
||||
way, you don't need to modify the default value of @code{load-path}.
|
||||
|
||||
@vindex native-comp-eln-load-path
|
||||
Similarly to @code{load-path}, the list of directories where Emacs
|
||||
looks for @file{*.eln} files with natively-compiled Lisp code is
|
||||
specified by the variable @code{native-comp-eln-load-path}.
|
||||
|
||||
@cindex autoload
|
||||
Some commands are @dfn{autoloaded}; when you run them, Emacs
|
||||
automatically loads the associated library first. For instance, the
|
||||
|
|
@ -1791,10 +1737,6 @@ which is provided for evaluating Emacs Lisp expressions interactively.
|
|||
Its major mode is Lisp Interaction mode. You can also enable Lisp
|
||||
Interaction mode by typing @kbd{M-x lisp-interaction-mode}.
|
||||
|
||||
@findex scratch-buffer
|
||||
If you kill the @file{*scratch*} buffer, you can recreate it with
|
||||
the @kbd{M-x scratch-buffer} command.
|
||||
|
||||
@findex eval-print-last-sexp
|
||||
@kindex C-j @r{(Lisp Interaction mode)}
|
||||
In the @file{*scratch*} buffer, and other Lisp Interaction mode
|
||||
|
|
|
|||
|
|
@ -185,11 +185,6 @@ successfully.
|
|||
@item --version
|
||||
@opindex --version
|
||||
Print Emacs version, then exit successfully.
|
||||
|
||||
@item --fingerprint
|
||||
@opindex --fingerprint
|
||||
Print the Emacs ``fingerprint'', which is used to uniquely identify
|
||||
the compiled version of Emacs.
|
||||
@end table
|
||||
|
||||
@node Initial Options
|
||||
|
|
@ -294,22 +289,6 @@ which will invoke Emacs with @samp{--script} and supply the name of
|
|||
the script file as @var{file}. Emacs Lisp then treats the @samp{#!}
|
||||
on this first line as a comment delimiter.
|
||||
|
||||
@item -x
|
||||
@opindex -x
|
||||
This option can only be used in executable script files, and should be
|
||||
invoked like this:
|
||||
|
||||
@example
|
||||
#!/usr/bin/emacs -x
|
||||
@end example
|
||||
|
||||
This is like @samp{--script}, but suppresses loading the init files
|
||||
(like @code{--quick}), and can't be used on a normal command line
|
||||
(since it doesn't specify the script to load). In addition, when it
|
||||
reaches the end of the script, it exits Emacs and uses the value of
|
||||
the final form as the exit value from the script (if the final value
|
||||
is numerical). Otherwise, it will always exit with a zero value.
|
||||
|
||||
@item --no-build-details
|
||||
@opindex --no-build-details
|
||||
@cindex build details
|
||||
|
|
@ -345,10 +324,6 @@ option does this too, but other options like @samp{-q} do not.
|
|||
Do not include the @file{site-lisp} directories in @code{load-path}
|
||||
(@pxref{Init File}). The @samp{-Q} option does this too.
|
||||
|
||||
@item --init-directory
|
||||
@opindex --init-directory
|
||||
Specify the directory to use when looking for the Emacs init files.
|
||||
|
||||
@item --no-splash
|
||||
@opindex --no-splash
|
||||
@cindex splash screen
|
||||
|
|
@ -776,10 +751,6 @@ On MS-Windows, if you set this variable, Emacs will load and initialize
|
|||
the network library at startup, instead of waiting until the first
|
||||
time it is required.
|
||||
|
||||
@item WAYLAND_DISPLAY
|
||||
Pgtk Emacs (built with @option{--with-pgtk}) can run on Wayland natively.
|
||||
@env{WAYLAND_DISPLAY} specifies the connection to the compositor.
|
||||
|
||||
@item emacs_dir
|
||||
On MS-Windows, @env{emacs_dir} is a special environment variable, which
|
||||
indicates the full path of the directory in which Emacs is installed.
|
||||
|
|
|
|||
|
|
@ -24,8 +24,8 @@ input.
|
|||
|
||||
GNU Emacs is primarily designed for use with the keyboard. While it
|
||||
is possible to use the mouse to issue editing commands through the
|
||||
menu bar and tool bar, that is usually not as efficient as using the
|
||||
keyboard.
|
||||
menu bar and tool bar, that is not as efficient as using the keyboard.
|
||||
Therefore, this manual mainly documents how to edit with the keyboard.
|
||||
|
||||
@cindex control character
|
||||
Keyboard input into Emacs is based on a heavily-extended version of
|
||||
|
|
@ -67,10 +67,6 @@ where the @key{Meta} key does not function reliably.
|
|||
|
||||
Emacs supports 3 additional modifier keys, see @ref{Modifier Keys}.
|
||||
|
||||
Emacs has extensive support for using mouse buttons, mouse wheels
|
||||
and other pointing devices like touchpads and touch screens.
|
||||
@xref{Mouse Input}, for details.
|
||||
|
||||
@cindex keys stolen by window manager
|
||||
@cindex window manager, keys stolen by
|
||||
On graphical displays, the window manager might block some keyboard
|
||||
|
|
@ -139,47 +135,6 @@ exception to this rule is @key{ESC}: @kbd{@key{ESC} C-h} is equivalent
|
|||
to @kbd{C-M-h}, which does something else entirely. You can, however,
|
||||
use @key{F1} to display a list of commands starting with @key{ESC}.
|
||||
|
||||
@node Mouse Input
|
||||
@section Mouse Input
|
||||
@cindex mouse input
|
||||
|
||||
By default, Emacs supports all the normal mouse actions like setting
|
||||
the cursor by clicking on the left mouse button, and selecting an area
|
||||
by dragging the mouse pointer. All mouse actions can be used to bind
|
||||
commands in the same way you bind them to keyboard events
|
||||
(@pxref{Keys}). This section provides a general overview of using the
|
||||
mouse in Emacs; @pxref{Mouse Commands}, and the sections that follow
|
||||
it, for more details about mouse commands in Emacs.
|
||||
|
||||
When you click the left mouse button, Emacs receives a
|
||||
@code{mouse-1} event. To see what command is bound to that event, you
|
||||
can type @kbd{C-h c} and then press the left mouse button. Similarly,
|
||||
the middle mouse button is @code{mouse-2} and the right mouse button is
|
||||
@code{mouse-3}. If you have a mouse with a wheel, the wheel events
|
||||
are commonly bound to either @code{wheel-down} or @code{wheel-up}, or
|
||||
@code{mouse-4} and @code{mouse-5}, but that depends on the operating
|
||||
system configuration.
|
||||
|
||||
In general, legacy X systems and terminals (@pxref{Text-Only Mouse})
|
||||
will report @code{mouse-4} and @code{mouse-5}, while all other systems
|
||||
will report @code{wheel-down} and @code{wheel-up}.
|
||||
|
||||
Some mice also have a horizontal scroll wheel, and touchpads usually
|
||||
support scrolling horizontally as well. These events are reported as
|
||||
@code{wheel-left} and @code{wheel-right} on all systems other than
|
||||
terminals and legacy X systems, where they are @code{mouse-6} and
|
||||
@code{mouse-7}.
|
||||
|
||||
You can also combine keyboard modifiers with mouse events, so you
|
||||
can bind a special command that triggers when you, for instance, holds
|
||||
down the Meta key and then uses the middle mouse button. In that
|
||||
case, the event name will be @code{M-mouse-2}.
|
||||
|
||||
@cindex touchscreen events
|
||||
On some systems, you can also bind commands for handling touch
|
||||
screen events. In that case, the events are called
|
||||
@code{touchscreen-update} and @code{touchscreen-end}.
|
||||
|
||||
@node Commands
|
||||
@section Keys and Commands
|
||||
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue