forked from Github/emacs
Compare commits
4 commits
master
...
scratch/ic
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
70da05ac17 | ||
|
|
704855af17 | ||
|
|
4fa193527d | ||
|
|
4e1da63bef |
3822 changed files with 171266 additions and 716509 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)))
|
||||
|
|
|
|||
2
.gitattributes
vendored
2
.gitattributes
vendored
|
|
@ -1,6 +1,6 @@
|
|||
# Attributes of Emacs files in the Git repository.
|
||||
|
||||
# Copyright 2015-2023 Free Software Foundation, Inc.
|
||||
# Copyright 2015-2021 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
|
|
|
|||
30
.gitignore
vendored
30
.gitignore
vendored
|
|
@ -1,6 +1,6 @@
|
|||
# Files that Git should ignore in the Emacs source directory.
|
||||
|
||||
# Copyright 2009-2023 Free Software Foundation, Inc.
|
||||
# Copyright 2009-2021 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
|
|
@ -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
|
||||
|
|
@ -67,7 +65,6 @@ lib/ieee754.h
|
|||
lib/inttypes.h
|
||||
lib/libgnu.a
|
||||
lib/limits.h
|
||||
lib/malloc/*.gl.h
|
||||
lib/signal.h
|
||||
lib/std*.h
|
||||
!lib/std*.in.h
|
||||
|
|
@ -146,7 +143,6 @@ src/gl-stamp
|
|||
core
|
||||
core.*[0-9]
|
||||
gmon.out
|
||||
native-lisp/
|
||||
oo/
|
||||
oo-spd/
|
||||
src/*.map
|
||||
|
|
@ -158,11 +154,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 +180,6 @@ ID
|
|||
# Executables.
|
||||
*.exe
|
||||
a.out
|
||||
lib-src/be-resources
|
||||
lib-src/blessmail
|
||||
lib-src/ctags
|
||||
lib-src/ebrowse
|
||||
|
|
@ -208,7 +201,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
|
||||
|
|
@ -220,11 +212,8 @@ etc/charsets/*.map
|
|||
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 +310,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
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Copyright (C) 2021-2023 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2021 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of GNU Emacs.
|
||||
#
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Emacs. If not, see <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
|
||||
|
|
|
|||
197
.mailmap
197
.mailmap
|
|
@ -1,197 +0,0 @@
|
|||
#
|
||||
# This list is used to fix a few misspelled names in various git
|
||||
# listings (e.g., "git log"). This can be used to fix incorrect
|
||||
# attribution, poor display, or names showing up more than once.
|
||||
# It also allows updating an old email addresses to a new one.
|
||||
#
|
||||
# See "man git-shortlog" for more information on the format.
|
||||
#
|
||||
# Keep file sorted using `M-x sort-lines'.
|
||||
#
|
||||
Aaron S. Hawley <aaron.s.hawley@gmail.com> <Aaron.Hawley@vtinfo.com>
|
||||
Aaron S. Hawley <aaron.s.hawley@gmail.com> <Aaron.S.Hawley@gmail.com>
|
||||
Aaron S. Hawley <aaron.s.hawley@gmail.com> <ashawley@burlingtontelecom.net>
|
||||
Alan Third <alan@idiocy.org>
|
||||
Alan Third <alan@idiocy.org> <alan@breton-build.holly.idiocy.org>
|
||||
Alan Third <alan@idiocy.org> Alan Third <address@hidden>
|
||||
Alan Third <alan@idiocy.org> bug-gnu-emacs@gnu.org <bug-gnu-emacs@gnu.org>
|
||||
Alex Harsanyi <AlexHarsanyi@gmail.com> <harsanyi@mac.com>
|
||||
Alexander Gramiak <agrambot@gmail.com>
|
||||
Amin Bandali <bandali@gnu.org> <mab@gnu.org>
|
||||
Andrea Corallo <akrl@sdf.org>
|
||||
Andrea Corallo <akrl@sdf.org> <akrl@sdf.com>
|
||||
Andrea Corallo <akrl@sdf.org> <andcor03@e112547.nice.arm.com>
|
||||
Andrea Corallo <akrl@sdf.org> <andrea_corallo@yahoo.it>
|
||||
Andrew G Cohen <cohen@andy.bu.edu>
|
||||
Andrew G Cohen <cohen@andy.bu.edu> <cohen@bu.edu>
|
||||
Arash Esbati <arash@gnu.org> <arash.esbati@gmail.com>
|
||||
Arash Esbati <arash@gnu.org> <esbati@gmx.de>
|
||||
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>
|
||||
Christoph Scholtes <cschol2112@gmail.com>
|
||||
Christoph Scholtes <cschol2112@gmail.com> <cschol2112@googlemail.com>
|
||||
Christoph Scholtes <cschol2112@gmail.com> Christoph Scholtes <>
|
||||
Clément Pit-Claudel <clement.pitclaudel@live.com>
|
||||
Clément Pit-Claudel <clement.pitclaudel@live.com> <clement.pit@gmail.com>
|
||||
Courtney Bane <emacs-bugs-7626@cbane.org>
|
||||
Daiki Ueno <ueno@gnu.org> <ueno@unixuser.org>
|
||||
Daiki Ueno <ueno@gnu.org> Daiki Ueno <ueno@debian>
|
||||
Dan Nicolaescu <dann@ics.uci.edu> <dann@gnu.org>
|
||||
Dan Nicolaescu <dann@ics.uci.edu> <done@ece.arizona.edu>
|
||||
Daniel Colascione <dancol@dancol.org> <dan.colascione@gmail.com>
|
||||
David Abrahams <dave@boostpro.com>
|
||||
David M. Koppelman <koppel@ece.lsu.edu>
|
||||
Deniz Dogan <deniz@dogan.se> <deniz.a.m.dogan@gmail.com>
|
||||
Dick R. Chiang <dick.r.chiang@gmail.com>
|
||||
Dick R. Chiang <dick.r.chiang@gmail.com> dickmao <none>
|
||||
Earl Hyatt <ej32u@protonmail.com>
|
||||
Earl Hyatt <ej32u@protonmail.com> <okamsn@protonmail.com>
|
||||
Edward M. Reingold <reingold@emr.cs.iit.edu>
|
||||
Eli Zaretskii <eliz@gnu.org> <eliz@is.elta.co.il>
|
||||
Emilio C. Lopes <eclig@gmx.net>
|
||||
Enami Tsugutomo <tsugutomo.enami@jp.sony.com>
|
||||
Era Eriksson <era+emacs@iki.fi> <era+emacsbugs@iki.fi>
|
||||
Eric Ludlam <zappo@gnu.org>
|
||||
Eric Ludlam <zappo@gnu.org> <eric@siege-engine.com>
|
||||
Eric Ludlam <zappo@gnu.org> <ericludlam@gmail.com>
|
||||
Eric S. Raymond <esr@thyrsus.com> <esr@snark.thyrsus.com>
|
||||
Etienne Prud’homme <e.e.f.prudhomme@gmail.com>
|
||||
Fabián Ezequiel Gallina <fgallina@gnu.org> <fgallina@cuca>
|
||||
Fabián Ezequiel Gallina <fgallina@gnu.org> <galli.87@gmail.com>
|
||||
Francis Litterio <flitterio@gmail.com>
|
||||
Gabor Vida <vidagabor@gmail.com>
|
||||
Gerd Möllmann <gerd@gnu.org>
|
||||
Gerd Möllmann <gerd@gnu.org> <gerd.moellmann@gmail.com>
|
||||
Glenn Morris <rgm@gnu.org>
|
||||
Glenn Morris <rgm@gnu.org> <rgm@fencepost>
|
||||
Glenn Morris <rgm@gnu.org> <rgm@stanford.edu>
|
||||
Gnus developers <ding@gnus.org.noreply> <ding@gnus.org>
|
||||
Gregory Heytings <gregory@heytings.org> <ghe@sdf.org>
|
||||
Grégoire Jadi <daimrod@gmail.com>
|
||||
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>
|
||||
Joakim Verona <joakim@verona.se>
|
||||
Joakim Verona <joakim@verona.se> <root@exodia.verona.se>
|
||||
John Wiegley <johnw@newartisans.com> <jwiegley@gmail.com>
|
||||
Jose A. Ortega Ruiz <jao@gnu.org>
|
||||
João Távora <joaotavora@gmail.com>
|
||||
Julien Danjou <julien@danjou.info> <jd@dex.adm.naquadah.org>
|
||||
Julien Danjou <julien@danjou.info> Julien Danjou <jd@abydos>
|
||||
Juri Linkov <juri@linkov.net> <juri@jurta.org>
|
||||
Jérémy Compostella <jeremy.compostella@gmail.com>
|
||||
Jürgen Hötzel <juergen@archlinux.org>
|
||||
Karl Fogel <kfogel@red-bean.com> <karl.fogel@canonical.com>
|
||||
Katsumi Yamaoka <yamaoka@jpl.org> <katsumi@flagship2>
|
||||
Kaushal Modi <kaushal.modi@gmail.com>
|
||||
Kelvin White <kwhite@gnu.org>
|
||||
Kelvin White <kwhite@gnu.org> <kelvin.white77@gmail.com>
|
||||
Ken Raeburn <raeburn@raeburn.org> <raeburn@permabit.com>
|
||||
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>
|
||||
Martin Rudalics <rudalics@gmx.at>
|
||||
Martin Rudalics <rudalics@gmx.at> <“rudalics@gmx.atâ€>
|
||||
Masatake YAMATO <yamato@redhat.com> <jet@gyve.org>
|
||||
Matt Armstrong <matt@rfc20.org> <marmstrong@google.com>
|
||||
Matt Armstrong <matt@rfc20.org> <matt@mdeb>
|
||||
Mattias Engdegård <mattiase@acm.org>
|
||||
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>
|
||||
Noam Postavsky <npostavs@gmail.com> <npostavs@users.sourceforge.net>
|
||||
Noam Postavsky <npostavs@gmail.com> <npostavs@users.sourceforget.net>
|
||||
Paul Eggert <eggert@cs.ucla.edu> <eggert@Penguin.CS.UCLA.EDU>
|
||||
Paul Eggert <eggert@cs.ucla.edu> <eggert@day>
|
||||
Paul Eggert <eggert@cs.ucla.edu> <eggert@twinsun.com>
|
||||
Paul Eggert <eggert@cs.ucla.edu> <eggert@union>
|
||||
Peter J. Weisberg <pj@irregularexpressions.net>
|
||||
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>
|
||||
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>
|
||||
Richard M. Stallman <rms@gnu.org>
|
||||
Robert J. Chassell <bob@gnu.org> <bob@rattlesnake.com>
|
||||
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>
|
||||
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>
|
||||
Stephen Berman <stephen.berman@gmx.net> <Stephen.Berman@gmx.net>
|
||||
Stephen Berman <stephen.berman@gmx.net> <Stephen.Berman@gmx.net>
|
||||
Stephen Berman <stephen.berman@gmx.net> <steve@rosalinde.fritz.box>
|
||||
Stephen Gildea <stepheng+emacs@gildea.com>
|
||||
Stephen Gildea <stepheng+emacs@gildea.com> <gildea@stop.mail-abuse.org>
|
||||
Stephen Gildea <stepheng+emacs@gildea.com> <stepheng+git-config-global@gildea.com>
|
||||
Stephen Gildea <stepheng+emacs@gildea.com> <stepheng+savannah@gildea.com>
|
||||
Tassilo Horn <tsdh@gnu.org> <tassilo@member.fsf.org>
|
||||
Ted Zlatanov <tzz@lifelogs.com>
|
||||
Thien-Thi Nguyen <ttn@gnu.org> <ttn@gnuvola.org>
|
||||
Thierry Volpiatto <thievol@posteo.net> <thierry.volpiatto@gmail.com>
|
||||
Tino Calancha <ccalancha@suse.com> <f92capac@gmail.com>
|
||||
Tino Calancha <ccalancha@suse.com> <tino.calancha@gmail.com>
|
||||
Tom Tromey <tom@tromey.com> <tromey@redhat.com>
|
||||
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>
|
||||
Łukasz Stelmach <stlman@poczta.fm> <lukasz.stelmach@iem.pw.edu.pl>
|
||||
112
CONTRIBUTE
112
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
|
||||
|
|
@ -61,7 +58,7 @@ format and whitespace are not munged in transit by the various mail
|
|||
agents. To send just one such patch without additional remarks, it is
|
||||
also possible to use a command like
|
||||
|
||||
git send-email --to=bug-gnu-emacs@gnu.org 0001-DESCRIPTION.patch
|
||||
git send-email --to=bug-gnu-emacs@gnu.org 0001-DESCRIPTION.patch'.
|
||||
|
||||
However, we prefer the 'git format-patch' method with attachment, as
|
||||
doing so delivers patches in the correct and easily-recognizable format
|
||||
|
|
@ -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
|
||||
|
|
@ -160,14 +157,6 @@ top-level directory. Most tests are in the directory "test/". From
|
|||
the "test/" directory, run "make <filename>" to run the tests for
|
||||
<filename>.el(c). See "test/README" for more information.
|
||||
|
||||
If you're making changes that involve the Emacs build system, please
|
||||
test 'out-of-tree' builds as well, i.e.:
|
||||
|
||||
mkdir emacs-build
|
||||
cd emacs-build
|
||||
../path-to-emacs-sources/configure
|
||||
make
|
||||
|
||||
** Commit messages
|
||||
|
||||
Ordinarily, a change you commit should contain a log entry in its
|
||||
|
|
@ -188,27 +177,20 @@ ChangeLog file, where they can be corrected. It saves time to get
|
|||
them right the first time, so here are guidelines for formatting them:
|
||||
|
||||
- Start with a single unindented summary line explaining the change;
|
||||
do not end this line with a period. If possible, try to keep the
|
||||
summary line to 50 characters or fewer; this is for compatibility
|
||||
with certain Git commands that print that line in width-constrained
|
||||
contexts.
|
||||
do not end this line with a period. If that line starts with a
|
||||
semicolon and a space "; ", the commit message will be ignored when
|
||||
generating the ChangeLog file. Use this for minor commits that do
|
||||
not need separate ChangeLog entries, such as changes in etc/NEWS.
|
||||
|
||||
If the summary line starts with a semicolon and a space "; ", the
|
||||
commit message will be ignored when generating the ChangeLog file.
|
||||
Use this for minor commits that do not need separate ChangeLog
|
||||
entries, such as changes in etc/NEWS.
|
||||
- After the summary line, there should be an empty line, then
|
||||
unindented ChangeLog entries.
|
||||
|
||||
- After the summary line, there should be an empty line.
|
||||
|
||||
- Unindented ChangeLog entries normally come next. However, if the
|
||||
commit couldn't be properly summarized in the brief summary line,
|
||||
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. It's nicer to limit the summary line to 50 characters;
|
||||
this isn't enforced. If the change can't be summarized so briefly,
|
||||
add a paragraph after the empty line and before the individual file
|
||||
descriptions.
|
||||
|
||||
- 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 +300,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
|
||||
|
||||
|
|
@ -386,9 +334,7 @@ Documentation fixes (in doc strings, in manuals, in NEWS, and in
|
|||
comments) should always go to the release branch, if the documentation
|
||||
to be fixed exists and is relevant to the release-branch codebase.
|
||||
Doc fixes are always considered "safe" -- even when a release branch
|
||||
is in feature freeze, it can still receive doc fixes. However, this
|
||||
rule is limited to fixing real problems in the documentation; cleanups
|
||||
and stylistic changes are excluded.
|
||||
is in feature freeze, it can still receive doc fixes.
|
||||
|
||||
When you know that the change will be difficult to merge to the
|
||||
master (e.g., because the code on master has changed a lot), you can
|
||||
|
|
@ -400,26 +346,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 +379,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
|
||||
|
|
|
|||
10
ChangeLog.1
10
ChangeLog.1
|
|
@ -930,7 +930,7 @@
|
|||
(mostlyclean_dirs, clean_dirs, distclean_dirs, maintainer_clean_dirs):
|
||||
New variables.
|
||||
(mostlyclean, clean, distclean, bootstrap-clean, maintainer-clean)
|
||||
(extraclean): Define using each subdirectory as a prerequisite.
|
||||
(extraclean): Define using each subdirectory as a prequisite.
|
||||
* lib/Makefile.am (bootstrap-clean): New.
|
||||
|
||||
2014-06-15 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
|
@ -2326,7 +2326,7 @@
|
|||
2013-07-03 Christoph Egger <christoph@debian.org> (tiny change)
|
||||
|
||||
* configure.ac (emacs_broken_SIGIO): Set on gnu-kfreebsd to avoid hang.
|
||||
https://bugs.debian.org/712974
|
||||
http://bugs.debian.org/712974
|
||||
|
||||
2013-07-02 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
|
||||
|
|
@ -14700,7 +14700,7 @@
|
|||
;; coding: utf-8
|
||||
;; End:
|
||||
|
||||
Copyright (C) 1993-1999, 2001-2023 Free Software Foundation, Inc.
|
||||
Copyright (C) 1993-1999, 2001-2021 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
|
|
|
|||
26
ChangeLog.2
26
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
|
||||
|
|
@ -4040,7 +4040,7 @@
|
|||
|
||||
* lisp/progmodes/xref.el (xref--query-replace-1):
|
||||
Say 'All results processed' at the end if the user hadn't
|
||||
canceled the process (bug#23284).
|
||||
cancelled the process (bug#23284).
|
||||
|
||||
2016-05-07 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
|
|
@ -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.
|
||||
|
||||
|
|
@ -12542,7 +12542,7 @@
|
|||
|
||||
* lisp/erc/erc-backend.el (erc-server-setup-periodical-ping): Checks
|
||||
for existing timers in the alist before adding new ones. If a
|
||||
timer already exists, it is canceled and
|
||||
timer already exists, it is cancelled and
|
||||
overwritten. (bug#19292).
|
||||
|
||||
2015-12-27 Jens Lechtenboerger <jens.lechtenboerger@fsfe.org>
|
||||
|
|
@ -22108,7 +22108,7 @@
|
|||
* src/gfilenotify.c (dir_monitor_callback): Cancel the monitor if
|
||||
the file or directory to be watched is deleted.
|
||||
(Fgfile_add_watch): Make watch_object a triple.
|
||||
(Fgfile_rm_watch): Check, whether watch is canceled already.
|
||||
(Fgfile_rm_watch): Check, whether watch is cancelled already.
|
||||
(Fgfile_valid_p): New defun.
|
||||
(syms_of_gfilenotify): Declare Sgfile_valid_p.
|
||||
|
||||
|
|
@ -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.
|
||||
|
||||
|
|
@ -35670,7 +35670,7 @@
|
|||
2015-04-08 Artur Malabarba <bruce.connor.am@gmail.com>
|
||||
|
||||
* lisp/emacs-lisp/package.el (package-menu-mode): Mode-line notification
|
||||
while downloading information.
|
||||
while dowloading information.
|
||||
|
||||
* lisp/emacs-lisp/package.el: More conservative `ensure-init-file'
|
||||
(package--ensure-init-file): Check file contents before visiting.
|
||||
|
|
@ -35787,7 +35787,7 @@ See ChangeLog.1 for earlier changes.
|
|||
;; coding: utf-8
|
||||
;; End:
|
||||
|
||||
Copyright (C) 2015-2023 Free Software Foundation, Inc.
|
||||
Copyright (C) 2015-2021 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
|
|
|
|||
92966
ChangeLog.3
92966
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
69
GNUmakefile
69
GNUmakefile
|
|
@ -1,6 +1,6 @@
|
|||
# Build Emacs from a fresh tarball or version-control checkout.
|
||||
|
||||
# Copyright (C) 2011-2023 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2011-2021 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of GNU Emacs.
|
||||
#
|
||||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
63
INSTALL
63
INSTALL
|
|
@ -1,16 +1,14 @@
|
|||
GNU Emacs Installation Guide
|
||||
Copyright (C) 1992, 1994, 1996-1997, 2000-2023 Free Software Foundation,
|
||||
Copyright (C) 1992, 1994, 1996-1997, 2000-2021 Free Software Foundation,
|
||||
Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
|
||||
This file contains general information on building GNU Emacs. For
|
||||
more information specific to the MS-Windows, GNUstep/macOS, and MS-DOS
|
||||
ports, also read the files nt/INSTALL, nextstep/INSTALL, and
|
||||
msdos/INSTALL.
|
||||
|
||||
For information about building from a 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
|
||||
|
|
@ -223,43 +220,11 @@ GNU/Linux distribution that you use, and the options that you want to
|
|||
configure Emacs with. On Debian-based systems, you can install all the
|
||||
packages needed to build the installed version of Emacs with a command
|
||||
like 'apt-get build-dep emacs' (on older systems, replace 'emacs' with
|
||||
e.g. 'emacs25'). On Red Hat-based systems, the corresponding command is
|
||||
eg 'emacs25'). On Red Hat-based systems, the corresponding command is
|
||||
'dnf builddep emacs' (on older systems, use 'yum-builddep' instead).
|
||||
|
||||
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,15 +322,8 @@ 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
|
||||
linking Emacs to a library with an ABI that requires a particular
|
||||
width for off_t or for time_t.
|
||||
Use --disable-largefile to omit support for files larger than 2GB on
|
||||
systems which support that.
|
||||
|
||||
Use --without-sound to disable sound support.
|
||||
|
||||
|
|
|
|||
27
INSTALL.REPO
27
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'
|
||||
|
|
@ -98,7 +83,7 @@ never platform-specific.
|
|||
|
||||
|
||||
|
||||
Copyright (C) 2002-2023 Free Software Foundation, Inc.
|
||||
Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
|
|
|
|||
241
Makefile.in
241
Makefile.in
|
|
@ -1,6 +1,6 @@
|
|||
### @configure_input@
|
||||
|
||||
# Copyright (C) 1992-2023 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1992-2021 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
|
|
@ -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
|
||||
|
|
@ -301,16 +285,10 @@ use_gamedir=$(gameuser)$(gamegroup)
|
|||
# not use an absolute path. So we must take care to always run
|
||||
# INSTALL-type commands from the directory containing the Makefile.
|
||||
# This explains (I think) the cd thisdir seen in several install rules.
|
||||
SYSTEM_TYPE = @SYSTEM_TYPE@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_INFO = @INSTALL_INFO@
|
||||
ifeq ($(SYSTEM_TYPE),cygwin)
|
||||
INSTALL_ELN = $(INSTALL)
|
||||
else
|
||||
INSTALL_ELN = $(INSTALL_DATA)
|
||||
endif
|
||||
# By default, we uphold the dignity of our programs.
|
||||
INSTALL_STRIP =
|
||||
MKDIR_P = @MKDIR_P@
|
||||
|
|
@ -320,21 +298,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 +336,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 +418,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 +429,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 +488,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 +514,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 +598,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 +655,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 +673,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 +704,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 +736,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 +750,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 +771,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 ; \
|
||||
|
|
@ -896,7 +791,7 @@ install-eln: lisp
|
|||
ifeq ($(HAVE_NATIVE_COMP),yes)
|
||||
umask 022 ; \
|
||||
find native-lisp -type d -exec $(MKDIR_P) "$(ELN_DESTDIR){}" \; ; \
|
||||
find native-lisp -type f -exec ${INSTALL_ELN} "{}" "$(ELN_DESTDIR){}" \;
|
||||
find native-lisp -type f -exec ${INSTALL_DATA} "{}" "$(ELN_DESTDIR){}" \;
|
||||
endif
|
||||
|
||||
### Build Emacs and install it, stripping binaries while installing them.
|
||||
|
|
@ -907,14 +802,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 \
|
||||
for dir in "$(DESTDIR)${lispdir}" "$(DESTDIR)${etcdir}" ; 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 +820,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 +898,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 +906,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 +916,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 +935,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 +1048,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 +1128,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
|
||||
|
|
@ -1283,11 +1158,11 @@ ChangeLog:
|
|||
./$(emacslog) -o $(CHANGELOG) -n $(CHANGELOG_HISTORY_INDEX_MAX)
|
||||
|
||||
# Check that we are in a good state for changing history.
|
||||
PREFERRED_BRANCH = emacs-28
|
||||
PREFERRED_BRANCH = emacs-27
|
||||
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 +1209,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
|
||||
|
|
|
|||
4
README
4
README
|
|
@ -1,8 +1,8 @@
|
|||
Copyright (C) 2001-2023 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001-2021 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.0.50 of GNU Emacs, the extensible,
|
||||
customizable, self-documenting real-time display editor.
|
||||
|
||||
The file INSTALL in this directory says how to build and install GNU
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -2577,7 +2577,7 @@
|
|||
;; coding: utf-8
|
||||
;; End:
|
||||
|
||||
Copyright (C) 2001-2023 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001-2021 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
15
admin/README
15
admin/README
|
|
@ -1,4 +1,4 @@
|
|||
Copyright (C) 2001-2023 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001-2021 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
|
||||
|
|
@ -61,19 +61,8 @@ Brief description of sub-directories:
|
|||
|
||||
charsets scripts for generating charset map files
|
||||
in ../etc/charsets
|
||||
coccinelle patches to make coccinelle work with
|
||||
the latest Emacs version. Since they
|
||||
apply a few minor changes in Emacs internals
|
||||
in multiple places, they are trivial for
|
||||
copyright purposes.
|
||||
grammars wisent and bovine grammars, used to produce
|
||||
files in lisp/cedet/.
|
||||
notes miscellaneous notes related to administrative
|
||||
tasks.
|
||||
nt support files for administrative tasks related
|
||||
to building MS-Windows distributions.
|
||||
unidata scripts for generating character property files
|
||||
in ../lisp/international/.
|
||||
in ../lisp/international
|
||||
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
|
|
|||
375
admin/admin.el
375
admin/admin.el
|
|
@ -1,6 +1,6 @@
|
|||
;;; admin.el --- utilities for Emacs administration -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2001-2023 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2001-2021 Free Software Foundation, Inc.
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
|
|
@ -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
|
||||
|
|
@ -348,13 +340,11 @@ Optional argument TYPE is type of output (nil means all)."
|
|||
\"https://www.w3.org/TR/html4/loose.dtd\">\n\n")
|
||||
|
||||
(defconst manual-meta-string
|
||||
"<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\n")
|
||||
|
||||
(defconst manual-links-string
|
||||
"<link rev=\"made\" href=\"mailto:bug-gnu-emacs@gnu.org\">
|
||||
"<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">
|
||||
<link rev=\"made\" href=\"mailto:bug-gnu-emacs@gnu.org\">
|
||||
<link rel=\"icon\" type=\"image/png\" href=\"/graphics/gnu-head-mini.png\">
|
||||
<meta name=\"ICBM\" content=\"42.256233,-71.006581\">
|
||||
<meta name=\"DC.title\" content=\"gnu.org\">\n")
|
||||
<meta name=\"DC.title\" content=\"gnu.org\">\n\n")
|
||||
|
||||
(defconst manual-style-string "<style type=\"text/css\">
|
||||
@import url('/software/emacs/manual.css');\n</style>\n")
|
||||
|
|
@ -485,13 +475,6 @@ the @import directive."
|
|||
(delete-region opoint (point))
|
||||
(search-forward "<meta http-equiv=\"Content-Style")
|
||||
(setq opoint (match-beginning 0)))
|
||||
(search-forward "<title>")
|
||||
(delete-region opoint (match-beginning 0))
|
||||
(search-forward "</title>\n")
|
||||
(when (search-forward "<link href=" nil t)
|
||||
(goto-char (match-beginning 0)))
|
||||
(insert manual-links-string)
|
||||
(setq opoint (point))
|
||||
(search-forward "</head>")
|
||||
(goto-char (match-beginning 0))
|
||||
(delete-region opoint (point))
|
||||
|
|
@ -608,81 +591,76 @@ style=\"text-align:left\">")
|
|||
(forward-line 1)
|
||||
(setq done t)))))
|
||||
(let (done open-td tag desc)
|
||||
;; Texinfo 6.8 and later doesn't produce <ul class="menu"> lists
|
||||
;; for the TOC menu, and the "description" part of each menu
|
||||
;; item is not there anymore. So for HTML manuals produced by
|
||||
;; those newer versions of Texinfo we punt and leave the menu in
|
||||
;; its original form.
|
||||
(when (or (search-forward "<ul class=\"menu\">" nil t)
|
||||
;; FIXME? The following search seems dangerously lax.
|
||||
(search-forward "<ul>" nil t))
|
||||
;; Convert the list that Makeinfo made into a table.
|
||||
(replace-match "<table style=\"float:left\" width=\"100%\">")
|
||||
(forward-line 1)
|
||||
(while (not done)
|
||||
(cond
|
||||
((or (looking-at "<li>\\(<a.+</a>\\):[ \t]+\\(.*\\)$")
|
||||
(looking-at "<li>\\(<a.+</a>\\)$"))
|
||||
(setq tag (match-string 1))
|
||||
(setq desc (match-string 2))
|
||||
(replace-match "" t t)
|
||||
(when open-td
|
||||
(save-excursion
|
||||
(forward-char -1)
|
||||
(skip-chars-backward " ")
|
||||
(delete-region (point) (line-end-position))
|
||||
(insert "</td>\n </tr>")))
|
||||
(insert " <tr>\n ")
|
||||
(if table-workaround
|
||||
;; This works around a Firefox bug in the mono file.
|
||||
(insert "<td bgcolor=\"white\">")
|
||||
(insert "<td>"))
|
||||
(insert tag "</td>\n <td>" (or desc ""))
|
||||
(setq open-td t))
|
||||
((eq (char-after) ?\n)
|
||||
(delete-char 1)
|
||||
;; Negate the following `forward-line'.
|
||||
(forward-line -1))
|
||||
((looking-at "<!-- ")
|
||||
(search-forward "-->"))
|
||||
((looking-at "<p>[- ]*The Detailed Node Listing[- \n]*")
|
||||
(replace-match " </td></tr></table>\n
|
||||
;; Convert the list that Makeinfo made into a table.
|
||||
(or (search-forward "<ul class=\"menu\">" nil t)
|
||||
;; FIXME? The following search seems dangerously lax.
|
||||
(search-forward "<ul>"))
|
||||
(replace-match "<table style=\"float:left\" width=\"100%\">")
|
||||
(forward-line 1)
|
||||
(while (not done)
|
||||
(cond
|
||||
((or (looking-at "<li>\\(<a.+</a>\\):[ \t]+\\(.*\\)$")
|
||||
(looking-at "<li>\\(<a.+</a>\\)$"))
|
||||
(setq tag (match-string 1))
|
||||
(setq desc (match-string 2))
|
||||
(replace-match "" t t)
|
||||
(when open-td
|
||||
(save-excursion
|
||||
(forward-char -1)
|
||||
(skip-chars-backward " ")
|
||||
(delete-region (point) (line-end-position))
|
||||
(insert "</td>\n </tr>")))
|
||||
(insert " <tr>\n ")
|
||||
(if table-workaround
|
||||
;; This works around a Firefox bug in the mono file.
|
||||
(insert "<td bgcolor=\"white\">")
|
||||
(insert "<td>"))
|
||||
(insert tag "</td>\n <td>" (or desc ""))
|
||||
(setq open-td t))
|
||||
((eq (char-after) ?\n)
|
||||
(delete-char 1)
|
||||
;; Negate the following `forward-line'.
|
||||
(forward-line -1))
|
||||
((looking-at "<!-- ")
|
||||
(search-forward "-->"))
|
||||
((looking-at "<p>[- ]*The Detailed Node Listing[- \n]*")
|
||||
(replace-match " </td></tr></table>\n
|
||||
<h3>Detailed Node Listing</h3>\n\n" t t)
|
||||
(search-forward "<p>")
|
||||
;; FIXME Fragile!
|
||||
;; The Emacs and Elisp manual have some text at the
|
||||
;; start of the detailed menu that is not part of the menu.
|
||||
;; Other manuals do not.
|
||||
(if (looking-at "Here are some other nodes")
|
||||
(search-forward "<p>"))
|
||||
(goto-char (match-beginning 0))
|
||||
(skip-chars-backward "\n ")
|
||||
(setq open-td nil)
|
||||
(insert "</p>\n\n<table style=\"float:left\" width=\"100%\">"))
|
||||
((looking-at "</li></ul>")
|
||||
(replace-match "" t t))
|
||||
((looking-at "<p>")
|
||||
(replace-match "" t t)
|
||||
(when open-td
|
||||
(insert " </td></tr>")
|
||||
(setq open-td nil))
|
||||
(insert " <tr>
|
||||
(search-forward "<p>")
|
||||
;; FIXME Fragile!
|
||||
;; The Emacs and Elisp manual have some text at the
|
||||
;; start of the detailed menu that is not part of the menu.
|
||||
;; Other manuals do not.
|
||||
(if (looking-at "Here are some other nodes")
|
||||
(search-forward "<p>"))
|
||||
(goto-char (match-beginning 0))
|
||||
(skip-chars-backward "\n ")
|
||||
(setq open-td nil)
|
||||
(insert "</p>\n\n<table style=\"float:left\" width=\"100%\">"))
|
||||
((looking-at "</li></ul>")
|
||||
(replace-match "" t t))
|
||||
((looking-at "<p>")
|
||||
(replace-match "" t t)
|
||||
(when open-td
|
||||
(insert " </td></tr>")
|
||||
(setq open-td nil))
|
||||
(insert " <tr>
|
||||
<th colspan=\"2\" align=\"left\" style=\"text-align:left\">")
|
||||
(if (re-search-forward "</p>[ \t\n]*<ul class=\"menu\">" nil t)
|
||||
(replace-match " </th></tr>")))
|
||||
((looking-at "[ \t]*</ul>[ \t]*$")
|
||||
(replace-match
|
||||
(if open-td
|
||||
" </td></tr>\n</table>"
|
||||
"</table>") t t)
|
||||
(setq done t))
|
||||
(t
|
||||
(if (eobp)
|
||||
(error "Parse error in %s"
|
||||
(file-name-nondirectory buffer-file-name)))
|
||||
(unless open-td
|
||||
(setq done t))))
|
||||
(forward-line 1))))))
|
||||
(if (re-search-forward "</p>[ \t\n]*<ul class=\"menu\">" nil t)
|
||||
(replace-match " </th></tr>")))
|
||||
((looking-at "[ \t]*</ul>[ \t]*$")
|
||||
(replace-match
|
||||
(if open-td
|
||||
" </td></tr>\n</table>"
|
||||
"</table>") t t)
|
||||
(setq done t))
|
||||
(t
|
||||
(if (eobp)
|
||||
(error "Parse error in %s"
|
||||
(file-name-nondirectory buffer-file-name)))
|
||||
(unless open-td
|
||||
(setq done t))))
|
||||
(forward-line 1)))))
|
||||
|
||||
|
||||
(defconst make-manuals-dist-output-variables
|
||||
|
|
@ -778,207 +756,6 @@ Optional argument TYPE is type of output (nil means all)."
|
|||
(if (member type (list nil m))
|
||||
(make-manuals-dist--1 root m))))
|
||||
|
||||
(defvar admin--org-export-headers-format "\
|
||||
#+title: GNU Emacs %s NEWS -- history of user-visible changes
|
||||
#+author:
|
||||
#+options: author:nil creator:nil toc:2 num:3 *:nil \\n:t ^:nil tex:nil
|
||||
#+language: en
|
||||
#+HTML_LINK_HOME: /software/emacs
|
||||
#+HTML_LINK_UP: /software/emacs
|
||||
#+html_head_extra: <link rel=\"stylesheet\" type=\"text/css\" href=\"/mini.css\" media=\"handheld\" />
|
||||
#+html_head_extra: <link rel=\"stylesheet\" type=\"text/css\" href=\"/layout.min.css\" media=\"screen\" />
|
||||
#+html_head_extra: <link rel=\"stylesheet\" type=\"text/css\" href=\"/print.min.css\" media=\"print\" />
|
||||
|
||||
#+BEGIN_EXPORT html
|
||||
<div style=\"float:right;margin-left:1em;padding:3px;border:0px solid;text-align:center\">
|
||||
<a href=\"/graphics/gnu-head.jpg\">
|
||||
<img src=\"/graphics/gnu-head-sm.jpg\" alt=\" [image of the head
|
||||
of a GNU] \" width=\"129\" height=\"122\"/>
|
||||
</a>
|
||||
</div>
|
||||
#+END_EXPORT\n\n")
|
||||
|
||||
(defvar admin--org-html-postamble "
|
||||
<p>
|
||||
Return to the <a href=\"/software/emacs/emacs.html\">GNU Emacs home page</a>.
|
||||
</p>
|
||||
|
||||
<div id=\"footer\">
|
||||
<div class=\"unprintable\">
|
||||
|
||||
<p>
|
||||
Please send FSF & GNU inquiries to
|
||||
<a href=\"mailto:gnu@gnu.org\"><gnu@gnu.org></a>.
|
||||
There are also <a href=\"/contact/\">other ways to contact</a>
|
||||
the FSF.
|
||||
Broken links and other corrections or suggestions can be sent to
|
||||
<a href=\"mailto:bug-gnu-emacs@gnu.org\"><bug-gnu-emacs@gnu.org></a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Copyright © %s Free Software Foundation, Inc.
|
||||
</p>
|
||||
|
||||
<p>This page is licensed under
|
||||
a <a href=\"https://creativecommons.org/licenses/by-sa/4.0\">CC-BY-SA</a>
|
||||
license.</p>
|
||||
|
||||
<!--#include virtual=\"/server/bottom-notes.html\" -->
|
||||
|
||||
<p class=\"unprintable\">
|
||||
Updated:
|
||||
<!-- timestamp start -->
|
||||
$Date: %s $
|
||||
<!-- timestamp end -->
|
||||
</p>
|
||||
</div>
|
||||
</div>")
|
||||
|
||||
(defun admin--require-external-package (pkg)
|
||||
(package-initialize)
|
||||
(require pkg nil t)
|
||||
(unless (featurep pkg)
|
||||
(when (yes-or-no-p (format "Package \"%s\" is missing. Install now?" pkg))
|
||||
(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
|
||||
(if noninteractive
|
||||
(or (pop command-line-args-left)
|
||||
default-directory)
|
||||
(read-directory-name "Emacs root directory: "
|
||||
source-directory nil t))))
|
||||
(list root
|
||||
(read-string "Major version number: "
|
||||
(number-to-string emacs-major-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))
|
||||
(admin--require-external-package 'htmlize)
|
||||
(let* ((newsfile (expand-file-name "etc/NEWS" root))
|
||||
(orgfile (expand-file-name (format "etc/NEWS.%s.org" version) root))
|
||||
(html (format "%s.html" (file-name-base orgfile)))
|
||||
(copyright-years (format-time-string "%Y")))
|
||||
(delete-file orgfile)
|
||||
(copy-file newsfile orgfile t)
|
||||
(find-file orgfile)
|
||||
|
||||
;; Find the copyright range.
|
||||
(goto-char (point-min))
|
||||
(re-search-forward "^Copyright (C) \\([0-9-]+\\) Free Software Foundation, Inc.")
|
||||
(setq copyright-years (match-string 1))
|
||||
|
||||
;; Delete some unnecessary stuff.
|
||||
(replace-regexp-in-region "^---$" "" (point-min) (point-max))
|
||||
(replace-regexp-in-region "^\\+\\+\\+$" "" (point-min) (point-max))
|
||||
(dolist (str '("\n"
|
||||
"GNU Emacs NEWS -- history of user-visible changes."
|
||||
"Temporary note:"
|
||||
"+++ indicates that all relevant manuals in doc/ have been updated."
|
||||
"--- means no change in the manuals is needed."
|
||||
"When you add a new item, use the appropriate mark if you are sure it"
|
||||
"applies, and please also update docstrings as needed."
|
||||
"You can narrow news to a specific version by calling 'view-emacs-news'"
|
||||
"with a prefix argument or by typing 'C-u C-h C-n'."))
|
||||
(replace-string-in-region str "" (point-min) (point-max)))
|
||||
|
||||
;; Escape some characters.
|
||||
(replace-regexp-in-region (rx "$") "@@html:$@@" (point-min) (point-max))
|
||||
|
||||
;; Use Org-mode markers for 'symbols', 'C-x k', etc.
|
||||
(replace-regexp-in-region
|
||||
(rx (or (: (group (in " \t\n("))
|
||||
"'"
|
||||
(group (+ (or (not (in "'\n"))
|
||||
(: "'" (not (in " .,\t\n)"))))))
|
||||
"'"
|
||||
(group (in ",.;:!? \t\n)")))
|
||||
;; Buffer names, e.g. "*scratch*".
|
||||
(: "\""
|
||||
(group-n 2 "*" (+ (not (in "*\""))) "*")
|
||||
"\"")))
|
||||
"\\1~\\2~\\3" (point-min) (point-max))
|
||||
|
||||
;; Format code blocks.
|
||||
(while (re-search-forward "^ " nil t)
|
||||
(let ((elisp-block (looking-at "(")))
|
||||
(backward-paragraph)
|
||||
(insert (if elisp-block
|
||||
"\n#+BEGIN_SRC emacs-lisp"
|
||||
"\n#+BEGIN_EXAMPLE"))
|
||||
(forward-paragraph)
|
||||
(insert (if elisp-block
|
||||
"#+END_SRC\n"
|
||||
"#+END_EXAMPLE\n"))))
|
||||
|
||||
;; Delete buffer local variables.
|
||||
(goto-char (point-max))
|
||||
(when (re-search-backward "Local variables:")
|
||||
(forward-line -1)
|
||||
(delete-region (point) (point-max)))
|
||||
|
||||
;; Insert Org-mode export headers.
|
||||
(goto-char (point-min))
|
||||
(insert (format admin--org-export-headers-format version))
|
||||
(org-mode)
|
||||
(save-buffer)
|
||||
|
||||
;; Make everything one level lower.
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward (rx bol (group (+ "*")) " ") nil t)
|
||||
(replace-match "*\\1" nil nil nil 1))
|
||||
|
||||
;; Insert anchors for different versions.
|
||||
(goto-char (point-min))
|
||||
(let (last-major last-minor)
|
||||
(while (re-search-forward (rx bol "** " (+ (not "\n")) "in Emacs "
|
||||
(group digit digit) "." (group digit)
|
||||
eol)
|
||||
nil t)
|
||||
(unless (and (equal (match-string 1) last-major)
|
||||
(equal (match-string 2) last-minor))
|
||||
(setq last-major (match-string 1))
|
||||
(setq last-minor (match-string 2))
|
||||
(forward-line -1)
|
||||
(insert (format
|
||||
(concat
|
||||
"#+HTML: <p> </p>\n"
|
||||
"* Changes in Emacs %s.%s\n"
|
||||
;; Add anchor to allow linking to
|
||||
;; e.g. "NEWS.28.html#28.1".
|
||||
":PROPERTIES:\n"
|
||||
":CUSTOM_ID: %s.%s\n"
|
||||
":END:\n")
|
||||
last-major last-minor
|
||||
last-major last-minor)))))
|
||||
|
||||
(save-buffer)
|
||||
|
||||
;; Make the HTML export.
|
||||
(let* ((org-html-postamble
|
||||
(format admin--org-html-postamble
|
||||
copyright-years
|
||||
;; e.g. "2022/09/13 09:13:13"
|
||||
(format-time-string "%Y/%m/%d %H:%m:%S")))
|
||||
(org-html-mathjax-template "")
|
||||
(htmlize-output-type 'css))
|
||||
(org-html-export-as-html))
|
||||
|
||||
;; Write HTML to file.
|
||||
(let ((html (expand-file-name html (expand-file-name "etc" root))))
|
||||
(write-file html)
|
||||
(unless noninteractive
|
||||
(find-file html)
|
||||
(html-mode))
|
||||
(message "Successfully exported HTML to %s" html))))
|
||||
|
||||
|
||||
;; Stuff to check new `defcustom's got :version tags.
|
||||
;; Adapted from check-declare.el.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/* Allocate X colors. Used for testing with dense colormaps.
|
||||
|
||||
Copyright (C) 2001-2023 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001-2021 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
|
|
@ -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, ...)
|
||||
|
|
|
|||
301
admin/authors.el
301
admin/authors.el
|
|
@ -1,6 +1,6 @@
|
|||
;;; authors.el --- utility for maintaining Emacs's AUTHORS file -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2000-2023 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2000-2021 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Gerd Moellmann <gerd@gnu.org>
|
||||
;; Maintainer: emacs-devel@gnu.org
|
||||
|
|
@ -41,16 +41,11 @@ files.")
|
|||
(defconst authors-aliases
|
||||
'(
|
||||
(nil "A\\. N\\. Other") ; unknown author 2014-12-03, later removed
|
||||
(nil "Anticrisis")
|
||||
(nil "akater")
|
||||
("Aaron S. Hawley" "Aaron Hawley")
|
||||
("Alan Third" "Alan J Third")
|
||||
("Alexander Gramiak" "Alex Gramiak")
|
||||
("Alexandru Harsanyi" "Alex Harsanyi")
|
||||
("Álvar Jesús Ibeas Martín" "Álvar Ibeas")
|
||||
("Andrea Corallo" "AndreaCorallo")
|
||||
("Andrew Csillag" "Drew Csillag")
|
||||
("Andrew G Cohen" "Andrew Cohen")
|
||||
("Anna M. Bigatti" "Anna Bigatti")
|
||||
("Aurélien Aptel" "Aurelien Aptel")
|
||||
("Barry A. Warsaw" "Barry A. Warsaw, Century Computing, Inc."
|
||||
|
|
@ -60,15 +55,12 @@ files.")
|
|||
("Bill Mann" "William F. Mann")
|
||||
("Bill Rozas" "Guillermo J. Rozas")
|
||||
(nil "binjo.cn@gmail.com")
|
||||
(nil "bug-gnu-emacs@gnu.org") ; mistake
|
||||
("Björn Torkelsson" "Bjorn Torkelsson")
|
||||
("Brian Fox" "Brian J. Fox")
|
||||
("Brian P Templeton" "BT Templeton")
|
||||
("Brian Sniffen" "Brian T. Sniffen")
|
||||
(nil "castor@my-dejanews")
|
||||
(nil "chengang31@gmail.com")
|
||||
(nil "chuntaro")
|
||||
("Clément Pit-Claudel" "Clément Pit--Claudel")
|
||||
("David Abrahams" "Dave Abrahams")
|
||||
("David J. Biesack" "David Biesack")
|
||||
("David De La Harpe Golden" "David Golden")
|
||||
|
|
@ -78,16 +70,13 @@ files.")
|
|||
("David M. Koppelman" "David Koppelman")
|
||||
("David M. Smith" "David Smith" "David M Smith")
|
||||
("David O'Toole" "David T. O'Toole")
|
||||
(nil "dalanicolai")
|
||||
(nil "deech@deech")
|
||||
("Deepak Goel" "D. Goel")
|
||||
("Earl Hyatt" "Earl" "ej32u@protonmail.com")
|
||||
("Ed L. Cashin" "Ed L Cashin")
|
||||
("Edward M. Reingold" "Ed\\(ward\\( M\\)?\\)? Reingold" "Reingold Edward M")
|
||||
("Emilio C. Lopes" "Emilio Lopes")
|
||||
("Eric M. Ludlam" "Eric Ludlam")
|
||||
("Eric S. Raymond" "Eric Raymond")
|
||||
("Etienne Prud’Homme" "Etienne Prud'Homme")
|
||||
("Fabián Ezequiel Gallina" "Fabian Ezequiel Gallina" "Fabi.n E\\. Gallina")
|
||||
(nil "felix.*EmacsWiki")
|
||||
(nil "foudfou")
|
||||
|
|
@ -100,37 +89,26 @@ files.")
|
|||
("Gerd Möllmann" "Gerd Moellmann")
|
||||
("Hallvard B. Furuseth" "Hallvard B Furuseth" "Hallvard Furuseth")
|
||||
("Hrvoje Nikšić" "Hrvoje Niksic")
|
||||
("Ian Dunn" "^Ian D\\>")
|
||||
;; lisp/org/ChangeLog.1 2010-11-11.
|
||||
(nil "immerrr")
|
||||
(nil "aaa bbb")
|
||||
(nil "Code Extracted") ; lisp/newcomment.el's "Author:" header
|
||||
(nil "jakanakaevangeli")
|
||||
("J. Alexander Branham" "Alex Branham")
|
||||
("Jaeyoun Chung" "Jae-youn Chung" "Jae-you Chung" "Chung Jae-youn")
|
||||
("Jan Djärv" "Jan D\\>" "Jan Djarv")
|
||||
("João Távora" "João Tãvora")
|
||||
("Jan Djärv" "Jan D." "Jan Djarv")
|
||||
("Jay K. Adams" "Jay Adams")
|
||||
("J.D. Smith" "Jd Smith")
|
||||
("Jérôme Marant" "Jérôme Marant" "Jerome Marant")
|
||||
("Jens Lechtenbörger" "Jens Lechtenboerger")
|
||||
("Jens-Ulrik Holger Petersen" "Jens-Ulrik Petersen")
|
||||
("Jérémie Courrèges-Anglas" "Jeremie Courreges-Anglas")
|
||||
("Jeremy Bertram Maitin-Shepard" "Jeremy Maitin-Shepard")
|
||||
("Jérémy Compostella" "Jeremy Compostella")
|
||||
("Jimmy Aguilar Mena" "Ergus")
|
||||
("Johan Bockgård" "Johan Bockgard")
|
||||
("John F. Carr" "John F Carr")
|
||||
("John J Foerch" "John Foerch")
|
||||
("John W. Eaton" "John Eaton")
|
||||
("Jonathan I. Kamens" "Jonathan Kamens")
|
||||
("Jorgen Schäfer" "Jorgen Schaefer")
|
||||
("Jose A. Ortega Ruiz" "Jose A Ortega Ruiz")
|
||||
("Joseph Arceneaux" "Joe Arceneaux")
|
||||
("Joseph M. Kelsey" "Joe Kelsey") ; FIXME ?
|
||||
("Juan León Lahoz García" "Juan-Leon Lahoz Garcia")
|
||||
("Jürgen Hötzel" "Juergen Hoetzel")
|
||||
(nil "k3tu0isui")
|
||||
("K. Shane Hartman" "Shane Hartman")
|
||||
("Kai Großjohann" "Kai Grossjohann")
|
||||
("Karl Berry" "K. Berry")
|
||||
|
|
@ -148,12 +126,9 @@ files.")
|
|||
("Mark D. Baushke" "Mark D Baushke")
|
||||
("Mark E. Shoulson" "Mark Shoulson")
|
||||
("Marko Kohtala" "Kohtala Marko")
|
||||
("Maxim Nikulin" "Max Nikulin")
|
||||
("Agustín Martín" "Agustin Martin" "Agustín Martín Domingo")
|
||||
("Martin Lorentzon" "Martin Lorentzson")
|
||||
("Matt Swift" "Matthew Swift")
|
||||
("Mattias Engdegård" "Mattias Engdegard")
|
||||
(nil "^Madhu")
|
||||
(nil "mu@magi.net.ru")
|
||||
("Maxime Edouard Robert Froumentin" "Max Froumentin")
|
||||
("Michael R. Mauger" "Michael Mauger")
|
||||
|
|
@ -162,14 +137,11 @@ files.")
|
|||
("Michael I. Bushnell" "Michael I Bushnell" "Michael I. Bushnell, p/BSG")
|
||||
("Michael R. Cook" "Michael Cook")
|
||||
("Michael Sperber" "Mike Sperber" "Michael Sperber \\[Mr. Preprocessor\\]")
|
||||
("Michalis V" "^mvar")
|
||||
("Miha Rihtaršič" "Miha Rihtarsic")
|
||||
("Mikio Nakajima" "Nakajima Mikio")
|
||||
("Nelson Jose dos Santos Ferreira" "Nelson Ferreira")
|
||||
("Noorul Islam" "Noorul Islam K M")
|
||||
;;; ("Tetsurou Okazaki" "OKAZAKI Tetsurou") ; FIXME?
|
||||
("Óscar Fuentes" "Oscar Fuentes")
|
||||
(nil "pillule")
|
||||
(nil "psyberbits@gmail.com")
|
||||
("Paul Eggert" "Paul R\\. Eggert")
|
||||
("Pavel Janík" "Pavel Janík Ml." "Pavel Janik Ml." "Pavel Janik")
|
||||
|
|
@ -179,10 +151,8 @@ files.")
|
|||
("Peter J. Weisberg" "PJ Weisberg")
|
||||
("Peter S. Galbraith" "Peter S Galbraith" "Peter Galbraith")
|
||||
("Peter Runestig" "Peter 'luna' Runestig")
|
||||
("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
|
||||
("Przemysław Wojnowski" "Przemyslaw Wojnowski")
|
||||
("R. Bernstein" "rb@dustyfeet.com")
|
||||
("Rainer Schöpf" "Rainer Schoepf")
|
||||
|
|
@ -217,7 +187,6 @@ files.")
|
|||
("Takaaki Ota" "Tak Ota")
|
||||
("Takahashi Naoto" "Naoto Takahashi")
|
||||
("Teodor Zlatanov" "Ted Zlatanov")
|
||||
(nil "^TEC")
|
||||
(nil "The PCL-CVS Trust")
|
||||
("Thomas Dye" "Tom Dye")
|
||||
("Thomas Horsley" "Tom Horsley") ; FIXME ?
|
||||
|
|
@ -244,14 +213,10 @@ files.")
|
|||
("Vinicius Jose Latorre" "viniciusjl")
|
||||
("Gaby Launay" "galaunay")
|
||||
("Dick R. Chiang" "dickmao")
|
||||
("Lin Zhou" "georgealbert@qq.com")
|
||||
(nil "yan@metatem.net")
|
||||
(nil "gnu_lists@halloleo.hailmail.net")
|
||||
)
|
||||
"Alist of author aliases.
|
||||
|
||||
Each entry is of the form (REALNAME REGEXP...).
|
||||
If an author's full name, as in \"J.R.Hacker <foobar.com>\",
|
||||
Each entry is of the form (REALNAME REGEXP...). If an author's name
|
||||
matches one of the REGEXPs, use REALNAME instead.
|
||||
If REALNAME is nil, ignore that author.")
|
||||
|
||||
|
|
@ -358,12 +323,11 @@ Changes to files matching one of the regexps in this list are not listed.")
|
|||
"NEWS.unicode" "COPYING.DJ" "Makefile.old" "Makefile.am"
|
||||
"NEWS.1" "OOOOONEWS...OONEWS" "OOOONEWS" "etc/NEWS"
|
||||
"NEWS.1-17" "NEWS.18" "NEWS.19" "NEWS.20" "NEWS.21" "NEWS.22"
|
||||
"NEWS.23" "NEWS.24" "NEWS.25" "NEWS.26" "NEWS.27" "NEWS.28"
|
||||
"MAINTAINERS" "ERC-NEWS" "MH-E-NEWS" "NXML-NEWS"
|
||||
"MAINTAINERS" "MH-E-NEWS"
|
||||
"install.sh" "install-sh" "missing" "mkinstalldirs"
|
||||
"termcap.dat" "termcap.src" "termcap.ucb" "termcap"
|
||||
"ChangeLog.nextstep" "Emacs.clr" "spec.txt"
|
||||
"gfdl.1" "ledit.l"
|
||||
"gfdl.1"
|
||||
"texi/Makefile.in"
|
||||
"autodeps.mk"
|
||||
"lwlib/autodeps.mk"
|
||||
|
|
@ -385,8 +349,6 @@ Changes to files matching one of the regexps in this list are not listed.")
|
|||
"cedet/tests/test.py"
|
||||
"cedet/tests/teststruct.cpp"
|
||||
"subdirs.el"
|
||||
"etc/facemenu-removal.txt"
|
||||
"src/bytecode.h"
|
||||
"*.el"
|
||||
;; Autogen:
|
||||
"cus-load.el" "finder-inf.el" "ldefs-boot.el" "loaddefs-boot.el"
|
||||
|
|
@ -397,19 +359,9 @@ 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"
|
||||
"lisp/shorthand.el"
|
||||
"test/lisp/shorthand-tests.el"
|
||||
"lisp/shorthands.el"
|
||||
"test/src/comp-test-funcs.el"
|
||||
"lisp/net/link.el"
|
||||
"lisp/net/connection.el"
|
||||
"lisp/net/dictionary-link.el"
|
||||
"test/src/comp-test-funcs-dyn.el"
|
||||
;; Never had any meaningful changes logged, now deleted:
|
||||
"lib/stdarg.in.h" "lib/stdbool.in.h"
|
||||
"unidata/bidimirror.awk" "unidata/biditype.awk"
|
||||
|
|
@ -469,10 +421,6 @@ Changes to files matching one of the regexps in this list are not listed.")
|
|||
"info/dir"
|
||||
;; Not in gnulib anymore
|
||||
"lib/qset-acl.c" "lib/qcopy-acl.c" "lib/file-has-acl.c" "lib/secure_getenv.c"
|
||||
"lib/malloca.c" "lib/malloca.h"
|
||||
;; Briefly added to repository from gnulib, but not used
|
||||
"lib/localtime-buffer.c"
|
||||
"lib/localtime-buffer.h"
|
||||
;; files from old MS Windows build procedures
|
||||
"nt/gnulib-modules-to-delete.cfg"
|
||||
"makefile.w32-in"
|
||||
|
|
@ -504,7 +452,6 @@ Changes to files matching one of the regexps in this list are not listed.")
|
|||
"nextstep/WISHLIST"
|
||||
;; Removed, replaced by gitmerge.el
|
||||
"admin/bzrmerge.el"
|
||||
"bzrmerge.el"
|
||||
;; Removed in commit f5090b91299
|
||||
"lib/fdatasync.c"
|
||||
;; Removed as obsolete
|
||||
|
|
@ -518,12 +465,6 @@ Changes to files matching one of the regexps in this list are not listed.")
|
|||
"WHY-FREE"
|
||||
"MORE.STUFF"
|
||||
"notes/font-backend"
|
||||
"src/ftxfont.c"
|
||||
"ftxfont.c"
|
||||
"src/ptr-bounds.h"
|
||||
"obsolete/options.el"
|
||||
"obsolete/old-whitespace.el"
|
||||
"obsolete/lucid.el"
|
||||
;; ada-mode has been deleted, now in GNU ELPA
|
||||
"ada-mode.texi"
|
||||
"doc/misc/ada-mode.texi"
|
||||
|
|
@ -541,18 +482,6 @@ Changes to files matching one of the regexps in this list are not listed.")
|
|||
"src/mini-gmp-emacs.c"
|
||||
"lib/dosname.h"
|
||||
"lib/putenv.c"
|
||||
;; Moved to the org-contrib repo
|
||||
"ob-asymptote.el"
|
||||
"ob-shen.el"
|
||||
"ob-picolisp.el"
|
||||
"ob-io.el"
|
||||
"ob-mscgen.el"
|
||||
"ob-ledger.el"
|
||||
"lisp/org/ob-abc.el"
|
||||
"lisp/org/ob-ebnf.el"
|
||||
"lisp/org/ob-J.el"
|
||||
;; Removed -- for now.
|
||||
"test/src/doc-tests.el"
|
||||
)
|
||||
"List of files and directories to ignore.
|
||||
Changes to files in this list are not listed.")
|
||||
|
|
@ -884,9 +813,11 @@ Changes to files in this list are not listed.")
|
|||
"gnus-compat.el" "pgg-parse.el" "pgg-pgp.el" "pgg-pgp5.el" "pgg.el"
|
||||
"dns-mode.el" "run-at-time.el" "gnus-encrypt.el" "sha1-el.el"
|
||||
"gnus-gl.el" "gnus.sum.el" "proto-stream.el" "color.el" "color-lab.el"
|
||||
"earcon.el" "gnus-audio.el" "encrypt.el"
|
||||
"gnus-move.el" "gnus-sync.el"
|
||||
"gnus-ems.el"
|
||||
"eww.el" "shr-color.el" "shr.el" "earcon.el" "gnus-audio.el" "encrypt.el"
|
||||
"format-spec.el" "gnus-move.el" "gnus-sync.el"
|
||||
"auth-source.el" "ecomplete.el" "gravatar.el" "mailcap.el" "plstore.el"
|
||||
"pop3.el" "qp.el" "registry.el" "rfc2231.el" "rtree.el"
|
||||
"sieve.el" "sieve-mode.el" "gnus-ems.el"
|
||||
;; doc
|
||||
"getopt.c" "texindex.c" "news.texi" "vc.texi" "vc2-xtra.texi"
|
||||
"back.texi" "vol1.texi" "vol2.texi" "elisp-covers.texi" "two.el"
|
||||
|
|
@ -967,43 +898,6 @@ in the repository.")
|
|||
;; NB So only add a directory if needed to disambiguate.
|
||||
;; FIXME?
|
||||
;; Although perhaps we could let authors-disambiguate-file-name do that?
|
||||
;;
|
||||
;; WARNING: The semantics of these entries is tricky to grasp without
|
||||
;; reading the code!
|
||||
;; The rule is: for every file that was renamed or moved to another
|
||||
;; directory, add an entry (OLD-NAME . NEW-BASENAME), where OLD-NAME
|
||||
;; is the old name of the file as it appears in the ChangeLog files,
|
||||
;; and NEW-BASENAME is the _basename_ of its new name. Yes, this
|
||||
;; means that a file which was moved to another directory but kept its
|
||||
;; basename will have a seemingly-silly entry ("foo" . "foo"). (Told
|
||||
;; you: this is tricky!) If the moved/renamed file was mentioned in
|
||||
;; several ChangeLog files with different leading directories, you
|
||||
;; need to provide an entry for each such instance. For example, if
|
||||
;; some ChangeLog mentioned a moved file as lisp/gnus/something.el and
|
||||
;; another ChangeLog mentioned it as gnus/something.el, you need to
|
||||
;; have two entries:
|
||||
;;
|
||||
;; ("gnus/something.el" . "something.el")
|
||||
;; ("lisp/gnus/something.el" . "something.el")
|
||||
;;
|
||||
;; The important part is that the car of the entry should be identical
|
||||
;; 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*'
|
||||
;;
|
||||
;; where BASENAME is the old basename of the renamed file. This will
|
||||
;; show all the different reference forms of the file in the various
|
||||
;; ChangeLog* files, and you can then prepare a separate entry for
|
||||
;; each reference form.
|
||||
;;
|
||||
;; The cdr of the entry should generally be only the basename of the
|
||||
;; file's current name, because that's how AUTHORS references files.
|
||||
;; It _can_ have leading directories, but that is only
|
||||
;; needed/advisable if there are several files in the tree that have
|
||||
;; the same basename, and you want to disambiguate them, so that
|
||||
;; people who actually contributed to different files aren't mentioned
|
||||
;; as if they contributed to the same single file.
|
||||
(defconst authors-renamed-files-alist
|
||||
'(("nt.c" . "w32.c") ("nt.h" . "w32.h")
|
||||
("ntheap.c" . "w32heap.c") ("ntheap.h" . "w32heap.h")
|
||||
|
|
@ -1011,9 +905,8 @@ in the repository.")
|
|||
("ntproc.c" . "w32proc.c")
|
||||
("w32console.c" . "w32term.c")
|
||||
("unexnt.c" . "unexw32.c")
|
||||
("m/windowsnt.h" . "ms-w32.h")
|
||||
("s/windowsnt.h" . "ms-w32.h")
|
||||
("s/ms-w32.h" . "ms-w32.h")
|
||||
("s/windowsnt.h" . "s/ms-w32.h")
|
||||
("s/ms-w32.h" . "inc/ms-w32.h")
|
||||
("src/config.h" . "config.h")
|
||||
("winnt.el" . "w32-fns.el")
|
||||
("linux.h" . "gnu-linux.h")
|
||||
|
|
@ -1036,10 +929,6 @@ in the repository.")
|
|||
("INSTALL.MSYS" . "INSTALL")
|
||||
("server.c" . "emacsserver.c")
|
||||
("lib-src/etags.c" . "etags.c")
|
||||
;; gnulib
|
||||
("lib/strftime.c" . "nstrftime.c")
|
||||
("src/mini-gmp.c" . "mini-gmp.c")
|
||||
("src/mini-gmp.h" . "mini-gmp.h")
|
||||
;; msdos/
|
||||
("is-exec.c" . "is_exec.c")
|
||||
("enriched.doc" . "enriched.txt")
|
||||
|
|
@ -1055,7 +944,6 @@ in the repository.")
|
|||
("DIFF" . "OTHER.EMACSES")
|
||||
("CCADIFF" . "OTHER.EMACSES")
|
||||
("GOSDIFF" . "OTHER.EMACSES")
|
||||
("emacs.appdata.xml" . "emacs.metainfo.xml")
|
||||
;; Nextstep
|
||||
("nextstep/Cocoa/Emacs.base/Contents/Info.plist" . "nextstep/templates/Info.plist.in")
|
||||
;; Moved from lisp/tpu-doc.el to etc/tpu-edt.doc in Emacs 19.29.
|
||||
|
|
@ -1110,12 +998,6 @@ in the repository.")
|
|||
("lisp/gnus/messcompat.el" . "messcompat.el")
|
||||
("html2text.el" . "html2text.el")
|
||||
("lisp/net/html2text.el" . "html2text.el")
|
||||
;; Obsolete in 28.1.
|
||||
("inversion.el" . "inversion.el")
|
||||
("test/lisp/cedet/inversion-tests.el" . "inversion-tests.el")
|
||||
("test/lisp/mail/rfc2368-tests.el" . "rfc2368-tests.el")
|
||||
;; This file was briefly obsolete:
|
||||
("lisp/obsolete/erc-compat.el" . "erc-compat.el")
|
||||
;; From lisp to etc/forms.
|
||||
("forms-d2.el" . "forms-d2.el")
|
||||
("forms-pass.el" . "forms-pass.el")
|
||||
|
|
@ -1123,10 +1005,8 @@ in the repository.")
|
|||
("nxml/test.invalid.xml" . "test-invalid.xml")
|
||||
("nxml/test.valid.xml" . "test-valid.xml")
|
||||
("automated/Makefile.in" . "test/Makefile.in")
|
||||
;; rmailmm tests wandered from test/ to test/manual to test/lisp/mail/
|
||||
("rmailmm.el" . "rmailmm-tests.el")
|
||||
("test/rmailmm.el" . "rmailmm-tests.el")
|
||||
("test/manual/rmailmm.el" . "rmailmm-tests.el")
|
||||
("test/rmailmm.el" . "test/manual/rmailmm.el")
|
||||
("rmailmm.el" . "test/manual/rmailmm.el")
|
||||
;; The one in lisp is eshell/eshell.el.
|
||||
("eshell.el" . "eshell-tests.el")
|
||||
("automated/eshell.el" . "eshell-tests.el")
|
||||
|
|
@ -1158,79 +1038,22 @@ in the repository.")
|
|||
("major.texi" . "modes.texi")
|
||||
("msdog-xtra.texi" . "msdos-xtra.texi")
|
||||
("msdog.texi" . "msdos.texi")
|
||||
;; Moved from lisp/gnus/ to lisp/
|
||||
("auth-source.el" . "auth-source.el")
|
||||
("lisp/gnus/auth-source.el" . "auth-source.el")
|
||||
("ecomplete.el" . "ecomplete.el")
|
||||
("format-spec.el" . "format-spec.el")
|
||||
("gnus/format-spec.el" . "format-spec.el")
|
||||
("lisp/gnus/ecomplete.el" . "ecomplete.el")
|
||||
("plstore.el" . "plstore.el")
|
||||
("lisp/gnus/plstore.el" . "plstore.el")
|
||||
("registry.el" . "registry.el")
|
||||
("lisp/gnus/registry.el" . "registry.el")
|
||||
("rtree.el" . "rtree.el")
|
||||
;; Moved from lisp/gnus/ to lisp/calendar/
|
||||
("time-date.el" . "time-date.el")
|
||||
("time-date.el" . "calendar/time-date.el")
|
||||
;; Moved from lisp/gnus/ to lisp/mail/
|
||||
("binhex.el" . "binhex.el")
|
||||
("gnus/binhex.el" . "binhex.el")
|
||||
("uudecode.el" . "uudecode.el")
|
||||
("gnus/uudecode.el" . "uudecode.el")
|
||||
("mail-parse.el" . "mail-parse.el")
|
||||
("gnus/mail-parse.el" . "mail-parse.el")
|
||||
("mail-prsvr.el" . "mail-prsvr.el")
|
||||
("gnus/mail-prsvr.el" . "mail-prsvr.el")
|
||||
("yenc.el" . "yenc.el")
|
||||
("flow-fill.el" . "flow-fill.el")
|
||||
("gnus/flow-fill.el" . "flow-fill.el")
|
||||
("ietf-drums.el" . "ietf-drums.el")
|
||||
("gnus/ietf-drums.el" . "ietf-drums.el")
|
||||
("pop3.el" . "pop3.el")
|
||||
("mail/pop3.el" . "pop3.el")
|
||||
("gnus/pop3.el" . "pop3.el")
|
||||
("lisp/gnus/pop3.el" . "pop3.el")
|
||||
("qp.el" . "qp.el")
|
||||
("gnus/qp.el" . "qp.el")
|
||||
("lisp/gnus/qp.el" . "qp.el")
|
||||
("rfc2045.el" . "rfc2045.el")
|
||||
("gnus/rfc2045.el" . "rfc2045.el")
|
||||
("rfc2047.el" . "rfc2047.el")
|
||||
("gnus/rfc2047.el" . "rfc2047.el")
|
||||
("rfc2231.el" . "rfc2231.el")
|
||||
("gnus/rfc2231.el" . "rfc2231.el")
|
||||
("lisp/gnus/rfc2231.el" . "rfc2231.el")
|
||||
("binhex.el" . "mail/binhex.el")
|
||||
("uudecode.el" . "mail/uudecode.el")
|
||||
("mail-parse.el" . "mail/mail-parse.el")
|
||||
("yenc.el" . "mail/yenc.el")
|
||||
("flow-fill.el" . "mail/flow-fill.el")
|
||||
("ietf-drums.el" . "mail/ietf-drums.el")
|
||||
("sieve-manage.el" . "mail/sieve-manage.el")
|
||||
;; Moved from lisp/gnus/ to lisp/image/
|
||||
("compface.el" . "compface.el")
|
||||
("gravatar.el" . "gravatar.el")
|
||||
("lisp/gnus/gravatar.el" . "gravatar.el")
|
||||
("compface.el" . "image/compface.el")
|
||||
;; Moved from lisp/gnus/ to lisp/net/
|
||||
("eww.el" . "eww.el")
|
||||
("net/eww.el" . "eww.el")
|
||||
("lisp/new/eww.el" . "eww.el") ; an actual typo in ChangeLog.3
|
||||
("gssapi.el" . "gssapi.el")
|
||||
("lisp/gnus/gssapi.el" . "gssapi.el")
|
||||
("imap.el" . "net/imap.el")
|
||||
("mailcap.el" . "mailcap.el")
|
||||
("gnus/mailcap.el" . "mailcap.el")
|
||||
("lisp/gnus/mailcap.el" . "mailcap.el")
|
||||
("rfc2104.el" . "net/rfc2104.el")
|
||||
("starttls.el" . "starttls.el")
|
||||
("lisp/net/starttls.el" . "starttls.el") ; moved to obsolete/
|
||||
("shr.el" . "shr.el")
|
||||
("net/shr.el" . "shr.el")
|
||||
("shr-color.el" . "shr-color.el")
|
||||
("sieve-manage.el" . "sieve-manage.el")
|
||||
("sieve-mode.el" . "sieve-mode.el")
|
||||
("sieve.el" . "sieve.el")
|
||||
("lisp/gnus/sieve-manage.el" . "sieve-manage.el")
|
||||
("lisp/gnus/sieve-mode.el" . "sieve-mode.el")
|
||||
("lisp/gnus/sieve.el" . "sieve.el")
|
||||
;; Moved from lisp/gnus/ to lisp/international
|
||||
("rfc1843.el" . "rfc1843.el")
|
||||
("gnus/rfc1843.el" . "rfc1843.el")
|
||||
("utf7.el" . "utf7.el")
|
||||
("gnus/utf7.el" . "utf7.el")
|
||||
("starttls.el" . "net/starttls.el")
|
||||
;; And from emacs/ to misc/ and back again.
|
||||
("ns-emacs.texi" . "macos.texi")
|
||||
("overrides.texi" . "gnus-overrides.texi")
|
||||
|
|
@ -1245,7 +1068,7 @@ in the repository.")
|
|||
("ED.WORSHIP" . "JOKES")
|
||||
("GNU.JOKES" . "JOKES")
|
||||
("CHARACTERS" . "TODO")
|
||||
("lisp/character-fold.el" . "char-fold.el")
|
||||
("lisp/character-fold.el" . "lisp/char-fold.el")
|
||||
("test/automated/character-fold-tests.el" . "char-fold-tests.el")
|
||||
("test/automated/char-fold-tests.el" . "char-fold-tests.el")
|
||||
("test/lisp/character-fold-tests.el" . "char-fold-tests.el")
|
||||
|
|
@ -1287,8 +1110,7 @@ in the repository.")
|
|||
("grammars" . "grammars")
|
||||
;; Moved from lisp/emacs-lisp/ to admin/.
|
||||
("emacs-lisp/authors.el" . "authors.el")
|
||||
("find-gc.el" . "find-gc.el")
|
||||
("emacs-lisp/find-gc.el" . "find-gc.el")
|
||||
("emacs-lisp/find-gc.el" . "admin/find-gc.el")
|
||||
;; From etc to lisp/cedet/semantic/.
|
||||
("grammars/bovine-grammar.el" . "bovine/grammar.el")
|
||||
("grammars/wisent-grammar.el" . "wisent/grammar.el")
|
||||
|
|
@ -1296,47 +1118,25 @@ in the repository.")
|
|||
("nt/README.W32" . "README.W32")
|
||||
("notes/BRANCH" . "notes/repo")
|
||||
("notes/bzr" . "notes/repo")
|
||||
;; moved from lisp/ to lisp/net/, then removed
|
||||
("pinentry.el" . "pinentry.el")
|
||||
("lisp/pinentry.el" . "pinentry.el")
|
||||
("lisp/net/pinentry.el" . "pinentry.el")
|
||||
;; moved from lisp/ to lisp/net/
|
||||
("lisp/pinentry.el" . "lisp/net/pinentry.el")
|
||||
;; module.* moved to emacs-module.*
|
||||
("src/module.h" . "emacs-module.h")
|
||||
("src/module.c" . "emacs-module.c")
|
||||
("test/src/regex-tests.el" . "regex-emacs-tests.el")
|
||||
("test/lisp/emacs-lisp/cl-tests.el" . "cl-tests.el")
|
||||
("url-ns.el" . "url-ns.el")
|
||||
("gnus-news.texi" . "gnus.texi")
|
||||
("doc/misc/gnus-news.texi" . "gnus.texi")
|
||||
("lisp/multifile.el" . "fileloop.el")
|
||||
("lisp/emacs-lisp/thread.el" . "thread.el")
|
||||
;; cl.el was retired, replaced by cl-lib.el, and we want to
|
||||
;; pretend they are the same file...
|
||||
("emacs-lisp/cl.el" . "cl-lib.el")
|
||||
("lisp/emacs-lisp/cl.el" . "cl-lib.el")
|
||||
("lisp/obsolete/cl.el" . "cl-lib.el")
|
||||
("mantemp.el" . "mantemp.el")
|
||||
("lisp/progmodes/mantemp.el" . "mantemp.el")
|
||||
("progmodes/mantemp.el" . "mantemp.el")
|
||||
("src/module.h" . "src/emacs-module.h")
|
||||
("src/module.c" . "src/emacs-module.c")
|
||||
;; gnulib
|
||||
("lib/strftime.c" . "lib/nstrftime.c")
|
||||
("test/src/regex-tests.el" . "test/src/regex-emacs-tests.el")
|
||||
("test/lisp/emacs-lisp/cl-tests.el" . "test/lisp/obsolete/cl-tests.el")
|
||||
("lisp/net/starttls.el" . "lisp/obsolete/starttls.el")
|
||||
("url-ns.el" . "lisp/obsolete/url-ns.el")
|
||||
("gnus-news.texi" . "doc/misc/gnus.texi")
|
||||
("lisp/multifile.el" . "lisp/fileloop.el")
|
||||
("lisp/emacs-lisp/thread.el" . "lisp/thread.el")
|
||||
("lisp/emacs-lisp/cl.el" . "lisp/emacs-lisp/cl-lib.el")
|
||||
("lisp/progmodes/mantemp.el" . "lisp/obsolete/mantemp.el")
|
||||
("src/mini-gmp.c" . "lib/mini-gmp.c")
|
||||
("src/mini-gmp.h" . "lib/mini-gmp.h")
|
||||
("sysdep.c" . "src/sysdep.c")
|
||||
;; nnir.el started in lisp/gnus/ChangeLog.*, then was
|
||||
;; lisp/gnus/nnir.el in ChangeLog.[123], and is now
|
||||
;; lisp/obsolete/nnir.el.
|
||||
("nnir.el" . "nnir.el")
|
||||
("lisp/gnus/nnir.el" . "nnir.el")
|
||||
;; regex.[ch] are mentioned as src/regex.[ch] in ChangeLog.[123],
|
||||
;; but as just regex.[ch] in src/ChangeLog.*, so we need 2 entries
|
||||
;; for each one of them.
|
||||
("regex.c" . "regex-emacs.c")
|
||||
("regex.h" . "regex-emacs.h")
|
||||
("src/regex.c" . "regex-emacs.c")
|
||||
("src/regex.h" . "regex-emacs.h")
|
||||
("test/manual/rmailmm.el" . "rmailmm-tests.el")
|
||||
("test/lisp/cedet/semantic-utest-fmt.el" . "format-tests.el")
|
||||
("test/lisp/emacs-lisp/tabulated-list-test.el" . "tabulated-list-tests.el")
|
||||
("test/lisp/url/url-handlers-test.el" . "url-handlers-tests.el")
|
||||
("test/src/dired-tests.el" . "dired-tests.el")
|
||||
(".dir-locals.el" . ".dir-locals.el")
|
||||
)
|
||||
"Alist of files which have been renamed during their lifetime.
|
||||
Elements are (OLDNAME . NEWNAME).")
|
||||
|
|
@ -1491,14 +1291,10 @@ Additionally, for these logs we apply the `lax' elements of
|
|||
|
||||
(defun authors-canonical-file-name (file log-file pos author)
|
||||
"Return canonical file name for FILE found in LOG-FILE.
|
||||
FILE is the file name as it appears in LOG-FILE, including any
|
||||
leading directories mentioned there.
|
||||
LOG-FILE is an absolute file name of the log file we are scanning.
|
||||
Checks whether FILE is a valid (existing) file name, has been renamed,
|
||||
or is on the list of removed files. Returns the non-directory part of
|
||||
the file name to use for FILE in the \"AUTHORS\" file.
|
||||
Only uses the LOG-FILE position POS and associated AUTHOR to print a
|
||||
message if FILE is not found."
|
||||
the file name. Only uses the LOG-FILE position POS and associated AUTHOR
|
||||
to print a message if FILE is not found."
|
||||
;; FILE should be re-checked in every different directory associated
|
||||
;; with a LOG-FILE. Eg configure.ac from src/ChangeLog is not the
|
||||
;; same as that from top-level/ChangeLog.
|
||||
|
|
@ -1508,8 +1304,6 @@ message if FILE is not found."
|
|||
(if entry
|
||||
(cdr entry)
|
||||
(setq relname (file-name-nondirectory file))
|
||||
;; File names in `authors-valid-file-names' are OK by
|
||||
;; definition, so no need to check those.
|
||||
(if (or (member file authors-valid-file-names)
|
||||
(member relname authors-valid-file-names)
|
||||
(file-exists-p file)
|
||||
|
|
@ -1816,8 +1610,7 @@ and a buffer *Authors Errors* containing references to unknown files."
|
|||
;; the versioned ChangeLog.N rather than the unversioned ChangeLog.
|
||||
(zerop (call-process "make" nil nil nil
|
||||
"-C" root "change-history-nocommit"))
|
||||
(error (substitute-command-keys
|
||||
"Problem updating ChangeLog, try \"\\[universal-argument] \\[authors]\"")))
|
||||
(error "Problem updating ChangeLog, try \"C-u M-x authors RET\""))
|
||||
(let ((logs (process-lines find-program root "-name" "ChangeLog*"))
|
||||
(table (make-hash-table :test 'equal))
|
||||
(buffer-name "*Authors*")
|
||||
|
|
@ -1883,7 +1676,7 @@ list of their contributions.\n")
|
|||
(insert "\n "))
|
||||
(insert " " file))
|
||||
(insert "\n")))))
|
||||
(insert "\nLocal" " Variables:\nmode: emacs-authors\ncoding: "
|
||||
(insert "\nLocal" " Variables:\ncoding: "
|
||||
(symbol-name authors-coding-system) "\nEnd:\n")
|
||||
(message "Generating buffer %s... done" buffer-name)
|
||||
(unless noninteractive
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
#!/bin/bash
|
||||
### automerge - automatically merge the Emacs release branch to master
|
||||
|
||||
## Copyright (C) 2018-2023 Free Software Foundation, Inc.
|
||||
## Copyright (C) 2018-2021 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
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#! /usr/bin/perl
|
||||
# Build Emacs in several different configurations.
|
||||
|
||||
# Copyright (C) 2001-2023 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
### @configure_input@
|
||||
|
||||
# Copyright (C) 2015-2023 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2015-2021 Free Software Foundation, Inc.
|
||||
|
||||
# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||
# National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
|
|
@ -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" ) > $@
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2015-2023 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2015-2021 Free Software Foundation, Inc.
|
||||
|
||||
# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||
# National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Created manually from <https://en.wikipedia.org/wiki/Code_page_720>.
|
||||
# Created manually from <http://en.wikipedia.org/wiki/Code_page_720>.
|
||||
# The text in that page is available under the terms of the GNU Free
|
||||
# Documentation License.
|
||||
0x00-0x7F 0x0000
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Created manually from <https://en.wikipedia.org/wiki/Code_page_858>.
|
||||
# Created manually from <http://en.wikipedia.org/wiki/Code_page_858>.
|
||||
# The text in that page is available under the terms of the GNU Free
|
||||
# Documentation License.
|
||||
0x00-0x7F 0x0000
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Copyright (C) 2009-2023 Free Software Foundation, Inc.
|
||||
Copyright (C) 2009-2021 Free Software Foundation, Inc.
|
||||
Copyright (C) 2009, 2010, 2011
|
||||
National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
Registration Number H13PRO009
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; cus-test.el --- tests for custom types and load problems -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 1998, 2000, 2002-2023 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1998, 2000, 2002-2021 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Markus Rost <rost@math.uni-bielefeld.de>
|
||||
;; Created: 13 Sep 1998
|
||||
|
|
@ -131,7 +131,7 @@ Names should be as they appear in loaddefs.el.")
|
|||
;; Don't create a file `abbrev-file-name'.
|
||||
(setq save-abbrevs nil)
|
||||
|
||||
;; Avoid compile logs from 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,6 +1,6 @@
|
|||
#!/bin/bash
|
||||
#! /bin/sh
|
||||
|
||||
# Copyright (C) 2001-2023 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
|
|
@ -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,10 +31,11 @@ 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
|
||||
tar tzf "$old_tar" | sed -e 's,^[^/]*,,' | sort > $old_tmp
|
||||
tar tzf "$new_tar" | sed -e 's,^[^/]*,,' | sort > $new_tmp
|
||||
diff -u $old_tmp $new_tmp
|
||||
rm -f $new_tmp $old_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"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; find-gc.el --- detect functions that call the garbage collector -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 1992, 2001-2023 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1992, 2001-2021 Free Software Foundation, Inc.
|
||||
|
||||
;; Maintainer: emacs-devel@gnu.org
|
||||
|
||||
|
|
@ -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
|
|
@ -1,6 +1,6 @@
|
|||
;;; gitmerge.el --- help merge one Emacs branch into another -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2010-2021 Free Software Foundation, Inc.
|
||||
|
||||
;; Authors: David Engster <deng@randomsample.de>
|
||||
;; Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
|
@ -37,10 +37,10 @@
|
|||
;; up-to-date).
|
||||
;; - Mark commits you'd like to skip, meaning to only merge their
|
||||
;; metadata (merge strategy 'ours').
|
||||
;; - Hit 'm' to start merging. Skipped commits will be merged separately.
|
||||
;; - Hit 'm' to start merging. Skipped commits will be merged separately.
|
||||
;; - If conflicts cannot be resolved automatically, you'll have to do
|
||||
;; it manually. In that case, resolve the conflicts and restart
|
||||
;; gitmerge, which will automatically resume. It will add resolved
|
||||
;; it manually. In that case, resolve the conflicts and restart
|
||||
;; gitmerge, which will automatically resume. It will add resolved
|
||||
;; files, commit the pending merge and continue merging the rest.
|
||||
;; - Inspect master branch, and if everything looks OK, push.
|
||||
|
||||
|
|
@ -68,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))))))
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
### @configure_input@
|
||||
|
||||
## Copyright (C) 2013-2023 Free Software Foundation, Inc.
|
||||
## Copyright (C) 2013-2021 Free Software Foundation, Inc.
|
||||
|
||||
## This file is part of GNU Emacs.
|
||||
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
;;; c.by -- LL grammar for C/C++ language specification
|
||||
;; Copyright (C) 1999-2023 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1999-2021 Free Software Foundation, Inc.
|
||||
;;
|
||||
;; Author: Eric M. Ludlam <zappo@gnu.org>
|
||||
;; David Ponce <david@dponce.com>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; semantic-grammar.wy -- LALR grammar of Semantic input grammars
|
||||
;;
|
||||
;; Copyright (C) 2002-2023 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
;;
|
||||
;; Author: David Ponce <david@dponce.com>
|
||||
;; Created: 26 Aug 2002
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; java-tags.wy -- Semantic LALR grammar for Java
|
||||
|
||||
;; Copyright (C) 2002-2023 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
;;
|
||||
;; Author: David Ponce <david@dponce.com>
|
||||
;; Created: 26 Aug 2002
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; javascript-jv.wy -- LALR grammar for Javascript
|
||||
|
||||
;; Copyright (C) 2005-2023 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2005-2021 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1998-2011 Ecma International.
|
||||
|
||||
;; Author: Joakim Verona
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; make.by -- BY notation for Makefiles.
|
||||
|
||||
;; Copyright (C) 1999-2023 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1999-2021 Free Software Foundation, Inc.
|
||||
;;
|
||||
;; Author: Eric M. Ludlam <zappo@gnu.org>
|
||||
;; David Ponce <david@dponce.com>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; python.wy -- LALR grammar for Python
|
||||
|
||||
;; Copyright (C) 2002-2023 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
;; Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
|
||||
;; 2009, 2010 Python Software Foundation; All Rights Reserved
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; scheme.by -- Scheme BNF language specification
|
||||
|
||||
;; Copyright (C) 2001-2023 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2001-2021 Free Software Foundation, Inc.
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; srecode-template.wy --- Semantic Recoder Template parser
|
||||
|
||||
;; Copyright (C) 2005-2023 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2005-2021 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Eric M. Ludlam <zappo@gnu.org>
|
||||
;; Keywords: syntax
|
||||
|
|
@ -126,7 +126,7 @@ variable
|
|||
: SET symbol insertable-string-list newline
|
||||
(VARIABLE-TAG $2 nil $3)
|
||||
| SET symbol number newline
|
||||
;; This so a common error 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
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
;;; last-chance.el --- dangling deterrence -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2016-2023 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2016-2021 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Thien-Thi Nguyen <ttn@gnu.org>
|
||||
;; Maintainer: emacs-devel@gnu.org
|
||||
|
|
@ -41,7 +41,7 @@
|
|||
;;
|
||||
;; will show you any references to `change-log-date-face' in the
|
||||
;; *.el files in a new buffer (in Grep mode). Hopefully you see
|
||||
;; only the obsolete declaration and can proceed 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.
|
||||
;;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
# Build Emacs with various options for profiling, debugging,
|
||||
# with and without warnings enabled etc.
|
||||
|
||||
# Copyright (C) 2001-2023 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
### make-manuals - create the Emacs manuals to upload to the gnu.org website
|
||||
|
||||
## Copyright 2018-2023 Free Software Foundation, Inc.
|
||||
## Copyright 2018-2021 Free Software Foundation, Inc.
|
||||
|
||||
## Author: Glenn Morris <rgm@gnu.org>
|
||||
## Maintainer: emacs-devel@gnu.org
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ Instructions to create pretest or release tarballs. -*- coding: utf-8 -*-
|
|||
|
||||
Steps to take before starting on the first pretest in any release sequence:
|
||||
|
||||
0. The release branch (e.g. emacs-28) should already have been made
|
||||
0. The release branch (e.g. emacs-26) should already have been made
|
||||
and you should use it for all that follows. Diffs from this
|
||||
branch should be going to the emacs-diffs mailing list.
|
||||
|
||||
|
|
@ -14,18 +14,17 @@ Steps to take before starting on the first pretest in any release sequence:
|
|||
|
||||
2. Consider increasing the value of the variable
|
||||
'customize-changed-options-previous-release' in cus-edit.el to
|
||||
refer to a newer version of Emacs. (This is now done when cutting
|
||||
the release branch, see admin/release-branch.txt, but it can't
|
||||
hurt to double check its value.) Commit cus-edit.el if changed.
|
||||
refer to a newer version of Emacs. (This is probably needed only
|
||||
when preparing the first pretest for a major Emacs release.)
|
||||
Commit cus-edit.el if changed.
|
||||
|
||||
3. Remove any old pretests from https://alpha.gnu.org/gnu/emacs/pretest.
|
||||
You can use 'gnupload --delete' (see below for more gnupload details).
|
||||
(We currently don't bother with this.)
|
||||
|
||||
General steps (for each step, check for possible errors):
|
||||
|
||||
1. git pull # fetch from the repository
|
||||
git status # check for locally modified files
|
||||
1. git pull # fetch from the repository
|
||||
git status # check for locally modified files
|
||||
|
||||
Ensure that you have a clean, unmodified state.
|
||||
If you switched in-place from another branch to the release branch,
|
||||
|
|
@ -43,56 +42,12 @@ General steps (for each step, check for possible errors):
|
|||
because some of the commands below run Make, so they need
|
||||
Makefiles to be present.
|
||||
|
||||
For Emacs 28 and later, as long as --with-native-compilation is
|
||||
not the default, the tree needs to be configured with
|
||||
native-compilation enabled, to ensure all the pertinent *.elc
|
||||
files will end up in the tarball. Otherwise, the *.eln files
|
||||
might not build correctly on the user's system.
|
||||
|
||||
./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.
|
||||
|
||||
2. Regenerate the versioned ChangeLog.N and etc/AUTHORS files.
|
||||
|
||||
The "M-x authors" command below will first update the current
|
||||
versioned ChangeLog.N file. For this to work correctly, make sure
|
||||
the top-level Makefile says
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
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:
|
||||
|
||||
2. Regenerate the etc/AUTHORS file:
|
||||
M-: (require 'authors) RET
|
||||
M-x authors RET
|
||||
|
||||
(This first updates the current versioned ChangeLog.N)
|
||||
|
||||
If this says "Problem updating ChangeLog", find the reason for the
|
||||
failure of the command it runs, viz.:
|
||||
|
||||
|
|
@ -108,12 +63,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.
|
||||
|
||||
|
|
@ -129,14 +83,13 @@ General steps (for each step, check for possible errors):
|
|||
admin/release-process must be completed.
|
||||
|
||||
Set the version number to that of the actual release (commit in
|
||||
one, as described above). Pick a date about a week from now when
|
||||
you intend to make the release. Use M-x add-release-logs from
|
||||
admin/admin.el to add entries to etc/HISTORY and the ChangeLog
|
||||
file. It's best not to commit these files until the release is
|
||||
actually made. Merge the entries from (unversioned) ChangeLog
|
||||
into the top of the current versioned ChangeLog.N and commit that
|
||||
along with etc/HISTORY. Then you can tag that commit as the
|
||||
release.
|
||||
one, as described above). Pick a date about a week from now when
|
||||
you intend to make the release. Use M-x add-release-logs to add
|
||||
entries to etc/HISTORY and the ChangeLog file. It's best not to
|
||||
commit these files until the release is actually made. Merge the
|
||||
entries from (unversioned) ChangeLog into the top of the current
|
||||
versioned ChangeLog.N and commit that along with etc/HISTORY.
|
||||
Then you can tag that commit as the release.
|
||||
|
||||
Alternatively, you can commit and tag with the RC tag right away,
|
||||
and delay the final tagging until you actually decide to make a
|
||||
|
|
@ -160,13 +113,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,26 +125,15 @@ 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
|
||||
5. Copy lisp/loaddefs.el to lisp/ldefs-boot.el.
|
||||
|
||||
;; no-byte-compile: t
|
||||
|
||||
to its file-local variables section, otherwise make-dist will
|
||||
complain.
|
||||
|
||||
Commit ChangeLog.N, etc/AUTHORS, lisp/ldefs-boot.el, and the files
|
||||
changed by M-x set-version. Note that the set-version changes
|
||||
should be committed separately, as described in step 3 above, to
|
||||
avoid them being merged to master. The lisp/ldefs-boot.el file
|
||||
should not be merged to master either, so it could be added to the
|
||||
same commit or committed separately.
|
||||
|
||||
The easiest way of doing that is "C-x v d ROOT-DIR RET", then go
|
||||
to the first modified file, press 'M' to mark all modified files,
|
||||
and finally 'v' to commit them. Make sure the commit log message
|
||||
mentions all the changes in all modified files, as by default 'v'
|
||||
doesn't necessarily do so.
|
||||
Commit ChangeLog.N, etc/AUTHORS, lisp/ldefs-boot.el, and the
|
||||
files changed by M-x set-version. The easiest way of doing that
|
||||
is "C-x v d ROOT-DIR RET", then go to the first modified file,
|
||||
press 'M' to mark all modified files, and finally 'v' to commit
|
||||
them. Make sure the commit log message mentions all the changes
|
||||
in all modified files, as by default 'v' doesn't necessarily do
|
||||
so.
|
||||
|
||||
If someone else made a commit between step 1 and now,
|
||||
you need to repeat from step 4 onwards. (You can commit the files
|
||||
|
|
@ -212,10 +147,9 @@ General steps (for each step, check for possible errors):
|
|||
yourself, find it at <https://alpha.gnu.org/gnu/emacs/pretest>.
|
||||
Releases are of course at <https://ftp.gnu.org/pub/gnu/emacs/>.
|
||||
|
||||
./admin/diff-tar-files emacs-OLD.tar emacs-NEW.tar
|
||||
./admin/diff-tar-files emacs-OLD.tar.gz emacs-NEW.tar.gz
|
||||
|
||||
Alternatively, if you want to use the compressed tarballs (which
|
||||
diff-tar-files doesn't understand):
|
||||
Alternatively:
|
||||
|
||||
tar tJf emacs-OLD.tar.xz | sed -e 's,^[^/]*,,' | sort > old_tmp
|
||||
tar tJf emacs-NEW.tar.xz | sed -e 's,^[^/]*,,' | sort > new_tmp
|
||||
|
|
@ -223,17 +157,10 @@ General steps (for each step, check for possible errors):
|
|||
|
||||
If this is the first pretest of a major release, just comparing
|
||||
with the previous release may overlook many new files. You can try
|
||||
something like 'find . | sort' in a clean repository, and
|
||||
compare the results against the new tar contents. Another
|
||||
alternative is using something like:
|
||||
something like 'find . | sort' in a clean repository, and compare the
|
||||
results against the new tar contents.
|
||||
|
||||
tar cf - emacs-NEW | tar t -C /tmp | grep -Ev "\.(o|d)$" | sort
|
||||
|
||||
Where emacs-NEW is the directory containing your clean repository.
|
||||
The output of this command might be easier to compare to the
|
||||
tarball than the one you get from find.
|
||||
|
||||
7. tar xf emacs-NEW.tar; cd emacs-NEW
|
||||
7. tar -xf emacs-NEW.tar; cd emacs-NEW
|
||||
./configure --prefix=/tmp/emacs && make check && make install
|
||||
|
||||
Use 'script' or M-x compile to save the compilation log in
|
||||
|
|
@ -261,14 +188,6 @@ General steps (for each step, check for possible errors):
|
|||
git tag -a TAG -m "Emacs TAG" SHA1
|
||||
git push --tags
|
||||
|
||||
In the past, we were not always consistent with the annotation
|
||||
(i.e. -m "Emacs TAG"). The preferred format is like this for a
|
||||
pretest, release candidate and final release:
|
||||
|
||||
git tag -a emacs-28.0.90 -m "Emacs 28.0.90 pretest"
|
||||
git tag -a emacs-28.1-rc1 -m "Emacs 28.1 RC1"
|
||||
git tag -a emacs-28.1 -m "Emacs 28.1 release"
|
||||
|
||||
9. Decide what compression schemes to offer.
|
||||
For a release, at least gz and xz:
|
||||
gzip --best --no-name -c emacs-NEW.tar > emacs-NEW.tar.gz
|
||||
|
|
@ -291,9 +210,7 @@ General steps (for each step, check for possible errors):
|
|||
FILE.gz FILE.xz ...
|
||||
|
||||
You only need the --user part if you have multiple GPG keys and do
|
||||
not want to use the default. Instead of "your@gpg.key.email" you
|
||||
could also use the fingerprint of the key, a 40-digit hex number.
|
||||
(Alternatively, define default-key in your ~/.gnupg/gpg.conf file.)
|
||||
not want to use the default.
|
||||
Obviously, if you do not have a fast uplink, be prepared for the
|
||||
upload to take a while.
|
||||
|
||||
|
|
@ -317,8 +234,7 @@ General steps (for each step, check for possible errors):
|
|||
https://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, or
|
||||
https://ftp.gnu.org/gnu/emacs/ for a release.
|
||||
|
||||
Download them and check the signatures and SHA1/SHA256 checksums.
|
||||
Check they build (./configure --with-native-compilation).
|
||||
Download them and check the signatures. Check they build.
|
||||
|
||||
11. Send an announcement to: emacs-devel, and bcc: info-gnu-emacs@gnu.org.
|
||||
For a pretest, also bcc: platform-testers@gnu.org.
|
||||
|
|
@ -334,22 +250,9 @@ General steps (for each step, check for possible errors):
|
|||
because replies that invariably are not announcements also get
|
||||
sent out as if they were.)
|
||||
|
||||
To create the included SHA1 and SHA256 checksums, run:
|
||||
|
||||
sha1sum emacs-NEW.tar.xz
|
||||
sha256sum emacs-NEW.tar.xz
|
||||
|
||||
You can optionally sign the announcement email, preferably using
|
||||
the same PGP key that you used for signing the tarball.
|
||||
(Use e.g. `M-x mml-secure-message-sign' in `message-mode' to sign
|
||||
an email.)
|
||||
|
||||
12. After a release, update the Emacs pages as described below.
|
||||
|
||||
13. After a release, bump the Emacs version on the release branch.
|
||||
There is no need to bump the version after a pretest; the version
|
||||
is bumped before the next pretest or release instead.
|
||||
|
||||
13. Bump the Emacs version on the release branch.
|
||||
If the released version was XX.Y, use 'set-version' from
|
||||
admin/admin.el to bump the version on the release branch to
|
||||
XX.Y.50. Commit the changes.
|
||||
|
|
@ -357,8 +260,8 @@ General steps (for each step, check for possible errors):
|
|||
UPDATING THE EMACS WEB PAGES AFTER A RELEASE
|
||||
|
||||
As soon as possible after a release, the Emacs web pages at
|
||||
https://www.gnu.org/software/emacs/ should be updated.
|
||||
(See admin/notes/www for general information.)
|
||||
https://www.gnu.org/software/emacs/ should be updated. (See
|
||||
admin/notes/www for general information.)
|
||||
|
||||
The pages to update are:
|
||||
|
||||
|
|
@ -374,81 +277,21 @@ looks like this:
|
|||
|
||||
<div class="release-banner">
|
||||
<div class="container">
|
||||
<h2><em>Emacs 28.1 is out</em>, download it <a href="download.html">here</a>!</h2>
|
||||
<h2><em>Emacs 27.1 is out</em>, download it <a href="download.html">here</a>!</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Also, make sure the copyright years at the bottom of emacs.html are
|
||||
up-to-date.
|
||||
Regenerate the various manuals in manual/.
|
||||
The scripts admin/make-manuals and admin/upload-manuals summarize the process.
|
||||
|
||||
The file download.html may need to be updated, for example if the
|
||||
MS-Windows binaries will be signed by a different person/key than
|
||||
those mentioned there.
|
||||
If you have Texinfo installed locally, make-manuals might fail if it
|
||||
cannot find epsf.tex. In that case define in the environment
|
||||
|
||||
Next, regenerate the various manuals in HTML, PDF, and PS formats:
|
||||
TEXINPUTS=:/path/to/texinfo-tree/doc
|
||||
|
||||
Invoke ./admin/make-manuals from the top-level directory of the
|
||||
Emacs source tree that contains the manuals for which you want to
|
||||
produce HTML docs. This creates the 'manual' directory and
|
||||
populates it with the necessary files.
|
||||
|
||||
If you have Texinfo installed locally, make-manuals might fail if it
|
||||
cannot find epsf.tex. In that case define in the environment
|
||||
|
||||
TEXINPUTS=:/path/to/texinfo-tree/doc
|
||||
|
||||
where /path/to/texinfo-tree is the absolute file name of the
|
||||
top-level directory where you have the Texinfo source tree. Then
|
||||
re-run make-manuals.
|
||||
|
||||
make-manuals can also fail if the HTML manuals produced by Texinfo
|
||||
violate some of the assumptions admin/admin.el makes about the
|
||||
format of the produced HTML. Debug these problems and resolve them,
|
||||
then re-run make-manuals. (Each time you run make-manuals, it
|
||||
empties the manuals/ directory and regenerates the files there, but
|
||||
if the files in manuals/ can be used without regeneration, i.e. if
|
||||
the problem you solved doesn't affect the produced HTML, you can
|
||||
invoke make-manuals with the -c switch, which will make the process
|
||||
much faster.)
|
||||
|
||||
Now change to the 'manual' directory and invoke upload-manuals:
|
||||
|
||||
../admin/upload-manuals /path/to/webpages/cvs/checkout
|
||||
|
||||
where /path/to/webpages/cvs/checkout is the place where you have the
|
||||
CVS checkout of the Emacs Web pages, with subdirectories 'manual'
|
||||
and 'refcards'. This moves the produced manuals to directories in
|
||||
the Web pages CVS checkout tree, and also invokes CVS commands to
|
||||
commit changed files, add new files, and remove stale files that are
|
||||
no longer part of the manuals.
|
||||
|
||||
If upload-manuals fails, resolve the problems and re-invoke it.
|
||||
This requires running make-manuals again, since upload-manuals
|
||||
destructively modifies the 'manual' directory where you invoke it.
|
||||
Also, upload-manuals invokes "cvs commit -f", so if you run it
|
||||
several times, some files will be committed more than once even
|
||||
though they were not changed in-between. Suck it up.
|
||||
|
||||
All the added and removed files need to be committed, so next fire
|
||||
up Emacs, type "C-x v d" to invoke vc-dir on the Web pages checkout,
|
||||
and use "C-x v v" and other VC commands to commit all the files that
|
||||
upload-manuals didn't automatically commit. (You can also do that
|
||||
with manual CVS commands, of course, but this is not recommended.)
|
||||
|
||||
Next, make sure that manual/index.html file is consistent with the
|
||||
info/dir file in the branch for which you are producing the manuals,
|
||||
in that it mentions all the manuals. It could be outdated if
|
||||
manuals were added or removed since the last release.
|
||||
|
||||
For each new manual, a file manual/MANUAL.html (where MANUAL is the
|
||||
name of the manual) should be created from the template in
|
||||
manual/eww.html, after editing the title and the Copyright years,
|
||||
and the links in it changed to point to the appropriate files in the
|
||||
manual/html_node/ and manual/html_mono/ subdirectories.
|
||||
|
||||
In addition, the file refcards/index.html should be audited to make
|
||||
sure it includes the up-to-date list of refcards actually produced
|
||||
and put under that subdirectory.
|
||||
where /path/to/texinfo-tree is the absolute file name of the top-level
|
||||
directory where you have the Texinfo source tree. Then re-run
|
||||
make-manuals.
|
||||
|
||||
Browsing <https://web.cvs.savannah.gnu.org/viewvc/?root=emacs> is one
|
||||
way to check for any files that still need updating.
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
#
|
||||
# admin/merge-gnulib
|
||||
|
||||
# Copyright 2012-2023 Free Software Foundation, Inc.
|
||||
# Copyright 2012-2021 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
|
|
@ -23,39 +23,36 @@
|
|||
|
||||
# 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
|
||||
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 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
|
||||
mbrtowc mbsinit memchr mkdir msvc-inval msvc-nothrow nl_langinfo
|
||||
btowc close dup fchdir fstat langinfo lock
|
||||
malloc-posix 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 +100,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 +107,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 \
|
||||
|
|
@ -129,8 +118,5 @@ cp -- "$gnulib_srcdir"/build-aux/config.guess \
|
|||
"$gnulib_srcdir"/build-aux/install-sh \
|
||||
"$gnulib_srcdir"/build-aux/move-if-change \
|
||||
"$src"build-aux &&
|
||||
cp -- "$gnulib_srcdir"/lib/af_alg.h \
|
||||
"$gnulib_srcdir"/lib/save-cwd.h \
|
||||
"$src"lib &&
|
||||
{ test -z "$src" || cd "$src"; } &&
|
||||
./autogen.sh
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
#
|
||||
# admin/merge-pkg-config
|
||||
|
||||
# Copyright 2014-2023 Free Software Foundation, Inc.
|
||||
# Copyright 2014-2021 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ generate a new report. The only time to send mail to the bug list
|
|||
address is to create a new report.
|
||||
|
||||
Gnus users can add the following to message-dont-reply-to-names;
|
||||
similarly with Rmail and mail-dont-reply-to-names:
|
||||
similarly with Rmail and rmail-dont-reply-to-names:
|
||||
|
||||
"\\(emacs-pretest-bug\\|bug-gnu-emacs\\|bug-\\(e\\|gnu\\)macs\\)@gnu\\.org\\|\
|
||||
\\(submit\\|control\\|owner\\)@debbugs\\.gnu\\.org"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Copyright (C) 2007-2023 Free Software Foundation, Inc.
|
||||
Copyright (C) 2007-2021 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
-*- mode: outline; coding: utf-8 -*-
|
||||
|
||||
Copyright (C) 2019-2023 Free Software Foundation, Inc.
|
||||
Copyright (C) 2019-2021 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
NOTES FOR EMACS CONTINUOUS BUILD ON EMBA
|
||||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
-*- mode: outline; coding: utf-8 -*-
|
||||
|
||||
Copyright (C) 2013-2023 Free Software Foundation, Inc.
|
||||
Copyright (C) 2013-2021 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
NOTES FOR EMACS CONTINUOUS BUILD ON HYDRA
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
-*- coding: utf-8; mode: text; -*-
|
||||
|
||||
Copyright (C) 2007-2023 Free Software Foundation, Inc.
|
||||
Copyright (C) 2007-2021 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
From README.multi-tty in the multi-tty branch.
|
||||
|
|
@ -474,7 +474,7 @@ THINGS TO DO
|
|||
definition.
|
||||
|
||||
Exceptions found so far: x-select-text and
|
||||
x-selection-value.
|
||||
x-cut-buffer-or-selection-value.
|
||||
|
||||
** Have a look at fatal_error_hook.
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -6,6 +6,6 @@ Re "behavior" vs "behaviour", etc.
|
|||
for new text (code, docs), choose the US variant.
|
||||
|
||||
- It's probably (IMHO --ttn, 2017-10-13) not a high priority to
|
||||
change existing text; use your best judgment (ask if unsure).
|
||||
change existing text; use your best judgement (ask if unsure).
|
||||
|
||||
- https://lists.gnu.org/r/emacs-devel/2005-06/msg00489.html
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
-*-mode: text; coding: utf-8;-*-
|
||||
|
||||
Copyright (C) 2002-2023 Free Software Foundation, Inc.
|
||||
Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
Importing a new Unicode Standard version into Emacs
|
||||
|
|
@ -12,36 +12,18 @@ Emacs uses the following files from the Unicode Character Database
|
|||
. UnicodeData.txt
|
||||
. Blocks.txt
|
||||
. BidiBrackets.txt
|
||||
. BidiCharacterTest.txt
|
||||
. 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
|
||||
copyright.html in admin/unidata (some of them might need trailing
|
||||
whitespace removed before they can be committed to the Emacs
|
||||
First, the first 7 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 (that file might need trailing
|
||||
whitespace removed before it 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/.
|
||||
|
|
@ -99,51 +81,7 @@ regarding failing lines.
|
|||
|
||||
The file BidiCharacterTest.txt should be copied to the test suite, and
|
||||
if its format has changed, the file biditest.el there should be
|
||||
modified to follow suit. If there's trailing whitespace in
|
||||
BidiCharacterTest.txt, it should be removed before committing the new
|
||||
version.
|
||||
|
||||
src/macuvs.h is a generated file, but if it has changed as a result
|
||||
of the updates, please commit it as well (see
|
||||
admin/unidata/Makefile.in for an explanation).
|
||||
|
||||
Visit "emoji-data.txt" with the rebuilt Emacs, and check that an
|
||||
appropriate font is being used for the emoji (by default Emacs uses
|
||||
"Noto Color Emoji"). Running the following command in that buffer
|
||||
will give you an idea of which codepoints are not supported by
|
||||
whichever font Emacs is using.
|
||||
|
||||
(defun check-emoji-coverage (font-name-regexp)
|
||||
"Display a buffer containing emoji codepoints for which FONT-NAME is not used.
|
||||
This must be run from a buffer in the format of emoji-data.txt.
|
||||
FONT-NAME-REGEXP is checked using `string-match'."
|
||||
(interactive "MFont Name: ")
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(let (res char name ifont)
|
||||
(while (re-search-forward "; Emoji_Presentation [^(]+(\\(.\\)[).]" nil t)
|
||||
(setq char (aref (match-string 1) 0))
|
||||
(setq ifont (car (internal-char-font nil char)))
|
||||
(when ifont
|
||||
(setq name (font-xlfd-name ifont)))
|
||||
(if (or (not ifont) (not (string-match font-name-regexp name)))
|
||||
(setq res (concat (string char) res))))
|
||||
(when res
|
||||
(with-output-to-temp-buffer "*Check-Emoji-Coverage*"
|
||||
(princ (format "Font not matching '%s' was used for the following characters:\n%s"
|
||||
font-name-regexp (reverse res))))))))
|
||||
|
||||
Visit "emoji-zwj-sequences.txt" and "emoji-sequences.txt" with the
|
||||
rebuilt Emacs, and check that the sample sequences are composed
|
||||
properly. Also check the Unicode style chart file available at
|
||||
https://unicode.org/emoji/charts/emoji-style.txt for any issues
|
||||
involving VS-15 and VS-16, if so you may need to update the value
|
||||
generated for auto-composition-emoji-eligible-codepoints by
|
||||
admin/unidata/emoji-zwj.awk. Note that your emoji font might not have
|
||||
glyphs for the newest codepoints yet.
|
||||
|
||||
Finally, etc/NEWS should be updated to announce the support for the
|
||||
new Unicode version.
|
||||
modified to follow suit.
|
||||
|
||||
Problems, fixmes and other unicode-related issues
|
||||
-------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
-*- outline -*-
|
||||
|
||||
Copyright (C) 2013-2023 Free Software Foundation, Inc.
|
||||
Copyright (C) 2013-2021 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
NOTES FOR EMACS WWW PAGES
|
||||
|
|
@ -26,7 +26,7 @@ more specialized, alternative to M-x vc-dir.
|
|||
* Manual pages
|
||||
|
||||
The scripts admin/make-manuals, admin/upload-manuals can be used to do
|
||||
a complete update of the on-line manual pages (e.g. after a release).
|
||||
a complete update of the on-line manual pages (eg after a release).
|
||||
|
||||
* Renaming pages, redirects
|
||||
|
||||
|
|
@ -99,7 +99,7 @@ https://lists.gnu.org/r/bug-gnulib/2012-12/msg00072.html
|
|||
To use something other than CVS, convert the web-pages CVS repository
|
||||
to the other VCS, then set up a two-way sync between them.
|
||||
It needs to be two-way in case eg GNU webmasters make a change to the CVS.
|
||||
Ref e.g.
|
||||
Ref eg
|
||||
https://github.com/mikjo/bigitr
|
||||
https://lists.gnu.org/r/savannah-hackers-public/2013-04/msg00022.html
|
||||
|
||||
|
|
|
|||
|
|
@ -3,32 +3,7 @@ HOW TO MAINTAIN COPYRIGHT YEARS FOR GNU EMACS
|
|||
Maintaining copyright years is now very simple: every time a new year
|
||||
rolls around, add that year to every FSF (and AIST) copyright notice.
|
||||
Do this by running the 'admin/update-copyright' script on a fresh repo
|
||||
checkout, redirecting its output to a file, so that you could later
|
||||
examine the files that don't have copyright notices. Inspect the
|
||||
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
|
||||
. 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
|
||||
output into PDF and PS, in etc/refcards/ru-refcard.tex
|
||||
. it doesn't update etc/refcards/gnus-refcard.tex and
|
||||
doc/misc/org.org because their Copyright statements have a
|
||||
non-standard format
|
||||
. several README and XPM files under etc/images/, and also
|
||||
etc/refcards/README, msdos/README, and nt/icons/README aren't
|
||||
updated either
|
||||
|
||||
These files need to be updated by hand.
|
||||
|
||||
Next, run "M-x set-copyright" from admin.el, which updates several
|
||||
copyright notices in the Emacs sources.
|
||||
checkout. Inspect the results for plausibility, then commit them.
|
||||
|
||||
You should also run the etags test suite in test/manual/etags/. It
|
||||
will most probably fail because the contents of the test files changes
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Copyright (C) 2001-2023 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001-2021 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
Emacs for Windows
|
||||
|
|
|
|||
|
|
@ -3,15 +3,6 @@ Distribution Build Scripts for Windows
|
|||
|
||||
The scripts are used to build the binary distribution zip files for windows.
|
||||
|
||||
Environment
|
||||
-----------
|
||||
|
||||
A full installation of msys2 is required along for the build. The
|
||||
various dependencies of Emacs need to be installed also. These change
|
||||
over time, but are listed in build-deps-zips.py.
|
||||
|
||||
|
||||
|
||||
File System Organization
|
||||
------------------------
|
||||
|
||||
|
|
@ -24,19 +15,15 @@ The file system needs to be organized like so:
|
|||
|
||||
~/emacs-build/git
|
||||
|
||||
Contains checkouts and worktrees of the Emacs git repository,
|
||||
organized according to branches.
|
||||
Contains a checkout of the Emacs git repository, organized according
|
||||
to branches, with git worktree
|
||||
|
||||
~/emacs-build/git/master
|
||||
~/emacs-build/git/emacs-$branch
|
||||
|
||||
A checkout out of the master branch of the Emacs git repository.
|
||||
|
||||
~/emacs-build/git/emacs-$major-version
|
||||
|
||||
A worktree of the git repository containing the current release
|
||||
A branch of the git repository containing the current release
|
||||
branch. This has to be created by hand.
|
||||
|
||||
~/emacs-build/git/emacs-$release-version
|
||||
~/emacs-build/git/emacs-$version
|
||||
|
||||
A branch of the git repository containing the last release. The
|
||||
build-zips.sh file will create this for you.
|
||||
|
|
@ -76,8 +63,8 @@ uploaded.
|
|||
Build Process
|
||||
-------------
|
||||
|
||||
|
||||
### For each major version
|
||||
For each major version
|
||||
----------------------
|
||||
|
||||
The dependencies files need to be created. This can be around the time
|
||||
of the pre-tests, then used for all releases of that version, to
|
||||
|
|
@ -101,7 +88,8 @@ files will be created in ~/emacs-upload from where they can be signed
|
|||
and uploaded with `gnupload`.
|
||||
|
||||
|
||||
### For snapshots from Master
|
||||
For snapshots from Master
|
||||
-------------------------
|
||||
|
||||
Snapshots are generally created from master when there is a release
|
||||
branch on which a release has already been created. At this point,
|
||||
|
|
@ -122,7 +110,8 @@ used.
|
|||
Now, run `build-zips.sh -s` to build a snapshot release.
|
||||
|
||||
|
||||
### For snapshots from a Release Branch
|
||||
For snapshots from a Release Branch
|
||||
-----------------------------------
|
||||
|
||||
Snapshots can be built from a release branch; this is really only
|
||||
useful before a pre-test has happened.
|
||||
|
|
@ -131,11 +120,11 @@ 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).
|
||||
|
||||
|
||||
### For snapshots from another branch
|
||||
For snapshots from another branch
|
||||
---------------------------------
|
||||
|
||||
Snapshots can be build from any other branch. There is rarely a need
|
||||
to do this, except where some significant, wide-ranging feature is
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Copyright (C) 2001-2023 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001-2021 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
Precompiled Distributions of
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
## Copyright (C) 2017-2023 Free Software Foundation, Inc.
|
||||
## Copyright (C) 2017-2021 Free Software Foundation, Inc.
|
||||
|
||||
## This file is part of GNU Emacs.
|
||||
|
||||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/bash
|
||||
|
||||
## Copyright (C) 2017-2023 Free Software Foundation, Inc.
|
||||
## Copyright (C) 2017-2021 Free Software Foundation, Inc.
|
||||
|
||||
## This file is part of GNU Emacs.
|
||||
|
||||
|
|
@ -134,7 +134,7 @@ while getopts "gb:hnsiV:" opt; do
|
|||
echo " -g git update and worktree only"
|
||||
echo " -i build installer only"
|
||||
echo " -n do not configure"
|
||||
echo " -s snapshot build"
|
||||
echo " -s snaphot build"
|
||||
exit 0
|
||||
;;
|
||||
\?)
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/sh
|
||||
### quick-install-emacs --- do a halfway-decent job of installing emacs quickly
|
||||
|
||||
## Copyright (C) 2001-2023 Free Software Foundation, Inc.
|
||||
## Copyright (C) 2001-2021 Free Software Foundation, Inc.
|
||||
|
||||
## Author: Miles Bader <miles@gnu.org>
|
||||
|
||||
|
|
@ -172,10 +172,10 @@ test x"$prefix" = x && { prefix="`get_config_var prefix`" || exit 4 ; }
|
|||
test x"$ARCH" = x && { ARCH="`get_config_var host`" || exit 4 ; }
|
||||
|
||||
VERSION=`
|
||||
sed -n 's/^AC_INIT([ ]*\[*emacs]*[ ]*,[ ]*\[*\([^] ),]*\).*/\1/p' <$SRC/configure.ac
|
||||
sed -n 's/^AC_INIT([ ]*emacs[ ]*,[ ]*\([^ ),]*\).*/\1/p' <$SRC/configure.ac
|
||||
` || exit 4
|
||||
test -n "$VERSION" || VERSION=`
|
||||
sed -n 's/^AC_INIT([ ]*\[*GNU Emacs]*[ ]*,[ ]*\[*\([^] ),]*\).*/\1/p' <$SRC/configure.ac
|
||||
sed -n 's/^AC_INIT([ ]*GNU Emacs[ ]*,[ ]*\([^ ),]*\).*/\1/p' <$SRC/configure.ac
|
||||
` || exit 4
|
||||
test -n "$VERSION" || { printf '%s\n' >&2 "$me: no version in configure.ac"; exit 4; }
|
||||
|
||||
|
|
|
|||
|
|
@ -1,76 +0,0 @@
|
|||
Instructions for cutting the Emacs release branch
|
||||
|
||||
1. In the clone of the Emacs Git repository, switch to the 'master'
|
||||
branch, "git pull", and build it (using 'make bootstrap') to make
|
||||
sure it's not broken. Run 'make check-expensive' and ensure all
|
||||
tests pass. (Alternatively, verify that the automated build
|
||||
servers are showing success for the latest revision.)
|
||||
|
||||
2. Create the release branch and switch to it. Assuming that it is
|
||||
for releasing Emacs versions XY.1, XY.2, etc., the command is:
|
||||
|
||||
git checkout -b emacs-XY
|
||||
|
||||
3. Switch the release branch to the suitable version. The convention
|
||||
is that release branches start with version XY.0.60, whereas the
|
||||
master branch from which the release branch was cut was at the
|
||||
version XY.0.50. To change the version, do the following inside
|
||||
Emacs:
|
||||
|
||||
M-x load-file RET admin/admin.el RET
|
||||
M-x set-version RET XY.0.60 RET
|
||||
|
||||
Change the value of 'customize-changed-options-previous-release'
|
||||
in cus-edit.el to reference the last release from the emacs-XY-1
|
||||
branch (last release for the previous major version).
|
||||
|
||||
The above modifies several files in the tree; commit the changes
|
||||
with the appropriate log message, something like "Bump Emacs
|
||||
version to XY.0.60", and with header saying "Cut the emacs-XY
|
||||
release branch". Then push the changes:
|
||||
|
||||
git push --set-upstream origin emacs-XY
|
||||
|
||||
The "push" command should show the new branch just created.
|
||||
|
||||
4. Switch back to the master branch.
|
||||
|
||||
git checkout master
|
||||
git pull
|
||||
|
||||
Set the version on the master branch to the next major release:
|
||||
|
||||
M-x set-version RET XY+1.0.50 RET
|
||||
|
||||
This creates a new file etc/NEWS.XY. "git add" it.
|
||||
|
||||
Change the value of 'customize-changed-options-previous-release'
|
||||
in cus-edit.el to reference emacs-XY.1, the next version to be
|
||||
released from the newly-committed release branch.
|
||||
|
||||
Update the emacs-module sources for the new version XY+1. This
|
||||
entails:
|
||||
|
||||
. adding a new file src/module-env-XY+1.h, with contents just the
|
||||
comment taken from the beginning of src/module-env-XY.h
|
||||
. removing the comment from the beginning of src/module-env-XY.h
|
||||
. adding two lines to configure.ac:
|
||||
|
||||
AC_SUBST_FILE([module_env_snippet_XY+1])
|
||||
module_env_snippet_XY+1="$srcdir/src/module-env-XY+1.h"
|
||||
|
||||
. adding a new 'struct emacs_env_XY+1' to src/emacs-module.h.in,
|
||||
with the contents identical to'struct emacs_env_XY', with one
|
||||
line added:
|
||||
|
||||
@module_env_snippet_XY+1@
|
||||
|
||||
(FIXME: "M-x set-version" should do this emacs-module stuff
|
||||
automatically when the version is NN.0.60, or when there's no
|
||||
src/module-env-NN.h file.)
|
||||
|
||||
"git add" the new src/module-env-XY+1.h file.
|
||||
|
||||
Then rebuild Emacs. Then commit the new/changed files and push.
|
||||
|
||||
5. Announce the new release branch on emacs-devel.
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
# BidiBrackets-15.0.0.txt
|
||||
# Date: 2022-05-03, 18:42:00 GMT [AG, LI, KW]
|
||||
# © 2022 Unicode®, Inc.
|
||||
# BidiBrackets-13.0.0.txt
|
||||
# Date: 2019-09-09, 19:31:00 GMT [AG, LI, KW]
|
||||
# © 2019 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/
|
||||
#
|
||||
# Bidi_Paired_Bracket and Bidi_Paired_Bracket_Type Properties
|
||||
#
|
||||
|
|
@ -56,7 +56,7 @@
|
|||
# of each line.
|
||||
#
|
||||
# For information on bidirectional paired brackets, see UAX #9: Unicode
|
||||
# Bidirectional Algorithm, at https://www.unicode.org/reports/tr9/
|
||||
# Bidirectional Algorithm, at http://www.unicode.org/unicode/reports/tr9/
|
||||
#
|
||||
# This file was originally created by Andrew Glass and Laurentiu Iancu
|
||||
# for Unicode 6.3.
|
||||
|
|
@ -147,14 +147,6 @@
|
|||
2E27; 2E26; c # RIGHT SIDEWAYS U BRACKET
|
||||
2E28; 2E29; o # LEFT DOUBLE PARENTHESIS
|
||||
2E29; 2E28; c # RIGHT DOUBLE PARENTHESIS
|
||||
2E55; 2E56; o # LEFT SQUARE BRACKET WITH STROKE
|
||||
2E56; 2E55; c # RIGHT SQUARE BRACKET WITH STROKE
|
||||
2E57; 2E58; o # LEFT SQUARE BRACKET WITH DOUBLE STROKE
|
||||
2E58; 2E57; c # RIGHT SQUARE BRACKET WITH DOUBLE STROKE
|
||||
2E59; 2E5A; o # TOP HALF LEFT PARENTHESIS
|
||||
2E5A; 2E59; c # TOP HALF RIGHT PARENTHESIS
|
||||
2E5B; 2E5C; o # BOTTOM HALF LEFT PARENTHESIS
|
||||
2E5C; 2E5B; c # BOTTOM HALF RIGHT PARENTHESIS
|
||||
3008; 3009; o # LEFT ANGLE BRACKET
|
||||
3009; 3008; c # RIGHT ANGLE BRACKET
|
||||
300A; 300B; o # LEFT DOUBLE ANGLE BRACKET
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
# BidiMirroring-15.0.0.txt
|
||||
# Date: 2022-05-03, 18:47:00 GMT [KW, RP]
|
||||
# © 2022 Unicode®, Inc.
|
||||
# For terms of use, see https://www.unicode.org/terms_of_use.html
|
||||
# BidiMirroring-13.0.0.txt
|
||||
# Date: 2019-09-09, 19:34:00 GMT [KW, LI, RP]
|
||||
# © 2019 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/
|
||||
#
|
||||
# Bidi_Mirroring_Glyph Property
|
||||
#
|
||||
|
|
@ -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 13.0.0.
|
||||
#
|
||||
# The file contains a list of lines with mappings from one code point
|
||||
# to another one for character-based mirroring.
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
# for character-based mirroring.
|
||||
#
|
||||
# For information on bidi mirroring, see UAX #9: Unicode Bidirectional Algorithm,
|
||||
# at https://www.unicode.org/reports/tr9/
|
||||
# at http://www.unicode.org/unicode/reports/tr9/
|
||||
#
|
||||
# This file was originally created by Markus Scherer.
|
||||
# Extended for Unicode 3.2, 4.0, 4.1, 5.0, 5.1, 5.2, and 6.0 by Ken Whistler,
|
||||
|
|
@ -96,10 +96,10 @@
|
|||
208D; 208E # SUBSCRIPT LEFT PARENTHESIS
|
||||
208E; 208D # SUBSCRIPT RIGHT PARENTHESIS
|
||||
2208; 220B # ELEMENT OF
|
||||
2209; 220C # [BEST FIT] NOT AN ELEMENT OF
|
||||
2209; 220C # NOT AN ELEMENT OF
|
||||
220A; 220D # SMALL ELEMENT OF
|
||||
220B; 2208 # CONTAINS AS MEMBER
|
||||
220C; 2209 # [BEST FIT] DOES NOT CONTAIN AS MEMBER
|
||||
220C; 2209 # DOES NOT CONTAIN AS MEMBER
|
||||
220D; 220A # SMALL CONTAINS AS MEMBER
|
||||
2215; 29F5 # DIVISION SLASH
|
||||
221F; 2BFE # RIGHT ANGLE
|
||||
|
|
@ -453,14 +453,6 @@
|
|||
2E27; 2E26 # RIGHT SIDEWAYS U BRACKET
|
||||
2E28; 2E29 # LEFT DOUBLE PARENTHESIS
|
||||
2E29; 2E28 # RIGHT DOUBLE PARENTHESIS
|
||||
2E55; 2E56 # LEFT SQUARE BRACKET WITH STROKE
|
||||
2E56; 2E55 # RIGHT SQUARE BRACKET WITH STROKE
|
||||
2E57; 2E58 # LEFT SQUARE BRACKET WITH DOUBLE STROKE
|
||||
2E58; 2E57 # RIGHT SQUARE BRACKET WITH DOUBLE STROKE
|
||||
2E59; 2E5A # TOP HALF LEFT PARENTHESIS
|
||||
2E5A; 2E59 # TOP HALF RIGHT PARENTHESIS
|
||||
2E5B; 2E5C # BOTTOM HALF LEFT PARENTHESIS
|
||||
2E5C; 2E5B # BOTTOM HALF RIGHT PARENTHESIS
|
||||
3008; 3009 # LEFT ANGLE BRACKET
|
||||
3009; 3008 # RIGHT ANGLE BRACKET
|
||||
300A; 300B # LEFT DOUBLE ANGLE BRACKET
|
||||
|
|
|
|||
|
|
@ -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-13.0.0.txt
|
||||
# Date: 2019-07-10, 19:06:00 GMT [KW]
|
||||
# © 2019 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,
|
||||
|
|
@ -52,7 +52,6 @@
|
|||
0800..083F; Samaritan
|
||||
0840..085F; Mandaic
|
||||
0860..086F; Syriac Supplement
|
||||
0870..089F; Arabic Extended-B
|
||||
08A0..08FF; Arabic Extended-A
|
||||
0900..097F; Devanagari
|
||||
0980..09FF; Bengali
|
||||
|
|
@ -216,9 +215,7 @@ FFF0..FFFF; Specials
|
|||
104B0..104FF; Osage
|
||||
10500..1052F; Elbasan
|
||||
10530..1056F; Caucasian Albanian
|
||||
10570..105BF; Vithkuqi
|
||||
10600..1077F; Linear A
|
||||
10780..107BF; Latin Extended-F
|
||||
10800..1083F; Cypriot Syllabary
|
||||
10840..1085F; Imperial Aramaic
|
||||
10860..1087F; Palmyrene
|
||||
|
|
@ -241,10 +238,8 @@ 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
|
||||
10FB0..10FDF; Chorasmian
|
||||
10FE0..10FFF; Elymaic
|
||||
11000..1107F; Brahmi
|
||||
|
|
@ -264,34 +259,29 @@ FFF0..FFFF; Specials
|
|||
11600..1165F; Modi
|
||||
11660..1167F; Mongolian Supplement
|
||||
11680..116CF; Takri
|
||||
11700..1174F; Ahom
|
||||
11700..1173F; Ahom
|
||||
11800..1184F; Dogra
|
||||
118A0..118FF; Warang Citi
|
||||
11900..1195F; Dives Akuru
|
||||
119A0..119FF; Nandinagari
|
||||
11A00..11A4F; Zanabazar Square
|
||||
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
|
||||
12400..1247F; Cuneiform Numbers and Punctuation
|
||||
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
|
||||
16A70..16ACF; Tangsa
|
||||
16AD0..16AFF; Bassa Vah
|
||||
16B00..16B8F; Pahawh Hmong
|
||||
16E40..16E9F; Medefaidrin
|
||||
|
|
@ -300,32 +290,24 @@ FFF0..FFFF; Specials
|
|||
17000..187FF; Tangut
|
||||
18800..18AFF; Tangut Components
|
||||
18B00..18CFF; Khitan Small Script
|
||||
18D00..18D7F; Tangut Supplement
|
||||
1AFF0..1AFFF; Kana Extended-B
|
||||
18D00..18D8F; Tangut Supplement
|
||||
1B000..1B0FF; Kana Supplement
|
||||
1B100..1B12F; Kana Extended-A
|
||||
1B130..1B16F; Small Kana Extension
|
||||
1B170..1B2FF; Nushu
|
||||
1BC00..1BC9F; Duployan
|
||||
1BCA0..1BCAF; Shorthand Format Controls
|
||||
1CF00..1CFCF; Znamenny Musical Notation
|
||||
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
|
||||
1D400..1D7FF; Mathematical Alphanumeric Symbols
|
||||
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
|
||||
1EC70..1ECBF; Indic Siyaq Numbers
|
||||
|
|
@ -354,7 +336,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,12 +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.
|
||||
#
|
||||
# 2017-12-12 Registration of additional sequences in the Adobe-Japan1
|
||||
# collection. Combined registration of the KRName collection
|
||||
# and of sequences in that collection. Registration of
|
||||
|
|
@ -33,10 +27,10 @@
|
|||
#
|
||||
# This file is part of the Unicode Ideographic Variation Database (IVD).
|
||||
# For more details on the IVD, see UTS #37:
|
||||
# https://www.unicode.org/reports/tr37/
|
||||
# http://www.unicode.org/reports/tr37/
|
||||
#
|
||||
# Copyright 2006-2022 Unicode, Inc.
|
||||
# For terms of use, see: https://www.unicode.org/copyright.html#8
|
||||
# Copyright 2006-2017 Unicode, Inc.
|
||||
# For terms of use, see: http://www.unicode.org/terms_of_use.html
|
||||
#
|
||||
3402 E0100; Adobe-Japan1; CID+13698
|
||||
3402 E0101; Adobe-Japan1; CID+13697
|
||||
|
|
@ -870,8 +864,6 @@
|
|||
4054 E0100; Hanyo-Denshi; IA3507
|
||||
4054 E0101; Hanyo-Denshi; TK01062970
|
||||
4058 E0100; Adobe-Japan1; CID+18198
|
||||
4058 E0101; MSARG; MD_4058
|
||||
4058 E0102; MSARG; ME_4058_001
|
||||
4071 E0100; Hanyo-Denshi; IA0509
|
||||
4071 E0100; Moji_Joho; MJ002897
|
||||
4071 E0101; Hanyo-Denshi; JTB661
|
||||
|
|
@ -1102,8 +1094,6 @@
|
|||
4359 E0101; Moji_Joho; MJ003650
|
||||
4395 E0100; Hanyo-Denshi; IA4278
|
||||
4395 E0101; Hanyo-Denshi; TK01074010
|
||||
4397 E0100; MSARG; MA_9967
|
||||
4397 E0101; MSARG; ME_4397_001
|
||||
43A8 E0100; Hanyo-Denshi; IA4294
|
||||
43A8 E0101; Hanyo-Denshi; TK01074340
|
||||
43A9 E0100; Hanyo-Denshi; IA0588
|
||||
|
|
@ -1417,8 +1407,6 @@
|
|||
460D E0101; Moji_Joho; MJ004388
|
||||
460F E0100; Adobe-Japan1; CID+18634
|
||||
4610 E0100; Adobe-Japan1; CID+19136
|
||||
4615 E0100; MSARG; MA_8FEB
|
||||
4615 E0101; MSARG; ME_4615_001
|
||||
462F E0100; Hanyo-Denshi; IA4925
|
||||
462F E0101; Hanyo-Denshi; TK01083800
|
||||
4635 E0100; Hanyo-Denshi; IA4929
|
||||
|
|
@ -1572,8 +1560,6 @@
|
|||
4921 E0101; Hanyo-Denshi; TK01092060
|
||||
4938 E0100; Hanyo-Denshi; IA5637
|
||||
4938 E0101; Hanyo-Denshi; TK01093220
|
||||
493E E0100; MSARG; MA_97E1
|
||||
493E E0101; MSARG; ME_493E_001
|
||||
493F E0100; Hanyo-Denshi; IA5643
|
||||
493F E0100; Moji_Joho; MJ005179
|
||||
493F E0101; Hanyo-Denshi; KS462830
|
||||
|
|
@ -1622,8 +1608,6 @@
|
|||
4A28 E0101; Hanyo-Denshi; IB1033
|
||||
4A28 E0101; Moji_Joho; MJ005391
|
||||
4A29 E0100; Adobe-Japan1; CID+18910
|
||||
4A29 E0101; MSARG; MD_4A29
|
||||
4A29 E0102; MSARG; ME_4A29_001
|
||||
4A3C E0100; Hanyo-Denshi; IB1041
|
||||
4A3C E0100; Moji_Joho; MJ005411
|
||||
4A3C E0101; Hanyo-Denshi; JTBEBD
|
||||
|
|
@ -2032,8 +2016,6 @@
|
|||
4E75 E0101; Moji_Joho; MJ006419
|
||||
4E75 E0102; Hanyo-Denshi; JTAD26
|
||||
4E75 E0102; Moji_Joho; MJ006420
|
||||
4E78 E0100; MSARG; MA_9AFB
|
||||
4E78 E0101; MSARG; ME_4E78_001
|
||||
4E79 E0100; Adobe-Japan1; CID+19143
|
||||
4E7E E0100; Adobe-Japan1; CID+1505
|
||||
4E7F E0100; Adobe-Japan1; CID+14306
|
||||
|
|
@ -2651,8 +2633,6 @@
|
|||
5029 E0101; Moji_Joho; MJ006862
|
||||
5029 E0102; Hanyo-Denshi; FT2068
|
||||
5029 E0102; Moji_Joho; MJ006863
|
||||
5029 E0103; MSARG; MB_ADC5
|
||||
5029 E0104; MSARG; ME_5029_001
|
||||
502A E0100; Adobe-Japan1; CID+4157
|
||||
502B E0100; Adobe-Japan1; CID+3993
|
||||
502B E0101; Hanyo-Denshi; JA4649
|
||||
|
|
@ -3531,8 +3511,6 @@
|
|||
51CD E0100; Adobe-Japan1; CID+3162
|
||||
51CF E0100; Adobe-Japan1; CID+19177
|
||||
51D1 E0100; Adobe-Japan1; CID+19178
|
||||
51D1 E0101; MSARG; MA_FAA4
|
||||
51D1 E0102; MSARG; ME_51D1_001
|
||||
51D2 E0100; Adobe-Japan1; CID+21186
|
||||
51D3 E0100; Adobe-Japan1; CID+19179
|
||||
51D4 E0100; Adobe-Japan1; CID+19180
|
||||
|
|
@ -4465,8 +4443,6 @@
|
|||
53D6 E0100; Adobe-Japan1; CID+2324
|
||||
53D7 E0100; Adobe-Japan1; CID+2337
|
||||
53D7 E0101; Adobe-Japan1; CID+13813
|
||||
53D8 E0100; MSARG; MA_895A
|
||||
53D8 E0101; MSARG; ME_53D8_001
|
||||
53D9 E0100; Adobe-Japan1; CID+2432
|
||||
53DA E0100; Adobe-Japan1; CID+14372
|
||||
53DB E0100; Adobe-Japan1; CID+3412
|
||||
|
|
@ -4967,8 +4943,6 @@
|
|||
555A E0102; Hanyo-Denshi; KS044550
|
||||
555A E0102; Moji_Joho; MJ008401
|
||||
555A E0103; Moji_Joho; MJ057180
|
||||
555A E0104; MSARG; MD_555A
|
||||
555A E0105; MSARG; ME_555A_001
|
||||
555B E0100; Adobe-Japan1; CID+21282
|
||||
555C E0100; Adobe-Japan1; CID+4392
|
||||
555D E0100; Adobe-Japan1; CID+4398
|
||||
|
|
@ -4977,8 +4951,6 @@
|
|||
555D E0102; Hanyo-Denshi; JTAEDA
|
||||
555D E0102; Moji_Joho; MJ008405
|
||||
555E E0100; Adobe-Japan1; CID+7633
|
||||
555F E0100; MSARG; MB_B1D2
|
||||
555F E0101; MSARG; ME_555F_001
|
||||
5560 E0100; Adobe-Japan1; CID+14392
|
||||
5561 E0100; Adobe-Japan1; CID+20308
|
||||
5561 E0101; Adobe-Japan1; CID+14393
|
||||
|
|
@ -4989,8 +4961,6 @@
|
|||
5568 E0100; Moji_Joho; MJ008415
|
||||
5568 E0101; Hanyo-Denshi; IB1035
|
||||
5568 E0101; Moji_Joho; MJ008416
|
||||
556B E0100; MSARG; MA_94DC
|
||||
556B E0101; MSARG; ME_556B_001
|
||||
557B E0100; Adobe-Japan1; CID+4404
|
||||
557C E0100; Adobe-Japan1; CID+4409
|
||||
557C E0101; Hanyo-Denshi; JA5138
|
||||
|
|
@ -5458,8 +5428,6 @@
|
|||
56A0 E0102; Hanyo-Denshi; JTAF22
|
||||
56A0 E0102; Moji_Joho; MJ008750
|
||||
56A2 E0100; Adobe-Japan1; CID+3311
|
||||
56A4 E0100; MSARG; MA_97A3
|
||||
56A4 E0101; MSARG; ME_56A4_001
|
||||
56A5 E0100; Adobe-Japan1; CID+4446
|
||||
56A5 E0101; Adobe-Japan1; CID+7822
|
||||
56A5 E0102; Hanyo-Denshi; JA5175
|
||||
|
|
@ -6686,8 +6654,6 @@
|
|||
59F6 E0100; Adobe-Japan1; CID+1132
|
||||
59F7 E0100; Adobe-Japan1; CID+21401
|
||||
59F8 E0100; Adobe-Japan1; CID+19312
|
||||
59F8 E0101; MSARG; MA_9D55
|
||||
59F8 E0102; MSARG; ME_59F8_001
|
||||
59FB E0100; Adobe-Japan1; CID+1213
|
||||
59FF E0100; Adobe-Japan1; CID+2207
|
||||
59FF E0101; Adobe-Japan1; CID+13792
|
||||
|
|
@ -6904,8 +6870,6 @@
|
|||
5ACC E0103; Hanyo-Denshi; FT1791S
|
||||
5ACC E0103; Moji_Joho; MJ009909
|
||||
5ACF E0100; Adobe-Japan1; CID+21424
|
||||
5ACF E0101; MSARG; MA_92F4
|
||||
5ACF E0102; MSARG; ME_5ACF_001
|
||||
5AD0 E0100; Adobe-Japan1; CID+4603
|
||||
5AD6 E0100; Adobe-Japan1; CID+4596
|
||||
5AD7 E0100; Adobe-Japan1; CID+4593
|
||||
|
|
@ -7576,8 +7540,6 @@
|
|||
5C8D E0100; Moji_Joho; MJ010418
|
||||
5C8D E0101; Hanyo-Denshi; JTB06C
|
||||
5C8D E0101; Moji_Joho; MJ010419
|
||||
5C8D E0102; MSARG; MB_CAC0
|
||||
5C8D E0103; MSARG; ME_5C8D_001
|
||||
5C8F E0100; Adobe-Japan1; CID+16840
|
||||
5C90 E0100; Adobe-Japan1; CID+1584
|
||||
5C91 E0100; Adobe-Japan1; CID+4663
|
||||
|
|
@ -7607,8 +7569,6 @@
|
|||
5CAB E0100; Adobe-Japan1; CID+4666
|
||||
5CAC E0100; Adobe-Japan1; CID+3764
|
||||
5CAD E0100; Adobe-Japan1; CID+17557
|
||||
5CAD E0101; MSARG; MB_CC64
|
||||
5CAD E0102; MSARG; ME_5CAD_001
|
||||
5CB1 E0100; Adobe-Japan1; CID+2866
|
||||
5CB2 E0100; Adobe-Japan1; CID+21464
|
||||
5CB3 E0100; Adobe-Japan1; CID+1463
|
||||
|
|
@ -10135,8 +10095,6 @@
|
|||
62D0 E0103; Moji_Joho; MJ012273
|
||||
62D0 E0104; Hanyo-Denshi; IB1917
|
||||
62D0 E0104; Moji_Joho; MJ012274
|
||||
62D0 E0105; MSARG; MB_A9E4
|
||||
62D0 E0106; MSARG; ME_62D0_001
|
||||
62D1 E0100; Adobe-Japan1; CID+4961
|
||||
62D2 E0100; Adobe-Japan1; CID+1675
|
||||
62D2 E0101; Adobe-Japan1; CID+13715
|
||||
|
|
@ -12675,8 +12633,6 @@
|
|||
690D E0104; Hanyo-Denshi; KS170180
|
||||
690D E0104; Moji_Joho; MJ057753
|
||||
690D E0105; Hanyo-Denshi; TK01044570
|
||||
690D E0106; MSARG; MB_B4D3
|
||||
690D E0107; MSARG; ME_690D_001
|
||||
690E E0100; Adobe-Japan1; CID+3043
|
||||
690F E0100; Adobe-Japan1; CID+5206
|
||||
6910 E0100; Adobe-Japan1; CID+21777
|
||||
|
|
@ -13082,8 +13038,6 @@
|
|||
6A0B E0102; Moji_Joho; MJ014416
|
||||
6A0B E0103; Hanyo-Denshi; FT1907
|
||||
6A0B E0103; Moji_Joho; MJ014417
|
||||
6A0B E0104; MSARG; MA_FD42
|
||||
6A0B E0105; MSARG; ME_6A0B_001
|
||||
6A0C E0100; Adobe-Japan1; CID+5295
|
||||
6A0F E0100; Adobe-Japan1; CID+14658
|
||||
6A11 E0100; Adobe-Japan1; CID+17851
|
||||
|
|
@ -13944,8 +13898,6 @@
|
|||
6C67 E0102; Hanyo-Denshi; IB2201
|
||||
6C67 E0102; Moji_Joho; MJ015090
|
||||
6C67 E0103; Hanyo-Denshi; TK01049100
|
||||
6C67 E0104; MSARG; MB_CB4C
|
||||
6C67 E0105; MSARG; ME_6C67_001
|
||||
6C68 E0100; Adobe-Japan1; CID+5392
|
||||
6C6A E0100; Adobe-Japan1; CID+5385
|
||||
6C6A E0101; Hanyo-Denshi; JA6174
|
||||
|
|
@ -14366,8 +14318,6 @@
|
|||
6DCD E0100; Hanyo-Denshi; IP6DCD
|
||||
6DCD E0101; Hanyo-Denshi; TK01050160
|
||||
6DCE E0100; Adobe-Japan1; CID+17952
|
||||
6DCE E0101; MSARG; MD_6DCE
|
||||
6DCE E0102; MSARG; ME_6DCE_001
|
||||
6DCF E0100; Adobe-Japan1; CID+8520
|
||||
6DCF E0101; Hanyo-Denshi; JB3957
|
||||
6DCF E0101; Moji_Joho; MJ015459
|
||||
|
|
@ -15320,8 +15270,6 @@
|
|||
701E E0106; Hanyo-Denshi; IB2283
|
||||
701E E0106; Moji_Joho; MJ016159
|
||||
701E E0107; Hanyo-Denshi; TK01053770
|
||||
701E E0108; MSARG; MA_96EE
|
||||
701E E0109; MSARG; ME_701E_001
|
||||
701F E0100; Adobe-Japan1; CID+5546
|
||||
701F E0101; Hanyo-Denshi; JA6347
|
||||
701F E0101; Moji_Joho; MJ016166
|
||||
|
|
@ -15744,8 +15692,6 @@
|
|||
71A8 E0100; Adobe-Japan1; CID+5580
|
||||
71AC E0100; Adobe-Japan1; CID+5581
|
||||
71AE E0100; Adobe-Japan1; CID+18037
|
||||
71AE E0101; MSARG; MD_71AE
|
||||
71AE E0102; MSARG; ME_71AE_001
|
||||
71AF E0100; Adobe-Japan1; CID+18038
|
||||
71B0 E0100; Adobe-Japan1; CID+21938
|
||||
71B1 E0100; Adobe-Japan1; CID+3300
|
||||
|
|
@ -15758,8 +15704,6 @@
|
|||
71B3 E0103; Moji_Joho; MJ016595
|
||||
71B9 E0100; Adobe-Japan1; CID+5583
|
||||
71BA E0100; Adobe-Japan1; CID+16965
|
||||
71BB E0100; MSARG; MD_71BB
|
||||
71BB E0101; MSARG; ME_71BB_001
|
||||
71BE E0100; Adobe-Japan1; CID+5584
|
||||
71BE E0101; Hanyo-Denshi; JA6385
|
||||
71BE E0101; Moji_Joho; MJ016605
|
||||
|
|
@ -15883,8 +15827,6 @@
|
|||
7210 E0100; Adobe-Japan1; CID+5597
|
||||
7213 E0100; Adobe-Japan1; CID+21946
|
||||
7215 E0100; Adobe-Japan1; CID+16967
|
||||
7215 E0101; MSARG; MA_FE41
|
||||
7215 E0102; MSARG; ME_7215_001
|
||||
7217 E0100; Adobe-Japan1; CID+19521
|
||||
7217 E0101; Hanyo-Denshi; JB4235
|
||||
7217 E0101; Moji_Joho; MJ016708
|
||||
|
|
@ -17746,8 +17688,6 @@
|
|||
771F E0105; Moji_Joho; MJ018174
|
||||
771F E0106; Hanyo-Denshi; TK01062480
|
||||
771F E0107; Moji_Joho; MJ018175
|
||||
771F E0108; MSARG; MB_AF75
|
||||
771F E0109; MSARG; ME_771F_001
|
||||
7720 E0100; Adobe-Japan1; CID+3774
|
||||
7722 E0100; Adobe-Japan1; CID+19578
|
||||
7724 E0100; Adobe-Japan1; CID+5815
|
||||
|
|
@ -18076,8 +18016,6 @@
|
|||
784F E0101; Moji_Joho; MJ018495
|
||||
784F E0102; Hanyo-Denshi; JTB674
|
||||
784F E0102; Moji_Joho; MJ018496
|
||||
784F E0103; MSARG; MD_784F
|
||||
784F E0104; MSARG; ME_784F_001
|
||||
7851 E0100; Adobe-Japan1; CID+15420
|
||||
7852 E0100; Adobe-Japan1; CID+22078
|
||||
785C E0100; Adobe-Japan1; CID+19603
|
||||
|
|
@ -19295,8 +19233,6 @@
|
|||
7AAE E0103; Moji_Joho; MJ019272
|
||||
7AAF E0100; Adobe-Japan1; CID+3900
|
||||
7AB0 E0100; Adobe-Japan1; CID+5938
|
||||
7AB0 E0101; MSARG; MA_8E50
|
||||
7AB0 E0102; MSARG; ME_7AB0_001
|
||||
7AB1 E0100; Hanyo-Denshi; IP7AB1
|
||||
7AB1 E0101; Hanyo-Denshi; TK01068710
|
||||
7AB3 E0100; Adobe-Japan1; CID+14931
|
||||
|
|
@ -19508,8 +19444,6 @@
|
|||
7B51 E0103; Moji_Joho; MJ019458
|
||||
7B51 E0104; Hanyo-Denshi; JTB7A5
|
||||
7B51 E0104; Moji_Joho; MJ019456
|
||||
7B51 E0105; MSARG; MB_B5AE
|
||||
7B51 E0106; MSARG; ME_7B51_001
|
||||
7B52 E0100; Adobe-Japan1; CID+3189
|
||||
7B53 E0100; Adobe-Japan1; CID+14173
|
||||
7B53 E0101; Hanyo-Denshi; IP7B53
|
||||
|
|
@ -20428,8 +20362,6 @@
|
|||
7D86 E0103; Moji_Joho; MJ020134
|
||||
7D88 E0100; Adobe-Japan1; CID+18353
|
||||
7D89 E0100; Adobe-Japan1; CID+6084
|
||||
7D89 E0101; MSARG; MA_8EA7
|
||||
7D89 E0102; MSARG; ME_7D89_001
|
||||
7D8B E0100; Adobe-Japan1; CID+14980
|
||||
7D8C E0100; Adobe-Japan1; CID+14981
|
||||
7D8D E0100; Adobe-Japan1; CID+19665
|
||||
|
|
@ -20495,8 +20427,6 @@
|
|||
7DAA E0102; Hanyo-Denshi; IB0846
|
||||
7DAA E0102; Moji_Joho; MJ020184
|
||||
7DAB E0100; Adobe-Japan1; CID+6095
|
||||
7DAB E0101; MSARG; MA_8EA8
|
||||
7DAB E0102; MSARG; ME_7DAB_001
|
||||
7DAC E0100; Adobe-Japan1; CID+2342
|
||||
7DAD E0100; Adobe-Japan1; CID+1185
|
||||
7DAD E0101; Hanyo-Denshi; JA1661
|
||||
|
|
@ -21296,8 +21226,6 @@
|
|||
7FEB E0103; Moji_Joho; MJ020716
|
||||
7FEB E0104; Moji_Joho; MJ020718
|
||||
7FEC E0100; Adobe-Japan1; CID+15007
|
||||
7FEC E0101; MSARG; MB_E6F8
|
||||
7FEC E0102; MSARG; ME_7FEC_001
|
||||
7FEE E0100; Adobe-Japan1; CID+15008
|
||||
7FEF E0100; Adobe-Japan1; CID+15009
|
||||
7FF0 E0100; Adobe-Japan1; CID+1545
|
||||
|
|
@ -21310,8 +21238,6 @@
|
|||
7FF0 E0104; Moji_Joho; MJ020725
|
||||
7FF0 E0105; Hanyo-Denshi; TK01074020
|
||||
7FF0 E0106; Hanyo-Denshi; TK01074040
|
||||
7FF1 E0100; MSARG; MB_BFAC
|
||||
7FF1 E0101; MSARG; ME_7FF1_001
|
||||
7FF2 E0100; Adobe-Japan1; CID+18402
|
||||
7FF3 E0100; Adobe-Japan1; CID+6199
|
||||
7FF3 E0101; Hanyo-Denshi; JA7042
|
||||
|
|
@ -21324,9 +21250,6 @@
|
|||
7FF9 E0102; Hanyo-Denshi; FT2443
|
||||
7FF9 E0102; Moji_Joho; MJ020737
|
||||
7FFA E0100; Adobe-Japan1; CID+15010
|
||||
7FFA E0101; MSARG; MA_8ECB
|
||||
7FFA E0102; MSARG; ME_7FFA_001
|
||||
7FFA E0103; MSARG; ME_7FFA_002
|
||||
7FFB E0100; Adobe-Japan1; CID+3723
|
||||
7FFB E0101; Adobe-Japan1; CID+14040
|
||||
7FFB E0102; Hanyo-Denshi; JA4361
|
||||
|
|
@ -23157,8 +23080,6 @@
|
|||
833A E0101; Moji_Joho; MJ021843
|
||||
833A E0102; Hanyo-Denshi; KS346690S
|
||||
833A E0102; Moji_Joho; MJ021844
|
||||
833A E0103; MSARG; MB_D072
|
||||
833A E0104; MSARG; ME_833A_001
|
||||
833C E0100; Adobe-Japan1; CID+18489
|
||||
833C E0101; Hanyo-Denshi; JB5581
|
||||
833C E0101; Moji_Joho; MJ021846
|
||||
|
|
@ -23622,8 +23543,6 @@
|
|||
83C1 E0104; Hanyo-Denshi; FT2479
|
||||
83C1 E0104; Moji_Joho; MJ022062
|
||||
83C1 E0105; Hanyo-Denshi; TK01078230
|
||||
83C1 E0106; MSARG; MB_B5D7
|
||||
83C1 E0107; MSARG; ME_83C1_001
|
||||
83C2 E0100; Hanyo-Denshi; KS350410
|
||||
83C2 E0101; Hanyo-Denshi; TK01078690
|
||||
83C5 E0100; Adobe-Japan1; CID+2625
|
||||
|
|
@ -24441,8 +24360,6 @@
|
|||
84A8 E0103; Hanyo-Denshi; IB0865
|
||||
84A8 E0103; Moji_Joho; MJ022481
|
||||
84A8 E0104; Hanyo-Denshi; TK01080090
|
||||
84A8 E0105; MSARG; MB_E3C8
|
||||
84A8 E0106; MSARG; ME_84A8_001
|
||||
84A9 E0100; Adobe-Japan1; CID+22350
|
||||
84A9 E0101; Hanyo-Denshi; JB5680
|
||||
84A9 E0101; Moji_Joho; MJ022484
|
||||
|
|
@ -24954,8 +24871,6 @@
|
|||
8534 E0101; Moji_Joho; MJ022738
|
||||
8534 E0102; Hanyo-Denshi; KS360300
|
||||
8534 E0102; Moji_Joho; MJ022739
|
||||
8534 E0103; MSARG; MA_8F77
|
||||
8534 E0104; MSARG; ME_8534_001
|
||||
8535 E0100; Adobe-Japan1; CID+2818
|
||||
8535 E0101; Hanyo-Denshi; JA3402
|
||||
8535 E0102; Hanyo-Denshi; TK01081050
|
||||
|
|
@ -26767,7 +26682,6 @@
|
|||
8846 E0106; Hanyo-Denshi; TK01083450
|
||||
8846 E0107; MSARG; MA_8FBC
|
||||
8846 E0108; MSARG; ME_8846_001
|
||||
8846 E0109; MSARG; ME_8846_002
|
||||
8848 E0100; Adobe-Japan1; CID+22465
|
||||
8849 E0100; Adobe-Japan1; CID+22466
|
||||
884A E0100; Adobe-Japan1; CID+18635
|
||||
|
|
@ -28055,8 +27969,6 @@
|
|||
8B66 E0101; Moji_Joho; MJ024795
|
||||
8B66 E0102; Hanyo-Denshi; KS408750S
|
||||
8B66 E0102; Moji_Joho; MJ024796
|
||||
8B67 E0100; MSARG; MB_F4D4
|
||||
8B67 E0101; MSARG; ME_8B67_001
|
||||
8B69 E0100; Adobe-Japan1; CID+17130
|
||||
8B69 E0101; Hanyo-Denshi; JC9220
|
||||
8B69 E0101; Moji_Joho; MJ024799
|
||||
|
|
@ -28752,8 +28664,6 @@
|
|||
8E26 E0100; Adobe-Japan1; CID+19850
|
||||
8E27 E0100; Adobe-Japan1; CID+18732
|
||||
8E2A E0100; Adobe-Japan1; CID+6824
|
||||
8E2D E0100; MSARG; MA_9E5A
|
||||
8E2D E0101; MSARG; ME_8E2D_001
|
||||
8E30 E0100; Adobe-Japan1; CID+6813
|
||||
8E30 E0101; Hanyo-Denshi; JA7692
|
||||
8E30 E0101; Moji_Joho; MJ025364
|
||||
|
|
@ -30430,8 +30340,6 @@
|
|||
90A8 E0103; Moji_Joho; MJ026250
|
||||
90A8 E0104; Hanyo-Denshi; TK01090660
|
||||
90A8 E0105; Hanyo-Denshi; TK01090690
|
||||
90A8 E0106; MSARG; MA_9068
|
||||
90A8 E0107; MSARG; ME_90A8_001
|
||||
90AA E0100; Adobe-Japan1; CID+2309
|
||||
90AA E0101; Adobe-Japan1; CID+13454
|
||||
90AA E0102; Adobe-Japan1; CID+13806
|
||||
|
|
@ -30707,8 +30615,6 @@
|
|||
9175 E0101; Moji_Joho; MJ026482
|
||||
9175 E0102; Hanyo-Denshi; JTBDA9
|
||||
9175 E0102; Moji_Joho; MJ026483
|
||||
9176 E0100; MSARG; MA_9E4A
|
||||
9176 E0101; MSARG; ME_9176_001
|
||||
9177 E0100; Adobe-Japan1; CID+2053
|
||||
9177 E0101; Adobe-Japan1; CID+13776
|
||||
9177 E0102; Hanyo-Denshi; JA2583
|
||||
|
|
@ -31167,8 +31073,6 @@
|
|||
92B7 E0102; Moji_Joho; MJ026858
|
||||
92B8 E0100; Adobe-Japan1; CID+22751
|
||||
92B9 E0100; Adobe-Japan1; CID+6997
|
||||
92B9 E0101; MSARG; MA_F9D7
|
||||
92B9 E0102; MSARG; ME_92B9_001
|
||||
92BA E0100; Adobe-Japan1; CID+22752
|
||||
92BB E0100; Adobe-Japan1; CID+19920
|
||||
92BC E0100; Adobe-Japan1; CID+19921
|
||||
|
|
@ -31406,8 +31310,6 @@
|
|||
936E E0101; Moji_Joho; MJ027061
|
||||
936E E0102; Hanyo-Denshi; FT2650
|
||||
936E E0102; Moji_Joho; MJ027062
|
||||
936E E0103; MSARG; MA_A05F
|
||||
936E E0104; MSARG; ME_936E_001
|
||||
936F E0100; Adobe-Japan1; CID+22777
|
||||
9370 E0100; Adobe-Japan1; CID+8676
|
||||
9371 E0100; Adobe-Japan1; CID+18852
|
||||
|
|
@ -32192,8 +32094,6 @@
|
|||
96B6 E0101; Moji_Joho; MJ027706
|
||||
96B6 E0102; Hanyo-Denshi; KS475490
|
||||
96B6 E0102; Moji_Joho; MJ027705
|
||||
96B6 E0103; MSARG; MA_90C4
|
||||
96B6 E0104; MSARG; ME_96B6_001
|
||||
96B7 E0100; Adobe-Japan1; CID+4020
|
||||
96B8 E0100; Adobe-Japan1; CID+7114
|
||||
96B9 E0100; Adobe-Japan1; CID+7115
|
||||
|
|
@ -32470,8 +32370,6 @@
|
|||
9759 E0102; Hanyo-Denshi; JA3237
|
||||
9759 E0103; Hanyo-Denshi; TK01097430
|
||||
9759 E0104; Hanyo-Denshi; TK01097490
|
||||
9759 E0105; MSARG; MD_9759
|
||||
9759 E0106; MSARG; ME_9759_001
|
||||
975A E0100; Adobe-Japan1; CID+15275
|
||||
975A E0101; Hanyo-Denshi; JB7121
|
||||
975A E0101; Moji_Joho; MJ027909
|
||||
|
|
@ -32494,8 +32392,6 @@
|
|||
975C E0105; Moji_Joho; MJ027915
|
||||
975C E0106; Hanyo-Denshi; TK01097530
|
||||
975C E0107; Hanyo-Denshi; TK01097550
|
||||
975C E0108; MSARG; MB_C052
|
||||
975C E0109; MSARG; ME_975C_001
|
||||
975D E0100; Hanyo-Denshi; IB1040
|
||||
975D E0100; Moji_Joho; MJ027919
|
||||
975D E0101; Hanyo-Denshi; IP975D
|
||||
|
|
@ -32543,8 +32439,6 @@
|
|||
976D E0103; Moji_Joho; MJ027942
|
||||
976D E0104; Hanyo-Denshi; HG1633
|
||||
976D E0104; Moji_Joho; MJ027941
|
||||
976D E0105; MSARG; MA_9E46
|
||||
976D E0106; MSARG; ME_976D_001
|
||||
976E E0100; Adobe-Japan1; CID+15277
|
||||
9771 E0100; Adobe-Japan1; CID+7152
|
||||
9771 E0101; Adobe-Japan1; CID+7710
|
||||
|
|
@ -32699,8 +32593,6 @@
|
|||
97C8 E0103; Moji_Joho; MJ028052
|
||||
97C8 E0104; Hanyo-Denshi; FT2682
|
||||
97C8 E0104; Moji_Joho; MJ028054
|
||||
97C8 E0105; MSARG; MA_9F76
|
||||
97C8 E0106; MSARG; ME_97C8_001
|
||||
97C9 E0100; Adobe-Japan1; CID+17192
|
||||
97C9 E0101; Hanyo-Denshi; JB7160
|
||||
97C9 E0101; Moji_Joho; MJ028055
|
||||
|
|
@ -33174,7 +33066,6 @@
|
|||
98EB E0103; Moji_Joho; MJ028358
|
||||
98EC E0100; MSARG; MA_914B
|
||||
98EC E0101; MSARG; ME_98EC_001
|
||||
98EC E0102; MSARG; ME_98EC_002
|
||||
98ED E0100; Adobe-Japan1; CID+4289
|
||||
98ED E0101; Hanyo-Denshi; JA5012
|
||||
98ED E0101; Moji_Joho; MJ028362
|
||||
|
|
@ -33475,8 +33366,6 @@
|
|||
9936 E0100; Moji_Joho; MJ028491
|
||||
9936 E0101; Hanyo-Denshi; IP9936
|
||||
9936 E0101; Moji_Joho; MJ028492
|
||||
9938 E0100; MSARG; MA_9652
|
||||
9938 E0101; MSARG; ME_9938_001
|
||||
9939 E0100; Adobe-Japan1; CID+22892
|
||||
9939 E0101; Hanyo-Denshi; JB7268
|
||||
9939 E0101; Moji_Joho; MJ028494
|
||||
|
|
@ -33955,8 +33844,6 @@
|
|||
9A5F E0103; Hanyo-Denshi; KS510550
|
||||
9A5F E0103; Moji_Joho; MJ028831
|
||||
9A62 E0100; Adobe-Japan1; CID+7261
|
||||
9A63 E0100; MSARG; MA_9557
|
||||
9A63 E0101; MSARG; ME_9A63_001
|
||||
9A64 E0100; Adobe-Japan1; CID+7263
|
||||
9A65 E0100; Adobe-Japan1; CID+7262
|
||||
9A65 E0101; Adobe-Japan1; CID+14268
|
||||
|
|
@ -35241,8 +35128,6 @@
|
|||
9ED8 E0102; Hanyo-Denshi; FT2329
|
||||
9ED8 E0102; Moji_Joho; MJ029902
|
||||
9ED9 E0100; Adobe-Japan1; CID+3815
|
||||
9ED9 E0101; MSARG; MD_9ED9
|
||||
9ED9 E0102; MSARG; ME_9ED9_001
|
||||
9EDB E0100; Adobe-Japan1; CID+2883
|
||||
9EDB E0101; Adobe-Japan1; CID+7729
|
||||
9EDB E0102; Hanyo-Denshi; JA3467
|
||||
|
|
@ -35928,8 +35813,6 @@ FA29 E0100; Adobe-Japan1; CID+8687
|
|||
206EE E0101; Moji_Joho; MJ031295
|
||||
206F9 E0100; Moji_Joho; MJ031302
|
||||
206F9 E0101; Moji_Joho; MJ031303
|
||||
2070E E0100; MSARG; MA_92C3
|
||||
2070E E0101; MSARG; ME_2070E_001
|
||||
2071B E0100; Hanyo-Denshi; KS023680
|
||||
2071B E0101; Hanyo-Denshi; TK01009920
|
||||
2074F E0100; Adobe-Japan1; CID+17312
|
||||
|
|
@ -36210,8 +36093,6 @@ FA29 E0100; Adobe-Japan1; CID+8687
|
|||
21764 E0100; Moji_Joho; MJ033638
|
||||
21764 E0101; Hanyo-Denshi; KS073700
|
||||
21764 E0101; Moji_Joho; MJ057303
|
||||
217B5 E0100; MSARG; MA_96FD
|
||||
217B5 E0101; MSARG; ME_217B5_001
|
||||
21800 E0100; Hanyo-Denshi; TK01020690
|
||||
21800 E0101; Hanyo-Denshi; TK01020760
|
||||
21898 E0100; Hanyo-Denshi; KS077190
|
||||
|
|
@ -36287,8 +36168,6 @@ FA29 E0100; Adobe-Japan1; CID+8687
|
|||
21D45 E0100; Adobe-Japan1; CID+17545
|
||||
21D58 E0100; Hanyo-Denshi; KS089870
|
||||
21D58 E0101; Hanyo-Denshi; TK01024500
|
||||
21D5E E0100; MSARG; MA_876E
|
||||
21D5E E0101; MSARG; ME_21D5E_001
|
||||
21D62 E0100; Adobe-Japan1; CID+17547
|
||||
21D78 E0100; Adobe-Japan1; CID+17546
|
||||
21D92 E0100; Adobe-Japan1; CID+17556
|
||||
|
|
@ -36781,8 +36660,6 @@ FA29 E0100; Adobe-Japan1; CID+8687
|
|||
23780 E0101; Hanyo-Denshi; JTB3B8
|
||||
23780 E0101; Moji_Joho; MJ038377
|
||||
23780 E0102; Hanyo-Denshi; TK01046760
|
||||
237C2 E0100; MSARG; MA_FCF0
|
||||
237C2 E0101; MSARG; ME_237C2_001
|
||||
237E7 E0100; Adobe-Japan1; CID+17875
|
||||
237E7 E0101; Hanyo-Denshi; JD1574
|
||||
237E7 E0101; Moji_Joho; MJ038420
|
||||
|
|
@ -37109,8 +36986,6 @@ FA29 E0100; Adobe-Japan1; CID+8687
|
|||
254C9 E0101; Hanyo-Denshi; TK01063840
|
||||
254D9 E0100; Adobe-Japan1; CID+18217
|
||||
2550E E0100; Adobe-Japan1; CID+17009
|
||||
25584 E0100; MSARG; MA_93C3
|
||||
25584 E0101; MSARG; ME_25584_001
|
||||
255A7 E0100; Adobe-Japan1; CID+18229
|
||||
25607 E0100; Hanyo-Denshi; IB0328
|
||||
25607 E0100; Moji_Joho; MJ042965
|
||||
|
|
@ -37422,8 +37297,6 @@ FA29 E0100; Adobe-Japan1; CID+8687
|
|||
263C1 E0101; Hanyo-Denshi; JTC0CA
|
||||
263C1 E0101; Moji_Joho; MJ045051
|
||||
263C1 E0102; Moji_Joho; MJ045050
|
||||
263F9 E0100; MSARG; MD_263F9
|
||||
263F9 E0101; MSARG; ME_263F9_001
|
||||
26402 E0100; Adobe-Japan1; CID+18398
|
||||
26405 E0100; Hanyo-Denshi; KS319810
|
||||
26405 E0101; Hanyo-Denshi; TK01073730
|
||||
|
|
@ -37438,18 +37311,12 @@ FA29 E0100; Adobe-Japan1; CID+8687
|
|||
26408 E0102; Hanyo-Denshi; TK01073790
|
||||
26409 E0100; Hanyo-Denshi; KS319910
|
||||
26409 E0101; Hanyo-Denshi; TK01073770
|
||||
26410 E0100; MSARG; MA_90CC
|
||||
26410 E0101; MSARG; ME_26410_001
|
||||
26439 E0100; MSARG; MD_26439
|
||||
26439 E0101; MSARG; ME_26439_001
|
||||
26462 E0100; Hanyo-Denshi; KS321040
|
||||
26462 E0100; Moji_Joho; MJ045176
|
||||
26462 E0101; Hanyo-Denshi; KS321270
|
||||
26462 E0101; Moji_Joho; MJ045177
|
||||
26489 E0100; Hanyo-Denshi; TK01007100
|
||||
26489 E0101; Hanyo-Denshi; TK01074030
|
||||
26489 E0102; MSARG; MA_8ECC
|
||||
26489 E0103; MSARG; ME_26489_001
|
||||
264B3 E0100; Hanyo-Denshi; KS322190
|
||||
264B3 E0100; Moji_Joho; MJ058361
|
||||
264B3 E0101; Hanyo-Denshi; KS322200S
|
||||
|
|
@ -37714,8 +37581,6 @@ FA29 E0100; Adobe-Japan1; CID+8687
|
|||
27088 E0101; Hanyo-Denshi; TK01082110
|
||||
270F0 E0100; Hanyo-Denshi; KS369820
|
||||
270F0 E0101; Hanyo-Denshi; TK01082380
|
||||
270F0 E0102; MSARG; MA_8FA8
|
||||
270F0 E0103; MSARG; ME_270F0_001
|
||||
270F4 E0100; Adobe-Japan1; CID+17103
|
||||
270F4 E0101; Hanyo-Denshi; JC9141
|
||||
270F4 E0101; Moji_Joho; MJ047259
|
||||
|
|
@ -37833,8 +37698,6 @@ FA29 E0100; Adobe-Japan1; CID+8687
|
|||
2770F E0100; Moji_Joho; MJ048373
|
||||
2770F E0101; Moji_Joho; MJ048374
|
||||
27723 E0100; Adobe-Japan1; CID+18652
|
||||
27741 E0100; MSARG; MA_94C7
|
||||
27741 E0101; MSARG; ME_27741_001
|
||||
27752 E0100; Adobe-Japan1; CID+18656
|
||||
27753 E0100; Hanyo-Denshi; KS393290
|
||||
27753 E0100; Moji_Joho; MJ048418
|
||||
|
|
@ -39156,8 +39019,6 @@ FA29 E0100; Adobe-Japan1; CID+8687
|
|||
2CF4C E0101; Moji_Joho; MJ056893
|
||||
2CF4C E0102; Moji_Joho; MJ056894
|
||||
2CF4C E0103; Moji_Joho; MJ056898
|
||||
2CF7A E0100; MSARG; MC_00045
|
||||
2CF7A E0101; MSARG; ME_2CF7A_001
|
||||
2D020 E0100; Moji_Joho; MJ056969
|
||||
2D020 E0101; Moji_Joho; MJ056970
|
||||
2D028 E0100; Moji_Joho; MJ059338
|
||||
|
|
@ -39340,5 +39201,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
|
|
@ -1,6 +1,6 @@
|
|||
### @configure_input@
|
||||
|
||||
# Copyright (C) 2012-2023 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2012-2021 Free Software Foundation, Inc.
|
||||
|
||||
# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||
# National Institute of Advanced Industrial Science and Technology (AIST)
|
||||
|
|
@ -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
|
||||
|
||||
## Specify .elc as an order-only prereq so as to not needlessly rebuild
|
||||
## target just because the .elc is missing.
|
||||
|
|
@ -68,56 +63,27 @@ 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
|
||||
|
||||
blocks = ${srcdir}/blocks.awk
|
||||
|
||||
${unidir}/charscript.el: ${blocks}
|
||||
${unidir}/charscript.el: ${srcdir}/Blocks.txt ${blocks}
|
||||
$(AM_V_GEN)$(AWK) -f ${blocks} < $< > $@
|
||||
|
||||
${unidir}/charscript.el: ${srcdir}/Blocks.txt ${srcdir}/emoji-data.txt
|
||||
$(AM_V_GEN)$(AWK) -f ${blocks} $^ > $@
|
||||
|
||||
.PHONY: emoji-zwj.el
|
||||
emoji-zwj.el: ${unidir}/emoji-zwj.el
|
||||
|
||||
zwj = ${srcdir}/emoji-zwj.awk
|
||||
|
||||
${unidir}/emoji-zwj.el: ${srcdir}/emoji-zwj-sequences.txt $(srcdir)/emoji-sequences.txt ${zwj}
|
||||
$(AM_V_GEN)$(AWK) -f ${zwj} $^ > $@
|
||||
|
||||
.PHONY: clean bootstrap-clean distclean maintainer-clean gen-clean
|
||||
|
||||
|
|
@ -136,10 +102,8 @@ distclean: clean
|
|||
## from a make target, we don't delete it here.
|
||||
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
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -6,61 +6,29 @@ copyright.html.
|
|||
The names, URLs, and dates for these files are as follows.
|
||||
|
||||
BidiBrackets.txt
|
||||
https://www.unicode.org/Public/UNIDATA/BidiBrackets.txt
|
||||
2021-06-30
|
||||
http://www.unicode.org/Public/UNIDATA/BidiBrackets.txt
|
||||
2017-04-20
|
||||
|
||||
BidiMirroring.txt
|
||||
https://www.unicode.org/Public/UNIDATA/BidiMirroring.txt
|
||||
2021-08-08
|
||||
|
||||
Blocks.txt
|
||||
https://www.unicode.org/Public/8.0.0/ucd/Blocks.txt
|
||||
2021-01-22
|
||||
http://www.unicode.org/Public/UNIDATA/BidiMirroring.txt
|
||||
2017-04-20
|
||||
|
||||
IVD_Sequences.txt
|
||||
https://www.unicode.org/ivd/
|
||||
2020-11-06
|
||||
|
||||
NormalizationTest.txt
|
||||
https://www.unicode.org/Public/UNIDATA/NormalizationTest.txt
|
||||
2021-05-28
|
||||
|
||||
SpecialCasing.txt
|
||||
https://unicode.org/Public/UNIDATA/SpecialCasing.txt
|
||||
2021-03-08
|
||||
http://www.unicode.org/ivd/
|
||||
2016-08-15
|
||||
|
||||
UnicodeData.txt
|
||||
https://www.unicode.org/Public/UNIDATA/UnicodeData.txt
|
||||
2021-07-06
|
||||
http://www.unicode.org/Public/UNIDATA/UnicodeData.txt
|
||||
2017-03-07
|
||||
|
||||
emoji-data.txt
|
||||
https://www.unicode.org/Public/14.0.0/ucd/emoji/emoji-data.txt
|
||||
2021-08-26
|
||||
Blocks.txt
|
||||
http://www.unicode.org/Public/8.0.0/ucd/Blocks.txt
|
||||
2017-04-20
|
||||
|
||||
emoji-zwj-sequences.txt
|
||||
https://www.unicode.org/Public/emoji/14.0/emoji-zwj-sequences.txt
|
||||
2021-06-08
|
||||
NormalizationTest.txt
|
||||
http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt
|
||||
2017-03-08
|
||||
|
||||
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
|
||||
SpecialCasing.txt
|
||||
http://unicode.org/Public/UNIDATA/SpecialCasing.txt
|
||||
2017-04-20
|
||||
|
|
|
|||
|
|
@ -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-13.0.0.txt
|
||||
# Date: 2019-09-08, 23:31:24 GMT
|
||||
# © 2019 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
|
||||
#
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/awk -f
|
||||
|
||||
## Copyright (C) 2015-2023 Free Software Foundation, Inc.
|
||||
## Copyright (C) 2015-2021 Free Software Foundation, Inc.
|
||||
|
||||
## Author: Glenn Morris <rgm@gnu.org>
|
||||
## Maintainer: emacs-devel@gnu.org
|
||||
|
|
@ -23,7 +23,7 @@
|
|||
### Commentary:
|
||||
|
||||
## This script takes as input Unicode's Blocks.txt
|
||||
## (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)
|
||||
|
|
@ -133,7 +131,7 @@ function name2alias(name , w, w2) {
|
|||
return name
|
||||
}
|
||||
|
||||
FILENAME ~ "Blocks.txt" && /^[0-9A-F]/ {
|
||||
/^[0-9A-F]/ {
|
||||
sep = index($1, "..")
|
||||
len = length($1)
|
||||
s = substr($1,1,sep-1)
|
||||
|
|
@ -204,47 +202,9 @@ FILENAME ~ "Blocks.txt" && /^[0-9A-F]/ {
|
|||
}
|
||||
}
|
||||
|
||||
FILENAME ~ "emoji-data.txt" && /^[0-9A-F].*; Emoji_Presentation / {
|
||||
sep = index($1, "..")
|
||||
len = length($1)
|
||||
if (sep > 0) {
|
||||
s = substr($1,1,sep-1)
|
||||
e = substr($1,sep+2,len-sep-1)
|
||||
} else {
|
||||
s = $1
|
||||
e = $1
|
||||
}
|
||||
$1 = ""
|
||||
i++
|
||||
start[i] = s
|
||||
end[i] = e
|
||||
alt[i] = "emoji"
|
||||
name[i] = "Autogenerated emoji"
|
||||
}
|
||||
|
||||
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"
|
||||
override_end[idx] = "FE0F"
|
||||
|
||||
for (k in override_start)
|
||||
{
|
||||
i++
|
||||
start[i] = override_start[k]
|
||||
end[i] = override_end[k]
|
||||
alt[i] = "emoji"
|
||||
name[i] = "Autogenerated emoji (override)"
|
||||
}
|
||||
|
||||
print ";;; charscript.el --- character script table -*- lexical-binding:t -*-"
|
||||
print ";;; Automatically generated from admin/unidata/{Blocks,emoji-data}.txt"
|
||||
print ";;; Automatically generated from admin/unidata/Blocks.txt"
|
||||
print "(let (script-list)"
|
||||
print " (dolist (elt '("
|
||||
|
||||
|
|
@ -263,6 +223,6 @@ END {
|
|||
print " (or (memq (nth 2 elt) script-list)"
|
||||
print " (setq script-list (cons (nth 2 elt) script-list))))"
|
||||
print " (set-char-table-extra-slot char-script-table 0 (nreverse script-list)))"
|
||||
print "\n"
|
||||
print ""
|
||||
print "(provide 'charscript)"
|
||||
}
|
||||
|
|
|
|||
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-2020 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>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue